:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14161a;--surface:#1c1f24;--surface-2:#252930;--line:#333842;--text:#f0efec;--text-2:#b9bcc3;--muted:#868b95;--accent:#3987e5;--accent-ink:#fff;--good:#3fae6a;--warn:#d9a400;--bad:#e66767;--radius:12px;--nav-h:62px;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}*{box-sizing:border-box}body{-webkit-tap-highlight-color:transparent;min-height:100dvh;margin:0}h1,h2,h3{margin:0 0 8px;line-height:1.2}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{font-size:1rem}a{color:var(--accent)}p{margin:6px 0}.app{max-width:720px;padding:12px 12px calc(var(--nav-h) + 24px + env(safe-area-inset-bottom));margin:0 auto}.topbar{align-items:center;gap:8px;min-height:36px;margin-bottom:12px;display:flex}.topbar h1{flex:1;margin:0}.sync{color:var(--muted);white-space:nowrap;font-size:.75rem}.sync.off{color:var(--warn)}nav.tabs{z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav.tabs a{max-width:120px;height:var(--nav-h);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;text-decoration:none;display:flex}nav.tabs a .ico{font-size:1.3rem;line-height:1}nav.tabs a.on{color:var(--text)}nav.tabs a.on .ico{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:12px}.card.tight{padding:8px 12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.nowrap{flex-wrap:nowrap}.spread{justify-content:space-between;align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.stack>*+*{margin-top:8px}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}.right{text-align:right}.num{font-variant-numeric:tabular-nums}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}hr{border:0;border-top:1px solid var(--line);margin:12px 0}button,.btn{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 14px;text-decoration:none;display:inline-flex}button:disabled{opacity:.45;cursor:default}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.danger{color:var(--bad)}button.ghost{background:0 0;border-color:#0000}button.small{min-height:34px;padding:4px 10px;font-size:.85rem}button.block{width:100%}button.on{border-color:var(--accent);color:var(--accent)}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:10px}textarea{resize:vertical;min-height:70px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label.field{display:block}label.field>span{color:var(--text-2);margin-bottom:4px;font-size:.8rem;display:block}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.chip{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:.75rem;display:inline-block}.chip.accent{color:var(--accent);border-color:var(--accent)}.chip.warn{color:var(--warn);border-color:var(--warn)}.list{margin:0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--line);padding:10px 0}.list>li:last-child{border-bottom:0}.list a.item{color:inherit;text-decoration:none;display:block}.stepper{align-items:stretch;gap:4px;display:flex}.stepper button{min-width:44px;padding:0;font-size:1.2rem}.stepper input{text-align:center;min-width:0;padding:6px;font-size:1.2rem;font-weight:600}.logrow{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.logrow .lbl{color:var(--muted);margin-bottom:2px;font-size:.72rem}table.sets{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}table.sets td{border-bottom:1px solid var(--line);padding:6px 4px}table.sets tr:last-child td{border-bottom:0}table.sets tr.warmup td{color:var(--muted)}.lastbox{background:var(--bg);border-radius:8px;margin-top:8px;padding:6px 10px;font-size:.85rem}.sheet-bg{z-index:20;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:720px;max-height:88dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overflow:auto}@media (width>=760px){.sheet-bg{align-items:center}.sheet{border-radius:16px}}.weeks{grid-template-columns:auto repeat(7,1fr);align-items:center;gap:3px;max-width:300px;font-size:.7rem;display:grid}.weeks .day{aspect-ratio:1;background:var(--surface-2);border-radius:4px}.weeks .day.on{background:var(--accent)}.weeks .day.today{outline:1px solid var(--text-2)}.weeks .day.future{background:0 0}.chart{position:relative}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart .tip{pointer-events:none;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:8px;margin-top:-10px;padding:4px 8px;font-size:.8rem;position:absolute;transform:translate(-50%,-100%)}.chat{flex-direction:column;gap:8px;display:flex}.msg{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;max-width:92%;padding:10px 12px}.msg.user{background:var(--accent);color:var(--accent-ink);align-self:flex-end}.msg.assistant{background:var(--surface);border:1px solid var(--line);align-self:flex-start}.msg.tool{color:var(--muted);align-self:flex-start;padding:2px 12px;font-size:.78rem}.composer{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));background:var(--bg);gap:8px;padding:8px 0;display:flex;position:sticky}.composer textarea{height:44px;min-height:44px}.bar{background:var(--surface-2);border-radius:4px;height:8px;position:relative;overflow:hidden}.bar>div{background:var(--accent);border-radius:4px;position:absolute;inset:0 auto 0 0}
