:root{color-scheme:dark;--bg:#0b0e14;--panel:#141926;--line:#232a3b;--fg:#d7dde8;--dim:#7c879e;
--beacon:#4ade80;--capture:#f0abfc;--asset:#60a5fa;--config:#fbbf24;--other:#8390a8}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
header{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--line);
padding:10px 14px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;z-index:5}
header b{color:#fff;font-size:14px}
header .stat{color:var(--dim)}header .stat span{color:var(--fg)}
header .grow{flex:1}
input[type=search]{background:var(--bg);border:1px solid var(--line);color:var(--fg);
padding:5px 9px;border-radius:6px;min-width:180px;font:inherit}
label.tog{color:var(--dim);cursor:pointer;user-select:none;display:flex;gap:5px;align-items:center}
table{width:100%;border-collapse:collapse}
th{position:sticky;top:53px;background:var(--panel);color:var(--dim);text-align:left;
font-weight:500;padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:5px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tr:hover td{background:#111624}
.k{font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.04em}
.k-beacon{color:var(--beacon)}.k-capture{color:var(--capture)}.k-asset{color:var(--asset)}
.k-config{color:var(--config)}.k-other{color:var(--other)}
.ip{color:#9db2d6}.time{color:var(--dim);white-space:nowrap}
.detail{color:#fff;word-break:break-all}.ua{color:var(--dim);word-break:break-all;max-width:340px}
.path{word-break:break-all}
tr.new td{animation:flash 1.2s ease-out}@keyframes flash{from{background:#1c2f22}to{background:transparent}}
tr.cap{cursor:pointer}tr.cap:hover td{background:#1e1830}
.empty{padding:40px;text-align:center;color:var(--dim)}
#live{color:var(--beacon)}#live.off{color:#ef4444}
button.hbtn{background:var(--bg);border:1px solid var(--line);color:var(--fg);
padding:5px 10px;border-radius:6px;font:inherit;cursor:pointer}
button.hbtn:hover{border-color:var(--capture);color:#fff}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;z-index:9}
.overlay.on{display:block}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(760px,94vw);background:var(--panel);
border-left:1px solid var(--line);transform:translateX(100%);transition:transform .18s ease;
z-index:10;display:flex;flex-direction:column}
.drawer.on{transform:translateX(0)}
.drawer h3{margin:0;padding:12px 16px;border-bottom:1px solid var(--line);color:#fff;
display:flex;align-items:center;gap:10px;font-size:14px}
.drawer h3 .x{margin-left:auto;cursor:pointer;color:var(--dim);font-size:18px;line-height:1}
.drawer h3 .x:hover{color:#fff}
.drawer .body{overflow:auto;padding:12px 16px;flex:1}
.caplist{list-style:none;margin:0;padding:0}
.caplist li{padding:8px 10px;border:1px solid var(--line);border-radius:6px;margin-bottom:6px;
cursor:pointer;display:flex;gap:10px;align-items:center}
.caplist li:hover{border-color:var(--capture);background:#1e1830}
.caplist .nm{color:#fff;word-break:break-all;flex:1}
.caplist .meta{color:var(--dim);white-space:nowrap;font-size:12px}
.badge{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--capture);
border:1px solid var(--capture);border-radius:4px;padding:1px 5px}
.viewer pre{white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px solid var(--line);
border-radius:6px;padding:12px;color:var(--fg);margin:0}
.viewer img,.viewer video{max-width:100%;border:1px solid var(--line);border-radius:6px}
.viewer .back{color:var(--asset);cursor:pointer;display:inline-block;margin-bottom:10px}
.viewer a.dl{color:var(--asset)}
