:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--teal:#0f766e;--teal-soft:#14b8a6;--bg:#f6f7f8;--fg:#1a1a1a;--card:#fff;--muted:#6b7280;--border:#e5e7eb;font-family:system-ui,-apple-system,PingFang TC,Noto Sans TC,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111214;--fg:#e5e7eb;--card:#1c1d20;--muted:#9ca3af;--border:#2e2f33}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0}.page{max-width:640px;padding:calc(env(safe-area-inset-top) + 8px) 16px calc(env(safe-area-inset-bottom) + 76px);margin:0 auto}h1{color:var(--teal-soft);margin:12px 0;font-size:1.5rem}h2{margin:0 0 8px;font-size:1.05rem}.card{background:var(--card);border-radius:12px;margin-bottom:12px;padding:14px;box-shadow:0 1px 3px #00000014}.muted{color:var(--muted)}.small{font-size:.8rem}.error{color:#dc2626}.ok{color:#16a34a}.row{align-items:flex-end;gap:8px;margin-top:10px;display:flex}.row.wrap{flex-wrap:wrap;align-items:center}.row.center{justify-content:center;align-items:center}.row.between{justify-content:space-between;align-items:center;margin-top:0}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}input,select{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:8px;width:100%;min-width:0;padding:10px;font-size:1rem}select{width:100%;margin-top:4px}input[type=number]{width:90px}input[type=range]{width:100%;accent-color:var(--teal-soft);padding:0}button{border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:8px;padding:10px 16px;font-size:1rem}button.primary{background:var(--teal);border-color:var(--teal);color:#fff}button.danger{color:#fff;background:#dc2626;border-color:#dc2626}button.big{padding:14px 28px;font-size:1.2rem}button.wide{width:100%;margin-top:10px}button.active{border-color:var(--teal-soft);color:var(--teal-soft)}button.link{color:var(--muted);background:0 0;border:none;padding:2px 6px;font-size:.8rem}button:disabled{opacity:.5}.iop-note{border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.85rem}.iop-caution{color:#b45309;background:#f59e0b26}.iop-avoid{color:#dc2626;background:#dc262626}@media (prefers-color-scheme:dark){.iop-caution{color:#fbbf24}.iop-avoid{color:#f87171}}.set-list{margin:10px 0 0;padding:0;list-style:none}.set-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 0;font-size:.9rem;display:flex}.set-list li:last-child{border-bottom:none}.rest-timer{align-items:center;gap:8px;margin-top:12px;font-size:.9rem;display:flex}.rest-remaining{font-variant-numeric:tabular-nums;color:var(--teal-soft);min-width:70px;font-size:1.6rem}.jog-card{text-align:center}.jog-time{font-variant-numeric:tabular-nums;margin:8px 0 16px;font-size:3.5rem;font-weight:700}.bpm-row{text-align:left;align-items:flex-end;gap:12px;margin-top:18px;display:flex}.bpm-row label{flex:1}.streak-card{text-align:center}.streak-num{color:var(--teal-soft);font-size:3rem;font-weight:700}.bars{align-items:flex-end;gap:6px;height:120px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;height:100%;display:flex}.bar{background:var(--teal);border-radius:4px 4px 0 0;width:100%;min-height:2px}.bar.jog{background:var(--teal-soft)}.bar-val{color:var(--muted);font-size:.7rem}.bar-label{color:var(--muted);font-size:.65rem}.auth-page{flex-direction:column;justify-content:center;min-height:80vh;display:flex}.auth-hero{text-align:center;margin-bottom:8px}.auth-hero h1{margin-bottom:0;font-size:2.2rem}.auth-form{flex-direction:column;gap:10px;margin:10px 0;display:flex}.tabbar{background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:.75rem;display:flex}.tabbar button.active{color:var(--teal-soft)}.tab-icon{justify-content:center;align-items:center;height:24px;display:flex}
