:root { color-scheme: dark; --bg:#0f1115; --panel:#171a21; --line:#262a33; --text:#e6e8ee; --muted:#8b93a5; --accent:#7aa2f7; --warn:#f7b26a; --ok:#7bd88f; --bad:#f77a7a; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif; padding-bottom: 72px; }
header { position:sticky; top:0; background:var(--bg); border-bottom:1px solid var(--line); padding: env(safe-area-inset-top) 16px 10px; display:flex; align-items:baseline; gap:12px; }
header h1 { font-size:17px; margin:10px 0 0; }
header .sub { color:var(--muted); font-size:13px; }
main { padding: 12px 16px; max-width: 900px; margin: 0 auto; }
nav { position:fixed; bottom:0; left:0; right:0; background:var(--panel); border-top:1px solid var(--line); display:flex; padding-bottom: env(safe-area-inset-bottom); }
nav button { flex:1; background:none; border:0; color:var(--muted); padding:12px 4px 10px; font-size:12px; }
nav button.active { color:var(--accent); }
nav button b { display:block; font-size:16px; font-weight:600; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin:10px 0; }
.card h3 { margin:0 0 4px; font-size:15px; }
.meta { color:var(--muted); font-size:13px; }
.pill { display:inline-block; font-size:11px; padding:2px 8px; border-radius:999px; border:1px solid var(--line); color:var(--muted); margin-right:6px; }
.pill.halted, .pill.failed { color:var(--bad); border-color:var(--bad); }
.pill.done { color:var(--ok); border-color:var(--ok); }
.pill.running, .pill.claimed { color:var(--warn); border-color:var(--warn); }
textarea, input, select { width:100%; background:var(--bg); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:9px 10px; font:inherit; margin:6px 0; }
textarea { min-height:72px; resize:vertical; }
.row { display:flex; gap:8px; align-items:center; }
.row > * { flex:1; }
button.primary { background:var(--accent); color:#0b0d12; border:0; border-radius:8px; padding:9px 14px; font-weight:600; }
button.ghost { background:none; color:var(--muted); border:1px solid var(--line); border-radius:8px; padding:9px 14px; }
.empty { color:var(--muted); text-align:center; padding:28px 0; }
.stat { display:flex; gap:10px; }
.stat .card { flex:1; text-align:center; }
.stat b { font-size:22px; display:block; }
pre { white-space:pre-wrap; font-size:13px; color:var(--muted); margin:6px 0 0; }
