:root{--bg:#f6f7f5;--surface:#fff;--text:#1b2420;--muted:#637068;--border:#dfe4df;--accent:#2f7d4f;--accent-contrast:#fff;--error:#b3261e;--warn:#b26a00;--track:#e3e8e3;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121714;--surface:#1b231e;--text:#e6ece8;--muted:#94a39a;--border:#2b362f;--accent:#5cb87f;--accent-contrast:#0c120e;--error:#f2928c;--warn:#f0b45a;--track:#2b362f}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.app{max-width:640px;min-height:100dvh;padding:0 16px;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:calc(76px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}main{flex:1}h1{margin:.4em 0 .2em;font-size:1.4rem}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:1.2em 0 .3em;font-size:1rem}.muted{color:var(--muted);margin:.2em 0;font-size:.9rem}.search{width:100%;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:12px 14px}.search:focus,select:focus,input:focus{outline:2px solid var(--accent);outline-offset:1px}.state{color:var(--muted);padding:16px 0}.state.error{color:var(--error)}.results{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.result{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:10px;padding:10px 12px;text-decoration:none;display:block}.result-name{align-items:baseline;gap:8px;font-weight:600;display:flex}.result-macros{flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:.85rem;display:flex}.badge{background:var(--accent);color:var(--accent-contrast);border-radius:6px;flex:none;padding:1px 6px;font-size:.7rem;font-weight:700}.badge-us{background:var(--muted);color:var(--bg)}.badge-warn{color:#fff;background:#c46a00}.amount{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.amount label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}select,input[type=number]{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;max-width:100%;padding:8px 10px}.nutrients{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}.nutrients th,.nutrients td{border-bottom:1px solid var(--border);text-align:left;padding:7px 12px;font-weight:400}.nutrients td{text-align:right;font-variant-numeric:tabular-nums}.nutrients tr:last-child th,.nutrients tr:last-child td{border-bottom:0}.attribution{margin-top:24px}.source{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:12px 0;padding:4px 14px 12px}.source h2{text-transform:none;color:var(--text);font-size:1.05rem}dl{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:.9rem;display:grid}dt{color:var(--muted)}dd{overflow-wrap:anywhere;margin:0}.app.login{justify-content:center;padding-bottom:24px}.login-title{text-align:center;margin:0 0 16px;font-size:2.2rem}h1{margin:.3em 0}.tabbar{z-index:20;background:var(--surface);border-top:1px solid var(--border);max-width:640px;padding-bottom:env(safe-area-inset-bottom);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:56px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;text-decoration:none;display:flex}.tab-icon{font-size:1.35rem;line-height:1}.tab.active{color:var(--accent);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin:12px 0;padding:12px 14px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;display:flex}.row.between{justify-content:space-between}.row.gap{gap:10px;margin:8px 0}.grow{flex:1;min-width:0}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.field input,.field select,input[type=text],input[type=password],input[type=time],select{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);border-radius:10px;width:100%;max-width:100%;padding:8px 12px;font-size:1rem}.btn{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn.danger{color:var(--error);border-color:var(--error)}.btn.block{width:100%;display:flex}.btn:disabled,.icon-btn:disabled{opacity:.5}.icon-btn{min-width:44px;min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;font-size:1.5rem;text-decoration:none;display:inline-flex}.icon-btn.small{min-width:40px;font-size:1.1rem}.icon-btn.add{background:var(--accent);color:var(--accent-contrast);font-size:1.3rem}.icon-btn.fav{color:var(--muted)}.icon-btn.fav.on{color:#e0a800}.link-btn{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:8px 0}button.result{text-align:left;width:100%;font:inherit;cursor:pointer;display:block}.result-name{flex-wrap:wrap}.star{color:#e0a800}.badge-me{background:#7a5bd0}.search{min-height:48px;font-size:1rem}.tabs{border-bottom:1px solid var(--border);gap:4px;margin:12px 0 4px;display:flex}.tab-btn{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.datebar{justify-content:space-between;align-items:center;display:flex}.datebar-title{flex-direction:column;align-items:center;line-height:1.2;display:flex}.summary{flex-direction:column;gap:10px;display:flex}.bar-head{justify-content:space-between;align-items:baseline;font-size:.85rem;display:flex}.bar-label{color:var(--muted)}.bar.big .bar-head{font-size:1.05rem}.bar.big .bar-label{color:var(--text);font-weight:700}.bar-track{background:var(--track);border-radius:6px;height:8px;margin-top:3px;overflow:hidden}.bar.big .bar-track{border-radius:8px;height:16px}.bar-fill{background:var(--accent);border-radius:inherit;height:100%}.bar-fill.over{background:var(--warn)}.slot-head{align-items:center;gap:6px;display:flex}.slot-head h2{color:var(--text);text-transform:none;flex:1;margin:0;font-size:1.05rem}.slot-head .muted{font-size:.8rem}.entries,.plain{margin:6px 0 0;padding:0;list-style:none}.entry{border:0;border-top:1px solid var(--border);width:100%;min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.entry-main{flex-direction:column;min-width:0;display:flex}.entry-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.entry-main .muted{font-size:.8rem}.entry-nums{white-space:nowrap;font-size:.85rem}.group{border-left:3px solid var(--accent);margin-top:6px;padding-left:8px}.group-label{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.details summary{cursor:pointer;min-height:32px;font-weight:600}.details h3{color:var(--muted);margin:12px 0 4px;font-size:.85rem}.incomplete{color:var(--warn);font-size:.7rem;font-weight:600}.meal-item{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.sheet-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:92dvh;padding:8px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet-head h2{color:var(--text);text-transform:none;overflow-wrap:anywhere;margin:0;font-size:1.1rem}.portion{flex-direction:column;gap:12px;display:flex}.stepper{align-items:center;gap:8px;display:flex}.step-btn{border:1px solid var(--border);background:var(--surface);min-width:56px;min-height:56px;color:var(--text);cursor:pointer;border-radius:12px;font-size:1.6rem}.amount-input{text-align:center;flex:1;min-width:0;font-weight:700;min-height:56px!important;font-size:1.6rem!important}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);min-width:56px;min-height:40px;color:var(--text);font:inherit;cursor:pointer;border-radius:20px;padding:4px 14px}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.preview{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.preview-main{font-size:1.2rem}.preview-macros{flex-wrap:wrap;gap:14px;font-size:.9rem;display:flex}.viewfinder{aspect-ratio:4/3;background:#111;border-radius:12px;justify-content:center;align-items:center;margin-bottom:10px;display:flex;position:relative;overflow:hidden}.viewfinder video{object-fit:cover;width:100%;height:100%;display:none;position:absolute;inset:0}.viewfinder.live video{display:block}.viewfinder .muted{color:#aaa}.reticle{border:2px solid #ffffffd9;border-radius:10px;position:absolute;inset:25% 10%;box-shadow:0 0 0 100vmax #00000040}.manual{align-items:flex-end;margin-top:16px}.badges{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 10px;display:flex}.nutri,.nova{color:#fff;border-radius:6px;padding:2px 8px;font-size:.75rem;font-weight:700}.nutri-a{background:#1e8f4e}.nutri-b{background:#5aaa3a}.nutri-c{background:#c9a400}.nutri-d{background:#e07b00}.nutri-e{background:#d03a2a}.nova-1{background:#1e8f4e}.nova-2{background:#5aaa3a}.nova-3{background:#e07b00}.nova-4{background:#d03a2a}.meal{list-style:none}.app-footer{color:var(--muted);padding:20px 0 8px;font-size:.75rem}.offline{text-align:center;background:var(--warn);color:var(--accent-contrast);border-radius:0 0 8px 8px;margin:0 0 8px;padding:6px 12px;font-size:.85rem}.block{display:block}.banner{color:var(--text);border-color:var(--accent);text-decoration:none;display:block}.bar-label.info{min-height:28px;font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.day-chips{margin:10px 0 0}.chip.session.planned{border-style:dashed}.chip.session.done{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.chip.session.skipped{color:var(--muted);text-decoration:line-through}.add-chip{color:var(--accent);border-color:var(--accent)}.ref{color:var(--muted);font-size:.8rem}.ref.low{color:var(--warn);font-weight:600}.ref.over{color:var(--error);font-weight:600}.nutrients td{white-space:nowrap}.breakdown th .block{font-size:.8rem;font-weight:400}.breakdown tr.skipped{color:var(--muted);text-decoration:line-through}.breakdown tr.total th,.breakdown tr.total td{border-top:2px solid var(--border);font-weight:700}.macro-lines li{padding:4px 0}.nav-list li+li{margin-top:8px}.nav-row{background:var(--surface);border:1px solid var(--border);min-height:56px;color:var(--text);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;text-decoration:none;display:flex}.plain-fieldset{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.plain-fieldset legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:.85rem}.plain-fieldset:disabled{opacity:.5}input[type=date]{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);border-radius:10px;width:100%;max-width:100%;padding:8px 12px;font-size:1rem}input[type=range]{width:100%;accent-color:var(--accent);min-height:32px}.toggle{align-items:center;gap:10px;min-height:44px;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--accent)}.week-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;display:flex}.week-row:first-child{border-top:0}.week-day{width:36px;color:var(--muted);flex:none;font-weight:600}.weight-stepper{margin:10px 0}.chart{width:100%;height:auto;margin-top:6px;display:block}.chart-label{fill:var(--muted);font-size:10px}.chart-dot{fill:var(--muted);opacity:.7}.chart-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.rate{margin:6px 0 0;font-weight:600}.suggestion{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.activity-list{padding:0 14px}.activity-list li:first-child .entry{border-top:0}.optional summary{cursor:pointer;min-height:36px;color:var(--accent)}.optional .grid2{margin-top:8px}.estimate{min-height:1.4em}textarea,input[type=date]{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;width:100%;max-width:100%;padding:8px 12px;font-size:1rem}input[type=date]{min-height:44px}textarea{resize:vertical}input[type=text]:disabled{opacity:.5}.grid3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.check{align-items:center;gap:10px;min-height:44px;font-size:.95rem;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent);flex:none}.btn.small{min-height:36px;padding:4px 14px}.state.warn,.warn-text{color:var(--warn)}.struck{color:var(--muted);text-decoration:line-through}.segmented{background:var(--track);border-radius:12px;gap:4px;margin:8px 0 12px;padding:4px;display:flex}.seg{min-height:40px;color:var(--muted);border-radius:9px;flex:1;justify-content:center;align-items:center;font-size:.9rem;text-decoration:none;display:flex}.seg.active{background:var(--surface);color:var(--text);font-weight:700;box-shadow:0 1px 2px #0000001f}.plan-day-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-top:8px;display:flex}.plan-day-head h2{color:var(--text);text-transform:none;font-size:1.1rem}.slot-card{margin:8px 0}.slot-card.eaten{opacity:.75}.slot-card-head{align-items:center;gap:8px;display:flex}.slot-card-head .icon-btn{min-height:36px}.meal-title{align-items:baseline;gap:8px;margin-top:2px;font-weight:600;display:flex}.meal-meta{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.chip-lite{border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:1px 8px;font-size:.75rem}.chip-lite.accent{border-color:var(--accent);color:var(--accent)}.chip-lite.ok{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.slot-actions{margin-bottom:0}.rating-badge{color:#b88a00;font-size:.8rem;font-weight:600}.card.meal.archived{opacity:.65}.stepper-value{border:1px solid var(--border);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;display:flex}.chip.bad{border-color:var(--error);color:var(--error)}.template-row{margin:4px 0}.template-row .grid3{margin-top:8px}.template-row select{width:auto}.settings-links{flex-direction:column;gap:6px;margin:6px 0 12px;display:flex}.settings-links a{padding:10px 0;display:block}.stars{gap:2px;display:flex}.star-btn{min-width:44px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:1.7rem;line-height:1}.star-btn.on{color:#e0a800}.rating-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.rating-row .star-btn{min-width:36px;min-height:40px;font-size:1.4rem}.pending-rating .muted{margin:2px 0 0}.today-plan h2{color:var(--text);text-transform:none;margin:0;font-size:1.05rem}.today-plan-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;display:flex}.today-plan-row .entry-main{flex:1}.bowl-list{flex-direction:column;gap:8px;margin:8px 0;padding:0;list-style:none;display:flex}.bowl-line{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.bowl-line.done{opacity:.6}.bowl-line.done .bowl-text{text-decoration:line-through}.bowl-tick{border:2px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--accent-contrast);font:inherit;cursor:pointer;border-radius:8px;flex:none;font-weight:700}.bowl-tick[aria-pressed=true],.bowl-tick.on{background:var(--accent);border-color:var(--accent)}.bowl-text{overflow-wrap:anywhere;flex:1;min-width:0}.bowl-amount{font-weight:700}.bowl-text .muted{font-size:.8rem}.bowl-ctrl{flex:none;display:flex}.bowl-ctrl .icon-btn{min-width:36px}.buffet-item{border-top:1px solid var(--border);align-items:center;gap:8px;padding:4px 0;display:flex}.buffet-item .entry-main{flex:1}.buffet-item-ctrl{flex:none;display:flex}.buffet-item-ctrl .icon-btn{min-width:34px}.entry-main .entry-name.struck{text-decoration:line-through}.status-chip{border:1px solid var(--accent);color:var(--accent);border-radius:10px;flex:none;padding:2px 10px;font-size:.75rem;font-weight:700}.status-chip.low{border-color:var(--warn);color:var(--warn)}.status-chip.out{border-color:var(--error);color:var(--error)}.shop-item{border-top:1px solid var(--border);align-items:center;gap:10px;min-height:52px;padding:4px 0;display:flex}.shop-item .entry-main{flex:1}.toast{left:16px;right:16px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:30;background:var(--text);max-width:608px;color:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:6px 16px;display:flex;position:fixed}.toast .link-btn{color:var(--bg);font-weight:700;text-decoration:underline}.pref-levels{gap:6px;margin:6px 0 10px;display:flex}.pref-btn{border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);font:inherit;cursor:pointer;border-radius:10px;flex:1;font-size:1.1rem}.pref-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.bowl-text .muted{display:block}:root{--t-strength:#3a6fd8;--t-intervals:#d0432f;--t-long:#2f8f5b;--t-speed:#b97800;--t-technique:#8a5cc4}@media (prefers-color-scheme:dark){:root{--t-strength:#6c97ee;--t-intervals:#ec7160;--t-long:#52b680;--t-speed:#e0a030;--t-technique:#b08ae0}}.t-strength{--tc:var(--t-strength)}.t-intervals{--tc:var(--t-intervals)}.t-long{--tc:var(--t-long)}.t-speed{--tc:var(--t-speed)}.t-technique{--tc:var(--t-technique)}.type-badge{background:var(--tc,var(--muted));color:#fff;border-radius:12px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-block}@media (prefers-color-scheme:dark){.type-badge,.cal-chip{color:#101418}}.chip.active[class*=t-]{background:var(--tc);border-color:var(--tc)}.session-card.st-done{border-left:4px solid var(--accent)}.session-card.st-skipped{opacity:.7}.session-title,.plain-h{color:var(--text);text-transform:none;letter-spacing:0;margin:.2em 0 .1em;font-size:1.2rem}.session-title a{color:inherit;text-decoration:none}.session-sub{margin:0 0 6px}.item-block{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:10px 0 2px;font-size:.78rem}.item-row{border-top:1px solid var(--border);padding:6px 0}.item-row:first-child{border-top:0}.item-name{font-weight:600}.item-load{white-space:nowrap;font-weight:700}.item-note{font-size:.85rem}.ss-tag{background:var(--track);color:var(--muted);vertical-align:1px;border-radius:6px;margin-right:6px;padding:0 6px;font-size:.7rem;font-weight:700;display:inline-block}.why summary{cursor:pointer;color:var(--accent);align-items:center;min-height:44px;display:flex}.why ul{margin:0 0 8px;padding-left:18px}.session-actions{margin-top:8px}.readiness{flex-direction:column;gap:8px;display:flex}.readiness-row{grid-template-columns:70px 1fr;align-items:center;gap:2px 8px;display:grid}.readiness-chips{gap:6px;display:flex}.readiness-chips .chip{flex:1;min-width:0;padding:4px 0}.readiness-hint{grid-column:2;font-size:.75rem}.resume{border-color:var(--accent)}.cal{flex-direction:column;gap:4px;margin:8px 0;display:flex}.cal-head,.cal-row{grid-template-columns:22px repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-head span{text-align:center;color:var(--muted);font-size:.75rem}.cal-week{text-align:center;color:var(--muted);align-self:center;font-size:.8rem;font-weight:700}.cal-row.current .cal-week{color:var(--accent)}.cal-cell{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:66px;color:var(--text);font:inherit;cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:3px;display:flex}.cal-cell.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cal-cell.out{opacity:.4}.cal-date{color:var(--muted);font-size:.7rem}.cal-chip{background:var(--tc,var(--muted));color:#fff;border-radius:5px;justify-content:center;align-items:center;min-width:22px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.cal-chip.st-done{opacity:.55}.cal-chip.st-skipped{color:var(--muted);border:1px dashed var(--muted);background:0 0;text-decoration:line-through}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin:6px 0;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:4px;display:inline-flex}.swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.changes li{border-top:1px solid var(--border);padding:6px 0;font-size:.92rem}.changes li:first-child{border-top:0}.change-kind{background:var(--track);color:var(--muted);text-transform:uppercase;border-radius:10px;margin-right:4px;padding:0 8px;font-size:.72rem;font-weight:700;display:inline-block}.change-kind.k-load_up{background:color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent)}.change-kind.k-load_down,.change-kind.k-skip{background:color-mix(in srgb, var(--warn) 25%, transparent);color:var(--warn)}.stats{gap:10px;margin:12px 0;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;padding:10px 12px;display:flex}.stat-num{font-size:1.6rem;font-weight:800;line-height:1.2}.setbars{margin:6px 0}.setbar{grid-template-columns:78px minmax(0,1fr) 74px;align-items:center;gap:8px;padding:3px 0;display:grid}.setbar-label{font-size:.88rem}.setbar-num{text-align:right;white-space:nowrap;font-size:.85rem}.setbar-track{background:var(--track);border-radius:9px;height:18px;position:relative;overflow:hidden}.setbar-range{background:color-mix(in srgb, var(--accent) 24%, transparent);position:absolute;top:0;bottom:0}.setbar-planned{border-right:2px solid var(--muted);position:absolute;top:0;bottom:0;left:0}.setbar-fill{background:var(--accent);border-radius:4px;position:absolute;top:5px;bottom:5px;left:0}.setbar-fill.s-low{background:var(--warn)}.setbar-fill.s-high{background:var(--error)}.chart-fig{margin:10px 0}.chart-fig figcaption{font-size:.92rem}.chart{width:100%;height:auto;display:block}.chart-line{stroke:var(--accent);stroke-width:2px}.chart-dot{fill:var(--accent)}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-text{fill:var(--muted);font-size:10px}.chart-bar{fill:var(--t-long)}.pr-row{padding:4px 0}.filter-chips{margin:10px 0}.ex-list li+li{margin-top:2px}.field-label{color:var(--muted);margin:0 0 6px;font-size:.85rem}.swap-btn{margin-bottom:6px}.slider-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:0 10px;padding:8px 0;display:grid}.slider-row:first-child{border-top:0}.slider-name{grid-column:1/span 2}.slider-row input[type=range]{width:100%;min-height:36px;accent-color:var(--accent)}.slider-val{color:var(--muted);font-size:.85rem}.avail{flex-direction:column;gap:8px;margin:6px 0;display:flex}.avail-loc{width:auto;min-height:36px;padding:2px 8px}.type-chips .chip{min-height:36px;padding:2px 10px;font-size:.88rem}.zones-list li{padding:2px 0;font-size:.92rem}.workout{padding-bottom:96px}.workout-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.workout-title{text-align:center;flex:1;min-width:0}.workout-title h1{overflow-wrap:anywhere;margin:0;font-size:1.05rem}.ex-card{padding:8px 10px 10px}.ex-card.complete{border-color:var(--accent)}.ex-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ex-name{min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:1.05rem;font-weight:700}.ex-name.static{cursor:default;align-items:center;display:flex}.ex-info{color:var(--muted);margin-left:6px;font-weight:400}.ex-target{margin:0 0 6px;font-size:.88rem}.rir-btn,.set-rir{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:18px;padding:2px 12px;font-size:.85rem;font-weight:700}.set-rir{min-height:30px;color:var(--muted);grid-column:2/span 2;justify-self:start}.set-stim{grid-column:2/span 2;font-size:.8rem}.ex-hint{color:var(--text)}.set-rows{flex-direction:column;gap:6px;display:flex}.chart-line.load-fitness,.swatch.load-fitness{stroke:var(--accent);background:var(--accent)}.chart-line.load-fatigue,.swatch.load-fatigue{stroke:var(--warn);background:var(--warn)}.chart-line.load-form,.swatch.load-form{stroke:var(--muted);background:var(--muted)}.chart-line.load-form{stroke-dasharray:4 3}.feedings{margin:4px 0 0;font-size:.85rem}.plan-pre-sleep{margin:4px 0 8px;font-size:.9rem}.set-row{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 52px;align-items:center;gap:6px;display:grid}.set-row.m-reps,.set-row.m-time{grid-template-columns:22px minmax(0,1fr) 52px}.set-row.m-check{grid-template-columns:52px minmax(0,1fr) 52px}.set-row.m-check .tick{grid-column:3}.set-no{color:var(--muted);text-align:center;font-size:.9rem;font-weight:700}.num-step{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:stretch;min-width:0;height:48px;display:flex;overflow:hidden}.ns-btn{background:var(--track);width:38px;color:var(--text);cursor:pointer;touch-action:manipulation;border:0;flex:none;font-size:1.4rem}.ns-btn:disabled{opacity:.4}.ns-mid{flex-direction:column;flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.ns-val{text-align:center;width:100%;font-weight:700;line-height:1.15;background:0 0!important;border:0!important;min-height:0!important;padding:0!important;font-size:1.1rem!important}.ns-unit{color:var(--muted);font-size:.62rem;line-height:1}.set-row.done .ns-val{color:var(--accent)}.tick{border:2px solid var(--border);background:var(--surface);width:52px;height:48px;color:var(--muted);cursor:pointer;touch-action:manipulation;border-radius:12px;font-size:1.5rem;font-weight:700}.tick.on{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.add-set{min-height:40px;padding:4px 0}.note-card p{margin:4px 0 0}.workout-foot{margin-top:12px}.rest-bar{left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));z-index:30;background:var(--surface);border-top:2px solid var(--accent);max-width:640px;margin:0 auto;position:fixed;overflow:hidden;box-shadow:0 -4px 12px #0000001f}.rest-bar.over{border-top-color:var(--warn)}.rest-fill{background:color-mix(in srgb, var(--accent) 20%, transparent);transition:width .25s linear;position:absolute;inset:0 auto 0 0}.rest-bar.over .rest-fill{background:color-mix(in srgb, var(--warn) 30%, transparent)}.rest-content{align-items:center;gap:6px;padding:8px 10px;display:flex;position:relative}.rest-main{flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.rest-clock{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1}.rest-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:.75rem;overflow:hidden}.rest-btn{border:1px solid var(--border);background:var(--surface);min-width:48px;min-height:48px;color:var(--text);font:inherit;border-radius:10px;padding:0 6px;font-weight:700}.rest-btn.skip{color:var(--muted)}.iv-clock{background:var(--track);text-align:center;border-radius:14px;flex-direction:column;align-items:center;margin:8px 0;padding:14px 8px;display:flex}.iv-clock.k-work{background:var(--t-intervals);color:#fff}.iv-clock.k-rest,.iv-clock.k-setrest{background:var(--t-long);color:#fff}.iv-phase{letter-spacing:.12em;font-weight:800}.iv-time{font-variant-numeric:tabular-nums;font-size:3.4rem;font-weight:800;line-height:1.1}.iv-rep{font-size:.9rem}.iv-progress{background:var(--track);border-radius:3px;height:6px;margin-bottom:10px;overflow:hidden}.iv-progress div{background:var(--accent);height:100%}.iv-btn{min-height:56px}.iv-log{margin-top:8px}.cardio-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 52px;align-items:center;gap:6px;display:grid}.rpe-chips .chip{min-width:44px}.swap-list{flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.swap-option{text-align:left;background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:12px;padding:10px 12px;display:block}.swap-option.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.swap-option .block{margin-top:2px;display:block}.swap-link{margin-top:4px}.badge-grade-high{background:var(--accent);color:var(--accent-contrast)}.badge-grade-moderate{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:0 0}.badge-grade-low{background:var(--warn);color:var(--bg)}.badge-grade-very_low{background:var(--muted);color:var(--bg)}.evidence-tag{margin-left:6px}.evidence-claim{border-top:1px solid var(--border);margin:10px 0 0;padding-top:8px}.evidence-claim p{margin:4px 0}.evidence-source{margin:4px 0;font-size:.9rem}.evidence-source blockquote{border-left:2px solid var(--border);margin:4px 0 4px 8px;padding-left:8px;font-size:.85rem}.cmdbar{margin-bottom:12px}.cmd-form{align-items:center;gap:8px;display:flex}.cmd-input{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:48px;color:var(--text);font:inherit;border-radius:12px;flex:1;padding:8px 14px;font-size:1.05rem}.left-today{margin:6px 2px}.cmd-items{margin:8px 0}.cmd-item{gap:10px;padding:4px 2px;display:flex}.cmd-mark{text-align:center;flex:none;width:1.2em;font-weight:700}.cmd-item.ok .cmd-mark{color:var(--accent)}.cmd-item.error .cmd-mark{color:var(--error)}.cmd-item .chips{margin-top:6px}.cmd-chips{margin-top:8px}.cmd-help li{border-bottom:1px solid var(--border);padding:6px 0}code.token{word-break:break-all}pre.code{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;overflow-x:auto}.day-card{display:block}.day-card a{color:inherit;text-decoration:none}.timeline-list{gap:8px;margin:8px 0;display:grid}.tl-item{grid-template-columns:3.4rem 1.6rem 1fr auto;align-items:center;gap:4px;display:grid}.tl-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}.tl-icon{text-align:center}.tl-item.st-done .tl-main,.tl-item.st-skipped .tl-main,.tl-item.st-no_bike .tl-main{color:var(--muted)}.tl-main a{color:inherit}.commute-row{border-top:1px solid var(--border);padding-top:4px}.commute-line{margin:-4px 0 4px;font-size:.9rem}.day-slots{margin:4px 0}.day-slots a{color:inherit}.bell{margin-left:auto;position:relative}.bell-count{background:var(--accent);min-width:18px;color:var(--accent-contrast);text-align:center;border-radius:9px;padding:0 5px;font-size:.72rem;font-weight:700;line-height:18px;position:absolute;top:-2px;right:-2px}.inbox-list{gap:8px;display:grid}.inbox-item{border:1px solid var(--border);background:var(--surface);border-radius:10px;gap:4px;padding:10px 12px;display:grid}.inbox-item.read .inbox-title{color:var(--muted);font-weight:500}.inbox-main{text-align:left;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;gap:2px;padding:0;display:grid}.inbox-title{font-weight:700}.inbox-meta{font-size:.82rem}.rings .ring-row{grid-template-columns:6rem 1fr auto;align-items:center;gap:8px;padding:3px 0;display:grid}.ring-dots{letter-spacing:.15em;color:var(--accent)}.streak-line{margin:6px 0 0}.commute-ask{border-top:1px solid var(--border);padding:10px 0 2px}.qr{background:#fff;border-radius:8px;width:min(70vw,240px);margin:0 auto;padding:8px}.qr svg{width:100%;height:auto;display:block}.badge{color:var(--accent);font-size:.85em}.events li{border-bottom:1px solid var(--border);padding:6px 0}.events li.alarm>span:first-child{color:var(--warn)}textarea{width:100%;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px}a.btn{text-decoration:none;display:inline-block}
