:root{--bg:#070a12;--s1:#0e131f;--s2:#151b2b;--tx:#eef2f9;--tx2:#9aa6bd;--ln:rgba(255,255,255,.1);--blue:#7aa2ff;--cy:#62d6e8;--ok:#6fd6a0;--wn:#e8c46a;--er:#ef7b7b;--r1:8px;--r2:16px;--r3:24px;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);line-height:1.6;min-height:100vh}
.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(60% 50% at 78% -5%,rgba(122,162,255,.16),transparent 70%),radial-gradient(45% 40% at 5% 105%,rgba(98,214,232,.09),transparent 70%),linear-gradient(180deg,#080b14,#05070d)}
a{color:var(--blue)}h1,h2,h3{line-height:1.15;margin:0 0 .6em;letter-spacing:-.02em}
.glass{background:rgba(24,30,46,.55);border:1px solid var(--ln);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 40px rgba(0,0,0,.35)}
@supports(backdrop-filter:blur(1px)){.glass{backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}}
@supports not (backdrop-filter:blur(1px)){.glass{background:var(--s2)}}
.bar{position:sticky;top:10px;z-index:5;margin:10px auto 0;width:min(1040px,calc(100% - 20px));display:flex;align-items:center;gap:20px;padding:9px 12px 9px 18px;border-radius:var(--r2)}
.brand{display:flex;gap:9px;align-items:center;font-weight:650;color:var(--tx);text-decoration:none;margin-right:auto}
.bar nav{display:flex;gap:18px}.bar nav a{color:var(--tx2);text-decoration:none;font-size:14px}.bar nav a:hover{color:var(--tx)}
.btn{font:inherit;font-weight:600;border-radius:var(--r1);border:1px solid var(--ln);background:var(--s2);color:var(--tx);padding:10px 18px;cursor:pointer;text-decoration:none;display:inline-block;transition:transform .15s,background .15s}
.btn:hover{background:#1c2438}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(180deg,#9dbbff,#6e95f5);color:#07102a;border-color:transparent}.btn.sm{padding:7px 14px;font-size:14px}.btn[disabled]{opacity:.45;cursor:not-allowed}
:focus-visible{outline:2px solid var(--cy);outline-offset:2px}
main{width:min(1040px,calc(100% - 28px));margin:0 auto;padding:56px 0 90px}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:28px 0 56px}
.hero h1{font-size:clamp(34px,5.4vw,58px);font-weight:600}.hero p{color:var(--tx2);font-size:18px;max-width:46ch}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.panel{background:rgba(21,27,43,.8);border:1px solid var(--ln);border-radius:var(--r2);padding:24px}
.log{background:#05070c;border:1px solid var(--ln);border-radius:var(--r1);font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding:14px;height:340px;overflow:auto;white-space:pre-wrap;word-break:break-word}
.log .warn{color:var(--wn)}.log .error{color:var(--er)}.log .success{color:var(--ok)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}
label{display:block;font-size:14px;color:var(--tx2);margin:14px 0 6px}
input[type=text],input[type=number]{width:100%;font:inherit;padding:11px 13px;border-radius:var(--r1);border:1px solid var(--ln);background:#0a0e18;color:var(--tx)}
.row{display:grid;grid-template-columns:1fr 110px;gap:12px}.err{color:var(--er);margin:12px 0 0;min-height:1.4em}
.rail{display:flex;gap:6px;margin:0 0 24px;padding:0;list-style:none;flex-wrap:wrap}.rail li{padding:5px 12px;border-radius:99px;font-size:13px;color:var(--tx2);border:1px solid var(--ln)}.rail li.on{color:#07102a;background:var(--blue);border-color:transparent}.rail li.done{color:var(--ok)}
table{width:100%;border-collapse:collapse}td{padding:9px 6px;border-bottom:1px solid var(--ln);vertical-align:top}td:first-child{color:var(--tx2);width:34%}
.pill{font-size:12px;padding:2px 9px;border-radius:99px;border:1px solid currentColor}.pass{color:var(--ok)}.warn{color:var(--wn)}.fail,.failed{color:var(--er)}
.live{display:grid;grid-template-columns:260px 1fr;gap:20px}.steps{list-style:none;margin:0;padding:0}.steps li{padding:8px 0;color:var(--tx2);display:flex;gap:10px}.steps li.running{color:var(--tx)}.steps li.done{color:var(--ok)}.steps li.failed{color:var(--er)}
details{border-bottom:1px solid var(--ln);padding:12px 0}summary{cursor:pointer;font-weight:600}
@media(max-width:760px){.hero,.live{grid-template-columns:1fr}.bar nav{display:none}.log{height:280px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
