:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--radius-s:.6rem;--radius-m:.9rem;--radius-l:1.25rem;--font-header:1.05rem;--font-metric:1.35rem;--color-backdrop:#080d12;--color-bg:#0f1720;--color-panel:#16212d;--color-panel-strong:#1c2836;--color-line:#2a3a4b;--color-line-strong:#3a4f63;--color-text:#e8eef4;--color-text-soft:#b7c4d0;--color-text-faint:#8da0b2;--color-accent:#5ec5dc;--color-accent-ink:#07222a;--color-button:#5ec5dc;--color-button-ink:var(--color-accent-ink);--color-danger:#ef6f6f;--shadow-card:0 1px 0 #ffffff08 inset}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-backdrop:#dde4ec;--color-bg:#eef2f6;--color-panel:#fff;--color-panel-strong:#f4f7fa;--color-line:#d3dce5;--color-line-strong:#b9c6d3;--color-text:#15202b;--color-text-soft:#4a5a6b;--color-text-faint:#6e7d8c;--color-accent:#0e7490;--color-accent-ink:#fff;--color-button:#d65000;--color-button-ink:#fff;--color-danger:#c0392b;--shadow-card:0 1px 0 #fff9 inset}*{box-sizing:border-box}html,body{min-height:100%;margin:0}html{font-size:19px}body{font:1rem/1.5 var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased}.stage{background:var(--color-backdrop);justify-content:center;align-items:stretch;min-height:100dvh;display:flex}.app{background:var(--color-bg);flex-direction:column;width:100%;max-width:740px;height:100dvh;display:flex;overflow:hidden}.app-header{align-items:center;gap:var(--space-2);padding:max(var(--space-2), env(safe-area-inset-top)) var(--space-2) var(--space-2);background:var(--color-panel);border-bottom:1px solid var(--color-line);flex:none;grid-template-columns:44px 44px 1fr 44px 44px;display:grid}.cal-cell{place-items:center;display:grid;position:relative}.cal-cell:hover .icon-btn{background:var(--color-panel-strong);color:var(--color-text)}.header-date-input{opacity:0;cursor:pointer;border:0;margin:0;padding:0;position:absolute;inset:0}.current-date{text-align:center;font-size:var(--font-header);color:var(--color-text);font-weight:600}.icon-btn{appearance:none;border-radius:var(--radius-m);width:44px;height:44px;color:var(--color-text-soft);cursor:pointer;background:0 0;border:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--color-panel-strong);color:var(--color-text)}.icon-btn:disabled{opacity:.3;cursor:default}.icon{width:24px;height:24px;display:block}.app-main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.day-summary{flex:none}.comment{padding:var(--space-3) var(--space-4);color:var(--color-text-soft);border-bottom:1px solid var(--color-line);margin:0;font-size:.95rem}.day-total{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-accent);color:var(--color-accent-ink);display:flex}.day-total .total-values{gap:var(--space-5);display:flex}.day-total .total-metric{flex-direction:column;align-items:flex-end;line-height:1.15;display:flex}.day-total .total-metric.lead{align-items:flex-start}.day-total .total-metric .num{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.day-total .total-metric .lbl{text-transform:uppercase;letter-spacing:.06em;opacity:.85;font-size:.72rem;font-weight:600}.entries{min-height:0;padding:0 0 var(--space-4);flex:1;margin:0;list-style:none;overflow-y:auto}.entry{align-items:baseline;column-gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-line);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:1fr auto auto;display:grid;position:relative}.entry:hover{background:var(--color-panel-strong)}.entry:active{background:color-mix(in srgb, var(--color-accent) 14%, transparent)}.entry-date{right:var(--space-4);bottom:var(--space-3);color:var(--color-text-faint);font-variant-numeric:tabular-nums;font-size:.78rem;position:absolute}.entries li.entry-highlight .entry{background:color-mix(in srgb, var(--color-accent) 22%, transparent)}.entry-name{flex-direction:column;gap:.1rem;min-width:0;display:flex}.entry-name .name{color:var(--color-text);font-weight:600}.entry-name .amount{color:var(--color-text-faint);font-size:.85rem}.entry .kcal,.entry .protein{font-variant-numeric:tabular-nums}.entry .kcal{text-align:right;min-width:3ch;font-weight:600}.entry .protein{color:var(--color-text-soft);text-align:right;min-width:4.5ch}.app-footer{padding:var(--space-2) var(--space-5) max(var(--space-2), env(safe-area-inset-bottom));background:var(--color-panel);border-top:1px solid var(--color-line);flex:none;justify-content:space-around;align-items:center;display:flex;position:relative}.foot-btn{appearance:none;border-radius:var(--radius-m);width:52px;height:52px;color:var(--color-text-soft);cursor:pointer;background:0 0;border:none;place-items:center;display:inline-grid}.foot-btn:hover{color:var(--color-text)}.foot-btn .icon{width:28px;height:28px}.foot-btn.add{background:var(--color-accent);width:64px;height:64px;color:var(--color-accent-ink);box-shadow:0 12px 24px -10px color-mix(in srgb, var(--color-accent) 70%, transparent);border-radius:999px;margin-top:-22px}.foot-btn.add .icon{stroke-width:2.4px;width:34px;height:34px}.foot-btn.back{background:color-mix(in srgb, var(--color-accent) 20%, transparent);color:var(--color-accent)}@media (width>=741px){.app{border:1px solid var(--color-line-strong);border-radius:var(--radius-l)}}@media (width>=741px) and (height>=1006px){.stage{align-items:center}.app{height:90vh;box-shadow:0 40px 90px -45px #0009}}.dialog{z-index:1;background:var(--color-bg);flex-direction:column;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.dialog-header{align-items:center;gap:var(--space-2);padding:max(var(--space-2), env(safe-area-inset-top)) var(--space-3) var(--space-2);background:var(--color-accent);color:var(--color-accent-ink);flex:none;grid-template-columns:44px 1fr 44px;display:grid}.dialog-title{text-align:center;font-size:var(--font-header);color:var(--color-accent-ink);grid-column:2;margin:0;font-weight:600}.dialog-header .icon-btn{color:var(--color-accent-ink);grid-column:3}.dialog-header .icon-btn:hover{background:color-mix(in srgb, var(--color-accent-ink) 18%, transparent);color:var(--color-accent-ink)}.dialog-body{gap:var(--space-4);min-height:0;padding:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.dialog-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4) max(var(--space-3), env(safe-area-inset-bottom));background:var(--color-panel);border-top:1px solid var(--color-line);flex:none;display:flex}.dialog-btn{appearance:none;min-height:2.75rem;padding:0 var(--space-5);border-radius:var(--radius-m);font:inherit;background:var(--color-button);color:var(--color-button-ink);cursor:pointer;border:none;font-weight:600}.dialog-btn:hover{background:color-mix(in srgb, var(--color-button) 86%, #000)}@media (width>=450px){.dialog{border:1px solid var(--color-line-strong);border-radius:var(--radius-l);width:450px;height:80dvh;box-shadow:0 40px 90px -45px #0009}}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-row{gap:var(--space-3);display:flex}.field-row .field{flex:1}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);font-size:.78rem;font-weight:700}.field-value{padding:var(--space-1) 0;font-weight:600}.input,.select{width:100%;min-height:2.75rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius-m);background:var(--color-panel-strong);color:var(--color-text);font:inherit}.input::placeholder{color:var(--color-text-faint)}.input:focus,.select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 30%, transparent);outline:none}.amount-row{align-items:center;gap:var(--space-3);display:flex}.amount-row .input{flex:1}.unit-suffix{color:var(--color-text-soft);white-space:nowrap;font-weight:600}.amount-row.lg .input{font-size:var(--font-metric)}.amount-row.lg .unit-suffix{font-size:1.05rem}.suggest-list{margin:var(--space-1) 0 0;padding:var(--space-1);border:1px solid var(--color-line-strong);border-radius:var(--radius-m);background:var(--color-panel);flex-direction:column;list-style:none;display:flex;box-shadow:0 18px 40px -28px #000000b3}.suggest-item{justify-content:space-between;align-items:baseline;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-s);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.suggest-item:hover{background:var(--color-panel-strong)}.suggest-item .s-meta{color:var(--color-text-faint);white-space:nowrap;font-size:.85rem}.suggest-item .match{color:var(--color-accent);font-weight:700}.badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);background:var(--color-accent);color:var(--color-accent-ink);border-radius:999px;align-self:flex-start;font-weight:600;display:inline-flex}.badge-remove{background:color-mix(in srgb, var(--color-accent-ink) 18%, transparent);width:1.5rem;height:1.5rem;color:var(--color-accent-ink);cursor:pointer;border:none;border-radius:999px;place-items:center;display:inline-grid}.badge-remove .icon{width:1rem;height:1rem}.nutri-readout{gap:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-panel-strong);display:flex}.nutri-metric{flex-direction:column;line-height:1.15;display:flex}.nutri-metric .n{font-size:var(--font-metric);font-variant-numeric:tabular-nums;font-weight:700}.nutri-metric .l{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);font-size:.72rem;font-weight:600}.dialog-btn:disabled{opacity:.45;cursor:not-allowed}.segmented{padding:var(--space-1);border:1px solid var(--color-line-strong);border-radius:var(--radius-m);background:var(--color-panel-strong);display:flex}.segmented button{appearance:none;min-height:2.5rem;padding:var(--space-2) var(--space-3);border-radius:calc(var(--radius-m) - var(--space-1));color:var(--color-text-soft);font:inherit;cursor:pointer;background:0 0;border:none;flex:1;font-weight:600}.segmented button:hover{color:var(--color-text)}.segmented button.active{background:var(--color-accent);color:var(--color-accent-ink)}.textarea{width:100%;min-height:5.5rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius-m);background:var(--color-panel-strong);color:var(--color-text);font:inherit;resize:vertical}.textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 30%, transparent);outline:none}.dialog-btn.danger{color:var(--color-danger);border:1px solid color-mix(in srgb, var(--color-danger) 45%, transparent);background:0 0}.dialog-btn.danger:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent)}.dialog-footer .danger{margin-inline-end:auto}.day-total .total-metric.empty{opacity:.55}.empty-state{place-content:center;justify-items:center;gap:var(--space-2);padding:var(--space-5);text-align:center;color:var(--color-text-faint);flex:1;display:grid}.empty-state .empty-title{color:var(--color-text-soft);font-weight:600}.foot-btn:disabled{opacity:.4;cursor:not-allowed}.input:disabled,.select:disabled{opacity:.6;cursor:not-allowed}.library-search{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-line);background:var(--color-bg);flex:none}.search-field{position:relative}.search-field .icon{width:1.1rem;height:1.1rem;color:var(--color-text-faint);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.search-field .input{padding-left:2.5rem}.library-list{min-height:0;padding:0 0 max(var(--space-4), env(safe-area-inset-bottom));flex:1;margin:0;list-style:none;overflow-y:auto}.lib-row{align-items:baseline;column-gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-line);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:1fr auto auto;row-gap:.15rem;display:grid}.lib-row:hover{background:var(--color-panel-strong)}.library-list li:last-child .lib-row{border-bottom:none}.lib-row .l-name{grid-area:1/1;font-weight:600}.lib-row .l-base{color:var(--color-text-faint);grid-area:2/1;font-size:.85rem}.lib-row .l-kcal{text-align:right;font-variant-numeric:tabular-nums;grid-area:1/2;font-weight:600}.lib-row .l-protein{min-width:4ch;color:var(--color-text-soft);text-align:right;font-variant-numeric:tabular-nums;grid-area:1/3}.lib-row .l-used{color:var(--color-text-faint);text-align:right;white-space:nowrap;grid-area:2/2/auto/4;font-size:.85rem}[hidden]{display:none!important}html,body{background:var(--color-panel);touch-action:manipulation}.app-main,.entries,.library-list,.dialog-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media (width<=449.98px){html,body{overscroll-behavior:none;overflow:hidden}}#modal-root{z-index:100;background:#00000080;justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}@media (width>=450px){#modal-root{align-items:center}}.day-total,.comment{cursor:pointer}.field-hint{color:var(--color-text-faint);font-size:.78rem}.link-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius-m);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;align-self:flex-start;font-weight:600}.link-btn:hover{background:var(--color-panel-strong)}.link-btn.accent{border-color:var(--color-accent);color:var(--color-accent)}.suggest-item .s-new{color:var(--color-accent);font-weight:600}.entry{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.entries li.sortable-ghost .entry{background:color-mix(in srgb, var(--color-accent) 14%, transparent);opacity:.5}.sortable-fallback{border-radius:var(--radius-m);cursor:grabbing;list-style:none;overflow:hidden;box-shadow:0 16px 32px -12px #0000008c}.sortable-fallback .entry{background:var(--color-panel-strong);border-bottom:none}.login{justify-content:center;align-items:center;gap:var(--space-4);min-height:100dvh;padding:max(var(--space-5), env(safe-area-inset-top)) var(--space-5) max(var(--space-5), env(safe-area-inset-bottom));background:var(--color-bg);flex-direction:column;display:flex}.login-icon{border-radius:var(--radius-l);width:96px;height:96px}.login-title{margin:0;font-size:1.5rem}.login-form{gap:var(--space-3);flex-direction:column;width:100%;max-width:18rem;display:flex}.login-error{text-align:center;color:var(--color-danger);margin:0;font-size:.9rem}.toast{left:50%;top:calc(max(var(--space-2), env(safe-area-inset-top)) + 44px + var(--space-2) + var(--space-3));z-index:200;max-width:min(90vw,30rem);padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--color-danger);color:#fff;position:fixed;transform:translate(-50%);box-shadow:0 20px 40px -20px #0009}.toast-success{background:var(--color-accent);color:var(--color-accent-ink)}
