/* Sendit — le tableau des départs.
   Un hall de gare clair, des chiffres condensés simples, un bandeau de
   signalétique bleu pour se repérer, des plaques pleines pour les états. Aucune ombre, aucune carte : filets, échelle et capitales condensées
   font la structure. Une seule famille (Barlow), deux largeurs. */

@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/barlow-400.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/barlow-500.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlow-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/barlowcondensed-500.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlowcondensed-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/barlowcondensed-700.woff2) format('woff2')}

:root{
  --ground:#f4f2ec;        /* le hall */
  --ground-2:#ebe8df;      /* second neutre : en-têtes, panneaux, survol */
  --paper:#fdfcf9;         /* champs de saisie */
  --ink:#15181d;
  --ink-2:#3d424b;
  --muted:#5f6571;
  --rule:#d3cfc3;
  --rule-strong:#15181d;
  --signal:#1a3fc4;        /* bleu de signalétique */
  --signal-dark:#132f98;
  --signal-soft:#e2e7f9;
  --ok:#1f7a45;
  --warn:#a86300;
  --err:#c22a1f;
  --font:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-cond:'Barlow Condensed','Barlow',system-ui,sans-serif;
  --radius:3px;
  --maxw:1180px;
  --gutter:16px;
  --sig-h:52px;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:var(--font);font-size:16px;line-height:1.5;color:var(--ink);background:var(--ground);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;
  font-variant-numeric:tabular-nums}
::selection{background:var(--signal);color:#fff}
a{color:var(--signal);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0;font-family:var(--font-cond);text-transform:uppercase;letter-spacing:.02em;line-height:1.05}
h1{font-size:2rem;font-weight:700}
h2{font-size:1.25rem;font-weight:600}
h3{font-size:1.05rem;font-weight:600;letter-spacing:.04em}
p{margin:0 0 .75rem}
ul{margin:0;padding:0;list-style:none}
code{font-family:var(--font);font-weight:500;background:var(--ground-2);padding:.05em .35em;border-radius:2px}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.strong{font-weight:600}
.mono{font-variant-numeric:tabular-nums}
.ok{color:var(--ok)} .warn{color:var(--warn)} .err{color:var(--err)}
.sd-total{border:none}

/* ===== Signalétique : le bandeau bleu ===== */
.sig{background:var(--signal);color:#fff;position:sticky;top:0;z-index:20}
.sig-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);display:grid;
  grid-template-columns:auto 1fr auto;grid-template-areas:"marque compte" "nav nav";align-items:center;column-gap:1rem}
.sig-marque{grid-area:marque;display:inline-flex;align-items:baseline;gap:.5rem;height:var(--sig-h);color:#fff;
  font-family:var(--font-cond);font-weight:700;font-size:1.35rem;letter-spacing:.14em;text-transform:uppercase}
.sig-marque:hover{text-decoration:none}
.sig-marque small{font-family:var(--font-cond);font-weight:600;font-size:.72rem;letter-spacing:.14em;
  padding:.1rem .45rem;border:1px solid rgba(255,255,255,.55);border-radius:2px;color:#fff;letter-spacing:.1em}
.sig-compte{grid-area:compte;display:flex;align-items:center;gap:1rem;justify-self:end;font-size:.9rem;white-space:nowrap}
.sig-compte span{font-weight:600;color:#fff;display:none}
.sig-compte a{color:rgba(255,255,255,.82);font-weight:500}
.sig-compte a:hover{color:#fff;text-decoration:underline}
.sig-nav{grid-area:nav;display:flex;gap:.15rem;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 6px;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  mask-image:linear-gradient(90deg,currentColor calc(100% - 28px),transparent)}
.sig-nav::-webkit-scrollbar{display:none}
.sig-dest{flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem;height:38px;padding:0 .8rem;border-radius:var(--radius);
  color:rgba(255,255,255,.88);font-family:var(--font-cond);font-weight:600;font-size:1.02rem;letter-spacing:.06em;text-transform:uppercase;
  white-space:nowrap;transition:background .15s,color .15s}
.sig-dest:hover{background:rgba(255,255,255,.14);color:#fff;text-decoration:none}
.sig-dest.is-active{background:var(--ground);color:var(--signal)}
.sig-dest .compte{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;height:1.45em;padding:0 .4em;
  border-radius:2px;background:var(--warn);color:#fff;font-family:var(--font);font-size:.72rem;font-weight:700;letter-spacing:0}
.sig-dest.is-active .compte{background:var(--warn)}
@media(min-width:900px){
  :root{--sig-h:60px;--gutter:24px}
  .sig-inner{grid-template-columns:auto 1fr auto;grid-template-areas:"marque nav compte";column-gap:1.5rem}
  .sig-nav{margin:0;padding:0 28px 0 0;min-width:0;justify-self:stretch}
  .sig-dest{height:36px;font-size:.9rem;padding:0 .55rem}
}

/* ===== Info trafic : simulation / arrêt global ===== */
.trafic{display:flex;align-items:center;gap:.4rem .9rem;flex-wrap:nowrap;padding:.5rem var(--gutter);color:#fff;
  font-family:var(--font-cond);font-size:1rem;letter-spacing:.03em;white-space:nowrap;overflow:hidden}
.trafic span{overflow:hidden;text-overflow:ellipsis;min-width:0}
.trafic strong{font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.trafic-warn{background:var(--warn)}
.trafic-err{background:var(--err)}
.trafic a{margin-left:auto;flex:0 0 auto;font-family:var(--font);font-weight:600;font-size:.85rem;color:#fff;text-decoration:underline;text-underline-offset:3px}
@media(max-width:599px){.trafic span{display:none}}
@media(min-width:900px){.trafic{justify-content:center}.trafic a{margin-left:.5rem}}

/* ===== Le hall ===== */
.hall{max-width:var(--maxw);margin:0 auto;padding:1.4rem var(--gutter) 4rem}
.hall>*+*{margin-top:1.6rem}
@media(min-width:900px){.hall{padding-top:2rem}.hall>*+*{margin-top:2.2rem}}

/* Avis (flash) */
.avis{padding:.7rem .95rem;border-radius:var(--radius);font-size:.95rem;font-weight:500;color:#fff}
.avis strong{font-weight:700}
.avis-ok{background:var(--ok)}
.avis-err{background:var(--err)}
.avis-warn{background:var(--warn)}
.avis-info{background:var(--signal)}

/* Titre de page */
.titre{display:flex;flex-direction:column;gap:.9rem;padding-bottom:1rem;border-bottom:2px solid var(--rule-strong)}
.titre p{margin:.35rem 0 0;color:var(--muted);max-width:70ch}
.titre-actions{display:flex;flex-wrap:wrap;gap:.5rem}
@media(min-width:900px){
  .titre{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:1.5rem}
  .titre>:first-child{flex:1 1 320px;min-width:0}
  .titre-actions{flex:0 0 auto;justify-content:flex-end}
  h1{font-size:2.6rem}
}

/* Section : en-tête de tableau */
.section-tete{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding-bottom:.45rem;border-bottom:2px solid var(--rule-strong);margin-bottom:.9rem}
.section-tete h2{font-size:1.15rem;letter-spacing:.08em}
.section-tete .meta{font-size:.88rem;color:var(--muted)}
.section-tete .meta a{font-weight:600}

/* ===== Chiffres (KPI, compteurs) : simples, condensés, tabulaires ===== */
.val{display:inline-block;font-family:var(--font-cond);font-weight:700;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;transition:opacity .2s}
.val-lg{font-size:2.6rem}
.val-md{font-size:1.6rem}
.val-sm{font-size:1.05rem;font-weight:600;letter-spacing:.02em}
.val.is-maj{opacity:0}
@media(min-width:900px){.val-lg{font-size:3rem}}

/* Chiffres du jour : une grille classique, séparée par des filets, sans carte */
.chiffres{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--rule-strong)}
.chiffre{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1rem 1.1rem 0;min-width:0;border-bottom:1px solid var(--rule)}
.chiffre:nth-child(odd){border-right:1px solid var(--rule);padding-right:1rem}
.chiffre:nth-child(even){padding-left:1rem}
.chiffre-l{font-family:var(--font-cond);font-weight:600;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.chiffre-s{font-size:.85rem;color:var(--muted)}
@media(min-width:900px){
  .chiffres{grid-template-columns:repeat(4,1fr)}
  .chiffre{border-bottom:none}
  .chiffre:nth-child(odd),.chiffre:nth-child(even){padding:1.1rem 1.5rem 1.2rem;border-right:1px solid var(--rule)}
  .chiffre:first-child{padding-left:0}
  .chiffre:last-child{border-right:none;padding-right:0}
  .chiffres-5{grid-template-columns:repeat(5,1fr)}
  .chiffre-l{font-size:.9rem}
}

/* ===== Fenêtre d'envoi ===== */
.fenetre{display:grid;gap:.5rem}
.fenetre-etat{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.fenetre-etat strong{font-family:var(--font-cond);font-weight:600;font-size:1rem;letter-spacing:.08em;text-transform:uppercase}
.fenetre-etat .maintenant{font-family:var(--font-cond);font-weight:600;font-size:1rem;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.fenetre-regle{position:relative;height:34px;border-bottom:2px solid var(--rule-strong)}
.fenetre-tick{position:absolute;bottom:0;width:1px;height:8px;background:var(--ink)}
.fenetre-tick i{position:absolute;bottom:10px;left:0;transform:translateX(-50%);font-style:normal;font-family:var(--font-cond);
  font-weight:500;font-size:.8rem;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.fenetre-tick:first-child i,.fenetre-tick.fin i{color:var(--ink);font-weight:600}
.fenetre-tick.fin{right:0}
.fenetre-plein{position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:var(--signal);transform:scaleX(0);transform-origin:left}
.fenetre.is-pret .fenetre-plein{transition:transform .6s ease-out}
.fenetre.is-pret .fenetre-now{transition:left .6s ease-out}
.fenetre-now{position:absolute;bottom:-7px;left:0;width:12px;height:12px;margin-left:-6px;border-radius:50%;
  background:var(--signal);border:2px solid var(--ground)}
.fenetre-now::after{content:attr(data-heure);position:absolute;top:14px;left:50%;transform:translateX(-50%);
  font-family:var(--font-cond);font-weight:600;font-size:.82rem;letter-spacing:.04em;color:var(--signal);white-space:nowrap}
.fenetre.is-fermee .fenetre-plein,.fenetre.is-fermee .fenetre-now{display:none}
.fenetre.is-hors .fenetre-now{display:none}
.fenetre-note{font-size:.85rem;color:var(--muted);padding-top:.9rem}
@media(max-width:599px){.fenetre-tick:not(:first-child):not(.fin):not(.demi) i{display:none}}

/* ===== Le tableau (rangées) ===== */
.tableau-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter)}
.tableau{width:100%;border-collapse:collapse;font-size:.95rem}
.tableau th{text-align:left;font-family:var(--font-cond);font-weight:600;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:.4rem .6rem .5rem;border-bottom:1px solid var(--rule-strong);white-space:nowrap}
.tableau td{padding:.7rem .6rem;border-bottom:1px solid var(--rule);vertical-align:middle}
.tableau th:first-child,.tableau td:first-child{padding-left:0}
.tableau th:last-child,.tableau td:last-child{padding-right:0}
.tableau tbody tr{transition:background .12s}
.tableau tbody tr:hover{background:var(--ground-2)}
.tableau .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tableau .fort{font-weight:600;color:var(--ink)}
.tableau .fort a{color:var(--ink)}
.tableau .fort a:hover{color:var(--signal)}
.tableau .sous{display:block;font-size:.82rem;color:var(--muted);font-weight:400}
.tableau .actions{text-align:right;white-space:nowrap}
.tableau .actions form{display:inline}
.tableau .actions>*+*{margin-left:.4rem}
.tableau .heure{font-family:var(--font-cond);font-weight:600;font-size:1.05rem;letter-spacing:.04em;white-space:nowrap}
.tableau .cell{white-space:nowrap}
.tableau select,.tableau input[type=text],.tableau input[type=number]{font:inherit;font-size:.9rem;height:34px;padding:0 .55rem;
  border:1px solid #b5b0a2;border-radius:var(--radius);background:var(--paper);color:var(--ink)}
.tableau select:focus,.tableau input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.tableau-vide{padding:1.4rem 0 .4rem;color:var(--muted)}
.tableau-vide a{font-weight:600}
.tableau.compact td{padding:.5rem .6rem}
.tableau.compact th{padding-bottom:.4rem}

/* Plaques d'état */
.plaque{display:inline-flex;align-items:center;height:22px;padding:0 .5rem;border-radius:2px;vertical-align:middle;
  font-family:var(--font-cond);font-weight:600;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  background:var(--ground-2);color:var(--ink-2)}
.plaque-ok{background:var(--ok);color:#fff}
.plaque-warn{background:var(--warn);color:#fff}
.plaque-err{background:var(--err);color:#fff}
.plaque-info{background:var(--signal);color:#fff}
.plaque-neutre{background:var(--ground-2);color:var(--ink-2);border:1px solid var(--rule)}

/* Répartition (quais) */
.quais{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:.6rem}
.quai{display:flex;flex-direction:column;gap:.35rem;padding:.7rem .5rem .7rem 0;border-top:1px solid var(--rule);color:var(--ink);min-width:0}
.quai:hover{text-decoration:none}
.quai:hover .val{color:var(--signal)}
.quai.is-active .val{color:var(--signal)}
.quai-l{font-size:.85rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quai.is-active .quai-l{color:var(--signal);font-weight:600}

/* Barres (14 jours) */
.barres{display:flex;align-items:flex-end;gap:.35rem;height:160px;padding-top:1.4rem;border-bottom:2px solid var(--rule-strong)}
.barre{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.barre-b{display:block;width:100%;max-width:36px;background:var(--ink);border-radius:2px 2px 0 0;min-height:2px}
.barre.is-aujourdhui .barre-b{background:var(--signal)}
.barre-n{font-family:var(--font-cond);font-weight:600;font-size:.85rem;margin-bottom:.25rem;color:var(--ink-2)}
.barre-j{font-family:var(--font-cond);font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin-top:.35rem;
  position:absolute;transform:translateY(100%)}
.barre{position:relative}
.barres+.barres-legende{margin-top:1.6rem}
@media(max-width:599px){.barre:nth-child(even) .barre-j{display:none}}

/* Journal / listes à filets */
.filets>*{padding:.75rem 0;border-bottom:1px solid var(--rule)}
.filets>:first-child{padding-top:0}
.filets>:last-child{border-bottom:none}
.ligne{display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;align-items:baseline}
.ligne .quand{font-family:var(--font-cond);font-weight:600;font-size:.92rem;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.ligne .plaque{margin-right:.4rem}
.ligne .detail{grid-column:2;font-size:.88rem;color:var(--muted)}
@media(max-width:599px){.ligne{grid-template-columns:1fr}.ligne .detail{grid-column:1}}

/* Fiche descriptive (clé / valeur) */
.fiche{margin:0}
.fiche>div{display:grid;grid-template-columns:minmax(120px,32%) 1fr;gap:.25rem 1rem;padding:.6rem 0;border-bottom:1px solid var(--rule);font-size:.95rem}
.fiche>div:last-child{border-bottom:none}
.fiche dt{font-family:var(--font-cond);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:.15rem}
.fiche dd{margin:0;overflow-wrap:anywhere}
.fiche dd.fort{font-weight:600}

/* Grille deux colonnes */
.deux{display:grid;grid-template-columns:1fr;gap:2rem}
.deux>*{min-width:0}
@media(min-width:900px){.deux{grid-template-columns:1fr 1fr;gap:3rem}}
.deux-large{grid-template-columns:1fr}
@media(min-width:900px){.deux-large{grid-template-columns:3fr 2fr}}

/* ===== Boutons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:42px;padding:0 1.1rem;border-radius:var(--radius);
  border:1px solid transparent;font:inherit;font-weight:600;font-size:.95rem;line-height:1;cursor:pointer;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s}
.btn:hover{text-decoration:none}
.btn-primaire{background:var(--signal);color:#fff}
.btn-primaire:hover{background:var(--signal-dark);color:#fff}
.btn-second{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-second:hover{background:var(--ink);color:var(--ground)}
.btn-danger{background:transparent;color:var(--err);border-color:var(--err)}
.btn-danger:hover{background:var(--err);color:#fff}
.btn-sm{height:34px;padding:0 .75rem;font-size:.88rem}
.btn-lg{height:48px;padding:0 1.5rem;font-size:1rem}
.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.btn.is-on{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.btn .compte{display:inline-flex;align-items:center;justify-content:center;min-width:1.4em;height:1.4em;padding:0 .35em;border-radius:2px;
  background:var(--ground-2);color:var(--ink-2);font-size:.78rem;font-weight:700}
.btn.is-on .compte{background:rgba(255,255,255,.2);color:#fff}
.btn .compte.compte-warn{background:var(--warn);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.actions form{display:contents}
.onglets{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.onglets .a-droite{margin-left:auto}
.lien-retour{font-weight:600;font-size:.92rem}

/* ===== Formulaires (le guichet) ===== */
.formulaire{display:flex;flex-direction:column;gap:1.15rem;max-width:720px}
.formulaire-large{max-width:none}
.groupe{display:flex;flex-direction:column;gap:1.15rem}
.groupe+.groupe{margin-top:2.2rem}
.groupe>h3{padding-bottom:.4rem;border-bottom:2px solid var(--rule-strong);margin-bottom:.2rem;display:flex;align-items:baseline;gap:.6rem}
.groupe>h3 small{font-family:var(--font);font-weight:400;font-size:.85rem;letter-spacing:0;text-transform:none;color:var(--muted)}
.rangee{display:grid;grid-template-columns:1fr;gap:1.15rem}
.rangee>*{min-width:0}
@media(min-width:600px){.rangee{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.rangee-2{grid-template-columns:1fr 1fr}}
.champ{display:flex;flex-direction:column;gap:.35rem}
.champ>span{font-family:var(--font-cond);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.champ>span small{font-family:var(--font);font-weight:400;font-size:.82rem;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:.35rem}
.champ input,.champ select,.champ textarea{font:inherit;font-size:16px;width:100%;padding:.55rem .8rem;color:var(--ink);
  background:var(--paper);border:1px solid #b5b0a2;border-radius:var(--radius);transition:border-color .15s,box-shadow .15s}
.champ input:not([type=file]):not([type=checkbox]):not([type=radio]),.champ select{height:44px}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.champ input::placeholder,.champ textarea::placeholder{color:var(--muted)}
.champ input:read-only:not([type=file]){background:var(--ground-2);color:var(--ink-2)}
.champ input:disabled,.champ select:disabled,.champ textarea:disabled{background:var(--ground-2);color:var(--muted);cursor:not-allowed}
.champ textarea{min-height:96px;line-height:1.5;resize:vertical}
.champ textarea.corps{min-height:220px;font-size:.95rem;line-height:1.55}
.champ select{-webkit-appearance:none;appearance:none;padding-right:2.4rem;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%2315181d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .8rem center;background-size:12px 8px}
.champ input[type=file]{padding:.45rem .6rem;height:auto;cursor:pointer}
.champ input[type=file]::file-selector-button{font:inherit;font-weight:600;font-size:.88rem;height:32px;padding:0 .8rem;margin-right:.7rem;
  border:1px solid var(--ink);border-radius:var(--radius);background:transparent;color:var(--ink);cursor:pointer}
.champ input[type=file]::file-selector-button:hover{background:var(--ink);color:var(--ground)}
.champ input[type=time]::-webkit-calendar-picker-indicator{opacity:.6}
.coche{display:inline-flex;align-items:flex-start;gap:.6rem;font-size:.95rem;color:var(--ink-2);cursor:pointer;line-height:1.4}
.coche input{flex:0 0 auto;width:18px;height:18px;margin:.15rem 0 0;accent-color:var(--signal)}
.aide{font-size:.875rem;color:var(--muted);max-width:70ch}
.aide code{font-size:.85em}
.formulaire>.btn,.groupe>.btn,.actions-form{align-self:flex-start}
.actions-form{display:flex;flex-wrap:wrap;gap:.5rem}
.formulaire .actions-form{margin-top:.2rem}
.champ-inline{display:flex;gap:.5rem;align-items:center}
.champ-inline input{flex:1;min-width:0}

/* Interrupteur */
.inter{display:inline-flex;align-items:center;gap:.8rem;cursor:pointer;user-select:none;font-weight:600}
.inter input{position:absolute;opacity:0;width:0;height:0}
.inter .piste{flex:0 0 auto;width:48px;height:28px;border-radius:14px;background:#b5b0a2;position:relative;transition:background .18s}
.inter .piste::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .18s}
.inter input:checked+.piste{background:var(--signal)}
.inter input:checked+.piste::after{left:23px}
.inter-danger input:checked+.piste{background:var(--err)}
.inter input:focus-visible+.piste{outline:2px solid var(--signal);outline-offset:2px}

/* Pré (mails, contexte) */
.pre{white-space:pre-wrap;font-family:var(--font);font-size:.93rem;line-height:1.5;background:var(--paper);border:1px solid var(--rule);
  border-radius:var(--radius);padding:.85rem 1rem;margin:.5rem 0 0;max-height:320px;overflow:auto;overflow-wrap:anywhere}
details>summary{cursor:pointer;font-weight:600;font-size:.9rem;color:var(--signal);list-style:none;display:inline-flex;align-items:center;gap:.4rem}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";width:0;height:0;border:5px solid transparent;border-left:7px solid currentColor;border-right:0;transition:transform .15s}
details[open]>summary::before{transform:rotate(90deg)}

/* Pagination */
.pagination{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-top:1.1rem;font-size:.9rem}
.pagination a,.pagination .is-current{display:inline-flex;align-items:center;height:34px;padding:0 .8rem;border:1px solid var(--rule);border-radius:var(--radius);font-weight:600}
.pagination .is-current{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.pagination .total{margin-left:auto;color:var(--muted)}

/* Grille de mappage */
.mappage{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}

/* Réponses reçues */
.courrier>div{padding:1rem 0;border-bottom:1px solid var(--rule)}
.courrier>div:first-child{padding-top:.2rem}
.courrier>div:last-child{border-bottom:none}
.courrier-tete{display:flex;gap:.4rem .9rem;flex-wrap:wrap;align-items:baseline}
.courrier-tete .quand{font-family:var(--font-cond);font-weight:600;font-size:.92rem;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.courrier-tete .qui{font-weight:600;color:var(--ink)}
.courrier-tete .qui:hover{color:var(--signal)}
.courrier-tete .sur{margin-left:auto;font-size:.85rem;color:var(--muted)}
.courrier-objet{margin-top:.3rem;font-weight:600;font-size:.95rem}
.courrier .actions{margin-top:.7rem}

/* Bloc de danger */
.danger h3{color:var(--err)}

/* ===== Pages autonomes : connexion, 404, stop ===== */
.plaque-page{min-height:100vh;display:flex;flex-direction:column;background:var(--ground)}
.plaque-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem var(--gutter)}
.plaque-carte{width:100%;max-width:400px}
.plaque-carte .sig-marque{color:var(--signal);height:auto;margin-bottom:1.6rem}
.plaque-carte .sig-marque small{border-color:var(--signal);color:var(--signal)}
.plaque-carte h1{font-size:2rem;padding-bottom:.6rem;border-bottom:2px solid var(--rule-strong);margin-bottom:.8rem}
.plaque-carte .formulaire{margin-top:1.4rem;max-width:none}
.plaque-carte .btn{width:100%}
@media(min-width:1180px){.sig-compte span{display:inline}.sig-nav{mask-image:none;padding:0}.sig-dest{font-size:.95rem;padding:0 .7rem}}

/* Barre de filtres d'une liste : recherche large, sélecteurs, bouton calé en bas */
.rangee-filtres{align-items:end}
@media(min-width:600px) and (max-width:899px){.rangee-filtres{grid-template-columns:1fr 1fr auto}.rangee-filtres .champ-q{grid-column:1/-1}}
@media(min-width:900px){.rangee-filtres{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto}}
@media(min-width:600px){.champ-btn .btn{width:auto}}
.champ-btn>span{display:none}
@media(min-width:600px){.champ-btn>span{display:block}}
.champ-btn .btn{width:100%}
.actions-fiche{margin-top:1.2rem}
.section-suite{margin-top:2rem}

.liste-adresses{columns:2;column-gap:2rem}
.liste-adresses li{padding:.35rem 0;break-inside:avoid;overflow-wrap:anywhere}
@media(min-width:900px){.liste-adresses{columns:3}}
.tableau .champ-inline{display:flex;gap:.4rem;align-items:center}
.tableau .champ-inline input.court{width:76px}
.tableau .champ-inline input.moyen{width:150px}
.tableau .actions .champ-inline{display:inline-flex}
.tableau p.aide{margin-top:.8rem}
.coche-bas{align-self:end;min-height:44px;align-items:center}
@media(min-width:600px){.rangee-etape{grid-template-columns:auto minmax(220px,1fr) auto;align-items:end}}
.apercu-objet{margin:.6rem 0 0}
details.apercu{margin-top:-.4rem}
.formulaire-suite{margin-top:1.4rem}
.tableau tr.is-inactif td{color:var(--muted)}
.tableau tr.is-inactif td.fort{text-decoration:line-through;text-decoration-color:var(--rule)}
.recherche{display:flex;gap:.4rem;align-items:center;flex:1 1 260px;max-width:420px}
.recherche input{flex:1;min-width:0;font:inherit;font-size:16px;height:34px;padding:0 .7rem;border:1px solid #b5b0a2;border-radius:var(--radius);background:var(--paper);color:var(--ink)}
.recherche input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.section-tete .recherche{margin-bottom:.3rem}
.champ textarea.signature{min-height:140px}
section.danger .section-tete{border-bottom-color:var(--err)}
section.danger .section-tete h2{color:var(--err)}
.inter>span:last-child{font-size:.95rem}
.deux>section>form:last-child{margin-top:.6rem}
.fenetre-tick.pres i{display:none}
.fenetre-tick:first-child i{transform:none;left:0}
.fenetre-tick.fin i{transform:none;left:auto;right:0}

/* Rangée cliquable : toute la ligne mène à la fiche (le lien reste pour le clavier) */
.tableau tr[data-href]{cursor:pointer}
/* Nav mobile : les destinations du téléphone d'abord, la sortie en bout de bandeau */
.sig-sortie{display:none}
@media(max-width:899px){
  .sig-compte{display:none}
  .sig-sortie{display:inline-flex;margin-left:auto;color:rgba(255,255,255,.7)}
  .fenetre-note{display:none}
  .fenetre-regle{margin-bottom:1.3rem}
}
