:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #273449;--text: #e2e8f0;--muted: #94a3b8;--brand: #38bdf8;--brand-ink: #082f49;--border: #334155;--danger: #f87171;--ok: #34d399;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}.error{color:var(--danger);font-size:.9rem;margin-top:.25rem}.app{max-width:960px;margin:0 auto;padding:0 1rem 3rem}.topbar{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.topbar .brand{font-weight:700;font-size:1.2rem;color:var(--brand);text-decoration:none}.topbar nav{display:flex;gap:1rem}.topbar nav a{color:var(--text);text-decoration:none;opacity:.8}.topbar nav a:hover{opacity:1}.spacer{flex:1}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.5rem}.card h2,.card h3{margin-top:0}.auth{width:min(360px,92vw);display:flex;flex-direction:column;gap:.75rem}.auth h1{margin:0;color:var(--brand)}input[type=text],input[type=email],input[type=password],input:not([type]){width:100%;padding:.6rem .75rem;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.95rem}.checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;cursor:pointer}.checkbox input{width:auto}button{cursor:pointer;border-radius:8px;border:1px solid var(--border);padding:.55rem .9rem;background:var(--panel-2);color:var(--text);font-size:.9rem}button.primary{background:var(--brand);color:var(--brand-ink);border-color:transparent;font-weight:600}button.primary:hover{filter:brightness(1.05)}button.primary.sm{padding:.3rem .6rem;font-size:.8rem}button.ghost{background:transparent}button.link{background:none;border:none;color:var(--brand);padding:0;text-align:left}button:disabled{opacity:.6;cursor:default}.dropzone{border:2px dashed var(--border);border-radius:12px;padding:2.5rem 1rem;text-align:center;color:var(--muted);transition:border-color .15s,background .15s;cursor:pointer}.dropzone.dragging{border-color:var(--brand);background:#38bdf814;color:var(--text)}.dropzone.busy{opacity:.7;cursor:default}table.jobs{width:100%;border-collapse:collapse;font-size:.9rem}table.jobs th{text-align:left;color:var(--muted);font-weight:500;padding:.5rem .6rem;border-bottom:1px solid var(--border)}table.jobs td{padding:.5rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}.err-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--danger)}.bar{width:120px;height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--brand);transition:width .4s}.pill{padding:.15rem .55rem;border-radius:999px;font-size:.75rem;text-transform:capitalize}.pill-created,.pill-queued{background:#334155;color:var(--text)}.pill-leased,.pill-running{background:#1e3a5f;color:var(--brand)}.pill-done{background:#34d39926;color:var(--ok)}.pill-failed{background:#f8717126;color:var(--danger)}.admin h2{margin-bottom:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin-bottom:1.5rem}.stat{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.9rem;text-align:center}.stat-num{font-size:1.6rem;font-weight:700}.chart{display:flex;align-items:flex-end;gap:.4rem;height:140px;padding-top:.5rem}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.chart-bar{width:70%;min-height:2px;background:var(--brand);border-radius:4px 4px 0 0}.chart-label{font-size:.65rem;color:var(--muted);margin-top:.3rem}
