:root{--bg:#faf7f2;--card-bg:#fff;--text:#2b2a27;--text-muted:#8d8880;--border:#ece6dc;--mint:#6fb894;--mint-ink:#1f4f3c;--mint-soft:#e3f1e9;--coral:#ff9b80;--coral-ink:#7a3420;--coral-soft:#ffe7dd;--butter:#e8b84b;--butter-ink:#6b4c0d;--butter-soft:#fbf0d6;--sky:#6fa8c9;--sky-ink:#1d3d52;--sky-soft:#e4f0f8;--lavender:#a68fce;--lavender-ink:#3c2d57;--lavender-soft:#efe8f7;--danger-bg:#fdeceb;--danger-border:#e8b4ae;--warning-bg:var(--butter-soft);--warning-border:#e8cf9c;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow-card:0 1px 2px #3c2d140a, 0 10px 26px -18px #3c2d1438;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:16px/1.5 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14181a;--card-bg:#1e2422;--text:#eaf0ec;--text-muted:#92a099;--border:#2b3230;--mint:#6fd4a8;--mint-ink:#bdf0d8;--mint-soft:#1c3a2c;--coral:#f2916f;--coral-ink:#ffd6c4;--coral-soft:#3a2620;--butter:#eec96b;--butter-ink:#ffe9b0;--butter-soft:#3a2f18;--sky:#7ec0ee;--sky-ink:#cfe9fb;--sky-soft:#1c2e3a;--lavender:#c7b3ee;--lavender-ink:#ecdffb;--lavender-soft:#2a2338;--danger-bg:#3a1e1c;--danger-border:#6b3530;--warning-bg:var(--butter-soft);--warning-border:#6b5730;--shadow-card:0 1px 2px #0000004d, 0 16px 34px -20px #0009}}:root[data-theme=light]{--bg:#faf7f2;--card-bg:#fff;--text:#2b2a27;--text-muted:#8d8880;--border:#ece6dc;--mint:#6fb894;--mint-ink:#1f4f3c;--mint-soft:#e3f1e9;--coral:#ff9b80;--coral-ink:#7a3420;--coral-soft:#ffe7dd;--butter:#e8b84b;--butter-ink:#6b4c0d;--butter-soft:#fbf0d6;--sky:#6fa8c9;--sky-ink:#1d3d52;--sky-soft:#e4f0f8;--lavender:#a68fce;--lavender-ink:#3c2d57;--lavender-soft:#efe8f7;--danger-bg:#fdeceb;--danger-border:#e8b4ae;--warning-bg:var(--butter-soft);--warning-border:#e8cf9c;--shadow-card:0 1px 2px #3c2d140a, 0 10px 26px -18px #3c2d1438}:root[data-theme=dark]{--bg:#14181a;--card-bg:#1e2422;--text:#eaf0ec;--text-muted:#92a099;--border:#2b3230;--mint:#6fd4a8;--mint-ink:#bdf0d8;--mint-soft:#1c3a2c;--coral:#f2916f;--coral-ink:#ffd6c4;--coral-soft:#3a2620;--butter:#eec96b;--butter-ink:#ffe9b0;--butter-soft:#3a2f18;--sky:#7ec0ee;--sky-ink:#cfe9fb;--sky-soft:#1c2e3a;--lavender:#c7b3ee;--lavender-ink:#ecdffb;--lavender-soft:#2a2338;--danger-bg:#3a1e1c;--danger-border:#6b3530;--warning-bg:var(--butter-soft);--warning-border:#6b5730;--shadow-card:0 1px 2px #0000004d, 0 16px 34px -20px #0009}:root{--accent:var(--mint);--accent-ink:var(--mint-ink);--accent-soft:var(--mint-soft)}[data-accent=coral]{--accent:var(--coral);--accent-ink:var(--coral-ink);--accent-soft:var(--coral-soft)}[data-accent=sky]{--accent:var(--sky);--accent-ink:var(--sky-ink);--accent-soft:var(--sky-soft)}[data-accent=lavender]{--accent:var(--lavender);--accent-ink:var(--lavender-ink);--accent-soft:var(--lavender-soft)}[data-accent=amber]{--accent:var(--butter);--accent-ink:var(--butter-ink);--accent-soft:var(--butter-soft)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.login-screen{background:linear-gradient(160deg, var(--mint-soft), var(--bg) 60%);justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.login-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:340px;box-shadow:var(--shadow-card);text-align:center;flex-direction:column;align-items:stretch;padding:28px 24px;display:flex}.login-logo{font-size:2.6rem;line-height:1}.login-title{letter-spacing:-.01em;margin:10px 0 2px;font-size:1.6rem;font-weight:750}.login-sub{color:var(--text-muted);margin:0 0 18px;font-size:.88rem}.login-input{text-align:center;width:100%;margin:0 0 12px;padding:12px 14px;font-size:1rem}.login-btn{background:var(--accent);width:100%;color:var(--accent-ink);padding:12px;font-size:1rem}.login-error{color:#b3352c;margin:12px 0 0;font-size:.85rem}@media (prefers-color-scheme:dark){.login-error{color:#f2a79f}}:root[data-theme=dark] .login-error{color:#f2a79f}.app-shell{flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}main{overscroll-behavior:contain;min-width:0;min-height:0;padding-top:env(safe-area-inset-top);flex:1;padding-bottom:12px;overflow:hidden auto}.page{padding:16px}h1{letter-spacing:-.01em;margin:4px 0 14px;font-size:1.45rem;font-weight:700}h1 .eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:2px;font-size:.72rem;font-weight:700;display:block}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:16px;padding:16px}.card-error{background:var(--danger-bg);border-color:var(--danger-border)}.card-warning{background:var(--warning-bg);border-color:var(--warning-border)}.card-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), var(--shadow-card)}button{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:999px;margin:4px 4px 4px 0;padding:10px 18px;font-size:.92rem;font-weight:600;transition:transform .12s,opacity .12s}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{color:var(--text);border:1px solid var(--border);background:0 0}button.small{padding:5px 12px;font-size:.78rem}input,select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);margin:4px 0;padding:9px 11px;font-size:.95rem}.hint{color:var(--text-muted);font-size:.85rem}.actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.day-block{margin-bottom:14px}.meal-block{margin:10px 0}.issue-row{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.option-row{align-items:center;gap:9px;padding:5px 2px;font-size:.92rem;display:flex}.fixed-food-row{color:var(--text-muted);margin:3px 0;font-size:.92rem}.group-box{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);margin:9px 0;padding:10px 12px}.group-head{align-items:center;gap:8px;margin-bottom:5px;display:flex}.group-icon{font-size:1.15rem;line-height:1}.group-hint{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:3px 9px;font-size:.68rem;font-weight:700}.recipe-inline{margin-top:8px}.modal h4{color:var(--text);margin:12px 0 4px;font-size:.95rem}.recipe-chat{flex-direction:column;gap:6px;max-height:200px;margin:6px 0;display:flex;overflow-y:auto}.chat-msg{border-radius:var(--radius-md);white-space:pre-wrap;max-width:85%;padding:8px 12px;font-size:.9rem}.chat-user{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.chat-assistant{background:var(--bg);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.chat-input{gap:8px;margin-top:6px;display:flex}.chat-input input{flex:1}.shopping-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.add-manual{gap:8px;margin:12px 0;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;background:#14140f73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border-radius:var(--radius-lg);max-width:420px;max-height:80vh;box-shadow:var(--shadow-card);padding:22px;overflow-y:auto}.bottom-nav{z-index:20;background:var(--card-bg);border-top:1px solid var(--border);width:100%;max-width:560px;padding:8px 0 calc(8px + env(safe-area-inset-bottom));flex:none;justify-content:space-around;margin:0 auto;display:flex;position:relative}.bottom-nav a{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:2px 4px;font-size:.78rem;font-weight:600;text-decoration:none;display:flex}.bottom-nav .nav-ic{filter:grayscale()opacity(.55);font-size:1.25rem;line-height:1}.bottom-nav a.active{color:var(--accent-ink)}.bottom-nav a.active .nav-ic{filter:none}.today-head{margin-bottom:4px}.today-date{letter-spacing:-.02em;font-size:1.5rem;font-weight:750}.today-sub{color:var(--text-muted);margin-top:2px;font-size:.86rem}.bento{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.tile{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:14px 15px}.tile.wide{grid-column:1/-1}.tile-label{letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.66rem;font-weight:700;display:flex}.tile-big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:750;line-height:1}.tile-big small{color:var(--text-muted);letter-spacing:0;margin-left:4px;font-size:.72rem;font-weight:650}.tile.tint-coral{background:linear-gradient(150deg, var(--coral), color-mix(in srgb, var(--coral) 70%, var(--butter)));color:var(--coral-ink);border:none}.tile.tint-coral .tile-label{color:color-mix(in srgb, var(--coral-ink) 75%, transparent)}.tile.tint-butter{background:var(--butter-soft)}.tile.tint-butter .tile-label{color:var(--butter-ink)}.tile.tint-sky{background:var(--sky-soft)}.tile.tint-sky .tile-label{color:var(--sky-ink)}.tile.tint-lavender{background:var(--lavender-soft)}.tile.tint-lavender .tile-label{color:var(--lavender-ink)}.tile-chip{align-items:center;gap:6px;font-size:.92rem;font-weight:650;display:inline-flex}.tile-foot{opacity:.85;margin-top:8px;font-size:.78rem}.tile .group-box{background:#ffffff59;border-color:#fff6}@media (prefers-color-scheme:dark){.tile.tint-coral .group-box{background:#00000029;border-color:#0003}}:root[data-theme=dark] .tile.tint-coral .group-box{background:#00000029;border-color:#0003}.tile .group-hint{background:#ffffff8c}.opt-row{cursor:pointer;align-items:center;gap:9px;padding:5px 2px;font-size:.9rem;display:flex}.opt-row.sel{font-weight:650}.opt-input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.opt-input:disabled{cursor:default}.progress-bar{background:var(--border);border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.progress-bar>i{background:var(--accent);border-radius:999px;height:100%;display:block}.today-meals{margin-top:18px}.today-meals h2{color:var(--text-muted);margin:0 0 8px;font-size:.95rem;font-weight:700}.weekday-strip{gap:6px;margin:10px 0 16px;display:flex}.weekday-pill{text-align:center;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card-bg);color:var(--text-muted);flex:1;padding:8px 0;font-size:.72rem;font-weight:650}.weekday-pill .n{color:var(--text);margin-top:1px;font-size:.95rem;font-weight:750;display:block}.weekday-pill.today{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.weekday-pill.today .n{color:var(--accent-ink)}.theme-switch{gap:6px;display:flex}.theme-switch button{background:var(--card-bg);color:var(--text);border:1px solid var(--border);flex:1}.theme-switch button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.accent-switch{gap:10px;margin-top:6px;display:flex}.accent-dot{border:2px solid var(--border);cursor:pointer;border-radius:50%;width:34px;height:34px;margin:0;padding:0}.accent-dot.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--text)}.nutri-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--mint-soft);margin-top:12px;overflow:hidden}.nutri-head{width:100%;color:var(--mint-ink);cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;margin:0;padding:12px 15px;font-size:.98rem;font-weight:650;display:flex}.nutri-head:disabled{opacity:.7}.nutri-head .kcal{font-variant-numeric:tabular-nums;font-weight:800}.nutri-head .chev{opacity:.7;letter-spacing:.02em;font-size:.78rem;font-weight:600}.nutri-detail{flex-direction:column;gap:9px;padding:4px 15px 14px;display:flex}.macro-line{align-items:center;gap:10px;font-size:.82rem;display:flex}.macro-line .ml-label{width:80px;color:var(--text-muted)}.macro-line .ml-track{background:color-mix(in srgb, var(--mint) 24%, transparent);border-radius:999px;flex:1;height:8px;overflow:hidden}.macro-line .ml-fill{background:var(--mint);border-radius:999px;height:100%;display:block}.macro-line .ml-val{text-align:right;font-variant-numeric:tabular-nums;width:44px;font-weight:650}.nutri-note{color:var(--text-muted);margin:0;font-size:.76rem}.nutri-balance{border-radius:var(--radius-sm);background:var(--mint-soft);color:var(--mint-ink);margin:2px 0 0;padding:8px 10px;font-size:.84rem}.nutri-actions{gap:8px;margin-top:2px;display:flex}.shopping-category{margin:22px 0}.shopping-category h2{align-items:center;gap:8px;font-size:1.08rem;display:flex}.shopping-category h2>span{color:var(--text-muted);margin-left:auto;font-size:.8rem}.shopping-category .shopping-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 0;display:grid}.shopping-category .shopping-row>label{align-items:center;gap:10px;min-width:0;display:flex}.shopping-row label span{overflow-wrap:anywhere}.shopping-row small,.basket-row small{color:var(--text-muted);font-size:.8rem;font-weight:400;display:block}.shopping-row.is-checked label span{color:var(--text-muted);text-decoration:line-through}.category-picker{width:100%;margin-top:6px;padding:8px}.category-edit{place-items:center;width:44px;height:44px;padding:0;display:grid}.category-editor{background:var(--bg);border-radius:var(--radius-sm);flex-wrap:wrap;grid-column:1/-1;align-items:end;gap:8px;padding:12px;display:flex}.category-editor>label{flex:100%;min-width:0;font-size:.9rem}.manual-product{border-top:1px solid var(--border);padding-top:18px}.manual-product label,.field-label{font-size:.9rem;display:block}.manual-product input,.manual-product select,.field-label select{width:100%;margin-top:5px}.manual-quantity{grid-template-columns:minmax(0,1fr) 70px auto;align-items:end;gap:8px;margin-top:10px;display:grid}.manual-quantity button{margin:0}.price-panel h2{margin-top:0;font-size:1.15rem}.price-panel .actions{flex-wrap:wrap}.price-panel .actions>button{flex:1;min-width:130px}.price-content{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.price-selection{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:240px;margin:12px 0;overflow-y:auto}.price-selection label,.loyalty-toggle{align-items:start;gap:10px;padding:7px 0;font-size:.9rem;display:flex}.price-selection input,.loyalty-toggle input{width:18px;height:18px;accent-color:var(--accent);flex:none}.price-condition{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:10px 12px;font-size:.9rem}.price-winner{background:var(--mint-soft);border-radius:var(--radius-md);color:var(--mint-ink);margin:15px 0;padding:16px}.price-winner>strong{font-size:1.15rem}.basket-row,.product-offers{border-bottom:1px solid var(--border);padding:12px 0}.basket-row summary{cursor:pointer;justify-content:space-between;gap:12px;display:flex}.basket-row summary>span{overflow-wrap:anywhere;min-width:0}.basket-row summary>span:last-child{text-align:right;min-width:105px}.basket-row summary:before{content:"▸"}.basket-row[open] summary:before{content:"▾"}.basket-line,.offer-card{border-top:1px solid var(--border);margin-top:10px;padding:14px 0}.basket-line p,.offer-card p{margin:6px 0}.product-offers summary{cursor:pointer;font-weight:650}.offer-store{color:var(--accent-ink);font-weight:650}.offer-link{margin-top:6px;padding:8px 0;display:inline-block}.location-results{gap:8px;margin-top:10px;display:grid}.location-results button{text-align:left}html,body,#root{width:100%;min-width:0}.app-shell .page{overflow-wrap:anywhere;min-width:0}input,select,textarea{min-width:0;max-width:100%;font-size:16px}.price-selection{min-width:0}.shopping-row .opt-input{flex:none}
