:root{--bg:#fafaf7;--paper:#fff;--ink:#1a1a1a;--muted:#6b6b6b;--blue:#003566;--blue2:#0a4d8c;--orange:#c75000;--gold:#d6aa2d;--line:#e5e5e0;--pending:#bbb8a9;--shadow:0 4px 18px rgba(0,0,0,.16);--header-h:82px;--footer-h:42px;--map-h:calc(100dvh - var(--header-h))}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.45;overflow-x:hidden}button,input,select{font:inherit}
.topbar{min-height:var(--header-h);padding:10px 18px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;display:flex;align-items:center;gap:18px;position:relative;z-index:1100;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.topbar .heading{flex:1;min-width:220px}.topbar h1{font:700 clamp(1.15rem,2vw,1.7rem)/1.14 Georgia,serif;margin:2px 0}.eyebrow{margin:0;color:rgba(255,255,255,.76);font-size:.67rem;text-transform:uppercase;letter-spacing:.11em}.topbar a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.35);border-radius:18px;padding:5px 10px;font-size:.76rem}.topbar a:hover,.topbar a:focus{background:#fff;color:var(--blue)}.topbar nav{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.topbar .back{white-space:nowrap}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;height:calc(100vh - var(--header-h) - var(--footer-h));height:calc(100dvh - var(--header-h) - var(--footer-h));min-height:580px}
.map-zone{position:relative;z-index:0;min-width:0;overflow:hidden}.map-zone #map{height:100%;background:#d4e0e7;display:block;padding:0;overflow:hidden}.leaflet-container{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.leaflet-control-layers{font-size:.76rem}.leaflet-control-layers-expanded{max-width:210px}.leaflet-control-attribution{font-size:.58rem}.leaflet-control-zoom a{color:var(--blue)}
.territory{vector-effect:non-scaling-stroke;stroke:#f8f7f1;stroke-width:1.1;fill:#a7adb0;fill-opacity:.74;cursor:pointer;transition:fill-opacity .12s,stroke-width .12s}.territory.pop-on.confirmed{fill:#4b946d}.territory.pop-on.estimated{fill:#d3a944}.territory.proxy{stroke:var(--orange);stroke-width:4}.territory:hover,.territory:focus{fill-opacity:1;stroke:#162e43;stroke-width:2;outline:none}.territory.selected{stroke:#7f1d1d;stroke-width:5;fill-opacity:1}.territory.hidden,.locality-point.hidden{display:none}
.locality-point{vector-effect:non-scaling-stroke;stroke:#fff;stroke-width:.7;fill:#193f63;fill-opacity:.8;cursor:pointer}.locality-point.city,.locality-point.town{fill:#b53e24}.locality-point.village{fill:#174d36}.locality-point.hamlet{fill:#7d5b1c}.locality-point.isolated_dwelling{fill:#704879}.locality-point.uncertain{stroke:#ff6b35;stroke-width:2}.locality-point:hover,.locality-point:focus,.locality-point.selected{fill:#ffd35a;stroke:#512916;stroke-width:2;outline:none}
.legend{position:absolute;z-index:650;left:10px;top:82px;width:min(310px,calc(100% - 20px));background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:7px;padding:0;box-shadow:var(--shadow);font-size:.68rem}.legend-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:var(--blue);font:700 .72rem Georgia,serif;padding:7px 9px;cursor:pointer}.legend-body{display:grid;gap:3px;max-height:48vh;overflow-y:auto;padding:0 9px 7px}.legend-item{display:flex;align-items:center;gap:6px}.legend.collapsed .legend-body{display:none}.swatch{width:15px;height:10px;border-radius:2px;display:inline-block}.swatch.confirmed{background:#4b946d}.swatch.pending{background:var(--pending)}.swatch.proxy{background:transparent;border:3px solid var(--orange)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#174d36;border:1px solid #fff}.dot.uncertain{background:#ffd35a;border:2px solid #ff6b35}.dot.well{background:#42c7e5;border-color:#064f68}.dot.health{background:#d7263d}.dot.education{background:#2563eb;border-color:#172554}.dot.humanitarian{background:#7b2cbf}.dot.administration{background:#f59e0b;border-color:#4b2b00}.dot.official{background:#fff;border:2px solid #7c3aed}.line{width:16px;height:0;border-top:3px solid;display:inline-block}.line.region-boundary{border-color:#f4b942;border-top-width:3px}.line.commune-boundary{border-color:#f8f7f1;border-top-width:2px;box-shadow:0 1px 1px #263746}.line.prefecture-boundary{border-color:#69c7ea}.line.subprefecture-boundary{border-color:#d7eef8;border-top-style:dashed;border-top-width:2px}.line.road{border-color:#f59e0b}.line.water{border-color:#168aad}.municipal-legend-bar{width:28px;height:7px;border:1px solid #333;border-radius:2px;background:linear-gradient(90deg,#1769aa 0 58%,#d24a36 58% 82%,#f4f4f1 82%)}
.party-legend-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;margin-top:3px;padding-top:5px;border-top:1px dotted #b8c0c7}.party-legend-group{min-width:0}.party-legend-group>strong{display:block;margin-bottom:2px;color:#4b5965;font-size:.58rem;line-height:1.15;text-transform:uppercase}.party-legend-group>div{display:flex;flex-wrap:wrap;gap:3px}.party-open{display:inline-flex;align-items:center;gap:3px;min-width:0;border:1px solid color-mix(in srgb,var(--party-color) 58%,#777);border-radius:4px;background:rgba(255,255,255,.78);padding:2px 4px;color:#26333e;font-size:.62rem;font-weight:900;line-height:1;cursor:pointer}.party-open:hover,.party-open:focus{outline:2px solid var(--party-color);outline-offset:1px}.party-open img,.party-open>i{width:14px;height:14px;flex:none;border-radius:50%;object-fit:contain;background:#fff}.party-open>i{background:var(--party-color)}
.data-context{position:absolute;z-index:649;left:10px;width:min(250px,calc(100% - 20px));color:#606870;font-family:Arial,Helvetica,sans-serif}.data-context-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid rgba(255,255,255,.78);border-radius:5px;background:transparent;padding:5px 8px;color:#fff;font:700 .68rem Arial,Helvetica,sans-serif;text-shadow:0 1px 2px #000;cursor:pointer}.data-context-body{max-height:34vh;overflow-y:auto;margin-top:3px;border-left:1px solid rgba(255,255,255,.72);padding:4px 0 3px 7px}.data-context.collapsed .data-context-body{display:none}.context-section>strong{display:block;margin-bottom:4px;color:#fff;font-size:.65rem;text-shadow:0 1px 2px #000;text-transform:uppercase}.context-parties{display:block;margin:0;padding:0;border:0}.context-parties .party-legend-group{margin-bottom:5px}.context-parties .party-legend-group>strong{color:#fff;text-shadow:0 1px 2px #000}.context-parties .party-legend-group>div{display:grid;grid-template-columns:1fr}.context-parties .party-open{width:100%;background:rgba(255,255,255,.7);font-size:.66rem}.context-parties .party-open img,.context-parties .party-open>i{width:19px;height:19px}.context-all-link{display:block;margin-top:6px;color:#fff;font-size:.64rem;font-weight:800;text-shadow:0 1px 2px #000}
.line.legislative-boundary{border-color:#f2a65a;border-top-style:dashed;border-top-width:2px}
.map-text-label{background:transparent;border:0;width:auto!important;height:auto!important;pointer-events:none!important}.map-text-label span{display:block;white-space:nowrap;transform:translate(-50%,-50%);font-family:Arial,Helvetica,sans-serif;text-shadow:1px 1px 1px rgba(0,0,0,.9);pointer-events:none!important}.region-map-label span{color:#b7e3ff;font-size:.8rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.prefecture-map-label span{color:#69c7ea;font-size:.78rem;font-weight:800;text-transform:uppercase}.subprefecture-map-label span{color:#e8f7ff;font-size:.7rem;font-weight:700}.commune-map-label span{color:#d97706;font-size:.84rem;font-weight:700;text-transform:none}.locality-map-label span{color:#ffd84d;font-size:.96rem;font-weight:700}.village-map-label span{color:#fff;font-size:.96rem;font-weight:400}.locality-map-label span,.village-map-label span{transform:translate(-50%,calc(-50% - .9em))}.hamlet-map-label span{color:#d1d5db;font-size:.96rem;font-weight:400}.isolated-map-label span{color:#8b949e;font-size:.96rem;font-weight:400}.small-map-label span{font-size:.64rem}.hover-label{font-size:.72rem;font-weight:700}
.map-text-label.map-label-clickable{pointer-events:auto!important;cursor:pointer}.map-text-label.map-label-clickable:focus span{outline:2px solid #fff176;outline-offset:2px;border-radius:2px}.admin-seat-symbol{display:block;font-style:normal;line-height:1;margin-top:.12em;text-align:center;text-shadow:0 1px 1px rgba(0,0,0,.85)}.admin-seat-symbol.prefecture-seat{font-size:1.25em}.admin-seat-symbol.subprefecture-seat,.admin-seat-symbol.commune-seat{font-size:1em}.admin-post-list p{margin:.2rem 0 .65rem}.admin-post-list p:last-child{margin-bottom:0}.admin-post-list small{color:var(--muted)}
.municipal-seat-bar{display:flex;width:58px;height:7px;margin:3px auto 0;overflow:hidden;border:1px solid rgba(0,0,0,.72);border-radius:2px;background:#747b82;box-shadow:0 1px 2px rgba(0,0,0,.75);pointer-events:auto}.municipal-seat-bar i{display:block;height:100%;min-width:1px}.municipal-seat-bar i+ i{border-left:1px solid rgba(0,0,0,.38)}.municipal-seat-bar .dark-segment{box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}.municipal-seat-bar.no-data i{width:100%;background:repeating-linear-gradient(135deg,#8a9096 0 3px,#c7c9c7 3px 6px)}
.legislative-map-label span{max-width:170px;overflow:hidden;text-overflow:ellipsis;padding:2px 5px;border:1px solid rgba(255,255,255,.8);border-radius:3px;background:var(--label-color);font-size:.68rem;font-weight:800;text-align:center;text-transform:none}.legislative-map-label.dark-party-label span{color:#fff;text-shadow:0 1px 1px #000}.legislative-map-label.light-party-label span{color:#17202a;text-shadow:none;border-color:#5d6570}.legislative-map-label.small-map-label span{max-width:112px;font-size:.56rem}
#map.legislatives-active .leaflet-commune-pane path{pointer-events:none}
.ru-well-map-label span{color:#fff;background:#0039a6;border:1px solid rgba(255,255,255,.9);border-radius:3px;padding:1px 4px;font-size:.64rem;font-weight:900;letter-spacing:.02em;text-shadow:none;transform:translate(-50%,calc(-50% - 1.15em));box-shadow:0 1px 2px rgba(0,0,0,.5)}.ru-flag-map-label span{background:#0039a6;border:1px solid rgba(255,255,255,.9);border-radius:4px;padding:2px 3px;font-size:.72rem;line-height:1;text-shadow:none;box-shadow:0 1px 2px rgba(0,0,0,.5);transform:translate(calc(-50% + 12px),calc(-50% + 12px))}
#map-dock{position:absolute;left:12px;bottom:10px;z-index:640;width:350px;max-width:calc(100% - 24px);pointer-events:none}#map-dock .dock-panel{pointer-events:auto;display:flex;flex-direction:column;max-height:44vh;background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:0 3px 14px rgba(0,0,0,.28);overflow:hidden;font-size:.82rem}#map-dock .dock-head{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:5px 6px;color:#fff;background:var(--blue)}#map-dock .dock-tabs{display:flex;gap:3px;flex-wrap:wrap}#map-dock .dock-tab{border:0;background:rgba(255,255,255,.2);color:#fff;border-radius:5px;padding:3px 8px;cursor:pointer;line-height:1.25}#map-dock .dock-tab.active{background:#fff;color:var(--blue)}#map-dock .dock-min{border:0;background:transparent;color:#fff;cursor:pointer;font-weight:800;padding:2px 7px;border-radius:5px}#map-dock .dock-min:hover{background:rgba(255,255,255,.18)}#map-dock .dock-search{margin:5px;padding:6px 8px;border:1px solid #ddd;border-radius:5px;width:calc(100% - 10px)}#map-dock .dock-list{overflow-y:auto;padding:0 5px 5px}#map-dock .dock-item{width:100%;display:flex;align-items:center;gap:4px;background:#fff;border-radius:4px;text-align:left}#map-dock .dock-item:hover,#map-dock .dock-item:focus-within{background:#eef3f7}.dock-go{display:flex;align-items:center;gap:6px;flex:1;min-width:0;border:0;background:transparent;padding:5px 6px;text-align:left;cursor:pointer}.dock-fiche{flex:none;border:0;background:transparent;padding:4px 7px;cursor:pointer;opacity:.65;border-radius:5px}.dock-fiche:hover,.dock-fiche:focus{background:#fff;opacity:1}.dock-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-meta{font-size:.72rem;color:var(--muted);white-space:nowrap}.dock-empty,.dock-more{padding:6px;color:#888;font-style:italic}.dock-panel.collapsed .dock-search,.dock-panel.collapsed .dock-list{display:none}
.rca-fiche{position:fixed;inset:0;z-index:12000;background:rgba(0,0,0,.42);display:flex;align-items:center;justify-content:center;padding:16px}.rca-fiche-dialog{background:#fff;border-radius:12px;max-width:620px;width:100%;max-height:86vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.4)}.rca-fiche-head{color:#fff;padding:10px 14px;display:flex;align-items:center;gap:8px;text-shadow:0 1px 2px #000}.rca-fiche-title{flex:1;font-size:.98rem}.rca-fiche-x{border:0;background:transparent;color:#fff;cursor:pointer;font-size:1.35rem;line-height:1;padding:0 4px}.rca-fiche-card{border:0;border-radius:0;padding:12px 14px;background:#fff;min-height:0}.rca-fiche-card>h2{display:none}.leaflet-interactive{cursor:pointer}.party-fiche-intro{display:flex;align-items:center;gap:12px;margin-bottom:10px}.party-fiche-intro img,.party-fiche-intro>i{width:56px;height:56px;flex:none;border-radius:50%;object-fit:contain;background:#fff;border:1px solid #ccd2d7}.party-fiche-intro>i{background:var(--party-color,#737d88)}.party-fiche-intro h2{display:block!important;margin:0;color:var(--blue);font:800 1.12rem Georgia,serif}.party-fiche-intro strong{color:#58636d}.party-tabs{display:flex;gap:3px;overflow-x:auto;border-bottom:1px solid #bbc3ca;margin-bottom:10px}.party-tabs button{border:0;border-bottom:3px solid transparent;background:#eef2f4;color:#46535f;padding:6px 8px;white-space:nowrap;cursor:pointer;font-size:.72rem;font-weight:800}.party-tabs button[aria-selected="true"]{border-bottom-color:var(--blue);background:#fff;color:var(--blue)}.party-tab-panel h3{margin:9px 0 4px;color:var(--blue);font:800 .9rem Georgia,serif}.party-tab-panel ul{margin:4px 0;padding-left:20px}.party-people-list{list-style:none;padding:0!important}.party-people-list li{display:grid;gap:1px;padding:5px 0;border-bottom:1px dotted #ccd2d7}.party-people-list span,.party-source-list small{display:block;color:var(--muted);font-size:.7rem}.party-source-list{display:grid;gap:7px;list-style:none;padding:0!important}
.side{background:#fff;border-left:1px solid var(--line);overflow-y:auto;padding:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}.stats div{background:#f5f7f9;border:1px solid #dbe1e6;border-radius:6px;padding:7px 5px;text-align:center}.stats strong{display:block;color:var(--blue);font:700 1.2rem Georgia,serif}.stats span{font-size:.61rem;color:var(--muted);text-transform:uppercase}
.layer-box,.search-box,.method-box{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fafafa;margin-bottom:12px}.layer-box h2,.search-box h2,.method-box h2{font:700 1rem Georgia,serif;color:var(--blue);margin:0 0 4px}.layer-box p{font-size:.72rem;color:var(--muted);margin:0 0 9px}.layer-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.layer-grid label{display:flex;align-items:center;gap:5px;font-size:.8rem;cursor:pointer}.layer-grid input{accent-color:var(--blue)}.layer-section-title{grid-column:1/-1;margin-top:5px;padding-top:8px;border-top:1px solid var(--line);font:700 .76rem Georgia,serif;color:var(--blue)}.layer-grid label.loading{color:#8b6508}.layer-grid label.loading::after{content:"…";font-weight:800}.layer-grid label.load-error{color:#9b1c1c}.layer-grid input:disabled{cursor:wait}
.opacity-control{display:grid!important;grid-template-columns:1fr auto;gap:5px 10px!important;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:.75rem!important;font-weight:700;color:var(--blue)}.opacity-control output{font-variant-numeric:tabular-nums;color:var(--muted)}.opacity-control input{grid-column:1/-1;width:100%;accent-color:#d3a944;cursor:pointer}
.search-box>label{display:grid;gap:3px;color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.search-box input{width:100%;border:1px solid #c9cdd1;border-radius:6px;padding:7px;background:#fff;color:var(--ink);font-weight:400;text-transform:none}.search-box button{margin-top:9px;width:100%;border:0;border-radius:6px;padding:7px;color:#fff;background:var(--blue);font-weight:700;cursor:pointer}.search-box button:hover{background:var(--blue2)}.method-box{display:grid;gap:6px}.method-box a,.method-links a{color:var(--blue);font-size:.78rem;font-weight:700}.method-links{display:flex;flex-wrap:wrap;gap:5px 12px;margin:10px 0 0}
.detail{border:1px solid #d7c890;border-left:4px solid var(--gold);border-radius:8px;padding:11px;background:#fffaf0;min-height:86px}.detail h2{font:700 1.14rem Georgia,serif;color:var(--blue);margin:0 0 3px}.detail .path{font-size:.74rem;color:var(--muted);margin:0 0 9px}.detail dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 9px;margin:0;font-size:.8rem}.detail dt{color:var(--muted)}.detail dd{margin:0;font-weight:650}.detail a{color:var(--blue)}.empty{margin:15px 0;color:var(--muted);font-style:italic;text-align:center}.badge{display:inline-block;padding:1px 6px;border-radius:999px;font-size:.66rem;font-weight:800}.badge.est{background:#fff0c9;color:#765300;border:1px solid #e0bd5a}.badge.wait{background:#ecebe5;color:#625f55}.badge.proxy{background:#f8ddd0;color:#783617}.map-error{position:absolute;z-index:700;inset:20px;background:#fff4f0;border:1px solid var(--orange);border-radius:10px;padding:18px}
#split-handle{display:none}footer{min-height:var(--footer-h);background:#001f3b;color:#dfeaf3;padding:7px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.66rem}
@media(max-width:1024px){:root{--header-h:72px}.topbar{width:100vw;min-height:var(--header-h);padding:8px 12px;overflow:hidden}.topbar .heading{flex:0 1 auto;width:calc(100vw - 24px);min-width:0;max-width:100%}.topbar h1{overflow-wrap:anywhere}.topbar .back{display:none}.topbar nav{display:none}.layout{display:block;height:auto;min-height:0}.map-zone{height:var(--map-h)}.map-zone #map{height:100%}.side{border-left:0;border-top:1px solid var(--line);overflow:visible;padding-bottom:80px}#map-dock{bottom:57px;width:300px}#map-dock .dock-panel{max-height:min(44vh,360px)}.legend{top:82px;width:min(230px,calc(100% - 20px))}.data-context{width:min(210px,calc(100% - 20px))}#split-handle{display:flex;position:fixed;left:50%;margin-left:-88px;top:calc(var(--header-h) + var(--map-h) - 21px);z-index:1200;width:176px;height:42px;align-items:stretch;background:var(--blue);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:21px;box-shadow:0 3px 12px rgba(0,0,0,.45);touch-action:none;user-select:none;overflow:hidden}#split-handle button{width:48px;border:0;background:transparent;color:#fff;cursor:pointer;font-size:1.15rem}#split-handle button:disabled{opacity:.28}#split-handle .grip{flex:1;display:flex;align-items:center;justify-content:center;cursor:grab;border-left:1px solid rgba(255,255,255,.22);border-right:1px solid rgba(255,255,255,.22);font-size:1.1rem}#split-handle.dragging{background:var(--blue2)}footer{min-height:0;flex-wrap:wrap}}
@media(max-width:560px){.topbar h1{font-size:1.05rem;max-width:340px}.eyebrow{font-size:.58rem}.stats{grid-template-columns:repeat(2,1fr)}.filter-grid,.layer-grid{grid-template-columns:1fr}#map-dock{width:250px}#map-dock .dock-panel{max-height:min(42vh,320px)}.legend{font-size:.6rem}.detail dl{grid-template-columns:1fr}.detail dt{font-weight:700}.detail dd{margin-bottom:3px}}

.election-loading{color:var(--muted);font-style:italic}.election-council{display:grid;gap:8px}.election-unit{border:1px solid var(--line);border-radius:7px;background:#fff;padding:7px 9px}.election-unit summary{cursor:pointer;font-weight:800;color:var(--blue)}.election-unit>small{display:block;color:var(--muted);margin-top:6px}.election-list{margin-top:7px;padding-top:7px;border-top:1px dotted #c7cdd3}.election-list p{margin:0 0 4px}.election-list ol{columns:2;column-gap:22px;margin:0;padding-left:22px}.election-list li{break-inside:avoid;margin:2px 0}.election-warning{color:#9a4d00;font-weight:700}.method-links a{display:inline-block;border:1px solid #c9a227;border-radius:999px;background:#fff8d9;color:#5f4600;padding:6px 11px;font-weight:800;text-decoration:none}.method-links a:hover{background:#ffed9a}
.municipal-modal-bar{margin:2px 0 9px}.municipal-modal-bar .municipal-seat-bar{width:100%;height:11px;margin:0}.party-badge{--party-color:#737d88;display:inline-flex;align-items:center;gap:5px;max-width:100%;margin-right:5px;padding:2px 7px 2px 3px;border:1px solid color-mix(in srgb,var(--party-color) 72%,#222);border-radius:999px;background:color-mix(in srgb,var(--party-color) 17%,#fff);vertical-align:middle}.party-badge img,.party-badge>i{width:22px;height:22px;flex:none;border-radius:50%;object-fit:contain;background:#fff}.party-badge>i{background:var(--party-color)}.party-badge span{font-weight:900;color:#17202a}.party-badge b{white-space:nowrap;color:#3e4852;font-size:.72rem}.party-source{display:block;margin-top:8px;color:var(--muted)}
.admin-plan-link{display:block;margin-top:10px;border:1px solid #7790a4;border-radius:7px;background:#eef5f8;color:var(--blue);padding:8px 10px;text-align:center;text-decoration:none;font-weight:800}.admin-plan-link:hover{background:#dfeef5}
.legislative-links{display:grid;gap:6px}.legislative-link-row{display:grid;grid-template-columns:auto 1fr;gap:5px}.legislative-links a{display:grid;gap:2px;border:1px solid #e5c28f;border-left:4px solid #d97706;border-radius:6px;background:#fff8ed;padding:7px 9px;color:var(--blue);text-decoration:none}.legislative-links .circo-map-link{place-items:center;border-left-width:1px;background:#003566;color:#fff;padding-inline:8px}.legislative-links span{color:var(--muted);font-size:.75rem}

.lists-page{min-height:100vh;background:#eef2f4;color:#16212c}.lists-shell{max-width:1180px;margin:auto;padding:22px}.lists-head{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #d8dde2;border-radius:12px;padding:16px 18px;box-shadow:0 5px 18px #001d3520}.lists-head svg{width:46px;height:46px;color:#003566;flex:none}.lists-head h1{margin:0;font:800 clamp(1.35rem,3vw,2rem) Georgia,serif;color:#003566}.lists-head p{margin:4px 0 0;color:#52606d}.lists-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:10px;align-items:end;margin:16px 0;padding:12px;background:#eef2f4e8;backdrop-filter:blur(6px)}.lists-toolbar label{flex:1;font-weight:800;color:#003566}.lists-toolbar input{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:10px 12px;border:1px solid #aeb9c4;border-radius:8px;font:inherit}.lists-toolbar a{padding:10px 12px;border-radius:8px;background:#003566;color:#fff;text-decoration:none;font-weight:800}.lists-summary{margin:8px 0 15px;color:#52606d}.municipal-card{background:#fff;border:1px solid #d8dde2;border-left:5px solid #d97706;border-radius:10px;margin:12px 0;padding:14px 16px;box-shadow:0 3px 12px #001d3514}.municipal-card h2{margin:0;color:#003566;font:800 1.25rem Georgia,serif}.municipal-card .territorial-path{margin:3px 0 10px;color:#65717c}.municipal-card .election-unit{margin-top:8px}.source-note{background:#fff8d9;border:1px solid #e5c65c;border-radius:8px;padding:10px 12px}.source-note a{color:#003566;font-weight:800}.lists-empty{background:#fff;border-radius:8px;padding:18px;color:#7a2e1d}.lists-footer{margin-top:24px;padding:14px 0;border-top:1px solid #cbd3da;color:#65717c;font-size:.85rem}
@media(max-width:650px){.lists-shell{padding:10px}.lists-head{align-items:flex-start}.lists-toolbar{align-items:stretch;flex-direction:column}.lists-toolbar a{text-align:center}.election-list ol{columns:1}}
.legislative-card{border-left-color:#9b4f16}.legislative-holder{display:grid;gap:2px;margin:9px 0;padding:9px 11px;border-radius:7px;background:#edf7ef;border-left:4px solid #24834e}.legislative-holder.pending{background:#fff4e4;border-left-color:#d97706}.legislative-holder span{color:#52606d;font-size:.82rem}.legislative-facts{display:grid;grid-template-columns:max-content 1fr;gap:5px 12px;margin:9px 0}.legislative-facts dt{color:#65717c;font-weight:700}.legislative-facts dd{margin:0}.target-card{outline:4px solid #f1c453;outline-offset:2px}@media(max-width:650px){.legislative-facts{grid-template-columns:1fr}.legislative-facts dd{margin-bottom:5px}}
.party-directory{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.party-directory-card{border:1px solid #d6dce1;border-left:6px solid var(--party-color);border-radius:10px;background:#fff;padding:14px;box-shadow:0 3px 12px #001d3514}.party-directory-card>header{display:flex;align-items:center;gap:11px;margin-bottom:10px}.party-directory-card>header img,.party-directory-card>header>i{width:50px;height:50px;flex:none;border:1px solid #d5d9dd;border-radius:50%;object-fit:contain;background:#fff}.party-directory-card>header>i{background:var(--party-color)}.party-directory-card h2{margin:0;color:var(--blue);font:800 1.05rem Georgia,serif}.party-directory-card header strong{color:#5b6670}.party-directory-card dl{display:grid;grid-template-columns:max-content 1fr;gap:5px 9px;margin:0;font-size:.8rem}.party-directory-card dt{color:#65717c}.party-directory-card dd{margin:0;font-weight:650}.party-directory-card details{margin-top:10px;border-top:1px dotted #bbc4cc;padding-top:7px}.party-directory-card summary{cursor:pointer;color:var(--blue);font-weight:800}.party-directory-card ul{padding-left:20px}.party-directory-card li{margin:4px 0}.party-directory-card li span,.party-directory-card li small{display:block;color:#65717c;font-size:.72rem}.party-directory-card a{color:var(--blue);font-weight:750}@media(max-width:650px){.party-directory{grid-template-columns:1fr}.party-directory-card dl{grid-template-columns:1fr}.party-directory-card dd{margin-bottom:4px}}
