:root{--bg: #0c0d10;--surface: #131418;--surface-hi: #191b20;--line: #22242b;--line-soft: #1a1c22;--text: #e8e9ed;--dim: #8b909c;--dimmer: #5d626d;--accent: #5e6ad2;--ok: #4cb782;--fail: #eb5757;--run: #e2b93b;--flag: #ef8e4b;--row: 30px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input{font:inherit;color:inherit}a{color:inherit}.app{display:flex;flex-direction:column;height:100%}.top{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;flex:0 0 auto;border-bottom:1px solid var(--line);background:var(--surface)}.brand{font-weight:600;letter-spacing:.2px;margin-right:4px}.brand span{color:var(--dimmer);font-weight:400;margin-left:7px;font-size:12px}.tabs{display:flex;gap:2px}.tab{padding:4px 10px;border-radius:5px;color:var(--dim);font-size:12.5px}.tab:hover,.tab.on{background:var(--surface-hi);color:var(--text)}.spacer{flex:1}.who{color:var(--dimmer);font-size:12px}.live{display:flex;align-items:center;gap:6px;color:var(--dimmer);font-size:12px}.dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}.dot.off{background:var(--dimmer)}.bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 14px;flex:0 0 auto;border-bottom:1px solid var(--line-soft)}.search{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:0 9px;height:28px;min-width:240px}.search:focus-within{border-color:#33364a}.search input{border:0;outline:0;background:none;width:100%;height:100%}.search input::placeholder{color:var(--dimmer)}.kbd{font:11px/1 var(--mono);color:var(--dimmer);border:1px solid var(--line);border-radius:4px;padding:3px 5px}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:6px;font-size:12.5px;color:var(--dim);border:1px solid transparent}.chip:hover{background:var(--surface-hi);color:var(--text)}.chip.on{background:var(--surface-hi);color:var(--text);border-color:var(--line)}.chip.on.warn{color:var(--flag);border-color:#40301f;background:#1d1611}.chip .n{font:11px/1 var(--mono);color:var(--dimmer)}.sep{width:1px;height:18px;background:var(--line);margin:0 3px}.scroll{flex:1;overflow:auto}table{width:100%;border-collapse:collapse}thead th{position:sticky;top:0;z-index:1;background:var(--bg);text-align:left;font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--dimmer);padding:0 10px;height:26px;border-bottom:1px solid var(--line);white-space:nowrap}tbody td{height:var(--row);padding:0 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}tbody tr{cursor:default}tbody tr:hover td{background:var(--surface)}tbody tr.sel td{background:var(--surface-hi)}tbody tr.sel td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.mono{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.dim{color:var(--dim)}.dimmer{color:var(--dimmer)}.trunc{max-width:1px}.st{display:inline-flex;align-items:center;gap:6px}.st:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dimmer)}.st.ok:before{background:var(--ok)}.st.failed:before{background:var(--fail)}.st.running:before{background:var(--run)}.tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;background:var(--surface-hi);color:var(--dim);margin-right:4px}.tag.flag{background:#2a1d12;color:var(--flag)}.tag.bad{background:#2c1618;color:var(--fail)}.mismatch{color:var(--fail)}.arrow{color:var(--dimmer);margin:0 5px}.empty{padding:60px 20px;text-align:center;color:var(--dimmer)}.empty b{display:block;color:var(--dim);font-weight:500;margin-bottom:6px}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(620px,92vw);background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;z-index:20;box-shadow:-24px 0 48px #0006;animation:slide .14s ease-out}@keyframes slide{0%{transform:translate(14px);opacity:.6}to{transform:none;opacity:1}}.drawer header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}.drawer header .op{font-weight:600}.drawer .body{overflow:auto;padding:14px}.sec{margin-bottom:18px}.sec h4{margin:0 0 8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--dimmer);font-weight:500}.kv{display:grid;grid-template-columns:116px 1fr;gap:5px 12px;font-size:12.5px}.kv dt{color:var(--dimmer)}.kv dd{margin:0;word-break:break-all}pre{margin:0;padding:10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow:auto;font:12px/1.5 var(--mono);color:var(--dim);max-height:320px}.note{padding:9px 11px;border-radius:6px;font-size:12.5px;line-height:1.5;background:#1d1611;border:1px solid #40301f;color:#e8b98c;margin-bottom:8px}.note b{color:var(--flag)}.tl{position:relative;padding-left:14px}.tl:before{content:"";position:absolute;left:3px;top:4px;bottom:4px;width:1px;background:var(--line)}.tl li{list-style:none;position:relative;padding:3px 0;font-size:12.5px}.tl li:before{content:"";position:absolute;left:-14px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--line);outline:3px solid var(--surface)}.tl li.hot:before{background:var(--flag)}.tl .ms{color:var(--dimmer);font-family:var(--mono);float:right}.bar-mini{height:3px;border-radius:2px;background:var(--accent);opacity:.55;margin-top:3px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.card>h3{margin:0;padding:10px 12px;font-size:12px;font-weight:600;border-bottom:1px solid var(--line-soft);color:var(--dim)}.card table td{border-bottom-color:var(--line-soft)}.rate{display:inline-block;min-width:42px}.rate.bad{color:var(--fail)}.gate{height:100%;display:grid;place-items:center}.gate .box{width:340px;text-align:center}.gate h1{font-size:17px;margin:0 0 6px}.gate p{color:var(--dimmer);font-size:13px;margin:0 0 20px;line-height:1.6}.gate button.go{width:100%;height:34px;border-radius:7px;background:var(--accent);color:#fff;font-weight:500}.gate button.go:hover{filter:brightness(1.08)}.gate .err{margin-top:14px;color:var(--fail);font-size:12.5px;line-height:1.5}
