:root{--bg:#111214;--surface:#1a1c1f;--surface-2:#232629;--text:#f2f3f5;--text-dim:#9aa0a6;--accent:#ffd54a;--accent-ink:#2b2410;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;--radius:14px;--gutter:16px}:root[data-theme=light]{--bg:#fbfbfa;--surface:#fff;--surface-2:#f1f1ef;--text:#16181a;--text-dim:#6b7177;--accent-ink:#2b2410}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{max-width:560px;padding:env(safe-area-inset-top) var(--gutter) env(safe-area-inset-bottom);margin:0 auto}h1{margin:1.2rem 0 .2rem;font-size:1.5rem}h2{margin:1.4rem 0 .5rem;font-size:1.05rem}a{color:var(--accent)}.muted{color:var(--text-dim);font-size:.875rem}.card{background:var(--surface);border-radius:var(--radius);margin:10px 0;padding:14px}.row{justify-content:space-between;align-items:center;gap:10px;display:flex}button{font:inherit;color:var(--text);background:var(--surface-2);cursor:pointer;border:0;border-radius:10px;min-height:44px;padding:10px 14px}button.primary{background:var(--accent);color:var(--accent-ink);font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.pill{background:var(--surface-2);color:var(--text-dim);border-radius:999px;padding:2px 8px;font-size:.75rem;display:inline-block}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--bad)}pre.log{color:#d6d6d6;white-space:pre-wrap;word-break:break-word;background:#000;border-radius:10px;max-height:46vh;padding:10px;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}dl.kv{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;margin:0;display:grid}dl.kv dt{color:var(--text-dim);font-size:.875rem}dl.kv dd{text-align:right;word-break:break-all;margin:0;font-size:.875rem}label{color:var(--text-dim);margin:12px 0 4px;font-size:.875rem;display:block}input[type=email],input[type=password],input[type=text]{width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid #0000;border-radius:10px;min-height:44px;padding:12px}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.block{width:100%;margin-top:16px;display:block}.form-error{color:var(--bad);margin:12px 0 0;font-size:.875rem}ul.list,div.list{margin:12px 0;padding:0;list-style:none}.routine-card{color:inherit;align-items:center;text-decoration:none;display:flex}.routine-main{align-items:center;gap:12px;min-width:0;display:flex}.routine-emoji,.step-emoji{flex:none;font-size:1.4rem}.title-input{font:inherit;background:0 0;border:0;width:100%;padding:4px 0;font-size:1.5rem;font-weight:700}.step-head{text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:4px;display:flex}.step-index{flex:none;width:1.5em}.step-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.step-edit{border-top:1px solid var(--surface-2);margin-top:10px;padding-top:10px}.stepper{justify-content:flex-start;gap:16px}.stepper button{width:48px;font-size:1.25rem}.checkbox-row{color:var(--text);align-items:center;gap:8px;margin:16px 0;display:flex}.checkbox-row input{width:20px;height:20px}.sortable-item{touch-action:manipulation;align-items:stretch;gap:6px;display:flex}.sortable-body{flex:1;min-width:0}.drag-handle{width:36px;color:var(--text-dim);cursor:grab;touch-action:none;background:0 0;flex:none;font-size:1.1rem}.run{text-align:center}.run-step-title{margin:24px 0 8px;font-size:1.35rem}.run-emoji{margin-bottom:8px;font-size:3rem;display:block}.run-timer{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:8px 0;font-size:4rem;font-weight:700}.run-timer.overrun{color:var(--bad)}.overrun-note{color:var(--bad);margin:0 0 8px}.adjust{justify-content:center;margin:8px 0 24px}.run-controls{justify-content:center;gap:24px;margin:8px 0 16px}.run-controls button{border-radius:50%;width:64px;height:64px;font-size:1.25rem}.run-controls .done{width:84px;height:84px;font-size:1.75rem}.next-up{margin-bottom:24px}.start-button{margin:16px 0}
