/* Original dark-green surfaces with restrained accents and explicit text pairs. */
:root{color-scheme:dark;--page:#07100d;--surface:#101c16;--surface-alt:#17251d;--surface2:var(--surface-alt);--surface-soft:var(--surface-alt);--bg:var(--page);--panel:var(--surface);--card:var(--surface);--text:#e7eeea;--muted:#a7b6ad;--line:#34483a;--shadow:0 8px 26px #00000024;--pastel:#21392c;--accent-ink:#a8cbb4;--action-fill:#95bea4;--action-text:#102019;--green:var(--accent-ink);--green2:var(--action-fill);--blue:#a5bed8;--amber:#d8bc8e;--red:#e2a9ad;--accent-soft:var(--pastel);--accent-glow:transparent}
:root[data-ontrack-theme="sky"]{--pastel:#253746;--accent-ink:#adc7df;--action-fill:#9bb8d0}
:root[data-ontrack-theme="lavender"]{--pastel:#342d43;--accent-ink:#c5b5de;--action-fill:#b4a0d0}
:root[data-ontrack-theme="apricot"]{--pastel:#403327;--accent-ink:#dcc0a7;--action-fill:#d0b18f}
:root[data-appearance="forest"]{--page:#102019;--surface:#192c21;--surface-alt:#213629;--line:#425c4c}
html,body{width:100%;min-width:0;overflow-x:clip}body{background:var(--page);color:var(--text);font-size:15px;line-height:1.55}
.app{background:radial-gradient(circle at 15% 0,rgba(130,170,145,.06),transparent 34%),var(--page);width:100%;max-width:760px;margin-inline:auto;padding-bottom:calc(145px + env(safe-area-inset-bottom))}
.app :is(h1,h2,h3,b,strong){overflow-wrap:anywhere}.app h2{line-height:1.2}.app h3{line-height:1.3}
.app :is(small,.muted,.kicker),.authPage small{font-size:12px;line-height:1.5}.app p,.authCard p{line-height:1.65}
.app .card,.authPage .authCard{background:var(--surface);color:var(--text);border-color:var(--line);box-shadow:var(--shadow);padding:20px;border-radius:24px;margin-bottom:16px}
.app :is(.brainCard,.readinessCard,.routineBreak,.plannerHero){background:var(--surface-alt)}
.app :is(input,select,textarea),.authPage :is(input,select,textarea){min-width:0;max-width:100%;background:var(--surface);color:var(--text);border:1px solid var(--line);font-size:16px;border-radius:12px;min-height:44px}
.app :is(input,select,textarea):focus,.authPage :is(input,select,textarea):focus{outline:2px solid var(--accent-ink);outline-offset:2px}
.app :is(.btn,.primarySmall),.authPage .btn{background:var(--action-fill);color:var(--action-text);border:1px solid var(--action-fill);box-shadow:none;min-height:44px}
.app :is(.smallBtn,.secondary,.textBtn),.authPage :is(.secondary,.textBtn){background:var(--surface);color:var(--accent-ink);border-color:var(--line);min-height:44px;font-size:13px}
.app :is(button:disabled),.authPage button:disabled{opacity:.5;cursor:not-allowed}.app button:focus-visible,.authPage button:focus-visible,summary:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}
.app :is(.profileWelcome,.todayFeeling,.todayContext button,.homeShortcut,.metric,.plannerMode,.plannerMeal,.readinessTask,.prepTask,.themePicker button,.coachIdentityPicker button){background:var(--surface);color:var(--text);border-color:var(--line)}
.app :is(.plannerMode.active,.readinessTask.done,.prepTask.done){background:var(--pastel);color:var(--accent-ink)}
.app .readinessRing{background:var(--pastel);border-color:var(--accent-ink);color:var(--accent-ink)}
.app :is(.appIcon,.iconTile,.todayLogIcon){background:var(--pastel);box-shadow:none;color:var(--accent-ink)}
.app .todayWaterTrack{background:var(--line)}.app .todayWaterTrack span{background:#83a7b0}.app .todayHydration{border-color:var(--line)}
.app .chatBubble{background:var(--surface);color:var(--text);border:1px solid var(--line)}.app .fromUser .chatBubble{background:var(--pastel);color:var(--text)}.app :is(.coachContactHeader,.coachComposer,.coachContext,.coachConversation){background:var(--page);color:var(--text)}
.app .coachComposer textarea{background:var(--surface);color:var(--text)}.coachPrivacyNote{font-size:13px;padding:12px;background:var(--surface-alt);border-radius:16px}.app .coachContactHeader span{color:var(--muted)}
.authPage{color:var(--text);background:var(--page)}.authPage :is(h1,h2,.brand){color:var(--text)}.authPage :is(.setupBenefit,.firstPlanPreview,.authNotice,.moduleChoice,.moduleChoice:has(input:checked)){background:var(--surface-alt);color:var(--text);border-color:var(--line)}
.authPage :is(.authFooter,.authBenefits,.authCard>p){color:var(--muted)}.authPage .setupProgress span.active{background:var(--pastel);color:var(--accent-ink)}
.preferenceDetails{margin:16px 0}.preferenceDetails summary,.todaySecondary>summary{cursor:pointer;font-weight:700;padding:12px 0;min-height:44px;color:var(--accent-ink)}.preferenceChecks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preferenceChecks label{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:12px;font-size:14px;margin:0}
.app input[type="checkbox"],.authPage input[type="checkbox"]{width:22px;height:22px;min-height:22px;flex:0 0 22px;accent-color:var(--accent-ink)}.shoppingCheck{gap:14px;cursor:pointer}.shoppingCheck small,.pantryEdit small{display:block;color:var(--muted)}
.pantryEdit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.qtyControls{display:flex;align-items:center;gap:8px}.qtyControls label{margin:0;width:90px;text-align:center}.qtyControls input{width:90px;text-align:center;padding:8px}.qtyControls button{width:44px;padding:8px}
.portionItem{padding:16px 0;border-bottom:1px solid var(--line)}.portionItem p{margin:4px 0}.portionItem small{color:var(--muted)}.portionItem .actions{margin-top:10px;flex-wrap:wrap}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.app :is(.compactActions,.actions){flex-wrap:wrap}.app .compactNext{grid-template-columns:100px minmax(0,1fr)}.app .compactNext>img{width:100px}.app .plannerMeal{grid-template-columns:68px 48px minmax(0,1fr) auto}.app .plannerMeal img{width:48px}
.app .toast{background:var(--surface-alt);color:var(--text);border:1px solid var(--line)}.app .quickLogFab{background:var(--action-fill);color:var(--action-text);box-shadow:0 6px 18px #00000030}.app .dangerBtn{color:var(--red)!important;border-color:#745052!important}
.app :is(.weightPoint,.pointValue){fill:var(--text);stroke:var(--surface)}.app .actualLine{stroke:#a7b6ad}
.todaySecondary{margin-bottom:16px}.todaySecondary[open]>summary{margin-bottom:8px}.app a,.authPage a{color:var(--accent-ink)}
@media(min-width:680px){.app{padding-inline:30px}.catalogueGrid,.recipeLibraryGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.authPage{max-width:700px;margin-inline:auto}}
@media(max-width:420px){.app .card,.authPage .authCard{padding:16px}.formGrid{grid-template-columns:1fr}.pantryEdit{grid-template-columns:1fr}.qtyControls{justify-content:flex-start}.app .compactNext{grid-template-columns:72px minmax(0,1fr)}.app .compactNext>img{width:72px;height:96px}.app .plannerMeal{grid-template-columns:55px minmax(0,1fr) auto}.app .plannerMeal img{display:none}.preferenceChecks{grid-template-columns:1fr}.app .profileWelcomeRow{flex-wrap:wrap}}
@media(prefers-reduced-motion:no-preference){.app .card,.authCard{animation:softArrival .22s ease-out}.app :is(button,a){transition:background-color .18s ease,box-shadow .18s ease}.app button:hover{box-shadow:0 3px 10px #29423512}@keyframes softArrival{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.app :is(.recipeLibraryCard,.conversationCard,.coachSkillsPanel){background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}.app .recipeFilters{background:var(--page)}
.app :is(.fibreFact,.dietaryStatus,.badge,.alert,.rating){color:var(--accent-ink);background:var(--surface-alt)}.app .cookBadge{color:var(--text);background:var(--surface-alt);border:1px solid var(--line)}
.quickLogSheet{background:var(--surface);color:var(--text);border-color:var(--line)}.quickLogSheet :is(input,select,textarea){background:var(--surface);color:var(--text);font-size:16px}.quickLogSheet :is(small,.muted){font-size:12px;color:var(--muted)}.quickLogSheet .quickLogAction{background:var(--surface-alt);color:var(--text)}
.app .quickLogFab{border-color:var(--page)}.app :is(.metric>span,.messageName,.messageMeta,.profileWelcome small,.plannerMetrics small){font-size:12px}

/* Filled actions need dark lettering; their secondary neighbours use light lettering. */
.app .primarySmall,.app .btn:not(.secondary),.authPage .btn:not(.secondary),.quickLogSheet .btn:not(.secondary){background:var(--action-fill);color:var(--action-text);border-color:var(--action-fill);box-shadow:none}
.app .btn.secondary,.authPage .btn.secondary,.quickLogSheet .btn.secondary{background:var(--surface);color:var(--accent-ink);border-color:var(--line)}
:is(.app,.authPage,.quickLogSheet) :is(.primarySmall,.btn:not(.secondary),.quickLogFab) :is(b,strong,span,small){color:inherit}
.app :is(.readinessTask.done,.prepTask.done,.plannerMode.active){border-color:var(--accent-ink)}
.app .themePicker .selected,.app .coachIdentityPicker .selected{border-color:var(--accent-ink);background:var(--pastel)}
.authPage :is(.authError,.authBenefits,.setupBenefit,.firstPlanPreview,.authNotice){color:var(--text)}.authPage :is(.authError,.authNotice){background:var(--surface-alt);border-color:var(--line)}
.authPage .authSpinner{border-color:var(--line);border-top-color:var(--accent-ink)}
.quickLogSheet :is(.quickLogAction,.smallBtn,.quickLogClose){color:var(--text);border-color:var(--line)}.quickLogSheet :is(.scannedProductImage,.foodSearchResult>img){background:var(--surface-alt)}
.app .todayLogNutrition>div{background:var(--surface-alt)}

.app .homeShortcut>span{color:var(--accent-ink)}
.quickLogSheet .smallBtn{background:var(--surface-alt);color:var(--text)}.quickLogSheet .foodSearchBox .smallBtn{background:var(--action-fill);color:var(--action-text);border-color:var(--action-fill)}
.quickLogSheet .quickLogAction>span{background:var(--pastel);color:var(--accent-ink)}
.app .theme-sage i{background:#95bea4}.app .theme-sky i{background:#9bb8d0}.app .theme-lavender i{background:#b4a0d0}.app .theme-apricot i{background:#d0b18f}

.app .supportLinks{display:flex;flex-wrap:wrap;gap:8px;margin-block:14px}.app .supportLinks a{display:inline-flex;align-items:center;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;text-decoration:none;background:var(--surface-alt);color:var(--accent-ink);font-size:13px;font-weight:700}.app .helpCentre p{overflow-wrap:anywhere}.authFooter a{display:inline-block;padding-block:12px}
