:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--grid: #e1e0d9;--border: rgba(11, 11, 11, .1);--brand: #1c5cab;--good: #0ca30c;--critical: #d03b3b;--warning: #fab219;--good-text: #006300;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--r-mark: 4px;--r-card: 8px;--serie-1: #2a78d6;--serie-2: #008300;--serie-3: #e87ba4;--serie-4: #eda100;--serie-5: #1baf7a;--serie-6: #eb6834;--serie-7: #4a3aa7;--serie-8: #e34948}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--ink: #ffffff;--ink-2: #c3c2b7;--grid: #2c2c2a;--border: rgba(255, 255, 255, .1);--brand: #3987e5;--good-text: #0ca30c;--serie-1: #3987e5;--serie-3: #d55181;--serie-4: #c98500;--serie-5: #199e70;--serie-6: #d95926;--serie-7: #9085e9;--serie-8: #e66767}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--ink: #ffffff;--ink-2: #c3c2b7;--grid: #2c2c2a;--border: rgba(255, 255, 255, .1);--brand: #3987e5;--good-text: #0ca30c;--serie-1: #3987e5;--serie-3: #d55181;--serie-4: #c98500;--serie-5: #199e70;--serie-6: #d95926;--serie-7: #9085e9;--serie-8: #e66767}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.55}.site-header{border-bottom:1px solid var(--grid);background:var(--surface)}.site-nav{max-width:44rem;margin:0 auto;padding:var(--s3) var(--s4);display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}.site-logo{font-weight:800;font-size:18px;text-decoration:none;color:var(--ink);white-space:nowrap}.site-logo span{color:var(--brand)}.site-tabs{list-style:none;display:flex;gap:var(--s1);margin:0;padding:0;overflow-x:auto;max-width:100%}.site-tabs a{display:block;padding:var(--s2) var(--s3);min-height:40px;font-weight:600;font-size:15px;text-decoration:none;color:var(--ink-2);border-radius:var(--r-card);white-space:nowrap}.site-tabs a:hover{background:var(--grid);color:var(--ink)}.site-tabs a[aria-current=page]{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand);border-radius:var(--r-card) var(--r-card) 0 0}main{max-width:44rem;margin:0 auto;padding:var(--s5) var(--s4) var(--s6)}h1,h2,h3{color:var(--brand);line-height:1.2;margin:0 0 var(--s3)}h1{font-size:32px;font-weight:800}h2{font-size:25px}a{color:var(--brand)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s5);margin:var(--s4) 0}.stat-value{font-size:48px;font-weight:800;margin:0}.stat-label{color:var(--ink-2);margin:var(--s1) 0 0}.stat-source{color:var(--muted);font-size:14px;margin-top:var(--s2)}table.race{border-collapse:collapse;width:100%}.race th{text-align:left;color:var(--ink-2);font-weight:600;font-size:14px;border-bottom:1px solid var(--grid);padding:var(--s2) var(--s2)}.race td{padding:var(--s2);border-bottom:1px solid var(--grid)}.race td.n{text-align:right;font-variant-numeric:tabular-nums}.race tr:hover td{background:var(--grid)}.dot{display:inline-block;width:12px;height:12px;border-radius:var(--r-mark);margin-right:var(--s2);vertical-align:baseline}.badge-ok{color:var(--good-text);font-weight:600;font-size:14px;white-space:nowrap}.race a{color:var(--ink);text-decoration:none}.race a:hover{text-decoration:underline}footer{color:var(--muted);font-size:14px;margin-top:var(--s6);border-top:1px solid var(--grid);padding-top:var(--s4)}.chart-wrap{margin-top:var(--s2)}.timeline-svg{width:100%;height:auto;display:block;overflow:visible}.chart-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:var(--s1);max-width:78%}.legend{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s3)}.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-2)}details summary{color:var(--brand);cursor:pointer;font-weight:600;font-size:13px;margin-top:var(--s2)}details table.race{margin-top:var(--s2)}.back-link{display:inline-block;margin-bottom:var(--s3);font-size:15px;font-weight:600;text-decoration:none}.candidat-title{display:flex;align-items:center;gap:10px}.candidat-title .dot{width:14px;height:14px;margin-right:0}.delta-up{color:var(--good-text);font-weight:600;font-size:14px;margin-top:var(--s1)}.profil-row{display:flex;align-items:center;gap:var(--s3);margin:var(--s2) 0}.profil-label{width:168px;flex:none;font-size:13px;color:var(--ink-2)}.profil-bar-track{flex:1;height:8px;border-radius:2px;background:var(--grid);overflow:hidden;display:block}.profil-bar-fill{display:block;height:8px;border-radius:2px}.profil-pct{width:44px;flex:none;text-align:right;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.dep-code{color:var(--muted);font-weight:600;font-size:20px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin:var(--s4) 0}.stat-grid .card{margin:0}.stat-mini .stat-value{font-size:32px}.stat-mini .stat-label{font-size:13px}.filtre{width:100%;height:44px;border:1px solid var(--border);border-radius:var(--r-card);padding:0 14px;font-size:16px;background:var(--page);color:var(--ink);font-family:inherit;margin-bottom:var(--s3)}.insee{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;margin-left:var(--s2)}.muted-cell{color:var(--muted)}.maire-nom{font-size:25px;font-weight:800;margin:0 0 var(--s1)}.parr-oui,.parr-non{font-size:18px;line-height:1.5}.parr-oui a,.parr-non{color:var(--ink)}.parr-oui a{text-decoration:none;font-weight:600}.parr-oui a:hover{text-decoration:underline}@media(max-width:22rem){.stat-grid{grid-template-columns:1fr}}.carte-fig{margin:0}.carte-svg{width:100%;height:auto;display:block;max-width:32rem;margin:0 auto var(--s3)}.carte-dep path{transition:fill-opacity .12s;cursor:pointer}.carte-dep:hover path,.carte-dep:focus path{fill-opacity:.72}.carte-dep:focus-visible path{outline:none;stroke:var(--ink);stroke-width:2}.legende{display:flex;flex-direction:column;gap:var(--s2);align-items:center}.legende-titre{font-size:13px;color:var(--ink-2);font-weight:600}.legende-echelle{display:flex;align-items:center;gap:3px}.legende-bout{font-size:12px;color:var(--muted);margin:0 var(--s1)}.legende-case{width:28px;height:12px;border-radius:2px;display:inline-block}.btn-export{margin-top:var(--s3);height:44px;padding:0 16px;background:var(--surface);color:var(--brand);border:1px solid var(--border);border-radius:var(--r-card);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer}.btn-export:hover{background:var(--grid)}.cta-lien{font-weight:700;text-decoration:none}.cta-lien:hover{text-decoration:underline}.prose p{margin:0 0 var(--s3)}.prose p:last-child{margin-bottom:0}.prose ul{margin:0 0 var(--s3);padding-left:var(--s5)}.prose li{margin-bottom:var(--s2)}.prose h2{font-size:20px;margin-top:0}.kicker{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--muted);margin:0 0 var(--s2)}.chapo{font-size:18px;line-height:1.5;color:var(--ink-2)}.bars{margin:var(--s4) 0 var(--s2)}.bar-row{display:flex;align-items:center;gap:var(--s3);margin:var(--s2) 0}.bar-label{width:168px;flex:none;font-size:13px;color:var(--ink-2)}.bar-track{flex:1;height:10px;border-radius:2px;background:var(--grid);overflow:hidden}.bar-fill{display:block;height:10px;border-radius:2px;background:var(--brand)}.bar-val{width:52px;flex:none;text-align:right;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.stack{display:flex;height:28px;border-radius:var(--r-mark);overflow:hidden;margin:var(--s4) 0 var(--s3)}.stack-seg{display:block;height:100%}.stack-legend{display:flex;flex-direction:column;gap:var(--s2);margin-bottom:var(--s3)}.nl-titre{font-weight:700;font-size:18px;margin:0 0 var(--s1)}.nl-form{display:flex;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap}.nl-input{flex:1;min-width:12rem;margin:0}.nl-btn{height:44px;padding:0 18px;background:var(--brand);color:#fff;border:none;border-radius:var(--r-card);font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;flex:none}.nl-btn:disabled{background:var(--muted);cursor:default}.nl-msg{font-size:14px;margin-top:var(--s2)}body.widget{background:var(--surface)}.widget-frame{max-width:100%;padding:var(--s4)}.widget-frame h2{font-size:18px;margin:0 0 var(--s3)}.widget-src{display:block;margin-top:var(--s3);padding-top:var(--s2);border-top:1px solid var(--grid);font-size:12px;color:var(--muted);text-decoration:none}.widget-src strong{color:var(--brand)}.embed-code{background:var(--page);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);font-family:ui-monospace,Menlo,monospace;font-size:12px;overflow-x:auto;white-space:pre;margin:var(--s2) 0;color:var(--ink-2)}.embed-copy{height:36px;padding:0 14px;background:var(--surface);color:var(--brand);border:1px solid var(--border);border-radius:var(--r-mark);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}.widget-preview{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;margin:var(--s3) 0;background:var(--surface)}.widget-preview iframe{width:100%;border:0;display:block}tr.picked td{background:color-mix(in srgb,var(--brand) 10%,transparent)}.pick,.cap{min-height:36px}.cap.badge-ok{border-color:var(--good-text);color:var(--good-text)}.equipe-panel{position:sticky;top:0;z-index:5}.equipe-slots{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s3) 0}.slot{flex:1;min-width:7rem;border:1px dashed var(--border);border-radius:var(--r-card);padding:var(--s2) var(--s3);font-size:13px;color:var(--muted);min-height:44px;display:flex;align-items:center}.slot.filled{border-style:solid;color:var(--ink);background:color-mix(in srgb,var(--brand) 8%,transparent);font-weight:600}.check-list{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s1)}.check-list li{font-size:14px;color:var(--ink-2)}.check-list li.ok{color:var(--good-text)}.check-list li.ko{color:var(--critical);font-weight:600}.cap-chips{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s2)}.cap-chip{min-height:40px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer}.cap-chip[aria-pressed=true]{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent)}.badge-saison{display:inline-block;font-size:12px;font-weight:700;color:var(--ink-2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;vertical-align:middle;background:var(--page)}.statut-declare{color:var(--good-text);font-weight:600;font-size:14px;white-space:nowrap}.statut-pressenti{color:var(--ink-2);font-weight:600;font-size:14px;white-space:nowrap}.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin:var(--s4) 0}.hub-grid .card{margin:0;display:flex;flex-direction:column}.hub-grid .card p:last-child{margin-top:auto}@media(max-width:30rem){.hub-grid{grid-template-columns:1fr}}.scrutin-card{text-decoration:none;color:inherit;transition:border-color .12s,background .12s}.scrutin-card:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.scrutin-card h3{color:var(--brand)}.scrutin-card .kicker{color:var(--muted)}.ancres{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s3) 0;padding:0;list-style:none}.ancres a{display:inline-block;padding:var(--s1) var(--s3);min-height:36px;font-size:14px;font-weight:600;text-decoration:none;color:var(--brand);border:1px solid var(--border);border-radius:999px}.ancres a:hover{background:var(--grid)}.recherche{position:relative;margin:var(--s4) 0}.recherche-label{display:block;font-weight:700;margin-bottom:var(--s2)}.recherche .filtre{margin-bottom:var(--s1)}.recherche-results{list-style:none;margin:0;padding:0;position:absolute;left:0;right:0;top:74px;z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;box-shadow:0 4px 16px #00000014}.recherche-results li a{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:12px 14px;min-height:44px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--grid)}.recherche-results li:last-child a{border-bottom:none}.recherche-results li a:hover,.recherche-results li.active a{background:var(--grid)}
