:root{color:#dbe4f2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#38bdf82e,#0000 34%),linear-gradient(#020617 0%,#0f172a 45%,#111827 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}a{color:inherit}a:hover{opacity:.94}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;color:#f8fafc;max-width:11ch;margin:.6rem 0 1rem;font-size:clamp(2.6rem,5vw,4.8rem);line-height:.98}h2{color:#f8fafc;font-size:clamp(1.55rem,2vw,2.2rem);line-height:1.1}p{color:#cbd5e1}.app-shell{gap:16px;width:min(1380px,100% - 32px);margin:0 auto;padding:28px 0 44px;display:grid}.status-shell{align-items:center;min-height:100vh}.site-header{z-index:8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0a111ff0;border:1px solid #94a3b833;border-radius:18px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-width:0;padding:8px;display:flex;position:sticky;top:12px;box-shadow:0 16px 60px #02061757}.site-identity{align-items:baseline;gap:10px;min-width:0;padding:0 8px;display:flex}.site-name{color:#f8fafc;font-size:1.05rem;font-weight:800}.site-count{color:#94a3b8;white-space:nowrap;font-size:.78rem;font-weight:800}.site-session-select{align-items:center;gap:8px;min-width:0;display:inline-flex}.site-session-select select{color:#f8fafc;min-width:72px;font:inherit;cursor:pointer;background:#0f172ab8;border:1px solid #94a3b83d;border-radius:10px;padding:.42rem .5rem;font-size:.78rem;font-weight:800}.workspace-toolbar{background:#0a111fd1;border:1px solid #94a3b833;border-radius:20px;flex-wrap:wrap;align-items:stretch;gap:10px;width:100%;min-width:0;padding:10px;display:flex}.toolbar-group{background:#0f172aa8;border:1px solid #94a3b824;border-radius:14px;align-items:center;gap:10px;min-width:0;min-height:48px;padding:6px;display:inline-flex}.toolbar-count{padding:6px 14px}.toolbar-count strong{color:#f8fafc;font-size:1.15rem}.view-tabs,.role-tabs{flex-wrap:wrap;gap:10px;display:flex}.site-header .view-tabs{background:#0f172aa8;border:1px solid #94a3b824;border-radius:14px;flex:0 420px;min-width:210px;padding:4px}.site-header .view-tabs button{flex:1}.view-tabs button,.role-tabs button,.cluster-control button{color:#cbd5e1;font:inherit;cursor:pointer;background:#0f172ab8;border:1px solid #94a3b838;border-radius:10px;padding:.55rem .82rem}.view-tabs button.active,.role-tabs button.active,.cluster-control button.active{color:#f8fafc;background:#082f49c7;border-color:#38bdf8ad}.compact-tabs{justify-content:flex-end}.map-panel,.detail-card,.cluster-list-card,.legislator-workspace,.legislator-detail-card,.status-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f172ac7;border:1px solid #94a3b82e;border-radius:26px;box-shadow:0 24px 80px #02061752}.workspace-grid{grid-template-columns:minmax(0,1.8fr) minmax(320px,.65fr);align-items:start;gap:22px;display:grid}.stat-label,.section-kicker,.detail-label{text-transform:uppercase;letter-spacing:.16em;color:#38bdf8;font-size:.73rem;display:block}.map-panel,.detail-card,.cluster-list-card,.legislator-workspace,.legislator-detail-card,.status-card{padding:24px}.panel-header{justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px;display:flex}.search-box{color:#cbd5e1;flex:260px;gap:10px;min-width:220px;font-size:.88rem;display:inline-flex}.search-box span,.filter-select span{color:#94a3b8;letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:700}.search-box input,.filter-select select{color:#f8fafc;min-width:0;font:inherit;background:#0f172aa6;border:1px solid #94a3b840;border-radius:10px;padding:.62rem .75rem}.search-box input{width:100%}.filter-select{flex:0 230px}.filter-select select{cursor:pointer;width:100%}.filter-caption{color:#94a3b8;flex:1 0 100%;margin:0;font-size:.78rem;line-height:1.35}.cluster-control{background:0 0;border-color:#0000;flex:0 auto;padding-inline:0}.cluster-control-label{color:#94a3b8;letter-spacing:.08em;text-transform:uppercase;align-items:center;min-height:40px;font-size:.76rem;font-weight:700;display:inline-flex}.active-filter-chip{align-items:center;gap:8px;max-width:220px;display:inline-flex}.active-filter-chip span,.cluster-filter-chip .cluster-swatch{border-radius:999px;flex:none;width:10px;height:10px}.active-filter-chip strong{color:#94a3b8;font-size:.86rem}.cluster-filter-tray{flex-wrap:wrap;flex:1 0 100%;gap:8px;min-width:0;padding:2px;display:flex;overflow:visible}.cluster-filter-chip{color:#e2e8f0;max-width:100%;min-height:40px;font:inherit;text-align:left;cursor:pointer;background:#1e293b9e;border:1px solid #94a3b82e;border-radius:12px;flex:172px;justify-content:flex-start;align-items:center;gap:8px;padding:.48rem .72rem;font-size:.84rem;line-height:1.15;display:inline-flex}.cluster-filter-chip strong{overflow-wrap:anywhere;min-width:0}.cluster-filter-chip.active{background:#082f49c7;border-color:#38bdf8b8}.cluster-filter-chip small{color:#94a3b8;font-weight:700}.map-frame{background:linear-gradient(#080f20d6,#070a15f5);border:1px solid #94a3b824;border-radius:22px;position:relative;overflow:hidden}.map-svg{border-radius:22px;width:100%;height:auto;display:block}.map-magnifier{z-index:3;will-change:transform;pointer-events:none;background:#020617fa;border:2px solid #7dd3fcd9;border-radius:999px;width:168px;height:168px;position:absolute;top:0;left:0;overflow:hidden;transform:translate(0,0);box-shadow:0 18px 40px #0206178c,0 0 0 4px #0f172aeb}.map-magnifier-hidden{visibility:hidden;pointer-events:none}.map-magnifier-svg{width:100%;height:100%;display:block}.map-point{cursor:pointer}.map-background{fill:#020617f2;cursor:default}.detail-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.clear-selection{color:#cbd5e1;font:inherit;cursor:pointer;background:#1e293b8c;border:1px solid #94a3b838;border-radius:999px;padding:.35rem .75rem;font-size:.82rem}.clear-selection:hover{color:#f8fafc;border-color:#38bdf88c}.grid-lines{pointer-events:none}.grid-lines line{stroke:#94a3b82e;stroke-width:1px;stroke-dasharray:5 8}.sidebar-stack{gap:22px;display:grid}.chip-row{flex-wrap:wrap;gap:10px;margin:12px 0 14px;display:flex}.cluster-chip,.bill-chip{color:#020617;border-radius:999px;align-items:center;padding:.42rem .78rem;font-size:.84rem;font-weight:700;display:inline-flex}.bill-chip{color:#e2e8f0;background:#94a3b83d}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}.detail-grid div{background:#1e293b9e;border-radius:16px;padding:14px}.detail-grid dt{text-transform:uppercase;letter-spacing:.12em;color:#7dd3fc;margin-bottom:8px;font-size:.78rem}.detail-grid dd{color:#f8fafc;margin:0}.action-text{margin-top:0}.link-row{flex-wrap:wrap;gap:16px;margin-top:18px;display:flex}.link-row.compact{gap:10px;margin-top:8px}.link-row a,.status-card code{color:#7dd3fc}.bill-legislator-groups{border-top:1px solid #94a3b824;gap:16px;margin-top:22px;padding-top:14px;display:grid}.bill-legislator-group h3{color:#f8fafc;margin:0 0 10px;font-size:.92rem}.legislator-chip-list{gap:10px;display:grid}.legislator-contact-card,.legislator-rank-row,.legislator-bill-list a{color:#e2e8f0;background:#1e293b8c;border:1px solid #94a3b824;border-radius:16px}.legislator-contact-card{align-items:flex-start;gap:12px;padding:12px;display:flex}.legislator-contact-body{gap:5px;min-width:0;display:grid}.contact-stack{color:#cbd5e1;gap:3px;font-size:.86rem;display:grid}.muted-copy{color:#94a3b8}.legislator-grid{grid-template-columns:minmax(280px,.6fr) minmax(0,1.4fr);gap:22px;display:grid}.legislator-rank-list{align-content:start;gap:10px;display:grid}.legislator-rank-row{text-align:left;cursor:pointer;align-items:center;gap:14px;width:100%;padding:12px 14px;display:flex}.legislator-rank-row.party-republican{background:linear-gradient(90deg,#7f1d1d94,#1e293b8c 42%);border-color:#ef444457 #ef444457 #ef444457 #ef4444;border-left-style:solid;border-left-width:8px}.legislator-rank-row.party-democrat{background:linear-gradient(90deg,#1e40af94,#1e293b8c 42%);border-color:#3b82f65c #3b82f65c #3b82f65c #3b82f6;border-left-style:solid;border-left-width:8px}.legislator-rank-row.party-unknown{border-left:8px solid #94a3b880}.legislator-rank-row.active{outline-offset:2px;outline:2px solid #7dd3fccc}.rank-number,.score-pill{color:#7dd3fc;background:#0ea5e92e;border-radius:999px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.rank-number{flex:none;width:34px;height:34px}.score-pill{min-width:56px;height:40px}.legislator-rank-row span:last-child,.legislator-bill-list a{display:grid}.legislator-rank-row>span:nth-of-type(2){flex:1;min-width:0}.legislator-photo{object-fit:cover;background:#0f172ab8;border:2px solid #f8fafc33;border-radius:999px;flex:none}.legislator-photo.small{width:52px;height:52px}.legislator-photo.large{width:74px;height:74px}.photo-fallback{color:#e2e8f0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.party-pill{letter-spacing:.03em;color:#f8fafc;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.32rem .66rem;font-size:.74rem;font-weight:800;display:inline-flex}.party-pill.party-republican{background:#dc2626}.party-pill.party-democrat{background:#2563eb}.party-pill.party-unknown{background:#64748bcc}.legislator-title-row{align-items:center;gap:14px;display:flex}.legislator-rank-row small,.legislator-bill-list small{color:#cbd5e1}.category-pie{background-clip:padding-box;border-radius:999px;flex:none;width:42px;height:42px;overflow:hidden}.category-pie.empty{background:#94a3b833}.category-summary{background:#1e293b8c;border-radius:18px;align-items:center;gap:14px;margin-top:18px;padding:14px;display:flex}.category-summary .category-pie{width:64px;height:64px}.category-legend{color:#cbd5e1;flex-wrap:wrap;gap:8px 12px;margin-top:8px;font-size:.86rem;display:flex}.category-legend span{align-items:center;gap:6px;display:inline-flex}.category-legend i{border-radius:999px;width:10px;height:10px}.role-tabs{margin:20px 0 14px}.legislator-bill-list{gap:10px;display:grid}.legislator-bill-list a{border-left:6px solid var(--category-color,#94a3b873);background:linear-gradient(90deg, color-mix(in srgb, var(--category-color,#38bdf8) 22%, transparent), transparent 42%), #1e293b8c;gap:5px;padding:13px 120px 13px 13px;text-decoration:none;position:relative}.legislator-bill-list a:hover{border-color:#38bdf88c}.legislator-bill-list a em{color:#e2e8f0;text-align:center;background:#0f172ab8;border-radius:999px;max-width:104px;padding:.28rem .56rem;font-size:.72rem;font-style:normal;font-weight:800;position:absolute;bottom:12px;right:12px}.cluster-list{gap:10px;margin-top:14px;display:grid}.cluster-row{color:#e2e8f0;text-align:left;cursor:pointer;background:#1e293b8c;border:1px solid #94a3b824;border-radius:18px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.cluster-row.active{background:#082f4980;border-color:#38bdf8b3}.cluster-swatch{border-radius:999px;flex:none;width:14px;height:14px}.cluster-copy{display:grid}.cluster-copy strong{color:#f8fafc}.cluster-copy small{color:#cbd5e1}.error-card h1,.map-panel h2,.detail-card h2{margin-bottom:.8rem}@media (width<=1100px){.workspace-grid{grid-template-columns:1fr}.panel-header{flex-direction:column;align-items:stretch}}@media (width<=720px){.app-shell{gap:12px;width:min(100%,100% - 20px);padding:10px 0 28px}.site-header{border-radius:16px;align-items:stretch;top:8px}.site-identity{flex-direction:column;flex:126px;justify-content:center;gap:0;padding-inline:6px}.site-name{font-size:.96rem}.site-count{font-size:.68rem}.site-header .view-tabs{flex:220px;gap:6px;min-width:210px}.site-header .view-tabs button{flex:1;padding-inline:.4rem;font-size:.86rem}.workspace-toolbar{border-radius:18px}.toolbar-group{min-height:44px}.search-box,.filter-select,.cluster-control{flex:100%}.search-box{align-items:center}.map-panel,.detail-card,.cluster-list-card,.legislator-workspace,.legislator-detail-card,.status-card{border-radius:20px;padding:18px}.detail-grid{grid-template-columns:1fr}.search-box{min-width:0}.legislator-grid{grid-template-columns:1fr}}
