/* Functional extensions to the unchanged,approved v2 stylesheet. */
[hidden]{display:none!important}
select{font:inherit;max-width:100%;color:var(--forest)}
select:focus-visible,summary:focus-visible{outline:3px solid var(--amber-600);outline-offset:3px}
.skip-link{position:fixed;top:-80px;left:20px;z-index:200;background:var(--forest);color:white;padding:14px;border-radius:var(--r-8)}.skip-link:focus{top:10px}
.load-status{position:relative;padding:14px 24px;background:var(--sand);color:#54391f;text-align:center}.load-status button{padding:10px 18px;border:1px solid #9a734a;border-radius:var(--r-10);background:var(--paper)}
.hero-fallback{display:contents}.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;border-radius:var(--r-24)}.has-photo .hero-fallback{display:none}
.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 20px}.filter-label{display:flex;flex-direction:column;gap:5px;min-width:110px;max-width:100%;flex:1}.filter-label span{font-size:var(--fs-12);font-weight:800;letter-spacing:.06em}.filter-label select{width:100%;min-width:0;min-height:44px;padding:9px 28px 9px 12px;border:1px solid var(--line);border-radius:var(--r-10);background:var(--paper);font-size:var(--fs-12)}.compact{margin:12px 0}.compact .filter-label{flex:0 1 160px}
.filter-button{border:1px solid var(--line);border-radius:var(--r-8);background:var(--n-100);color:var(--forest);padding:9px 13px;font-size:var(--fs-12);font-weight:700;min-height:44px}.filter-button.active{background:var(--forest);color:white}.check-label{display:flex;gap:8px;align-items:center;font-size:var(--fs-13);min-height:44px}.check-label input{width:18px;height:18px;accent-color:var(--forest)}
.card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:16px 29px;border-top:1px solid var(--n-150)}.text-link{border:0;background:none;cursor:pointer;padding:5px 0;min-height:36px}.smallnote{font-size:var(--fs-13);color:var(--n-650);line-height:1.6}.empty-state{padding:24px;font-size:var(--fs-13);color:var(--n-650)}.search:focus-within{outline:3px solid var(--amber-600);outline-offset:3px}
.list-detail{border-bottom:1px solid var(--line)}.list-detail summary{list-style:none;cursor:pointer}.list-detail summary::-webkit-details-marker{display:none}.list-detail[open] summary{background:var(--n-100)}.list-detail[open] summary .rank{transform:rotate(90deg)}.list-note{font-size:var(--fs-13);line-height:1.6;margin:0;padding:15px 29px;background:var(--bg);color:var(--sage-text)}.list-detail .candidate-row:not(summary){padding-left:42px}.candidate-extra{overflow-wrap:anywhere}.candidate-number small{display:block;line-height:1.3;margin-top:4px}.result-title{font-weight:400}.result-tools{flex-wrap:wrap}
.archive-winner-name{background:transparent;padding:0;border:0;text-align:left;display:block}.archive-winner-name:hover{text-decoration:underline}.podium-person{border:0;background:transparent;text-align:left;color:var(--n-50);font-size:var(--fs-13);font-weight:750;padding:4px 0;overflow-wrap:anywhere;line-height:1.55}.podium-person:hover{text-decoration:underline}.archive-method-note{font-size:var(--fs-12)}
.comparison-detail,.directory{margin-top:24px;padding:28px 30px;min-width:0}.comparison-detail h3,.directory h3{font-family:var(--serif);font-size:var(--fs-28);font-weight:400;margin:0 0 17px}.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}table{width:100%;border-collapse:collapse;font-size:var(--fs-12);font-variant-numeric:tabular-nums}caption{text-align:left;color:var(--n-650);padding:0 0 14px;font-size:var(--fs-13)}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px 12px;white-space:nowrap}th{font-weight:700;background:var(--n-100)}#candidate-movers{margin-top:24px}.year-highlight{font-size:var(--fs-13);color:var(--sage-text);line-height:1.6}g[role=button]{cursor:pointer}g[role=button]:focus-visible{outline:2px solid var(--amber-600)}.plot-missing{fill:var(--n-500);font-size:var(--fs-18)}
.people-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.person-tile{display:flex;flex-direction:column;gap:8px;text-align:left;border:1px solid var(--line);border-radius:var(--r-10);background:var(--paper);padding:17px;min-width:0;color:var(--forest)}.person-tile:hover{background:var(--n-100)}.person-tile strong{font-size:var(--fs-13);overflow-wrap:anywhere}.directory>.search{max-width:440px}.directory .card-actions{padding:18px 0 0;margin-top:20px}
dialog.modal{border:1px solid var(--line);max-width:660px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);margin:auto;color:var(--ink)}dialog::backdrop{background:rgba(15,36,30,.56);backdrop-filter:blur(5px)}.dialog-open{overflow:hidden}.modal-foot{flex-wrap:wrap;gap:16px;justify-content:space-between}.icon-button{font-size:var(--fs-24);flex:none;min-height:44px;min-width:44px}.profile-year{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px 16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:var(--fs-12)}.profile-year>strong{grid-row:span 3;color:var(--n-650)}.profile-year>span{grid-column:2}
.profile-year>*:not(strong)+*:not(strong){margin-top:6px}.profile-year>button{text-align:left;justify-self:start}.modal-head{min-width:0}.modal-head h2{overflow-wrap:anywhere}.modal-feature{min-width:0}.modal-feature small{display:block;line-height:1.5;margin-top:8px}.modal-feature strong{overflow-wrap:anywhere}.modal-sub{color:var(--n-650)}.source-layout p.source-method{max-width:none;margin:8px 0;font-size:var(--fs-13);color:var(--n-650)}.source-item small{color:var(--n-650)}.footer{flex-wrap:wrap;padding-left:38px;padding-right:38px}.footer a{text-decoration:underline;color:var(--forest)}
@media(max-width:800px){.people-list{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{padding-left:26px;padding-right:26px}}
@media(max-width:570px){.filter-bar{gap:8px}.filter-label{min-width:100px}.filter-label:first-child{flex-basis:100%}.card-actions{padding:15px 17px}.comparison-detail,.directory{padding:22px 18px}.people-list{grid-template-columns:1fr}.list-detail .candidate-row:not(summary){padding-left:22px}.list-note{padding:14px 17px}.footer{padding-left:20px;padding-right:20px}.hero-actions{flex-wrap:wrap}.insight-mini{min-width:0}.latest-mini{flex-wrap:wrap;letter-spacing:.1em}.section-header h2{overflow-wrap:normal}.hero-meta{gap:7px}.modal-feature strong{font-size:var(--fs-32)}.modal-feature div{padding:13px}.profile-year{gap:6px 10px}.modal-foot .text-link{font-size:var(--fs-13)}}
@media(max-width:360px){.shell{padding-left:16px;padding-right:16px}.hero h1{font-size:60px}.section-header h2{font-size:var(--fs-40)}.latest{padding:22px 18px}.candidate-row{grid-template-columns:23px minmax(0,1fr) 58px;gap:7px;padding:13px 12px}.candidate-number strong{font-size:var(--fs-20)}.candidate-name{font-size:var(--fs-12)}.archive-main{padding:21px 17px}.hero-secondary{padding-left:0}.nav a{padding:14px 13px;min-height:44px}}
@media(max-width:800px){html{scroll-padding-top:140px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:360px){.archive-types{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}
/* Revision after user review: clearer historical context and list profiles. */
.nav-more{position:relative;flex:none}.nav-more>summary{list-style:none;cursor:pointer;font-size:var(--fs-12);font-weight:700;color:var(--n-650);border-radius:var(--r-10);padding:11px 14px;min-height:44px;display:flex;align-items:center;gap:7px}.nav-more>summary::-webkit-details-marker{display:none}.nav-more>summary::after{content:'⌄';font-size:var(--fs-14)}.nav-more[open]>summary,.nav-more.has-active>summary{background:var(--n-150);color:var(--forest)}.nav-more-links{position:absolute;right:0;top:calc(100% + 6px);width:215px;padding:8px;background:var(--paper);border:1px solid var(--n-250);border-radius:var(--r-12);box-shadow:0 12px 35px #153f3626;z-index:110;display:grid;gap:3px}.nav .nav-more-links a{display:block;min-height:44px;padding:12px 14px;font-size:var(--fs-12);border:0;border-radius:var(--r-8)}.archive-winner-result{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.archive-score-label{font-size:var(--fs-12);color:#4f6a55}.archive-winner-result .archive-winner-score{margin-top:10px}.archive-winner-result .archive-winner-score strong{font-family:var(--serif);font-weight:400;font-size:var(--fs-64);letter-spacing:-.016em}.archive-winner-result .archive-winner-score strong span{font-size:var(--fs-28);margin-left:2px}.archive-winner-result .archive-winner-score>span{font-size:var(--fs-16);color:var(--n-700);max-width:16ch;line-height:1.3}
.archive-picto{display:flex;gap:5px;margin-top:14px}.archive-picto svg{width:16px;height:22px;fill:var(--n-250)}.archive-picto svg.on{fill:var(--green-600)}.archive-winner-result .archive-winner-caption{font-size:var(--fs-14);line-height:1.5;color:var(--n-700);margin-top:14px;max-width:46ch}.archive-winner-result .archive-winner-caption #archive-leader-votes{font-weight:700;color:var(--forest-3)}.dashboard-metrics{display:flex;gap:5px;padding:4px;background:var(--mint);border-radius:var(--r-12);width:max-content;max-width:100%;margin:0 0 23px}.dashboard-metrics button{background:transparent;border:0}.dashboard-metrics button.active{background:var(--forest);color:var(--white)}.dashboard-overview{margin-bottom:12px}.dashboard-highlight{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:9px;padding:22px;background:var(--n-100);border:1px solid var(--n-250);border-radius:var(--r-12);text-align:left;color:var(--forest);font:inherit;min-width:0;width:100%}.dashboard-highlight:hover{background:var(--n-150)}.dashboard-highlight small{font-size:var(--fs-12);letter-spacing:.055em;font-weight:800;color:#63816a}.dashboard-highlight .highlight-name{font-size:var(--fs-14);line-height:1.5;overflow-wrap:anywhere}.dashboard-highlight .highlight-value{font-size:var(--fs-28);letter-spacing:-.025em;line-height:1.2;font-weight:650}.dashboard-highlight>span{font-size:var(--fs-12);color:var(--n-500);line-height:1.6;margin-top:auto}.dashboard-highlight.neutral{background:var(--bg)}.dashboard-scope{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 14px}.dashboard-scope button{font-size:var(--fs-13);padding:9px 12px;min-height:40px;background:transparent}.dashboard-scope button.active{background:var(--forest)}.dashboard-tools{border-top:1px solid var(--n-200);border-bottom:1px solid var(--n-200);margin:0 0 17px;padding:3px 0}.dashboard-tools summary{cursor:pointer;font-size:var(--fs-13);color:var(--n-650);min-height:40px;padding:12px 0;font-weight:700}.dashboard-tools-row{display:flex;flex-wrap:wrap;gap:18px;align-items:end;padding:4px 0 18px}.dashboard-tools-row .dashboard-search{margin:0;min-height:44px;flex:1}.dashboard-tools-row #dashboard-sort-control{min-width:210px}.dashboard-party{border:0;background:none;padding:0;color:var(--forest);font:inherit;font-weight:750;min-height:36px;cursor:pointer}.dashboard-party:hover{text-decoration:underline}.dashboard-rank{display:block;color:var(--n-650);font-size:var(--fs-12);font-weight:400;margin-top:4px}.dashboard-badge{display:inline-block;padding:3px 7px;background:var(--n-150);color:#79643f;font-size:var(--fs-12);font-weight:600;border-radius:var(--r-4);margin-top:7px}.dashboard-secondary{display:block;font-size:var(--fs-12);font-weight:400;color:var(--n-650);line-height:1.5;margin-top:5px}.dashboard-delta strong{font-size:var(--fs-13)}.dashboard-pagination{display:flex;flex-wrap:wrap;gap:12px;padding:18px 0 5px}.dashboard-table caption{font-size:var(--fs-12);color:var(--n-650)}.dashboard-table tbody th{background:var(--n-50)}.dashboard-modal .dashboard-history>summary{font-size:var(--fs-20)}.dashboard-modal .dashboard-history{margin-top:20px}
@media(max-width:800px){.nav{overflow:visible;white-space:normal;gap:5px;justify-content:space-between}.nav>a,.nav-more>summary{font-size:var(--fs-12);padding:13px 12px}.nav-more-links{top:100%}.nav-more-links a.active{border:0;background:var(--n-150)}.dashboard-highlight .highlight-value{font-size:var(--fs-24)}}
@media(max-width:570px){.nav>a,.nav-more>summary{padding:13px 9px;font-size:var(--fs-13)}.nav a:first-child{padding-left:0}.archive-winner-result{margin-top:16px}.archive-winner-result .archive-winner-score strong{font-size:var(--fs-56)}.dashboard-overview{grid-template-columns:1fr}.dashboard-overview .dashboard-highlight{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:16px;gap:7px 13px}.dashboard-highlight small{grid-column:1 / -1}.dashboard-highlight .highlight-name{grid-column:1;grid-row:2;font-size:var(--fs-12)}.dashboard-highlight .highlight-value{grid-column:2;grid-row:2;align-self:center;font-size:var(--fs-20)}.dashboard-highlight>span{grid-column:1 / -1;font-size:var(--fs-12)}.dashboard-scope{gap:6px}.dashboard-scope button{flex:1 1 40%;font-size:var(--fs-12);min-height:40px}.dashboard-tools-row{display:grid;gap:14px}.dashboard-tools-row .dashboard-search{width:100%;min-width:0}.dashboard-tools-row #dashboard-sort-control{min-width:0}.dashboard-table,.dashboard-table tbody{display:block;width:100%}.dashboard-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.dashboard-table caption{display:block;text-align:left;padding:0 0 14px}.dashboard-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin:0 0 12px;padding:16px;background:var(--paper);border:1px solid var(--n-200);border-radius:var(--r-12)}.dashboard-table tbody th{grid-column:1 / -1;background:transparent;padding:0 0 13px;border:0;min-width:0!important;max-width:none!important}.dashboard-table tbody td{border:0;padding:0 0 13px;white-space:normal;min-width:0}.dashboard-table td[data-label]::before{content:attr(data-label);display:block;font-size:var(--fs-12);font-weight:600;color:var(--n-500);margin-bottom:8px}.dashboard-table .dashboard-score strong{font-size:var(--fs-20)}.dashboard-table .dashboard-delta{grid-column:1 / -1;border-top:1px solid var(--n-150);padding:12px 0 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dashboard-table .dashboard-delta::before{margin:0 auto 0 0!important}.dashboard-delta .dashboard-secondary{margin:0}.dashboard-delta strong{font-size:var(--fs-14)}.dashboard-modal .table-scroll:has(.dashboard-table){overflow:visible;border:0;border-radius:0}.dashboard-table .empty-state{grid-column:1 / -1!important;padding:0}.dashboard-pagination button{width:100%}.dashboard-table .dashboard-party{font-size:var(--fs-13);line-height:1.55;min-height:0;text-align:left}}.result-candidate-access{padding:13px 29px;border-top:1px solid var(--line)}.result-candidate-access button{font-size:var(--fs-13);color:var(--n-500)}.insight-mini{font:inherit;color:var(--forest);text-align:left;cursor:pointer;background:transparent;border:0;width:100%}.context-note{font-size:var(--fs-13);line-height:1.65;color:var(--n-650);margin:0 0 15px}.round-comparison{margin-top:24px;padding:27px 30px}.round-comparison h3,.dashboard-launch h3{font-family:var(--serif);font-size:var(--fs-32);font-weight:400;line-height:1.2;margin:8px 0 23px}.round-metrics,.dashboard-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}.round-metrics>div,.dashboard-overview>div{padding:17px;background:var(--n-100);border:1px solid var(--n-200);border-radius:var(--r-12);display:flex;flex-direction:column;gap:8px;min-width:0}.round-metrics small,.dashboard-overview small{font-size:var(--fs-12);color:var(--n-650);font-weight:700}.round-metrics strong,.dashboard-overview strong{font-size:var(--fs-20);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.round-metrics span,.dashboard-overview span{font-size:var(--fs-13);color:var(--sage-text);font-weight:700}.round-score small{display:block;font-size:var(--fs-12);margin-top:5px;color:var(--n-500)}.round-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.round-comparison .table-scroll{border:1px solid var(--line);border-radius:var(--r-10)}.round-comparison caption{padding:15px 12px}.archive-types{gap:8px}.archive-types button{background:var(--n-150);border:1px solid var(--on-dark-2);min-height:46px;font-weight:800;color:#526d57}.archive-types button.active{background:var(--forest);border-color:var(--forest);color:white;box-shadow:0 4px 12px #153f3620}.year-select button.active{box-shadow:0 0 0 2px #63836b24}.dashboard-launch{padding:30px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(200px,1fr);gap:30px;align-items:center}.dashboard-launch p{font-size:var(--fs-12);color:var(--n-650);line-height:1.7;margin:0}.dashboard-launch h3{margin-bottom:12px}.dashboard-launchers{display:grid;gap:9px}.dashboard-launchers button{text-align:left;justify-content:space-between}.dashboard-modal{max-width:1100px!important}.dashboard-modal .modal-head h2{font-size:var(--fs-36)}.dashboard-modal .filter-label{min-width:140px}.dashboard-search{max-width:430px;margin-top:22px}.dashboard-table{font-size:var(--fs-12)}.dashboard-table th:first-child{white-space:normal;min-width:200px;max-width:280px}.dashboard-party{text-align:left;font-size:var(--fs-12);font-weight:750;line-height:1.6;color:var(--forest)}.dashboard-score{min-width:120px}.dashboard-score strong{font-size:var(--fs-14);font-variant-numeric:tabular-nums}.dashboard-track{height:5px;margin-top:9px;background:var(--mint);border-radius:var(--r-4);overflow:hidden}.dashboard-track span{display:block;height:100%;border-radius:var(--r-4);background:#58816c}.dashboard-track.before span{background:#b39a6a}.dashboard-table caption{padding:17px 12px}.dashboard-modal .table-scroll{border:1px solid var(--line);border-radius:var(--r-10)}.dashboard-history{border-top:1px solid var(--line);margin-top:27px;padding-top:12px}.dashboard-history>summary{font-family:var(--serif);font-size:var(--fs-24);cursor:pointer;padding:14px 0;min-height:44px}.heatmap-table{font-size:var(--fs-13)}.heatmap-table th:first-child{white-space:normal;min-width:190px}.heatmap-table caption{padding:15px 12px}.heatmap-cell{text-align:right;min-width:73px;color:var(--forest-3)}.source-layout{align-items:start}.source-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.source-item{min-width:0}.source-item strong,.source-item small{overflow-wrap:anywhere}.source-details{grid-column:1 / -1;border-top:1px solid var(--lime);margin-top:8px}.source-details>summary{font-size:var(--fs-13);font-weight:750;cursor:pointer;min-height:44px;padding:17px 0}.source-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}.source-methods .source-method{font-size:var(--fs-12);color:var(--n-650);line-height:1.7;margin:0}.source-section .source-layout{row-gap:24px}
@media(max-width:800px){.dashboard-launch{grid-template-columns:1fr}.dashboard-launchers{grid-template-columns:repeat(2,minmax(0,1fr))}.source-layout .source-links{grid-template-columns:repeat(2,minmax(0,1fr))}.round-metrics strong,.dashboard-overview strong{font-size:var(--fs-16)}.dashboard-modal{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}}
@media(max-width:570px){.round-comparison{padding:22px 18px}.round-metrics,.dashboard-overview{grid-template-columns:1fr;gap:8px}.round-metrics>div,.dashboard-overview>div{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:14px}.round-metrics small,.dashboard-overview small{grid-column:1 / -1}.round-metrics strong,.dashboard-overview strong{font-size:var(--fs-18)}.round-metrics span,.dashboard-overview span{align-self:center}.dashboard-launch{padding:24px 19px;gap:20px}.dashboard-launchers{grid-template-columns:1fr}.dashboard-modal .modal-head h2{font-size:var(--fs-28)}.dashboard-modal .filter-label{min-width:120px}.source-layout .source-links,.source-methods{grid-template-columns:1fr}.result-candidate-access{padding:13px 18px}}
.hero-photo-caption{display:none}.has-photo .hero-photo-caption{display:block;position:absolute;bottom:0;left:0;right:0;padding:42px 19px 16px;background:linear-gradient(transparent,rgba(14,51,44,.75));color:var(--paper);border-radius:0 0 24px 24px;font-size:var(--fs-12);font-weight:700;letter-spacing:.03em;pointer-events:none}
.selected-election{margin-bottom:22px;padding:19px 22px;background:var(--mint);border:1px solid var(--n-250);border-radius:var(--r-12);position:relative}.selected-election h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-36);letter-spacing:-.014em;line-height:1.15;margin:6px 0}.selected-election p{font-size:var(--fs-12);color:var(--n-650);margin:0}.selected-election .text-link{margin-top:9px}.selected-election.is-historical{border-left:4px solid var(--forest)}
.comparison-detail>summary,.directory>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-family:var(--serif);font-size:var(--fs-28);line-height:1.25;min-height:44px;padding:4px 0}.comparison-detail>summary::-webkit-details-marker,.directory>summary::-webkit-details-marker{display:none}.disclosure-hint{margin-left:auto;font-family:var(--sans);font-size:var(--fs-12);font-weight:700;color:var(--n-650);flex:none}.comparison-detail>summary::after,.directory>summary::after{content:'+';font-family:var(--sans);font-size:var(--fs-24);color:var(--sage-text);flex:none}.comparison-detail[open]>summary,.directory[open]>summary{margin-bottom:20px}.comparison-detail[open]>summary::after,.directory[open]>summary::after{content:'−'}.directory:not([open]){padding-top:19px;padding-bottom:19px}.vote-delta{font-weight:800}.vote-delta.positive{color:var(--green-700)}.vote-delta.negative{color:#89552b}.movers-table th:first-child{min-width:165px;white-space:normal}.movers-table th button{text-align:left}.movers-table .vote-delta{font-variant-numeric:tabular-nums}.comparison-detail .table-scroll{border-radius:var(--r-10);border:1px solid var(--line);margin-bottom:16px}
.party-result{border-bottom:1px solid var(--n-150)}.party-primary{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:20px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:23px 29px 16px;color:var(--forest)}.party-primary:hover{background:var(--n-100)}.party-primary .candidate-name{display:block;font-size:var(--fs-14);line-height:1.5}.party-primary .candidate-track{display:block}.party-primary .candidate-track>span{height:100%;display:block;background:var(--n-500);border-radius:var(--r-pill)}.party-primary .candidate-number strong{font-size:var(--fs-28)}.party-profile-link{display:block;font-size:var(--fs-13);font-weight:700;color:var(--sage-text);margin-top:7px}.party-result .list-detail{border:0;margin:0 29px 17px;border-top:1px solid var(--n-200)}.list-candidates-toggle{min-height:40px;list-style:none;padding:13px 0 4px;font-size:var(--fs-13);font-weight:600;color:var(--n-500);cursor:pointer}.list-candidates-toggle::before{content:'+';font-weight:800;margin-right:9px}.list-detail[open]>.list-candidates-toggle::before{content:'−'}.party-result .list-detail[open] summary{background:none}.candidate-party-link{border:0;background:transparent;color:var(--n-500);text-align:left;font-size:var(--fs-12);padding:3px 0;line-height:1.5}.candidate-party-link:hover{text-decoration:underline}.party-modal{max-width:740px!important}.party-modal .modal-head h2{font-size:var(--fs-32)}.party-modal .modal-feature{grid-template-columns:repeat(3,minmax(0,1fr))}.party-modal .modal-feature strong{font-size:var(--fs-32)}.party-modal .table-scroll{border:1px solid var(--line);border-radius:var(--r-12);margin-top:22px}.party-modal caption{padding:14px 12px}.party-candidate-detail{margin-top:20px;border:1px solid var(--line);border-radius:var(--r-10);overflow:hidden}.party-candidate-detail>summary{cursor:pointer;font-size:var(--fs-12);font-weight:700;padding:14px 18px;min-height:44px}.party-modal .modal-feature{margin-top:18px}
.voter-count-card{padding:29px;margin-bottom:24px}.voter-count-card h3{font-family:var(--serif);font-size:var(--fs-32);font-weight:400;margin:6px 0}.voter-count-card p{font-size:var(--fs-12);color:var(--n-650);max-width:560px;margin:0 0 22px}.voter-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.voter-count-tile{display:flex;flex-direction:column;align-items:flex-start;padding:19px;border:1px solid var(--n-200);border-radius:var(--r-12);background:var(--on-dark);color:var(--forest);text-align:left}.voter-count-tile>span{font-size:var(--fs-13);font-weight:750}.voter-count-tile>strong{font-family:var(--serif);font-weight:400;font-size:var(--fs-44);line-height:1.1;margin:10px 0 6px}.voter-count-tile>small{font-size:var(--fs-12);color:var(--n-650)}.voter-count-tile:hover{background:var(--mint)}#voter-count-context{margin-top:18px}
@media(max-width:800px){.hero-aside.has-photo{display:block;height:180px;max-width:470px;margin-top:27px}.voter-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:570px){.hero-aside.has-photo{height:136px;max-width:none;margin-top:22px}.hero-photo{border-radius:var(--r-16)}.has-photo .hero-photo-caption{border-radius:0 0 16px 16px;padding:30px 15px 12px;font-size:var(--fs-12)}.selected-election{padding:17px 18px}.selected-election h3{font-size:var(--fs-28)}.comparison-detail>summary,.directory>summary{font-size:var(--fs-24);gap:12px}.disclosure-hint{display:none}.party-primary{padding:20px 18px 15px;gap:12px;grid-template-columns:minmax(0,1fr) 66px}.party-result .list-detail{margin:0 18px 14px}.party-modal .modal-head h2{font-size:var(--fs-28)}.party-modal .modal-feature{grid-template-columns:repeat(2,minmax(0,1fr))}.party-modal .modal-feature>div:last-child{grid-column:span 2}.voter-count-card{padding:23px 18px}.voter-count-tile{padding:15px 13px}.voter-count-tile>strong{font-size:var(--fs-40)}.voter-count-tile>span{font-size:var(--fs-12)}.voter-counts{gap:9px}.candidate-party-link{line-height:1.6}}

/* Obec v číslech – oficiální údaje ČSÚ */
.pop-answer{position:relative;display:block;background:var(--mint);border-radius:var(--r-16);padding:16px 20px 16px 40px;margin:0 0 18px;font-size:var(--fs-16);line-height:1.55;color:var(--n-800);max-width:none}
.pop-answer:empty{display:none}
.pop-answer::before{content:"";position:absolute;left:20px;top:25px;width:8px;height:8px;border-radius:50%;background:var(--green-600)}
.pop-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.pop-kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-16);padding:18px 20px;display:flex;flex-direction:column;gap:4px;min-width:0}
.pop-kpi strong{font-family:var(--serif);font-weight:400;font-size:var(--fs-44);line-height:1.05;color:var(--forest);letter-spacing:-.01em}
.pop-kpi span{font-size:var(--fs-15);font-weight:600;color:var(--n-800)}
.pop-kpi small{font-size:var(--fs-13);color:var(--n-600)}
.pop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.pop-card{padding:26px 28px;min-width:0}
.pop-card h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-28);line-height:1.15;color:var(--forest);margin:10px 0 14px}
.pop-chart{position:relative}
.pop-chart svg{display:block;width:100%;height:auto;overflow:visible}
.pop-axis{font:400 12px var(--sans);fill:var(--n-600)}
.pop-end{font:700 13px var(--sans);fill:var(--n-800)}
.pop-tip{position:absolute;z-index:2;pointer-events:none;background:var(--forest-2);color:var(--on-dark);border-radius:var(--r-10);padding:8px 11px;font-size:var(--fs-13);line-height:1.4;min-width:160px;box-shadow:0 10px 26px rgba(0,0,0,.18);display:flex;flex-direction:column}
.pop-tip b{font-weight:700}.pop-tip span{color:var(--on-dark-2)}
.pop-legend{display:flex;gap:18px;font-size:var(--fs-14);color:var(--n-700);margin:-4px 0 8px}
.pop-legend span{display:inline-flex;align-items:center;gap:8px}
.pop-legend i{width:18px;height:4px;border-radius:var(--r-4);display:inline-block}
.pop-bars{display:flex;flex-direction:column;gap:16px}
.pop-row{display:flex;flex-direction:column;gap:6px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.pop-row:last-child{border-bottom:0;padding-bottom:0}
.pop-row-label{font-weight:700;font-size:var(--fs-15);color:var(--n-800)}
.pop-row-sub{font-size:var(--fs-13);color:var(--n-600);margin-top:-4px}
.pop-bar{display:grid;grid-template-columns:120px 1fr 64px;gap:10px;align-items:center;font-size:var(--fs-14)}
.pop-bar-name{color:var(--n-700)}
.pop-bar b{text-align:right;font-variant-numeric:tabular-nums;color:var(--n-800)}
.pop-track{height:12px;background:var(--n-100);border-radius:0 4px 4px 0}
.pop-track i{display:block;height:100%;background:var(--green-600);border-radius:0 4px 4px 0}
.pop-bar.muted .pop-track i{background:var(--n-300)}
#volici .smallnote{margin-top:12px;font-size:var(--fs-13);color:var(--n-600);line-height:1.5}
@media(max-width:1000px){.pop-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pop-grid{grid-template-columns:1fr}}
@media(max-width:570px){.pop-kpi strong{font-size:var(--fs-36)}.pop-card{padding:20px}.pop-bar{grid-template-columns:96px 1fr 52px;gap:8px}.pop-card h3{font-size:var(--fs-24)}}

/* Srovnání stran – malé grafy a vítězové ročníků */
.compare-card{padding:28px;margin-bottom:18px}
.compare-types{margin-bottom:18px}
.compare-dot{width:10px!important;height:10px!important;border-radius:50%!important;background:var(--green-600)}
.compare-dot.hollow{background:var(--paper);border:2px solid var(--green-600);box-sizing:border-box}
.compare-legend{flex-wrap:wrap;margin:0 0 14px}
.compare-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.compare-mini{border:1px solid var(--line);border-radius:var(--r-16);padding:16px;background:var(--paper);display:flex;flex-direction:column;gap:3px;min-width:0}
.compare-mini h4{margin:0;font:700 15px/1.25 var(--sans);color:var(--forest)}
.compare-big{font:600 28px/1.15 var(--sans);color:var(--n-800);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.compare-big small{font-size:var(--fs-13);font-weight:500;color:var(--n-600);margin-left:6px;letter-spacing:0}
.compare-delta{font-size:var(--fs-13);font-weight:700;line-height:1.35}
.compare-delta.up{color:var(--green-700)}.compare-delta.down{color:var(--red-600)}.compare-delta.flat{color:var(--n-600);font-weight:500}
.compare-chart svg{display:block;width:100%;height:auto;margin-top:6px;overflow:visible}
.compare-table-wrap{margin-top:18px;border-top:1px solid var(--line);padding-top:10px}
.compare-table-wrap summary{cursor:pointer;font-weight:700;font-size:var(--fs-14);color:var(--forest);padding:6px 0}
.compare-table-wrap table{width:100%;border-collapse:collapse;font-size:var(--fs-14);margin-top:8px}
.compare-table-wrap caption{text-align:left;font-size:var(--fs-13);color:var(--n-600);padding-bottom:6px}
.compare-table-wrap th,.compare-table-wrap td{padding:7px 9px;border-bottom:1px solid var(--n-150);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.compare-table-wrap th:first-child,.compare-table-wrap tbody th{text-align:left}
.compare-winners-title{font-family:var(--serif);font-weight:400;font-size:var(--fs-28);color:var(--forest);margin:34px 0 4px}
.compare-winners-note{margin:0 0 14px;font-size:var(--fs-13);color:var(--n-600)}
.compare-winners{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.compare-win{border:1px solid var(--line);border-radius:var(--r-16);padding:15px;background:var(--paper)}
.compare-win-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.compare-win-head b{font:400 24px/1 var(--serif);color:var(--forest)}
.compare-win-head span{font-size:var(--fs-13);color:var(--n-600)}
.compare-win-row{display:grid;grid-template-columns:1fr auto;gap:3px 8px;font-size:var(--fs-14);margin-bottom:8px}
.compare-win-name{color:var(--n-700);line-height:1.3}
.compare-win-row.first .compare-win-name{color:var(--n-800);font-weight:700}
.compare-win-row b{font-variant-numeric:tabular-nums}
.compare-win-track{grid-column:1/-1;height:8px;background:var(--n-100);border-radius:0 4px 4px 0}
.compare-win-track i{display:block;height:100%;background:var(--n-300);border-radius:0 4px 4px 0}
.compare-win-row.first .compare-win-track i{background:var(--green-600)}
.compare-win small{font-size:var(--fs-13);color:var(--n-600)}
@media(max-width:1000px){.compare-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:570px){.compare-card{padding:16px}.compare-grid{gap:8px}.compare-mini{padding:12px}.compare-big{font-size:var(--fs-24)}.compare-big small{display:block;margin:2px 0 0}.compare-delta{font-size:var(--fs-12)}}
@media(max-width:570px){.compare-chart .pop-axis{font-size:var(--fs-13)}}
@media(max-width:340px){.compare-grid{grid-template-columns:1fr}}

/* Slovníček pojmů */
.term{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:help;text-decoration:underline dotted var(--green-600);text-decoration-thickness:1.5px;text-underline-offset:3px;border-radius:var(--r-4)}
.term:hover{text-decoration-style:solid}
.term:focus-visible{outline:2px solid var(--amber-500);outline-offset:2px}
.term-pop{position:fixed;inset:auto;margin:0;z-index:50;max-width:calc(100vw - 24px);background:var(--forest-2);color:var(--on-dark);border:0;border-radius:var(--r-12);padding:14px 16px;box-shadow:0 14px 34px rgba(0,0,0,.22);font:400 14px/1.5 var(--sans);text-align:left}
.term-pop b{display:block;font-size:var(--fs-15);margin-bottom:4px}
.term-pop p{margin:0 0 8px;color:var(--n-200)}
.term-pop .text-link{color:#9fd1b7;font-size:var(--fs-14)}
.glossary-list{display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:10px 20px;margin:14px 0 4px}
.glossary-list dt{font-weight:700;color:var(--forest)}
.glossary-list dd{margin:0;color:var(--n-700);line-height:1.55}
@media(max-width:570px){.glossary-list{grid-template-columns:1fr;gap:2px}.glossary-list dd{margin-bottom:10px}}

/* Fáze 3 – společné karty vizualizací */
.council-card,.turnout-all-card,.rounds-card,.cr-card{padding:28px;margin-bottom:18px}
.council-card h3,.turnout-all-card h3,.rounds-card h3,.cr-card h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-32);line-height:1.15;color:var(--forest);margin:10px 0 16px}
.council-card h3 em,.turnout-all-card h3 em,.rounds-card h3 em,.cr-card h3 em,.trend-detail-title em{color:#4e7a55;font-style:italic}
.trend-detail-title{font-family:var(--serif);font-weight:400;font-size:var(--fs-28);color:var(--forest);margin:34px 0 14px}
/* zastupitelstvo */
.council-filter{margin-bottom:12px}
.council-legend{flex-wrap:wrap}
.council-key{width:16px!important;height:14px!important;border-radius:4px!important}
.council-key.el{background:var(--forest)!important}
.council-key.ran{background:transparent!important;border:1.5px solid var(--n-300);box-sizing:border-box}
.council-key-note{color:var(--n-650);display:block;width:100%;font-size:var(--fs-12);line-height:1.45;margin-top:6px}
.council-scroll{margin-top:6px}
.council-table{border-collapse:separate;border-spacing:4px;font-size:var(--fs-14);min-width:720px}
.council-table thead th{text-align:center;vertical-align:bottom;font-weight:500;padding:0 0 6px;width:56px}
.council-table thead th:first-child{text-align:left;width:auto;position:sticky;left:0;background:var(--paper)!important;z-index:2;padding:0 12px 6px 0;box-shadow:2px 0 0 rgba(0,0,0,.03)}
.council-table thead b{display:block;font-size:var(--fs-15);color:var(--forest)}
.council-table thead small{display:block;font-size:var(--fs-12);line-height:1.25;color:var(--n-600)}
.council-table thead small.nocontest{color:var(--red-600);font-weight:700}
.council-table tbody th{text-align:left;padding:4px 12px 4px 0;white-space:nowrap;position:sticky;left:0;background:var(--paper)!important;z-index:1;font-weight:500;box-shadow:2px 0 0 rgba(0,0,0,.03)}
.council-table tbody th small{display:block;font-size:var(--fs-12);color:var(--n-600);font-weight:400}
.council-name{background:none;border:0;padding:4px 0;min-height:36px;display:inline-flex;align-items:center;font:600 14px var(--sans);color:var(--n-800);cursor:pointer;text-align:left}
.council-name:hover{text-decoration:underline}
.council-table td{width:52px;height:34px;text-align:center;border-radius:var(--r-8);font-variant-numeric:tabular-nums;font-size:var(--fs-13)}
.council-table td.el{background:var(--forest);color:var(--on-dark);font-weight:700}
.council-table td.ran{border:1.5px solid var(--n-300);color:var(--n-700)}
.council-table td.no{color:#b9c3b8}
.council-table tr:hover td.no{background:var(--n-100)}
/* účast u všech voleb */
.turnout-all-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px}
.turnout-avg{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.turnout-avg-row{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:10px 12px;border-radius:var(--r-10);border:1px solid transparent;background:none;text-align:left;font:inherit;font-size:var(--fs-14);color:var(--n-800);cursor:pointer}
.turnout-avg-row:hover{background:var(--n-100)}
.turnout-avg-row[aria-pressed="true"]{border-color:var(--n-300);background:var(--n-100)}
.turnout-avg-row b{font-variant-numeric:tabular-nums}
.turnout-avg-bar{grid-column:1/-1;height:8px;border-radius:0 4px 4px 0;background:var(--n-100)}
.turnout-avg-bar i{display:block;height:100%;background:var(--n-300);border-radius:0 4px 4px 0}
.turnout-avg-row[aria-pressed="true"] .turnout-avg-bar i{background:var(--green-600)}
/* kola */
.rounds-group{font:700 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--n-600);margin:18px 0 6px}
.rounds-row{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:8px 0;border-bottom:1px solid var(--n-150)}
.rounds-label b{display:block;font-size:var(--fs-15);color:var(--n-800)}
.rounds-label small{display:block;font-size:var(--fs-12);color:var(--n-600);line-height:1.4}
.rounds-svg svg,.cr-svg svg{display:block;width:100%;height:auto;overflow:visible}
/* Ždánice vs Česko */
.cr-card .result-tabs{margin-bottom:16px;flex-wrap:wrap}
.cr-chart{display:flex;flex-direction:column;gap:4px}
.cr-row{display:grid;grid-template-columns:minmax(120px,220px) 1fr 64px 90px;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--n-150);font-size:var(--fs-14)}
.cr-name{font-weight:600;color:var(--n-800);line-height:1.3}
.cr-val{text-align:right;font-variant-numeric:tabular-nums}
.cr-diff{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--n-600)}
.cr-diff.up{color:var(--green-700)}.cr-diff.down{color:var(--red-600)}
@media(max-width:900px){.turnout-all-grid{grid-template-columns:1fr}.rounds-row{grid-template-columns:1fr;gap:4px}}
@media(max-width:570px){.council-card,.turnout-all-card,.rounds-card,.cr-card{padding:18px}.council-card h3,.turnout-all-card h3,.rounds-card h3,.cr-card h3{font-size:var(--fs-24)}.cr-row{grid-template-columns:1fr 56px 72px;gap:4px 10px}.cr-name{grid-column:1/-1}.cr-svg{grid-column:1}}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.council-table th,.council-table td{border-bottom:0;padding:0;white-space:nowrap;background:none}
.council-table thead th{background:none;border:0}
.council-table thead th:first-child{position:sticky;left:0;background:var(--paper)!important;z-index:2;padding:0 12px 6px 0;box-shadow:2px 0 0 rgba(0,0,0,.03)}
.council-table tbody th{padding:4px 12px 4px 0;background:var(--paper)!important;position:sticky;left:0;z-index:1;box-shadow:2px 0 0 rgba(0,0,0,.03)}
.council-table td.el{background:var(--forest)}
.table-scroll.council-scroll{border:0;border-radius:0;margin-top:6px}

@media(max-width:570px){.pop-chart .pop-axis,#turnout-all-chart .pop-axis{font-size:var(--fs-24)}.pop-chart .pop-end{font-size:var(--fs-24)}}

/* Postupné načtení: úvod a souhrn posledních voleb jsou vidět hned,zbytek po načtení dat. */
main.is-loading .page-section,main.is-loading .stories,main.is-loading .round-comparison,main.is-loading .source-section{display:none}
#load-status{margin:24px 0}

.council-table td.no::after{content:"·";color:var(--n-300)}

/* Dříve inline styly v index.html */
.section-header h2 em.accent{color:var(--sage-accent)}
#open-person-from-banner{border:0;background:transparent;margin-top:23px;padding:0}
.pop-legend i.key-amber{background:var(--amber-500)}.pop-legend i.key-green{background:var(--green-600)}
.footer-top{text-decoration:underline}

.author-note{margin-top:14px;font-size:var(--fs-14);color:var(--n-700);border-left:3px solid var(--sage-accent);padding-left:12px}

/* Ždánice vs. senátní obvod */
.district-card{padding:28px;margin-bottom:18px}
.district-card h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-28);line-height:1.15;color:var(--forest);margin:10px 0 16px}
.district-card h3 em{color:#4e7a55;font-style:italic}
.district-list{display:flex;flex-direction:column}
.district-row{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--n-150);font-size:var(--fs-15);line-height:1.45}
.district-row>b{font-family:var(--serif);font-weight:400;font-size:var(--fs-24);color:var(--forest)}
.district-text{color:var(--n-700)}.district-text strong{color:var(--n-800)}
.district-badge{font-size:var(--fs-13);font-weight:700;padding:5px 10px;border-radius:var(--r-pill);white-space:nowrap}
.district-badge.same{background:var(--green-100);color:var(--green-700)}.district-badge.diff{background:var(--red-100);color:var(--red-600)}.district-badge.pending{background:var(--n-100);color:var(--n-600)}
@media(max-width:570px){.district-card{padding:18px}.district-row{grid-template-columns:52px 1fr;gap:4px 10px}.district-badge{grid-column:2;justify-self:start}}

/* Jak se dělí mandáty */
.seats-card{padding:28px;margin-bottom:18px}
.seats-card h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-28);line-height:1.15;color:var(--forest);margin:10px 0 16px}
.seats-card h3 em{color:#4e7a55;font-style:italic}
.seats-years{margin-bottom:14px;flex-wrap:wrap}
.seats-steps{margin:0 0 16px;padding-left:22px;display:grid;gap:4px;color:var(--n-700);font-size:var(--fs-15);line-height:1.5;max-width:75ch}
.table-scroll.seats-scroll{border:1px solid var(--n-250);border-radius:var(--r-12)}
.seats-table{border-collapse:collapse;width:100%;font-size:var(--fs-14)}
.seats-table th,.seats-table td{padding:9px 10px;border-bottom:1px solid var(--n-150);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.seats-table thead th{background:var(--n-50);color:var(--n-700);font-weight:600}
.seats-table thead th:first-child{text-align:left;white-space:normal;min-width:160px;position:sticky;left:0;background:var(--n-50);z-index:2;box-shadow:1px 0 0 var(--n-250)}
.seats-table tbody th{text-align:left;white-space:normal;min-width:160px;position:sticky;left:0;background:var(--paper);z-index:1;box-shadow:1px 0 0 var(--n-250);font-weight:600;color:var(--n-800)}
.seats-table td.q{color:var(--n-600)}
.seats-table td.won{background:var(--green-100);color:var(--green-700);font-weight:700}
.seats-table td.won small{display:block;font-size:var(--fs-12);font-weight:600;color:var(--green-700)}
.seats-table td.capped{color:var(--n-400);text-decoration:line-through}
.seats-table td.seats-n{font-weight:700;color:var(--forest);font-size:var(--fs-16)}
.seats-table tr.excluded th,.seats-table tr.excluded td{color:var(--n-600);font-style:italic}
.seats-table tr.excluded tbody th{background:var(--paper);color:var(--n-600)}
@media(max-width:570px){.seats-card{padding:18px}.seats-card h3{font-size:var(--fs-24)}}

/* Lepší čitelnost a fixní sloupce při vodorovném rolování na mobilu */
#trend-table-caption + thead th:first-child{position:sticky;left:0;background:var(--n-100);z-index:2;box-shadow:1px 0 0 var(--n-200)}
#trend-table th[scope=row]{position:sticky;left:0;background:var(--paper);z-index:1;box-shadow:1px 0 0 var(--n-200)}
.movers-table thead th:first-child{position:sticky;left:0;background:var(--n-100);z-index:2;box-shadow:1px 0 0 var(--n-200)}
.movers-table tbody th{position:sticky;left:0;background:var(--paper);z-index:1;box-shadow:1px 0 0 var(--n-200)}

/* Rozšíření: ovládání a zvýraznění roku v matici zastupitelstva */
.council-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;background:var(--paper);padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-12)}
.council-filter-bar .result-tabs{margin-bottom:0}
.council-filter-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.council-search-wrap{position:relative;display:flex;align-items:center}
.council-search{border:1px solid var(--line);background:var(--paper);border-radius:var(--r-10);padding:7px 12px;font:inherit;font-size:var(--fs-13);color:var(--forest);min-height:38px;width:160px;transition:border-color .15s,width .15s}
.council-search:focus{outline:none;border-color:var(--forest);width:190px}
.council-year-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.council-year-inline{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-13);font-weight:700;color:var(--forest);margin:0}
.council-year-inline select{border:1px solid var(--line);background:var(--paper);border-radius:var(--r-10);padding:7px 12px;font:inherit;font-size:var(--fs-13);color:var(--forest);min-height:38px;cursor:pointer}
.council-year-reset{background:var(--mint);border:1px solid var(--green-600);padding:6px 12px;font-size:var(--fs-12);font-weight:700;color:var(--forest);cursor:pointer;border-radius:var(--r-pill);transition:all .15s;display:inline-flex;align-items:center;gap:4px;min-height:38px}
.council-year-reset:hover{background:var(--lime);color:var(--forest-2)}
@media(max-width:680px){
  .council-filter-bar{flex-direction:column;align-items:stretch;gap:10px;padding:12px}
  .council-filter-bar .result-tabs{width:100%;display:flex}
  .council-filter-bar .result-tabs button{flex:1;padding:9px 4px;font-size:var(--fs-12);justify-content:center;text-align:center;min-height:40px}
  .council-filter-controls{width:100%;display:flex;flex-direction:column;gap:8px}
  .council-search-wrap,.council-search{width:100%!important;max-width:100%;min-height:42px}
  .council-year-wrap{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px}
  .council-year-inline{flex:1;display:flex;justify-content:space-between;align-items:center}
  .council-year-inline select{flex:1;min-height:42px}
  .council-year-reset{min-height:42px;padding:8px 14px;flex:none}
}
.council-th-year{cursor:pointer;transition:background .15s,color .15s;border-radius:var(--r-8) var(--r-8) 0 0;user-select:none}
.council-th-year:hover{background:var(--n-150)}
.council-th-year:focus-visible{outline:2px solid var(--amber-600);outline-offset:1px}
.council-table th.highlight-col{background:var(--mint)!important;border-radius:var(--r-8) var(--r-8) 0 0;box-shadow:inset 0 -2px 0 var(--forest)}
.council-table th.highlight-col b{color:var(--forest);font-weight:800}
.council-table td.highlight-col{background:rgba(15,125,90,.08)!important}
.council-table td.highlight-col.el{background:var(--forest)!important;box-shadow:0 0 0 2px var(--mint)}

/* Rozšíření: detail kandidáta – označení mandátu v historii */
.profile-year{display:grid;grid-template-columns:56px minmax(0,1fr);gap:0 14px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line);font-size:var(--fs-13)}
.profile-year>strong{grid-row:1 / 99;font-family:var(--serif);font-size:var(--fs-20);font-weight:400;color:var(--forest);line-height:1.2}
.profile-year>span{grid-column:2}
.profile-year>*:not(strong)+*:not(strong){margin-top:6px}
.profile-year-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.profile-year-actions .text-link,.profile-year-actions .profile-year-pick{min-height:36px;display:inline-flex;align-items:center}
.profile-year-pill{font-size:var(--fs-12);font-weight:700;padding:2px 7px;border-radius:var(--r-pill);margin-left:8px;display:inline-block;vertical-align:middle}
.profile-year-pill.el{background:var(--green-100);color:var(--green-700)}
.profile-year-pill.not{background:var(--red-100);color:var(--red-600)}
.profile-year-pick{background:none;border:0;padding:0;font:inherit;cursor:pointer;font-weight:800;color:var(--forest)}
.profile-year-pick:hover{text-decoration:underline}
.profile-year.is-selected{background:var(--mint);padding:8px 12px;border-radius:var(--r-10);border-left:3px solid var(--forest)}

/* Rozšíření: vizuální prvky v tabulce Ročníky vedle sebe */
.trend-cell-flex{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.trend-pill{font-size:var(--fs-12);font-weight:700;padding:2px 7px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:3px;white-space:nowrap;line-height:1.3}
.trend-pill.up{background:var(--green-100);color:var(--green-700)}
.trend-pill.down{background:var(--red-100);color:var(--red-600)}
.trend-pill.flat{background:var(--sand);color:var(--amber-600)}
.trend-pill.first{background:var(--n-100);color:var(--n-600);font-weight:500}
.trend-mini-track{width:54px;height:6px;background:var(--n-150);border-radius:var(--r-pill);overflow:hidden;margin-left:auto}
.trend-mini-track span{display:block;height:100%;background:var(--green-600);border-radius:var(--r-pill)}
.trend-sub{font-size:var(--fs-12);font-weight:700;margin-left:4px}
.trend-sub.up{color:var(--green-700)}
.trend-sub.down{color:var(--red-600)}

/* Rozšíření: podpora v obci v detailu kandidáta */
.person-support{margin:18px 0;padding:18px 20px;background:var(--paper);border:1px solid var(--n-250);border-radius:var(--r-12)}
.person-support .archive-overline{font-size:var(--fs-12);font-weight:800;letter-spacing:.06em;color:var(--sage-accent);text-transform:uppercase}
.person-support .archive-winner-score{margin-top:8px}
.person-support .archive-winner-score strong{font-size:var(--fs-56);line-height:1;font-family:var(--serif);color:var(--forest)}
@media(max-width:570px){.person-support .archive-winner-score strong{font-size:var(--fs-44)}}
.person-support .archive-picto{display:flex;gap:5px;margin:12px 0}
.person-support .archive-picto svg{width:18px;height:24px;fill:var(--n-250)}
.person-support .archive-picto svg.on{fill:var(--green-600)}
.person-support .archive-winner-caption{font-size:var(--fs-13);color:var(--n-700);line-height:1.5}

/* Rozšíření: interaktivní tooltip v grafech stran */
.compare-chart{position:relative}
.compare-chart-tip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--forest-2);color:var(--on-dark);padding:6px 10px;border-radius:var(--r-8);font-size:var(--fs-12);font-weight:600;white-space:nowrap;pointer-events:none;z-index:20;box-shadow:0 6px 18px rgba(0,0,0,.22);display:none;line-height:1.3}
.compare-chart-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--forest-2)}
.compare-chart svg circle{cursor:pointer;transition:r .15s ease,stroke-width .15s ease}
.compare-chart svg circle:hover,.compare-chart svg circle.active{r:7px;stroke-width:3px}

/* Rozšíření: zobrazení dalších kandidátek ve vítězích ročníků */
.compare-more-btn{border:0;background:var(--n-100);color:var(--forest);font-size:var(--fs-12);font-weight:750;padding:6px 12px;border-radius:var(--r-pill);cursor:pointer;margin-top:10px;display:inline-block;transition:all .15s ease}
.compare-more-btn:hover{background:var(--mint);color:var(--forest)}
.winners-modal{max-width:680px!important}
.winners-modal .modal-sub{color:var(--n-650);margin:4px 0 16px;font-size:var(--fs-13)}
.winners-list{display:flex;flex-direction:column;gap:8px;margin:16px 0;max-height:60vh;overflow-y:auto;padding-right:4px}
.winners-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-10);background:var(--paper)}
.winners-row.first{background:var(--mint);border-color:var(--green-600)}
.winners-rank{font-weight:700;color:var(--n-600);font-size:var(--fs-13)}
.winners-name-wrap{min-width:0}
.winners-name{font-weight:750;color:var(--forest);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-align:left;display:block;overflow-wrap:anywhere}
.winners-name:hover{text-decoration:underline}
.winners-track{height:5px;background:var(--n-150);border-radius:var(--r-pill);overflow:hidden;margin-top:5px}
.winners-track span{display:block;height:100%;background:var(--green-600);border-radius:var(--r-pill)}
.winners-score{text-align:right;font-variant-numeric:tabular-nums}
.winners-score strong{font-size:var(--fs-15);color:var(--n-800)}
.winners-score small{display:block;font-size:var(--fs-12);color:var(--n-600)}

/* Stylové záhlaví pro tabulky (nahrazení nevzhledného neostylovaného caption) */
caption:not(.sr-only){text-align:left;color:var(--forest);font-size:var(--fs-13);font-weight:750;letter-spacing:.02em;padding:10px 14px;background:var(--mint);border-left:3px solid var(--forest);border-radius:var(--r-8);margin-bottom:12px;line-height:1.45;caption-side:top}

/* Profil kandidáta a strany: 3 boxy statistik v jedné řadě */
.modal-feature{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin:18px 0!important}
.modal-feature div{padding:12px 14px!important;background:var(--n-100);border-radius:var(--r-12);min-width:0}
.modal-feature strong{font-size:var(--fs-28)!important;line-height:1.15!important;display:block;color:var(--forest)}
.modal-feature small{font-size:var(--fs-12);color:var(--n-650);margin-top:4px;line-height:1.35;display:block}
@media(max-width:540px){.modal-feature{grid-template-columns:1fr!important}}

/* Srovnání stran (Sekce 04): interaktivní prokliky na profily stran */
.compare-party-btn{background:none;border:0;padding:0;font:inherit;font-size:var(--fs-16);font-weight:800;color:var(--forest);cursor:pointer;text-align:left;display:inline-flex;align-items:center;gap:4px;transition:color .15s}
.compare-party-btn:hover{color:var(--green-600);text-decoration:underline}
.compare-table-party-btn{background:none;border:0;padding:0;font:inherit;font-weight:750;color:var(--forest);cursor:pointer;text-align:left;transition:color .15s}
.compare-table-party-btn:hover{text-decoration:underline;color:var(--green-700)}
.compare-win-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--forest);cursor:pointer;text-align:left;overflow-wrap:anywhere;transition:color .15s}
.compare-win-btn:hover{text-decoration:underline;color:var(--green-700)}

/* Plovoucí interaktivní tooltipy pro grafy */
.chart-floating-tip{position:absolute;transform:translate(-50%,-130%);background:var(--forest-2);color:var(--on-dark);padding:6px 10px;border-radius:var(--r-8);font-size:var(--fs-12);font-weight:600;white-space:nowrap;pointer-events:none;z-index:25;box-shadow:0 6px 18px rgba(0,0,0,.22);display:none;line-height:1.3}
.chart-floating-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--forest-2)}
.graph-wrap{position:relative;overflow:visible!important}
.graph-axis{fill:var(--n-600)!important}

/* Responzivní mobilní audit a ladění */
@media(max-width:570px){
  .hero h1{font-size:clamp(40px,11vw,64px)!important}
  .pop-answer{padding:13px 14px 13px 32px;font-size:var(--fs-14);margin-bottom:14px}
  .pop-answer::before{left:14px;top:21px}
  dialog.modal{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:20px 16px;border-radius:var(--r-16)}
  .modal-head h2{font-size:var(--fs-28)!important}
  .modal-foot .text-link{min-height:42px;display:inline-flex;align-items:center}
  .pop-kpis{gap:8px}
  .pop-kpi{padding:14px 12px;border-radius:var(--r-12)}
  .pop-kpi strong{font-size:var(--fs-36)}
  .pop-kpi span{font-size:var(--fs-14)}
  .pop-kpi small{font-size:var(--fs-12)}
}
@media(max-width:350px){
  .pop-kpis{grid-template-columns:1fr}
}
@media(max-width:420px){
  .voter-counts{grid-template-columns:1fr}
}

/* Tiskové styly */
@media print{
  header,nav,.hero-actions,.filter-bar,.card-actions,.modal-foot,button:not(.council-name):not(.archive-winner-name),dialog,.search,.sort{display:none!important}
  body{background:white!important;color:black!important}
  .white-card{border:1px solid #ccc!important;box-shadow:none!important;break-inside:avoid}
  .shell{max-width:100%!important;padding:0!important}
}

/* Legenda grafu profilu (dříve inline styly) */
.profile-legend-item{display:inline-flex;align-items:center;gap:6px;margin-right:14px}
.profile-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:2.5px solid var(--green-600);box-sizing:border-box}
.profile-legend-dot.el{background:var(--green-600)}.profile-legend-dot.not{background:var(--paper);border-color:var(--n-600)}
.trend-sub{color:var(--n-600)}

/* Mapa obcí ORP */
.map-card{padding:28px}
.map-metrics{margin-bottom:14px;flex-wrap:wrap}
@media(max-width:700px){.map-metrics{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.map-metrics button{white-space:nowrap;flex:none}}
.map-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:24px;align-items:start}
.map-wrap{position:relative}
.map-svg{position:relative}
.map-svg svg{display:block;width:100%;height:auto;max-height:720px}
.map-obec{stroke:var(--paper);stroke-width:1.2;cursor:pointer;transition:opacity .15s}
.map-obec:hover,.map-obec:focus-visible{opacity:.82;outline:none}
.map-outline{stroke:var(--forest);stroke-width:3;pointer-events:none}
.map-outline.sel{stroke:var(--amber-500);stroke-width:3.5}
.map-label{font:600 var(--fs-13) var(--sans);fill:var(--n-800);paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.map-label.focus{font-weight:800;fill:var(--forest)}
.map-tip{position:absolute;transform:translateX(-50%);background:var(--forest-2);color:var(--on-dark);padding:6px 10px;border-radius:var(--r-8);font-size:var(--fs-13);font-weight:600;white-space:nowrap;pointer-events:none;z-index:5;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.map-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:var(--fs-13);color:var(--n-700)}
.map-legend-item{display:inline-flex;align-items:center;gap:6px}
.map-legend-item i{width:18px;height:12px;border-radius:var(--r-4);display:inline-block}
.map-side{min-width:0}
.map-detail{background:var(--n-50);border:1px solid var(--n-250);border-radius:var(--r-12);padding:16px 18px;margin-bottom:16px}
.map-detail h4{font:400 var(--fs-28)/1.1 var(--serif);color:var(--forest);margin:4px 0 10px}
.map-facts{display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin:0;font-size:var(--fs-14)}
.map-facts dt{color:var(--n-700)}.map-facts dd{margin:0;text-align:right;font-weight:600;color:var(--n-800);font-variant-numeric:tabular-nums}
.map-rank-title{margin:0 0 8px}
.map-rank{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto;border:1px solid var(--n-250);border-radius:var(--r-12)}
.map-rank-row+.map-rank-row{border-top:1px solid var(--n-150)}
.map-rank-btn{display:grid;grid-template-columns:32px 1fr auto;gap:2px 8px;width:100%;padding:8px 12px;background:none;border:0;font:inherit;font-size:var(--fs-14);text-align:left;cursor:pointer;color:var(--n-800)}
.map-rank-btn:hover{background:var(--n-50)}
.map-rank-n{color:var(--n-600);font-variant-numeric:tabular-nums}
.map-rank-btn b{font-variant-numeric:tabular-nums}
.map-rank-bar{grid-column:2/-1;height:5px;background:var(--n-100);border-radius:var(--r-pill);overflow:hidden}
.map-rank-bar i{display:block;height:100%;background:var(--n-300)}
.map-rank-row.focus .map-rank-btn{background:var(--mint);font-weight:700}
.map-rank-row.focus .map-rank-bar i{background:var(--green-600)}
.map-rank-row.sel:not(.focus) .map-rank-btn{box-shadow:inset 3px 0 0 var(--amber-500)}
@media(max-width:900px){.map-grid{grid-template-columns:1fr}.map-rank{max-height:320px}}
@media(max-width:570px){.map-card{padding:16px}.map-label{font-size:var(--fs-20);stroke-width:4px}}

/* Zajímavosti */
.facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fact-card{background:var(--paper);border:1px solid var(--n-250);border-radius:var(--r-16);padding:20px 22px;display:flex;flex-direction:column;gap:6px;min-width:0}
.fact-card .eyebrow{margin:0}
.fact-value{font:400 var(--fs-40)/1.05 var(--serif);color:var(--forest);margin:4px 0 2px;letter-spacing:-.01em}
.fact-text{margin:0;color:var(--n-700);font-size:var(--fs-15);line-height:1.5;flex:1}
.fact-link{margin-top:6px;align-self:flex-start}
.facts-more{margin-top:16px}
@media(max-width:1000px){.facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.facts-grid{grid-template-columns:1fr}.fact-value{font-size:var(--fs-32)}}
