/* ═══════════════════════════════════════════════════════════════════════
   WE GO CLUB — PREMIUM V2 / DESIGN SYSTEM GLOBAL
   Appliqué à tous les portails authentifiés, uniquement en présentation.
   Les composants, permissions, formulaires et flux de données sont conservés.
   ═══════════════════════════════════════════════════════════════════════ */

body.crm-v2-shell {
  color-scheme: light;
  --bg: var(--color-background);
  --surface: var(--color-surface);
  --surface-2: var(--color-surface-secondary);
  --ink: var(--color-text);
  --muted: var(--color-text-secondary);
  --faint: var(--color-text-muted);
  --line: var(--color-border);
  --line-strong: var(--color-border-strong);
  --brand: var(--color-primary);
  --brand-2: var(--color-primary-hover);
  --brand-soft: var(--color-primary-soft);
  --brand-ink: var(--color-primary-contrast);
  --blue: var(--color-primary);
  --blue-soft: var(--color-primary-soft);
  --accent: var(--status-warning);
  --accent-soft: var(--status-warning-soft);
  --green: var(--status-success);
  --green-soft: var(--status-success-soft);
  --orange: var(--status-warning);
  --orange-soft: var(--status-warning-soft);
  --red: var(--status-danger);
  --red-soft: var(--status-danger-soft);
  --neutral-soft: var(--status-neutral-soft);
  --atlas: var(--color-primary);
  --chart-1: var(--color-primary);
  --chart-2: #d3944c;
  --radius: 15px;
  --radius-sm: 11px;
  --shadow: 0 3px 18px rgba(30, 61, 109, .037);
  --shadow-lg: 0 20px 58px rgba(23, 54, 94, .17);
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

/* Disposition, marque, navigation : une expérience identique du comptoir à la Direction. */
body.crm-v2-shell .shell { --side: 246px; }
body.crm-v2-shell .main { background: var(--bg); }
body.crm-v2-shell .content { width: 100%; max-width: 1480px; padding: 29px 31px 80px; }
body.crm-v2-shell .side {
  background: var(--color-surface); border-right: 1px solid var(--line); color: var(--ink);
  scrollbar-color: #d6e3f2 transparent;
}
body.crm-v2-shell .brand { margin-inline: 14px; border-bottom: 1px solid #edf2f8; padding-top: 23px; padding-bottom: 19px; }
body.crm-v2-shell .brand-name { color: #1f3959; font-weight: 760; letter-spacing: -.025em; }
body.crm-v2-shell .brand-sub { color: var(--color-text-muted); }
body.crm-v2-shell .side-foot { background: var(--color-surface); color: #6f8098; border-top: 1px solid var(--line); }
body.crm-v2-shell .nav { padding-inline: 13px; gap: 2px; }
body.crm-v2-shell .nav-group { color: #8292a7; font-size: 11px; letter-spacing: .075em; text-transform: uppercase; font-weight: 750; padding-top: 19px; }
body.crm-v2-shell .nav a {
  min-height: 43px; font-size: 13.5px; padding: 9px 11px; border-radius: 11px;
  font-weight: 570; color: var(--color-text-secondary);
  transition: color .2s ease, background-color .2s ease, transform .3s cubic-bezier(.22,1,.36,1);
}
body.crm-v2-shell .nav a .nav-ic { color: #8497af; }
body.crm-v2-shell .nav a:hover {
  background: var(--color-surface-hover); color: var(--color-primary-hover); text-decoration: none;
}
body.crm-v2-shell .nav a.active {
  background: var(--color-primary-soft); color: var(--color-primary); font-weight: 740;
}
body.crm-v2-shell .nav a.active .nav-ic { color: var(--color-primary); }
body.crm-v2-shell .nav a.active::before {
  background: #3786e5; border-radius: 0 5px 5px 0;
}
body.crm-v2-shell .nav .count {
  color: #875214; background: #fff2dc; font-weight: 720; border-radius: 99px;
}
body.crm-v2-shell .nav a.active .count { background: #d7e9ff; color: #245f9d; }
body.crm-v2-shell .top {
  background: rgba(255,255,255,.96); backdrop-filter: blur(15px) saturate(1.15);
  border-bottom: 1px solid var(--color-border); padding: 13px 31px;
  box-shadow: 0 3px 16px rgba(23,55,99,.02);
}
body.crm-v2-shell .top .search input {
  border: 1px solid var(--color-border); background: var(--color-surface-secondary); border-radius: 13px;
  min-height: 42px; color: var(--ink); font-size: 13.5px;
}
body.crm-v2-shell .top .search input:focus { border-color: #7cb5f2; background: var(--color-surface); }
body.crm-v2-shell .top-actions .icon-btn { border-radius: 12px; color: #607790; }
body.crm-v2-shell .top-actions .icon-btn:hover { background: #ecf5ff; color: var(--brand); }
body.crm-v2-shell .user-chip { border-radius: 12px; }
body.crm-v2-shell .tabbar { background: rgba(255,255,255,.98); border-top-color: #e6edf7; }

/* Titrage commun à tous les modules sans ajouter de menus ni masquer les boutons. */
body.crm-v2-shell #view { min-width: 0; }
body.crm-v2-shell .page-head { align-items: flex-end; gap: 12px 20px; margin-bottom: 23px; }
body.crm-v2-shell .page-head > div { min-width: 0; }
body.crm-v2-shell .page-head h1 {
  color: #1b2c45; font-weight: 760; font-size: clamp(23px, 2vw, 30px);
  letter-spacing: -.036em; line-height: 1.18;
}
body.crm-v2-shell .page-head .sub { color: var(--color-text-muted); font-size: 13.5px; margin-top: 7px; line-height: 1.55; }
body.crm-v2-shell .crm-v2-section-label {
  display: inline-flex; align-items: center; gap: 7px;
  color: #4886c7; font-size: 10.3px; text-transform: uppercase;
  font-weight: 770; letter-spacing: .12em; margin: 0 0 9px;
}
body.crm-v2-shell .crm-v2-section-label::before {
  content: ""; display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; background: #3f8cdd;
}
body.crm-v2-shell .crumb { color: var(--color-text-muted); font-size: 12.7px; }
body.crm-v2-shell .page-head .title-ic { color: #3678cb; }

/* Les cartes gardent leur rôle, avec le même matériau visuel sur tout le CRM. */
body.crm-v2-shell .card,
body.crm-v2-shell .bk-overview-card,
body.crm-v2-shell .bk-recap-card,
body.crm-v2-shell .booking-ux-filters,
body.crm-v2-shell .booking-list-summary,
body.crm-v2-shell .portal-workspace,
body.crm-v2-shell .ca-client,
body.crm-v2-shell .client-held-credit,
body.crm-v2-shell .bk-retained-advance {
  border-color: var(--color-border); background-color: var(--color-surface);
  border-radius: 17px;
  box-shadow: 0 4px 20px rgba(27,61,104,.035);
}
body.crm-v2-shell .card-head {
  background: transparent; border-bottom: 1px solid var(--color-border); padding: 17px 20px;
}
body.crm-v2-shell .card-head h2, body.crm-v2-shell .card-head h3 {
  font-weight: 740; letter-spacing: -.022em; color: var(--color-text);
}
body.crm-v2-shell .card-pad { padding: 20px 22px; }
body.crm-v2-shell .grid { gap: 16px; }
body.crm-v2-shell .kpi {
  border: 1px solid #e4ecf6; padding: 19px 20px; border-radius: 17px;
  background: var(--color-surface); min-width: 0;
}
body.crm-v2-shell .kpi .label { color: var(--color-text-muted); font-size: 12.5px; font-weight: 620; }
body.crm-v2-shell .kpi .value { font-weight: 770; font-size: clamp(24px,2.2vw,31px); color: var(--color-text); letter-spacing: -.036em; }
body.crm-v2-shell .kpi .hint { color: var(--color-text-muted); line-height: 1.5; }
body.crm-v2-shell .kpi-ic { background: var(--color-primary-soft); color: #2d6cbb; border-radius: 12px; }
body.crm-v2-shell .kpi-warn { background: var(--status-warning-soft); border-color: #f4dfc5; }
body.crm-v2-shell .kpi-warn .value { color: var(--status-warning); }
body.crm-v2-shell .kpi-zero { background: #fcfdff; }
body.crm-v2-shell .date-tile { border-radius: 12px; background: #eef6ff; color: #2a6cbb; }
body.crm-v2-shell .dep-card,
body.crm-v2-shell .feed-item,
body.crm-v2-shell .follow-item { transition: background-color .2s ease, transform .3s cubic-bezier(.22,1,.36,1), box-shadow .25s ease; }
body.crm-v2-shell .dep-card:hover, body.crm-v2-shell .feed-item:hover, body.crm-v2-shell .follow-item:hover {
  background: #f7fbff; text-decoration: none;
}

/* Tables denses, plus faciles à lire et à parcourir sur les portails métier. */
body.crm-v2-shell .table-wrap { border-radius: 12px; max-width: 100%; }
body.crm-v2-shell table { border-collapse: separate; border-spacing: 0; }
body.crm-v2-shell thead th {
  background: var(--color-surface-secondary); color: var(--color-text-muted); font-weight: 740;
  border-bottom: 1px solid var(--color-border); font-size: 11.8px; letter-spacing: .01em;
}
body.crm-v2-shell tbody td { border-bottom-color: #edf1f6; color: #3b4e68; }
body.crm-v2-shell tbody tr:last-child td { border-bottom-color: transparent; }
body.crm-v2-shell tbody tr.clickable:hover td,
body.crm-v2-shell tbody tr:has(a[href]):hover td { background: var(--color-surface-hover); }
body.crm-v2-shell tbody .t-strong, body.crm-v2-shell tbody b { color: var(--color-text); }
body.crm-v2-shell .rank-n { color: #8da5c0; }
body.crm-v2-shell .hbar-track, body.crm-v2-shell .fill-track { background: #eaf1fa; border-radius: 99px; }
body.crm-v2-shell .hbar-fill, body.crm-v2-shell .fill-bar { border-radius: 99px; }
body.crm-v2-shell .hbar-fill:not(.s1):not(.s2):not(.s0) { background: linear-gradient(90deg,#347ed5,#7dbaf2); }
body.crm-v2-shell .hbar-label { color: #334c6a; }
body.crm-v2-shell .colchart .grid { stroke: #e8edf5; }
body.crm-v2-shell .colchart .bar { fill: #367fda; }
body.crm-v2-shell .colchart .col:hover .bar { opacity: 1; fill: #1c5da9; }
body.crm-v2-shell .colchart .bar {
  transform-box: fill-box; transform-origin: center bottom;
  animation: crm-v2-chart-rise .75s cubic-bezier(.22,1,.36,1) both;
}
@keyframes crm-v2-chart-rise {
  from { transform: scaleY(.12); opacity: .2; }
  to { transform: scaleY(1); opacity: 1; }
}
body.crm-v2-shell .hbar-fill, body.crm-v2-shell .fill-bar {
  transition: width .75s cubic-bezier(.22,1,.36,1);
}
body.crm-v2-shell .rank-cell .hbar-track { border-radius: 99px; }

/* Boutons et menus contextuels : clairs et tactiles, sans décalage de l'interface. */
body.crm-v2-shell .btn {
  border-radius: 11px; border-color: #dce6f1; background: var(--color-surface); color: #314961;
  font-weight: 660; min-height: 40px;
  box-shadow: 0 1px 2px rgba(18,51,93,.03);
  transition: background-color .2s ease, border-color .2s ease,
              box-shadow .25s ease, color .2s ease, transform .3s cubic-bezier(.22,1,.36,1);
}
body.crm-v2-shell .btn:not(:disabled):hover {
  background: #f5f9ff; border-color: #9fc6f3; color: #1f5fa7;
  box-shadow: 0 5px 13px rgba(23,72,133,.075); text-decoration: none;
}
body.crm-v2-shell .btn-primary {
  background: var(--color-primary); border-color: var(--color-primary); color: var(--color-surface);
  box-shadow: 0 7px 20px rgba(32,96,179,.15);
}
body.crm-v2-shell .btn-primary:not(:disabled):hover {
  color: var(--color-surface); background: var(--color-primary-hover); border-color: var(--color-primary-hover);
  box-shadow: 0 12px 24px rgba(28,89,161,.21);
}
body.crm-v2-shell .btn-danger { background: #fff0f0; border-color: #f2d8da; color: #a03949; }
body.crm-v2-shell .btn-danger:not(:disabled):hover { background: #ffe7ea; color: #9f3046; border-color: #e3b6c0; }
body.crm-v2-shell .btn-green { background: #16866d; border-color: #16866d; color: var(--color-surface); }
body.crm-v2-shell .btn-green:not(:disabled):hover { background: #0c6f59; border-color: #0c6f59; color: var(--color-surface); }
body.crm-v2-shell .btn-ghost { background: transparent; box-shadow: none; color: #2c75c2; border-color: transparent; }
body.crm-v2-shell .btn-sm { min-height: 32px; padding: 5px 10px; }
body.crm-v2-shell .btn:disabled { box-shadow: none; }
body.crm-v2-shell .icon-btn { border-radius: 12px; }
body.crm-v2-shell .icon-btn:hover { color: #236bb9; background: #eaf4ff; }
body.crm-v2-shell .portal-opt { border-radius: 13px; }
body.crm-v2-shell .portal-opt:hover { background: #f3f8fe; }
body.crm-v2-shell .portal-workspace-action,
body.crm-v2-shell .portal-workspace {
  border-color: var(--color-border); background: var(--color-surface); border-radius: 16px;
}
body.crm-v2-shell .portal-workspace-action { box-shadow: none; }
body.crm-v2-shell .portal-workspace-action:hover { background: #f5f9ff; border-color: #c1d9f4; }

/* Formulaires de réservation, clients, caisse, missions et messages : mêmes repères. */
body.crm-v2-shell input:not([type=checkbox]):not([type=radio]),
body.crm-v2-shell select, body.crm-v2-shell textarea {
  border-radius: 11px; background: var(--color-surface); border-color: #d8e4f1; color: #293e57;
  transition: border-color .18s ease, box-shadow .22s ease, background-color .2s ease;
}
body.crm-v2-shell input:not([type=checkbox]):not([type=radio]):focus,
body.crm-v2-shell select:focus, body.crm-v2-shell textarea:focus {
  border-color: #4b95e6; box-shadow: 0 0 0 4px rgba(60,140,226,.12);
  background: var(--color-surface);
}
body.crm-v2-shell input:disabled, body.crm-v2-shell select:disabled,
body.crm-v2-shell textarea:disabled { background: #f7f9fc; color: #6e8095; }
body.crm-v2-shell .field > span { color: #50647c; font-weight: 680; }
body.crm-v2-shell .form-grid { gap: 16px; }
body.crm-v2-shell .seg { border-radius: 12px; border-color: #dfe9f4; background: #f8faff; }
body.crm-v2-shell .seg a, body.crm-v2-shell .seg button {
  color: var(--color-text-secondary); background: transparent; border-color: #e9eff7; transition: color .2s, background .2s;
}
body.crm-v2-shell .seg .on, body.crm-v2-shell .seg a.on, body.crm-v2-shell .seg button.on {
  background: #e7f2ff; color: var(--color-primary); font-weight: 740;
}
body.crm-v2-shell .tabs { border-color: var(--color-border); gap: 4px; }
body.crm-v2-shell .tabs a { color: var(--color-text-muted); font-size: 13px; border-bottom-width: 3px; }
body.crm-v2-shell .tabs a.on { color: #2b72c5; border-bottom-color: #3987e2; font-weight: 760; }
body.crm-v2-shell .chip { border-radius: 100px; font-weight: 680; }
body.crm-v2-shell .notice { border-radius: 13px; }
body.crm-v2-shell .modal { border-radius: 21px; border: 1px solid var(--color-border); box-shadow: 0 32px 90px rgba(16,35,61,.19); background: var(--color-surface); }
body.crm-v2-shell .modal-head { background: var(--color-surface); padding: 20px 23px 15px; }
body.crm-v2-shell .modal-body { padding: 21px 23px 23px; }
body.crm-v2-shell .modal-head h2 { color: #1d314a; font-size: 21px; letter-spacing: -.025em; }
body.crm-v2-shell .modal-backdrop { background: rgba(23,38,61,.38); backdrop-filter: blur(4px); }
body.crm-v2-shell .search-results,
body.crm-v2-shell .ac-list,
body.crm-v2-shell .notif-panel {
  background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px;
  box-shadow: 0 16px 42px rgba(21,49,87,.15);
}
body.crm-v2-shell #toasts .toast { border-radius: 13px; box-shadow: 0 12px 34px rgba(18,47,82,.12); }

/* États visuels adaptés aux modules : aucune couleur ne remplace le texte métier. */
body.crm-v2-shell #view[data-motion-task="booking"] .crm-v2-section-label::before,
body.crm-v2-shell #view[data-motion-task="traveler"] .crm-v2-section-label::before { background: #2d81db; }
body.crm-v2-shell #view[data-motion-task="payment"] .crm-v2-section-label::before,
body.crm-v2-shell #view[data-motion-task="cash"] .crm-v2-section-label::before { background: #26a37e; }
body.crm-v2-shell #view[data-motion-task="loyalty"] .crm-v2-section-label::before { background: #cb8a32; }
body.crm-v2-shell #view[data-motion-task="message"] .crm-v2-section-label::before { background: #7d77cf; }

/* Micro-interactions : visibles, rapides et cohérentes avec le système métier. */
@media (hover: hover) and (pointer: fine) {
  body.crm-v2-shell .card:has(> a):hover,
  body.crm-v2-shell a.kpi:hover,
  body.crm-v2-shell .portal-workspace-action:hover,
  body.crm-v2-shell .booking-list-summary a:hover {
    transform: translate3d(0,-3px,0);
    box-shadow: 0 13px 30px rgba(29,70,122,.085);
  }
}
body.crm-v2-shell a.kpi,
body.crm-v2-shell .portal-workspace-action { transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, border-color .2s ease, background .2s ease; }

/* Responsive : préserver la lisibilité du portail et la saisie sans débordement. */
@media (max-width: 1150px) {
  body.crm-v2-shell .content { padding: 23px 23px 72px; }
  body.crm-v2-shell .grid-4, body.crm-v2-shell .grid-6 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  body.crm-v2-shell .content { max-width: 100%; padding: 17px 13px calc(82px + env(safe-area-inset-bottom)); }
  body.crm-v2-shell .top { padding: 9px 11px; gap: 8px; }
  body.crm-v2-shell .side { box-shadow: 18px 0 44px rgba(25,50,87,.13); }
  body.crm-v2-shell .page-head { margin-bottom: 17px; gap: 11px; align-items: flex-start; }
  body.crm-v2-shell .page-head h1 { font-size: 24px; }
  body.crm-v2-shell .crm-v2-section-label { font-size: 9.8px; margin-bottom: 6px; }
  body.crm-v2-shell .page-head .sub { font-size: 12.8px; }
  body.crm-v2-shell .card-head { padding: 13px 14px; }
  body.crm-v2-shell .card-pad { padding: 15px 14px; }
  body.crm-v2-shell .card, body.crm-v2-shell .bk-overview-card,
  body.crm-v2-shell .portal-workspace { border-radius: 14px; }
  body.crm-v2-shell .grid { gap: 10px; }
  body.crm-v2-shell .grid-4, body.crm-v2-shell .grid-6 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.crm-v2-shell .kpi { padding: 13px; border-radius: 13px; }
  body.crm-v2-shell .kpi .value { font-size: 24px; }
  body.crm-v2-shell .form-grid { gap: 10px; }
  body.crm-v2-shell .modal { border-radius: 18px; }
  body.crm-v2-shell .modal-head { padding: 16px 16px 12px; }
  body.crm-v2-shell .modal-body { padding: 16px; }
  body.crm-v2-shell .btn:not(.btn-sm) { min-height: 42px; }
  body.crm-v2-shell .tabbar { box-shadow: 0 -7px 26px rgba(27,61,105,.06); }
  body.crm-v2-shell .hbar { min-width: 0; }
  body.crm-v2-shell .hbar-label { overflow-wrap: anywhere; }
}
@media (max-width: 390px) {
  body.crm-v2-shell .content { padding-inline: 11px; }
  body.crm-v2-shell .grid-4, body.crm-v2-shell .grid-6 { grid-template-columns: minmax(0,1fr); }
  body.crm-v2-shell .kpi .value { font-size: 22px; }
  body.crm-v2-shell .modal { width: calc(100% - 12px); }
}
@media (prefers-reduced-motion: reduce) {
  body.crm-v2-shell .colchart .bar { animation: none !important;  }
  body.crm-v2-shell .hbar-fill, body.crm-v2-shell .fill-bar,
  body.crm-v2-shell .nav a, body.crm-v2-shell .btn,
  body.crm-v2-shell .portal-workspace-action, body.crm-v2-shell .tabs a {
    transition: none !important; 
  }
}
@media print {
  body.crm-v2-shell { background: var(--color-surface) !important; }
  body.crm-v2-shell .card, body.crm-v2-shell .modal,
  body.crm-v2-shell .booking-ux-filters { box-shadow: none !important; }
  body.crm-v2-shell .colchart .bar { animation: none !important; transform: none !important; }
}


/* Accueil de chaque rôle : même signature éditoriale que le tableau de bord Direction. */
body.crm-v2-shell .crm-v2-home-header {
  align-items: center; margin-bottom: 23px; padding: 9px 0 5px;
}
body.crm-v2-shell .crm-v2-home-overline {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 9px;
  text-transform: uppercase; letter-spacing: .13em; font-size: 10px;
  color: #3c81cb; font-weight: 800;
}
body.crm-v2-shell .crm-v2-home-overline::before {
  content: ""; width: 7px; height: 7px; flex: 0 0 7px;
  border-radius: 50%; background: #4291e8;
}
body.crm-v2-shell .crm-v2-home-header .sub { color: #7b8ea4; }
body.crm-v2-shell .desk-tiles {
  grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px;
}
body.crm-v2-shell .desk-tiles .kpi {
  border-radius: 16px; min-width: 0; padding: 17px 19px;
}
body.crm-v2-shell .desk-tiles .kpi:hover {
  border-color: #bbd8f5; box-shadow: 0 12px 28px rgba(31,81,137,.1);
}
body.crm-v2-shell .direction-home {
  gap: 28px; min-width: 0;
}
body.crm-v2-shell .direction-section-heading { margin-bottom: 16px; }
body.crm-v2-shell .direction-section-heading h2 {
  color: #213651; font-size: 20px; letter-spacing: -.025em; font-weight: 750;
}
body.crm-v2-shell .direction-section-heading p { color: #7c8ea2; }
body.crm-v2-shell .direction-priority-grid,
body.crm-v2-shell .direction-overview-grid {
  grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr)); gap: 12px;
}
body.crm-v2-shell .direction-priority-grid .kpi { background: var(--status-warning-soft); border-color: #efdfcc; }
body.crm-v2-shell .direction-all-clear {
  background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px;
  box-shadow: 0 3px 15px rgba(27,61,104,.03);
}
@media (max-width: 950px) {
  body.crm-v2-shell .desk-tiles { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  body.crm-v2-shell .crm-v2-home-header { margin-bottom: 17px; }
  body.crm-v2-shell .desk-tiles { gap: 9px; }
  body.crm-v2-shell .desk-tiles .kpi { padding: 13px 12px; }
  body.crm-v2-shell .direction-priority-grid,
  body.crm-v2-shell .direction-overview-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px;
  }
}
@media (max-width: 360px) {
  body.crm-v2-shell .direction-priority-grid,
  body.crm-v2-shell .direction-overview-grid { grid-template-columns: minmax(0,1fr); }
}


/* Contrôle métier : les avances conservées et les clients à risque restent
   immédiatement identifiables. Le thème ne doit jamais neutraliser ces signaux. */
body.crm-v2-shell .bk-retained-advance,
body.crm-v2-shell .client-held-credit {
  background: #edf7ff;
  border: 1px solid #bbdaf6;
  border-left: 4px solid #2b79cd;
  box-shadow: 0 5px 18px rgba(39,109,183,.055);
}
body.crm-v2-shell .ca-credit {
  background: #eaf8f2; border-color: #b9e5d0;
}
body.crm-v2-shell .ca-blacklist {
  background: #fff0f1; border-color: #edb8c0;
}
body.crm-v2-shell .booking-credit-info {
  background: #ecf9f2; border-color: #b9e5d0;
}
body.crm-v2-shell .btn-accent {
  background: #f3b454; border-color: #e6a443; color: #3c260b;
}
body.crm-v2-shell .btn-accent:not(:disabled):hover {
  background: #e9a742; border-color: #d89934; color: #3c260b;
}
body.crm-v2-shell .notice-danger {
  background: #fff0f1; border-color: #f0c8ce;
}

/* Navigation fonctionnelle compacte : les raccourcis demeurent visibles, les outils
   secondaires sont regroupés par métier. Une seule rubrique est déployée à la fois. */
body.crm-v2-shell .side { overflow: hidden; }
body.crm-v2-shell .brand,
body.crm-v2-shell .side-foot { flex: 0 0 auto; }
body.crm-v2-shell .nav {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: #cbd8e8 transparent;
  padding-bottom: 14px;
}
body.crm-v2-shell .nav-primary,
body.crm-v2-shell .nav-sections { display: flex; flex-direction: column; gap: 2px; }
body.crm-v2-shell .nav-primary { padding-bottom: 11px; border-bottom: 1px solid #eaf0f7; margin-bottom: 10px; }
body.crm-v2-shell .nav-section { min-width: 0; }
body.crm-v2-shell .nav-section-toggle {
  width: 100%; display: flex; align-items: center; text-align: left; gap: 12px;
  padding: 10px 11px; min-height: 42px; margin: 0;
  border: 0; border-radius: 11px; background: transparent;
  font-weight: 650; font-size: 13px; line-height: 1.3; font-family: inherit;
  color: #586e89; cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
body.crm-v2-shell .nav-section-toggle:hover,
body.crm-v2-shell .nav-section-toggle:focus-visible { background: #eff5fc; color: #245f9f; }
body.crm-v2-shell .nav-section.has-active > .nav-section-toggle { background: #f3f8ff; color: #245f9f; }
body.crm-v2-shell .nav-section-toggle .nav-ic { width: 21px; height: 21px; flex: 0 0 21px; color: #8497af; }
body.crm-v2-shell .nav-section-toggle .nav-label { flex: 1; min-width: 0; }
body.crm-v2-shell .nav-section-toggle .nav-chevron { width: 15px; height: 15px; flex: 0 0 15px; opacity: .65; transition: transform .15s ease; }
body.crm-v2-shell .nav-section.is-open .nav-section-toggle .nav-chevron { transform: rotate(180deg); }
body.crm-v2-shell .nav-section-toggle .count { min-width: 22px; height: 21px; padding-inline: 6px; display: grid; place-items: center; }
body.crm-v2-shell .nav-section-panel[hidden] { display: none !important; }
body.crm-v2-shell .nav-section-panel { display: flex; flex-direction: column; padding: 0 0 5px 14px; gap: 1px; }
body.crm-v2-shell .nav a.nav-sub-link { min-height: 36px; padding: 7px 9px; font-size: 12.7px; border-radius: 8px; }
body.crm-v2-shell .nav a.nav-sub-link .nav-ic { width: 17px; height: 17px; }
body.crm-v2-shell .nav a.nav-sub-link.active::before { left: -4px; top: 5px; bottom: 5px; width: 2px; }
@media (max-width: 760px) {
  body.crm-v2-shell .side { height: 100dvh; max-height: 100dvh; }
  body.crm-v2-shell .nav { padding-bottom: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  body.crm-v2-shell .nav-section-toggle,
  body.crm-v2-shell .nav-section-toggle .nav-chevron { transition: none; }
}
