/* NapVote : sobre et institutionnel.
   Fond blanc, bleu marine, gris froids. Titres en Source Serif 4, texte en Source Sans 3.
   Listes à filets fins, tableaux, panneaux gris clair. Une couleur d'action, une couleur d'alerte. */
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/5b5a5c24.woff2) format('woff');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/3574b825.woff2) format('woff');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/81d71ea7.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/cb23fde8.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/81d71ea7.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/cb23fde8.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/81d71ea7.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/cb23fde8.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/b5e287bd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/8012ef4d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/b5e287bd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/8012ef4d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --bg:#FFFFFF;
  --surface:#F2F5F9;       /* panneaux */
  --surface-2:#E6EBF2;
  --line:#D3DAE4;          /* filets */
  --line-2:#E7ECF2;
  --ink:#14243B;           /* texte */
  --ink-2:#43536B;
  --ink-3:#5C6B82;
  --brand:#0F3D8A;         /* actions, liens */
  --brand-2:#0A2D69;
  --on-brand:#FFFFFF;
  --band:#0B2447;          /* bandeau et pied de page */
  --on-band:#FFFFFF;
  --alert:#B3261E;
  --warn-bg:#FFF4D4;
  --warn-ink:#5E4300;
  --ok:#1B6B3E;
  --focus:#F5B400;
  --wrap:1120px;
  --r:4px;
  --navh:60px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1624; --surface:#152135; --surface-2:#1C2B44; --line:#2B3B57; --line-2:#1F2D45; --ink:#E8EDF5; --ink-2:#B9C4D6; --ink-3:#93A1B8;
    --brand:#8DB4FF; --brand-2:#B4CDFF; --on-brand:#0B1220; --band:#08101D; --alert:#FF8C84; --warn-bg:#3A2E0D; --warn-ink:#F3D98A; --ok:#7AD3A0; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0E1624; --surface:#152135; --surface-2:#1C2B44; --line:#2B3B57; --line-2:#1F2D45; --ink:#E8EDF5; --ink-2:#B9C4D6; --ink-3:#93A1B8;
  --brand:#8DB4FF; --brand-2:#B4CDFF; --on-brand:#0B1220; --band:#08101D; --alert:#FF8C84; --warn-bg:#3A2E0D; --warn-ink:#F3D98A; --ok:#7AD3A0; color-scheme:dark;
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:80px; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:400 1.0625rem/1.55 'Source Sans 3', 'Source Sans Pro', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-variant-numeric:tabular-nums;
}
h1,h2,h3,h4{ margin:0; text-wrap:balance; }
h1,h2{ font-family:'Source Serif 4', Georgia, 'Times New Roman', serif; font-weight:700; letter-spacing:-.005em; line-height:1.18; }
h3,h4{ font-weight:700; line-height:1.25; }
p{ margin:0; }
button,input,select{ font:inherit; color:inherit; }
button{ -webkit-tap-highlight-color:transparent; }
a{ color:var(--brand); text-underline-offset:3px; }
:focus-visible{ outline:3px solid var(--focus); outline-offset:0; box-shadow:0 0 0 5px var(--ink); border-radius:2px; }
[hidden]{ display:none !important; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.mono{ font-variant-numeric:tabular-nums; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 20px; }
main{ padding-bottom:64px; min-height:60vh; }

/* ---------- bandeau, en-tête, navigation ---------- */
.govbar{ background:var(--band); color:var(--on-band); font-size:.8125rem; padding:6px 0; padding-top:calc(6px + env(safe-area-inset-top)); }
.govbar .wrap{ display:flex; justify-content:space-between; gap:16px; align-items:center; }
.govbar b{ font-weight:600; }
.top{ background:var(--bg); border-bottom:1px solid var(--line); position:relative; }
.bar{ display:flex; align-items:center; gap:16px; min-height:68px; }
.brand{ display:flex; align-items:center; gap:12px; border:none; background:none; padding:0; cursor:pointer; color:var(--ink); text-align:left; }
.mark{ width:36px; height:36px; flex:none; }
.mark .t{ fill:var(--band); }
.mark .b{ fill:none; stroke:#fff; stroke-width:1.8; }
.mark .c{ fill:none; stroke:#fff; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.brand-t{ display:flex; flex-direction:column; line-height:1.1; }
.brand-t b{ font-family:'Source Serif 4', Georgia, serif; font-size:1.5rem; font-weight:700; letter-spacing:-.01em; }
.brand-t span{ font-size:.75rem; color:var(--ink-3); margin-top:2px; }
.tools{ display:flex; align-items:center; margin-left:auto; gap:4px; }
.lang{ display:flex; align-items:center; }
.lang button{ border:none; background:none; min-height:44px; padding:0 10px; cursor:pointer; font-size:.9375rem; color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.lang button[aria-pressed="true"]{ color:var(--ink); font-weight:700; text-decoration:none; cursor:default; }
.menu-btn{ display:none; width:44px; height:44px; border:none; background:none; color:var(--ink); cursor:pointer; }
.menu-btn svg{ width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.loc-chip{ border:1px solid var(--line); background:var(--surface); border-radius:var(--r); padding:0 12px; min-height:40px; font-size:.875rem; color:var(--ink); cursor:pointer; white-space:nowrap; }
@media (max-width:1100px){ .loc-chip{ display:none; } }
.mainnav{ background:var(--band); }
.dnav{ display:flex; gap:0; flex-wrap:wrap; }
.dnav button{ border:none; background:none; color:var(--on-band); padding:14px 16px 11px; cursor:pointer; font-size:.9375rem; border-bottom:4px solid transparent; opacity:.88; }
.dnav button:hover{ opacity:1; background:rgba(255,255,255,.08); }
.dnav button[aria-current="page"]{ opacity:1; font-weight:700; border-bottom-color:var(--on-band); }
.bnav{ display:none; }

/* ---------- titres et textes ---------- */
.ph{ padding:36px 0 8px; max-width:760px; }
.ph h1{ font-size:clamp(1.9rem, 5vw, 2.5rem); }
.ph p{ margin-top:12px; color:var(--ink-2); max-width:62ch; font-size:1.125rem; }
.srcn{ display:block; margin-top:12px; font-size:.875rem; color:var(--ink-3); }
.blk{ margin-top:40px; }
.sec-h{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:4px; padding-top:14px; border-top:3px solid var(--ink); }
.sec-h h2{ font-size:1.5rem; }
.sec-h.sm{ margin-top:28px; } .sec-h.sm h2{ font-size:1.25rem; }
.sec-h:not(.blk .sec-h){ margin-top:40px; }
.lk, .lnk{ border:none; background:none; padding:6px 0; color:var(--brand); font-weight:600; font-size:.9375rem; cursor:pointer; text-decoration:underline; text-underline-offset:3px; text-align:left; }
.lnk.inl{ padding:0; display:inline; font-size:inherit; }
.note-s, .hint{ font-size:.875rem; color:var(--ink-3); margin-top:12px; max-width:68ch; }
.lead{ color:var(--ink-2); margin-top:12px; }
.f-line{ margin:10px 0; }
.empty{ color:var(--ink-2); padding:16px 0; }
.circ{ font-size:1.125rem; margin:28px 0 6px; }
.off{ font-style:normal; font-size:.78rem; color:var(--ink-3); margin-left:4px; font-weight:400; }

/* ---------- boutons et champs ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 22px; border-radius:var(--r);
  border:2px solid var(--brand); background:transparent; color:var(--brand); font-weight:600; font-size:1rem; cursor:pointer;
}
.btn:hover{ background:var(--surface); }
.btn.primary{ background:var(--brand); color:var(--on-brand); }
.btn.primary:hover{ background:var(--brand-2); border-color:var(--brand-2); }
.btn.primary:disabled{ background:var(--surface-2); border-color:var(--surface-2); color:var(--ink-3); cursor:not-allowed; }
.btn.ghost{ border-color:var(--line); color:var(--ink); background:var(--bg); }
.btn.ghost:hover{ border-color:var(--ink-3); background:var(--surface); }
.btn.sm{ min-height:44px; padding:0 16px; font-size:.9375rem; }
.btn.on{ background:var(--surface-2); }
.btn:disabled{ opacity:.6; cursor:wait; }
select, input[type="search"], input[type="text"]{
  width:100%; min-height:48px; padding:0 12px; border:2px solid var(--ink-3); border-radius:var(--r); background:var(--bg); color:var(--ink); font-size:1rem;
}
select{ appearance:none; -webkit-appearance:none; padding-right:36px;
  background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);
  background-position:calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size:5px 5px; background-repeat:no-repeat; }
select:disabled{ background-color:var(--surface); color:var(--ink-3); }
input::placeholder{ color:var(--ink-3); }
.search{ position:relative; }
.search input{ padding-left:42px; }
.search > svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--ink-2); pointer-events:none; }
.results{ position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:30; margin:0; padding:0; list-style:none; background:var(--bg); border:2px solid var(--ink-3); border-radius:var(--r); max-height:min(380px, 55vh); overflow:auto; }
.results button{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; width:100%; text-align:left; border:none; background:none; padding:10px 14px; cursor:pointer; min-height:52px; border-bottom:1px solid var(--line-2); }
.results button:hover{ background:var(--surface); }
.results button span{ font-size:.8125rem; color:var(--ink-3); }
.results .none{ padding:14px; color:var(--ink-2); }
.chk{ display:inline-flex; align-items:center; gap:10px; min-height:48px; font-size:.9375rem; color:var(--ink-2); cursor:pointer; }
.chk input{ width:22px; height:22px; accent-color:var(--brand); }
.field2{ display:flex; align-items:center; gap:12px; font-size:.9375rem; color:var(--ink-2); flex-wrap:wrap; margin-top:12px; }
.field2 select{ width:auto; min-width:220px; }

/* ---------- accueil ---------- */
.home-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:0 56px; }
@media (min-width:960px){ .home-grid{ grid-template-columns:minmax(0,1fr) 340px; } .home-aside .blk:first-child{ margin-top:40px; } }
.cover{ padding:40px 0 0; }
.cover h1{ font-size:clamp(2.1rem, 6vw, 3rem); line-height:1.1; max-width:20ch; }
.cover .lede{ margin-top:16px; color:var(--ink-2); max-width:56ch; font-size:1.1875rem; }
.label{ margin-top:28px; border:1px solid var(--line); border-radius:var(--r); padding:20px 20px 18px; background:var(--surface); }
.pk-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; }
.pk-f{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.pk-f span{ font-size:.9375rem; font-weight:600; }
.pk-act{ display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; align-items:center; }
.pk-msg{ margin-top:10px; min-height:1.2em; font-size:.9rem; color:var(--alert); }
.pk-sum{ display:none; align-items:center; justify-content:space-between; gap:12px; }
.pk-sum-t{ font-size:1.0625rem; }
.picker.compact{ padding:10px 16px; margin-top:20px; }
.picker.compact .pk-sum{ display:flex; }
.picker.compact .pk-row, .picker.compact .pk-act, .picker.compact .pk-msg{ display:none; }
.indep{ margin-top:14px; font-size:.875rem; color:var(--ink-3); }
@media (max-width:560px){ .pk-row{ grid-template-columns:1fr; } .pk-act .btn{ flex:1 1 100%; } }
.home-search{ margin-top:36px; }
.saved{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; width:100%; text-align:left; margin-top:24px; padding:16px 20px; border:1px solid var(--line); border-radius:var(--r); background:var(--bg); cursor:pointer; color:var(--ink); }
.saved:hover{ background:var(--surface); }
.saved .sv{ display:block; }
.saved b{ font-family:'Source Serif 4', Georgia, serif; font-size:1.375rem; display:block; }
.saved .sv span{ font-size:.9375rem; color:var(--ink-2); }
.saved .go{ color:var(--brand); font-weight:600; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
#h-saved:empty{ display:none; }

/* ---------- listes ---------- */
.rows{ list-style:none; margin:0; padding:0; }
.rows > li{ border-bottom:1px solid var(--line); }
.rows > li.rl{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:14px 0; }
.rows .k{ font-weight:700; }
.rows > li > button.rb{ display:flex; width:100%; align-items:baseline; justify-content:space-between; gap:16px; padding:14px 0; min-height:56px; border:none; background:none; text-align:left; cursor:pointer; }
.rows > li > button.rb:hover{ background:var(--surface); }
.rows .n{ font-weight:700; font-size:1.125rem; }
.cc{ display:flex; align-items:center; gap:8px; min-height:64px; padding:10px 0; border-bottom:1px solid var(--line); cursor:pointer; list-style:none; }
.cc:hover{ background:var(--surface); }
.cc-t{ display:flex; flex-direction:column; min-width:0; flex:1; }
.nm{ font-weight:700; font-size:1.0625rem; line-height:1.3; }
.cc-s{ font-size:.875rem; color:var(--ink-2); margin-top:2px; }
.cc-s .pt{ color:var(--ink); font-weight:600; }
.cc-a{ flex:none; order:2; }
.cc-grid, .pres-grid{ list-style:none; margin:0; padding:0; }
.cc-grid{ margin-top:8px; }
@media (min-width:900px){ .cc-grid{ display:grid; grid-template-columns:1fr 1fr; column-gap:48px; } }
.pt{ font-weight:600; font-size:.875rem; }
.bio-b{ margin-left:8px; font-size:.8125rem; font-weight:600; color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.hb{ margin-left:8px; font-size:.8125rem; color:var(--ink-3); }
.hb.elu{ color:var(--ok); font-weight:700; }
.hb.elu::before{ content:"✓ "; }
.mk{ order:3; flex:none; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:none; background:none; cursor:pointer; color:var(--ink-3); padding:0; border-radius:var(--r); }
.mk svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; }
.mk:hover{ color:var(--brand); background:var(--surface-2); }
.mk[aria-pressed="true"]{ color:var(--brand); }
.mk[aria-pressed="true"] svg{ fill:currentColor; }

.tk-grid{ display:grid; grid-template-columns:1fr; gap:28px; margin-top:16px; }
.tkc-h{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:10px 14px; background:var(--surface); border-top:2px solid var(--ink); }
.tkc-h .pt{ font-size:1rem; }
.tk-n{ font-size:.8125rem; color:var(--ink-3); }
.tkc-l{ list-style:none; margin:0; padding:0; }
.tkc-l li{ display:flex; align-items:center; gap:12px; min-height:52px; border-bottom:1px solid var(--line); cursor:pointer; padding:4px 0 4px 14px; }
.tkc-l li:hover{ background:var(--surface); }
.tkc-p{ flex:none; width:6.2rem; font-size:.8125rem; color:var(--ink-3); }
.tkc-n{ flex:1; min-width:0; }
.tkc-n .nm{ font-size:1rem; font-weight:600; }
@media (min-width:860px){ .tk-grid{ grid-template-columns:1fr 1fr; gap:28px 40px; } }

/* ---------- onglets ---------- */
.pillrow{ display:flex; gap:0; overflow-x:auto; scrollbar-width:none; margin:20px 0 0; border-bottom:1px solid var(--line); }
.pillrow::-webkit-scrollbar{ display:none; }
.pillb{
  flex:none; border:none; background:none; padding:12px 16px 10px; min-height:48px; cursor:pointer; color:var(--ink-2); font-size:1rem;
  margin-bottom:-1px; border-bottom:4px solid transparent; text-decoration:none; white-space:nowrap;
}
.pillb .n{ font-size:.8125rem; color:var(--ink-3); margin-left:6px; }
.pillb[aria-pressed="true"]{ color:var(--ink); font-weight:700; border-bottom-color:var(--brand); }
.pillb:hover{ color:var(--ink); background:var(--surface); }
.pillrow .pillb:first-child, .ptabs .ptab:first-child{ padding-left:0; }

/* ---------- dates, nouvelles ---------- */
.dates .d{ font-weight:700; display:block; }
.dates .j{ font-size:.9375rem; font-weight:700; white-space:nowrap; color:var(--brand); }
.dates .s{ display:block; font-weight:400; font-size:.875rem; color:var(--ink-3); margin-top:2px; }
.feed{ margin-top:6px; }
.fi{ padding:16px 0; border-bottom:1px solid var(--line); }
.fi-m{ font-size:.8125rem; color:var(--ink-3); }
.fi-m b{ color:var(--ink-2); font-weight:700; }
.fi h3{ font-size:1.0625rem; margin-top:4px; line-height:1.3; }
.fi h3 a{ color:var(--ink); text-decoration:none; }
.fi h3 a:hover{ color:var(--brand); text-decoration:underline; }
.fi p{ margin-top:6px; font-size:.9375rem; color:var(--ink-2); max-width:64ch; }
.chg{ margin-top:32px; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); }
.chg > summary{ cursor:pointer; padding:14px 18px; list-style:none; }
.chg > summary::-webkit-details-marker{ display:none; }
.chg-d{ display:block; font-size:.875rem; color:var(--ink-3); }
.chg b{ font-size:1.25rem; }
.chg-w{ font-size:.875rem; color:var(--ink-2); display:block; }
.chg .note-s{ padding:0 18px; margin-top:0; }
.chg-l{ list-style:none; margin:8px 0 0; padding:0 18px 8px; }
.chg-l li{ padding:10px 0; border-top:1px solid var(--line); cursor:pointer; }
.chg-l li span{ display:block; font-size:.8125rem; color:var(--ink-3); }
#h-changes:empty{ display:none; }
.mini{ display:block; width:100%; margin-top:14px; padding:0; border:none; background:none; text-align:left; cursor:pointer; color:inherit; }
.mini svg{ display:block; width:100%; max-width:380px; height:auto; }
.mp{ fill:var(--brand); stroke:var(--bg); stroke-width:.4px; vector-effect:non-scaling-stroke; }
.md{ fill:none; stroke:var(--ink); stroke-width:1px; opacity:.45; vector-effect:non-scaling-stroke; }
.mini-cap{ display:block; margin-top:10px; font-size:.9375rem; color:var(--ink-2); }
.mini-cap b{ color:var(--brand); text-decoration:underline; text-underline-offset:3px; font-weight:600; }

/* ---------- bulletin ---------- */
.b-sum{ margin-top:24px; padding:22px 24px; background:var(--surface); border-top:3px solid var(--ink); }
.b-sum h2{ font-size:clamp(1.8rem, 5vw, 2.5rem); line-height:1.1; }
.b-dept{ display:block; margin-top:2px; color:var(--ink-2); font-size:1.125rem; }
.b-chips{ margin-top:12px; font-size:.9375rem; color:var(--ink-2); }
.b-chips span + span::before{ content:" · "; }
.b-act{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.jump{ position:sticky; top:0; z-index:20; background:var(--bg); margin-top:12px; }
.lv{ margin-top:48px; scroll-margin-top:72px; }
.lv-h h2{ font-size:1.625rem; padding-top:14px; border-top:3px solid var(--ink); }
.lv-help{ color:var(--ink-2); margin-top:8px; max-width:62ch; }
.lv-sub{ font-size:1.125rem; margin-top:24px; }
.lv-sub span{ font-weight:400; font-size:.875rem; color:var(--ink-3); margin-left:8px; }
.lv-sec{ font-weight:700; margin-top:16px; }
.sec-pick{ margin-top:14px; max-width:520px; }
.sec-pick label{ display:flex; flex-direction:column; gap:6px; font-size:.9375rem; font-weight:600; }
.chips-sec{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.chip{ border:2px solid var(--line); background:var(--bg); border-radius:var(--r); padding:8px 16px; cursor:pointer; min-height:44px; font-size:.9375rem; color:var(--ink); }
.chip:hover{ border-color:var(--brand); color:var(--brand); }
.chip span{ font-size:.8125rem; color:var(--ink-3); margin-left:6px; }
.empty-b{ margin-top:32px; padding:24px; background:var(--surface); border-radius:var(--r); max-width:680px; }
.empty-b h2{ font-size:1.5rem; }
.empty-b p{ margin-top:10px; color:var(--ink-2); max-width:56ch; }
.hbox{ margin-top:20px; border:1px solid var(--line); border-radius:var(--r); background:var(--bg); }
.hbox > summary{ cursor:pointer; padding:14px 18px; font-weight:700; list-style:none; display:flex; justify-content:space-between; gap:12px; background:var(--surface); }
.hbox > summary::-webkit-details-marker{ display:none; }
.hbox > summary::after{ content:"+"; font-size:1.25rem; line-height:1; color:var(--brand); }
.hbox[open] > summary::after{ content:"−"; }
.hbox > :not(summary){ margin-left:18px; margin-right:18px; }
.hbox > .note-s:last-child{ margin-bottom:16px; }
.hbox .hc:first-of-type{ border-top:none; }
.hc{ padding:16px 0; border-top:1px solid var(--line); }
.hc-h{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.hc-h b{ font-size:1.125rem; }
.status{ font-size:.875rem; font-weight:700; color:var(--ink-2); }
.status.ok{ color:var(--ok); }
.status.ok::before{ content:"✓ "; }
.status.pend{ color:var(--warn-ink); background:var(--warn-bg); padding:1px 8px; border-radius:2px; }
.stamp{ display:inline-block; margin:2px 0 6px; padding:2px 8px; border-radius:2px; background:var(--warn-bg); color:var(--warn-ink); font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.hc-l{ display:flex; justify-content:space-between; gap:16px; padding:8px 0; border-bottom:1px solid var(--line-2); font-size:.9375rem; color:var(--ink-2); }
.hc-l b{ color:var(--ink); text-align:right; font-weight:700; }
.hc-n{ margin-top:12px; font-size:.9375rem; color:var(--ink-2); }
.stats{ display:flex; flex-wrap:wrap; gap:4px 28px; margin:10px 0 6px; }
.stats > div{ display:flex; gap:8px; align-items:baseline; }
.stats b{ font-size:1.125rem; }
.stats span{ font-size:.875rem; color:var(--ink-3); }
.stats.big{ margin:20px 0; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stats.big b{ font-size:1.5rem; font-family:'Source Serif 4', Georgia, serif; }
details.sec{ margin-top:6px; }
details.sec > summary{ cursor:pointer; padding:8px 0; font-weight:600; font-size:.9375rem; color:var(--brand); list-style:none; }
details.sec > summary::-webkit-details-marker{ display:none; }
details.sec > summary::before{ content:"▸ "; }
details.sec[open] > summary::before{ content:"▾ "; }
.tbl{ width:100%; border-collapse:collapse; font-size:.9rem; }
.tbl th{ text-align:right; font-size:.8125rem; color:var(--ink-2); font-weight:700; padding:8px 8px; border-bottom:2px solid var(--ink); }
.tbl td{ text-align:right; padding:9px 8px; border-bottom:1px solid var(--line); }
.tbl th:nth-child(-n+2), .tbl td:nth-child(-n+2){ text-align:left; }
.slist{ list-style:none; margin:8px 0; padding:0; }
.srow{ display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.srow .mono{ font-size:.9rem; color:var(--ink-2); }

/* ---------- barres de résultats ---------- */
.rank{ list-style:none; margin:8px 0; padding:0; }
.rk{ display:grid; grid-template-columns:minmax(110px,1.3fr) 1fr 120px; gap:14px; align-items:center; width:100%; min-height:48px; padding:8px 0; border:none; border-bottom:1px solid var(--line); background:none; text-align:left; font-size:.9375rem; color:var(--ink); }
button.rk{ cursor:pointer; } button.rk:hover{ background:var(--surface); }
.rk-l{ font-weight:600; }
.rk-b{ height:12px; background:var(--surface-2); border-radius:1px; overflow:hidden; }
.rk-b i{ display:block; height:100%; background:var(--brand); }
.rk.win .rk-b i{ background:var(--band); }
.rk-n{ text-align:right; font-size:.9rem; white-space:nowrap; }
.rk-n small{ color:var(--ink-3); font-size:.78rem; margin-left:4px; }
.hist-r{ cursor:default; }
.tw{ overflow-x:auto; margin-top:14px; }
.ctab2{ width:100%; border-collapse:collapse; font-size:.9375rem; min-width:620px; }
.ctab2 th{ text-align:left; font-size:.8125rem; color:var(--ink-2); font-weight:700; padding:10px 12px 10px 0; border-bottom:2px solid var(--ink); }
.ctab2 td{ padding:12px 12px 12px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.ctab2 td.dt{ white-space:nowrap; color:var(--ink-2); }
tr.clk{ cursor:pointer; } tr.clk:hover td{ background:var(--surface); }
.rcards{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:16px; }
.rcards .hc{ border:1px solid var(--line); border-top:3px solid var(--ink); border-radius:0; padding:16px 18px; }
@media (min-width:860px){ .rcards{ grid-template-columns:1fr 1fr; } }

/* ---------- filtres, liste des candidats ---------- */
.ctools{ display:flex; flex-direction:column; gap:12px; margin:8px 0 12px; }
.srow{ display:flex; gap:14px; }
.psel{ flex:0 0 38%; max-width:240px; min-width:130px; }
.fbar{ display:flex; flex-wrap:wrap; gap:8px 20px; margin:16px 0 0; align-items:flex-end; padding:16px; background:var(--surface); border-radius:var(--r); }
.fbar .field{ flex:1 1 180px; }
.fbar .field.q{ flex:2 1 240px; }
.fbar .reset{ border:none; background:none; color:var(--brand); font-weight:600; cursor:pointer; padding:0 4px; min-height:44px; text-decoration:underline; text-underline-offset:3px; }
.sub-count{ font-size:.9375rem; color:var(--ink-2); margin:18px 0 4px; font-weight:600; }
.clist{ list-style:none; margin:0; padding:0; }
.more{ margin-top:16px; width:100%; min-height:48px; border:2px solid var(--brand); border-radius:var(--r); background:none; color:var(--brand); font-weight:600; cursor:pointer; }
.more:hover{ background:var(--surface); }
.c-map{ border:none; background:none; color:var(--brand); font-weight:600; font-size:.875rem; cursor:pointer; text-decoration:underline; text-underline-offset:3px; padding:10px 8px; min-height:44px; }

/* ---------- carte ---------- */
.cgrid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(340px,1fr); gap:28px; align-items:start; margin-top:12px; }
.cmain{ position:sticky; top:16px; min-width:0; }
.stage{ position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; scroll-margin-top:72px; }
.stage svg{ display:block; width:100%; height:auto; cursor:pointer; -webkit-tap-highlight-color:transparent; user-select:none; }
.pl{ fill:var(--brand); stroke:var(--surface); stroke-width:.6px; vector-effect:non-scaling-stroke; cursor:pointer; transition:fill-opacity .25s; }
.nat .pl{ stroke-width:.3px; stroke-opacity:.55; }
.pl.b0{ fill:var(--ink-3); fill-opacity:.18; }
.pl.b1{ fill-opacity:.2; } .pl.b2{ fill-opacity:.38; } .pl.b3{ fill-opacity:.56; } .pl.b4{ fill-opacity:.76; } .pl.b5{ fill-opacity:.95; }
.pl.out{ fill:var(--ink-3); fill-opacity:.12; }
.pl.sel{ stroke:var(--alert); stroke-width:3px; }
@media (hover:hover){ .pl.in:hover{ stroke:var(--ink); stroke-width:1.6px; } }
.dl{ fill:none; stroke:var(--ink); stroke-width:1.2px; vector-effect:non-scaling-stroke; opacity:.5; pointer-events:none; }
.dl.sel, .dl.hov{ opacity:1; stroke-width:2px; }
.dl.out{ opacity:.18; }
.lab{ text-anchor:middle; fill:var(--ink); pointer-events:none; paint-order:stroke; stroke:var(--surface); stroke-width:.3em; stroke-linejoin:round; }
.dn{ font-weight:700; letter-spacing:.06em; } .dc{ font-weight:700; } .cn{ font-weight:600; }
.mback{ position:absolute; top:10px; left:10px; min-height:44px; padding:0 14px; border:1px solid var(--line); border-radius:var(--r); background:var(--bg); color:var(--brand); font-weight:600; font-size:.9375rem; cursor:pointer; }
.zctl{ position:absolute; right:10px; bottom:10px; display:flex; flex-direction:column; gap:6px; }
.zctl button{ width:44px; height:44px; border:1px solid var(--line); border-radius:var(--r); background:var(--bg); color:var(--ink); font-size:1.3rem; cursor:pointer; line-height:1; }
.tip{ position:absolute; pointer-events:none; z-index:5; background:var(--ink); color:var(--bg); font-size:.8125rem; line-height:1.4; padding:7px 11px; border-radius:var(--r); max-width:220px; }
.legend{ margin-top:12px; font-size:.875rem; color:var(--ink-2); }
.lg-t{ margin-bottom:6px; } .lg-t b{ color:var(--ink); }
.lg-r{ display:flex; flex-wrap:wrap; gap:6px 14px; }
.lg{ display:inline-flex; align-items:center; gap:6px; font-size:.8125rem; }
.sw{ width:24px; height:12px; border-radius:1px; background:var(--brand); display:inline-block; }
.sw.b0{ background:var(--ink-3); opacity:.2; } .sw.b1{ opacity:.2; } .sw.b2{ opacity:.38; } .sw.b3{ opacity:.56; } .sw.b4{ opacity:.76; } .sw.b5{ opacity:.95; }
.side{ background:var(--bg); border:1px solid var(--line); border-top:3px solid var(--ink); border-radius:0; position:sticky; top:16px; max-height:calc(100vh - 32px); overflow:auto; overscroll-behavior:contain; }
.side-in{ padding:18px 20px 24px; }
.sheet-bar{ display:none; }
.side h3{ font-family:'Source Serif 4', Georgia, serif; font-size:1.625rem; margin:2px 0; }
.side .sub{ margin:0 0 12px; color:var(--ink-2); font-size:.9375rem; }
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:.875rem; color:var(--ink-3); margin-bottom:8px; }
.crumbs button{ border:none; background:none; padding:6px 0; color:var(--brand); font-weight:600; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.ptabs{ display:flex; gap:0; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; }
.ptabs::-webkit-scrollbar{ display:none; }
.ptab{ border:none; background:none; padding:12px 12px 10px; font-size:.9375rem; color:var(--ink-2); border-bottom:4px solid transparent; margin-bottom:-1px; cursor:pointer; white-space:nowrap; min-height:48px; }
.ptab[aria-selected="true"]{ color:var(--ink); font-weight:700; border-bottom-color:var(--brand); }
.ptab .n{ font-size:.78rem; color:var(--ink-3); }
.cl{ list-style:none; margin:8px 0; padding:0; }
.cr{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); min-height:48px; cursor:pointer; }
.cr:hover{ background:var(--surface); }
.cr .pr{ color:var(--ink-2); } .cr b{ font-weight:700; }
.cr.flash{ background:var(--warn-bg); }
.ps{ font-size:.8125rem; color:var(--ink-3); white-space:nowrap; }
.tk{ margin:18px 0; }
.tk-h{ display:flex; justify-content:space-between; align-items:baseline; padding:8px 0; border-bottom:2px solid var(--ink); }
.pt-b{ border:none; background:none; cursor:pointer; padding:4px 0; color:var(--ink); }
.fnote{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; font-size:.9375rem; border-bottom:1px solid var(--line); color:var(--ink-2); }
.fnote.warn{ display:block; color:var(--warn-ink); background:var(--warn-bg); padding:10px 12px; border-bottom:none; border-radius:2px; }
.fnote button{ border:none; background:none; color:var(--brand); font-weight:600; text-decoration:underline; cursor:pointer; }
.plinks{ display:flex; flex-wrap:wrap; gap:2px 22px; margin-top:22px; padding-top:12px; border-top:1px solid var(--line); }

/* ---------- calendrier, électeurs, à propos ---------- */
.vote-cards{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:28px; }
.vc{ padding:20px 22px; background:var(--surface); border-top:3px solid var(--ink); }
.vc .vc-k{ display:block; font-size:.9375rem; color:var(--ink-2); font-weight:600; }
.vc .vc-d{ display:block; font-family:'Source Serif 4', Georgia, serif; font-size:clamp(1.6rem, 5vw, 2.1rem); font-weight:700; line-height:1.15; margin-top:2px; }
.vc .vc-j{ display:block; margin-top:4px; font-weight:700; color:var(--brand); }
.vc p{ margin-top:8px; color:var(--ink-2); font-size:.9375rem; }
@media (min-width:760px){ .vote-cards{ grid-template-columns:1fr 1fr; } }
.notice{ margin:24px 0; padding:16px 20px; background:var(--warn-bg); color:var(--warn-ink); border-radius:var(--r); font-size:.9375rem; }
.notice.info{ background:var(--surface); color:var(--ink-2); }
.tl{ list-style:none; margin:16px 0 0; padding:0; }
.st{ padding:16px 0; border-bottom:1px solid var(--line); }
.st-top{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; flex-wrap:wrap; }
.st h3{ font-size:1.0625rem; }
.st-date{ font-size:.9375rem; color:var(--ink-2); margin-top:2px; }
.st p{ margin-top:8px; font-size:.9375rem; color:var(--ink-2); max-width:66ch; }
.pill{ font-size:.8125rem; font-weight:700; color:var(--ink-3); }
.pill.done{ color:var(--ok); } .pill.done::before{ content:"✓ "; }
.pill.now{ color:var(--warn-ink); background:var(--warn-bg); padding:1px 8px; border-radius:2px; }
.st.done h3{ color:var(--ink-2); }
.allsteps{ margin-top:32px; border-top:1px solid var(--line); }
.allsteps > summary{ cursor:pointer; padding:16px 0; font-weight:600; color:var(--brand); list-style:none; }
.allsteps > summary::-webkit-details-marker{ display:none; }
.kpis{ margin:24px 0 8px; display:flex; flex-direction:column; border-top:3px solid var(--ink); }
.kpi{ padding:14px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; }
.kpi span{ color:var(--ink-2); }
.kpi b{ font-family:'Source Serif 4', Georgia, serif; font-size:1.625rem; }
.kpi em{ font-style:normal; font-size:.875rem; color:var(--ink-3); flex-basis:100%; }
.vbars{ list-style:none; margin:8px 0; padding:0; }
.vb{ display:grid; grid-template-columns:110px 1fr 90px 60px; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); font-size:.9375rem; }
.vb-l{ font-weight:600; }
.vb-b{ height:12px; background:var(--surface-2); border-radius:1px; overflow:hidden; } .vb-b i{ display:block; height:100%; background:var(--brand); }
.vb-n, .vb-r{ text-align:right; font-size:.9rem; } .vb-r{ color:var(--ink-3); }
.about{ margin-top:16px; max-width:760px; }
.about .card{ padding:24px 0 8px; border-top:1px solid var(--line); margin-top:8px; }
.about h3{ font-size:1.25rem; margin-bottom:10px; font-family:'Source Serif 4', Georgia, serif; }
.about p, .about li{ color:var(--ink-2); }
.about ul{ margin:0; padding-left:20px; display:grid; gap:10px; }
.about b{ color:var(--ink); }
.seg{ display:inline-flex; gap:2px; background:var(--brand); border:2px solid var(--brand); border-radius:var(--r); overflow:hidden; }
.seg button{ border:none; background:var(--bg); padding:0 20px; min-height:46px; cursor:pointer; color:var(--brand); font-weight:600; }
.seg button[aria-pressed="true"]{ background:var(--brand); color:var(--on-brand); }

/* ---------- fiche et menu ---------- */
dialog{ color:var(--ink); }
dialog#fiche, dialog.sheetd{ border:none; padding:0; border-radius:var(--r); width:min(720px, 96vw); max-height:92vh; background:var(--bg); box-shadow:0 18px 50px rgba(8,16,29,.35); }
dialog::backdrop{ background:rgba(8,16,29,.6); }
.f-in{ position:relative; padding:26px 28px 32px; overflow:auto; max-height:92vh; border-top:4px solid var(--band); }
.f-x{ position:absolute; right:8px; top:12px; width:48px; height:48px; border:none; background:none; color:var(--ink-2); font-size:1.2rem; cursor:pointer; z-index:3; border-radius:var(--r); }
.f-x:hover{ background:var(--surface); }
#f-body h2{ font-size:clamp(1.7rem, 4vw, 2.2rem); margin:0 48px 10px 0; line-height:1.12; }
#f-body h3{ font-size:1.1875rem; margin:30px 0 8px; padding-top:12px; border-top:1px solid var(--line); }
.f-chips{ display:flex; flex-wrap:wrap; gap:4px 16px; align-items:baseline; margin-bottom:16px; font-size:.9375rem; color:var(--ink-2); }
.f-chips .pt{ color:var(--ink); font-size:1rem; }
.f-g{ font-size:.9375rem; color:var(--ink-2); }
.f-sum{ font-size:1.125rem; margin:0 0 8px; max-width:62ch; }
.f-facts{ display:grid; grid-template-columns:150px 1fr; gap:0 20px; margin:0; }
.f-facts dt{ color:var(--ink-3); padding:10px 0; border-bottom:1px solid var(--line); font-size:.9375rem; font-weight:600; }
.f-facts dd{ margin:0; padding:10px 0; border-bottom:1px solid var(--line); }
.f-intro{ font-size:.875rem; color:var(--ink-3); margin:0 0 10px; }
.f-note{ margin:0 0 12px; padding:14px 16px; background:var(--warn-bg); color:var(--warn-ink); border-radius:var(--r); font-size:.9375rem; }
.f-src{ list-style:none; padding:0; margin:0; font-size:.9375rem; }
.f-src li{ padding:10px 0; border-bottom:1px solid var(--line); }
.f-src span{ display:block; color:var(--ink-3); font-size:.8125rem; }
.f-hist{ margin:0 0 6px; padding-left:20px; display:grid; gap:10px; }
.f-riv{ list-style:none; margin:0; padding:0; }
.f-riv button{ display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; min-height:48px; padding:8px 0; border:none; border-bottom:1px solid var(--line); background:none; text-align:left; cursor:pointer; }
.f-riv button:hover{ background:var(--surface); }
.f-foot{ margin:18px 0 0; font-size:.8125rem; color:var(--ink-3); }
.f-acts, .f-acts2{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 16px; }
.f-map{ min-height:48px; border:2px solid var(--brand); border-radius:var(--r); background:none; color:var(--brand); font-weight:600; cursor:pointer; padding:0 18px; flex:1 1 230px; margin-top:14px; }
.f-map:hover{ background:var(--surface); }
.menu-t{ font-size:1.5rem; margin:4px 0 14px; }
.menu-l{ list-style:none; margin:0; padding:0; }
.menu-l button{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%; text-align:left; min-height:64px; padding:14px 0; border:none; border-bottom:1px solid var(--line); background:none; cursor:pointer; font-size:1.0625rem; }
.menu-l button b{ font-weight:700; }
.menu-l button span{ font-size:.875rem; color:var(--ink-3); }
.toast{ position:fixed; left:50%; bottom:24px; transform:translate(-50%, 12px); z-index:90; background:var(--ink); color:var(--bg); padding:12px 20px; border-radius:var(--r); font-size:.9375rem; font-weight:600; opacity:0; transition:opacity .2s, transform .2s; pointer-events:none; max-width:90vw; text-align:center; }
.toast.on{ opacity:1; transform:translate(-50%, 0); }

/* ---------- pied de page ---------- */
footer{ background:var(--band); color:var(--on-band); }
footer .wrap{ padding-top:32px; padding-bottom:calc(36px + env(safe-area-inset-bottom)); }
footer p{ max-width:76ch; font-size:.9375rem; opacity:.92; }
footer .lnk{ color:var(--on-band); }

/* ---------- tablette et téléphone ---------- */
@media (max-width:1039px){
  .mainnav{ display:none; }
  .menu-btn{ display:block; }
  .bnav{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--bg); border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .bnav button{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; border:none; background:none; padding:8px 0 7px; min-height:var(--navh); font-size:.75rem; color:var(--ink-2); cursor:pointer; border-top:3px solid transparent; margin-top:-1px; }
  .bnav svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .bnav button[aria-current="page"]{ color:var(--brand); font-weight:700; border-top-color:var(--brand); }
  main{ padding-bottom:calc(var(--navh) + 36px + env(safe-area-inset-bottom)); }
  body.sheet-open main{ padding-bottom:calc(var(--navh) + 44vh + env(safe-area-inset-bottom)); }
  footer .wrap{ padding-bottom:calc(var(--navh) + 36px + env(safe-area-inset-bottom)); }
  .toast{ bottom:calc(var(--navh) + 18px + env(safe-area-inset-bottom)); }
  .govbar .gb-r{ display:none; }
}
@media (max-width:860px){
  .wrap{ padding:0 16px; }
  .brand-t span{ display:none; }
  .cgrid{ grid-template-columns:1fr; gap:14px; }
  .cmain{ position:static; }
  .side{ position:static; max-height:none; overflow:visible; }
  .side.sheet{ position:fixed; top:auto; left:0; right:0; bottom:calc(var(--navh) + env(safe-area-inset-bottom)); z-index:55; max-height:42vh; overflow:auto; border-radius:0; box-shadow:0 -8px 24px rgba(8,16,29,.2); }
  .side.sheet.expanded{ max-height:78vh; }
  .sheet-bar{ display:flex; justify-content:center; position:sticky; top:0; z-index:3; background:var(--bg); }
  .side:not(.sheet) .sheet-bar{ display:none; }
  .grab{ width:140px; height:28px; display:flex; align-items:center; justify-content:center; border:none; background:none; cursor:pointer; }
  .grab::before{ content:""; width:44px; height:4px; border-radius:2px; background:var(--line); }
  .xbtn{ position:absolute; right:6px; top:0; width:44px; height:44px; border:none; background:none; color:var(--ink-3); font-size:1.05rem; cursor:pointer; }
  .side-in{ padding:6px 16px 20px; }
  dialog#fiche, dialog.sheetd{ width:100%; max-width:100%; margin:auto 0 0; border-radius:0; max-height:94vh; }
  .f-in{ padding:22px 18px 30px; max-height:94vh; }
  .f-facts{ grid-template-columns:1fr; } .f-facts dt{ border-bottom:none; padding-bottom:0; }
  .vb{ grid-template-columns:84px 1fr 72px 50px; gap:8px; }
  .rk{ grid-template-columns:minmax(90px,1fr) .8fr 100px; gap:10px; }
  .b-sum{ padding:18px; }
  .cover{ padding-top:28px; }
}
@media print{
  .govbar, .top, .mainnav, .bnav, footer, .picker, .jump, .b-act, .mk, .toast, .hint{ display:none !important; }
  body{ background:#fff; color:#000; }
  .hbox, .tkc, .cc{ break-inside:avoid; } details > *{ display:block; }
}
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; animation:none !important; scroll-behavior:auto !important; } }

/* ---------- initiales et photos ---------- */
.av{ flex:none; width:44px; height:44px; border-radius:50%; background:var(--surface-2); color:var(--ink-2); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.9375rem; letter-spacing:.02em; order:0; }
img.av{ display:block; padding:0; border:0; object-fit:cover; object-position:center 30%; background:var(--surface-2); max-width:none; }
.av.big{ width:72px; height:72px; font-size:1.5rem; }
.av.big.ph{ width:112px; height:112px; border-radius:6px; }
img.av:not(.big){ border-radius:50%; }
.f-head{ display:flex; align-items:center; gap:18px; margin-right:48px; }
@media (max-width:480px){ .av.big.ph{ width:88px; height:88px; } }
.f-head h2{ margin:0 !important; }
.f-credit{ font-size:.8125rem; color:var(--ink-3); margin:8px 0 0; }
