/* Ajustements téléphone : ajoutés sans modifier l'identité visuelle des espaces. */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img { max-width: 100%; height: auto; }
.menu-session { margin: 16px 0; padding: 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.05); }
.menu-session > span { display: block; color: #a98ddb; font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.menu-session > strong { display: block; margin: 6px 0 2px; color: #fff; font-size: 14px; }
.menu-session-role { display: block; margin: 0 0 11px; color: #cad2e4; font-size: 10px; font-weight: 700; }
.menu-session-return { display: flex; justify-content: space-between; padding: 10px 11px !important; border-radius: 8px; background: #513d83; color: #fff !important; }
.menu-session-links { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 10px; }
.menu-session-links a { padding: 7px 0 !important; font-size: 10px !important; color: #cad2e4 !important; }
.menu-session-logout { width: 100%; margin-top: 12px; padding: 9px 10px; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; background: transparent; color: #cad2e4; font: 700 10px var(--sans, Arial, sans-serif); text-align: left; cursor: pointer; }
.menu-session-logout:hover, .menu-session-logout:focus-visible { border-color: #c9b3eb; color: #fff; background: rgba(255,255,255,.08); }
.account-welcome { position: absolute; z-index: 6; top: 96px; left: clamp(24px,7vw,115px); display: grid; gap: 2px; padding: 10px 14px; border: 1px solid rgba(205,220,244,.22); border-radius: 10px; background: rgba(8,16,33,.78); color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.18); backdrop-filter: blur(10px); }
.account-welcome > span { color: #aac0e3; font-size: 8px; font-weight: 800; letter-spacing: .15em; }
.account-welcome > strong { font: 600 15px var(--serif, Georgia, serif); }
.account-welcome > small { color: #d1dbea; font-size: 9px; }

/* L'espace chauffeur conserve le bleu marine RLD et se distingue par le vert.
   La session est placée juste sous l'en-tête du menu : son accès reste visible. */
.menu-session-chauffeur { margin: 18px 0 12px; border-color: rgba(72,191,151,.34); background: linear-gradient(135deg,rgba(18,107,91,.31),rgba(9,39,57,.48)); }
.menu-session-chauffeur > span { color: #a7ead1; }
.menu-session-chauffeur .menu-session-return { background: linear-gradient(135deg,#126b5b,#0b4852); box-shadow: 0 8px 18px rgba(5,45,52,.28); }
.menu-session-chauffeur .menu-session-return:hover,.menu-session-chauffeur .menu-session-return:focus-visible { background: linear-gradient(135deg,#16806c,#0d5863); }
.menu-session-chauffeur .menu-session-links a { color: #cef2e3 !important; }
.menu-session-chauffeur .menu-session-logout:hover,.menu-session-chauffeur .menu-session-logout:focus-visible { border-color: #62cba8; }
.account-welcome-chauffeur { border-color: rgba(80,198,158,.42); background: rgba(6,38,51,.86); }
.account-welcome-chauffeur > span { color: #a4e5cc; }

/* Compte client : bleu RLD uniquement.  Le violet est réservé à l'admin et
   ne doit jamais réapparaître dans la carte « espace connecté » du client. */
.menu-session-particulier { border-color: rgba(103,157,219,.42); background: linear-gradient(135deg,rgba(16,57,111,.56),rgba(8,28,61,.78)); }
.menu-session-particulier > span { color: #b7d9fb; }
.menu-session-particulier .menu-session-return { background: linear-gradient(135deg,#1555a0,#0b2853); box-shadow: 0 8px 18px rgba(5,26,61,.34); }
.menu-session-particulier .menu-session-return:hover,.menu-session-particulier .menu-session-return:focus-visible { background: linear-gradient(135deg,#1a68be,#103b75); }
.menu-session-particulier .menu-session-links a { color: #d8eaff !important; }
.menu-session-particulier .menu-session-logout:hover,.menu-session-particulier .menu-session-logout:focus-visible { border-color: #82b7eb; color:#fff; }

/* Les anciens écrans client ont aussi une navigation bleue, même lorsque leur
   feuille de style historique utilisait les règles communes de l'admin. */
body.client-space .space-nav { background:#eaf2fb; border:1px solid #d1e0f0; border-radius:12px; }
body.client-space .space-nav a { color:#315d8c; }
body.client-space .space-nav a.active,body.client-space .space-nav a:hover { background:#0b2853; border-color:#0b2853; color:#fff; box-shadow:none; }
#site-menu .menu-links + .menu-session { margin-top: 24px; border-top-color: rgba(255,255,255,.23); }
.rld-contact-settings { display: grid; grid-template-columns: minmax(200px,.8fr) minmax(300px,1.2fr); gap: 24px; margin: 30px 0; padding: 26px; border: 1px solid #e6e5ef; border-radius: 18px; background: #fff; box-shadow: 0 14px 32px rgba(26,20,55,.06); }
.rld-contact-settings p { margin: 0; color: #667085; font-size: 13px; line-height: 1.6; }
.rld-contact-settings h2 { margin: 6px 0 10px; color: #1c2142; }
.rld-contact-settings form { display: grid; gap: 12px; }
.rld-contact-settings label { display: grid; gap: 6px; color: #313959; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rld-contact-settings input { min-width: 0; padding: 12px; border: 1px solid #d7d9e5; border-radius: 8px; font: inherit; }
.rld-contact-settings button { justify-self: start; padding: 11px 16px; border: 0; border-radius: 8px; background: #1d2f5e; color: #fff; font-weight: 800; cursor: pointer; }
.rld-contact-settings small { color: #16835c; line-height: 1.4; }

/* Le menu d'administration garde sa colonne sur ordinateur et tablette.
   Sur téléphone, admin-navigation.js crée le panneau latéral ouvrable : ne
   jamais transformer ici la navigation en barre horizontale au-dessus. */
@media (max-width: 799px) {
  body > main { min-width: 0 !important; margin-left: 0 !important; padding: 24px 16px !important; }
  .rld-contact-settings { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .site-header { min-height: 66px; padding: 10px 16px !important; }
  .site-header .brand img { width: 36px !important; height: 36px !important; }
  .site-header .brand span { font-size: 13px !important; }
  .site-header .outline-button { display: none !important; }
  .site-menu { width: min(92vw, 390px) !important; max-width: 92vw !important; }
  .account-welcome { top: 76px; left: 16px; right: 16px; padding: 9px 12px; }
  .menu-session-links { grid-template-columns: 1fr; }
  .company-header, .space-header, .topbar { padding-left: 16px !important; padding-right: 16px !important; }
  .company-nav, .space-nav, .subnav { overflow-x: auto !important; flex-wrap: nowrap !important; -webkit-overflow-scrolling: touch; }
  .company-nav a, .space-nav a, .subnav a { white-space: nowrap; flex: 0 0 auto; }
  .rld-contact-settings { margin: 18px 0; padding: 18px; }

  /* Le bloc connecté du menu téléphone reste compact : les deux actions ne
     prennent plus une grande carte lorsqu'on est déjà sur un petit écran. */
  #site-menu .menu-session { margin:10px 0 8px; padding:10px; border-radius:10px; }
  #site-menu .menu-session > strong { margin:4px 0 1px; font-size:12px; }
  #site-menu .menu-session-role { margin-bottom:7px; font-size:9px; }
  #site-menu .menu-session-return { padding:8px 9px !important; font-size:10px !important; }
  #site-menu .menu-session-links { margin-top:7px; gap:2px; }
  #site-menu .menu-session-links a { padding:5px 0 !important; font-size:9px !important; }
  #site-menu .menu-session-logout { margin-top:8px; padding:7px 8px; font-size:9px; }
}

/* Dernière passe téléphone : densité et lisibilité en portrait. */
@media (max-width: 700px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  body > main { padding: 20px 14px !important; }
  main > * { min-width: 0; }
  input, select, textarea, button { max-width: 100%; }
  .toolbar, .top, .company-header, .space-header { gap: 12px !important; }
  .toolbar > *, .top > *, .company-header > *, .space-header > * { min-width: 0; }
  .toolbar { align-items: flex-start !important; flex-wrap: wrap !important; }
  .table { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .planning-filters, .filters { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .planning-filters::-webkit-scrollbar, .filters::-webkit-scrollbar { display: none; }
  .planning-filters > *, .filters > * { flex: 0 0 auto; }
}
@media (max-width: 420px) {
  body > main { padding: 18px 12px !important; }
  .site-header { padding: 9px 12px !important; }
  .rld-contact-settings { padding: 15px; }
}
