/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/build/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/build/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/build/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/build/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/build/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer theme{:root,:host{--font-sans:"Nunito Variable", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities;:root{--bg:#f8fafc;--surface:#fff;--surface-subtle:#f8fafc;--surface-muted:#f1f5f9;--line:#e2e8f0;--line-strong:#cbd5e1;--text:#0f172a;--muted:#64748b;--primary:#10b981;--primary-strong:#059669;--primary-deep:#047857;--mint:#a7f3d0;--violet:#6366f1;--blue:#3b82f6;--accent:#f59e0b;--warning:#f59e0b;--danger:#ef4444;--sidebar:#020617;--sidebar-soft:#0f172a;--ring:#10b9813d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--shadow:0 16px 40px #0f172a1a;--shadow-soft:0 2px 8px #0f172a0f;--shadow-glow:0 18px 38px #10b9812e}*{box-sizing:border-box}html{background:linear-gradient(180deg, #fff 0%, var(--bg) 42%, #eef4f8 100%);color:var(--text);font-family:var(--font-sans)}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:272px minmax(0,1fr);min-height:100vh;display:grid}body.nav-locked{overflow:hidden}.sidebar{background:linear-gradient(180deg, var(--sidebar) 0%, var(--sidebar-soft) 100%);color:#f8fafc;border-right:1px solid #ffffff14;flex-direction:column;align-self:start;gap:26px;height:100vh;max-height:100vh;padding:24px 18px;display:flex;position:sticky;top:0;overflow-y:auto;box-shadow:inset -1px 0 #ffffff0f}.topbar .mobile-nav-toggle,.brand .sidebar-close,.sidebar-backdrop{display:none}.brand{align-items:center;gap:12px;padding:4px 6px 8px;display:flex}.brand-mark{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);color:#ecfdf5;place-items:center;width:44px;height:44px;font-weight:800;display:grid;box-shadow:0 12px 24px #10b98142,inset 0 0 0 1px #ffffff47}.brand strong,.brand small{display:block}.brand small{color:#94a3b8;margin-top:2px}.nav-list{--nav-gap:8px;--nav-item-height:48px;grid-auto-rows:var(--nav-item-height);gap:var(--nav-gap);isolation:isolate;display:grid;position:relative}.nav-list:before{content:"";z-index:0;width:100%;height:var(--nav-item-height);border-radius:var(--radius-md);background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);transform:translateY(calc(var(--nav-active-index,0) * (var(--nav-item-height) + var(--nav-gap))));will-change:transform;transition:transform .34s cubic-bezier(.22,1,.36,1),width .26s,height .26s;position:absolute;top:0;left:0;box-shadow:0 14px 28px #10b9813d,inset 0 0 0 1px #fff3}.nav-list button,.segmented button{z-index:1;border-radius:var(--radius-md);height:100%;min-height:0;color:inherit;text-align:left;background:0 0;border:1px solid #0000;padding:12px 14px;position:relative}.nav-list button:hover:not(.active){background:#ffffff14;border-color:#ffffff1f}.nav-list button.active{color:#fff;background:0 0}.nav-list button{align-items:center;gap:12px;display:flex}.nav-list button svg{flex:none}.sidebar-widgets{flex-direction:column;gap:14px;margin-top:auto;display:flex}.sidebar-widget{border-radius:var(--radius-lg);width:100%;color:inherit;text-align:left;background:#0f172ab8;border:1px solid #ffffff1a;gap:6px;padding:14px 16px;display:grid;box-shadow:inset 0 1px #ffffff12}.sidebar-widget strong{font-variant-numeric:tabular-nums;color:#e2e8f0;font-size:1.2rem}button.sidebar-widget{transition:border-color .14s,background .14s,transform .14s}button.sidebar-widget:hover{background-color:#1e293bdb;border-color:#a7f3d059;transform:translateY(-1px)}.sidebar-widget--balance strong{color:#a7f3d0}.sidebar-widget--balance small:last-child{color:#cbd5e1}.sidebar-widget.surplus strong{color:#fda4af}.sidebar-widget.near strong{color:#fde68a}.sidebar-widget.neutral strong{color:#cbd5e1}.sidebar-widget--weight{background:linear-gradient(145deg,#0f172ac2,#312e8140);border-color:#818cf83d}.sidebar-widget--weight strong{color:#c7d2fe}.sidebar-widget--weight small:last-child{color:#cbd5e1}.sidebar-widget--goal{background:linear-gradient(#0f172aeb 0%,#0f766e3d 100%)}.sidebar-widget--goal strong{color:#e2e8f0;font-size:1.15rem}.sidebar-progress{background:#e2e8f029;border-radius:999px;height:8px;overflow:hidden}.statistics-stack{gap:24px;display:grid}.progress-stack,.weight-stack{gap:20px;display:grid}.progress-tabs{isolation:isolate;gap:0;width:min(420px,100%);position:relative}.progress-tabs:before{content:"";z-index:0;border:1px solid var(--line);border-radius:var(--radius-md);width:calc(50% - 4px);height:calc(100% - 8px);box-shadow:var(--shadow-soft);transform:translateX(calc(var(--progress-active-index,0) * 100%));will-change:transform;background:#fff;transition:transform .34s cubic-bezier(.22,1,.36,1);position:absolute;top:4px;left:4px}.progress-tabs button{z-index:1;transition:color .18s}.segmented.progress-tabs button.active{box-shadow:none;background:0 0;border-color:#0000}.weight-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.weight-summary-card{grid-template-columns:42px minmax(0,1fr);gap:2px 10px;display:grid}.weight-summary-card .stat-icon{grid-row:1/3;align-self:center}.weight-summary-card strong{font-variant-numeric:tabular-nums;font-size:1.18rem}.weight-chart-panel,.forecast-card{gap:16px;display:grid}.segmented.range-tabs{--range-tab-width:44px;grid-template-columns:repeat(3, var(--range-tab-width));isolation:isolate;place-self:center end;gap:0;width:auto;padding:2px;display:inline-grid;position:relative}.segmented.range-tabs:before{content:"";z-index:0;width:var(--range-tab-width);border:1px solid var(--line);border-radius:var(--radius-md);height:calc(100% - 4px);box-shadow:var(--shadow-soft);transform:translateX(calc(var(--range-active-index,0) * var(--range-tab-width)));will-change:transform;background:#fff;transition:transform .34s cubic-bezier(.22,1,.36,1);position:absolute;top:2px;left:2px}.segmented.range-tabs button{z-index:1;min-height:36px;padding:4px 6px;font-size:.78rem;transition:color .18s}.segmented.range-tabs button.active{box-shadow:none;background:0 0;border-color:#0000}.weight-chart{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(#eef2ff8c,#fff);padding:8px 6px;position:relative;overflow:hidden}.weight-chart svg{width:100%;height:auto;display:block}.weight-line,.weight-previous-line,.weight-average-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.weight-line{stroke:#10b981;stroke-width:3px}.weight-previous-line{stroke:url(#weight-previous-fade);stroke-dasharray:5 6;stroke-width:3px}.weight-average-line{stroke:#64748b;stroke-dasharray:7 7;stroke-width:2.5px}.weight-target-line{stroke:#f59e0b;stroke-dasharray:4 6;stroke-width:2.5px}.weight-point{fill:#fff;stroke:#059669;stroke-width:3px;transition:r .14s,fill .14s}.weight-point.active{fill:#d1fae5;r:6px}.weight-active-line{stroke:#94a3b8;stroke-width:1.5px;stroke-dasharray:3 4}.weight-hit{fill:#0000;cursor:pointer;outline:none}.weight-hit.active{fill:#64748b14}.weight-hit:focus-visible{fill:#6366f11a;stroke:#6366f1;stroke-width:1.5px}.weight-tooltip{z-index:2;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);pointer-events:none;flex-direction:column;gap:6px;min-width:150px;max-width:min(220px,86%);padding:9px 12px;display:flex;position:absolute;top:16px;transform:translate(-50%);box-shadow:0 12px 28px #0f172a29}.weight-gap-point{fill:none;stroke:#cbd5e1;stroke-width:1.5px}.legend-weight{background:#10b981}.legend-average{background:repeating-linear-gradient(90deg,#64748b 0 7px,#0000 7px 11px);height:2px!important}.legend-weight-target{background:repeating-linear-gradient(90deg,#f59e0b 0 7px,#0000 7px 11px);height:3px!important}.weight-layout{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:20px;display:grid}.weight-note,.weight-form-actions{grid-column:1/-1}.forecast-card{background:linear-gradient(145deg,#fff 0%,#eef2ff 100%);align-content:start}.forecast-card>div{flex-direction:column;gap:3px;display:flex}.weight-entry-list{gap:8px;margin-top:14px;display:grid}.weight-entry-row{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-subtle);grid-template-columns:minmax(0,1fr) 42px 42px;align-items:center;gap:8px;padding:10px 12px;display:grid}.weight-entry-row div,.weight-entry-row small{display:block}@media (width<=900px){.weight-summary,.weight-layout,.form-grid.weight-form,.progress-stack .statistics-summary{grid-template-columns:minmax(0,1fr)}.weight-summary-card,.weight-layout>*,.weight-form>*{min-width:0}.weight-summary-card,.progress-stack .statistics-summary>div{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.weight-summary-card .stat-icon,.progress-stack .statistics-summary .stat-icon{grid-row:auto}.weight-summary-card strong{overflow-wrap:anywhere;text-align:right}.progress-stack .statistics-summary strong{text-align:right}}.statistics-period{gap:20px;display:grid;overflow:hidden}.statistics-header,.statistics-header>div,.statistics-summary>div,.chart-legend,.chart-legend span,.statistics-footer{align-items:center;display:flex}.statistics-header{justify-content:space-between;gap:18px}.statistics-header>div{gap:11px;min-width:0}.statistics-header h2,.statistics-header small{display:block}.balance-badge{color:#047857;font-variant-numeric:tabular-nums;background:#ecfdf5;border-radius:999px;flex:none;padding:8px 12px;font-size:.88rem}.balance-badge.surplus{color:#be123c;background:#fff1f2}.balance-badge.near{color:#b45309;background:#fffbeb}.balance-badge.neutral{background:var(--surface-muted);color:var(--muted)}.statistics-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.statistics-summary>div{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(145deg, #fff 0%, var(--surface-subtle) 100%);grid-template-columns:38px minmax(0,1fr);gap:2px 10px;padding:14px;display:grid}.statistics-summary .stat-icon{grid-row:1/3;align-self:center}.statistics-summary strong{font-variant-numeric:tabular-nums;min-width:0;font-size:1.12rem}.balance-chart{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg, #ecfdf56b 0%, #ffffffeb 58%), var(--surface);padding:10px 10px 8px;overflow:hidden}.balance-chart svg{width:100%;height:auto;display:block}.chart-grid-line{stroke:#dbe4ec;stroke-dasharray:4 6}.chart-intake-bar{fill:#10b981;opacity:.88}.chart-intake-bar.over{fill:#ef4444;opacity:.9}.chart-intake-bar.empty{fill:#cbd5e1;opacity:.48}.chart-target-line{fill:none;stroke:#6366f1;stroke-dasharray:7 7;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px;opacity:.85}.balance-plot{position:relative}.balance-active-line{stroke:#94a3b8;stroke-width:1.5px;stroke-dasharray:3 4}.balance-hit{fill:#0000;cursor:pointer;outline:none}.balance-hit.active{fill:#64748b14}.balance-hit:focus-visible{fill:#6366f124;stroke:#6366f1;stroke-width:1.5px}.balance-tooltip{z-index:2;border:1px solid var(--line);border-radius:var(--radius-md,12px);background:var(--surface,#fff);pointer-events:none;flex-direction:column;gap:6px;min-width:150px;max-width:min(220px,86%);padding:9px 12px;display:flex;position:absolute;top:8px;transform:translate(-50%);box-shadow:0 12px 28px #0f172a29}.balance-tooltip-date{text-transform:capitalize;font-size:.82rem;display:block}.balance-tooltip-rows{gap:8px;margin:0;display:grid}.balance-tooltip-rows div{gap:1px;font-size:.82rem;display:grid}.balance-tooltip-rows dt{color:var(--muted);font-weight:600}.balance-tooltip-rows dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:700}.balance-tooltip-balance.deficit dd{color:#10b981}.balance-tooltip-balance.surplus dd{color:#ef4444}.balance-tooltip-balance.near dd{color:#6366f1}.balance-tooltip-flag{margin:0;font-size:.82rem;font-weight:700}.balance-tooltip-flag.muted{color:var(--muted)}.chart-axis-label{fill:#64748b;font-size:12px;font-weight:700}.chart-legend{color:var(--muted);justify-content:center;gap:18px;font-size:.82rem;font-weight:700}.chart-legend span{gap:7px}.chart-legend i{border-radius:999px;width:18px;height:5px;display:block}.legend-intake{background:var(--primary)}.legend-over{background:#ef4444}.legend-target{background:repeating-linear-gradient(90deg,#6366f1 0 7px,#0000 7px 11px);height:2px!important}.statistics-footer{justify-content:space-between;gap:12px}@media (width<=760px){.statistics-header{flex-direction:column;align-items:flex-start}.statistics-summary{grid-template-columns:1fr}.balance-chart{padding:8px 4px 7px}.chart-axis-label{font-size:11px}.chart-legend{gap:12px;font-size:.75rem}.statistics-footer{flex-direction:column;align-items:flex-start}.weight-summary,.weight-layout{grid-template-columns:1fr}.segmented.range-tabs{place-self:flex-start start}.weight-chart svg{width:100%}}.sidebar-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--primary) 0%, var(--mint) 100%);height:100%;transition:width .65s cubic-bezier(.22,1,.36,1),background .22s;display:block}.workspace{min-width:0;padding:32px}.view-motion-enter-active,.view-motion-leave-active{transform-origin:50% 32px;will-change:opacity, filter, transform;transition:opacity .19s,filter .21s,transform .23s cubic-bezier(.22,1,.36,1)}.view-motion-enter-from{opacity:0;filter:blur(9px);transform:translateY(14px)scale(.992)}.view-motion-leave-to{opacity:0;filter:blur(7px);transform:translateY(-10px)scale(.996)}.topbar-heading{align-items:center;gap:12px;min-width:0;display:flex}.topbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;display:flex}h1,h2,p{margin:0}h1{letter-spacing:0;font-size:2rem;font-weight:800;line-height:1.25}h2{letter-spacing:0;font-size:1.18rem;font-weight:700;line-height:1.4}.topbar p,small,.empty{color:var(--muted)}.date-navigator{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:#ffffffc2;grid-template-columns:42px minmax(180px,230px) 42px auto;align-items:center;gap:8px;padding:6px;display:grid}.date-navigator input{min-height:40px}.date-navigator .date-step{justify-self:center;place-items:center;width:40px;height:40px;min-height:40px;padding:0;font-size:1.45rem;line-height:1;display:grid}.date-navigator .date-step svg{display:block}.today-button{min-height:40px}.today-button:disabled{cursor:default;opacity:.55}.empty{border:1px dashed var(--line-strong);background:var(--surface-subtle);text-align:center;border-radius:8px;padding:22px}.content-grid{grid-template-columns:minmax(0,1fr) 380px;gap:24px;display:grid}.toast{z-index:20;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(400px,100vw - 32px);box-shadow:var(--shadow);color:var(--text);grid-template-columns:40px minmax(0,1fr) 30px;align-items:center;gap:12px;padding:14px 16px;display:grid;position:fixed;top:22px;right:24px;overflow:hidden}.toast-icon{border-radius:var(--radius-md);color:#047857;background:linear-gradient(135deg,#ecfdf5 0%,#bbf7d0 100%);place-items:center;width:40px;height:40px;display:grid;box-shadow:inset 0 0 0 1px #ffffffb3}.toast.error .toast-icon{color:var(--danger);background:linear-gradient(135deg,#fef2f2 0%,#fecaca 100%)}.toast-message{overflow-wrap:anywhere;min-width:0;font-size:.92rem;font-weight:700;line-height:1.4}.toast-close{width:30px;height:30px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;padding:0;transition:background .14s,color .14s;display:grid}.toast-close:hover{background:var(--surface-muted);color:var(--text)}.toast-progress{transform-origin:0;background:linear-gradient(90deg, var(--primary) 0%, var(--mint) 100%);height:3px;animation:4.2s linear forwards toast-progress;position:absolute;bottom:0;left:0;right:0}.toast.error .toast-progress{background:linear-gradient(90deg, var(--danger) 0%, #fda4af 100%)}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-motion-enter-active,.toast-motion-leave-active{transition:opacity .2s,transform .26s cubic-bezier(.22,1,.36,1)}.toast-motion-enter-from,.toast-motion-leave-to{opacity:0;transform:translate(24px)scale(.98)}@media (prefers-reduced-motion:reduce){.toast-progress{animation:none}.sidebar{transition:none}}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a7a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.search-modal{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);grid-template-rows:auto minmax(0,1fr);gap:16px;width:min(720px,100%);max-height:min(720px,100vh - 48px);padding:22px;display:grid;box-shadow:0 26px 70px #0f172a47}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.modal-header>div{gap:4px;min-width:0;display:grid}.modal-header small{overflow-wrap:anywhere}.modal-result-list{min-height:0;margin-top:0;padding-right:2px;overflow:auto}.modal-result-list button{grid-template-columns:minmax(0,1fr)}.modal-empty{align-self:start}.search-loading{color:var(--muted);align-items:center;gap:10px;padding:16px 12px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:1.6s}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:22px}.main-panel{min-width:0;container-type:inline-size}.narrow{max-width:520px}.account-view{gap:20px;width:min(900px,100%);display:grid}.account-hero{background:radial-gradient(circle at 90% 10%,#a7f3d06b,#0000 32%),linear-gradient(135deg,#fff 0%,#f0fdf9 100%);align-items:center;gap:16px;display:flex}.account-avatar,.account-section-icon{color:var(--primary-deep);background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);flex:none;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffffad}.account-avatar{border-radius:18px;width:58px;height:58px}.account-hero h2{margin:2px 0 3px;font-size:1.35rem}.account-email{color:var(--muted);align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.account-section{min-width:0;box-shadow:var(--shadow-soft);align-content:start;gap:18px;display:grid}.account-section-header{align-items:flex-start;gap:12px;display:flex}.account-section-header p{color:var(--muted);margin-top:3px;font-size:.86rem;line-height:1.45}.account-section-icon{border-radius:var(--radius-md);width:40px;height:40px}.account-section-icon.danger{color:#be123c;background:linear-gradient(135deg,#fff1f2 0%,#fecdd3 100%)}.account-name{grid-template-columns:minmax(0,1fr) auto;align-items:end}.account-name button{min-width:150px}.account-provider{gap:10px;display:grid}.account-provider>div,.account-provider-status,.account-logout{align-items:center;display:flex}.account-provider>div{justify-content:space-between;gap:12px}.account-provider-status{background:var(--surface-muted);color:var(--muted);white-space:nowrap;border-radius:999px;gap:5px;padding:4px 9px;font-size:.74rem;font-weight:800}.account-provider-status.linked{color:var(--primary-deep);background:#ecfdf5}.account-provider p{color:var(--muted);font-size:.9rem;line-height:1.45}.account-provider button{justify-self:start}.account-session{grid-template-columns:minmax(0,1fr) auto;align-items:center}.panel-header,.inline-form{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-header{margin-bottom:16px}.panel-header h2{font-size:1.08rem}.daily-stats{--macro-card-height:122px;--stats-gap:10px;--calorie-card-size:calc((2 * var(--macro-card-height)) + var(--stats-gap));grid-template-columns:var(--calorie-card-size) minmax(0, 580px);align-items:start;gap:14px;margin:0 0 22px;display:grid}.calorie-card{width:var(--calorie-card-size);aspect-ratio:1;border:1px solid var(--line);background:linear-gradient(145deg, #bbf7d057 0%, #fffffff0 48%, #f1f5f9e0 100%), var(--surface);text-align:center;border-radius:18px;align-content:center;justify-items:center;gap:11px;min-height:0;padding:15px;transition:background .22s,border-color .22s,box-shadow .22s;display:grid;box-shadow:0 16px 34px #0f172a14}.calorie-ring{aspect-ratio:1;place-items:center;width:124px;display:grid;position:relative}.calorie-ring svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.calorie-ring circle{fill:none;stroke-width:12px}.calorie-ring-track{stroke:#e5ebf2}.calorie-ring-progress{stroke:var(--primary);stroke-dasharray:100;stroke-linecap:round;transition:stroke .22s,stroke-dashoffset .65s cubic-bezier(.22,1,.36,1)}.calorie-ring-value{z-index:1;aspect-ratio:1;background:#fff;border-radius:999px;align-content:center;justify-items:center;gap:4px;width:92px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #e2e8f0eb,0 10px 22px #0f172a0f}.calorie-ring strong{font-variant-numeric:tabular-nums;font-size:1.55rem;line-height:1;display:block}.calorie-ring span{color:var(--muted);font-size:.78rem;font-weight:700;line-height:1;display:block}.calorie-meta{justify-items:center;gap:5px;display:grid}.calorie-meta>span{color:var(--muted);font-size:.91rem;font-weight:700}.progress-pill{min-height:22px;color:var(--primary-deep);font-variant-numeric:tabular-nums;background:#eef7f3;border-radius:999px;justify-content:center;align-items:center;padding:3px 8px;font-size:.75rem;font-weight:800;transition:color .22s;display:inline-flex}.calorie-card.warning .progress-pill{color:#b45309;background:#fffbeb}.calorie-card.danger .progress-pill{color:var(--danger);background:#fff1f2}.macro-grid{grid-template-columns:repeat(2,minmax(178px,1fr));grid-auto-rows:var(--macro-card-height);gap:var(--stats-gap);align-self:start;align-items:start;max-width:580px;margin:0;display:grid}.macro-tile{--macro-accent:var(--primary-strong);--macro-accent-soft:#10b9811f;--macro-pill-bg:#10b9811f;--macro-glow:#0f172a0f;height:var(--macro-card-height);border:1px solid var(--line);background:linear-gradient(145deg, var(--macro-accent) 0%, #fffffff0 46%, #f1f5f9d6 100%), var(--surface);border-radius:16px;align-content:start;gap:7px;min-height:0;padding:12px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.macro-tile{background:linear-gradient(145deg, color-mix(in srgb, var(--macro-accent) 16%, transparent) 0%, #fffffff0 46%, #f1f5f9d6 100%), var(--surface)}}.macro-tile{box-shadow:0 14px 28px var(--macro-glow);transition:background .22s,border-color .22s,box-shadow .22s,transform .22s}.macro-tile:before{background:var(--macro-accent);content:"";opacity:.58;border-radius:999px;height:2px;position:absolute;top:0;left:14px;right:14px}.macro-tile.indigo{--macro-accent:#4f46e5;--macro-accent-soft:#4f46e514;--macro-pill-bg:#4f46e51f;--macro-glow:#4f46e514}.macro-tile.emerald{--macro-accent:#059669;--macro-accent-soft:#05966914;--macro-pill-bg:#0596691f;--macro-glow:#05966914}.macro-tile.amber{--macro-accent:#d97706;--macro-accent-soft:#d9770617;--macro-pill-bg:#d9770624;--macro-glow:#d9770614}.macro-tile.lime{--macro-accent:#65a30d;--macro-accent-soft:#65a30d17;--macro-pill-bg:#65a30d24;--macro-glow:#65a30d14}.macro-tile.warning{border-color:#f59e0b4d}.macro-tile.danger{border-color:#ef4444b3}.macro-top,.macro-meta,.macro-value{align-items:center;display:flex}.macro-top{grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.macro-label{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:750;overflow:hidden}.macro-value{align-items:baseline;gap:4px}.macro-tile strong{font-variant-numeric:tabular-nums;letter-spacing:0;font-size:1.6rem;line-height:1.1}.macro-value span{color:var(--muted);font-size:.85rem;font-weight:800}.macro-meta{justify-content:space-between;align-self:end;align-items:center;gap:8px;margin-top:-4px}.macro-tile .progress-pill{background:var(--macro-pill-bg);min-height:21px;color:var(--macro-accent);margin-left:auto;padding:2px 7px;box-shadow:inset 0 0 0 1px #ffffff8f,0 4px 10px #0f172a0d}.macro-tile.warning .progress-pill{color:#b45309;background:#fffbeb}.macro-tile.danger .progress-pill{color:var(--danger);background:#fff1f2}.stat-icon{border-radius:12px;flex:none;place-items:center;width:32px;height:32px;display:grid;box-shadow:inset 0 0 0 1px #ffffffb3}.stat-icon.emerald{color:#047857;background:linear-gradient(135deg,#ecfdf5 0%,#bbf7d0 100%)}.stat-icon.indigo{color:#4f46e5;background:linear-gradient(135deg,#eef2ff 0%,#c7d2fe 100%)}.stat-icon.amber{color:#b45309;background:linear-gradient(135deg,#fffbeb 0%,#fde68a 100%)}.stat-icon.lime{color:#3f6212;background:linear-gradient(135deg,#f7fee7 0%,#d9f99d 100%)}.meter{background:#e8eef5;border-radius:999px;height:6px;margin-top:4px;overflow:hidden}.meter span{border-radius:inherit;background:linear-gradient(90deg, var(--primary) 0%, var(--primary-deep) 100%);height:100%;transition:width .65s cubic-bezier(.22,1,.36,1),background .22s;display:block}.macro-meter{margin-top:0}.macro-meter.indigo span{background:linear-gradient(90deg,#818cf8 0%,#4f46e5 100%)}.macro-meter.emerald span{background:linear-gradient(90deg,#6ee7b7 0%,#059669 100%)}.macro-meter.amber span{background:linear-gradient(90deg,#fcd34d 0%,#d97706 100%)}.macro-meter.lime span{background:linear-gradient(90deg,#bef264 0%,#65a30d 100%)}.meter.warning span,.sidebar-progress.warning span{background:linear-gradient(90deg,#fbbf24 0%,#d97706 100%)}.meter.danger span,.sidebar-progress.danger span{background:linear-gradient(90deg, #fb7185 0%, var(--danger) 100%)}.entry-list,.result-list{gap:12px;display:grid}.entry-list{position:relative}.meal-section{--meal-accent:var(--text);gap:10px;display:grid}.meal-section-header{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:6px 2px 0;display:flex}.meal-section-header h3{color:var(--meal-accent);margin:0;font-size:.95rem;font-weight:850}.meal-section-header span{font-size:.86rem;font-weight:800}.meal-section-list{gap:10px;display:grid;position:relative}.entry-row{border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(ellipse 118% 260% at 2% -72%, #fff 0%, #fff 58%, #ffffffd1 70%, #fff0 82%), radial-gradient(ellipse 86% 170% at 104% 112%, var(--meal-accent) 0%, var(--meal-accent) 42%, #fff0 76%), #fff;grid-template-columns:48px minmax(0,1fr) auto 36px 36px;grid-template-areas:"thumb content kcal edit delete""thumb content macros macros macros";align-items:center;gap:6px 8px;width:100%;min-height:68px;padding:10px 8px 10px 12px;display:grid}@supports (color:color-mix(in lab, red, red)){.entry-row{background:radial-gradient(ellipse 118% 260% at 2% -72%, #fff 0%, #fff 58%, #ffffffd1 70%, #fff0 82%), radial-gradient(ellipse 86% 170% at 104% 112%, color-mix(in srgb, var(--meal-accent) 18%, #fff) 0%, color-mix(in srgb, var(--meal-accent) 12%, #fff) 42%, #fff0 76%), #fff}}.entry-row{text-align:left;box-shadow:var(--shadow-soft)}.meal-section,.entry-row{--meal-accent:var(--line-strong)}.meal-section.meal-breakfast,.entry-row.meal-breakfast{--meal-accent:#f97316}.meal-section.meal-lunch,.entry-row.meal-lunch{--meal-accent:#0ea5e9}.meal-section.meal-dinner,.entry-row.meal-dinner{--meal-accent:#6366f1}.meal-section.meal-snack,.entry-row.meal-snack{--meal-accent:#ec4899}.entry-row>.meal-thumb{grid-area:thumb;align-self:center}.entry-row>.meal-content{grid-area:content}.entry-row>.entry-macros{grid-area:macros;justify-self:end}.entry-row>span{grid-area:kcal;justify-self:end}.entry-row>.icon-button.neutral{grid-area:edit}.entry-row>button.icon-button:not(.neutral){grid-area:delete}.entry-row>.icon-button{border-color:currentColor;border-radius:10px;width:36px;min-height:36px;box-shadow:0 5px 12px #0f172a12}.entry-row>.icon-button.neutral,.entry-row>button.icon-button:not(.neutral){color:#475569;background:#4755691a;border-color:#47556929}.entry-row>button.icon-button:not(.neutral):hover{color:var(--danger);background:#fff1f2;border-color:#fecdd3}.result-list button{border:1px solid var(--line);border-radius:var(--radius-lg);text-align:left;width:100%;min-height:76px;box-shadow:var(--shadow-soft);background:#fff;grid-template-columns:56px minmax(0,1fr) auto auto auto;align-items:center;gap:14px;padding:14px;display:grid}.entry-move,.entry-enter-active,.entry-leave-active{transition:opacity .24s,transform .26s cubic-bezier(.22,1,.36,1)}.entry-enter-from{opacity:0;transform:translateY(12px)scale(.985)}.entry-leave-to{opacity:0;transform:translateY(-8px)scale(.985)}.entry-leave-active{width:100%;position:absolute}.result-list button{grid-template-columns:minmax(0,1fr)}.entry-row.editing{grid-template-columns:1fr;grid-template-areas:none}.entry-edit-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.entry-edit-form strong,.entry-actions{grid-column:1/-1}.entry-actions{justify-content:flex-end;gap:8px;display:flex}.entry-row strong,.entry-row small,.result-list strong,.result-list span{overflow-wrap:anywhere}.meal-thumb{border-radius:var(--radius-lg);width:48px;height:48px;color:var(--macro-thumb-color,#064e3b);background:var(--macro-thumb-bg,linear-gradient(135deg, #d1fae5 0%, #fef3c7 100%));place-items:center;font-weight:800;display:grid;box-shadow:inset 0 0 0 1px #ffffffa3}.meal-thumb.indigo{--macro-thumb-color:#4f46e5;--macro-thumb-bg:linear-gradient(135deg, #eef2ff 0%, #c7d2fe 100%)}.meal-thumb.emerald{--macro-thumb-color:#047857;--macro-thumb-bg:linear-gradient(135deg, #ecfdf5 0%, #bbf7d0 100%)}.meal-thumb.amber{--macro-thumb-color:#b45309;--macro-thumb-bg:linear-gradient(135deg, #fffbeb 0%, #fde68a 100%)}.meal-content{gap:3px;display:grid}.entry-macros{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.entry-macro{white-space:nowrap;color:var(--macro-accent);background:var(--macro-accent-soft);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.74rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff80}.entry-macro svg{flex:none}.entry-macro.indigo{--macro-accent:#4338ca;--macro-accent-soft:#4f46e51a}.entry-macro.emerald{--macro-accent:#047857;--macro-accent-soft:#0596691c}.entry-macro.amber{--macro-accent:#b45309;--macro-accent-soft:#d9770621}.entry-macro.lime{--macro-accent:#3f6212;--macro-accent-soft:#65a30d21}.meal-content>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.food-brand{color:var(--muted);font-weight:700}.meal-chip{color:#4338ca;background:#e0e7ff;border-radius:999px;align-items:center;min-height:24px;padding:3px 9px;font-size:.78rem;font-weight:800;display:inline-flex}.result-list{margin-top:14px}.embedded-results{max-height:260px;margin-top:0;padding-right:2px;overflow:auto}.embedded-results button{grid-template-columns:minmax(0,1fr)}.log-panel,.log-section,.stack-form{gap:16px;display:grid}.log-panel{background:linear-gradient(#fff 0%,#fbfdff 100%);align-self:start;position:sticky;top:24px}.log-section+.log-section{border-top:1px solid var(--line);padding-top:18px}.search-empty{border:1px dashed var(--line-strong);background:var(--surface-subtle);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.barcode-actions{justify-content:stretch}.barcode-actions button{flex:120px}.amount-unit-grid{grid-template-columns:minmax(0,1fr) minmax(108px,140px);gap:10px;display:grid}.barcode-preview{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-soft);background:#020617}.result-list button:hover{border-color:var(--primary);box-shadow:0 8px 24px #0f172a14}form{gap:14px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portion-fieldset{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-subtle);grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:14px;display:grid}.portion-fieldset legend{color:var(--text);padding:0 6px;font-weight:800}.profile-stack{gap:24px;width:100%;display:grid}.profile-hero{gap:7px;max-width:720px;display:grid}.profile-hero span{color:var(--primary-deep);letter-spacing:.11em;text-transform:uppercase;font-size:.76rem;font-weight:800}.profile-hero h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.75rem,4vw,2.5rem)}.profile-hero p{max-width:650px;color:var(--muted);margin:0;font-size:1rem;line-height:1.65}.profile-layout{grid-template-columns:minmax(0,1.65fr) minmax(330px,.85fr);align-items:start;gap:24px;display:grid}.recipe-layout{grid-template-columns:minmax(0,1fr) minmax(320px,460px);align-items:start;gap:24px;display:grid}.recipe-form{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-ingredient-picker{border-top:1px solid var(--line);gap:12px;padding-top:6px;display:grid}.recipe-ingredient-picker h3{margin:0;font-size:.95rem}.recipe-search-results{max-height:240px;margin-top:0;padding-right:2px;overflow:auto}.recipe-ingredient-list,.recipe-list{gap:10px;display:grid}.recipe-ingredient-row,.recipe-row{border:1px solid var(--line);border-radius:var(--radius-lg);min-height:70px;box-shadow:var(--shadow-soft);background:#fff;grid-template-columns:minmax(0,1fr) minmax(220px,260px) 42px;align-items:center;gap:12px;padding:12px;display:grid}.recipe-ingredient-row>div,.recipe-row .meal-content{min-width:0}.recipe-ingredient-row strong,.recipe-ingredient-row small,.recipe-row strong,.recipe-row small{overflow-wrap:anywhere}.recipe-ingredient-row small{color:var(--muted);margin-top:4px;display:block}.recipe-ingredient-row label{min-width:0}.recipe-ingredient-row input,.recipe-ingredient-row select{min-height:38px;padding:7px 9px}.ingredient-amount-grid{gap:8px}.recipe-form-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;display:flex}.recipe-list-panel{position:sticky;top:24px}.recipe-row{grid-template-columns:52px minmax(0,1fr) auto 42px 42px}.target-panel{background:radial-gradient(circle at top right, #6366f11a, transparent 42%), var(--surface);align-content:start;align-self:start;gap:18px;position:sticky;top:24px;overflow:hidden}.target-panel-header{align-items:flex-start;gap:12px;display:flex}.target-panel-header h2{margin:0;font-size:1.08rem}.target-panel-header p{color:var(--muted);margin:4px 0 0;font-size:.84rem;line-height:1.45}.target-panel-icon,.profile-group-icon{background:var(--primary-soft);width:42px;height:42px;color:var(--primary-deep);border-radius:13px;flex:none;place-items:center;display:grid}.target-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.profile-form{gap:16px}.profile-group{border:1px solid var(--line);min-width:0;margin:0;padding:20px}.profile-group legend{float:left;align-items:center;gap:12px;width:100%;margin:0 0 18px;padding:0;display:flex}.profile-group legend>span:last-child{gap:3px;display:grid}.profile-group .profile-fields{clear:both}.profile-group legend strong{color:var(--text);font-size:1rem;font-weight:800}.profile-group legend small{color:var(--muted);font-size:.8rem;font-weight:600}.profile-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.profile-save-bar{background:linear-gradient(135deg, #6366f114, transparent 58%), var(--surface);justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.profile-save-bar>div{gap:3px;display:grid}.profile-save-bar strong{font-size:.95rem}.profile-save-bar span{color:var(--muted);font-size:.82rem;line-height:1.45}.profile-save-bar button{flex:none}.target-grid input{min-height:36px;padding:7px 9px}.calculation-breakdown{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:2px;display:grid}.calculation-breakdown article{border-bottom:1px solid var(--line);gap:4px;min-height:60px;padding:10px 0;display:grid}.calculation-breakdown article.highlight strong{color:var(--primary-deep)}.calculation-breakdown span{color:var(--muted);font-size:.84rem;font-weight:700}.calculation-breakdown strong{align-self:end;font-size:1.05rem}.button-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.compact-button{min-height:36px;padding:7px 10px}.wide{grid-column:1/-1}label{color:var(--muted);letter-spacing:0;gap:7px;font-size:.78rem;font-weight:800;display:grid}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius-md);width:100%;min-height:46px;color:var(--text);box-shadow:var(--shadow-soft);background:#fff;padding:10px 12px;transition:border-color .12s,box-shadow .12s,background .12s}input:focus,select:focus,textarea:focus{outline:3px solid var(--ring);border-color:var(--primary)}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}textarea{resize:vertical;min-height:92px}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:18px 18px;padding-right:42px}select:hover,select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}select::-ms-expand{display:none}.primary,.ghost,.icon-button{border-radius:var(--radius-md);border:1px solid #0000;place-items:center;min-height:44px;padding:10px 14px;font-weight:700;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s;display:grid}.icon-text-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.icon-text-button svg{flex:none}.primary{isolation:isolate;background-color:var(--primary-deep);color:#fff;box-shadow:var(--shadow-glow);position:relative;overflow:hidden}.primary:before{content:"";z-index:-1;background:linear-gradient(135deg, var(--primary) 20%, var(--primary-strong) 50%, var(--primary-deep) 80%);transition:transform .18s;position:absolute;inset:-50%;transform:translate(-16%,-16%)}.primary:hover:before{transform:translate(16%,16%)}.ghost{background:var(--surface);border-color:var(--line);color:var(--primary-strong);box-shadow:var(--shadow-soft)}.ghost:hover{color:var(--primary-deep);background:#ecfdf5;border-color:#10b98166}.account-logout{color:#be123c;justify-content:center;align-items:center;gap:8px;display:inline-flex}.account-logout:hover{color:#9f1239;background:#fff1f2;border-color:#fecdd3}.icon-button{width:40px;min-height:40px;color:var(--muted);background:var(--surface-subtle);border-radius:var(--radius-md);border-color:#0000;padding:0}.icon-button:hover{color:var(--danger);background:#fff1f2;border-color:#fecdd3}.icon-button:active{transform:scale(.94)}.icon-button.neutral{color:var(--muted);background:var(--surface-subtle);border-color:#0000}.icon-button.neutral:hover{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.segmented{border:1px solid var(--line);background:var(--surface-muted);border-radius:8px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.segmented button{text-align:center;color:var(--muted)}.segmented button.active{color:var(--primary-strong);border-color:var(--line);box-shadow:var(--shadow-soft);background:#fff}@media (width<=1320px){.content-grid{grid-template-columns:1fr}.macro-grid{grid-template-columns:repeat(2,minmax(178px,1fr));max-width:none}.log-panel{position:static}}@media (width<=1060px){.macro-grid{grid-template-columns:repeat(2,minmax(150px,1fr));max-width:none}.daily-stats{grid-template-columns:1fr}.calorie-card{aspect-ratio:auto;text-align:left;justify-content:flex-start;align-items:center;gap:16px;width:100%;min-height:0;padding:14px 16px;display:flex}.calorie-ring{flex:0 0 104px;width:104px}.calorie-ring circle{stroke-width:11px}.calorie-ring-value{width:78px}.calorie-ring strong{font-size:1.32rem}.calorie-meta{flex:auto;justify-items:start;min-width:0}.content-grid{grid-template-columns:1fr}.log-panel{position:static}.recipe-layout,.profile-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{grid-template-columns:1fr}.target-panel{position:static}.recipe-layout{grid-template-columns:1fr}.recipe-list-panel{position:static}}@container (width<=680px){.daily-stats{grid-template-columns:1fr}.calorie-card{aspect-ratio:auto;text-align:left;justify-content:flex-start;align-items:center;gap:16px;width:100%;min-height:0;padding:14px 16px;display:flex}.calorie-ring{flex:0 0 104px;width:104px}.calorie-ring circle{stroke-width:11px}.calorie-ring-value{width:78px}.calorie-ring strong{font-size:1.32rem}.calorie-meta{flex:auto;justify-items:start;min-width:0}.macro-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:60;gap:16px;width:min(86vw,320px);height:100vh;max-height:100vh;padding:16px;transition:transform .28s cubic-bezier(.22,1,.36,1);position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.sidebar.sidebar--open{transform:translate(0)}.sidebar-backdrop{z-index:55;background:#0206178c;display:block;position:fixed;inset:0}.topbar .mobile-nav-toggle{z-index:50;justify-content:center;align-items:center;width:44px;min-height:44px;padding:0;display:inline-flex;position:fixed;top:14px;left:14px}.topbar-heading{padding-top:4px;padding-left:60px}.brand .sidebar-close{color:#f8fafc;width:40px;min-height:40px;box-shadow:none;background:#ffffff1a;border-color:#ffffff2e;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.brand .sidebar-close:hover{background:#ffffff2e;border-color:#ffffff47}.sidebar-widgets{display:none}.brand{justify-content:flex-start}.nav-list{grid-template-columns:1fr}.nav-list:before{width:100%;transform:translateY(calc(var(--nav-active-index,0) * (var(--nav-item-height) + var(--nav-gap))))}.nav-list button{text-align:left}.workspace{padding:8px}.panel{padding:14px}.account-grid,.account-name,.account-session{grid-template-columns:1fr}.account-name button,.account-provider button,.account-session button{width:100%}.date-navigator{grid-template-columns:40px minmax(0,1fr) 40px}.today-button{grid-column:1/-1}.topbar,.panel-header,.inline-form{flex-direction:column;align-items:stretch}.form-grid,.recipe-form,.recipe-layout,.portion-fieldset,.target-grid,.calculation-breakdown,.profile-fields{grid-template-columns:1fr}.profile-save-bar{flex-direction:column;align-items:stretch}.profile-save-bar button{width:100%}.daily-stats{grid-template-columns:1fr}.macro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calorie-card{aspect-ratio:auto;text-align:left;justify-content:flex-start;align-items:center;gap:14px;width:100%;padding:13px 14px;display:flex}.button-row{justify-content:stretch}.button-row button{flex:150px}.result-list button{grid-template-columns:52px minmax(0,1fr) 42px 42px}.entry-row{grid-template-columns:52px minmax(0,1fr) 42px 42px;grid-template-areas:"thumb content edit delete""thumb kcal kcal kcal""thumb macros macros macros";row-gap:8px}.entry-row>span{justify-self:start}.modal-result-list button{grid-template-columns:minmax(0,1fr)}.entry-edit-form,.amount-unit-grid{grid-template-columns:1fr}.recipe-ingredient-row,.recipe-row{grid-template-columns:minmax(0,1fr) 42px}.recipe-ingredient-row label,.recipe-row .ghost{grid-column:1/-1}.recipe-row .meal-thumb{display:none}.recipe-form-footer{flex-direction:column;align-items:stretch}.entry-actions{justify-content:stretch}.entry-actions button{flex:120px}}@media (width<=420px){.calorie-ring{flex-basis:92px;width:92px}.calorie-ring-value{width:68px}.calorie-ring strong{font-size:1.12rem}.macro-grid{grid-template-columns:1fr}}
