@font-face{font-family:Inter;src:url(/assets/Inter.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root{--bg:#0b0b0c;--bg-2:#121214;--surface:#1a1a1d;--elevated:#26272b;--failure-surface:#21160d;--text:#f4f4f1;--text-2:#a9a9b2;--text-3:#8c8c96;--orange:#ff7300;--success:#6bd49b;--warning:#f2c66d;--info:#8ab4f8;--border-subtle:#26272b;--border:#3d3d44;--border-strong:#6e6e78;--timeline-line:#64646e;--sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{font:400 14px/1.5 var(--sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3,p,dl,dd,ol,ul{margin:0}a{color:var(--info)}a:hover{color:#b5cefa}:focus-visible{outline:2px solid var(--orange);outline-offset:3px}button{font:inherit}.app{flex-wrap:wrap;align-items:stretch;min-height:100vh;display:flex}.rail{background:var(--bg-2);border-right:1px solid var(--border-subtle);flex-direction:column;flex:240px;gap:20px;min-width:0;max-width:100%;padding:20px 16px;display:flex}.content{flex-direction:column;flex:999 560px;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:14px 24px;display:flex}.page{flex-direction:column;flex:auto;gap:24px;min-width:0;padding:24px;display:flex}.page.narrow{max-width:1040px}.stack{flex-direction:column;gap:20px;min-width:0;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.split{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.split>.main{flex:999 560px;min-width:0}.split>.side{flex:320px;min-width:0}.grid-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.spacer{flex:1 1 0}.mono{font-family:var(--mono);font-size:13px}.ovl{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.lbl{letter-spacing:.02em;color:var(--text-2);font-size:12px;font-weight:500}.muted{color:var(--text-2)}.dim{color:var(--text-3)}.h1{letter-spacing:-.015em;font-size:24px;font-weight:600;line-height:1.25}.h2{font-size:16px;font-weight:600;line-height:1.4}.h3{font-size:14px;font-weight:600;line-height:1.4}.help{color:var(--text-2);font-size:12px;line-height:1.45}.nr{color:var(--text-3);font-style:italic}.ell{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.clamp2{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wrap-any{overflow-wrap:anywhere}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.warn-text{color:var(--warning)}.panel{background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px}.card{background:var(--bg-2);border:1px solid var(--border-subtle);border-radius:12px}.pad{padding:20px}.pad-sm{padding:14px}.dashed{border-style:dashed;border-color:var(--border)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.btn{border:1px solid var(--border-strong);min-height:40px;color:var(--text);font:500 14px/1.2 var(--sans);cursor:pointer;white-space:nowrap;transition:background-color .12s var(--ease), border-color .12s var(--ease);background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--elevated);border-color:var(--text-2);color:var(--text)}.btn:active{background:#303136}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;border-color:var(--border);background:0 0}.btn[aria-pressed=true]{background:var(--elevated);border-color:var(--text)}.btn-p{background:var(--orange);border-color:var(--orange);color:var(--bg);font-weight:600}.btn-p:hover{color:var(--bg);background:#ff8a2e;border-color:#ff8a2e}.btn-p:active{background:#e86800}.btn-p[disabled]{background:var(--border);border-color:var(--border);color:var(--text-2);opacity:1}.btn-g{border-color:#0000}.btn-g:hover{border-color:var(--border)}.btn-d{color:#ff9a4d;border-color:#7a4517}.btn-d:hover{background:var(--failure-surface);border-color:var(--orange);color:#ff9a4d}.btn-sm{gap:6px;min-height:32px;padding:0 10px;font-size:13px}.ib{width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ib:hover{background:var(--elevated);color:var(--text);border-color:var(--border)}.mini{border:1px solid var(--border);min-height:26px;color:var(--text-2);font:500 12px/1 var(--sans);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:0 8px}.mini:hover{color:var(--text);border-color:var(--border-strong)}.linkbtn{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.linkbtn:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}a.linkbtn{color:var(--text)}.linkbtn.mono{font-family:var(--mono);font-size:13px}.ic{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none}.inp{border:1px solid var(--border-strong);background:var(--bg);width:100%;min-height:40px;color:var(--text);font:400 14px/1.4 var(--sans);border-radius:8px;padding:8px 12px}.inp:hover{border-color:var(--text-2)}.inp[aria-invalid=true]{border-color:var(--orange)}.inp.mono{font-family:var(--mono);font-size:13px}textarea.inp{resize:vertical;min-height:132px;line-height:1.5}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.err{color:#ff9a4d;align-items:flex-start;gap:6px;font-size:12px;display:flex}.check{width:18px;height:18px;accent-color:var(--orange);flex:none;margin:2px 0 0}.seg{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.seg button{min-height:36px;color:var(--text-2);font:500 14px/1 var(--sans);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:auto;padding:0 12px}.seg button[aria-pressed=true]{background:var(--elevated);color:var(--text)}.switch{border:1px solid var(--border-strong);background:var(--bg);min-height:44px;color:var(--text);cursor:pointer;font:500 14px/1 var(--sans);border-radius:999px;flex:none;align-items:center;gap:10px;padding:0 14px 0 6px;display:inline-flex}.switch .knob{background:var(--border);border-radius:999px;width:40px;height:22px;transition:background-color .12s;position:relative}.switch .knob:after{content:"";background:var(--text-2);border-radius:50%;width:16px;height:16px;transition:transform .12s;position:absolute;top:3px;left:3px}.switch[aria-checked=true] .knob{background:var(--success)}.switch[aria-checked=true] .knob:after{background:var(--bg);transform:translate(18px)}.nav-list{flex-wrap:wrap;gap:4px;display:flex}.rail-user{flex-direction:column;gap:8px;margin-top:auto;display:flex}.nav{min-height:40px;color:var(--text-2);font:500 14px/1.2 var(--sans);border:1px solid #0000;border-radius:8px;flex:160px;align-items:center;gap:10px;padding:0 12px;text-decoration:none;display:flex}.nav:hover{color:var(--text);background:#1f1f23}.nav[aria-current=page]{background:var(--elevated);color:var(--text);border-color:var(--border)}.tabs{border-bottom:1px solid var(--border);margin:0 -8px;display:flex;overflow-x:auto}.tab{height:44px;color:var(--text-2);font:500 14px/1 var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;margin:0 8px;padding:0 4px;text-decoration:none;display:inline-flex}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--text)}.badge{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.bo{border-radius:4px}.b-info{color:var(--info);background:#8ab4f81a;border-color:#8ab4f859}.b-ok{color:var(--success);background:#6bd49b1a;border-color:#6bd49b59}.b-warn{color:var(--warning);background:#f2c66d1a;border-color:#f2c66d59}.b-fail{color:#ff8a33;background:var(--failure-surface);border-color:#ff730073}.b-neutral{color:#c9c9cf;background:var(--elevated);border-color:var(--border)}.bo.b-ok,.bo.b-warn,.bo.b-neutral{background:0 0}.chip{background:var(--elevated);border:1px solid var(--border);min-height:28px;color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:0 4px 0 10px;font-size:12px;display:inline-flex}.fchip{border:1px solid var(--border);min-height:32px;color:var(--text-2);cursor:pointer;font:500 12px/1 var(--sans);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.fchip[aria-pressed=true]{border-color:var(--text-2);color:var(--text);background:var(--elevated)}.scroll-x{overflow-x:auto}.tr{border-bottom:1px solid var(--border-subtle);align-items:center;column-gap:16px;min-height:52px;padding:8px 16px;display:grid}.th{min-height:36px;color:var(--text-2);letter-spacing:.02em;border-bottom:1px solid var(--border);background:#17171a;padding-top:6px;padding-bottom:6px;font-size:12px;font-weight:500}.rowh:hover{background:#1f1f23}.tr.sel{background:var(--elevated)}.rowfail{background:var(--failure-surface)}.evx{border-bottom:1px solid var(--border-subtle);background:var(--bg-2)}.cl-list{grid-template-columns:118px minmax(240px,2.6fr) 96px 92px 104px 132px 112px 140px 148px;min-width:1240px}.cl-over{grid-template-columns:110px minmax(220px,2.6fr) 140px 112px 128px 132px;min-width:900px}.cl-ev{grid-template-columns:60px 92px 112px minmax(160px,1.2fr) minmax(220px,2fr) 40px;min-width:920px}.cl-net{grid-template-columns:52px 72px minmax(260px,2.5fr) 104px 84px 196px;min-width:860px}.cl-runs{grid-template-columns:84px 160px 80px 80px 100px 92px minmax(170px,1.4fr) 84px 128px 40px;min-width:1180px}.cl-cmp{grid-template-columns:minmax(160px,1.3fr) minmax(140px,1fr) minmax(140px,1fr) 96px;min-width:640px}.cl-att{grid-template-columns:60px 116px 84px 104px 76px 128px minmax(220px,2fr);min-width:900px}.cl-cap{grid-template-columns:minmax(200px,1.4fr) minmax(220px,1.6fr) 170px;min-width:760px}.kvgrid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:6px 24px;display:grid}.kv-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:130px minmax(0,1fr);gap:8px;padding:4px 0;font-size:13px;display:grid}.kv{grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:8px 16px;font-size:13px;display:grid}.kv dt{color:var(--text-2)}.kv dd{overflow-wrap:anywhere;min-width:0}.code{background:var(--bg);border:1px solid var(--border-subtle);font:400 13px/1.6 var(--mono);color:var(--text);white-space:pre;tab-size:2;border-radius:8px;margin:0;padding:12px 14px;overflow-x:auto}.code.wrap{white-space:pre-wrap;word-break:break-word}.code.tall{max-height:360px;overflow:auto}.callout{border:1px solid;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.callout.warn{color:var(--warning);background:#f2c66d12;border-color:#f2c66d59}.callout.info{color:#c8dafb;background:#8ab4f812;border-color:#8ab4f859}.callout.fail{color:#ff9a4d;background:var(--failure-surface);border-color:#ff730073}.callout.ok{color:var(--success);background:#6bd49b12;border-color:#6bd49b59}.cardbtn{text-align:left;color:var(--text);font:inherit;cursor:pointer;flex-direction:column;gap:10px;padding:20px;text-decoration:none;transition:border-color .12s,background-color .12s;display:flex}.cardbtn:hover{border-color:var(--border-strong);color:var(--text);background:#17171a}.big-num{letter-spacing:-.02em;font-size:32px;font-weight:500;line-height:1.1}.atts{flex-wrap:wrap;gap:4px;display:flex}.att{border:1px solid;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.att-r{color:#ff8a33;background:var(--failure-surface);border-color:#ff730073}.att-c{color:var(--success);background:#6bd49b1a;border-color:#6bd49b59}.att-i{color:#c9c9cf;border-color:var(--border-strong);background:var(--elevated)}.att-m{color:var(--text-3);border-style:dashed;border-color:var(--border-strong);background:0 0}.tl-grid{grid-template-columns:128px minmax(0,1fr);min-width:560px;display:grid}.lane-l{border-top:1px solid var(--border-subtle);flex-direction:column;justify-content:center;gap:2px;padding:6px 12px 6px 0;font-size:13px;font-weight:500;display:flex}.lane-t{border-top:1px solid var(--border-subtle);background:var(--bg-2);position:relative;overflow:hidden}.tick{background:#222226;width:1px;position:absolute;top:0;bottom:0}.failline{background:var(--orange);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.mk{border:2px solid var(--text-2);background:var(--bg-2);cursor:pointer;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;padding:0;transition:transform .12s;position:absolute;top:50%}.mk:hover{border-color:var(--text);transform:scale(1.25)}.mk.fl{background:var(--orange);border-color:var(--orange)}.mk.on{background:var(--text);border-color:var(--text);box-shadow:0 0 0 3px var(--bg-2), 0 0 0 5px var(--text)}.mk.fl.on{background:var(--orange);border-color:var(--orange)}.mk.cp{border-color:var(--text);border-radius:2px;width:12px;height:12px;margin:-6px 0 0 -6px;transform:rotate(45deg)}.mk.cp:hover{transform:rotate(45deg)scale(1.2)}.winbox{border:1px solid var(--border-strong);background:#f4f4f108;border-radius:10px;position:absolute;top:8px;bottom:8px}.spanb{color:#d6e4fc;height:22px;font:500 12px/20px var(--mono);white-space:nowrap;text-overflow:ellipsis;text-align:left;cursor:pointer;background:#8ab4f826;border:1px solid #8ab4f880;border-radius:4px;padding:0 6px;position:absolute;overflow:hidden}.spanb:hover{background:#8ab4f840}.spanb.on{border-color:var(--text);background:#8ab4f855}.trow{border-bottom:1px solid #1f1f23;align-items:center;gap:8px;min-height:34px;padding-right:8px;font-size:13px;display:flex}.v-str{color:#c8dafb}.v-num{color:var(--warning)}.v-bool{color:var(--success)}.scrim{z-index:40;cursor:default;background:#0b0b0cb8;border:0;margin:0;padding:0;position:fixed;inset:0}.drawer{z-index:41;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;gap:20px;width:min(620px,100%);padding:24px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:0 12px 48px #0006}.dialog{z-index:41;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;width:min(580px,100% - 32px);max-height:calc(100vh - 96px);padding:24px;display:flex;position:fixed;top:64px;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 12px 48px #0006}.popover{z-index:30;background:var(--elevated);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:320px;max-width:calc(100vw - 32px);padding:16px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 48px #0006}.toast-wrap{z-index:60;width:max-content;max-width:calc(100% - 32px);position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--elevated);border:1px solid var(--border-strong);color:var(--text);border-radius:8px;padding:10px 16px;font-size:13px;line-height:1.45;box-shadow:0 12px 48px #0006}.skel{background:linear-gradient(90deg, var(--surface) 0%, var(--elevated) 50%, var(--surface) 100%);background-size:200% 100%;border-radius:6px;animation:1s linear infinite sk}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:after{transition:none!important;animation:none!important}}.login{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-box{flex-direction:column;gap:20px;width:min(420px,100%);display:flex}@media (width<=860px){.rail{border-right:0;border-bottom:1px solid var(--border-subtle);gap:12px;padding:12px 16px}.rail .rail-meta{display:none}.nav-list{flex-wrap:nowrap;margin:0 -16px;padding:0 16px 2px;overflow-x:auto}.nav-list .nav{flex:none}.rail .rail-user{flex-direction:row;justify-content:space-between;align-items:center;margin-top:0;padding:8px 12px}.page,.topbar{padding-left:16px;padding-right:16px}.topbar .help{display:none}}
