:root{color-scheme:dark;--bg: #0f1115;--panel: #171a21;--panel-raised: #1c1f28;--text: #e8e8ea;--dim: #8a8f98;--accent: #4f8ef7;--accent-dim: #2a5490;--border: #2a2e37;--good: #34c77b;--bad: #e65b5b;--warn: #d9a441;--radius: 10px;--radius-sm: 6px;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--heat-0: #20242d;--heat-1: #1c3a63;--heat-2: #2a5490;--heat-3: #3a72c2;--heat-4: #4f8ef7}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}#app{max-width:900px;margin:0 auto;padding:var(--space-4) var(--space-3) 64px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}h1{font-size:1.3rem;margin:0;font-weight:600}.tab-bar{display:flex;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}.tab-button{background:transparent;border:none;border-radius:5px;padding:7px 18px;font-size:.9rem;font-weight:500;color:var(--dim);cursor:pointer}.tab-button:hover{color:var(--text)}.tab-button.active{background:var(--accent);color:#fff}.control-bar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);font-size:.85rem}.control-group{display:flex;align-items:center;gap:var(--space-2)}.control-bar label{color:var(--dim)}button{background:var(--panel-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;font-size:.9rem}button:hover{border-color:var(--accent)}.mic-toggle{background:var(--accent);border-color:var(--accent);color:#fff}.mic-status{color:var(--dim);font-size:.85rem}.settings-toggle{display:flex;align-items:center;gap:var(--space-2);color:var(--dim);font-size:.85rem;cursor:pointer;margin-left:auto}.settings-toggle input{cursor:pointer}select{background:var(--panel-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px}.tab-panel[hidden]{display:none}#timer-tab:not([hidden]){max-width:560px;margin:0 auto;display:flex;flex-direction:column;align-items:center}.live-view{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:48px 32px;text-align:center}.live-time{font-size:4.5rem;font-weight:600;font-family:SFMono-Regular,Consolas,monospace;line-height:1}.live-status{color:var(--dim);margin-top:var(--space-2);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.manual-stopwatch-view{position:relative}.manual-stopwatch-reset{margin-top:var(--space-4)}.manual-stopwatch-reset:disabled{opacity:.4;cursor:not-allowed}.last-result{min-height:1.4em;margin-top:var(--space-3);font-size:1rem;color:var(--dim)}.last-result strong{color:var(--text)}.last-result.new-pb,.last-result.new-pb strong{color:var(--good)}.mini-stats{width:100%;margin-top:var(--space-4)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}h2{font-size:1rem;margin:0 0 var(--space-3);font-weight:600}.dim{color:var(--dim);font-weight:400}.section-hint{font-size:.85rem;margin:-8px 0 var(--space-3)}.chart-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3);font-size:.85rem;color:var(--dim)}.chart-metric-toggles{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.chart-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;margin-left:var(--space-2)}.chart-toggle input{cursor:pointer}.stats-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--space-2)}.stat-tile{background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 10px;text-align:center}.stat-label{color:var(--dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.15rem;margin-top:var(--space-1);font-weight:600}.heatmap{display:grid;grid-template-rows:auto auto;gap:3px;overflow-x:auto;padding-bottom:4px}.heatmap-month-label{grid-row:1;font-size:.7rem;color:var(--dim);height:14px}.heatmap-col{display:grid;grid-template-rows:repeat(7,11px);gap:3px;grid-row:2}.heatmap-cell{width:11px;height:11px;border-radius:2px;background:var(--heat-0)}.heatmap-cell.future{background:transparent}.heatmap-cell[data-level="0"]{background:var(--heat-0)}.heatmap-cell[data-level="1"]{background:var(--heat-1)}.heatmap-cell[data-level="2"]{background:var(--heat-2)}.heatmap-cell[data-level="3"]{background:var(--heat-3)}.heatmap-cell[data-level="4"]{background:var(--heat-4)}.heatmap-legend{display:flex;align-items:center;gap:4px;margin-top:var(--space-2);font-size:.75rem;color:var(--dim)}.heatmap-legend .heatmap-cell{width:10px;height:10px}.session-compare-controls{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3)}.session-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--dim);cursor:pointer}.session-toggle input{cursor:pointer}.session-swatch{width:10px;height:10px;border-radius:50%;display:inline-block}.history-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.history-table{width:100%;border-collapse:collapse;font-size:.9rem}.history-table th,.history-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.history-table .empty{color:var(--dim);text-align:center}.delete-btn{padding:4px 10px;font-size:.8rem}.auth-group{gap:var(--space-3)}.auth-panel{display:flex;align-items:center;gap:var(--space-2)}.auth-form{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.auth-form input{background:var(--panel-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-size:.85rem;width:150px}.auth-link{background:transparent;border:none;color:var(--accent);padding:4px 2px;font-size:.8rem}.auth-link:hover{border-color:transparent;text-decoration:underline}.auth-error{color:var(--bad);font-size:.8rem}.auth-user{color:var(--text);font-size:.85rem}.auth-logout{padding:6px 12px;font-size:.8rem}.sync-status{font-size:.75rem;color:var(--dim);text-transform:uppercase;letter-spacing:.04em}.sync-status[data-status=idle]{color:var(--good)}.sync-status[data-status=syncing]{color:var(--accent)}.sync-status[data-status=offline]{color:var(--warn)}.sync-status[data-status=error]{color:var(--bad)}.sync-force-btn{padding:4px 8px;font-size:.9rem;line-height:1}.toast{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);background:var(--panel-raised);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:10px 18px;font-size:.85rem;box-shadow:0 4px 16px #0006;z-index:100}
