:root{--bg:#f5f6f8;--panel:#fff;--ink:#1b1f24;--muted:#6b7280;--line:#e5e7eb;--acc:#4f46e5;--ok:#059669;--warn:#d97706;--bad:#dc2626}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 -apple-system,Segoe UI,Roboto,Inter,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;gap:24px;padding:12px 24px;background:#111827;color:#fff;position:sticky;top:0;z-index:5}
.top a{color:#e5e7eb}.brand{font-weight:700;color:#fff!important}.top nav{display:flex;gap:18px;flex:1}
.logout{display:flex;gap:10px;align-items:center}.logout .muted{color:#9ca3af}
main{max-width:1180px;margin:0 auto;padding:20px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:16px}
h2{margin:0 0 10px;font-size:19px}h3{margin:6px 0;font-size:16px}.h2pad{margin:20px 4px 10px}
.muted{color:var(--muted);font-size:13px}.small{font-size:12px}
button,.ghost{font:inherit;border-radius:8px;padding:7px 14px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink)}
.primary{background:var(--acc);color:#fff;border-color:var(--acc);font-weight:600}.primary:disabled{opacity:.5;cursor:wait}
.top .ghost{background:transparent;color:#e5e7eb;border-color:#374151}
.run-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.runstatus{margin:10px 0 6px;font-weight:600}.bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden}
#runbar{height:100%;width:0;background:var(--acc);transition:width .5s}
.srcstats{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.src{font-size:12px;border:1px solid var(--line);border-radius:8px;padding:4px 8px}
.src.ok{border-color:#a7f3d0;background:#ecfdf5}.src.error{border-color:#fecaca;background:#fef2f2}.src.skipped{background:#f3f4f6}.src.stopped_warning{background:#fffbeb;border-color:#fcd34d}
pre{white-space:pre-wrap;font-size:12px;background:#0b1020;color:#cbd5e1;padding:10px;border-radius:8px;max-height:260px;overflow:auto}
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.catbox{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--ink)}
.catbox.active{border-color:var(--acc);background:#eef2ff}.catbox b{color:var(--acc)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filters input,.filters select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.filters input[name=q]{flex:1;min-width:240px}.chk{font-size:13px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{font-size:12px;background:#f3f4f6;border-radius:999px;padding:2px 9px;color:#374151}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}
.card h3 a{color:var(--ink)}.card p{margin:6px 0;font-size:14px}.orig{font-size:12px;margin-top:-2px}
.meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px}
.cat{background:#eef2ff;color:#3730a3;border-radius:6px;padding:1px 8px;font-weight:600}.type{background:#f3f4f6;border-radius:6px;padding:1px 8px}
.score{margin-left:auto;font-weight:700;color:#b45309}
.claims{margin:4px 0;padding-left:18px;font-size:13px}.badge{font-size:11px;border-radius:5px;padding:0 6px;margin-right:4px}
.badge.confirmed{background:#d1fae5;color:#065f46}.badge.unconfirmed{background:#fef3c7;color:#92400e}
.sources{font-size:13px;margin-top:auto;padding-top:8px}.sources ul{padding-left:18px;margin:4px 0}
.ranked{grid-template-columns:1fr}.rank{font-weight:800;color:var(--acc);margin-bottom:-10px}
.runs{width:100%;border-collapse:collapse;font-size:13px}.runs td,.runs th{border-bottom:1px solid var(--line);padding:6px;vertical-align:top;text-align:left}
.st{border-radius:6px;padding:1px 8px;font-size:12px}.st-done{background:#d1fae5}.st-failed{background:#fee2e2}.st-running,.st-queued{background:#e0e7ff}
.error{color:var(--bad)}.trends p{margin:4px 0}
.loginpage{display:grid;place-items:center;min-height:100vh}.login{width:340px;display:flex;flex-direction:column;gap:10px}
.login label{display:flex;flex-direction:column;font-size:13px;gap:4px}.login input{font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px}
