/* ==========================================================================
   TRANSFERTS CAB SERVICES — DESIGN SYSTEM D'EXPLOITATION TAXI & VTC
   Thème conforme aux maquettes design-refonte (sable / or / papier / encre,
   Forum & Montserrat). Source de vérité : design-refonte/css/design-system.css
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Forum&family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');

:root {
  /* Palette de marque (Cohérence site vitrine vtcavignon.com) */
  --sand: #c8bdab;
  --sand-light: #f4efe6;
  --sand-card: #fbf8f1;
  --sand-gold: #b8862f;
  --sand-dark: #74541d;
  --ink: #08111f;
  --ink-soft: #0b1727;
  --paper: #f4f0e8;
  --paper-soft: #f7f3eb;
  --border: #d8d1c4;
  --border-subtle: #e9e3d8;
  --white: #ffffff;

  /* Textes */
  --text-main: #191816;
  --text-muted: #665f53;
  --text-light: #8a8274;

  /* Pont de tokens : noms historiques de l'espace admin remappés sur la charte */
  --adm-bg: var(--paper);
  --adm-sidebar-bg: var(--ink);
  --adm-sidebar-border: rgba(200, 189, 171, 0.25);
  --adm-header-bg: var(--ink);
  --adm-card-bg: var(--white);
  --adm-border: var(--border);
  --adm-border-subtle: var(--border-subtle);
  --adm-text-main: var(--text-main);
  --adm-text-muted: var(--text-muted);
  --adm-text-light: var(--text-light);
  --adm-primary: var(--sand-gold);
  --adm-gold: var(--sand-gold);
  --adm-gold-light: var(--sand-light);
  --adm-gold-dark: var(--sand-dark);
  --adm-gold-border: var(--border);

  /* Statuts opérationnels (5 états métier stricts des maquettes) */
  --adm-success: #28705a;
  --adm-success-bg: #f0fdf4;
  --adm-success-border: #bbf7d0;
  --adm-warning: #b45309;
  --adm-warning-bg: #fffbeb;
  --adm-warning-border: #fde68a;
  --adm-danger: #a23f35;
  --adm-danger-bg: #fef2f2;
  --adm-danger-border: #fecaca;
  --adm-info: #0284c7;
  --adm-info-bg: #f0f9ff;
  --adm-info-border: #bae6fd;
  --color-pending: #b45309;
  --bg-pending: #fffbeb;
  --border-pending: #fde68a;
  --color-confirmed: #28705a;
  --bg-confirmed: #f0fdf4;
  --border-confirmed: #bbf7d0;
  --color-cancelled: #a23f35;
  --bg-cancelled: #fef2f2;
  --border-cancelled: #fecaca;
  --color-rejected: #881337;
  --bg-rejected: #fff1f2;
  --border-rejected: #fecdd3;
  --color-unavail: #7c2d12;
  --bg-unavail: #fff7ed;
  --border-unavail: #fed7aa;
  --color-unknown: var(--adm-text-muted);
  --bg-unknown: #f8fafc;
  --border-unknown: #cbd5e1;
  --color-wa: #16a34a;
  --wa-brand: #25D366;

  /* Rayons, ombres & transitions des maquettes */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --shadow-xs: 0 1px 2px rgba(11, 12, 14, 0.04);
  --shadow-sm: 0 2px 5px rgba(11, 12, 14, 0.06), 0 1px 2px rgba(11, 12, 14, 0.04);
  --shadow-md: 0 6px 16px rgba(11, 12, 14, 0.08), 0 2px 4px rgba(11, 12, 14, 0.04);
  --shadow-lg: 0 14px 32px rgba(11, 12, 14, 0.12), 0 4px 8px rgba(11, 12, 14, 0.06);
  --shadow-xl: 0 24px 48px -12px rgba(11, 12, 14, 0.2);
  --transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);

  /* Variables legacy compatibles */
  --mut: var(--text-muted);
  --line: var(--border);
  --bg: var(--paper);
  --card: var(--white);
  --brand: var(--sand-gold);
  --warn: var(--color-pending);
  --bad: var(--color-cancelled);
  --ok: var(--color-confirmed);
}

/* Mode sombre / conduite de nuit (maquettes design-refonte) */
body.dark-mode {
  --ink: #05070b;
  --ink-soft: #0d1017;
  --paper: #0e1117;
  --paper-soft: #141822;
  --sand-card: #181c26;
  --white: #161b24;
  --border: #2c3240;
  --border-subtle: #202633;
  --text-main: #f1f3f7;
  --text-muted: #a8b0bf;
  --text-light: #7d8595;
  --sand-light: #25231c;
  --bg-pending: #2c1e05;
  --bg-confirmed: #092613;
  --bg-cancelled: #2e0d0d;
  --bg-rejected: #290810;
  --bg-unavail: #2b1206;
  --bg-unknown: #1a2030;
  /* Redéfinition EXPLICITE des tokens dérivés : l'indirection var() définie
     sur :root fige les valeurs claires (computed au :root) et ne suit pas
     body.dark-mode — cause du P1 contraste. */
  --adm-bg: #0e1117;
  --adm-card-bg: #161b24;
  --adm-header-bg: #05070b;
  --adm-border: #2c3240;
  --adm-border-subtle: #202633;
  --adm-text-main: #f1f3f7;
  --adm-text-muted: #a8b0bf;
  --adm-text-light: #7d8595;
  --adm-gold-light: #2b2519;
  --adm-success-bg: #092613;
  --adm-success-border: #1d4a33;
  --adm-warning-bg: #2c1e05;
  --adm-warning-border: #5a3c0d;
  --adm-danger-bg: #2e0d0d;
  --adm-danger-border: #5a2020;
  --adm-info-bg: #0d1b2a;
  --adm-info-border: #1d3a5a;
  /* legacy */
  --mut: #a8b0bf;
  --line: #2c3240;
  --bg: #0e1117;
  --card: #161b24;
  --brand: #c99a3d;
}

/* Reset & Base */
*, *::before, *::after {
  box-sizing: border-box;
}

body, html {
  margin: 0;
  padding: 0;
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--adm-text-main);
  background-color: var(--adm-bg);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .font-serif {
  font-family: 'Forum', Georgia, serif;
  font-weight: 400;
  line-height: 1.25;
  color: var(--adm-text-main);
}

a {
  color: var(--sand-dark);
  text-decoration: none;
  transition: var(--transition);
}
a:hover {
  color: var(--sand-gold);
  text-decoration: none;
}

:is(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--sand-gold);
  outline-offset: 1px;
}

h1 {
  font-size: 1.55rem;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}

.adm-sub, p.sub {
  color: var(--adm-text-muted);
  font-size: 13.5px;
  margin-top: 0;
  margin-bottom: 20px;
}

.adm-eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: var(--sand-gold);
  margin-bottom: 0.35rem;
}

/* Layout App Principal — navigation supérieure (maquettes) */
.adm-app-layout {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
}

/* ==========================================================================
   SIDEBAR COLLAPSIBLE « REGISTRE DE SERVICE » (maquettes .impeccable)
   — encre nuit, marque TCS or, pilule active or, icônes sprite
   ========================================================================== */
.adm-app-layout {
  display: flex;
  flex-direction: row;
  min-height: 100vh;
  width: 100%;
}

:root {
  --sb-bg: #08111f;
  --sb-ink-line: #243044;
  --sb-text: #c7cfda;
  --sb-text-strong: #f1f4f8;
  --sb-gold: #c99a3d;
  --sb-accent: #b8862f;
}
body.dark-mode {
  --sb-bg: #05090f;
}

.adm-sidebar {
  width: 264px;
  flex-shrink: 0;
  background: var(--sb-bg);
  color: var(--sb-text);
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--sb-ink-line);
  box-shadow: 8px 0 28px rgba(8, 17, 31, 0.12);
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 1000;
  transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1);
}

.adm-sidebar-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 22px 20px 18px;
  border-bottom: 1px solid var(--sb-ink-line);
}
.adm-sidebar-brand-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
  min-width: 0;
}
.adm-brand-mark {
  font-family: 'Forum', Georgia, serif;
  font-size: 2.6rem;
  line-height: 1;
  color: var(--sb-gold);
  letter-spacing: 0.04em;
}
.adm-brand-sub {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sb-gold);
  opacity: 0.85;
  white-space: nowrap;
}
.adm-sidebar-collapse {
  background: transparent;
  border: 1px solid var(--sb-ink-line);
  color: var(--sb-text);
  width: 30px;
  height: 30px;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: var(--transition);
}
.adm-sidebar-collapse svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
}
.adm-sidebar-collapse:hover { background: rgba(255, 255, 255, 0.08); color: var(--sb-text-strong); }

.adm-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 12px;
  overflow-y: auto;
  flex: 1;
}

.adm-sb-link {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  border-left: 3px solid transparent;
  color: var(--sb-text);
  font-size: 0.92rem;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
  transition: var(--transition);
}
.adm-sb-link:hover {
  color: var(--sb-text-strong);
  background: rgba(255, 255, 255, 0.05);
  text-decoration: none;
}
.adm-sb-link.active {
  color: var(--sb-text-strong);
  background: rgba(255, 255, 255, 0.07);
  border-left-color: var(--sb-accent);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}
.adm-sb-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  opacity: 0.9;
}
.adm-sb-text { flex: 1; overflow: hidden; text-overflow: ellipsis; }

.adm-nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: var(--radius-full);
  background: var(--color-cancelled);
  color: #ffffff;
  font-size: 0.7rem;
  font-weight: 700;
}
.adm-nav-badge[hidden] { display: none; }

.adm-sidebar-foot {
  margin-top: auto;
  padding: 20px 24px 26px;
  border-top: 1px solid var(--sb-ink-line);
}
.adm-sidebar-motto {
  margin: 0;
  color: var(--sb-text);
  font-size: 0.82rem;
  line-height: 1.6;
}
.adm-sidebar-motto em {
  display: block;
  font-family: 'Forum', Georgia, serif;
  font-style: italic;
  font-size: 1.35rem;
  line-height: 1.25;
  color: var(--sb-gold);
}
.adm-sidebar-motto span {
  display: block;
  width: 58px;
  height: 2px;
  margin: 14px 0;
  background: var(--sb-accent);
}

/* Sidebar repliée : icônes seules, état persistant (localStorage) */
.adm-sidebar.collapsed { width: 76px; }
.adm-sidebar.collapsed .adm-sb-text,
.adm-sidebar.collapsed .adm-brand-sub,
.adm-sidebar.collapsed .adm-sidebar-foot { display: none; }
.adm-sidebar.collapsed .adm-sidebar-brand { flex-direction: column; padding: 18px 10px 12px; }
.adm-sidebar.collapsed .adm-sidebar-brand-link { align-items: center; }
.adm-sidebar.collapsed .adm-brand-mark { font-size: 1.7rem; }
.adm-sidebar.collapsed .adm-sb-link { justify-content: center; padding: 10px; gap: 0; }
.adm-sidebar.collapsed .adm-sidebar-collapse svg { transform: rotate(180deg); }

/* ==========================================================================
   EN-TÊTE PAPIER (maquette registre : recherche + thème + notifications + rôle)
   ========================================================================== */
.adm-content-wrapper {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--adm-bg);
}

.adm-header {
  background: var(--adm-card-bg);
  color: var(--adm-text-main);
  border-bottom: 1px solid var(--adm-border);
  position: sticky;
  top: 0;
  z-index: 900;
  box-shadow: 0 1px 3px rgba(11, 12, 14, 0.04);
}

.adm-topbar {
  padding: 0 24px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.adm-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  max-width: 640px;
}

.adm-menu-toggle {
  display: none;
  background: transparent;
  border: 1px solid var(--adm-border);
  color: var(--adm-text-main);
  padding: 7px;
  border-radius: 8px;
  cursor: pointer;
}
.adm-menu-toggle svg { width: 20px; height: 20px; display: block; }

.adm-global-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 42px;
  padding: 0 14px;
  border: 1px solid var(--adm-border);
  border-radius: var(--radius-sm);
  background: var(--sand-card);
  color: var(--adm-text-light);
}
.adm-global-search .tcs-icon { width: 18px; height: 18px; }
.adm-global-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--adm-text-main);
  font: inherit;
  font-size: 13.5px;
}

.adm-user-zone {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.btn-theme-toggle {
  background: transparent;
  border: 1px solid var(--adm-border);
  color: var(--adm-text-main);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 15px;
  transition: var(--transition);
}
.btn-theme-toggle:hover { border-color: var(--sand-gold); background: var(--sand-light); }

.adm-notif-wrap { position: relative; }

.adm-notif-btn {
  background: transparent;
  border: 1px solid var(--adm-border);
  color: var(--adm-text-muted);
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  transition: var(--transition);
}
.adm-notif-btn svg { width: 18px; height: 18px; flex: 0 0 18px; }
.adm-notif-btn:hover { background: var(--sand-light); color: var(--adm-text-main); }

.adm-notif-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--color-cancelled);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border: 2px solid var(--adm-card-bg);
}
.adm-notif-badge[hidden] { display: none; }

.adm-notif-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: 320px;
  background: var(--adm-card-bg);
  color: var(--adm-text-main);
  border: 1px solid var(--adm-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  z-index: 1050;
  animation: fadeIn 0.15s ease-out;
}
.adm-notif-dropdown[hidden] { display: none !important; }

.adm-notif-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--sand-card);
  border-bottom: 1px solid var(--adm-border);
  font-size: 13px;
}
.adm-notif-pill {
  background: var(--bg-pending);
  color: var(--color-pending);
  border: 1px solid var(--border-pending);
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 12px;
}
.adm-notif-list { max-height: 280px; overflow-y: auto; }
.adm-notif-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--adm-border-subtle);
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.adm-notif-item:hover { background: var(--sand-card); text-decoration: none; }
.notif-bullet { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; }
.notif-bullet.warn { background: var(--color-pending); }
.notif-bullet.info { background: var(--adm-info); }
.notif-bullet.ok { background: var(--color-confirmed); }
.notif-body strong { display: block; font-size: 13px; color: var(--adm-text-main); }
.notif-body p { margin: 2px 0 0; font-size: 12px; color: var(--adm-text-muted); }

.adm-profile-group { display: flex; align-items: center; gap: 10px; }
.adm-profile-avatar {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--sb-bg);
  color: var(--sb-gold);
  font-family: 'Forum', Georgia, serif;
  font-size: 15px;
}
.adm-profile-copy { display: flex; flex-direction: column; line-height: 1.25; }
.adm-profile-copy strong { font-size: 13px; color: var(--adm-text-main); }
.adm-profile-copy small { font-size: 11px; color: var(--adm-text-muted); }

.adm-logout-btn {
  background: transparent;
  border: 1px solid var(--adm-border);
  color: var(--adm-text-muted);
  padding: 8px 10px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
}
.adm-logout-btn:hover { background: var(--bg-cancelled); color: var(--color-cancelled); border-color: var(--border-cancelled); }

/* Contenu principal (largeur maquette 1400px) */
main, .adm-main {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 1.5rem 4rem;
}

.adm-foot {
  background: var(--adm-header-bg);
  color: rgba(255, 255, 255, 0.7);
  border-top: 1px solid rgba(200, 189, 171, 0.2);
  font-size: 0.85rem;
  text-align: center;
  padding: 1.6rem 1.5rem;
}
/* ==========================================================================
   ZONE DE CONTENU, CARTES & PANNEAUX
   ========================================================================== */
main, .adm-main {
  flex: 1;
  padding: 24px 28px 80px;
  max-width: 1400px;
  width: 100%;
  box-sizing: border-box;
}

.card, .adm-card-wrap {
  background: #ffffff;
  border: 1px solid var(--adm-border);
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 24px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

/* Grille de KPI pour l'accueil */
.adm-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}

.adm-card {
  background: #ffffff;
  border: 1px solid var(--adm-border);
  border-radius: 12px;
  padding: 18px 20px;
  text-decoration: none;
  display: block;
  box-shadow: 0 1px 3px rgba(0,0,0,0.02);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
  box-shadow: inset 1px 0 0 var(--adm-info);
}
.adm-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px -4px rgba(0,0,0,0.08);
  text-decoration: none;
  border-color: #cbd5e1;
}
.adm-card:visited,
.adm-table-btn:visited,
.adm-action-link:visited {
  color: inherit;
}

.adm-filter-context {
  margin: -8px 0 16px;
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 13px;
}
.adm-card .n {
  font-size: 28px;
  font-weight: 800;
  color: var(--adm-text-main);
  line-height: 1;
}
.adm-card .l {
  font-size: 13px;
  font-weight: 600;
  color: var(--adm-text-muted);
  margin-top: 6px;
  display: inline-block;
}
.adm-card.warn {
  border-left-color: var(--adm-warning);
}
.adm-card.warn .n {
  color: var(--adm-warning);
}

/* ==========================================================================
   TABLEAUX DE DONNÉES D'EXPLOITATION (.adm-table)
   ========================================================================== */
.adm-table-wrap {
  background: #ffffff;
  border: 1px solid var(--adm-border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}

table.adm-table, table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

table.adm-table th, table th {
  background: #f8fafc;
  color: var(--adm-text-muted);
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 12px 16px;
  border-bottom: 1px solid var(--adm-border);
  white-space: nowrap;
}

table.adm-table td, table td {
  padding: 13px 16px;
  font-size: 13.5px;
  border-bottom: 1px solid var(--adm-border-subtle);
  vertical-align: middle;
}

table.adm-table tr:last-child td, table tr:last-child td {
  border-bottom: none;
}

table.adm-table tr:hover, table tr:hover {
  background-color: #f8fafc;
}

table.adm-table tr.click, table tr.click {
  cursor: pointer;
}

.adm-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--adm-border);
  border-radius: 10px;
  background: #ffffff;
}

.adm-table-scroll > .adm-table {
  min-width: 780px;
}

/* ==========================================================================
   BADGES DE STATUTS (.adm-pill & .pill-*)
   ========================================================================== */
.adm-pill, .badge {
  display: inline-flex;
  align-items: center;
  font-size: 11.5px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.pill-pending, .badge-pending {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fde68a;
}

.pill-confirmed, .badge-confirmed {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.pill-cancelled, .badge-cancelled {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.pill-rejected, .badge-rejected {
  background: #fff1f2;
  color: #9f1239;
  border: 1px solid #fecdd3;
}

.pill-unavail, .badge-unavail {
  background: #f8fafc;
  color: var(--adm-text-muted);
  border: 1px solid #cbd5e1;
}

/* ==========================================================================
   FORMULAIRES, TOOLBARS & BOUTONS
   ========================================================================== */
.adm-toolbar {
  background: #ffffff;
  border: 1px solid var(--adm-border);
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}

label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--adm-text-muted);
  margin-bottom: 6px;
}

input:not([type]),
input[type="text"],
input[type="search"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
select,
textarea {
  width: 100%;
  font-family: inherit;
  font-size: 13.5px;
  color: #0f172a;
  background-color: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 8px 12px;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}

input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--adm-gold);
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15);
}

/* Boutons */
button, .adm-btn {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid transparent;
}

button.primary, .adm-btn-primary {
  background: #0f172a;
  color: #ffffff;
  border-color: #0f172a;
}
button.primary:hover, .adm-btn-primary:hover {
  background: #1e293b;
  border-color: #1e293b;
}

button.secondary, .adm-btn-secondary {
  background: #ffffff;
  color: var(--adm-text-muted);
  border-color: #cbd5e1;
}
button.secondary:hover, .adm-btn-secondary:hover {
  background: #f8fafc;
  border-color: var(--adm-text-light);
}

button.danger, .adm-btn-danger {
  background: #fff1f2;
  color: #be123c;
  border-color: #fecdd3;
}
button.danger:hover, .adm-btn-danger:hover {
  background: #ffe4e6;
  border-color: #fda4af;
}

/* ==========================================================================
   ÉTATS VIDES & FLASH MESSAGES
   ========================================================================== */
.adm-bar {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 12.5px;
  color: var(--adm-text-muted);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.adm-bar button {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: var(--adm-text-muted);
  padding: 3px 10px;
  border-radius: 6px;
  font-size: 12px;
  cursor: pointer;
}
.adm-bar button.on {
  background: #0f172a;
  color: #ffffff;
  border-color: #0f172a;
}

/* Les filtres d'incidents restent utilisables sans élargir la page. */
#incident-form {
  flex-wrap: wrap;
}
#incident-form label {
  display: flex;
  min-width: 0;
  flex: 1 1 150px;
  flex-direction: column;
  gap: 4px;
}
#incident-form select,
#incident-form input {
  width: 100%;
  min-width: 0;
}

.adm-state {
  text-align: center;
  padding: 40px 20px;
  color: var(--adm-text-muted);
  font-size: 13.5px;
}
.adm-state.err, .v2-err, .err {
  color: #be123c;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
}

.adm-flash {
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 18px;
}
.adm-flash.ok {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}
.adm-flash.ko {
  background: #fff1f2;
  color: #9f1239;
  border: 1px solid #fecdd3;
}

/* Spinner */
.sp {
  display: inline-block;
  width: 24px;
  height: 24px;
  border: 2px solid #e2e8f0;
  border-top-color: var(--adm-gold);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin-bottom: 8px;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Fiche détaillée */
.adm-fiche {
  background: #ffffff;
  border: 1px solid var(--adm-border);
  border-radius: 14px;
  padding: 24px;
  margin-top: 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}

.adm-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #f1f5f9;
}

.adm-hist {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #f1f5f9;
  font-size: 12.5px;
  color: var(--adm-text-muted);
}

.adm-foot {
  padding: 24px;
  text-align: center;
  font-size: 12px;
  color: var(--adm-text-light);
  border-top: 1px solid var(--adm-border);
  background: #ffffff;
  margin-top: auto;
}

/* ==========================================================================
   MODALES UNIFIÉES & AUTHENTIFICATION
   ========================================================================== */
.adm-modal-backdrop, #adm-auth, #v2-login {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2500;
}
.adm-modal-backdrop[hidden], #adm-auth[hidden], #v2-login[hidden] {
  display: none !important;
}

.adm-modal-box, #adm-auth .adm-fiche, #v2-login form {
  background: #ffffff;
  border-radius: 14px;
  padding: 28px 32px;
  width: 90%;
  max-width: 440px;
  box-shadow: 0 20px 25px -5px rgba(0,0,0,0.2), 0 10px 10px -5px rgba(0,0,0,0.1);
  border: 1px solid #e2e8f0;
}
#v2-login h2, #adm-auth h2 {
  margin-top: 0;
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
}
#v2-login label, #adm-auth label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--adm-text-muted);
  margin-bottom: 12px;
}
#v2-login input, #adm-auth input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 6px;
  padding: 9px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  font-size: 13.5px;
}
#v2-login input:focus, #adm-auth input:focus {
  border-color: #d97706;
  outline: none;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15);
}
#v2-login button.primary, #adm-auth button.primary {
  width: 100%;
  margin-top: 14px;
  padding: 10px 16px;
  background: #0f172a;
  color: #ffffff;
  border: 1px solid #0f172a;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
#v2-login button.primary:hover, #adm-auth button.primary:hover {
  background: #1e293b;
  color: #fde68a;
}

/* Boutons d'action dans les tableaux */
.adm-table-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 600;
  color: #0f172a;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.15s ease;
}
.adm-table-btn:hover {
  background: #0f172a;
  color: #fbbf24;
  border-color: #0f172a;
}

/* Barre de filtres unifiée */
#filter-bar, .adm-filter-bar {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
#filter-bar select, #filter-bar input {
  padding: 8px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  font-size: 13px;
  min-height: 38px;
  box-sizing: border-box;
  color: #0f172a;
  background: #ffffff;
  outline: none;
  transition: all 0.15s ease;
}
#filter-bar select:focus, #filter-bar input:focus {
  border-color: #d97706;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15);
}
#filter-bar button#f-go {
  padding: 7px 16px;
  background: #0f172a;
  color: #ffffff;
  border: 1px solid #0f172a;
  border-radius: 8px;
  font-size: 13px;
  min-height: 38px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
#filter-bar button#f-go:hover {
  background: #1e293b;
  color: #fde68a;
}

.adm-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 10px;
}
.adm-modal-head h3 {
  margin: 0;
  font-size: 16px;
  color: #0f172a;
}

.adm-modal-close {
  background: none;
  border: none;
  font-size: 22px;
  cursor: pointer;
  color: var(--adm-text-muted);
  line-height: 1;
}

.adm-modal-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}

/* Toasts */
.v2-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: #0f172a;
  color: #ffffff;
  padding: 12px 20px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
  z-index: 3000;
  animation: slideUp 0.2s ease-out;
}
.v2-toast.err {
  background: #e11d48;
}
@keyframes slideUp { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1023px) {
  .adm-sidebar {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    transform: translateX(-100%);
    transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
  }
  .adm-sidebar.open { transform: translateX(0); }
  .adm-sidebar.collapsed { width: 264px; }
  .adm-sidebar.collapsed .adm-sb-text,
  .adm-sidebar.collapsed .adm-brand-sub,
  .adm-sidebar.collapsed .adm-sidebar-foot { display: block; }
  .adm-sidebar.collapsed .adm-sidebar-brand { flex-direction: row; padding: 22px 20px 18px; }
  .adm-sidebar.collapsed .adm-sb-link { justify-content: flex-start; padding: 10px 14px; gap: 12px; }
  .adm-sidebar-backdrop.active {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(8, 17, 31, 0.6);
    z-index: 999;
  }
  .adm-menu-toggle { display: inline-flex; }
}
@media (min-width: 1024px) {
  .adm-sidebar-backdrop { display: none; }
}

@media (max-width: 640px) {
  .adm-header-inner { padding: 0.7rem 0.9rem; gap: 0.75rem; }
  .adm-brand-tag { display: none; }
  .adm-brand-title { font-size: 1.2rem; }
  .adm-user-actions { gap: 0.5rem; }
  .badge-role { display: none; }
  .adm-logout-btn > span { display: none; }
  .adm-logout-btn { width: 38px; height: 38px; padding: 0; justify-content: center; }
  main, .adm-main { padding: 16px 12px 60px; }
  .adm-cards { grid-template-columns: 1fr 1fr; gap: 10px; }
  .adm-table-scroll > .adm-table th,
  .adm-table-scroll > .adm-table td { padding: 10px 12px; font-size: 12.5px; }
  .adm-table-scroll .adm-table-btn { min-height: 36px; white-space: nowrap; }
}

/* ========================================================================
   REGISTRE DE SERVICE — direction Impeccable 2026
   ======================================================================== */
::selection { background: var(--sand); color: var(--ink); }
html { scrollbar-color: var(--sand-gold) var(--paper-soft); }
body, html { background: var(--adm-bg); }
body { caret-color: var(--adm-gold); }
:focus-visible { outline: 3px solid var(--sand-gold); outline-offset: 3px; }

h1, h2, h3 {
  font-family: 'Forum', Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.02em;
}
h1 { font-size: 2.1rem; }



.register-grid{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(330px,.92fr);gap:0;margin:-42px clamp(-64px,-4vw,-24px) -72px;min-height:calc(100vh - 72px)}
.register-day{padding:28px 28px 64px 34px}.register-pilot{padding:28px 28px 64px;border-left:1px solid var(--border);background:rgba(255,255,255,.18)}
.register-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.register-head h1,.register-pilot h2{margin:0;color:var(--text-main);font:400 42px/1 Forum,Forum,Georgia,serif}.register-head p,.register-pilot header p{margin:5px 0 0;color:var(--text-muted);font-size:16px}
.register-date-nav{display:flex;align-items:center;height:42px}.register-date-nav button,.register-date-nav strong{height:42px;box-sizing:border-box;border:1px solid var(--border);background:var(--sand-card);color:var(--text-main);display:grid;place-items:center}.register-date-nav button{min-width:42px;cursor:pointer;font-size:18px}.register-date-nav strong{min-width:185px;padding:0 14px;border-left:0;border-right:0;font-size:13px}.register-date-nav #day-today{margin-left:10px;padding:0 22px;font-size:12px;border-radius:4px}
.register-stream{position:relative}.register-stream:before{content:'';position:absolute;left:63px;top:28px;bottom:24px;width:1px;background:var(--sand-gold)}.register-entry{display:grid;grid-template-columns:52px 22px minmax(0,1fr);position:relative;margin-bottom:8px}.register-entry time{position:static;grid-column:1;width:auto;padding:17px 8px 0 0;text-align:right;font:600 19px/1 Forum,Georgia,serif;color:var(--text-main)}.register-pin{grid-column:2;position:relative;z-index:2;width:15px;height:15px;margin-top:18px;border-radius:50%;background:var(--sand-gold);outline:5px solid var(--paper-soft)}.entry-pending .register-pin,.entry-cancelled .register-pin,.entry-rejected .register-pin{background:var(--color-cancelled)}
.register-card{grid-column:3;display:grid;grid-template-columns:minmax(0,1fr) 245px;min-height:122px;margin-left:0;border:1px solid var(--border);border-radius:5px;background:var(--adm-card-bg);overflow:hidden;box-shadow:0 3px 10px rgba(11,12,14,.025)}.register-info{padding:16px 18px}.register-title-line{display:flex;align-items:center;gap:12px;margin-bottom:10px}.register-title-line h3{margin:0;font:600 18px/1.15 Forum,Georgia,serif;color:var(--text-main)}.register-status{padding:5px 14px;border-radius:999px;background:var(--bg-confirmed);color:var(--color-confirmed);font-size:12px;white-space:nowrap}.status-pending{background:var(--bg-pending);color:var(--sand-dark)}.status-driver_notified{background:var(--adm-info-bg);color:var(--adm-info)}.status-in_progress{background:var(--adm-info-bg);color:var(--adm-info)}.status-cancelled,.status-rejected{background:var(--bg-cancelled);color:var(--color-cancelled)}.register-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;color:var(--text-main);font-size:12px}.register-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.register-action{margin:10px;padding:13px 15px;display:flex;flex-direction:column;gap:6px;border-radius:4px;background:var(--bg-confirmed);color:var(--color-confirmed)}.register-action strong{font-size:13px}.register-action small{color:var(--text-muted)}.register-action a{margin-top:auto;padding:8px 10px;border:1px solid var(--sand-gold);border-radius:3px;color:var(--text-main);text-align:center;text-decoration:none;font-size:12px;background:var(--adm-card-bg)}.action-pending,.action-cancelled,.action-rejected{background:var(--bg-cancelled);color:var(--color-cancelled)}
.register-pilot header{margin-bottom:20px}.register-pilot h2{font-size:40px}.pilot-card{display:block;margin-bottom:10px;padding:17px 18px;border:1px solid var(--border);border-radius:5px;background:var(--adm-card-bg);color:var(--text-main);text-decoration:none}.pilot-card h3{margin:0 0 14px;font:600 20px/1 Forum,Georgia,serif}.pilot-number{display:flex;align-items:flex-end;justify-content:center;gap:10px;padding:8px}.pilot-number span{font:600 38px/1 Forum,Georgia,serif}.pilot-number small{margin-bottom:4px;color:var(--text-muted)}.rate-row{display:flex;align-items:center;justify-content:space-around;gap:18px}.rate-ring{--rate:0;width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--color-confirmed) calc(var(--rate)*1%),var(--border-subtle) 0);position:relative}.rate-ring:before{content:'';position:absolute;inset:11px;border-radius:50%;background:var(--sand-card)}.rate-ring strong{position:relative;font:600 25px Forum,Georgia,serif}.rate-row p{line-height:1.8;color:var(--text-muted)}.source-row{display:grid;grid-template-columns:100px 1fr 34px;align-items:center;gap:8px;margin:8px 0;font-size:12px}.source-row i{height:9px;background:var(--border-subtle)}.source-row b{display:block;height:100%;background:var(--sand-gold)}.pilot-report strong,.pilot-report span{display:block}.pilot-report span{margin-top:18px;color:var(--adm-info);font-size:12px}.register-empty{margin:70px 30px;text-align:center;color:var(--text-muted)}.register-empty strong{font:24px Forum,Georgia,serif;color:var(--text-main)}.register-empty a{display:inline-block;margin-top:12px;color:var(--sand-dark)}
@media(max-width:1100px){.register-grid{grid-template-columns:1fr}.register-pilot{border-left:0;border-top:1px solid var(--border)}.register-card{grid-template-columns:1fr}.register-action{margin-top:0}.register-head{align-items:flex-start;flex-direction:column}}
@media(max-width:680px){.register-grid{margin:-24px -16px -44px}.register-day,.register-pilot{padding:24px 16px 44px}.register-head h1,.register-pilot h2{font-size:34px}.register-date-nav strong{min-width:135px;font-size:11px}.register-stream:before{left:51px}.register-entry{grid-template-columns:42px 18px minmax(0,1fr)}.register-entry time{padding-right:6px;font-size:15px}.register-meta{grid-template-columns:1fr}.register-title-line{align-items:flex-start;flex-direction:column}}

/* Liste des réservations — artefact 03. */
.reservations-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.reservations-heading h1{margin:0;color:var(--text-main)}.reservations-heading p{margin:6px 0 0;color:var(--text-muted);font-size:17px}.reservation-new{display:inline-flex;align-items:center;min-height:52px;padding:0 24px;border-radius:4px;background:var(--sand-gold);color:#fff;text-decoration:none;font:16px Forum,Georgia,serif;box-shadow:inset 0 0 0 1px rgba(79,49,8,.18)}
.reservations-filters{display:grid!important;grid-template-columns:minmax(240px,1.45fr) repeat(4,minmax(140px,.8fr)) auto auto;gap:10px;padding:18px!important;background:var(--adm-card-bg)!important}.reservations-filters input,.reservations-filters select,.reservations-filters button{height:42px!important;border:1px solid var(--border)!important;border-radius:4px!important;background:var(--sand-card)!important;color:var(--text-main)!important;padding:0 13px!important;font:13px Montserrat,Arial,sans-serif!important}.reservations-filters #f-go{background:var(--ink)!important;color:#fff!important}.reservations-filters .filter-reset{border:0!important;text-decoration:underline;background:transparent!important;color:var(--adm-info)!important}
.reservation-tabs{display:flex;align-items:center;gap:30px;margin:8px 0 22px;border-bottom:1px solid var(--border);overflow-x:auto}.reservation-tabs button{display:flex;align-items:center;gap:8px;min-height:54px;padding:0 8px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-main);white-space:nowrap;cursor:pointer;font:13px Montserrat,Arial,sans-serif}.reservation-tabs button.active{border-color:var(--sand-gold);font-weight:600}.reservation-tabs span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 5px;border-radius:99px;background:var(--paper-soft);font-size:11px}
.reservation-table-wrap{border:1px solid var(--border);border-radius:5px 5px 0 0;background:var(--adm-card-bg)}.reservation-table{min-width:1120px}.reservation-table th{height:45px;padding:0 12px!important;border-right:1px solid var(--border-subtle);background:transparent!important;color:var(--text-main)!important;font-size:11px!important;text-transform:none!important;letter-spacing:0!important}.reservation-table td{padding:11px 12px!important;border-top:1px solid var(--border-subtle)!important;color:var(--text-main)!important;font-size:11px!important}.reservation-table td:nth-child(5){max-width:260px}.reservation-table .adm-pill{white-space:nowrap}.reservation-table .adm-table-btn{min-width:62px;justify-content:center;padding:7px 12px}.reservation-bulk{display:flex;align-items:center;gap:12px;min-height:62px;padding:0 14px;border:1px solid var(--border);border-top:0;border-radius:0 0 5px 5px;background:var(--adm-card-bg)}.reservation-bulk span{margin-right:auto;color:var(--text-muted);font-size:12px}.reservation-bulk button{min-height:36px;padding:0 16px;border:1px solid var(--sand-gold);border-radius:3px;background:transparent;color:var(--text-main)}.reservation-bulk button:disabled{opacity:.5}
@media(max-width:1200px){.reservations-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.reservations-heading{align-items:flex-start}}@media(max-width:680px){.reservations-heading{flex-direction:column}.reservation-new{width:100%;justify-content:center}.reservations-filters{grid-template-columns:1fr}.reservation-tabs{gap:15px}}

/* Fiche mission — artefact 04. */
.mission-detail{color:var(--text-main)}.mission-detail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}.mission-breadcrumb{margin:0 0 16px!important;color:var(--text-muted)!important;font-size:13px!important}.mission-detail-head h1{margin:0 0 8px;font-size:38px}.mission-detail-head p{margin:0;color:var(--text-muted)}.mission-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.mission-head-actions button,.mission-head-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid #2f3e52;border-radius:3px;background:transparent;color:var(--text-main);text-decoration:none;font:13px Montserrat,Arial,sans-serif}.mission-head-actions .primary{background:var(--ink);color:#fff}.mission-head-actions :disabled{opacity:.55}.mission-tabs{display:flex;gap:28px;margin:26px 0 16px;border-bottom:1px solid var(--border)}.mission-tabs button,.mission-tabs a{min-height:44px;padding:0 7px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-muted);text-decoration:none;font:13px Montserrat,Arial,sans-serif}.mission-tabs .active{border-color:var(--sand-gold);color:var(--text-main);font-weight:600}.mission-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(300px,1fr);gap:14px}.mission-main,.mission-side{display:grid;align-content:start;gap:14px}.mission-panel{margin:0;padding:16px;border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.mission-panel h2{margin:0 0 14px;font:600 21px/1 Forum,Georgia,serif}.itinerary-line{display:grid;grid-template-columns:120px 1fr}.itinerary-line>div:first-child{display:grid;grid-template-rows:1fr auto 1fr;justify-items:center;align-items:center}.itinerary-line time{font:600 17px Forum,Georgia,serif}.itinerary-line time small{display:block;color:var(--text-muted);font:10px Montserrat,Arial,sans-serif}.itinerary-line>div:first-child span{width:1px;height:55px;background:var(--sand-gold)}.itinerary-line h3{margin:0 0 4px;font:600 16px Forum,Georgia,serif}.itinerary-line p{margin:0 0 22px;color:var(--text-muted);font-size:12px}.itinerary footer{margin:2px -16px -16px;padding:12px 16px;border-top:1px solid var(--border);color:var(--text-muted);font-size:12px}.client-detail{display:grid;grid-template-columns:auto 1fr 1.4fr 1fr;align-items:center;gap:16px}.client-detail>div{display:flex;flex-direction:column;gap:5px}.client-detail small{color:var(--text-muted)}.client-avatar,.assignment-person>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--paper-soft);font-size:22px}.notes-panel{display:grid;grid-template-columns:180px 1fr;align-items:center}.notes-panel h2,.notes-panel p{margin:0}.assignment-person{display:flex;align-items:center;gap:14px}.assignment-person div{display:flex;flex-direction:column;gap:5px}.assignment button,.follow-up a{display:flex;justify-content:center;margin-top:16px;padding:11px;border:1px solid #27384e;border-radius:3px;background:transparent;color:var(--text-main);text-decoration:none}.follow-up{display:flex;flex-direction:column}.follow-up>strong{color:var(--color-confirmed)}.follow-up>small{margin-top:6px;color:var(--text-muted)}.mission-side>.adm-actions{display:grid;margin:0;padding:14px;border:1px solid var(--border-cancelled);border-radius:4px;background:var(--bg-cancelled)}.mission-side>.adm-actions .danger{background:transparent!important;border:0!important;color:var(--color-cancelled)!important;text-align:left!important}.mission-side>.adm-actions label,.mission-side>.adm-actions .adm-sub{display:block}.mission-side>.adm-fiche{margin:0!important}.mission-history{margin-top:14px}.mission-history ul{list-style:none;margin:0;padding:0}.mission-history li{padding:10px 0 10px 20px;border-left:1px solid var(--sand-gold);border-bottom:1px solid var(--border-subtle);font-size:12px}.mission-history li:before{content:'';float:left;width:9px;height:9px;margin:3px 0 0 -25px;border-radius:50%;background:var(--color-confirmed)}.mission-detail>.adm-proposal{margin-top:14px}
@media(max-width:1100px){.mission-detail-head{align-items:flex-start;flex-direction:column}.mission-layout{grid-template-columns:1fr}.client-detail{grid-template-columns:auto 1fr 1fr}.client-detail>div:last-child{grid-column:2/-1}}@media(max-width:680px){.mission-detail-head h1{font-size:30px}.mission-head-actions{display:grid;width:100%}.mission-head-actions>*{width:100%}.client-detail{grid-template-columns:auto 1fr}.client-detail>div{grid-column:2}.notes-panel{grid-template-columns:1fr;gap:8px}.itinerary-line{grid-template-columns:82px 1fr}}

/* Nouvelle réservation — artefact 05. */
.add-heading{margin-bottom:18px}.add-heading>p{margin:0 0 8px;color:var(--sand-dark);font-size:10px;font-weight:700;letter-spacing:.3em}.add-heading h1{margin:0 0 5px}.add-heading>span{color:var(--text-muted);font-size:14px}.booking-create{display:grid;grid-template-columns:minmax(0,3fr) minmax(300px,1.15fr);gap:14px;position:relative;padding-bottom:82px}.booking-form,.booking-summary{border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.booking-form fieldset{margin:0;padding:14px;border:0;border-bottom:1px solid var(--border)}.booking-form fieldset:last-child{border-bottom:0}.booking-form legend{float:left;width:100%;margin:0 0 14px;padding:0 0 9px;border-bottom:1px solid var(--border);color:var(--text-main);font:600 19px Forum,Georgia,serif}.booking-form legend+*{clear:both}.form-grid{display:grid;gap:14px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.route-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.span-3{grid-column:span 3}.booking-form label{display:flex;position:relative;flex-direction:column;gap:6px;color:var(--text-main);font-size:11px;font-weight:600}.booking-form label b{color:var(--color-cancelled)}.booking-form input,.booking-form select,.booking-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:3px;background:var(--sand-card);padding:10px 12px;color:var(--text-main);font:12px Montserrat,Arial,sans-serif}.booking-form input,.booking-form select{height:40px}.booking-form textarea{resize:vertical}.booking-form label small{align-self:flex-end;margin-top:-24px;margin-right:8px;color:var(--text-muted);font-weight:400}.booking-summary{padding:16px}.booking-summary header{display:flex;align-items:center;justify-content:space-between;padding-bottom:11px;border-bottom:1px solid var(--border)}.booking-summary h2,.booking-summary h3{margin:0;font:600 19px Forum,Georgia,serif}.booking-summary header span{padding:5px 11px;border-radius:4px;background:var(--sand-light);color:var(--sand-dark);font-size:11px}.summary-route{display:flex;flex-direction:column;padding:22px 5px;gap:8px}.summary-route i{height:24px;margin-left:6px;border-left:2px solid var(--sand-gold)}.summary-route strong{font:600 15px Forum,Georgia,serif}.booking-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:14px 10px;margin:0}.booking-summary dt{color:var(--text-muted);font-size:12px}.booking-summary dd{margin:0;color:var(--text-main);font-size:12px}.booking-summary hr{margin:22px 0;border:0;border-top:1px solid var(--border)}.booking-summary ul{list-style:none;margin:14px 0;padding:0}.booking-summary li{margin:12px 0;color:var(--text-muted);font-size:12px}.booking-summary li:before{content:'○';margin-right:10px;font-size:18px;color:var(--text-muted)}.booking-summary li.done:before{content:'●';color:var(--color-confirmed)}.booking-summary>p{margin:22px -2px 0;padding:14px;background:var(--bg-unknown);color:var(--text-muted);font-size:11px;line-height:1.5}.booking-create-footer{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid var(--border)}.booking-create-footer button{min-width:235px;min-height:44px;border:1px solid var(--border);border-radius:3px;background:var(--sand-card);color:var(--text-main)}.booking-create-footer .primary{background:var(--ink);color:#fff}.booking-create>#flash{position:absolute;bottom:-4px;left:260px;right:260px}.booking-create-footer button:disabled{opacity:.55}
@media(max-width:1150px){.booking-create{grid-template-columns:1fr}.booking-summary{order:-1}.form-grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.form-grid.four,.route-grid{grid-template-columns:1fr}.span-3{grid-column:auto}.booking-create-footer{position:static;display:grid;gap:10px}.booking-create-footer button{width:100%}.booking-create{padding-bottom:0}.booking-create>#flash{position:static}}

/* Planning — artefact 02. */
.planning-heading{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:28px;margin-bottom:20px}.planning-heading h1{margin:0}.planning-heading p{margin:6px 0 0;color:var(--text-muted);white-space:nowrap}.planning-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,.82fr);gap:14px}.planning-layout>#planning{min-width:0}.planning-side{display:grid;align-content:start;gap:14px}.planning-side section{padding:16px;border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.planning-side h2{margin:0 0 14px;font:600 19px Forum,Georgia,serif}.planning-side dl{display:grid;grid-template-columns:1fr auto;gap:12px;margin:0}.planning-side dt{color:var(--text-muted);font-size:12px}.planning-side dd{margin:0;font:600 20px Forum,Georgia,serif}.planning-side article{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid var(--border-subtle)}.planning-side article small,.planning-side p{color:var(--text-muted);font-size:11px}.planning-layout .pl-grid{border:1px solid var(--border)!important;border-radius:4px!important;background:var(--adm-card-bg)!important}.planning-layout .pl-day{border-color:var(--border)!important}.planning-layout .pl-day-header{background:transparent!important;border-color:var(--border)!important}.planning-layout .pl-day-name{font-family:Forum,Georgia,serif!important;text-transform:capitalize!important}.planning-layout .pl-item{border-radius:3px!important;box-shadow:none!important}.planning-layout .pl-status-tag{border-radius:99px!important}#pl-toolbar{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}#pl-toolbar .pl-controls{justify-content:flex-end}#pl-toolbar .pl-mode-switch{border:1px solid var(--border);background:var(--paper-soft)}#pl-toolbar .pl-mode-switch button{border-radius:2px}#pl-toolbar .pl-mode-switch button.on{background:var(--sand-gold);color:#fff}#btn-open-unavail{display:none}.pl-timezone{display:none}#btn-open-unavail-top{min-height:44px;padding:0 18px;border:1px solid var(--sand-gold);border-radius:3px;background:var(--sand-gold);color:#fff;white-space:nowrap}
#pl-toolbar .pl-filter-label,#pl-toolbar #p-go,#pl-toolbar #p-range{display:none}
@media(max-width:1180px){.planning-heading{grid-template-columns:1fr}.planning-layout{grid-template-columns:1fr}#pl-toolbar .pl-controls{justify-content:flex-start}}@media(max-width:680px){.planning-heading{align-items:flex-start}.planning-heading p{white-space:normal}#btn-open-unavail-top{width:100%}}

/* Chauffeurs et clients — artefacts 06–07. */
.drivers-heading,.clients-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.drivers-heading h1,.clients-heading h1{margin:0}.drivers-heading p,.clients-heading p{margin:6px 0 0;color:var(--text-muted)}.drivers-heading>button,.clients-heading>button{min-height:46px;padding:0 20px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:#fff}.driver-kpis{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:14px;border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.driver-kpis article{display:flex;align-items:center;gap:18px;min-height:78px;padding:0 26px;border-right:1px solid var(--border)}.driver-kpis article:last-child{border:0}.driver-kpis article>span{font-size:28px}.driver-kpis .green{color:var(--color-confirmed)}.driver-kpis .red{color:var(--color-cancelled)}.driver-kpis strong{font:600 24px Forum,Georgia,serif}.driver-kpis small{display:block;color:var(--text-muted);font:12px Montserrat,Arial,sans-serif}.drivers-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,1fr);gap:14px}.driver-tables{display:grid;gap:14px}.driver-panel,.drivers-side section{border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.driver-panel>header,.drivers-side section>header{display:flex;align-items:center;justify-content:space-between;padding:15px;border-bottom:1px solid var(--border)}.driver-panel h2,.drivers-side h2{margin:0;font:600 19px Forum,Georgia,serif}.driver-panel header span{font-size:12px}.driver-row{display:grid;grid-template-columns:auto minmax(120px,1.2fr) minmax(90px,.8fr) minmax(130px,1.1fr) 65px minmax(90px,.8fr) auto;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--border-subtle);font-size:11px}.driver-row:last-child{border:0}.driver-row strong,.driver-row>span{display:flex;flex-direction:column}.driver-row small{margin-top:4px;color:var(--text-muted);font-weight:400}.driver-avatar,.client-big-avatar{display:grid!important;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--ink);color:#fff;font:15px Forum,Georgia,serif}.driver-state{display:inline-flex!important;flex-direction:row!important;gap:5px;color:var(--sand-dark)}.driver-state.active{color:#14816b}.driver-row a{padding:8px;border:1px solid #adb4bb;border-radius:3px;color:var(--text-main);text-decoration:none;white-space:nowrap}.drivers-side{display:grid;align-content:start;gap:14px}.drivers-side section{padding:15px}.drivers-side section>header{margin:-15px -15px 0}.availability-chart{min-height:210px;padding:18px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--border-subtle) 32px)}.drivers-side table{width:100%;margin-top:12px;font-size:11px}.drivers-side td,.drivers-side th{padding:7px;border-bottom:1px solid var(--border-subtle);text-align:center}.drivers-side td:first-child,.drivers-side th:first-child{text-align:left}#create-driver{width:min(92vw,460px);border:1px solid var(--border);border-radius:5px;background:var(--sand-card);padding:0}#create-driver::backdrop{background:rgba(11,12,14,.6)}#driver-form{display:grid;gap:14px;padding:20px}#driver-form header{display:flex;justify-content:space-between}#driver-form h2{margin:0;font:24px Forum,Georgia,serif}#driver-form label{display:grid;gap:6px;font-size:12px}#driver-form input{height:42px;padding:0 10px;border:1px solid var(--border)}#driver-form>div{display:flex;justify-content:flex-end;gap:10px}#driver-form button{padding:10px 16px}
.clients-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin-bottom:14px;padding:12px;border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.clients-filters input,.clients-filters select{height:42px;padding:0 12px;border:1px solid var(--border);border-radius:3px;background:var(--sand-card)}.clients-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.7fr);gap:14px}.clients-directory,.client-profile{border:1px solid var(--border);border-radius:4px;background:var(--adm-card-bg)}.clients-directory>header{display:flex;justify-content:space-between;padding:15px;border-bottom:1px solid var(--border)}.clients-directory h2{margin:0;font:600 20px Forum,Georgia,serif}.client-row{display:grid;grid-template-columns:auto 1.45fr .5fr .8fr .65fr auto;align-items:center;gap:10px;width:100%;min-height:75px;padding:10px;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-main);text-align:left}.client-row.active{box-shadow:inset 3px 0 var(--sand-gold);background:var(--sand-light)}.client-row>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--paper-soft);font:15px Forum,Georgia,serif}.client-row strong{font-size:11px}.client-row small{display:block;margin-top:4px;color:var(--text-muted);font-weight:400}.client-row i,.client-row time,.client-row b{font-size:10px;font-style:normal;font-weight:400}.client-profile{padding:16px}.client-profile>header{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--border)}.client-profile h2{margin:0;font:600 28px Forum,Georgia,serif}.client-profile header>div:nth-child(2){display:flex;flex-direction:column;gap:5px}.client-profile header>div:nth-child(2)>span{color:var(--sand-dark);font-size:11px}.client-profile-actions{display:flex;margin-left:auto;gap:8px}.client-profile-actions a,.client-profile-actions button{padding:10px 14px;border:1px solid #27384d;border-radius:3px;background:transparent;color:var(--text-main);text-decoration:none}.client-columns{display:grid;grid-template-columns:1fr 1.25fr .8fr;gap:0;margin:16px 0}.client-columns>section,.client-columns>aside{padding:0 16px;border-right:1px solid var(--border)}.client-columns>*:first-child{padding-left:0}.client-columns>*:last-child{border:0;background:var(--sand-light);padding:14px}.client-columns h3,.client-history h3{margin:0 0 12px;font:600 17px Forum,Georgia,serif}.client-columns p{margin:10px 0;font-size:12px}.client-columns p small{display:block;margin-bottom:3px;color:var(--text-muted)}.client-columns aside strong{font:15px/1.45 Forum,Georgia,serif}.client-history{padding-top:15px;border-top:1px solid var(--border)}.client-history p,.client-history a{font-size:12px}
.client-editor{width:min(92vw,720px);border:1px solid var(--border);border-radius:4px;background:var(--sand-card);padding:0;color:var(--text-main)}.client-editor::backdrop{background:rgba(11,12,14,.6)}.client-editor form{padding:22px}.client-editor header,.client-editor footer{display:flex;align-items:center;justify-content:space-between;gap:14px}.client-editor header h2{margin:2px 0 14px;font:400 28px Forum,Forum,Georgia,serif}.client-editor header button{border:0;background:none;font-size:24px}.client-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.client-editor-grid label{display:grid;gap:5px;font-size:12px;font-weight:650}.client-editor-grid input,.client-editor-grid select,.client-editor-grid textarea{width:100%;padding:10px;border:1px solid var(--border);background:var(--sand-card);font:inherit}.client-editor-grid .wide{grid-column:1/-1}.client-editor-grid .check{display:flex;align-items:center}.client-editor-grid .check input{width:auto}.client-editor footer{justify-content:flex-end;margin-top:18px}.client-editor footer button{padding:10px 16px}
@media(max-width:1150px){.drivers-layout,.clients-layout{grid-template-columns:1fr}.driver-kpis{grid-template-columns:repeat(2,1fr)}.client-columns{grid-template-columns:1fr 1fr}.client-columns>aside{grid-column:1/-1;margin-top:14px}}@media(max-width:720px){.drivers-heading,.clients-heading{align-items:flex-start;flex-direction:column}.driver-kpis{grid-template-columns:1fr}.driver-kpis article{border-right:0;border-bottom:1px solid var(--border)}.driver-row{grid-template-columns:auto 1fr}.driver-row>*{grid-column:2}.driver-row>.driver-avatar{grid-column:1;grid-row:1/5}.clients-filters{grid-template-columns:1fr}.client-row{grid-template-columns:auto 1fr auto}.client-row i,.client-row time,.client-row b{display:none}.client-profile>header{align-items:flex-start;flex-wrap:wrap}.client-profile-actions{width:100%;margin-left:0}.client-columns{grid-template-columns:1fr}.client-columns>section,.client-columns>aside{border:0;padding:12px 0}.client-columns>aside{padding:14px}.client-editor-grid{grid-template-columns:1fr}.client-editor-grid .wide{grid-column:auto}}

/* E-mails, réglages, journal — artefacts 08–10. */
.emails-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.emails-heading h1{margin:0}.emails-heading p{margin:5px 0 0;color:var(--text-muted)}.emails-heading button{padding:11px 18px;border:1px solid #27384d;background:transparent}.email-kpis{display:grid;grid-template-columns:repeat(5,1fr);margin-bottom:16px;border:1px solid var(--border);background:var(--adm-card-bg)}.email-kpis article{display:flex;min-height:70px;flex-direction:column;justify-content:center;padding:0 22px;border-right:1px solid var(--border)}.email-kpis article:last-child{border:0}.email-kpis strong{font:600 28px Forum,Georgia,serif}.email-kpis span{color:var(--text-muted);font-size:12px}.email-kpis .success strong{color:#16805e}.email-kpis .waiting strong{color:var(--sand-dark)}.email-kpis .failure strong{color:var(--color-cancelled)}.emails-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,1fr);gap:14px}.email-journal,.email-incident{border:1px solid var(--border);background:var(--adm-card-bg)}.email-journal>header{padding:16px;border-bottom:1px solid var(--border)}.email-journal h2,.email-incident h2{margin:0 0 14px;font:600 22px Forum,Georgia,serif}.email-journal header>div{display:grid;grid-template-columns:repeat(2,1fr) 1.5fr;gap:10px}.email-journal select,.email-journal input{height:40px;padding:0 10px;border:1px solid var(--border);background:var(--sand-card)}.email-journal table{width:100%;border-collapse:collapse;font-size:11px}.email-journal th,.email-journal td{padding:12px;border-bottom:1px solid var(--border-subtle);text-align:left}.email-journal .failed-row{background:var(--bg-cancelled)}.email-status{padding:6px 12px;border-radius:3px}.email-status.sent{background:var(--bg-confirmed);color:var(--color-confirmed)}.email-status.failed{background:var(--border-cancelled);color:var(--color-cancelled)}.email-status.queued,.email-status.sending{background:var(--bg-pending);color:var(--sand-dark)}.email-status.unknown{background:var(--bg-unknown);color:var(--color-unknown)}.inspect-mail{border:0;background:transparent;color:var(--adm-info);text-decoration:underline}.email-incident{padding:16px}.email-incident h3{font:600 21px Forum,Georgia,serif}.incident-badge{display:inline-block;padding:5px 8px;background:var(--border-cancelled);color:var(--color-cancelled);font-size:10px}.email-incident dl{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.email-incident dt{color:var(--text-muted);font-size:10px}.email-incident dd{margin:0;font-size:12px}.diagnostic{margin:15px 0;padding:14px;border-left:3px solid var(--color-cancelled);background:var(--bg-cancelled)}.diagnostic p{margin:5px 0 0;font-size:12px}.email-incident label{display:grid;gap:5px;font-size:11px}.email-incident input{height:38px;padding:0 10px;border:1px solid var(--border)}.email-incident h4{margin-bottom:8px}.email-incident p{font-size:12px;line-height:1.8}.email-incident button,.email-incident>a{display:flex;justify-content:center;margin-top:10px;padding:12px;border:1px solid var(--text-main);color:var(--text-main);text-decoration:none}.email-incident .primary{background:var(--ink);color:#fff}
.settings-heading>p,.journal-heading>div>p{margin:0 0 8px;color:var(--sand-dark);font-size:10px;font-weight:700;letter-spacing:.25em}.settings-heading h1,.journal-heading h1{margin:0}.settings-heading>span,.journal-heading>div>span{color:var(--text-muted)}.settings-form{margin-top:18px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-grid>section,.communications{padding:18px;border:1px solid var(--border);background:var(--adm-card-bg)}.settings-form h2{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--border);font:600 23px Forum,Georgia,serif}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}.setting-row>span:first-child{display:flex;flex-direction:column}.setting-row strong{font-size:12px}.setting-row small{margin-top:5px;color:var(--text-muted);font-size:10px}.setting-row select,.unit-input{width:200px}.setting-row select,.unit-input input{height:40px;box-sizing:border-box;border:1px solid var(--border);background:var(--sand-card)}.setting-row select{padding:0 10px}.unit-input{display:flex}.unit-input input{min-width:0;flex:1;padding:0 10px}.unit-input i{display:grid;place-items:center;width:50px;border:1px solid var(--border);border-left:0;font-style:normal;font-size:11px}.settings-form input[role=switch]{appearance:none;width:48px;height:27px;border-radius:99px;background:#b9bec3}.settings-form input[role=switch]:checked{background:var(--color-confirmed)}.settings-form input[role=switch]:after{content:'';display:block;width:21px;height:21px;margin:3px;border-radius:50%;background:white;transition:.15s}.settings-form input[role=switch]:checked:after{transform:translateX(21px)}.communications{margin-top:14px}.communications>p{color:var(--text-muted);font-size:11px}.communications>div{display:grid;grid-template-columns:.8fr 1.3fr}.communications fieldset{display:grid;gap:14px;border:0;padding:10px 18px}.communications fieldset+fieldset{border-left:1px solid var(--border)}.communications legend{font-weight:600;font-size:12px}.communications label{display:flex;gap:10px}.communications label span{display:flex;flex-direction:column}.communications label small{color:var(--text-muted);font-size:10px}.communications textarea{min-height:105px;padding:12px;border:1px solid var(--border);background:var(--sand-card)}.template-tabs{display:flex;justify-content:flex-end;border-bottom:1px solid var(--border)}.template-tabs button{padding:8px 16px;border:0;border-bottom:2px solid transparent;background:transparent}.template-tabs .active{border-color:var(--sand-gold)}.settings-form>footer{display:flex;justify-content:flex-end;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.settings-form>footer button{padding:12px 20px;border:1px solid #27384d;background:transparent}.settings-form>footer .primary{background:var(--ink);color:#fff}
.journal-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.journal-heading>div:last-child{display:flex;gap:10px}.journal-heading select,.journal-heading button{height:42px;padding:0 16px;border:1px solid var(--border);background:var(--sand-card)}.journal-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(250px,.8fr);gap:14px}.journal-layout>section>form{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;padding:14px;border:1px solid var(--border);background:var(--adm-card-bg)}.journal-layout input,.journal-layout select{height:40px;padding:0 10px;border:1px solid var(--border);background:var(--sand-card)}.journal-layout form button{padding:0 22px;border:0;background:var(--ink);color:#fff}.event-day{margin-top:12px;border:1px solid var(--border);background:var(--adm-card-bg)}.event-day>h2{margin:0;padding:10px 16px;background:var(--paper-soft);font:600 16px Forum,Georgia,serif;text-transform:capitalize}.event-day article{display:grid;grid-template-columns:75px 20px 1.4fr .65fr 1fr;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:11px}.event-day article>i,.journal-layout aside i{width:10px;height:10px;border-radius:50%;background:#aaa}.event-day article>div{display:flex;flex-direction:column}.event-day article small{margin-top:4px;color:var(--text-muted)}.event-category{justify-self:start;padding:5px 10px;border-radius:99px;text-transform:uppercase;font-size:9px}.creation{background:var(--sand-gold)!important}.modification{background:#65a4dc!important}.confirmation{background:#62aa8c!important}.communication{background:#72afe3!important}.security{background:#8868ca!important}.event-category{background:var(--paper-soft)!important;color:#304056}.journal-layout>aside{display:grid;align-content:start;gap:14px}.journal-layout>aside section{padding:16px;border:1px solid var(--border);background:var(--adm-card-bg)}.journal-layout aside h2{margin:0 0 15px;font:600 21px Forum,Georgia,serif}.journal-kpi{display:flex;align-items:baseline;gap:8px;padding:17px 4px;border-bottom:1px solid var(--border-subtle)}.journal-kpi strong{font:600 28px Forum,Georgia,serif}.journal-kpi span{font-size:12px}.journal-layout aside p{display:flex;align-items:center;gap:9px;font-size:11px}
@media(max-width:1100px){.emails-layout,.journal-layout{grid-template-columns:1fr}.email-kpis{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:1fr}}@media(max-width:720px){.emails-heading,.journal-heading{align-items:flex-start;flex-direction:column}.email-journal header>div,.communications>div,.journal-layout>section>form{grid-template-columns:1fr}.communications fieldset+fieldset{border-left:0;border-top:1px solid var(--border)}.event-day article{grid-template-columns:55px 15px 1fr}.event-day article>.event-category,.event-day article>div:last-child{grid-column:3}.email-kpis{grid-template-columns:1fr}}

.adm-card, .adm-fiche, .adm-table-wrap, #filter-bar, .adm-filter-bar {
  border-radius: 3px;
  border-color: var(--border);
  box-shadow: 0 10px 28px rgba(11,12,14,.055);
}
.adm-table-btn { border-radius: 2px; background: transparent; border-color: var(--border); }

.ledger-heading, .report-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--border);
}
.ledger-heading h1, .report-heading h1 { margin-bottom: 8px; }
.ledger-heading-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ledger-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(280px, .72fr); gap: clamp(28px,4vw,62px); }
.ledger-main, .ledger-pilot { padding-top: 28px; }
.ledger-pilot { border-left: 1px solid var(--border); padding-left: clamp(24px,3vw,42px); }
.ledger-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 20px; }
.ledger-section-head h2 { font-size: 1.8rem; margin: 0; }
.ledger-stream { position: relative; }
.ledger-stream::before { content: ''; position: absolute; left: 70px; top: 18px; bottom: 18px; width: 1px; background: var(--sand-gold); }
.ledger-entry { display: grid; grid-template-columns: 54px 32px minmax(0,1fr); align-items: start; padding: 0 0 22px; }
.ledger-entry time { padding-top: 22px; font: 700 14px/1.2 'Montserrat',sans-serif; font-variant-numeric: tabular-nums; }
.ledger-pin { width: 11px; height: 11px; margin: 24px 0 0 11px; border-radius: 50%; background: var(--sand-gold); outline: 5px solid var(--paper-soft); z-index: 1; }
.ledger-cancelled .ledger-pin, .ledger-rejected .ledger-pin { background: #a23f35; }
.ledger-confirmed .ledger-pin { background: var(--color-confirmed); }
.ledger-entry-body { padding: 18px 20px; border: 1px solid var(--border); background: rgba(255,253,248,.76); box-shadow: 0 10px 24px rgba(11,12,14,.045); }
.ledger-entry-top { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.ledger-entry h3 { font: 400 1.2rem/1.25 'Forum',Forum,Georgia,serif; margin: 0; }
.ledger-entry p { margin: 8px 0; color: var(--text-muted); }
.ledger-entry a { color: #74541d; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
.ledger-counters { display: grid; grid-template-columns: 1fr; gap: 0; }
.ledger-counters .adm-card { display: grid; grid-template-columns: 48px 1fr 20px; align-items: center; gap: 12px; border-width: 0 0 1px; box-shadow: none; padding: 15px 0; background: transparent; }
.ledger-counters .adm-card.warn { border-left: 0; }
.ledger-counters .n { font: 400 2rem/1 'Forum',Forum,Georgia,serif; color: var(--text-main); }
.ledger-counters .l { color: var(--text-muted); }
.card-arrow { color: var(--sand-dark); }
.report-glance { display: block; margin-top: 28px; padding: 24px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--text-main); }
.report-glance span, .report-date { display: block; color: var(--sand-dark); font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.report-glance strong { display: block; margin: 7px 0; font: 400 1.4rem 'Forum',Forum,Georgia,serif; }
.report-glance small { color: var(--text-muted); }

.report-feature { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(340px,1fr); gap: clamp(32px,5vw,80px); padding: 42px 0; border-bottom: 1px solid var(--border); }
.report-feature-copy h2 { font-size: clamp(2rem,4vw,4rem); line-height: 1; margin: 12px 0 18px; }
.report-feature-copy p { max-width: 65ch; color: var(--text-muted); font-size: 1rem; }
.report-facts { margin: 0; border-top: 1px solid var(--border); }
.report-facts div { display: grid; grid-template-columns: 1fr auto; gap: 5px 20px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.report-facts dt { font-weight: 650; }
.report-facts dd { margin: 0; font: 400 2rem/1 'Forum',Forum,Georgia,serif; font-variant-numeric: tabular-nums; }
.report-facts small { color: var(--text-muted); }
.report-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,80px); padding-top: 38px; }
.report-grid h2 { font-size: 1.8rem; }
.report-signal { display: grid; grid-template-columns: minmax(150px,.6fr) 1fr; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--border); }
.report-signal strong { color: #263140; }
.report-signal.good strong { color: var(--color-confirmed); }
.report-signal.warn strong { color: var(--sand-dark); }
.report-actions ol { padding-left: 1.25rem; }
.report-actions li { padding: 0 0 14px 8px; }
.report-caveat { color: var(--text-muted); background: var(--sand-light); padding: 14px 16px; }
.report-controls{display:flex;gap:14px;align-items:center}.report-controls select{min-height:42px;padding:0 38px 0 14px;border:1px solid var(--border);background:var(--sand-card);color:#182234;font:inherit}.report-fresh{text-align:right;color:var(--text-muted);font-size:12px;margin:-10px 0 22px}.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:var(--sand-card);margin-bottom:14px}.report-kpis div{padding:20px 28px;border-right:1px solid var(--sand-gold)}.report-kpis div:last-child{border:0}.report-kpis strong{display:block;font:400 clamp(2.2rem,4vw,3.4rem)/1 Forum,Forum,Georgia,serif;color:var(--ink)}.report-kpis span{display:block;margin-top:5px;color:#273244}.report-live-grid{display:grid;grid-template-columns:1.55fr .95fr;gap:14px}.report-panel{border:1px solid var(--border);background:var(--sand-card);padding:20px 24px;margin-bottom:14px}.report-panel h2{margin:0 0 17px;font-size:1.65rem}.report-bars{display:grid;gap:13px}.report-bars>div{display:grid;grid-template-columns:170px 1fr 30px;gap:12px;align-items:center}.report-bars i{height:20px;background:var(--border-subtle);display:block}.report-bars b{height:100%;display:block;background:linear-gradient(90deg,var(--sand-gold),var(--sand-gold))}.report-reading ol{list-style:none;padding:0;margin:16px 0}.report-reading li{display:grid;grid-template-columns:30px 1fr;gap:4px 12px;padding:11px 0;border-bottom:1px solid var(--border-subtle);counter-increment:item}.report-reading li:before{content:counter(item);grid-row:1/3;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--border-subtle)}.report-reading li span{grid-column:2;color:var(--text-muted);font-size:13px;line-height:1.45}.report-callout{border:1px solid var(--sand-gold);background:#fbf4e6;padding:14px;color:#765315}.report-primary{display:block;padding:13px;text-align:center;background:var(--ink);color:white;text-decoration:none}.report-funnel>div{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;text-align:center}.report-funnel span{display:flex;flex-direction:column;gap:4px}.report-funnel strong{font:400 2.5rem Forum,Forum,Georgia,serif}.report-funnel i{font-size:25px;color:var(--text-muted)}.report-funnel p{font-size:12px;color:var(--text-muted);text-align:center;margin:12px 0 0}.report-table-panel{margin-bottom:0}

.assignment form{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.assignment form[hidden]{display:none}.assignment form label{display:grid;gap:5px;color:var(--text-muted);font-size:11px}.assignment form select{width:100%;height:40px;border:1px solid var(--border);background:var(--sand-card);padding:0 8px}.assignment form button{margin-top:0;background:var(--ink);color:#fff}
.bulk-assignment{width:min(92vw,480px);border:1px solid var(--border);background:var(--sand-card);padding:0}.bulk-assignment::backdrop{background:rgba(11,12,14,.6)}.bulk-assignment form{display:grid;gap:14px;padding:22px}.bulk-assignment header,.bulk-assignment footer{display:flex;align-items:center;justify-content:space-between}.bulk-assignment h2{margin:0;font:400 27px Forum,Forum,Georgia,serif}.bulk-assignment header button{border:0;background:none;font-size:24px}.bulk-assignment label{display:grid;gap:6px;font-size:12px;font-weight:650}.bulk-assignment select{height:42px;border:1px solid var(--border);background:var(--sand-card);padding:0 10px}.bulk-assignment footer{justify-content:flex-end;gap:10px}.bulk-assignment footer button{padding:10px 14px}
.drivers-heading-actions{display:flex;gap:12px}.drivers-heading-actions button{min-height:46px;padding:0 20px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:#fff}.drivers-heading-actions button:first-child{background:transparent;color:var(--ink)}#driver-form select{height:42px;padding:0 10px;border:1px solid var(--border);background:var(--sand-card)}

@media (max-width: 980px) {
  .ledger-layout, .report-feature, .report-grid, .report-live-grid { grid-template-columns: 1fr; }
  .ledger-pilot { border-left: 0; border-top: 1px solid var(--border); padding-left: 0; }
}
@media (max-width: 640px) {
  main, .adm-main { padding: 26px 16px 64px; }
  .ledger-heading, .report-heading { align-items: stretch; flex-direction: column; }
  .ledger-entry { grid-template-columns: 44px 24px minmax(0,1fr); }
  .ledger-stream::before { left: 55px; }
  .ledger-pin { margin-left: 6px; }
  .ledger-entry-body { padding: 15px; }
  .ledger-entry-top { flex-direction: column; gap: 8px; }
  .report-signal { grid-template-columns: 1fr; gap: 4px; }
  .report-kpis{grid-template-columns:1fr 1fr}.report-kpis div:nth-child(2){border-right:0}.report-kpis div:nth-child(-n+2){border-bottom:1px solid var(--sand-gold)}
}
@media(max-width:620px){.report-controls{align-items:stretch;flex-direction:column}.report-controls>*{width:100%;box-sizing:border-box}.report-kpis{grid-template-columns:1fr 1fr}.report-kpis div{padding:16px}.report-bars>div{grid-template-columns:110px 1fr 24px}.report-funnel>div{grid-template-columns:1fr}.report-funnel i{transform:rotate(90deg)}}

.journal-layout .adm-state.err{display:grid;justify-items:center;gap:9px;padding:44px 24px;color:var(--color-cancelled);text-align:center}.journal-layout .adm-state.err strong{font:600 20px Forum,Georgia,serif}.journal-layout .adm-state.err span{color:var(--text-muted)}.journal-layout .adm-state.err button{margin-top:5px;padding:10px 18px;border:1px solid var(--sand-gold);border-radius:3px;background:transparent;color:var(--text-main);font:600 12px Montserrat,Arial,sans-serif;cursor:pointer}
.report-kpis small{display:block;margin-top:6px;color:var(--color-confirmed);font-size:11px}.report-kpis div:first-child{box-shadow:inset 2px 0 var(--sand-gold)}.report-table-panel .adm-table th:nth-child(n+2),.report-table-panel .adm-table td:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}
.reservations-heading[hidden]{display:none!important}
.report-heading{align-items:flex-start;margin-bottom:8px}.report-heading>div:first-child{max-width:650px}.report-controls{flex:none;margin-top:12px;white-space:nowrap}.report-controls select{width:220px}.report-controls .adm-table-btn{min-width:210px;justify-content:center;white-space:nowrap}.report-fresh{margin:-29px 0 17px}.report-stack{display:grid;align-content:start}.report-stack>.report-panel{margin-bottom:14px}.report-live-grid>.report-reading{align-self:stretch}.report-table-panel{margin-top:0}

/* Calage final sur les maquettes approuvées 01–11. */
@media(min-width:761px){
  main,.adm-main{padding:24px 32px 64px}
  .register-grid{margin:-24px -32px -64px;min-height:calc(100vh - 64px)}
}

/* ==========================================================================
   Bibliothèque d'icônes TCS (SVG inline, trait unique) & galerie
   ========================================================================== */
.tcs-icon {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.tcs-icon-sm { width: 16px; height: 16px; }
.tcs-icon-lg { width: 40px; height: 40px; stroke-width: 1.5; }

.icon-gallery .page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.icon-gallery .overline {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: var(--sand-gold);
  margin-bottom: 0.35rem;
}
.icon-gallery .page-title { margin-bottom: 0.35rem; }
.icon-gallery .page-desc { font-size: 0.95rem; color: var(--text-muted); max-width: 700px; }
.icon-gallery .page-head-actions { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }

.icon-group-title {
  font-family: 'Forum', Georgia, serif;
  font-weight: 400;
  font-size: 1.6rem;
  margin: 0 0 1rem;
}

.icon-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
}
.icon-card {
  margin: 0;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 1.25rem 0.75rem 0.9rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  box-shadow: var(--shadow-xs);
  transition: var(--transition);
}
.icon-card:hover {
  transform: translateY(-3px);
  border-color: var(--sand);
  box-shadow: var(--shadow-sm);
}
.icon-card svg[width="40"], .icon-card .tcs-icon-lg { color: var(--sand-gold); }
.icon-card figcaption code {
  font-size: 0.72rem;
  color: var(--text-muted);
  background: var(--paper-soft);
  border: 1px solid var(--border-subtle);
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
}

.icon-search {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0.55rem 0.9rem;
  color: var(--text-light);
}
.icon-search input {
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: var(--text-main);
  width: 200px;
}

.icon-usage pre {
  background: var(--ink);
  color: var(--sand);
  padding: 1rem 1.25rem;
  border-radius: var(--radius-sm);
  overflow-x: auto;
  font-size: 0.85rem;
}
.icon-demo-colors { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.icon-demo-colors span { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 600; }

@media (max-width: 640px) {
  .icon-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
  .icon-search input { width: 130px; }
}

/* Réglages : champs réels éditables + règles de référence en lecture seule */
.setting-ref { margin: 0 0 16px; display: flex; flex-direction: column; gap: 4px; }
.setting-ref strong { font-size: 12.5px; color: var(--adm-text-main); }
.setting-ref small { color: var(--adm-text-muted); font-size: 11.5px; line-height: 1.5; }
.setting-note {
  margin: 14px 0 0;
  padding: 10px 14px;
  border-left: 3px solid var(--sand-gold);
  background: var(--sand-light);
  color: var(--text-muted);
  font-size: 11.5px;
  line-height: 1.55;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}


/* En-tête mobile compact (aucun débordement global à 390px) */
@media (max-width: 640px) {
  .adm-topbar { padding: 0 12px; height: 56px; gap: 8px; }
  .adm-header-left { gap: 8px; }
  .adm-global-search { height: 38px; padding: 0 10px; }
  .adm-global-search input { font-size: 12.5px; }
  .adm-user-zone { gap: 6px; }
  .adm-profile-copy { display: none; }
  .adm-profile-avatar { width: 32px; height: 32px; font-size: 13px; }
  main, .adm-main { padding: 16px 12px 60px; }
}

/* Registre du jour : mini-icônes du sprite dans les lignes méta (maquette 01) */
.register-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; align-items: center; }
.register-meta > .register-ico { width: 14px; height: 14px; flex-shrink: 0; color: var(--adm-text-muted); margin-right: -10px; }
.register-meta > span { display: inline-flex; align-items: center; gap: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Pilotage : mini bar-chart 7 jours (maquette 01) + variation vs veille */
.pilot-number { display: flex; align-items: flex-end; justify-content: center; gap: 12px; padding: 8px; }
.demand-bars { display: flex; align-items: flex-end; gap: 4px; height: 44px; }
.demand-bars i { width: 9px; height: 100%; display: flex; align-items: flex-end; background: var(--paper-soft); border-radius: 2px 2px 0 0; overflow: hidden; }
.demand-bars i b { display: block; width: 100%; background: var(--sand-gold); border-radius: 2px 2px 0 0; min-height: 3px; }
.demand-bars i.today b { background: var(--sb-accent, var(--sand-gold)); }
.demand-bars i.today { background: var(--sand-light); }
.demand-delta { display: block; margin-top: 6px; font-size: 11px; font-weight: 700; }
.demand-delta.up { color: var(--color-confirmed); }
.demand-delta.down { color: var(--color-cancelled); }

/* ==========================================================================
   MODE SOMBRE — force les textes/panneaux dont la couleur est littérale
   (audit contraste dark : 43 paires < 4.5 avant correctif)
   ========================================================================== */
body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4,
body.dark-mode .mission-detail,
body.dark-mode .mission-detail-head h1, body.dark-mode .mission-detail-head p,
body.dark-mode .mission-panel, body.dark-mode .mission-panel h2,
body.dark-mode .mission-tabs button, body.dark-mode .mission-tabs a,
body.dark-mode .mission-breadcrumb a, body.dark-mode .mission-breadcrumb,
body.dark-mode .mission-history li, body.dark-mode .mission-history h2,
body.dark-mode .itinerary-line h3, body.dark-mode .itinerary-line p, body.dark-mode .itinerary footer,
body.dark-mode .client-detail, body.dark-mode .assignment-person, body.dark-mode .follow-up,
body.dark-mode .notes-panel p, body.dark-mode .assignment button, body.dark-mode .follow-up a,
body.dark-mode .register-head h1, body.dark-mode .register-head p,
body.dark-mode .register-pilot h2, body.dark-mode .register-pilot header p,
body.dark-mode .register-card, body.dark-mode .register-title-line h3,
body.dark-mode .register-meta, body.dark-mode .register-action, body.dark-mode .register-action small,
body.dark-mode .register-entry time,
body.dark-mode .pilot-card, body.dark-mode .pilot-card h3, body.dark-mode .pilot-number,
body.dark-mode .pilot-number small, body.dark-mode .rate-row p, body.dark-mode .source-row,
body.dark-mode .pilot-report strong, body.dark-mode .pilot-report span,
body.dark-mode .register-date-nav button, body.dark-mode .register-date-nav strong,
body.dark-mode .register-empty, body.dark-mode .register-empty strong,
body.dark-mode .reservations-heading h1, body.dark-mode .reservations-heading p,
body.dark-mode .reservation-tabs button, body.dark-mode .reservation-bulk span,
body.dark-mode .reservations-filters input, body.dark-mode .reservations-filters select,
body.dark-mode .reservation-table th, body.dark-mode .reservation-table td,
body.dark-mode .add-heading h1, body.dark-mode .add-heading span, body.dark-mode .add-heading p,
body.dark-mode .booking-form legend, body.dark-mode .booking-form label,
body.dark-mode .booking-summary, body.dark-mode .booking-summary h2, body.dark-mode .booking-summary h3,
body.dark-mode .booking-summary dt, body.dark-mode .booking-summary dd, body.dark-mode .booking-summary li,
body.dark-mode .booking-create-footer button,
body.dark-mode .planning-heading h1, body.dark-mode .planning-heading p,
body.dark-mode .planning-side section, body.dark-mode .planning-side h2, body.dark-mode .planning-side dt,
body.dark-mode .drivers-heading h1, body.dark-mode .drivers-heading p,
body.dark-mode .clients-heading h1, body.dark-mode .clients-heading p,
body.dark-mode .driver-kpis, body.dark-mode .driver-kpis strong, body.dark-mode .driver-kpis small,
body.dark-mode .driver-panel, body.dark-mode .driver-panel h2, body.dark-mode .driver-panel header span,
body.dark-mode .driver-row, body.dark-mode .driver-row small, body.dark-mode .driver-row a,
body.dark-mode .clients-filters input, body.dark-mode .clients-filters select,
body.dark-mode .clients-directory, body.dark-mode .clients-directory h2, body.dark-mode .clients-directory>header,
body.dark-mode .client-row, body.dark-mode .client-row small, body.dark-mode .client-profile,
body.dark-mode .client-profile h2, body.dark-mode .client-columns h3, body.dark-mode .client-columns p,
body.dark-mode .client-columns small, body.dark-mode .client-history, body.dark-mode .client-editor,
body.dark-mode .emails-heading h1, body.dark-mode .emails-heading p, body.dark-mode .emails-heading button,
body.dark-mode .email-kpis, body.dark-mode .email-kpis strong, body.dark-mode .email-kpis span,
body.dark-mode .email-journal, body.dark-mode .email-journal h2, body.dark-mode .email-incident,
body.dark-mode .email-incident h3, body.dark-mode .email-journal th, body.dark-mode .email-journal td,
body.dark-mode .settings-heading h1, body.dark-mode .settings-heading span,
body.dark-mode .setting-row strong, body.dark-mode .setting-row small,
body.dark-mode .setting-ref strong, body.dark-mode .setting-ref small, body.dark-mode .setting-note,
body.dark-mode .settings-form h2, body.dark-mode .communications legend,
body.dark-mode .settings-form>footer button,
body.dark-mode .journal-heading h1, body.dark-mode .journal-heading span,
body.dark-mode .journal-layout input, body.dark-mode .journal-layout select,
body.dark-mode .event-day, body.dark-mode .event-day>h2, body.dark-mode .event-day article,
body.dark-mode .event-day article small, body.dark-mode .journal-kpi span,
body.dark-mode .journal-layout>aside section, body.dark-mode .journal-layout aside h2,
body.dark-mode .report-heading h1, body.dark-mode .report-heading p,
body.dark-mode .report-panel, body.dark-mode .report-panel h2, body.dark-mode .report-fresh,
body.dark-mode .report-kpis strong, body.dark-mode .report-kpis span, body.dark-mode .report-table-panel .adm-table th, body.dark-mode .report-table-panel .adm-table td,
body.dark-mode .adm-card, body.dark-mode .adm-fiche, body.dark-mode .adm-card h1, body.dark-mode .adm-card h2, body.dark-mode .adm-card h3,
body.dark-mode .adm-state, body.dark-mode .adm-state.err, body.dark-mode .adm-sub, body.dark-mode p.sub,
body.dark-mode .adm-table th, body.dark-mode .adm-table td,
body.dark-mode .adm-global-search, body.dark-mode .adm-global-search input,
body.dark-mode .adm-notif-dropdown, body.dark-mode .notif-body strong, body.dark-mode .notif-body p,
body.dark-mode .adm-profile-copy strong, body.dark-mode .adm-profile-copy small,
body.dark-mode #pl-toolbar .pl-mode-switch, body.dark-mode .pl-day-header,
body.dark-mode .adm-actions, body.dark-mode .adm-actions label,
body.dark-mode .modal-dialog, body.dark-mode .modal-header h3,
body.dark-mode label, body.dark-mode legend {
  color: var(--adm-text-main);
}
body.dark-mode .mission-panel h2,
body.dark-mode .mission-tabs .active,
body.dark-mode .register-title-line h3,
body.dark-mode .event-day article strong,
body.dark-mode .mission-detail-head h1 { color: var(--adm-text-main); }
body.dark-mode .adm-sub, body.dark-mode p.sub,
body.dark-mode .mission-panel p, body.dark-mode .itinerary-line p,
body.dark-mode .client-columns p small, body.dark-mode .driver-row small,
body.dark-mode .mission-history li, body.dark-mode .register-meta span,
body.dark-mode .booking-summary dt, body.dark-mode .journal-kpi span,
body.dark-mode .notif-body p, body.dark-mode .adm-profile-copy small,
body.dark-mode .setting-ref small, body.dark-mode .setting-row small,
body.dark-mode .register-action small, body.dark-mode .mission-detail-head p,
body.dark-mode .follow-up small, body.dark-mode .planning-side article small,
body.dark-mode .event-day article small, body.dark-mode .mission-breadcrumb {
  color: var(--adm-text-muted);
}
body.dark-mode .mission-panel, body.dark-mode .mission-history,
body.dark-mode .pilot-card, body.dark-mode .register-card,
body.dark-mode .driver-panel, body.dark-mode .drivers-side section,
body.dark-mode .clients-directory, body.dark-mode .client-profile,
body.dark-mode .email-journal, body.dark-mode .email-incident,
body.dark-mode .planning-side section, body.dark-mode .journal-layout>aside section,
body.dark-mode .journal-layout>section>form, body.dark-mode .event-day,
body.dark-mode .report-panel, body.dark-mode .settings-grid>section, body.dark-mode .communications,
body.dark-mode .adm-card, body.dark-mode .adm-fiche, body.dark-mode .booking-form, body.dark-mode .booking-summary,
body.dark-mode .mission-side>.adm-fiche {
  background: var(--adm-card-bg);
  border-color: var(--adm-border);
}
body.dark-mode .adm-table th { background: var(--paper-soft); color: var(--adm-text-muted); }
body.dark-mode .adm-table td, body.dark-mode .adm-table tr { color: var(--adm-text-main); }
body.dark-mode .adm-table tbody tr:hover { background-color: var(--sand-card); }
body.dark-mode .adm-state { color: var(--adm-text-muted); }
body.dark-mode .adm-state.err { color: var(--adm-danger-border); }
body.dark-mode .setting-note { background: var(--sand-light); color: var(--adm-text-muted); }
body.dark-mode .mission-side>.adm-actions { background: var(--bg-cancelled); border-color: var(--border-cancelled); }
body.dark-mode .mission-side>.adm-actions .danger { color: var(--adm-danger-border) !important; }
body.dark-mode .register-stream:before { background: var(--sand-gold); }
body.dark-mode .register-pin { outline-color: var(--paper); }
body.dark-mode .reservation-table th, body.dark-mode .reservation-table td { color: var(--adm-text-main) !important; background: transparent !important; border-color: var(--border-subtle) !important; }
body.dark-mode .reservations-filters input, body.dark-mode .reservations-filters select, body.dark-mode .reservations-filters button {
  background: var(--sand-card) !important; color: var(--adm-text-main) !important; border-color: var(--border) !important;
}
body.dark-mode .reservations-filters #f-go { background: var(--ink) !important; color: #fff !important; }
body.dark-mode .booking-form input, body.dark-mode .booking-form select, body.dark-mode .booking-form textarea,
body.dark-mode .email-journal select, body.dark-mode .email-journal input,
body.dark-mode .journal-layout input, body.dark-mode .journal-layout select,
body.dark-mode .clients-filters input, body.dark-mode .clients-filters select,
body.dark-mode .setting-row select, body.dark-mode .unit-input input,
body.dark-mode .communications textarea, body.dark-mode .client-editor-grid input,
body.dark-mode .client-editor-grid select, body.dark-mode .client-editor-grid textarea,
body.dark-mode #driver-form input, body.dark-mode .email-incident input,
body.dark-mode .booking-create-footer button {
  background: var(--sand-card); color: var(--adm-text-main); border-color: var(--border);
}
body.dark-mode .adm-flash { background: var(--sand-card); color: var(--adm-text-main); border-color: var(--adm-border); }
body.dark-mode .adm-flash.ok { background: var(--bg-confirmed); color: var(--color-confirmed); border-color: var(--border-confirmed); }
body.dark-mode .adm-flash.ko { background: var(--bg-cancelled); color: var(--adm-danger-border); border-color: var(--border-cancelled); }
body.dark-mode .icon-card, body.dark-mode .icon-search input, body.dark-mode .icon-usage pre { background: var(--adm-card-bg); }
body.dark-mode .icon-card figcaption code { background: var(--paper-soft); color: var(--adm-text-muted); }

/* Affectation v2 : véhicule déduit 1:1 du compte chauffeur (lecture seule) */
.assign-note{margin:8px 0 0;font-size:12px;color:var(--adm-muted,#64748b)}

/* Chauffeurs & accès v2 : modale de gestion (édition + droits + véhicule 1:1) */
.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:6px 0 12px}
.edit-grid label{display:grid;gap:4px;font:600 12px Montserrat,sans-serif}
.edit-grid label small{font-weight:400;color:#64748b}
.edit-grid input{padding:9px 11px;border:1px solid #cbd5e1;border-radius:6px;font:400 13px Montserrat,sans-serif}
.edit-grid .edit-active{display:flex;align-items:center;gap:8px;align-self:end}
#edit-perms-block h3{margin:14px 0 8px;font:600 13px Montserrat,sans-serif}
.perm-list{display:grid;gap:6px}
.perm-line{display:flex;align-items:center;gap:8px;font:500 13px Montserrat,sans-serif}
.perm-admin{font:500 13px Montserrat,sans-serif;color:#64748b}
.edit-vehicle{display:flex;align-items:baseline;gap:10px;margin:12px 0;padding:10px 12px;border:1px dashed #cbd5e1;border-radius:8px}
.edit-vehicle span{font:600 12px Montserrat,sans-serif}
.edit-vehicle small{margin-left:auto;color:#64748b}
.driver-manage{padding:6px 12px;border:1px solid var(--adm-border,#e2e8f0);border-radius:6px;background:none;font:600 12px Montserrat,sans-serif;cursor:pointer}
.driver-manage:hover{border-color:var(--adm-gold,#b8862f);color:var(--adm-gold,#b8862f)}
body.dark-mode .edit-grid input{background:#0b1522;border-color:#33415560;color:inherit}
body.dark-mode .edit-grid label small,body.dark-mode .perm-admin,body.dark-mode .edit-vehicle small{color:#94a3b8}
body.dark-mode .edit-vehicle{border-color:#33415560}

/* Modale #edit-driver : mêmes règles que #create-driver (structure jumelle) */
#edit-driver{width:min(92vw,560px);border:1px solid var(--border);border-radius:5px;background:var(--sand-card);padding:0}
#edit-driver::backdrop{background:rgba(11,12,14,.6)}
#edit-form{display:grid;gap:14px;padding:20px}
#edit-form header{display:flex;justify-content:space-between;align-items:center}
#edit-form h2{margin:0;font:24px Forum,Georgia,serif}
#edit-form button[aria-label="Fermer"]{background:none;border:0;font-size:18px;cursor:pointer;line-height:1;color:var(--text-muted)}
#edit-form>div{display:flex;justify-content:flex-end;gap:10px}
#edit-form button{padding:10px 16px}
#edit-error:empty{display:none}
