:root{--bg:#0b0f14;--bg-elev:#121821;--border:#243044;--text:#e7eef8;--muted:#8b9bb4;--accent:#3dd6c6;--accent-2:#5b8cff;--danger:#ff6b7a;--ok:#5ee09d;--warn:#f5c16c;--radius:10px;--font:"Segoe UI",ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--accent);color:#04221e;border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}button.danger{background:var(--danger);color:#1a0609}input,select,textarea{background:#0e141c;border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field{margin-bottom:14px}.shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.nav{display:flex;align-items:center;gap:18px;padding:14px 22px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.nav .brand{font-weight:700;color:var(--text);letter-spacing:.02em}.nav a{color:var(--muted)}.nav a.active,.nav a:hover{color:var(--text);text-decoration:none}.nav .spacer{flex:1 1}.nav .user{color:var(--muted);font-size:13px}.page{padding:28px;max-width:1100px;margin:0 auto;width:100%}h1{font-size:22px;margin:0 0 8px}.lede{color:var(--muted);margin:0 0 22px}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:18px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);font-size:14px}th{text-transform:uppercase;letter-spacing:.04em}.badge,th{color:var(--muted);font-weight:600;font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#1b2430}.badge.ok{background:#123526;color:var(--ok)}.badge.fail{background:#3a151c;color:var(--danger)}.badge.run{background:#1a2a44;color:var(--accent-2)}.badge.warn{background:#3a2d12;color:var(--warn)}.login{min-height:100vh;display:grid;place-items:center}.login .card{width:420px;text-align:center}.error{color:var(--danger);font-size:13px;margin-top:10px}.row{display:flex;gap:10px;align-items:center}.muted{color:var(--muted);font-size:13px}