:root{--bg: #000;--ink: #e8e8e8;--accent: #00e0e0;--dim: #4a4a4a;--miss: #2a2a2a;--rank-k: #ff40ff;--rank-v: #00e000;--dot: #00e8d8;--axis: #e8e8e8;--label: #909090;--row-rule: #151515;--row-hover: #0c0c0c;--fail: #ff4040;--pass: #00e000;--warn: #e0e000;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg)}body{margin:0;padding:12px;color:var(--ink);font-family:DejaVu Sans Mono,Consolas,Courier New,monospace;font-size:13px;line-height:1.35}h1,h2,h3{font-weight:400;margin:0 0 8px}h1{font-size:15px;color:var(--accent)}h2{font-size:13px;color:var(--accent)}a{color:var(--ink)}.page{max-width:1100px;margin:0 auto;display:grid;gap:8px}.panel{border:1px solid var(--accent);padding:8px}.muted{color:var(--dim)}.missing{color:var(--miss);border-bottom:1px dotted var(--miss)}.error{color:var(--fail)}.btn,select,input[type=text],input[type=password]{background:var(--bg);color:var(--accent);border:1px solid var(--accent);font:inherit;padding:1px 8px;border-radius:0}.btn{cursor:pointer;text-decoration:none;display:inline-block}.btn:hover:not([disabled]){background:#002a2a}.btn[disabled],.btn.off{color:var(--miss);border-color:var(--miss);cursor:default;pointer-events:none}.btn.danger{color:var(--fail);border-color:var(--fail)}input[type=text],input[type=password]{color:var(--ink);padding:3px 8px;width:100%}.form-row select{padding:3px 8px}input:focus-visible,select:focus-visible,.btn:focus-visible{outline:1px solid var(--ink);outline-offset:1px}.topbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--accent);padding:6px 8px}.topbar .brand{color:var(--accent);margin-right:8px}.topbar nav{display:flex;gap:6px;flex-wrap:wrap}.topbar nav a{color:var(--ink);text-decoration:none;padding:1px 8px;border:1px solid transparent}.topbar nav a.active{color:var(--accent);border-color:var(--accent)}.topbar .who{margin-left:auto;display:flex;gap:10px;align-items:center;color:var(--dim)}.topbar .who .account-link{color:var(--ink);text-decoration:none;padding:1px 8px;border:1px solid transparent}.topbar .who .account-link:hover,.topbar .who .account-link.active{color:var(--accent);border-color:var(--accent)}.quota-low{color:var(--warn)}.nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--accent);padding:6px 8px}.nav .count{color:var(--ink)}.nav .facts{color:var(--dim);margin-left:auto}.nav select{max-width:340px}.toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle .track{width:28px;height:14px;border:1px solid var(--dim);position:relative}.toggle .track:after{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;background:var(--dim)}.toggle input:checked+.track{border-color:var(--accent)}.toggle input:checked+.track:after{left:16px;background:var(--accent)}.toggle input:focus-visible+.track{outline:1px solid var(--ink);outline-offset:1px}.screen{display:grid;gap:8px}.top{display:grid;grid-template-columns:1fr 320px;gap:8px}.maps{display:grid;grid-template-columns:1fr 1fr;gap:8px}.maps figure{margin:0;text-align:center}.maps figcaption{padding-bottom:4px}.maps svg{width:100%;height:auto;display:block;touch-action:none}.map-tools{display:flex;justify-content:center;gap:6px;margin-top:4px}.map-tools .btn{padding:0 6px;font-size:11px}.map-ratio{align-self:center;font-size:11px;color:var(--label)}.info dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0}.info dt{white-space:nowrap}.info dd{margin:0;color:var(--accent);text-align:right}.rank{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--dim);margin-bottom:6px;padding-bottom:6px}.rank .k{color:var(--rank-k)}.rank .v{color:var(--rank-v)}.slot{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.slot .box{border:1px solid var(--accent);padding:1px 10px;color:var(--accent)}.slot .fields{display:flex;gap:6px;flex-wrap:wrap}.slot .fields .box{border-color:var(--dim)}.slot .fields i{color:var(--dim);font-style:normal}.tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.tile{border:1px solid var(--dim)}.tile .name{padding:1px 4px;font-size:11px;color:#000;background:var(--tint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile table{width:100%;border-collapse:collapse;font-size:12px}.tile th{color:var(--dim);font-weight:400;width:1.6em;text-align:left;padding:0 3px}.tile td{text-align:right;padding:0 4px;color:var(--tint)}.tile tr.total td,.tile tr.total th{border-top:1px solid var(--dim)}.status{min-height:26px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.verdict{padding:0 8px;border:1px solid currentColor}.verdict.PASS{color:var(--pass)}.verdict.FAIL{color:var(--fail)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;color:var(--accent);font-weight:400;border-bottom:1px solid var(--accent);padding:3px 8px}.table td{padding:2px 8px;border-bottom:1px solid var(--row-rule);vertical-align:middle}.table td.n{text-align:right;color:var(--accent)}.table tr:hover td{background:var(--row-hover)}.table a{color:var(--ink);text-decoration:none}.table a:hover{color:var(--accent);text-decoration:underline}.table .actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.table-wrap{overflow-x:auto}.table th.num{text-align:right}.table th .sort{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.table th .sort:hover{text-decoration:underline}.table th .sort.active{color:var(--ink)}.table.compact td,.table.compact th{padding:1px 8px}.table tr.zero td{color:var(--dim)}.stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.stat{border:1px solid var(--dim);padding:4px 12px;display:grid;min-width:120px}.stat .v{color:var(--accent);font-size:18px}.stat .k{color:var(--dim);font-size:11px}.batch-grid{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:16px}.bars{width:100%;border-collapse:collapse}.bars th{text-align:left;font-weight:400;padding:1px 8px 1px 0;width:3em}.bars td{padding:1px 4px}.bars td.n{text-align:right;width:3.5em}.bar-cell{width:100%}.bar{display:block;height:10px;background:var(--accent);min-width:2px}.chip{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}.note{margin:6px 0 0;font-size:12px}.batch-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.batch-name{display:grid;gap:3px;max-width:420px;margin-bottom:10px}.login{max-width:360px;margin:12vh auto 0}.login form{display:grid;gap:10px}.login label{display:grid;gap:3px}.drop{border:1px dashed var(--dim);padding:36px 12px;text-align:center;cursor:pointer;display:grid;gap:6px;justify-items:center}.drop.over,.drop:hover{border-color:var(--accent);color:var(--accent)}.drop input{display:none}.upload-list li{display:flex;gap:10px;align-items:center;padding:2px 0;border-bottom:1px solid var(--row-rule)}.upload-list{list-style:none;margin:0;padding:0}.upload-list .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.state-ready{color:var(--pass)}.state-parsing,.state-queued{color:var(--dim)}.state-error{color:var(--fail)}.stack{display:grid;gap:10px;max-width:420px}.stack label{display:grid;gap:3px}.account-facts{display:grid;grid-template-columns:auto 1fr;gap:2px 16px;margin:0}.account-facts dd{margin:0;color:var(--accent)}.form-row{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.form-row label{display:grid;gap:3px}.form-row label.check{display:flex;align-items:center;gap:6px}.badge{padding:0 6px;border:1px solid currentColor;font-size:11px}.badge.locked{color:var(--fail)}.badge.off{color:var(--dim)}.badge.admin{color:var(--rank-k)}.notice{border-left:2px solid var(--accent);padding:4px 8px}@media(max-width:900px){.top,.batch-grid{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){body{padding:8px}.maps{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(2,1fr)}.nav .facts{margin-left:0}}
