:root{color-scheme:light dark;--bg: #0f1419;--surface: #1a2332;--surface-2: #243044;--border: #2d3a4f;--text: #e7ecf3;--muted: #8b9bb4;--accent: #3b82f6;--accent-hover: #2563eb;--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--radius: 10px}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:var(--sans);background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:var(--accent);color:#fff;padding:.55rem 1rem;border-radius:8px;font:inherit;cursor:pointer}button:hover,.btn:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.btn.secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}button.danger,.btn.danger{background:var(--danger)}input,select,textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.55rem .75rem;font:inherit}textarea{font-family:var(--mono);min-height:200px;line-height:1.45}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}.field{margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.layout{max-width:1100px;margin:0 auto;padding:1.5rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.brand{font-weight:700;font-size:1.15rem;letter-spacing:-.02em}.brand span{color:var(--accent)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:500;font-size:.85rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:var(--surface-2);border:1px solid var(--border)}.badge.success{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,var(--border))}.badge.failed,.badge.error{color:var(--danger)}.badge.running{color:var(--warning)}.log{background:#0a0e14;border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;font-family:var(--mono);font-size:.8rem;max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-word}.log .stderr{color:#fca5a5}.log .system{color:#93c5fd}.tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button{background:transparent;border:1px solid var(--border);color:var(--muted)}.tabs button.active{background:var(--surface-2);color:var(--text);border-color:var(--accent)}.error-banner{background:color-mix(in srgb,var(--danger) 15%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border));color:#fecaca;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.muted{color:var(--muted)}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.grow{flex:1}.stack{display:grid;gap:1rem}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-card{width:min(420px,100%)}
