:root{--bg:#fff;--fg:#1c1f24;--mut:#667;--line:#d8dce2;--ok:#d4f5d4;--bad:#ffd0d0;--acc:#2456c9;--head:#f1f3f6}
@media (prefers-color-scheme:dark){:root{--bg:#15171b;--fg:#e6e8ec;--mut:#9aa;--line:#2d3139;--ok:#173b21;--bad:#4a1e1e;--acc:#7da2ff;--head:#1f2228}}
*{box-sizing:border-box}
body{margin:0 auto;max-width:1400px;padding:16px;background:var(--bg);color:var(--fg);font:15px/1.45 system-ui,sans-serif}
h1{margin:0;font-size:1.5rem}.sub,.hint,footer{color:var(--mut)}a{color:var(--acc)}
#drop{border:2px dashed var(--line);border-radius:10px;padding:20px;text-align:center;margin:14px 0}
#drop.over{border-color:var(--acc)}
.btn{display:inline-block;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--head);color:var(--fg);cursor:pointer;font:inherit}
#tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
#tools input,#tools select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit}
#q{flex:1;min-width:200px}#count{color:var(--mut)}
#wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:5px 8px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
th{position:sticky;top:0;background:var(--head);cursor:pointer;user-select:none}
th.asc::after{content:" ▲"}th.desc::after{content:" ▼"}
tr.ok{background:var(--ok)}tr.bad{background:var(--bad)}
td.reason{max-width:420px;overflow:hidden;text-overflow:ellipsis}
tr.open td.reason{white-space:normal;max-width:none}
#status{margin:8px 0;color:var(--mut)}#status.err{color:#c33}
#more{color:var(--mut)}footer{margin-top:18px;font-size:13px}
