:root{--bg:#0f172a;--panel:#1e293b;--text:#e2e8f0;--text-muted:#94a3b8;--accent:#38bdf8}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}.bia-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--panel);border-bottom:1px solid #334155}.bia-topbar h1{font-size:16px;margin:0}.bia-topbar nav{display:flex;gap:18px}.bia-page{padding:16px 20px}.bia-login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.bia-login-card{background:var(--panel);padding:32px;border-radius:12px;width:100%;max-width:360px}.bia-login-card h1{margin:0 0 16px}.bia-input{width:100%;padding:10px 12px;margin-bottom:12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:var(--text);font:inherit}.bia-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:0;border-radius:6px;background:var(--accent);color:#0f172a;font-weight:600}.bia-btn[disabled]{opacity:.5;cursor:not-allowed}.bia-error{color:#f87171;margin-bottom:12px;font-size:13px}.bia-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;padding-top:80px;z-index:1000}.bia-modal{width:100%;max-width:520px;background:var(--panel);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 30px 60px rgba(0,0,0,.5)}.bia-modal-header{display:flex;align-items:center;justify-content:space-between}.bia-modal-close{background:transparent;border:0;color:var(--text-muted);font-size:22px;cursor:pointer;padding:0 6px}.bia-modal-close:hover{color:var(--text)}.bia-modal-results{max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.bia-modal-row{display:block;width:100%;text-align:left;padding:8px 10px;background:transparent;border:0;border-radius:6px;color:var(--text);cursor:pointer}.bia-modal-row.is-active,.bia-modal-row:hover{background:rgba(56,189,248,.12)}.bia-modal-row-name{font-weight:600}.bia-modal-row-meta{font-size:12px;color:var(--text-muted)}.bia-modal-hint{color:var(--text-muted);padding:12px 8px;font-size:13px}.bia-modal-footer{display:flex;justify-content:flex-end;border-top:1px solid #334155;padding-top:10px}.bia-btn-ghost{background:transparent;border:1px solid #475569;color:var(--text);padding:6px 12px;border-radius:6px;font-size:12px}.bia-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.bia-fk-cell{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.bia-fk-cell:hover .bia-fk-edit{color:var(--accent)}.bia-fk-name{color:var(--text)}.bia-fk-empty{color:var(--text-muted);font-style:italic}.bia-fk-edit{color:var(--text-muted);font-size:12px}.bia-modal-wide{max-width:720px}.bia-merge-list{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow-y:auto;border:1px solid #334155;border-radius:8px;padding:8px;background:rgba(0,0,0,.18)}.bia-merge-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;background:transparent}.bia-merge-row:hover{background:rgba(56,189,248,.08)}.bia-merge-row.is-survivor{background:rgba(34,197,94,.12);outline:1px solid rgba(34,197,94,.5)}.bia-merge-row input[type=radio]{margin:0}.bia-merge-row-body{flex:1 1;min-width:0}.bia-merge-row-name{font-weight:600;color:var(--text)}.bia-merge-row-meta{font-size:12px;color:var(--text-muted)}.bia-merge-badge{font-size:11px;font-weight:700;color:#052e16;background:#22c55e;padding:2px 8px;border-radius:999px}.bia-grid-toolbar{display:flex;align-items:center;gap:12px;padding:8px 12px;margin-bottom:8px;background:var(--panel);border:1px solid #334155;border-radius:8px}.bia-grid-toolbar-spacer{flex:1 1}.bia-btn-warn{background:#f59e0b;color:#0f172a;font-weight:600;padding:6px 14px;border:0;border-radius:6px}.bia-btn-warn[disabled]{opacity:.5;cursor:not-allowed}.bia-btn-danger{background:#ef4444;color:#fff;font-weight:600;padding:6px 14px;border:0;border-radius:6px}.bia-btn-danger:hover{background:#dc2626}.bia-btn-danger[disabled]{opacity:.5;cursor:not-allowed}.bia-controls{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap;background:var(--panel);border:1px solid #334155;border-radius:10px;padding:12px 16px}.bia-control-group{border:1px solid #334155;border-radius:8px;padding:6px 12px 8px;display:flex;flex-direction:column;gap:4px;margin:0;min-width:200px}.bia-control-group legend{padding:0 6px;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.bia-radio{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}.bia-radio input{margin:0}.bia-dup-card{background:var(--panel);border:1px solid #334155;border-radius:10px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.bia-dup-header{display:flex;align-items:center;gap:10px}.bia-dup-rows{display:flex;flex-direction:column;gap:4px;background:rgba(0,0,0,.18);border-radius:6px;padding:6px}.bia-dup-row{display:flex;align-items:center;gap:12px;padding:6px 10px;border-radius:5px;cursor:pointer}.bia-dup-row:hover{background:rgba(56,189,248,.08)}.bia-dup-row.is-survivor{background:rgba(34,197,94,.12);outline:1px solid rgba(34,197,94,.5)}.bia-dup-row input[type=radio]{margin:0}.bia-dup-row-body{flex:1 1;min-width:0}.bia-dup-row-name{font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:8px}.bia-dup-row-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bia-dup-row-meta,.bia-dup-row-stats{font-size:12px;color:var(--text-muted)}.bia-dup-row-stats{display:flex;gap:14px;align-items:center}.bia-dup-row-stats strong{color:var(--text)}.bia-dup-tag{font-size:10px;font-weight:700;color:#0c4a6e;background:#7dd3fc;padding:2px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.bia-dup-tag-excluded{color:#7f1d1d;background:#fca5a5}.bia-dup-row.is-excluded{opacity:.42;background:rgba(248,113,113,.06);outline:1px dashed rgba(248,113,113,.35)}.bia-dup-row.is-excluded .bia-dup-row-name{text-decoration:line-through}.bia-dup-row.is-excluded.is-survivor{outline-color:#f87171}.bia-dup-exclude-btn{background:transparent;border:1px solid #475569;color:var(--text-muted);width:26px;height:26px;border-radius:6px;cursor:pointer;padding:0;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.bia-dup-exclude-btn:hover{border-color:#f87171;color:#f87171}.bia-dup-row.is-excluded .bia-dup-exclude-btn{border-color:#34d399;color:#34d399}.bia-dup-row.is-excluded .bia-dup-exclude-btn:hover{background:rgba(52,211,153,.12)}.bia-recon-card{background:var(--panel);border:1px solid #334155;border-radius:10px;padding:12px 16px}.bia-recon-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.bia-recon-table{width:100%;border-collapse:collapse;font-size:13px}.bia-recon-table th{text-align:left;padding:6px 10px;color:var(--text-muted);border-bottom:1px solid #334155;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.bia-recon-table td{padding:6px 10px;border-bottom:1px solid rgba(51,65,85,.5)}.bia-recon-table tbody tr:hover{background:rgba(56,189,248,.05)}.bia-recon-section{margin-top:10px;border:1px solid #334155;border-radius:8px;padding:6px 10px;background:rgba(0,0,0,.18)}.bia-recon-section summary{cursor:pointer;padding:4px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bia-recon-section summary:hover{color:var(--accent)}.bia-recon-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.bia-recon-matched{background:rgba(34,197,94,.18);color:#4ade80}.bia-recon-fuzzy{background:rgba(245,158,11,.18);color:#fbbf24}.bia-recon-new{background:rgba(56,189,248,.18);color:#7dd3fc}.bia-cr-modal{max-width:920px;position:relative}.bia-cr-body{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:4px 4px 8px;flex:1 1 auto;min-height:0}.bia-cr-card{background:rgba(0,0,0,.18);border:1px solid #334155;border-radius:8px;padding:10px 12px}.bia-cr-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.bia-cr-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}.bia-cr-meta{font-size:12px;color:var(--text-muted)}.bia-cr-snippet{margin:6px 0 8px;font-size:13px;color:var(--text);line-height:1.5}.bia-cr-content{margin-top:8px;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;font-size:12.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;max-height:360px;overflow-y:auto}.bia-cr-alt{display:inline-block;margin-right:8px;font-size:11px;color:var(--text-muted)}.bia-cr-flags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}.bia-cr-flag{font-size:9px;font-weight:700;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;cursor:help}.bia-cr-flag-compound{background:rgba(245,158,11,.2);color:#fbbf24}.bia-cr-flag-near-duplicate{background:rgba(244,114,182,.2);color:#f9a8d4}.bia-cr-flag-low-confidence{background:rgba(248,113,113,.2);color:#fca5a5}.bia-cr-del-btn{background:transparent;border:1px solid #475569;color:var(--text-muted);width:26px;height:26px;border-radius:6px;cursor:pointer;padding:0;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.bia-cr-del-btn:hover{border-color:#f87171;color:#f87171}.bia-cr-row-deleted{opacity:.4}.bia-cr-row-deleted td:first-child>div:first-child{text-decoration:line-through}.bia-cr-row-deleted .bia-cr-del-btn{border-color:#34d399;color:#34d399}.bia-cr-row-deleted .bia-cr-del-btn:hover{background:rgba(52,211,153,.12)}.bia-cr-search-btn{background:transparent;border:1px solid #334155;color:var(--text-muted);font-size:11px;padding:2px 8px;border-radius:5px;cursor:pointer}.bia-cr-search-btn:hover{border-color:var(--accent);color:var(--accent)}.bia-cr-override-tag{display:inline-block;margin-left:8px;font-size:9px;font-weight:700;padding:1px 6px;border-radius:999px;background:rgba(56,189,248,.2);color:#7dd3fc;text-transform:uppercase;letter-spacing:.04em}.bia-cr-progress-overlay{position:absolute;inset:0;z-index:10;background:rgba(15,23,42,.65);display:flex;align-items:center;justify-content:center;border-radius:10px}.bia-cr-progress-card{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid #475569;padding:14px 22px;border-radius:10px;box-shadow:0 20px 50px rgba(0,0,0,.5)}.bia-cr-spinner{width:18px;height:18px;border:2px solid #334155;border-top:2px solid var(--accent);border-radius:50%;animation:bia-spin .8s linear infinite}@keyframes bia-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.bia-recon-selbar{position:fixed;right:24px;bottom:24px;z-index:100;gap:10px;padding:10px 14px;border:1px solid #475569;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.5)}.bia-grid-filterbar,.bia-recon-selbar{display:flex;align-items:center;background:var(--panel)}.bia-grid-filterbar{gap:8px;flex-wrap:wrap;padding:8px 12px;margin-bottom:8px;border:1px solid #334155;border-radius:8px}.bia-grid-filterbar-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.bia-grid-filterbar .bia-input[type=date]{color-scheme:dark}.bia-modal-tall{max-height:calc(100vh - 120px)}.bia-edit-form,.bia-modal-tall{display:flex;flex-direction:column}.bia-edit-form{gap:12px;overflow-y:auto;padding:4px 4px 8px;flex:1 1 auto;min-height:0}.bia-field{display:flex;flex-direction:column;gap:4px}.bia-field-label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.bia-field-label,.bia-field-ro{text-transform:uppercase;letter-spacing:.04em}.bia-field-ro{font-size:9px;font-weight:700;color:#94a3b8;background:rgba(148,163,184,.18);padding:1px 6px;border-radius:999px}.bia-field-hint{font-size:11px;color:var(--text-muted);text-transform:none;letter-spacing:0;font-weight:400;font-style:italic}.bia-textarea{resize:vertical;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.4;margin:0}.bia-field input.bia-input{margin:0}.bia-row-edit-btn{background:transparent;border:1px solid #475569;color:var(--text);padding:2px 10px;border-radius:6px;font-size:12px;cursor:pointer}.bia-row-edit-btn:hover{border-color:var(--accent);color:var(--accent)}