:root { --ink:#16233b; --muted:#65728a; --brand:#2155c9; --line:#dbe2ef; --canvas:#f4f7fc; --ok:#147a4b; --bad:#b3261e; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:var(--canvas); font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:var(--brand); text-decoration:none; } a:hover { text-decoration:underline; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:15px max(24px,calc((100vw - 1300px)/2)); background:#fff; border-bottom:1px solid var(--line); }
.topbar strong { font-size:18px; margin-left:12px; }.topbar span,.muted,small { color:var(--muted); }.topbar nav { display:flex; gap:16px; align-items:center; }.topbar form { margin:0; }
.shell { max-width:1300px; margin:26px auto; padding:0 22px 36px; }.panel { padding:22px; margin:18px 0; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 2px 8px #1f3c7309; }.grid-two { display:grid; grid-template-columns:1fr 1fr; gap:34px; }.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.metrics article { padding:18px 20px; background:#152a58; color:#fff; border-radius:12px; }.metrics span { display:block; opacity:.75; }.metrics strong { display:block; margin-top:4px; font-size:30px; }
h1,h2 { margin:0 0 10px; } h2 { font-size:18px; }.section-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:12px; }
label { display:block; margin:9px 0; font-weight:600; } input,textarea,select { display:block; width:100%; margin-top:4px; padding:9px 10px; border:1px solid #b9c6dc; border-radius:6px; background:#fff; color:var(--ink); font:inherit; }.compact-form { max-width:470px; }.wide-form { max-width:720px; } textarea { resize:vertical; }
button,.button { display:inline-block; padding:9px 13px; border:1px solid var(--brand); border-radius:6px; color:#fff; background:var(--brand); font:600 14px inherit; cursor:pointer; text-decoration:none; }.button.secondary,button.secondary { background:#fff; color:var(--brand); }.link-button { border:0; padding:0; color:var(--brand); background:transparent; font-weight:400; }.link-button:hover { text-decoration:underline; }.button:hover { text-decoration:none; filter:brightness(.96); } button:disabled { opacity:.55; cursor:wait; }
table { width:100%; border-collapse:collapse; } th,td { padding:11px 9px; vertical-align:top; text-align:left; border-top:1px solid var(--line); } th { border-top:0; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.03em; } td small { display:block; margin-top:2px; word-break:break-word; }.status { display:inline-block; padding:3px 7px; border-radius:999px; background:#e7eaf0; color:#364152; font-size:12px; }.status.online,.status.completed { color:var(--ok); background:#e4f5ed; }.status.offline,.status.failed { color:var(--bad); background:#fce8e6; }.status.downloading,.status.verifying,.status.uploading { color:#955e00; background:#fff3d6; }.status.queued,.status.paused,.status.initiated { color:#2255aa; background:#e6efff; }
progress { width:110px; height:10px; vertical-align:middle; }.notice { padding:11px 14px; margin:14px 0; border-radius:7px; background:#e6efff; }.notice.error,.error { color:var(--bad); background:#fce8e6; }.token-output { display:block; min-height:20px; padding:8px 0; color:#6d3c00; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; overflow-wrap:anywhere; }.upload-progress { display:flex; align-items:center; gap:12px; margin-top:16px; }.upload-progress progress { width:240px; }.log { max-height:260px; padding:12px; overflow:auto; background:#101b31; color:#d9e6ff; border-radius:7px; white-space:pre-wrap; }.check { padding:8px 0; font-weight:400; }.check input { display:inline; width:auto; margin-right:8px; } dialog { min-width:min(500px,90vw); border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 55px #0004; } dialog::backdrop { background:#07142c77; } menu { display:flex; justify-content:flex-end; gap:10px; padding:0; }
.login-page { display:grid; min-height:100vh; place-items:center; }.login-card { width:min(390px,calc(100vw - 40px)); padding:30px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:0 9px 35px #1f3c7320; }.login-card input { margin-bottom:16px; }
@media (max-width:760px) { .grid-two,.metrics { grid-template-columns:1fr; }.shell { padding:0 12px; }.panel { overflow-x:auto; padding:16px; }.topbar { padding:15px 16px; }.topbar span { display:none; } }
