:root{--bg:#f0f0ee;--ink:#1f1e1c;--muted:#6e6d66;--line:#c0bfb7;--soft:#dbdad3;--accent:#f5572f;--white:#fff;--data:#22211f}
*{box-sizing:border-box;letter-spacing:0}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.55;font-variant-numeric:tabular-nums}button,select{font:inherit;color:inherit}button{border:1px solid var(--line);background:transparent;border-radius:5px;min-height:36px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){background:var(--soft)}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.primary{background:var(--data);color:var(--white);border-color:var(--data)}.primary:hover:not(:disabled){background:#4a4944}select{width:100%;min-width:0;border:1px solid var(--line);background:transparent;border-radius:5px;height:38px;padding:0 28px 0 10px}select:disabled{color:var(--muted);opacity:1}h1,h2,p{margin:0}h1{font-size:26px;line-height:1.3}h2{font-size:17px;font-weight:700;line-height:1.45}.topbar{min-height:54px;border-bottom:1px solid var(--line);padding:12px 32px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.sep{padding:0 12px;color:var(--muted)}.environment{border:1px solid var(--line);border-radius:4px;padding:3px 8px;font-size:12px}main{max-width:1500px;margin:auto;padding:26px 32px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{font-size:12px;color:var(--muted);margin-bottom:4px}.actions{display:flex;gap:8px}.snapshot{display:flex;gap:16px;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:12px;flex-wrap:wrap}.filters{display:grid;grid-template-columns:1.25fr 1.2fr 1fr 1.5fr .8fr 1fr 1.4fr auto;align-items:end;gap:12px;margin:24px 0 20px}.filters label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.filters select{font-size:13px;color:var(--ink)}.filters button{height:38px;white-space:nowrap;font-size:13px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:20px 0;gap:24px}.kpi{padding-right:20px;border-right:1px solid var(--line)}.kpi:last-child{border-right:none}.kpi p{font-size:13px;color:var(--muted)}.kpi strong{display:block;font-size:32px;font-weight:700;line-height:1.35;margin:5px 0}.kpi small{font-size:12px;color:var(--muted)}.kpi.accent{border-left:3px solid var(--accent);padding-left:16px}.kpi .numeric-note{font-size:18px;color:var(--muted);font-weight:400;margin-left:8px}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:20px 0 26px}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:12px 0;min-width:56px;background:none}.tabs button[aria-selected=true]{border-bottom-color:var(--ink);font-weight:700}.charts{display:grid;grid-template-columns:1.1fr 1fr;gap:36px}.charts section{min-width:0}.matrix{padding-left:34px;border-left:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px}.sub{color:var(--muted);font-size:12px;margin-top:4px}.pager{display:flex;align-items:center;gap:10px;flex-shrink:0;font-size:12px}.pager button{padding:3px 10px;min-width:34px}.pager span{white-space:nowrap}.chart-scroll{overflow-x:auto}svg{display:block;max-width:100%;width:100%;font-family:inherit}svg [role=button]{cursor:pointer}svg [role=button]:hover .hit,svg [role=button]:focus .hit{stroke:var(--ink);stroke-width:1.5}svg [role=button]:focus{outline:none}.source-note{font-size:12px;color:var(--muted);margin-top:10px}.correction-section{padding:24px 0;margin-top:26px;border-top:1px solid var(--line)}.corrections{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.corrections button{padding:14px 0;border:none;border-top:1px solid var(--line);border-radius:0;text-align:left;display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:8px}.corrections strong{font-size:26px}.table-scroll{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;white-space:nowrap;padding:10px 12px;border-bottom:1px solid var(--ink)}td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}td:first-child,th:first-child{padding-left:0}td small{display:block;color:var(--muted);font-size:12px;margin-top:4px;overflow-wrap:anywhere}td .num{white-space:nowrap}tbody tr:hover{background:#e6e5e0}td button{font-size:12px;white-space:nowrap}.table-pager{justify-content:flex-end;margin-top:18px}#error,.warning{border-left:3px solid var(--accent);background:var(--soft);padding:12px 16px;margin:16px 0}#loading{padding:18px 0;color:var(--muted)}.empty{padding:28px 0;color:var(--muted);text-align:center}.quality-summary{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:20px}.quality-summary strong{font-size:22px;margin-right:6px}details{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}summary{cursor:pointer}details p{margin-top:12px;max-width:900px;color:var(--muted);font-size:13px}footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:36px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer a{color:inherit}dialog{width:min(1150px,94vw);max-height:86vh;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);padding:24px}dialog::backdrop{background:rgba(31,30,28,.35)}.dialog-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}#close-details{font-size:24px;padding:0 10px;line-height:1}dialog .table-scroll{max-height:60vh}dialog th{position:sticky;top:0;background:var(--bg)}dialog td{min-width:85px}dialog td:last-child{min-width:240px;font-size:12px;color:var(--muted)}.fade{animation:fade .9s cubic-bezier(.25,1,.5,1) both}.pop{transform-box:fill-box;transform-origin:center;animation:pop .5s cubic-bezier(.25,1,.5,1) both}@keyframes fade{from{opacity:0}}@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}[hidden]{display:none!important}
@media(min-width:1600px){main{padding-top:32px}}@media(max-width:1150px){.filters{grid-template-columns:repeat(4,minmax(0,1fr))}.charts{gap:24px}.matrix{padding-left:24px}.kpis{gap:16px}.kpi{padding-right:12px}}
@media(max-width:800px){.topbar{padding:12px 18px}main{padding:22px 18px}.heading{align-items:flex-end}.actions{gap:6px}.actions button{font-size:12px;padding:6px 9px}h1{font-size:24px}.filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.kpi:nth-child(2){border-right:0}.kpi strong{font-size:28px}.kpi small{font-size:11px}.charts{grid-template-columns:1fr;gap:30px}.matrix{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.section-heading{margin-bottom:12px}.corrections{gap:12px}.corrections button{display:block}.corrections strong{display:block;margin-top:8px}.corrections span{font-size:12px}.tabs{gap:22px}.snapshot{gap:5px}.environment{font-size:11px}.sep{padding:0 8px}dialog{padding:18px}th,td{padding:10px 9px}.quality-summary{gap:14px}.chart-scroll svg{min-width:0}.numeric-note{display:block}}
@media(prefers-reduced-motion:reduce){.fade,.pop{animation:none!important}}
