@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/fonts/dm-sans-latin-variable.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#12141A;--card:#1C2029;--tx:#F2F4F8;--mu:#9AA4B2;--chip:#252A35;--ln:#2A303C;--ac:#7CF0C1;--actx:#0B1A14;--acl:#7CF0C1;--nav:#171A21;--amb:#FFB86B;--bar:#3B4658;--err:#FF8A80;--glass:rgba(28,32,41,.84);--nav-glass:rgba(23,26,33,.82);--surface-sheen:rgba(255,255,255,.035);--edge:rgba(200,223,229,.09);--highlight:rgba(255,255,255,.07);--shadow:0 6px 22px #00000014;--float-shadow:0 14px 40px #00000040;--ambient-mint:rgba(124,240,193,.065);--ambient-lilac:rgba(175,154,244,.045);--accent-end:#64DDB5;--accent-glow:rgba(124,240,193,.14);--frost:#9DD7FF;--chrome:#192225}
html[data-theme=light]{--bg:#F4F6F8;--card:#fff;--tx:#14181F;--mu:#5B6573;--chip:#E8ECF1;--ln:#DDE2E9;--ac:#0E7C5F;--actx:#fff;--acl:#0E7C5F;--nav:#fff;--amb:#9A5B00;--bar:#C5CEDA;--err:#B3261E;--glass:rgba(255,255,255,.88);--nav-glass:rgba(255,255,255,.84);--surface-sheen:rgba(14,124,95,.025);--edge:rgba(37,76,65,.10);--highlight:rgba(255,255,255,.9);--shadow:0 6px 22px #243C3207;--float-shadow:0 14px 40px #243C321a;--ambient-mint:rgba(14,124,95,.065);--ambient-lilac:rgba(129,105,194,.045);--accent-end:#096B58;--accent-glow:rgba(14,124,95,.13);--frost:#23618D;--chrome:#E5EEEE}
@media(prefers-color-scheme:light){html[data-theme=system]{--bg:#F4F6F8;--card:#fff;--tx:#14181F;--mu:#5B6573;--chip:#E8ECF1;--ln:#DDE2E9;--ac:#0E7C5F;--actx:#fff;--acl:#0E7C5F;--nav:#fff;--amb:#9A5B00;--bar:#C5CEDA;--err:#B3261E;--glass:rgba(255,255,255,.88);--nav-glass:rgba(255,255,255,.84);--surface-sheen:rgba(14,124,95,.025);--edge:rgba(37,76,65,.10);--highlight:rgba(255,255,255,.9);--shadow:0 6px 22px #243C3207;--float-shadow:0 14px 40px #243C321a;--ambient-mint:rgba(14,124,95,.065);--ambient-lilac:rgba(129,105,194,.045);--accent-end:#096B58;--accent-glow:rgba(14,124,95,.13);--frost:#23618D;--chrome:#E5EEEE}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;min-height:100%;background:radial-gradient(ellipse 480px 440px at 50% 0,var(--ambient-mint),transparent),radial-gradient(ellipse 400px 540px at 100% 55%,var(--ambient-lilac),transparent),var(--bg)}
body{margin:0;min-height:100vh;min-height:100dvh;background:transparent;color:var(--tx);font:16px/1.4 "DM Sans",-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
main{max-width:480px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 24px) 20px calc(110px + env(safe-area-inset-bottom))}
h1{margin:2px 0 0;font-size:26px;font-weight:700;line-height:1.2}h2{margin:0 0 8px;font-size:20px;font-weight:700}
a{color:var(--acl)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}
.i{flex:none;display:block}.m{color:var(--mu);font-size:13px}.acl{color:var(--acl)}.amb{color:var(--amb)}.err{color:var(--err)}.danger{color:var(--err)}
.big{font-size:34px;font-weight:700;line-height:1.15}.mt20{margin-top:20px}.center{text-align:center;display:flex;flex-direction:column;align-items:center}
.row{display:flex;align-items:center;justify-content:space-between}.grow{flex:1;margin-left:18px}
.sec{margin:18px 0 8px;font-weight:700}
.card{background:linear-gradient(145deg,var(--surface-sheen),transparent 65%),var(--card);box-shadow:inset 0 0 0 1px var(--edge),var(--shadow);border-radius:20px;padding:16px;margin-top:12px}
.list{padding:4px 8px}.list>.row{padding:10px 8px}.list .item{min-height:52px;padding:10px 12px;border-bottom:1px solid var(--ln);color:inherit;text-decoration:none}.list .item:last-child{border-bottom:0}
.stack{display:flex;flex-direction:column;gap:14px}
.f{display:flex;flex-direction:column;gap:6px;font-size:14px}
input:not([type=radio]):not([type=checkbox]),select{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;height:48px;border-radius:14px;border:1px solid var(--ln);background-color:var(--bg);padding:0 14px;font-size:16px;line-height:normal}
input[type=date],input[type=time],input[type=datetime-local]{text-align:left}
input::-webkit-date-and-time-value{text-align:left}
select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%239AA4B2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
input[type=radio]{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin:0;border-radius:50%;border:2px solid var(--ln);flex:none}
input[type=radio]:checked{border-color:var(--acl);background:radial-gradient(var(--acl) 0 45%,transparent 50%)}
.btn{display:block;width:100%;height:52px;border-radius:16px;border:0;background:var(--ac);color:var(--actx);font-weight:700;font-size:16px;margin-top:6px;text-align:center}
.btn.ghost{background:var(--chip);color:var(--tx)}.btn.ghost.danger,.btn.danger{color:var(--err)}.btn.danger:not(.ghost){background:var(--chip)}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;background:var(--card);padding:8px 12px;font-weight:700;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border-radius:99px;background:var(--chip);border:1.5px solid transparent;font-size:14px;color:var(--tx);text-decoration:none;cursor:pointer}
.chip.on,.chip:has(input:checked){border-color:var(--acl)}
.chip input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.d{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:10px;flex:none}.chip .d{margin-right:0}
.ring{width:92px;height:92px;flex:none;border-radius:50%;background:conic-gradient(var(--ac) calc(var(--p)*1%),var(--ln) 0);display:grid;place-items:center}
.ring span{width:72px;height:72px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-weight:700;font-size:20px}
.prog{height:8px;border-radius:4px;background:var(--ln);margin:10px 0}.prog i{display:block;height:8px;border-radius:4px;background:var(--amb)}
.brand{margin:8px 0 14px}.brand img{border-radius:16px}
.avatar{width:52px;height:52px;border-radius:50%;background:var(--ac);color:var(--actx);display:grid;place-items:center;flex:none}
.ico{width:44px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--mu);text-decoration:none}
.ico.round{border-radius:50%;background:var(--card);color:var(--tx)}.ico.solid{background:var(--ac);color:var(--actx)}
.nav{position:fixed;left:0;right:0;bottom:0;height:calc(70px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--nav);border-top:1px solid var(--ln);display:flex;justify-content:space-around;align-items:center;z-index:10}
.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:60px;min-height:48px;color:var(--mu);text-decoration:none;font-size:11px}.nav a.on{color:var(--acl)}
.nav .fab{width:60px;height:60px;min-width:0;border-radius:50%;background:var(--ac);color:var(--actx);margin-top:-30px}
.sheet{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.55);display:flex;align-items:flex-end}.sheet[hidden]{display:none}
.panel{width:100%;max-width:480px;margin:0 auto;max-height:92vh;overflow:auto;background:var(--card);border-radius:28px 28px 0 0;padding:12px 20px calc(env(safe-area-inset-bottom) + 24px)}
.grab{width:40px;height:5px;border-radius:3px;background:var(--ln);margin:0 auto 18px}
.opt{display:flex;align-items:center;justify-content:space-between;min-height:56px;border-bottom:1px solid var(--ln);font-size:16px;text-decoration:none;color:var(--tx)}
.opt .d{margin-right:14px}
.seg{display:flex;gap:4px;background:var(--chip);border-radius:14px;padding:4px}
.seg button{flex:1;height:40px;border:0;border-radius:11px;background:none}
.seg button[aria-pressed=true]{background:var(--card);font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.up{color:var(--acl);font-size:13px}
.bars{display:flex;gap:6px;height:150px;margin-top:16px}.bars.dense{gap:3px}.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}
.col{flex:1;width:100%;max-width:28px;display:flex;align-items:flex-end}.col i{display:block;width:100%;border-radius:8px;background:var(--bar)}.col i.now{background:var(--ac)}.dense .col i{border-radius:4px}
.stack-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin-bottom:10px}
.focus{min-height:calc(100vh - 48px);min-height:calc(100dvh - 48px);display:flex;flex-direction:column}.focus .bottom{margin-top:auto;padding-top:28px}
.tring{width:270px;height:270px;border-radius:50%;background:conic-gradient(var(--rc) calc(var(--p)*1%),var(--ln) 0);display:grid;place-items:center}
.tring>div{width:246px;height:246px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center}
.time{font-size:50px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.sw{position:relative;display:block;width:40px;height:40px}.sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0}
.sw span{display:block;width:40px;height:40px;border-radius:50%;border:3px solid transparent}
.sw input:checked+span{border-color:var(--tx);box-shadow:inset 0 0 0 3px var(--card)}
:focus-visible{outline:2px solid var(--acl);outline-offset:2px}
/* Completion pass: shared controls and the original mobile design language. */
a.btn{display:flex;align-items:center;justify-content:center;text-decoration:none}.btn{display:flex;align-items:center;justify-content:center;gap:10px}.btn:disabled,button:disabled{opacity:.55;cursor:wait}button.text-button{width:100%;border:0;background:none;color:var(--mu);padding:14px 4px 2px;font-size:13px}.block{display:block}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.3px;color:var(--mu);margin-bottom:7px}.home-heading{gap:8px}.home-heading h1{font-size:25px}.home-heading .pill{font-size:11px;padding:8px;white-space:nowrap}.filters{margin:20px 0 16px}.item-value{gap:8px;flex-shrink:0}.session-label{justify-content:flex-start;min-width:0;gap:2px}.session-label>span{min-width:0}.note-preview{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list .item{transition:background .15s,color .15s;gap:10px}.list .item:hover,.list .item:focus-visible,.list .item:active{background:var(--chip);border-radius:10px}.settings-list{margin-top:20px;padding:4px 8px}.settings-list .item{min-height:76px;padding:10px 12px}.settings-list .item b{font-weight:500}.settings-list .item .m.block{font-size:11px;margin-top:4px}.settings-list .item.danger{color:var(--err)}.settings-list .item-value{color:var(--mu)}.profile-link,.action-card,.growth-link{color:var(--tx);text-decoration:none}.profile-link{gap:12px}.profile-copy{flex:1;min-width:0}.profile-copy .m{font-size:12px;margin-top:4px}.growth-link{display:block;margin-top:16px}.growth-link:hover,.action-card:hover{outline:1px solid var(--ln)}.quiet-link{display:inline-flex;align-items:center;gap:5px;color:var(--mu);font-size:12px}.logout-form{margin:24px 0}.goals-card h2{font-size:16px}.goal-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 16px}.goal{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.goal .ring{width:104px;height:104px;margin-bottom:5px}.goal .ring span{width:84px;height:84px;font-size:23px}.goal .daily{background:conic-gradient(var(--amb) calc(var(--p)*1%),var(--ln) 0)}.goal>b{font-size:14px}.goal>.m{font-size:12px}.goal-message{padding:13px 0;border-top:1px solid var(--ln);text-align:center}.goals-card>.quiet-link{display:flex;justify-content:center;font-size:11px}.encouragement{padding:18px 10px;text-align:center}.subject-total{padding:8px 0;font-size:14px}.subject-total b{font-size:13px;color:var(--mu);font-weight:500}.activity-summary>.big{margin-top:8px}.activity-summary>p{margin:8px 0}.chart-values{margin-top:18px}.chart-values summary{font-size:12px;color:var(--mu);cursor:pointer}.chart-values .row{padding:5px 0}.bars{overflow-x:auto;min-height:160px}.bars .bar{min-width:6px}.bars .bar span{font-size:10px}.bars .col{min-height:100px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 6px 16px}.empty p{max-width:290px}.empty-symbol{color:var(--ac);margin-bottom:14px}.empty a{font-size:14px}.pagination{margin-top:24px;gap:10px}.plant-card{padding:12px 24px 24px}.plant-illustration{width:220px;height:205px;max-width:100%;color:var(--tx)}.plant-illustration svg{width:100%;height:100%}.plant-card h2{margin:2px 0}.plant-card p{margin:5px 0 16px}.stage-dots{display:flex;gap:10px;margin:4px 0 10px}.stage-dots i{width:12px;height:12px;background:var(--ln);border-radius:50%}.stage-dots i.filled{background:var(--ac)}.stage-dots i.current{outline:4px solid var(--ln)}.plant-progress{width:100%}.plant-progress i,.challenge .prog i{background:var(--ac)}.challenge .row{gap:12px}.challenge b{font-size:14px}.challenge .amb{font-size:13px;white-space:nowrap}.badges{display:grid;grid-template-columns:1fr 1fr;gap:12px}.badge{background:var(--card);border-radius:20px;padding:18px 12px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:7px}.badge-medal{width:52px;height:52px;background:var(--chip);color:var(--mu);border-radius:50%;display:grid;place-items:center;font-size:30px}.badge.earned .badge-medal{background:var(--amb);color:var(--bg)}.badge b{font-size:13px}.badge .m{font-size:11px}.badge p{margin:2px 0}.help-link{margin:24px 0}.help-section{scroll-margin-top:20px}.help-section h2{font-size:18px}.help-section p,.help-section li{font-size:14px;color:var(--mu);line-height:1.65}.help-section ul,.help-section ol{padding-left:20px}.help-section summary{font-weight:500;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between}.help-section summary::after{content:'+';color:var(--mu);font-size:20px}.help-section[open] summary::after{content:'−'}.help-section p:last-child{margin-bottom:0}.help-intro{line-height:1.6}.help-index{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.help-index a{font-size:12px}.reminder-explainer{padding:14px;border-radius:14px;background:var(--chip);font-size:13px;color:var(--mu)}.checkbox-label{display:flex;align-items:center;gap:12px;min-height:48px}input[type=checkbox]{width:22px;height:22px;accent-color:var(--ac)}
.mini-timer{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:452px;display:flex;align-items:center;gap:4px;padding:10px 10px 10px 14px;border-radius:19px;background:var(--card);border:1px solid var(--ln);box-shadow:0 8px 32px #0004;z-index:15}.mini-timer[hidden]{display:none}.mini-main{display:flex;align-items:center;gap:2px;min-width:0;flex:1;color:var(--tx);text-decoration:none;min-height:42px}.mini-main>span{min-width:0}.mini-main b{display:block;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:180px}.mini-main .m{font-size:11px;font-variant-numeric:tabular-nums}.mini-control{min-width:50px;min-height:44px;border-radius:12px;background:var(--chip);border:0;color:var(--tx);font-size:12px;font-weight:700}.mini-finish{display:grid;place-items:center;background:var(--ac);color:var(--actx);min-width:44px}.has-timer main{padding-bottom:calc(195px + env(safe-area-inset-bottom))}.timer-page main{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.timer-page .focus{min-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.toast{position:fixed;left:50%;transform:translateX(-50%);top:calc(12px + env(safe-area-inset-top));max-width:440px;width:calc(100% - 32px);padding:14px 18px;background:var(--tx);color:var(--bg);box-shadow:0 6px 24px #0004;border-radius:14px;font-size:13px;z-index:100}.toast[hidden]{display:none}.sheet-open{overflow:hidden}.panel:focus{outline:none}.panel .btn{margin-top:14px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acl);outline-offset:3px}input[type=hidden]{display:none!important}
@media(max-width:359px){main{padding-left:14px;padding-right:14px}.home-heading{flex-wrap:wrap}.goal-pair{gap:4px}.goal>.m{font-size:11px}.mini-main b{max-width:125px}.tring{width:250px;height:250px}.tring>div{width:226px;height:226px}.time{font-size:42px}.settings-list .item .m.block{max-width:205px}.nav a{min-width:52px}.challenge b{font-size:12px}}
@media(prefers-reduced-motion:no-preference){.prog i{transition:width .4s ease}.plant-illustration{animation:plant-arrive .6s ease both}@keyframes plant-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}

/* Keep labels readable and controls reachable on smaller screens. */
.list .item>span:first-child{min-width:0;overflow-wrap:anywhere}
.session-label{flex:1}
.session-label b{overflow-wrap:anywhere}
.note-preview{max-width:100%}
.item-value b{white-space:nowrap}
.subject-total{gap:12px}
.subject-total>span{min-width:0;overflow-wrap:anywhere}
.subject-total>b{flex-shrink:0;white-space:nowrap}
.row.sec{flex-wrap:wrap;gap:6px 12px}
/* Connection and installation states stay visible until they are resolved. */
[hidden]{display:none!important}
.connection-banner{position:sticky;top:env(safe-area-inset-top);z-index:30;display:flex;align-items:center;gap:12px;max-width:480px;margin:8px auto 0;padding:12px 16px;background:var(--chip);border-bottom:1px solid var(--ln);border-radius:0 0 14px 14px;font-size:12px}
.connection-banner>span{flex:1;line-height:1.5}
.connection-retry,.connection-banner>a{flex-shrink:0;border:1px solid var(--ln);border-radius:10px;background:var(--card);color:var(--acl);padding:10px;min-height:44px;font-size:12px;text-decoration:none}
.session-timing-note{margin:0;line-height:1.55}
.error-page{padding-top:calc(60px + env(safe-area-inset-top))}
.error-page>h1{margin-top:24px}
.error-login{display:block;text-align:center;margin:18px 0 4px;font-size:14px}

@media(min-width:600px){.nav{padding-inline:max(0px,calc((100% - 480px)/2))}}
/* App confirmations use the same cards and controls as the rest of Sprout. */
.confirmation-dialog{width:calc(100% - 32px);max-width:400px;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--ln);border-radius:24px;background:var(--card);color:var(--tx);box-shadow:0 20px 70px #0006;overflow:auto}
.confirmation-dialog::backdrop{background:rgba(5,8,13,.66);backdrop-filter:blur(4px)}
.confirmation-content{padding:24px}
.confirmation-content h2{font-size:22px;line-height:1.25;margin:0 0 12px;overflow-wrap:anywhere}
.confirmation-content p{font-size:14px;line-height:1.65;margin:0 0 22px;overflow-wrap:anywhere}
.confirmation-actions{display:flex;gap:12px}
.confirmation-actions .btn{flex:1;min-width:0;margin:0;font-size:14px}
.confirmation-actions .destructive{background:var(--err);color:var(--bg)}
.confirmation-open{overflow:hidden}
@media(max-width:359px){.confirmation-content{padding:20px}.confirmation-actions{gap:8px}.confirmation-actions .btn{font-size:13px}}
/* Subtle motion, with native page transitions as a progressive enhancement. */
@property --p{syntax:"<number>";inherits:false;initial-value:0}
@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .nav{view-transition-name:app-navigation}
  .mini-timer{view-transition-name:active-timer}
  ::view-transition-old(root){animation:app-fade-out 120ms ease-out both}
  ::view-transition-new(root){animation:app-fade-in 160ms ease-out both}
  ::view-transition-group(app-navigation),::view-transition-group(active-timer){animation-duration:160ms}
  ::view-transition-old(app-navigation),::view-transition-new(app-navigation),::view-transition-old(active-timer),::view-transition-new(active-timer){animation:none}
  .btn,.chip,.ico,.nav a,.mini-control,.list .item{transition:transform 120ms ease,background-color 140ms ease,color 140ms ease,border-color 140ms ease}
  .btn:not(:disabled):active,.chip:active,.ico:active,.nav a:active,.mini-control:not(:disabled):active{transform:scale(.96)}
  .list .item:active{transform:scale(.99)}
  .panel{animation:app-sheet-in 200ms cubic-bezier(.2,.8,.2,1) both}
  .confirmation-dialog[open]{animation:app-dialog-in 170ms cubic-bezier(.2,.8,.2,1) both}
  .confirmation-dialog[open]::backdrop{animation:app-fade-in 150ms ease-out both}
  .ring,.tring{transition:--p 400ms ease-out}
  .bars .col i{transform-origin:bottom;animation:app-bar-in 260ms ease-out both}
  html{scroll-behavior:smooth}
  @keyframes app-fade-out{to{opacity:0}}
  @keyframes app-fade-in{from{opacity:0}to{opacity:1}}
  @keyframes app-sheet-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
  @keyframes app-dialog-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
  @keyframes app-bar-in{from{transform:scaleY(.85);opacity:.3}to{transform:scaleY(1);opacity:1}}
}
.btn[aria-busy=true]::after,.mini-control[aria-busy=true]::after{content:"";width:14px;height:14px;flex:none;display:inline-block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:app-working 650ms linear infinite}
.mini-control[aria-busy=true]{display:flex;align-items:center;justify-content:center;gap:5px}
@keyframes app-working{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* The picker follows the pointer; motion is controlled by the sheet controller. */
.sheet .panel{animation:none;will-change:transform;overscroll-behavior:contain}
.sheet-handle{display:flex;align-items:center;justify-content:center;width:100%;height:32px;border:0;background:transparent;color:inherit;touch-action:none;cursor:grab;padding:0;margin:0 0 8px}
.sheet-handle:active{cursor:grabbing}.sheet-handle .grab{display:block;margin:0}
.sheet-handle:focus-visible{outline:2px solid var(--mint);outline-offset:2px;border-radius:12px}
.study-days{border:0;padding:0;margin:0;min-width:0}.study-days legend{font-weight:700}.study-days .chips{flex-wrap:wrap}
.plan-row{display:block;position:relative;color:inherit;text-decoration:none;padding:14px 28px 14px 8px;border-radius:12px}.plan-row:hover{background:var(--bg)}.plan-row>svg{position:absolute;right:6px;top:24px}
.cycle-card{margin-top:20px}.cycle-card .btn{margin:8px 0 0}.focus:has(.cycle-card:not([hidden])) .center{margin-top:20px!important}

/* Explicit checkbox colours keep unchecked controls consistent across browsers. */
input[type=checkbox]:not(.sw input){appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;flex-shrink:0;width:22px;height:22px;border:1.5px solid var(--mu);border-radius:6px;background:var(--chip);cursor:pointer}
input[type=checkbox]:not(.sw input):checked{background:var(--ac);border-color:var(--ac)}
input[type=checkbox]:checked::after{content:'';width:6px;height:11px;border:solid var(--actx);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.session-ratings{border:0;padding:0;margin:12px 0;min-width:0}.session-ratings legend{font-weight:700}.session-ratings .f{margin-top:16px}.session-ratings .m{font-weight:400;line-height:1.5}
.plan-subject{padding:20px 0;border-top:1px solid var(--ln);overflow-wrap:anywhere;scroll-margin-top:16px}.plan-subject h3{font-size:17px;margin:0}.plan-subject .row{gap:10px;flex-wrap:wrap}.plan-subject .m{font-size:12px;line-height:1.6}.plan-reason{font-size:14px;line-height:1.55}.plan-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.plan-actions a{font-size:12px;text-decoration:none}.assessment-list{list-style:none;padding:0;margin:12px 0}.assessment-list a{display:block;color:var(--tx);text-decoration:none;background:var(--chip);padding:12px;border-radius:12px;margin:8px 0}.assessment-list a:hover{outline:1px solid var(--mu)}.assessment-list b{font-size:13px}
@media(forced-colors:active){input[type=checkbox]:not(.sw input){appearance:auto}}

.rating-question{border:0;padding:0;margin:24px 0 4px;min-width:0}.rating-question legend{font-size:15px;font-weight:600}.rating-question p{margin:8px 0 12px}.rating-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.rating-choice{position:relative;cursor:pointer}.rating-choice input{position:absolute;width:1px;height:1px;opacity:0;margin:0}.rating-choice span{display:grid;place-items:center;min-height:48px;background:var(--chip);border:2px solid transparent;border-radius:13px;color:var(--tx);font-size:17px;font-weight:700}.rating-choice input:checked+span{background:var(--ac);color:var(--actx);border-color:var(--ac)}.rating-choice input:focus-visible+span{outline:2px solid var(--acl);outline-offset:3px}.rating-choice:hover span{border-color:var(--mu)}.rating-ends{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:11px!important}.rating-unrated{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:12px;color:var(--mu);cursor:pointer}.rating-unrated input{width:16px;height:16px;accent-color:var(--ac);margin:0}
@media(prefers-reduced-motion:no-preference){.rating-choice span{transition:background .15s,color .15s,transform .15s}.rating-choice:active span{transform:scale(.95)}}

/* Keep Home concise, with the full detail one tap away. */
.page-heading{justify-content:flex-start;gap:12px;text-align:left}.page-heading h1{flex:1}
.plan-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin:18px 0 20px}
.btn.btn-small{width:auto;height:42px;min-height:42px;padding:0 16px;border-radius:13px;font-size:14px;margin:0}
.plan-details>.plan-subject:first-child{border-top:0;padding-top:0}
.plan-subject:last-child{padding-bottom:0}
.plan-actions{margin-bottom:4px}
.home-plan h2{font-size:17px;margin:0}.home-plan>.row{gap:10px;margin-bottom:6px}.home-plan>.row>a{flex-shrink:0}
.home-plan-subject{display:flex;align-items:center;gap:12px;min-height:62px;padding:10px 0;color:var(--tx);text-decoration:none;border-bottom:1px solid var(--ln)}
.home-plan-subject:has(+.home-plan-add),.home-plan-subject:last-child{border-bottom:0}.home-plan-copy{flex:1;min-width:0}.home-plan-copy>b{font-size:14px;font-weight:500}.home-plan-hint{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin-top:4px}.home-plan-subject>svg{flex:none;color:var(--mu)}
.home-plan-add{display:flex;align-items:center;min-height:44px;margin-top:4px}.home-plan-subject:hover{color:var(--acl)}
/* Centre native date/time text, including the WebKit editing subfields. */
.f>input:is([type=date],[type=time],[type=datetime-local]){padding:12px 14px;line-height:22px}
input:is([type=date],[type=time],[type=datetime-local])::-webkit-datetime-edit{padding:0;line-height:22px}
input:is([type=date],[type=time],[type=datetime-local])::-webkit-datetime-edit-fields-wrapper{padding:0}
input:is([type=date],[type=time],[type=datetime-local])::-webkit-date-and-time-value{min-height:22px;line-height:22px;text-align:left;margin:0}
/* A garden that rewards consistency without crowding the daily dashboard. */
.session-recap{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-top:16px}.session-recap>b{font-size:28px;color:var(--acl)}.session-recap>span{font-size:13px;color:var(--mu)}
.streak-number{font-size:36px;color:var(--amb)}.streak-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:18px 0}.streak-week>div{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;color:var(--mu)}.streak-week b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--chip);font-size:17px}.streak-week .done b{background:var(--ac);color:var(--actx)}.streak-week .today b{outline:2px solid var(--amb);outline-offset:3px}
.garden-hero{height:220px;width:240px}.next-unlock{display:flex;align-items:center;gap:12px}.next-unlock h2{font-size:18px;margin:4px 0}.next-unlock p{margin:4px 0}.next-plant{width:85px;flex:none}.next-plant svg{width:100%;display:block}
.garden-collection>summary,.milestone-collection>summary,.calendar-month>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-weight:600}.garden-collection>summary::before,.milestone-collection>summary::before{content:'+';color:var(--acl)}.garden-collection[open]>summary::before,.milestone-collection[open]>summary::before{content:'−'}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.collection-item>a,.collection-item>div{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 4px 12px;background:var(--chip);border-radius:14px;color:var(--tx);text-decoration:none;min-height:150px}.collection-item svg{width:100%;height:90px}.collection-item b{font-size:12px}.collection-item small{font-size:10px;color:var(--mu);margin-top:5px}.collection-item.locked svg{filter:grayscale(1);opacity:.4}.collection-item [aria-current=true]{outline:2px solid var(--acl)}
.study-calendar h2{font-size:17px;margin:0}.study-calendar>.row{flex-wrap:wrap;gap:10px}.calendar-month{border-top:1px solid var(--ln);padding:6px 0}.calendar-month summary{font-size:13px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:8px 0 12px}.calendar-day{display:grid;place-items:center;min-height:34px;border-radius:8px;background:var(--chip);font-size:11px;color:var(--mu)}.calendar-day.heat-1{background:color-mix(in srgb,var(--ac) 25%,var(--chip));color:var(--tx)}.calendar-day.heat-2{background:color-mix(in srgb,var(--ac) 45%,var(--chip));color:var(--tx)}.calendar-day.heat-3{background:color-mix(in srgb,var(--ac) 70%,var(--chip));color:var(--actx)}.calendar-day.heat-4{background:var(--ac);color:var(--actx)}.calendar-day:focus-visible{outline:2px solid var(--amb);outline-offset:2px}.milestone-collection .badges{margin-top:16px}.celebration-settings .opt{gap:16px;border:0}.celebration-settings .m{font-size:11px;margin-top:4px}
.celebration-dialog{border:1px solid var(--ln);border-radius:28px;background:var(--card);color:var(--tx);padding:0;width:calc(100% - 32px);max-width:420px;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 24px 100px #0007}.celebration-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.celebration-content{padding:20px 24px 16px;text-align:center;position:relative;overflow:hidden}.celebration-plant{width:170px;height:155px;margin:0 auto}.celebration-plant svg{width:100%;height:100%}.celebration-kicker{font-size:12px;color:var(--acl);margin:8px 0;text-transform:uppercase;letter-spacing:1px}.celebration-content h2{font-size:26px}.celebration-content>.m{line-height:1.5}.celebration-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0}.celebration-stats span{background:var(--chip);border-radius:14px;padding:12px 4px;font-size:10px;color:var(--mu)}.celebration-stats b{display:block;font-size:24px;color:var(--acl);font-variant-numeric:tabular-nums}.celebration-events{list-style:none;margin:12px 0 20px;padding:0;font-size:13px}.celebration-events li{padding:8px 0;border-top:1px solid var(--ln)}.celebration-preference{font-size:10px!important;margin-bottom:0}
@media(prefers-reduced-motion:no-preference){.celebration-dialog[open] .celebration-content{animation:celebration-arrive .45s cubic-bezier(.2,.8,.2,1) both}.celebration-plant{animation:celebration-grow .8s cubic-bezier(.2,.8,.2,1) both}.garden-hero .garden-foliage{animation:garden-unfold .8s cubic-bezier(.2,.8,.2,1) both}.streak-week .done b{animation:streak-arrive .45s ease both}.celebration-stats b{animation:celebration-grow .6s .15s ease both}@keyframes celebration-arrive{from{opacity:0;transform:translateY(30px) scale(.94)}to{opacity:1;transform:none}}@keyframes celebration-grow{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}@keyframes garden-unfold{from{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:scaleY(1)}}@keyframes streak-arrive{from{opacity:0;transform:translateY(6px) scale(.8)}to{opacity:1;transform:none}}}
@media(max-width:359px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.celebration-content{padding:16px}.celebration-content h2{font-size:23px}.streak-week{gap:3px}.streak-week b{width:28px;height:28px}}
.activity-filters{display:flex;flex-direction:column;gap:12px}.activity-filter-row{display:flex;gap:12px;align-items:flex-end}.activity-filter-row>.f{flex:1;min-width:0}.activity-filter-row>.btn{flex:none;min-height:48px}.optional-reflection>summary,.past-assessments>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;min-height:44px;font-size:14px}.optional-reflection>summary::after,.past-assessments>summary::after{content:'+';color:var(--acl)}.optional-reflection[open]>summary::after,.past-assessments[open]>summary::after{content:'−'}
.level-medallion{width:125px;height:125px;margin:15px auto;display:flex;flex-direction:column;align-items:center;justify-content:center;border:5px solid var(--amb);border-radius:32px;background:var(--chip);box-shadow:0 0 0 8px color-mix(in srgb,var(--amb) 12%,transparent);color:var(--amb)}.level-medallion span{font-size:12px;letter-spacing:2px}.level-medallion b{font-size:52px;line-height:1.1}.streak-medallion{position:relative;display:flex;flex-direction:column;align-items:center;color:var(--amb);padding:5px}.streak-medallion b{font-size:36px;line-height:1.2}

.celebration-settings .text-button{min-height:44px}

/* The dialog owns the viewport so its canvas can burst beyond the celebration card. */
.celebration-dialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;padding:24px 16px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:auto}
.celebration-dialog[open]{display:grid;place-items:center}
.celebration-content{width:100%;max-width:420px;max-height:calc(100dvh - 48px);overflow:auto;background:var(--card);border:1px solid var(--ln);border-radius:28px;box-shadow:0 24px 100px #0007;z-index:1}
.celebration-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
@media(prefers-reduced-motion:reduce){.celebration-confetti{display:none}}
/* Keep the main screens calm; deeper choices open only when wanted. */
.revision-summary h2{font-size:17px;margin:0}.revision-summary>.row{gap:12px;flex-wrap:wrap}.topic-filter{display:flex;align-items:flex-end;gap:12px;margin:16px 0}.topic-filter>.f{flex:1;min-width:0}.topic-filter .btn{height:48px}.topic-card>.row{gap:12px;overflow-wrap:anywhere}.topic-card>a{font-size:13px;text-decoration:none}.topic-review{margin-top:14px}.topic-review>summary,.picker-topic>summary,.freeze-info>summary,.garden-customise>summary,.weekly-challenges>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;cursor:pointer;font-size:14px}.topic-review>summary::after,.picker-topic>summary::after,.garden-customise>summary::after,.weekly-challenges>summary::after{content:'+';color:var(--acl)}.topic-review[open]>summary::after,.picker-topic[open]>summary::after,.garden-customise[open]>summary::after,.weekly-challenges[open]>summary::after{content:'−'}.picker-topic{margin:8px 0 12px}.picker-topic .f{margin-top:8px}.timer-topic{margin-top:-14px;margin-bottom:18px;max-width:100%;overflow-wrap:anywhere}.recap-entry{min-height:44px}.recap-nav{gap:10px;flex-wrap:wrap}.recap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.recap-grid>div{padding:14px;background:var(--chip);border-radius:14px;display:flex;flex-direction:column;gap:6px}.recap-grid b{font-size:24px;color:var(--acl)}.recap-grid span{font-size:12px;color:var(--mu)}.freeze-info{color:#87CBFF;margin-top:12px}.freeze-info>summary{justify-content:flex-start;font-size:13px}.freeze-info p{line-height:1.6}.streak-week .frozen b,.calendar-day.frozen{background:#294A67;color:#A5DCFF;outline:1px solid #70B7E7}.compact-challenge{padding:16px 0;border-top:1px solid var(--ln)}.compact-challenge:last-child{padding-bottom:4px}.compact-challenge>.row{gap:10px}.compact-challenge .amb{white-space:nowrap;font-size:12px}.freeze-reward{margin:8px 0}.garden-customise .stack{margin-top:14px}
.garden-scene{position:relative;isolation:isolate;overflow:hidden}.garden-scene[data-backdrop=meadow]{background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--ac) 10%,transparent),transparent 65%),var(--card)}.garden-scene[data-backdrop=twilight]{background:radial-gradient(ellipse at 50% 15%,#66558C55,transparent 70%),var(--card)}.garden-scene[data-backdrop=sunrise]{background:radial-gradient(ellipse at 50% 20%,#FFB86B55,transparent 70%),var(--card)}.garden-scene[data-backdrop=aurora]{background:radial-gradient(ellipse at 25% 10%,#7CF0C145,transparent 65%),radial-gradient(ellipse at 85% 30%,#B79CFF55,transparent 60%),var(--card)}
[data-pot=stone] .garden-pot path:nth-child(1){fill:#879BA9}[data-pot=stone] .garden-pot path:nth-child(2){fill:#B7C7D1}[data-pot=ceramic] .garden-pot path:nth-child(1){fill:#C6DCEB}[data-pot=ceramic] .garden-pot path:nth-child(2){fill:#6EA8FF}[data-pot=gold] .garden-pot path:nth-child(1){fill:#C59C44}[data-pot=gold] .garden-pot path:nth-child(2){fill:#FFE09A}
.calendar-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;cursor:pointer;font-size:14px}.calendar-disclosure>summary::after{content:'+';color:var(--acl)}.calendar-disclosure[open]>summary::after{content:'−'}.calendar-disclosure>.row{margin-top:12px}.calendar-disclosure h2{font-size:14px;color:var(--mu)}.collection-item form{margin:0}.collection-choice{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 4px 12px;background:var(--chip);border-radius:14px;border:0;color:var(--tx);min-height:150px}.collection-choice[aria-pressed=true]{outline:2px solid var(--acl)}.topic-review form .btn{margin-top:10px}

/* Shared page alignment, clear selected controls and compact disclosures. */
main>h1, .page-heading h1{text-align:left}
.row:has(>a[data-back]){justify-content:flex-start;gap:12px}
.garden-collection>summary,.milestone-collection>summary{justify-content:flex-start}
.garden-collection>summary>.m,.milestone-collection>summary>.m{margin-left:auto}
.reward-banner{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:452px;background:var(--card);border:1px solid var(--ac);border-radius:16px;padding:12px;box-shadow:0 8px 28px #0005;z-index:18;display:flex;align-items:center;gap:10px}
.reward-banner[hidden]{display:none}.reward-banner>a{color:var(--tx);text-decoration:none;flex:1}.reward-banner b{font-size:14px;display:block}.reward-banner .m{display:block;margin-top:4px}.reward-banner button{border:0;border-radius:10px;background:var(--chip);color:var(--tx);min-width:44px;min-height:44px}
.notification-item h2{font-size:16px}.notification-item p{margin:8px 0}.notification-item.unread{border-left:3px solid var(--ac)}.notification-actions{gap:10px;margin-top:16px}.notification-settings .opt{gap:20px;padding:10px 0}.notification-settings .opt .m{margin-top:5px}.notification-settings .opt span{min-width:0}.notification-settings .btn{margin-top:16px}
@media(prefers-reduced-motion:no-preference){.reward-banner{animation:reward-arrive .3s ease-out}@keyframes reward-arrive{from{opacity:0;translate:0 -15px}to{opacity:1;translate:0 0}}}
/* Home inbox stays in a dismissible drawer, with the full history one tap away. */
.home-date{margin-top:-10px;margin-bottom:2px}.notification-bell{position:relative;flex:none}.notification-dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;background:#F04E57;box-shadow:0 0 0 2px var(--card)}.notification-dot[hidden]{display:none}
.notifications-open{overflow:hidden}.notifications-overlay{width:calc(100% - 24px);max-width:456px;max-height:min(80dvh,740px);padding:0;border:1px solid var(--ln);border-radius:24px;color:var(--tx);background:var(--card);box-shadow:0 20px 70px #0006;overflow:hidden}.notifications-overlay::backdrop{background:#05080da6;backdrop-filter:blur(4px)}
.notification-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 8px}.notification-overlay-header h2{font-size:20px;margin:0}.notification-overlay-header .ico{background:var(--chip);font-size:26px}.notification-overlay-scroll{padding:0 16px 18px;max-height:calc(min(80dvh,740px) - 76px);overflow:auto;overscroll-behavior:contain}.notifications-overlay .notification-item{background:var(--bg);padding:14px}.notifications-overlay h3{font-size:15px;margin:0}.notifications-overlay .notification-item p{font-size:14px}.notification-overlay-footer{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-top:20px;padding-top:18px;border-top:1px solid var(--ln)}
@media(prefers-reduced-motion:no-preference){
 .notifications-overlay[open]{animation:notification-drawer-in 220ms cubic-bezier(.2,.8,.2,1) both}.notifications-overlay.closing{animation:notification-drawer-out 160ms ease-in both}.notifications-overlay[open]::backdrop{animation:app-fade-in 180ms ease both}.notifications-overlay.closing::backdrop{animation:app-fade-out 160ms ease both}
 @keyframes notification-drawer-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes notification-drawer-out{to{opacity:0;transform:translateY(22px)}}
 /* Retained mini timers stay still between ordinary pages. Only entry/exit gets motion. */
 .timer-page .focus{view-transition-name:full-timer}
 ::view-transition-group(full-timer),::view-transition-group(active-timer){animation-duration:280ms}
 ::view-transition-old(active-timer):only-child{animation:timer-mini-out 90ms ease-in both}
 ::view-transition-new(full-timer):only-child{animation:timer-full-in 190ms 90ms cubic-bezier(.2,.8,.2,1) both}
 ::view-transition-old(full-timer):only-child{animation:timer-full-out 110ms ease-in both}
 ::view-transition-new(active-timer):only-child{animation:timer-mini-in 170ms 110ms cubic-bezier(.2,.8,.2,1) both}
 @keyframes timer-mini-out{to{opacity:0;transform:translateY(-12px) scale(.97)}}
 @keyframes timer-full-in{from{opacity:0;transform:translateY(34px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
 @keyframes timer-full-out{to{opacity:0;transform:translateY(32px) scale(.98)}}
 @keyframes timer-mini-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
}

.navigating::before{content:'';position:fixed;inset:0 0 auto;height:3px;background:var(--ac);z-index:200;animation:navigation-progress 1s ease-in-out infinite;transform-origin:left}.navigation-error{position:fixed;z-index:120;left:50%;transform:translateX(-50%);top:calc(12px + env(safe-area-inset-top));width:calc(100% - 24px);max-width:456px;display:flex;align-items:center;gap:12px;padding:14px;background:var(--card);color:var(--tx);border:1px solid var(--err);border-radius:16px;box-shadow:0 8px 28px #0005;font-size:13px}.navigation-error>span{flex:1}.navigation-error .chip{flex:none}
@keyframes navigation-progress{0%{transform:scaleX(.1);opacity:.6}50%{transform:scaleX(.8);opacity:1}100%{transform:scaleX(1);opacity:.4}}
@media(prefers-reduced-motion:reduce){.navigating::before{animation:none}}

/* Shared surface treatment: solid readable content, glass only on raised layers. */
main h1[tabindex="-1"]:focus{outline:none}
.btn:not(.ghost):not(.danger):not(.destructive),.nav .fab,.ico.solid,.mini-finish{background:linear-gradient(145deg,var(--ac),var(--accent-end));box-shadow:inset 0 1px 0 #ffffff26,0 4px 16px var(--accent-glow)}
.btn.ghost,.chip,.mini-control:not(.mini-finish),.rating-choice span,.seg,.collection-choice{box-shadow:inset 0 1px 0 var(--highlight)}
.pill,.ico.round{box-shadow:inset 0 0 0 1px var(--edge),var(--shadow)}
.nav{border-top-color:var(--edge);box-shadow:0 -8px 30px #00000008,inset 0 1px 0 var(--highlight)}
.nav .fab{box-shadow:inset 0 1px 0 #ffffff40,0 5px 22px var(--accent-glow),0 0 0 5px var(--nav)}
.nav a.on:not(.fab) .i{filter:drop-shadow(0 0 6px var(--accent-glow))}
.panel,.notifications-overlay,.confirmation-dialog,.celebration-content{box-shadow:inset 0 1px 0 var(--highlight),var(--float-shadow)}
.mini-timer{border-color:var(--edge);box-shadow:inset 0 1px 0 var(--highlight),var(--float-shadow)}
.panel{border:1px solid var(--edge);border-bottom:0}
.notifications-overlay,.confirmation-dialog,.celebration-content{border-color:var(--edge)}
.seg button[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--edge),0 2px 7px #0000000d}
input:not([type=radio]):not([type=checkbox]),select,textarea{box-shadow:inset 0 1px 3px #00000008}
input:not([type=radio]):not([type=checkbox]):focus,select:focus,textarea:focus{border-color:var(--acl)}
.freeze-info{color:var(--frost)}
@supports ((backdrop-filter:blur(16px)) or (-webkit-backdrop-filter:blur(16px))){
 .nav{background:var(--nav-glass);-webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%)}
 .mini-timer,.sheet .panel,.notifications-overlay,.confirmation-dialog,.celebration-content{background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(120%);backdrop-filter:blur(18px) saturate(120%)}
}
@media(hover:hover){.btn:not(:disabled):hover,.nav .fab:hover{filter:brightness(1.04)}.ico.round:hover{background:var(--chip)}}
@media(prefers-reduced-motion:no-preference){.btn,.chip,.ico.round,.mini-control,.collection-choice{transition:background-color .16s,box-shadow .16s,filter .16s}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){
 html{background:var(--bg);--chrome:var(--bg)}
 body{background:transparent}
 .nav{background:var(--nav);-webkit-backdrop-filter:none;backdrop-filter:none}
 .mini-timer,.sheet .panel,.notifications-overlay,.confirmation-dialog,.celebration-content{background:var(--card);-webkit-backdrop-filter:none;backdrop-filter:none}
 .card{background:var(--card)}
}
@media(prefers-contrast:more){.card,.pill,.ico.round{box-shadow:inset 0 0 0 1px var(--mu)}.nav,.panel,.mini-timer,.notifications-overlay,.confirmation-dialog,.celebration-content{border-color:var(--mu)}}
@media(forced-colors:active){.card,.btn,.chip,.nav,.mini-timer,.collection-choice{border:1px solid ButtonText}.nav .fab{outline:1px solid ButtonText}}

.push-settings>.m{line-height:1.6}.push-settings .opt{gap:18px;padding:12px 0}.push-settings .opt span{min-width:0}.push-settings .opt .m{display:block;margin-top:4px;font-size:12px}.push-settings .push-time{margin-top:18px}.push-settings [data-push-preferences][hidden]{display:none}

/* Reflection controls share the depth and selected treatment of primary actions. */
.rating-choice span{background:linear-gradient(145deg,var(--surface-sheen),transparent),var(--chip);border:1px solid var(--edge);box-shadow:inset 0 1px 0 var(--highlight),0 3px 8px #0000000c;border-radius:15px}
.rating-choice input:checked+span{background:linear-gradient(145deg,var(--ac),var(--accent-end));border-color:var(--ac);color:var(--actx);box-shadow:inset 0 1px 0 #ffffff30,0 3px 13px var(--accent-glow)}
.rating-choice:hover span{border-color:var(--mu)}
.session-score-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.session-score{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:99px;padding:4px 7px;background:linear-gradient(140deg,var(--surface-sheen),transparent),var(--chip);box-shadow:inset 0 0 0 1px var(--edge);font-size:10px;color:var(--mu);line-height:1.3}
.session-score b{font-size:11px;font-weight:700;color:var(--tx)}.session-score small{font-size:9px;color:var(--mu);font-weight:400}
.session-history-item{align-items:flex-start!important;padding-block:13px!important}.session-history-item>.item-value{padding-top:2px}.session-history-item>.session-label{flex:1}.session-history-item .session-label>.d{align-self:flex-start;margin-top:6px}
/* One calm sheet and divided rows, without cards inside another card. */
.notifications-overlay{width:100%;max-width:480px;margin:auto auto 0;max-height:calc(100dvh - env(safe-area-inset-top) - 16px);border-radius:28px 28px 0 0;border-bottom:0}
.notification-overlay-header{align-items:flex-start;padding:24px 22px 10px;gap:16px}.notification-overlay-header>div{min-width:0;flex:1}.notification-overlay-header h2{font-size:23px;letter-spacing:-.4px}.notification-overlay-header p{margin:7px 0 0;font-size:12px;line-height:1.5}.notification-overlay-header .ico{flex:none;width:40px;height:40px;font-size:inherit;color:var(--mu)}
.notification-overlay-scroll{padding:0 22px calc(22px + env(safe-area-inset-bottom));max-height:calc(100dvh - env(safe-area-inset-top) - 140px)}
.notification-overlay-tools{display:flex;justify-content:flex-end}.notification-read-button{min-height:40px;padding:0;border:0;background:none;color:var(--acl);font-size:12px;font-weight:500}.notification-read-button[hidden]{display:none}
.notifications-overlay .notification-item{margin:0;padding:18px 0;border:0;border-bottom:1px solid var(--edge);border-radius:0;background:none;box-shadow:none}.notifications-overlay .notification-item:last-child{border-bottom:0}.notifications-overlay .notification-item h3{font-size:14px;line-height:1.4;font-weight:600;letter-spacing:0}.notifications-overlay .notification-item p{font-size:13px;color:var(--mu);line-height:1.6;margin:6px 0 9px}.notifications-overlay .notification-item time{font-size:10px}.notifications-overlay .notification-item.unread h3::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ac);margin-left:8px;vertical-align:middle}
.notification-overlay-footer{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 18px;padding-top:14px;margin-top:6px;border-color:var(--edge)}.notification-overlay-footer a{min-height:44px;display:inline-flex;align-items:center;font-size:12px;text-decoration:none}.notification-view-all{gap:4px;color:var(--tx)}
@media(prefers-contrast:more){.rating-choice span,.session-score{border:1px solid var(--mu)}.notifications-overlay .notification-item{border-bottom-color:var(--mu)}}

.notification-overlay-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;margin-top:3px}.notification-overlay-meta p{margin:0}.notification-overlay-meta .notification-read-button{flex:none;min-height:36px}.notification-overlay-header>.ico{margin-top:0}

.session-history-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px!important}.session-history-item>.session-score-pills{grid-column:1/-1;margin:0 0 0 20px}.session-score{font-size:11px;padding:4px 8px}.session-score b{font-size:12px}.session-score small{font-size:10px}

.subject-assessment-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px}.subject-assessment-actions .quiet-link{min-height:44px}.notification-item .notification-action{display:flex;min-height:44px;margin-top:8px}.timer-recovery-dialog .f{margin:16px 0}.timer-recovery-dialog h2{margin-bottom:8px}.forgotten-timer h2{font-size:17px}.forgotten-timer .row{gap:12px;flex-wrap:wrap}.forgotten-timer[hidden],.timer-local-status[hidden],[data-timer-conflict][hidden]{display:none}.quiet-button{background:none;border:0;padding:10px 0;min-height:44px;color:var(--acl);font-size:13px}.timer-local-status{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top) + 10px);width:calc(100% - 28px);max-width:452px;z-index:19;padding:12px 16px;border-radius:16px;background:var(--card);border:1px solid var(--edge);box-shadow:var(--float-shadow);font-size:13px}.timer-local-status>div{display:flex;flex-wrap:wrap;gap:8px 20px}.timer-page .timer-local-status{position:static;transform:none;margin:12px auto 0;width:calc(100% - 40px)}

.timer-local-status,.timer-page .timer-local-status{position:static;transform:none;width:100%;margin:0 0 16px;box-shadow:none}.offline-timer-actions{display:flex;gap:12px;margin-top:16px}.offline-timer-actions .btn{margin:0}.offline-timer-clock{font-size:48px;font-weight:700;font-variant-numeric:tabular-nums;margin:24px 0 8px}.offline-timer-card[hidden]{display:none}

/* Roomier desktop workspace; mobile keeps its familiar bottom navigation. */
.desktop-brand{display:none}.auth-persistence{font-size:12px;line-height:1.65}
@media(min-width:1000px){
 body[data-authenticated="1"]:not(.timer-page):not(.marketing-page){padding-left:224px}
 body[data-authenticated="1"]:not(.timer-page):not(.marketing-page) main{max-width:1120px;padding:40px 40px 70px}
 .desktop-brand{display:flex;position:fixed;left:28px;top:33px;align-items:center;gap:10px;font-size:24px;font-weight:700;letter-spacing:-1px;text-decoration:none;color:var(--tx);z-index:12}.desktop-brand img{border-radius:11px}
 .nav{inset:0 auto 0 0;width:224px;height:100dvh;border:0;border-right:1px solid var(--edge);padding:112px 18px 24px;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:8px;box-shadow:inset -1px 0 0 var(--highlight)}
 .nav a{flex-direction:row;justify-content:flex-start;gap:14px;font-size:14px;min-height:52px;padding:0 18px;border-radius:15px}.nav a.on{background:var(--ambient-mint);box-shadow:inset 0 0 0 1px var(--edge)}.nav a:hover:not(.fab){background:var(--chip)}
 .nav .fab{order:5;width:auto;height:52px;margin:24px 0 0;border-radius:16px;box-shadow:inset 0 1px 0 var(--highlight),0 5px 22px var(--accent-glow);justify-content:center;gap:10px}.nav .fab::after{content:'Study'}
 main h1{font-size:32px;letter-spacing:-.8px}.home-heading h1{font-size:34px}.home-date{margin-bottom:5px}.card{border-radius:24px;padding:24px}
 .home-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'progress start' 'progress plan' 'growth plan';gap:20px;margin-top:28px;align-items:start}.home-dashboard>.card{margin:0;min-width:0}.home-dashboard>.goals-card{grid-area:progress;padding:28px 24px}.home-dashboard>.home-start{grid-area:start}.home-dashboard>.home-plan{grid-area:plan}.home-dashboard>.growth-link{grid-area:growth}.goal-pair{margin:32px 0 25px}.goal .ring{width:120px;height:120px}.goal .ring span{width:98px;height:98px;font-size:26px}.home-plan-subject{padding-block:16px}.home-plan-hint{max-width:none}
 .activity-overview{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start}.activity-overview>.card{margin:0;min-width:0}.activity-overview>.activity-summary:only-child{grid-column:1/-1}.activity-summary .bars{height:220px}.activity-filters{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:18px;margin-top:24px}.activity-filters>label{flex:1;min-width:220px}.activity-filter-row{flex:1;gap:14px;min-width:250px}.activity-filter-row .f{flex:1}.activity-filters .btn{margin-bottom:0}.note-preview{max-width:500px}.session-score-pills{gap:10px}.chart-values{max-height:300px;overflow:auto}
 .garden-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:26px;align-items:start}.garden-dashboard>.card{margin:0;min-width:0}.garden-dashboard>.plant-card{grid-column:1;grid-row:1 / span 2;padding:28px;min-height:450px}.garden-dashboard>.streak-card{grid-column:2;grid-row:1}.garden-dashboard>.garden-collection,.garden-dashboard>.calendar-disclosure,.garden-dashboard>.milestone-collection{grid-column:1/-1}.garden-dashboard .collection-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.garden-dashboard .badges{grid-template-columns:repeat(4,minmax(0,1fr))}.garden-dashboard .calendar-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.garden-dashboard .calendar-month{min-width:0}.garden-dashboard .garden-hero{width:260px;height:250px}.garden-dashboard .next-unlock{min-height:155px}
 body[data-page="me"] .settings-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}body[data-page="me"] .settings-list .item{min-width:0}body[data-page="me"] .profile-link{max-width:560px}body[data-page="me"] .seg{max-width:400px}body[data-page="me"] .logout-form{max-width:260px}
 body[data-authenticated="1"]:not(.marketing-page):not(.timer-page):not([data-page="home"]):not([data-page="activity"]):not([data-page="growth"]):not([data-page="me"]):not([data-page="privacy"]):not([data-page="terms"]) main{max-width:820px}
 .mini-timer{left:auto;right:28px;bottom:24px;transform:none;max-width:420px}.has-timer main{padding-bottom:120px!important}.connection-banner{left:224px}.toast,.reward-banner{left:calc(50% + 112px)}.panel{max-width:560px}.sheet{align-items:center}.sheet .panel{border-radius:28px;border-bottom:1px solid var(--edge);max-height:85dvh}.notifications-overlay{max-width:520px}
 .timer-page main{max-width:620px;padding-top:35px}.timer-page .focus{min-height:calc(100dvh - 70px);max-height:none}.timer-page .tring{width:320px;height:320px}.timer-page .tring>div{width:294px;height:294px}.timer-page .time{font-size:60px}.timer-page .bottom{padding-top:35px}
 body[data-authenticated="0"]:not(.marketing-page):not([data-page="privacy"]):not([data-page="terms"]) main{padding-top:80px;max-width:480px}
}
@media(min-width:1000px) and (max-width:1199px){body[data-authenticated="1"]:not(.timer-page):not(.marketing-page) main{padding-inline:28px}.goal-pair{gap:8px}.goal .ring{width:100px;height:100px}.goal .ring span{width:80px;height:80px}.activity-overview{grid-template-columns:1fr}.garden-dashboard .calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}.garden-dashboard .badges{grid-template-columns:repeat(3,minmax(0,1fr))}.garden-dashboard .collection-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.home-dashboard{display:flex;flex-direction:column}.home-column{display:contents}.home-dashboard .goals-card{order:1}.home-dashboard .home-start{order:2}.home-dashboard .home-plan{order:3}.home-dashboard .growth-link{order:4}
@media(min-width:1000px){.home-dashboard{display:grid;grid-template-areas:none;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.home-column{display:flex;flex-direction:column;gap:20px;min-width:0}.home-column>.card{margin:0;order:initial!important;min-width:0}.home-column>.goals-card{padding:28px 24px}}

/* Desktop chrome remains separate from the fading page content. */
.nav-account{display:contents}.nav-notifications{display:none}
.calendar-month>summary{padding:12px 14px;border-radius:12px;background:var(--chip);border:1px solid var(--edge);min-height:56px;transition:background-color .15s}
.calendar-month>summary:hover{background:var(--glass);border-color:var(--mu)}.calendar-month>summary::marker,.calendar-month>summary::-webkit-details-marker{display:none;content:''}.calendar-month{border-top:0;padding:8px 0}.month-action{display:flex;align-items:center;gap:12px;font-weight:400}.month-action .i{color:var(--acl);flex:none;transition:rotate .2s}.calendar-month[open] .month-action .i{rotate:180deg}.calendar-month[open]>summary{border-color:var(--acl)}
@media(min-width:1000px){
 .home-notification-bell{display:none}.home-date{min-height:34px}
 .nav-account{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:20px;border-top:1px solid var(--edge);order:6}
 .nav-notifications{display:flex;align-items:center;gap:14px;min-height:52px;padding:0 18px;border:0;border-radius:15px;background:none;color:var(--mu);font:inherit;font-size:14px;text-align:left;cursor:pointer}.nav-notifications:hover,.nav-notifications:focus-visible{background:var(--chip);color:var(--tx)}.nav-notifications .notification-dot{top:14px;right:auto;left:33px;width:7px;height:7px}
 .garden-dashboard{align-items:stretch}.garden-dashboard>.weekly-challenges{grid-column:1/-1}.garden-dashboard>.garden-customise>summary{min-height:108px}.garden-dashboard .calendar-months{align-items:start}.garden-dashboard>.streak-card{display:flex;flex-direction:column;justify-content:space-between}.garden-dashboard>.streak-card>p{margin-bottom:0}.garden-dashboard>.plant-card{justify-content:center}
 .notifications-overlay{width:min(660px,calc(100vw - 290px));max-width:660px;margin:auto auto auto calc(50% - 218px);border-radius:26px;border:1px solid var(--edge);max-height:min(80dvh,800px)}.notification-overlay-header{padding:28px 28px 12px}.notification-overlay-scroll{padding:0 28px 24px;max-height:calc(min(80dvh,800px) - 130px)}.notification-overlay-meta{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.notifications-overlay .notification-item{padding-block:20px}.notifications-overlay .notification-item h3{font-size:16px}.notifications-overlay .notification-item p{font-size:14px}.notifications-overlay .notification-item time{font-size:12px}
 body:not(.timer-page) .timer-local-status{left:calc(50% + 112px)}
}
@media(min-width:1000px) and (prefers-reduced-motion:no-preference){

 .notifications-overlay[open]{animation:desktop-inbox-in 180ms ease-out both}.notifications-overlay.closing{animation:desktop-inbox-out 160ms ease-in both}
 @keyframes desktop-inbox-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes desktop-inbox-out{to{opacity:0;transform:scale(.98)}}
}

.calendar-tools{justify-content:flex-end}.calendar-tools .quiet-link{min-height:44px}
@media(min-width:1000px){.garden-dashboard .calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Plus adds tools within the existing pages, with server-checked access. */
.plus-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;border:1px solid var(--edge);border-radius:99px;background:linear-gradient(120deg,var(--ambient-mint),var(--ambient-lilac));color:var(--acl);padding:4px 9px;font-size:11px;font-weight:700}.plus-entry{gap:8px;min-height:44px;text-decoration:none}.plus-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.plus-welcome h2{margin-top:18px}.plus-benefit-grid{display:grid;gap:18px}.plus-benefit-grid p{font-size:13px;line-height:1.7}.template-item{padding:20px 0;border-bottom:1px solid var(--edge)}.template-item:last-child{border-bottom:0;padding-bottom:0}.template-item p{font-size:12px}.template-actions{justify-content:flex-start;gap:20px}.template-actions form{margin:0}.review-intervals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:20px 0}.review-intervals input{padding:10px;width:100%;min-width:0}.review-intervals .f{font-size:12px}.report-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-filter-grid .f{min-width:0}.insight-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:22px 0}.insight-metrics>div{display:flex;flex-direction:column;gap:6px}.insight-metrics b{font-size:26px;letter-spacing:-.7px}.insight-metrics .m{font-size:12px}.report-row{padding:18px 0;border-bottom:1px solid var(--edge)}.report-row:last-child{border-bottom:0}.report-row>.row{gap:16px;flex-wrap:wrap}.report-row b{font-size:14px;overflow-wrap:anywhere}.report-row .prog i,.daily-challenge .prog i{background:var(--ac)}.daily-challenge h3{font-size:22px;letter-spacing:-.6px}.daily-challenge small{font-size:11px;line-height:1.6}.daily-challenge .plus-badge{margin-left:auto}.daily-challenge h2{font-size:16px}
.garden-scene[data-backdrop=moonlight]{background:radial-gradient(circle at 75% 18%,#DDD8FF55 0 5%,transparent 6%),radial-gradient(ellipse at 50% 25%,#8E87CF50,transparent 70%),var(--card)}.garden-scene[data-backdrop=rose]{background:radial-gradient(ellipse at 20% 20%,#EF97A955,transparent 65%),radial-gradient(ellipse at 80% 65%,#FFDCA433,transparent 55%),var(--card)}
[data-pot=pearl] .garden-pot path:nth-child(1){fill:#D7DFE4}[data-pot=pearl] .garden-pot path:nth-child(2){fill:#F2ECFC}[data-pot=pearl] .garden-pot path:nth-child(3){stroke:#9687AE;stroke-opacity:.7}[data-pot=moss] .garden-pot path:nth-child(1){fill:#426958}[data-pot=moss] .garden-pot path:nth-child(2){fill:#8FBC96}[data-pot=moss] .garden-pot path:nth-child(3){stroke:#C7DFC2;stroke-opacity:.8}
@media(min-width:1000px){.plus-benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.insight-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.garden-dashboard:has(.daily-challenge)>.weekly-challenges{grid-column:auto}.garden-dashboard>.daily-challenge{display:flex;flex-direction:column;justify-content:space-between}.garden-dashboard>.daily-challenge h3{font-size:30px}.plus-entry{margin-right:20px}}
@media(max-width:359px){.review-intervals{gap:5px}.review-intervals input{padding:8px 5px}.report-filter-grid{grid-template-columns:1fr}}
[data-finish=silver] .garden-foliage{filter:saturate(.45) brightness(1.2)}[data-finish=silver] .garden-foliage path{stroke:#E1F2E9;stroke-width:1;stroke-opacity:.6}[data-finish=starlit] .garden-foliage{filter:drop-shadow(0 0 5px #A5D7F399) saturate(.75) brightness(1.1)}[data-finish=starlit] .garden-hero::after{content:'✦';position:absolute;top:24px;right:12px;color:#B8DFF4;font-size:22px;text-shadow:-180px 40px 0 #B8DFF466,-155px 140px 0 #B8DFF499,12px 160px 0 #B8DFF466}.garden-hero{position:relative}

.nav .desktop-brand{display:none}
.nav .nav-plus,.nav .nav-plan{display:none}.mobile-plus{color:var(--acl);font-size:9px;font-weight:700}
.home-date .home-plan-shortcut{display:inline-flex;margin-left:auto;font-size:12px;white-space:nowrap;flex:none;width:auto;min-height:44px}.home-date{gap:10px}
@media(max-width:359px){.home-date{gap:6px}.home-date>.m{font-size:11px}.home-date .home-plan-shortcut{font-size:11px}}
.home-garden{text-decoration:none;color:var(--tx);display:block}.home-garden h2{margin:0}.home-garden>.row{gap:10px}.home-garden .quiet-link{font-size:12px}.home-plant-body{display:flex;align-items:center;gap:12px;margin:4px -4px 8px}.home-plant-art{width:48%;max-width:215px;flex-shrink:0}.home-plant-art svg{display:block;width:100%;height:auto}.home-plant-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.home-plant-copy>b{font-size:21px}.home-plant-copy .m{font-size:12px}.home-plant-copy .prog{margin:4px 0}.home-plant-level{padding-top:14px;border-top:1px solid var(--edge)}.home-plan-intro{font-size:13px;line-height:1.6;margin:12px 0 4px}.home-plan{border-color:color-mix(in srgb,var(--ac) 25%,var(--edge))}
.home-dashboard .home-garden{order:1}.home-dashboard .goals-card{order:3}.home-dashboard .home-plan{order:4}
[data-pot=alabaster] .garden-pot path:nth-child(1){fill:#D2C4AD;stroke:#F4ECDD;stroke-width:2;stroke-dasharray:3 5}[data-pot=alabaster] .garden-pot path:nth-child(2){fill:#F4ECDD}[data-pot=alabaster] .garden-pot path:nth-child(3){stroke:#AE956C;stroke-opacity:.8}
[data-pot=obsidian] .garden-pot path:nth-child(1){fill:#2C303C;stroke:#BA8958;stroke-width:2}[data-pot=obsidian] .garden-pot path:nth-child(2){fill:#B58C60}[data-pot=obsidian] .garden-pot path:nth-child(3){stroke:#E4BA85;stroke-opacity:1;stroke-width:4}
[data-pot=celestial] .garden-pot path:nth-child(1){fill:#4C457F;stroke:#BDAAE5;stroke-width:2}[data-pot=celestial] .garden-pot path:nth-child(2){fill:#A59CDA}[data-pot=celestial] .garden-pot path:nth-child(3){stroke:#FFE4A3;stroke-opacity:1;stroke-width:5;stroke-dasharray:1 8;filter:drop-shadow(0 0 3px #FFE4A3)}
.garden-scene[data-backdrop=mist]{background:linear-gradient(150deg,transparent 48%,#7C9FAD25 49% 65%,transparent 66%),linear-gradient(30deg,transparent 43%,#ACCAC32B 44% 63%,transparent 64%),radial-gradient(ellipse at 50% 15%,#BDD9D637,transparent 70%),var(--card)}
.garden-scene[data-backdrop=canopy]{background:radial-gradient(ellipse at 5% 0%,#469B6C55 0 13%,transparent 48%),radial-gradient(ellipse at 100% 0%,#7FAD6344 0 15%,transparent 48%),linear-gradient(115deg,transparent 35%,#D3E9AA15 45%,transparent 55%),var(--card)}
.garden-scene[data-backdrop=cosmos]{background:radial-gradient(circle at 18% 20%,#FFF0CB 0 1px,transparent 2px),radial-gradient(circle at 80% 35%,#CCDBFF 0 1px,transparent 2px),radial-gradient(circle at 65% 12%,#FFF0CB 0 1.5px,transparent 2.5px),radial-gradient(ellipse at 20% 40%,#6552A850,transparent 65%),radial-gradient(ellipse at 90% 65%,#3E8C9A40,transparent 60%),var(--card)}
@media(min-width:1000px){.nav .nav-plan{display:flex}.nav .nav-plus{display:flex;position:absolute;top:78px;left:28px;padding:0;min-height:24px;width:auto}.nav:has(.nav-plus){padding-top:124px}.nav .nav-plus:hover{background:none}.mobile-plus{display:none}.home-garden .home-plant-body{min-height:175px}.home-column .home-garden{flex:1}.home-column:first-child>.home-garden{order:-1!important}}
@media(min-width:1000px){.nav .desktop-brand{display:flex;position:absolute;top:33px;left:28px;padding:0;min-height:36px;gap:10px;width:auto;color:var(--tx);font-size:24px;letter-spacing:-1px;view-transition-name:none}.nav .desktop-brand:hover{background:none}}

/* Shared garden headers keep disclosure controls and supporting text predictable. */
.garden-dashboard>.garden-disclosure>summary{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-height:48px;font-size:16px;font-weight:600;list-style:none;cursor:pointer}
.garden-dashboard>.garden-disclosure>summary::marker,.garden-dashboard>.garden-disclosure>summary::-webkit-details-marker{display:none;content:''}
.garden-dashboard>.garden-disclosure>summary::before{content:'+';display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:9px;background:var(--chip);color:var(--acl);font-size:20px;font-weight:400;margin:0}
.garden-dashboard>.garden-disclosure[open]>summary::before{content:'−'}
.garden-dashboard>.garden-disclosure>summary::after{display:none;content:none}
.garden-heading{display:flex;flex-direction:column;gap:4px;min-width:0}.garden-heading b{font-size:16px;font-weight:650;line-height:1.35}.garden-heading small{font-size:12px;font-weight:400;line-height:1.4;color:var(--mu)}
.garden-dashboard>.daily-challenge{display:block;align-self:start}.daily-challenge h2{font-size:16px;font-weight:650;margin:0}.garden-dashboard>.daily-challenge h3{font-size:20px;margin:14px 0 8px;line-height:1.3}.daily-challenge .prog{margin:12px 0 8px}.daily-challenge p{font-size:12px;margin:0 0 8px}.daily-challenge small{display:block;line-height:1.4}.daily-challenge>.row{gap:10px}.daily-challenge .up{font-size:12px;white-space:nowrap}
.activity-tools{display:grid;padding:6px 16px;margin-top:20px}.activity-tools>a{display:flex;align-items:center;gap:12px;padding:14px 4px;min-height:56px;text-decoration:none;color:var(--tx);border-radius:10px}.activity-tools>a+a{border-top:1px solid var(--edge)}.activity-tools>a:hover,.activity-tools>a:focus-visible{background:var(--chip)}.activity-tools b{font-size:14px;font-weight:600;flex:1}.activity-tools .i{flex:none;color:var(--acl)}.activity-tools .i:last-child{color:var(--mu)}
.brand-mark{position:relative;display:inline-flex;flex:none}.brand-plus{position:absolute;right:-6px;bottom:-5px;transform:rotate(-10deg);padding:2px 5px;border:1px solid color-mix(in srgb,var(--ac) 50%,transparent);border-radius:6px;background:var(--ac);color:var(--actx);font-size:9px;line-height:1.2;font-weight:800;letter-spacing:0;box-shadow:0 2px 8px #0003}
.plan-intro{font-size:13px;line-height:1.6;margin:14px 0 20px}.plan-section-heading{gap:12px;flex-wrap:wrap}.plan-section-heading h2,.fitted-plan h2{font-size:17px;margin:0}.fitted-plan>p{font-size:13px;line-height:1.6;margin:10px 0 16px}.fitted-plan .btn{margin-top:14px}.plan-subject h3{font-size:16px;margin:0}.plan-subject>.m{font-size:12px;line-height:1.6}.plan-subject>.plan-reason{font-size:13px;line-height:1.6;margin:12px 0 8px}.plan-subject .plan-start{margin:4px 0 6px;background:var(--ambient-mint);color:var(--acl);gap:10px}.plan-subject-details>summary,.plan-explainer>summary,.plan-controls>summary,.planner-adjust>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--mu)}.plan-subject-details>summary::after,.plan-explainer>summary::after,.plan-controls>summary::after,.planner-adjust>summary::after{content:'+';color:var(--acl);font-size:18px}.plan-subject-details[open]>summary::after,.plan-explainer[open]>summary::after,.plan-controls[open]>summary::after,.planner-adjust[open]>summary::after{content:'−'}.plan-subject-details p,.plan-explainer p{font-size:12px;line-height:1.6}.plan-subject-details .plan-actions{gap:8px}.plan-setting-links{display:flex;flex-direction:column}.plan-setting-links>a{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--tx);min-height:52px;font-size:13px;text-decoration:none;border-top:1px solid var(--edge)}.plan-controls>summary{font-size:15px;color:var(--tx);font-weight:600}.plan-review-link{text-decoration:none;color:var(--tx)}.plan-priorities>summary{display:flex;align-items:center;gap:12px;cursor:pointer;min-height:44px}.plan-priorities>summary::before{content:'+';color:var(--acl);font-size:20px}.plan-priorities[open]>summary::before{content:'−'}.plan-priorities>summary span{display:flex;flex-direction:column;gap:5px}.plan-priorities>summary b{font-size:16px}.plan-priorities>summary small{font-size:12px;color:var(--mu)}
.fitted-day{padding:16px 0;border-top:1px solid var(--edge)}.fitted-day h3{font-size:14px;margin:0}.fitted-day>.row>.m,.fitted-day>p{font-size:12px}.fitted-session{display:flex;align-items:center;gap:10px;padding:12px 8px;margin-top:6px;border-radius:12px;text-decoration:none;color:var(--tx)}.fitted-session:hover,.fitted-session:focus-visible{background:var(--chip)}.fitted-session>span:not(.fitted-session-end){flex:1;min-width:0}.fitted-session b{font-size:14px}.fitted-session small{display:block;color:var(--mu);font-size:12px;line-height:1.5;margin-top:4px}.fitted-session-end{color:var(--acl);flex:none}.fitted-session.completed{opacity:.7}.planner-actions{display:flex;justify-content:flex-start}.plan-update{padding:12px 14px;border-radius:12px;background:var(--ambient-mint);font-size:13px;line-height:1.6;color:var(--acl)}
.planner-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,600px);max-width:100%;max-height:92dvh;overflow:auto;border:1px solid var(--edge);border-radius:26px 26px 0 0;padding:22px 22px calc(24px + env(safe-area-inset-bottom));background:var(--card);color:var(--tx);box-shadow:var(--float-shadow)}.planner-dialog::backdrop{background:#0007;backdrop-filter:blur(5px)}.planner-dialog-heading{gap:12px}.planner-dialog h2{font-size:21px;margin:0}.planner-dialog>p{font-size:13px;line-height:1.6}.planner-dialog .planner-note{font-size:12px}.planner-day-input{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;font-size:14px}.planner-day-input>span:last-child{display:flex;align-items:center;gap:10px}.planner-day-input input{width:88px;min-height:42px;text-align:center;padding:8px}.planner-day-input .m{font-size:12px}.planner-availability>.btn{margin-top:18px}.planner-preview-days>div{padding:12px 0;border-bottom:1px solid var(--edge);display:flex;flex-direction:column;gap:5px}.planner-preview-days b{font-size:13px}.planner-preview-days .m{font-size:12px;line-height:1.7}.planner-cancel{display:block;text-align:center;font-size:13px;color:var(--mu);padding:16px 0 0}.planner-adjust{margin-top:12px}
.fitted-day>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer}.fitted-day>summary::after{content:'+';font-size:18px;color:var(--acl)}.fitted-day[open]>summary::after{content:'−'}.fitted-day>summary>span{display:flex;flex-direction:column;gap:4px}.fitted-day>summary b{font-size:14px}.fitted-day>summary small{font-size:12px;color:var(--mu)}
.plan-details>.plan-subject:first-of-type{border-top:0}.fitted-session small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
@media(min-width:1000px){.planner-dialog{inset:0;margin:auto;border-radius:26px;padding:28px;max-height:85dvh}.fitted-plan .fitted-day{padding-block:18px}}
@media(min-width:1000px){body[data-page=plan] main{max-width:900px}}
@media(prefers-reduced-motion:no-preference){.planner-dialog[open]{animation:planner-in .2s ease-out}@keyframes planner-in{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}}
.nav-member-badge{display:none}.mobile-plus{font-size:12px;line-height:1;font-weight:800}
.home-date{margin-bottom:14px}.plan-priorities>summary{padding-bottom:12px}.report-fields{border:0;padding:0;margin:0;min-width:0}.report-fields>.btn{margin-top:18px}.report-sample p{font-size:13px;line-height:1.6}.report-fields:disabled{opacity:.7}
.billing-plans{display:grid;gap:18px;margin:20px 0}.billing-plans small{display:block;font-size:11px;line-height:1.6;margin-top:9px}.billing-note{font-size:12px;line-height:1.6}.billing-pending>p{font-size:13px;line-height:1.6}@media(min-width:1000px){.billing-plans{grid-template-columns:1fr 1fr}}
@media(max-width:999px){.notifications-overlay[open]{display:flex;flex-direction:column;height:min(80svh,740px);max-height:calc(100svh - env(safe-area-inset-top) - 16px);will-change:transform}.notifications-overlay::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.notification-overlay-header{flex:none}.notification-overlay-scroll{flex:1;min-height:0;max-height:none;-webkit-overflow-scrolling:touch}}
@media(max-width:999px) and (prefers-reduced-motion:no-preference){.notifications-overlay[open]{animation:notification-mobile-in 260ms cubic-bezier(.22,1,.36,1) both}.notifications-overlay.closing{animation:notification-mobile-out 160ms ease-in both}@keyframes notification-mobile-in{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}@keyframes notification-mobile-out{to{transform:translate3d(0,100%,0)}}}
@media(min-width:1000px){.activity-tools{grid-template-columns:1fr 1fr;gap:16px}.activity-tools>a+a{border-top:0;border-left:1px solid var(--edge);border-radius:0;padding-left:20px}.nav-account>a>span{display:flex;align-items:center;gap:8px;min-width:0}.nav .nav-account>a{gap:10px;padding-inline:12px}.nav-member-badge{display:inline-flex;font-size:9px;padding:3px 6px;white-space:nowrap}.garden-dashboard>.garden-customise>summary{min-height:48px}.garden-dashboard>.garden-customise{display:flex;flex-direction:column;justify-content:center}}

.timer-recovery-dialog input[type=number]{padding:12px 14px;line-height:22px}

/* Keep legal choices readable alongside the existing app controls. */
.legal-consent{align-items:flex-start;gap:10px;font-size:.82rem;line-height:1.5;text-align:left;white-space:normal}
.legal-consent input{flex:0 0 auto;margin-top:3px}
.billing-plans .legal-consent{margin-bottom:14px}
@media print{.bottom-nav,.desktop-nav,.ico[data-back],.timer-mini,.notification-panel{display:none!important}body,main,.card{background:white!important;color:black!important;box-shadow:none!important;backdrop-filter:none!important}.help-section{break-inside:avoid}.help-section a{color:black!important;text-decoration:underline}}

/* Public legal pages have their own readable desktop layout, separate from sign-in. */
@media(min-width:1000px){
 body:is([data-page="privacy"],[data-page="terms"])[data-authenticated]:not(.marketing-page) main{max-width:1040px;padding:48px 40px 80px}
 body:is([data-page="privacy"],[data-page="terms"]) .help-section{padding:30px 36px}
 body:is([data-page="privacy"],[data-page="terms"]) .help-section h2{font-size:21px}
 body:is([data-page="privacy"],[data-page="terms"]) .help-section p{font-size:16px;line-height:1.8;max-width:78ch}
}
