:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1e222b;--border: #2a2f3a;--text: #e6e8ec;--muted: #8b93a1;--accent: #4f8cff;--accent-fg: #ffffff;--danger: #e5484d;--ok: #3fb950;--warn: #d29922;--stale: #8b93a1;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}h1,h2{font-weight:650}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace}.error{color:var(--danger);margin:.5rem 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--accent);color:var(--accent-fg);border-radius:6px;padding:.45rem .9rem;border-color:transparent}button:disabled{opacity:.55;cursor:not-allowed}button.danger{background:transparent;color:var(--danger);border-color:var(--danger);padding:.25rem .6rem}button.link{background:none;border:none;color:var(--muted);padding:0;text-decoration:underline}input,select{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem}.login{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:2rem;width:min(360px,100%);display:flex;flex-direction:column;gap:.4rem}.login-card h1{margin:0;font-size:1.25rem}.login-card label{margin-top:.6rem;font-size:.85rem;color:var(--muted)}.login-card button{margin-top:1.2rem}.dashboard{max-width:1100px;margin:0 auto;padding:1rem 1.25rem 4rem}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 0 1.25rem;border-bottom:1px solid var(--border)}.topbar h1{margin:0;font-size:1.15rem}.fleet-summary{display:flex;gap:1.25rem;margin-left:auto;color:var(--muted)}.fleet-summary strong{color:var(--text)}section{margin-top:2rem}section>h2{font-size:1rem;margin:0 0 .75rem}.data-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--border);vertical-align:middle}.data-table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody th{font-weight:500}.addr{display:block;font-size:.75rem}.progress{height:6px;background:var(--panel-2);border-radius:3px;overflow:hidden;margin-bottom:.25rem;min-width:120px}.progress-bar{height:100%;background:var(--accent)}.status{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;border:1px solid var(--border)}.st-running{color:var(--ok);border-color:var(--ok)}.st-booting{color:var(--warn);border-color:var(--warn)}.st-done{color:var(--accent);border-color:var(--accent)}.st-stale{color:var(--stale)}.launch-form{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem}.launch-form h2{margin:0 0 .75rem;font-size:1rem}.launch-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.launch-row input[type=number]{width:5rem}
