:root{--font-display:Georgia, "Times New Roman", serif;--font-body:"Iowan Old Style", Charter, Georgia, "Times New Roman", serif;--font-ui:Charter, Georgia, "Times New Roman", serif;--type-micro:.75rem;--type-label:.875rem;--type-body:1rem;--type-body-lg:1.125rem;--type-card-heading:2rem;--type-display-heading:clamp(2.2rem, 4vw, 4.5rem);font-family:var(--font-body);color:#172033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#fffdf7 0%,#f7f1e7 46%,#efe3cf 100%);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{font-family:var(--font-display);font-weight:700}h1,h2,h3,p{margin-top:0}h1{font-size:var(--type-display-heading);letter-spacing:0;color:#14315f;max-width:11ch;margin:.6rem 0 1rem;line-height:.98}h2{font-size:var(--type-card-heading);color:#14315f;line-height:1.1}p{color:#334155}.app-shell{gap:16px;width:min(1380px,100% - 32px);margin:0 auto;padding:28px 0 44px;display:grid}button,input,select,textarea,small,code,.site-count,.stat-label,.section-kicker,.detail-label,.cluster-control-label,.filter-caption,.party-pill,.cluster-chip,.bill-chip,.rank-number,.score-pill,.help-tooltip,.scatter-label,.scatter-quadrant{font-family:var(--font-ui)}.status-shell{align-items:center;min-height:100vh}.site-header{z-index:8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#111827f0;border:0;border-bottom:1px solid #94a3b833;border-radius:0;justify-content:space-between;align-items:center;gap:12px;width:100vw;min-width:0;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:10px max(16px,50vw - 674px);display:flex;position:sticky;top:0;box-shadow:0 10px 28px #11182729}.site-identity{align-items:baseline;gap:10px;min-width:0;padding:0 8px;display:flex}.site-name{color:#fffdf7;font-family:var(--font-display);font-size:var(--type-body-lg);font-weight:800}.site-count{color:#aeb8c9;white-space:nowrap}.site-session-select{align-items:center;gap:8px;min-width:0;display:inline-flex}.site-session-select select{color:#fffdf7;min-width:72px;font:800 var(--type-micro)/1.4 var(--font-ui);cursor:pointer;background:#16213db8;border:1px solid #94a3b83d;border-radius:10px;padding:.42rem .5rem}.workspace-toolbar{background:#111827d1;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:#16213da8;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{font-size:var(--type-body-lg);color:#fffdf7}.view-tabs,.role-tabs{flex-wrap:wrap;gap:10px;display:flex}.site-header .view-tabs{background:#16213da8;border:1px solid #94a3b824;border-radius:10px;flex:none;gap:3px;min-width:0;padding:3px}.site-header .view-tabs button{flex:1}.view-tabs button,.role-tabs button,.cluster-control button{color:#d6deed;font:500 var(--type-label)/1.4 var(--font-ui);cursor:pointer;background:#16213db8;border:1px solid #94a3b838;border-radius:8px;padding:.46rem .68rem}.view-tabs button.active,.role-tabs button.active,.cluster-control button.active{color:#fffdf7;background:#14213dc7;border-color:#b91c2bad}.compact-tabs{justify-content:flex-end}.map-panel,.detail-card,.cluster-list-card,.agenda-panel,.legislator-workspace,.legislator-detail-card,.status-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#16213dc7;border:1px solid #94a3b82e;border-radius:26px;box-shadow:0 24px 80px #11182752}.workspace-grid{grid-template-columns:minmax(0,1.8fr) minmax(320px,.65fr);align-items:start;gap:22px;display:grid}.overview-dashboard{gap:18px;display:grid}.overview-hero{background:linear-gradient(135deg,#14213de6,#16213dd6 44%,#8f1d2cc7),#16213dc7;border:1px solid #94a3b82e;border-radius:24px;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:stretch;gap:18px;padding:28px;display:grid;box-shadow:0 24px 80px #11182752}.overview-hero h1{color:#fffdf7;max-width:720px;font-size:var(--type-display-heading);letter-spacing:0;margin:.35rem 0 .85rem;line-height:.98}.overview-hero p{color:#e9eef8;max-width:760px;font-size:var(--type-body-lg);margin:0;line-height:1.65}.overview-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.overview-actions button{color:#fffdf7;font:600 var(--type-label)/1.4 var(--font-ui);cursor:pointer;background:#b91c2b29;border:1px solid #f7d47d61;border-radius:12px;padding:.7rem .95rem}.overview-actions button:hover{background:#b91c2b3d}.session-card{background:#11182761;border:1px solid #94a3b82e;border-radius:20px;align-content:center;gap:8px;min-height:220px;padding:24px;display:grid}.session-card strong{color:#fffdf7;font-size:var(--type-card-heading);line-height:1}.outcome-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.outcome-card{background:#16213dc7;border:1px solid #94a3b82e;border-radius:18px;align-content:space-between;gap:12px;min-height:154px;padding:20px;display:grid;box-shadow:0 18px 56px #1118273d}.outcome-card span,.outcome-card small{color:#d6deed}.outcome-card strong{color:#fffdf7;font-size:var(--type-card-heading);line-height:1}.law-card{border-color:#f7d47d75}.stalled-card{border-color:#d7b35d66}.veto-card{border-color:#b91c2b7a}.other-card{border-color:#f7d47d47}.overview-two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.stat-label,.section-kicker,.detail-label{text-transform:uppercase;letter-spacing:.16em;font-size:var(--type-micro);color:#b91c2b;display:block}.map-panel,.detail-card,.cluster-list-card,.agenda-panel,.legislator-workspace,.legislator-detail-card,.status-card{padding:24px}.agenda-panel{gap:16px;display:grid}.panel-header{justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px;display:flex}.panel-header.compact{margin-bottom:0}.panel-header.compact h2{margin:.35rem 0 0}.topic-list,.impact-list{gap:10px;display:grid}.topic-row,.impact-row{color:#eef2f8;background:#31415c8c;border:1px solid #94a3b824;border-radius:16px;align-items:center;gap:12px;min-width:0;padding:13px 14px;display:flex}.topic-row{text-align:left;cursor:pointer;width:100%;list-style:none}.topic-row::-webkit-details-marker{display:none}.topic-row:hover,.topic-row:focus-visible{background:#1f5da89e;border-color:#b91c2b9e;outline:none}.topic-drilldown[open] .topic-row{background:#1f5da89e;border-color:#b91c2b9e;border-bottom-right-radius:8px;border-bottom-left-radius:8px}.topic-row div,.impact-row div{min-width:0}.topic-row strong,.impact-row strong{color:#fffdf7}.topic-row small,.impact-row small{color:#d6deed;margin-top:3px;line-height:1.35;display:block}.topic-row em{color:#f7d47d;background:#b91c2b24;border-radius:999px;margin-left:auto;padding:.35rem .62rem;font-style:normal;font-weight:800}.taxonomy-page .panel-header{align-items:start}.secondary-action{color:#fff7df;font:600 var(--type-label)/1.4 var(--font-ui);cursor:pointer;background:#b91c2b29;border:1px solid #f7d47d5c;border-radius:12px;padding:.72rem .9rem}.secondary-action:hover,.secondary-action:focus-visible{background:#b91c2b40;border-color:#f7d47db8;outline:none}.taxonomy-summary{grid-template-columns:repeat(2,minmax(0,max-content));align-items:center;gap:10px;display:grid}.taxonomy-summary span{background:#16213d9e;border:1px solid #94a3b824;border-radius:10px;min-width:150px;padding:10px 12px}.taxonomy-summary strong{color:#fffdf7;font-size:var(--type-body-lg);line-height:1;display:block}.taxonomy-summary small{color:#aeb8c9;font-size:var(--type-label)}.subject-accordion-list{gap:8px;display:grid}.subject-accordion{background:#16213d85;border:1px solid #94a3b824;border-radius:14px;overflow:hidden}.subject-accordion summary{cursor:pointer;grid-template-columns:minmax(0,1fr) minmax(86px,auto) minmax(120px,auto);align-items:center;gap:14px;padding:12px 14px;list-style:none;display:grid}.subject-accordion summary::-webkit-details-marker{display:none}.subject-accordion summary:hover,.subject-accordion summary:focus-visible,.subject-accordion[open] summary{background:#1f5da86b;outline:none}.subject-accordion strong{color:#fffdf7}.subject-accordion small{color:#aeb8c9;margin-top:3px;display:block}.subject-accordion summary>span{text-align:right}.subject-accordion em{color:#f7d47d;background:#b91c2b24;border-radius:999px;justify-self:end;padding:.35rem .62rem;font-style:normal;font-weight:800}.taxonomy-bill-list{gap:8px;padding:0 14px 14px;display:grid}.taxonomy-bill-card{background:#11182757;border:1px solid #94a3b81f;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.taxonomy-bill-card strong,.taxonomy-bill-card span,.taxonomy-bill-card small{display:block}.taxonomy-bill-card strong{color:#fffdf7}.taxonomy-bill-card span{color:#d6deed;margin-top:4px;line-height:1.35}.taxonomy-bill-card small{color:#aeb8c9;margin-top:6px}.taxonomy-bill-links{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.taxonomy-bill-links a{color:#fff7df;font-size:var(--type-label);background:#b91c2b29;border:1px solid #f7d47d5c;border-radius:10px;padding:.48rem .62rem;font-weight:800;text-decoration:none}.taxonomy-bill-links a:hover{background:#b91c2b40;border-color:#f7d47db8}.impact-row.party-republican{background:linear-gradient(90deg,#b91c2bb8 0%,#7f18226b 18%,#31415c8c 52%);border-color:#b91c2b57}.impact-row.party-democrat{background:linear-gradient(90deg,#1f5da8b8 0%,#1d4e8d6b 18%,#31415c8c 52%);border-color:#1f5da85c}.impact-row.party-unknown{background:linear-gradient(90deg,#64748b94 0%,#47556952 18%,#31415c8c 52%);border-color:#94a3b847}.impact-row>div:first-of-type{flex:1}.impact-metrics{text-align:center;flex:0 0 112px;align-content:center;justify-items:center;gap:2px;display:grid}.impact-metrics strong{font-size:var(--type-body-lg);line-height:1;display:block}.impact-metrics small{max-width:94px;margin-top:0}.search-box{min-width:220px;font-size:var(--type-label);color:#d6deed;flex:260px;gap:10px;display:inline-flex}.search-box span,.filter-select span{color:#aeb8c9;font-size:var(--type-micro);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.search-box input,.filter-select select{color:#fffdf7;min-width:0;font:400 var(--type-label)/1.4 var(--font-ui);background:#16213da6;border:1px solid #94a3b840;border-radius:10px;padding:.62rem .75rem}.search-box input{width:100%}.filter-select,.outcome-filter{flex:0 230px}.filter-select select{cursor:pointer;width:100%}.outcome-filter{flex-wrap:wrap;flex:0 440px}.outcome-filter-row{align-items:center;gap:8px;min-width:0;display:flex}.outcome-chip-set{flex-wrap:wrap;gap:6px;display:inline-flex}.outcome-chip-set button{color:#14315f;font:500 var(--type-label)/1.3 var(--font-ui);cursor:pointer;background:#fff;border:1px solid #14315f29;border-radius:999px;padding:.38rem .62rem}.outcome-chip-set button.active{color:#fffdf7;background:#14315f;border-color:#14315f7a}.outcome-help-button{flex:none}.filter-caption{color:#aeb8c9;font-size:var(--type-micro);flex:1 0 100%;margin:0;line-height:1.35}.cluster-control,.filter-chip-control{background:0 0;border-color:#0000;flex:0 auto;padding-inline:0}.cluster-control-label{color:#aeb8c9;min-height:40px;font-size:var(--type-micro);letter-spacing:.08em;text-transform:uppercase;align-items:center;font-weight:700;display:inline-flex}.active-filter-chip{max-width:190px;min-height:32px;font-size:var(--type-label);border-radius:999px;align-items:center;gap:6px;padding:.38rem .62rem;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:#aeb8c9;font-size:var(--type-label)}.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:#eef2f8;max-width:100%;min-height:32px;font:500 var(--type-label)/1.15 var(--font-ui);text-align:left;cursor:pointer;background:#31415c9e;border:1px solid #94a3b82e;border-radius:999px;flex:0 auto;justify-content:flex-start;align-items:center;gap:8px;padding:.38rem .62rem;line-height:1.15;display:inline-flex}.cluster-filter-chip strong{overflow-wrap:anywhere;min-width:0}.cluster-filter-chip.active{background:#14213dc7;border-color:#b91c2bb8}.cluster-filter-chip small{color:#aeb8c9;font-weight:700}.map-frame{background:linear-gradient(#14213de6,#111827f5);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:#111827fa;border:2px solid #f7d47dd9;border-radius:999px;width:168px;height:168px;position:absolute;top:0;left:0;overflow:hidden;transform:translate(0,0);box-shadow:0 18px 40px #1118278c,0 0 0 4px #16213deb}.map-magnifier-hidden{visibility:hidden;pointer-events:none}.map-magnifier-svg{width:100%;height:100%;display:block}.map-point{cursor:pointer;pointer-events:visibleFill}.map-background{fill:#111827f2;cursor:default}.detail-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.clear-selection{color:#d6deed;font:500 var(--type-label)/1.3 var(--font-ui);cursor:pointer;background:#31415c8c;border:1px solid #94a3b838;border-radius:999px;padding:.35rem .75rem}.clear-selection:hover{color:#fffdf7;border-color:#b91c2b8c}.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{font-size:var(--type-label);color:#111827;border-radius:999px;align-items:center;padding:.42rem .78rem;font-weight:700;display:inline-flex}.bill-chip{color:#eef2f8;background:#94a3b83d}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}.detail-grid div{background:#31415c9e;border-radius:16px;padding:14px}.detail-grid dt{font-size:var(--type-micro);text-transform:uppercase;letter-spacing:.12em;color:#f7d47d;margin-bottom:8px}.detail-grid dd{color:#fffdf7;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:#f7d47d}.bill-legislator-groups{border-top:1px solid #94a3b824;gap:16px;margin-top:22px;padding-top:14px;display:grid}.bill-legislator-group h3{font-size:var(--type-label);color:#fffdf7;margin:0 0 10px}.legislator-chip-list{gap:10px;display:grid}.legislator-contact-card,.legislator-rank-row,.legislator-bill-list a{color:#eef2f8;background:#31415c8c;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{font-size:var(--type-label);color:#d6deed;gap:3px;display:grid}.muted-copy{color:#aeb8c9}.legislator-grid{display:block}.legislator-rank-list{align-content:start;gap:10px;display:grid}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111827b8;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.legislator-modal{z-index:1001;background:#16213d;width:min(920px,100%);max-height:min(88vh,920px);position:relative;overflow:auto;box-shadow:0 28px 90px #00000094}.modal-close{color:#eef2f8;font:600 var(--type-label)/1.4 var(--font-ui);cursor:pointer;background:#16213db8;border:1px solid #94a3b847;border-radius:999px;padding:.45rem .78rem}.modal-close:hover,.modal-close:focus-visible{color:#fffdf7;border-color:#f7d47db8;outline:none}.legislator-pass-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.legislator-pass-summary>span{background:#31415c8f;border:1px solid #94a3b829;border-radius:14px;padding:12px}.legislator-pass-summary strong{color:#fffdf7;font-size:var(--type-body-lg);display:block}.legislator-pass-summary small{color:#aeb8c9}.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,#b91c2bb8 0%,#7f18226b 18%,#31415c8c 52%);border-color:#b91c2b57}.legislator-rank-row.party-democrat{background:linear-gradient(90deg,#1f5da8b8 0%,#1d4e8d6b 18%,#31415c8c 52%);border-color:#1f5da85c}.legislator-rank-row.party-unknown{background:linear-gradient(90deg,#64748b94 0%,#47556952 18%,#31415c8c 52%);border-color:#94a3b847}.legislator-rank-row.active{outline-offset:2px;outline:2px solid #f7d47dcc}.rank-number,.score-pill{color:#f7d47d;background:#b91c2b2e;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:#16213db8;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:#eef2f8;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.party-pill{letter-spacing:.03em;color:#fffdf7;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.32rem .66rem;display:inline-flex}.party-pill.party-republican{background:#b91c2b}.party-pill.party-democrat{background:#1f5da8}.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:#d6deed}.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:#31415c8c;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:#d6deed;font-size:var(--type-label);flex-wrap:wrap;gap:8px 12px;margin-top:8px;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-color:color-mix(in srgb, var(--category-color,#94a3b873) 36%, #94a3b833);background:#31415c8c;gap:5px;padding:13px 120px 13px 13px;text-decoration:none;position:relative}.legislator-bill-list a:hover{border-color:#b91c2b8c}.legislator-bill-list a em{color:#eef2f8;max-width:104px;font-size:var(--type-micro);text-align:center;background:#16213db8;border-radius:999px;padding:.28rem .56rem;font-style:normal;font-weight:800;position:absolute;bottom:12px;right:12px}.cluster-list{gap:10px;margin-top:14px;display:grid}.cluster-row{color:#eef2f8;text-align:left;cursor:pointer;background:#31415c8c;border:1px solid #94a3b824;border-radius:18px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.cluster-row.active{background:#14213d80;border-color:#b91c2bb3}.cluster-swatch{border-radius:999px;flex:none;width:14px;height:14px}.cluster-copy{display:grid}.cluster-copy strong{color:#fffdf7}.cluster-copy small{color:#d6deed}.error-card h1,.map-panel h2,.detail-card h2{margin-bottom:.8rem}.site-header,.workspace-toolbar,.map-panel,.detail-card,.cluster-list-card,.agenda-panel,.legislator-workspace,.legislator-detail-card,.status-card,.outcome-card{color:#172033;background:#fffdf7f0;border-color:#52483729;box-shadow:0 18px 48px #4437231f}.site-header{background:#fffdf7fa;border-width:0 0 1px;border-radius:0;box-shadow:0 10px 30px #44372314}.site-name,.toolbar-count strong,.overview-hero h1,.outcome-card strong,.topic-row strong,.impact-row strong,.taxonomy-summary strong,.subject-accordion strong,.taxonomy-bill-card strong,.detail-grid dd,.bill-legislator-group h3,.legislator-pass-summary strong,.cluster-copy strong{color:#14315f}.site-count,.search-box span,.filter-select span,.filter-caption,.cluster-control-label,.active-filter-chip strong,.cluster-filter-chip small,.taxonomy-summary small,.subject-accordion small,.taxonomy-bill-card small,.muted-copy,.legislator-pass-summary small,.cluster-copy small{color:#64748b}.site-session-select select,.search-box input,.filter-select select{color:#172033;background:#fff;border-color:#5248372e}.site-header .view-tabs,.toolbar-group{background:#f7f1e7db;border-color:#52483724}.site-header .view-tabs{border-radius:10px;flex:none}.view-tabs button,.role-tabs button,.cluster-control button,.clear-selection,.modal-close{color:#14315f;background:#fff;border-color:#14315f2e}.site-header .view-tabs button{min-width:92px;font-size:var(--type-label);padding:.42rem .62rem}.view-tabs button.active,.role-tabs button.active,.cluster-control button.active,.cluster-filter-chip.active,.cluster-row.active{color:#fffdf7;background:#14315f;border-color:#b91c2b61}.overview-hero{background:linear-gradient(135deg,#fff 0%,#fffdf7 52%,#f1e2c8 100%);border-color:#52483729;box-shadow:0 18px 48px #44372324}.overview-hero p,.outcome-card span,.outcome-card small,.topic-row small,.impact-row small,.taxonomy-page .panel-header small,.taxonomy-bill-card span,.search-box,.contact-stack,.legislator-rank-row small,.legislator-bill-list small,.category-legend,.action-text{color:#334155}.overview-actions button,.secondary-action,.taxonomy-bill-links a{color:#b91c2b;background:#fff;border-color:#b91c2b47}.overview-actions button:hover,.secondary-action:hover,.secondary-action:focus-visible,.taxonomy-bill-links a:hover{background:#fff3f1;border-color:#b91c2b80}.taxonomy-page{border-color:color-mix(in srgb, var(--cluster-color,#1f5da8) 42%, #5248372e);background:linear-gradient(90deg, color-mix(in srgb, var(--cluster-color,#1f5da8) 18%, transparent), transparent 42%), #fffdf7f5;position:relative;overflow:hidden}.taxonomy-page:before{content:"";background:var(--cluster-color,#1f5da8);height:5px;position:absolute;inset:0 0 auto}.taxonomy-page>*{position:relative}.taxonomy-back{border-color:color-mix(in srgb, var(--cluster-color,#1f5da8) 44%, #5248372e);color:#14315f;background:#fff;margin-bottom:12px;padding:.46rem .68rem}.taxonomy-page .section-kicker{color:color-mix(in srgb, var(--cluster-color,#1f5da8) 72%, #b91c2b)}.taxonomy-summary{margin:10px 0 12px}.taxonomy-summary span{border-color:color-mix(in srgb, var(--cluster-color,#1f5da8) 22%, #52483724);background:#ffffffd1;min-width:150px}.session-card{background:#14315f;border-color:#14315f1f}.session-card span,.session-card small{color:#dbe4f2}.session-card strong{color:#fffdf7}.law-card{border-top:5px solid #1a9850}.stalled-card{border-top:5px solid #c8992d}.veto-card{border-top:5px solid #b91c2b}.other-card{border-top:5px solid #1f5da8}.topic-row,.impact-row,.taxonomy-summary span,.subject-accordion,.taxonomy-bill-card,.cluster-filter-chip,.detail-grid div,.legislator-contact-card,.legislator-rank-row,.legislator-bill-list a,.cluster-row,.category-summary{color:#172033;background:#fff;border-color:#52483724}.topic-row:hover,.topic-row:focus-visible,.topic-drilldown[open] .topic-row,.subject-accordion summary:hover,.subject-accordion summary:focus-visible,.subject-accordion[open] summary{background:#f3f7fd;border-color:#1f5da847}.topic-row em,.subject-accordion em,.rank-number,.score-pill{color:#b91c2b;background:#fff3f1}.impact-row.party-republican,.legislator-rank-row.party-republican{background:linear-gradient(90deg,#b91c2b24 0%,#fff 34% 100%);border-color:#b91c2b47}.impact-row.party-democrat,.legislator-rank-row.party-democrat{background:linear-gradient(90deg,#1f5da824 0%,#fff 34% 100%);border-color:#1f5da847}.impact-row.party-unknown,.legislator-rank-row.party-unknown{background:linear-gradient(90deg,#64748b1f 0%,#fff 34% 100%);border-color:#64748b38}.map-frame{background:#f7f1e7;border-color:#52483729}.map-background{fill:#f7f1e7}.grid-lines line{stroke:#14315f1f}.map-magnifier{background:#fffdf7;border-color:#c8992ddb;box-shadow:0 18px 36px #4437233d,0 0 0 4px #fffdf7f0}.bill-chip,.legislator-bill-list a em{color:#334155;background:#f7f1e7}.detail-grid dt,.link-row a,.status-card code{color:#1f5da8}.bill-legislator-groups{border-top-color:#52483724}.modal-backdrop{background:#1118275c}.legislator-modal{background:#fffdf7;box-shadow:0 28px 90px #1118273d}.modal-close:hover,.modal-close:focus-visible,.clear-selection:hover{color:#b91c2b;border-color:#b91c2b6b}.legislator-photo{background:#f7f1e7;border-color:#14315f29}.photo-fallback{color:#14315f}.party-pill,.cluster-row.active .cluster-copy strong,.cluster-row.active .cluster-copy small,.cluster-filter-chip.active small,.cluster-filter-chip.active strong{color:#fffdf7}.cluster-control,.filter-chip-control{background:0 0;border:0;flex:none;align-self:center;min-height:0;padding:0}.cluster-control-label{color:#14315f;min-height:0;padding:0 4px}.cluster-filter-tray{gap:8px;padding:0}.cluster-filter-chip{border-radius:999px;flex:0 auto;min-height:32px;padding:.38rem .62rem}.detail-card{align-content:start;gap:12px;min-height:220px;display:grid}.timeline-tabs{overflow-x:auto}.timeline-tabs button{min-width:86px}.guided-story{gap:18px;display:grid}.story-hero,.story-panel{background:#fffdf7f5;border:1px solid #52483729;border-radius:24px;box-shadow:0 18px 48px #4437231f}.story-hero{grid-template-columns:minmax(0,1.35fr) minmax(260px,.45fr);align-items:stretch;gap:22px;padding:30px;display:grid}.story-hero h1,.story-panel h1{color:#14315f;max-width:780px;font-size:var(--type-display-heading);letter-spacing:0;margin:.35rem 0 .9rem;line-height:.98}.story-hero p,.story-panel p,.legislator-story-copy p{color:#334155;line-height:1.62}.story-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.outcome-button{width:100%;font:inherit;text-align:left;cursor:pointer;border-top-width:5px}.outcome-button:hover,.outcome-button:focus-visible{border-color:#1f5da852;outline:none;transform:translateY(-1px);box-shadow:0 22px 54px #44372329}.guided-map-overlay{z-index:60;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf7;border:1px solid #14315f2e;border-radius:16px;gap:12px;width:min(470px,100vw - 48px);padding:16px;display:grid;position:fixed;bottom:24px;left:24px;box-shadow:0 20px 48px #1118272e}.tutorial-dimmer{z-index:20;pointer-events:none;background:#11182761;position:fixed;inset:0}.guided-map-overlay h2{font-size:var(--type-body-lg);margin:.2rem 0 .42rem}.guided-map-overlay p{color:#334155;max-width:760px;margin:0}.guided-map-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.visible-count-pill{background:#f7f1e7;border:1px solid #14315f24;border-radius:14px;justify-items:center;min-width:118px;padding:9px 12px;display:grid}.visible-count-pill strong{color:#14315f;font-size:var(--type-body-lg);line-height:1}.visible-count-pill small{color:#64748b;font-size:var(--type-micro);margin-top:3px}.quiet-action{color:#14315f;font:600 var(--type-label)/1.4 var(--font-ui);cursor:pointer;background:#fff;border:1px solid #14315f2e;border-radius:12px;padding:.72rem .9rem}.quiet-action:hover,.quiet-action:focus-visible{background:#f3f7fd;border-color:#1f5da85c;outline:none}.map-help-button{z-index:5;color:#14315f;width:42px;height:42px;font:900 var(--type-body-lg)/1 var(--font-ui);cursor:pointer;background:#fffdf7f2;border:1px solid #14315f38;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:18px;right:18px;box-shadow:0 14px 30px #11182729}.map-help-button:hover,.map-help-button:focus-visible{color:#b91c2b;border-color:#b91c2b6b;outline:none}.tutorial-highlight{z-index:35;position:relative;box-shadow:0 0 0 3px #f7d47d52,0 18px 42px #1118271f;border-color:#f7d47de6!important}.tutorial-map-panel{z-index:35;position:relative}.tutorial-map-panel .map-frame{background:#f7f1e7}.tutorial-active .map-svg{filter:saturate(1.08)contrast(1.02)}.story-with-map{grid-template-columns:minmax(320px,.58fr) minmax(0,1fr);align-items:start}.story-panel{gap:16px;padding:24px;display:grid}.topic-label-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.topic-label-card{background:#fff;border:1px solid #52483724;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:10px;display:grid}.topic-label-card strong{color:#14315f;min-width:0}.topic-label-card small{color:#64748b;white-space:nowrap}.story-map-frame{background:#f7f1e7;border:1px solid #52483729;border-radius:24px;overflow:hidden;box-shadow:0 18px 48px #4437231f}.passed-summary,.role-breakdown{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.passed-summary>span,.role-breakdown>span{background:#fff;border:1px solid #52483724;border-radius:14px;padding:12px}.passed-summary strong,.role-breakdown strong{color:#14315f;font-size:var(--type-body-lg);display:block}.passed-summary small,.role-breakdown small{color:#64748b}.compact-topic-list{gap:8px}.drop-away{animation:1.2s ease-in forwards drop-away}@keyframes drop-away{0%{opacity:.34;transform:translateY(0)}to{opacity:.04;transform:translateY(42px)}}.help-term-wrap{align-items:baseline;gap:.2em;display:inline-flex}.help-term{text-underline-offset:.12em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.help-button{color:#14315f;width:1.18rem;height:1.18rem;font:900 var(--type-micro)/1 var(--font-ui);cursor:pointer;background:#fff;border:1px solid #14315f3d;border-radius:999px;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative}.help-button:hover,.help-button:focus-visible{color:#b91c2b;border-color:#b91c2b80;outline:none}.help-tooltip{z-index:10;color:#fffdf7;width:min(260px,82vw);font-size:var(--type-micro);text-align:left;opacity:0;pointer-events:none;background:#172033;border:1px solid #5248372e;border-radius:10px;padding:8px 10px;font-weight:600;line-height:1.35;transition:opacity .16s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-button:hover .help-tooltip,.help-button:focus-visible .help-tooltip{opacity:1}.stat-help-label{align-items:center;gap:.35rem}.stat-help-label .help-term{text-decoration-thickness:1px}.stat-help-label .help-button{flex:none;width:1.05rem;height:1.05rem}.help-modal{color:#172033;background:#fffdf7;border:1px solid #52483729;border-radius:24px;width:min(760px,100%);max-height:min(88vh,860px);padding:24px;overflow:auto;box-shadow:0 28px 90px #1118273d}.flow-diagram{flex-wrap:wrap;gap:10px;margin:18px 0 0;padding:0;list-style:none;display:flex}.flow-diagram li{align-items:center;gap:10px;display:inline-flex}.flow-diagram li:not(:last-child):after{content:"→";color:#b91c2b;font-weight:900}.flow-diagram span{color:#14315f;font-family:var(--font-ui);background:#fff;border:1px solid #14315f29;border-radius:12px;padding:.58rem .72rem;font-weight:800}.weight-table{border-collapse:collapse;border-radius:12px;width:100%;margin:16px 0;overflow:hidden}.weight-table th,.weight-table td{text-align:left;border:1px solid #52483724;padding:10px 12px}.weight-table th{color:#14315f;background:#f7f1e7}.help-caveat{background:#fff3f1;border-left:4px solid #b91c2b;padding:12px 14px}.legislator-story-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.legislator-story-tabs button{color:#14315f;font:600 var(--type-label)/1.4 var(--font-ui);cursor:pointer;background:#fff;border:1px solid #14315f2e;border-radius:10px;padding:.54rem .72rem}.legislator-story-tabs button.active{color:#fffdf7;background:#14315f;border-color:#b91c2b61}.legislator-story-copy{background:#fff;border:1px solid #52483724;border-radius:16px;margin-bottom:16px;padding:16px}.legislator-story-copy h3{color:#14315f;font-size:var(--type-body-lg);margin:0 0 6px}.legislator-story-copy p{margin:0}.legislator-pass-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.role-breakdown{grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0}.passed-category-summary{margin-top:10px}.scatterplot-panel{grid-template-columns:minmax(0,1fr) minmax(250px,.35fr);align-items:stretch;gap:14px;margin-bottom:16px;display:grid}.scatterplot-frame{background:#fff;border:1px solid #52483724;border-radius:18px;overflow:hidden}.scatterplot-frame svg{width:100%;display:block}.scatter-bg{fill:#fff}.scatter-axis{stroke:#14315f6b;stroke-width:2px}.scatter-guide{stroke:#64748b3d;stroke-width:1px;stroke-dasharray:7 7}.scatter-label,.scatter-quadrant,.scatter-tick{fill:#64748b;font-size:var(--type-body-lg);text-anchor:middle;font-weight:700}.scatter-label.rotated{transform:rotate(-90deg)}.scatter-quadrant{fill:#14315f;font-size:var(--type-label)}.scatter-tick{font-size:var(--type-micro);font-weight:600}.scatter-tick.y-tick{text-anchor:end}.scatter-dot-group{cursor:pointer;outline:none}.scatter-dot{stroke:#fffdf7;stroke-width:2px;opacity:.76;transition:opacity .16s,r .16s,stroke-width .16s}.scatter-dot.party-republican{fill:#b91c2b}.scatter-dot.party-democrat{fill:#1f5da8}.scatter-dot.party-unknown{fill:#64748b}.scatter-dot.selected{stroke:#fffdf7;stroke-width:3px;opacity:1}.scatter-dot.hovered,.scatter-dot-group:focus-visible .scatter-dot{opacity:1;stroke-width:4px}.scatter-selection-ring{fill:none;stroke:#c8992d;stroke-width:4px;pointer-events:none}.scatter-detail{background:#fff;border:1px solid #52483724;border-radius:18px;align-items:center;gap:12px;padding:14px;display:flex}.scatter-detail.empty{color:#64748b}.scatter-detail strong,.scatter-detail small{display:block}.scatter-detail strong{color:#14315f}.scatter-detail small{color:#64748b;margin-top:5px}@media (width<=920px){.story-hero,.story-with-map,.scatterplot-panel{grid-template-columns:1fr}.guided-map-actions{justify-content:flex-start}.guided-map-overlay{width:min(420px,100vw - 32px);bottom:16px;left:16px}.story-stat-grid,.passed-summary,.legislator-pass-summary,.role-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.site-header{flex-wrap:wrap}.site-identity,.timeline-tabs{width:100%}.timeline-tabs{flex-wrap:nowrap;justify-content:flex-start}.timeline-tabs button{flex:none}.topic-label-grid,.story-stat-grid,.passed-summary,.legislator-pass-summary,.role-breakdown{grid-template-columns:1fr}.story-hero,.story-panel,.help-modal{padding:18px}.guided-map-overlay{max-height:min(58vh,100vh - 32px);padding:14px;overflow:auto}.map-help-button{bottom:12px;right:12px}}.detail-card h2{font-size:var(--type-body-lg);margin:.2rem 0 .35rem;line-height:1.35}.detail-card>p:not(.detail-label),.action-text{font-size:var(--type-body-lg);margin-bottom:0;line-height:1.45}.hover-hint{color:#64748b}.chip-row{margin:8px 0 4px}.detail-grid{gap:10px;margin:8px 0}.detail-grid div{padding:14px 16px}.detail-grid dt{color:#1f5da8;margin-bottom:6px}.detail-grid dd{font-size:var(--type-body-lg)}.link-row{margin-top:8px}.bill-legislator-groups{gap:14px;margin-top:10px;padding-top:18px}.bill-legislator-group h3{font-size:var(--type-body-lg);margin-bottom:8px}.legislator-contact-card{align-items:center;gap:16px;padding:16px 18px;position:relative;overflow:hidden;box-shadow:0 12px 28px #44372314}.legislator-contact-card.party-republican{background:#fff7f7;border-color:#b91c2b47}.legislator-contact-card.party-democrat{background:#f5f9ff;border-color:#1f5da847}.legislator-contact-card.party-unknown{background:#f8fafc;border-color:#64748b38}.legislator-rank-row{grid-template-columns:48px 74px minmax(0,1fr) minmax(112px,auto);gap:8px 18px;display:grid}.legislator-rank-copy{gap:4px;min-width:0;display:grid}.legislator-rank-copy strong,.legislator-rank-copy small{display:block}.legislator-rank-copy strong{color:#172033;font-size:var(--type-body-lg);line-height:1.15}.legislator-rank-copy small{color:#334155;line-height:1.2}.legislator-rank-row .party-pill{justify-self:end}.legislator-contact-card>*{position:relative}.legislator-contact-card .legislator-photo.small{border-width:3px;width:62px;height:62px;box-shadow:0 8px 18px #14315f24}.legislator-contact-body{gap:7px}.legislator-contact-body strong{color:#14315f;font-size:var(--type-body-lg);line-height:1.1}.legislator-contact-meta{color:#334155;flex-wrap:wrap;align-items:center;gap:6px;line-height:1.25;display:flex}.contact-stack{color:#334155;font-size:var(--type-body);gap:4px;line-height:1.35}.legislator-contact-card .link-row{gap:8px;margin-top:4px}.legislator-contact-card .link-row a{color:#1f5da8;min-height:32px;font-size:var(--type-label);background:#ffffffb8;border:1px solid #1f5da838;border-radius:999px;align-items:center;padding:.22rem .62rem;line-height:1.15;text-decoration:none;display:inline-flex}.legislator-contact-card .link-row a:hover{color:#b91c2b;border-color:#b91c2b61}.legislator-title-row{align-items:flex-start}.legislator-title-row h2{font-size:var(--type-card-heading);margin:.1rem 0 .35rem;line-height:1.05}.legislator-pass-summary{gap:12px;margin:18px 0}.legislator-pass-summary>span{background:#fff;border-color:#14315f #52483724 #52483724;border-top-style:solid;border-top-width:5px;padding:14px}.legislator-pass-summary>span:nth-child(2){border-top-color:#1a9850}.legislator-pass-summary>span:nth-child(3){border-top-color:#c8992d}.legislator-pass-summary strong{color:#14315f;font-size:var(--type-card-heading);line-height:1}.legislator-pass-summary small{color:#64748b;margin-top:5px;line-height:1.25;display:block}.category-summary{background:#fff;align-items:flex-start;padding:16px}.category-summary strong{color:#14315f}.legislator-bill-list a{border-color:color-mix(in srgb, var(--category-color,#1f5da8) 34%, #52483724);background:#fff;gap:7px;padding:14px 122px 14px 16px}.legislator-bill-list a strong{color:#14315f;font-size:var(--type-body-lg);line-height:1.18}.legislator-bill-list a span{color:#172033;line-height:1.35}@media (width<=1100px){.overview-hero,.overview-two-column{grid-template-columns:1fr}.outcome-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.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:0;flex-wrap:wrap;align-items:center;padding:8px 10px;top:0}.site-identity{flex:100%;justify-content:space-between;align-items:center;gap:8px;padding-inline:6px}.site-name{font-size:var(--type-label)}.site-count{font-size:var(--type-micro)}.site-session-select{justify-content:flex-end}.site-session-select select{min-width:64px;padding:.36rem .45rem}.site-header .view-tabs{flex:none;gap:3px;min-width:0;margin-left:auto}.site-header .view-tabs button{min-width:78px;font-size:var(--type-label);flex:none;padding:.36rem .48rem}.workspace-toolbar,.overview-hero,.agenda-panel,.outcome-card{border-radius:18px}.overview-hero{padding:20px}.overview-hero h1{font-size:var(--type-card-heading)}.session-card{min-height:0;padding:18px}.outcome-grid{grid-template-columns:1fr}.topic-row,.impact-row{align-items:flex-start}.taxonomy-summary,.subject-accordion summary,.taxonomy-bill-card{grid-template-columns:1fr}.subject-accordion summary>span,.subject-accordion em,.taxonomy-bill-links{text-align:left;justify-self:start;justify-items:start}.impact-row{flex-wrap:wrap}.impact-row>div:first-of-type{flex:180px}.impact-metrics{text-align:center;flex:120px;justify-items:center;padding-left:0}.toolbar-group{min-height:44px}.search-box,.filter-select,.outcome-filter,.cluster-control,.filter-chip-control{flex:100%}.cluster-control,.filter-chip-control{background:0 0;border:0;min-height:0;padding:0 4px}.cluster-control-label{padding-block:2px}.cluster-filter-chip{flex-basis:auto}.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}.detail-card h2{font-size:var(--type-body-lg)}.legislator-contact-card{align-items:flex-start;padding:14px}.search-box{min-width:0}.legislator-grid{grid-template-columns:1fr}}
