:root{
  color-scheme: dark;

  --fond:        #090E0C;  
  --surface-1:   #0E1612;  
  --surface-2:   #16201B;  
  --surface-3:   #1E2924;  
  --surface-4:   #293630;  
  --surface-5:   #35453E;  
  --surface-creux: #060B08; 
  --surface-nue: #121B17;  

  --bordure-douce:    #212C27;  
  --bordure:          #2C3A33;  
  --bordure-forte:    #43564D;  
  --bordure-controle: #6B8177;  
  --bordure-active:   #93A79C;  

  --texte-1: #EDF4EF;  
  --texte-2: #B7C8BE;  
  --texte-3: #8CA093;  
  --texte-4: #6A7E72;  
  

  --marque:         #5ABF6E;  
  --marque-vif:     #7BD98C;  
  --marque-clair:   #A5FFB5;  
  --marque-profond: #1E6B33;  
  --marque-bord:    #2E8A45;  
  --marque-survol:  #25803D;  
  --marque-appui:   #164F26;  
  --marque-sombre:  #195A26;  
  --marque-nuit:    #0F3A18;  
  --sur-marque:     #FFFFFF;  
  --lien:           #8FE3A0;  
  --marque-voile:   rgba(90,191,110,.10);   
  --marque-voile-2: rgba(90,191,110,.20);   
  --marque-trame:   rgba(90,191,110,.055);  
  --marque-trame-2: rgba(165,255,181,.045); 
  --jaune-blason:   #FFFF47;  

  --focus:        #FFFFFF;
  --focus-ombre:  #06100B;
  

  --t-rouge:       #D9301F;  --sur-rouge: #FFFFFF;  
  --t-rouge-bord:  #FF7A66;  
  --t-rouge-rail:  #FF5540;  
  --t-rouge-voile: #33100B;  

  --t-jaune:       #FF9500;  --sur-jaune: #231200;  
  --t-jaune-bord:  #FFC06B;  
  --t-jaune-rail:  #FFAE3D;  
  --t-jaune-voile: #33200A;  
  

  --t-vert:        #00A88F;  --sur-vert:  #04140F;  
  --t-vert-bord:   #57DCC6;  
  --t-vert-rail:   #2FC3AA;  
  --t-vert-voile:  #08261F;  
  

  --t-noir:        #0C0C10;  --sur-noir:  #FFFFFF;  
  --t-noir-bord:   #FFFFFF;  
  --t-noir-rail:   #E8E8EE;  
  --t-noir-voile:  #1A1A1F;  
  --t-noir-trame:  repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0 2px,transparent 2px 6px);

  --info:        #7EA8C4;  
  --info-voile:  #0E1D26;
  --info-bord:   #4E7A96;
  --alerte:      #B08CD9;  
  --alerte-voile:#1B1426;
  --alerte-bord: #8A63B5;
  

  --p-fond:    #FFFFFF;
  --p-papier:  #F6F3EA;  
  --p-fond-2:  #F4F7F4;
  --p-encre:   #0E1512;  
  --p-encre-2: #3D4A43;  
  --p-encre-3: #5F6E66;  
  --p-bord:    #C6D2C9;
  --p-trame:   #E7EDE8;
  --p-marque:  #12401C;  
  --p-rouge: #A81208;  --p-sur-rouge: #FFFFFF;  
  --p-jaune: #F2A100;  --p-sur-jaune: #241400;  
  --p-vert:  #0E7C63;  --p-sur-vert:  #FFFFFF;  
  --p-noir:  #0C0C10;  --p-sur-noir:  #FFFFFF;  

  --police:         system-ui,-apple-system,'Segoe UI Variable Text','Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --police-chiffres:ui-monospace,'Cascadia Mono','SF Mono',Menlo,Consolas,'Segoe UI Mono',monospace;

  --fs-scale: 1;
  --fs-2xs:  calc(11px*var(--fs-scale));  --lh-2xs: 14px;
  --fs-xs:   calc(12px*var(--fs-scale));  --lh-xs:  16px;
  --fs-sm:   calc(13px*var(--fs-scale));  --lh-sm:  18px;
  --fs-base: calc(15px*var(--fs-scale));  --lh-base:24px;
  --fs-inp:  16px;                        
  --fs-md:   calc(17px*var(--fs-scale));  --lh-md:  24px;
  --fs-lg:   calc(20px*var(--fs-scale));  --lh-lg:  26px;
  --fs-xl:   calc(24px*var(--fs-scale));  --lh-xl:  30px;
  --fs-2xl:  calc(30px*var(--fs-scale));  --lh-2xl: 34px;
  --fs-3xl:  calc(40px*var(--fs-scale));  --lh-3xl: 42px;
  --fs-chrono:calc(56px*var(--fs-scale)); --lh-chrono:56px;

  --ls-caps-xs: .14em;  
  --ls-caps:    .06em;  
  --ls-titre:   .02em;  
  --ls-code:    .08em;  

  --rail: 210px;    
  --rail-deploye: 236px;
  --barre-ctx:     56px;    
  --onglets-bas:   60px;    
  --contenu-max: 1720px;    
  --mesure:        68ch;    
  --col-saisie:   380px;    
  --col-action:   360px;    
  --col-aside:    340px;    
  --col-identite: 400px;    
  --col-a4:       210mm;    
  --tableau-max: 1440px;
  --gouttiere:  clamp(20px,2.2vw,40px);

  --e1:4px; --e2:8px; --e3:12px; --e4:16px; --e5:24px; --e6:32px; --e7:48px;
  --r-xs:4px; --r-s:8px; --r-m:12px; --r-l:16px; --r-xl:18px;
  --r-pill:999px;
  --r-vital:2px;  

  --cible-min:    44px;  
  --cible:        48px;  
  --cible-liste:  52px;  
  --cible-freq:   56px;  
  --cible-vitale: 64px;  
  --cible-enorme: 72px;

  --ombre-0:  0 1px 0 rgba(0,0,0,.35);
  --ombre-1:  0 1px 2px rgba(0,0,0,.45);
  --ombre-2:  0 8px 24px -14px rgba(0,0,0,.75);
  --ombre-3:  0 24px 60px -24px rgba(0,0,0,.90);
  --ombre-haut: 0 -8px 24px -12px rgba(0,0,0,.70); 
  --arete:    inset 0 1px 0 rgba(165,255,181,.06); 
  --ombre-doc: 0 1px 1px rgba(0,0,0,.35), 0 24px 48px -20px rgba(0,0,0,.65),
               inset 0 0 0 1px rgba(0,0,0,.06);

  --opacite-inactif: .55;
  --opacite-estompe: .72;

  --carte-fond: var(--surface-2);

  --t-1:  90ms;  
  --t-2: 140ms;  
  --t-3: 220ms;  
  --t-4: 320ms;  
  --t-rail: 160ms; 
  --c-sortie: cubic-bezier(.2,.8,.3,1);  
  --c-entree: cubic-bezier(.4,0,.2,1);   
  --c-appui:  cubic-bezier(.3,0,.1,1);   
  

  --tuile-croix: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2248%22 height=%2248%22%3E%3Cpath d=%22M20 12h8v8h8v8h-8v8h-8v-8h-8v-8h8z%22 fill=%22%23A5FFB5%22/%3E%3C/svg%3E');
  --tuile-ecg: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22240%22 height=%2228%22 viewBox=%220 0 240 28%22%3E%3Cpath d=%22M0 14h84l5-4 4 8 6-11 5 17 5-10h131%22 fill=%22none%22 stroke=%22%235ABF6E%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E');
  --tuile-chevron: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2216%22 height=%228%22%3E%3Cpath d=%22M0 8l8-7 8 7%22 fill=%22none%22 stroke=%22%235ABF6E%22 stroke-width=%222%22/%3E%3C/svg%3E');
}

@media (min-width:1024px) and (pointer:coarse){ :root{ --fs-scale:1.06 } }

[data-mur]{ --fs-scale:1.9 }               
@media (max-height:760px){
  :root{ --barre-ctx:48px; --e5:18px; --e6:24px; --fs-chrono:calc(40px*var(--fs-scale)) }
}
@media (prefers-contrast: more){
  :root{ --bordure:#6B8177; --bordure-forte:#93A79C;
         --texte-3:#B7C8BE; --texte-4:#8CA093 }
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms!important;
    animation-iteration-count:1!important; transition-duration:.001ms!important;
    scroll-behavior:auto!important }
}





*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }


html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }

body {
  font-family: var(--police);
  font-size: var(--fs-base); line-height: var(--lh-base);
  background: var(--fond); color: var(--texte-2);
  -webkit-font-smoothing: antialiased;
  overscroll-behavior: none;   
}

img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
input, select, textarea { font-size: var(--fs-inp); }   

a { color: var(--lien); text-decoration: none; }
@media (hover: hover) and (pointer: fine) { a:hover { text-decoration: underline; } }


button, a, label, summary { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
::selection { background: rgba(90,191,110,.35); color: var(--texte-1); }
input, textarea { caret-color: var(--marque-clair); }


:focus-visible {
  outline: 3px solid transparent;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus);
  border-radius: var(--r-xs);
}


.champ__saisie, .rail__item, .rail__quitter, .onglet, .btn-lien,
.tuile, .motif, .regime, .orient, .acte, .res, .res__bouton,
.etape-btn, .saut-section, .tableau tbody tr {
  transition: background-color var(--t-2) var(--c-sortie),
              border-color var(--t-2) var(--c-sortie),
              color var(--t-2) var(--c-sortie);
}


* { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.14) transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 4px; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.mono {
  font-family: var(--police-chiffres);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: 'zero' 1;
}


p, .sous-titre, .note, .champ__aide { max-width: var(--mesure); }


.trame-croix { position: relative; }
.trame-croix::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: var(--tuile-croix), var(--tuile-croix);
  background-size: 48px 48px; background-position: 0 0, 24px 24px;
  opacity: var(--alpha, .045);
  -webkit-mask-image: linear-gradient(180deg,#000 0%,rgba(0,0,0,.35) 55%,transparent 100%);
  mask-image: linear-gradient(180deg,#000 0%,rgba(0,0,0,.35) 55%,transparent 100%);
}
.trame-croix > * { position: relative; z-index: 1; }


.filet-ecg {
  height: 28px; border: 0; margin: var(--e5) 0;
  background: var(--tuile-ecg) repeat-x center / 240px 28px; opacity: .22;
}

.trame-mm {
  background-image:
    repeating-linear-gradient(0deg,var(--marque-trame-2) 0 1px,transparent 1px 8px),
    repeating-linear-gradient(90deg,var(--marque-trame-2) 0 1px,transparent 1px 8px),
    repeating-linear-gradient(0deg,var(--marque-trame) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(90deg,var(--marque-trame) 0 1px,transparent 1px 40px);
  -webkit-mask-image: radial-gradient(130% 90% at 50% 0%,#000 25%,rgba(0,0,0,.4) 60%,transparent 100%);
  mask-image: radial-gradient(130% 90% at 50% 0%,#000 25%,rgba(0,0,0,.4) 60%,transparent 100%);
}

@media (min-resolution: 1.25dppx), (max-width: 900px) {
  .trame-mm {
    background-image:
      repeating-linear-gradient(0deg,var(--marque-trame) 0 1px,transparent 1px 40px),
      repeating-linear-gradient(90deg,var(--marque-trame) 0 1px,transparent 1px 40px);
  }
}

.hachures {
  background-color: var(--surface-2);
  background-image: repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 6px,transparent 6px 12px);
}


.halo-blason { position: relative; isolation: isolate; }
.halo-blason::before {
  content: ''; position: absolute; z-index: -1; pointer-events: none;
  left: 50%; top: -90px; width: 640px; height: 640px; transform: translateX(-50%);
  background:
    repeating-conic-gradient(from 90deg at 50% 46%,rgba(165,255,181,.055) 0deg 3deg,transparent 3deg 18deg),
    radial-gradient(closest-side at 50% 46%,rgba(90,191,110,.26) 0%,rgba(90,191,110,.09) 45%,transparent 78%),
    radial-gradient(closest-side at 50% 46%,rgba(255,255,71,.06) 0%,transparent 55%);
  -webkit-mask-image: radial-gradient(closest-side at 50% 46%,#000 12%,rgba(0,0,0,.55) 45%,transparent 80%);
  mask-image: radial-gradient(closest-side at 50% 46%,#000 12%,rgba(0,0,0,.55) 45%,transparent 80%);
}



.zone-vitale {
  --carte-fond: var(--surface-nue);
  background-color: var(--carte-fond); border-radius: var(--r-m);
  padding: var(--e4); box-shadow: 0 0 0 1px var(--bordure);
  --marque-voile: transparent; --marque-voile-2: transparent;
  --marque-trame: transparent; --marque-clair: #AEC4B5; --marque: #AEC4B5;
}
.zone-vitale::before, .zone-vitale::after { content: none !important; }
.pave, .grav, .gravites, .frise__item, [data-triage], .zone-vitale * { background-image: none !important; }


body.coque { display: grid; grid-template-columns: var(--rail) minmax(0,1fr); min-height: 100svh; }

.rail {
  position: fixed; inset: 0 auto 0 0; width: var(--rail); z-index: 60;
  display: flex; flex-direction: column; align-items: stretch;
  background: linear-gradient(90deg,#0E1612,#0A100D);
  border-right: 1px solid var(--bordure);
  transition: width var(--t-rail) var(--c-sortie);
}

.rail__filet { height: 3px; flex: none; background: linear-gradient(90deg,var(--marque-sombre),var(--marque) 55%,var(--jaune-blason)); }
.rail__blason { display: flex; align-items: center; gap: var(--e3); padding: var(--e4) var(--e3); color: var(--texte-1); }
.rail__blason:hover { text-decoration: none; }
.rail__titre { display: grid; line-height: 1.15; }
.rail__titre b { font-size: var(--fs-sm); letter-spacing: var(--ls-caps); text-transform: uppercase; }
.rail__titre span { font-size: var(--fs-2xs); color: var(--texte-3); }
.rail__blason img { width: 44px; height: 44px; }
.rail__sep { height: 1px; background: var(--bordure-douce); margin: 0 var(--e3) var(--e3); }

.rail__nav { display: grid; gap: 2px; padding: 0 var(--e2); }
.rail__item {
  display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: var(--e3);
  min-height: var(--cible); padding: 0 var(--e3); border-radius: var(--r-s);
  color: var(--texte-3);
}
.rail__item svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.6; }

.rail__lib { font-size: var(--fs-base); line-height: 1.2; }

@media (hover: hover) and (pointer: fine) {
  .rail__item:hover, .rail__quitter:hover { background: rgba(255,255,255,.04); color: var(--texte-1); text-decoration: none; }
}

.rail__item[aria-current="page"] {
  background: var(--marque-voile); color: #FFFFFF;
  box-shadow: inset 0 0 0 1px var(--marque-bord);
}

.rail__item[aria-current="page"]:focus-visible {
  box-shadow: inset 0 0 0 1px var(--marque-bord),
              0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus);
}
.rail__bas { margin-top: auto; padding: var(--e4) var(--e3) calc(var(--e4) + env(safe-area-inset-bottom)); display: grid; gap: var(--e3); }
.rail__action { padding-top: var(--e5); }
.rail__quitter { display: grid; place-items: center; min-height: var(--cible-min); color: var(--texte-3); font-size: var(--fs-sm); border-radius: var(--r-s); }
.rail__agent { display: grid; gap: 4px; justify-items: start; padding-top: var(--e3); border-top: 1px solid var(--bordure-douce); }
.rail__agent-nom { font-size: var(--fs-sm); color: var(--texte-1); font-weight: 600; }
.rail__agent-grade { font-size: var(--fs-2xs); color: var(--texte-3); }


.pastille-svc {
  display: inline-flex; align-items: center; gap: 6px; justify-content: center;
  padding: 5px 10px; border-radius: var(--r-pill);
  background: var(--surface-4); box-shadow: inset 0 0 0 1px var(--marque-bord);
  font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--ls-caps); color: var(--texte-1);
}
.pastille-svc__pt { width: 8px; height: 8px; border-radius: 50%; background: var(--marque); flex: none; }
.pastille-svc--off { box-shadow: inset 0 0 0 1px var(--bordure-forte); color: var(--texte-3); }
.pastille-svc--off .pastille-svc__pt { background: var(--texte-4); }


.barre-ctx {
  position: sticky; top: 0; z-index: 40; height: var(--barre-ctx);
  display: flex; align-items: center; gap: var(--e4);
  
  padding-inline: max(var(--gouttiere), calc((100% - var(--contenu-max)) / 2 + var(--gouttiere)));
  padding-block: 0;
  background: rgba(9,14,12,.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--bordure);
}
.barre-ctx::after {          
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 14px;
  background: var(--tuile-ecg) repeat-x 0 -7px / 240px 28px; opacity: .30; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image: linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.barre-ctx__titre { font-size: var(--fs-md); font-weight: 600; color: var(--texte-1); letter-spacing: var(--ls-titre); }
.barre-ctx__actions { margin-left: auto; display: flex; align-items: center; gap: var(--e3); }


.colonne { grid-column: 2; min-width: 0; display: flex; flex-direction: column; }

.contenu {
  width: 100%; max-width: var(--contenu-max); margin-inline: auto;
  padding: var(--e5) var(--gouttiere) var(--e7);
}


.saut-contenu {
  position: fixed; top: 0; left: 0; z-index: 100;
  transform: translateY(-200%);
  display: inline-flex; align-items: center;
  min-height: var(--cible-min); margin: var(--e2); padding: 0 var(--e4);
  background: var(--surface-4); color: var(--texte-1);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s);
  font-size: var(--fs-base); font-weight: 650;
}
.saut-contenu:focus { transform: translateY(0); }


.contenu:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; box-shadow: none; }


.grille-accueil {
  display: grid; gap: var(--e5); grid-template-columns: minmax(0,1fr);
  align-items: start; align-content: start;
}
@media (min-width: 1024px) { .grille-accueil { grid-template-columns: var(--col-saisie) minmax(0,1fr); } }
@media (min-width: 1280px) { .grille-accueil { grid-template-columns: var(--col-saisie) minmax(0,1fr) var(--col-aside); } }


.titre-page { font-size: var(--fs-2xl); line-height: var(--lh-2xl); color: var(--texte-1); letter-spacing: var(--ls-titre); }
.titre-section { font-size: var(--fs-xl); line-height: var(--lh-xl); color: var(--texte-1); }

.titre-bloc {
  font-size: var(--fs-base); letter-spacing: var(--ls-caps); text-transform: uppercase;
  color: var(--texte-1); margin-bottom: var(--e3);
}

h3.titre-bloc { text-transform: none; letter-spacing: 0; color: var(--texte-2); }
.etiquette { font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs); text-transform: uppercase; color: var(--texte-3); }
.sous-titre { color: var(--texte-2); }
.note { font-size: var(--fs-sm); color: var(--texte-3); }
.vide { color: var(--texte-3); padding: var(--e5) 0; text-align: center; }



.carte {
  position: relative;
  background: var(--carte-fond);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-m);
  padding: calc(var(--e5) + 4px);
  box-shadow:
    inset 0 0 0 4px var(--carte-fond),
    inset 0 0 0 5px var(--bordure-douce),
    var(--ombre-1);
}

.carte--majeure {
  border-color: var(--marque-bord);
  box-shadow:
    inset 0 0 0 4px var(--carte-fond),
    inset 0 0 0 5px rgba(90,191,110,.34),
    var(--ombre-1);
}

.carte--creuse { --carte-fond: var(--surface-1); }
.carte__tete { display: flex; align-items: baseline; gap: var(--e3); margin-bottom: var(--e4); }
fieldset.carte { min-width: 0; }
fieldset.carte > legend { padding-inline: var(--e2); margin-left: calc(-1 * var(--e2)); }
.carte__tete .titre-bloc { margin-bottom: 0; }



.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e2);
  min-height: var(--cible); padding: 0 var(--e5); border-radius: var(--r-s);
  border: 1px solid transparent; font-weight: 650; letter-spacing: .01em;
  cursor: pointer; text-align: center;
  transition: background var(--t-2) var(--c-sortie), border-color var(--t-2) var(--c-sortie),
              transform var(--t-1) var(--c-appui);
}
.btn:active { transform: scale(.985); }
.btn[aria-busy="true"], .btn:disabled { opacity: var(--opacite-inactif); cursor: progress; }
.btn--primaire { background: var(--marque-profond); border-color: var(--marque-bord); color: var(--sur-marque); }
.btn--fantome { background: transparent; border-color: var(--bordure-controle); color: var(--texte-1); }
.btn--discret { background: transparent; border-color: transparent; color: var(--lien); min-height: var(--cible-min); padding: 0 var(--e3); }
@media (hover: hover) and (pointer: fine) {
  .btn--primaire:hover { background: var(--marque-survol); }
  .btn--fantome:hover { background: var(--surface-3); border-color: var(--bordure-active); }
}
.btn--primaire:active { background: var(--marque-appui); }
.btn--grand { min-height: var(--cible-freq); width: 100%; }
.btn--enorme { min-height: var(--cible-enorme); width: 100%; font-size: var(--fs-md); }


.champ { display: grid; gap: 6px; }
.champ__label { font-size: var(--fs-xs); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--texte-3); }
.champ__saisie {
  width: 100%; min-height: var(--cible); padding: 0 var(--e3);
  background: var(--surface-3); color: var(--texte-1); caret-color: var(--marque-clair);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s);
  scroll-margin-block: 120px;
}

.champ__saisie::placeholder { color: var(--texte-3); opacity: 1; }
@media (hover: hover) and (pointer: fine) { .champ__saisie:hover { border-color: var(--bordure-active); } }
.champ__saisie:focus-visible { border-color: var(--marque); }

.champ__saisie--compact { min-height: var(--cible-min); font-size: var(--fs-sm); }
.champ__saisie--nombre { font-family: var(--police-chiffres); text-align: right; }
.champ__zone { min-height: 108px; max-width: 760px; padding: var(--e3); line-height: 1.55; resize: vertical; }
.champ__aide { font-size: var(--fs-sm); color: var(--texte-3); }


.champ--erreur .champ__saisie { border: 2px solid var(--alerte-bord); }
.champ__err { font-size: var(--fs-sm); color: var(--alerte); }
.bloc-alerte {
  background: var(--alerte-voile); border: 1px solid var(--alerte-bord);
  color: var(--alerte); padding: var(--e3) var(--e4); border-radius: var(--r-s);
  margin: var(--e4) 0; list-style-position: inside;
}
.bloc-info {
  background: var(--info-voile); border: 1px solid var(--info-bord);
  color: var(--info); padding: var(--e3) var(--e4); border-radius: var(--r-s);
}



.pave {
  display: inline-grid; place-items: center; min-width: 44px; padding: 3px 8px;
  border-radius: var(--r-vital); font-weight: 800; font-size: var(--fs-xs);
  letter-spacing: var(--ls-code); font-family: var(--police-chiffres);
}
.pave--rouge { background: var(--t-rouge); color: var(--sur-rouge); }
.pave--jaune { background: var(--t-jaune); color: var(--sur-jaune); }
.pave--vert  { background: var(--t-vert);  color: var(--sur-vert); }

.pave--noir  { background: var(--t-noir); color: var(--sur-noir); box-shadow: inset 0 0 0 2px var(--t-noir-bord); }

.gravites { display: grid; gap: var(--e2); }
.grav {
  display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: var(--e3);
  min-height: var(--cible-vitale); padding: 0 var(--e4) 0 0; text-align: left;
  background: var(--surface-3); color: var(--texte-1);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s);
  cursor: pointer; font-weight: 700;
}
.grav__code {
  align-self: stretch; display: grid; place-items: center;
  font-family: var(--police-chiffres); font-weight: 800; letter-spacing: var(--ls-code);
  border-radius: var(--r-s) 0 0 var(--r-s); font-size: var(--fs-sm);
}
.grav--rouge .grav__code { background: var(--t-rouge); color: var(--sur-rouge); }
.grav--jaune .grav__code { background: var(--t-jaune); color: var(--sur-jaune); }
.grav--vert  .grav__code { background: var(--t-vert);  color: var(--sur-vert); }
.grav--noir  .grav__code { background: var(--t-noir);  color: var(--sur-noir); box-shadow: inset 0 0 0 2px var(--t-noir-bord); }
.grav__lib { font-size: var(--fs-sm); letter-spacing: var(--ls-caps); text-transform: uppercase; }

.grav--rouge[aria-checked="true"] { background: var(--t-rouge-voile); border: 2px solid var(--t-rouge-bord); }
.grav--jaune[aria-checked="true"] { background: var(--t-jaune-voile); border: 2px solid var(--t-jaune-bord); }
.grav--vert[aria-checked="true"]  { background: var(--t-vert-voile);  border: 2px solid var(--t-vert-bord); }
.grav--noir[aria-checked="true"]  { background: var(--t-noir-voile);  border: 2px solid var(--t-noir-bord); }
.grav--rouge:has(:checked) { background: var(--t-rouge-voile); border: 2px solid var(--t-rouge-bord); }
.grav--jaune:has(:checked) { background: var(--t-jaune-voile); border: 2px solid var(--t-jaune-bord); }
.grav--vert:has(:checked)  { background: var(--t-vert-voile);  border: 2px solid var(--t-vert-bord); }
.grav--noir:has(:checked)  { background: var(--t-noir-voile);  border: 2px solid var(--t-noir-bord); }

.grav:has(:focus-visible) { box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus); }


.fiche-grille { display: grid; gap: var(--e5); align-items: start; align-content: start; }
.fiche-col { display: grid; gap: var(--e4); align-content: start; min-width: 0; }

.duo { display: grid; gap: var(--e3); grid-template-columns: repeat(2,minmax(0,1fr)); }

.entete-page { margin-bottom: var(--e5); display: flex; flex-wrap: wrap; align-items: center; gap: var(--e3); }
.entete-page > h1 { flex: 1 1 100%; }
.entete-page .onglets { flex: 1 1 auto; margin-bottom: 0; }
.entete-page .saut-section { flex: 0 0 auto; margin-left: auto; }
.centre-cell { text-align: center; }


.grille-patients, .grille-patient {
  display: grid; gap: var(--e5); grid-template-columns: minmax(0,1fr);
  align-items: start; align-content: start;
}
@media (min-width: 1024px) {
  .grille-patients { grid-template-columns: minmax(0,1fr) var(--col-aside); }
  .grille-patient  { grid-template-columns: var(--col-identite) minmax(0,1fr); }
}

@media (min-width: 1480px) {
  .grille-patient { grid-template-columns: var(--col-identite) minmax(0,1fr) var(--col-aside); }
}

@media (min-width: 1024px) { .fiche-grille--3 { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
@media (min-width: 1280px) { .fiche-grille--3 { grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); } }

.recherche { display: flex; gap: var(--e2); }
.recherche__saisie { flex: 1; min-height: var(--cible-freq); font-size: var(--fs-md); }



.bandeau-alertes {
  display: flex; gap: var(--e3); flex-wrap: wrap; align-items: center;
  margin-bottom: var(--e4);
  border: 1px solid var(--t-rouge-rail);
  box-shadow: inset 0 0 0 4px var(--surface-nue), inset 0 0 0 5px rgba(255,85,64,.28);
  padding: calc(var(--e3) + 4px) calc(var(--e4) + 4px);
}
.alerte-chip { font-weight: 800; font-size: var(--fs-sm); letter-spacing: var(--ls-caps); color: var(--t-rouge-bord); }

.alertes-vide { background: var(--surface-1); border-radius: var(--r-s); padding: var(--e2) var(--e4); color: var(--texte-3); font-size: var(--fs-sm); margin-bottom: var(--e4); max-width: none; }


.bandeau-ua {
  background-color: var(--t-rouge);
  background-image: repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 8px,transparent 8px 16px);
  color: var(--sur-rouge); font-weight: 800; letter-spacing: .10em; text-transform: uppercase;
  padding: var(--e3) var(--e4); border-radius: var(--r-vital); margin-bottom: var(--e4);
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.25); max-width: none;
}

.etapes-barre { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--e2); }
.etape-btn {
  display: grid; place-items: center; gap: 2px; min-height: var(--cible-vitale);
  background: var(--surface-3); color: var(--texte-2);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s); cursor: pointer;
}
.etape-btn__nom { font-size: var(--fs-2xs); letter-spacing: var(--ls-caps); text-transform: uppercase; }
.etape-btn__h { font-family: var(--police-chiffres); font-size: var(--fs-lg); color: var(--texte-3); }
.etape-btn--suivant { border: 2px solid var(--marque-bord); background: var(--marque-voile); color: var(--texte-1); }
.etape-btn--fait { background: var(--surface-2); color: var(--texte-2); cursor: default; }
.etape-btn--fait .etape-btn__h { color: var(--marque-clair); }
.etape-btn[aria-disabled="true"] { cursor: default; }

.etape-btn[aria-disabled="true"]:not(.etape-btn--fait) { opacity: var(--opacite-inactif); }
@media (hover: hover) and (pointer: fine) {
  .etape-btn:not([aria-disabled="true"]):hover { border-color: var(--marque-vif); }
}



.motifs { display: grid; gap: var(--e2); grid-template-columns: 1fr 1fr; }
.motif { padding-inline: var(--e3); }
.motif {
  
  min-height: var(--cible-freq); padding: var(--e2) var(--e3); text-align: left;
  white-space: normal; overflow-wrap: anywhere; line-height: 1.25;
  display: flex; align-items: center;
  background: var(--surface-2); color: var(--texte-1);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s); cursor: pointer;
  font-size: var(--fs-sm); letter-spacing: var(--ls-caps); text-transform: uppercase;
}
@media (hover: hover) and (pointer: fine) { .motif:hover { background: var(--surface-3); border-color: var(--bordure-active); } }

.motif[aria-checked="true"] {
  background: var(--marque-voile-2); border: 2px solid var(--marque-bord);
  padding: calc(var(--e2) - 1px) calc(var(--e3) - 1px);
  color: #FFFFFF;
}


.actes { display: grid; gap: var(--e1); }
@media (min-width: 1024px) and (min-height: 700px) {
  .actes { max-height: 46vh; overflow-y: auto; padding-right: var(--e1); overscroll-behavior: contain; }
}
.acte {
  display: flex; align-items: center; gap: var(--e3); min-height: var(--cible-liste);
  padding: 0 var(--e3); background: var(--surface-2);
  border: 1px solid var(--bordure); border-radius: var(--r-s); cursor: pointer;
}
@media (hover: hover) and (pointer: fine) { .acte:hover { background: var(--surface-3); border-color: var(--bordure-forte); } }
.acte__case { width: 22px; height: 22px; accent-color: var(--marque-profond); flex: none; }
.acte__nom { flex: 1; font-size: var(--fs-sm); }
.acte__h { min-width: 52px; text-align: right; font-family: var(--police-chiffres); color: var(--texte-4); }

.acte--fait, .acte--fait:hover { background: var(--marque-voile); box-shadow: inset 0 0 0 1px var(--marque-bord); }
.acte--fait .acte__h { color: var(--marque-clair); }

.orientations { display: grid; gap: var(--e2); grid-template-columns: repeat(2,minmax(0,1fr)); }
.orient {
  min-height: var(--cible-liste); padding: 0 var(--e3);
  background: var(--surface-2); color: var(--texte-1);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s);
  cursor: pointer; font-size: var(--fs-sm);
}
@media (hover: hover) and (pointer: fine) { .orient:hover { background: var(--surface-3); border-color: var(--bordure-active); } }
.orient[aria-checked="true"] { background: var(--marque-voile-2); border: 2px solid var(--marque-bord); padding: 0 calc(var(--e3) - 1px); color: #FFFFFF; }

.destination--cachee { display: none; }

.bloc-repli { background: var(--surface-2); border: 1px solid var(--bordure); border-radius: var(--r-m); padding: var(--e4); }
.bloc-repli summary { cursor: pointer; color: var(--texte-2); margin-bottom: var(--e3); }


.col-action { position: sticky; top: calc(var(--barre-ctx) + var(--e5)); display: grid; gap: var(--e3); }
.etat-saisie { font-size: var(--fs-sm); color: var(--texte-3); min-height: 20px; }
.etat-saisie--erreur { color: var(--alerte); font-weight: 600; }


.res-grille { display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); align-content: start; }
.res {
  display: grid; gap: 4px; padding: var(--e3) var(--e4); min-height: 72px; align-content: center;
  background: var(--surface-2); border: 1px solid var(--bordure);
  border-radius: var(--r-s); color: var(--texte-2);
}
@media (hover: hover) and (pointer: fine) { .res:hover { background: var(--surface-3); border-color: var(--bordure-forte); text-decoration: none; } }
.res__nom { font-size: var(--fs-md); color: var(--texte-1); }
.res__meta { font-size: var(--fs-xs); color: var(--texte-3); display: flex; gap: var(--e2); align-items: center; flex-wrap: wrap; }
.etiq { font-size: var(--fs-2xs); letter-spacing: var(--ls-caps); text-transform: uppercase; padding: 2px 8px; border-radius: var(--r-pill); }
.etiq--nn { background: var(--surface-4); color: var(--texte-2); }
.etiq--alerte { background: var(--alerte-voile); color: var(--alerte); box-shadow: inset 0 0 0 1px var(--alerte-bord); }

.frise { list-style: none; display: grid; gap: var(--e2); }


.frise__item {
  display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: var(--e3);
  padding: var(--e3) var(--e4); background: var(--surface-2); border-radius: var(--r-s);
  border: 1px solid var(--bordure);
}
.frise__date { font-family: var(--police-chiffres); font-size: var(--fs-xs); color: var(--texte-3); white-space: nowrap; }
.frise__item > :last-child { min-width: 0; display: grid; gap: 2px; }
.frise__titre { color: var(--texte-1); font-weight: 600; overflow-wrap: anywhere; }
.frise__meta { font-size: var(--fs-xs); color: var(--texte-3); overflow-wrap: anywhere; }

.equipe { list-style: none; display: grid; gap: var(--e1); }

.equipe__ligne { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e3); padding: var(--e3); background: var(--surface-2); border-radius: var(--r-s); }
.equipe__ind { font-family: var(--police-chiffres); font-weight: 700; color: var(--marque-clair); min-width: 66px; font-size: var(--fs-sm); }
.equipe__nom { color: var(--texte-1); min-width: 0; overflow-wrap: anywhere; }
.equipe__grade { margin-left: auto; font-size: var(--fs-xs); color: var(--texte-3); }
.equipe__duree { font-family: var(--police-chiffres); font-size: var(--fs-sm); color: var(--texte-2); }

.chiffres { display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); }

.chiffre { background: var(--surface-3); border: 1px solid var(--bordure); border-radius: var(--r-s); padding: var(--e3) var(--e4); }

.chiffre dt { font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs); text-transform: uppercase; color: var(--texte-3); overflow-wrap: anywhere; }
.chiffre dd { font-family: var(--police-chiffres); font-variant-numeric: tabular-nums; font-size: var(--fs-xl); color: var(--texte-1); margin-top: 2px; }

.chrono { font-family: var(--police-chiffres); font-variant-numeric: tabular-nums; font-size: var(--fs-chrono); line-height: var(--lh-chrono); color: var(--marque-clair); }

.tableau { width: 100%; max-width: var(--tableau-max); border-collapse: collapse; font-size: var(--fs-sm); }
.tableau th { text-align: left; font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs); text-transform: uppercase; color: var(--texte-3); padding: var(--e2) var(--e3); background: var(--surface-3); }
.tableau td { padding: var(--e3); border-bottom: 1px solid var(--bordure-douce); }
@media (hover: hover) and (pointer: fine) { .tableau tbody tr:hover { background: var(--surface-2); } }

.onglets { display: flex; gap: var(--e4); border-bottom: 1px solid var(--bordure); margin-bottom: var(--e5); }
.onglet { padding: var(--e3) 0; color: var(--texte-3); border-bottom: 2px solid transparent; }
.onglet--actif { color: var(--texte-1); border-bottom-color: var(--marque); }

@media (hover: hover) and (pointer: fine) {
  .onglet:hover, .btn-lien:hover { color: var(--texte-1); }
}

.compteur-nb { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--r-pill); background: var(--surface-4); color: var(--texte-1); font-size: var(--fs-2xs); font-weight: 700; }


.liste-alertes { list-style: none; display: grid; gap: var(--e1); }
.liste-alertes li { display: flex; justify-content: space-between; align-items: center; gap: var(--e3); padding: var(--e2) var(--e3); background: var(--surface-2); border-radius: var(--r-s); font-size: var(--fs-sm); }
.btn-lien { background: none; border: 0; color: var(--texte-3); cursor: pointer; font-size: var(--fs-sm); text-decoration: underline; }


.centre { min-height: 100svh; display: grid; place-items: center; padding: var(--e5); }

.carte-connexion {
  width: 100%; max-width: 460px; text-align: center;
  background: var(--carte-fond); border: 1px solid var(--bordure-forte);
  border-radius: var(--r-l); padding: var(--e7) var(--e5);
  box-shadow: inset 0 0 0 4px var(--carte-fond), inset 0 0 0 5px var(--bordure-douce), var(--ombre-2);
}
.carte-connexion p, .carte-connexion .note { max-width: none; }
.logo-connexion { margin: 0 auto var(--e4); }
.btn--discord { background: #5865F2; border-color: #4752c4; color: #fff; width: 100%; min-height: var(--cible-freq); }
.etapes { display: grid; gap: var(--e2); text-align: left; margin: var(--e5) 0; }
.etape { display: flex; align-items: center; gap: var(--e3); padding: var(--e3); border: 1px solid var(--bordure); border-radius: var(--r-s); color: var(--texte-2); }
.etape span { display: grid; place-items: center; width: 26px; height: 26px; flex: none; border-radius: 50%; font-size: var(--fs-xs); font-weight: 700; background: var(--surface-4); color: var(--texte-3); }
.etape--faite span { background: var(--marque-profond); color: #fff; }
.etape--attente { border-color: var(--info-bord); }
.etape--attente span { background: var(--info-voile); color: var(--info); }



.actions-doc { display: flex; flex-wrap: wrap; gap: var(--e3); margin-bottom: var(--e4); }
.document {
  max-width: var(--col-a4); margin: 0 auto; padding: clamp(20px,4vw,44px);
  color: var(--p-encre); border-radius: var(--r-xs);
  background-color: var(--p-papier);
  background-image:
    repeating-linear-gradient(92deg,rgba(120,105,75,.030) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(178deg,rgba(120,105,75,.022) 0 1px,transparent 1px 4px),
    repeating-linear-gradient(31deg,rgba(120,105,75,.014) 0 1px,transparent 1px 7px),
    radial-gradient(150% 120% at 50% 0%,rgba(255,255,255,.75),rgba(190,178,150,.20));
  box-shadow: var(--ombre-doc);
}
.document p { max-width: none; }

.document::before { content: ''; display: block; height: 3px; margin: -1px -1px var(--e4); background: linear-gradient(90deg,var(--marque-sombre) 0%,var(--marque) 45%,var(--marque-sombre) 100%); }
.document__entete { display: flex; align-items: center; gap: var(--e4); border-bottom: 2px solid var(--p-encre); padding-bottom: var(--e3); }
.document__etab { font-size: var(--fs-md); font-weight: 700; }
.document__service { font-size: var(--fs-xs); color: var(--p-encre-3); }
.document__ref { margin-left: auto; text-align: right; }
.document__tampon { display: inline-block; margin-top: var(--e2); padding: 2px 10px; border: 2px solid var(--p-marque); color: var(--p-marque); border-radius: var(--r-xs); font-weight: 800; letter-spacing: .14em; font-size: var(--fs-xs); transform: rotate(-3deg); }
.document__titre { font-size: var(--fs-xl); margin: var(--e5) 0 var(--e4); }
.document__grille { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e3) var(--e5); margin-bottom: var(--e5); }
.document__grille span { display: block; font-size: var(--fs-2xs); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--p-encre-3); }
.document__bloc { margin-bottom: var(--e5); }
.document__bloc h2 { font-size: var(--fs-xs); letter-spacing: var(--ls-caps-xs); text-transform: uppercase; color: var(--p-encre-3); border-bottom: 1px solid var(--p-bord); padding-bottom: 4px; margin-bottom: var(--e3); }
.document__chrono { list-style: none; display: flex; gap: var(--e5); flex-wrap: wrap; }
.document__chrono li { display: grid; }
.document__chrono span:first-child { font-size: var(--fs-2xs); text-transform: uppercase; color: var(--p-encre-3); }
.document__table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.document__table th, .document__table td { text-align: left; padding: 6px 4px; border-bottom: 1px solid var(--p-bord); }
.document__table tfoot th { border-top: 2px solid var(--p-encre); border-bottom: 0; }
.document__prix { text-align: right; }
.document__obs { white-space: pre-wrap; max-width: none; }
.document__signature { border-top: 2px solid var(--p-encre); padding-top: var(--e3); font-size: var(--fs-sm); }
.document__mention { margin-top: var(--e3); font-size: var(--fs-xs); color: var(--p-encre-3); font-style: italic; }
.doc-triage { display: inline-block; padding: 3px 10px; border: 2px solid var(--p-encre); font-weight: 800; letter-spacing: .12em; }



@media (max-width: 1023px) {
  .col-action {
    position: fixed; inset: auto 0 0 0; z-index: 50;
    grid-auto-flow: column; align-items: center; gap: var(--e3);
    background: var(--surface-creux); border-top: 1px solid var(--bordure);
    padding: var(--e3) var(--gouttiere) calc(var(--e3) + env(safe-area-inset-bottom));
    box-shadow: var(--ombre-haut);
  }
  .fiche-grille { padding-bottom: 96px; }
}

@media (max-width: 899px) {
  body.coque { grid-template-columns: minmax(0,1fr); }
  .colonne { grid-column: 1; }   
  .rail {
    inset: auto 0 0 0; width: 100%; height: calc(var(--onglets-bas) + env(safe-area-inset-bottom));
    flex-direction: row; align-items: center;
    border-right: 0; border-top: 1px solid var(--bordure);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .rail__filet, .rail__blason, .rail__sep, .rail__action, .rail__quitter, .rail__agent { display: none; }
  
  .rail__nav {
    grid-auto-flow: column; width: 100%; padding: 0;
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
  }
  .rail__item { min-height: var(--onglets-bas); }
  
  .rail__item:focus-visible,
  .rail__item[aria-current="page"]:focus-visible {
    box-shadow: inset 0 0 0 2px var(--focus-ombre), inset 0 0 0 5px var(--focus);
  }
  .rail__bas { margin: 0; padding: 0; }
  .contenu { padding-bottom: calc(var(--onglets-bas) + env(safe-area-inset-bottom) + var(--e4)); }
  .col-action { bottom: calc(var(--onglets-bas) + env(safe-area-inset-bottom)); }
}

@media (min-width: 900px) and (max-height: 760px) {
  .rail { overflow-y: auto; overscroll-behavior-y: contain; }
}

@media (max-width: 560px) {
  .motifs, .orientations { grid-template-columns: minmax(0,1fr); }
  .frise__item { grid-template-columns: auto minmax(0,1fr); }
  .frise__date { grid-column: 2; }
}
@media (pointer: coarse) {
  :root { --cible: 52px; --cible-liste: 56px; --cible-freq: 60px; }
}

@media print {
  
  .rail, .barre-ctx, .actions-doc, .col-action, .saut-contenu { display: none !important; }
  body.coque { display: block; }
  body { background: #fff; color: #000; }
  .contenu { padding: 0; max-width: none; }
  .document { max-width: none; padding: 0; box-shadow: none; background: #fff !important; background-image: none !important; }
  .document::before { background: #000 !important; height: 3px; }
  
  .doc-triage { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .doc-triage--ua { background: #000; color: #fff; }
  .doc-triage--ur { background-image: repeating-linear-gradient(45deg,#000 0 1px,transparent 1px 5px); }
  .doc-triage--nu { background-image: radial-gradient(#000 .8px,transparent .9px); background-size: 5px 5px; }
  .doc-triage--dcd { background-image: repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#000 0 1px,transparent 1px 4px); }
  @page { size: A4; margin: 14mm; }
}




.ctx-patient { display: inline-flex; align-items: baseline; gap: var(--e2); color: var(--texte-1); font-weight: 600; }
.ctx-patient .mono { font-size: var(--fs-xs); color: var(--texte-3); font-weight: 400; }
.ctx-patient--vide { color: var(--lien); font-weight: 400; }


.carte > * + *,
.carte-connexion > * + *,
.contenu > * + * { margin-top: var(--e4); }
.carte > .titre-bloc + *,
.carte-connexion > .etiquette + * { margin-top: var(--e2); }
.carte > p + p { margin-top: var(--e3); }

.carte > form + *, .carte > * + form { margin-top: var(--e5); }

.titre-hero {
  font-size: var(--fs-2xl); line-height: var(--lh-2xl);
  color: var(--texte-1); letter-spacing: var(--ls-titre);
}
.lien { color: var(--lien); }
.formulaire { display: grid; gap: var(--e4); text-align: left; }
.barre-actions { display: flex; gap: var(--e3); flex-wrap: wrap; }
.btn--large { min-height: var(--cible-freq); width: 100%; }


.attente-nom { font-size: var(--fs-lg); font-weight: 700; color: var(--texte-1); }


.alerte-bloc {
  background: var(--alerte-voile); border: 1px solid var(--alerte-bord);
  color: var(--alerte); padding: var(--e3) var(--e4); border-radius: var(--r-s);
  text-align: left; list-style-position: inside; max-width: none;
}


.pastille-nb {
  display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 7px;
  border-radius: var(--r-pill); background: var(--info-voile); color: var(--info);
  box-shadow: inset 0 0 0 1px var(--info-bord);
  font-size: var(--fs-2xs); font-weight: 700; font-variant-numeric: tabular-nums;
}


.tableau--formulaire td { padding: var(--e2); vertical-align: middle; }
.tableau--formulaire .champ__saisie { width: 100%; }

.document__logo { flex: none; }


.carte-vide {
  width: 100%; max-width: 520px; text-align: center;
  background: var(--carte-fond); border: 1px solid var(--bordure-forte);
  border-radius: var(--r-l); padding: var(--e7) var(--e5);
  box-shadow: inset 0 0 0 4px var(--carte-fond), inset 0 0 0 5px var(--bordure-douce), var(--ombre-2);
}
.carte-vide > * + * { margin-top: var(--e4); }
.code-erreur {
  font-family: var(--police-chiffres); font-size: var(--fs-3xl);
  line-height: 1; color: var(--marque-clair);
}




.bandeau-situation { margin-bottom: var(--e5); }


.tuiles { display: grid; gap: var(--e2); grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.tuile {
  display: grid; gap: 4px; align-content: center;
  min-height: 76px; padding: var(--e2) var(--e3);
  background: var(--surface-2); color: var(--texte-1);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s);
  cursor: pointer;
}
@media (hover: hover) and (pointer: fine) { .tuile:hover { background: var(--surface-3); border-color: var(--bordure-active); } }
.tuile__code { font-family: var(--police-chiffres); font-size: var(--fs-md); letter-spacing: var(--ls-code); }
.tuile__code--texte { font-family: var(--police); letter-spacing: 0; font-weight: 600; }
.tuile__etat { font-size: var(--fs-2xs); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--texte-3); }


.tuile--occupee { border-color: var(--info-bord); }
.tuile--occupee, .tuile--occupee:hover {
  background-color: var(--info-voile);
  background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.035) 0 6px, transparent 6px 12px);
}
.tuile--occupee .tuile__etat { color: var(--info); }
input:checked + .tuile {
  background: var(--marque-voile-2); border: 2px solid var(--marque-bord);
  padding: calc(var(--e2) - 1px) calc(var(--e3) - 1px);
  color: #FFFFFF;
}
input:focus-visible + .tuile { box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus); }

.details-discret, .details-danger { margin-top: var(--e5); }
.details-discret summary, .details-danger summary {
  cursor: pointer; color: var(--texte-3); font-size: var(--fs-sm);
  padding: var(--e2) 0;
}
.details-danger summary { color: var(--alerte); }
.details-danger[open] { border: 1px solid var(--alerte-bord); border-radius: var(--r-s); padding: var(--e4); background: var(--alerte-voile); }


.hist { display: flex; align-items: flex-end; gap: 3px; height: 72px; padding-top: var(--e2);
        min-width: 0; overflow-x: auto; }

.hist__barre {
  flex: 1; min-width: 4px; border-radius: 2px 2px 0 0;
  min-height: 2px;
  background: var(--surface-4);
  box-shadow: inset 0 0 0 1px var(--marque-bord);
}
.hist__barre--h0 { background: var(--surface-3); box-shadow: none; }


.pointeuse { grid-column: 1 / -1; }
@media (min-width: 1024px) { .grille-accueil:has(.pointeuse) { grid-template-columns: minmax(0,1fr) var(--col-aside); } }


.grille-urgences {
  display: grid; gap: var(--e5); grid-template-columns: minmax(0,1fr);
  align-items: start; align-content: start;
}

@media (min-width: 1240px) { .grille-urgences { grid-template-columns: minmax(0,1fr) var(--col-saisie); } }


.urg-file { list-style: none; display: grid; gap: var(--e1); container-type: inline-size; }


.urg-bande {
  display: flex; align-items: center; gap: var(--e3);
  padding: var(--e4) var(--e2) var(--e2);
  font-size: var(--fs-xs); letter-spacing: var(--ls-caps-xs);
  text-transform: uppercase; color: var(--texte-3);
}
.urg-bande--soins { border-top: 1px solid var(--bordure); margin-top: var(--e3); }

.urg {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto auto;
  align-items: center; gap: var(--e3);
  padding: var(--e3) var(--e4); min-height: var(--cible-liste);
  background: var(--surface-2); border: 1px solid var(--bordure); border-radius: var(--r-s);
}
.urg--soins { background: var(--surface-1); }
.urg--vide { display: block; text-align: center; background: transparent; border-style: dashed; }
.urg__qui { display: grid; gap: 2px; min-width: 0; }
.urg__nom { color: var(--texte-1); font-weight: 600; }
.urg__meta { font-size: var(--fs-xs); color: var(--texte-3); overflow-wrap: anywhere; }
.urg__temps { display: grid; gap: 2px; justify-items: end; text-align: right; }
.urg__temps .mono { font-size: var(--fs-md); color: var(--texte-1); }
.urg__etat { font-size: var(--fs-2xs); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--texte-3); }

.urg__retard { font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

.urg__actions { display: flex; flex-wrap: wrap; gap: var(--e2); align-items: center; }

.urg__actions .btn { min-height: var(--cible-min); padding-inline: var(--e3); }


@container (max-width: 760px) {
  .urg { grid-template-columns: auto minmax(0,1fr) auto; row-gap: var(--e2); }
  .urg__actions { grid-column: 1 / -1; justify-content: flex-end; }
}

@media (max-width: 760px) {
  .urg { grid-template-columns: auto minmax(0,1fr); row-gap: var(--e2); }
  .urg__temps { grid-column: 2; justify-items: start; text-align: left; }
  .urg__actions { grid-column: 1 / -1; }
}



.regimes {
  display: grid; gap: var(--e2);
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  margin-top: var(--e4);
}
.regime {
  display: grid; gap: 4px; align-content: start;
  min-height: 84px; padding: var(--e3);
  background: var(--surface-2); color: var(--texte-1);
  border: 1px solid var(--bordure-controle); border-radius: var(--r-s);
  cursor: pointer;
}
@media (hover: hover) and (pointer: fine) {
  .regime:hover { background: var(--surface-3); border-color: var(--bordure-active); }
}

.regime--actif, .regime--actif:hover {
  background: var(--marque-voile-2); border: 2px solid var(--marque-bord); color: #FFFFFF;
  padding: calc(var(--e3) - 1px);   
}
.regime:focus-within { box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus); }
.regime__nom  { font-weight: 600; font-size: var(--fs-md); }
.regime__taux { font-family: var(--police-chiffres); font-variant-numeric: tabular-nums; color: var(--texte-2); }
.regime__exige {
  font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs);
  text-transform: uppercase; color: var(--texte-3);
}


.regime-champs { display: grid; gap: var(--e3); margin-top: var(--e4); }
.regime-champs > [hidden] { display: none; }


.regime-pastille {
  display: inline-flex; align-items: center; gap: var(--e1);
  max-width: 100%;
  padding: 2px var(--e2); border-radius: var(--r-pill);
  background: var(--info-voile); color: var(--info);
  font-size: var(--fs-xs);
}

.regime-pastille--perime { background: var(--alerte-voile); color: var(--alerte); }



.grille-ajout {
  display: grid; gap: var(--e3); align-items: end;
  
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.grille-ajout > .btn { justify-self: start; }

.groupe__titre th {
  padding-top: var(--e4); font-size: var(--fs-2xs); font-weight: 600;
  letter-spacing: var(--ls-caps-xs); text-transform: uppercase;
  color: var(--texte-3); text-align: left; border-bottom: 1px solid var(--bordure);
}


.ligne--archivee { opacity: var(--opacite-estompe); }


.document__secu {
  display: grid; grid-template-columns: auto 1fr; gap: 2px var(--e4);
  margin-top: var(--e3); font-size: var(--fs-sm);
}
.document__secu dt {
  font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs);
  text-transform: uppercase; color: var(--p-encre-3); align-self: center;
}
.document__secu dd { margin: 0; text-align: right; }

.document__aregler {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: var(--e4); margin-top: var(--e4); padding: var(--e3) var(--e4);
  border: 2px solid var(--p-encre); border-radius: var(--r-xs);
}
.document__aregler span {
  font-size: var(--fs-xs); letter-spacing: var(--ls-caps-xs);
  text-transform: uppercase; color: var(--p-encre-3);
}
.document__aregler strong { font-size: var(--fs-xl); font-weight: 800; }


.res--choix { display: contents; }
.res__bouton {
  display: grid; gap: var(--e1); text-align: left; width: 100%;
  font: inherit; color: inherit; cursor: pointer;
  padding: var(--e3); border: 1px solid var(--bordure-controle);
  border-radius: var(--r-s); background: var(--surface-2);
}

@media (hover: hover) and (pointer: fine) {
  .res__bouton:hover { background: var(--surface-3); border-color: var(--bordure-active); }
}
.res__bouton:focus-visible { box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus); }


.saut-section {
  display: inline-flex; align-items: baseline; gap: var(--e2);
  margin-left: auto; padding: var(--e2) var(--e3);
  color: var(--lien); font-size: var(--fs-sm); white-space: nowrap;
  border-radius: var(--r-s);
}
.saut-section::after { content: '→'; opacity: .8; }
.saut-section__ou {
  font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs);
  text-transform: uppercase; color: var(--texte-3);
  padding: 1px var(--e2); border: 1px solid var(--bordure); border-radius: var(--r-pill);
}
@media (hover: hover) and (pointer: fine) {
  .saut-section:hover { background: var(--surface-2); text-decoration: none; }
}
.saut-section:focus-visible { box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus); }




.esp-3 { margin-top: var(--e3); }
.esp-4 { margin-top: var(--e4); }
.esp-5 { margin-top: var(--e5); }
.esp-bas-5 { margin-bottom: var(--e5); }
.esp-droite-2 { margin-right: var(--e2); }
.pousse-droite { margin-left: auto; }


.pile { display: grid; gap: var(--e3); }


.esp-bas-2 { margin-bottom: var(--e2); }
.rangee { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e2); }
.pleine-mesure { max-width: none; }


.col-5 { min-width: 5rem; }   .col-6 { min-width: 6rem; }   .col-7 { min-width: 7rem; }
.col-8 { min-width: 8rem; }   .col-9 { min-width: 9rem; }   .col-11 { min-width: 11rem; }
.col-12 { min-width: 12rem; }

.sans-cadre { border: 0; padding: 0; }
.trame-legere { --alpha: .07; }


.pave--vide { background: var(--surface-4); color: var(--texte-3); }


.hist__barre--h0 { height: 0%; }
.hist__barre--h10 { height: 10%; }
.hist__barre--h15 { height: 15%; }
.hist__barre--h20 { height: 20%; }
.hist__barre--h25 { height: 25%; }
.hist__barre--h30 { height: 30%; }
.hist__barre--h35 { height: 35%; }
.hist__barre--h40 { height: 40%; }
.hist__barre--h45 { height: 45%; }
.hist__barre--h50 { height: 50%; }
.hist__barre--h55 { height: 55%; }
.hist__barre--h60 { height: 60%; }
.hist__barre--h65 { height: 65%; }
.hist__barre--h70 { height: 70%; }
.hist__barre--h75 { height: 75%; }
.hist__barre--h80 { height: 80%; }
.hist__barre--h85 { height: 85%; }
.hist__barre--h90 { height: 90%; }
.hist__barre--h95 { height: 95%; }
.hist__barre--h100 { height: 100%; }


.acte--verrouille { opacity: var(--opacite-estompe); cursor: default; }
.acte--verrouille .acte__case { cursor: not-allowed; }
.acte__hors {
  font-size: var(--fs-2xs); letter-spacing: var(--ls-caps-xs);
  text-transform: uppercase; color: var(--texte-3); margin-left: var(--e2);
}


.document__tampon--brouillon { border-color: var(--p-encre-3); color: var(--p-encre-3); }


.bandeau-etat {
  margin-bottom: var(--e3); padding: var(--e2) var(--e3);
  border-radius: var(--r-s); font-size: var(--fs-sm);
  background: var(--alerte-voile); color: var(--alerte);
  border: 1px solid var(--alerte-bord);
}
.bandeau-etat[hidden] { display: none; }



.tableau-cadre { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tableau-cadre > .tableau { min-width: 34rem; }

.tableau-cadre:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }



.btn-lien { min-height: var(--cible-min); padding: var(--e1) var(--e2); }
.frise__titre, .urg__nom { display: inline-block; min-height: 32px; padding: 4px 0; }


.tableau--formulaire input[type="checkbox"] {
  width: 20px; height: 20px; cursor: pointer;
}
.tableau--formulaire .centre-cell {
  
  padding: var(--e3) var(--e2);
}


.case-cadre {
  display: flex; align-items: center; justify-content: center;
  min-width: var(--cible-min); min-height: var(--cible-min);
  margin: calc(var(--e3) * -1) auto;
  cursor: pointer;
}

.case-cadre:has(:focus-visible) {
  box-shadow: 0 0 0 2px var(--focus-ombre), 0 0 0 5px var(--focus);
  border-radius: var(--r-xs);
}
.case-cadre:has(:focus-visible) input { box-shadow: none; }


@media (forced-colors: active) {
  :focus-visible,
  .champ__saisie:focus-visible,
  .res__bouton:focus-visible,
  .saut-section:focus-visible,
  .contenu:focus-visible,
  .tableau-cadre:focus-visible,
  input:focus-visible + .tuile,
  .regime:focus-within,
  .case-cadre:has(:focus-visible) { outline: 3px solid Highlight; outline-offset: 2px; }
}



.avis {
  margin: 0 0 var(--e4); padding: var(--e3) var(--e4);
  border-radius: var(--r-s); font-size: var(--fs-base); line-height: 1.45;
}
.avis--erreur {
  background: var(--alerte-voile); border: 1px solid var(--alerte-bord);
  color: var(--alerte);
}
.avis--info {
  background: var(--surface-2); border: 1px solid var(--bordure);
  color: var(--texte-2);
}
.avis--succes {
  background: var(--surface-2); border: 1px solid var(--bordure);
  border-left: 3px solid var(--marque); color: var(--texte-1);
}