:root{--fg:#1d2733;--muted:#6b7785;--line:#e3e8ee;--bg:#f6f8fa;--acc:#1f5fa8;--warn:#b45309;--warnbg:#fff7e6;--bad:#b42318}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--fg);background:var(--bg)}
header.top{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:#14263d;color:#fff}
.brand{font-weight:600;letter-spacing:.2px}nav a,nav button.link{color:#d6e4f5;margin-left:16px;text-decoration:none;font-size:13px}nav a:hover{color:#fff}
main{max-width:1600px;margin:0 auto;padding:20px 24px}footer{text-align:center;color:var(--muted);font-size:12px;padding:16px}
h1{font-size:20px;margin:0 0 12px}h2{font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px 20px}.narrow{max-width:440px;margin:40px auto}
label{display:block;margin:10px 0;font-weight:500}input,select{display:block;width:100%;padding:7px 9px;border:1px solid #c9d2dc;border-radius:6px;font:inherit;margin-top:4px;background:#fff}
button,.btn{padding:7px 14px;border:1px solid #c9d2dc;border-radius:6px;background:#fff;font:inherit;cursor:pointer;color:var(--fg);text-decoration:none;display:inline-block}
button.primary{background:var(--acc);border-color:var(--acc);color:#fff}button.link{border:0;background:none;padding:0;color:var(--acc)}
form.inline{display:inline}.alert{background:#fdecea;color:var(--bad);padding:8px 10px;border-radius:6px}.note{background:#eaf2fb;padding:8px 10px;border-radius:6px}
.head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.filters{display:flex;gap:8px;align-items:center}.filters select{width:auto;margin:0}
.banners{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}.banner{background:#fff;border:1px solid var(--line);border-left:4px solid #2e7d32;padding:6px 10px;border-radius:6px;font-size:13px}
.banner.stale{border-left-color:var(--warn);background:var(--warnbg)}.banner.stale span{color:var(--warn);font-weight:600}
.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:8px}.toolbar input{max-width:420px;margin:0}
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:auto;max-height:75vh}
table{border-collapse:collapse;width:100%}th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
thead th{position:sticky;top:0;background:#eef2f6;cursor:pointer;user-select:none;font-weight:600;font-size:13px;white-space:nowrap}
th[aria-sort=ascending]::after{content:" ▲"}th[aria-sort=descending]::after{content:" ▼"}tbody tr:hover{background:#f8fbff}
td.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}table.compact td,table.compact th{font-size:12.5px;padding:5px 8px}
.pill{padding:1px 8px;border-radius:10px;font-size:12px;background:#eee}.pill.applied{background:#e6f4ea;color:#1e6b34}.pill.quarantined{background:var(--warnbg);color:var(--warn)}.pill.rejected{background:#fdecea;color:var(--bad)}
.decide{display:flex;gap:6px;margin-top:4px}.decide select{width:auto;margin:0;font-size:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.row{display:flex;gap:6px;margin-top:8px}form.row input,form.row select{margin:0}.box{background:var(--bg);padding:8px;border-radius:6px;word-break:break-all}
@media(max-width:800px){.grid{grid-template-columns:1fr}}
.chk{display:flex;gap:4px;align-items:center;margin:0;font-weight:400;white-space:nowrap}.chk input{width:auto;margin:0}
.rid{margin:0;font-weight:600;font-size:13px}.rid input{font-size:16px;padding:9px 11px;min-width:260px}#rid{border:2px solid var(--acc);font-family:ui-monospace,Menlo,Consolas,monospace}
tr.hit td{background:#fff6d6}.toolbar{align-items:flex-end}
.card.danger{margin-top:16px;border-color:#f1b5ae}.dangerbtn{background:var(--bad);border-color:var(--bad);color:#fff}
.decide{flex-wrap:wrap}.decide select{max-width:200px}
.testpurge{margin-top:18px;padding:12px 16px;border:2px dashed var(--bad);border-radius:8px;background:repeating-linear-gradient(45deg,#fff4d6,#fff4d6 12px,#ffe1a8 12px,#ffe1a8 24px)}.testpurge form{background:#fff;padding:8px;border-radius:6px;max-width:760px}
.dangerbtn{white-space:nowrap}
.narrow.wide{max-width:900px}.results{margin-bottom:16px}
