:root{--bg: #ffffff;--panel: #f4f5f7;--border: #d7dbe3;--text: #1b1e27;--dim: #6b7280;--accent: #d6336c;--band: #f7f8fa;--band-line: #e3e6ec;--recorded: #1b1e27;--alleged: #b45309;--inferred: #7c3aed;--rel-role: #d6336c;--rel-operates: #0f766e;--rel-owns: #c2410c;--rel-premises: #6b7280;--rel-address: #2563eb;--rel-license: #7c3aed;--person: #d6336c;--entity: #3b82f6;--club: #0f766e;--parcel: #c2410c;--address: #2563eb}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:13px}#app{display:flex;flex-direction:column;height:100vh}header{padding:8px 14px;border-bottom:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;gap:6px}header h1{font-size:15px;margin:0;font-weight:600}header .sub{font-size:11.5px;color:var(--dim)}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12px}.controls input[type=text]{border:1px solid var(--border);border-radius:6px;padding:5px 9px;width:240px;font-size:12.5px;background:#fff}.controls input[type=number]{width:62px;border:1px solid var(--border);border-radius:4px;padding:3px 5px;font-size:12px}.controls button{border:1px solid var(--border);background:#fff;border-radius:4px;padding:3px 8px;cursor:pointer;font-size:11.5px}.controls .group{display:inline-flex;gap:8px;align-items:center;padding-left:12px;border-left:1px solid var(--border)}.chk{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.chk.tier-alleged{color:var(--alleged)}.chk.tier-inferred{color:var(--inferred)}.stats{color:var(--dim);font-size:11.5px;margin-left:auto}main{flex:1;display:flex;min-height:0}#graph{flex:1;min-width:0;display:block;background:var(--bg);cursor:grab}#graph:active{cursor:grabbing}.band rect{fill:var(--band);stroke:var(--band-line);stroke-width:1;rx:6}.band text{fill:var(--dim);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.band.optional rect{stroke-dasharray:4 3}.link{fill:none;stroke-width:1.2;stroke-opacity:.55}.link.tier-alleged{stroke-dasharray:6 4;stroke-width:1.5}.link.tier-inferred{stroke-dasharray:2 3;stroke-width:1.5}.link.rel-role,.link.rel-officer_of{stroke:var(--rel-role)}.link.rel-operates{stroke:var(--rel-operates);stroke-width:2.2;stroke-opacity:.85}.link.rel-liquor_license{stroke:var(--rel-license);stroke-width:1.8}.link.rel-owns_parcel{stroke:var(--rel-owns);stroke-width:2;stroke-opacity:.85}.link.rel-premises{stroke:var(--rel-premises);stroke-width:1.6}.link.rel-mailing_address,.link.rel-registered_address{stroke:var(--rel-address)}.link.rel-possibly_same{stroke:var(--inferred)}.link.rel-member_of,.link.rel-shareholder_of,.link.rel-trustee_of,.link.rel-wholly_owns,.link.rel-sold_stock_to{stroke:#9333ea;stroke-width:1.8;stroke-opacity:.8}.link.rel-bookkeeper_for,.link.rel-landlord_of{stroke:#0891b2;stroke-width:1.6}.link.rel-hq_address,.link.rel-phone{stroke:var(--rel-address)}.link.rel-excluded_from{stroke:#dc2626;stroke-width:1.8}.link.rel-partner_of,.link.rel-guaranteed_note_for{stroke:#dc2626}.link.rel-predecessor_of,.link.rel-prior_licensee_of{stroke:var(--rel-premises)}.link.out-of-range{stroke-opacity:.08}.link.faded{stroke-opacity:.06}.link.hot{stroke-opacity:1;stroke-width:3}.link.selected{stroke-opacity:1;stroke-width:3.5}.link-hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer}.node{cursor:pointer}.node .shape{stroke:#fff;stroke-width:1.5}.node.kind-person .shape{fill:var(--person)}.node.kind-entity .shape{fill:var(--entity)}.node.kind-entity.layer-unassigned .shape{fill:#b8bfcc}.node.kind-club .shape{fill:var(--club)}.node.kind-parcel .shape{fill:var(--parcel)}.node.kind-address .shape{fill:var(--address)}.node text{font-size:10.5px;fill:var(--text);pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.node.kind-person text{font-size:12.5px;font-weight:600}.node.kind-club text{font-size:11.5px;font-weight:600;fill:#fff;stroke:none}.node.layer-unassigned text{display:none}.node.layer-unassigned.hot text,.node.layer-unassigned.selected text,.node.layer-unassigned.match text{display:block}.node.faded{opacity:.12}.node.hot .shape,.node.selected .shape{stroke:var(--text);stroke-width:2.5}.node.match .shape{stroke:var(--accent);stroke-width:3}.node .caution{fill:#b45309;font-size:11px;font-weight:700;stroke:none}#panel{width:380px;border-left:1px solid var(--border);background:var(--panel);overflow-y:auto;padding:12px 14px;font-size:12.5px}#panel .empty{color:var(--dim);padding-top:20px}#panel h2{font-size:15px;margin:0 0 2px}#panel h3{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--dim);margin:16px 0 6px}#panel .kind{color:var(--dim);font-size:11.5px;margin-bottom:8px}#panel .layer{background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin:8px 0}#panel .layer b{display:block;margin-bottom:2px}#panel .layer .why{color:var(--text)}#panel .layer .src{color:var(--dim);font-size:11px;margin-top:3px}#panel .aliases{color:var(--dim);font-size:11.5px}#panel .flag{color:var(--alleged);font-size:11.5px;margin-top:4px}.claim{background:#fff;border:1px solid var(--border);border-left:3px solid var(--recorded);border-radius:6px;padding:7px 9px;margin-bottom:6px}.claim.tier-alleged{border-left-color:var(--alleged)}.claim.tier-inferred{border-left-color:var(--inferred)}.claim .head{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.claim .tier{font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:3px;color:#fff;background:var(--recorded)}.claim.tier-alleged .tier{background:var(--alleged)}.claim.tier-inferred .tier{background:var(--inferred)}.claim .pred{font-weight:600}.claim .other{color:var(--accent);cursor:pointer;text-decoration:underline dotted}.claim .cite{color:var(--dim);font-size:11px;margin-top:4px;line-height:1.4}.claim .cite a{color:var(--rel-address);word-break:break-all}.claim .note{color:var(--text);font-size:11px;margin-top:3px;font-style:italic}.conn-group{margin-bottom:4px}.conn-group summary{cursor:pointer;font-weight:600;padding:4px 0}.conn-group summary .n{color:var(--dim);font-weight:400}footer#legend{border-top:1px solid var(--border);background:var(--panel);padding:6px 14px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11.5px;color:var(--dim);align-items:center}footer .item{display:inline-flex;align-items:center;gap:6px}footer svg{overflow:visible}
