/* Shared restrained motion. Artwork files are untouched. */
:root{--motion-ease:cubic-bezier(0.1,0.7,0.5,1);--motion-fast:180ms;--motion-view:440ms;--motion-overlay:520ms}
*,*::before,*::after{animation-timing-function:var(--motion-ease)!important;transition-timing-function:var(--motion-ease)!important}
.enter.scr,.enter.ob{animation-duration:var(--motion-view)!important}
.scr:not(.enter),.scr:not(.enter) .pg,.scr:not(.enter) .card{animation:none!important}
.enter .pg{animation-duration:var(--motion-view)!important;animation-delay:40ms!important}
.sh{transition-duration:320ms!important}.sh .sc{transition-duration:var(--motion-overlay)!important}
.btn,.ib,.chip,.tb{transition-duration:var(--motion-fast)!important}
.btn:active{transform:scale(.99)!important}
.ed [data-k]{animation:none!important;outline:1px dashed #ffffff25;outline-offset:3px}
.rw.add{animation-duration:300ms!important}
.wm,.bob{animation-duration:7s!important}
.pl1,.pl2,.pl3,.sw1,.sw2{animation-duration:24s!important}
body:not(.desktop-onboarding) .slw{animation-duration:650ms!important;animation-delay:120ms!important}
.stx .sa{animation-name:gentle-in!important;animation-duration:480ms!important;animation-delay:420ms!important}
@keyframes gentle-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.encryption-choices{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.encryption-choice{display:block;width:100%;text-align:left;border:1px solid #ffffff14;background:var(--c2);color:var(--fg);padding:18px;border-radius:16px;font:inherit;cursor:pointer}
.encryption-choice:hover{border-color:#226192;background:#22619233}
.encryption-choice b{font-size:15px;font-weight:500;display:block;margin-bottom:7px}
.encryption-choice span{display:block;color:var(--mu);font-size:12px;line-height:1.6}
.sync-footnote,.sync-device-note{color:var(--mu);font-size:12px;line-height:1.65;margin:18px 0 0}
.sync-device-note{padding-top:18px;border-top:1px solid #ffffff0a}
.sync-disconnect{display:block;margin:20px auto 0;padding:8px;font-size:12px}
.sync-security{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:20px 0}
.sync-security strong{font-weight:500;color:var(--mu)}
.task-deck-match{font-size:12px;margin:8px 2px 14px;display:flex;align-items:center;gap:6px}
.task-deck-match[hidden]{display:none}
.task-deck-match::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.pc.past-day{opacity:.55;transition:opacity var(--motion-fast) var(--motion-ease)}
.pc.past-day:hover,.pc.past-day:focus-within{opacity:.85}
#qb .quick-done{margin-top:8px;padding:10px 18px;font-size:13px}
.shortcut-dialog{width:min(880px,100%)}
.shortcut-help{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px;margin:24px 0 30px}
.shortcut-help h3{font-size:12px;color:var(--mu);font-weight:500;margin:0 0 12px}
.shortcut-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;font-size:12px;padding:10px 0;border-bottom:1px solid #ffffff09;line-height:1.55}
.shortcut-row kbd{font-size:10px;flex:none;max-width:48%;text-align:right;white-space:normal}
.shortcut-key-stage{display:grid;place-items:center;min-height:130px;border:1px solid #ffffff10;border-radius:18px;background:#121010;margin:22px 0}
.shortcut-key-stage kbd{font-size:26px;padding:12px 22px;border-radius:12px}
#mobile-sync{display:none}
#sync-mode{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid #ffffff14;border-radius:13px;background:var(--c2);color:var(--fg);font:500 14px 'Rethink Sans',sans-serif}
#sync-schedule-settings{margin-top:24px;padding-top:5px;border-top:1px solid #ffffff0a}
@media(max-width:899px){
 #app,body.w #app{width:100%;max-width:none}
 .scr{padding-left:clamp(16px,4vw,30px);padding-right:clamp(16px,4vw,30px)}
 .scr.cal,.scr.sea{padding-left:0;padding-right:0}
 .bg2{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2.8vw,18px)}
 .card{min-width:0;padding:clamp(16px,4vw,24px)}
 .big{font-size:clamp(34px,8vw,44px)}
 .nb .ct{font-size:clamp(31px,8vw,40px)}
 .sh .sc,#qb{width:100%;max-width:100%}
 .sh .sc{padding-left:clamp(16px,4vw,30px);padding-right:clamp(16px,4vw,30px)}
 .notebook-switcher{max-width:100%;flex-wrap:wrap}
 .nb .rn{font-size:clamp(22px,5.5vw,26px)}
 #mobile-sync{display:flex;position:fixed;z-index:12;right:clamp(14px,4vw,28px);top:calc(12px + env(safe-area-inset-top,0px));align-items:center;gap:7px;padding:10px 13px;border:1px solid #ffffff1a;border-radius:999px;background:#1c1a19ec;color:var(--fg);font:500 11px 'Rethink Sans',sans-serif;box-shadow:0 6px 22px #0003;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
 #mobile-sync i{width:4px;height:4px;border-radius:50%;background:var(--mu)}
 #mobile-sync{height:34px;justify-content:center;padding:0 12px;gap:7px;top:calc(6px + env(safe-area-inset-top,0px))}
 body.mobile-sync-visible #app>.scr{top:44px}
 body:not(.desktop-active) #app>.scr>.ch1{padding-right:0}
 #mobile-sync[data-state=pending] i,#mobile-sync[data-state=error] i{background:var(--fg)}
 #mobile-sync[data-state=busy]{background:#173a54;border-color:#226192}
 #mobile-sync[data-state=offline]{color:var(--mu)}
 #mobile-sync:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
}
@media(min-width:900px){
 body.desktop-active .desktop-workspace{padding-top:38px;padding-bottom:52px}
 body.desktop-active .scr:not(.cal):not(.sea):not(.nb){max-width:1480px}
 body.desktop-active .card{border-radius:19px;border-color:#ffffff0b;padding:26px}
 body.desktop-active .desktop-home-hero{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px;align-items:center;padding:32px 34px;min-height:190px}
 .desktop-home-hero .tr{flex-direction:column;gap:10px}
 .desktop-home-hero .btn{border-radius:12px;font-size:13px;padding:12px 18px}
 .desktop-home-hero .h2{font-size:31px}
 body.desktop-active .bg2{gap:22px;margin-top:24px}
 body.desktop-active .bg2 .btn{border-radius:12px;font-size:13px;padding:12px 16px!important}
 body.desktop-active .bg2 .num{font-size:52px}
 body.desktop-active .bg2 input{border-radius:12px;font-size:15px;padding:14px}
 body.desktop-active .scr.cal{padding:30px 32px 0}
 body.desktop-active .calendar-toolbar{padding:0 0 28px;display:flex;align-items:center;gap:14px;min-height:65px}
 .calendar-toolbar .ct{font-size:27px;white-space:nowrap}
 .calendar-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}
 .calendar-controls .seg{display:inline-flex;flex:none;background:none;border:1px solid #ffffff14;border-radius:10px;padding:3px;width:auto}
 .calendar-controls .seg button{flex:none;border-radius:7px;font-size:12px;padding:7px 13px;min-height:30px}
 .calendar-controls>.ib{border-radius:10px;width:34px;height:34px}
 .desktop-today{background:none;border:1px solid #ffffff14;border-radius:10px;color:var(--fg);font:500 12px 'Rethink Sans',sans-serif;padding:9px 13px;min-height:36px;cursor:pointer}
 .desktop-today:hover{background:var(--c2)}
 body.desktop-active .calendar-toolbar>.tk2{margin-left:auto;font-size:12px;border-radius:10px;padding:8px 11px;min-height:36px}
 body.desktop-active .calendar-toolbar .calendar-controls{margin-left:0}
 body.desktop-active .dh{padding-top:7px;padding-bottom:17px}
 body.desktop-active .dc b{font-size:20px}
 body.desktop-active .dc small{font-size:11px;margin-bottom:5px}
 body.desktop-active .gr{background:#ffffff01}
 body.desktop-active .b{border-radius:7px;font-size:12px;padding:7px 8px}
 body.desktop-active .b small{font-size:10px;opacity:.85}
 body.desktop-active[data-screen=plan] .ch1{padding:0 0 30px}
 body.desktop-active[data-screen=plan] .ch1>.desktop-today{margin-left:auto}
 body.desktop-active .cols{gap:18px;padding:0 0 30px;scroll-snap-type:none;align-items:stretch}
 body.desktop-active .cols>.pc{width:272px;max-width:none;flex:0 0 272px;border-radius:17px;padding:20px;min-height:240px;border-color:#ffffff0a;scroll-snap-align:none}
 body.desktop-active .cols>.pc.today-column{border-color:#22619299;background:linear-gradient(#22619212,#1c1a19 180px)}
 body.desktop-active .pc .h2{font-size:23px;margin-bottom:25px!important}
 body.desktop-active .pc>.btn{border-radius:10px;font-size:12px}
 body.desktop-active .pc>.tk{padding:12px 0;font-size:13px}
 body.desktop-active .pc>.mu{font-size:11px;margin-bottom:8px}
 body.desktop-active[data-screen=reflect] .bg2{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;align-items:stretch;gap:20px;margin-top:30px!important}
 body.desktop-active[data-screen=reflect] .bg2>.card{grid-column:span 4;min-width:0;margin:0}
 body.desktop-active[data-screen=reflect] .card[data-k=hs],body.desktop-active[data-screen=reflect] .card[data-k=bs]{grid-column:span 6}
 body.desktop-active[data-screen=reflect] .card[data-k=les],body.desktop-active[data-screen=reflect] .card[data-k=grat]{grid-column:span 6}
 body.desktop-active[data-screen=reflect] .card[data-k=heat],body.desktop-active[data-screen=reflect] .card[data-k=per]{grid-column:span 8}
 body.desktop-active[data-screen=reflect] .card[data-k=mood]{grid-row:span 2;min-height:380px}
 body.desktop-active[data-screen=reflect] .card[data-k=must],body.desktop-active[data-screen=reflect] .card[data-k=otd]{min-height:170px}
 body.desktop-active[data-screen=reflect] .card[data-k=per]{grid-row:span 2;min-height:390px}
 body.desktop-active[data-screen=reflect] .bg2>.card:not([data-k]){display:flex;min-height:85px;border-style:dashed;color:var(--mu)!important}
 body.desktop-active[data-screen=reflect] .card[data-k=ach]{grid-column:span 12}
 body.desktop-active[data-screen=reflect] .card>svg{max-width:100%;height:auto}
 body.desktop-active[data-screen=reflect] .ach{grid-template-columns:repeat(4,minmax(0,1fr))}
 body.desktop-active .settings-account{max-width:760px;margin:26px 0 40px;border-bottom:1px solid #ffffff0c;padding-bottom:18px}
 body.desktop-active .settings-account .rw2{padding-left:0;padding-right:0}
 .settings-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 60px;max-width:1120px}
 .desktop-settings-group h2{font-size:17px;margin:0 0 18px}
 .desktop-settings-group .rw2{padding:16px 0;border-bottom:1px solid #ffffff09;gap:25px;font-size:14px}
 .desktop-settings-group .rw2 em{font-size:12px;color:var(--mu)}
 body.desktop-active[data-screen=set] #sq{max-width:460px;margin-top:20px;border:1px solid #ffffff0c;background:var(--c1);border-radius:12px;font-size:14px;padding:13px 16px}
 body.desktop-active[data-screen=sp] .scr{max-width:1040px}
 body.desktop-active[data-screen=sp] .rw2{font-size:14px;padding:18px 12px}
 body.desktop-active[data-screen=rv2] .scr,body.desktop-active[data-screen=dkp] .scr{max-width:1120px}
 body.desktop-active[data-screen=rv2] #rq,body.desktop-active[data-screen=dkp] #dq{max-width:480px;font-size:14px;padding:13px 16px;border-radius:12px}
 body.desktop-active .sea .fl2 .chip{border-radius:9px;font-size:12px;padding:8px 12px}
 body.desktop-active .nb .pg{border-radius:17px}
 body.desktop-active .desktop-sidebar,.desktop-active #app{transition-duration:360ms}
 @media(max-width:1279px){body.desktop-active[data-screen=reflect] .bg2{grid-template-columns:repeat(6,minmax(0,1fr))}body.desktop-active[data-screen=reflect] .bg2>.card{grid-column:span 3}body.desktop-active[data-screen=reflect] .card[data-k=heat],body.desktop-active[data-screen=reflect] .card[data-k=ach],body.desktop-active[data-screen=reflect] .card[data-k=per]{grid-column:span 6}body.desktop-active[data-screen=reflect] .card[data-k=per]{grid-row:span 1}}
 @media(max-width:1120px){.calendar-toolbar{flex-wrap:wrap}.calendar-controls{margin-left:auto!important}.calendar-toolbar .ct{flex:1}.calendar-toolbar .calendar-controls{flex-basis:100%;justify-content:space-between}body.desktop-active .desktop-home-hero{grid-template-columns:1fr;gap:20px}.desktop-home-hero .tr{flex-direction:row}.settings-panels{gap:30px}}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.sa{opacity:1!important}.slw{transform:translate(-50%,-50%) translateY(-25vh) scale(.58)!important}}
/* Conflict review appears only when two saved versions require a choice. */
.sync-conflicts{margin-top:28px;padding-top:22px;border-top:1px solid #ffffff14}
.sync-conflicts>h3{font-size:17px;font-weight:800;margin:0 0 12px}
.sync-conflict>h4{font-size:13px;font-weight:500;color:var(--mu);margin:0 0 12px}
.conflict-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.conflict-choice{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid #ffffff15;background:var(--c2);border-radius:15px}
.conflict-choice h5{font-size:14px;font-weight:800;margin:0 0 6px}
.conflict-location{font-size:10px;color:var(--mu);margin-bottom:16px}
.conflict-choice .conflict-title{font-size:14px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;margin:0 0 10px}
.conflict-choice .conflict-details{font-size:11px;line-height:1.6;color:var(--mu);margin:0 0 8px;white-space:pre-wrap}
.conflict-deleted{font-size:14px;margin:0 0 12px}
.conflict-choice .btn{margin-top:auto;font-size:12px;padding:11px 12px;border-radius:10px}
.conflict-choice .mu{font-size:12px;margin:0 0 16px}
.conflict-image{width:100%;max-height:140px;object-fit:contain;border-radius:10px;margin:0 0 12px}
.toolbar-sync[data-state=conflict] .sync-indicator,#mobile-sync[data-state=conflict] i{background:var(--fg)}
@media(max-width:430px){.conflict-choices{grid-template-columns:1fr}}
