@font-face{font-family:Nunito Sans Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-cyrillic-ext-wght-normal-7w74d1lj.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-cyrillic-wght-normal-B9hoeQUC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Sans Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-vietnamese-wght-normal-BhFYcaJr.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-latin-ext-wght-normal-DMEAsnHD.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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 Sans Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-latin-wght-normal-BWQ3gi2K.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans Variable;font-style:italic;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-cyrillic-ext-wght-italic-BpOYgEhF.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans Variable;font-style:italic;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-cyrillic-wght-italic-BTGUQAkP.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Sans Variable;font-style:italic;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-vietnamese-wght-italic-BzAMfQ4d.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans Variable;font-style:italic;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-latin-ext-wght-italic-Cf7cROU4.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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 Sans Variable;font-style:italic;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-sans-latin-wght-italic-B3URO7Ca.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #0b0b0b;--bg-elev: #141414;--surface: #171717;--surface-2: #212121;--surface-3: #2b2b2b;--line: #262626;--line-strong: #4a4a4a;--text: #f4f4f4;--text-2: #c9c9c9;--muted: #9b9b9b;--accent: #ffe14d;--accent-ink: #0b0b0b;--fat: #ffe14d;--protein: #f4f4f4;--carbs: #ff7a59;--radius: 20px;--radius-sm: 14px;--page: 560px;--gutter: 16px;--tabbar: 60px;--font: "Avenir Next", "Avenir", "Nunito Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--ease: cubic-bezier(.2, .8, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}html:has(dialog[open]){overflow:hidden}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.display{font-size:clamp(2.5rem,12vw,3.25rem);font-weight:800;font-style:italic;line-height:.95;letter-spacing:-.01em;text-transform:uppercase}.display-sm{font-size:1.9rem}.display-md{font-size:clamp(2rem,9vw,2.5rem)}.eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(8px,calc((100% - var(--page)) / 2 + 8px)) 0 max(var(--gutter),calc((100% - var(--page)) / 2 + var(--gutter)));background:#0b0b0bdb;-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s}.topbar[data-compact=true]{border-bottom-color:var(--line)}.brand{font-size:.9375rem;font-style:italic;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.topbar-mini{flex:1;text-align:center;font-size:.8125rem;font-weight:700;color:var(--text-2);opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s var(--ease)}.topbar[data-compact=true] .topbar-mini{opacity:1;transform:none}.page{max-width:var(--page);margin:0 auto;padding:8px var(--gutter) calc(var(--tabbar) + 96px + env(safe-area-inset-bottom))}.day-head{padding:8px 0 4px}.date-nav{display:flex;align-items:center;gap:2px;margin:10px 0 0 -10px}.date-text{font-size:.9375rem;font-weight:600;color:var(--text-2);padding:0 4px}.date-rel{color:var(--accent)}.icon-btn{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--text)}.icon-btn:active{background:var(--surface-2)}.pill{margin-left:auto;min-height:40px;padding:0 16px;border:0;border-radius:999px;background:var(--surface-2);color:var(--accent);font-size:.8125rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.btn-primary{min-height:48px;padding:0 24px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font-size:.9375rem;font-weight:800;font-style:italic;letter-spacing:.04em;text-transform:uppercase}.btn-primary:active{filter:brightness(.92)}.btn-primary:disabled{opacity:.4;filter:none}.btn-block{width:100%}.ghost-btn{width:100%;min-height:48px;margin-top:12px;border:1.5px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font-weight:800}.text-btn{min-height:44px;padding:0 4px;border:0;background:none;color:var(--text-2);font-size:.9375rem;font-weight:700}.text-btn.danger{color:var(--carbs)}.card{margin-top:12px;padding:20px;border-radius:var(--radius);background:var(--surface)}.summary{margin-top:16px}.kcal-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-top:6px}.kcal-big .num{font-size:3rem;font-weight:800;font-style:italic;line-height:1;letter-spacing:-.02em}.kcal-unit{margin-left:6px;font-size:1rem;font-weight:700;color:var(--muted)}.kcal-status{font-size:.875rem;font-weight:600;color:var(--text-2)}.kcal-status[data-state=target]{color:var(--accent)}.kcal-status[data-state=over]{color:var(--carbs)}.kcal-bar{position:relative;height:10px;margin-top:16px;border-radius:999px;background:var(--surface-3)}.kcal-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--accent);transition:width .35s var(--ease)}.kcal-fill[data-state=over]{background:var(--carbs)}.kcal-tick{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--text)}.kcal-legend{display:flex;justify-content:space-between;margin-top:8px;font-size:.75rem;color:var(--muted)}.kcal-legend span:first-child:before{content:"";display:inline-block;width:2px;height:.75em;margin-right:6px;vertical-align:-.05em;background:var(--text)}.macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 0;padding:0;list-style:none}.macro-tile{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:var(--radius-sm);background:var(--surface-2)}.macro-val{font-size:1.5rem;font-weight:800;font-style:italic;line-height:1.1}.macro-val small{font-size:.875rem;font-style:normal;font-weight:700;color:var(--muted)}.macro-tile[data-over=true] .macro-val{color:var(--carbs)}.macro-target,.macro-share{font-size:.75rem;color:var(--muted)}.macro-bar{height:4px;margin:4px 0 2px;border-radius:999px;background:var(--surface-3);overflow:hidden}.macro-bar span{display:block;height:100%;border-radius:inherit;transition:width .35s var(--ease)}.macro-tile[data-tone=fat] .macro-bar span{background:var(--fat)}.macro-tile[data-tone=protein] .macro-bar span{background:var(--protein)}.macro-tile[data-tone=carbs] .macro-bar span{background:var(--carbs)}.keto-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:16px;font-size:.8125rem;color:var(--muted)}.keto-status strong{padding:4px 10px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.75rem;font-weight:800;font-style:italic;letter-spacing:.06em;text-transform:uppercase}.keto-status[data-ok=false] strong{background:var(--carbs)}.macro-line{display:inline-flex;flex-wrap:wrap;gap:2px 10px}.ml-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.ml-item i{width:6px;height:6px;border-radius:50%}.ml-item[data-tone=fat] i{background:var(--fat)}.ml-item[data-tone=protein] i{background:var(--protein)}.ml-item[data-tone=carbs] i{background:var(--carbs)}.meal-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.meal-title{font-size:1.25rem;font-weight:800;font-style:italic;letter-spacing:.01em;text-transform:uppercase}.meal-kcal{font-size:.9375rem;font-weight:800}.meal-macros{margin-top:4px;font-size:.8125rem;color:var(--text-2)}.meal-items{margin:14px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.meal-item{border-bottom:1px solid var(--line)}.item-row{display:grid;grid-template-columns:minmax(0,1fr) auto 3.25rem;align-items:center;gap:12px;width:100%;min-height:50px;padding:10px 0;border:0;background:none;text-align:left;font-size:.9375rem}.item-name{font-weight:600}.item-grams{color:var(--muted);font-size:.875rem}.item-kcal{text-align:right;font-weight:800}.item-edit{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:2px 0 14px}.item-edit .danger{margin-left:auto}.add-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:14px;border:0;border-radius:var(--radius-sm);background:var(--surface-2);font-size:.875rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.add-btn svg{width:18px;height:18px;color:var(--accent)}.add-btn[data-empty=true]{margin-top:16px;background:transparent;border:1.5px dashed var(--line-strong);color:var(--text-2)}.stepper{display:inline-flex;align-items:center;gap:6px}.stepper-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:var(--surface-3)}.stepper-btn svg{width:18px;height:18px}.stepper-btn:disabled{opacity:.35}.stepper-field{display:inline-flex;align-items:baseline;gap:3px;color:var(--muted);font-weight:700}.stepper-field input{width:4.2ch;padding:6px 0;border:0;border-bottom:2px solid var(--line-strong);border-radius:0;background:transparent;color:var(--text);font-size:1.0625rem;font-weight:800;font-variant-numeric:tabular-nums;text-align:right;outline:none}.stepper-field input:focus{border-bottom-color:var(--accent)}.pieces{font-size:.8125rem;color:var(--muted)}.sheet{position:fixed;inset:auto 0 0;width:100%;max-width:var(--page);max-height:calc(100vh - 12px);max-height:calc(100dvh - env(safe-area-inset-top) - 12px);margin:0 auto;padding:0;border:0;border-radius:24px 24px 0 0;background:var(--bg-elev);color:var(--text);overflow:hidden}.sheet::backdrop{background:#000000a6}.sheet[open]{animation:sheet-in .32s var(--ease)}@keyframes sheet-in{0%{transform:translateY(40px);opacity:0}}.sheet-body{display:flex;flex-direction:column;height:100%;max-height:inherit}.picker{height:calc(100vh - 12px);height:calc(100dvh - env(safe-area-inset-top) - 12px)}.picker-head{flex:none;padding:18px var(--gutter) 0}.picker-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.picker-titlebar .icon-btn{margin:-6px -10px 0 0}.picker-titlebar .display{margin-top:4px}.search{display:flex;align-items:center;gap:8px;height:48px;margin-top:14px;padding:0 6px 0 14px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted)}.search:focus-within{outline:2px solid var(--accent)}.search>svg{flex:none;width:20px;height:20px}.search input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--text);font-size:1rem;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.search input::placeholder{color:var(--muted)}.search input::-webkit-search-cancel-button{-webkit-appearance:none}.search-clear{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:10px;background:none;color:var(--text-2)}.search-clear svg{width:18px;height:18px}.search-ai{display:grid;flex:none;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:10px;background:none;color:var(--accent)}.search-ai svg{width:20px;height:20px}.search-ai[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.search[data-ai=true]>svg{color:var(--accent)}.chips{display:flex;gap:8px;margin:0 calc(var(--gutter) * -1);padding:12px var(--gutter);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}.chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:38px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--text-2);font-size:.875rem;font-weight:700;white-space:nowrap}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.picker-list{flex:1;min-height:0;padding:0 var(--gutter) 16px;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line)}.list-note{padding:14px 0 4px;font-size:.875rem;color:var(--muted)}.list-heading{margin:18px 0 2px}.food-list,.preset-list{margin:0;padding:0;list-style:none}.food-row{border-bottom:1px solid var(--line)}.food-toggle{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 0;border:0;background:none;text-align:left}.food-check{display:grid;place-items:center;width:32px;height:32px;border:1.5px solid var(--line-strong);border-radius:50%;color:var(--text-2);transition:background .15s,border-color .15s}.food-check svg{width:18px;height:18px}.food-row[data-selected=true] .food-check{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.food-text{display:flex;flex-direction:column;gap:3px;min-width:0}.food-name{font-weight:700}.food-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:.8125rem;color:var(--muted)}.food-cat{font-size:.75rem;color:var(--muted)}.food-kcal{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.food-kcal .num{font-weight:800}.food-kcal small{font-size:.6875rem;color:var(--muted)}.food-edit{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:0 0 14px 44px}.food-row[data-deletable=true]{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;column-gap:4px}.food-row[data-deletable=true] .food-edit{grid-column:1 / -1}.food-del{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:none;color:var(--muted)}.food-del svg{width:18px;height:18px}.food-del:active{background:var(--surface-2);color:var(--carbs)}.preset{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.preset-text{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.preset-name{font-weight:700}.preset-items{font-size:.8125rem;color:var(--muted)}.preset-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;margin-top:2px;font-size:.8125rem;color:var(--muted)}.preset-meta>.num{color:var(--text);font-weight:800}.preset-add{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--surface-2);color:var(--accent);transition:background .15s}.preset-add[data-added=true]{background:var(--accent);color:var(--accent-ink)}.ai{padding-top:16px}.ai-form{display:flex;flex-direction:column;gap:8px}.ai-intro{margin-bottom:6px;font-size:.9375rem;color:var(--text-2)}.ai-input{display:flex;gap:8px}.ai-input input{flex:1;min-width:0;height:48px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:1rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ai-input input:focus-visible{outline-offset:0}.ai-input input::placeholder{color:var(--muted)}.ai-input .btn-primary{flex:none;padding:0 18px}.ai-hint{font-size:.8125rem;color:var(--muted)}.ai-hint a{color:var(--accent)}.ai-status,.ai-error{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:16px;padding:12px 16px;border-radius:var(--radius-sm);font-size:.9375rem}.ai-status{background:var(--surface);color:var(--text-2)}.ai-status .text-btn{margin-left:auto}.ai-spinner{flex:none;width:18px;height:18px;border:2px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-error{border:1px solid rgb(255 122 89 / .45);background:#ff7a591a}.ai-error p{flex:1 1 100%}.ai-error .text-btn{padding:0;color:var(--carbs)}.ai-result{display:flex;flex-direction:column;gap:4px;margin-top:16px;padding:18px;border-radius:var(--radius);background:var(--surface)}.ai-name{margin-top:2px;font-size:1.375rem;font-weight:800;font-style:italic;line-height:1.1;text-transform:uppercase}.ai-figures{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:8px}.ai-kcal{font-weight:700;color:var(--muted)}.ai-kcal .num{font-size:2.25rem;font-weight:800;font-style:italic;line-height:1;color:var(--text)}.ai-grams{font-weight:800;color:var(--text-2)}.ai-macros{font-size:.875rem;color:var(--text-2)}.ai-fiber{font-size:.8125rem;color:var(--muted)}.ai-note{margin-top:8px;font-size:.875rem;color:var(--text-2)}.ai-sources{margin-top:10px}.ai-sources ul{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none}.ai-sources li{max-width:100%}.ai-sources a{display:block;max-width:100%;padding:9px 12px;border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:.8125rem;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-suggestions{margin-top:10px}.ai-add{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px}.ai-add svg{width:18px;height:18px}.ai-add:disabled{opacity:1;background:var(--surface-2);color:var(--accent)}.ai-saved{margin-top:8px}.ai-handoff{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;margin-top:4px;padding:12px 0;border:0;background:none;color:var(--accent);font-weight:700;text-align:left}.ai-handoff svg{flex:none;width:22px;height:22px}.picker-foot{display:flex;flex:none;align-items:center;gap:14px;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg-elev)}.pf-totals{flex:1;min-width:0}.pf-meal{display:flex;align-items:baseline;gap:8px}.pf-kcal{font-size:1.25rem;font-weight:800;font-style:italic}.pf-macros{font-size:.8125rem;color:var(--text-2)}.pf-day{margin-top:2px;font-size:.75rem;color:var(--muted)}.settings-form{padding:18px var(--gutter) calc(20px + env(safe-area-inset-bottom));overflow-y:auto}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}.field{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-2)}.field:focus-within{outline:2px solid var(--accent)}.field-input{display:flex;align-items:baseline;gap:6px;color:var(--muted);font-weight:700}.field-input input{width:100%;min-width:0;padding:0;border:0;background:transparent;color:var(--text);font-size:1.5rem;font-weight:800;font-style:italic;font-variant-numeric:tabular-nums;outline:none}.field-input input.field-text{padding:4px 0;font-size:1rem;font-style:normal;font-weight:600;letter-spacing:.02em}.key-row{display:flex;align-items:center;gap:12px}.key-row .settings-note{flex:1}.settings-note{margin:14px 0;font-size:.875rem;color:var(--text-2)}.settings-note.muted{font-size:.8125rem;color:var(--muted)}.danger-zone{margin-top:16px;padding-top:6px;border-top:1px solid var(--line);font-size:.9375rem}.danger-zone p{padding-top:10px}.row-gap{display:flex;align-items:center;gap:20px}.tabbar{position:fixed;inset:auto 0 0;z-index:20;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding:0 max(0px,calc((100% - var(--page)) / 2)) env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#0b0b0beb;-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--muted);font-size:.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.tab svg{width:24px;height:24px}.tab[aria-current=page]{color:var(--accent)}.topbar-spacer{flex:none;width:44px}.live-dot{display:inline-block;width:8px;height:8px;margin-right:2px;border-radius:50%;background:var(--carbs);vertical-align:.05em}.chip-wrap{display:flex;flex-wrap:wrap;gap:8px}.text-input{width:100%;height:48px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:1rem}.text-input::placeholder{color:var(--muted)}.confirm-btn[data-armed=true]{width:auto;padding:0 12px;color:var(--carbs);font-size:.875rem;font-weight:800}.back-btn{display:inline-flex;align-items:center;gap:2px;min-height:44px;margin:0 0 6px -12px;padding:0 12px 0 4px;border:0;background:none;color:var(--accent);font-weight:800}.week-range{margin-top:10px;padding:0}.week-head{display:flex;align-items:baseline;justify-content:space-between}.week-count{font-size:1rem;font-weight:700;color:var(--muted)}.week-count .num{font-size:2rem;font-weight:800;font-style:italic;color:var(--text)}.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:14px 0 0;padding:0;list-style:none}.week-days li{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.75rem;font-weight:700;color:var(--muted)}.week-days i{width:28px;height:28px;border:1.5px solid var(--line-strong);border-radius:50%}.week-days li[data-today=true]{color:var(--text)}.week-days li[data-today=true] i{border-color:var(--text)}.week-days li[data-kind=strength] i{border-color:var(--accent);background:var(--accent)}.week-days li[data-kind=stretch] i{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 0 4px,transparent 5px)}.week-note{margin-top:14px;font-size:.875rem;color:var(--text-2)}.next-choices{margin-top:12px}.next-name{margin-top:16px;font-size:1.5rem;font-weight:800;font-style:italic;line-height:1.1;text-transform:uppercase}.next-meta{margin-top:6px;font-size:.875rem;font-weight:600;color:var(--text-2)}.next-rule{margin:-4px 0 16px;font-size:.8125rem;line-height:1.45;color:var(--muted)}.next-hint{margin-top:4px;font-size:.8125rem;color:var(--muted)}.plan-list{margin:12px 0 16px;padding:0;list-style:none;border-top:1px solid var(--line)}.plan-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.9375rem}.plan-list li[data-pair]{position:relative;padding-left:12px}.plan-list li[data-pair]:before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--accent)}.plan-list li[data-pair=first]{border-bottom-color:transparent}.plan-list li[data-pair=first]:before{top:10px}.plan-list li[data-pair=second]:before{bottom:10px}.plan-name{font-weight:600}.plan-sets{flex:none;font-size:.8125rem;color:var(--muted)}.history{margin-top:8px}.history-list{margin:0;padding:0;list-style:none}.history-row{display:grid;grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left}.history-row>svg{width:20px;height:20px;color:var(--muted)}.hr-date{display:flex;flex-direction:column;align-items:center;padding:6px 0;border-radius:12px;background:var(--surface);font-size:.6875rem;font-weight:700;color:var(--muted);text-transform:uppercase}.hr-date strong{font-size:.875rem;color:var(--text)}.hr-main{display:flex;flex-direction:column;gap:2px;min-width:0}.hr-name{font-weight:800;font-style:italic;text-transform:uppercase}.hr-meta{font-size:.8125rem;color:var(--muted)}.workout-head .display{margin-top:4px}.workout-meta{margin-top:8px;font-size:.875rem;font-weight:600;color:var(--text-2)}.empty-workout{margin-top:12px}.ex-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:-6px -10px 0 0}.ex-title{min-width:0}.ex-title button{display:inline-block;min-height:44px;padding:11px 0 6px;border:0;background:none;font-size:1.125rem;font-weight:800;font-style:italic;line-height:1.15;text-align:left;text-transform:uppercase}.nowrap{white-space:nowrap}.ex-title svg{width:18px;height:18px;margin-left:2px;vertical-align:-3px;color:var(--muted)}.ex-remove svg{width:18px;height:18px;color:var(--muted)}.ex-sub{font-size:.8125rem;color:var(--muted)}.ex-target{margin-top:2px;font-size:.8125rem;color:var(--text-2)}.ex-target strong{color:var(--text)}.ex-cue{margin-top:2px;font-size:.8125rem;color:var(--muted)}.ex-warn{display:block;color:var(--carbs)}.ex-tech{margin-top:2px;font-size:.8125rem;color:var(--text-2)}.ex-tech strong{color:var(--accent)}.ex-card[data-pair=first]{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.ex-card[data-pair=second]{margin-top:3px;border-top-left-radius:6px;border-top-right-radius:6px}.set-drop{display:block;font-size:.5625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.ex-up{margin-top:6px;font-size:.8125rem;font-weight:600;color:var(--accent)}.ex-last{margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:.8125rem;color:var(--text-2)}.ex-last span{color:var(--muted)}.sets{width:100%;margin-top:10px;border-collapse:collapse}.sets th{padding:4px 0;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-align:center;text-transform:uppercase;color:var(--muted)}.sets th:first-child{width:3rem;text-align:left}.sets th:last-child{width:52px}.sets td{padding:4px 0;text-align:center}.set-no{text-align:left!important;font-weight:800;color:var(--muted)}.num-cell{width:100%;max-width:6.5rem;height:44px;padding:0 6px;border:0;border-radius:12px;background:var(--surface-2);color:var(--text);font-size:1.125rem;font-weight:800;font-variant-numeric:tabular-nums;text-align:center}.num-cell::placeholder{color:var(--muted);font-weight:600}.num-cell:focus-visible{outline-offset:0}.sets tr[data-done=true] .num-cell{background:#ffe14d1f}.set-check-cell{text-align:right!important}.set-check{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1.5px solid var(--line-strong);border-radius:12px;background:none;color:var(--line-strong);transition:background .15s,border-color .15s}.set-check svg{width:20px;height:20px}.set-check[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.ex-actions{display:flex;gap:16px;margin-top:4px}.ex-actions .text-btn:disabled{opacity:.35}.finish-btn,.finish-empty{margin-top:16px}.workout-danger{margin-top:20px}.create-ex{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding:16px;border-radius:var(--radius);background:var(--surface)}.chip-field{margin:4px 0 0;padding:0;border:0}.chip-field legend{margin-bottom:8px;padding:0}.history-best{display:flex;align-items:baseline;justify-content:space-between;margin-top:18px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--surface-2)}.history-best strong{font-size:1.25rem;font-style:italic}.history-sets{margin:12px 0 0;padding:0;list-style:none}.history-sets li{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-bottom:1px solid var(--line)}.hs-date{font-size:.75rem;font-weight:700;color:var(--muted)}.hs-sets{font-weight:700}.hs-vol{font-size:.8125rem;color:var(--muted)}.stats-hero{margin-top:8px;font-size:2.75rem;font-weight:800;font-style:italic;line-height:1}.stats-hero span{font-size:1.125rem;color:var(--muted)}.stats-meta{margin-top:6px;font-size:.875rem;font-weight:600;color:var(--text-2)}.stats-note{margin-top:4px;font-size:.8125rem;color:var(--muted)}.weight-form{margin-top:4px}.weight-form .field-grid{margin-top:14px}.weight-form .btn-primary{margin-top:8px}.form-error{margin-top:8px;font-size:.8125rem;font-weight:600;color:var(--carbs)}.stats-select{margin-top:14px}.stats-select select{width:100%;min-height:32px;padding:0;border:0;background:transparent;color:var(--text);font-size:1rem;font-weight:700;outline:none}.stats-list{margin:12px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.stats-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:12px;min-height:48px;border-bottom:1px solid var(--line);font-size:.9375rem}.stats-list li:has(.sl-remove){grid-template-columns:minmax(0,1fr) auto 3.5rem auto}.stats-more{margin-top:4px}.sl-date{font-size:.8125rem;font-weight:600;color:var(--muted)}.sl-value{font-weight:700;text-align:right}.sl-diff{font-size:.8125rem;color:var(--muted);text-align:right}.sl-remove{margin-right:-10px}.sl-remove svg{width:18px;height:18px;color:var(--muted)}.stats-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.chip-sm{min-height:32px;padding:0 12px;font-size:.8125rem}.stat-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 0}.stats-nutrition .stat-tiles{grid-template-columns:1.3fr 1fr 1fr}.stat-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;margin:0;padding:12px;border:1.5px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);text-align:left}button.stat-tile[aria-pressed=true]{border-color:var(--accent)}.stat-tile .eyebrow{font-size:.625rem}.stat-value{margin:0;font-size:1.25rem;font-weight:800;font-style:italic;line-height:1.1;white-space:nowrap}.stat-value small{font-size:.75rem;font-style:normal;color:var(--muted)}.stat-sub{margin:0;font-size:.6875rem;line-height:1.3;color:var(--muted)}.stat-tiles+.stats-note{margin-top:8px}@media(max-width:440px){.stat-tile{padding:10px}.stat-tile .eyebrow{letter-spacing:.08em}.stat-value{font-size:1.125rem}.stat-value small{font-size:.6875rem}}.chart{position:relative;margin:16px -4px 0;border-radius:12px}.chart svg{display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1}.chart-tick{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}.chart-cross{stroke:var(--line-strong);stroke-width:1}.chart-end{fill:var(--text);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.chart-hit{fill:transparent;touch-action:pan-y}.chart-bar{fill:var(--accent);transition:opacity .15s}.chart-bar[data-dim=true]{opacity:.4}.chart-band{fill:var(--surface-3)}.chart-ref{stroke:var(--text-2);stroke-width:1;stroke-dasharray:4 3}.chart-key{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 14px;margin:14px 0 -8px;font-size:.75rem;font-weight:600;color:var(--text-2)}.chart-key span{display:inline-flex;align-items:center;gap:6px}.key-band{width:14px;height:8px;border-radius:2px;background:var(--surface-3)}.key-line{width:14px;border-top:1px dashed var(--text-2)}.chart-tip{position:absolute;top:0;transform:translate(-50%);padding:3px 8px;border-radius:8px;background:var(--surface-3);font-size:.75rem;color:var(--text-2);white-space:nowrap;pointer-events:none}.chart-tip strong{color:var(--text)}.cloud-panel{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.cloud-panel .settings-note{margin:8px 0 12px}.cloud-state{display:flex;flex-wrap:wrap;align-items:center;column-gap:16px}.cloud-state .settings-note{margin:0}.cloud-line{display:flex;align-items:center;gap:8px;min-height:32px;font-size:.875rem;font-weight:700}.cloud-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--muted)}.cloud-dot[data-status=synced]{background:var(--accent)}.cloud-dot[data-status=error],.cloud-dot[data-status=offline]{background:var(--carbs)}.demo-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:calc(4px + env(safe-area-inset-top)) var(--gutter) 4px;background:var(--accent);color:var(--accent-ink);font-size:.8125rem}.demo-banner .text-btn{min-height:32px;color:var(--accent-ink);font-size:.8125rem;text-decoration:underline}.login{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) var(--gutter) calc(24px + env(safe-area-inset-bottom));background:var(--bg)}.login-form{display:grid;gap:10px;width:100%;max-width:360px}.login-brand{margin-bottom:14px;font-size:2.75rem;font-weight:800;font-style:italic;line-height:1;letter-spacing:-.01em;text-align:center;text-transform:uppercase}.login-form .text-input:focus-visible{outline:2px solid var(--accent);outline-offset:0}.login-form .form-error{margin:0}.login-form .btn-primary{margin-top:6px}.desk{max-width:1240px;margin:0 auto;padding:28px 32px 48px}.desk-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.desk-head .display{margin-top:4px}.desk-menu{position:relative;align-self:flex-start}.desk-menu-btn{position:relative;border:1px solid var(--line-strong)}.desk-menu-btn[aria-expanded=true]{border-color:var(--accent)}.desk-menu-dot{position:absolute;top:6px;right:6px}.desk-menu-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:30;min-width:260px;padding:6px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);box-shadow:0 12px 32px #00000080}.desk-menu-info{margin-bottom:4px;padding:8px 10px 10px;border-bottom:1px solid var(--line-strong)}.desk-menu-info .cloud-line{min-height:24px}.desk-menu-email{font-size:.8125rem;color:var(--muted);overflow-wrap:anywhere}.desk-menu-item{display:block;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:10px;background:none;color:var(--text);font-size:.9375rem;font-weight:600;text-align:left}.desk-menu-item:hover,.desk-menu-item:focus-visible{background:var(--surface-3);outline:none}.desk-note{margin-top:12px}.desk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0 16px;margin-top:8px}.desk-wide{grid-column:1 / -1}.rest{position:fixed;left:50%;bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 10px);z-index:15;display:flex;align-items:center;gap:10px;width:min(calc(100% - 2 * var(--gutter)),calc(var(--page) - 2 * var(--gutter)));padding:8px 8px 8px 16px;border-radius:var(--radius-sm);background:var(--surface-3);box-shadow:0 10px 30px #00000080;transform:translate(-50%);overflow:hidden}.rest[data-over=true]{background:var(--accent);color:var(--accent-ink)}.rest[data-over=true] .eyebrow{color:var(--accent-ink)}.rest-bar{position:absolute;inset:auto 0 0;height:3px;background:var(--line)}.rest-bar span{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform .25s linear}.rest-time{font-size:1.5rem;font-weight:800;font-style:italic}.rest-btn{display:grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border:0;border-radius:12px;background:#ffffff14;color:inherit;font-size:.875rem;font-weight:800}.rest-btn:first-of-type{margin-left:auto}.rest-close svg{width:18px;height:18px}.finish-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0 0;padding:0;list-style:none}.finish-stats li{display:flex;flex-direction:column;gap:2px;padding:14px 12px;border-radius:var(--radius-sm);background:var(--surface-2)}.finish-stats .num{font-size:1.75rem;font-weight:800;font-style:italic;line-height:1.1}.finish-records{margin-top:16px}.finish-records ul{margin:6px 0 0;padding:0;list-style:none}.finish-records li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.finish-records strong{color:var(--accent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
