:root{--bg:#f6f7f9;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--soft:#f1f5f9;--accent:#10b981;--accent-2:#059669;--total:#111827;--ref:#9ca3af;--warn:#b45309;--warn-bg:#fef3c7;--shadow:0 1px 2px #0000000a, 0 4px 16px #0000000d;--radius:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0f14;--card:#121821;--text:#e5e7eb;--muted:#94a3b8;--line:#243041;--soft:#18212d;--accent:#34d399;--accent-2:#10b981;--total:#f8fafc;--ref:#64748b;--warn:#fbbf24;--warn-bg:#3a2a07;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040}}:root[data-theme=dark]{--bg:#0b0f14;--card:#121821;--text:#e5e7eb;--muted:#94a3b8;--line:#243041;--soft:#18212d;--accent:#34d399;--accent-2:#10b981;--total:#f8fafc;--ref:#64748b;--warn:#fbbf24;--warn-bg:#3a2a07;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;margin:0}h2{font-size:1.05rem}h3{margin-bottom:.5rem;font-size:.9rem}.muted{color:var(--muted)}.small{font-size:.8rem}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:.45rem .8rem}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}:root[data-theme=dark] button.primary{color:#052e1f}button.ghost{background:0 0}button.icon{color:var(--muted);background:0 0;border:none;padding:.3rem .45rem}button.icon:hover{color:#ef4444}input[type=number],select,.recipe-name{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:.35rem .5rem}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.top{justify-content:space-between;align-items:center;max-width:1320px;margin:0 auto;padding:1rem clamp(1rem,3vw,2rem);display:flex}.brand{align-items:center;gap:.7rem;display:flex}.brand h1{font-size:1.3rem}.tag{color:var(--muted);margin:0;font-size:.85rem}.layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:1.2rem;max-width:1320px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem) 1rem;display:grid}.col-left,.col-right{gap:1.2rem;min-width:0;display:grid}.col-right{position:sticky;top:1rem}@media (max-width:900px){.layout{grid-template-columns:1fr}.col-left,.col-right{display:contents}.o-search{order:1}.o-items{order:2}.o-chart{order:3}.o-macros{order:4}.hide-sm{display:none}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:1rem 1.1rem}.card-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.card-head.wrap{flex-wrap:wrap}.card>h2{margin-bottom:.7rem}.search-card{position:relative}.search{background:var(--soft);border:1px solid var(--line);color:var(--muted);border-radius:12px;align-items:center;gap:.6rem;padding:.65rem .8rem;display:flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:1rem}.search.busy svg{animation:1s infinite pulse}@keyframes pulse{50%{opacity:.3}}.check{color:var(--muted);align-items:center;gap:.4rem;margin-top:.6rem;margin-right:1rem;font-size:.85rem;display:inline-flex}.results{z-index:20;background:var(--card);border:1px solid var(--line);border-radius:12px;max-height:60vh;margin:0;padding:.3rem;list-style:none;position:absolute;top:4.1rem;left:.6rem;right:.6rem;overflow:auto;box-shadow:0 12px 40px #0000002e}.results li{cursor:pointer;border-radius:8px;gap:.1rem;padding:.5rem .6rem;display:grid}.results li.active{background:var(--soft)}.r-name{font-size:.92rem}.r-meta{color:var(--muted);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.pill{background:var(--soft);border-radius:99px;padding:.05rem .4rem;font-size:.68rem}.pill.warn{color:var(--warn);background:var(--warn-bg)}.recipe-name{background:0 0;border-color:#0000;flex:1;padding:.3rem .4rem;font-size:1rem;font-weight:600}.recipe-name:hover,.recipe-name:focus{border-color:var(--line);background:var(--soft)}.items{margin:0;padding:0;list-style:none}.item{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.7rem;padding:.6rem 0;display:grid}.item:first-child{border-top:none}.item-main{min-width:0;display:grid}.item-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.item-meta{color:var(--muted);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.qty{align-items:center;gap:.3rem;display:flex}.qty input{text-align:right;width:4.6rem}.qty select{width:6.2rem;font-size:.8rem}.unit{color:var(--muted);font-size:.85rem}@media (max-width:520px){.item{grid-template-columns:auto minmax(0,1fr) auto}.qty{grid-column:2/3}}.dot{border:2px solid;border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.dot.sm{vertical-align:middle;width:9px;height:9px;margin-right:.4rem}.row-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;padding-top:.7rem;display:flex}.spacer{flex:1}.empty{color:var(--muted);padding:.4rem 0 .2rem}.chips{flex-wrap:wrap;gap:.45rem;display:flex}.chip{border:1px solid var(--line);background:var(--soft);color:var(--text);border-radius:99px;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.chip:hover{border-color:var(--accent);text-decoration:none}.chip a{color:inherit}.chip .x{color:var(--muted);background:0 0;border:none;padding:0 .1rem;font-size:.75rem}.saved{margin-top:1rem}.table-wrap{margin-top:.4rem;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.82rem}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--line);padding:.4rem .45rem}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-size:.75rem;font-weight:600}th small{font-weight:400;display:block}td.fname{text-overflow:ellipsis;max-width:15rem;overflow:hidden}tfoot td{border-bottom:none;font-weight:700}.split{background:var(--soft);border-radius:99px;height:10px;margin-top:.9rem;display:flex;overflow:hidden}.seg.p,i.p{background:#10b981}.seg.c,i.c{background:#f59e0b}.seg.f,i.f{background:#6366f1}.split-legend{flex-wrap:wrap;gap:.9rem;margin-top:.4rem;display:flex}.split-legend i{border-radius:2px;width:8px;height:8px;margin-right:.3rem;display:inline-block}.seg-ctl{background:var(--soft);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg-ctl button{color:var(--muted);background:0 0;border:none;border-radius:7px;padding:.3rem .65rem;font-size:.82rem}.seg-ctl button.on{background:var(--card);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001f}.hint{margin:0 0 .2rem}.chart-opts{flex-wrap:wrap;align-items:center;display:flex}.kg{width:4rem;margin:0 .2rem}.chart-empty{text-align:center;place-items:center;padding:2rem 0;display:grid}.radar svg{width:100%;max-width:520px;margin:0 auto;display:block;overflow:visible}.radar .grid polygon,.radar .grid line{fill:none;stroke:var(--line);stroke-width:1px}.radar .ring-labels text{fill:var(--muted);font-size:9.5px}.radar .axis-labels text{fill:var(--text);font-size:12.5px;font-weight:600}.radar .band{fill-opacity:.55;stroke-width:1px;stroke-opacity:.9;stroke-linejoin:round;transition:opacity .15s}.radar .band.dim{opacity:.25}.radar .ref{fill:none;stroke:var(--text);stroke-opacity:.7;stroke-width:1.8px;stroke-dasharray:.1 4.5;stroke-linecap:round;pointer-events:none}.radar .total-line polygon{fill:none;stroke:var(--total);stroke-width:2.2px;stroke-linejoin:round;pointer-events:none}.radar .total-line circle{fill:var(--total)}.legend{flex-wrap:wrap;justify-content:center;gap:.4rem .9rem;margin:.4rem 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.legend li{cursor:default;align-items:center;gap:.35rem;display:flex}.legend .swatch{border:2px solid;border-radius:3px;width:12px;height:12px}.legend .swatch.line{background:var(--total);border:none;border-radius:2px;height:3px}.legend li.dashed .swatch{border:2px dotted var(--text);opacity:.7;background:0 0}.aa-table th{text-overflow:ellipsis;max-width:9rem;overflow:hidden}.scores{border-top:1px solid var(--line);margin-top:1rem;padding-top:.9rem}.scores ul{gap:.35rem;margin:0 0 .4rem;padding:0;list-style:none;display:grid}.scores li{grid-template-columns:auto minmax(0,1fr) 90px 2.4rem 8.5rem;align-items:center;gap:.5rem;font-size:.82rem;display:grid}.scores li.total{font-weight:600}.s-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scores .bar{background:var(--soft);border-radius:99px;height:6px;overflow:hidden}.scores .bar span{height:100%;display:block}.scores li.total .bar span{background:var(--total)!important}.scores b{text-align:right;font-variant-numeric:tabular-nums}@media (max-width:520px){.scores li{grid-template-columns:auto minmax(0,1fr) 2.4rem}.scores .bar,.scores li>.small{display:none}}.foot{max-width:1320px;color:var(--muted);margin:0 auto;padding:1rem clamp(1rem,3vw,2rem) 2rem;font-size:.8rem;line-height:1.5}.foot p{margin:.3rem 0}.aa-table .tot{font-weight:700}.radar .axis-labels text.nodata{fill:var(--muted);font-weight:400}.radar .axis-labels .nd-tag{font-size:9.5px;font-style:italic}.radar .clip-labels text{fill:var(--total);paint-order:stroke;stroke:var(--card);stroke-width:3px;font-size:10px;font-weight:700}.chart-tabs{flex-wrap:wrap;gap:.3rem;margin-bottom:.7rem;display:flex}.chart-tabs button{border-radius:99px;padding:.35rem .85rem;font-size:.85rem}.chart-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}:root[data-theme=dark] .chart-tabs button.on{color:#052e1f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chart-tabs button.on{color:#052e1f}}.nd{color:var(--muted);font-style:italic}.aa-table td.amt{color:var(--muted)}.dv-table th.fcol{max-width:6.5rem}.dv-table td:first-child{text-overflow:ellipsis;max-width:11rem;overflow:hidden}.layout{grid-template-columns:minmax(300px,400px) minmax(0,1fr)}.col-right{position:static}.charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;display:grid}@media (max-width:1100px){.layout{grid-template-columns:1fr}.col-left,.col-right{display:grid}}@media (max-width:760px){.charts{grid-template-columns:1fr}}.chart-card{padding:.9rem 1rem}.cc-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.2rem;display:flex}.seg-ctl.sm button{padding:.25rem .5rem;font-size:.75rem}details.values,details.scores{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.5rem}details summary{cursor:pointer;color:var(--muted);font-size:.85rem;font-weight:600}details.scores{margin-top:.4rem}details.scores ul{margin-top:.5rem}.search-opts{flex-wrap:wrap;align-items:center;gap:.2rem 1rem;margin-top:.55rem;display:flex}.search-opts .check{margin:0}.add-to{color:var(--muted);align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.add-to select{color:var(--text);font-weight:600}.meal{cursor:default;border-width:1px;transition:border-color .15s,box-shadow .15s}.meal.target{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent), var(--shadow)}.meal-head{align-items:center;gap:.4rem;display:flex}.meal-name{background:0 0;border:1px solid #0000;border-radius:8px;flex:1;min-width:0;padding:.25rem .4rem;font-size:1rem;font-weight:700}.meal-name:hover,.meal-name:focus{border-color:var(--line);background:var(--soft)}.meal-dot{border-radius:4px;flex:none;width:12px;height:12px;display:inline-block}.meal-dot.sm{vertical-align:middle;border-radius:3px;width:9px;height:9px;margin-right:.35rem}button.icon.sm{padding:.2rem .35rem;font-size:.85rem}.meal .items{margin-top:.3rem}.qty{flex-wrap:wrap;justify-content:flex-end}.qty select.move{width:5.2rem;font-size:.78rem}.item{grid-template-columns:auto minmax(0,1fr) auto auto}.meal-sum{text-align:right;margin:.4rem 0 0}.empty-meal{margin:.5rem 0 .1rem}.col-left>.row-actions{border-top:none;margin-top:0;padding-top:0}.controls{gap:.6rem;display:grid}.view-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.view-tabs button{border-radius:99px;padding:.35rem .85rem;font-size:.85rem}.view-tabs button.on{background:var(--text);border-color:var(--text);color:var(--card);font-weight:600}.ctl-row{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.ctl-row .check{margin:0}.dotted-swatch{border-top:2px dotted var(--text);opacity:.7;width:18px;display:inline-block}.controls .hint{margin:0}.meal .item{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot main x"".qty qty";row-gap:.35rem}.meal .item>.dot{grid-area:dot}.meal .item>.item-main{grid-area:main}.meal .item>.qty{grid-area:qty;justify-content:flex-start}.meal .item>button.icon{grid-area:x}.meal .item-name{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.meals-head{justify-content:space-between;align-items:center;padding:0 .2rem;display:flex}.meals-head .check{margin:0}.meal{position:relative}.meal:focus-within{z-index:30}.food-search{margin-top:.55rem;position:relative}.search.sm{border-radius:10px;gap:.45rem;padding:.45rem .65rem}.search.sm input{font-size:.92rem}.food-search .results{z-index:40;background:var(--card);border:1px solid var(--line);border-radius:12px;max-height:min(60vh,420px);margin:0;padding:.3rem;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 12px 40px #0003}.food-search .results ul{margin:0;padding:0;list-style:none}.food-search .results li{cursor:pointer;border-radius:8px;gap:.1rem;padding:.45rem .55rem;display:grid}.food-search .results li.active{background:var(--soft)}.food-search .no-match{margin:.4rem .55rem}.food-search .aa-filter{border-top:1px solid var(--line);width:calc(100% - .9rem);margin:.3rem .45rem .15rem;padding-top:.4rem;font-size:.78rem;display:flex}@media (max-width:520px){.food-search .results{max-height:50vh}.search.sm input{font-size:16px}}.food-search{scroll-margin-top:10px}
