:root{--bg: #F2F1ED;--bg2: #E9E7E0;--card: #FBFAF7;--card2: #FFFFFF;--line: #D9D6CD;--text: #2C333A;--muted: #5F6A72;--accent: #597A6D;--accent2: #6C9F9A;--protein: #E38D53;--carbs: #6C9F9A;--fat: #597A6D;--danger: #c0453c;--ok: #597A6D;--glow: #e6e3da;--radius: 14px;--font: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;--font-head: "Montserrat", "Segoe UI", system-ui, sans-serif}:root[data-theme=dark]{--bg: #1E242A;--bg2: #2C333A;--card: #262D34;--card2: #2C333A;--line: #3C454E;--text: #F2F1ED;--muted: #9AA6AE;--accent: #6FA292;--accent2: #7FB5AF;--protein: #E38D53;--carbs: #7FB5AF;--fat: #6FA292;--danger: #E06A61;--ok: #6FA292;--glow: #262E36}:root[data-theme=dark] .logo-img,:root[data-theme=dark] .welcome-logo,:root[data-theme=dark] .auth-logo{mix-blend-mode:screen;filter:invert(1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 80% -10%,var(--glow) 0%,var(--bg) 55%);color:var(--text);font-family:var(--font);min-height:100vh}#root,.app-shell{min-height:100vh}h1,h2,h3{margin:0 0 10px;letter-spacing:.2px;font-family:var(--font-head);font-weight:700}h1{font-size:1.7rem}h2{font-size:1.25rem}h3{font-size:1.05rem}.brand{color:var(--accent)}.lede{color:var(--muted);line-height:1.55;margin:0 0 18px}.hint{color:var(--muted);font-size:.85rem}.opt{color:var(--muted);font-style:normal;font-weight:400;font-size:.8em}.badge{background:var(--accent);color:#fff;border-radius:6px;font-size:.65rem;padding:1px 6px;margin-left:6px;vertical-align:middle}.btn{border:1px solid var(--line);border-radius:10px;padding:10px 18px;background:var(--card2);color:var(--text);font-size:.95rem;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn:hover{border-color:var(--accent);transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent2) 100%);color:#fff;font-weight:700;border:none}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn.danger:hover{background:var(--danger);color:#fff}.btn.small{padding:5px 12px;font-size:.8rem}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px}.center-card{text-align:center;padding:60px 20px}.onboarding{max-width:760px;margin:0 auto;padding:32px 18px 60px}.onboarding h1{text-align:center}.ob-progress{display:flex;gap:4px;margin-bottom:22px;flex-wrap:wrap}.ob-step{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;color:var(--muted);font-size:.78rem}.ob-step.active{background:var(--card2);color:var(--text)}.ob-step.done{color:var(--ok);cursor:pointer}.ob-dot{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--card2);border:1px solid var(--line);font-size:.72rem;flex-shrink:0}.ob-step.active .ob-dot{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.ob-step.done .ob-dot{background:transparent;border-color:var(--ok);color:var(--ok)}.ob-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.ob-nav{display:flex;justify-content:space-between;margin-top:26px}.ob-error{margin-top:14px;color:var(--danger);background:#e5484d1a;border:1px solid rgba(229,72,77,.4);padding:10px 14px;border-radius:10px;font-size:.9rem}.cancel-edit{position:fixed;top:14px;right:16px}.field{display:block;margin-bottom:18px;position:relative}.field>span{display:block;margin-bottom:7px;font-size:.88rem;color:var(--muted);font-weight:600}input,select{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font-size:.98rem;font-family:inherit}input:focus,select:focus{outline:none;border-color:var(--accent)}input[type=range]{padding:0;accent-color:var(--accent)}input[type=number]{-moz-appearance:textfield}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}.pair{display:flex;align-items:center;gap:8px}.pair em{color:var(--muted);font-style:normal}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1;min-width:60px;padding:10px 8px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);cursor:pointer;font-size:.88rem;font-family:inherit}.seg button.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.option-list{display:grid;gap:8px;margin-bottom:18px}.option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:13px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font-family:inherit;font-size:.95rem}.option span{color:var(--muted);font-size:.82rem}.option.on{border-color:var(--accent);background:#597a6d14}.option.on b{color:var(--accent)}.chip-row{display:flex;gap:7px;flex-wrap:wrap}.chip{padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);cursor:pointer;font-size:.84rem;font-family:inherit}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.chip.warn.on{background:var(--danger);color:#fff;border-color:var(--danger)}.search-drop{position:absolute;z-index:5;left:0;right:0;margin-top:4px;background:var(--card2);border:1px solid var(--line);border-radius:10px;overflow:hidden}.search-drop button{display:block;width:100%;text-align:left;padding:10px 14px;border:none;background:transparent;color:var(--text);cursor:pointer;font-family:inherit;font-size:.9rem}.search-drop button:hover{background:var(--bg2)}.toggle-field{display:flex;align-items:center;justify-content:space-between}.toggle-field>span{margin:0}.toggle{width:52px;height:28px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);position:relative;cursor:pointer;flex-shrink:0}.toggle .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:all .18s ease}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle.on .knob{left:27px;background:#fff}.review-grid,.stat-row{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.stat{flex:1;min-width:120px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.stat em{font-style:normal;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.stat b{font-size:1.5rem}.stat b.small{font-size:1rem;line-height:1.3}.stat span{color:var(--muted);font-size:.75rem}.stat.accent{border-color:var(--accent);background:#597a6d12}.stat.accent b{color:var(--accent)}.review-macros{display:flex;align-items:center;gap:24px;margin:12px 0;flex-wrap:wrap}.macro-legend{display:grid;gap:8px;font-size:.95rem}.macro-legend b{margin-left:6px}.sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px}.sw.p{background:var(--protein)}.sw.c{background:var(--carbs)}.sw.f{background:var(--fat)}.macro-donut .donut-track{fill:none;stroke:var(--bg2);stroke-width:12}.macro-donut .donut-seg{fill:none;stroke-width:12;stroke-linecap:butt}.macro-donut .seg-p{stroke:var(--protein)}.macro-donut .seg-c{stroke:var(--carbs)}.macro-donut .seg-f{stroke:var(--fat)}.macro-donut .donut-num{fill:var(--text);font-size:15px;font-weight:700;font-family:var(--font)}.macro-donut .donut-sub{fill:var(--muted);font-size:8px;font-family:var(--font)}.dashboard{max-width:1080px;margin:0 auto;padding:0 18px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;flex-wrap:wrap;position:sticky;top:0;z-index:10;background:linear-gradient(180deg,var(--bg) 80%,transparent)}.brand-block{display:flex;flex-direction:column}.logo{font-size:1.25rem;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:10px}.logo-img{height:44px;width:auto;border-radius:8px;object-fit:contain;flex-shrink:0;mix-blend-mode:multiply}.tagline{color:var(--muted);font-size:.78rem}.welcome-logo{display:block;width:340px;max-width:85%;border-radius:16px;margin:0 auto 14px;mix-blend-mode:multiply}.tabs{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.theme-toggle{border:1px solid var(--line);border-radius:999px;background:var(--card);padding:6px 10px;cursor:pointer;font-size:.95rem;line-height:1}.theme-toggle:hover{border-color:var(--accent)}.tabs button{padding:9px 15px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem;font-family:inherit}.tabs button:hover{color:var(--text)}.tabs button.on{background:var(--card);border-color:var(--line);color:var(--accent);font-weight:600}.hero-card{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;background:linear-gradient(135deg,var(--card) 0%,var(--bg2) 100%);border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-bottom:18px}.week-strip{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.day-chip{flex:1;min-width:96px;padding:10px 8px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:2px;align-items:center}.day-chip:hover{border-color:var(--accent)}.day-chip span{color:var(--muted);font-size:.78rem}.day-chip .mini{font-size:.68rem}.coach-tips{margin:6px 0 0;padding-left:20px;color:var(--text);line-height:1.7}.coach-tips li{margin-bottom:6px}.plan-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.day-tabs{display:flex;gap:5px;flex-wrap:wrap}.day-tabs button{padding:8px 13px;border-radius:9px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);cursor:pointer;font-family:inherit;font-size:.86rem}.day-tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.day-summary{display:flex;flex-direction:column;gap:10px}.totals-bars{display:grid;gap:7px}.tb-row{display:grid;grid-template-columns:70px 1fr 150px;align-items:center;gap:12px;font-size:.83rem}.tb-label{color:var(--muted)}.tb-val{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.tb-track{position:relative;height:10px;border-radius:999px;background:var(--bg2);overflow:hidden}.tb-fill{height:100%;border-radius:999px;transition:width .4s ease}.tb-fill.bar-k{background:var(--accent2)}.tb-fill.bar-p{background:var(--protein)}.tb-fill.bar-c{background:var(--carbs)}.tb-fill.bar-f{background:var(--fat)}.tb-fill.off{opacity:.55}.meals{display:grid;gap:14px}.meal-card{margin-bottom:0}.meal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}.meal-head h3{margin:0}.meal-head-right{display:flex;align-items:center;gap:10px}.meal-kcal{color:var(--accent);font-weight:700;font-size:.95rem}.meal-table{width:100%;border-collapse:collapse;font-size:.9rem}.meal-table td{padding:7px 6px;border-top:1px solid var(--line)}.meal-table tfoot td{color:var(--muted);font-size:.83rem}.food-name{font-weight:500}.food-qty{color:var(--muted);white-space:nowrap}.food-macros{text-align:right;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.grocery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.grocery-items{list-style:none;margin:6px 0 0;padding:0}.grocery-items li{display:flex;align-items:center;gap:10px;padding:8px 4px;border-top:1px solid var(--line);cursor:pointer;font-size:.9rem}.grocery-items li.done .g-name{text-decoration:line-through;color:var(--muted)}.checkbox{width:20px;height:20px;border-radius:6px;border:1px solid var(--line);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--ok)}li.done .checkbox{border-color:var(--ok);background:#46c47e1f}.g-name{flex:1}.g-qty{color:var(--muted);font-variant-numeric:tabular-nums}.food-filters{display:grid;gap:10px;margin-bottom:14px}.food-table-wrap{overflow-x:auto;padding:0}.food-table{width:100%;border-collapse:collapse;font-size:.88rem}.food-table th{text-align:left;padding:12px 14px;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line)}.food-table td{padding:9px 14px;border-bottom:1px solid var(--line)}.food-table tr.dim{opacity:.4}.food-table .per100{display:block;color:var(--muted);font-size:.7rem}.add-food{border-color:var(--accent)}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:14px 0}.profile-grid>div{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}.profile-grid em{font-style:normal;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}.danger-zone{border-color:#e5484d66}.day-select{display:flex;gap:6px;flex-wrap:wrap}.day-btn{flex:1;min-width:64px;padding:9px 6px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:3px;align-items:center;font-size:.85rem}.day-btn b{color:var(--text)}.day-btn span{font-size:.7rem;text-transform:uppercase;letter-spacing:.4px}.day-btn.train{border-color:var(--carbs);background:#4ecdc414}.day-btn.train span{color:var(--carbs)}.day-btn.heavy{border-color:var(--protein);background:#ef64611a}.day-btn.heavy span{color:var(--protein)}.day-btn.rest span{color:var(--muted)}.cycling-preview{margin:14px 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg2);font-size:.9rem}.cycling-rows{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.cycling-row{flex:1;min-width:130px;display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:10px;border:1px solid var(--line)}.cycling-row span{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.cycling-row em{font-style:normal;color:var(--muted);font-size:.8rem}.cycling-row.heavy{border-color:var(--protein)}.cycling-row.train{border-color:var(--carbs)}.tier-badge{padding:4px 12px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--line);color:var(--muted)}.tier-badge.high{border-color:var(--carbs);color:var(--carbs);background:#4ecdc414}.tier-badge.low{border-color:var(--line);color:var(--muted)}.tier-badge.moderate{border-color:var(--accent);color:var(--accent);background:#597a6d12}.tier-mini{font-size:.62rem!important}.tier-mini.high{color:var(--carbs)!important}.tier-mini.moderate{color:var(--accent)!important}.day-summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.recipe-badge{background:var(--carbs)}.warn-badge{background:#b45309;color:#fff}.macro-adjust{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 10px}.macro-adjust-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;font-size:.78rem;color:var(--muted)}.macro-adjust-chip b{font-size:.78rem}.macro-adjust-chip.m-p b{color:var(--protein)}.macro-adjust-chip.m-c b{color:var(--carbs)}.macro-adjust-chip.m-f b{color:var(--fat)}.macro-adjust-chip button{border:none;background:var(--bg2);color:var(--text);border-radius:50%;width:18px;height:18px;line-height:1;cursor:pointer;font-size:.8rem;padding:0}.macro-adjust-chip button:hover{background:var(--accent);color:#fff}.swap-picker{position:relative;display:inline-block}.swap-pop{position:absolute;right:0;top:100%;z-index:40;margin-top:4px;min-width:230px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:8px;display:block;box-shadow:0 8px 24px #0000002e}.swap-pop input{width:100%;margin-top:6px;padding:6px 9px;font-size:.83rem}.swap-pop .swap-random{display:block;width:100%;text-align:left;padding:7px 9px;border:none;border-radius:8px;background:var(--bg2);color:var(--text);cursor:pointer;font-family:inherit;font-size:.85rem}.swap-pop .swap-random:hover{background:var(--accent);color:#fff}.swap-pop .search-drop{position:static;margin-top:6px;display:block}.fav-btn{background:transparent;border:none;cursor:pointer;font-size:1rem;padding:2px 6px}.recipe-card{position:relative}.recipe-card .fav-btn{position:absolute;top:10px;right:12px;z-index:2}.recipe-card .recipe-head{padding-right:40px}.ing-excluded>span:first-child{color:#f59e0b}.sub-btn{margin-left:8px;padding:0 7px;font-size:.75rem;cursor:pointer}.ing-stepper{display:inline-flex;gap:3px;margin-left:8px;vertical-align:middle}.ing-stepper button{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:50%;width:17px;height:17px;line-height:1;cursor:pointer;font-size:.75rem;padding:0}.ing-stepper button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.sub-search{position:relative;display:inline-block;margin-left:8px}.sub-search input{padding:3px 8px;font-size:.8rem;width:210px}.sub-search .search-drop{position:absolute;left:0;top:100%;z-index:30;min-width:240px}.recipe-ings{margin:6px 0 0;padding-left:20px;color:var(--muted);font-size:.83rem;line-height:1.55}.recipe-method{margin-top:6px;font-size:.83rem}.recipe-method summary{cursor:pointer;color:var(--accent);font-weight:600}.recipe-method ol{margin:6px 0 2px;padding-left:20px;color:var(--muted);line-height:1.6}.store-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.plan-hint{margin:-6px 0 12px}.stepper{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.stepper b{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;min-width:46px;text-align:center}.stepper button{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);cursor:pointer;font-family:inherit;font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.stepper button:hover{border-color:var(--accent);color:var(--accent)}.stepper .swap-btn{margin-left:4px;font-size:.8rem}.stepper .swap-btn:hover{border-color:var(--carbs);color:var(--carbs)}.portion-note{color:var(--muted);font-size:.82rem}.recipe-scale{margin-top:6px}.rings-card{padding-bottom:14px}.rings-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:center}.rings-small{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.ring-block{display:flex;flex-direction:column;align-items:center;gap:2px}.ring-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.5px}.progress-ring .donut-track{fill:none;stroke:var(--bg2);stroke-width:10}.progress-ring .ring-fill{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dasharray .4s ease}.progress-ring.ring-k .ring-fill{stroke:var(--accent2)}.progress-ring.ring-p .ring-fill{stroke:var(--protein)}.progress-ring.ring-c .ring-fill{stroke:var(--carbs)}.progress-ring.ring-f .ring-fill{stroke:var(--fat)}.progress-ring.over .ring-fill{stroke:var(--danger)}.progress-ring .donut-num{fill:var(--text);font-size:16px;font-weight:700;font-family:var(--font)}.progress-ring .donut-sub{fill:var(--muted);font-size:7.5px;font-family:var(--font)}.guidance{display:flex;flex-direction:column;gap:4px;margin-top:14px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg2)}.guidance span{color:var(--muted);font-size:.88rem;line-height:1.5}.guidance.warn{border-color:#e5484d80}.guidance.warn b{color:var(--danger)}.guidance.done b{color:var(--ok)}.guidance.go b{color:var(--accent)}.ok-text{color:var(--ok)}.warn-text{color:var(--danger)}.week-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ledger-strip{display:flex;gap:6px;margin-top:10px}.ledger-chip{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);font-size:.78rem}.ledger-chip span{color:var(--muted);font-size:.7rem;font-variant-numeric:tabular-nums}.ledger-chip.today{border-color:var(--accent);background:#597a6d14}.ledger-chip.on{border-color:var(--ok)}.ledger-chip.over{border-color:var(--danger)}.ledger-chip.under{border-color:var(--carbs)}.ledger-chip.future,.ledger-chip.nodata{opacity:.65}.adj-dot{position:absolute;top:5px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.today-meals{display:grid;gap:8px;margin-top:10px}.today-meal{display:grid;grid-template-columns:30px 1fr auto;grid-template-areas:"check name macros" "check items macros";align-items:center;column-gap:12px;text-align:left;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font-family:inherit;font-size:.92rem}.today-meal:hover{border-color:var(--accent)}.tm-check{grid-area:check;width:26px;height:26px;border-radius:8px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--ok);font-weight:700}.tm-name{grid-area:name;font-weight:600}.tm-items{grid-area:items;color:var(--muted);font-size:.78rem}.tm-macros{grid-area:macros;color:var(--muted);font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}.today-meal.done{border-color:var(--ok);background:#46c47e0f}.today-meal.done .tm-check{border-color:var(--ok);background:#46c47e26}.today-meal.done .tm-name{text-decoration:line-through;color:var(--muted)}.quickadd-row{margin:10px 0 0}.quickadd-confirm{display:flex;align-items:flex-end;gap:12px;margin-top:10px}.extras-list{list-style:none;margin:12px 0 0;padding:0}.extras-list li{display:flex;align-items:center;gap:12px;padding:8px 4px;border-top:1px solid var(--line);font-size:.9rem;flex-wrap:wrap}.extras-list li span:first-child{flex:1;min-width:140px}.weighin-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.debrief-time{max-width:130px;padding:6px 8px;font-size:.95rem}.recipe-list{display:grid;gap:10px}.recipe-card{margin-bottom:0;padding:0;overflow:hidden}.recipe-card.dim{opacity:.55}.recipe-head{width:100%;display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:14px 18px;background:transparent;border:none;color:var(--text);cursor:pointer;font-family:inherit;font-size:.95rem;text-align:left}.recipe-head:hover{background:var(--bg2)}.recipe-title{font-weight:600}.recipe-meta{color:var(--muted);font-size:.8rem}.recipe-detail{padding:0 18px 16px}.recipe-steps{margin:8px 0 0;padding-left:20px;color:var(--muted);font-size:.85rem;line-height:1.6}.field-label{display:block;margin:6px 0 8px;font-size:.88rem;color:var(--muted);font-weight:600}.ing-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ing-search{flex:1;margin:0}.ing-grams{max-width:90px}.ing-unit{white-space:nowrap}textarea{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font-size:.95rem;font-family:inherit;resize:vertical}textarea:focus{outline:none;border-color:var(--accent)}.ul-card{padding:6px 4px}.ul-table{width:100%;border-collapse:collapse}.ul-row td{padding:10px 8px;border-top:1px solid var(--line);vertical-align:top}.ul-row.done .ul-name{text-decoration:line-through;opacity:.6}.ul-check button{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:var(--bg2);color:var(--ok);cursor:pointer}.ul-main{width:100%}.ul-name{font-weight:600}.ul-sub{font-size:.8rem;color:var(--muted)}.ul-unmatched{color:var(--warn, #c98a3f)}.ul-qty{font-size:.82rem;color:var(--muted);margin-top:2px}.ul-price-line{margin-top:3px;font-size:.78rem;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ul-fresh{padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;border:1px solid var(--line)}.fresh-current{color:#2e9e5b;border-color:#2e9e5b}.fresh-recent{color:var(--accent);border-color:var(--accent)}.fresh-dated{color:#c98a3f;border-color:#c98a3f}.fresh-historical,.ul-src{color:var(--muted)}.ul-personal{color:var(--accent);font-weight:600}.ul-cost{text-align:right;white-space:nowrap}.ul-actions{margin-top:4px;display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.ul-edit{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}.ul-edit input{max-width:80px}.ul-total{font-weight:700;padding-top:10px;border-top:2px solid var(--line)}.ul-total-val{text-align:right;color:var(--accent)}.stale-notice{border:1px solid #c98a3f55;border-radius:8px;padding:8px 12px}.ul-match-actions{margin-top:4px;display:flex;gap:6px;flex-wrap:wrap}.ul-match-row td{background:var(--bg2);padding:10px 12px}.refresh-chip{border-color:var(--accent)!important}.refresh-chip:disabled{opacity:.6;cursor:progress}.copy-mode{padding:8px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text)}.copy-fallback{width:100%;font-family:monospace;font-size:.8rem;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text);padding:8px}.raw-breakdown summary{cursor:pointer;font-weight:600;padding:4px}.fresh-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin:8px 0}.fresh-tile{text-align:center;padding:10px 6px;border-radius:10px;border:1px solid var(--line);background:var(--bg2)}.fresh-tile b{display:block;font-size:1.3rem}.fresh-tile span{font-size:.72rem;color:var(--muted)}.fresh-tile.dated{border-color:#c98a3f}.fresh-tile.historical,.fresh-tile.none{opacity:.8}.verify-table{width:100%;border-collapse:collapse}.verify-table td{padding:6px 5px;border-top:1px solid var(--line);vertical-align:middle}.verify-table input{padding:6px 8px;border-radius:6px;border:1px solid var(--line);background:var(--bg2);color:var(--text);max-width:120px}.vr-name{min-width:160px}.cand-list{display:grid;gap:6px;padding:6px 0}.cand{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px;border-radius:8px;background:var(--bg2)}.cand.review{border:1px dashed #c98a3f}.cand-name{flex:1;min-width:160px;font-size:.85rem}.auth-checking{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:1rem}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;display:flex;flex-direction:column}.auth-logo{width:300px;max-width:90%;object-fit:contain;border-radius:16px;align-self:center;margin-bottom:14px;mix-blend-mode:multiply}.auth-card h1{text-align:center;font-size:1.5rem;margin-bottom:4px}.auth-lede{text-align:center;margin-bottom:20px;font-size:.9rem}.auth-submit{margin-top:6px}.auth-toggle{align-self:center;margin-top:12px}.auth-note{text-align:center;margin-top:16px;line-height:1.5}.account-card{border-color:var(--accent)}.account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.account-form{margin-top:14px;align-items:end}.review-list{list-style:none;margin:6px 0 0;padding:0}.review-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}.review-info{flex:1;min-width:220px;font-size:.9rem}.gls{position:relative}.gls-loading{position:absolute;right:12px;top:12px;color:var(--muted);font-size:.78rem}.gls .field{position:relative}.gls-drop{position:absolute;z-index:30;left:0;right:0;margin-top:4px;max-height:420px;overflow-y:auto;background:var(--card2);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #00000080}.gls-note{padding:9px 14px;color:var(--muted);font-size:.82rem;border-bottom:1px solid var(--line)}.gls-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}.gls-row:last-child{border-bottom:none}.gls-img{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#fff;flex-shrink:0}.gls-img-empty{display:inline-block;background:var(--bg2)}.gls-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.gls-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gls-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gls-chip{padding:2px 9px;border-radius:999px;font-size:.68rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}.gls-chip.woolworths{background:#178841}.gls-chip.coles{background:#e01a22}.gls-chip.aldi{background:#001e5a}.gls-chip.other{background:var(--line);color:var(--text)}.gls-price{color:var(--accent);font-weight:700;font-size:.85rem}.gls-date{color:var(--muted);font-size:.72rem}.gls-date.dated{color:#c98a3f}.gls-cal{color:var(--muted);font-size:.78rem}.gls-actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.gls-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid var(--accent);background:var(--bg2);position:sticky;bottom:0}.gls-confirm span:first-child{flex:1;min-width:140px;font-size:.85rem}.gls-confirm input{max-width:90px}.gls-flash{margin-top:8px;padding:8px 14px;border-radius:10px;font-size:.85rem;border:1px solid var(--ok);color:var(--ok);background:#46c47e14}@media (max-width: 640px){.gls-actions{flex-direction:row}.gls-row{flex-wrap:wrap}}.finish-btn{position:relative}.nudge-dot{position:absolute;top:-4px;right:-4px;width:12px;height:12px;border-radius:50%;background:var(--accent2);box-shadow:0 0 10px var(--accent2)}.debrief-panel{border-color:var(--accent)}.debrief-options{display:grid;gap:8px}@media (max-width: 640px){.grid2,.grid3{grid-template-columns:1fr}.rings-row{flex-direction:column}.today-meal{grid-template-columns:30px 1fr;grid-template-areas:"check name" "check items" "check macros"}.tm-macros{white-space:normal}.tb-row{grid-template-columns:60px 1fr}.tb-val{grid-column:2;text-align:left}.ob-label{display:none}.ob-step.active .ob-label{display:inline}.hero-card{flex-direction:column}}
