:root{--bg: #f6f1e8;--bg-soft: #efe8db;--surface: #fbf7ee;--surface-2: #f1ead9;--line: #e3dac5;--line-strong: #d6c8a9;--ink: #2a2a23;--ink-2: #4a4a3e;--ink-3: #7a7868;--ink-4: #a6a394;--primary: #6b7a4f;--primary-deep: #4f5c3a;--primary-soft: #d9deca;--primary-tint: #ebeede;--amber: #c98a2b;--amber-soft: #f5e4c2;--amber-tint: #fbf2dc;--blue: #4a7aa6;--blue-soft: #d8e3ee;--green: #6b8f5a;--green-soft: #d6e3cd;--rose: #b87373;--rose-soft: #ebd2d2;--c-indian: #e8b86d;--c-indian-bg: #fbecd0;--c-indian-ink: #7a4f12;--c-italian: #e0a3ad;--c-italian-bg: #f8dde1;--c-italian-ink: #7a3845;--c-asian: #a8b88a;--c-asian-bg: #e3ead2;--c-asian-ink: #4a5933;--c-mediterranean: #95b3c9;--c-mediterranean-bg: #d9e6ef;--c-mediterranean-ink: #355770;--c-mexican: #d28966;--c-mexican-bg: #f3d9c8;--c-mexican-ink: #7a3f1e;--c-middleeastern: #b9a3c9;--c-middleeastern-bg: #e3d8ee;--c-middleeastern-ink: #553f70;--c-fresh: #a8c98a;--c-fresh-bg: #e0ecd0;--c-fresh-ink: #4a6633;--user1: #6b7a4f;--user2: #c98a2b;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--r-1: 6px;--r-2: 10px;--r-3: 14px;--r-4: 20px;--r-pill: 999px;--sh-1: 0 1px 2px rgba(60, 50, 20, .04), 0 2px 6px rgba(60, 50, 20, .04);--sh-2: 0 1px 2px rgba(60, 50, 20, .05), 0 8px 22px rgba(60, 50, 20, .07);--sh-3: 0 8px 32px rgba(60, 50, 20, .14);--f-display: "Fraunces", "Cooper Std", Georgia, serif;--f-body: "Work Sans", -apple-system, system-ui, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--t-display: 32px;--t-h1: 26px;--t-h2: 20px;--t-h3: 17px;--t-body: 15px;--t-small: 13px;--t-micro: 11px;--pad-screen: 20px;--pad-card: 16px;--gap-card: 12px;--row-h: 56px;--tap: 48px}[data-density=compact]{--pad-screen: 14px;--pad-card: 12px;--gap-card: 8px;--row-h: 48px;--tap: 44px}[data-theme=dark]{--bg: #1f1c16;--bg-soft: #25221b;--surface: #2a2620;--surface-2: #322d24;--line: #3a3429;--line-strong: #4a4337;--ink: #f0ead9;--ink-2: #d6cfbb;--ink-3: #a39d8a;--ink-4: #6e6957;--primary: #a9b88a;--primary-deep: #c2cea7;--primary-soft: #3d4733;--primary-tint: #2f3829;--amber: #e0a85c;--amber-soft: #4a3a1f;--amber-tint: #3a2e1a;--blue-soft: #2c3a4a;--green-soft: #2e3d28;--rose-soft: #4a2e2e;--c-indian-bg: #4a3a1f;--c-indian-ink: #f0d39a;--c-italian-bg: #4a2e34;--c-italian-ink: #f0c9d0;--c-asian-bg: #34402a;--c-asian-ink: #d2e0b8;--c-mediterranean-bg: #2c3e4a;--c-mediterranean-ink: #c0d8e8;--c-mexican-bg: #4a3024;--c-mexican-ink: #f0c4a8;--c-middleeastern-bg: #3a2e4a;--c-middleeastern-ink: #d8c8e8;--c-fresh-bg: #34402a;--c-fresh-ink: #d2e0b8;--sh-1: 0 1px 2px rgba(0,0,0,.3), 0 2px 6px rgba(0,0,0,.25);--sh-2: 0 1px 2px rgba(0,0,0,.4), 0 8px 22px rgba(0,0,0,.3)}[data-palette=forest]{--primary: #2d4a3e;--primary-deep: #1f3528;--primary-soft: #c9d6cc;--primary-tint: #dfe7e0;--user1: #2d4a3e}[data-palette=moss]{--primary: #5a6e3a;--primary-deep: #3d4f25;--primary-soft: #d2dbb5;--primary-tint: #e3e9cf;--user1: #5a6e3a}*{box-sizing:border-box}body{margin:0;font-family:var(--f-body);font-size:var(--t-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}.f-display{font-family:var(--f-display);font-weight:500;letter-spacing:-.01em;font-variation-settings:"SOFT" 50,"opsz" 144}.phone-stage{min-height:100vh;background:radial-gradient(circle at 30% 20%,#efe5d2,#d9cfb7);display:flex;align-items:center;justify-content:center;padding:32px 16px}[data-theme=dark] .phone-stage{background:radial-gradient(circle at 30% 20%,#2a2620,#15130f)}.phone{width:375px;height:812px;background:var(--bg);border-radius:44px;position:relative;overflow:hidden;box-shadow:0 0 0 12px #1a1814,0 0 0 14px #2a2620,0 30px 80px #281e0a59}.phone-notch{position:absolute;top:12px;left:50%;transform:translate(-50%);width:110px;height:30px;background:#0a0908;border-radius:18px;z-index:100}.phone-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.desktop-stage{min-height:100vh;background:var(--bg-soft);padding:32px}.statusbar{height:50px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 28px 8px;font-size:15px;font-weight:600;color:var(--ink);flex-shrink:0}.statusbar-icons{display:flex;gap:6px;align-items:center}.app-header{padding:var(--s-2) var(--pad-screen) var(--s-3);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.brand{font-family:var(--f-display);font-size:22px;font-weight:500;letter-spacing:-.01em;color:var(--primary-deep);display:flex;align-items:center;gap:8px}.brand-mark{width:28px;height:28px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;color:var(--surface);font-family:var(--f-display);font-size:16px;font-weight:600;font-style:italic}.avatar-switch{display:flex;background:var(--surface);border:1px solid var(--line);padding:3px;border-radius:var(--r-pill);gap:2px}.avatar-btn{width:32px;height:32px;border-radius:50%;font-family:var(--f-display);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);transition:all .15s}.avatar-btn[data-active=true]{color:var(--surface)}.avatar-btn[data-active=true][data-user="1"]{background:var(--user1)}.avatar-btn[data-active=true][data-user="2"]{background:var(--user2)}.screen{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:96px}.screen::-webkit-scrollbar{width:0}.screen-title{padding:var(--s-2) var(--pad-screen) var(--s-4)}.screen-title h1{font-family:var(--f-display);font-size:30px;font-weight:500;letter-spacing:-.015em;margin:0 0 4px;color:var(--ink);font-variation-settings:"SOFT" 50,"opsz" 144}.screen-title p{margin:0;font-size:14px;color:var(--ink-3)}.bottom-nav{position:absolute;left:12px;right:12px;bottom:16px;height:68px;background:#fbf7eed9;-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--line);border-radius:22px;display:flex;padding:6px;z-index:50;box-shadow:var(--sh-2)}[data-theme=dark] .bottom-nav{background:#2a2620d9}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:16px;font-size:10px;font-weight:500;color:var(--ink-3);letter-spacing:.01em;transition:all .2s;min-height:44px}.nav-item[data-active=true]{background:var(--primary-tint);color:var(--primary-deep)}.nav-item svg{width:22px;height:22px}.tabs-row{display:flex;gap:6px;padding:0 var(--pad-screen) var(--s-4);overflow-x:auto;scrollbar-width:none}.tabs-row::-webkit-scrollbar{display:none}.tab-pill{flex-shrink:0;padding:10px 16px;border-radius:var(--r-pill);font-size:13px;font-weight:500;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;min-height:40px}.tab-pill[data-active=true]{background:var(--primary);color:var(--surface);border-color:var(--primary)}.cuisine{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-pill);font-size:11px;font-weight:500;letter-spacing:.01em;white-space:nowrap}.cuisine[data-style=filled]{color:var(--cuisine-ink);background:var(--cuisine-bg)}.cuisine[data-style=outline]{color:var(--cuisine-ink);background:transparent;border:1px solid var(--cuisine-ink);padding:2px 8px}.cuisine[data-style=dot]{color:var(--ink-2);background:transparent;padding:2px 0;font-size:11px}.cuisine[data-style=dot]:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cuisine-bg-strong, var(--cuisine-ink))}.cuisine[data-cuisine=indian]{--cuisine-bg: var(--c-indian-bg);--cuisine-ink: var(--c-indian-ink);--cuisine-bg-strong: var(--c-indian)}.cuisine[data-cuisine=italian]{--cuisine-bg: var(--c-italian-bg);--cuisine-ink: var(--c-italian-ink);--cuisine-bg-strong: var(--c-italian)}.cuisine[data-cuisine=asian]{--cuisine-bg: var(--c-asian-bg);--cuisine-ink: var(--c-asian-ink);--cuisine-bg-strong: var(--c-asian)}.cuisine[data-cuisine=mediterranean]{--cuisine-bg: var(--c-mediterranean-bg);--cuisine-ink: var(--c-mediterranean-ink);--cuisine-bg-strong: var(--c-mediterranean)}.cuisine[data-cuisine=mexican]{--cuisine-bg: var(--c-mexican-bg);--cuisine-ink: var(--c-mexican-ink);--cuisine-bg-strong: var(--c-mexican)}.cuisine[data-cuisine=middleeastern]{--cuisine-bg: var(--c-middleeastern-bg);--cuisine-ink: var(--c-middleeastern-ink);--cuisine-bg-strong: var(--c-middleeastern)}.cuisine[data-cuisine=fresh]{--cuisine-bg: var(--c-fresh-bg);--cuisine-ink: var(--c-fresh-ink);--cuisine-bg-strong: var(--c-fresh)}.meal-grid-head{display:grid;grid-template-columns:32px 1fr 1fr;gap:var(--gap-card);padding:0 var(--pad-screen) 8px;font-family:var(--f-display);font-size:13px;font-weight:500;font-style:italic;color:var(--ink-3)}.meal-grid-head span:first-child{grid-column:1}.meal-row{display:grid;grid-template-columns:32px 1fr 1fr;gap:var(--gap-card);padding:0 var(--pad-screen);align-items:stretch;margin-bottom:var(--gap-card)}.day-label{display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-style:italic;font-weight:500}.meal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:12px;display:flex;flex-direction:column;gap:8px;text-align:left;transition:transform .12s,box-shadow .12s;min-height:92px}.meal-card:active{transform:scale(.98)}.meal-card:hover{box-shadow:var(--sh-1);border-color:var(--line-strong)}.meal-card .meal-name{font-size:14px;font-weight:500;color:var(--ink);line-height:1.25;text-wrap:pretty}.meal-card .meal-meta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:6px}.meal-time{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:3px}.meal-rating-mini{display:flex;align-items:center;gap:2px;font-size:10px;color:var(--ink-2);font-weight:500}.meal-rating-mini svg{color:var(--amber)}.meal-empty{background:transparent;border:1.5px dashed var(--line-strong);border-radius:var(--r-3);display:flex;align-items:center;justify-content:center;color:var(--ink-4);font-size:20px;min-height:92px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--pad-card)}.section-head{padding:var(--s-4) var(--pad-screen) var(--s-3);display:flex;align-items:baseline;justify-content:space-between}.section-head h2{font-family:var(--f-display);font-size:19px;font-weight:500;margin:0;letter-spacing:-.01em}.section-head .small{font-size:12px;color:var(--ink-3)}.recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-card);padding:0 var(--pad-screen)}.recipe-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden;display:flex;flex-direction:column;text-align:left}.recipe-card .photo{aspect-ratio:4 / 3;background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--bg-soft) 6px 12px);position:relative;display:flex;align-items:flex-end;justify-content:flex-start;padding:8px}.photo-tag{font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);background:#fbf7eee6;padding:3px 6px;border-radius:4px}.recipe-card .body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}.recipe-card .name{font-size:14px;font-weight:500;line-height:1.25;text-wrap:pretty}.recipe-card .rate-row{display:flex;align-items:center;justify-content:space-between;margin-top:auto;font-size:11px;color:var(--ink-3)}.stars{display:inline-flex;gap:1px;color:var(--amber)}.stars svg{width:12px;height:12px}.stars[data-size=lg] svg{width:22px;height:22px}.stars[data-size=xl] svg{width:32px;height:32px}.stars .star-empty{color:var(--line-strong)}.shop-cat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);margin:0 var(--pad-screen) var(--gap-card);overflow:hidden}.shop-cat-head{padding:12px 14px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--surface-2)}.shop-cat-head h3{margin:0;font-family:var(--f-display);font-size:14px;font-weight:500;letter-spacing:.01em}.shop-cat-head .count{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.shop-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);min-height:48px;text-align:left;width:100%}.shop-item:last-child{border-bottom:0}.shop-item .check{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line-strong);background:var(--bg);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--surface);transition:all .15s}.shop-item[data-checked=true] .check{background:var(--primary);border-color:var(--primary)}.shop-item .label{font-size:14px;color:var(--ink);flex:1;transition:all .15s}.shop-item[data-checked=true] .label{text-decoration:line-through;color:var(--ink-4)}.shop-item .qty{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500}.save-bar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad-screen) 12px;font-size:12px}.save-status{color:var(--green);display:inline-flex;align-items:center;gap:5px;font-weight:500}.save-status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}.btn-text{color:var(--primary-deep);font-weight:500;font-size:12px;text-decoration:underline;text-decoration-color:var(--primary-soft);text-underline-offset:3px}.recipe-hero{padding:var(--s-2) var(--pad-screen) var(--s-4)}.recipe-hero h1{font-family:var(--f-display);font-size:28px;font-weight:500;margin:8px 0 6px;letter-spacing:-.01em;line-height:1.1;text-wrap:balance}.recipe-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}.recipe-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-4)}.back-btn{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--ink-3);padding:6px 0;min-height:32px}.rating-panel{margin:0 var(--pad-screen) var(--s-4);padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);display:flex;align-items:center;justify-content:space-between;gap:12px}.avg-block{display:flex;flex-direction:column;align-items:flex-start}.avg-num{font-family:var(--f-display);font-size:32px;font-weight:500;color:var(--ink);line-height:1;letter-spacing:-.02em}.avg-label{font-size:11px;color:var(--ink-3);margin-top:2px}.user-rate-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2)}.user-rate-row .av{width:22px;height:22px;border-radius:50%;font-family:var(--f-display);font-size:11px;font-weight:600;color:var(--surface);display:inline-flex;align-items:center;justify-content:center}.av[data-user="1"]{background:var(--user1)}.av[data-user="2"]{background:var(--user2)}.prep-box{margin:0 var(--pad-screen) var(--s-4);background:var(--amber-tint);border:1px solid var(--amber-soft);border-radius:var(--r-3);padding:14px 16px}.prep-box h3{font-family:var(--f-display);margin:0 0 8px;font-size:15px;font-weight:500;color:var(--amber);display:flex;align-items:center;gap:6px}.prep-box ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.prep-box li{font-size:13px;color:var(--ink-2);line-height:1.4;display:flex;gap:8px}.prep-box li:before{content:"›";color:var(--amber);font-weight:600}.ing-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 var(--pad-screen)}.ing-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:10px 12px}.ing-card .amt{font-family:var(--f-display);font-weight:600;font-size:16px;color:var(--ink);line-height:1.1}.ing-card .name{font-size:12px;color:var(--ink-3);margin-top:2px}.nutri{margin:0 var(--pad-screen) var(--s-4);padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3)}.nutri h3{margin:0 0 12px;font-family:var(--f-display);font-size:14px;font-weight:500}.nutri-row{display:flex;flex-direction:column;gap:10px}.nutri-item{display:grid;grid-template-columns:60px 1fr 50px;align-items:center;gap:10px;font-size:12px}.nutri-item .lab{color:var(--ink-3)}.nutri-item .val{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.nutri-bar{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.nutri-bar-fill{height:100%;border-radius:999px;background:var(--primary)}.nutri-bar-fill[data-kind=protein]{background:var(--c-asian)}.nutri-bar-fill[data-kind=carbs]{background:var(--c-indian)}.nutri-bar-fill[data-kind=fats]{background:var(--c-mexican)}.nutri-bar-fill[data-kind=kcal]{background:var(--primary)}.step-progress{display:flex;align-items:center;justify-content:center;gap:8px;padding:var(--s-2) var(--pad-screen) var(--s-3)}.step-progress .label{font-size:13px;color:var(--ink-3);font-family:var(--f-display);font-weight:500;font-style:italic}.step-dots{display:flex;gap:6px}.step-dot{width:8px;height:8px;border-radius:50%;background:var(--line-strong)}.step-dot[data-state=done]{background:var(--primary)}.step-dot[data-state=active]{background:var(--primary);transform:scale(1.4)}.step-card{margin:0 var(--pad-screen) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-4);padding:18px}.step-photo{aspect-ratio:16 / 10;background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--bg-soft) 6px 12px);border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--ink-4);font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.step-text{font-size:17px;line-height:1.45;color:var(--ink);text-wrap:pretty;font-weight:400}.step-text strong{color:var(--primary-deep);font-weight:600}.tip-box{margin-top:14px;padding:12px 14px;background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:6px;font-size:13px;line-height:1.4;color:var(--ink-2)}.tip-box strong{color:var(--blue)}.timer-box{margin:0 var(--pad-screen) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;transition:all .25s}.timer-box[data-state=running]{border-color:var(--blue);background:var(--blue-soft)}.timer-box[data-state=done]{border-color:var(--green);background:var(--green-soft)}.timer-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.timer-label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.timer-display{font-family:var(--f-display);font-weight:500;font-size:38px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1;color:var(--ink)}.timer-box[data-state=running] .timer-display{color:var(--blue)}.timer-box[data-state=done] .timer-display{color:var(--green)}.timer-btn{width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.timer-box[data-state=running] .timer-btn{background:var(--blue)}.timer-box[data-state=done] .timer-btn{background:var(--green)}.timer-btn:active{transform:scale(.94)}.step-nav{display:grid;grid-template-columns:1fr 2fr;gap:10px;padding:0 var(--pad-screen) var(--s-4)}.btn{min-height:52px;border-radius:14px;font-size:15px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;transition:all .12s;padding:0 16px}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:var(--surface)}.btn-primary:hover{background:var(--primary-deep)}.btn-ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong)}.btn-finish{background:var(--green);color:var(--surface)}.filter-row{display:flex;gap:6px;padding:0 var(--pad-screen) var(--s-3);overflow-x:auto;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;padding:7px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:500;background:transparent;border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap;display:inline-flex;align-items:center;gap:4px;min-height:32px}.filter-chip[data-active=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.cta-card{margin:0 var(--pad-screen) var(--s-4);padding:16px 18px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--r-3);display:flex;align-items:center;gap:14px}.cta-card .text{flex:1}.cta-card h3{margin:0 0 4px;font-family:var(--f-display);font-size:16px;font-weight:500;color:var(--primary-deep)}.cta-card p{margin:0;font-size:12px;color:var(--primary-deep);opacity:.75;line-height:1.35}.cta-btn{flex-shrink:0;background:var(--primary);color:var(--surface);padding:10px 14px;border-radius:12px;font-size:13px;font-weight:500;white-space:nowrap;min-height:44px}.nut-week{margin:0 var(--pad-screen) var(--s-4);padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3)}.nut-week-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.nut-week-head h3{margin:0;font-family:var(--f-display);font-size:14px;font-weight:500}.nut-week-head span{font-size:11px;color:var(--ink-3)}.nut-bars{display:flex;gap:4px;height:80px;align-items:flex-end}.nut-bar-stack{flex:1;display:flex;flex-direction:column;gap:3px;align-items:center}.nut-bar-cap{font-size:9px;color:var(--ink-4);font-family:var(--f-mono);letter-spacing:.05em;text-transform:uppercase}.nut-bar-col{width:14px;background:var(--surface-2);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.nut-bar-seg{width:100%}.nut-bar-seg[data-kind=protein]{background:var(--c-asian)}.nut-bar-seg[data-kind=carbs]{background:var(--c-indian)}.nut-bar-seg[data-kind=fats]{background:var(--c-mexican)}.nut-legend{display:flex;gap:12px;margin-top:10px;font-size:11px;color:var(--ink-3)}.nut-legend span{display:inline-flex;align-items:center;gap:5px}.nut-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.drawer{position:absolute;left:0;right:0;bottom:0;max-height:70%;background:var(--surface);border-top:1px solid var(--line);border-radius:24px 24px 0 0;z-index:90;box-shadow:0 -8px 32px #0000001a;display:flex;flex-direction:column;transform:translateY(calc(100% - 56px));transition:transform .3s cubic-bezier(.4,0,.2,1)}.drawer[data-open=true]{transform:translateY(0)}.drawer-handle{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 14px;height:56px;flex-shrink:0}.drawer-handle:before{content:"";position:absolute;top:6px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:2px;background:var(--line-strong)}.drawer-handle h3{margin:0;font-family:var(--f-display);font-size:14px;font-weight:500}.drawer-body{overflow-y:auto;padding:0 18px 24px;flex:1}.finish-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--green-soft);z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;animation:fadein .35s ease}.finish-overlay .glyph{width:84px;height:84px;background:var(--green);color:var(--surface);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;animation:pop .5s cubic-bezier(.5,1.5,.5,1)}.finish-overlay h2{font-family:var(--f-display);font-size:32px;font-weight:500;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink)}.finish-overlay p{margin:0 0 24px;color:var(--ink-2);font-size:14px}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes fadein{0%{opacity:0}to{opacity:1}}.desk-grid{display:grid;grid-template-columns:240px 1fr;gap:20px;max-width:1280px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;min-height:800px}.desk-side{background:var(--bg-soft);border-right:1px solid var(--line);padding:24px;display:flex;flex-direction:column;gap:4px}.desk-side .brand{font-size:24px;margin-bottom:24px}.desk-side .nav-item{flex-direction:row;justify-content:flex-start;gap:12px;font-size:13px;padding:10px 14px;min-height:44px}.desk-main{padding:24px 28px}html,body,#root{height:100%}body{background:var(--bg);margin:0}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:480px;margin:0 auto;background:var(--bg);position:relative}@media (min-width: 481px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.screen{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.bottom-nav{position:fixed;left:max(12px,calc((100vw - 480px)/2 + 12px));right:max(12px,calc((100vw - 480px)/2 + 12px));bottom:calc(16px + env(safe-area-inset-bottom,0px))}.app-header{padding-top:calc(var(--s-2) + env(safe-area-inset-top,0px))}.toast{position:fixed;bottom:calc(96px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:var(--r-pill);font-size:13px;z-index:200;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.toast[data-show=true]{opacity:1;transform:translate(-50%) translateY(-4px)}.loading{padding:48px 20px;text-align:center;color:var(--ink-3);font-size:13px}.file-input{display:none}.photo-thumb{display:block;width:100%;border-radius:var(--r-2);margin-bottom:14px;object-fit:cover;aspect-ratio:16 / 10}.photo-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.photo-actions button{font-size:11px;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px}.add-photo-btn{width:100%;margin-bottom:14px;padding:18px;border:1.5px dashed var(--line-strong);border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ink-3);font-size:13px;background:transparent}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14120c73;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:var(--surface);border-radius:var(--r-4);padding:24px;max-width:360px;width:100%;box-shadow:var(--sh-3)}.modal h2{font-family:var(--f-display);font-weight:500;font-size:22px;margin:0 0 6px;letter-spacing:-.01em}.modal p{margin:0 0 18px;color:var(--ink-3);font-size:13px}.rating-block{margin-bottom:18px}.rating-block .who{font-size:12px;color:var(--ink-3);margin-bottom:6px;display:flex;align-items:center;gap:8px}.extras-section{padding-bottom:8px}.extra-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:14px 16px;margin:0 var(--pad-screen) 8px;text-align:left;width:calc(100% - var(--pad-screen) * 2);display:flex;flex-direction:column;gap:6px}.extra-card .name{font-family:var(--f-display);font-weight:500;font-size:15px}.extra-card .desc{font-size:12px;color:var(--ink-3);line-height:1.4}.extra-card .meta{font-size:11px;color:var(--ink-3);display:flex;align-items:center;gap:4px}.recipe-card .photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.recipe-card .photo[data-empty=false]{background:var(--bg-soft)}.recipe-card .photo[data-empty=false] .photo-tag{background:#fbf7eee6;z-index:1}.photo-placeholder-letter{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:500;font-style:italic;font-size:56px;color:var(--ink-4);letter-spacing:-.02em;-webkit-user-select:none;user-select:none}.meal-card[data-has-photo=true]{padding-top:0;overflow:hidden}.meal-photo{position:relative;margin:-1px -12px 4px;aspect-ratio:16 / 9;background:var(--bg-soft);overflow:hidden}.meal-photo img{width:100%;height:100%;object-fit:cover;display:block}.meal-card-wrap{position:relative;display:flex}.meal-card-wrap .meal-card{width:100%}.meal-card[data-cooked=true]{opacity:.6}.meal-cooked-check{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--primary);color:var(--surface);display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none;box-shadow:0 1px 3px #0000002e}.meal-cooked-undo{position:absolute;bottom:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#fbf7eeeb;border:1px solid var(--line-strong);color:var(--ink-3);display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer;transition:background .12s,color .12s}.meal-cooked-undo:hover{background:var(--rose-soft);color:var(--rose)}.shop-cat-head--button{width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;background:var(--surface-2)}.shop-cat-head--button:disabled{cursor:default}.shop-cat-head h3{display:flex;align-items:center;gap:8px;flex:1;text-align:left}.count-inline{font-family:var(--f-mono);font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:400;letter-spacing:.02em}.shop-cat[data-complete=true] .count-inline{color:var(--green)}.cat-status{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3)}.cat-done-check{width:18px;height:18px;border-radius:50%;background:var(--green);color:var(--surface);display:inline-flex;align-items:center;justify-content:center}.shop-cat-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.shop-cat-body[data-collapsed=true]{grid-template-rows:0fr}.shop-cat-body-inner{min-height:0;overflow:hidden}.shop-bought-separator{height:1px;background:linear-gradient(to right,transparent 0%,var(--line-strong) 20%,var(--line-strong) 80%,transparent 100%);margin:6px 14px;opacity:.55}.comments{margin:0 var(--pad-screen) var(--s-4)}.comments .section-head{padding:16px 0 8px}.comments .section-head h2{font-size:17px}.comments .small{font-family:var(--f-mono);color:var(--ink-3)}.comment-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:12px;margin-bottom:var(--s-3)}.comment-form-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}.reply-hint{font-size:11px;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}.reply-hint button{font-size:11px;color:var(--primary-deep);text-decoration:underline}.comment-textarea{width:100%;min-height:70px;border:1px solid var(--line-strong);border-radius:var(--r-2);padding:10px 12px;font:inherit;font-size:14px;color:var(--ink);background:var(--bg);resize:vertical;font-family:var(--f-body)}.comment-textarea:focus{outline:none;border-color:var(--primary)}.comment-form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:12px}.char-count{font-size:11px;color:var(--ink-4);font-variant-numeric:tabular-nums;font-family:var(--f-mono)}.comment-form-actions .btn{min-height:38px;padding:0 14px}.comments-empty{padding:18px;text-align:center;color:var(--ink-4);font-size:13px;font-style:italic}.comment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.comment-list.comment-replies{margin-top:10px;margin-left:28px;border-left:2px solid var(--line);padding-left:12px}.comment-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:12px 14px}.comment-head{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:6px}.comment-author{font-weight:500;color:var(--ink)}.comment-time{color:var(--ink-4);font-size:11px}.comment-time em{font-style:normal;color:var(--ink-4)}.comment-body{font-size:14px;line-height:1.45;color:var(--ink);white-space:pre-wrap;word-wrap:break-word}.comment-actions{display:flex;gap:14px;margin-top:8px}.comment-actions .btn-text{font-size:12px;text-decoration:none;color:var(--ink-3)}.comment-actions .btn-text:hover{color:var(--primary-deep)}.servings-selector{display:flex;align-items:center;gap:12px;margin-top:14px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);font-size:13px}.servings-label{color:var(--ink-3);font-family:var(--f-display);font-size:13px;font-style:italic;letter-spacing:.02em}.servings-stepper{display:inline-flex;align-items:center;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-pill);overflow:hidden}.servings-stepper button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:500;color:var(--primary-deep);background:transparent}.servings-stepper button:disabled{color:var(--ink-4);cursor:default}.servings-stepper .servings-num{padding:0 14px;font-family:var(--f-display);font-size:16px;font-variant-numeric:tabular-nums;min-width:22px;text-align:center}.scaled-warnings{margin-top:10px;padding:10px 12px;background:var(--amber-tint);border:1px solid var(--amber-soft);border-radius:var(--r-2);font-size:12px;color:var(--ink-2);line-height:1.45}.scaled-warnings>div{margin-bottom:2px}.scaled-warnings>div:last-child{margin-bottom:0}.scale-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:var(--r-pill);font-size:10px;font-weight:500;letter-spacing:.02em;vertical-align:middle}.scale-badge[data-mode=sublinear]{background:var(--amber-soft);color:var(--amber)}.scale-badge[data-mode=fixed],.scale-badge[data-mode=to_taste]{background:var(--surface-2);color:var(--ink-3)}.scale-badge[data-mode=package_unit]{background:var(--blue-soft);color:var(--blue)}.drawer-toolbar{display:flex;justify-content:flex-end;padding:0 0 10px}.scaling-admin-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}.scaling-admin-table th{font-family:var(--f-display);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}.scaling-admin-table td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top}.scaling-admin-table select,.scaling-admin-table input{font:inherit;padding:4px 6px;border:1px solid var(--line-strong);border-radius:4px;background:var(--bg);color:var(--ink);font-size:12px}button.avatar-btn{cursor:pointer}button.avatar-btn:hover{box-shadow:0 0 0 2px var(--primary-soft)}.profile-section{margin:0 var(--pad-screen) var(--s-4);padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3)}.profile-section h2{font-family:var(--f-display);font-weight:500;font-size:18px;letter-spacing:-.01em;margin:0 0 12px;color:var(--ink)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.profile-field{display:flex;flex-direction:column;gap:4px}.profile-field label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:500}.profile-field input,.profile-field select{font:inherit;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--bg);color:var(--ink);font-size:14px}.profile-field input:focus,.profile-field select:focus{outline:none;border-color:var(--primary)}.seg-row{display:inline-flex;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:3px;gap:2px;align-self:flex-start}.seg{padding:6px 12px;border-radius:var(--r-pill);font-size:13px;color:var(--ink-2);background:transparent}.seg[data-active=true]{background:var(--primary);color:var(--surface)}.activity-list{display:flex;flex-direction:column;gap:6px}.activity-pill{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--r-2);border:1px solid var(--line-strong);background:var(--bg);text-align:left;cursor:pointer}.activity-pill[data-active=true]{background:var(--primary-tint);border-color:var(--primary)}.activity-label{font-weight:500;color:var(--ink)}.activity-desc{font-size:12px;color:var(--ink-3)}.profile-preview{margin-top:12px;padding:10px 14px;background:var(--primary-tint);border-radius:var(--r-2);font-size:13px;color:var(--primary-deep);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.profile-preview strong{font-family:var(--f-display);font-weight:600}.switch-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink);cursor:pointer}.switch-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.profile-actions{display:flex;gap:10px;padding:0 var(--pad-screen) var(--s-4)}.profile-actions .btn{flex:1}.profile-hint{margin:12px 0 0;padding:10px 12px;background:var(--amber-tint);border:1px solid var(--amber-soft);border-radius:var(--r-2);color:var(--ink-2);font-size:13px}.goal-cards-big{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.goal-card-big{padding:16px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--r-3);text-align:center}.goal-card-big .goal-num{font-family:var(--f-display);font-size:32px;font-weight:500;color:var(--primary-deep);letter-spacing:-.02em;line-height:1}.goal-card-big .goal-num .unit{font-size:16px;color:var(--ink-3);margin-left:2px}.goal-card-big .goal-label{margin-top:6px;font-size:12px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.goal-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.goal-card-small{padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-2)}.goal-card-num{font-family:var(--f-display);font-size:18px;font-weight:500;color:var(--ink)}.goal-card-unit{font-size:11px;color:var(--ink-3);margin-left:2px;font-weight:400}.goal-card-label{font-size:11px;color:var(--ink-3);margin-top:2px}.bottom-nav .nav-item span{font-size:9px}.nutri-card{margin:0 var(--pad-screen) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden}.nutri-card-head{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--surface-2);border-bottom:1px solid var(--line)}.nutri-card-head h3{margin:0;font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--ink)}.nutri-card-body{padding:14px 16px}.nutri-big-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.nutri-big{padding:12px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--r-2);text-align:center}.nutri-big-num{font-family:var(--f-display);font-weight:500;font-size:26px;color:var(--primary-deep);letter-spacing:-.02em;line-height:1}.nutri-big-unit{font-size:14px;color:var(--ink-3);margin-left:2px}.nutri-big-label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.nutri-big-pct{font-size:11px;color:var(--primary-deep);margin-top:4px;font-weight:500}.nutri-micro-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.nutri-cell{padding:8px 10px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-2)}.nutri-cell[data-high=true]{background:var(--green-soft);border-color:var(--green)}.nutri-cell-val{font-family:var(--f-display);font-weight:500;font-size:16px;color:var(--ink)}.nutri-cell-unit{font-size:11px;color:var(--ink-3);margin-left:1px;font-weight:400}.nutri-cell-meta{display:flex;align-items:center;justify-content:space-between;margin-top:2px;font-size:10px;color:var(--ink-3)}.nutri-cell-pct{font-weight:500;font-variant-numeric:tabular-nums}.nutri-cell[data-high=true] .nutri-cell-pct{color:var(--green)}.nutri-card-footer{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-size:11px;color:var(--ink-4);font-style:italic;text-align:center}.nutri-skeleton{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.nutri-skel-big{height:60px;background:var(--surface-2);border-radius:var(--r-2);animation:pulse 1.4s ease-in-out infinite}.nutri-skel-cell{height:44px;background:var(--surface-2);border-radius:var(--r-2);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.dash-section{margin:0 var(--pad-screen) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:14px 16px}.dash-section .section-head{padding:0 0 10px}.dash-section .section-head h2{font-size:17px}.dash-rings{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.ring-big,.ring-small{position:relative}.ring-big svg{display:block;width:100%;height:auto;max-width:160px;margin:0 auto}.ring-big .ring-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-num{font-family:var(--f-display);font-weight:500;font-size:28px;color:var(--ink);letter-spacing:-.02em;line-height:1}.ring-unit{font-size:14px;color:var(--ink-3)}.ring-label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-top:3px}.ring-pct{font-size:10px;color:var(--ink-4);margin-top:2px}.dash-rings-side{display:flex;flex-direction:column;gap:10px;justify-content:space-between}.ring-small{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:8px}.ring-small svg{width:56px;height:56px;display:block}.ring-small .ring-content{position:absolute;width:56px;height:56px;display:flex;align-items:center;justify-content:center}.ring-small .ring-num{font-size:14px}.ring-small .ring-unit{font-size:9px}.ring-small .ring-label{position:static;font-size:12px;text-transform:none;color:var(--ink-2);letter-spacing:0}.dash-meals{margin-top:4px}.dash-meals-head{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:6px 0}.dash-empty{padding:14px;text-align:center;color:var(--ink-4);font-size:13px;font-style:italic}.dash-meal-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);gap:8px}.dash-meal-row:last-child{border-bottom:0}.dash-meal-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.dash-meal-meal-type{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.dash-meal-meal-type[data-type=extra]{color:var(--amber)}.dash-meal-name{font-size:14px;color:var(--ink)}.dash-meal-name em{font-style:normal;color:var(--ink-3);font-size:12px}.dash-meal-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.dash-meal-kcal{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.dash-meal-x{width:26px;height:26px;border-radius:50%;background:var(--surface-2);color:var(--ink-3);display:flex;align-items:center;justify-content:center}.dash-meal-x:hover{background:var(--rose-soft);color:var(--rose)}.dash-add-extra{width:100%;margin-top:12px}.dash-week-bars{display:flex;flex-direction:column;gap:8px}.dash-week-row{display:grid;grid-template-columns:32px 1fr 50px;align-items:center;gap:10px;font-size:12px}.dash-week-day{font-family:var(--f-display);font-weight:500;color:var(--ink-3);text-align:right;letter-spacing:.04em}.dash-week-bar-track{height:18px;background:var(--surface-2);border-radius:6px;overflow:hidden;position:relative}.dash-week-bar-track:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--line-strong);opacity:.4}.dash-week-bar{height:100%;border-radius:6px;background:var(--amber);transition:width .25s}.dash-week-bar[data-within=true]{background:var(--green)}.dash-week-bar[data-empty=true]{background:var(--line)}.dash-week-kcal{font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-2);text-align:right}.dash-week-target{margin-top:8px;font-size:11px;color:var(--ink-4);text-align:center;font-style:italic}.dash-micro-row{margin-bottom:10px}.dash-micro-row:last-child{margin-bottom:0}.dash-micro-head{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}.dash-micro-head em{font-style:normal;color:var(--ink-4)}.dash-micro-bar-track{height:8px;background:var(--surface-2);border-radius:4px;overflow:visible;position:relative}.dash-micro-bar{height:100%;background:var(--primary);transition:width .25s;border-radius:4px}.dash-micro-bar[data-status=green]{background:var(--green)}.dash-micro-bar[data-status=yellow]{background:var(--amber)}.dash-micro-bar[data-status=red]{background:var(--rose)}.dash-micro-bar[data-status=na]{background:var(--ink-4);opacity:.35}.dash-micro-target{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink-2);transform:translate(-1px);border-radius:1px;pointer-events:none}.dash-legend-dot{display:inline-block;width:8px;height:8px;border-radius:4px;margin:0 4px 0 8px;vertical-align:middle}.dash-legend-dot[data-status=green]{background:var(--green)}.dash-legend-dot[data-status=yellow]{background:var(--amber)}.dash-legend-dot[data-status=red]{background:var(--rose)}.dash-insights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-insight{padding:10px 12px;border-radius:var(--r-2);font-size:13px;line-height:1.4;border-left:3px solid var(--ink-3);background:var(--bg)}.dash-insight[data-kind=warning]{border-left-color:var(--rose);background:var(--rose-soft)}.dash-insight[data-kind=reminder]{border-left-color:var(--amber);background:var(--amber-tint)}.dash-insight[data-kind=positive]{border-left-color:var(--green);background:var(--green-soft)}.dash-insight[data-kind=tip]{border-left-color:var(--blue);background:var(--blue-soft)}.extra-search{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-2);margin-top:8px;color:var(--ink-3)}.extra-search input{border:0;background:transparent;flex:1;font:inherit;color:var(--ink);font-size:14px;outline:none}.extra-results{list-style:none;margin:8px 0 0;padding:0;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-2)}.extra-results li{border-bottom:1px solid var(--line)}.extra-results li:last-child{border-bottom:0}.extra-results button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;text-align:left;font-size:13px}.extra-results button:hover{background:var(--surface-2)}.extra-result-source{font-family:var(--f-mono);font-size:9px;color:var(--ink-4);text-transform:uppercase}.extra-picked{margin-top:12px;padding:10px 12px;background:var(--primary-tint);border-radius:var(--r-2);display:flex;justify-content:space-between;align-items:center}
