.map-section{position:relative;background:var(--color-bg-alt);padding:var(--space-4) 0 var(--space-10);--color-map-control-bg: var(--color-surface);--color-map-control-bg-hover: var(--color-surface-raised);--color-map-control-text: var(--color-text);--color-map-control-muted: var(--color-text-secondary);--color-map-control-border: #cbd5e1;--color-map-view-toggle-bg: var(--color-border-light);--color-map-control-active-bg: var(--color-primary-strong);--color-map-control-active-text: var(--color-text-inverse);--color-map-state-stroke: #cbd5e1;--color-map-dimmed-fill: #e2e8f0;--color-map-unknown-fill: #9ca3af;--color-map-attempted-stroke: #1f2937}.map-section .section-title{font-size:1.65rem;margin-bottom:var(--space-1)}.map-section .section-subtitle{font-size:.95rem;margin-bottom:var(--space-2)}[data-theme=dark] .map-section{--color-map-control-border: #475569;--color-map-state-stroke: #0f172a;--color-map-dimmed-fill: #475569;--color-map-unknown-fill: #64748b;--color-map-attempted-stroke: #f8fafc}.map-controls{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2);align-items:center}.map-controls .filter-btn,.map-controls .status-filter-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--color-map-control-border);border-radius:20px;background:var(--color-map-control-bg);color:var(--color-map-control-text);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.map-controls .filter-btn.active,.map-controls .status-filter-btn.active{background:var(--color-map-control-active-bg);color:var(--color-map-control-active-text);border-color:var(--color-map-control-active-bg);box-shadow:0 0 0 1px #16a34a33}.map-export-controls{display:inline-flex;align-items:center;gap:var(--space-2, 8px);margin-left:auto}.map-export-btn{display:inline-flex;align-items:center;gap:6px;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--color-map-control-border);border-radius:20px;background:var(--color-map-control-bg);color:var(--color-map-control-text);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:34px}.map-export-btn:hover{background:var(--color-map-control-bg-hover);border-color:var(--color-primary-strong, #16a34a);color:var(--color-primary-strong, #16a34a)}.map-export-btn:focus-visible{outline:2px solid var(--color-primary-strong, #16a34a);outline-offset:2px}.map-export-btn.copied{background:var(--color-primary-strong, #16a34a);border-color:var(--color-primary-strong, #16a34a);color:#fff}.map-export-btn svg{flex-shrink:0}.global-tracker-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:linear-gradient(90deg,var(--color-primary-bg, #f0fdf4) 0%,var(--color-bg-alt, #f8fafc) 100%);border:1px solid rgba(22,163,74,.25);border-radius:var(--radius-lg, 12px);margin-bottom:var(--space-4)}.global-banner-content{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);flex:1;min-width:240px}.global-banner-badge{display:inline-flex;align-items:center;gap:4px;background:var(--color-primary-strong, #166534);color:var(--color-text-inverse, #ffffff);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:9999px;white-space:nowrap}.global-banner-text{font-size:.875rem;color:var(--color-text-secondary, #334155);line-height:1.4;margin:0}.global-banner-btn{font-size:.8125rem;padding:var(--space-2) var(--space-4);white-space:nowrap}.geography-picker{display:inline-flex;align-items:center;gap:10px;font-size:.85rem;font-weight:500;color:var(--color-text-light)}.geography-picker select{min-width:220px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:10px;background:var(--color-map-control-bg);color:var(--color-text);font:inherit}.geography-picker select:focus{border-color:var(--color-secondary)}.geography-picker select:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-color:var(--color-secondary)}.map-controls .filter-btn:hover:not(.active),.map-controls .status-filter-btn:hover:not(.active){border-color:var(--color-secondary);background:var(--color-map-control-bg-hover)}#regionFilters{gap:var(--space-2);margin-top:calc(-1 * var(--space-3));margin-bottom:var(--space-4);align-items:center}#regionFilters #regionFilterLabel{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}#regionFilters .filter-btn{padding:4px 10px;min-height:28px;font-size:.75rem;font-weight:500;border-radius:12px;border-color:var(--color-border);background:transparent;color:var(--color-text-secondary)}#regionFilters .filter-btn:hover:not(.active){border-color:var(--color-text-light);background:var(--color-bg-alt);color:var(--color-text)}#regionFilters .filter-btn.active{background:var(--color-text-secondary);color:var(--color-surface, #ffffff);border-color:var(--color-text-secondary);box-shadow:none}[data-theme=dark] #regionFilters .filter-btn.active{background:var(--color-text-secondary);color:var(--color-bg, #0f172a);border-color:var(--color-text-secondary)}.map-container{position:relative;width:100%;max-width:900px;margin:0 auto}#usMap{width:100%;height:auto}#usMap svg{display:block;width:100%;height:auto}#usMap path,#usMap [data-state],#usMap [data-place]{transition:fill var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard),stroke-width var(--motion-fast) var(--ease-standard);stroke:var(--color-map-state-stroke);stroke-width:1;vector-effect:non-scaling-stroke;touch-action:manipulation}#usMap [data-place][data-legislative-history=attempted]{stroke:var(--color-map-attempted-stroke);stroke-width:2}#usMap path:hover,#usMap [data-state]:hover{filter:brightness(1.15);stroke-width:2}#usMap path:focus,#usMap [data-state]:focus,#usMap [data-place]:focus,#usMap path:focus-visible,#usMap [data-state]:focus-visible,#usMap [data-place]:focus-visible{outline:none;stroke:var(--color-border-focus);stroke-width:3}.map-style-toggle{display:flex;gap:var(--space-1);background:var(--color-map-view-toggle-bg);border-radius:var(--radius-md);padding:2px}.map-style-btn{padding:6px 14px;border:none;border-radius:4px;background:transparent;color:var(--color-map-control-muted);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.map-shimmer-btn{border:1px solid var(--color-map-control-border);background:var(--color-map-control-bg);color:var(--color-map-control-text)}.map-style-btn[aria-pressed=true]{background:var(--color-map-control-active-bg);color:var(--color-map-control-active-text);box-shadow:var(--shadow-sm)}.map-style-btn:disabled{cursor:not-allowed;opacity:.55}.map-style-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.map-style-note{margin:0 0 var(--space-2);font-size:.85rem;color:var(--color-text-secondary)}#usMap.map-style-glass [data-place]{fill-opacity:0;stroke-opacity:0}#usMap.map-style-glass [data-place]:hover{filter:none}#usMap.map-style-glass [data-place]:focus,#usMap.map-style-glass [data-place]:focus-visible{stroke-opacity:1}#usMap.map-style-glass .bs-map-highlighted{fill-opacity:.45}#usMap.map-style-glass .map-inset-box{fill-opacity:0;stroke-opacity:0}#usMap.map-style-glass .map-inset-label{fill:#f4ecd8;stroke:#0c0906d9;stroke-width:3px;paint-order:stroke}.map-glass-labels{pointer-events:none}.map-glass-labels text{font-family:var(--font-heading);font-weight:700;fill:#f4ecd8;stroke:#0c0906e0;stroke-width:.2em;stroke-linejoin:round;paint-order:stroke;text-anchor:middle;dominant-baseline:central}#mapTooltip{display:none;position:fixed;z-index:30;background:var(--color-secondary);color:var(--color-text-inverse);padding:10px 14px;border-radius:var(--radius-md);font-size:.85rem;line-height:1.35;text-align:left;max-width:290px;pointer-events:auto;cursor:pointer;transform:translate(-50%,-100%);box-shadow:0 4px 12px #00000026}#mapTooltip:before{content:"";position:absolute;left:-10px;right:-10px;bottom:-20px;height:25px;background:transparent}.map-tip-name{font-weight:700;font-size:.95rem}.map-tip-meta{margin-top:2px;font-size:.78rem;opacity:.85}.map-tip-status{margin-top:var(--space-1);font-weight:600}.map-tip-specs{margin-top:6px;padding:6px 8px;background:#ffffff14;border-radius:var(--radius-sm, 4px);border:1px solid rgba(255,255,255,.12);font-size:.78rem;display:flex;flex-direction:column;gap:3px}.map-tip-spec{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.map-tip-spec-label{opacity:.8;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.map-tip-spec-value{font-weight:600;color:#fff;text-align:right}.map-tip-summary{margin-top:6px;font-size:.78rem;opacity:.9}.map-tip-hint{margin-top:8px;font-size:.75rem;font-weight:600;color:var(--color-primary-light, #86efac)}.map-legend{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-4);font-size:.85rem}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-sizing:border-box}.legend-dot-favorable{background:var(--color-favorable, #16a34a);border:1px solid #15803d}.legend-dot-county{background:var(--color-surface, #ffffff);border:2.5px solid var(--color-favorable, #16a34a)}.legend-dot-pending{background:var(--color-pending, #eab308);border:1px solid #a16207}.legend-dot-restrictive{background:var(--color-restrictive, #dc2626);border:1px solid #b91c1c}.legend-dot-none{background:#6b7280;border:1px solid #4b5563}.legend-dot-unresearched{background:#4b5563;border:1px solid #374151}.legend-dot-failed{background:#7c3aed;border:1px solid #5b21b6}.map-legend .legend-heading{font-weight:600}[data-theme=dark] .legend-dot-favorable{background:#16a34a;border-color:#22c55e}[data-theme=dark] .legend-dot-county{background:var(--color-surface, #1e293b);border-color:#4ade80}[data-theme=dark] .legend-dot-pending{background:#eab308;border-color:#fde047}[data-theme=dark] .legend-dot-restrictive{background:#dc2626;border-color:#f87171}[data-theme=dark] .legend-dot-none{background:#6b7280;border-color:#94a3b8}[data-theme=dark] .legend-dot-unresearched{background:#4b5563;border-color:#94a3b8}[data-theme=dark] .legend-dot-failed{background:#7c3aed;border-color:#a78bfa}.view-toggle{display:flex;gap:var(--space-1);background:var(--color-map-view-toggle-bg);border-radius:var(--radius-md);padding:2px}.view-toggle-btn{padding:6px 14px;border:none;border-radius:4px;background:transparent;color:var(--color-map-control-muted);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.view-toggle-btn.active{background:var(--color-map-control-active-bg);color:var(--color-map-control-active-text);box-shadow:var(--shadow-sm)}.state-drawer{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);max-height:500px;overflow-y:auto}.list-item{display:flex;align-items:center;gap:var(--space-3);padding:10px 16px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .15s}.list-item:hover{background:var(--color-bg-alt)}.list-item.highlighted{background:var(--color-accent-light);border-left:3px solid var(--color-accent);padding-left:13px}.bs-map-highlighted{fill:var(--color-accent);stroke:var(--color-primary-strong);stroke-width:2}.list-item:last-child{border-bottom:none}.list-item-name{flex:1;font-weight:500}.list-item-status{padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.list-item-region{font-size:.8rem;color:var(--color-text-light);text-transform:capitalize;min-width:80px}.list-empty{padding:var(--space-6);text-align:center;color:var(--color-text-light)}.state-search{margin-bottom:var(--space-3)}.state-search input{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-family:inherit;transition:border-color var(--transition-fast)}.state-search input:focus{border-color:var(--color-border-focus)}.state-search input:focus-visible{border-color:var(--color-border-focus);outline:2px solid var(--color-border-focus);outline-offset:2px}.list-header{display:flex;gap:var(--space-1);padding:var(--space-2) 0;margin-bottom:var(--space-2)}.list-sort-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-light)}.list-sort-btn.active{background:var(--color-secondary);color:var(--color-text-inverse);border-color:var(--color-secondary)}.list-sort-btn:hover:not(.active){border-color:var(--color-secondary);color:var(--color-text)}.list-count{font-size:var(--text-xs);color:var(--color-text-muted);text-align:right;padding:var(--space-2) 0}.list-item-name small{color:var(--color-text-muted);font-weight:400}@media(max-width:768px){.map-section{padding:var(--space-8) 0}.map-container{overflow-x:auto;-webkit-overflow-scrolling:touch}#usMap{min-width:500px}.map-controls{gap:var(--space-2);overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-2)}.map-controls .filter-btn,#regionFilters .filter-btn,.map-controls .status-filter-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);white-space:nowrap;flex-shrink:0;min-width:44px;min-height:44px}.view-toggle,.map-style-toggle{flex-shrink:0}.map-style-btn{flex-shrink:0;min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3)}.view-toggle-btn,.list-sort-btn{min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3)}.map-legend{gap:var(--space-3);font-size:var(--text-xs)}.state-drawer{max-height:400px}.list-item{padding:var(--space-3) var(--space-3);gap:var(--space-2)}.list-item-region{display:none}.list-header{gap:var(--space-1)}}@media(max-width:380px){.map-controls .filter-btn,#regionFilters .filter-btn,.map-controls .status-filter-btn{padding:var(--space-1) var(--space-2);font-size:.7rem;min-width:44px;min-height:44px}}.map-container{position:relative}#stateBlowoutMap{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity var(--transition-base, .2s ease)}.map-container[data-blowout-active=true] #stateBlowoutMap{pointer-events:auto;opacity:1}.map-container[data-blowout-active=true] #usMap{opacity:.18;pointer-events:none;transition:opacity var(--transition-base, .2s ease)}@media(prefers-reduced-motion:reduce){#stateBlowoutMap,.map-container[data-blowout-active=true] #usMap{transition:none}}.sn-blowout-back-btn{position:absolute;top:var(--space-3, 12px);left:var(--space-3, 12px);z-index:10;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px 16px;font-size:.85rem;font-weight:600;color:var(--color-text);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #cbd5e1);border-radius:22px;box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .1));cursor:pointer;transition:all .2s ease}[data-theme=dark] .sn-blowout-back-btn{background:#1e293b;color:#f8fafc;border-color:#475569}.sn-blowout-back-btn:hover{background:var(--color-bg-alt, #f8fafc);border-color:var(--color-text-light, #64748b);transform:translateY(-1px)}[data-theme=dark] .sn-blowout-back-btn:hover{background:#334155;border-color:#94a3b8}.sn-blowout-back-btn:focus-visible{outline:2px solid var(--color-border-focus, #16a34a);outline-offset:2px}@media(prefers-reduced-motion:reduce){.sn-blowout-back-btn{transition:none;transform:none}}.sn-blowout-county{fill:var(--color-map-unknown-fill, #9ca3af);stroke:var(--color-map-state-stroke, #cbd5e1);stroke-width:.5}.sn-blowout-county-highlighted{fill:var(--color-favorable, #16a34a)}.sn-blowout-panel-mount{margin-top:var(--space-4, 16px);padding:var(--space-4, 16px);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 6px)}.sn-blowout-panel-mount[hidden]{display:none}.sn-blowout-panel .sn-blowout-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3, 12px)}.sn-blowout-panel .sn-blowout-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:44px;min-height:44px;padding:var(--space-1, 4px) var(--space-2, 8px);cursor:pointer}.sn-blowout-slots{list-style:none;padding:0;margin:0 0 var(--space-3, 12px) 0}.sn-blowout-slot{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2, 8px);padding:var(--space-2, 8px) 0}.sn-slot-value{font-size:1.5rem;font-weight:700;color:var(--color-text, #1e293b)}.sn-slot-source{margin-left:auto;font-size:.85rem;color:var(--color-text-secondary, #475569)}.sn-blowout-cities ul{list-style:none;padding:0;margin:0}.sn-blowout-cities{margin-top:var(--space-3, 12px);color:var(--color-text-secondary, #475569);font-size:.9rem}.sn-blowout-cities summary{cursor:pointer;font-weight:600;color:var(--color-text-secondary, #475569);padding:var(--space-2, 8px) 0}.sn-blowout-cities[open] summary{margin-bottom:var(--space-1, 4px)}.sn-blowout-city{padding:var(--space-1, 4px) 0;font-size:.9rem}.map-inset-box{fill:var(--color-bg-alt, #f8fafc);fill-opacity:.5;stroke:var(--color-border, #cbd5e1);stroke-width:1;pointer-events:none}[data-theme=dark] .map-inset-box{fill:#1e293b;fill-opacity:.4;stroke:#475569}.map-inset-label{font-size:10px;font-weight:600;fill:var(--color-text-muted, #64748b);pointer-events:none;user-select:none}[data-theme=dark] .map-inset-label{fill:#94a3b8}.territory-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, 8px);margin-top:var(--space-3, 12px);margin-bottom:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background:var(--color-bg-alt, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px)}[data-theme=dark] .territory-bar{background:#1e293b;border-color:#334155}.territory-bar-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary, #475569);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}[data-theme=dark] .territory-bar-label{color:#94a3b8}.territory-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.territory-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 10px;font-size:.8rem;font-weight:500;color:var(--color-text, #1e293b);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #cbd5e1);border-radius:16px;cursor:pointer;transition:all .15s ease}[data-theme=dark] .territory-chip{background:#0f172a;color:#f8fafc;border-color:#475569}.territory-chip:hover{border-color:var(--color-primary, #16a34a);background:var(--color-bg, #ffffff);transform:translateY(-1px)}[data-theme=dark] .territory-chip:hover{background:#1e293b;border-color:#22c55e}.territory-chip:focus-visible{outline:2px solid var(--color-border-focus, #16a34a);outline-offset:2px}.territory-chip .chip-dot{width:8px;height:8px;border-radius:50%;background:#9ca3af;flex-shrink:0}
