:root{--acc:#c8102e;--acc-soft:#c8102e14;--bg:#f6f5f2;--card:#fff;--ink:#1d1d1b;--muted:#6b6a66;--rule:#e3e1dc;
  --ok:#2a7a45;--ok-bg:#2a7a4518;--warn:#a66b00;--warn-bg:#d9a10022;--bad:#b0102a;--bad-bg:#c8102e18;--proc:#2f5fc4;--proc-bg:#3a6fd920;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font-size:14px;line-height:1.45}
a{color:var(--acc);text-decoration:none}
button{font:inherit;padding:7px 14px;border-radius:6px;border:1px solid var(--rule);background:var(--card);cursor:pointer}
button.primary{background:var(--acc);border-color:var(--acc);color:#fff}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--rule);border-radius:6px;background:#fff;min-width:0}
.error{color:var(--bad);min-height:1.2em;margin:4px 0 0}
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login-card{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:28px;width:min(360px,100%);display:flex;flex-direction:column;gap:12px}
.login-card h1{font-size:17px;margin:0}
.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.logo{height:40px;align-self:flex-start}
.logo-sm{height:20px;vertical-align:-4px}
.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}
nav{background:var(--card);border-right:1px solid var(--rule);padding:16px 0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
nav .brand{font-weight:700;padding:0 18px 16px}
nav .brand span{color:var(--acc)}
nav>a{display:block;padding:9px 18px;color:var(--ink)}
nav>a.on{background:var(--acc-soft);box-shadow:inset 3px 0 0 var(--acc);font-weight:600}
nav .who{margin-top:auto;padding:12px 18px;font-size:12px;color:var(--muted)}
main{padding:22px 28px 60px;max-width:1200px;width:100%}
h2{margin:0 0 16px;font-size:20px}
h3{margin:0 0 10px;font-size:13px;color:var(--muted);font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:12px 14px}
.kpi b{display:block;font-size:26px}
.kpi span{font-size:12px;color:var(--muted)}
.kpi em{font-style:normal;font-size:12px;color:var(--ok);margin-left:4px}
.kpi em.down{color:var(--bad)}
.grid2{display:grid;grid-template-columns:3fr 2fr;gap:14px}
.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:14px;margin-bottom:14px;min-width:0}
.bars{display:flex;align-items:flex-end;gap:8px;height:140px;padding-bottom:20px}
.bars .b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative}
.bars .b i{display:block;width:100%;background:var(--acc);opacity:.8;border-radius:3px 3px 0 0;min-height:2px}
.bars .b small{position:absolute;bottom:-18px;font-size:11px;color:var(--muted)}
.bars .b span{font-size:11px;color:var(--muted)}
.hbar{display:grid;grid-template-columns:110px 1fr 40px;gap:8px;align-items:center;margin:6px 0;font-size:13px}
.hbar div{height:8px;background:var(--rule);border-radius:4px;overflow:hidden}
.hbar div i{display:block;height:100%;background:var(--acc);opacity:.7}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-size:12px;color:var(--muted);font-weight:600}
.tag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:10px;background:var(--rule);white-space:nowrap}
.tag.answered,.tag.ready{background:var(--ok-bg);color:var(--ok)}
.tag.no_results{background:var(--warn-bg);color:var(--warn)}
.tag.guarded,.tag.error,.tag.timeout,.tag.failed{background:var(--bad-bg);color:var(--bad)}
.tag.processing{background:var(--proc-bg);color:var(--proc)}
.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.chip{border:1px solid var(--rule);border-radius:14px;padding:3px 10px;background:var(--card);cursor:pointer;font-size:12px}
.chip.on{background:var(--acc);border-color:var(--acc);color:#fff}
tr.q{cursor:pointer}
tr.q:hover td{background:var(--acc-soft)}
tr.detail td{background:#faf9f7;font-size:13px}
.drop{border:2px dashed var(--rule);border-radius:10px;padding:26px;text-align:center;cursor:pointer;margin-bottom:14px;background:var(--card)}
.drop.over,.drop:hover{border-color:var(--acc)}
.drop small{color:var(--muted)}
.chunk{font-size:12.5px;border-left:3px solid var(--rule);padding:6px 10px;margin:8px 0;white-space:pre-wrap}
.actions a{margin-right:8px;white-space:nowrap}
.muted{color:var(--muted)}
.field{display:flex;flex-direction:column;gap:4px;margin:10px 0;font-size:13px;color:var(--muted)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row input{flex:1}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);margin-right:6px}
.dot.error,.dot.stopped{background:var(--bad)} .dot.wait{background:var(--warn)}
.status-ok{color:var(--ok)} .status-bad{color:var(--bad)}
pre{background:#1d1d1b;color:#f1efe8;padding:12px;border-radius:8px;font-size:12px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.soon{opacity:.6}
.progress{height:6px;background:var(--rule);border-radius:3px;overflow:hidden;margin:8px 0}
.progress i{display:block;height:100%;background:var(--acc)}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  nav{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:8px;border-right:0;border-bottom:1px solid var(--rule)}
  nav .brand{width:100%;padding:4px 8px 8px}
  nav>a{padding:6px 10px;border-radius:6px}
  nav>a.on{box-shadow:none}
  nav .who{margin:0;padding:6px 10px;width:100%}
  main{padding:16px 12px 40px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid2{grid-template-columns:1fr}
  table.stack thead{display:none}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:auto}
  table.stack tr{padding:8px 0;border-bottom:1px solid var(--rule)}
  table.stack td{border:0;padding:2px 0}
}
@media (pointer:coarse){button,nav>a,.chip{min-height:40px}}
.help{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.help-toc{grid-row:1 / span 20;position:sticky;top:16px;display:flex;flex-direction:column;gap:2px;font-size:13px;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:12px}
.help-toc b{margin-bottom:6px}
.help-toc a{color:var(--ink);padding:3px 4px;border-radius:4px}
.help-toc a:hover{background:var(--acc-soft)}
.help section{grid-column:2;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:18px 22px;margin-bottom:16px;min-width:0}
.help h2{font-size:18px;margin:0 0 12px}
.help h3{font-size:15px;color:var(--ink);margin:22px 0 8px}
.help p,.help li{max-width:80ch;line-height:1.55}
.help-svg{width:100%;height:auto;margin:8px 0 12px;display:block}
.help-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.help-cards div{border:1px solid var(--rule);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:4px;background:#faf9f7}
.help-cards span{color:var(--muted);font-size:13px}
.help-table{margin:10px 0}
.help-table td:first-child{min-width:140px}
.help-table code{white-space:nowrap}
.help-note{background:var(--acc-soft);border-left:3px solid var(--acc);padding:8px 12px;border-radius:0 6px 6px 0;font-size:13px}
.copy{position:relative}
.copy button{position:absolute;top:8px;right:8px;font-size:12px;padding:3px 10px;background:#3a3a37;color:#f1efe8;border-color:#55554f}
.copy pre{padding-top:34px}
@media (max-width:860px){
  .help{grid-template-columns:1fr}
  .help-toc{position:static}
  .help section{grid-column:1;padding:14px}
  .help-table thead{display:none}
  .help-table,.help-table tbody,.help-table tr,.help-table td{display:block;width:auto}
  .help-table tr{padding:8px 0;border-bottom:1px solid var(--rule)}
  .help-table td{border:0;padding:2px 0}
  .help-table td:first-child{white-space:normal;font-weight:600}
}
