:root{--bg:#0b0f0d;--surface-side:#0f1512;--surface:#121815;--surface-raised:#1a221e;--border:#26302b;--border-strong:#2e3a34;--border-row:#1c2420;--text:#e8edea;--text-secondary:#a9b8af;--text-muted:#93a39a;--accent:#2bd47d;--accent-on:#06110b;--accent-surface:#14251c;--accent-border:#2b6b48;--info:#4ca8ff;--info-hover:#8cc8ff;--warning:#f5b53d;--danger:#ff5d5d;--danger-soft:#ff8a8a;--rumour:#b98cff;--chip-ok-bg:#12301f;--chip-ok-fg:#5be7a6;--chip-warn-bg:#33270f;--chip-warn-fg:#f5c25e;--chip-bad-bg:#361616;--chip-bad-fg:#ff8a8a;--chip-rum-bg:#271c3d;--chip-rum-fg:#c7a6ff;--chip-info-bg:#11253a;--chip-info-fg:#7fc0ff;--chip-neu-bg:#1e2622;--chip-neu-fg:#b5c2ba;--font-display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;--font-ui:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--radius-control:8px;--radius-card:10px;--sidebar-w:220px;--content-max:1320px;--page-pad:24px;--touch:44px}*{box-sizing:border-box}body,html{margin:0;padding:0;max-width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.45;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}a{color:var(--info);text-decoration:none}a:hover{color:var(--info-hover)}h1,h2,h3,h4{margin:0;font-weight:700}.app{align-items:stretch;min-height:100vh;min-height:100dvh}.app,.side{display:flex}.side{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--surface-side);border-right:1px solid var(--border);padding:20px 12px;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain}.brand{display:flex;align-items:center;gap:10px;padding:4px 12px 18px}.brand b{font-family:var(--font-display);font-size:22px;letter-spacing:.06em;font-weight:700;text-transform:uppercase;color:var(--text);line-height:1}.brand span{color:var(--accent)}.brand small{display:block;font-size:10px;margin-top:3px}.brand small,.navh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.navh{font-size:11px;padding:14px 12px 6px}.nav{display:flex;align-items:center;gap:10px;padding:0 12px;min-height:42px;border-radius:var(--radius-control);color:var(--text-secondary);font-weight:500;font-size:14px}.nav:hover{background:var(--surface-raised);color:var(--text)}.nav.on{background:var(--accent-surface);color:var(--accent);font-weight:600}.nav svg{flex:none}.nbadge{margin-left:auto;background:var(--warning);color:var(--bg);border-radius:999px;font-size:11px;font-weight:700;padding:1px 8px}.side-foot{margin-top:auto;padding:16px 12px 4px}.main{flex:1 1 auto;min-width:0;flex-direction:column}.main,.top{display:flex}.top{position:-webkit-sticky;position:sticky;top:0;z-index:30;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 24px;border-bottom:1px solid var(--border);background:var(--surface-side);min-height:60px}.top .spacer{flex:1 1 auto}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap}.pill.ok{background:var(--chip-ok-bg);color:var(--chip-ok-fg);border-color:var(--accent-border)}.pill.warn{background:var(--chip-warn-bg);color:var(--chip-warn-fg);border-color:#5a4318}.pill.danger{background:var(--chip-bad-bg);color:var(--chip-bad-fg);border-color:#6b2828}.pill.info{background:var(--chip-info-bg);color:var(--chip-info-fg);border-color:#1d3a58}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.sw{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding:4px 8px;border-radius:var(--radius-control);border:1px solid var(--border);white-space:nowrap}.tog{width:26px;height:14px;border-radius:999px;background:var(--accent);position:relative;display:inline-block;flex:none}.tog i{position:absolute;right:2px;top:2px;width:10px;height:10px;border-radius:50%;background:var(--accent-on)}.tog.off{background:#3a4640}.tog.off i{right:auto;left:2px;background:var(--text-muted)}.meter{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);white-space:nowrap}.meter .bar{width:64px;height:6px;border-radius:3px;background:var(--border);overflow:hidden;display:inline-block}.meter .bar i{display:block;height:100%;background:var(--accent)}.meter b{color:var(--text);font-weight:600}.estop{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 11px;border-radius:var(--radius-control);border:1px solid #5a2a2a;background:transparent;color:#d98f8f;font:600 11px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap;opacity:.85}.estop:hover{background:#2a1414;color:var(--danger-soft);opacity:1}.estop:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.estop.icon{min-width:var(--touch);min-height:var(--touch);padding:0}.estop-label{font:700 11px var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.content{padding:var(--page-pad);display:flex;flex-direction:column;gap:20px;max-width:var(--content-max);width:100%}.ph{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;justify-content:space-between}.h1{font-family:var(--font-display);font-weight:600;font-size:36px;letter-spacing:.03em;text-transform:uppercase;line-height:1;margin:0}.sub{margin:6px 0 0;font-size:13px}.muted,.sub{color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:12px}.label{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.label,.num{font-weight:600}.num{font-family:var(--font-display);font-size:40px;line-height:1.05;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{gap:12px}.between,.hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.hero{gap:24px;padding:22px 26px 22px 28px;border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius-card);background:var(--surface)}.hero.waiting{border-color:#3a2e18 #3a2e18 #3a2e18 #f5c25e;background:linear-gradient(90deg,rgba(245,194,94,.07),rgba(245,194,94,0) 55%),var(--surface)}.hero .hl{min-width:0}.hero .big{font-family:var(--font-display);font-size:60px;font-weight:600;line-height:.92;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:2px 0 8px}.hero.waiting .big{color:#f5c25e}.hero .hl p{margin:0;font-size:13px;color:var(--text-muted);max-width:62ch}.hero .hact{display:flex;align-items:center;gap:12px}.hero .hact .btn{min-height:46px;padding:0 22px;font-size:15px}.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.strip>div{padding:12px 16px;min-width:0}.strip>div+div{border-left:1px solid var(--border)}.strip .k{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);font-weight:600;margin-bottom:3px}.strip .v{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.strip .v small{font-size:13px;color:var(--text-muted);font-weight:500}.strip .s{display:block;color:var(--text-muted);margin-top:2px}.strip .s,.strip a{font-size:11px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px;min-width:0}.ct{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}.ct h2{font-size:13px;margin:0;text-transform:uppercase;letter-spacing:.07em;color:#c9d4cd;font-weight:700}.grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;margin:0}.grid,.grid3{display:grid;gap:12px}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:start}.cols{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.grid .card{padding:14px 16px}.grid .label{display:block;margin-bottom:6px}.grid .card a{font-size:12px}.metric{font-family:var(--font-display);font-size:40px;font-weight:600;line-height:1.05;letter-spacing:.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric small{font-size:22px;color:var(--text-muted);font-weight:500}.chip{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap;background:var(--chip-neu-bg);color:var(--chip-neu-fg)}.chip.ok{background:var(--chip-ok-bg);color:var(--chip-ok-fg)}.chip.warn{background:var(--chip-warn-bg);color:var(--chip-warn-fg)}.chip.bad{background:var(--chip-bad-bg);color:var(--chip-bad-fg)}.chip.info{background:var(--chip-info-bg);color:var(--chip-info-fg)}.chip.rum{background:var(--chip-rum-bg);color:var(--chip-rum-fg)}.chip.neu{background:var(--chip-neu-bg);color:var(--chip-neu-fg)}.btn,.card button,.grid button,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 12px;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text);font:600 13px var(--font-ui);cursor:pointer;white-space:nowrap}.card button:hover,.grid button:hover,button.btn:hover{border-color:#4a5a52}button:disabled{opacity:.55;cursor:not-allowed}.btn.pri,.primary{background:var(--accent);color:var(--accent-on);border:1px solid var(--accent);font:700 13px var(--font-ui);min-height:36px;padding:0 12px;border-radius:var(--radius-control);cursor:pointer}.btn.warn{background:transparent;color:var(--warning);border-color:#7a5a1e}.btn.bad,.danger{color:var(--danger-soft);min-height:36px;padding:0 12px;border-radius:var(--radius-control);font:600 13px var(--font-ui);cursor:pointer;border:1px solid #7a2e2e}.btn.bad,.btn.ghost,.danger,.ghost{background:transparent}.btn.sm{min-height:30px;padding:0 10px;font-size:12px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label,.field>span{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}input,select,textarea{width:100%;min-height:38px;padding:8px 10px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface-side);color:var(--text);font:400 14px var(--font-ui)}input::placeholder,textarea::placeholder{color:#6c7c73}textarea{min-height:90px;resize:vertical}.banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--radius-control);border:1px solid #5a4318;background:#221b0d;color:var(--text);font-size:13px}.banner.live{border-color:var(--accent-border);background:#102a1c}.banner.err,.banner.stop{border-color:#6b2828;background:#231111}.attn{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-control);border:1px solid #5a4318;background:#221b0d}.attn.r{border-color:#6b2828;background:#231111}.attn p{margin:0;flex:1 1 320px;font-size:13px}.tw{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.tw table{border:0;border-radius:0}table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}th{text-align:left;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:9px 12px;border-bottom:1px solid var(--border);background:var(--surface-side);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--border-row);vertical-align:top}tr:last-child td{border-bottom:none}td.num,th.num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tr.sel td{background:var(--accent-surface)}.fn{display:grid;grid-template-columns:120px minmax(0,1fr) 56px;grid-gap:10px;gap:10px;align-items:center;font-size:13px}.fn .b{height:22px;border-radius:4px;background:var(--accent);min-width:2px}.feed{display:flex;flex-direction:column}.feed>div{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-row);font-size:13px}.feed>div:last-child{border-bottom:none}.feed .t{color:var(--text-muted);font-family:var(--font-mono);font-size:12px;flex:none;width:44px}.split{display:grid;grid-template-columns:320px minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.qlist{display:flex;flex-direction:column;gap:8px;position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.qitem{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:10px 12px;color:var(--text)}.qitem:hover{border-color:var(--border-strong);background:var(--surface-raised);color:var(--text)}.qitem.on{border-color:var(--accent-border);background:var(--accent-surface)}.qtitle{font-size:13px;font-weight:600;line-height:1.35}.detail{display:flex;flex-direction:column;gap:12px;min-width:0}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.issues{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--text-secondary)}.issues li{margin-bottom:4px}.srclist{margin:0;padding-left:18px;font-size:13px}.srclist li{margin-bottom:4px}.detail-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.three{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;grid-gap:16px;gap:16px;align-items:start}.three>*{min-width:0}.login-wrap{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:var(--bg)}.login-wrap .card{width:100%;max-width:380px;padding:24px}.login-wrap h1{font-family:var(--font-display);font-size:30px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}.bn{display:none}@media (max-width:1100px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid3,.two{grid-template-columns:1fr}.top .sw{display:none}.three{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.three>:nth-child(3){grid-column:1/-1}.split{grid-template-columns:260px minmax(0,1fr)}}@media (max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top{padding:8px 16px;gap:8px;min-height:56px}.content{padding:16px;gap:16px}.h1{font-size:30px}.pair,.split{grid-template-columns:minmax(0,1fr)}.qlist{position:static;max-height:none}.three{grid-template-columns:minmax(0,1fr)}.three>:nth-child(3){grid-column:auto}}@media (max-width:800px){.side{display:none}.main{width:100%}.content{padding:14px 12px calc(var(--touch) + 34px + env(safe-area-inset-bottom, 0px));gap:14px}.top{padding:calc(8px + env(safe-area-inset-top, 0px)) 12px 8px;gap:8px}.top .meter,.top .sw,.top .top-hide{display:none}.top .estop{min-height:var(--touch)}.h1{font-size:26px}.sub{font-size:12px}.hero{padding:16px 16px 16px 18px;gap:14px;align-items:flex-start;flex-direction:column}.hero .big{font-size:46px}.hero .hl p{font-size:12px}.hero .hact{width:100%}.hero .hact .btn{width:100%;min-height:46px}.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strip>div{padding:10px 12px}.strip>div:nth-child(odd){border-left:0}.strip>div:nth-child(n+3){border-top:1px solid var(--border)}.strip .v{font-size:19px}.grid{gap:8px}.grid .card{padding:10px 12px}.grid .label{font-size:10px;letter-spacing:.05em;margin-bottom:4px;min-height:0}.metric,.num{font-size:28px}.metric small,.num small{font-size:15px}.grid .card a{font-size:11px}.card{padding:12px;border-radius:var(--radius-card)}.ct{margin-bottom:10px}.ct h2{font-size:12px}.cols{flex-direction:column;gap:12px}.cols>*{flex:1 1 auto!important;width:100%}.btn,.nav,button,input,select,textarea{min-height:var(--touch)}.btn.sm{min-height:36px}input,select,textarea{font-size:16px}.attn{padding:10px 12px;gap:8px}.attn p{flex:1 1 100%}.attn p,.fn{font-size:12px}.fn{grid-template-columns:92px minmax(0,1fr) 44px;gap:8px}.banner{font-size:12px;padding:10px 12px}.qlist{flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding-bottom:4px}.qitem{min-width:240px;max-width:260px;scroll-snap-align:start}.detail-actions{position:-webkit-sticky;position:sticky;bottom:calc(var(--touch) + 18px + env(safe-area-inset-bottom, 0px));z-index:20;background:var(--surface-side);border:1px solid var(--border);border-radius:var(--radius-card);padding:8px}.detail-actions>*{flex:1 1 auto}.bn{position:fixed;left:0;right:0;bottom:0;z-index:50;justify-content:space-around;border-top:1px solid var(--border);background:var(--surface-side);padding:6px 0 calc(8px + env(safe-area-inset-bottom, 0px))}.bn,.bn a{display:flex}.bn a{flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:600;color:var(--text-muted);min-width:56px;min-height:var(--touch);padding:0 6px;border-radius:var(--radius-control)}.bn a.on{color:var(--accent)}.bn a:active{background:var(--surface-raised)}[role=dialog]{max-width:calc(100vw - 24px)!important}.login-wrap{align-items:flex-start;padding:64px 16px 16px}}@media (max-width:400px){.h1{font-size:24px}.metric,.num{font-size:26px}.content{padding:12px 10px calc(var(--touch) + 34px + env(safe-area-inset-bottom, 0px))}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}