/*
 charte.css - la charte des maquettes (refaite au T084), et les seules regles du socle qu'elle n'a pas.

 Source : livrables/maquettes/*.html (hors index.html), le bloc <style> commun aux quatorze, extrait
 octet pour octet ; app/CONTRAT.md paragraphe 13, "Les fichiers" (D-287-2, D-358, D-362 a D-364).

 1. LE BLOC, EXTRAIT OCTET POUR OCTET. Il commence a la ligne qui suit ce commentaire et finit a la
    regle @media print. Il est identique dans les quatorze maquettes des vues et de la charte
    (index.html le porte en tete, puis ajoute ses propres regles). En sont retirees les seules regles
    de la mesure (D-287-4) : les deux regles #mesure, et, dans la regle d'impression, son seul
    selecteur #mesure ; nav.ecrans y reste cachee a l'impression (D-319-27). Rien d'autre n'y change.

 2. L'ESPACEMENT PASSE PAR var(--grille) (D-269-3, D-364 (d)). Le bloc neuf n'ecrit aucun espacement
    hors de la grille : 8 pixels, et sa demi-mesure (calc(var(--grille)*.5)) a l'interieur d'un
    controle ou d'une pastille. Les valeurs de 2px et de 4px qui restent ne sont pas des espacements :
    une bordure de 2px (le contour d'une forme de pastille, .etat::before ; la case d'une coche), un
    trait de 4px (.info, border-left), les demi-grilles des coches et des triangles, le decalage de
    1px du lisere d'un champ. Les largeurs, les rayons (bouton 8, champ 14, carte 24) et les jetons de
    :root ne sont pas des espacements non plus. Une ligne d'espacement hors grille qui reparaitrait se
    verrait (300.8 garde sa regle).

 3. LES REGLES DU SOCLE, apres le bloc : les seules classes que le bloc ne definit pas -
    .texte-absent, .en-vol, .chaine-scan, .porte, .liste-en-ligne, .annonces, .jeton-saisi - et le
    signe sans mot (html:not([data-etat="textes"])). Aucune n'ecrit de pixel hors de var(--grille),
    aucune ne redit une classe du bloc (D-319-15) - une classe du bloc n'y entre que comme contexte
    d'un sujet du socle - : .compteur, .seul, .console, .volet, .seuil,
    .colonne, .evitement et les autres restent ce que le bloc en dit. Au T094 (tranche 3) :
    .sans-reponse n'est plus qu'une marque, sans regle - le bloc sans reponse est une div.annonce,
    que la classe du bloc dessine (D-392-15 ; D-408) ; .porte perd sa largeur et son centrage, et
    ne garde que la marge de la grille : sa largeur passe a .colonne, que le moteur pose dans la
    porte (D-394-7 ; D-411) ; .case n'est plus (D-353-5 ; D-358-6) : la regle du bloc donne a toute
    case 20 x 20 pixels, et la regle input.case se range avec le code qui posait la classe ;
    .jeton-saisi prend var(--codes), le jeton du bloc : aucune regle du socle ne nomme une famille
    de police (D-358-2 ; D-394-7 ; C9). La page ne s'ancre pas, mais ce n'est plus une regle du
    socle : overflow-anchor:none est au bloc, sous * (D-432, qui y porte D-418) - le socle ne la
    redit pas. Au T096 : une liste en ligne suit l'alignement de son conteneur (D-433-4) - dans
    une cellule td.nombre et dans la valeur d'une cle, .cles dd, que le bloc aligne a droite, elle
    passe en boite en ligne (display:inline-flex, aucun pixel) et suit le text-align de son
    conteneur ; justify-content:flex-end y range a droite les lignes d'une liste qui se replie
    dans une cellule etroite (mesure au T096 : sans lui, repliee, elle se rangeait a gauche de sa
    boite). Aucun tableau compact n'en porte. Le sujet de la regle porte .liste-en-ligne, la classe du
    socle ; td.nombre et .cles dd, classes du bloc, n'y sont que son contexte.
*/
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:400 700;font-display:swap;src:url(polices/space-grotesk-latin.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(polices/dm-sans-latin.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:400;font-display:swap;src:url(polices/dm-mono-400-latin.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:500;font-display:swap;src:url(polices/dm-mono-500-latin.woff2) format("woff2")}
:root{color-scheme:light;--grille:8px;--etroit:360px;--cible:48px;--ecart:8px;--texte:16px;--petit:14px;--pastille:13px;--micro:12px;--haut-barre:64px;
--titres:"Space Grotesk",system-ui,sans-serif;--corps:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--codes:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
--papier:#f7f9f7;--carte:#fdfefd;--encre:#2f2f2f;--encre-2:#4d5751;--trait:#dfe8e1;--teinte:#ebf7f0;--bord-champ:#7a9180;--bord-geste:#5f8a6a;
--action:#1b5e20;--primaire-fond:#1b5e20;--primaire-survol:#154a19;--primaire-encre:#ffffff;--vert:#27ae60;--vert-clair:#6fcf97;
--irreversible:#a6361e;--irreversible-fond:#fdecea;--irreversible-encre:#ffffff;--refus:#a6361e;--refus-fond:#fdecea;--alerte:#8a5a00;--alerte-fond:#fff4dc;--ok:#1b5e20;--ok-fond:#e3f2e8;--info-fond:#ebf7f0;--focus:#1d4ed8;
--rayon:24px;--rayon-champ:14px;--rayon-bouton:8px;--pilule:999px;--ombre:0 18px 44px -22px rgba(11,61,27,.4);--ombre-geste:0 8px 18px -12px rgba(11,61,27,.45)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--papier:#101812;--carte:#16211a;--encre:#e7eee8;--encre-2:#bccbbf;--trait:#2a3a2e;--teinte:#1c3624;--bord-champ:#6e8a76;--bord-geste:#6aa17e;
--action:#7fd6a3;--primaire-fond:#1f7a2e;--primaire-survol:#175f24;--primaire-encre:#ffffff;--vert:#7fd6a3;--vert-clair:#8fe0b0;
--irreversible:#f0a08f;--irreversible-fond:#3a1a14;--irreversible-encre:#16211a;--refus:#f0a08f;--refus-fond:#3a1a14;--alerte:#e3b341;--alerte-fond:#352b12;--ok:#7fd6a3;--ok-fond:#163020;--info-fond:#1c3624;--focus:#93b5ff;
--ombre:0 18px 44px -22px rgba(0,0,0,.65);--ombre-geste:0 8px 18px -12px rgba(0,0,0,.6)}}
:root[data-theme="dark"]{color-scheme:dark;--papier:#101812;--carte:#16211a;--encre:#e7eee8;--encre-2:#bccbbf;--trait:#2a3a2e;--teinte:#1c3624;--bord-champ:#6e8a76;--bord-geste:#6aa17e;
--action:#7fd6a3;--primaire-fond:#1f7a2e;--primaire-survol:#175f24;--primaire-encre:#ffffff;--vert:#7fd6a3;--vert-clair:#8fe0b0;
--irreversible:#f0a08f;--irreversible-fond:#3a1a14;--irreversible-encre:#16211a;--refus:#f0a08f;--refus-fond:#3a1a14;--alerte:#e3b341;--alerte-fond:#352b12;--ok:#7fd6a3;--ok-fond:#163020;--info-fond:#1c3624;--focus:#93b5ff;
--ombre:0 18px 44px -22px rgba(0,0,0,.65);--ombre-geste:0 8px 18px -12px rgba(0,0,0,.6)}
*{box-sizing:border-box;overflow-anchor:none}html{font-size:var(--texte)}
body{margin:0;font-family:var(--corps);font-size:var(--texte);line-height:24px;color:var(--encre);background:var(--papier);min-width:var(--etroit)}
a{color:var(--action);text-underline-offset:3px}
h1,h2,h3{font-family:var(--titres);font-weight:700;letter-spacing:-.01em;color:var(--encre)}
h1{font-size:1.75rem;line-height:2.25rem;margin:0 0 var(--grille)}h2{font-size:1.25rem;line-height:1.75rem;margin:calc(var(--grille)*3) 0 var(--grille)}h3{font-size:1rem;line-height:1.5rem;margin:calc(var(--grille)*2) 0 var(--grille)}
p{margin:0 0 var(--grille)}
code,.reference{font-family:var(--codes);font-weight:500}span.reference{overflow-wrap:break-word}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.evitement{position:absolute;left:var(--grille);top:-200px;z-index:9;background:var(--carte);color:var(--action);padding:var(--grille) calc(var(--grille)*2);border-radius:var(--rayon-bouton);border:1px solid var(--bord-geste)}.evitement:focus{top:var(--grille)}
.barre{display:flex;align-items:center;gap:calc(var(--grille)*1.5);padding:var(--grille) calc(var(--grille)*2);min-height:var(--haut-barre);background:var(--carte);border-bottom:1px solid var(--trait);position:sticky;top:0;z-index:3}
.barre .logo{width:36px;height:36px;flex:0 0 auto;display:block}
.barre .produit{font-family:var(--titres);font-weight:700;letter-spacing:.01em;white-space:nowrap}.barre .ecran,.barre .vue{color:var(--encre-2)}
.barre .ecran::before,.barre .vue::before,.puis::before{content:"";display:inline-block;width:4px;height:4px;margin:0 var(--grille);border-radius:50%;background:currentColor;vertical-align:middle}
button.theme{flex:0 0 auto;font-size:var(--petit);color:var(--encre-2);border-color:var(--trait)}
button.theme:hover{color:var(--action)}.barre .qui{margin-left:auto;font-size:var(--petit);line-height:20px;color:var(--encre-2);text-align:right}
nav.ecrans{display:flex;flex-wrap:wrap;gap:var(--grille);padding:var(--grille) calc(var(--grille)*2);background:var(--carte);border-bottom:1px solid var(--trait)}
nav.ecrans a{position:relative;min-height:var(--cible);min-width:var(--cible);display:inline-flex;align-items:center;gap:var(--grille);padding:0 calc(var(--grille)*1.5);border-radius:var(--rayon-bouton);text-decoration:none;color:var(--encre-2);font-weight:500}
nav.ecrans a:hover{background:var(--teinte);color:var(--encre)}
nav.ecrans a[aria-current]{background:var(--teinte);color:var(--action);font-weight:700;box-shadow:inset 3px 0 0 var(--action)}
nav.ecrans .groupe{display:flex;flex-wrap:wrap;align-items:center;gap:var(--grille)}
nav.ecrans .groupe+.groupe{border-left:1px solid var(--trait);padding-left:var(--grille)}
nav.ecrans .titre-groupe{display:none;margin:0}
nav.ecrans a.sous{font-size:var(--petit)}
nav.ecrans a.hors{border:1px dashed var(--trait);cursor:not-allowed}nav.ecrans a.hors:hover{background:transparent;color:var(--encre-2)}
.icone{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
main{padding:calc(var(--grille)*2);min-width:0}.faits dt,th,.chiffre>span,.tuile-reste>span,.surtitre,.bloc-volet>h3,.titre-groupe,.etiquette{font-family:var(--corps);font-size:var(--micro);line-height:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-2)}
.compteur{font-size:var(--petit);color:var(--encre-2);margin:0 0 calc(var(--grille)*2)}
.compteur strong{color:var(--encre);font-family:var(--titres);font-size:1.125rem;font-variant-numeric:tabular-nums}
.carte{background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);padding:calc(var(--grille)*3);margin-bottom:calc(var(--grille)*3);box-shadow:var(--ombre)}
.carte>h2:first-child,.carte>h3:first-child,.volet>h2:first-child{margin-top:0}
.synthese{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--grille)*18),1fr));gap:calc(var(--grille)*2);margin:0 0 calc(var(--grille)*3)}
.chiffre{display:flex;flex-direction:column;gap:var(--grille);margin:0;padding:calc(var(--grille)*2);background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon-champ)}
.chiffre>span{font-size:var(--petit);line-height:20px;font-weight:500;color:var(--encre-2)}
.chiffre strong{font-family:var(--titres);font-size:1.75rem;line-height:2rem;font-variant-numeric:tabular-nums;color:var(--encre)}.chiffre>small{font-size:var(--pastille);line-height:16px;color:var(--encre-2)}
.chiffre.decide{background:var(--alerte-fond);border-color:transparent;box-shadow:inset 3px 0 0 var(--alerte)}
.chiffre.decide>span,.chiffre.decide>small{color:var(--alerte)}
.chiffre.decide strong{font-size:2.375rem;line-height:2.5rem;color:var(--alerte)}
.chiffre.decide.repos{background:var(--papier);box-shadow:inset 3px 0 0 var(--trait)}
.chiffre.decide.repos>span,.chiffre.decide.repos>small,.chiffre.decide.repos strong{color:var(--encre-2)}
.chiffre.decide.repos>span::before{display:none}.chiffre.decide>span::before{content:"";display:inline-block;width:0;height:0;margin-right:var(--grille);border-style:solid;border-width:0 5px 9px;border-color:transparent transparent var(--alerte)}
.faits{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--grille)*22),1fr));gap:calc(var(--grille)*2) calc(var(--grille)*3);margin:0 0 calc(var(--grille)*2)}
.faits>div{min-width:0}.faits dt{font-size:var(--petit);line-height:20px;color:var(--encre-2)}.faits dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.console{display:grid;gap:calc(var(--grille)*3);align-items:start}.console>*{min-width:0}
.volet{background:var(--carte);border:1px solid var(--bord-geste);border-radius:var(--rayon);padding:calc(var(--grille)*3);box-shadow:var(--ombre)}.volet>.tete{margin:calc(var(--grille)*-3) calc(var(--grille)*-3) calc(var(--grille)*2);padding:calc(var(--grille)*2) calc(var(--grille)*3);border-bottom:1px solid var(--trait)}
.volet>.tete>h2{margin:var(--grille) 0 0}
.volet>.tete>h2 .reference{font-size:1.375rem;line-height:1.75rem}
.pastilles{display:flex;flex-wrap:wrap;align-items:center;gap:var(--grille);margin:var(--grille) 0 0}
.bloc-volet{margin:calc(var(--grille)*3) 0 0}
.tete+.bloc-volet{margin-top:0}
.bloc-volet>h3{margin:0 0 var(--grille)}
.cles{margin:0}
.cles>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--grille) calc(var(--grille)*2);padding:var(--grille) 0;border-bottom:1px solid var(--trait)}
.cles>div:last-child{border-bottom:0}
.cles dt{font-size:var(--petit);color:var(--encre-2)}
.cles dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.tuile-reste{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--grille);margin:0;padding:calc(var(--grille)*2);border-radius:var(--rayon-champ);background:var(--alerte-fond);box-shadow:inset 3px 0 0 var(--alerte)}
.tuile-reste>span{color:var(--alerte)}
.tuile-reste strong{font-family:var(--titres);font-size:2.125rem;line-height:2.5rem;font-variant-numeric:tabular-nums;color:var(--alerte)}
.tuile-reste.repos{background:var(--papier);box-shadow:inset 3px 0 0 var(--trait)}
.tuile-reste.repos>span,.tuile-reste.repos strong{color:var(--encre-2)}
.volet>.pied{margin:calc(var(--grille)*3) calc(var(--grille)*-3) calc(var(--grille)*-3);padding:calc(var(--grille)*2) calc(var(--grille)*3);border-top:1px solid var(--trait)}
.volet>.pied>.gestes:first-child{margin-top:0}
.puces{display:flex;flex-wrap:wrap;gap:var(--grille);list-style:none;margin:0;padding:0}
.puces>li{display:inline-flex;align-items:center;gap:var(--grille);max-width:100%;padding:calc(var(--grille)*.5) calc(var(--grille)*1.5);border:1px solid var(--trait);border-radius:var(--pilule);background:var(--carte);font-size:var(--petit);line-height:20px}
.puces>li>.nombre{padding-left:var(--grille);border-left:1px solid var(--trait);font-family:var(--titres);font-weight:700;font-variant-numeric:tabular-nums}
.puces>li.inactif{border-style:dashed;color:var(--encre-2)}
.puces.pleines>li{border-color:transparent;background:var(--teinte);color:var(--action);font-weight:600}
.taches{list-style:none;margin:0;padding:0}
.tache{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--grille) calc(var(--grille)*2);margin:0 0 var(--grille);padding:calc(var(--grille)*2);border:1px solid var(--trait);border-left:4px solid var(--action);border-radius:var(--rayon-champ);background:var(--carte)}
.tache:last-child{margin-bottom:0}
.tache.a-pointer{border-left-color:var(--alerte)}
.tache>div{min-width:0}
.tache .titre{display:block;font-weight:600}
.tache .sous{display:block;margin-top:calc(var(--grille)*.5);font-size:var(--petit);color:var(--encre-2)}
.tache .puces{margin-top:var(--grille)}
.session{display:flex;flex-wrap:wrap;align-items:center;gap:var(--grille) calc(var(--grille)*1.5);padding:calc(var(--grille)*2);border:1px solid var(--trait);border-radius:var(--rayon-champ);background:var(--carte)}
.session+.session{margin-top:calc(var(--grille)*1.5)}
.session.presente{border-color:var(--ok);background:var(--ok-fond)}
.session>strong{flex:1 1 auto}
.session>.sous{flex-basis:100%;font-size:var(--petit);color:var(--encre-2)}
.garde{margin:var(--grille) 0 0;padding:calc(var(--grille)*2);border:1px solid var(--irreversible);border-radius:var(--rayon-champ);background:var(--irreversible-fond)}
.garde>p{margin:0}
.garde>.gestes{flex-direction:column;align-items:flex-start}
.raison{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--grille);margin:var(--grille) 0 0;font-size:var(--petit);color:var(--encre-2)}
.raison .code{font-family:var(--codes);font-size:var(--micro)}
.bande-irreversible{margin-top:calc(var(--grille)*3);padding-top:calc(var(--grille)*2);border-top:1px dashed var(--trait)}
.encadre{margin:calc(var(--grille)*2) 0;padding:calc(var(--grille)*2);border:1px solid var(--trait);border-radius:var(--rayon-champ);background:var(--papier)}
.encadre.ok{border-color:var(--ok);background:var(--ok-fond)}
.pleine{width:100%}
.deux-lignes{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.liste{list-style:none;margin:0;padding:0}.liste li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ecart);padding:calc(var(--grille)*2) 0;border-bottom:1px solid var(--trait)}
.liste li:last-child{border-bottom:0}.liste li .gestes{margin-top:0}.liste .titre{flex:1 1 calc(var(--grille)*25);font-weight:600}.liste .sous{flex-basis:100%;font-size:var(--petit);color:var(--encre-2)}
.liste.serree li{padding:var(--grille) 0}
.liste .puces>li,.liste .puces>li:last-child{display:inline-flex;padding:calc(var(--grille)*.5) calc(var(--grille)*1.5);border:1px solid var(--trait)}
.liste .puces>li.inactif{border-style:dashed}
.liste .puces.pleines>li{border-color:transparent}.tableau{overflow:visible}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--petit)}
th,td{text-align:left;padding:calc(var(--grille)*1.5) var(--grille);border-bottom:1px solid var(--trait);vertical-align:middle}
th{background:var(--carte)}tbody tr:last-child>td{border-bottom:0}
td.nombre,th.nombre{text-align:right;font-variant-numeric:tabular-nums}td.nombre{white-space:nowrap}td.nombre{font-size:var(--texte)}
td.decide{font-weight:700;font-size:var(--texte)}td.decide.nombre{font-family:var(--titres);color:var(--alerte)}td.decide.reference{font-family:var(--codes);font-weight:500}
td.decide.nombre.repos{color:var(--encre-2);font-weight:600}
.console tbody tr:not([aria-current="true"]):hover>td{background:var(--papier)}
tr.alerte>td{background:var(--alerte-fond)}
tr.anterieure>td,tr.anterieure>td.decide.nombre{color:var(--encre-2)}tr[aria-current="true"]>td{background:var(--teinte)}tr[aria-current="true"]>td:first-child{box-shadow:inset 3px 0 0 var(--action)}
th button.tri{min-height:var(--cible);min-width:0;padding:0;border:0;background:none;box-shadow:none;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit}th.nombre button.tri{margin-left:auto}th button.tri:hover{background:none;text-decoration:underline}
th button.tri::after{content:"";border-style:solid;border-width:0 4px 6px;border-color:transparent transparent currentColor;opacity:.4}
th[aria-sort="ascending"] button.tri::after{opacity:1}th[aria-sort="descending"] button.tri::after{border-width:6px 4px 0;border-color:currentColor transparent transparent;opacity:1}
.etat{display:inline-flex;align-items:center;gap:var(--grille);max-width:100%;padding:calc(var(--grille)*.5) calc(var(--grille)*1.5);border-radius:var(--pilule);font-size:var(--pastille);line-height:16px;font-weight:600;background:var(--teinte);color:var(--action)}
.etat::before{content:"";flex:0 0 auto;width:8px;height:8px;border:2px solid currentColor;border-radius:50%}
.etat .nombre{font-size:var(--petit);font-variant-numeric:tabular-nums}
.etat.ok{background:var(--ok-fond);color:var(--ok)}.etat.ok::before{width:5px;height:10px;border-width:0 2px 2px 0;border-radius:0;transform:rotate(45deg) translateY(-1px)}
.etat.alerte{background:var(--alerte-fond);color:var(--alerte)}.etat.alerte::before{width:0;height:0;border-width:0 5px 9px;border-style:solid;border-color:transparent transparent currentColor;border-radius:0}
.etat.refus{background:var(--refus-fond);color:var(--refus)}.etat.refus::before{width:10px;height:10px;border:0;border-radius:0;background:linear-gradient(45deg,transparent 40%,currentColor 40%,currentColor 60%,transparent 60%),linear-gradient(-45deg,transparent 40%,currentColor 40%,currentColor 60%,transparent 60%)}
.etat.avarie{background:var(--alerte-fond);color:var(--alerte)}
.etat.avarie::before{width:8px;height:8px;border:0;border-radius:1px;background:currentColor;transform:rotate(45deg)}
.etat.invite::before{width:0;height:0;border-style:solid;border-width:5px 4px;border-color:currentColor transparent;border-radius:0}
.etat.neutre{background:var(--papier);color:var(--encre-2);box-shadow:inset 0 0 0 1px var(--trait)}
.etat.neutre::before{width:8px;height:0;border-width:2px 0 0;border-radius:0}.gestes{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ecart);margin-top:calc(var(--grille)*2)}td .gestes{margin-top:0}td button,td .bouton{padding:0 calc(var(--grille)*1.5)}
td .discret{font-weight:600}td button[aria-pressed]{min-width:calc(var(--grille)*12);justify-content:flex-start;text-align:left}
button,.bouton{font:inherit;font-weight:600;line-height:20px;min-height:var(--cible);min-width:var(--cible);padding:0 calc(var(--grille)*2.5);border-radius:var(--rayon-bouton);border:1px solid var(--bord-geste);background:var(--carte);color:var(--action);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--grille);text-decoration:none}
button:hover,.bouton:hover{background:var(--teinte)}
button.primaire,a.bouton.primaire{background:var(--primaire-fond);border-color:var(--primaire-fond);color:var(--primaire-encre);box-shadow:var(--ombre-geste)}
button.primaire:hover,a.bouton.primaire:hover{background:var(--primaire-survol);border-color:var(--primaire-survol)}
button.discret,.bouton.discret{border-color:transparent;background:transparent;font-weight:500;text-decoration:underline;text-underline-offset:4px;padding:0 calc(var(--grille)*1.5)}
button.discret:hover,.bouton.discret:hover{background:var(--teinte)}
button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--carte),0 0 0 4px var(--action);font-weight:700}
button[aria-pressed="true"]::before{content:"";flex:0 0 auto;width:5px;height:10px;margin:0 var(--grille) calc(var(--grille)*.5) 0;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg)}
.filtres{display:flex;flex-wrap:wrap;align-items:center;gap:var(--grille);margin:0 0 calc(var(--grille)*2)}
.filtres button{border-radius:var(--pilule);font-size:var(--petit);padding:0 calc(var(--grille)*2)}
.filtres button[aria-pressed="true"]{background:var(--primaire-fond);border-color:var(--primaire-fond);color:var(--primaire-encre);box-shadow:none}
summary.bouton{list-style:none}summary.bouton::-webkit-details-marker{display:none}
summary.bouton::before{content:"";flex:0 0 auto;width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent currentColor}
details[open]>summary.bouton::before{transform:rotate(90deg)}
details>summary.bouton+*{margin-top:var(--ecart)}
label:has(>input[type="checkbox"]){display:inline-flex;align-items:center;gap:var(--grille);min-height:var(--cible)}
input[type="checkbox"]{width:20px;height:20px;margin:0;accent-color:var(--action)}
button.irreversible{border-color:var(--irreversible);color:var(--irreversible);background:var(--carte)}button.irreversible:hover{background:var(--irreversible-fond)}
button.irreversible.primaire{background:var(--irreversible);border-color:var(--irreversible);color:var(--irreversible-encre);box-shadow:none}
button:disabled,button.primaire:disabled,button.irreversible:disabled,button.irreversible.primaire:disabled{background:var(--teinte);border-color:var(--trait);color:var(--encre-2);box-shadow:none;cursor:not-allowed;text-decoration:none}
.champ{display:flex;flex-direction:column;gap:var(--grille);margin-bottom:calc(var(--grille)*2)}
.champ label{font-size:var(--petit);line-height:20px;color:var(--encre-2);font-weight:600}
.champ input,.champ select,.champ textarea{font:inherit;min-height:var(--cible);padding:var(--grille) calc(var(--grille)*1.5);border:1px solid var(--bord-champ);border-radius:var(--rayon-champ);background:var(--carte);color:var(--encre);width:100%}.champ.scan input{font-family:var(--codes);font-size:1.25rem;border:2px solid var(--action)}
.champ input[type="checkbox"]{width:20px;height:20px;min-height:0;padding:0;flex:0 0 auto}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:3px solid var(--focus);outline-offset:1px}
.refus:not(.etat){border:1px solid var(--refus);background:var(--refus-fond);padding:calc(var(--grille)*1.5) calc(var(--grille)*2);border-radius:var(--rayon-champ);margin:calc(var(--grille)*2) 0}
.refus .phrase{font-size:var(--texte);margin:0 0 calc(var(--grille)*.5)}.refus .code{font-family:var(--codes);font-size:var(--micro);color:var(--encre-2)}
.annonce{border:1px solid var(--alerte);background:var(--alerte-fond);padding:calc(var(--grille)*1.5) calc(var(--grille)*2);border-radius:var(--rayon-champ);margin:calc(var(--grille)*2) 0}
.info{border:1px solid var(--trait);border-left:4px solid var(--vert);background:var(--info-fond);padding:calc(var(--grille)*1.5) calc(var(--grille)*2);border-radius:var(--rayon-champ);margin:calc(var(--grille)*2) 0}
.jeton{font-family:var(--codes);font-size:var(--texte);word-break:break-all;background:var(--papier);padding:calc(var(--grille)*1.5);border:1px dashed var(--bord-champ);border-radius:var(--rayon-champ)}
.vide{color:var(--encre-2)}
.arbre{display:block;width:56px;height:auto}
.seuil{text-align:center;margin-bottom:calc(var(--grille)*3)}.seuil .arbre{width:88px;margin:0 auto calc(var(--grille)*2)}
.colonne{max-width:calc(var(--grille)*60);margin-left:auto;margin-right:auto}
.fraicheur{font-size:var(--micro);line-height:16px;color:var(--encre-2)}
.seul{flex-basis:100%}
@media (max-width:719px){.barre{flex-wrap:wrap}.barre .qui{flex:1 1 calc(var(--grille)*15);margin-left:0;text-align:left}
.barre .vue{display:none}
.volet>.tete{margin:calc(var(--grille)*-2) calc(var(--grille)*-2) calc(var(--grille)*2);padding:calc(var(--grille)*2)}
.volet>.pied{margin:calc(var(--grille)*3) calc(var(--grille)*-2) calc(var(--grille)*-2);padding:calc(var(--grille)*2)}
.tache{grid-template-columns:minmax(0,1fr)}
.tache>.etat{justify-self:start}
.chiffre.decide{grid-column:1 / -1} .carte,.volet{padding:calc(var(--grille)*2);border-radius:18px}
 table,thead,tbody,tr,td,th{display:block}thead{position:absolute;left:-9999px}tr{border:1px solid var(--trait);border-radius:var(--rayon-champ);padding:var(--grille) calc(var(--grille)*1.5);margin-bottom:var(--grille);background:var(--carte)}
 td,tbody tr:last-child>td{border:0;padding:calc(var(--grille)*.5) 0;display:flex;flex-wrap:wrap;gap:var(--grille);align-items:baseline;justify-content:space-between}
 td.nombre{text-align:right}td::before{content:attr(data-l);color:var(--encre-2);font-family:var(--corps);font-weight:700;font-size:var(--micro);letter-spacing:.06em;text-transform:uppercase;flex:0 0 40%}td:empty{display:none}td[data-l='']::before{content:none}td.nombre::before{text-align:left}
 tr[aria-current="true"]{border-color:var(--action);box-shadow:inset 3px 0 0 var(--action)}tr[aria-current="true"]>td{background:transparent}tr[aria-current="true"]>td:first-child{box-shadow:none}
 .compact tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--grille)*.5) var(--grille);padding:calc(var(--grille)*1.5)}.compact td,.compact tbody tr:last-child>td{display:block;padding:0}.compact td:empty{display:none}.compact td::before{display:block;font-size:var(--micro);line-height:16px}.compact td.nombre{text-align:left}
 .compact td:first-child,.compact td:nth-child(2),.compact td:has(>.etat),.compact td:last-child{grid-column:1 / -1}.compact td:first-child{overflow-wrap:anywhere}
 thead:has(button.tri){position:static}thead:has(button.tri) tr{display:flex;flex-wrap:wrap;align-items:center;gap:var(--grille) calc(var(--grille)*2);border:0;padding:0;margin:0 0 var(--grille);background:none}thead:has(button.tri) th{display:none}thead:has(button.tri) th[aria-sort]{display:block;padding:0;border:0;background:none}
}
@media (min-width:720px){main{padding:calc(var(--grille)*3)}.deux{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--grille)*2)}thead th{position:sticky;top:var(--haut-barre);z-index:1}}@media (min-width:1280px){main{padding:calc(var(--grille)*4)}
}
@media (max-width:1439px){nav.ecrans .groupe:not(:has(a[aria-current])) a.sous{display:none}
}@media (min-width:1440px){
 body:has(>nav.ecrans:not([hidden])){background-color:var(--papier);background-image:linear-gradient(90deg,var(--carte) calc(var(--grille)*30),var(--trait) calc(var(--grille)*30),var(--trait) calc(var(--grille)*30 + 1px),var(--papier) calc(var(--grille)*30 + 1px));display:grid;grid-template-columns:calc(var(--grille)*30) minmax(0,1fr);align-items:start}
 body:has(>nav.ecrans:not([hidden]))>*{grid-column:2}body:has(>nav.ecrans:not([hidden]))>.barre{grid-column:1 / -1}
 body:has(>nav.ecrans:not([hidden]))>nav.ecrans{grid-column:1;grid-row:2 / span 4;flex-direction:column;flex-wrap:nowrap;position:sticky;top:var(--haut-barre);min-height:calc(100vh - var(--haut-barre));padding:calc(var(--grille)*2);border-bottom:0;background:transparent}
 nav.ecrans .groupe{flex-direction:column;flex-wrap:nowrap;align-items:stretch}
 nav.ecrans .groupe+.groupe{border-left:0;padding-left:0;border-top:1px solid var(--trait);padding-top:calc(var(--grille)*2);margin-top:var(--grille)}
 nav.ecrans .titre-groupe{display:block;padding:0 calc(var(--grille)*1.5) var(--grille)}
 nav.ecrans a.sous{padding-left:calc(var(--grille)*5)}
 }
@media (max-width:1279px){.console>.volet{order:-1}}
@media (min-width:1280px){.console{grid-template-columns:minmax(0,1fr) minmax(calc(var(--grille)*32),26%)}.console>.carte{padding:calc(var(--grille)*2)}.console>.volet{grid-column:2;grid-row:1;position:sticky;top:calc(var(--haut-barre) + var(--grille)*3);max-height:calc(100vh - var(--haut-barre) - var(--grille)*6);overflow:auto}.volet thead th{position:static}}
@media print{nav.ecrans{display:none}.carte,.volet{box-shadow:none}}

.texte-absent{display:inline-block;min-width:calc(var(--grille)*2);min-height:calc(var(--grille)*2);outline:thin dashed var(--refus);background:var(--refus-fond);color:var(--refus)}
.en-vol{cursor:progress}
.chaine-scan{list-style:none;margin:var(--grille) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--grille)}
.chaine-scan>li{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--grille);padding:var(--grille) 0;border-bottom:thin solid var(--trait)}
.porte{padding:calc(var(--grille)*2)}
.liste-en-ligne{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--grille)}
ul.liste-en-ligne{list-style:none;margin:0;padding:0}
.liste-en-ligne>li{margin:0;padding:0;border:0}
td.nombre .liste-en-ligne,.cles dd .liste-en-ligne{display:inline-flex;justify-content:flex-end}
.annonces:not(:empty){padding:calc(var(--grille)*2) calc(var(--grille)*2) 0}
input.jeton-saisi{font-family:var(--codes)}

html:not([data-etat="textes"]) main#vue::before{content:"";display:block;height:var(--grille);background-color:var(--trait);background-image:linear-gradient(90deg,var(--action),var(--action));background-repeat:no-repeat;background-size:25% 100%;animation:signe-sans-mot 1.6s linear infinite}
@keyframes signe-sans-mot{from{background-position:-34% 0}to{background-position:134% 0}}
@media (prefers-reduced-motion:reduce){html:not([data-etat="textes"]) main#vue::before{animation:none}}
