@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#1c1c1b;--surface:#252524;--surface-raised:#30302e;--surface-soft:#20201f;--line:#3b3b38;--line-strong:#595956;--ink:#f4f4ec;--muted:#b1b2a9;--faint:#888a82;--lime:#006b54;--lime-ink:#f4f4ec;--paper:#fff;--paper-soft:#f4f4ec;--paper-ink:#20201f;--paper-muted:#575750;--paper-line:#d7d7d0;--lilac:#cbbdff;--danger:#ffaaa7;--danger-surface:#472524;--macro-protein:var(--lime);--macro-carbs:var(--paper-ink);--macro-fat:var(--paper-muted);--radius:22px;--radius-sm:14px;--shadow:0 20px 50px #0003;--space-2:8px;--space-4:16px;--space-6:24px;--control-font-size:16px;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh}html,body{background:var(--canvas);color:var(--ink);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:-.08em;margin:16px 0;font-size:clamp(3rem,8vw,6.25rem);line-height:.9}h1 em{color:var(--lime);font-style:normal}h2{letter-spacing:-.055em;margin-bottom:8px;font-size:clamp(1.55rem,3vw,2.25rem);line-height:.98}h3{margin-bottom:6px;font-size:1.05rem}.eyebrow,.category-label{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin-bottom:9px;font-family:DM Mono,monospace;font-size:.67rem;font-weight:500}.landing{place-items:center;width:min(100% - 32px,420px);min-height:100vh;margin:auto;display:grid}.access-card{background:var(--lime);width:100%;color:var(--lime-ink);box-shadow:var(--shadow);border-radius:28px;padding:34px}.app-version{margin:var(--space-6) 0 0;color:var(--muted);letter-spacing:.04em;text-align:center;font-family:DM Mono,monospace;font-size:.65rem}.access-card .app-version{margin-top:var(--space-4);color:var(--lime-ink);opacity:.74}.login-brand{text-align:center;justify-items:center;margin-bottom:28px;display:grid}.login-brand h1{color:var(--lime-ink);letter-spacing:-.095em;margin:13px 0 6px;font-size:clamp(3.6rem,12vw,5.1rem)}.login-brand p{color:#485330;margin:0;font-size:.9rem}.logo-mark{border-radius:17px;width:54px;height:54px;display:block;transform:rotate(-8deg)}.access-card form,.catalog-panel form,.settings-card form{gap:14px;margin-top:22px;display:grid}label{color:var(--muted);gap:7px;font-size:.82rem;font-weight:600;display:grid}.access-card label{color:#fff}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-soft);width:100%;min-height:46px;color:var(--ink);font-size:var(--control-font-size);outline:none;padding:11px 13px;transition:border-color .16s,box-shadow .16s}.access-card input{color:#202516;background:#fff;border-color:#ffffffb8}input::placeholder{color:var(--faint)}input:focus,select:focus,button:focus-visible{border-color:var(--lime);outline:none;box-shadow:0 0 0 3px #ceff522e}.access-card input:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff42}.primary-button,.quiet-button,.link-button,.icon-action,.text-action,.remove-button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:42px;font-weight:700;transition:transform .16s,background .16s,border-color .16s;display:inline-flex}.primary-button{background:var(--lime);color:var(--lime-ink);padding:10px 16px}.access-card .primary-button{background:var(--lime-ink);color:var(--lime)}.quiet-button{border-color:var(--line-strong);color:var(--ink);background:0 0;padding:9px 14px}.access-card .link-button{color:#fff;margin-top:15px}.link-button,.text-action{color:var(--lime);background:0 0;padding:0}.access-card .link-button{color:#fff}.primary-button:hover,.quiet-button:hover,.icon-action:hover,.home-links button:hover{transform:translateY(-1px)}.notice,.error{border-radius:var(--radius-sm);margin:14px 0;padding:12px 14px;font-size:.9rem;line-height:1.4}.notice{color:#e3f8a9;background:#2d3521;border:1px solid #68764c}.toast{z-index:30;right:var(--space-4);bottom:max(var(--space-4), env(safe-area-inset-bottom));left:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-2);min-height:52px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow);margin:0;font-size:.9rem;line-height:1.4;display:flex;position:fixed}.toast p{margin:0}.toast button{width:44px;min-width:44px;height:44px;color:var(--ink);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:1.5rem;line-height:1;display:grid}.toast button:hover,.toast button:focus-visible{background:var(--surface)}.error{background:var(--danger-surface);color:var(--danger);border:1px solid #8e514e}.connection-note{color:#4b582e;font-size:.85rem}.app-shell{width:min(1120px,100% - 32px);margin:0 auto;padding:20px 0 54px}.app-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;min-height:52px;display:grid}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:9px;font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex}.brand .logo-mark{border-radius:9px;width:28px;height:28px;transform:rotate(-8deg)scale(.9)}.app-header>p{color:var(--faint);text-align:center;margin:0;font-family:DM Mono,monospace;font-size:.68rem}.app-header>.quiet-button{justify-self:end}.dashboard-intro{border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:end;gap:24px;min-height:270px;margin-top:16px;padding:clamp(30px,6vw,66px) 5% 32px;display:flex;overflow:hidden}.dashboard-intro h1{max-width:520px;margin-bottom:12px}.dashboard-intro p:not(.eyebrow){max-width:440px;color:var(--muted);margin-bottom:0;line-height:1.55}.plate-mark{background:var(--lime);width:190px;height:190px;box-shadow:inset 0 0 0 18px var(--paper);border-radius:50%;flex:0 0 190px;position:relative;transform:rotate(-9deg)}.plate-mark i{background:var(--surface);border-radius:50%;position:absolute;inset:30px}.plate-mark b{color:var(--lime);font-size:34px;position:absolute;top:56px;left:72px}.plate-mark span{background:var(--lilac);border-radius:999px;width:18px;height:42px;position:absolute;transform:rotate(40deg)}.plate-mark span:first-of-type{top:83px;left:46px}.plate-mark span:last-of-type{background:#ffad76;top:92px;right:43px;transform:rotate(-30deg)}.profile-picker{padding:24px 0 8px}.profile-picker>div{flex-wrap:wrap;gap:10px;display:flex}.profile-picker button{border:1px solid var(--line);background:var(--surface-soft);min-width:194px;color:var(--ink);text-align:left;border-radius:999px;align-items:center;gap:11px;padding:9px 14px 9px 9px;display:flex}.profile-picker button[aria-pressed=true]{border-color:var(--lime);background:#303625}.profile-picker b,.profile-card>b{width:38px;height:38px;color:var(--lime-ink);border-radius:50%;flex:none;place-items:center;display:grid}.profile-picker span{gap:2px;display:grid}.profile-picker small{color:var(--faint);font-size:.72rem}.profile-unavailable{color:var(--danger);margin:10px 0 0;font-size:.82rem}.profile-scope{color:var(--muted);margin:11px 0 18px;font-size:.86rem}.profile-scope strong{color:var(--lime)}.dashboard-nav{border:1px solid var(--line);background:#222220;border-radius:18px;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:6px;display:grid}.dashboard-nav button{min-height:54px;color:var(--faint);background:0 0;border:0;border-radius:12px;place-items:center;gap:2px;font-size:.75rem;display:grid}.dashboard-nav button span{font-size:1.08rem}.dashboard-nav button[aria-current=page]{border:1px solid var(--paper-line);background:var(--paper);color:var(--paper-ink);font-weight:700}.content{gap:28px;padding-top:36px;display:grid}.today-card{border-radius:var(--radius);background:var(--lime);color:var(--lime-ink);grid-template-columns:minmax(0,1fr) minmax(310px,.8fr);align-items:end;gap:22px;padding:28px;display:grid}.today-card .eyebrow{color:var(--lime)}.today-card h2{margin:0 0 8px;font-size:clamp(2rem,4vw,3.35rem)}.today-card>div>p:last-child{color:var(--paper-muted);margin:0}.section-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.section-heading>span{color:var(--faint);font-family:DM Mono,monospace;font-size:.72rem}.section-heading h2{margin:0}.nutrition-totals{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper-soft);grid-template-columns:minmax(112px,.8fr) minmax(0,1.2fr);display:grid}.calorie-progress{align-items:center;gap:var(--space-2);grid-template-columns:88px minmax(0,1fr);display:grid}.calorie-ring{width:88px;height:88px;transform:rotate(-90deg)}.calorie-ring circle{fill:none;stroke-width:4px}.calorie-ring-track{stroke:var(--paper-line)}.calorie-ring-segment{stroke-linecap:butt}.calorie-ring-segment.macro-protein{stroke:var(--macro-protein)}.calorie-ring-segment.macro-carbs{stroke:var(--macro-carbs)}.calorie-ring-segment.macro-fat{stroke:var(--macro-fat)}.calorie-progress p{margin:0}.calorie-progress strong{color:var(--paper-ink);text-overflow:ellipsis;white-space:nowrap;font-family:DM Mono,monospace;font-size:1rem;display:block;overflow:hidden}.calorie-progress span,.calorie-progress small{color:var(--paper-muted);display:block}.calorie-progress span{margin-top:2px;font-size:.72rem}.calorie-progress small{margin-top:4px;font-family:DM Mono,monospace;font-size:.6rem}.nutrition-macros{align-content:center;margin:0;padding:0;list-style:none;display:grid}.nutrition-macros li{border-bottom:1px solid var(--paper-line);grid-template-columns:8px minmax(0,1fr) auto;align-items:baseline;column-gap:6px;min-height:30px;padding:6px 0;display:grid}.nutrition-macros li:last-child{border-bottom:0}.macro-dot{border-radius:50%;width:8px;height:8px}.macro-dot.macro-protein{background:var(--macro-protein)}.macro-dot.macro-carbs{background:var(--macro-carbs)}.macro-dot.macro-fat{background:var(--macro-fat)}.macro-label{color:var(--paper-muted);font-size:.72rem}.nutrition-macros b{color:var(--paper-ink);font-family:DM Mono,monospace;font-size:.8rem}.nutrition-macros small{color:var(--paper-muted);grid-column:2/-1;margin-top:2px;font-family:DM Mono,monospace;font-size:.6rem}.nutrition-totals.is-surface{border-color:var(--line);background:var(--surface-raised)}.nutrition-totals.is-surface .calorie-ring-track{stroke:var(--line-strong)}.nutrition-totals.is-surface .calorie-progress strong,.nutrition-totals.is-surface .nutrition-macros b{color:var(--ink)}.nutrition-totals.is-surface .calorie-progress span,.nutrition-totals.is-surface .calorie-progress small,.nutrition-totals.is-surface .macro-label,.nutrition-totals.is-surface .nutrition-macros small{color:var(--muted)}.nutrition-totals.is-surface .nutrition-macros li{border-color:var(--line)}.nutrition-totals.is-surface .macro-dot.macro-carbs{background:var(--ink)}.nutrition-totals.is-surface .macro-dot.macro-fat{background:var(--faint)}.today-summary{gap:12px;display:grid}.meal-summary{gap:var(--space-2);display:grid}.meal-summary-cards{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.meal-summary-trigger{border:1px solid var(--paper-line);background:var(--paper-soft);text-align:left;border-radius:12px;min-width:0;min-height:56px;margin:0;padding:8px}.meal-summary-trigger[aria-expanded=true]{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime)}.meal-summary span,.meal-summary strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.meal-summary-options{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper-soft);display:grid}.meal-summary-options-heading{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.meal-summary-options-heading p{color:var(--paper-ink);margin:0;font-size:.8rem;font-weight:700}.meal-summary-options-heading button{border-color:var(--paper-line);min-width:44px;min-height:44px;color:var(--paper-ink);background:0 0;padding:0}.meal-summary-option{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper);color:var(--paper-ink);text-align:left;display:flex}.meal-summary-option span{gap:2px;display:grid}.meal-summary-option small,.meal-summary-option em{color:var(--paper-muted);font-family:DM Mono,monospace;font-size:.65rem;font-style:normal}.meal-summary-option em{color:var(--lime)}.meal-summary span{color:var(--paper-muted);margin-bottom:4px;font-family:DM Mono,monospace;font-size:.62rem}.meal-summary strong{color:var(--paper-ink);font-size:.75rem}.choice-grid,.recipe-grid,.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.choice-card,.recipe-card,.catalog-panel,.profile-card,.settings-card,.shopping-list,.history-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.choice-card{justify-content:space-between;align-items:end;gap:14px;min-height:122px;padding:18px;display:flex}.choice-card p{margin-bottom:5px;font-weight:700}.choice-card small{color:var(--muted)}.choice-card button{background:var(--lime);color:var(--lime-ink);border:0;border-radius:999px;padding:9px 12px;font-weight:700}.home-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.home-links button{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);text-align:left;background:0 0;grid-template-columns:36px 1fr;gap:2px 10px;padding:17px;display:grid}.home-links span{background:var(--surface-raised);width:36px;height:36px;color:var(--lime);border-radius:10px;grid-row:span 2;place-items:center;display:grid}.home-links small{color:var(--muted)}.menu-section{border-top:1px solid var(--line);padding-top:20px}.menu-section:first-of-type{border-top:0;padding-top:0}.menu-section h3{margin-bottom:12px}.menu-list{display:grid}.menu-list>article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.menu-list h4,.menu-list p{margin:0 0 5px}.menu-list p,.menu-list small{color:var(--muted);font-size:.85rem;line-height:1.45}.meal-actions{flex:none;gap:7px;display:flex}.icon-action{border-color:var(--line-strong);background:var(--surface-raised);width:42px;color:var(--lime);padding:0;font-size:1.3rem}.section-note{color:var(--muted);margin:-16px 0 0;line-height:1.5}.shopping-list{overflow:hidden}.shopping-list article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.shopping-list article:last-child{border-bottom:0}.shopping-list label{color:var(--ink);flex:1;align-items:center;gap:12px;display:flex}.shopping-list input{width:20px;min-height:20px;accent-color:var(--lime)}.shopping-list .grocery-copy{gap:4px;display:grid}.shopping-list small{color:var(--muted)}.shopping-list .grocery-price{color:var(--ink);gap:0}.shopping-list .grocery-price span:last-child,.shopping-list .grocery-nutrition{color:var(--muted)}.shopping-list .grocery-nutrition{font-family:var(--font-mono);font-size:var(--text-xs)}.shopping-list .is-checked b,.shopping-list .is-checked small{color:var(--faint);text-decoration:line-through}.store-sections{gap:var(--space-4);display:grid}.store-section{gap:var(--space-2);display:grid}.store-heading{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.store-heading h3,.store-heading span{margin:0}.store-heading span{color:var(--faint);font-family:DM Mono,monospace;font-size:.7rem}.remove-button{width:34px;min-height:34px;color:var(--faint);background:0 0;padding:0;font-size:1.25rem}.search-box{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-soft);align-items:center;gap:8px;padding:0 13px;display:flex}.search-box span{color:var(--lime);font-size:1.4rem}.search-box input{box-shadow:none;background:0 0;border:0}.recipe-category-filter{gap:var(--space-2);flex-wrap:wrap;display:flex}.recipe-category-filter button{border:1px solid var(--line);min-height:36px;color:var(--muted);background:0 0;border-radius:999px;padding:7px 10px;font-size:.75rem}.recipe-category-filter button.is-selected{border-color:var(--lime);color:var(--lime)}.weekly-summary{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.weekly-summary h3{color:var(--ink);margin:0;font-family:DM Mono,monospace;font-size:1.35rem}.weekly-summary-overview{gap:var(--space-3);grid-template-columns:64px minmax(0,1fr);align-items:center;min-width:0;display:grid}.weekly-summary-ring{width:64px;height:64px;transform:rotate(-90deg)}.weekly-summary-ring circle{fill:none;stroke-width:4px}.weekly-summary-ring-track{stroke:var(--line)}.weekly-summary-ring-segment{stroke-linecap:butt}.weekly-summary-ring-segment.macro-protein{stroke:var(--macro-protein)}.weekly-summary-ring-segment.macro-carbs{stroke:var(--ink)}.weekly-summary-ring-segment.macro-fat{stroke:var(--faint)}.weekly-summary-overview>div>span{margin-top:var(--space-2);color:var(--muted);font-family:DM Mono,monospace;font-size:.65rem;line-height:1.45;display:block}.weekly-summary ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.weekly-summary li{justify-content:space-between;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:.78rem;display:flex}.weekly-summary li:last-child{border-bottom:0;padding-bottom:0}.weekly-summary b{color:var(--ink);font-family:DM Mono,monospace}.history-day-label{margin:0 0 calc(var(--space-2) * -1)}.recipe-card{grid-template-columns:112px 1fr;display:grid;overflow:hidden}.recipe-art{background:var(--lime);min-height:176px;color:var(--lime-ink);place-items:center;font-size:2.3rem;display:grid}.recipe-card>div:last-child{padding:16px}.recipe-card small{color:var(--lime)}.recipe-card h3{margin:5px 0}.recipe-card p{color:var(--muted);font-size:.83rem;line-height:1.4}.recipe-details{border-top:1px solid var(--line);margin-top:12px}.recipe-details summary{cursor:pointer;min-height:44px;color:var(--ink);align-items:center;font-size:.78rem;font-weight:700;display:flex}.recipe-details summary::marker{color:var(--lime)}.recipe-detail-content{gap:12px;padding:0 0 12px;display:grid}.recipe-detail-content section{gap:6px;display:grid}.recipe-detail-content h4{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;margin:0;font-family:DM Mono,monospace;font-size:.62rem;font-weight:500}.recipe-detail-content ul,.recipe-detail-content ol{color:var(--muted);gap:5px;margin:0;padding-left:16px;font-size:.76rem;line-height:1.45;display:grid}.recipe-card footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.recipe-card footer>b{font-family:DM Mono,monospace;font-size:.78rem}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-panel{padding:22px}.catalog-panel>p,.compact-list{color:var(--muted);font-size:.86rem;line-height:1.45}.catalog-panel form{margin:18px 0}.compact-list{gap:8px;display:grid}.compact-list p{border-top:1px solid var(--line);gap:3px;margin:0;padding-top:9px;display:grid}.compact-list b{color:var(--ink)}.compact-list span{font-size:.78rem}.profile-card{align-items:center;gap:16px;padding:22px;display:flex}.profile-card>b{width:56px;height:56px;font-size:1.25rem}.profile-card p:last-child{color:var(--muted);margin-bottom:0}.history-section,.settings-card{padding:22px}.history-controls{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.history-controls label{flex:160px}.history-section .nutrition-totals{margin-bottom:16px}.history-list>article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:13px 0;display:flex}.history-list>article:last-child{border-bottom:0}.history-list h3,.history-list p{margin:0}.history-list p{color:var(--muted);margin-top:4px;font-size:.82rem}.history-list>article>b{color:var(--lime);white-space:nowrap;font-family:DM Mono,monospace;font-size:.8rem}.settings-card details+details{border-top:1px solid var(--line)}.settings-card summary{cursor:pointer;padding:10px 0;font-weight:700}.settings-card details>p{color:var(--muted);font-size:.86rem;line-height:1.45}.settings-card form{margin:12px 0}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--muted);text-align:center;padding:28px 16px}.empty p{margin:8px 0 0;font-size:.88rem;line-height:1.45}@media (width<=720px){.landing{width:min(100% - 32px,420px);padding:30px 0}.access-card{padding:27px}.app-shell{width:min(100% - 24px,620px)}.app-header{grid-template-columns:1fr auto}.app-header>p{display:none}.dashboard-intro{min-height:238px;padding:28px 22px}.plate-mark{flex-basis:122px;width:122px;height:122px;margin-right:-42px}.plate-mark i{inset:21px}.plate-mark b{font-size:25px;top:35px;left:45px}.plate-mark span{width:12px;height:28px}.plate-mark span:first-of-type{top:53px;left:29px}.plate-mark span:last-of-type{top:58px;right:28px}.profile-picker button{flex:1;min-width:0}.today-card,.nutrition-totals{grid-template-columns:1fr}.calorie-progress{grid-template-columns:96px minmax(0,1fr)}.calorie-ring{width:96px;height:96px}.choice-grid,.recipe-grid,.catalog-grid,.home-links{grid-template-columns:1fr}.recipe-card{grid-template-columns:94px 1fr}.recipe-art{min-height:150px}.dashboard-nav{z-index:4;position:sticky;bottom:10px}.dashboard-nav button{min-height:48px;font-size:.67rem}.content{padding-top:28px}.menu-list>article{align-items:flex-start}.meal-actions{flex-direction:column}.quiet-button{min-height:38px}.section-heading{align-items:start}.section-heading>span{text-align:right}.shopping-list article{padding:15px}.weekly-summary{grid-template-columns:1fr}}
