@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-B2xhLi22.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-CMZtQduZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-CGAr0uHJ.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CaVNZxsx.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-CFHvXkgd.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-C2S99t-D.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f5f6f8;--surface: #ffffff;--surface-2: #f0f2f5;--text: #0f172a;--muted: #5b6678;--border: #e4e7ec;--track: #e9ecf1;--accent: #047857;--accent-ink: #ffffff;--accent-soft: #e3f6ee;--protein: #6d5dfc;--carbs: #f0a500;--fat: #f0605d;--fibre: #22a35a;--water: #2f80ed;--good: #16a34a;--warn: #d97706;--bad: #dc2626;--glow: #ff3b30;--glow-2: #ff9f0a;--glow-ink: #c81e1e;--stage-hi: #ffffff;--stage-lo: #e8ebf0;--radius: 18px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .05);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0b0f14;--surface: #131922;--surface-2: #1a212c;--text: #e8edf3;--muted: #8b97a8;--border: #232c38;--track: #242d39;--accent: #34d399;--accent-ink: #052016;--accent-soft: #11291f;--glow-ink: #ff8a80;--stage-hi: #1c2430;--stage-lo: #0e131a;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #0b0f14;--surface: #131922;--surface-2: #1a212c;--text: #e8edf3;--muted: #8b97a8;--border: #232c38;--track: #242d39;--accent: #34d399;--accent-ink: #052016;--accent-soft: #11291f;--glow-ink: #ff8a80;--stage-hi: #1c2430;--stage-lo: #0e131a;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;font-feature-settings:"cv11","ss01";letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:1.1rem;font-weight:700;letter-spacing:-.015em}h3{font-size:1rem}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.pad{padding:16px 0}.grow{flex:1;min-width:0}.row{display:flex;gap:8px;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:14px}.tone-good{color:var(--good)}.tone-warn{color:var(--warn)}.tone-bad{color:var(--bad)}.app{max-width:560px;margin:0 auto;min-height:100dvh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:8px;font-weight:700}.brand span{display:none}@media (min-width: 420px){.brand span{display:inline}}.date-nav{display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px}.date-label{background:none;border:0;font-weight:600;min-width:110px;padding:6px 4px}.content{padding:4px 16px calc(96px + env(safe-area-inset-bottom))}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:center;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;max-width:104px;background:none;border:0;padding:9px 0 8px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted)}.tabbar button svg{transition:transform .15s}.tabbar button.on{color:var(--accent)}.tabbar button.on svg{transform:translateY(-1px)}.tabbar button small{font-size:.68rem;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.card-head h2,.card-head h3{font-size:1rem;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.card-head h2 svg,.card-head h3 svg{color:var(--accent);flex:none}.card-head h3 .meal-icon{margin-right:2px}.section-title{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 2px -4px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:10px 14px;font-weight:600;white-space:nowrap;transition:transform .08s,background .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active:not(:disabled){transform:scale(.97)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 1px 2px #04785740}.btn.dark{background:var(--text);border-color:var(--text);color:var(--bg)}.btn.ghost{background:transparent}.btn.danger{background:transparent;color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent);margin-top:12px}.btn.sm{padding:6px 11px;font-size:.85rem;border-radius:10px}.btn.block{width:100%;display:flex}.btn.icon{padding:8px 11px}.icon-btn{background:none;border:0;padding:6px 8px;border-radius:10px;color:var(--muted);font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover:not(:disabled){background:var(--surface-2)}.icon-btn.star{font-size:1.2rem}.icon-btn.star.on{color:var(--carbs)}input,select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:10px 12px}input:focus,select:focus{outline:none;border-color:var(--accent);background:var(--surface)}.segmented{display:flex;background:var(--surface-2);border-radius:12px;padding:3px;gap:2px;overflow-x:auto;scrollbar-width:none}.segmented button{flex:1;border:0;background:none;padding:8px 10px;border-radius:9px;font-weight:600;color:var(--muted);white-space:nowrap}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}.segmented.small button{padding:6px 8px;font-size:.85rem}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 11px;font-size:.82rem;white-space:nowrap}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.badge{font-size:.7rem;background:var(--accent-soft);color:var(--accent);padding:1px 6px;border-radius:6px;font-weight:700}.pill{font-size:.78rem;font-weight:700;padding:3px 9px;border-radius:999px}.pill.good{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.pill.warn{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.diet{width:12px;height:12px;border:1.5px solid;border-radius:2px;position:relative;flex:none}.diet:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:currentColor}.diet-v{color:#1e9e48}.diet-e{color:#d08b00}.diet-n{color:#b3261e}.ring{position:relative;flex:none}.ring-inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.big{font-size:2rem;font-weight:800;letter-spacing:-.02em}.hero-grid{display:flex;align-items:center;gap:18px}.hero-side{flex:1;display:flex;flex-direction:column;gap:10px}.kv{display:flex;flex-direction:column}.kv span{font-size:.78rem;color:var(--muted)}.kv b{font-size:1.05rem}.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 6px}.macros{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:16px}.macro-head{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:4px}.bar{height:8px;background:var(--track);border-radius:99px;overflow:hidden}.bar.big{height:12px;margin-bottom:10px}.bar>div{height:100%;border-radius:99px;transition:width .5s ease}.insight{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:12px 14px;color:var(--text)}.insight>span:last-child{display:flex;flex-direction:column;gap:2px}.insight.tone-good{border-left:4px solid var(--good)}.insight.tone-warn{border-left:4px solid var(--warn)}.insight.tone-info{border-left:4px solid var(--water)}.insight-icon{font-size:1.4rem;line-height:1.2}.insights{display:flex;flex-direction:column;gap:8px}.insights .insight{background:var(--surface-2)}.entries,.basket,.food-list,.plain{list-style:none;margin:0;padding:0}.entries li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border)}.entries li:first-child{border-top:0}.entry-right{display:flex;align-items:center;gap:2px;font-weight:600}.glasses{display:flex;flex-wrap:wrap;gap:8px}.glass{width:30px;height:40px;border:2px solid var(--water);border-top-width:1px;border-radius:3px 3px 8px 8px;background:transparent;padding:0;position:relative;overflow:hidden}.glass.full{background:linear-gradient(to top,var(--water) 80%,transparent 80%)}.smart{border-color:var(--accent);background:linear-gradient(180deg,var(--accent-soft),var(--surface) 70%)}.smart-label{font-weight:700;display:block;margin-bottom:8px}.smart-row{display:flex;gap:6px}.smart-row input{flex:1;min-width:0;background:var(--surface)}.unknown{margin-top:10px;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--warn) 10%,transparent);display:flex;flex-direction:column;gap:8px}.unknown .row{flex-wrap:wrap}.basket{margin-top:12px;display:flex;flex-direction:column;gap:6px}.basket li{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 6px 8px 10px}.basket li b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:10px;overflow:hidden;flex:none}.stepper button{border:0;background:var(--surface-2);width:30px;height:32px;font-size:1.1rem}.stepper input{width:46px;border:0;border-radius:0;text-align:center;padding:6px 2px;background:var(--surface);-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.search{margin-bottom:10px}.food-list li{display:flex;align-items:center;border-top:1px solid var(--border)}.food-list li:first-child{border-top:0}.food-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:0;padding:10px 0;text-align:left}.food-main .grow{display:flex;flex-direction:column}.food-main .grow b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kcal{font-weight:700;white-space:nowrap}.kcal small{color:var(--muted);font-weight:400}.with-footer{padding-bottom:70px}.footer-bar{position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));padding:10px 16px;z-index:15;max-width:560px;margin:0 auto}.footer-bar .btn{box-shadow:0 8px 24px #0478574d;padding:13px}.plan-meal{border:1px solid var(--border);border-radius:14px;padding:12px;margin:10px 0}.plan-meal ul{margin-top:6px}.plan-meal li{padding:2px 0}.metric{display:flex;align-items:flex-end;gap:8px;margin-bottom:8px}.metric label{flex:1;display:flex;flex-direction:column;gap:4px}.metric-row{display:flex;align-items:center;gap:8px}.metric-row input{max-width:160px;font-size:1.1rem;font-weight:600}.fast{display:flex;gap:16px;align-items:center}.fast p{margin:4px 0}.fast-history{margin-top:12px;display:flex;flex-direction:column;gap:4px}.card .segmented+.btn{margin-top:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 6px;text-align:center;display:flex;flex-direction:column}.stat b{font-size:1.05rem}.stat span{font-size:.72rem;color:var(--muted)}.chart{width:100%;height:auto;display:block}.axis{font-size:9px;fill:var(--muted)}.split{display:flex;height:14px;border-radius:99px;overflow:hidden;gap:2px}.chat{display:flex;flex-direction:column;gap:8px;max-height:380px;overflow-y:auto;padding:2px}.msg{max-width:88%;padding:9px 12px;border-radius:16px;white-space:pre-wrap;font-size:.92rem}.msg.assistant{background:var(--surface-2);border-bottom-left-radius:4px;align-self:flex-start}.msg.user{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.chat-card .smart-row{margin-top:10px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#050f0a73;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet{background:var(--bg);width:100%;max-width:480px;max-height:92dvh;border-radius:22px 22px 0 0;display:flex;flex-direction:column;animation:up .2s ease-out}.sheet.wide{max-width:560px}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 8px}.sheet-body{overflow-y:auto;padding:4px 16px calc(20px + env(safe-area-inset-bottom))}@media (min-width: 640px){.sheet-backdrop{align-items:center}.sheet{border-radius:22px}}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(30px);opacity:.6}}.onboarding{max-width:520px;margin:0 auto;padding:24px 16px 40px;display:flex;flex-direction:column;gap:16px}.brand-hero{text-align:center}.brand-hero h1{font-size:2rem;margin:8px 0 6px;letter-spacing:-.02em}.brand-hero p{color:var(--muted);margin:0 auto 10px;max-width:420px}.usp{list-style:none;padding:0;margin:0 auto;display:inline-flex;flex-direction:column;gap:8px;text-align:left;font-size:.9rem}.usp li{display:flex;gap:10px;align-items:flex-start}.usp li svg{color:var(--accent);flex:none;margin-top:2px}.crash{text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.crash p{margin:0}.onboarding .card h2{margin-bottom:12px}.profile-form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:.82rem;font-weight:600;color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.note{margin:-4px 0 0;font-size:.85rem}.plan-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:var(--accent-soft);border-radius:14px;padding:12px;text-align:center}.plan-preview>div{display:flex;flex-direction:column}.plan-preview b{font-size:1.25rem;color:var(--accent)}.plan-preview span{font-size:.75rem;color:var(--muted)}.plan-preview p{grid-column:1 / -1;margin:4px 0 0}@media (max-width: 380px){.hero-grid{flex-direction:column}.hero-side{flex-direction:row;justify-content:space-around;width:100%}.stats{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}:root{--fig: #c9d3de;--fig-far: #e2e8ef;--fig-prop: #5b6672;--plate: #2b3440;--feel-ink: #c62828;--lower-ink: #b45309}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--fig: #5e6d7c;--fig-far: #3a4652;--fig-prop: #9aa7b4;--plate: #c9d3de;--feel-ink: #fca5a5;--lower-ink: #fcd34d}}:root[data-theme=dark]{--fig: #5e6d7c;--fig-far: #3a4652;--fig-prop: #9aa7b4;--plate: #c9d3de;--feel-ink: #fca5a5;--lower-ink: #fcd34d}.figure-wrap{display:flex;flex-direction:column;gap:8px}.figure{width:100%;height:auto;display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.figure.compact{border:0;background:none;border-radius:0}.fig-body{stroke:var(--fig)}.fig-body-fill{fill:var(--fig);stroke:var(--fig);stroke-width:2}.fig-far .fig-body{stroke:var(--fig-far)}.fig-floor{stroke:var(--border);stroke-width:2}.fig-prop{stroke:var(--fig-prop)}.fig-prop-fill{fill:var(--fig-prop)}.fig-plate{fill:var(--plate)}.fig-hub{fill:var(--surface)}.fig-pad{fill:var(--fig-prop);opacity:.8}.fig-cable{stroke:var(--fig-prop);stroke-width:1.5;stroke-dasharray:3 2}.fig-trace{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:2 4;opacity:.6}.fig-stress{fill:none;stroke:#ef4444;stroke-width:2.5}.stage{text-align:center;font-weight:700;padding:8px;border-radius:12px;background:var(--surface-2);min-height:38px}.stage.lift,.stage.squeeze{background:color-mix(in srgb,#ef4444 14%,var(--surface));color:var(--feel-ink)}.stage.lower{background:color-mix(in srgb,#f59e0b 14%,var(--surface));color:var(--lower-ink)}.figure-controls{display:flex;align-items:center;gap:8px}.figure-controls input[type=range]{padding:0;accent-color:var(--accent)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--muted);margin-top:6px}.legend i{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-2px;margin-right:4px}.feel{display:flex;gap:12px;align-items:flex-start;background:color-mix(in srgb,var(--glow) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--glow) 22%,var(--border));border-radius:16px;padding:12px 14px}.feel>svg{color:var(--glow);flex:none;margin-top:1px}.feel b{font-size:.9rem}.feel p{margin:2px 0 0;font-size:.92rem}.ex-facts{display:flex;flex-wrap:wrap;gap:6px}.ex-facts span{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.8rem;font-weight:600}.ex-facts svg{color:var(--muted)}.steps{list-style:none;counter-reset:step;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}.steps li{counter-increment:step;display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;font-size:.93rem}.steps li:before{content:counter(step);width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center}.ex-notes{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:12px}.ex-notes p{margin:0;display:flex;gap:10px;font-size:.88rem}.ex-notes p svg{color:var(--muted);flex:none;margin-top:2px}.ex-notes b{display:block;font-size:.8rem}.mistakes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.mistakes li{display:flex;gap:8px;align-items:flex-start;font-size:.92rem}.mistakes li svg{color:var(--bad);flex:none;margin-top:3px}.ex-detail>a.btn.block{text-decoration:none;color:var(--text)}.v-fallback{min-height:340px}.chev{color:var(--muted);flex:none}.hero-icon{width:56px;height:56px;margin:0 auto;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.hero-icon.gold{background:#fdf3d6;color:#b7791f}.live:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bad);margin-right:6px;vertical-align:1px;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.3}}.bodymap{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:320px;margin:0 auto}.bm-view{margin:0;text-align:center}.bm-view canvas{width:100%;height:auto;max-height:300px;object-fit:contain;display:block;margin:0 auto}.bm-view canvas.pickable{cursor:pointer}.bodymap.loading{min-height:240px;border-radius:12px;background:var(--surface-2)}.bm-view figcaption{font-size:.75rem;color:var(--muted)}.bm-base>*,.bm-base g>*{fill:var(--surface-2);stroke:var(--border);stroke-width:1}.bm-muscle ellipse{stroke:var(--surface);stroke-width:.8;transition:fill .2s,opacity .2s}.bm-muscle.pickable{cursor:pointer}.bm-muscle.pickable:hover ellipse{stroke:var(--text)}.pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.mpill{font-size:.7rem;font-weight:700;padding:1px 7px;border-radius:999px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}.ex-list{list-style:none;margin:0;padding:0}.ex-list li+li{border-top:1px solid var(--border)}.ex-list button,.ex-card-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:10px 0;text-align:left}.ex-list .grow,.ex-card-head .grow{display:flex;flex-direction:column}.thumb{width:84px;height:63px;flex:none;border-radius:12px;background:linear-gradient(180deg,var(--stage-hi),var(--stage-lo));overflow:hidden;box-shadow:inset 0 0 0 1px var(--border)}.thumb svg,.thumb img{width:100%;height:100%;object-fit:contain;display:block}.day{padding:0;overflow:hidden}.day.next{border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.day>.ex-list,.day>.btn{margin:0 16px;width:calc(100% - 32px)}.day>.btn{margin-bottom:16px;margin-top:6px}.day-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:14px 16px;text-align:left}.day-head .grow{display:flex;flex-direction:column}.day-num{display:flex;flex-direction:column;align-items:center;justify-content:center;width:50px;height:50px;flex:none;border-radius:14px;background:var(--surface-2);color:var(--text);font-weight:700;font-size:.82rem}.day.next .day-num{background:var(--accent);color:var(--accent-ink)}.day-num small{font-weight:600;opacity:.8}.empty-workout{text-align:center;display:flex;flex-direction:column;gap:10px}.empty-workout p{margin:0}.big-emoji{font-size:2.6rem;margin:0}.session-head{position:sticky;top:62px;z-index:5}.session-head h2{font-size:1.05rem}.session-head .bar{margin-top:10px}.ex-card{padding:12px 14px}.how-link{font-size:.8rem;font-weight:700;color:var(--accent);white-space:nowrap}.feel-line{color:var(--glow-ink);display:inline-flex;gap:4px;align-items:center}.tip{margin:2px 0 6px;padding:7px 10px;border-radius:10px;background:var(--accent-soft);display:flex;gap:6px;align-items:center}.sets{width:100%;border-collapse:collapse;margin-bottom:6px}.sets th{font-size:.72rem;color:var(--muted);font-weight:600;text-align:center;padding:4px}.sets td{padding:3px;text-align:center;position:relative}.sets input{text-align:center;padding:7px 4px;font-weight:700;max-width:76px;margin:0 auto;display:block}.sets tr.done td{background:color-mix(in srgb,var(--good) 10%,transparent)}.sets tr.done input{background:transparent;border-color:transparent}.set-type{width:30px;height:30px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);font-weight:800;font-size:.8rem}.set-type.t-warmup{color:var(--warn)}.set-type.t-drop{color:var(--protein)}.set-type.t-failure{color:var(--bad)}.tick{width:36px;height:32px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);font-weight:800;color:var(--muted)}.tick{display:inline-flex;align-items:center;justify-content:center}.tick.on{background:var(--good);border-color:var(--good);color:#fff}.pr-badge{position:absolute;top:-4px;right:-4px;font-size:.6rem;font-weight:800;background:#f5b301;color:#3a2a00;border-radius:6px;padding:1px 4px}.with-rest{padding-bottom:60px}.rest-bar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(64px + env(safe-area-inset-bottom));z-index:30;width:min(528px,calc(100% - 32px));display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:16px;background:var(--text);color:var(--bg);overflow:hidden;box-shadow:0 10px 30px #00000040}.rest-bar .btn{background:color-mix(in srgb,var(--bg) 15%,transparent);color:var(--bg);border-color:transparent;position:relative}.rest-bar.over{background:var(--good);color:#fff}.rest-fill{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--accent) 45%,transparent);transition:width .25s linear}.rest-time{flex:1;font-weight:800;position:relative;font-variant-numeric:tabular-nums}.summary{text-align:center;display:flex;flex-direction:column;gap:10px}.summary .stats{margin-top:4px}.prs{text-align:left;background:color-mix(in srgb,#f5b301 14%,transparent);border-radius:12px;padding:10px 12px}.habits{display:flex;flex-direction:column;gap:10px}.habit{display:flex;align-items:center;gap:10px}.habit .grow{display:flex;flex-direction:column;gap:4px}.habit-icon{width:36px;height:36px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted)}.habit-icon.hit{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}.hg-row>[role=rowheader]{display:flex;align-items:center;justify-content:center;color:var(--muted)}.bar>span{display:block;height:100%;border-radius:99px;transition:width .5s ease}.habit-grid{display:flex;flex-direction:column;gap:4px}.hg-row{display:grid;grid-template-columns:34px repeat(7,1fr);gap:4px;align-items:center;text-align:center;font-size:.8rem}.hg-head{color:var(--muted);font-weight:700}.hg-cell{height:22px;border-radius:6px;background:var(--track)}.hg-cell.part{background:color-mix(in srgb,var(--accent) 35%,var(--track))}.hg-cell.hit{background:var(--good)}.hg-score{color:var(--muted);font-weight:700;font-size:.75rem}.records li{padding:6px 0;border-top:1px solid var(--border)}.records li:first-child{border-top:0}.tabbar button small{font-size:.68rem}@media (max-width: 360px){.tabbar button small{font-size:.6rem}}.viewer{display:flex;flex-direction:column;gap:10px}.v-stage{position:relative;overflow:hidden;border-radius:20px;touch-action:pan-y;isolation:isolate;background:radial-gradient(120% 80% at 50% 30%,var(--stage-hi) 0%,var(--stage-lo) 100%);box-shadow:inset 0 0 0 1px var(--border)}.v-stage canvas{display:block;width:100%;cursor:grab}.v-stage canvas:active{cursor:grabbing}.v-top{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.v-chip,.v-phase{display:inline-flex;align-items:baseline;gap:4px;padding:6px 12px;border-radius:999px;font-weight:700;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 2px #0f172a14}.v-chip small{font-size:.72rem;color:var(--muted);font-weight:600}.v-chip b{font-size:1.05rem;font-variant-numeric:tabular-nums}.v-phase{font-size:.82rem}.v-phase i{font-style:normal;font-variant-numeric:tabular-nums;opacity:.75;font-weight:600}.v-phase.hot{background:var(--glow);color:#fff}.v-phase.warm{background:var(--glow-2);color:#2a1600}.v-views{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:flex;gap:2px;padding:3px;border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 2px #0f172a14}.v-views button{border:0;background:none;padding:5px 12px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--muted)}.v-views button.on{background:var(--text);color:var(--bg)}.v-progress{position:absolute;left:0;right:0;bottom:0;height:3px}.v-progress span{display:block;height:100%;transform-origin:left;background:var(--muted);opacity:.5}.v-progress.hot span{background:var(--glow);opacity:1}.v-progress.warm span{background:var(--glow-2);opacity:1}.v-mark{position:absolute;top:0;left:0;pointer-events:none;transition:opacity .2s;will-change:transform}.v-dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--glow);border:2px solid #fff;animation:vping 1.6s infinite}.v-tag{position:absolute;left:16px;top:-34px;white-space:nowrap;font-size:.72rem;font-weight:700;padding:4px 9px;border-radius:8px;background:var(--surface);color:var(--text);box-shadow:0 4px 14px #0f172a24;border-left:3px solid var(--glow)}.v-tag:before{content:"";position:absolute;left:-12px;top:100%;width:1.5px;height:18px;background:color-mix(in srgb,var(--text) 45%,transparent);transform:rotate(-35deg);transform-origin:top}.v-mark.flip .v-tag{left:auto;right:16px;border-left:0;border-right:3px solid var(--glow)}.v-mark.flip .v-tag:before{left:auto;right:-12px;transform:rotate(35deg)}@keyframes vping{0%{box-shadow:0 0 #ff3b308c}70%{box-shadow:0 0 0 12px #ff3b3000}to{box-shadow:0 0 #ff3b3000}}.v-banner{position:absolute;left:50%;top:56px;transform:translate(-50%);background:var(--good);color:#fff;font-weight:700;font-size:.85rem;padding:7px 14px;border-radius:999px;white-space:nowrap}.v-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;gap:10px;align-items:center;justify-content:center;font-weight:600;color:var(--muted);pointer-events:none}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.v-bar{display:flex;align-items:center;gap:6px}.v-btn{display:inline-flex;align-items:center;gap:4px;height:38px;min-width:38px;justify-content:center;padding:0 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:600;font-size:.8rem}.v-btn.on{background:var(--text);color:var(--bg);border-color:var(--text)}.v-cue{flex:1;min-width:0;margin:0 0 0 4px;font-weight:600;font-size:.88rem;line-height:1.3}.v-cue.hot{color:var(--glow-ink)}.v-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.78rem}.v-legend span{display:inline-flex;align-items:center;gap:6px}.v-legend i{width:10px;height:10px;border-radius:50%}.v-legend .muted{margin-left:auto}.credit{font-size:.68rem;color:var(--muted);margin:0}.chev.up{transform:rotate(180deg)}.v-lever{position:absolute;top:0;left:0;pointer-events:none;transition:opacity .2s;white-space:nowrap;font-size:.68rem;font-weight:700;color:#fff;background:#ff3b30;padding:2px 7px;border-radius:6px;margin:8px 0 0 -40px;box-shadow:0 2px 8px #ff3b3059;opacity:0}.v-bar .grow{flex:1}.v-cue{margin:0;padding:0 2px}.v-legend i.line{width:16px;height:3px;border-radius:2px}.v-legend i.line.thick{height:5px}.v-legend i.line.dashed{background:repeating-linear-gradient(90deg,var(--text) 0 4px,transparent 4px 7px);opacity:.7}.stress{margin:0;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.stress figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.stress figcaption b{font-size:.9rem}.stress svg{width:100%;height:auto;display:block;color:var(--text)}.stress-axis{display:flex;justify-content:space-between;margin-top:2px}.stress p{margin:6px 0 0}.v-layer{position:absolute;left:12px;top:54px;display:flex;gap:2px;padding:3px;border-radius:999px;z-index:2;background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 2px #0f172a14}.v-layer button{border:0;background:none;padding:4px 10px;border-radius:999px;font-size:.74rem;font-weight:700;color:var(--muted)}.v-layer button.on{background:var(--glow);color:#fff}.v-mark.peak .v-dot{animation:vpeak .7s infinite}@keyframes vpeak{0%{box-shadow:0 0 #ff3b30cc}to{box-shadow:0 0 0 22px #ff3b3000}}
