/*
=========================================================
NS&S — 07/10/2026
FICHIER : nses-accessibility.css
RÉVISION : R5-VOIX-R2

CHANGEMENTS :
- barre vocale beaucoup plus compacte ;
- charte claire aqua / menthe / translucide, cohérente avec le site ;
- boutons Lire l’étape / Pause / Arrêter réduits à leurs icônes ;
- Voix/langue remplacé par un menu personnalisé : plus de grand fond blanc natif ;
- barre déplaçable à la souris, au stylet et au doigt ;
- lisibilité renforcée des commandes ;
- aucune fonction vocale supprimée.

Pour annuler uniquement cette révision : restaurer la version précédente
de ce fichier et de nses-accessibility.js.
=========================================================
*/

/* === MODIF NS&S 07/10/2026 — LOGO DYNAMIQUE DU HEADER — DÉBUT === */
.app-banner-row{position:relative;min-width:0}
.app-banner.nses-header-logo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:min(470px,62vw)!important;
  max-width:calc(100% - 92px)!important;
  min-width:0!important;
  padding:0!important;
  margin-inline:auto!important;
  overflow:visible!important;
}
.app-banner.nses-header-logo img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:118px!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:drop-shadow(0 5px 10px rgba(4,74,66,.13));
}
.mobile-menu-brand.nses-mobile-menu-logo{
  width:min(330px,86%)!important;
  height:auto!important;
  max-height:96px!important;
  object-fit:contain!important;
}
@media(max-width:700px){
  .app-banner.nses-header-logo{
    width:min(315px,calc(100vw - 108px))!important;
    max-width:calc(100vw - 108px)!important;
  }
  .app-banner.nses-header-logo img{max-height:86px!important}
}
@media(max-width:420px){
  .app-banner.nses-header-logo{
    width:min(275px,calc(100vw - 100px))!important;
    max-width:calc(100vw - 100px)!important;
  }
  .app-banner.nses-header-logo img{max-height:76px!important}
}
/* === MODIF NS&S 07/10/2026 — LOGO DYNAMIQUE DU HEADER — FIN === */


/* === MODIF NS&S 07/10/2026 — LANCEUR ACCESSIBILITÉ CLAIR — DÉBUT === */
.nses-accessibility-launcher{
  position:fixed;
  left:14px;
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:1200;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:7px 11px;
  border:1px solid rgba(27,145,129,.24);
  border-radius:999px;
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(211,244,236,.82));
  color:#0c5d55;
  box-shadow:0 9px 22px rgba(13,83,74,.12),inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter:blur(13px) saturate(112%);
  -webkit-backdrop-filter:blur(13px) saturate(112%);
  font-weight:900;
  cursor:pointer;
}
.nses-accessibility-launcher .nses-a11y-speaker{
  color:#0b8274;
  font-size:18px;
  line-height:1;
}
.nses-accessibility-launcher:hover,
.nses-accessibility-launcher:focus-visible{
  border-color:rgba(23,139,122,.42);
  box-shadow:0 12px 26px rgba(13,83,74,.16),0 0 0 3px rgba(83,214,192,.13);
}
@media(max-width:980px){
  .nses-accessibility-launcher{
    left:9px;
    bottom:calc(72px + env(safe-area-inset-bottom));
    min-height:39px;
    padding:7px 9px;
  }
  .nses-accessibility-launcher .nses-a11y-label{display:none}
}
/* === MODIF NS&S 07/10/2026 — LANCEUR ACCESSIBILITÉ CLAIR — FIN === */


/* === MODIF NS&S 07/10/2026 — BARRE VOCALE R2 COMPACTE / TRANSLUCIDE — DÉBUT === */
.nses-accessibility-panel[hidden]{display:none!important}
.nses-accessibility-panel{
  position:fixed;
  left:16px;
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:1300;
  width:min(910px,calc(100vw - 32px));
  max-width:calc(100vw - 12px);
  border:1px solid rgba(28,137,122,.22);
  border-radius:22px;
  background:
    linear-gradient(145deg,rgba(249,255,253,.93),rgba(218,246,239,.90));
  color:#164f49;
  box-shadow:
    0 18px 44px rgba(12,76,68,.16),
    inset 0 1px 0 rgba(255,255,255,.96);
  overflow:visible;
  backdrop-filter:blur(18px) saturate(112%);
  -webkit-backdrop-filter:blur(18px) saturate(112%);
}
.nses-accessibility-panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:
    radial-gradient(circle at 7% 50%,rgba(63,196,177,.13),transparent 24%),
    radial-gradient(circle at 90% 30%,rgba(255,215,112,.09),transparent 24%);
}
.nses-accessibility-inner{
  position:relative;
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:9px 42px 8px 10px;
}
.nses-accessibility-heading{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:48px;
  padding:4px 10px 4px 4px;
  border-right:1px solid rgba(25,135,120,.16);
  cursor:grab;
  user-select:none;
  touch-action:none;
}
.nses-accessibility-heading:active{cursor:grabbing}
.nses-accessibility-icon{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border:1px solid rgba(17,133,117,.25);
  border-radius:50%;
  color:#0b6f65;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(194,237,227,.88));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 5px 12px rgba(10,84,74,.10);
  font-size:18px;
}
.nses-accessibility-heading strong{
  display:block;
  color:#0c5d55;
  font-size:14px;
  line-height:1.05;
}
.nses-accessibility-heading small{
  display:block;
  margin-top:3px;
  color:#66827d;
  font-size:9px;
  line-height:1.2;
}
.nses-drag-dots{
  margin-left:auto;
  color:#75a59d;
  font-size:17px;
  letter-spacing:-3px;
}
.nses-accessibility-controls{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  flex-wrap:wrap;
}
.nses-accessibility-control,
.nses-accessibility-toggle,
.nses-accessibility-select-wrap,
.nses-accessibility-speed{
  min-width:0;
  border:1px solid rgba(27,145,129,.15);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(215,242,235,.70));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 5px 12px rgba(9,83,73,.07);
}
.nses-accessibility-control{
  display:inline-grid;
  place-items:center;
  gap:2px;
  height:42px;
  padding:5px 9px;
  color:#0c635a;
  text-align:center;
  cursor:pointer;
}
.nses-control-icon{
  width:42px;
  padding:0;
}
.nses-control-labeled{min-width:84px}
.nses-accessibility-control:hover,
.nses-accessibility-control:focus-visible,
.nses-accessibility-control.is-active,
.nses-accessibility-toggle:hover{
  border-color:rgba(23,139,122,.34);
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(195,236,226,.86));
}
.nses-accessibility-control .icon{
  color:#0c7e71;
  font-size:16px;
  line-height:1;
}
.nses-control-labeled span:last-child{
  font-size:9.5px;
  font-weight:900;
  line-height:1.05;
}
.nses-a11y-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.nses-accessibility-toggle{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:5px;
  height:42px;
  padding:5px 8px;
  color:#255e58;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
}
.nses-accessibility-toggle .toggle-icon{
  color:#c79822;
  font-size:14px;
}
.nses-accessibility-toggle input{
  width:15px;
  height:15px;
  margin:0;
  accent-color:#1a9b88;
}
.nses-accessibility-select-wrap{
  position:relative;
  display:grid;
  align-content:center;
  gap:3px;
  width:170px;
  height:48px;
  padding:5px 7px;
}
.nses-control-label,
.nses-accessibility-speed>label{
  display:block;
  color:#496e69;
  font-size:8px;
  font-weight:900;
  line-height:1;
}
.nses-voice-picker{position:relative}
.nses-voice-button{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  width:100%;
  height:27px;
  padding:0 8px;
  border:1px solid rgba(18,127,112,.20);
  border-radius:9px;
  background:rgba(255,255,255,.86);
  color:#174f49;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
  font-size:9px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
#nses-voice-current{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nses-voice-caret{color:#0f766a;font-size:12px}
.nses-voice-menu[hidden]{display:none!important}
.nses-voice-menu{
  position:absolute;
  left:0;
  bottom:calc(100% + 5px);
  z-index:1400;
  width:min(320px,calc(100vw - 28px));
  max-height:min(260px,46vh);
  overflow:auto;
  padding:5px;
  border:1px solid rgba(17,133,117,.24);
  border-radius:13px;
  background:rgba(244,253,250,.985);
  color:#164f49;
  box-shadow:0 14px 34px rgba(9,73,65,.20);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.nses-voice-option{
  display:block;
  width:100%;
  min-height:34px;
  padding:7px 9px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#174f49;
  font-size:10px;
  line-height:1.25;
  text-align:left;
  cursor:pointer;
}
.nses-voice-option:hover,
.nses-voice-option:focus-visible,
.nses-voice-option[aria-selected="true"]{
  background:rgba(185,232,221,.72);
  color:#084f47;
}
.nses-accessibility-speed{
  display:grid;
  align-content:center;
  gap:3px;
  width:138px;
  height:48px;
  padding:5px 7px;
}
.nses-speed-line{
  display:grid;
  grid-template-columns:minmax(72px,1fr) 38px;
  gap:5px;
  align-items:center;
}
.nses-accessibility-speed input[type="range"]{
  width:100%;
  height:18px;
  margin:0;
  accent-color:#27a991;
}
.nses-accessibility-speed output{
  color:#0d7468;
  font-size:9px;
  font-weight:900;
  text-align:right;
}
.nses-accessibility-close{
  position:absolute;
  top:7px;
  right:8px;
  z-index:5;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  padding:0;
  border:1px solid rgba(24,135,121,.18);
  border-radius:50%;
  background:rgba(255,255,255,.82);
  color:#0f6e63;
  box-shadow:0 4px 10px rgba(8,78,69,.08);
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.nses-accessibility-status{
  position:relative;
  margin:0;
  padding:0 14px 7px;
  color:#66817c;
  font-size:8.5px;
  line-height:1.2;
  text-align:right;
}
@media(max-width:980px){
  .nses-accessibility-panel{
    left:8px;
    bottom:calc(72px + env(safe-area-inset-bottom));
    width:min(620px,calc(100vw - 16px));
  }
  .nses-accessibility-inner{
    grid-template-columns:1fr;
    gap:5px;
    padding:7px 38px 7px 7px;
  }
  .nses-accessibility-heading{
    min-height:38px;
    padding:2px 6px;
    border-right:0;
    border-bottom:1px solid rgba(25,135,120,.14);
  }
  .nses-accessibility-heading small{display:none}
  .nses-accessibility-icon{width:31px;height:31px;flex-basis:31px;font-size:15px}
  .nses-accessibility-controls{gap:5px}
  .nses-accessibility-select-wrap{width:min(180px,100%)}
}
@media(max-width:620px){
  .nses-accessibility-panel{
    left:6px;
    width:calc(100vw - 12px);
    max-height:calc(100dvh - 88px);
    overflow:auto;
    border-radius:18px;
  }
  .nses-accessibility-controls{
    display:grid;
    grid-template-columns:84px 38px 38px 38px;
    gap:5px;
  }
  .nses-control-labeled{min-width:0;width:84px}
  .nses-control-icon{width:38px;height:38px}
  .nses-accessibility-toggle{
    grid-column:span 2;
    width:auto;
  }
  .nses-accessibility-select-wrap{
    grid-column:1 / -1;
    width:100%;
    height:49px;
  }
  .nses-accessibility-speed{
    grid-column:1 / -1;
    width:100%;
    height:47px;
  }
  .nses-voice-menu{
    position:fixed;
    left:10px;
    right:10px;
    bottom:calc(82px + env(safe-area-inset-bottom));
    width:auto;
    max-height:38vh;
  }
  .nses-accessibility-status{
    padding:0 10px 6px;
    text-align:center;
  }
}
/* === MODIF NS&S 07/10/2026 — BARRE VOCALE R2 COMPACTE / TRANSLUCIDE — FIN === */


/* === MODIF NS&S 07/10/2026 — MODE ADAPTÉ — DÉBUT === */
body.nses-accessibility-adapted #contenu{
  font-family:Arial,Verdana,sans-serif!important;
}
body.nses-accessibility-adapted #contenu p,
body.nses-accessibility-adapted #contenu li,
body.nses-accessibility-adapted #contenu label,
body.nses-accessibility-adapted #contenu input,
body.nses-accessibility-adapted #contenu select,
body.nses-accessibility-adapted #contenu textarea,
body.nses-accessibility-adapted #contenu button,
body.nses-accessibility-adapted #contenu a{
  line-height:1.65!important;
  letter-spacing:.025em!important;
}
body.nses-accessibility-adapted #contenu .card,
body.nses-accessibility-adapted #contenu section,
body.nses-accessibility-adapted #contenu article{
  border-color:rgba(3,92,82,.32)!important;
}
body.nses-accessibility-adapted #contenu :focus-visible{
  outline:3px solid #d7a927!important;
  outline-offset:3px!important;
}
/* === MODIF NS&S 07/10/2026 — MODE ADAPTÉ — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R5-VOIX-R3 — DÉBUT
   - logos Visiteur / Personnel / Client / Professionnel affichés à la même taille
   - logo légèrement plus grand sur grand écran
   - suppression du drop-shadow et de la ligne parasite sous le logo
   - aide vocale, bouton réduire, commandes vocales
   - mode adapté rendu plus visible
   ========================================================= */

/* HEADER — mêmes dimensions d'affichage quel que soit le statut */
.app-banner-row{
  border-bottom:0!important;
  box-shadow:none!important;
}
.app-banner.nses-header-logo{
  width:min(540px,74vw)!important;
  max-width:calc(100% - 96px)!important;
  min-height:126px!important;
  height:126px!important;
  padding:2px 0!important;
  border:0!important;
  border-bottom:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.app-banner.nses-header-logo img{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:none!important;
  box-shadow:none!important;
}
@media(max-width:700px){
  .app-banner.nses-header-logo{
    width:min(355px,calc(100vw - 104px))!important;
    max-width:calc(100vw - 104px)!important;
    min-height:88px!important;
    height:88px!important;
  }
}
@media(max-width:420px){
  .app-banner.nses-header-logo{
    width:min(315px,calc(100vw - 96px))!important;
    max-width:calc(100vw - 96px)!important;
    min-height:80px!important;
    height:80px!important;
  }
}

/* BOUTONS AIDE / RÉDUIRE / FERMER */
.nses-panel-actions{
  position:absolute;
  top:7px;
  right:8px;
  z-index:8;
  display:flex;
  gap:5px;
}
.nses-panel-round-button{
  display:grid!important;
  place-items:center!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  padding:0!important;
  border:1px solid rgba(24,135,121,.18)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.84)!important;
  color:#0f6e63!important;
  box-shadow:0 4px 10px rgba(8,78,69,.08)!important;
  font-size:17px!important;
  line-height:1!important;
}
.nses-accessibility-close{display:none!important}

/* COMMANDES VOCALES */
.nses-command-control{
  min-width:106px!important;
  grid-auto-flow:column!important;
  gap:5px!important;
}
.nses-command-control span:last-child{
  font-size:8.8px!important;
  font-weight:900!important;
}
.nses-command-control.is-listening{
  border-color:rgba(191,139,30,.42)!important;
  background:linear-gradient(145deg,rgba(255,250,232,.96),rgba(225,246,238,.90))!important;
  box-shadow:0 0 0 3px rgba(213,167,55,.11),inset 0 1px 0 rgba(255,255,255,.96)!important;
}
.nses-command-control.is-listening .icon{
  animation:nsesMicPulse 1s ease-in-out infinite alternate;
}
@keyframes nsesMicPulse{
  from{transform:scale(1);opacity:.72}
  to{transform:scale(1.16);opacity:1}
}
.nses-accessibility-launcher.is-speaking .nses-a11y-speaker,
.nses-accessibility-launcher.is-listening .nses-a11y-speaker{
  animation:nsesMicPulse 1s ease-in-out infinite alternate;
}

/* POPUP D'AIDE */
.nses-voice-help[hidden]{display:none!important}
.nses-voice-help{
  position:fixed;
  inset:0;
  z-index:1500;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(20,67,61,.18);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.nses-voice-help-card{
  position:relative;
  width:min(620px,96vw);
  max-height:min(84dvh,760px);
  overflow:auto;
  padding:24px;
  border:1px solid rgba(22,138,121,.20);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(252,255,254,.98),rgba(222,247,240,.97));
  color:#194f49;
  box-shadow:0 26px 70px rgba(12,78,69,.22),inset 0 1px 0 rgba(255,255,255,.96);
}
.nses-help-close{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  padding:0!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.86)!important;
  color:#0e7064!important;
}
.nses-help-eyebrow{
  margin:0 42px 5px 0;
  color:#138977;
  font-size:11px;
  font-weight:950;
  letter-spacing:.08em;
}
.nses-voice-help-card h2{
  margin:0 42px 14px 0;
  color:#0b5d55;
}
.nses-voice-help-card p{margin:9px 0}
.nses-help-command-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin:12px 0;
}
.nses-help-command-grid span{
  padding:8px 9px;
  border:1px solid rgba(22,138,121,.13);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  color:#145b53;
  font-size:12px;
  font-weight:850;
  text-align:center;
}
.nses-help-note{
  color:#617d78;
  font-size:12px;
}
.nses-help-dont-show{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  color:#466c66;
  font-size:12px;
}
.nses-help-dont-show input{width:auto}
.nses-help-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
}
.nses-help-actions button{
  padding:9px 14px!important;
  border-radius:12px!important;
  background:linear-gradient(145deg,#e7f7f2,#c9eee4)!important;
  color:#0c6158!important;
  border:1px solid rgba(21,137,120,.18)!important;
  box-shadow:none!important;
}

/* MODE ADAPTÉ : différence volontairement visible */
body.nses-accessibility-adapted #contenu{
  font-size:1.075em!important;
}
body.nses-accessibility-adapted #contenu p,
body.nses-accessibility-adapted #contenu li,
body.nses-accessibility-adapted #contenu label{
  line-height:1.78!important;
  letter-spacing:.028em!important;
}
body.nses-accessibility-adapted #contenu .card,
body.nses-accessibility-adapted #contenu section,
body.nses-accessibility-adapted #contenu article{
  border-color:rgba(11,111,96,.34)!important;
  box-shadow:0 9px 24px rgba(10,83,73,.08)!important;
}
body.nses-accessibility-adapted #contenu a,
body.nses-accessibility-adapted #contenu button{
  text-decoration-thickness:2px!important;
}

/* Mobile : barre réduite = lanceur juste au-dessus du dock */
@media(max-width:620px){
  .nses-panel-actions{top:6px;right:7px}
  .nses-panel-round-button{width:27px!important;height:27px!important;min-width:27px!important}
  .nses-command-control{
    grid-column:span 2;
    min-width:0!important;
    width:auto!important;
  }
  .nses-help-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nses-accessibility-launcher{
    bottom:calc(76px + env(safe-area-inset-bottom))!important;
  }
}
/* MODIF NS&S — 07/10/2026 — R5-VOIX-R3 — FIN */

/* =========================================================
   MODIF NS&S — 07/10/2026 — VOIX R4 — DÉBUT
   - bouton Guide visible à chaque ouverture ;
   - petit haut-parleur déplaçable lui aussi ;
   - panneau et haut-parleur partagent la même position mémorisée ;
   - le tout reste au-dessus du dock mobile en position initiale.
   ========================================================= */

.nses-panel-guide-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  min-width:62px!important;
  height:28px!important;
  padding:0 9px!important;
  border:1px solid rgba(24,135,121,.18)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  color:#0f6e63!important;
  box-shadow:0 4px 10px rgba(8,78,69,.08)!important;
  font-size:11px!important;
  font-weight:900!important;
  cursor:pointer!important;
}
.nses-panel-guide-button span{font-size:9px!important}

.nses-accessibility-launcher{
  touch-action:none!important;
  cursor:grab!important;
  user-select:none!important;
}
.nses-accessibility-launcher.is-dragging{
  cursor:grabbing!important;
  box-shadow:0 14px 32px rgba(13,83,74,.20),0 0 0 3px rgba(83,214,192,.14)!important;
}
.nses-accessibility-panel.is-synced-position{
  transform:none!important;
}

@media(max-width:620px){
  .nses-panel-guide-button{
    min-width:56px!important;
    height:27px!important;
    padding:0 7px!important;
  }
}
/* MODIF NS&S — 07/10/2026 — VOIX R4 — FIN */

/* =========================================================
   MODIF NS&S — 07/10/2026 — VOIX R5 — DÉBUT
   CORRECTIONS :
   - le petit haut-parleur garde une taille fixe lorsqu'on ouvre la barre ;
   - suppression de l'effet "bouton étiré" sur mobile/PWA ;
   - Guide toujours au-dessus du header et du dock ;
   - Guide scrollable sur petits écrans ;
   - état du microphone plus visible.
   ========================================================= */

/* Le lanceur ne doit JAMAIS s'étirer entre top et bottom. */
.nses-accessibility-launcher.is-positioned{
  right:auto!important;
  bottom:auto!important;
  width:auto!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
}
@media(max-width:980px){
  .nses-accessibility-launcher.is-positioned{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    padding:0!important;
    justify-content:center!important;
    border-radius:50%!important;
  }
}
@media(max-width:620px){
  .nses-accessibility-launcher,
  .nses-accessibility-launcher.is-positioned{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    padding:0!important;
    border-radius:50%!important;
  }
}

/* Le Guide passe au-dessus de tous les éléments fixes du site/PWA. */
.nses-voice-help{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  overflow:hidden!important;
  padding:
    max(12px, env(safe-area-inset-top))
    12px
    max(12px, env(safe-area-inset-bottom))!important;
}
.nses-voice-help-card{
  z-index:2147483001!important;
  width:min(620px,calc(100vw - 24px))!important;
  max-height:calc(100dvh - max(24px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom)))!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
}
@media(max-width:620px){
  .nses-voice-help{
    place-items:start center!important;
  }
  .nses-voice-help-card{
    width:100%!important;
    max-width:100%!important;
    border-radius:18px!important;
    padding:20px 16px 24px!important;
  }
}

/* État microphone explicite. */
.nses-command-control.is-listening{
  color:#0a665c!important;
}
.nses-command-control.is-listening #nses-command-label{
  font-weight:950!important;
}
.nses-command-control.is-mic-error{
  border-color:rgba(177,91,59,.30)!important;
  background:linear-gradient(145deg,rgba(255,247,243,.96),rgba(241,238,228,.90))!important;
}
.nses-command-control.is-mic-pending{
  border-color:rgba(202,154,49,.30)!important;
}
/* MODIF NS&S — 07/10/2026 — VOIX R5 — FIN */

/* =========================================================
   MODIF NS&S — 07/10/2026 — VOIX / HEADER R6 — DÉBUT

   1. Logo plus grand sur PC / PWA ordinateur.
   2. Bouton hamburger légèrement réduit.
   3. Guide déplacé dans la zone des commandes, près de Vitesse.
   4. Guide en vraie couche indépendante au-dessus de tout.
   5. Petit haut-parleur mobile verrouillé à 42 × 42 px.
   ========================================================= */


/* Hamburger : à peine plus petit que le réglage précédent. */
@media(max-width:1100px){
  .menu-toggle{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    font-size:25px!important;
    border-radius:14px!important;
  }
}

/* Le Guide n'est plus collé à − et ×. */
.nses-panel-actions{
  gap:5px!important;
}
.nses-guide-inline{
  min-width:66px!important;
  height:48px!important;
  padding:5px 9px!important;
  grid-auto-flow:row!important;
}
.nses-guide-inline .icon{
  display:block!important;
  font-size:15px!important;
  line-height:1!important;
}
.nses-guide-inline span:last-child{
  font-size:9px!important;
  font-weight:900!important;
}

/* Guide : vraie popup indépendante, toujours au-dessus de la barre, header et dock. */
.nses-voice-help{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  z-index:2147483640!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom))!important;
}
.nses-voice-help[hidden]{display:none!important}
.nses-voice-help-card{
  position:relative!important;
  z-index:2147483641!important;
  width:min(620px,calc(100vw - 20px))!important;
  max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
}
.nses-help-close{
  position:sticky!important;
  top:0!important;
  float:right!important;
  z-index:20!important;
  margin:-8px -6px 4px 8px!important;
  flex:0 0 auto!important;
}

/* Le petit haut-parleur mobile doit rester STRICTEMENT rond et fixe,
   même pendant le déplacement et même quand la grande barre est ouverte. */
@media(max-width:980px){
  .nses-accessibility-launcher,
  .nses-accessibility-launcher.is-positioned,
  .nses-accessibility-launcher.is-dragging{
    display:grid!important;
    place-items:center!important;
    box-sizing:border-box!important;
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    padding:0!important;
    margin:0!important;
    border-radius:50%!important;
    flex:0 0 42px!important;
    align-self:auto!important;
    justify-self:auto!important;
    inset:auto!important;
  }
  .nses-accessibility-launcher.is-positioned,
  .nses-accessibility-launcher.is-dragging{
    right:auto!important;
    bottom:auto!important;
  }
  .nses-accessibility-launcher .nses-a11y-label{
    display:none!important;
  }
  .nses-accessibility-launcher .nses-a11y-speaker{
    display:block!important;
    margin:0!important;
    line-height:1!important;
  }
}

@media(max-width:620px){
  .nses-guide-inline{
    grid-column:1 / -1!important;
    width:100%!important;
    height:40px!important;
    grid-auto-flow:column!important;
    justify-content:center!important;
  }
  .nses-voice-help{
    place-items:start center!important;
  }
  .nses-voice-help-card{
    width:100%!important;
    max-width:100%!important;
    max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)))!important;
    border-radius:18px!important;
    padding:16px 14px 24px!important;
  }
}
/* MODIF NS&S — 07/10/2026 — VOIX / HEADER R6 — FIN */

/* =========================================================
   MODIF NS&S — 07/10/2026 — INTERFACE R7 — DÉBUT
   - même bouton Accessibilité sur PC / PWA / mobile ;
   - photo validée superposée dans le cercle du logo ;
   - styles simples pour changement/validation de photo.
   ========================================================= */

/* Bouton Accessibilité cohérent sur tous les supports. */
.nses-accessibility-launcher,
.nses-accessibility-launcher.is-positioned,
.nses-accessibility-launcher.is-dragging{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  box-sizing:border-box!important;
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0 11px!important;
  border-radius:999px!important;
}
.nses-accessibility-launcher .nses-a11y-label{
  display:inline!important;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:11px!important;
}
.nses-accessibility-launcher .nses-a11y-speaker{
  flex:0 0 auto!important;
  margin:0!important;
}

@media(max-width:980px){
  .nses-accessibility-launcher,
  .nses-accessibility-launcher.is-positioned,
  .nses-accessibility-launcher.is-dragging{
    width:118px!important;
    min-width:118px!important;
    max-width:118px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    padding:0 9px!important;
    border-radius:999px!important;
    flex:0 0 118px!important;
  }
  .nses-accessibility-launcher .nses-a11y-label{
    display:inline!important;
    font-size:10px!important;
  }
}

/* Photo validée : couche dynamique dans le cercle du logo.
   Les pourcentages correspondent au canevas actuel 1916 × 821. */
.nses-header-logo{position:relative!important}
.nses-header-logo .nses-logo-base{position:relative!important;z-index:1!important}
.nses-logo-avatar-layer{
  position:absolute!important;
  z-index:3!important;
  left:4.7%!important;
  top:20.2%!important;
  width:18.8%!important;
  aspect-ratio:1/1!important;
  overflow:hidden!important;
  border-radius:50%!important;
  pointer-events:none!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.16);
}
.nses-logo-avatar-layer img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center 38%!important;
  filter:none!important;
  box-shadow:none!important;
}

/* Pages de photo de profil. */
.nss-profile-photo-preview,
.nss-upload-preview img{
  display:block;
  width:min(260px,100%);
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center 38%;
  border-radius:50%;
  border:5px solid rgba(15,126,111,.18);
  margin:12px auto;
  background:#dff3ed;
}
.nss-neutral-avatar-preview{
  display:grid;
  place-items:center;
  width:180px;
  aspect-ratio:1;
  margin:12px auto;
  border-radius:50%;
  background:linear-gradient(145deg,#dff5ee,#c9e8df);
  color:#0b6b60;
  font-size:72px;
  border:4px solid rgba(14,126,110,.14);
}
.nss-upload-preview{padding:8px 0}
.nss-photo-admin-grid{display:grid;gap:14px}
.nss-photo-admin-card{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:14px;
  border:1px solid rgba(24,126,108,.16);
  border-radius:18px;
  background:rgba(255,255,255,.54);
}
.nss-photo-admin-card>img{
  width:120px;height:120px;object-fit:cover;object-position:center 38%;border-radius:50%;
}
.nss-photo-admin-card>div:nth-child(2){display:grid;gap:5px}
.nss-photo-admin-card>.actions{grid-column:1/-1}
.nss-photo-reject-form{display:flex!important;gap:7px;flex-wrap:wrap}
.nss-photo-reject-form input{min-width:240px}
.nss-photo-result-dialog{max-width:min(520px,calc(100vw - 24px))}

@media(max-width:620px){
  .nss-photo-admin-card{grid-template-columns:82px minmax(0,1fr)}
  .nss-photo-admin-card>img{width:82px;height:82px}
  .nss-photo-reject-form input{min-width:0;width:100%}
}
/* MODIF NS&S — 07/10/2026 — INTERFACE R7 — FIN */


/* === MODIF NS&S 07/10/2026 — PHOTO DANS LE LOGO DU MENU MOBILE — DÉBUT === */
.nses-mobile-menu-logo-wrap{
  position:relative!important;
  width:min(330px,86%)!important;
  height:auto!important;
  max-height:none!important;
  margin:4px auto 12px!important;
  filter:none!important;
}
.nses-mobile-menu-logo-wrap>.nses-mobile-menu-logo{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:96px!important;
  object-fit:contain!important;
}
.nses-mobile-menu-logo-wrap .nses-logo-avatar-layer{z-index:3!important}
/* === MODIF NS&S 07/10/2026 — PHOTO DANS LE LOGO DU MENU MOBILE — FIN === */

/* =========================================================
   NS&S — 07/10/2026 — R8
   SEUL RÉGLAGE DU LOGO À MODIFIER À PARTIR DE MAINTENANT
   =========================================================
   IMPORTANT :
   Le PNG mesure 1916 × 821 px, soit un ratio d'environ 2,33.
   Avant R8, une hauteur fixe trop petite limitait la largeur réelle :
   augmenter seulement width pouvait donc ne rien changer.

   Pour changer la taille PC, modifier UNE SEULE VALEUR :
       --nses-logo-pc-width: 720px;

   La hauteur se calcule automatiquement selon le vrai ratio du logo.
   ========================================================= */
:root{
  --nses-logo-pc-width:720px;
  --nses-logo-tablet-width:540px;
  --nses-logo-mobile-width:355px;
}

@media(min-width:981px){
  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-pc-width),82vw)!important;
    max-width:calc(100% - 72px)!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:1916 / 821!important;
  }
  .app-banner.nses-header-logo>.nses-logo-base{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    max-height:none!important;
    object-fit:contain!important;
  }
}
@media(min-width:701px) and (max-width:980px){
  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-tablet-width),calc(100vw - 92px))!important;
    max-width:calc(100vw - 92px)!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:1916 / 821!important;
  }
  .app-banner.nses-header-logo>.nses-logo-base{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
  }
}
@media(max-width:700px){
  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-mobile-width),calc(100vw - 92px))!important;
    max-width:calc(100vw - 92px)!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:1916 / 821!important;
  }
  .app-banner.nses-header-logo>.nses-logo-base{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
  }
}
/* === NS&S R8 — FIN DU RÉGLAGE UNIQUE DU LOGO === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — PHOTO / ADMINISTRATION R9 — DÉBUT
   ========================================================= */

/* Photo dans le cercle du logo :
   position relative au canevas 1916×821 pour que la photo suive
   automatiquement si le logo est agrandi ou réduit. */
.nses-logo-composite{
  position:relative!important;
  overflow:visible!important;
}
.nses-logo-avatar-layer{
  left:3.5%!important;
  top:19.2%!important;
  width:20.2%!important;
  aspect-ratio:1/1!important;
  border-radius:50%!important;
  clip-path:circle(49.2% at 50% 50%)!important;
  overflow:hidden!important;
  z-index:3!important;
  pointer-events:none!important;
  background:#0d615a!important;
}
.nses-logo-avatar-layer img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:50%!important;
  clip-path:circle(49.2% at 50% 50%)!important;
}

/* Recadrage de la photo avant envoi. */
.nss-photo-cropper{
  display:grid;
  gap:14px;
  padding:14px;
  border:1px solid rgba(22,137,120,.16);
  border-radius:20px;
  background:rgba(235,250,245,.62);
}
.nss-crop-stage-wrap{
  display:grid;
  place-items:center;
}
.nss-crop-stage{
  position:relative;
  width:min(360px,86vw);
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:22px;
  background:#d7eee7;
  cursor:grab;
  touch-action:none;
  box-shadow:inset 0 0 0 1px rgba(15,120,105,.14);
}
.nss-crop-stage.is-dragging{cursor:grabbing}
.nss-crop-stage img{
  position:absolute;
  left:50%;
  top:50%;
  max-width:none!important;
  max-height:none!important;
  user-select:none;
  pointer-events:none;
}
.nss-crop-guide{
  position:absolute;
  inset:7%;
  border:4px solid rgba(212,160,46,.92);
  border-radius:50%;
  box-shadow:
    0 0 0 999px rgba(12,60,55,.34),
    inset 0 0 0 2px rgba(255,255,255,.72);
  pointer-events:none;
}
.nss-crop-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}
.nss-crop-controls label{display:grid;gap:5px}
.nss-crop-help{
  margin:0;
  color:#55726d;
  font-size:12px;
}
.nss-crop-final-preview{
  display:grid;
  justify-items:center;
  gap:7px;
}
.nss-crop-final-preview canvas{
  width:150px;
  height:150px;
  border-radius:50%;
  box-shadow:0 0 0 4px rgba(210,158,44,.68),0 9px 25px rgba(11,83,73,.12);
  background:#d9f1ea;
}

/* Administration rétractable dans le menu utilisateur. */
.nav-admin-subgroup{
  margin-top:6px;
  border-top:1px solid rgba(14,112,98,.12);
  padding-top:5px;
}
.nav-admin-subgroup>summary{
  list-style:none;
  cursor:pointer;
  font-weight:900;
  color:#0a655a;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(220,246,239,.54);
}
.nav-admin-subgroup>summary::-webkit-details-marker{display:none}
.nav-admin-subgroup>summary::after{
  content:"▾";
  float:right;
  transition:transform .18s ease;
}
.nav-admin-subgroup[open]>summary::after{transform:rotate(180deg)}
.nav-admin-links{
  display:grid;
  max-height:min(44vh,430px);
  overflow:auto;
  overscroll-behavior:contain;
  padding:5px 2px 2px;
}

/* Boutons rapides de Mon espace. */
.nss-dashboard-account-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:14px 0 2px;
}
.nss-dashboard-account-actions .nss-account-quick{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:42px!important;
  padding:9px 13px!important;
}
@media(max-width:620px){
  .nss-crop-controls{grid-template-columns:1fr}
  .nss-dashboard-account-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}
/* MODIF NS&S — 07/10/2026 — PHOTO / ADMINISTRATION R9 — FIN */

/* =========================================================
   MODIF NS&S — 07/10/2026 — ALERTES ADMIN / MENU R9 — DÉBUT
   ========================================================= */
.nss-admin-global-alert[hidden]{display:none!important}
.nss-admin-global-alert{
  position:relative;
  z-index:80;
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);
  gap:10px;
  align-items:stretch;
  margin:8px max(12px,4.6vw);
  padding:10px;
  border:2px solid rgba(180,38,38,.78);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(255,238,238,.97),rgba(255,250,247,.96));
  color:#811b1b;
  box-shadow:0 10px 30px rgba(120,20,20,.12),inset 0 1px 0 rgba(255,255,255,.9);
}
.nss-admin-alert-main{
  display:grid;
  align-content:center;
  gap:3px;
  padding:6px 9px;
}
.nss-admin-alert-main strong{
  color:#a01919;
  font-size:15px;
}
.nss-admin-alert-main span{
  color:#7e4a4a;
  font-size:11px;
}
.nss-admin-alert-actions{
  display:flex;
  gap:7px;
  align-items:stretch;
  overflow:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
}
.nss-admin-alert-actions>a{
  display:grid;
  align-content:center;
  min-width:190px;
  padding:7px 10px;
  border:1px solid rgba(176,42,42,.16);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  color:#741d1d;
  text-decoration:none;
}
.nss-admin-alert-actions>a b{font-size:11px}
.nss-admin-alert-actions>a small{font-size:9px;color:#875454}
.nss-admin-alert-actions .nss-admin-alert-all{
  min-width:145px;
  text-align:center;
  justify-content:center;
  font-weight:900;
}
.nss-admin-global-alert.is-new-alert{
  animation:nssAdminAlertPulseR9 1.1s ease-out 2;
}
@keyframes nssAdminAlertPulseR9{
  0%{box-shadow:0 10px 30px rgba(120,20,20,.12),0 0 0 0 rgba(197,45,45,.28)}
  55%{box-shadow:0 10px 30px rgba(120,20,20,.16),0 0 0 9px rgba(197,45,45,0)}
  100%{box-shadow:0 10px 30px rgba(120,20,20,.12),0 0 0 0 rgba(197,45,45,0)}
}

/* Menu Administration principal : fermé par défaut, coulissant et scrollable. */
.admin-nav-drawer{
  margin:0 0 14px;
  border:1px solid rgba(15,120,104,.16);
  border-radius:16px;
  background:rgba(239,251,247,.68);
  overflow:hidden;
}
.admin-nav-drawer>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  list-style:none;
  padding:11px 14px;
  color:#0b6158;
  font-weight:950;
}
.admin-nav-drawer>summary::-webkit-details-marker{display:none}
.admin-nav-drawer>summary::after{
  content:"▾";
  font-size:16px;
  transition:transform .18s ease;
}
.admin-nav-drawer[open]>summary::after{transform:rotate(180deg)}
.admin-nav-drawer>summary span{
  margin-left:auto;
  color:#63817c;
  font-size:10px;
  font-weight:700;
}
.admin-nav-drawer .admin-subnav{
  max-height:min(55vh,520px);
  overflow:auto!important;
  overscroll-behavior:contain;
  padding:8px 10px 12px!important;
}

/* Centre d'alertes. */
.admin-alert-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
.admin-alert-summary{
  text-decoration:none;
  display:grid;
  gap:5px;
}
.admin-alert-summary strong{font-size:32px;color:#0d6c61}
.admin-alert-summary.has-alert{
  border-color:rgba(184,42,42,.35)!important;
  box-shadow:inset 4px 0 0 #b92f2f,0 8px 22px rgba(120,30,30,.07)!important;
}
.admin-activity-alert-list{display:grid;gap:9px}
.admin-activity-alert{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border:1px solid rgba(17,118,102,.13);
  border-radius:14px;
  background:rgba(255,255,255,.58);
}
.admin-activity-alert>div:first-child{display:grid;gap:3px}
.admin-activity-alert.is-unread{
  border-color:rgba(183,42,42,.28);
  box-shadow:inset 4px 0 0 #b92f2f;
  background:rgba(255,242,242,.68);
}

@media(max-width:760px){
  .nss-admin-global-alert{
    grid-template-columns:1fr;
    margin:6px 8px;
    padding:8px;
  }
  .nss-admin-alert-actions{max-width:100%}
  .admin-alert-summary-grid{grid-template-columns:1fr}
  .admin-activity-alert{grid-template-columns:1fr}
}
/* MODIF NS&S — 07/10/2026 — ALERTES ADMIN / MENU R9 — FIN */

/* === MODIF NS&S 07/10/2026 — APERÇU PHOTO DANS LE LOGO R9 — DÉBUT === */
.nss-crop-logo-preview{
  position:relative;
  width:min(560px,100%);
  aspect-ratio:1916/821;
  margin-top:10px;
}
.nss-crop-logo-preview>img{
  display:block;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.nss-crop-logo-avatar{
  position:absolute;
  left:3.5%;
  top:19.2%;
  width:20.2%;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:50%;
  clip-path:circle(49.2% at 50% 50%);
}
.nss-crop-logo-avatar canvas{
  display:block;
  width:100%;
  height:100%;
}
/* === MODIF NS&S 07/10/2026 — APERÇU PHOTO DANS LE LOGO R9 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R10 — DÉBUT
   PHOTO "AIMANTÉE" DANS LE VRAI CERCLE 3D + MENUS
   ========================================================= */

/* -----------------------------------------------------------------
   A. LOGO : scène exacte 1916×821, sans padding parasite.
   La photo est SOUS le PNG de cadre dont l'intérieur est transparent.
   Le bord or/turquoise reste donc devant la photo et donne réellement
   l'impression qu'elle est incrustée dans le cercle 3D.
   ----------------------------------------------------------------- */
.app-banner.nses-header-logo{
  position:relative!important;
  display:block!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible!important;
}
.app-banner.nses-header-logo>.nses-logo-base,
.app-banner.nses-header-logo>.nses-logo-frame{
  position:relative!important;
  z-index:4!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:none!important;
  pointer-events:none!important;
}

/* Poche photo un peu plus grande que l'ouverture.
   Le cadre PNG masque automatiquement ce qui dépasse. */
.nses-logo-photo-pocket{
  position:absolute!important;
  z-index:2!important;
  left:4.33%!important;
  top:20.70%!important;
  width:18.79%!important;
  aspect-ratio:1/1!important;
  overflow:hidden!important;
  border-radius:50%!important;
  pointer-events:none!important;
  background:#0b4f49!important;
  box-shadow:
    inset 0 0 30px rgba(0,158,145,.44),
    inset 0 -25px 30px rgba(0,38,35,.34)!important;
}
.nses-logo-photo-pocket::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 42%,transparent 52%,rgba(0,71,65,.24) 78%,rgba(0,37,34,.46) 100%);
  box-shadow:inset 0 0 14px rgba(87,255,237,.25);
}
.nses-logo-photo-pocket img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:center center!important;
  filter:saturate(.95) contrast(1.02)!important;
  transform:none!important;
}

/* Menu mobile : même principe, mêmes coordonnées relatives. */
.nses-mobile-menu-logo-wrap{
  position:relative!important;
  overflow:visible!important;
}
.nses-mobile-menu-logo-wrap>.nses-logo-base,
.nses-mobile-menu-logo-wrap>.nses-logo-frame{
  position:relative!important;
  z-index:4!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  filter:none!important;
}

/* -----------------------------------------------------------------
   B. MENUS : plus de grands fonds blancs.
   Même verre aqua/menthe que le reste de NS&S.
   ----------------------------------------------------------------- */
:root{
  --nses-menu-bg:linear-gradient(145deg,rgba(235,252,247,.97),rgba(207,241,233,.94));
  --nses-menu-bg-soft:linear-gradient(145deg,rgba(243,253,250,.90),rgba(218,244,237,.86));
  --nses-menu-border:rgba(30,132,117,.24);
  --nses-menu-text:#0a5d54;
}

.nav-dropdown,
.nav-account-group .nav-dropdown{
  background:var(--nses-menu-bg)!important;
  border:1px solid var(--nses-menu-border)!important;
  box-shadow:0 20px 46px rgba(7,73,64,.16),inset 0 1px 0 rgba(255,255,255,.88)!important;
  backdrop-filter:blur(16px) saturate(115%)!important;
  -webkit-backdrop-filter:blur(16px) saturate(115%)!important;
  max-height:min(72dvh,620px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
}
.nav-dropdown a,
.nav-admin-links a{
  background:transparent!important;
  color:var(--nses-menu-text)!important;
}
.nav-dropdown a:hover,
.nav-dropdown a:focus,
.nav-dropdown a.is-current,
.nav-admin-links a:hover,
.nav-admin-links a:focus{
  background:rgba(191,232,222,.72)!important;
  color:#064f48!important;
}
.nav-admin-subgroup>summary{
  background:linear-gradient(145deg,rgba(214,244,236,.94),rgba(194,232,223,.84))!important;
  color:#07594f!important;
  border:1px solid rgba(26,123,109,.16)!important;
}
.nav-admin-links{
  max-height:min(50dvh,430px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
}

/* Champs déroulants du site : teinte cohérente quand le navigateur permet
   leur personnalisation. */
select{
  background-color:#e8f6f2!important;
  color:#0a5d54!important;
  border-color:rgba(29,126,112,.30)!important;
}
select option{
  background:#e8f6f2!important;
  color:#0a5d54!important;
}

/* -----------------------------------------------------------------
   C. MENU PRINCIPAL MOBILE / PWA : un seul conteneur scrollable.
   Les sous-menus ne se bloquent plus dans une seconde zone de scroll.
   ----------------------------------------------------------------- */
@media(max-width:1100px){
  #main-nav{
    background:var(--nses-menu-bg)!important;
  }
  #main-nav.open{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    max-height:calc(100dvh - var(--nss-mobile-header-h,146px) - var(--nss-update-h,0px) - 12px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
    scrollbar-gutter:stable!important;
    padding-bottom:calc(96px + env(safe-area-inset-bottom))!important;
  }
  #main-nav>a,
  #main-nav>.nav-menu-group>summary{
    flex:0 0 auto!important;
    background:var(--nses-menu-bg-soft)!important;
    border:1px solid rgba(28,126,111,.14)!important;
    border-radius:12px!important;
    color:#07594f!important;
  }
  #main-nav .nav-dropdown,
  #main-nav .nav-account-group .nav-dropdown{
    position:static!important;
    display:grid!important;
    transform:none!important;
    width:100%!important;
    min-width:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding:6px 5px 8px 14px!important;
    border:0!important;
    border-radius:0 0 13px 13px!important;
    background:rgba(215,243,236,.70)!important;
    box-shadow:none!important;
  }
  #main-nav .nav-admin-links{
    max-height:none!important;
    overflow:visible!important;
  }
}

/* -----------------------------------------------------------------
   D. MENU ADMINISTRATION DE LA PAGE ADMIN :
   grille verticale réellement scrollable au lieu d'une longue ligne flex.
   ----------------------------------------------------------------- */
.admin-nav-drawer{
  overflow:hidden!important;
}
.admin-nav-drawer .admin-subnav{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-content:start!important;
  justify-content:stretch!important;
  gap:8px!important;
  width:100%!important;
  max-height:min(58dvh,560px)!important;
  margin:0!important;
  padding:9px 10px 12px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  background:rgba(222,246,239,.70)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.admin-nav-drawer .admin-subnav a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:8px 10px!important;
  text-align:center!important;
  background:var(--nses-menu-bg-soft)!important;
  border:1px solid rgba(28,126,111,.14)!important;
  border-radius:12px!important;
  color:#07594f!important;
}
@media(max-width:680px){
  .admin-nav-drawer .admin-subnav{
    grid-template-columns:1fr!important;
    max-height:60dvh!important;
  }
}

/* Scrollbars discrètes dans les menus NS&S. */
.nav-dropdown,
.nav-admin-links,
#main-nav.open,
.admin-nav-drawer .admin-subnav{
  scrollbar-width:thin;
  scrollbar-color:rgba(18,119,104,.48) rgba(220,244,238,.42);
}

/* === MODIF NS&S — 07/10/2026 — R10 — FIN === */

/* === MODIF NS&S 07/10/2026 — APERÇU MAGNÉTIQUE DANS LE VRAI CADRE R10 — DÉBUT === */
.nss-crop-logo-preview{
  position:relative!important;
  width:min(700px,100%)!important;
  aspect-ratio:1916/821!important;
  overflow:visible!important;
  margin-top:12px!important;
}
.nss-crop-logo-preview>img{
  position:relative!important;
  z-index:4!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}
.nss-crop-logo-avatar{
  position:absolute!important;
  z-index:2!important;
  left:4.33%!important;
  top:20.70%!important;
  width:18.79%!important;
  aspect-ratio:1/1!important;
  overflow:hidden!important;
  border-radius:50%!important;
  background:#0b4f49!important;
  box-shadow:
    inset 0 0 22px rgba(0,158,145,.34),
    inset 0 -18px 24px rgba(0,38,35,.30)!important;
}
.nss-crop-logo-avatar canvas{
  display:block!important;
  width:100%!important;
  height:100%!important;
  border-radius:50%!important;
}
.nss-crop-logo-avatar::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:50%;
  background:radial-gradient(circle at 50% 42%,transparent 54%,rgba(0,71,65,.22) 80%,rgba(0,37,34,.42) 100%);
}
/* === MODIF NS&S 07/10/2026 — APERÇU MAGNÉTIQUE DANS LE VRAI CADRE R10 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R11 — DÉBUT
   CORRECTION DÉFINITIVE DE L'ALIGNEMENT PHOTO / CADRE 3D

   Cause R10 identifiée :
   app.css imposait encore :
       .app-banner { max-height:132px; overflow:hidden; }

   Le logo R10 demandait une scène au ratio 1916/821.
   La largeur restait grande (ex. 720px), mais la hauteur du conteneur
   était plafonnée à 132px. Le cadre 3D et la "poche photo" n'utilisaient
   donc pas la même géométrie : la photo apparaissait à gauche du cercle.

   R11 supprime ce plafond UNIQUEMENT pour le logo NS&S.
   Le conteneur reprend exactement le même ratio que le PNG 1916×821.
   Photo + cadre utilisent alors le même repère.
   ========================================================= */

/* PC / PWA ordinateur */
@media(min-width:981px){
  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-pc-width),82vw)!important;
    max-width:calc(100% - 72px)!important;

    /* IMPORTANT : neutralise le vieux max-height:132px de app.css */
    max-height:none!important;
    min-height:0!important;
    height:auto!important;

    aspect-ratio:1916 / 821!important;
    overflow:visible!important;
  }

  .app-banner.nses-header-logo>.nses-logo-base,
  .app-banner.nses-header-logo>.nses-logo-frame{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center!important;
  }
}

/* La poche photo et le cadre restent dans le même système de coordonnées.
   Centre source : x=263 / y=350 sur le canevas 1916×821. */
.nses-logo-photo-pocket{
  left:4.33%!important;
  top:20.70%!important;
  width:18.79%!important;
  aspect-ratio:1/1!important;
}

/* Sécurité : aucun ancien style d'image générique ne doit redimensionner
   l'image de profil à l'intérieur de la poche. */
.nses-logo-photo-pocket>img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:center center!important;
}

/* === MODIF NS&S — 07/10/2026 — R11 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R12 — DÉBUT
   HEADER COMPACT + LOGO UNIQUE + MENU MOBILE/PWA SCROLLABLE
   ========================================================= */

/*
  R12 n'utilise plus de photo positionnée en CSS dans le header.
  Le serveur fabrique une seule image PNG (photo + cadre 3D).
  Il n'y a donc plus rien à aligner selon la taille de l'écran.
*/
.nses-logo-photo-pocket,
.nses-logo-avatar-layer{
  display:none!important;
}

/* Réglage unique des tailles VISUELLES du logo recadré.
   Le fichier n'a plus les grandes marges transparentes 1916×821. */
:root{
  --nses-logo-pc-width:560px;
  --nses-logo-tablet-width:390px;
  --nses-logo-mobile-width:270px;
}

.app-banner-row{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  background:transparent!important;
}

.app-banner.nses-header-logo{
  position:relative!important;
  display:block!important;
  width:min(var(--nses-logo-pc-width),72vw)!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:4px auto!important;
  padding:0!important;
  border:0!important;
  overflow:visible!important;
  background:transparent!important;
}

.app-banner.nses-header-logo>.nses-logo-rendered{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  filter:none!important;
}

/* PC : le header reste fixe, mais il redevient compact. */
@media(min-width:1101px){
  .app-banner-row{
    min-height:138px!important;
    height:auto!important;
  }
  .nav-row{
    min-height:58px!important;
  }
}

/* Tablette / petite fenêtre PC / PWA */
@media(min-width:701px) and (max-width:1100px){
  .app-banner-row{
    height:104px!important;
    min-height:104px!important;
    padding:4px 72px 4px 10px!important;
  }
  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-tablet-width),calc(100vw - 110px))!important;
    margin:auto!important;
  }
}

/* Téléphone */
@media(max-width:700px){
  .app-banner-row{
    height:76px!important;
    min-height:76px!important;
    padding:4px 66px 4px 8px!important;
  }
  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-mobile-width),calc(100vw - 92px))!important;
    margin:auto!important;
  }
}

/* Hamburger compact et toujours accessible. */
@media(max-width:1100px){
  .menu-toggle{
    display:grid!important;
    place-items:center!important;
    position:absolute!important;
    right:10px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0!important;
    border-radius:14px!important;
    z-index:120002!important;
  }

  /* Ligne outils : seulement les trois boutons, très compacte. */
  .nav-row{
    width:100%!important;
    min-height:58px!important;
    height:auto!important;
    margin:0!important;
    padding:6px 10px!important;
    display:block!important;
  }
  .header-tools{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .header-tools>button{
    min-width:0!important;
    min-height:42px!important;
    padding:7px 5px!important;
  }

  /* Drawer principal : fermé = totalement hors layout. */
  #main-nav{
    display:none!important;
    position:fixed!important;
    top:calc(var(--nss-fixed-header-h) + var(--nss-update-h,0px))!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(74px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:10px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    z-index:120001!important;
    border:1px solid rgba(28,126,111,.20)!important;
    border-radius:18px!important;
    background:linear-gradient(145deg,rgba(235,252,247,.985),rgba(207,241,233,.975))!important;
    box-shadow:0 18px 42px rgba(7,73,64,.22)!important;
    scrollbar-width:thin!important;
  }

  #main-nav.open{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    gap:5px!important;
  }

  /*
    Important : R10 forçait tous les .nav-dropdown en display:grid.
    Cela ouvrait pratiquement tout le menu à la fois.
  */
  #main-nav .nav-menu-group:not([open])>.nav-dropdown{
    display:none!important;
  }
  #main-nav .nav-menu-group[open]>.nav-dropdown{
    display:grid!important;
    position:static!important;
    width:100%!important;
    min-width:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin:3px 0 5px!important;
    padding:5px 5px 7px 12px!important;
    border:0!important;
    box-shadow:none!important;
    background:rgba(210,241,233,.68)!important;
  }

  #main-nav .nav-admin-links{
    max-height:none!important;
    overflow:visible!important;
  }

  /* Le logo est déjà visible dans le header : inutile de reprendre de la hauteur. */
  #main-nav .mobile-menu-brand{
    display:none!important;
  }

  html.menu-open,
  body.menu-open{
    overflow:hidden!important;
  }
  body.menu-open{
    touch-action:auto!important;
  }
}

/* Sur PC, menus déroulants aqua mais non forcés ouverts. */
@media(min-width:1101px){
  #main-nav .nav-menu-group:not([open])>.nav-dropdown{
    display:none!important;
  }
}

/* === MODIF NS&S — 07/10/2026 — R12 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R13 — DÉBUT
   MENU MOBILE + PWA TOUJOURS VISIBLE ET DÉFILABLE
   ========================================================= */

@media(max-width:1100px){
  /* Quand le menu est dans body, on neutralise TOUTES les anciennes
     règles de positionnement héritées de app.css/R10/R12. */
  body>#main-nav.nses-nav-portal{
    display:flex!important;
    position:fixed!important;
    inset:auto 8px auto 8px!important;
    top:var(--nses-nav-top,142px)!important;
    bottom:var(--nses-nav-bottom,82px)!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:10px 10px 18px!important;

    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:7px!important;

    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;

    z-index:2147481000!important;
    border:1px solid rgba(18,117,102,.28)!important;
    border-radius:18px!important;
    background:
      linear-gradient(145deg,rgba(237,253,248,.99),rgba(204,239,231,.985))!important;
    box-shadow:
      0 22px 52px rgba(7,65,57,.28),
      inset 0 1px 0 rgba(255,255,255,.92)!important;
    backdrop-filter:blur(18px) saturate(120%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(120%)!important;

    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  body>#main-nav.nses-nav-portal>.nses-mobile-nav-close{
    position:sticky!important;
    top:0!important;
    z-index:4!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    width:100%!important;
    min-height:42px!important;
    margin:0 0 3px!important;
    padding:8px 12px!important;
    border-radius:12px!important;
    border:1px solid rgba(18,117,102,.18)!important;
    background:linear-gradient(145deg,rgba(225,248,242,.98),rgba(194,233,224,.96))!important;
    color:#07594f!important;
    box-shadow:0 5px 14px rgba(8,78,68,.08)!important;
  }
  body>#main-nav.nses-nav-portal>.nses-mobile-nav-close span{
    font-size:24px!important;
    line-height:1!important;
  }
  body>#main-nav.nses-nav-portal>.nses-mobile-nav-close b{
    font-size:12px!important;
  }

  /* Rubriques principales : toujours visibles dans le drawer. */
  body>#main-nav.nses-nav-portal>a,
  body>#main-nav.nses-nav-portal>.nav-menu-group>summary{
    display:flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    margin:0!important;
    padding:10px 12px!important;
    border:1px solid rgba(25,126,111,.15)!important;
    border-radius:12px!important;
    background:linear-gradient(145deg,rgba(244,253,250,.96),rgba(215,242,235,.90))!important;
    color:#07594f!important;
    text-decoration:none!important;
    font-weight:900!important;
    line-height:1.2!important;
  }

  body>#main-nav.nses-nav-portal>.nav-menu-group{
    display:block!important;
    width:100%!important;
    flex:0 0 auto!important;
  }

  /* Fermé = sous-menu réellement caché. */
  body>#main-nav.nses-nav-portal>.nav-menu-group:not([open])>.nav-dropdown{
    display:none!important;
  }

  /* Ouvert = sous-menu dans le flux vertical du drawer. */
  body>#main-nav.nses-nav-portal>.nav-menu-group[open]>.nav-dropdown{
    display:grid!important;
    position:static!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    margin:5px 0 1px!important;
    padding:6px 6px 7px 13px!important;
    gap:4px!important;
    overflow:visible!important;
    border:1px solid rgba(25,126,111,.10)!important;
    border-radius:12px!important;
    background:rgba(205,238,230,.76)!important;
    box-shadow:none!important;
  }

  body>#main-nav.nses-nav-portal .nav-dropdown a,
  body>#main-nav.nses-nav-portal .nav-admin-links a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:40px!important;
    padding:8px 10px!important;
    border-radius:9px!important;
    color:#084f48!important;
    background:rgba(245,253,250,.70)!important;
    white-space:normal!important;
  }

  body>#main-nav.nses-nav-portal .nav-admin-subgroup{
    display:block!important;
    width:100%!important;
  }
  body>#main-nav.nses-nav-portal .nav-admin-links{
    display:grid!important;
    width:100%!important;
    max-height:none!important;
    overflow:visible!important;
    gap:4px!important;
  }

  /* Le drawer ne répète pas le logo du header. */
  body>#main-nav.nses-nav-portal .mobile-menu-brand{
    display:none!important;
  }

  html.menu-open,
  body.menu-open{
    overflow:hidden!important;
  }
}

/* === MODIF NS&S — 07/10/2026 — R13 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R14 — DÉBUT
   PC : rapproche logo/navigation SANS réduire le logo.
   Mobile/PWA : hamburger plus petit.
   Voix : lanceur + panneau déplaçables sur tous les supports.
   ========================================================= */

/* PC UNIQUEMENT : on remonte la rangée des boutons/navigation.
   Le logo conserve exactement sa largeur actuelle. */
@media(min-width:1101px){
  .app-banner.nses-header-logo{
    margin-top:4px!important;
    margin-bottom:0!important;
  }
  .nav-row{
    margin:-52px auto 0!important;
    min-height:52px!important;
    position:relative!important;
    z-index:6!important;
  }
}

/* Hamburger visuellement plus discret sur tablette/PWA/mobile,
   avec une zone tactile invisible un peu plus large. */
@media(max-width:1100px){
  .menu-toggle{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
    right:9px!important;
    border-radius:12px!important;
    font-size:18px!important;
  }
  .menu-toggle::after{
    content:"";
    position:absolute;
    inset:-4px;
  }
}
@media(max-width:700px){
  .menu-toggle{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    right:8px!important;
    border-radius:11px!important;
    font-size:17px!important;
  }
}

/* Le petit bouton Accessibilité garde le même aspect lisible
   pour visiteur, personnel, client, professionnel et admin. */
.nses-accessibility-launcher,
.nses-accessibility-launcher.is-positioned,
.nses-accessibility-launcher.is-dragging{
  touch-action:none!important;
  cursor:grab!important;
  z-index:2147480500!important;
}
.nses-accessibility-launcher.is-dragging{cursor:grabbing!important}
.nses-accessibility-launcher .nses-a11y-label{
  display:inline!important;
}

/* Le panneau peut être saisi sur ses zones libres.
   Les boutons/champs gardent leur fonctionnement normal. */
.nses-accessibility-panel{
  z-index:2147480400!important;
}
.nses-accessibility-panel.is-dragging-anywhere{
  cursor:grabbing!important;
  user-select:none!important;
}
.nses-accessibility-panel.is-dragging-anywhere
  :not(button):not(a):not(input):not(select):not(textarea):not(label){
  cursor:grabbing!important;
}

/* Sur téléphone/PWA, pas de position forcée qui empêcherait le déplacement. */
@media(max-width:980px){
  .nses-accessibility-panel,
  .nses-accessibility-panel.is-synced-position{
    max-width:calc(100vw - 12px)!important;
  }
  .nses-accessibility-launcher,
  .nses-accessibility-launcher.is-positioned,
  .nses-accessibility-launcher.is-dragging{
    width:118px!important;
    min-width:118px!important;
    max-width:118px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    border-radius:999px!important;
    padding:0 9px!important;
  }
}

/* === MODIF NS&S — 07/10/2026 — R14 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R15 — DÉBUT
   APPLICATION EXACTE DES CONSIGNES
   ========================================================= */

/* ---------------------------------------------------------
   PC UNIQUEMENT
   Le logo garde sa largeur actuelle.
   On supprime la grande zone vide EN IMPOSANT la hauteur réelle
   de la ligne logo au lieu d'essayer de déplacer la nav par marge.
   --------------------------------------------------------- */
@media(min-width:1101px){
  .app-header{
    padding:0!important;
  }

  .app-banner-row{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;

    /* Le plus haut des logos recadrés fait ~158 px à 560 px de large. */
    height:164px!important;
    min-height:164px!important;
    max-height:164px!important;

    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  .app-banner.nses-header-logo{
    width:min(var(--nses-logo-pc-width),72vw)!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0 auto!important;
    padding:0!important;
  }

  .app-banner.nses-header-logo>.nses-logo-rendered{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:160px!important;
    margin:0 auto!important;
  }

  /* Boutons et navigation immédiatement sous le logo.
     On neutralise la marge négative R14 : ce n'est plus un bricolage. */
  .nav-row{
    width:min(1760px,96vw)!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
  }
}

/* ---------------------------------------------------------
   MOBILE + PWA MOBILE
   Le bouton visuel ☰ devient réellement plus petit.
   --------------------------------------------------------- */
@media(max-width:1100px){
  body .app-header .menu-toggle{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    max-width:36px!important;
    max-height:36px!important;
    padding:0!important;
    right:9px!important;
    border-radius:10px!important;
    font-size:16px!important;
    line-height:1!important;
  }

  body .app-header .menu-toggle::after{
    content:"";
    position:absolute;
    inset:-5px;
  }
}
@media(max-width:700px){
  body .app-header .menu-toggle{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    max-width:34px!important;
    max-height:34px!important;
    right:8px!important;
    border-radius:9px!important;
    font-size:15px!important;
  }
}

/* ---------------------------------------------------------
   ACCESSIBILITÉ
   Le lanceur et le panneau restent au-dessus de toute l'interface
   et ne reçoivent aucune position forcée liée au type de compte.
   --------------------------------------------------------- */
body .nses-accessibility-launcher{
  position:fixed!important;
  z-index:2147483000!important;
  touch-action:none!important;
}
body .nses-accessibility-panel{
  position:fixed!important;
  z-index:2147482900!important;
}

/* === MODIF NS&S — 07/10/2026 — R15 — FIN === */

/* =========================================================
   MODIF NS&S — 07/10/2026 — R16 — DÉBUT
   CORRECTION FINALE DU HEADER PC
   =========================================================
   Consigne respectée :
   - PC uniquement ;
   - le logo ne rétrécit pas ;
   - la navigation vient directement sous le logo ;
   - aucune zone vide intermédiaire ;
   - mobile/PWA conservent le R13/R15.
   ========================================================= */

@media(min-width:1101px){
  :root{
    --nss-fixed-header-h:202px!important;
  }

  html{
    scroll-padding-top:calc(202px + var(--nss-update-h,0px) + 12px)!important;
  }

  body.nss-fixed-header{
    padding-top:202px!important;
  }
  body.nss-update-visible.nss-fixed-header{
    padding-top:calc(202px + var(--nss-update-h,0px))!important;
  }

  .app-header{
    position:fixed!important;
    top:var(--nss-update-h,0px)!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:202px!important;
    min-height:202px!important;
    max-height:202px!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  /* Zone logo : exactement la hauteur utile du logo recadré. */
  .app-header>.app-banner-row{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:150px!important;
    min-height:150px!important;
    max-height:150px!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  .app-header>.app-banner-row>.app-banner.nses-header-logo{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:min(var(--nses-logo-pc-width),72vw)!important;
    height:150px!important;
    min-height:150px!important;
    max-height:150px!important;
    margin:0 auto!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    border:0!important;
  }

  .app-header>.app-banner-row>.app-banner.nses-header-logo>.nses-logo-rendered{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    max-height:146px!important;
    margin:0 auto!important;
    object-fit:contain!important;
    object-position:center center!important;
  }

  /* Navigation ancrée au bas du header : plus de marge calculée ou héritée. */
  .app-header>.nav-row{
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    top:auto!important;
    display:flex!important;
    align-items:center!important;
    width:min(1760px,96vw)!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    margin:0 auto!important;
    padding:0!important;
    gap:12px!important;
    transform:none!important;
  }
}

/* Mobile/PWA : on confirme le petit hamburger malgré les vieux CSS. */
@media(max-width:1100px){
  body .app-header .app-banner-row .menu-toggle{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    max-width:36px!important;
    max-height:36px!important;
    padding:0!important;
    border-radius:10px!important;
    font-size:16px!important;
  }
}
@media(max-width:700px){
  body .app-header .app-banner-row .menu-toggle{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    max-width:34px!important;
    max-height:34px!important;
    border-radius:9px!important;
    font-size:15px!important;
  }
}

/* === MODIF NS&S — 07/10/2026 — R16 — FIN === */


/* =========================================================
   MODIF NS&S — 08/10/2026 — R17 — DÉBUT
   HEADER / FOOTER 3D, BOUTONS COMPACTS, NAVIGATION UNIFIÉE,
   SOUS-MENUS AVEC ÉTATS, VISITEUR ET MOBILE/PWA.
   ========================================================= */

/* Relief 3D pleine largeur sans changer la largeur du site. */
.app-header,
footer,
.official-data-footer{
  width:100%!important;
  max-width:none!important;
  position:relative;
  background:
    linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(221,247,240,.86) 42%,rgba(196,234,225,.90) 100%)!important;
  border-color:rgba(21,125,109,.16)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -1px 0 rgba(16,105,92,.13),
    0 7px 20px rgba(9,75,66,.10)!important;
}
.app-header::after,
footer::before,
.official-data-footer::before{
  content:"";
  position:absolute;
  left:0;right:0;
  height:12px;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(255,255,255,0));
}
.app-header::after{bottom:0;transform:translateY(100%);}
footer::before,.official-data-footer::before{top:0;}

/* Bouton NS&S compact : même famille visuelle que les actions de Mon espace. */
.button,
.actions>button,
.actions>a,
.focus-actions>button,
.focus-actions>a,
.dashboard-welcome-actions>button,
.dashboard-welcome-actions>a,
.nss-dashboard-account-actions>button,
.nss-dashboard-account-actions>a,
.form-grid>button,
.nss-auto-reveal{
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:38px!important;
  padding:8px 13px!important;
  border-radius:13px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  line-height:1.15!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 7px 16px rgba(9,83,72,.08)!important;
}
.actions,.focus-actions,.dashboard-welcome-actions,.nss-dashboard-account-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
}
.nss-auto-reveal{
  margin:8px 4px 8px 0!important;
  background:linear-gradient(145deg,rgba(243,253,250,.96),rgba(211,241,234,.91))!important;
  color:#07594f!important;
  border:1px solid rgba(25,126,111,.17)!important;
}

/* Navigation principale : petits boutons alignés sous le header. */
#main-nav{
  gap:5px!important;
  align-items:center!important;
}
#main-nav>a,
#main-nav>.nav-menu-group>summary,
.nses-quick-nav>a{
  min-height:36px!important;
  width:auto!important;
  padding:7px 10px!important;
  border:1px solid rgba(24,124,109,.16)!important;
  border-radius:11px!important;
  background:linear-gradient(145deg,rgba(245,253,250,.94),rgba(211,241,234,.88))!important;
  color:#084f48!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.94),0 5px 12px rgba(8,76,67,.06)!important;
  font-weight:850!important;
  text-decoration:none!important;
  cursor:pointer!important;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease!important;
}
#main-nav>a:hover,#main-nav>.nav-menu-group>summary:hover,
.nses-quick-nav>a:hover,
.nav-dropdown a:hover,.nav-admin-links a:hover{
  transform:translateY(-1px)!important;
  background:linear-gradient(145deg,rgba(226,249,243,.99),rgba(190,231,221,.94))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 7px 16px rgba(8,76,67,.10)!important;
}
#main-nav>a:active,#main-nav>.nav-menu-group>summary:active,
.nses-quick-nav>a:active,.nav-dropdown a:active,.nav-admin-links a:active{
  transform:translateY(1px)!important;
  box-shadow:inset 0 3px 8px rgba(4,89,77,.16)!important;
}
#main-nav>a.is-current,
#main-nav>.nav-menu-group.is-current-parent>summary,
#main-nav>.nav-menu-group[open]>summary,
.nses-quick-nav>a.is-current{
  background:linear-gradient(145deg,rgba(196,239,229,.98),rgba(164,218,206,.94))!important;
  border-color:rgba(9,107,93,.34)!important;
  box-shadow:inset 0 3px 8px rgba(7,94,82,.14),0 4px 12px rgba(8,76,67,.08)!important;
}

/* Tous les sous-menus : même verre NS&S + survol + état actif/enfoncé. */
.nav-dropdown,.nav-admin-links{
  padding:7px!important;
  gap:4px!important;
  border:1px solid rgba(23,124,108,.18)!important;
  border-radius:14px!important;
  background:linear-gradient(145deg,rgba(239,252,248,.985),rgba(207,239,231,.97))!important;
  box-shadow:0 16px 32px rgba(7,74,65,.16),inset 0 1px 0 rgba(255,255,255,.94)!important;
}
.nav-dropdown a,.nav-admin-links a{
  min-height:37px!important;
  padding:8px 10px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.34)!important;
  color:#07564e!important;
  transition:transform .12s ease,background .12s ease,box-shadow .12s ease!important;
}
.nav-dropdown a:focus-visible,.nav-admin-links a:focus-visible{
  outline:2px solid rgba(8,121,104,.45)!important;
  outline-offset:1px!important;
}
.nav-dropdown a.is-current,.nav-admin-links a.is-current{
  background:rgba(175,226,214,.78)!important;
  border-color:rgba(14,112,98,.22)!important;
  box-shadow:inset 0 2px 6px rgba(4,90,77,.12)!important;
}

.nav-admin-subgroup>summary{
  min-height:37px!important;
  padding:8px 10px!important;
  border:1px solid rgba(24,124,109,.16)!important;
  border-radius:10px!important;
  background:linear-gradient(145deg,rgba(245,253,250,.94),rgba(211,241,234,.88))!important;
  color:#07564e!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.94)!important;
}
.nav-admin-subgroup>summary:hover{
  background:linear-gradient(145deg,rgba(226,249,243,.99),rgba(190,231,221,.94))!important;
}
.nav-admin-subgroup[open]>summary{
  background:rgba(175,226,214,.78)!important;
  box-shadow:inset 0 3px 8px rgba(4,90,77,.13)!important;
}

/* Navigation rapide mobile/PWA visible SOUS le header. */
.nses-quick-nav{display:none;}
@media(max-width:1100px){
  .app-header{height:auto!important;max-height:none!important;}
  .nav-row{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:6px!important;
    padding:6px 8px 7px!important;
  }
  .nses-quick-nav{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:6px!important;
    width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
    padding:1px 0 2px!important;
  }
  .nses-quick-nav::-webkit-scrollbar{display:none!important;}
  .nses-quick-nav>a{
    flex:0 0 auto!important;
    min-height:34px!important;
    padding:6px 9px!important;
    font-size:11px!important;
    white-space:nowrap!important;
  }
  /* Header réel = logo + outils + navigation rapide. */
  :root{--nss-fixed-header-h:172px!important;}
  body.nss-fixed-header{padding-top:172px!important;}
  body.nss-update-visible.nss-fixed-header{padding-top:calc(172px + var(--nss-update-h,0px))!important;}
}
@media(min-width:701px) and (max-width:1100px){
  :root{--nss-fixed-header-h:200px!important;}
  body.nss-fixed-header{padding-top:200px!important;}
  body.nss-update-visible.nss-fixed-header{padding-top:calc(200px + var(--nss-update-h,0px))!important;}
}

/* Administration et déconnexion immédiatement visibles sur PC. */
.nav-admin-direct{
  border-color:rgba(166,111,20,.25)!important;
  background:linear-gradient(145deg,rgba(253,248,228,.96),rgba(237,224,177,.88))!important;
}
.nav-signout-direct,.nses-quick-signout{border-color:rgba(157,59,59,.18)!important;}

/* Visiteur : petit bouton en bas, juste au-dessus du badge version. */
.role-visitor .nses-accessibility-launcher{
  left:14px!important;
  right:auto!important;
  top:auto!important;
  bottom:47px!important;
  width:auto!important;
  min-width:126px!important;
  max-width:150px!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 10px!important;
}
.nses-visitor-access-dialog{max-width:min(430px,calc(100vw - 20px))!important;}
.nses-visitor-access-actions{justify-content:center!important;}

/* Tous les pop-up : zone libre saisissable. */
.nses-popup-managed{touch-action:none;}
.nses-popup-managed input,.nses-popup-managed select,.nses-popup-managed textarea,
.nses-popup-managed button,.nses-popup-managed a,.nses-popup-managed label{touch-action:auto;}
.nses-popup-managed.is-nses-dragging{cursor:grabbing!important;user-select:none!important;}



/* Boutons de contenu : plus de barres pleine largeur quand ce n'est pas nécessaire. */
main .button,
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):not(.chart-series-button):not([data-chart-range]){
  width:auto!important;
  max-width:100%!important;
  justify-self:start!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,rgba(245,253,250,.96),rgba(211,241,234,.90))!important;
  border:1px solid rgba(24,124,109,.17)!important;
  color:#07594f!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.94),0 7px 16px rgba(8,76,67,.08)!important;
}
main .button:hover,
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):hover{
  transform:translateY(-1px)!important;
  background:linear-gradient(145deg,rgba(226,249,243,.99),rgba(190,231,221,.94))!important;
}
main .button:active,
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):active{
  transform:translateY(1px)!important;
  box-shadow:inset 0 3px 8px rgba(4,89,77,.15)!important;
}

/* =========================================================
   MODIF NS&S — 08/10/2026 — R17 — FIN
   ========================================================= */

/* =========================================================
   MODIF NS&S — 08/10/2026 — R18 — DÉBUT
   CORRECTION GLOBALE : HEADER / NAV / BOUTONS / SOUS-MENUS /
   INDICATEURS / POP-UP / RELIEF 3D.
   ========================================================= */

/* ---------- A. HEADER ET BARRE NAV : DEUX ZONES RÉELLEMENT SÉPARÉES ---------- */
.app-header{
  width:100%!important;
  max-width:none!important;
  overflow:visible!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.84) 0%,rgba(239,252,248,.90) 20%,rgba(216,244,237,.94) 72%,rgba(194,232,223,.96) 100%)!important;
  border:0!important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.98),
    inset 0 -7px 14px rgba(26,126,111,.09),
    0 5px 18px rgba(7,74,65,.09)!important;
}
.app-header::before{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  left:2%!important;right:2%!important;top:3px!important;
  height:32%!important;
  border-radius:0 0 50% 50%!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,0))!important;
}
.app-header::after{display:none!important;}
.app-banner-row{position:relative!important;z-index:1!important;}

.nses-nav-strip{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
  border-top:1px solid rgba(255,255,255,.74)!important;
  border-bottom:1px solid rgba(20,118,103,.20)!important;
  background:
    linear-gradient(180deg,rgba(247,254,252,.97) 0%,rgba(222,246,240,.95) 50%,rgba(203,237,229,.96) 100%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -4px 9px rgba(17,112,98,.07),
    0 6px 18px rgba(8,74,65,.08)!important;
  backdrop-filter:blur(16px) saturate(118%)!important;
  -webkit-backdrop-filter:blur(16px) saturate(118%)!important;
}

@media(min-width:1101px){
  :root{--nss-fixed-header-h:206px!important;}
  html{scroll-padding-top:calc(206px + var(--nss-update-h,0px) + 12px)!important;}
  body.nss-fixed-header{padding-top:206px!important;}
  body.nss-update-visible.nss-fixed-header{padding-top:calc(206px + var(--nss-update-h,0px))!important;}

  .app-header{
    position:fixed!important;
    top:var(--nss-update-h,0px)!important;
    left:0!important;right:0!important;
    height:150px!important;min-height:150px!important;max-height:150px!important;
    margin:0!important;padding:0!important;
    z-index:10020!important;
  }
  .app-header>.app-banner-row{
    width:100%!important;height:150px!important;min-height:150px!important;max-height:150px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    margin:0!important;padding:0!important;
  }
  .app-header .app-banner.nses-header-logo{
    width:min(var(--nses-logo-pc-width),72vw)!important;
    height:146px!important;min-height:0!important;max-height:146px!important;
    margin:0 auto!important;padding:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .app-header .nses-logo-rendered{width:100%!important;height:auto!important;max-height:144px!important;object-fit:contain!important;}

  .nses-nav-strip{
    position:fixed!important;
    top:calc(var(--nss-update-h,0px) + 150px)!important;
    left:0!important;right:0!important;
    height:56px!important;min-height:56px!important;max-height:56px!important;
    margin:0!important;padding:0 24px!important;
    display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;
    z-index:10019!important;
  }
  .nses-nav-strip .header-tools{display:flex!important;align-items:center!important;gap:8px!important;flex:0 0 auto!important;}
  .nses-nav-strip .header-tools>button:not(.menu-toggle){min-height:36px!important;height:36px!important;padding:6px 12px!important;}
  .nses-nav-strip .menu-toggle{display:none!important;}
  .nses-quick-nav{display:none!important;}
  .nses-nav-strip #main-nav{
    position:static!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;
    flex-wrap:nowrap!important;gap:2px!important;width:auto!important;max-width:none!important;
    margin:0!important;padding:0!important;overflow:visible!important;background:transparent!important;box-shadow:none!important;border:0!important;
  }
}

@media(min-width:701px) and (max-width:1100px){
  :root{--nss-fixed-header-h:162px!important;}
  body.nss-fixed-header{padding-top:162px!important;}
  body.nss-update-visible.nss-fixed-header{padding-top:calc(162px + var(--nss-update-h,0px))!important;}
  .app-header{position:fixed!important;top:var(--nss-update-h,0px)!important;left:0!important;right:0!important;height:104px!important;min-height:104px!important;max-height:104px!important;z-index:10020!important;}
  .app-header>.app-banner-row{height:104px!important;min-height:104px!important;max-height:104px!important;padding:4px 10px!important;}
  .nses-nav-strip{position:fixed!important;top:calc(var(--nss-update-h,0px) + 104px)!important;left:0!important;right:0!important;height:58px!important;min-height:58px!important;max-height:58px!important;padding:6px 8px!important;z-index:10019!important;}
}

@media(max-width:700px){
  :root{--nss-fixed-header-h:134px!important;}
  body.nss-fixed-header{padding-top:134px!important;}
  body.nss-update-visible.nss-fixed-header{padding-top:calc(134px + var(--nss-update-h,0px))!important;}
  .app-header{position:fixed!important;top:var(--nss-update-h,0px)!important;left:0!important;right:0!important;height:76px!important;min-height:76px!important;max-height:76px!important;z-index:10020!important;}
  .app-header>.app-banner-row{height:76px!important;min-height:76px!important;max-height:76px!important;padding:3px 8px!important;}
  .nses-nav-strip{position:fixed!important;top:calc(var(--nss-update-h,0px) + 76px)!important;left:0!important;right:0!important;height:58px!important;min-height:58px!important;max-height:58px!important;padding:6px!important;z-index:10019!important;}
}

/* Mobile/PWA : Mise à jour / Rechercher / Position / Menu, sur UNE ligne. */
@media(max-width:1100px){
  .nses-nav-strip{display:block!important;margin:0!important;}
  .nses-nav-strip .header-tools{
    width:100%!important;height:100%!important;
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;align-items:center!important;
  }
  .nses-nav-strip .header-tools>button{
    position:static!important;transform:none!important;
    width:100%!important;min-width:0!important;max-width:none!important;
    height:42px!important;min-height:42px!important;max-height:42px!important;
    margin:0!important;padding:6px 4px!important;border-radius:12px!important;
    font-size:11px!important;line-height:1.05!important;
    display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;
  }
  .nses-nav-strip .menu-toggle{z-index:auto!important;right:auto!important;top:auto!important;}
  .nses-nav-strip .menu-toggle b{font-size:15px!important;line-height:1!important;}
  .nses-quick-nav{display:none!important;}
  .nses-nav-strip>#main-nav:not(.nses-nav-portal){display:none!important;}
}

/* ---------- B. NAVIGATION PC : ONGLETS PLATS, PAS DE GROS BOUTONS ---------- */
@media(min-width:1101px){
  #main-nav>a,#main-nav>.nav-menu-group>summary{
    position:relative!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    min-height:34px!important;height:34px!important;width:auto!important;
    padding:6px 9px!important;margin:0!important;
    border:1px solid transparent!important;border-radius:8px!important;
    background:transparent!important;color:#134c47!important;box-shadow:none!important;
    font-weight:850!important;text-decoration:none!important;cursor:pointer!important;
    transition:background .14s ease,color .14s ease,border-color .14s ease,transform .12s ease!important;
  }
  #main-nav>.nav-menu-group>summary{list-style:none!important;}
  #main-nav>.nav-menu-group>summary::-webkit-details-marker{display:none!important;}
  #main-nav>.nav-menu-group>summary::after{content:"⌄";margin-left:5px;font-size:10px;opacity:.72;transition:transform .15s ease;}
  #main-nav>.nav-menu-group[open]>summary::after{transform:rotate(180deg);}
  #main-nav>a:hover,#main-nav>.nav-menu-group>summary:hover{
    transform:none!important;background:rgba(197,235,226,.56)!important;border-color:rgba(24,124,109,.12)!important;color:#075e55!important;box-shadow:none!important;
  }
  #main-nav>a:active,#main-nav>.nav-menu-group>summary:active{transform:translateY(1px)!important;background:rgba(176,222,212,.66)!important;}
  #main-nav>a.is-current,#main-nav>.nav-menu-group.is-current-parent>summary,#main-nav>.nav-menu-group[open]>summary{
    background:rgba(185,230,219,.58)!important;border-color:rgba(18,118,102,.20)!important;color:#064f48!important;box-shadow:inset 0 -2px 0 rgba(10,112,96,.52)!important;
  }
  #main-nav .nav-menu-group{position:relative!important;}
  #main-nav .nav-dropdown{
    position:absolute!important;top:calc(100% + 7px)!important;left:0!important;
    min-width:225px!important;width:max-content!important;max-width:min(360px,90vw)!important;
    max-height:min(62vh,520px)!important;overflow:auto!important;
  }
}

/* ---------- C. TOUS LES SOUS-MENUS : MÊME CHARTE + HOVER/OUVERT/ACTIF ---------- */
.nav-dropdown,.nav-admin-links{
  gap:4px!important;padding:7px!important;
  border:1px solid rgba(22,122,106,.19)!important;border-radius:14px!important;
  background:linear-gradient(145deg,rgba(241,253,249,.99),rgba(207,239,231,.98))!important;
  box-shadow:0 18px 36px rgba(7,69,61,.18),inset 0 1px 0 rgba(255,255,255,.96)!important;
  backdrop-filter:blur(18px) saturate(116%)!important;-webkit-backdrop-filter:blur(18px) saturate(116%)!important;
}
.nav-dropdown a,.nav-admin-links a{
  min-height:38px!important;padding:8px 10px!important;border:1px solid transparent!important;border-radius:9px!important;
  background:transparent!important;color:#0a5850!important;box-shadow:none!important;text-decoration:none!important;
  transition:background .13s ease,border-color .13s ease,transform .1s ease!important;
}
.nav-dropdown a:hover,.nav-admin-links a:hover,.nav-dropdown a:focus-visible,.nav-admin-links a:focus-visible{
  transform:none!important;background:rgba(183,229,218,.68)!important;border-color:rgba(18,117,101,.16)!important;color:#064f48!important;
}
.nav-dropdown a:active,.nav-admin-links a:active{transform:translateY(1px)!important;background:rgba(163,216,203,.72)!important;box-shadow:inset 0 2px 5px rgba(6,91,78,.12)!important;}
.nav-dropdown a.is-current,.nav-admin-links a.is-current{background:rgba(159,216,202,.75)!important;border-color:rgba(13,109,94,.25)!important;box-shadow:inset 3px 0 0 rgba(9,118,100,.62)!important;}
.nav-admin-subgroup>summary{background:rgba(229,248,242,.86)!important;border:1px solid rgba(20,120,104,.14)!important;box-shadow:none!important;}
.nav-admin-subgroup>summary:hover{background:rgba(190,232,222,.72)!important;}
.nav-admin-subgroup[open]>summary{background:rgba(171,224,211,.76)!important;box-shadow:inset 0 -2px 0 rgba(8,111,95,.35)!important;}

/* ---------- D. BOUTONS DU CONTENU : STYLE VALIDÉ DE MON ESPACE ---------- */
/* Restaure explicitement Ma journée / Mes menus / Gérer mon compte / Ma photo / Profil & santé. */
.page-dashboard .dashboard-welcome-actions .button,
.page-dashboard .nss-dashboard-account-actions .nss-account-quick,
.page-dashboard .focus-actions .button{
  width:auto!important;min-width:0!important;max-width:100%!important;
  min-height:42px!important;padding:9px 16px!important;border-radius:14px!important;
  border:1px solid rgba(25,126,111,.18)!important;
  background:
    linear-gradient(120deg,rgba(247,254,252,.96) 0 40%,rgba(111,207,189,.27) 48%,rgba(246,253,251,.96) 57% 100%)!important;
  color:#07584f!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 8px 18px rgba(11,95,84,.08)!important;
  font-size:13px!important;font-weight:900!important;text-decoration:none!important;
  transform:none!important;
}
.page-dashboard .dashboard-welcome-actions .button:hover,
.page-dashboard .nss-dashboard-account-actions .nss-account-quick:hover,
.page-dashboard .focus-actions .button:hover{
  background:
    linear-gradient(120deg,rgba(240,252,248,.98) 0 34%,rgba(73,189,168,.36) 48%,rgba(239,251,248,.98) 62% 100%)!important;
  border-color:rgba(14,127,109,.30)!important;transform:translateY(-1px)!important;
}

/* Les autres actions prennent cette même famille, sans devenir de longues barres. */
main .button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control),
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):not(.chart-series-button):not([data-chart-range]){
  width:auto!important;min-width:0!important;max-width:100%!important;min-height:40px!important;
  padding:8px 14px!important;border-radius:13px!important;
  border:1px solid rgba(25,126,111,.18)!important;
  background:linear-gradient(120deg,rgba(247,254,252,.96) 0 42%,rgba(111,207,189,.22) 49%,rgba(246,253,251,.96) 58% 100%)!important;
  color:#07584f!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 6px 15px rgba(11,95,84,.07)!important;
  font-weight:850!important;transform:none!important;
}
main .button:hover,
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):not(.chart-series-button):not([data-chart-range]):hover{
  background:linear-gradient(120deg,rgba(239,252,248,.99) 0 35%,rgba(64,185,163,.32) 49%,rgba(239,251,248,.99) 63% 100%)!important;
  border-color:rgba(14,127,109,.29)!important;transform:translateY(-1px)!important;
}
main .button:active,
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):not(.chart-series-button):not([data-chart-range]):active{
  transform:translateY(1px)!important;box-shadow:inset 0 2px 7px rgba(4,89,77,.13)!important;
}
.actions,.focus-actions,.dashboard-welcome-actions,.nss-dashboard-account-actions{
  display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;
}
.nses-actions-overflow-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;max-height:60dvh!important;overflow:auto!important;padding:4px!important;}
.nses-actions-overflow-list>a{display:flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;padding:9px 12px!important;border-radius:12px!important;background:rgba(230,248,243,.86)!important;border:1px solid rgba(20,120,104,.15)!important;text-decoration:none!important;color:#07584f!important;font-weight:850!important;}
@media(max-width:560px){.nses-actions-overflow-list{grid-template-columns:1fr!important;}}

/* ---------- E. INDICATEURS : ANIMATION VISIBLE ORANGE -> VERT -> ROUGE ---------- */
.segmented-ring>span{
  opacity:.12!important;
  transition:opacity .06s linear,filter .08s linear!important;
}
.segmented-ring>span.seg-orange{background:#e0a13b!important;}
.segmented-ring>span.seg-green{background:#168a68!important;}
.segmented-ring>span.seg-red{background:#c54848!important;}
.segmented-ring>span.is-on{opacity:1!important;filter:saturate(1.18) brightness(1.04)!important;}
.segmented-ring>strong{font-variant-numeric:tabular-nums!important;}

/* ---------- F. POP-UP : POIGNÉE PROPRE + DÉFILEMENT ---------- */
.nses-popup-managed:not(.is-nses-minimized){
  max-height:calc(100dvh - 14px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}
.nses-popup-toolbar{
  top:9px!important;right:52px!important;left:auto!important;
  max-width:calc(100% - 64px)!important;
  padding:3px!important;border-radius:999px!important;
  background:rgba(230,248,243,.84)!important;
  border:1px solid rgba(23,124,108,.13)!important;
  box-shadow:0 5px 13px rgba(7,74,66,.08)!important;
}
.nses-popup-move{min-height:29px!important;padding:4px 8px!important;background:transparent!important;box-shadow:none!important;border:0!important;}
.nses-popup-minimize{width:29px!important;height:29px!important;min-width:29px!important;background:rgba(250,255,253,.64)!important;}
@media(max-width:620px){
  .nses-popup-toolbar{top:7px!important;right:46px!important;left:auto!important;}
  .nses-popup-move span{display:none!important;}
  .nses-popup-move{width:30px!important;min-width:30px!important;padding:0!important;justify-content:center!important;}
}

/* ---------- G. FOOTER : RELIEF 3D LARGEUR COMPLÈTE ---------- */
footer,.official-data-footer{
  width:100%!important;max-width:none!important;position:relative!important;
  background:linear-gradient(180deg,rgba(246,253,251,.94),rgba(214,242,235,.94),rgba(194,231,223,.96))!important;
  border-top:1px solid rgba(255,255,255,.88)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.90),inset 0 7px 18px rgba(25,124,109,.055),0 -7px 20px rgba(7,74,65,.07)!important;
}
footer::before,.official-data-footer::before{
  content:""!important;position:absolute!important;left:2%!important;right:2%!important;top:2px!important;height:18px!important;
  border-radius:0 0 50% 50%!important;background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,0))!important;pointer-events:none!important;
}

/* === MODIF NS&S — 08/10/2026 — R18 — FIN === */

/* =========================================================
   MODIF NS&S — 08/10/2026 — R19 — DÉBUT
   BOUTONS UNIFIÉS / DASHBOARD / INDICATEURS / MENU
   ========================================================= */

/* Le bouton Fermer du drawer n'existe visuellement QUE dans le portail mobile. */
.nses-mobile-nav-close{display:none!important;}
@media(max-width:1100px){
  body>#main-nav.nses-nav-portal>.nses-mobile-nav-close{display:flex!important;}
}

/* ---------- A. MON ESPACE : TOUS LES ACCÈS SOUS BONJOUR ---------- */
.page-dashboard .nss-dashboard-primary-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
  margin-top:17px!important;
  width:min(720px,100%)!important;
}
.page-dashboard .nss-dashboard-primary-actions>a,
.page-dashboard .nss-dashboard-section-tile{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  min-width:0!important;
  min-height:70px!important;
  padding:11px 13px!important;
  border:1px solid rgba(19,124,108,.18)!important;
  border-radius:18px!important;
  background:
    linear-gradient(145deg,rgba(251,255,254,.92),rgba(226,247,241,.86))!important;
  color:#0a514a!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 8px 20px rgba(7,83,72,.07)!important;
  text-decoration:none!important;
  text-align:left!important;
  overflow:hidden!important;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease!important;
}
.page-dashboard .nss-dashboard-primary-actions>a::after,
.page-dashboard .nss-dashboard-section-tile::after{
  content:""!important;
  position:absolute!important;
  inset:-35% auto auto -20%!important;
  width:62%!important;
  height:120%!important;
  transform:rotate(24deg)!important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent)!important;
  opacity:.0!important;
  pointer-events:none!important;
  transition:opacity .18s ease,left .3s ease!important;
}
.page-dashboard .nss-dashboard-primary-actions>a:hover,
.page-dashboard .nss-dashboard-primary-actions>a:focus-visible,
.page-dashboard .nss-dashboard-section-tile:hover,
.page-dashboard .nss-dashboard-section-tile:focus-visible{
  transform:translateY(-2px)!important;
  border-color:rgba(8,145,121,.42)!important;
  background:linear-gradient(145deg,rgba(246,255,252,.98),rgba(205,242,232,.94))!important;
  box-shadow:
    inset 0 1px 0 #fff,
    0 0 0 3px rgba(31,184,158,.08),
    0 13px 28px rgba(4,105,90,.12)!important;
}
.page-dashboard .nss-dashboard-primary-actions>a:hover::after,
.page-dashboard .nss-dashboard-section-tile:hover::after{opacity:1!important;left:55%!important;}
.page-dashboard .nss-dashboard-primary-actions>a:active,
.page-dashboard .nss-dashboard-section-tile:active{
  transform:translateY(1px)!important;
  box-shadow:inset 0 3px 8px rgba(4,91,78,.12)!important;
}
.page-dashboard .nss-dashboard-primary-actions .nss-shortcut-icon,
.page-dashboard .nss-dashboard-section-tile .nss-shortcut-icon{
  display:grid!important;
  place-items:center!important;
  flex:0 0 44px!important;
  width:44px!important;
  height:44px!important;
  border-radius:14px!important;
  background:linear-gradient(145deg,#d4f3eb,#f4fbf9)!important;
  border:1px solid rgba(15,126,108,.14)!important;
  color:#087465!important;
  box-shadow:inset 0 1px 0 #fff!important;
  font-size:20px!important;
  font-weight:950!important;
}
.page-dashboard .nss-dashboard-primary-actions .nss-shortcut-icon svg{
  width:22px!important;height:22px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;
}
.page-dashboard .nss-dashboard-primary-actions>a>div,
.page-dashboard .nss-dashboard-section-tile>div{display:grid!important;gap:2px!important;min-width:0!important;}
.page-dashboard .nss-dashboard-primary-actions strong,
.page-dashboard .nss-dashboard-section-tile strong{font-size:13px!important;color:#0b514a!important;}
.page-dashboard .nss-dashboard-primary-actions small,
.page-dashboard .nss-dashboard-section-tile small{font-size:10.5px!important;color:#69817d!important;}

/* Anciennes zones de boutons séparées : plus de doublons. */
.page-dashboard .nss-dashboard-account-actions,
.page-dashboard .dashboard-welcome-actions,
.page-dashboard .nss-dashboard-shortcuts-r3:not(.nss-dashboard-primary-actions){display:none!important;}

/* ---------- B. SECTIONS REPLIÉES : TUILES ALIGNÉES, PLUS DE LONGUES BARRES ---------- */
.page-dashboard .nss-dashboard-section-launchers{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin:2px 0 4px!important;
}
.page-dashboard .nss-dashboard-section-tile{
  width:100%!important;
  min-height:72px!important;
  margin:0!important;
}
.page-dashboard .nss-dashboard-section-tile.is-open{
  border-color:rgba(12,141,117,.44)!important;
  background:linear-gradient(145deg,rgba(226,250,244,.98),rgba(184,231,220,.92))!important;
  box-shadow:inset 0 2px 7px rgba(3,97,83,.09),0 0 0 3px rgba(20,153,130,.07)!important;
}

/* ---------- C. BOUTONS DU CONTENU : MÊME FAMILLE VISUELLE ---------- */
main .button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.chart-series-button),
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):not(.chart-series-button):not([data-chart-range]):not(.nss-dashboard-section-tile){
  width:auto!important;
  min-width:0!important;
  max-width:280px!important;
  min-height:48px!important;
  padding:9px 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  border:1px solid rgba(19,124,108,.18)!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,rgba(251,255,254,.92),rgba(226,247,241,.86))!important;
  color:#0a514a!important;
  box-shadow:inset 0 1px 0 #fff,0 8px 19px rgba(7,83,72,.07)!important;
  font-weight:900!important;
  text-decoration:none!important;
  transform:none!important;
}
main .button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):hover,
main button:not(.dialog-x):not(.nses-panel-round-button):not(.nses-accessibility-control):not(.nses-popup-move):not(.nses-popup-minimize):not(.chart-series-button):not([data-chart-range]):not(.nss-dashboard-section-tile):hover{
  transform:translateY(-2px)!important;
  border-color:rgba(8,145,121,.40)!important;
  background:linear-gradient(145deg,rgba(246,255,252,.98),rgba(205,242,232,.94))!important;
  box-shadow:0 0 0 3px rgba(31,184,158,.07),0 12px 25px rgba(4,105,90,.11)!important;
}
main .button:active,
main button:not(.dialog-x):not(.nses-popup-move):not(.nses-popup-minimize):active{
  transform:translateY(1px)!important;
}
main .actions,main .focus-actions,main .dialog-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:9px!important;
}
main .actions>*,
main .focus-actions>*,
main .dialog-actions>*{
  flex:0 1 auto!important;
}

/* ---------- D. INDICATEURS : COULEURS FRANCHES ET ANIMATION LISIBLE ---------- */
.segmented-ring>span{
  opacity:.10!important;
  transition:opacity .045s linear,filter .06s linear!important;
}
.segmented-ring>span.seg-orange{background:#f2a51a!important;box-shadow:0 0 5px rgba(242,165,26,.18)!important;}
.segmented-ring>span.seg-green{background:#00a56f!important;box-shadow:0 0 6px rgba(0,165,111,.24)!important;}
.segmented-ring>span.seg-red{background:#df3f43!important;box-shadow:0 0 6px rgba(223,63,67,.24)!important;}
.segmented-ring>span.is-on{
  opacity:1!important;
  filter:saturate(1.38) brightness(1.06)!important;
}
.segmented-ring[data-nss-zone="orange"]>strong{color:#b56c00!important;}
.segmented-ring[data-nss-zone="green"]>strong{color:#007f5a!important;}
.segmented-ring[data-nss-zone="red"]>strong{color:#b7252b!important;}
.segmented-ring.is-nss-sweeping{
  box-shadow:
    inset 0 0 0 1px rgba(22,114,99,.09),
    0 0 0 4px rgba(31,172,146,.04),
    0 10px 24px rgba(10,95,82,.09)!important;
}
.segmented-ring>strong{
  font-variant-numeric:tabular-nums!important;
  transition:color .15s ease!important;
}

/* ---------- E. SOUS-MENUS : SURVOL / OUVERT / ACTIF PLUS CLAIRS ---------- */
.nav-dropdown a:hover,.nav-admin-links a:hover{
  background:rgba(166,229,214,.82)!important;
  border-color:rgba(7,130,109,.24)!important;
  box-shadow:0 0 0 2px rgba(26,167,142,.06)!important;
}
#main-nav>.nav-menu-group[open]>summary,
#main-nav>.nav-menu-group.is-open>summary{
  background:rgba(164,225,211,.88)!important;
  border-color:rgba(7,124,105,.30)!important;
  box-shadow:inset 0 3px 7px rgba(4,92,78,.12),0 0 0 2px rgba(25,157,134,.05)!important;
}
.nav-dropdown a.is-current,.nav-admin-links a.is-current{
  background:rgba(132,213,194,.88)!important;
  box-shadow:inset 4px 0 0 #078f78!important;
}

/* ---------- F. POP-UP : poignée compacte, jamais sur le titre ---------- */
.nses-popup-toolbar{
  top:8px!important;
  right:46px!important;
  left:auto!important;
  width:auto!important;
  max-width:118px!important;
  min-height:32px!important;
}
.nses-popup-move{
  min-width:32px!important;
  max-width:76px!important;
  min-height:28px!important;
  padding:3px 7px!important;
  font-size:10px!important;
}
.nses-popup-minimize{
  width:28px!important;height:28px!important;min-width:28px!important;
}

/* Responsive du dashboard : deux tuiles par ligne comme demandé. */
@media(max-width:980px){
  .page-dashboard .nss-dashboard-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .page-dashboard .nss-dashboard-section-launchers{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:520px){
  .page-dashboard .nss-dashboard-primary-actions,
  .page-dashboard .nss-dashboard-section-launchers{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
  .page-dashboard .nss-dashboard-primary-actions>a,
  .page-dashboard .nss-dashboard-section-tile{min-height:68px!important;padding:9px!important;gap:8px!important;border-radius:15px!important;}
  .page-dashboard .nss-dashboard-primary-actions .nss-shortcut-icon,
  .page-dashboard .nss-dashboard-section-tile .nss-shortcut-icon{width:36px!important;height:36px!important;flex-basis:36px!important;border-radius:11px!important;font-size:16px!important;}
}

/* === MODIF NS&S — 08/10/2026 — R19 — FIN === */


/* =========================================================
   NS&S — TEST MOBILE/PWA HEADER RÉEL — V5 — 08/10/2026

   RAISON DU V5
   Le test V4 ciblait seulement le logo Visiteur dans nses-r21.css.
   La règle réellement structurante du header mobile est ici,
   dans nses-accessibility.css, et fixe le header à 76 px.

   ANCIENNES VALEURS — CONSERVÉES POUR RETOUR RAPIDE :
     header mobile ........ 76 px
     banner-row ........... 76 px
     navigation top ....... 76 px
     header + navigation . 134 px

   NOUVELLES VALEURS DE TEST :
     header mobile ....... 124 px
     banner-row .......... 124 px
     navigation top ...... 124 px
     header + navigation . 182 px

   Pourquoi 124 px :
   Le logo Visiteur complet reste réellement en 1916 × 821.
   À la largeur mobile NS&S actuelle de 270 px, il mesure environ
   116 px de haut. 124 px laisse la place au logo sans qu'il
   descende dans la barre de navigation.

   IMPORTANT :
   - aucun recadrage du PNG
   - aucun axe X/Y ajouté
   - aucun changement du logo Personnel
   - aucun changement Client / Professionnel
   - le test PC +15 px reste inchangé
   - le fichier Visiteur reste 1916 × 821

   RETOUR RAPIDE :
   commenter uniquement le bloc DÉBUT / FIN ci-dessous.
   ========================================================= */

/* === TEST NS&S 08/10/2026 — HEADER MOBILE/PWA 124px V5 — DÉBUT === */
@media(max-width:700px){
  :root{
    --nss-fixed-header-h:182px!important;
  }

  html{
    scroll-padding-top:calc(182px + var(--nss-update-h,0px) + 12px)!important;
  }

  body.nss-fixed-header{
    padding-top:182px!important;
  }

  body.nss-update-visible.nss-fixed-header{
    padding-top:calc(182px + var(--nss-update-h,0px))!important;
  }

  .app-header{
    position:fixed!important;
    top:var(--nss-update-h,0px)!important;
    left:0!important;
    right:0!important;
    height:124px!important;
    min-height:124px!important;
    max-height:124px!important;
    overflow:visible!important;
  }

  .app-header>.app-banner-row{
    height:124px!important;
    min-height:124px!important;
    max-height:124px!important;
    padding:3px 8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }

  .app-header .app-banner.nses-header-logo{
    margin:auto!important;
    overflow:visible!important;
  }

  .app-header .app-banner.nses-header-logo>.nses-logo-rendered{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
    margin:0 auto!important;
    transform:none!important;
  }

  .nses-nav-strip{
    top:calc(var(--nss-update-h,0px) + 124px)!important;
  }
}
/* === TEST NS&S 08/10/2026 — HEADER MOBILE/PWA 124px V5 — FIN === */
