:root{--green:#0f6;--green-glow:rgba(0,255,102,.4);--green-dim:rgba(0,255,102,.08);--blue:#48f;--gold:#fbbc05;--gold-dim:rgba(251,188,5,.1);--red:#f44;--bg:#000;--surface:#0a0a0a;--surface-2:#050505;--surface-3:#111;--border:#1a1a1a;--border-2:#333;--text:#fff;--dim:#888;--dimmer:#666;--font-head:"Clash Display","Inter",sans-serif;--font-sans:"Satoshi","Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"Courier New",monospace;--radius-sm:8px;--radius:10px;--radius-md:14px;--radius-lg:20px;--pill:100px;--container:1200px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text)}body{font-family:var(--font-sans);font-size:15px;line-height:1.55;letter-spacing:.015em;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.02em}a{color:inherit;text-decoration:none}.wrap{max-width:var(--container);margin:0 auto;padding:0 24px}.top{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.top .wrap{display:flex;align-items:center;gap:16px;height:60px}.brand{font-family:var(--font-head);font-weight:800;font-size:18px}.brand .accent{color:var(--green)}.top .spacer{flex:1 1}.hb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--dim)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.green{background:var(--green);box-shadow:0 0 10px var(--green-glow)}.dot.gold{background:var(--gold)}.dot.red{background:var(--red)}.chip{font-size:11px;text-transform:uppercase;letter-spacing:.1em;padding:4px 10px;border-radius:var(--pill);border:1px solid var(--border-2);color:var(--dim)}.chip.live{color:var(--green);border-color:var(--green)}section{margin:28px 0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--dimmer);margin-bottom:14px}.kpis{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:16px;gap:16px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px}.kpi .label{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em}.kpi .num{font-family:var(--font-head);font-weight:800;font-size:40px;line-height:1.1;margin-top:8px}.kpi .sub{font-size:12px;color:var(--dimmer);margin-top:4px}.kpi.attn{border-color:var(--gold)}.kpi.attn .num{color:var(--gold)}.num.green{color:var(--green)}.num.red{color:var(--red)}.board{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:14px;gap:14px}.col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;min-height:120px}.col h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);display:flex;justify-content:space-between;margin-bottom:10px}.col h3 .cnt{color:var(--green)}.pcard{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;margin-bottom:8px}.pcard .dish{font-weight:600;font-size:13px}.pcard .meta{font-size:11px;color:var(--dimmer);margin-top:3px}.empty{color:var(--dimmer);font-size:12px;padding:8px 2px}.row2{display:grid;grid-template-columns:2fr 1fr;grid-gap:16px;gap:16px;align-items:start}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px}.jobs details{border-bottom:1px solid var(--border)}.jobs details:last-child{border-bottom:0}.jobs summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1.4fr 1fr 90px 70px 70px 90px;grid-gap:10px;gap:10px;align-items:center;padding:11px 4px;font-size:13px}.jobs summary::-webkit-details-marker{display:none}.jobs .jid{font-family:var(--font-mono);font-size:11px;color:var(--dim)}.jobs .jname{font-weight:600}.pill{font-size:11px;padding:3px 9px;border-radius:var(--pill);text-transform:uppercase;letter-spacing:.06em;display:inline-block}.pill.success{background:var(--green-dim);color:var(--green)}.pill.running{background:var(--gold-dim);color:var(--gold)}.pill.failed{background:rgba(255,68,68,.12);color:var(--red)}.jcell{color:var(--dim);font-size:12px}.jdetail{padding:8px 4px 16px;font-size:13px}.step{display:flex;gap:8px;border-left:2px solid var(--border);padding:5px 0 5px 12px;margin-left:4px}.step.ok{border-color:var(--green)}.step.bad{border-color:var(--red)}.step .t{font-family:var(--font-mono);font-size:12px}pre.log{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;font-size:11px;color:var(--dim);overflow:auto;max-height:220px;white-space:pre-wrap}.gauge .big{font-family:var(--font-head);font-weight:800;font-size:52px}.bar{height:8px;background:var(--surface-3);border-radius:var(--pill);overflow:hidden;margin:6px 0 2px}.bar>span{display:block;height:100%;background:var(--green)}.bar.warn>span{background:var(--gold)}.bar.bad>span{background:var(--red)}.gauge .lbl{font-size:12px;color:var(--dim);display:flex;justify-content:space-between;margin-top:8px}.feed .it{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.feed .it:last-child{border-bottom:0}.feed .when{color:var(--dimmer);font-size:11px;min-width:64px}.feed .ev{flex:1 1}.feed .lvl{width:7px;height:7px;border-radius:50%;margin-top:7px}.lvl.info{background:var(--dimmer)}.lvl.error{background:var(--red)}.lvl.warn{background:var(--gold)}.foot{color:var(--dimmer);font-size:12px;text-align:center;margin:40px 0 28px}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:34px 26px}.login-card label{display:block;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;margin:14px 0 6px}.login-card input{width:100%;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius);color:var(--text);padding:13px 14px;font-size:16px;font-family:var(--font-sans)}.login-card input:focus{outline:none;border-color:var(--green)}.login-card button{width:100%;margin-top:24px;background:var(--green);color:#000;border:0;border-radius:var(--radius);padding:15px;font-weight:700;font-size:15px;font-family:var(--font-sans);cursor:pointer}.login-card button:active{transform:translateY(1px)}.login-err{background:rgba(255,68,68,.12);color:var(--red);border:1px solid var(--red);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;margin-bottom:10px}.bottomnav{display:none}section{scroll-margin-top:70px}@media (min-width:901px) and (max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.wrap{padding:0 14px}body{padding-bottom:72px}.top .wrap{height:54px}.kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi{padding:16px}.kpi .num{font-size:30px}.row2{grid-template-columns:1fr}.board{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px}.board .col{flex:0 0 80%;scroll-snap-align:start}.jobs summary{grid-template-columns:1fr auto;gap:8px}.jobs summary .hideSm{display:none}.jobs .jid{word-break:break-all}.bottomnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(0,0,0,.93);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{text-align:center;padding:11px 0 13px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.bottomnav a .ic{display:block;font-size:17px;margin-bottom:3px;line-height:1}.bottomnav a:active{color:var(--green)}}