:root{--bg:#f5f7f7;--surface:#fff;--surface-soft:#f9fbfb;--text:#17211f;--muted:#64706d;--line:#dce3e1;--line-strong:#c8d2cf;--teal:#047c78;--teal-soft:#e4f3f1;--green:#12805c;--green-soft:#e5f5ee;--amber:#ad6b00;--amber-soft:#fff2d4;--red:#b6332a;--red-soft:#fde7e4;--shadow:0 10px 26px #16211f14;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:var(--teal);text-decoration:none}.appShell{min-height:100vh}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;grid-template-columns:280px minmax(260px,680px) minmax(180px,auto);align-items:center;gap:18px;min-height:66px;padding:0 18px;display:grid;position:sticky;top:0}.brand,.globalSearch,.dataStatus,.tabs,.filterHeader,.statCard,.quickLinks,.sectionTitle,.pagination,.linkIcons,.personLinks{align-items:center;display:flex}.brand{gap:11px}.brand svg{color:var(--teal)}.brand h1{letter-spacing:0;margin:0;font-size:19px;line-height:1.1}.brand span,.dataStatus,.statCard small,.tableHeader p,.filters span,td span,.detailTop p,.emptyDetail span,.duplicateList span{color:var(--muted);font-size:12px}.globalSearch{border:1px solid var(--line);background:var(--surface-soft);border-radius:7px;gap:9px;height:38px;padding:0 11px}.globalSearch input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0;font-size:14px}.dataStatus{white-space:nowrap;justify-content:flex-end;gap:8px;min-width:0}.dataStatus svg{color:var(--green);flex:none}.tabs{z-index:18;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f5f7f7f2;gap:4px;padding:10px 18px;position:sticky;top:66px}.tabs button{min-height:34px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.tabs button:hover,.tabs button.active{border-color:var(--line);background:var(--surface);color:var(--text)}.tabs button.active svg{color:var(--teal)}.workspace{grid-template-columns:248px minmax(0,1fr);gap:14px;padding:16px 18px 28px;display:grid}.filters,.tablePanel,.detailPanel,.statCard,.duplicatePanel,.exportCard,.loadingPanel{border:1px solid var(--line);background:var(--surface);border-radius:8px;box-shadow:0 1px #14221f08}.filters{height:calc(100vh - 148px);padding:16px;position:sticky;top:130px;overflow:auto}.filterHeader{justify-content:space-between;gap:10px;margin-bottom:16px}.filterHeader strong{flex:1;font-size:15px}.filterHeader svg{color:var(--teal)}.filterHeader button{color:var(--teal);background:0 0;border:0;font-size:12px;font-weight:800}.filters label{gap:7px;margin:0 0 16px;display:grid}.filters label span{color:var(--text);font-weight:800}select,input[type=range]{width:100%}select{border:1px solid var(--line);background:var(--surface-soft);height:38px;color:var(--text);border-radius:6px;padding:0 9px;font-size:13px}input[type=range]{accent-color:var(--teal)}.content{min-width:0}.statStrip,.qualityCards,.exportsView{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.statCard{gap:12px;min-height:86px;padding:13px}.statCard svg{color:var(--teal);flex:none}.statCard.green svg{color:var(--green)}.statCard.amber svg{color:var(--amber)}.statCard.red svg{color:var(--red)}.statCard div{gap:2px;min-width:0;display:grid}.statCard span{color:var(--muted);font-size:12px;font-weight:800}.statCard strong{letter-spacing:0;font-size:24px;line-height:1.05}.viewGrid{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:14px;display:grid}.viewGrid.single{grid-template-columns:minmax(0,1fr)}.fullSpan{grid-column:1/-1}.tablePanel{min-width:0;overflow:hidden}.tableHeader{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:13px 15px;display:flex}.tableHeader h2{letter-spacing:0;margin:0;font-size:18px;line-height:1.15}.tableHeader p{margin:4px 0 0}.tableScroll{max-height:calc(100vh - 330px);overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 12px;font-size:13px}th{z-index:2;background:var(--surface-soft);color:var(--muted);text-transform:uppercase;font-size:11px;position:sticky;top:0}th button{color:inherit;font-size:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-weight:900;display:inline-flex}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#f0f7f6}td strong{max-width:280px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}td span{text-overflow:ellipsis;white-space:nowrap;max-width:320px;display:block;overflow:hidden}.statusBadge{min-height:24px;color:var(--muted);text-transform:uppercase;white-space:nowrap;background:#edf1f0;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:900;display:inline-flex}.statusBadge.verified{background:var(--green-soft);color:var(--green)}.statusBadge.inferred{background:var(--amber-soft);color:var(--amber)}.statusBadge.missing,.statusBadge.duplicate{background:var(--red-soft);color:var(--red)}.statusBadge.unique{background:var(--teal-soft);color:var(--teal)}.qualityMeter{border:1px solid var(--line);background:var(--surface-soft);border-radius:999px;align-items:center;width:78px;height:24px;display:inline-flex;position:relative;overflow:hidden}.qualityMeter i{background:linear-gradient(90deg,#bfe9e3,#047c78);position:absolute;inset:0 auto 0 0}.qualityMeter strong{z-index:1;text-align:center;width:100%;font-size:11px;position:relative}.linkIcons{gap:7px}.linkIcons a{border:1px solid var(--line);width:28px;height:28px;color:var(--teal);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.pagination{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:11px 13px}.pagination button{border:1px solid var(--line);background:var(--surface);min-height:30px;color:var(--text);border-radius:6px;padding:0 10px;font-size:12px;font-weight:800}.pagination span{color:var(--muted);font-size:12px}.detailPanel{max-height:calc(100vh - 148px);padding:16px;position:sticky;top:130px;overflow:auto}.emptyDetail{min-height:300px;color:var(--muted);text-align:center;place-items:center;gap:8px;display:grid}.detailTop{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.detailTop h2{letter-spacing:0;margin:0;font-size:21px;line-height:1.2}.detailTop p{margin:5px 0 0}.quickLinks{flex-wrap:wrap;gap:8px;margin:15px 0}.quickLinks a{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px;align-items:center;gap:6px;min-height:30px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.detailList{gap:9px;margin:0;display:grid}.detailList div{grid-template-columns:116px minmax(0,1fr);gap:8px;display:grid}.detailList dt{color:var(--muted);font-size:12px;font-weight:800}.detailList dd{min-width:0;color:var(--text);overflow-wrap:anywhere;margin:0;font-size:13px}.aboutBox{border:1px solid var(--line);background:var(--surface-soft);border-radius:7px;margin:16px 0;padding:13px}.aboutBox h3,.sectionTitle h3,.peopleList h3{margin:0;font-size:15px}.aboutBox p{color:#384541;-webkit-line-clamp:7;-webkit-box-orient:vertical;margin:8px 0 0;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.sectionTitle{justify-content:space-between;margin-bottom:10px}.sectionTitle span{background:var(--teal-soft);min-width:26px;height:24px;color:var(--teal);border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:900;display:inline-flex}.peopleList{gap:9px;display:grid}.personCard{border:1px solid var(--line);border-radius:7px;gap:8px;padding:11px;display:grid}.personCard strong{font-size:14px;display:block}.personCard span{color:var(--muted);font-size:12px}.personLinks{flex-wrap:wrap;gap:8px}.personLinks a,.personLinks span{overflow-wrap:anywhere;align-items:center;gap:5px;font-size:12px;display:inline-flex}.emptyText{color:var(--muted);margin:0;font-size:13px}.qualityView{gap:14px;display:grid}.qualityCards{margin-bottom:0}.duplicatePanel{overflow:hidden}.duplicateList{max-height:calc(100vh - 400px);display:grid;overflow:auto}.duplicateList article{border-top:1px solid var(--line);gap:3px;padding:11px 15px;display:grid}.duplicateList strong{font-size:14px}.exportsView{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;margin-bottom:0}.exportCard{align-content:start;gap:11px;min-height:260px;padding:20px;display:grid}.exportCard svg{color:var(--teal)}.exportCard h2{letter-spacing:0;margin:0;font-size:20px}.exportCard p{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.exportCard button{border:1px solid var(--teal);background:var(--teal);color:#fff;border-radius:6px;justify-content:center;align-self:end;align-items:center;gap:8px;min-height:38px;margin-top:20px;font-size:13px;font-weight:900;display:inline-flex}.exportCardWide{grid-column:1/-1;max-width:520px}.downloadButton{border:1px solid var(--teal);background:var(--teal);color:#fff;border-radius:6px;justify-content:center;align-self:end;align-items:center;gap:8px;min-height:38px;margin-top:20px;font-size:13px;font-weight:900;display:inline-flex}.loadingPanel{color:var(--muted);grid-column:1/-1;padding:30px}@media (width<=1180px){.topbar{grid-template-columns:250px minmax(240px,1fr)}.dataStatus{display:none}.statStrip,.qualityCards{grid-template-columns:repeat(3,minmax(0,1fr))}.viewGrid{grid-template-columns:minmax(0,1fr)}.detailPanel{max-height:none;position:static}}@media (width<=860px){.topbar{grid-template-columns:1fr;gap:10px;padding:12px}.tabs{padding:9px 12px;top:122px;overflow-x:auto}.workspace{grid-template-columns:1fr;padding:12px}.filters{height:auto;position:static}.statStrip,.qualityCards,.exportsView{grid-template-columns:1fr}.tableScroll{max-height:none}}@media (width<=560px){.brand h1{font-size:17px}.statCard{min-height:78px}.detailList div{grid-template-columns:1fr;gap:3px}}
