@font-face{font-family:Manrope;src:url('/assets/manrope.woff2') format('woff2');font-weight:400 800;font-display:swap}
:root{--green:#247b46;--green-dark:#164a2d;--sage:#e9f5e8;--olive:#2f874b;--brown:#8e5c31;--sand:#fbf1de;--cream:#fcfdfb;--white:#fff;--text:#23382f;--muted:#5c6961;--line:#dfe7dd;--danger:#9b3830;--radius:16px;--font:Manrope,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--cream);color:var(--text);font:14px/1.65 var(--font);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:var(--font);font-weight:600;color:var(--green-dark);line-height:1.15;letter-spacing:-.045em}h1{font-size:clamp(32px,3.4vw,48px)}h2{font-size:26px}h3{font-size:16px;line-height:1.4}p+p{margin-top:12px}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #7b9270;outline-offset:4px}main:focus{outline:none}.icon{width:22px;height:22px;flex:none;vertical-align:middle}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.18em;color:var(--brown);line-height:1.5;margin-bottom:12px}.brand{font-size:17px;letter-spacing:.24em;font-weight:750;color:var(--green);display:flex;align-items:center;gap:10px}.brand .icon{width:28px;height:28px}.button{min-height:48px;padding:12px 20px;border-radius:11px;display:inline-flex;justify-content:center;align-items:center;gap:12px;font-weight:650;font-size:13px;line-height:1.5;border:1px solid transparent;transition:background-color .16s,transform .16s;text-align:center}.button:active{transform:translateY(1px)}.primary{background:var(--green);color:var(--white)}.primary:hover{background:#22634d}.secondary{border-color:#b9c6b7;color:var(--green);background:transparent}.secondary:hover{background:var(--sage)}.text{background:none;color:var(--green)}.text:hover{background:#e7ecde80}.danger{color:var(--danger)}.compact{min-height:42px;font-size:12px;padding:10px 15px}.icon-button{height:44px;width:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex:none}.icon-button:hover{background:var(--sage)}.text-link{font-size:12px;font-weight:650;color:var(--green);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.text-link .icon{width:17px;height:17px}.round-icon{background:var(--sage);color:var(--green);width:54px;height:54px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.round-icon .icon{width:26px;height:26px}.skip-link{position:fixed;left:12px;top:-100px;z-index:100;background:var(--green);color:white;padding:12px}.skip-link:focus{top:12px}
/* App shell */
.brand .brand-logo{width:128px;height:auto;aspect-ratio:1563.7/315.96;object-fit:contain;flex:none}.brand-symbol{width:24px;height:auto;aspect-ratio:1439/1588.37;object-fit:contain}.welcome-image>.brand .brand-logo{width:152px}.page-footer .brand-logo{width:68.8px;height:auto;aspect-ratio:1563.7/315.96;object-fit:contain;opacity:.65}
.sidebar{position:fixed;inset:0 auto 0 0;width:232px;padding:43px 26px 24px;background:#f0f2e9;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10}.sidebar-caption{font-size:8px;letter-spacing:.14em;color:var(--muted);margin:13px 0 55px}.sidebar nav{display:grid;gap:10px}.sidebar nav a{display:flex;align-items:center;gap:15px;padding:14px 18px;border-radius:12px;color:#536356;font-size:13px;font-weight:600}.sidebar nav a[aria-current]{background:var(--green);color:white}.sidebar nav a:not([aria-current]):hover{background:var(--sage)}.sidebar-bottom{margin-top:auto;padding:24px 14px 0;border-top:1px solid #d6ddce;color:var(--muted);font-size:12px}.mini-leaf{color:var(--olive);display:block;margin-bottom:12px}.sync-label{font-size:9px;display:block;margin-top:25px;line-height:1.7}.app-body{margin-left:232px;padding:0 52px;max-width:1600px}.app-body main{max-width:1120px;margin:0 auto;padding-top:45px;min-height:80vh}.mobile-header,.bottom-nav{display:none}.demo-bar{max-width:1120px;margin:18px auto -17px;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:#6d7568}.demo-bar button{color:var(--green);font-size:10px;font-weight:700;text-decoration:underline;text-underline-offset:3px;min-height:28px}.connection-banner{background:var(--sand);padding:9px 15px;border-radius:8px;display:flex;gap:8px;font-size:12px;margin-top:20px}.connection-banner .icon{width:16px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;gap:20px}.page-heading h1{margin-bottom:13px}.page-heading .muted{font-size:13px}.page-footer{display:flex;justify-content:space-between;max-width:1120px;margin:65px auto 0;padding:24px 0 30px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);gap:20px}.page-footer span:first-child{letter-spacing:.2em;font-weight:700}.avatar{border-radius:50%;width:36px;height:36px;background:var(--sage);display:flex;align-items:center;justify-content:center;color:var(--green);font-family:var(--font);font-size:20px}.avatar.big{width:66px;height:66px;font-size:32px;flex:none}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-heading h2{font-size:25px}.section-heading .text-link{font-size:11px}
/* Today */
.today-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:32px}.featured{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--white)}.featured-image{display:block;position:relative;height:270px;overflow:hidden}.featured-image img{width:100%;height:100%;object-position:center 55%}.feature-label{position:absolute;bottom:16px;left:20px;border-radius:6px;background:#fffef2e8;color:var(--green);font-size:9px;letter-spacing:.14em;padding:7px 10px;display:flex;align-items:center;gap:7px;font-weight:700}.feature-label .icon{width:14px;height:14px}.featured-content{padding:25px 27px 23px}.featured-content .eyebrow{margin-bottom:7px}.featured h2{font-size:33px;margin-bottom:12px}.feature-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:13px}.feature-meta .icon{width:16px;height:16px}.featured-content>.muted{font-size:12px;line-height:1.8}.feature-actions{display:flex;align-items:center;gap:12px;margin-top:22px}.feature-actions>.primary{flex:1}.feature-actions .text{font-size:11px}.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.quick-links a{display:flex;align-items:center;gap:9px;border:1px solid var(--line);padding:15px 12px;border-radius:11px;font-size:10px;font-weight:600}.quick-links a>.icon:first-child{width:19px}.quick-links a>.icon:last-child{width:13px;margin-left:auto}.progress-panel{padding:25px 25px 22px;background:var(--sage);border-radius:var(--radius)}.progress-panel .eyebrow{color:var(--green);font-size:9px;margin-bottom:9px}.progress-panel h2{font-size:25px}.progress-number{font-family:var(--font);font-size:42px;color:var(--green);line-height:1.2;margin:15px 0 13px}.progress-number span{font-family:var(--font);font-size:11px;color:var(--muted)}progress{display:block;width:100%;height:7px;border:none;border-radius:30px;overflow:hidden;background:#d5ddca;color:var(--olive)}progress::-webkit-progress-bar{background:#d5ddca;border-radius:30px}progress::-webkit-progress-value{background:var(--olive);border-radius:30px}progress::-moz-progress-bar{background:var(--olive);border-radius:30px}.progress-panel>p:not(.eyebrow):not(.progress-number){font-size:11px;line-height:1.85;margin:15px 0 20px;color:#56654f}.progress-panel>.button{width:100%;font-size:12px}.progress-panel>.text-link{width:100%;margin-top:5px;font-size:10px}.success-line{display:flex;align-items:center;gap:8px;color:var(--green);font-weight:700;font-size:12px}.week-preview{margin-top:26px}.week-preview .section-heading{margin-bottom:7px}.week-preview h2{font-size:22px}.week-preview>.muted{font-size:11px;line-height:1.8}.plan-placeholder{border:1px dashed #acbba1;border-radius:12px;min-height:73px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-size:11px;margin-top:17px;color:var(--green)}.plan-placeholder .icon{width:17px}.home-recipes{margin-top:40px}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px}.home-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-card{position:relative;min-width:0}.recipe-image{display:block;aspect-ratio:1.28;overflow:hidden;background:var(--sage);border-radius:13px;margin-bottom:11px;position:relative}.recipe-image img{width:100%;height:100%;transition:transform .2s}.recipe-image:hover img{transform:scale(1.025)}.recipe-title{font-weight:700;line-height:1.5;display:block;font-size:13px;color:var(--green-dark);padding-right:3px}.recipe-meta{font-size:10px;color:var(--muted);margin-top:5px!important;display:flex;align-items:center;gap:7px}.favorite{position:absolute;right:7px;top:7px;width:38px;height:38px;border-radius:50%;background:#fffefaeb;display:flex;align-items:center;justify-content:center;color:var(--green)}.favorite .icon{width:20px;height:20px}.favorite.selected .icon,.is-favorite .icon{fill:var(--green);color:var(--green)}.photo-badge{position:absolute;bottom:9px;left:9px;display:flex;align-items:center;gap:5px;font-size:9px;background:#fffefae8;padding:4px 7px;border-radius:5px;color:var(--green)}.photo-badge .icon{width:12px;height:12px}.learn-strip{display:flex;align-items:center;gap:16px;padding:21px 0;margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.learn-strip strong{font-size:13px;font-weight:650}.learn-strip small{display:block;color:var(--muted);font-size:11px}.learn-strip>.icon:last-child{margin-left:auto}.learn-strip .round-icon{width:43px;height:43px}.inspiration{margin-top:35px;padding:30px;background:var(--sage);border-radius:16px}.inspiration blockquote{font-family:var(--font);font-size:24px;color:var(--green);margin:12px 0}.inspiration figcaption{font-size:12px}.inspiration figcaption span{color:var(--muted);font-size:10px}.resume-strip{width:100%;text-align:left;display:flex;gap:15px;align-items:center;background:var(--sand);padding:16px 20px;border-radius:12px;margin-bottom:22px}.resume-strip span{flex:1}.resume-strip strong,.resume-strip small{display:block}.resume-strip strong{font-size:12px}.resume-strip small{font-size:10px;color:var(--muted)}
/* Library */
.library-toolbar{display:flex;gap:16px;margin-bottom:24px}.search-field{display:flex;align-items:center;gap:12px;flex:1;background:#eef0e8;border:1px solid #dfe3d6;padding:0 16px;border-radius:11px;min-height:50px}.search-field input{background:none;border:0;outline:0;min-width:0;width:100%;font-size:13px;color:var(--text);height:48px}.search-field .icon{width:19px}.search-field:focus-within{outline:2px solid var(--olive);outline-offset:2px}.library-toolbar>.button{font-size:11px}.filter-line{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:23px}.category-tabs,.filter-chips{display:flex;gap:8px}.chip{border-radius:24px;background:#ecefe5;padding:10px 16px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.chip .icon{width:16px;height:16px}.chip.active{background:var(--green);color:white}.chip.active.soft{background:var(--sage);border-color:var(--green);color:var(--green)}.results-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);min-height:64px;gap:15px}.match-note{color:var(--green);font-size:10px;margin-top:7px!important}.editorial-note{border-top:1px solid var(--line);padding-top:20px;margin-top:30px;color:var(--muted);font-size:12px}.empty{padding:65px 20px;text-align:center;max-width:560px;margin:auto}.empty>.icon{width:42px;height:42px;color:var(--olive);margin-bottom:18px}.empty h2{font-size:28px;margin-bottom:12px}.empty p{color:var(--muted);margin-bottom:22px}.empty.compact{padding:30px 15px}.empty.compact h3{margin-bottom:8px}
/* Recipe and cooking */
.focus-bar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;margin:-10px 0 25px;text-align:center;font-size:12px;color:var(--green)}.detail{max-width:920px;margin:auto}.detail-photo{position:relative;height:315px;border-radius:17px;overflow:hidden}.detail-photo img{width:100%;height:100%}.photo-caption{position:absolute;bottom:10px;right:13px;font-size:8px;color:white;background:#243b3290;border-radius:4px;padding:3px 6px}.detail-intro{padding:28px 0 22px;border-bottom:1px solid var(--line)}.detail-intro .eyebrow{font-size:9px;margin-bottom:10px}.detail-intro h1{font-size:40px;margin-bottom:17px}.detail-metadata{display:flex;align-items:center;gap:30px;font-size:12px;margin-bottom:12px}.detail-metadata span{display:flex;align-items:center;gap:8px}.detail-metadata .icon{width:18px}.wait-note{display:flex;align-items:center;gap:8px;font-size:12px;background:var(--sand);padding:10px 13px;border-radius:8px;margin-bottom:12px}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:27px}.detail-columns h2{font-size:25px}.ingredient-list{padding:0;margin:0 0 20px;list-style:none}.check-row{display:flex;align-items:flex-start;gap:13px;cursor:pointer;padding:12px 0;font-size:13px;line-height:1.65}.check-row input{width:21px;height:21px;flex:none;accent-color:var(--green);margin:1px 0 0}.check-row:has(input:checked)>span{color:var(--muted);text-decoration:line-through}.ingredient-list li{border-bottom:1px solid var(--line)}.detail-columns>.section,.detail-columns>.button{width:100%}.before-block{padding:20px;background:var(--sage);border-radius:12px;margin-top:25px}.before-block p{font-size:12px;color:var(--muted);margin-top:7px}.steps-list{padding:0;list-style:none;margin:17px 0}.steps-list li{display:flex;gap:13px;padding:11px 0}.steps-list li>span{width:26px;height:26px;background:var(--sage);color:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;font-size:11px;font-weight:700}.steps-list p{font-size:13px}.disclosure{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:22px}.disclosure summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:16px 0;font-weight:650;color:var(--green)}.disclosure summary::-webkit-details-marker{display:none}.disclosure[open] summary .icon{transform:rotate(45deg)}.disclosure>div{padding-bottom:20px}.disclosure p,.disclosure li{font-size:12px;color:var(--muted)}.disclosure h3{font-size:13px;margin:16px 0 6px}.disclosure ul{padding-left:18px}.disclosure a,.reference-note a{text-decoration:underline}.plan-link{margin-top:10px}.detail-bottom{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.detail-bottom>.primary{min-width:230px}.mini-recipe{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);width:100%;text-align:left}.mini-recipe img{width:64px;height:58px;border-radius:9px;flex:none}.mini-recipe>div,.mini-recipe>span{flex:1}.mini-recipe strong{font-size:12px;line-height:1.5;display:block;color:var(--green)}.mini-recipe small,.mini-recipe span span,.mini-recipe div span{display:block;font-size:10px;color:var(--muted)}.mini-recipe>.icon{width:16px}.cooking{max-width:590px;margin:auto}.cooking-recipe{display:flex;align-items:center;gap:18px;padding-bottom:25px;border-bottom:1px solid var(--line)}.cooking-recipe>img{width:90px;height:74px;border-radius:10px}.cooking-recipe>div{flex:1}.cooking-recipe h2{font-size:21px}.cooking-recipe p{font-size:11px;margin-top:5px}.text-size{font-size:12px;gap:1px}.text-size span{font-size:20px}.step-progress{display:flex;align-items:center;gap:25px;margin:29px 0 22px}.step-progress>.eyebrow{white-space:nowrap;margin:0;font-size:9px;color:var(--green)}.step-progress>div{display:flex;gap:5px;flex:1}.step-progress i{height:6px;flex:1;background:#e0e3d8;border-radius:5px}.step-progress i.complete{background:var(--olive)}.cooking h1{font-size:36px;margin-bottom:19px}.step-instruction{font-size:18px;line-height:1.8}.large-text .step-instruction{font-size:23px}.timer-panel{background:var(--sage);padding:30px 25px 22px;border-radius:17px;text-align:center;margin-top:28px}.timer-panel .round-icon{background:#d3dcc3}.timer-digits{font-family:var(--font);font-variant-numeric:tabular-nums;font-size:64px;color:var(--green);line-height:1.3;margin-top:10px}.timer-panel>p{font-size:12px;color:var(--muted)}.timer-actions{display:flex;justify-content:center;gap:15px;margin:21px 0 18px}.timer-actions>.button{flex:1}.timer-panel>.small{font-size:10px}.timer-panel>.small .icon{width:14px;height:14px;margin-right:5px}.cook-controls{display:flex;flex-direction:column;margin-top:28px;gap:7px}.cooking-tip{display:flex;gap:14px;background:var(--sage);padding:22px;border-radius:15px;margin-top:30px;color:var(--green);font-size:13px}.locked-layout{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center;max-width:950px;margin:30px auto}.locked-photo{height:420px;border-radius:18px;overflow:hidden}.locked-photo img{width:100%;height:100%}.locked-layout h1{margin-bottom:20px}.locked-layout .button{margin:22px 0 15px}.locked-layout .text-link{display:flex;justify-content:flex-start}
/* Journey and profile */
.journey-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:45px}.journey-summary{padding:32px;background:var(--sage);border-radius:20px}.journey-summary>.round-icon{background:#d3ddc6}.journey-count{font-family:var(--font);font-size:68px;color:var(--green);line-height:1.15;margin-top:20px}.journey-count span{font-size:36px}.journey-summary h2{font-family:var(--font);font-size:13px;font-weight:500;letter-spacing:0;color:var(--muted);margin:6px 0 24px}.journey-summary>p:not(.journey-count){font-size:12px;margin:20px 0;color:var(--muted)}.journey-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #cfd9c4;margin-top:24px;padding-top:22px;gap:18px}.journey-stats strong{display:block;font-family:var(--font);font-size:30px;color:var(--green)}.journey-stats span{font-size:11px}.week-calendar{display:flex;gap:8px;justify-content:space-between;margin:27px 0}.calendar-day{flex:1;text-align:center;color:var(--muted);font-size:10px}.calendar-day>span{display:block;margin-bottom:10px}.calendar-day>b{aspect-ratio:1;max-width:48px;display:flex;align-items:center;justify-content:center;margin:auto;background:#eeeee6;border-radius:50%;font-size:12px;font-weight:600;border:1px solid transparent}.calendar-day.today>b{background:var(--sand);border-color:var(--brown);color:var(--green)}.calendar-day.done>b{background:var(--green);color:white}.calendar-day .icon{width:18px}.today-record{padding:25px;background:#f0f1e8;border-radius:16px}.today-record h2{font-size:23px}.today-record p{font-size:12px;margin:12px 0 23px}.today-record>.button{width:100%}.today-record>.text-link{width:100%;margin-top:6px;font-size:11px}.history-section{margin-top:40px}.history-row{display:flex;gap:15px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line)}.history-check{width:37px;height:37px;border-radius:50%;background:var(--sage);color:var(--green);display:flex;align-items:center;justify-content:center}.history-check .icon{width:18px}.history-row>div{flex:1}.history-row strong{display:block;font-size:12px}.history-row div span{font-size:11px;color:var(--muted)}.profile-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:65px}.profile-identity{display:flex;gap:16px;align-items:center;padding:2px 0 30px}.profile-identity>div{flex:1}.profile-identity h2{font-size:27px}.profile-identity p{font-size:11px;margin-top:5px}.settings-title{font-size:24px;margin:15px 0 9px}.setting-row{width:100%;display:flex;align-items:center;gap:16px;text-align:left;border-bottom:1px solid var(--line);padding:19px 0;cursor:pointer}.setting-row>span:nth-child(2){flex:1}.setting-row strong{display:block;font-size:12px;font-weight:600}.setting-row small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.setting-row>.icon{width:17px}.setting-icon{color:var(--green);width:28px;display:flex;justify-content:center;flex:none}.switch{appearance:none;-webkit-appearance:none;width:45px;height:26px;border-radius:20px;background:#d6d9d0;position:relative;cursor:pointer;flex:none;transition:background .15s}.switch:before{content:'';position:absolute;top:3px;left:3px;background:white;width:20px;height:20px;border-radius:50%;transition:transform .15s;box-shadow:0 1px 3px #0002}.switch:checked{background:var(--green)}.switch:checked:before{transform:translateX(19px)}.logout{color:var(--brown);margin-top:20px}.install-card{padding:31px;background:var(--sage);border-radius:19px}.install-card .round-icon{background:#d3ddc7}.install-card h2{font-size:32px;margin:20px 0 15px}.install-card p{color:var(--muted);font-size:12px}.install-card>.button{width:100%;margin-top:23px;font-size:12px}.storage-card{padding:27px 5px}.storage-card h3{font-size:16px;margin-bottom:12px;color:var(--green)}.storage-card p{font-size:12px;color:var(--muted)}.storage-card>.small{font-size:11px}.profile-grid aside .learn-strip{margin-top:0;font-size:12px}.profile-grid aside .learn-strip small{font-size:10px}
/* Lists and guides */
.shopping-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:40px}.shopping-layout>.empty{grid-column:1/-1}.shopping-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line)}.shopping-row>label{flex:1}.check-row small{display:block;color:var(--muted);font-size:10px}.soft-panel{padding:25px;background:var(--sage);border-radius:15px;align-self:start}.soft-panel h2{margin-bottom:15px}.soft-panel p{font-size:12px;color:var(--muted)}.soft-panel>.button{margin-top:20px;width:100%}.soft-panel>.text-link{width:100%;margin-top:8px}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.plan-card{padding:13px;border:1px solid var(--line);border-radius:17px}.plan-card-actions{display:flex;gap:10px;margin-top:18px}.plan-card-actions>.button{flex:1;font-size:11px;padding:10px}.plan-empty{min-height:300px;border:1px dashed #a6b39a;border-radius:17px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;color:var(--green)}.plan-empty>.icon{width:32px;height:32px}.plan-empty>span{font-size:11px;color:var(--muted)}.week-tip{margin-top:30px;display:flex;align-items:center;gap:18px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.guide-grid article{padding:30px;border:1px solid var(--line);border-radius:18px}.guide-number{display:block;font-family:var(--font);font-size:36px;color:var(--olive);margin-bottom:18px}.guide-grid h2{font-size:26px;margin-bottom:15px}.guide-grid p{font-size:13px;color:var(--muted)}.reference-note{border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.reference-note h2{font-size:23px;margin-bottom:15px}.reference-note p{font-size:12px;color:var(--muted)}
/* Welcome and dialogs */
.welcome{min-height:100svh;display:grid;grid-template-columns:1.1fr 1fr}.welcome-image{position:relative;min-height:100svh;overflow:hidden;background:var(--green)}.welcome-image>img{position:absolute;width:100%;height:100%;inset:0;object-position:56% 50%;opacity:.65}.welcome-image:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#123b3010 30%,#123b30e0 100%)}.welcome-image>.brand{position:absolute;top:45px;left:50px;color:var(--white);z-index:1}.welcome-image>div{position:absolute;bottom:75px;left:50px;right:30px;z-index:1}.welcome-image h1{color:var(--white);font-size:clamp(40px,4.8vw,68px);line-height:1.13}.welcome-image .eyebrow{color:#d7dfbf;font-size:10px}.welcome-content{padding:60px clamp(30px,6vw,105px);max-width:700px;margin:auto;width:100%}.welcome-content>.round-icon{width:47px;height:47px;margin-bottom:25px}.welcome-content h2{font-size:44px;margin-bottom:20px}.welcome-content>.muted{font-size:13px;margin-bottom:28px;max-width:330px}.welcome-content .eyebrow{font-size:9px}.welcome-content form .button,.welcome-content>.button{width:100%}.field-label{display:block;font-size:12px;font-weight:650;margin:16px 0;color:var(--green)}.field-label input,.field-label select{display:block;width:100%;border:1px solid #cdd5c6;border-radius:10px;background:#fffefa;padding:13px 15px;min-height:48px;margin-top:7px;font-weight:400;color:var(--text)}.password-field{position:relative}.password-field input{padding-right:50px}.password-field .icon-button{position:absolute;right:3px;top:2px}.form-error{color:var(--danger);font-size:12px;min-height:12px;margin-bottom:12px!important}.forgot{font-size:10px;display:flex;text-align:center;margin-top:8px}.welcome-divider{border-top:1px solid var(--line);margin:25px 0 20px;text-align:center;height:1px}.welcome-divider span{position:relative;top:-12px;background:var(--cream);padding:0 12px;color:var(--muted);font-size:10px}.demo-note{text-align:center;font-size:10px;margin-top:9px}.welcome-foot{font-size:9px;color:var(--muted);text-align:center;margin-top:35px}.mobile-brand{display:none}dialog{padding:27px;border:none;border-radius:20px;background:var(--cream);width:min(520px,calc(100% - 28px));max-height:88svh;overflow-y:auto;color:var(--text);box-shadow:0 20px 80px #15302526}dialog::backdrop{background:#1b2b2573}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:19px}.dialog-heading h2{font-size:27px;padding-top:8px}.dialog-heading .icon-button{margin-right:-8px;flex:none}dialog p{font-size:13px;color:var(--muted)}dialog>.round-icon{margin-bottom:20px}dialog form>.button{width:100%;margin-top:18px}.dialog-actions{display:flex;flex-direction:column;gap:8px;margin-top:23px}.dialog-actions>.button{width:100%}fieldset{border:0;padding:0;margin:25px 0}legend{font-weight:700;font-size:13px;color:var(--green);margin-bottom:8px}.choice-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.choice{cursor:pointer;position:relative}.choice input{position:absolute;width:1px;height:1px;opacity:0}.choice span{display:block;padding:9px 13px;border:1px solid #cbd4c2;border-radius:20px;font-size:12px}.choice input:checked+span{background:var(--green);color:white;border-color:var(--green)}.choice input:focus-visible+span{outline:3px solid var(--olive);outline-offset:3px}.picker-list{margin-top:15px}.empty-text{padding:30px 0}.install-instructions h3{margin:22px 0 7px}.toast{position:fixed;bottom:28px;left:calc(50% + 116px);transform:translate(-50%,20px);opacity:0;visibility:hidden;transition:opacity .18s,transform .18s;z-index:100;display:flex;align-items:center;gap:20px;width:max-content;max-width:min(560px,calc(100% - 32px));padding:14px 21px;border-radius:12px;background:var(--green-dark);color:white;box-shadow:0 4px 20px #1530251a;font-size:12px}.toast.visible{transform:translate(-50%,0);opacity:1;visibility:visible}.toast button{color:#e1eccd;text-decoration:underline;font-size:12px;font-weight:700;min-height:32px}
@media(min-width:1600px){.app-body{margin-right:auto}}
@media(max-width:1150px){.sidebar{width:190px;padding:35px 20px}.brand-desktop{font-size:14px;gap:7px}.brand-desktop .icon{width:23px}.sidebar-caption{font-size:7px}.sidebar nav a{padding:14px 12px}.app-body{margin-left:190px;padding:0 30px}.today-grid{gap:22px;grid-template-columns:minmax(0,1.45fr) minmax(220px,1fr)}.featured-image{height:235px}.featured-content{padding:22px}.featured h2{font-size:29px}.feature-actions{flex-direction:column;gap:2px}.feature-actions>.button{width:100%}.progress-panel{padding:22px 19px}.quick-links{grid-template-columns:1fr}.quick-links a{padding:12px}.home-grid{grid-template-columns:repeat(3,1fr)}.home-grid>.recipe-card:nth-child(4){display:none}.profile-grid{gap:35px}.toast{left:calc(50% + 95px)}.plan-grid{gap:15px}.plan-card{padding:9px}.plan-card-actions .button .icon{display:none}}
@media(max-width:800px){.sidebar{display:none}.app-body{margin:0;padding:0 22px}.app-body main{padding-top:26px}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:23px 0 7px}.brand{font-size:14px}.bottom-nav{position:fixed;inset:auto 0 0;display:flex;justify-content:space-around;align-items:center;background:#faf8f3;border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom));z-index:20}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#6c756b;font-size:10px;min-height:48px;flex:1}.bottom-nav .icon{width:22px;height:22px}.bottom-nav a[aria-current]{color:var(--green);font-weight:750}.bottom-nav a[aria-current] .icon{stroke-width:2.4}.app-body{padding-bottom:70px}.app-body.focused{padding-bottom:10px}.demo-bar{margin:7px 0 -12px;font-size:9px}.demo-bar button{font-size:9px}.page-heading{margin-bottom:25px}.page-heading h1{font-size:37px;margin-bottom:10px}.page-heading .muted{font-size:12px}.eyebrow{font-size:9px;letter-spacing:.16em}.today-grid{grid-template-columns:1.4fr 1fr;gap:22px}.featured-image{height:245px}.featured h2{font-size:28px}.quick-links a{font-size:10px}.page-footer{margin-top:40px;font-size:9px}.toast{left:50%;bottom:calc(85px + env(safe-area-inset-bottom));font-size:12px}.focus-bar{margin-top:-3px}.detail-photo{height:280px}.detail-columns{gap:30px}.detail-intro h1{font-size:36px}.journey-grid{gap:25px}.profile-grid{gap:30px}.profile-identity h2{font-size:25px}.welcome{grid-template-columns:1fr 1fr}.welcome-image>.brand{left:28px;top:30px}.welcome-image>div{left:28px;bottom:55px}.welcome-image h1{font-size:43px}.welcome-content{padding:40px 30px}.welcome-content h2{font-size:39px}.welcome-foot{font-size:8px}}
@media(max-width:600px){body{font-size:14px}.app-body{padding-left:20px;padding-right:20px}.app-body main{padding-top:23px}.mobile-header{padding-top:20px}.page-heading{align-items:flex-start;gap:10px}.page-heading h1{font-size:33px;letter-spacing:-.045em}.page-heading>.button{width:44px;height:44px;min-height:44px;font-size:0;padding:0}.page-heading>.button .icon{width:21px}.desktop-action{display:none}.today-grid{display:flex;flex-direction:column;gap:23px}.featured-image{height:240px}.featured{border-radius:17px}.featured-content{padding:21px 20px 17px}.featured h2{font-size:31px}.featured-content .eyebrow{font-size:9px}.featured-content>.muted{font-size:12px}.feature-meta{font-size:12px}.feature-actions{margin-top:19px}.feature-actions>.primary{min-height:48px}.feature-actions>.text{min-height:43px;font-size:12px}.quick-links{grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.quick-links a{font-size:10px;padding:13px 10px;line-height:1.6;gap:6px}.quick-links a>.icon:first-child{width:18px}.quick-links a>.icon:last-child{display:none}.today-aside{display:flex;flex-direction:column;gap:28px}.progress-panel{padding:23px}.progress-panel .eyebrow{font-size:9px}.progress-panel h2{font-size:25px}.progress-number{font-size:37px;margin:12px 0}.progress-number span{font-size:12px}.progress-panel>p:not(.eyebrow):not(.progress-number){font-size:12px;margin:13px 0 17px}.progress-panel>.button{min-height:46px}.progress-panel>.text-link{font-size:11px}.week-preview{margin-top:0}.week-preview .muted{font-size:12px}.home-recipes{margin-top:30px}.section-heading h2{font-size:24px}.section-heading .text-link{font-size:10px}.recipe-grid,.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 14px}.home-grid>.recipe-card:nth-child(4){display:block}.recipe-image{aspect-ratio:1.02;border-radius:12px}.recipe-title{font-size:12px;font-weight:700}.recipe-meta{font-size:10px;gap:5px;flex-wrap:wrap}.favorite{width:35px;height:35px;top:6px;right:6px}.favorite .icon{width:18px}.learn-strip{gap:12px}.learn-strip strong{font-size:12px}.learn-strip small{font-size:10px}.learn-strip .round-icon{width:38px;height:38px;flex:none}.page-footer{margin-top:35px;padding-bottom:20px;font-size:8px}.library-toolbar{display:block;margin-bottom:17px}.library-toolbar>.button{width:100%;margin-top:11px;min-height:42px;font-size:11px}.search-field{min-height:48px}.search-field input{font-size:13px}.filter-line{display:block;padding-bottom:16px}.category-tabs{display:flex;gap:7px;overflow-x:auto;padding:3px 2px 5px}.category-tabs .chip{flex:1;padding:10px 12px;font-size:11px}.filter-chips{margin-top:12px;gap:8px}.filter-chips .chip{min-height:37px;padding:8px 12px;font-size:10px}.results-label{font-size:10px;min-height:55px}.results-label .text-link{font-size:10px}.focus-bar{margin:0 0 19px}.detail-photo{height:240px;margin:0 -20px;border-radius:0}.detail-intro{padding:25px 0 20px}.detail-intro h1{font-size:32px}.detail-metadata{font-size:12px;gap:23px}.detail-columns{display:block;margin-top:24px}.detail-columns>section+section{margin-top:29px}.detail-columns .section-heading h2,.detail-columns h2{font-size:24px}.check-row{font-size:14px;padding:13px 0}.ingredient-list{margin-bottom:18px}.detail-columns>section>.button{width:100%}.before-block{margin-top:20px}.before-block p{font-size:12px}.steps-list p{font-size:14px}.steps-list li{padding:11px 0}.detail-bottom{position:sticky;bottom:0;background:var(--cream);margin:25px -20px -10px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));flex-direction:column-reverse;gap:5px;z-index:5;border-top:1px solid var(--line)}.detail-bottom>.button{width:100%}.detail-bottom>.secondary{border:none;min-height:38px;font-size:11px}.focused .page-footer{display:none}.focused .mobile-header{display:none}.focused main{padding-top:max(20px,env(safe-area-inset-top))}.focused .demo-bar{margin:10px 0 0}.cooking-recipe{gap:13px;padding-bottom:21px}.cooking-recipe>img{width:75px;height:65px}.cooking-recipe h2{font-size:20px}.cooking-recipe p{font-size:10px}.step-progress{gap:18px;margin-top:25px}.cooking h1{font-size:33px}.step-instruction{font-size:18px;line-height:1.85}.large-text .step-instruction{font-size:23px}.timer-panel{padding:24px 20px 20px}.timer-digits{font-size:63px}.cook-controls{margin-top:23px}.cook-controls>.primary{min-height:50px}.locked-layout{display:block;margin-top:0}.locked-photo{height:230px;margin:0 -20px 27px;border-radius:0}.locked-layout h1{font-size:33px}.locked-layout section>.button{width:100%}.journey-grid{display:flex;flex-direction:column;gap:30px}.journey-summary{padding:26px}.journey-summary>.round-icon{display:none}.journey-count{margin-top:0;font-size:58px}.journey-count span{font-size:32px}.journey-summary h2{font-size:13px;margin-bottom:18px}.journey-summary>p:not(.journey-count){margin:16px 0;font-size:12px}.journey-stats{margin-top:18px;padding-top:16px}.journey-stats strong{font-size:29px}.journey-stats span{font-size:11px}.week-calendar{gap:8px;margin:20px 0 24px}.calendar-day>b{font-size:12px;max-width:43px}.today-record{padding:23px}.today-record h2{font-size:24px}.history-section{margin-top:30px}.history-row{gap:10px}.history-row strong{font-size:12px}.history-row .text-link{font-size:10px}.profile-grid{display:flex;flex-direction:column;gap:28px}.profile-identity{padding-bottom:23px}.profile-identity h2{font-size:28px}.profile-identity p{font-size:11px}.settings-title{font-size:25px;margin-top:20px}.setting-row{padding:18px 0}.setting-row strong{font-size:13px}.setting-row small{font-size:11px}.install-card{padding:26px}.install-card h2{font-size:31px}.install-card p{font-size:13px}.storage-card{padding:24px 0}.shopping-layout{display:block}.shopping-layout>aside{margin-top:30px}.shopping-row .check-row{font-size:13px}.plan-grid{display:flex;flex-direction:column;gap:20px}.plan-card{padding:15px}.plan-card .recipe-image{aspect-ratio:1.65}.plan-card .recipe-title{font-size:16px}.plan-card .recipe-meta{font-size:12px}.plan-card-actions .button .icon{display:inline-block}.plan-empty{min-height:170px}.week-tip{padding:21px;gap:12px}.guide-grid{grid-template-columns:1fr;gap:17px}.guide-grid article{padding:24px}.guide-grid h2{font-size:25px}.guide-number{font-size:31px;margin-bottom:13px}.guide-grid p{font-size:13px}.welcome{display:block;min-height:100svh}.welcome-image{display:none}.welcome-content{padding:30px 28px 32px;max-width:450px}.mobile-brand{display:flex;margin-bottom:35px}.welcome-content>.round-icon{width:43px;height:43px;margin-bottom:22px}.welcome-content h2{font-size:43px}.welcome-content>.muted{font-size:13px;margin-bottom:27px}.welcome-content>.eyebrow{font-size:9px}.welcome-content .field-label{font-size:12px}.welcome-content>.button,.welcome-content form .button{min-height:49px}.forgot{font-size:11px}.welcome-foot{font-size:10px;margin-top:30px}.demo-note{font-size:10px}.welcome-divider{margin-top:30px;margin-bottom:23px}dialog{padding:22px;max-height:88svh;border-radius:19px}.dialog-heading h2{font-size:25px}.dialog-heading{gap:8px}.toast{max-width:calc(100% - 26px);padding:12px 16px;font-size:11px;gap:12px}.inspiration{padding:24px}.inspiration blockquote{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.favorite{width:44px;height:44px}.chip{min-height:44px}.recipe-title{font-size:14px}.recipe-meta{font-size:12px}.recent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.recent-section{margin-top:30px}.steps-list p{font-size:14px}.detail-columns .check-row{font-size:14px}
.flavor-description{font-size:13px;margin-bottom:18px}
/* Preparation guide: compact editorial hierarchy, no image or animation dependencies. */
.preparation-guide{max-width:1040px;margin:0 auto}
.guide-hero{display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:center;gap:24px;padding:38px 42px;background:var(--green);border-radius:24px;color:#e2eadb;overflow:hidden}
.guide-hero .eyebrow{color:#d1dcb7;font-size:10px;margin-bottom:15px}
.guide-hero h1{color:var(--white);font-size:clamp(36px,3.8vw,52px);line-height:1.08;letter-spacing:-.045em}
.guide-hero-copy>p:not(.eyebrow){font-size:14px;line-height:1.7;max-width:370px;margin-top:18px}
.guide-reading{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11px;color:#d1dcb7;margin-top:24px}
.guide-reading .icon{width:16px;height:16px}.guide-art{display:block;width:100%;max-width:230px;height:auto}
.guide-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 18px}
.guide-section-heading h2{font:650 15px/1.5 var(--font);letter-spacing:-.02em}
.guide-section-heading>span{font-size:11px;letter-spacing:.12em;color:var(--brown);white-space:nowrap}
.guide-steps{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0 0;padding:0}
.guide-step{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.guide-step article{padding:25px 26px;height:100%;display:flex;flex-direction:column}
.guide-step-top{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.guide-step-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--sage);color:var(--green);flex:none}
.guide-step-top .eyebrow{margin:0;font-size:9px;color:var(--brown);letter-spacing:.15em}
.guide-step-number{margin-left:auto;font:500 24px/1 var(--font);font-variant-numeric:lining-nums;color:#6b7d59}
.guide-step h2{font:600 26px/1.2 var(--font);letter-spacing:-.035em;color:var(--green-dark);margin-bottom:12px;max-width:320px;text-wrap:balance}
.guide-step-copy{font-size:14px;line-height:1.75;color:var(--muted);margin-bottom:22px}
.guide-takeaway{border-left:2px solid #b2be9b;padding-left:13px;margin-top:auto}
.guide-takeaway>span{display:block;font-size:10px;font-weight:750;color:var(--brown);margin-bottom:4px}
.guide-takeaway>p{font-size:12px;line-height:1.65;color:var(--text)}
.guide-next{display:flex;align-items:center;gap:18px;padding:25px 26px;background:var(--sage);border-radius:18px;margin-top:24px}
.guide-next>.round-icon{background:#d7e0ca;flex:none}.guide-next>div{flex:1}
.guide-next h2{font-size:25px}.guide-next p{font-size:12px;color:var(--muted);margin-top:7px}
.guide-next>.button{flex:none;font-size:12px}
.guide-sources{border-top:1px solid var(--line);margin-top:25px}
.guide-sources summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);list-style:none}
.guide-sources summary::-webkit-details-marker{display:none}.guide-sources summary>span{display:flex;gap:10px;align-items:center}.guide-sources summary .icon{width:18px;height:18px}
.guide-sources[open] summary>.icon{transform:rotate(45deg)}
.guide-sources>div{max-width:680px;padding:0 0 20px 28px;font-size:12px;color:var(--muted)}
.guide-sources a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.guide-sources a .icon{width:13px;height:13px}
@media(max-width:760px){.guide-hero{padding:30px;grid-template-columns:minmax(0,1fr) 150px;gap:10px}.guide-hero h1{font-size:38px}.guide-next{flex-wrap:wrap}.guide-next>.button{margin-left:72px}.guide-step article{padding:22px}.guide-step h2{font-size:24px}}
@media(max-width:600px){.guide-hero{padding:27px 24px;display:block;position:relative;border-radius:20px}.guide-hero-copy{position:relative;z-index:1}.guide-hero .eyebrow{font-size:9px;letter-spacing:.12em;max-width:210px;margin-bottom:16px}.guide-hero h1{font-size:37px;max-width:270px}.guide-hero-copy>p:not(.eyebrow){font-size:13px;max-width:245px;margin-top:16px}.guide-art{position:absolute;width:115px;right:-17px;top:21px;opacity:.15;pointer-events:none}.guide-reading{font-size:10px;gap:7px;margin-top:22px}.guide-reading .icon{width:15px;height:15px}.guide-section-heading{margin:27px 0 14px;gap:10px}.guide-section-heading h2{font-size:13px}.guide-section-heading>span{font-size:10px}.guide-steps{grid-template-columns:1fr;gap:14px}.guide-step article{padding:21px 22px}.guide-step-top{margin-bottom:14px}.guide-step-icon{width:36px;height:36px;border-radius:10px}.guide-step-icon .icon{width:20px;height:20px}.guide-step h2{font-size:25px;max-width:240px;margin-bottom:10px}.guide-step-copy{font-size:13px;line-height:1.75;margin-bottom:17px}.guide-next{padding:23px 22px;gap:13px;margin-top:22px}.guide-next>.round-icon{width:40px;height:40px}.guide-next>.round-icon .icon{width:22px;height:22px}.guide-next h2{font-size:23px}.guide-next p{font-size:12px}.guide-next>.button{width:100%;margin:5px 0 0}.guide-sources summary{font-size:11px}.guide-sources>div{padding-left:0}}
.skip-link:focus{top:-100px}.skip-link:focus-visible{top:12px}
@media(max-width:600px){.recipe-title{font-size:14px}.recipe-meta{font-size:11px}.filter-chips .chip{min-height:44px}.favorite{width:44px;height:44px;right:3px;top:3px}.recent-grid{grid-template-columns:1fr;gap:0}.featured-content>.muted{font-size:13px}.progress-panel>p:not(.eyebrow):not(.progress-number){font-size:13px}.page-heading .muted{font-size:13px}.setting-row small{font-size:12px}.check-row{font-size:14px}}

/* Viewport economy: short screens keep their useful content in view; long pages still scroll normally. */
.app-body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--cream)}
.app-body main{flex:1;min-height:0;width:100%}
.page-footer{flex:none}
.welcome{height:100svh;min-height:0;overflow:hidden}
.welcome-content{display:flex;flex-direction:column;justify-content:center;min-height:0}
.welcome-content .forgot{min-height:30px}

@media (min-width:601px) and (max-height:980px){
  .welcome-content{padding-top:28px;padding-bottom:24px;max-width:650px}
  .welcome-content>.round-icon{width:42px;height:42px;margin-bottom:14px}
  .welcome-content>.round-icon .icon{width:23px;height:23px}
  .welcome-content h2{font-size:38px;line-height:1.08;margin-bottom:11px}
  .welcome-content>.muted{margin-bottom:15px}
  .field-label{margin:9px 0;font-size:11px}
  .field-label input,.field-label select{min-height:43px;padding:10px 14px;margin-top:4px}
  .password-field .icon-button{height:39px;width:39px;top:2px}
  .form-error{min-height:0;margin-bottom:5px!important}
  .welcome-content form .button{min-height:43px}
  .welcome-content .forgot{min-height:27px;margin-top:2px;font-size:9px}
  .welcome-divider{margin:13px 0 13px}
  .welcome-content>.button{min-height:43px}
  .demo-note{margin-top:5px}
  .welcome-foot{margin-top:14px}
  .welcome-image>.brand{top:28px}
  .welcome-image>div{bottom:38px}
  .welcome-image h1{font-size:clamp(38px,4.3vw,58px)}
}

@media (max-width:600px){
  .app-body main{min-height:auto}
  .welcome{height:auto;min-height:100svh;overflow:visible}
  .welcome-content{display:block}
  .welcome-content .forgot{min-height:36px}
}

.inspiration blockquote{
  text-align:center;
  font-style:italic;
}

/* Hydration calculator: compact form and readable estimate, with no external assets. */
.hydration-back{margin-bottom:20px;display:inline-flex;gap:6px;align-items:center}
.water-card{padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);margin-bottom:22px;min-width:0}
.water-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.water-card-heading h2{display:flex;align-items:center;gap:8px;font-family:var(--font);font-size:14px;font-weight:700;margin:0}
.water-card-heading h2 .icon{width:19px;height:19px;color:var(--green)}
.water-card-heading>.icon-button{width:36px;height:36px;min-height:36px;display:flex;align-items:center;justify-content:center;flex:none}
.water-card-heading>.icon-button .icon{width:17px;height:17px}
.water-card-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0 0 12px}
.water-card-total strong{font-family:var(--font);font-size:34px;line-height:1.2;color:var(--green-dark);font-variant-numeric:tabular-nums}
.water-card-total strong>span{font-family:var(--font);font-size:13px;font-weight:500}
.water-card-total>span{font-size:11px;color:var(--muted)}
.water-progress-area{min-width:0;margin-bottom:8px}
.water-progress-track{position:relative;display:block;width:100%;height:9px;overflow:hidden;border-radius:20px;background:#e1e7da;border:1px solid #c4cfbb}
.water-progress-fill{display:block;position:absolute;inset:0 auto 0 0;height:100%;border-radius:inherit;background:var(--green)}
.water-progress-minimum{position:absolute;top:0;bottom:0;width:2px;background:var(--white);box-shadow:0 0 0 1px #174d3c70;transform:translateX(-1px)}
.water-progress-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:5px}
.water-progress-label>span{font-size:11px;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums;flex:none}
.water-progress-label .water-remaining,.water-progress-label .water-achievement{margin:0;font-size:11px;line-height:1.5;color:var(--green)}
.water-remaining strong{font-weight:750;font-variant-numeric:tabular-nums}
.water-achievement{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;font-weight:650;line-height:1.5;color:var(--green)}
.water-achievement .icon{width:16px;height:16px;flex:none}
.is-achieved .water-progress-track{border-color:#a8b99b}
.water-reference{font-size:11px;line-height:1.6;margin:0!important;color:var(--muted)}
.water-reference strong{color:var(--green);font-weight:650}
.water-card-note{font-size:11px;line-height:1.6;color:var(--muted);margin:3px 0 0!important}
.water-card-note a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.water-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:13px}
.water-shortcuts button{min-width:0;min-height:44px;border:1px solid #cdd8c4;border-radius:10px;background:var(--sage);color:var(--green-dark);font-size:11px;font-weight:650;white-space:nowrap;padding:5px 2px}
.water-shortcuts button:hover{border-color:var(--green);background:#dce5d3}
.water-shortcuts button:last-child{background:var(--cream)}
.water-card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 8px;min-height:32px;margin-top:6px;font-size:11px;color:var(--muted)}
.water-card-footer .text-link{min-height:44px;font-size:11px}
.water-mobile-settings{display:none}
.sidebar nav{margin-top:28px}
.page-heading h1:last-child{margin-bottom:0}
.progress-panel-footer{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px}
.progress-panel-footer .success-line{flex:1;min-width:0;line-height:1.5}
.progress-panel-footer .success-line>.icon{width:16px;height:16px;flex:none}
.journey-shortcut{flex:none;min-height:44px;padding:6px 9px;border:1px solid #b6c6a9;border-radius:10px;background:#fffefa80;font-size:11px;gap:4px;white-space:nowrap}
.journey-shortcut .icon{width:14px;height:14px}
.calendar-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.calendar-heading-row>div{min-width:0}
.calendar-heading-row h2{font-size:25px;margin:0}
.calendar-heading-row #calendar-range{font-size:11px;line-height:1.5;margin:3px 0 0}
.calendar-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--green);font-size:11px;font-weight:650;white-space:nowrap}
.calendar-toggle .icon{width:16px;height:16px}
.calendar-toggle[aria-expanded="true"]{background:var(--sage);border-color:#b6c6a9}
.journey-calendar{margin:18px 0 22px;padding:0 0 2px;overflow:hidden}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px 8px}
.calendar-weekdays{margin-bottom:8px;font-size:11px;color:var(--muted);text-align:center}
.calendar-days .calendar-day>b{position:relative;width:100%}
.month-check{position:absolute;right:-2px;bottom:-1px;display:flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--green);border:1px solid var(--cream)}
.month-check .icon{width:10px;height:10px}
@media(max-width:600px){
  .page-heading{margin-bottom:18px}
  .setting-row{padding:13px 0;min-height:56px}
  .profile-identity{padding-bottom:16px}
  .today-aside .progress-panel-footer .success-line{font-size:11px;gap:6px}
  .today-aside .progress-panel-footer{gap:6px}
  .calendar-heading-row h2{font-size:23px}
  .calendar-toggle{padding:8px 10px}
  .calendar-days{row-gap:9px}
}
@media(max-width:600px){
  .today-suggestion .featured-image{height:clamp(130px,38vw,160px)}
  .today-suggestion .feature-label{bottom:10px;left:14px;padding:5px 8px;font-size:8px;letter-spacing:.12em;gap:5px}
  .today-suggestion .featured-content{padding:14px 16px 12px}
  .today-suggestion .featured-content .eyebrow{margin-bottom:4px}
  .today-suggestion .featured h2{font-size:26px;line-height:1.2;margin-bottom:6px}
  .today-suggestion .feature-meta{font-size:11px;margin-bottom:6px;gap:6px}
  .today-suggestion .featured-content>.muted{font-size:12px;line-height:1.6}
  .today-suggestion .feature-actions{flex-direction:row;gap:8px;margin-top:12px}
  .today-suggestion .feature-actions>.button{width:auto;min-height:44px;padding:9px 12px}
  .today-suggestion .feature-actions>.primary{font-size:12px}
  .today-suggestion .feature-actions>.text{font-size:11px;flex:none}
  .today-aside .progress-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:14px 16px;border-radius:16px}
  .today-aside .progress-panel>.eyebrow{display:none}
  .today-aside .progress-panel h2{grid-column:1;grid-row:1;font-size:21px;line-height:1.2;margin:0}
  .today-aside .progress-number{grid-column:2;grid-row:1;font-size:28px;line-height:1.2;margin:0;white-space:nowrap}
  .today-aside .progress-number span{font-size:10px}
  .today-aside .progress-panel>progress,.today-aside .progress-panel>p:not(.eyebrow):not(.progress-number),.today-aside .progress-panel>.button,.today-aside .progress-panel>.text-link,.today-aside .progress-panel>.success-line{grid-column:1 / -1}
  .today-aside .progress-panel>progress{height:6px;margin:4px 0}
  .today-aside .progress-panel>p:not(.eyebrow):not(.progress-number){font-size:12px;line-height:1.5;margin:2px 0 6px}
  .today-aside .progress-panel>.button{min-height:44px;padding:9px 12px;font-size:12px}
  .today-aside .progress-panel>.text-link{min-height:44px;margin:0;font-size:11px}
  .today-aside .progress-panel>.success-line{min-height:28px;font-size:12px}
  .today-aside{gap:18px}
  .today-aside .week-preview{margin-top:0}
  .week-preview .section-heading{align-items:center;gap:8px;margin-bottom:0}
  .week-preview .section-heading h2{font-size:20px;line-height:1.2;margin:0;min-width:0}
  .week-preview .section-heading .text-link{flex:none;min-height:44px;font-size:11px;white-space:nowrap}
  .week-preview>.muted{font-size:12px;line-height:1.5;margin:2px 0 8px}
  .week-preview .plan-placeholder{min-height:48px;margin-top:8px;padding:9px 12px;border-radius:10px;font-size:12px}
  .week-preview .mini-recipe{gap:10px;min-height:58px;padding:7px 0}
  .week-preview .mini-recipe img{width:44px;height:44px;border-radius:8px}
  .week-preview .mini-recipe>div{min-width:0}
  .week-preview .mini-recipe strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
  .week-preview .mini-recipe div span{font-size:11px;line-height:1.5}
  .week-preview .mini-recipe>.icon{flex:none}
  .week-preview .mini-recipe:last-child{border-bottom:0}
}
.water-history{list-style:none;margin:16px 0 22px;padding:0;max-height:45svh;overflow-y:auto}
.water-history li{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:10px 0}
.water-history li strong,.water-history li small{display:block}
.water-history li small{font-size:11px;color:var(--muted)}
.water-history .text-link{min-height:44px;font-size:12px}
#water-form input{font-size:16px;width:100%}
#water-form>.button{width:100%;margin-top:18px}
.today-grid{align-items:start;row-gap:22px}
.today-grid>.water-card{grid-column:2;grid-row:1;margin:0}
.today-grid>.today-suggestion{grid-column:1;grid-row:1 / span 2;min-width:0}
.today-grid>.today-aside{grid-column:2;grid-row:2;min-width:0}
@media(max-width:600px){
  .today-grid{align-items:stretch;row-gap:16px}
  .water-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:12px 16px;border-radius:16px}
  .water-card-heading{grid-column:1;grid-row:1;min-width:0;margin:0}
  .water-card-heading h2{font-size:13px;gap:6px;line-height:1.35}
  .water-card-heading h2 .icon{width:17px;height:17px;flex:none}
  .water-card-heading>.icon-button{display:none}
  .water-card-total{grid-column:2;grid-row:1;gap:0;margin:0;text-align:right}
  .water-card-total strong{font-size:28px;white-space:nowrap}
  .water-card-total strong>span{font-size:12px}
  .water-card-total>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .water-progress-area{grid-column:1 / -1;margin:3px 0 2px}
  .water-progress-track{height:9px}
  .water-reference,.water-card-note,.water-shortcuts,.water-card-footer{grid-column:1 / -1}
  .water-reference{font-size:11px;line-height:1.5}
  .water-estimate-note{display:none}
  .water-shortcuts{margin-top:5px;gap:6px}
  .water-card-footer{margin:0;min-height:0;gap:4px}
  .water-card-footer>span{display:none}
  .water-mobile-settings{display:inline-flex;align-items:center}
}
.hydration-back .icon{width:17px;height:17px}
.hydration-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:26px;align-items:start}
.hydration-form-card{padding:28px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);min-width:0}
.hydration-card-heading{display:flex;align-items:center;gap:13px;margin-bottom:22px}
.hydration-card-heading .round-icon{width:44px;height:44px;flex:none}
.hydration-card-heading h2{font-size:25px;line-height:1.2;margin:0 0 5px}
.hydration-card-heading p{font-size:12px;margin:0}
.hydration-weight-label>small{display:block;font-weight:400;line-height:1.65;margin-top:7px}
.weight-input{display:block;position:relative;margin-top:6px}
.weight-input input{margin-top:0;width:100%;padding-right:50px}
.weight-input>span{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-weight:500;color:var(--muted)}
#hydration-form .field-label{font-size:13px;margin:16px 0 10px}
#hydration-form input,#hydration-form select{min-height:48px;font-size:16px;width:100%}
#hydration-form select{padding-right:24px}
#hydration-form>.button{width:100%;margin-top:18px}
.hydration-remove{display:flex;margin:12px auto 0;min-height:44px;align-items:center;justify-content:center}
.hydration-privacy{margin-top:17px;font-size:11px;line-height:1.7}
.hydration-result-column{min-width:0}
.hydration-result{padding:30px;background:var(--sage);border-radius:var(--radius);color:var(--green-dark)}
.hydration-symbol{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border:1px solid #81916b55;border-radius:50%;margin-bottom:24px;background:#ffffff40}
.hydration-symbol .icon{width:30px;height:30px;color:var(--green)}
.hydration-result h2{font-size:33px;line-height:1.2;margin:12px 0 18px;text-wrap:balance}
.hydration-result p{font-size:13px;line-height:1.85;margin:0 0 12px}
.hydration-result .eyebrow{font-size:10px;letter-spacing:.12em;color:var(--brown)}
.hydration-result .hydration-amount{font-size:clamp(35px,4vw,55px);letter-spacing:-.035em;white-space:nowrap;margin:12px 0 6px;font-variant-numeric:tabular-nums}
.hydration-amount>span,.hydration-amount>small{font-family:var(--font);font-size:.48em;font-weight:500;letter-spacing:0}
.hydration-result .hydration-unit{font-size:14px;font-weight:650;margin-bottom:20px}
.hydration-total{border-top:1px solid #81916b66;padding-top:18px;margin-top:22px}
.hydration-total strong,.hydration-total span{display:block}
.hydration-total strong{font-size:14px;margin-bottom:6px}
.hydration-total span{font-size:12px;line-height:1.8}
.hydration-result .hydration-caption{font-size:11px;margin:18px 0 0}
.hydration-method{margin-top:15px}
.hydration-method summary{font-size:12px}
.hydration-method p{font-size:12px;line-height:1.8;margin-bottom:14px}
.hydration-sources{display:flex;flex-direction:column;gap:8px}
.hydration-sources a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
  .hydration-grid{grid-template-columns:1fr;gap:18px}
  .hydration-form-card,.hydration-result{padding:23px}
  .hydration-card-heading h2{font-size:24px}
  .hydration-result .hydration-amount{font-size:46px}
  .hydration-symbol{width:46px;height:46px;margin-bottom:17px}
}

.recipe-heading-actions{display:flex;align-items:center;gap:9px}
.recipe-heading-actions .icon-button{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--green);background:var(--cream)}
.recipe-heading-actions .icon-button .icon{width:20px;height:20px}
.recipe-heading-actions .icon-button.is-active{color:white;background:var(--green);border-color:var(--green)}
.pantry-button{white-space:nowrap}
.category-tabs .quick-filter{background:var(--sand)}

@media(max-width:600px){
  .page-heading .recipe-heading-actions{display:flex;gap:7px}
  .library-toolbar{display:flex;align-items:stretch;gap:8px;margin-bottom:15px}
  .library-toolbar .search-field{flex:1;min-width:0}
  .library-toolbar>.pantry-button{width:auto;min-height:48px;margin-top:0;padding:0 12px;font-size:10px;flex:0 0 auto}
  .pantry-button .icon{width:18px;height:18px}
  .filter-line{display:block;padding-bottom:14px}
  .category-tabs{gap:7px;overflow-x:auto;padding:2px 1px 5px;scrollbar-width:none}
  .category-tabs::-webkit-scrollbar{display:none}
  .category-tabs .chip{flex:0 0 auto;padding:9px 13px;font-size:10px;min-height:39px}
  .category-tabs .quick-filter{padding-left:12px;padding-right:13px}
}

/* Mobile spacing after the removal of redundant subtitles. */
.pro-badge,.plan-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:3px 8px;border-radius:20px;background:var(--sage);color:var(--green);font:650 10px/1.4 var(--font);letter-spacing:.02em;vertical-align:middle;white-space:nowrap}
.pro-badge,.plan-badge.is-pro{background:var(--green);color:var(--cream)}
.profile-name{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.setting-row strong{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.category-tabs .chip>.pro-badge{padding:2px 5px;font-size:8px;margin-left:5px}
.chip.active>.pro-badge{background:var(--cream);color:var(--green)}
.premium-gate{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:26px;max-width:600px;background:var(--sage);border-radius:20px}
.premium-gate>.round-icon{width:44px;height:44px;background:#d3ddc7}
.premium-gate>.pro-badge{justify-self:end;align-self:center}
.premium-gate>h2,.premium-gate>p,.premium-gate>a{grid-column:1 / -1}
.premium-gate>h2{font-size:30px;line-height:1.2;margin-top:4px}
.premium-gate>p{font-size:14px;color:var(--muted)}
.premium-gate>.button{margin-top:6px;min-height:48px}
.premium-gate>.text-link{min-height:44px}
.plans-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:920px}
.plan-option{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--white)}
.plan-option.current-plan{border-color:var(--green);background:var(--sage)}
.plan-option h2{font-size:29px;line-height:1.2;margin:0 0 10px}
.plan-recipe-count{font-size:13px;font-weight:650;color:var(--green)}
.plan-option ul{padding-left:18px;margin:16px 0 20px;font-size:13px;line-height:1.8}
.plan-option>.button,.current-plan-label{margin-top:auto;min-height:44px}
.current-plan-label{display:flex;align-items:center;color:var(--green);font-size:12px;font-weight:700}
.today-grid.without-hydration>.today-suggestion,.today-grid.without-hydration>.today-aside{grid-row:1}
.offline-list{max-width:700px}
.locked-layout .pro-badge{margin-bottom:12px}
@media(max-width:600px){.premium-gate{padding:20px;gap:10px}.premium-gate>h2{font-size:26px}.plans-grid{grid-template-columns:1fr;gap:16px}.plan-option{padding:20px}.plan-option h2{font-size:26px}.setting-row .pro-badge{font-size:9px;padding:2px 6px}.profile-name{gap:7px}.profile-name>.plan-badge{font-size:9px}}
.daily-opening{position:fixed;inset:0 0 auto;height:100vh;height:100svh;height:100dvh;z-index:1000;display:grid;place-items:center;background:var(--green,#174d3c);color:#faf8f3;padding:24px;overflow:hidden;isolation:isolate}
.daily-opening::before{content:"";position:absolute;z-index:0;pointer-events:none;left:50%;bottom:max(12px,env(safe-area-inset-bottom,0px));width:min(96vw,680px);width:min(96vw,64dvh,680px);aspect-ratio:3/2;transform:translateX(-50%);background:url('/assets/backgrounds/v2/chas.png') no-repeat center/contain;filter:brightness(0) invert(1);opacity:.16}
.daily-opening[hidden]{display:none}
.opening-logo{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;max-width:100%;line-height:0}
.opening-logo>svg{width:clamp(176px,52vw,288px);height:auto;aspect-ratio:1563.7/315.96;overflow:visible;flex:none}
.opening-visible{overflow:hidden}
body.app-loading{background:var(--green);min-height:100vh;min-height:100dvh}
.alerts-layout{max-width:720px}
.alerts-device{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:22px;background:var(--sage);border-radius:18px;margin-bottom:18px}
.alerts-device>.round-icon{width:44px;height:44px}
.alerts-device h2{font-size:24px;margin-bottom:6px}
.alerts-device>.button,.alerts-device>.text-link{grid-column:1 / -1;min-height:44px}
.alert-options{padding:0;margin:0;border:0;min-width:0}
.alert-save-status{margin-bottom:8px;font-size:11px}
.alert-options:disabled{opacity:.6}
.alert-group{border-bottom:1px solid var(--line);padding:12px 0}
.alert-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;cursor:pointer}
.alert-toggle strong{display:flex;gap:10px;align-items:center;font-size:13px;font-weight:600;line-height:1.5}
.alert-toggle .icon{flex:none;width:20px;height:20px;color:var(--green)}
.alert-toggle .switch{margin:0}
.alert-time-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.alert-time-range input{width:100%;min-width:0;max-width:100%}
.alert-water-fields,.alert-moment-fields{padding:0 0 10px}
.alert-water-fields[hidden],.alert-moment-fields[hidden]{display:none}
.alert-options>.button{width:100%;margin-top:18px}
.alerts-info{padding:18px 0}
.alerts-info p+p{margin-top:10px}
.alerts-info>.button{margin-top:16px;width:100%}
.alerts-info>.text-link{min-height:44px;margin-top:6px}
.water-alert-panel{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}
.water-alert-panel>div{flex:1;min-width:0}
.water-alert-panel h3{display:flex;align-items:center;gap:8px;font:650 13px/1.5 var(--font);color:var(--green)}
.water-alert-panel h3 .icon{width:18px;height:18px;flex:none}
.water-alert-panel p{margin-top:5px;font-size:11px}
.water-alert-panel>.button{flex:none;min-height:44px;padding:8px 12px;font-size:11px}
.timer-panel>.text-link{min-height:44px;margin-top:6px}
@media(max-width:600px){.alerts-device{padding:18px;gap:12px}.alert-group{padding:8px 0}.alert-toggle strong{font-size:13px}.alerts-info{padding:14px 0}.water-alert-panel{gap:10px;margin-top:16px;padding-top:16px}.water-alert-panel h3{font-size:12px}.water-alert-panel>.button{font-size:10px;padding:8px}.water-alert-panel>.button .icon{display:none}}
/* Only the official D's leaf moves, once, while the daily opening is visible. */
.opening-leaf{transform-box:fill-box;transform-origin:6% 6%}
@media(prefers-reduced-motion:no-preference){
 .daily-opening:not([hidden]) .opening-leaf{animation:opening-leaf-sway 1s .06s cubic-bezier(.35,0,.25,1) both}
}
@keyframes opening-leaf-sway{0%,100%{transform:rotate(0) scale(1)}35%{transform:rotate(-7deg) scale(1.025)}68%{transform:rotate(3deg) scale(1)}}
.cooking .step-progress>h1{font-family:var(--font);font-size:14px;font-weight:650;letter-spacing:0;white-space:nowrap;line-height:1.4;margin:0}
.guide-step-copy:last-child{margin-bottom:0}
@media(max-width:600px){
  .mobile-header{padding:16px 0 4px}
  .mobile-header .avatar{width:44px;height:44px}
  .app-body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .app-body.focused{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .app-body main{padding-top:16px}
  .focused main{padding-top:max(16px,env(safe-area-inset-top))}
  .page-heading{margin-bottom:16px}
  .focus-bar{margin-bottom:12px}
  .section-heading{margin-bottom:12px}
  .page-footer{margin-top:24px;padding:16px 0}
  .demo-bar{margin:4px 0 0;align-items:center;gap:12px}
  .demo-bar button{min-height:44px}
  .home-recipes,.recent-section{margin-top:24px}
  .inspiration{margin-top:24px;padding:18px}
  .learn-strip{margin-top:24px;padding:12px 0;min-height:48px}
  .library-toolbar{margin-bottom:12px}
  .filter-line{padding-bottom:8px}
  .category-tabs .chip{min-height:44px}
  .results-label{min-height:44px}
  .recipe-grid,.home-grid{row-gap:20px}
  .empty{padding:28px 16px}
  .empty>.icon{margin-bottom:12px}
  .empty h2{margin-bottom:8px}
  .empty p{margin-bottom:16px}
  .empty.compact{padding:20px 12px}
  .profile-grid{gap:20px}
  .profile-identity{padding-bottom:8px;gap:12px}
  .profile-identity>div{min-width:0}
  .profile-identity p{margin-top:3px;overflow-wrap:anywhere}
  .profile-identity .avatar.big{width:56px;height:56px}
  .settings-title{margin:16px 0 6px}
  .logout{margin-top:12px}
  .install-card{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;padding:18px}
  .install-card>.round-icon{grid-column:1;grid-row:1;width:40px;height:40px}
  .install-card h2{grid-column:2;grid-row:1;margin:0;line-height:1.2}
  .install-card>.button{grid-column:1 / -1;margin-top:0;min-height:48px}
  .storage-card{padding:16px 0}
  .storage-card h3{margin-bottom:6px}
  .storage-card>.text-link{margin-top:4px}
  .storage-card>.small{margin-top:8px}
  .journey-grid{gap:20px}
  .journey-summary{padding:18px}
  .journey-summary h2{margin:4px 0 12px}
  .journey-summary>p:not(.journey-count){margin:12px 0}
  .journey-stats{margin-top:12px;padding-top:12px}
  .journey-calendar{margin:14px 0 18px}
  .today-record{padding:18px}
  .today-record h2{margin-bottom:12px}
  .history-section{margin-top:24px}
  .history-row{padding:12px 0}
  .detail-intro{padding:18px 0 16px}
  .detail-intro .eyebrow{margin-bottom:6px}
  .detail-intro h1{margin-bottom:10px}
  .detail-metadata{margin-bottom:8px}
  .detail-columns{margin-top:18px}
  .detail-columns>section+section{margin-top:24px}
  .check-row{min-height:44px;padding:11px 0}
  .before-block{margin-top:16px;padding:16px}
  .steps-list{margin:12px 0}
  .steps-list li{padding:10px 0}
  .detail-bottom{margin-top:18px;padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .cooking-recipe{padding-bottom:16px}
  .step-progress{margin:18px 0 14px}
  .cooking .step-progress{gap:14px}
  .cooking h1{margin-bottom:12px}
  .timer-panel{margin-top:18px;padding:18px}
  .timer-actions{margin:14px 0 10px}
  .cook-controls{margin-top:18px}
  .cooking-tip{margin-top:18px;padding:18px}
  .locked-layout h1{margin-bottom:12px}
  .locked-layout .button{margin:16px 0 8px}
  .soft-panel{padding:18px}
  .soft-panel h2{margin-bottom:12px}
  .soft-panel>.button{margin-top:14px}
  .shopping-layout>aside{margin-top:24px}
  .plan-grid{gap:16px}
  .plan-empty{min-height:128px;gap:8px;padding:16px}
  .plan-card-actions{margin-top:12px}
  .plan-card-actions>.button{min-height:44px}
  .guide-hero{padding:18px 20px}
  .guide-reading{margin-top:12px}
  .guide-section-heading{margin:20px 0 12px}
  .guide-step article{padding:18px}
  .guide-step-top{margin-bottom:10px}
  .guide-step h2{margin-bottom:8px}
  .guide-step-copy{margin-bottom:12px}
  .guide-next{margin-top:18px;padding:18px;gap:10px}
  .guide-sources summary{min-height:44px;padding:12px 0}
  .hydration-back{margin-bottom:8px}
  .hydration-form-card,.hydration-result{padding:18px}
  .hydration-card-heading{margin-bottom:12px}
  .hydration-card-heading h2{margin-bottom:0}
  #hydration-form .field-label{margin:12px 0 8px}
  #hydration-form>.field-label:first-child{margin-top:0}
  #hydration-form>.button{margin-top:12px}
  .hydration-remove{margin-top:6px}
  .hydration-privacy{margin-top:12px}
  .hydration-symbol{margin-bottom:12px}
  .hydration-result h2{margin:8px 0 12px}
  .hydration-result .hydration-amount{margin:8px 0 4px}
  .hydration-result .hydration-unit{margin-bottom:12px}
  .hydration-total{margin-top:14px;padding-top:14px}
  .hydration-result .hydration-caption{margin-top:12px}
  .hydration-method{margin-top:12px}
  .welcome-content{padding:24px}
  .mobile-brand{margin-bottom:20px}
  .welcome-content>.round-icon{margin-bottom:14px}
  .welcome-content h2{margin-bottom:12px}
  .field-label{margin:12px 0}
  .field-label input:not([type="checkbox"]),.field-label select{font-size:16px;min-height:48px;padding:10px 12px;margin-top:6px}
  .field-label .weight-input input:not([type="checkbox"]){margin-top:0}
  .welcome-content .forgot{min-height:44px}
  .welcome-divider{margin:18px 0}
  .form-error:empty{min-height:0;margin-bottom:0!important}
  dialog{padding:20px}
  .dialog-heading{margin-bottom:12px}
  dialog fieldset{margin:18px 0}
  dialog legend{margin-bottom:0}
  dialog .choice-grid{margin-top:10px}
  dialog .choice span{display:flex;align-items:center;min-height:44px}
  dialog form>.field-label:first-child{margin-top:0}
  dialog .picker-list{margin-top:10px}
  dialog .dialog-actions{margin-top:16px}
}

/* The daily action comes first; details stay available when needed. */
.journey-simple{align-items:start;gap:32px}
.journey-daily,.journey-calendar-section{min-width:0}
.journey-daily{display:grid;gap:16px}
.journey-today{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--white,#fff)}
.journey-today-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.journey-today-heading h2{margin:0;font-size:28px}
.journey-today-heading time{font-size:12px;color:var(--muted);text-align:right}
.journey-today>.button{width:100%}
.journey-registered{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;margin:0;padding:10px 12px;border-radius:12px;background:var(--sage);font-weight:600;color:var(--green)}
.journey-record-tools{display:flex;justify-content:space-between;gap:12px;margin-top:4px}
.journey-record-tools .text-link{font-size:12px}
.journey-recipe-link{display:flex;justify-content:center;margin-top:4px;font-size:16px;font-weight:700;line-height:1.4}
.journey-recipe-link .icon{width:19px;height:19px}
.journey-simple .journey-summary{padding:20px 24px}
.journey-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.journey-simple .journey-summary h2{margin:0;font:600 14px var(--font);letter-spacing:0;text-transform:none}
.journey-simple .journey-count{margin:0;font-size:36px;white-space:nowrap}
.journey-simple .journey-count span{font:400 12px var(--font)}
.journey-simple .journey-summary>p:not(.journey-count){margin:10px 0 0;font-size:12px;line-height:1.5}
.journey-simple .journey-calendar{margin-bottom:4px}
.journey-yesterday{font-size:12px}
.journey-history{margin-top:28px}
.journey-history .section-heading{margin-bottom:4px}
.journey-history .history-row{padding:10px 0;gap:12px}
.journey-history .history-row>div{min-width:0}
.journey-history .history-row>.text-link{flex-shrink:0;font-size:12px}
.journey-history .history-recipe{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.journey-history .history-recipe:hover{text-decoration:underline}
.journey-empty{margin:12px 0;color:var(--muted);font-size:13px}
.history-toggle{margin-top:8px;font-size:12px}
@media(max-width:600px){
  .journey-simple{gap:20px;align-items:stretch}
  .journey-daily{gap:12px}
  .journey-today{padding:16px;border-radius:16px}
  .journey-today-heading{margin-bottom:10px}
  .journey-today-heading h2{font-size:25px}
  .journey-registered{min-height:48px;font-size:14px}
  .journey-simple .journey-summary{padding:14px 16px;border-radius:16px}
  .journey-progress-heading{margin-bottom:8px}
  .journey-simple .journey-count{font-size:30px}
  .journey-simple .journey-summary>p:not(.journey-count){margin-top:8px;font-size:11px}
  .journey-simple .journey-calendar{margin:10px 0 0}
  .journey-history{margin-top:18px}
  .journey-history .history-check{width:30px;height:30px;flex-shrink:0}
}

/* Strong green surfaces share an explicit, high-contrast foreground. */
.sidebar{background:var(--green-dark);border-right-color:#ffffff1a;color:var(--white)}
.sidebar .brand,.sidebar nav a,.sidebar .mini-leaf{color:var(--white)}
.sidebar nav a[aria-current="page"]{background:var(--sage);color:var(--green-dark)}
.sidebar nav a:hover:not([aria-current="page"]){background:#ffffff14}
.sidebar-bottom{border-color:#ffffff30}.sidebar .sync-label{color:#d9e5d8}
.journey-today,.water-card,.inspiration,.profile-identity,.alerts-device,.install-card,.plan-empty{background:var(--green);color:var(--white);border-color:var(--green)}
.journey-today h2,.journey-today .text-link,.inspiration blockquote,.profile-identity h2,.profile-identity .text-link,.alerts-device h2,.alerts-device .text-link,.install-card h2,.plan-empty strong{color:var(--white)}
.journey-today-heading time,.inspiration figcaption,.inspiration .eyebrow,.profile-identity .muted,.alerts-device .muted,.plan-empty span{color:#dce8dc}
.journey-today>.primary,.install-card>.secondary{background:var(--white);color:var(--green-dark);border-color:var(--white)}
.journey-today>.primary:hover,.install-card>.secondary:hover{background:var(--sage)}
.journey-registered{background:#ffffff14;color:var(--white);border:1px solid #ffffff38}
.journey-record-tools .text-link{color:#f1f5ec}
.profile-identity{padding:22px;border-radius:18px;margin-bottom:20px;gap:14px}
.profile-identity .avatar{background:#ffffff20;color:var(--white)}
.profile-identity .plan-badge{background:var(--sage);border-color:var(--sage);color:var(--green-dark)}
.install-card h2{margin:0;font-size:28px}.install-card>.button{margin-top:18px}
.water-card h2,.water-card h2 .icon,.water-card-total strong,.water-card .icon-button,.water-card .text-link,.water-card-note a,.water-reference strong,.water-card .water-progress-label>span,.water-card .water-remaining,.water-card .water-achievement{color:var(--white)}
.water-card-total>span,.water-card-note,.water-reference,.water-card-footer{color:#dce8dc}
.water-card .icon-button:hover{background:#ffffff18}
.water-card .water-progress-track{background:#ffffff25;border-color:#ffffff55;height:10px}
.water-card .water-progress-fill{background:#c8dcae}
.water-card .water-progress-minimum{background:var(--white);box-shadow:none}
.water-shortcuts{grid-template-columns:minmax(0,1fr) minmax(84px,.55fr);margin-top:10px}
.water-shortcuts button{background:var(--white);color:var(--green-dark);border-color:var(--white);font-size:12px;padding:8px 12px}
.water-shortcuts .water-quick-add{display:flex;justify-content:center;align-items:center;gap:6px}
.water-shortcuts button:last-child{background:transparent;color:var(--white);border-color:#ffffff70}
.water-shortcuts button:hover{background:var(--sage);color:var(--green-dark);border-color:var(--sage)}
.water-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}
.water-presets .button{padding:8px;font-size:12px;min-height:44px}
.picker-search{margin:0 0 10px;min-height:44px}
.picker-search input{min-width:0;font-size:16px}
.ingredient-choices{max-height:40svh;overflow:auto;overscroll-behavior:contain;padding:4px 3px}
.ingredient-choices .choice[hidden]{display:none}
.picker-footer{position:sticky;bottom:-1px;background:var(--white);border-top:1px solid var(--line);padding:12px 0 0;margin-top:12px;display:flex;align-items:center;gap:12px;z-index:1}
.picker-footer .button{flex:1;min-height:48px}.picker-footer>span{white-space:nowrap}
.preferences-more summary,.profile-more summary,.storage-card summary,.recipe-more summary,.timer-help summary,.alerts-info summary,.alert-sound-options summary{min-height:44px;font:650 12px/1.5 var(--font);color:var(--green)}
.preferences-more,.profile-more,.recipe-more,.timer-help,.alert-sound-options{margin:8px 0 0}
.profile-more>div{padding-top:0}.storage-card{padding:12px 0}
.alerts-device{display:block;padding:18px 22px}
.alerts-device .button{margin-top:10px;background:var(--white);color:var(--green-dark)}
.alerts-device .text-link{display:flex;justify-content:flex-start}
.alerts-device h2{font-size:25px}
.alert-save-status:empty{display:none}
.alerts-info{padding:10px 0}.alerts-info>div>.button{margin:10px 0 0;width:100%}
.alert-sound-options{border-bottom:1px solid var(--line)}
.recipe-more{margin-top:16px}.recipe-more .button{width:100%;min-height:44px}
.detail-bottom>.primary:only-child{flex:1}
.timer-help{text-align:left}.timer-help>div{padding:8px 0 0}
.plan-choices{max-height:48svh;overflow:auto;overscroll-behavior:contain;padding-right:4px}
.picker-group-title{font:650 11px/1.5 var(--font);color:var(--brown);margin:14px 0 4px}
.plan-choices .mini-recipe{width:100%;padding:8px;border-radius:12px;text-align:left;min-height:68px}
.plan-choices .mini-recipe>span{flex:1;min-width:0}
.plan-choices .mini-recipe strong{display:block;font-size:12px}
.plan-choices .mini-recipe small{font-size:11px;color:var(--muted)}
.plan-choices .is-selected{background:var(--sage);color:var(--green-dark)}
.plan-choices button:disabled{cursor:not-allowed;opacity:.5}
.plan-empty:hover{background:var(--green-dark)}
.plan-empty>.icon{color:var(--white)}
.pantry-short{display:none}
@media(max-width:600px){
 .pantry-full{display:none}.pantry-short{display:inline}
 .profile-identity{padding:16px;margin-bottom:14px;gap:10px}
 .profile-identity h2{font-size:24px}.profile-identity .avatar.big{width:44px;height:44px}
 .profile-identity .muted{font-size:10px}
 .profile-identity>.text-link{min-width:44px;flex:none;font-size:11px}
 .water-shortcuts{grid-template-columns:minmax(0,1fr) minmax(84px,.55fr);margin-top:4px;gap:8px}
 .water-shortcuts button{min-height:44px}
 .water-card .water-progress-area{margin-bottom:0}
 .inspiration{padding:20px}.inspiration blockquote{font-size:23px}
 .alerts-device{padding:16px}.alerts-device h2{font-size:23px}
 .plan-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center}
 .plan-card>.recipe-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:3px 12px;align-items:center;min-width:0}
 .plan-card .recipe-image{grid-column:1;grid-row:1 / 3;height:76px;aspect-ratio:1}
 .plan-card .recipe-title{grid-column:2;margin:0;align-self:end;font-size:13px}
 .plan-card .recipe-meta{grid-column:2;margin:0;align-self:start}
 .plan-card .favorite{display:none}
 .plan-card-actions{flex-direction:column;gap:0;margin:0}
 .plan-card-actions>.button{padding:6px;font-size:0;min-height:44px}
 .plan-card-actions>.button .icon{width:20px}
 .plan-empty{min-height:100px;padding:16px;gap:5px}.plan-empty>.icon{width:22px;height:22px}
 .plan-grid{gap:12px}
 .detail-bottom{flex-direction:row}
}

/* The same daily water card is used on Journey and Today. */
.water-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px 10px;padding:16px 18px;margin-bottom:0}
.water-card .water-card-heading{grid-column:1;grid-row:1;min-width:0;margin:0}
.water-card .water-card-total{grid-column:2;grid-row:1;display:block;margin:0;text-align:right;white-space:nowrap}
.water-card .water-card-total strong{font-size:30px;line-height:1.2;white-space:nowrap}
.water-card-total small{font:500 16px/1.2 var(--font);color:#e2ecdf}
.water-card .water-progress-area{grid-column:1 / -1;display:flex;align-items:center;gap:9px;margin:0;min-width:0}
.water-card .water-progress-track{flex:1;min-width:0}
.water-card .water-percent{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;flex:none;min-width:30px;margin:0;font-size:11px;font-weight:650;line-height:1.4;color:var(--white);white-space:nowrap}
.water-card .water-percent .icon{width:14px;height:14px}
.water-card .water-shortcuts{grid-column:1 / -1;margin:0}
.water-card .water-card-note{grid-column:1 / -1;margin:0}
.journey-daily>.water-card{margin:0}
@media(max-width:600px){
 .water-card{padding:12px 16px;gap:8px 8px}
 .water-card .water-card-total strong{font-size:28px}
 .water-card-total small{font-size:15px}
}
@media(max-width:360px){
 .water-card{padding:12px 14px}
 .water-card .water-card-total strong{font-size:24px}
 .water-card-total small{font-size:13px}
}

/* A persistent water shortcut replaces the cards in the page flow. */
.water-widget{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:30}
.water-nudge{position:absolute;right:calc(100% + 10px);bottom:10px;width:min(190px,calc(100vw - 116px))}
.water-nudge[hidden]{display:none}
.water-nudge button{display:block;width:100%;min-height:44px;padding:10px 12px;border:1px solid #b7cfdf;border-radius:13px;background:#f0f7fb;color:#164f70;font-size:11px;font-weight:650;line-height:1.5;text-align:left;box-shadow:0 3px 12px #12679b12}
.water-nudge button:hover{background:#e1f0f8}
.water-nudge button:focus-visible{outline-color:#12679b}
body:has(dialog[open]) .water-nudge{visibility:hidden}
.water-fab{--water-blue:#12679b;position:relative;isolation:isolate;display:grid;place-items:center;width:72px;height:72px;padding:0;border:0;border-radius:50%;background:var(--water-blue);color:#fff;box-shadow:0 6px 20px #12679b33;touch-action:manipulation}
/* A solid underlay joins the fine outline to the SVG without a transparent seam. */
.water-fab::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--water-blue);border:1px solid var(--water-blue);border-radius:50%;pointer-events:none}
.water-fab:hover{box-shadow:0 6px 24px #12679b4d}
.water-fab:active{transform:scale(.96)}
.water-fab-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none;stroke-width:8}
.water-ring-track{stroke:#f3d783}
.water-ring-progress{stroke:#72c4ed;stroke-linecap:round;transition:stroke-dashoffset .4s ease,stroke .24s ease,opacity .15s ease}
.water-fab.is-complete .water-ring-progress{stroke:#74cf93}
.water-fab-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}
.water-add-icon{width:32px;height:32px}
.water-add-icon circle{fill:var(--water-blue)}
.water-fab-value{font:750 10px/1.3 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap}
.app-body.has-water-control .page-footer{padding-bottom:90px}
dialog:has(#water-quick-panel){width:min(360px,calc(100% - 28px))}
dialog:has(#water-quick-panel,#water-form,#water-history-panel){background:#fff;color:var(--text)}
dialog:has(#water-quick-panel,#water-form,#water-history-panel)::backdrop{background:#23382f73}
dialog:has(#water-quick-panel,#water-form,#water-history-panel) .secondary{border-color:#ccd6cc}
#water-quick-panel .water-progress-track{background:#e3e6e0;border-color:#dce1d9}
#water-quick-panel .water-progress-fill{background:#12679b}
.water-panel-summary{padding:16px;background:#f3f3ed;border-radius:14px;margin-bottom:16px}
.water-panel-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--text)}
.water-panel-total strong{font:600 34px/1.15 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap}
.water-panel-total small{font:500 15px/1.4 var(--font)}
.water-panel-total>span{font:700 12px/1.4 var(--font);white-space:nowrap}
.water-panel-actions{display:grid;gap:10px}
.water-panel-actions>.button{width:100%;min-height:48px}
.water-portion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.water-portion{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:132px;padding:12px 4px;border:1px solid #dce1d9;border-radius:14px;background:#fff;color:var(--text);transition:background-color .16s,border-color .16s}
.water-portion:hover{background:#f3f6f0;border-color:#9aac9b}
.water-portion:active{background:#e9f0e5}
.water-portion:focus-visible{outline-color:#12679b}
.water-vessel{color:#12679b;display:block;width:42px;height:56px;flex:none;pointer-events:none}
.water-vessel-fill{fill:#12679b22;stroke:none}
.water-vessel-surface{stroke:#459ac5}
.water-portion strong{font-size:17px;line-height:1.3;font-weight:750;font-variant-numeric:tabular-nums}
.water-portion strong span{font-size:12px;font-weight:600}
.water-portion-name{font-size:10px;line-height:1.4;font-weight:600;color:var(--muted);white-space:nowrap}
#water-form>.water-portion-grid{margin-bottom:16px}
.water-panel-actions>.text{min-height:44px}
@media(max-width:800px){
 .water-widget{right:max(16px,env(safe-area-inset-right));bottom:calc(86px + env(safe-area-inset-bottom))}
 .water-fab{width:68px;height:68px}
 body:has(#water-widget) .toast{bottom:calc(168px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
 .water-ring-progress{transition:none}
}

/* Today focuses on one recipe; discovery and planning live in Recipes. */
.today-heading,.today-essential{max-width:960px;margin-left:auto;margin-right:auto}
.today-essential{display:grid;gap:18px}
.today-essential .featured{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr)}
.today-essential .featured-image{height:100%;min-height:270px}
.today-essential .featured-content{display:flex;flex-direction:column;justify-content:center;padding:26px}
.today-essential .featured h2{font-size:32px;margin-bottom:10px}
.today-essential .feature-meta{flex-wrap:wrap;margin-bottom:0}
.today-essential .feature-actions{flex-direction:row;gap:10px;margin-top:18px}
.today-essential .feature-actions>.button{width:auto;min-height:44px;padding:10px 14px}
.today-essential .feature-actions>.primary{flex:1}
.today-essential .inspiration{margin:0;padding:20px 24px}
.today-essential .inspiration blockquote{font-size:22px;line-height:1.45;margin:0 auto 7px;max-width:720px}
.today-essential .inspiration figcaption{text-align:center;font-size:11px}
.app-body:has(.today-essential) .page-footer{margin-top:18px;padding-top:0}
.results-actions{display:flex;align-items:center;gap:14px;flex:none}
.results-actions .text-link{font-size:11px;white-space:nowrap;gap:5px}
.results-actions .icon{width:16px;height:16px}
.recipe-tools-list .setting-row:first-child{padding-top:8px}
.recipe-tools-list .setting-row:last-child{border-bottom:0}
.recipe-tools-list .setting-row{min-height:52px;padding:12px 0}
.recipe-tools-list [role=switch][aria-checked=true] .switch{background:var(--green)}
.recipe-tools-list [role=switch][aria-checked=true] .switch:before{transform:translateX(19px)}
#main:has(#recipe-results)>.page-heading{margin-bottom:14px}
#main:has(#recipe-results) .library-toolbar{margin-bottom:12px}
#main:has(#recipe-results) .filter-line{padding-bottom:8px}
#recipe-results .recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px}
#recipe-results .recipe-image{aspect-ratio:1.4;margin-bottom:8px}
#recipe-results .recipe-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;line-height:1.4}
#recipe-results .recipe-meta{font-size:12px;margin-top:3px!important}
#recipe-results .results-label{min-height:44px;gap:8px}
#recipe-results .results-label>span{min-width:0;line-height:1.5}
@media(min-width:1320px){
 #recipe-results .recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:700px){
 #recipe-results .recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
 #recipe-results .recipe-meta{font-size:11px}
 #main:has(#recipe-results) .search-field{padding:0 12px;gap:8px}
}
@media(max-width:340px){
 #main:has(#recipe-results) .search-field>.icon{display:none}
}
.profile-heading,.profile-compact{max-width:720px;margin-left:auto;margin-right:auto}
.profile-compact .profile-identity{padding:16px;margin-bottom:10px;gap:12px}
.profile-compact .profile-identity>div{min-width:0}
.profile-compact .profile-name{gap:4px 8px}
.profile-compact .profile-identity h2{font-size:26px;overflow-wrap:anywhere}
.profile-compact .profile-identity p{font-size:11px;overflow-wrap:anywhere;margin-top:2px;line-height:1.5}
.profile-compact .avatar.big{width:44px;height:44px;font-size:25px}
.profile-compact .plan-badge{min-height:44px;padding:8px 10px;gap:4px;font-size:10px}
.profile-compact .plan-badge .icon{width:12px;height:12px}
.profile-compact .plan-badge:hover{background:#fffefa}
.profile-compact .profile-identity>.text-link{min-width:44px;flex:none}
.profile-compact .setting-row{min-height:54px;padding:12px 0;gap:12px}
.profile-compact .setting-row strong{font-size:13px;line-height:1.45}
.profile-compact .setting-row .setting-icon{display:flex;align-items:center;justify-content:center;width:24px;flex:none}
.profile-secondary{margin:0;border-top:0}
.profile-secondary summary{min-height:52px;padding:12px 0;font-size:13px}
.profile-secondary>div{padding-bottom:8px}
.profile-feedback{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:12px 0;font-size:13px;font-weight:650;color:var(--green);border-bottom:1px solid var(--line);text-align:left}
.profile-secondary .setting-row:last-child{border-bottom:0}
.profile-sync{padding:12px 0 4px}
.profile-sync [data-sync]{font-size:12px;font-weight:650;color:var(--green)}
.profile-sync>.text{min-height:44px;padding:8px 0}
.profile-sync>.small{font-size:11px;margin-top:4px}
.profile-compact .logout{margin-top:12px;min-height:44px}
.app-body:has(.profile-compact) .page-footer{margin-top:16px;padding-top:0}
@media(max-width:600px){
 .profile-compact .profile-identity{padding:12px;gap:9px;margin-bottom:8px}
 .profile-compact .profile-identity h2{font-size:23px}
 .profile-compact .profile-name{gap:2px 6px}
 .profile-compact .plan-badge{padding:8px;font-size:9px}
 .profile-compact .setting-row{min-height:52px;padding:11px 0}
 .profile-secondary summary{min-height:50px;padding:11px 0}
 .profile-feedback{min-height:50px;padding:11px 0}
}
@media(max-width:340px){
 .profile-compact .profile-identity>.avatar{display:none}
}
@media(max-width:760px){
 .today-essential{gap:16px}
 .today-essential .featured{display:block}
 .today-essential .featured-image{height:clamp(135px,38vw,180px);min-height:0}
 .today-essential .featured-content{padding:16px}
 .today-essential .featured h2{font-size:27px;line-height:1.2;margin-bottom:7px}
 .today-essential .feature-meta{font-size:12px;gap:6px}
 .today-essential .feature-actions{margin-top:12px}
 .today-essential .feature-actions>.button{font-size:12px;padding:9px 12px}
 .today-essential .inspiration{padding:16px}
 .today-essential .inspiration blockquote{font-size:20px;line-height:1.4}
 .results-actions{gap:10px}
 .results-actions .text-link{font-size:10px}
}

/* Shared, lightweight visual system: brand green and contextual recipe palettes. */
h1,h2,h3{font-family:var(--font);font-weight:800;letter-spacing:-.035em}
h1{font-size:clamp(30px,3.4vw,42px)}
h2{line-height:1.2}
.avatar{font-weight:750}
.primary:hover{background:var(--green-dark)}
.secondary:hover,.text:hover,.icon-button:hover{background:var(--sage)}
:is(button,a,input,select,summary):focus-visible{outline-color:var(--green)}
/* Dark navigation frames the content without changing control sizes. */
.sidebar{background:var(--green-dark);border-right-color:#ffffff26;color:var(--white)}
.sidebar .brand,.sidebar .mini-leaf{color:var(--white)}
.sidebar nav a{color:var(--white);min-height:48px}
.sidebar nav a[aria-current="page"]{background:#ffffff1f;color:var(--white)}
.sidebar nav a:hover:not([aria-current="page"]){background:#ffffff12}
.sidebar-bottom{border-color:#ffffff30}
.sidebar .sync-label{color:#fff}
.bottom-nav{background:var(--green-dark);border-top-color:#ffffff26}
.bottom-nav a{border-radius:12px;margin:0 2px;color:var(--white);font-size:12px}
.bottom-nav a[aria-current="page"]{background:#ffffff1f;color:var(--white)}
:is(.sidebar,.mobile-header,.bottom-nav) a:focus-visible{outline-color:var(--white)}
@media(max-width:800px){
 .mobile-header{position:relative;z-index:1;margin-inline:-22px;padding-inline:22px;background:var(--green-dark);color:var(--white)}
 .mobile-header .avatar{background:#ffffff1a;border:1px solid #ffffff40;color:var(--white)}
}
@media(max-width:600px){.mobile-header{margin-inline:-20px;padding-inline:20px}}
.journey-simple .journey-count,.progress-number,.journey-stats strong,.water-panel-total strong{font-weight:800;letter-spacing:-.04em}
.journey-today{border-radius:16px}
.journey-today>.primary{font-weight:750}
.journey-summary{background:var(--sage)}
.journey-history .history-row{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:6px;background:#fff}
.inspiration{background:var(--sand);border-color:#eee1c9}
.inspiration blockquote,.today-essential .inspiration blockquote{color:var(--green-dark);font-family:var(--font);font-weight:650}
.inspiration figcaption,.inspiration .eyebrow{color:#6e665a}

[data-palette]{--accent:#247b46;--accent-dark:#164a2d;--accent-soft:#e9f5e8;--accent-border:#c9dfc8}
[data-palette=bebidas]{--accent:#a96510;--accent-dark:#713c08;--accent-soft:#fff1d8;--accent-border:#e9cfaa}
[data-palette=cafe]{--accent:#a45132;--accent-dark:#74341f;--accent-soft:#fbece3;--accent-border:#e8cbbb}
[data-palette=doces]{--accent:#884b78;--accent-dark:#603055;--accent-soft:#f5e9f2;--accent-border:#dfc8da}
[data-palette] :is(a,button,input,select,summary):focus-visible{outline-color:var(--accent)}
.recipes-library .recipe-page-heading{align-items:center;margin-bottom:14px;gap:10px}
.recipe-heading-titles{min-width:0;flex:1;display:grid;grid-template-areas:"context" "title"}
/* The longest category reserves the same title height at every text size. */
.recipe-heading-titles::after{content:"Café da manhã";visibility:hidden;pointer-events:none}
.recipe-heading-titles h1,.recipe-heading-titles::after{grid-area:title;font-family:var(--font);font-weight:800;letter-spacing:-.035em}
.recipe-heading-titles .recipe-context{grid-area:context}
.recipe-context.is-empty{visibility:hidden}
.recipe-page-heading h1,.recipe-heading-titles::after{color:var(--accent);font-size:clamp(28px,3vw,40px);line-height:1.15;margin:0}
.recipe-context{color:var(--muted);font-size:12px;line-height:1.4;margin-bottom:2px;font-weight:600}
.recipes-library .recipe-heading-actions .icon-button{color:var(--accent);border-color:var(--accent-border);background:#fff}
.recipes-library .recipe-heading-actions .icon-button.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}
.recipes-library .search-field{background:#f3f5f0;border-color:var(--line)}
.recipes-library .search-field>.icon{color:var(--accent)}
.recipes-library .search-field:focus-within{outline-color:var(--accent)}
.recipes-library .pantry-button{color:var(--accent-dark);border-color:var(--accent-border);background:#fff}
.recipes-library .category-tabs .chip{background:#f0f3ed;color:var(--text)}
.recipes-library .category-tabs .chip.active{background:var(--accent);color:#fff}
.category-tabs .chip.active .pro-badge{background:#ffffff26;color:#fff;border-color:#ffffff40}
.recipes-library .results-actions .text-link{color:var(--accent-dark)}
.recipe-tools-list{--green:var(--accent);--sage:var(--accent-soft)}
.recipe-card{background:var(--accent-soft,var(--sage));border:1px solid var(--accent-border,var(--line));border-radius:14px;overflow:hidden}
#recipe-results .recipe-card .recipe-image,.recipe-card .recipe-image{margin:0;border-radius:0}
.recipe-card-caption{padding:9px 11px 11px;min-width:0}
#recipe-results .recipe-title,.recipe-card .recipe-title{color:var(--accent-dark,var(--green-dark));font-weight:750}
#recipe-results .recipe-meta,.recipe-card .recipe-meta{color:var(--accent-dark,var(--muted));justify-content:flex-end;text-align:right}
.recipe-meta .icon{width:16px;height:16px}
.recipe-card .favorite{color:var(--accent-dark,var(--green-dark));background:#fff}
.recipe-card .favorite.selected .icon{fill:var(--accent,var(--green));color:var(--accent,var(--green))}
.recipe-card .match-note{color:var(--accent-dark,var(--green-dark))}
.mini-recipe strong{color:var(--accent-dark,var(--green-dark))}
.featured[data-palette] h2{color:var(--accent-dark)}
.featured[data-palette] .primary{background:var(--accent);color:#fff}
.featured[data-palette] .primary:hover{background:var(--accent-dark)}
.featured[data-palette] .text{color:var(--accent-dark)}
.detail[data-palette],.cooking[data-palette],.locked-layout[data-palette]{--green:var(--accent);--green-dark:var(--accent-dark);--sage:var(--accent-soft);--olive:var(--accent)}
.detail[data-palette] .secondary,.cooking[data-palette] .secondary{border-color:var(--accent-border)}
.detail[data-palette] .text:hover,.cooking[data-palette] .text:hover{background:var(--accent-soft)}
.plan-card>.recipe-card{border:0;border-radius:0;background:transparent;overflow:visible}
.plan-card .recipe-card-caption{grid-column:2;grid-row:1 / 3;padding:0;background:transparent}
.plan-card .recipe-card .recipe-image{border-radius:10px}
.water-panel-total small{letter-spacing:0}
.water-panel-total>span{color:var(--muted)}
.water-portion strong{color:var(--text)}
.water-portion:focus-visible{outline-color:#12679b}
.hydration-card-heading>.round-icon,.hydration-symbol{background:#e7f4fc;color:#12679b}
.hydration-result .hydration-amount{color:#12679b}
@media(max-width:600px){
 .recipe-page-heading h1,.recipe-heading-titles::after{font-size:28px}
 .recipe-context{font-size:11px}
 .recipes-library .recipe-heading-actions{gap:6px;flex:none}
 .recipe-card-caption{padding:8px 9px 10px}
 .recipe-meta .icon{width:14px;height:14px}
 .journey-history .history-row{padding:9px 10px}
 .profile-compact .profile-identity h2{font-size:23px}
}

/* Premium membership stays recognizable without widening the profile name row. */
.profile-compact .plan-badge.is-pro{position:relative;width:44px;height:44px;padding:10px;border-radius:50%;color:#79551d;background:transparent}
.profile-compact .plan-badge.is-pro::before{content:"";position:absolute;inset:15%;border-radius:50%;background:#fff4d9;pointer-events:none}
.profile-compact .plan-badge.is-pro .icon{position:relative;width:15.4px;height:15.4px;stroke-width:1.8}
.profile-compact .plan-badge.is-pro:hover{background:transparent}
.profile-compact .plan-badge.is-pro:hover::before{background:#ffebbb}

/* Motion adds feedback without changing the layout or loading extra assets. */
.journey-progress-track{height:7px;overflow:hidden;border-radius:30px;background:#d5ddca}
.journey-progress-fill{display:block;height:100%;width:100%;transform-origin:left center;border-radius:inherit;background:var(--olive)}
.water-reward-check{position:absolute;left:50%;top:50%;transform:translate(-50%,-70%);width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#12679b;color:#fff;pointer-events:none}
.water-reward-check .icon{width:28px;height:28px}
.toast-achievement>.icon{width:26px;height:26px;padding:4px;background:#f4e5ba;color:#79551d;border-radius:50%}
@media(prefers-reduced-motion:no-preference){
 :is(.button,.icon-button,.favorite,.chip,.calendar-toggle,.water-portion,.plan-badge,.setting-row){transition:transform .12s ease,background-color .16s ease,border-color .16s ease}
 :is(.button,.icon-button,.favorite,.chip,.calendar-toggle,.water-portion,.plan-badge,.setting-row):active:not(:disabled){transform:scale(.97)}
 .bottom-nav a:active .icon,.sidebar nav a:active .icon{transform:scale(.94)}
 .bottom-nav .icon,.sidebar nav .icon{transition:transform .12s ease}
 .favorite .icon,.icon-button .icon{transform-origin:center;transform-box:fill-box}
 dialog[open]::backdrop{animation:dialog-shade-in .18s ease-out both}
 dialog[open].is-closing::backdrop{animation:dialog-shade-out .14s ease-in both}
 .toast-achievement.visible>.icon{animation:achievement-check .35s ease-out}
}
@keyframes dialog-shade-in{from{opacity:0}to{opacity:1}}
@keyframes dialog-shade-out{from{opacity:1}to{opacity:0}}
@keyframes achievement-check{from{transform:scale(.85);opacity:.3}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){
 :is(.button,.icon-button,.favorite,.chip,.calendar-toggle,.water-portion,.plan-badge,.setting-row,.water-fab):active{transform:none!important}
}

/* Recipe actions stay over the photo, keeping the card and filters compact. */
.recipe-menu-toggle{position:absolute;top:3px;left:3px;width:44px;height:44px;padding:0;display:grid;place-items:center;background:transparent;color:#fff;z-index:3}
.recipe-menu-toggle>.icon{width:18px;height:18px;stroke-width:3;filter:drop-shadow(0 1px 2px #0008);pointer-events:none}
.recipe-card-menu{position:absolute;top:48px;left:6px;width:calc(100% - 12px);max-width:180px;z-index:5;padding:4px;background:#fff;border:1px solid var(--accent-border,var(--line));border-radius:10px;box-shadow:0 4px 16px #23382f26}
.recipe-card-menu[hidden]{display:none}
.recipe-card-menu>button{display:flex;align-items:center;gap:8px;min-height:44px;width:100%;padding:8px 10px;text-align:left;border-radius:7px;color:var(--text);font-size:12px;font-weight:650}
.recipe-card-menu>button:hover{background:var(--accent-soft,var(--sage))}
.recipe-card-menu .icon{width:17px;height:17px}
@media(max-width:600px){.plan-card .recipe-menu-toggle,.plan-card .recipe-card-menu{display:none}}

/* Anchor decorative art to the content so it always starts below the mobile header. */
.app-body[data-background]{position:relative;isolation:isolate;--page-art:url('/assets/backgrounds/v2/receitas.png')}
.app-body[data-background] main{position:relative;isolation:isolate;--art-width:220px;--art-height:147px;--art-right:0px}
.app-body[data-background] main::before,.app-body[data-background=jornada] main::after{content:"";position:absolute;z-index:-1;pointer-events:none;top:2px;right:var(--art-right);width:var(--art-width);height:var(--art-height);background:var(--page-art) no-repeat right top/contain;opacity:.45}
.app-body[data-background=jornada] main::before,.app-body[data-background=jornada] main::after{z-index:-2}
.app-body[data-background=jornada] main::after{mix-blend-mode:screen;opacity:.4}
.app-body[data-background=jornada]{--page-art:url('/assets/backgrounds/v2/jornada.png')}
.app-body[data-background=hoje]{--page-art:url('/assets/backgrounds/v2/hoje.png')}
.app-body[data-background=perfil]{--page-art:url('/assets/backgrounds/v2/perfil.png')}
.app-body[data-background=chas]{--page-art:url('/assets/backgrounds/v2/chas.png')}
.app-body[data-background=bebidas]{--page-art:url('/assets/backgrounds/v2/bebidas.png')}
.app-body[data-background=cafe]{--page-art:url('/assets/backgrounds/v2/cafe.png')}
.app-body[data-background=doces]{--page-art:url('/assets/backgrounds/v2/doces.png')}
.inspiration blockquote,.today-essential .inspiration blockquote{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400}
/* Transparent surfaces keep the drawing behind the readable content. */
.app-body[data-background=jornada] .journey-today{position:relative;background:transparent}
.app-body[data-background=jornada] .journey-today::before{content:"";position:absolute;inset:-1px;z-index:-3;border-radius:inherit;background:var(--green);pointer-events:none}
.app-body[data-background=jornada] .journey-today::after{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;background:var(--green);opacity:.65;pointer-events:none}
.app-body[data-background=jornada] .journey-today>.primary{background:#f3d783;color:var(--green-dark);border-color:#f3d783}
.app-body[data-background=jornada] .journey-today>.primary:hover{background:#ebca69;border-color:#ebca69}
.journey-complete-mark{display:inline-grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:#f3d783;color:var(--green-dark)}
.journey-complete-mark .icon{width:18px;height:18px;stroke-width:2.5}
.recipes-library .search-field{background:#f3f5f0b3}
.recipes-library .pantry-button{background:#ffffffb3}
.recipes-library .recipe-heading-actions .icon-button:not(.is-active){background:#ffffffbf}
@media(max-width:800px){
 .app-body[data-background] main{--art-right:-12px;--art-width:200px;--art-height:133px}
 .app-body[data-background]:has(.recipes-library) main{--art-right:clamp(44px,16vw,110px);--art-width:180px;--art-height:120px}
}
@media(max-width:360px){
 .app-body[data-background] main{--art-width:180px;--art-height:120px}
 .app-body[data-background]:has(.recipes-library) main{--art-width:165px;--art-height:110px;--art-right:48px}
}
/* Recipe instructions stay readable without enlarging the surrounding interface. */
.hydration-visibility{max-width:720px;margin-bottom:16px;padding:0 16px;background:var(--sage);border-radius:14px}
.hydration-visibility .setting-row{border:0;min-height:64px;padding:12px 0;gap:12px}
.hydration-visibility .setting-row strong{font-size:14px}
.hydration-visibility .setting-row small{font-size:12px;line-height:1.5}
#suggestion-form textarea{display:block;width:100%;min-height:144px;max-height:40svh;resize:vertical;margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--text);font:500 16px/1.6 var(--font)}
#suggestion-form>.button{min-height:48px}
.detail-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:28px;align-items:start}
.detail-intro>.eyebrow{grid-column:1 / -1}
.detail-intro>h1{grid-column:1;grid-row:2;margin-bottom:0}
.detail-intro>.detail-metadata{grid-column:2;grid-row:2;align-self:center;gap:24px;margin:0;font-size:18px;line-height:1.4;font-weight:700;color:var(--green-dark)}
.detail-intro>.detail-metadata span{gap:9px;white-space:nowrap}
.detail-intro>.detail-metadata .icon{width:23px;height:23px}
.detail-intro>p:not(.eyebrow){grid-column:1 / -1;margin-top:12px}
@media(max-width:900px){
 .detail-intro{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
 .detail-intro>.eyebrow{flex:0 0 100%;margin-bottom:0}
 .detail-intro>h1{flex:1 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere}
 .detail-intro>.detail-metadata{flex:0 0 auto;max-width:100%;margin:0;gap:12px;font-size:16px;flex-wrap:wrap}
 .detail-intro>.detail-metadata span{gap:5px}
 .detail-intro>.detail-metadata .icon{width:18px;height:18px}
 .detail-intro>p:not(.eyebrow){flex:0 1 100%;margin-top:4px}
}
.detail .before-block p,.detail .steps-list p,.detail .ingredient-list .check-row,.detail .detail-columns .disclosure :is(p,li){font-size:15px;line-height:1.7;font-weight:500}
.cooking .step-instruction,.cooking .timer-help :is(p,li){font-weight:500}
/* One progress surface; text follows the exact filled portion of the card. */
.timer-panel{position:relative;isolation:isolate;overflow:hidden;--timer-base-ink:var(--green-dark);--timer-filled-ink:#fff;--timer-fill:var(--green)}
.timer-panel[data-phase=complete]{--timer-fill:#14853e}
.timer-panel[data-phase=overdue]{--timer-fill:#f3d783;--timer-filled-ink:var(--green-dark)}
.timer-panel>.timer-progress{position:absolute;inset:0;z-index:0;pointer-events:none}
.timer-progress>span{display:block;width:100%;height:100%;transform:scaleX(var(--timer-progress,0));transform-origin:left;background:var(--timer-fill);transition:background-color .3s ease}
.timer-panel>:not(.timer-progress){position:relative;z-index:1}
.timer-panel .timer-ink{color:var(--timer-base-ink)}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .timer-panel .timer-ink{background-image:linear-gradient(90deg,var(--timer-filled-ink) var(--timer-ink-cut,0px),var(--timer-base-ink) var(--timer-ink-cut,0px));background-clip:text;-webkit-background-clip:text;color:transparent}
}
.timer-ink-icon{display:inline-flex;position:relative;width:22px;height:22px;color:var(--timer-base-ink);flex:none}
.timer-ink-icon>.icon,.timer-icon-overlay>.icon{width:100%;height:100%}
.timer-icon-overlay{position:absolute;inset:0;display:flex;color:var(--timer-filled-ink);clip-path:inset(0 var(--timer-ink-unfilled,100%) 0 0);pointer-events:none}
.timer-panel>.timer-clock{width:40px;height:40px;margin:0 auto;display:flex;background:none;border-radius:0}
.timer-panel .timer-control{font-weight:700;min-height:48px}
.timer-panel .timer-control-green{background:var(--green);border-color:#ffffff80;color:#fff}
.timer-panel .timer-control-green:hover{background:var(--green-dark)}
.timer-panel .timer-control-yellow{background:#f3d783;border-color:#f3d783;color:var(--green-dark)}
.timer-panel .timer-control-yellow:hover{background:#ebca69;border-color:#ebca69}
.timer-panel .timer-reset:hover{background:#ffffff18}
.timer-reset .timer-ink,.timer-help .text-link .timer-ink,.timer-help summary .timer-ink{display:inline-block}
.timer-panel .timer-help{border-color:#ffffff55}
.timer-panel[data-phase=ready] .timer-help,.timer-panel[data-phase=paused] .timer-help{border-color:var(--line)}
.timer-panel[data-phase=overdue] .timer-help{border-color:#164a2d30}
.timer-panel :is(button,a,summary):focus-visible{outline:3px solid #164a2d;outline-offset:2px;box-shadow:0 0 0 5px #fff}
.detail .before-block h3,.detail .detail-columns .disclosure h3{font-size:16px;line-height:1.4}
.detail .detail-columns .disclosure summary{font-size:15px;min-height:48px}
@media(max-width:600px){
 .detail .before-block p,.detail .steps-list p,.detail .ingredient-list .check-row,.detail .detail-columns .disclosure :is(p,li){font-size:16px;line-height:1.65}
 .detail .detail-columns .disclosure summary{font-size:16px}
 .detail .ingredient-list .check-row{min-height:48px}
}
/* The installed iPhone app draws behind its translucent status bar. */
html{background:var(--green-dark)}
body{min-height:100vh;min-height:100dvh}
/* Short pages must fill the same viewport as long pages, including the iPhone home area. */
@media(max-width:800px){
 body:has(.bottom-nav){background:var(--green-dark)}
 #app:has(.bottom-nav){min-height:100vh;min-height:100dvh}
 .app-body:not(.focused){padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
 .bottom-nav{bottom:0;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));isolation:isolate}
 .bottom-nav::after{content:"";position:absolute;top:100%;right:0;left:0;height:max(34px,env(safe-area-inset-bottom,0px));background:var(--green-dark);pointer-events:none}
}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:90;background:var(--green-dark);pointer-events:none}
.reading-symbol{font-size:18px;font-weight:750;letter-spacing:-.06em;line-height:1}
.reading-options{display:grid;gap:12px;margin:0 0 16px}
.reading-options>legend{font-size:14px;font-weight:650;margin-bottom:12px}
.reading-option{display:block;padding:14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:var(--white)}
.reading-option:has(input:checked){border-color:var(--green);background:var(--sage);box-shadow:inset 0 0 0 1px var(--green)}
.reading-option>span:first-child{display:flex;gap:10px;align-items:center;font-size:16px;line-height:1.5}
.reading-option input{width:20px;height:20px;margin:0;accent-color:var(--green);flex:none}
.reading-preview{display:block;margin-top:8px;line-height:1.65;color:var(--text);overflow-wrap:anywhere}
.reading-preview-normal{font-size:16px}
.reading-preview-comfortable{font-size:20px}
.onboarding-progress{font-size:13px;line-height:1.5;margin:-8px 0 14px;color:var(--muted)}
.onboarding-option-hint{display:block;margin-top:8px;color:var(--muted);font-size:15px;line-height:1.65}
.onboarding-back{display:flex;width:100%;margin-top:6px}
/* Reading preference enlarges text without scaling images or fixed controls. */
body.comfortable-reading{font-size:16px;line-height:1.7}
body.comfortable-reading .app-body main :is(p,li):where(:not(.journey-count):not(.progress-number)){font-size:16px;line-height:1.7}
body.comfortable-reading :is(dialog p,dialog li,dialog .field-label,dialog .check-row){font-size:16px;line-height:1.7}
body.comfortable-reading :is(.button,.text-link,.field-label,.check-row,.alert-toggle,.profile-feedback,.sidebar nav a){font-size:16px}
body.comfortable-reading :is(.field-label input,.field-label select,.search-field input){font-size:17px}
body.comfortable-reading #suggestion-form textarea{font-size:18px;line-height:1.7}
body.comfortable-reading .setting-row strong{font-size:16px;line-height:1.5}
body.comfortable-reading .setting-row small{font-size:14px;line-height:1.6}
body.comfortable-reading .setting-row{min-height:56px}
body.comfortable-reading :is(.profile-secondary summary,.disclosure summary){font-size:16px;min-height:52px;line-height:1.5}
body.comfortable-reading :is(.profile-feedback,.profile-secondary summary){min-height:52px}
body.comfortable-reading .profile-identity p{overflow-wrap:anywhere}
body.comfortable-reading .profile-name h2{overflow-wrap:anywhere}
body.comfortable-reading .profile-identity>div{min-width:0}
body.comfortable-reading .recipe-card .recipe-title,body.comfortable-reading #recipe-results .recipe-title{display:block;-webkit-line-clamp:unset;overflow:visible;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
body.comfortable-reading .recipe-card .recipe-meta,body.comfortable-reading #recipe-results .recipe-meta{font-size:14px;line-height:1.5}
body.comfortable-reading :is(.category-tabs .chip,.filter-chips .chip,.results-label,.results-label .text-link,.recipe-context,.demo-bar,.demo-bar button,.sync-label,.bottom-nav a,.recipe-card-menu>button){font-size:14px}
body.comfortable-reading .category-tabs .chip{flex-shrink:0;white-space:nowrap}
body.comfortable-reading .bottom-nav a{min-width:0;line-height:1.4}
body.comfortable-reading .sidebar nav a{gap:10px;padding-inline:12px}
body.comfortable-reading .detail :is(.ingredient-list .check-row,.before-block p,.steps-list p,.detail-columns .disclosure p,.detail-columns .disclosure li){font-size:19px;line-height:1.75}
body.comfortable-reading .detail .detail-columns :is(.before-block h3,.disclosure h3,.disclosure summary){font-size:18px;line-height:1.5}
body.comfortable-reading .detail-intro>.detail-metadata{font-size:19px;flex-wrap:wrap}
body.comfortable-reading .detail-intro>.detail-metadata span{white-space:normal}
body.comfortable-reading .cooking .step-instruction{font-size:23px;line-height:1.75}
body.comfortable-reading .cooking .timer-help :is(p,li){font-size:18px;line-height:1.7}
body.comfortable-reading .timer-panel :is(.timer-caption,.timer-help summary,.timer-actions .button){font-size:16px;line-height:1.6}
body.comfortable-reading .cooking .cooking-recipe p{font-size:15px}
body.comfortable-reading .step-progress>h1{font-size:16px;line-height:1.5}
body.comfortable-reading .app-body main .eyebrow{font-size:13px;line-height:1.5}
body.comfortable-reading :is(.mini-recipe strong,.mini-recipe small,.plan-card-actions .button,.water-portion strong,.water-portion span){font-size:16px}
body.comfortable-reading .inspiration blockquote{font-size:25px;line-height:1.65}
body.comfortable-reading .inspiration figcaption{font-size:16px}
body.comfortable-reading .toast{font-size:15px;line-height:1.6}
body.comfortable-reading .toast button{font-size:15px}
body.comfortable-reading .calendar-day>b{font-size:16px}
body.comfortable-reading .calendar-day>span{font-size:14px}
body.comfortable-reading .results-label{flex-wrap:wrap;gap:6px;padding-block:10px}
@media(max-width:600px){
 body.comfortable-reading .recipes-library .pantry-button{font-size:14px;gap:6px;padding-inline:10px}
 body.comfortable-reading .recipes-library .pantry-button .icon{width:19px;height:19px}
 body.comfortable-reading .timer-actions{flex-wrap:wrap;gap:10px}
 body.comfortable-reading .timer-actions>.button{min-width:110px}
 body.comfortable-reading .cooking-recipe{flex-wrap:wrap}
 body.comfortable-reading .cooking-recipe>div{flex:1;min-width:120px}
}
@media(max-width:800px){.mobile-header{padding-top:calc(23px + env(safe-area-inset-top,0px))}}
@media(max-width:600px){
 .mobile-header{padding-top:calc(16px + env(safe-area-inset-top,0px))}
 .welcome-content{padding-top:calc(24px + env(safe-area-inset-top,0px))}
}

.account-form{max-width:32rem}.welcome-content>.forgot{display:block;margin:18px auto}

/* Compact demo water preview; example values never become consumption records. */
.demo-water-card{max-width:480px}
.demo-water-preview>.eyebrow{margin:0 0 8px}
.demo-water-preview>.water-progress-track{margin:14px 0 18px;background:var(--yellow,#f3d783)}
.demo-water-preview .water-progress-fill{background:#72c4ed;transition:width .25s ease,background .25s ease}
.demo-water-preview .water-progress-fill.is-complete{background:#74cf93}
.demo-water-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.demo-water-preview>.text-link{min-height:44px;display:inline-flex;align-items:center}
@media(prefers-reduced-motion:reduce){.demo-water-preview .water-progress-fill{transition:none}}

/* Items added by the user remain separate from recipe ingredients. */
.shopping-sections{min-width:0;display:grid;gap:28px;align-content:start}
.shopping-section-heading{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.shopping-section-heading h2,.shopping-extras h2{font-size:20px;margin:0}
.shopping-section-heading .text-link{min-height:44px;display:inline-flex;align-items:center}
.shopping-extras{padding:22px;border:1px solid #e8d9b4;border-radius:16px;background:#fff9ec;min-width:0}
.shopping-extras>.small{margin:8px 0 18px}
.shopping-add-row{display:flex;gap:8px;align-items:stretch}
.shopping-add-row input{flex:1;min-width:0;width:100%;font:inherit;padding:12px;border:1px solid #cbd7c9;border-radius:10px;background:var(--white,#fff);color:var(--dark)}
.shopping-add-row .button{flex:none;padding:10px 14px;gap:6px;min-height:46px}
.shopping-row .check-row{min-width:0;flex:1}
.shopping-row .check-row>span{min-width:0;overflow-wrap:anywhere}
.shopping-row-actions{display:flex;flex:none;gap:2px}
.shopping-extra-row .check-row{font-weight:500}
.shopping-extra-row:has(input:checked) .check-row>span{text-decoration:line-through;color:var(--muted)}
.shopping-extras-empty{margin-bottom:0!important}
.shopping-tools .small{margin-bottom:0}
@media(max-width:480px){.shopping-extras{padding:16px}.shopping-section-heading h2,.shopping-extras h2{font-size:18px}.shopping-add-row .button span{display:none}.shopping-add-row .button{width:46px;padding:10px}.shopping-extra-row .icon-button{width:40px;min-width:40px}.shopping-row-actions{gap:0}.shopping-extra-row .check-row{font-size:15px}}

.shopping-extras>form{margin-top:16px}
