/* Navigea — interface moderne unifiée.
   Fonds opaques, surfaces nettes, palette commune et hiérarchie claire. */
:root {
  --nv-font: "Lato Navigea", Lato, Arial, sans-serif;
  --nv-bg: #f4f6f8;
  --nv-surface: #ffffff;
  --nv-surface-alt: #f8fafc;
  --nv-ink: #0f172a;
  --nv-muted: #64748b;
  --nv-line: #e2e8f0;
  --nv-line-strong: #cbd5e1;
  --nv-accent: #4f46e5;
  --nv-accent-dark: #3730a3;
  --nv-accent-soft: #eef2ff;
  --nv-sidebar: #0f172a;
  --nv-sidebar-line: #1e293b;
  --nv-sidebar-muted: #94a3b8;
  --nv-danger: #dc2626;
  --nv-danger-soft: #fef2f2;
  --nv-warning: #b45309;
  --nv-warning-soft: #fffbeb;
  --nv-success: #059669;
  --nv-success-soft: #ecfdf5;
  --nv-shadow: 0 1px 2px rgba(15, 23, 42, .035), 0 12px 30px rgba(15, 23, 42, .055);
  --nv-shadow-hover: 0 2px 4px rgba(15, 23, 42, .04), 0 18px 42px rgba(15, 23, 42, .09);
  --nv-radius-sm: 10px;
  --nv-radius: 16px;
  --nv-radius-lg: 22px;
  --bg: var(--nv-bg);
  --card: var(--nv-surface);
  --text: var(--nv-ink);
  --muted: var(--nv-muted);
  --accent: var(--nv-accent);
  --accent-dark: var(--nv-accent-dark);
  --accent-soft: var(--nv-accent-soft);
  --border: var(--nv-line);
  --nav-dark: var(--nv-sidebar);
  --shadow: var(--nv-shadow);
  --system-accent: var(--nv-accent);
  --system-accent-bright: #6366f1;
  --system-panel: var(--nv-surface);
  --system-line: var(--nv-line);
  --system-text: var(--nv-ink);
  --system-muted: var(--nv-muted);
}

/* Tous les espaces métier partagent désormais exactement les mêmes jetons. */
body[data-navigea-world="database"],
body.database-console,
body.db-admin-page,
body[data-navigea-world="logistics"],
body.logistics-console,
body[data-navigea-world="commerce"],
body.sales-entry-page,
body.sales-table-page,
body[data-navigea-world="analytics"],
body.analytics-world,
body.forecast-page {
  --nv-bg: #f4f6f8;
  --nv-surface: #ffffff;
  --nv-surface-alt: #f8fafc;
  --nv-ink: #0f172a;
  --nv-muted: #64748b;
  --nv-line: #e2e8f0;
  --nv-line-strong: #cbd5e1;
  --nv-accent: #4f46e5;
  --nv-accent-dark: #3730a3;
  --nv-accent-soft: #eef2ff;
  --nv-sidebar: #0f172a;
  --nv-sidebar-line: #1e293b;
  --nv-sidebar-muted: #94a3b8;

  /* Compatibilité avec les composants et exports existants. */
  --bg: var(--nv-bg);
  --card: var(--nv-surface);
  --text: var(--nv-ink);
  --muted: var(--nv-muted);
  --accent: var(--nv-accent);
  --accent-dark: var(--nv-accent-dark);
  --accent-soft: var(--nv-accent-soft);
  --border: var(--nv-line);
  --nav-dark: var(--nv-sidebar);
  --shadow: var(--nv-shadow);
  --dash-canvas: var(--nv-bg);
  --dash-panel: var(--nv-surface);
  --dash-ink: var(--nv-ink);
  --dash-muted: var(--nv-muted);
  --dash-border: var(--nv-line);
  --dash-green: var(--nv-accent);
  --dash-green-dark: var(--nv-accent-dark);
  --dash-mint: var(--nv-accent-soft);
  --forecast-paper: var(--nv-surface);
  --forecast-ink: var(--nv-ink);
  --forecast-muted: var(--nv-muted);
  --forecast-border: var(--nv-line);
  --forecast-green: var(--nv-accent);
  --forecast-green-dark: var(--nv-accent-dark);
  --forecast-mint: var(--nv-accent-soft);
}

.database-console,
.db-admin-page {
  --db-bg: var(--nv-bg);
  --db-surface: var(--nv-surface);
  --db-panel: var(--nv-surface);
  --db-panel-alt: var(--nv-surface-alt);
  --db-line: var(--nv-line);
  --db-line-strong: var(--nv-line-strong);
  --db-text: var(--nv-ink);
  --db-muted: var(--nv-muted);
  --db-purple: var(--nv-accent);
  --db-purple-bright: var(--nv-accent);
  --db-purple-soft: var(--nv-accent-soft);
  --system-accent: var(--nv-accent);
  --system-accent-bright: var(--nv-accent);
  --system-panel: var(--nv-surface);
  --system-line: var(--nv-line);
  --system-text: var(--nv-ink);
  --system-muted: var(--nv-muted);
}

body.logistics-console {
  --log-bg: var(--nv-bg);
  --log-bg-alt: var(--nv-surface-alt);
  --log-panel: var(--nv-surface);
  --log-panel-alt: var(--nv-surface-alt);
  --log-line: var(--nv-line);
  --log-line-strong: var(--nv-line-strong);
  --log-text: var(--nv-ink);
  --log-muted: var(--nv-muted);
  --log-blue: var(--nv-accent);
  --log-blue-bright: var(--nv-accent);
  --log-blue-soft: var(--nv-accent-soft);
  --log-green: var(--nv-accent);
  --log-green-dark: var(--nv-accent-dark);
  --log-green-soft: var(--nv-accent-soft);
  --log-ink: var(--nv-ink);
  --system-accent: var(--nv-accent);
  --system-accent-bright: var(--nv-accent);
  --system-panel: var(--nv-surface);
  --system-line: var(--nv-line);
  --system-text: var(--nv-ink);
  --system-muted: var(--nv-muted);
}

html { color-scheme: light; background: var(--nv-bg); }
body {
  min-height: 100vh;
  color: var(--nv-ink) !important;
  background: var(--nv-bg) !important;
  font-family: var(--nv-font) !important;
  font-size: 16px;
  line-height: 1.5;
}
body *, body *::before, body *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body::before, body::after { content: none !important; }

/* Signature commune, sans halo ni dégradé. */
.brand-lockup {
  display: flex;
  width: max-content;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}
.brand-lockup .logo-mark,
.login-box .logo-mark,
.db-admin-page .logo-mark {
  display: grid;
  width: 64px;
  height: 64px;
  margin: 0;
  place-items: center;
  border: 1px solid #6366f1 !important;
  border-radius: 16px !important;
  color: #fff !important;
  background: var(--nv-accent) !important;
  background-image: none !important;
  box-shadow: none !important;
  font-family: var(--nv-font);
  font-size: 23px;
  font-weight: 900;
}

/* Structure fixe Navigea */
.dashboard-v3 .dashboard-shell { grid-template-columns: 260px minmax(0, 1fr); min-height: 100vh; background: var(--nv-bg) !important; }
.dashboard-main,
.database-console .dashboard-main,
.logistics-console .dashboard-main {
  max-width: 1680px;
  color: var(--nv-ink) !important;
  background: var(--nv-bg) !important;
  background-image: none !important;
}
.dashboard-v3 .dashboard-main,
.database-console .dashboard-main,
.logistics-console .dashboard-main { padding: 36px clamp(24px, 3vw, 52px) 56px !important; }
.dashboard-sidebar,
.database-console .dashboard-sidebar,
.logistics-console .dashboard-sidebar {
  border-right: 1px solid var(--nv-sidebar-line) !important;
  border-radius: 0 !important;
  color: #fff !important;
  background: var(--nv-sidebar) !important;
  box-shadow: none !important;
}
.dashboard-v3 .dashboard-sidebar { padding: 30px 20px 22px; }
.dashboard-v3 .dashboard-logo { padding: 0 8px 30px; }
.dashboard-logo { border-bottom-color: var(--nv-sidebar-line) !important; color: #fff !important; }
.dashboard-logo .logo-symbol,
.account-avatar {
  border: 1px solid #6366f1 !important;
  border-radius: 11px !important;
  color: #fff !important;
  background: var(--nv-accent) !important;
  box-shadow: none !important;
}
.dashboard-logo strong, .account-copy strong { color: #fff !important; }
.dashboard-logo small, .account-copy small { color: var(--nv-sidebar-muted) !important; }
.side-navigation a {
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  color: var(--nv-sidebar-muted) !important;
  background: transparent !important;
  font-size: 14px !important;
  box-shadow: none !important;
}
.side-navigation a:hover { border-color: #334155 !important; color: #fff !important; background: #1e293b !important; }
.side-navigation a.is-active {
  border-color: #4f46e5 !important;
  color: #fff !important;
  background: #312e81 !important;
  box-shadow: inset 3px 0 0 #818cf8 !important;
}
.side-navigation a span { color: #a5b4fc !important; }
.sidebar-account { border-top-color: var(--nv-sidebar-line) !important; }
.icon-logout { color: var(--nv-sidebar-muted) !important; background: transparent !important; }

/* Titres, panneaux et indicateurs */
h1, h2, h3, h4,
.database-console h1, .database-console h2, .database-console h3,
.logistics-console h1, .logistics-console h2, .logistics-console h3 { color: var(--nv-ink) !important; letter-spacing: -.025em; }
.dashboard-kicker, .panel-overline, .critical-kicker {
  color: var(--nv-accent) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
}
.dashboard-v3 .dashboard-kicker,
.database-console .dashboard-kicker,
.logistics-console .dashboard-kicker {
  display: block;
  width: max-content;
  margin: 0 0 4px 2px !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 1.1;
  text-align: left !important;
}
.dashboard-intro, .panel-heading p, .critical-summary,
.home-space-copy p, .logistics-section-heading p,
.information-admin-heading p, .db-admin-header .intro,
.forecast-card-heading p { color: var(--nv-muted) !important; }
.dashboard-v3 .dashboard-topbar,
.account-topbar,
.user-admin-topbar,
.forecast-topbar,
.logistics-topbar,
.product-topbar { align-items: flex-end !important; gap: 24px !important; margin-bottom: 28px !important; }
.database-console .product-topbar {
  padding-inline: 0 !important;
  text-align: left !important;
}
.database-console .product-topbar > div:first-child { text-align: left !important; }
.database-console .user-admin-topbar {
  padding-inline: 0 !important;
  text-align: left !important;
}
.database-console .user-admin-topbar > div:first-child { text-align: left !important; }
.dashboard-v3 .dashboard-topbar h1,
.account-topbar h1,
.user-admin-topbar h1,
.forecast-topbar h1,
.logistics-topbar h1,
.product-topbar h1 {
  margin: 0 !important;
  color: var(--nv-ink) !important;
  font-size: clamp(34px, 4vw, 50px) !important;
  font-weight: 700 !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
}
.dashboard-v3 .dashboard-intro,
.database-console .dashboard-intro,
.logistics-console .dashboard-intro {
  margin: 5px 0 0 !important;
  font-size: 16px !important;
  line-height: 1.35;
}
.dashboard-panel,
.logistics-panel,
.sales-table-panel,
.tool,
.form-card,
.admin-box,
.login-box,
.installation-guide main,
.database-admin-entry,
.forecast-card,
.forecast-control-panel,
.database-console .dashboard-panel,
.database-console .information-admin-panel,
.logistics-console .dashboard-panel,
.dashboard-v3 .compact-kpi,
.product-kpis article,
.user-admin-kpis article,
.logistics-kpis article,
.forecast-kpis article,
.dashboard-summary article,
.quick-kpis article {
  border: 1px solid var(--nv-line) !important;
  border-radius: var(--nv-radius) !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  background-image: none !important;
  box-shadow: var(--nv-shadow) !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}
.tool:hover,
.dashboard-v3 .compact-kpi:hover,
.product-kpis article:hover,
.user-admin-kpis article:hover,
.logistics-kpis article:hover,
.forecast-kpis article:hover {
  border-color: var(--nv-line-strong) !important;
  box-shadow: var(--nv-shadow-hover) !important;
  transform: translateY(-2px);
}
.dashboard-panel::before, .dashboard-panel::after,
.form-card::before, .form-card::after,
.tool::before, .tool::after,
.login-box::before, .login-box::after { content: none !important; }

/* Les grands indicateurs restent hiérarchisés, avec une couleur pleine. */
.dashboard-v3 .revenue-hero,
.dashboard-v3 .annual-panel,
.forecast-summary-card,
.forecast-kpis .forecast-kpi-primary,
.logistics-kpis .kpi-card-primary {
  border: 1px solid var(--nv-accent-dark) !important;
  color: #fff !important;
  background: var(--nv-accent-dark) !important;
  background-image: none !important;
  box-shadow: none !important;
}
.dashboard-v3 .revenue-hero::after { content: none !important; }
.dashboard-v3 .compact-kpi {
  display: grid !important;
  grid-template-columns: 30px minmax(0, 1fr);
  align-content: start;
}
.dashboard-v3 .compact-kpi > div { display: contents !important; }
.dashboard-v3 .compact-kpi .metric-label { align-self: center; }
.dashboard-v3 .compact-kpi strong {
  grid-column: 1 / -1;
  overflow: visible !important;
  margin-top: 14px !important;
  font-size: clamp(21px, 1.8vw, 26px) !important;
  text-overflow: clip !important;
}
.dashboard-v3 .compact-kpi small { grid-column: 1 / -1; }
.dashboard-v3 .annual-panel h2,
.dashboard-v3 .annual-panel p,
.forecast-summary-card h2,
.forecast-summary-card p { color: #fff !important; }
.database-admin-entry,
.sales-table-panel-heading,
.database-console,
.db-admin-page,
.logistics-console,
.sales-table-page {
  background-image: none !important;
}
.sales-table-panel-heading { background-color: var(--nv-surface-alt) !important; }
.database-admin-entry:hover { border-color: var(--nv-accent) !important; box-shadow: var(--nv-shadow) !important; }
.db-admin-page .db-admin-header {
  border-bottom: 1px solid var(--nv-sidebar-line) !important;
  background: var(--nv-sidebar) !important;
  background-image: none !important;
}
.db-admin-page .db-admin-header h1 { color: #fff !important; }
.db-admin-page .db-admin-header .intro { color: var(--nv-sidebar-muted) !important; }
.db-admin-page .db-admin-kicker { color: #9fb9ad !important; }

/* Filtres, onglets et états : une seule grammaire d’interaction. */
.logistics-tabs,
.db-entity-tabs,
.period-switch,
.distribution-choice {
  border: 1px solid var(--nv-line) !important;
  border-radius: 13px !important;
  background: var(--nv-surface-alt) !important;
  box-shadow: none !important;
}
.logistics-tabs button,
.db-entity-tabs button,
.period-switch button,
.distribution-choice button {
  border-radius: 9px !important;
  color: var(--nv-muted) !important;
  background: transparent !important;
}
.logistics-tabs button.is-active,
.db-entity-tabs button.is-active,
.period-switch button.is-active,
.distribution-choice button.is-active {
  border-color: #c7d2fe !important;
  color: var(--nv-accent-dark) !important;
  background: var(--nv-accent-soft) !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.04) !important;
}
.dashboard-status,
.forecast-status,
.db-status,
.product-status {
  border: 1px solid var(--nv-line) !important;
  border-radius: 14px !important;
  color: var(--nv-muted) !important;
  background: var(--nv-surface) !important;
  box-shadow: none !important;
}

/* Commandes : identiques dans tous les univers */
button, .secondary-button, .login-button, .logout-button, .dashboard-refresh,
.logistics-primary-button, .logistics-secondary-button, .forecast-refresh,
.pdf-export-button, .submit-button {
  min-height: 44px;
  border-radius: var(--nv-radius-sm) !important;
  box-shadow: none !important;
  font-family: var(--nv-font) !important;
  font-size: 14px;
  font-weight: 800;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease !important;
}
button:hover, .secondary-button:hover, .dashboard-refresh:hover { transform: translateY(-1px); }
button:focus-visible, .secondary-button:focus-visible, .logout-button:focus-visible {
  outline: 3px solid rgba(79, 70, 229, .2) !important;
  outline-offset: 2px;
}
.dashboard-refresh, .login-button, .logistics-primary-button, .forecast-refresh,
.forecast-save-button, .submit-button, .db-create-button, .db-validate-button {
  border: 1px solid var(--nv-accent-dark) !important;
  color: #fff !important;
  background: var(--nv-accent) !important;
}
.dashboard-refresh:hover, .login-button:hover, .logistics-primary-button:hover,
.forecast-refresh:hover, .forecast-save-button:hover, .submit-button:hover,
.db-create-button:hover, .db-validate-button:hover { background: var(--nv-accent-dark) !important; }
.secondary-button, .logout-button, .db-button, .product-reload-button,
.logistics-secondary-button, .logistics-row-button, .pdf-export-button {
  border: 1px solid var(--nv-line-strong) !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
}
.secondary-button:hover, .logout-button:hover, .db-button:hover, .product-reload-button:hover,
.logistics-secondary-button:hover, .logistics-row-button:hover, .pdf-export-button:hover {
  border-color: var(--nv-accent) !important;
  color: var(--nv-accent-dark) !important;
  background: var(--nv-accent-soft) !important;
}
.table-trash-button, .delete-button, .logistics-row-button.is-danger {
  border: 1px solid #dcb7bc !important;
  color: var(--nv-danger) !important;
  background: var(--nv-danger-soft) !important;
}
.table-trash-button:hover, .delete-button:hover { border-color: var(--nv-danger) !important; background: #f6dfe2 !important; }
.db-delete-button, .critical-confirm-button {
  border-color: #dcb7bc !important;
  color: var(--nv-danger) !important;
  background: var(--nv-danger-soft) !important;
}
.logistics-text-button, .logistics-sort-button.is-active,
.sales-sort-button.is-active, .table-sort-button.is-active { color: var(--nv-accent) !important; }
button:disabled { opacity: .48 !important; transform: none !important; cursor: not-allowed; }

/* Saisie : priorité absolue à la lisibilité */
input, select, textarea,
.database-console input, .database-console select, .database-console textarea,
.logistics-console input, .logistics-console select, .logistics-console textarea {
  min-height: 48px !important;
  border: 1px solid var(--nv-line-strong) !important;
  border-radius: 12px !important;
  color: var(--nv-ink) !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03) !important;
  font-family: var(--nv-font) !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
}
textarea { min-height: 112px !important; padding: 13px 14px !important; resize: vertical; }
input, select { padding: 10px 13px !important; }
input::placeholder, textarea::placeholder { color: #959b97 !important; }
input:focus, select:focus, textarea:focus {
  border-color: var(--nv-accent) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 4px rgba(79, 70, 229, .12) !important;
}
label > span, fieldset legend { color: var(--nv-muted) !important; font-size: 13px !important; font-weight: 800 !important; }
input[type="checkbox"] {
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  padding: 0 !important;
  accent-color: var(--nv-accent);
}

/* Tableaux : même contraste et même densité, avec défilement de secours. */
.table-scroll, .product-table-wrap, .db-table-wrap, .sales-table-wrap,
.forecast-detail-table-frame, .user-sales-table-wrap, .unit-movements-table-wrap {
  overflow-x: auto !important;
  border: 1px solid var(--nv-line) !important;
  border-radius: 14px !important;
  background: var(--nv-surface) !important;
}
.database-console .product-table-wrap {
  max-height: min(68vh, 760px) !important;
  overflow-x: auto !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
table, .dashboard-table, .product-table, .db-table, .sales-ledger-table,
.forecast-detail-table, .deletion-history-table, .user-sales-table, .unit-movements-table {
  width: 100% !important;
  border-collapse: collapse !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  table-layout: fixed !important;
}
th {
  padding: 15px 13px !important;
  border-bottom: 1px solid var(--nv-line-strong) !important;
  color: #475569 !important;
  background: var(--nv-surface-alt) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: .035em !important;
  line-height: 1.25 !important;
  text-align: left;
  text-transform: uppercase;
  white-space: normal !important;
}
td {
  padding: 14px 13px !important;
  border-bottom: 1px solid var(--nv-line) !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  vertical-align: middle !important;
  overflow-wrap: anywhere;
  white-space: normal !important;
}
tbody tr:hover td { background: color-mix(in srgb, var(--nv-accent-soft) 55%, white) !important; }
tbody tr.is-selected td,
tbody tr[aria-selected="true"] td { background: var(--nv-accent-soft) !important; }
.table-selection-column { width: 52px !important; text-align: center !important; }
table input:not([type="checkbox"]), table select, table textarea {
  min-height: 48px !important;
  padding: 10px 11px !important;
  font-size: 15px !important;
}
table textarea { min-height: 76px !important; }
.cell-number { font-variant-numeric: tabular-nums; font-weight: 850; }

/* Barre contextuelle : visible uniquement si des lignes sont choisies. */
.selection-command-bar {
  display: flex;
  min-height: 60px;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 12px 0;
  padding: 9px 10px 9px 16px;
  border: 1px solid var(--nv-line-strong);
  border-left: 4px solid var(--nv-accent);
  border-radius: 12px;
  color: var(--nv-ink);
  background: var(--nv-surface);
  box-shadow: var(--nv-shadow);
  animation: nv-command-in .18s ease both;
}
.selection-command-bar[hidden] { display: none !important; }
.selection-command-bar > p { margin: 0 auto 0 0; color: var(--nv-muted); font-size: 14px; }
.selection-command-bar > p strong { color: var(--nv-ink); font-size: 17px; }
.bulk-edit-button { border: 1px solid var(--nv-accent) !important; color: var(--nv-accent-dark) !important; background: var(--nv-accent-soft) !important; }
.product-label-button {
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid #4f46e5;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, #4338ca, #6d28d9);
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.product-label-button:hover:not(:disabled) { filter: brightness(1.08); transform: translateY(-1px); }
.product-label-button:disabled { cursor: not-allowed; opacity: .45; }
@keyframes nv-command-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }

/* Fenêtres pleines et nettes */
dialog { border: 0 !important; }
dialog::backdrop {
  background: rgba(15, 23, 42, .68) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.logistics-dialog-card, .critical-dialog-card, .product-dialog-card {
  border: 1px solid var(--nv-line-strong) !important;
  border-radius: var(--nv-radius-lg) !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  background-image: none !important;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .24) !important;
}
.logistics-close-button { border: 1px solid var(--nv-line) !important; color: var(--nv-muted) !important; background: #fff !important; }

/* Actions collectives */
.bulk-work-dialog { width: min(900px, calc(100% - 28px)); max-width: none; padding: 0; }
.bulk-work-card { width: 100%; max-width: none; padding: 24px; }
.bulk-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 20px 0; }
.bulk-work-grid.is-compact { grid-template-columns: minmax(210px, .7fr) minmax(280px, 1.3fr); }
.bulk-work-grid > label,
.bulk-work-grid > div > label { display: grid; gap: 7px; }
.bulk-optional-field { align-content: start; }
.bulk-apply-check { display: flex !important; min-height: 34px; align-items: center; gap: 8px; color: var(--nv-muted); font-size: 13px; }
.bulk-apply-check input { width: 20px !important; min-width: 20px !important; height: 20px !important; min-height: 20px !important; }

/* Accueil : deux kanbans de performance encadrent les informations utilisateur. */
.home-command-header {
  padding: 22px 0 0 !important;
  border: 0 !important;
  color: var(--nv-ink) !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left !important;
}
.home-command-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, .7fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 16px;
}
.home-command-bar,
.home-performance-card {
  min-width: 0;
  border: 1px solid var(--nv-line);
  border-radius: 20px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 14px 34px rgba(15,23,42,.08);
}
.home-command-bar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 16px;
  padding: 20px;
  border-color: #303f82;
  color: #fff;
  background: linear-gradient(145deg, #243574 0%, #3949a0 100%);
  box-shadow: 0 16px 38px rgba(30,41,99,.24);
}
.home-brand, .home-brand-copy, .home-welcome { display: flex; align-items: center; }
.home-brand { justify-content: center; gap: 10px; }
.home-brand-copy, .home-welcome { align-items: center; flex-direction: column; text-align: center; }
.home-welcome { gap: 3px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.2); }
.home-command-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; }
.home-brand .logo-mark {
  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border: 1px solid #4f46e5 !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: var(--nv-accent) !important;
  box-shadow: 0 8px 20px rgba(79,70,229,.2) !important;
  font-size: 17px !important;
}
.home-brand-copy strong, .home-welcome span { color: #fff !important; }
.home-brand-copy strong { font-size: 17px; }
.home-brand-copy small, .home-welcome small { color: #dbe4ff !important; }
.home-command-actions a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.24) !important;
  border-radius: 10px !important;
  color: #fff !important;
  background: rgba(255,255,255,.1) !important;
  box-shadow: none !important;
  text-align: center;
}
.home-command-actions a:hover { border-color: rgba(255,255,255,.55) !important; color: #fff !important; background: rgba(255,255,255,.18) !important; }
.home-command-bar .navigea-notification-trigger { border-color: rgba(255,255,255,.3); color: #fff; background: rgba(255,255,255,.12); box-shadow: none; }
.home-command-header + main { padding-top: 0; }
.home-workspaces { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px 0 48px; }
.home-offer-card {
  position: relative;
  grid-column: 1 / -1;
  order: 0;
  overflow: hidden;
  border: 1px solid #ef4444;
  border-radius: var(--nv-radius-lg);
  color: #fff;
  background: linear-gradient(125deg, #991b1b 0%, #dc2626 48%, #7f1d1d 100%);
  box-shadow: 0 14px 34px rgba(153,27,27,.2);
}
.home-offer-card[hidden] { display: none !important; }
.home-offer-card[data-state="inactive"],
.home-offer-card[data-state="ended"] { border-color: #ef4444; background: linear-gradient(125deg, #991b1b 0%, #b91c1c 48%, #7f1d1d 100%); opacity: .82; }
.home-offer-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-height: 48px;
  padding: 6px 12px;
  border-bottom: 1px solid rgba(255,255,255,.2);
}
.home-offer-heading > div { position: absolute; top: 50%; left: 50%; width: min(62%, 680px); text-align: center; transform: translate(-50%, -50%); }
.home-offer-heading h2 { display: block; margin: 0; color: #fff !important; font-size: 20px; font-weight: 950; line-height: 1; letter-spacing: -.02em; }
.home-offer-heading p { display: block; margin: 2px 0 0; overflow: hidden; color: #fee2e2; font-size: 9px; font-weight: 750; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.home-offer-state {
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.12);
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}
.home-offer-manage {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #fff;
  border-radius: 9px;
  color: #991b1b;
  background: #fff;
  font: inherit;
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}
.home-offer-manage[hidden] { display: none !important; }
.home-offer-body { padding: 4px 14px 6px; }
.home-offer-score { display: grid; grid-template-columns: 125px 135px minmax(360px, 1fr); align-items: center; gap: 13px; }
.home-offer-score > div:not(.home-offer-progress-zone) { display: grid; gap: 4px; min-width: 0; }
.home-offer-score > div:nth-child(2) { padding-left: 13px; border-left: 1px solid rgba(255,255,255,.22); }
.home-offer-score span { color: #fee2e2; font-size: 9px; font-weight: 800; }
.home-offer-score strong { color: #fff; font-size: clamp(19px, 1.8vw, 24px); line-height: 1; white-space: nowrap; }
.home-offer-score > div:nth-child(2) span,
.home-offer-score > div:nth-child(2) strong { color: #fde68a; }
.home-offer-progress-zone { display: grid; min-width: 0; gap: 2px; }
.home-offer-axis { position: relative; height: 34px; margin: 0 7px; }
.home-offer-progress { position: absolute; top: 14px; right: 0; left: 0; height: 10px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.24); }
.home-offer-progress span { position: relative; display: block; width: 0; height: 100%; overflow: hidden; border-radius: inherit; background: linear-gradient(100deg, #f59e0b 0%, #fde047 36%, #fff7b2 50%, #facc15 64%, #eab308 100%); background-size: 220% 100%; box-shadow: 0 0 12px rgba(253,224,71,.9); animation: home-offer-liquid-shine 1.8s linear infinite; transition: width .35s ease; }
.home-offer-progress span::after { position: absolute; inset: 1px 0 auto; height: 2px; border-radius: 999px; background: rgba(255,255,255,.72); content: ""; }
@keyframes home-offer-liquid-shine {
  from { background-position: 180% 0; }
  to { background-position: -40% 0; }
}
.home-offer-tiers { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.home-offer-tiers li { position: absolute; top: 0; left: var(--tier-position); width: 58px; color: #fee2e2; text-align: center; transform: translateX(-50%); }
.home-offer-tiers li::before { position: absolute; top: 11px; left: calc(50% - 4px); z-index: 2; width: 8px; height: 8px; border: 2px solid #fff; border-radius: 50%; background: #fecaca; box-shadow: 0 0 0 1px rgba(255,255,255,.72); content: ""; }
.home-offer-tiers li::after { position: absolute; top: 18px; left: calc(50% - .5px); z-index: 1; width: 1px; height: 7px; background: rgba(255,255,255,.72); content: ""; }
.home-offer-tiers li.is-reached { color: #fde68a; }
.home-offer-tiers li.is-reached::before { background: #facc15; box-shadow: 0 0 0 1px #fde68a; }
.home-offer-tiers li.is-reached::after { background: #fde68a; }
.home-offer-tiers strong { display: block; color: inherit; font-size: 10px; font-weight: 950; line-height: 1; white-space: nowrap; }
.home-offer-tiers span { display: block; margin-top: 18px; color: inherit; font-size: 7px; font-weight: 800; line-height: 1; white-space: nowrap; }
.home-offer-tiers li:last-child { text-align: right; transform: translateX(-100%); }
.home-offer-tiers li:last-child::before { right: 0; left: auto; }
.home-offer-tiers li:last-child::after { right: 3.5px; left: auto; }
.home-performance-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 9px 14px;
  padding: 14px 18px 13px;
}
.home-performance-card[hidden] { display: none !important; }
.home-performance-month {
  border-color: var(--nv-line);
  background: rgba(255,255,255,.97);
  box-shadow: 0 14px 34px rgba(15,23,42,.08);
}
.home-daily-heading { grid-column: 1 / -1; padding-bottom: 7px; border-bottom: 1px solid var(--nv-line); }
.home-daily-heading h2 { margin: 0; color: var(--nv-ink); font-size: 16px; }
.home-daily-metric { display: grid; gap: 3px; min-width: 0; }
.home-daily-metric + .home-daily-metric { padding-left: 14px; border-left: 1px solid var(--nv-line); }
.home-daily-metric span { color: var(--nv-muted); font-size: 11px; font-weight: 800; }
.home-daily-metric strong { color: var(--nv-ink); font-size: clamp(21px, 1.8vw, 27px); line-height: 1; white-space: nowrap; }
.home-daily-metric .home-revenue-ht-label {
  margin-top: 2px;
  color: #64748b;
  font-size: 9px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.home-daily-metric .home-revenue-ht {
  color: #475569;
  font-size: clamp(15px, 1.3vw, 19px);
  line-height: 1.05;
}
.home-daily-target span,
.home-daily-target strong { color: #7c3aed !important; }
.home-daily-progress { grid-column: 1 / -1; display: grid; gap: 5px; padding-top: 0; }
.home-daily-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.home-daily-progress > div:first-child span { color: #475569; font-size: 12px; font-weight: 900; line-height: 1.25; }
.home-daily-progress > div:first-child span[data-tone="success"] { color: var(--nv-success) !important; }
.home-daily-progress > div:first-child span[data-tone="warning"] { color: var(--nv-warning) !important; }
.home-daily-progress > div:first-child strong { color: var(--nv-accent-dark); font-size: clamp(23px, 2.1vw, 30px); line-height: 1; white-space: nowrap; }
.home-daily-track { height: 6px; overflow: hidden; border-radius: 999px; background: rgba(99,102,241,.12); }
.home-daily-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--nv-accent); transition: width .35s ease; }
.home-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 10px 20px 38px;
}
.home-footer a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid var(--nv-line);
  border-radius: 10px;
  color: var(--nv-muted);
  background: rgba(255,255,255,.78);
  font-weight: 800;
  text-decoration: none;
}
.home-footer a:hover { border-color: #94a3b8; color: var(--nv-ink); background: #fff; }
.offer-config-dialog { width: min(900px, calc(100% - 28px)); max-width: none; padding: 0; }
.offer-config-dialog::backdrop { background: rgba(15, 23, 42, .72) !important; }
.offer-config-card { max-height: min(92vh, 920px); overflow-y: auto; padding: 24px; border: 1px solid var(--nv-line-strong); border-radius: 20px; color: var(--nv-ink); background: #fff; box-shadow: 0 30px 90px rgba(15,23,42,.3); }
.offer-config-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--nv-line); }
.offer-config-card > header h2 { margin: 3px 0 5px; font-size: 27px; }
.offer-config-card > header p, .offer-config-tiers header p { margin: 0; color: var(--nv-muted); font-size: 13px; }
.offer-config-close { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border: 1px solid var(--nv-line); border-radius: 10px; color: var(--nv-muted); background: #fff; font-size: 25px; cursor: pointer; }
.offer-config-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-top: 18px; }
.offer-config-grid label:not(.offer-config-toggle),
.offer-config-tier-row label { display: grid; gap: 6px; color: #475569; font-size: 12px; font-weight: 850; }
.offer-config-grid input:not([type="checkbox"]),
.offer-config-tier-row input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid #cbd5e1; border-radius: 10px; color: var(--nv-ink); background: #fff; font: inherit; }
.offer-config-toggle { display: flex; grid-column: 1 / -1; align-items: center; gap: 11px; padding: 13px; border: 1px solid #a7f3d0; border-radius: 11px; background: #ecfdf5; }
.offer-config-toggle input { width: 21px; height: 21px; }
.offer-config-toggle span { display: grid; gap: 2px; }
.offer-config-toggle strong { color: #14532d; font-size: 13px; }
.offer-config-toggle small { color: #166534; }
.offer-config-tiers { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--nv-line); }
.offer-config-tiers > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.offer-config-tiers h3 { margin: 0 0 4px; font-size: 18px; }
.offer-config-tiers > header button { min-height: 39px; padding: 0 12px; border: 1px solid #86efac; border-radius: 9px; color: #166534; background: #f0fdf4; font-weight: 850; cursor: pointer; }
.offer-config-tier-list { display: grid; gap: 8px; margin-top: 13px; }
.offer-config-tier-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; align-items: end; gap: 10px; padding: 11px; border: 1px solid var(--nv-line); border-radius: 11px; background: var(--nv-surface-alt); }
.offer-config-tier-remove { min-height: 44px; padding: 0 11px; border: 1px solid #fecaca; border-radius: 9px; color: #991b1b; background: #fff1f2; font-weight: 800; cursor: pointer; }
.offer-config-status { margin: 14px 0 0; padding: 11px 13px; border: 1px solid #bfdbfe; border-radius: 9px; color: #1e40af; background: #eff6ff; }
.offer-config-status[data-tone="success"] { border-color: #a7f3d0; color: #047857; background: #ecfdf5; }
.offer-config-status[data-tone="error"] { border-color: #fecaca; color: #991b1b; background: #fff1f2; }
.offer-config-card > footer { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--nv-line); }
.offer-config-card > footer button { min-height: 44px; padding: 0 16px; border-radius: 10px; font: inherit; font-weight: 900; cursor: pointer; }
.offer-config-secondary { border: 1px solid var(--nv-line-strong); color: var(--nv-ink); background: #fff; }
.offer-config-primary { border: 1px solid #15803d; color: #fff; background: #15803d; }
.offer-config-primary:disabled { opacity: .6; cursor: wait; }
.home-space.tool {
  position: relative;
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 16px 20px !important;
  min-height: 230px;
  align-items: start;
  padding: 28px !important;
  overflow: hidden;
  border: 1px solid var(--nv-line) !important;
  border-left: 1px solid var(--nv-line) !important;
  border-radius: var(--nv-radius-lg) !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  background-image: none !important;
  box-shadow: var(--nv-shadow) !important;
}
.home-space.tool:hover { border-color: #c7d2fe !important; box-shadow: var(--nv-shadow-hover) !important; transform: translateY(-3px); }
.home-space.tool::before, .home-space.tool::after { content: none !important; }
.home-space-commerce,
.home-space-logistics,
.home-space-pac,
.home-space-products,
.home-space-admin,
.home-space-control { --space-accent: var(--nv-accent); }
.tool-icon {
  display: grid !important;
  width: 64px !important;
  height: 64px !important;
  place-items: center;
  border: 1px solid var(--nv-line-strong) !important;
  border-radius: 14px !important;
  color: var(--space-accent, var(--nv-accent)) !important;
  background: var(--nv-accent-soft) !important;
  box-shadow: none !important;
}
.tool-icon svg { width: 31px; height: 31px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.tool-monogram {
  display: grid;
  place-items: center;
  color: inherit;
  font-family: var(--font-heading, inherit);
  font-size: 21px;
  font-weight: 950;
  letter-spacing: -.045em;
  line-height: 1;
}
.home-space-copy { display: grid; align-self: center; gap: 5px; }
.home-space-copy h2 { margin: 2px 0 0 !important; font-size: 30px !important; }
.home-space-copy p { max-width: 560px; margin: 5px 0 0 !important; font-size: 17px; line-height: 1.5; }
.home-space-eyebrow { color: var(--space-accent, var(--nv-accent)) !important; font-size: 11px !important; font-weight: 900 !important; letter-spacing: .09em; text-transform: uppercase; }
.home-space-actions {
  grid-column: 1 / -1;
  display: flex !important;
  align-self: end;
  gap: 9px !important;
  padding-top: 16px;
  border-top: 1px solid var(--nv-line);
}
.home-space-actions a {
  display: inline-flex !important;
  min-height: 54px;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 12px 16px;
  border: 1px solid var(--nv-line-strong) !important;
  border-radius: 11px !important;
  color: var(--nv-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 16px;
  text-align: center;
}
.home-space-actions a > span:last-child {
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  margin-left: auto;
  place-items: center;
  border-radius: 50%;
  color: var(--nv-accent-dark);
  background: var(--nv-accent-soft);
  font-size: 18px;
}
.home-space-actions .primary-tool-link { border-color: var(--space-accent, var(--nv-accent)) !important; color: #fff !important; background: var(--space-accent, var(--nv-accent)) !important; }
.home-space-actions .primary-tool-link > span:last-child { color: #fff; background: rgba(255, 255, 255, .18); }
.home-space-actions:not(.home-space-actions-double) a { width: 100%; }
.home-space-actions-double a { flex: 1; }
.home-space-actions-triple {
  display: grid !important;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1fr) minmax(0, 1.25fr);
}
.home-space-actions-triple a {
  width: auto !important;
  min-width: 0;
  gap: 6px;
  padding-inline: 10px;
  font-size: 14px;
  white-space: nowrap;
}
.home-space-actions-triple a > span:last-child {
  flex-basis: 28px;
  width: 28px;
  height: 28px;
}
.home-space-actions-control { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.secondary-tool-link { font-weight: 800; text-decoration: none; }

/* Accueil bento : rythme asymétrique et surfaces pleines. */
.home-workspaces { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; gap: 18px !important; }
.home-workspaces > .home-space[hidden],
.home-space [hidden] { display: none !important; }
.home-space-commerce { grid-column: span 7; order: 1; }
.home-space-management { grid-column: span 5; order: 2; }
.home-space-logistics { grid-column: 1 / -1; order: 3; }
.home-space-pac { grid-column: 1 / -1; order: 4; }
.home-space-control { grid-column: span 7; order: 5; }
.home-space-products { grid-column: span 5; order: 6; }
.home-space-admin { grid-column: 1 / -1; order: 7; }
.home-space.tool { min-height: 280px; }
.home-space.tool.home-space-commerce,
.home-space.tool.home-space-control {
  border-color: transparent !important;
  color: #fff !important;
}
.home-space.tool.home-space-commerce { background: var(--nv-accent) !important; }
.home-space.tool.home-space-control { background: #1e293b !important; }
.home-space.tool.home-space-products { border-color: #c7d2fe !important; background: var(--nv-accent-soft) !important; }
.home-space.tool.home-space-logistics,
.home-space.tool.home-space-pac,
.home-space.tool.home-space-admin { background: var(--nv-surface) !important; }
.home-space.tool.home-space-management { border-color: #c4b5fd !important; background: linear-gradient(135deg, #f5f3ff, #ede9fe) !important; }
.home-space-management .tool-icon { border-color: #c4b5fd !important; color: #5b21b6 !important; background: #fff !important; }
.home-space-management h2 { color: #3b237a !important; }
.home-space-management .home-space-copy p { color: #635985 !important; }
.home-space-management .home-space-actions { border-top-color: #d8cff8; }
.home-space-management .home-space-actions .primary-tool-link { border-color: #6258e8 !important; color: #fff !important; background: #6258e8 !important; }
.home-space-management .home-space-actions .primary-tool-link > span:last-child { color: #fff; background: rgba(255,255,255,.18); }
.home-space-commerce .tool-icon,
.home-space-control .tool-icon {
  border-color: rgba(255,255,255,.3) !important;
  color: #fff !important;
  background: rgba(255,255,255,.14) !important;
}
.home-space-commerce .home-space-eyebrow,
.home-space-control .home-space-eyebrow { color: #c7d2fe !important; }
.home-space-commerce h2,
.home-space-control h2 { color: #fff !important; }
.home-space-commerce .home-space-copy p,
.home-space-control .home-space-copy p { color: #e0e7ff !important; }
.home-space-commerce .home-space-actions,
.home-space-control .home-space-actions { border-top-color: rgba(255, 255, 255, .2); }
.home-space-commerce .home-space-actions a,
.home-space-control .home-space-actions a {
  border-color: rgba(255,255,255,.34) !important;
  color: #fff !important;
  background: transparent !important;
}
.home-space-commerce .home-space-actions .primary-tool-link,
.home-space-control .home-space-actions .primary-tool-link {
  border-color: #fff !important;
  color: var(--nv-accent-dark) !important;
  background: #fff !important;
}
.home-space-commerce .home-space-actions .primary-tool-link > span:last-child,
.home-space-control .home-space-actions .primary-tool-link > span:last-child {
  color: var(--nv-accent-dark);
  background: var(--nv-accent-soft);
}
.home-space-commerce .home-space-actions .secondary-tool-link > span:last-child,
.home-space-control .home-space-actions .secondary-tool-link > span:last-child {
  color: #fff;
  background: rgba(255, 255, 255, .14);
}
.home-space-control .home-space-actions .primary-tool-link { color: var(--nv-sidebar) !important; }
.home-space-commerce:hover { border-color: #818cf8 !important; }
.home-space-control:hover { border-color: #475569 !important; }
.home-space-logistics,
.home-space-pac,
.home-space-admin {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr) minmax(360px, auto) !important;
  min-height: 0 !important;
  align-items: center !important;
}
.home-space-logistics .home-space-actions,
.home-space-pac .home-space-actions,
.home-space-admin .home-space-actions { grid-column: 3; padding: 0; border-top: 0; }
.home-space-admin .home-space-actions a { white-space: nowrap; }

/* Accueil : palette métier distincte pour identifier chaque univers. */
.home-space-commerce,
body[data-nv-space="commerce"] {
  --space-accent: #16a34a;
  --space-card-bg: linear-gradient(145deg, #effdf4 0%, #c7f4d6 100%);
  --space-card-border: #86efac;
  --space-card-ink: #14532d;
  --space-card-muted: #166534;
}
.home-space-logistics,
body[data-nv-space="logistics"] {
  --space-accent: #d97706;
  --space-card-bg: linear-gradient(145deg, #fff9df 0%, #fde9a9 100%);
  --space-card-border: #facc15;
  --space-card-ink: #713f12;
  --space-card-muted: #854d0e;
}
.home-space-pac,
body[data-nv-space="pac"] {
  --space-accent: #dc2626;
  --space-card-bg: linear-gradient(145deg, #991b1b 0%, #dc2626 100%);
  --space-card-border: #ef4444;
  --space-card-ink: #ffffff;
  --space-card-muted: #fee2e2;
}
.home-space-control,
body[data-nv-space="control"] {
  --space-accent: #0284c7;
  --space-card-bg: linear-gradient(145deg, #eaf8ff 0%, #c9eaff 100%);
  --space-card-border: #7dd3fc;
  --space-card-ink: #0c4a6e;
  --space-card-muted: #075985;
}
.home-space-products,
body[data-nv-space="products"] {
  --space-accent: #7e22ce;
  --space-card-bg: linear-gradient(145deg, #f8f0ff 0%, #ead7ff 100%);
  --space-card-border: #d8b4fe;
  --space-card-ink: #581c87;
  --space-card-muted: #6b21a8;
}
.home-space-management,
body[data-nv-space="management"] {
  --space-accent: #166534;
  --space-card-bg: linear-gradient(145deg, #123b24 0%, #287346 100%);
  --space-card-border: #2f855a;
  --space-card-ink: #ffffff;
  --space-card-muted: #dcfce7;
}
.home-space-admin,
body[data-nv-space="admin"] {
  --space-accent: #111827;
  --space-card-bg: linear-gradient(145deg, #080b11 0%, #252d3a 100%);
  --space-card-border: #374151;
  --space-card-ink: #ffffff;
  --space-card-muted: #d1d5db;
}
.home-space.tool.home-space-commerce,
.home-space.tool.home-space-logistics,
.home-space.tool.home-space-pac,
.home-space.tool.home-space-control,
.home-space.tool.home-space-products,
.home-space.tool.home-space-management,
.home-space.tool.home-space-admin {
  border-color: var(--space-card-border) !important;
  color: var(--space-card-ink) !important;
  background: var(--space-card-bg) !important;
}
.home-space.tool:hover { border-color: var(--space-accent) !important; }
.home-space .tool-icon {
  border-color: color-mix(in srgb, var(--space-accent) 45%, transparent) !important;
  color: var(--space-accent) !important;
  background: rgba(255, 255, 255, .82) !important;
}
.home-space h2 { color: var(--space-card-ink) !important; }
.home-space .home-space-copy p { color: var(--space-card-muted) !important; }
.home-space .home-space-actions { border-top-color: color-mix(in srgb, var(--space-card-border) 75%, transparent); }
.home-space .home-space-actions a {
  border-color: color-mix(in srgb, var(--space-accent) 32%, white) !important;
  color: var(--space-card-ink) !important;
  background: rgba(255, 255, 255, .76) !important;
}
.home-space .home-space-actions .primary-tool-link {
  border-color: var(--space-accent) !important;
  color: #fff !important;
  background: var(--space-accent) !important;
}
.home-space-management .tool-icon,
.home-space-pac .tool-icon,
.home-space-admin .tool-icon {
  border-color: rgba(255, 255, 255, .34) !important;
  color: #fff !important;
  background: rgba(255, 255, 255, .12) !important;
}
.home-space-management .home-space-actions,
.home-space-pac .home-space-actions,
.home-space-admin .home-space-actions { border-top-color: rgba(255, 255, 255, .22); }
.home-space-management .home-space-actions a,
.home-space-pac .home-space-actions a,
.home-space-admin .home-space-actions a {
  border-color: rgba(255, 255, 255, .36) !important;
  color: #fff !important;
  background: rgba(255, 255, 255, .08) !important;
}
.home-space-management .home-space-actions .primary-tool-link,
.home-space-pac .home-space-actions .primary-tool-link,
.home-space-admin .home-space-actions .primary-tool-link {
  border-color: #fff !important;
  color: var(--space-accent) !important;
  background: #fff !important;
}
.home-space-management .home-space-actions .secondary-tool-link > span:last-child,
.home-space-pac .home-space-actions .secondary-tool-link > span:last-child,
.home-space-admin .home-space-actions .secondary-tool-link > span:last-child {
  color: #fff;
  background: rgba(255, 255, 255, .14);
}
.home-space .home-space-actions a.is-access-locked {
  border-color: #cbd5e1 !important;
  color: #64748b !important;
  background: #e5e7eb !important;
  box-shadow: none !important;
  filter: grayscale(1);
  opacity: .82;
  cursor: not-allowed;
}
.home-space .home-space-actions a.is-access-locked > span:last-child {
  color: #64748b !important;
  background: #cbd5e1 !important;
}
.home-space.tool.is-access-locked {
  border-color: #cbd5e1 !important;
  color: #475569 !important;
  background: linear-gradient(145deg, #f1f5f9 0%, #d8dee7 100%) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.06) !important;
  filter: grayscale(1);
}
.home-space.tool.is-access-locked:hover { border-color: #94a3b8 !important; transform: none; }
.home-space.tool.is-access-locked .tool-icon {
  border-color: #cbd5e1 !important;
  color: #64748b !important;
  background: rgba(255,255,255,.72) !important;
}
.home-space.tool.is-access-locked h2 { color: #475569 !important; }
.home-space.tool.is-access-locked .home-space-copy p { color: #64748b !important; }
.home-space.tool.is-access-locked .home-space-actions { border-top-color: #cbd5e1 !important; }
.forecast-kpis .forecast-kpi-primary .forecast-kpi-label,
.forecast-kpis .forecast-kpi-primary small,
.forecast-summary-card .forecast-summary-label { color: #c7d2fe !important; }

/* Commerce : formulaires solides et champs évidents. */
.sales-entry-page > header { border-bottom: 1px solid var(--nv-sidebar-line) !important; color: #fff !important; background: var(--nv-sidebar) !important; box-shadow: none !important; }
.sales-entry-page > header h1 { color: #fff !important; }
.sales-entry-page .logo-mark { border: 1px solid #6366f1 !important; border-radius: 16px !important; color: #fff !important; background: var(--nv-accent) !important; box-shadow: none !important; }
.sales-entry-page .form-card { padding: 22px !important; }
.sales-entry-page .form-card h2 { margin-bottom: 17px !important; font-size: 21px !important; }
.sales-entry-page .products-grid { gap: 12px !important; }
.sales-entry-page .product-row { border: 1px solid var(--nv-line) !important; border-radius: 14px !important; background: var(--nv-surface-alt) !important; box-shadow: none !important; }
.sales-entry-page .add-product-button { border: 1px solid var(--nv-line-strong) !important; color: var(--nv-accent-dark) !important; background: #fff !important; }
.sales-entry-page .submit-zone { border: 1px solid var(--nv-line) !important; border-radius: var(--nv-radius-lg) !important; background: #fff !important; box-shadow: var(--nv-shadow) !important; }

/* Saisie des ventes — parcours de saisie plus lisible */
.sales-entry-page {
  color: #0f172a;
  background: #edf1f7 !important;
}
.sales-entry-page main > .container {
  max-width: 1180px;
}
.sales-entry-page #saleForm {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 18px;
  padding-block: 28px 54px;
}
.sales-entry-page .sales-client-card,
.sales-entry-page .sales-payment-card,
.sales-entry-page .submit-zone {
  grid-column: 1 / -1;
}
.sales-entry-page .product-section {
  grid-column: span 4;
}
.sales-entry-page .sales-products-card {
  grid-column: 1 / -1;
}
.sales-entry-page .sales-delivery-card {
  grid-column: 1 / -1;
}
.sales-entry-page .sales-note-card {
  grid-column: 1 / -1;
}
.sales-entry-page .form-card {
  margin: 0 !important;
  padding: 28px !important;
  border: 1px solid #b8c3d3 !important;
  background: #fff !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08) !important;
}
.sales-entry-page .form-card h2 {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 22px !important;
  font-size: 25px !important;
  color: #111827 !important;
  font-weight: 900 !important;
  line-height: 1.15;
}
.sales-entry-page .form-card h2::before {
  width: 6px;
  height: 25px;
  border-radius: 999px;
  background: var(--nv-accent);
  content: "";
}
.sales-entry-page .field,
.sales-entry-page .product-choice-field {
  display: grid;
  min-width: 0;
  gap: 7px;
}
.sales-entry-page .field label,
.sales-entry-page .product-choice-field > span,
.sales-entry-page .product-choice-field > label {
  color: #1e293b !important;
  font-size: 16px !important;
  font-weight: 900 !important;
}
.sales-entry-page input,
.sales-entry-page select,
.sales-entry-page textarea {
  min-height: 56px !important;
  padding: 13px 15px !important;
  border: 2px solid #94a3b8 !important;
  color: #0f172a !important;
  background: #fff !important;
  font-size: 17px !important;
  font-weight: 700;
}
.sales-entry-page input::placeholder,
.sales-entry-page textarea::placeholder {
  color: #64748b;
  opacity: 1;
}
.sales-entry-page input:focus,
.sales-entry-page select:focus,
.sales-entry-page textarea:focus {
  border-color: #4f46e5 !important;
  outline: 3px solid rgba(79, 70, 229, .2) !important;
  outline-offset: 1px;
}
.sales-entry-page input[readonly] {
  color: var(--nv-accent-dark) !important;
  background: var(--nv-accent-soft) !important;
  font-weight: 850;
}
.sales-entry-page .sales-client-card .form-grid {
  grid-template-columns: minmax(180px, .7fr) minmax(220px, .9fr) minmax(300px, 1.4fr);
}
.sales-entry-page .sales-delivery-card .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sales-entry-page .loan-mattress-field small {
  color: #64748b;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}
.sales-entry-page .sales-payment-card .form-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.sales-entry-page .products-loading {
  margin: 0;
  color: #475569 !important;
  font-size: 14px;
  font-weight: 750;
}
.sales-entry-page .sales-products-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.sales-entry-page .sales-products-heading h2 {
  margin-bottom: 0 !important;
}
.sales-entry-page .sales-products-hint {
  margin: 10px 0 20px;
  color: #475569;
  font-size: 15px;
  font-weight: 700;
}
.sales-entry-page .products-grid {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}
.sales-entry-page .product-row {
  display: grid;
  grid-template-columns: minmax(320px, 2fr) auto minmax(190px, .8fr) auto auto;
  align-items: end;
  gap: 12px;
  padding: 14px;
  border-color: #c1cada !important;
  background: #f1f4f9 !important;
}
.sales-entry-page .product-row:has(.item-color-select) {
  grid-template-columns: minmax(320px, 2fr) auto minmax(190px, .8fr) auto auto;
}
.sales-entry-page .product-row select,
.sales-entry-page .product-row .product-search {
  width: 100%;
}
.sales-entry-page .product-search-field {
  position: relative;
}
.sales-entry-page .product-search-results {
  position: absolute;
  z-index: 30;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  max-height: 360px;
  overflow-y: auto;
  padding: 7px;
  border: 1px solid #aeb9c9;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
}
.sales-entry-page .product-search-results[hidden],
.sales-entry-page .product-category-badge[hidden],
.sales-entry-page .product-color-field[hidden],
.sales-entry-page .accessory-received-field[hidden] {
  display: none !important;
}
.sales-entry-page .product-search-option {
  display: flex;
  width: 100%;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 11px;
  border: 0;
  border-radius: 9px;
  color: #172033;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.sales-entry-page .product-search-option:hover,
.sales-entry-page .product-search-option.is-active {
  color: #312e81;
  background: #eef2ff;
}
.sales-entry-page .product-search-option-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.sales-entry-page .product-search-option-copy strong {
  overflow: hidden;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sales-entry-page .product-search-option-copy small {
  overflow: hidden;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sales-entry-page .product-search-option-category,
.sales-entry-page .product-category-badge {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid #c7d2fe;
  border-radius: 999px;
  color: #3730a3;
  background: #eef2ff;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.sales-entry-page .product-category-badge {
  align-self: end;
  margin-bottom: 10px;
}
.sales-entry-page .product-search-empty {
  margin: 0;
  padding: 15px 12px;
  color: #64748b;
  font-size: 14px;
  font-weight: 750;
}
.sales-entry-page .product-row .product-search {
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #aeb9c9 !important;
  border-radius: 9px !important;
  color: #172033 !important;
  background: #fff !important;
  font: inherit;
  font-size: 16px;
  box-shadow: none !important;
}
.sales-entry-page .product-row .product-search:focus {
  border-color: var(--nv-accent) !important;
  outline: 3px solid color-mix(in srgb, var(--nv-accent) 18%, transparent) !important;
  outline-offset: 1px;
}
.sales-entry-page .product-row .item-color-select,
.sales-entry-page .product-row .fitted-sheet-color-select {
  background: #fff !important;
}
.sales-entry-page .product-color-field { grid-column: 3; }
.sales-entry-page .accessory-received-field {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  cursor: pointer;
}
.sales-entry-page .accessory-received-field { grid-column: 4; }
.sales-entry-page .accessory-received-field .accessory-received-checkbox {
  width: 22px;
  height: 22px;
  min-height: 22px !important;
  margin: 0;
  padding: 0 !important;
  border: 2px solid #64748b !important;
  accent-color: var(--nv-accent);
  cursor: pointer;
}
.sales-entry-page .accessory-received-field > span {
  color: #334155 !important;
  font-size: 15px !important;
  font-weight: 850 !important;
}
.sales-entry-page .product-row.is-client-received {
  border-color: #86efac !important;
  background: #f0fdf4 !important;
}
.sales-entry-page .product-row.is-client-received .accessory-received-field > span {
  color: #166534 !important;
}
.sales-entry-page .remove-product-button {
  grid-column: 5;
  width: auto;
  min-width: 92px;
  height: 48px;
  padding: 0 12px;
  border: 2px solid #fca5a5 !important;
  border-radius: 11px !important;
  color: #991b1b !important;
  background: #fff1f2 !important;
  font-size: 14px;
  font-weight: 850;
}
.sales-entry-page .add-product-button {
  width: 100%;
  min-height: 46px;
  margin-top: 12px;
  padding: 10px 14px;
  font-size: 15px;
  border: 2px solid #818cf8 !important;
  color: #3730a3 !important;
  background: #eef2ff !important;
  font-weight: 900;
}
.sales-entry-page .money-entry-field {
  min-height: 56px;
  border: 2px solid #94a3b8;
  border-radius: 12px;
}
.sales-entry-page .money-entry-field:focus-within {
  border-color: #4f46e5;
  outline: 3px solid rgba(79, 70, 229, .2);
  outline-offset: 1px;
}
.sales-entry-page .money-entry-field input,
.sales-entry-page .money-entry-field input:focus {
  border: 0 !important;
  outline: 0 !important;
}
.sales-entry-page .money-entry-field span {
  color: #3730a3;
  background: #e0e7ff;
  font-weight: 900;
}
.sales-entry-page .sales-note-card textarea {
  min-height: 128px !important;
}
.sales-entry-page .submit-zone {
  position: sticky;
  z-index: 8;
  bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px !important;
  text-align: left;
  border-color: #a5b4fc !important;
  box-shadow: 0 12px 30px rgba(49, 46, 129, .14) !important;
}
.sales-entry-page .submit-button {
  min-width: 270px;
  min-height: 54px;
  font-size: 16px;
  background: #4f46e5 !important;
  box-shadow: 0 7px 16px rgba(79, 70, 229, .25) !important;
}
.sales-entry-page #message {
  flex: 1;
  margin: 0;
  font-size: 15px;
}
@media (max-width: 1050px) {
  .sales-entry-page .product-section,
  .sales-entry-page .sales-delivery-card,
  .sales-entry-page .sales-note-card {
    grid-column: span 6;
  }
  .sales-entry-page .sales-products-card {
    grid-column: 1 / -1;
  }
  .sales-entry-page .sales-delivery-card,
  .sales-entry-page .sales-note-card {
    grid-column: 1 / -1;
  }
  .sales-entry-page .product-row,
  .sales-entry-page .product-row:has(.item-color-select) {
    grid-template-columns: 1fr;
  }
  .sales-entry-page .product-color-field,
  .sales-entry-page .accessory-received-field,
  .sales-entry-page .remove-product-button {
    grid-column: auto;
    grid-row: auto;
  }
  .sales-entry-page .product-category-badge { justify-self: start; margin: 0; }
  .sales-entry-page .remove-product-button { width: 100%; }
  .sales-entry-page .sales-payment-card .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .sales-entry-page #saleForm {
    gap: 14px;
    padding-block: 18px 34px;
  }
  .sales-entry-page .form-card {
    padding: 22px 18px !important;
  }
  .sales-entry-page .product-section,
  .sales-entry-page .sales-delivery-card,
  .sales-entry-page .sales-note-card {
    grid-column: 1 / -1;
  }
  .sales-entry-page .sales-client-card .form-grid,
  .sales-entry-page .sales-delivery-card .form-grid,
  .sales-entry-page .sales-payment-card .form-grid,
  .sales-entry-page .product-row,
  .sales-entry-page .product-row:has(.item-color-select) {
    grid-template-columns: 1fr;
  }
  .sales-entry-page .sales-products-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .sales-entry-page .product-category-badge {
    justify-self: start;
    margin: 0;
  }
  .sales-entry-page .product-color-field,
  .sales-entry-page .accessory-received-field,
  .sales-entry-page .remove-product-button {
    grid-column: auto;
    grid-row: auto;
  }
  .sales-entry-page .remove-product-button {
    width: 100%;
  }
  .sales-entry-page .submit-zone {
    position: static;
    align-items: stretch;
    flex-direction: column;
  }
  .sales-entry-page .submit-button {
    width: 100%;
    min-width: 0;
  }
}

/* Connexion */
.login-page { background: var(--nv-bg) !important; }
.login-container { background: transparent !important; }
.login-box { border: 1px solid var(--nv-line) !important; border-radius: 24px !important; background: #fff !important; background-image: none !important; box-shadow: 0 24px 70px rgba(15, 23, 42, .12) !important; }
.login-box::before, .login-box::after { content: none !important; }
.login-subtitle { color: var(--nv-muted) !important; }

/* Connexion — lisibilité renforcée, identité d’origine conservée */
.login-page .login-box {
  width: min(470px, 100%) !important;
  padding: 46px 48px 42px !important;
}
.login-page .login-box h1 {
  font-size: 38px;
}
.login-page .login-subtitle {
  margin-bottom: 36px !important;
  color: var(--nv-ink) !important;
  font-size: clamp(23px, 3vw, 27px) !important;
  font-weight: 800;
  letter-spacing: .015em;
}
.login-page .form-group {
  margin-bottom: 24px;
}
.login-page .form-group label {
  margin-bottom: 9px;
  font-size: 16px;
}
.login-page .form-group input {
  min-height: 52px;
  padding: 14px 16px;
  border-color: var(--nv-line-strong);
  border-radius: 12px;
  background: var(--nv-surface-alt);
  font-family: var(--nv-font);
  font-size: 17px;
}
.login-page .password-input-wrap {
  position: relative;
}
.login-page .password-input-wrap input {
  padding-right: 102px;
}
.login-page .password-toggle {
  position: absolute;
  top: 50%;
  right: 7px;
  min-height: 38px;
  padding: 7px 11px;
  border: 0 !important;
  border-radius: 9px !important;
  color: var(--nv-accent-dark) !important;
  background: transparent !important;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transform: translateY(-50%) !important;
}
.login-page .password-toggle:hover {
  background: var(--nv-accent-soft) !important;
}
.login-page .login-button {
  min-height: 52px;
  font-size: 17px;
}
.login-page .login-message {
  font-size: 16px;
}
.login-page > footer {
  font-size: 15px;
}
@media (max-width: 500px) {
  .login-page .login-box {
    padding: 34px 24px 30px !important;
  }
}

/* Espace personnel : même grille et mêmes surfaces que les modules métier. */
.account-topbar,
.dashboard-v3 .dashboard-topbar-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.account-topbar { margin-bottom: 22px; }
.account-topbar h1 { margin: 4px 0 0; font-size: clamp(34px, 4vw, 50px); }
.dashboard-v3 .dashboard-topbar-actions { align-items: flex-end; justify-content: flex-end; gap: 10px; }
.dashboard-v3 .dashboard-pdf-button { min-height: 44px; padding: 0 15px; white-space: nowrap; }
.account-period-form { flex: 0 0 auto; }
.account-identity-card {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid var(--nv-line);
  border-radius: var(--nv-radius);
  background: var(--nv-surface);
  box-shadow: var(--nv-shadow);
}
.account-large-avatar {
  display: grid;
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 1px solid var(--nv-line-strong);
  border-radius: 16px;
  color: #fff;
  background: var(--nv-accent);
  box-shadow: none;
  font-size: 23px;
  font-weight: 900;
}
.account-identity-copy { min-width: 0; }
.account-role-badge {
  display: inline-flex;
  padding: 5px 8px;
  border-radius: 999px;
  color: var(--nv-accent-dark);
  background: var(--nv-accent-soft);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.account-identity-copy h2 { margin: 7px 0 3px; font-size: 23px; }
.account-identity-copy p { margin: 0; color: var(--nv-muted); font-size: 11px; }
.account-access-list { display: flex; flex: 1; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.account-access-list span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 0 9px;
  border: 1px solid var(--nv-line);
  border-radius: 999px;
  color: var(--nv-muted);
  background: var(--nv-surface-alt);
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}
.account-content { display: grid; gap: 18px; }
.account-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.account-kpis article {
  display: grid;
  min-height: 132px;
  align-content: start;
  padding: 18px;
  border: 1px solid var(--nv-line);
  border-radius: var(--nv-radius);
  background: var(--nv-surface);
  box-shadow: var(--nv-shadow);
}
.account-kpis article > span { color: var(--nv-muted); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.account-kpis article > strong { margin-top: 14px; color: var(--nv-ink); font-size: clamp(27px, 3vw, 38px); line-height: 1; }
.account-kpis article > small { align-self: end; margin-top: 13px; color: var(--nv-muted); font-size: 10px; }
.account-performance-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, .7fr); gap: 18px; }
.personal-monthly-chart {
  display: grid;
  height: 260px;
  grid-template-columns: repeat(12, minmax(24px, 1fr));
  align-items: end;
  gap: 8px;
  padding: 20px 8px 4px;
  border-bottom: 1px solid var(--nv-line);
  background: var(--nv-surface);
}
.personal-month-bar { display: grid; height: 100%; grid-template-rows: 1fr 22px; align-items: end; gap: 7px; }
.personal-month-bar > span { display: block; width: min(28px, 76%); justify-self: center; border-radius: 5px 5px 2px 2px; background: var(--nv-accent); transition: height .3s ease; }
.personal-month-bar > span.is-active { background: var(--nv-accent-dark); }
.personal-month-bar small { color: var(--nv-muted); font-size: 9px; text-align: center; }
.account-target-card { display: flex; align-items: center; flex-direction: column; text-align: center; }
.account-target-card .panel-overline { align-self: stretch; text-align: left; }
.account-target-ring {
  position: relative;
  display: grid;
  width: 150px;
  height: 150px;
  place-items: center;
  margin: 24px auto 17px;
  border-radius: 50%;
  background: conic-gradient(var(--nv-accent) var(--target-progress, 0deg), var(--nv-accent-soft) 0);
}
.account-target-ring::before { position: absolute; width: 116px; height: 116px; border-radius: 50%; background: var(--nv-surface); content: ""; }
.account-target-ring div { position: relative; z-index: 1; display: grid; }
.account-target-ring strong { font-size: 28px; }
.account-target-ring span { color: var(--nv-muted); font-size: 9px; text-transform: uppercase; }
.account-target-card > p { margin: 0; color: var(--nv-muted); font-size: 10px; }
.account-target-card > strong { margin-top: 5px; font-size: 19px; }
.account-target-card > small { margin-top: 9px; color: var(--nv-muted); font-size: 10px; line-height: 1.45; }
.account-settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.account-form { display: grid; gap: 12px; }
.account-form label:not(.account-check) { display: grid; gap: 6px; color: var(--nv-muted); font-size: 10px; font-weight: 800; }
.account-form input[type="color"] { width: 100%; height: 48px; padding: 4px !important; }
.account-check { display: flex; align-items: flex-start; gap: 9px; color: var(--nv-muted); font-size: 10px; line-height: 1.4; }
.account-form-message { min-height: 17px; margin: 0; color: var(--nv-muted); font-size: 10px; font-weight: 800; }
.account-ranking { display: grid; gap: 15px; color: var(--nv-muted); font-size: 10px; }
.account-ranking-item { display: grid; gap: 7px; }
.account-ranking-item > div:first-child { display: flex; justify-content: space-between; gap: 12px; color: var(--nv-muted); }
.account-ranking-item > div:last-child { height: 6px; overflow: hidden; border-radius: 99px; background: var(--nv-accent-soft); }
.account-ranking-item > div:last-child span { display: block; height: 100%; border-radius: inherit; background: var(--nv-accent); }

/* Neutralisation complète des anciennes palettes par module. */
.database-console .user-admin-row,
.database-console .information-admin-row,
.database-console .user-audit-item,
.database-console .user-active-toggle,
.database-console .user-access-fieldset,
.database-console .information-audience-fieldset,
.database-console .user-access-grid label,
.database-console .information-role-grid label,
.database-console .information-user-choices label,
.database-console .product-extra-details,
.database-console .user-performance-button {
  border-color: var(--nv-line) !important;
  border-radius: 12px !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  background-image: none !important;
  box-shadow: none !important;
}
.database-console .user-performance-button {
  display: grid !important;
  width: 100% !important;
  min-height: 0 !important;
  justify-items: start;
  gap: 2px;
  padding: 6px 8px !important;
  text-align: left;
}
.database-console .user-performance-action {
  display: block;
  font-size: 10px !important;
  white-space: nowrap;
}
.database-console .user-admin-row:hover,
.database-console .information-admin-row:hover,
.database-console .user-performance-button:hover {
  border-color: #c7d2fe !important;
  background: var(--nv-accent-soft) !important;
}
.database-console .user-admin-row.is-selected {
  border-color: #a5b4fc !important;
  background: var(--nv-accent-soft) !important;
  box-shadow: inset 4px 0 0 var(--nv-accent) !important;
}
.database-console .user-admin-row {
  grid-template-columns: minmax(220px, 1.7fr) minmax(105px, .7fr) minmax(190px, 1.3fr) minmax(120px, .75fr) minmax(125px, .8fr) auto !important;
}
.database-console .sale-options-groups { grid-template-columns: 1fr !important; }
.database-console .user-current-badge,
.database-console .user-admin-role > span,
.database-console .user-admin-access span,
.database-console .information-state-badge {
  border: 1px solid var(--nv-line) !important;
  border-radius: 999px !important;
  color: var(--nv-muted) !important;
  background: var(--nv-surface-alt) !important;
}
.database-console .user-current-badge,
.database-console .user-admin-role > span[data-role="manager"],
.database-console .user-admin-role > span[data-role="admin"],
.database-console .information-state-badge[data-state="scheduled"] {
  border-color: #c7d2fe !important;
  color: var(--nv-accent-dark) !important;
  background: var(--nv-accent-soft) !important;
}
.database-console .information-admin-marker { border-radius: 11px !important; background: var(--nv-accent) !important; }
.database-console .user-admin-identity strong,
.database-console .information-admin-copy strong { color: var(--nv-ink) !important; font-size: 14px !important; }
.database-console .user-admin-identity small,
.database-console .user-admin-performance small,
.database-console .user-admin-connection span,
.database-console .user-admin-connection small,
.database-console .information-admin-copy p,
.database-console .information-admin-details span,
.database-console .information-admin-period span,
.database-console .user-audit-item small { color: var(--nv-muted) !important; font-size: 12px !important; }
.database-console .user-admin-role > span,
.database-console .user-admin-access span,
.database-console .information-state-badge { font-size: 10px !important; }
.database-console .user-audit-item > span { color: var(--nv-success) !important; background: var(--nv-success-soft) !important; }
.database-console .user-audit-item strong { color: var(--nv-ink) !important; font-size: 13px !important; }
.database-console option,
.db-admin-page option { color: var(--nv-ink) !important; background: #fff !important; }
.database-console .user-password-reset,
.db-admin-page .db-admin-warning {
  border-color: #fde68a !important;
  border-left-color: #f59e0b !important;
  border-radius: 14px !important;
  color: #92400e !important;
  background: var(--nv-warning-soft) !important;
}
.database-console .user-password-reset strong,
.db-admin-page .db-admin-warning strong { color: #78350f !important; }
.database-console .product-reference-workspace > .product-cell-name,
.database-console .product-reference-code .product-cell-sku,
.database-console .product-cell-menu { color: var(--nv-ink) !important; background: #fff !important; }
.database-console .product-cascade-note {
  border-color: #c7d2fe !important;
  border-left-color: var(--nv-accent) !important;
  border-radius: 14px !important;
  color: var(--nv-muted) !important;
  background: var(--nv-accent-soft) !important;
}
.database-console .product-cascade-note > span:first-child {
  border-radius: 10px !important;
  color: var(--nv-accent-dark) !important;
  background: #fff !important;
}
.database-console .product-reference-code > span,
.database-console .product-extra-field > span,
.database-console .product-classification-field > span { color: var(--nv-muted) !important; }
.database-console .product-extra-details > summary,
.database-console .product-usage strong,
.database-console .user-performance-action { color: var(--nv-accent-dark) !important; }
.database-console .product-money-field { border-color: var(--nv-line-strong) !important; border-radius: 12px !important; }
.database-console .product-money-field > span { color: var(--nv-accent-dark) !important; background: var(--nv-accent-soft) !important; }
.database-console .product-status-badge { border-radius: 999px !important; }
.database-console .dashboard-status-error,
.database-console .user-sales-status[data-tone="error"],
.db-admin-page .db-status[data-tone="error"],
.database-console .product-status[data-tone="error"] {
  border-color: #fecaca !important;
  color: var(--nv-danger) !important;
  background: var(--nv-danger-soft) !important;
}
.database-console .dashboard-status[data-tone="success"],
.db-admin-page .db-status[data-tone="success"],
.database-console .product-status[data-tone="success"] {
  border-color: #a7f3d0 !important;
  color: var(--nv-success) !important;
  background: var(--nv-success-soft) !important;
}

.logistics-console .logistics-source-note,
.logistics-console .logistics-reference-preview,
.logistics-console .logistics-order-legend span,
.logistics-console .logistics-compact-item,
.logistics-console .logistics-line,
.logistics-console .logistics-stock-card,
.logistics-console .bulk-orders-table-wrap,
.logistics-console .unit-movement-kpis article,
.logistics-console .unit-movements-status,
.logistics-console .unit-movements-table-wrap {
  border-color: var(--nv-line) !important;
  border-radius: 14px !important;
  color: var(--nv-ink) !important;
  background: var(--nv-surface) !important;
  background-image: none !important;
  box-shadow: none !important;
}
.logistics-console .logistics-source-note {
  border-left-color: var(--nv-accent) !important;
  color: var(--nv-muted) !important;
  background: var(--nv-accent-soft) !important;
}
.logistics-console .logistics-source-note strong { color: var(--nv-accent-dark) !important; }
.logistics-console .logistics-reference-preview,
.logistics-console .logistics-order-legend span,
.logistics-console .logistics-line-availability,
.logistics-console .logistics-badge {
  border-color: var(--nv-line) !important;
  color: var(--nv-muted) !important;
  background: var(--nv-surface-alt) !important;
}
.logistics-console .logistics-badge[data-tone="success"],
.logistics-console .logistics-line-availability[data-tone="success"] { border-color: #a7f3d0 !important; color: var(--nv-success) !important; background: var(--nv-success-soft) !important; }
.logistics-console .logistics-badge[data-tone="warning"] { border-color: #fde68a !important; color: var(--nv-warning) !important; background: var(--nv-warning-soft) !important; }
.logistics-console .logistics-badge[data-tone="danger"],
.logistics-console .logistics-line-availability[data-tone="danger"] { border-color: #fecaca !important; color: var(--nv-danger) !important; background: var(--nv-danger-soft) !important; }
.logistics-console .logistics-order-meta .logistics-express-72h {
  border-color: #991b1b !important;
  color: #fff !important;
  background: #dc2626 !important;
  box-shadow: 0 0 0 2px rgba(220,38,38,.14), 0 4px 10px rgba(127,29,29,.2) !important;
  font-weight: 950 !important;
  letter-spacing: .045em;
}
.logistics-console .logistics-line[data-line-type="receipt"] {
  grid-template-columns: minmax(150px, .85fr) minmax(280px, 2fr) minmax(90px, .55fr) auto;
}
.logistics-console .logistics-line[data-line-type="receipt"].needs-color {
  grid-template-columns: minmax(135px, .75fr) minmax(230px, 1.6fr) minmax(140px, .8fr) minmax(82px, .45fr) auto;
}
.logistics-console .logistics-line[data-line-type="allocation"] {
  grid-template-columns: minmax(170px, 1.1fr) minmax(145px, .8fr) minmax(260px, 1.6fr) minmax(90px, .5fr) auto auto;
}
.logistics-console .logistics-line[data-line-type="allocation"].needs-color {
  grid-template-columns: minmax(150px, 1fr) minmax(130px, .7fr) minmax(210px, 1.35fr) minmax(135px, .75fr) minmax(82px, .45fr) auto auto;
}
.logistics-console .logistics-line-product select { font-weight: 750; }
.logistics-console .logistics-compact-item:hover { border-color: #c7d2fe !important; background: var(--nv-accent-soft) !important; }
.logistics-console .logistics-stock-card > div:first-child strong,
.logistics-console .logistics-stock-quantity strong,
.logistics-console .logistics-order-article strong,
.logistics-console .logistics-client-cell strong,
.logistics-console .logistics-delivery-cell strong { color: var(--nv-ink) !important; }
.logistics-console .logistics-stock-card > div:first-child span,
.logistics-console .logistics-stock-quantity span,
.logistics-console .logistics-order-article small { color: var(--nv-muted) !important; }
.logistics-console .logistics-color-cell,
.logistics-console .logistics-inline-feedback[data-tone="loading"] { color: var(--nv-accent) !important; }
.logistics-console .logistics-color-chip { color: var(--nv-accent-dark) !important; background: var(--nv-accent-soft) !important; }

.logistics-console .logistics-stock-anomalies {
  margin-bottom: 20px;
  padding: 18px;
  border: 2px solid #f59e0b;
  border-radius: 18px;
  background: #fffbeb;
}
.logistics-console .logistics-stock-anomalies-heading {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}
.logistics-console .logistics-stock-anomalies-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 13px;
  color: #fff;
  background: #d97706;
  font-size: 25px;
  font-weight: 900;
}
.logistics-console .logistics-stock-anomalies-heading h3 { margin: 1px 0 3px; color: #78350f; font-size: 21px; }
.logistics-console .logistics-stock-anomalies-heading p { margin: 0; color: #92400e; font-size: 14px; font-weight: 700; }
.logistics-console .logistics-stock-anomalies-heading > strong {
  min-width: 42px;
  padding: 8px 12px;
  border-radius: 999px;
  color: #fff;
  background: #b45309;
  text-align: center;
  font-size: 18px;
}
.logistics-console .logistics-stock-anomaly-list { display: grid; gap: 9px; }
.logistics-console .logistics-stock-anomaly-empty { margin: 0; padding: 12px 14px; border-radius: 12px; color: #166534; background: #f0fdf4; font-size: 14px; font-weight: 800; }
.logistics-console .logistics-stock-anomaly-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 280px) auto;
  align-items: end;
  gap: 12px;
  padding: 12px;
  border: 1px solid #fcd34d;
  border-radius: 13px;
  background: #fff;
}
.logistics-console .logistics-stock-anomaly-row > div { display: grid; gap: 3px; align-self: center; }
.logistics-console .logistics-stock-anomaly-row > div strong { color: #422006; font-size: 16px; }
.logistics-console .logistics-stock-anomaly-row > div span { color: #92400e; font-size: 13px; font-weight: 750; }
.logistics-console .logistics-stock-anomaly-row label { display: grid; gap: 5px; }
.logistics-console .logistics-stock-anomaly-row label > span { color: #78350f; font-size: 12px; font-weight: 850; text-transform: uppercase; }
.logistics-console .logistics-stock-anomaly-row select { min-height: 42px; border: 1px solid #d97706 !important; background: #fff !important; }

@media (max-width: 760px) {
  .logistics-console .logistics-stock-anomaly-row { grid-template-columns: 1fr; align-items: stretch; }
  .logistics-console .logistics-stock-anomalies-heading { grid-template-columns: 44px minmax(0, 1fr); }
  .logistics-console .logistics-stock-anomalies-heading > strong { grid-column: 1 / -1; justify-self: start; }
}
.logistics-console .logistics-inline-date,
.logistics-console .logistics-followup-field select { border-color: var(--nv-line-strong) !important; }
.logistics-console option { color: var(--nv-ink) !important; background: #fff !important; }
.logistics-console .bulk-orders-table th,
.logistics-console .logistics-orders-table th,
.logistics-console .unit-movements-table th { border-color: var(--nv-line) !important; color: #475569 !important; background: var(--nv-surface-alt) !important; }
.logistics-console .bulk-orders-table td,
.logistics-console .unit-movements-table td { border-color: var(--nv-line) !important; color: var(--nv-ink) !important; background: #fff !important; }

.sales-table-page .sales-table-count {
  border: 1px solid #c7d2fe !important;
  border-radius: 999px !important;
  color: var(--nv-accent-dark) !important;
  background: var(--nv-accent-soft) !important;
}
.sales-table-page .sales-table-toolbar input,
.sales-table-page .sales-table-toolbar select {
  border-color: var(--nv-line-strong) !important;
  border-radius: 12px !important;
  color: var(--nv-ink) !important;
  background: #fff !important;
}
.sales-table-page .sales-money-cell,
.sales-table-page .sales-sort-button.is-active { color: var(--nv-accent-dark) !important; }
.sales-table-page .sales-reference-list > span { border-color: var(--nv-line) !important; }
.sales-table-page .sales-reference-list strong { color: var(--nv-ink) !important; }
.sales-table-page .sales-reference-list small,
.sales-table-page .sales-reference-empty,
.sales-table-page .sales-table-empty { color: var(--nv-muted) !important; }
.sales-table-page .sales-ledger-table tbody tr:nth-child(even) td { background: var(--nv-surface-alt) !important; }
.sales-table-page .sales-ledger-table tbody tr:hover td { background: var(--nv-accent-soft) !important; }

/* Indicateurs contextuels */
.logistics-badge, .product-status-badge, .trend-pill {
  border-radius: 999px !important;
  box-shadow: none !important;
}
.is-positive, [data-tone="success"] { color: var(--nv-success) !important; }
.is-negative, [data-tone="danger"] { color: var(--nv-danger) !important; }
.logistics-row-button.is-stock-ready {
  border-color: #b8d5c9 !important;
  color: var(--nv-success) !important;
  background: var(--nv-success-soft) !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  animation: none !important;
}
.logistics-row-button.is-stock-ready::after { content: none !important; animation: none !important; }

/* Transition d’univers : un repère de trajectoire, pas une animation décorative. */

/* Écrans de chargement communs à tous les univers. */
.system-loading-screen { background: var(--loader-surface) !important; }
.system-loading-screen::before { content: none !important; background-image: none !important; }
.system-loading-core { border: 0 !important; background: transparent !important; box-shadow: none !important; }
.system-loading-monogram { border-color: var(--loader-mark-border); border-radius: 14px; color: transparent; background: var(--loader-mark-bg); box-shadow: none; }
.system-loading-label { color: #a5b4fc !important; }
.system-loading-track { background: #1e293b !important; }
.system-loading-track::after { background: #6366f1 !important; }

@media (max-width: 980px) {
  .home-command-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-command-bar {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 1;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 16px 22px;
  }
  .home-brand { justify-content: flex-start; }
  .home-welcome { grid-column: 1 / -1; grid-row: 2; align-items: flex-start; padding-top: 12px; text-align: left; }
  .home-command-actions { grid-column: 2; grid-row: 1; }
  .dashboard-v3 .dashboard-shell { grid-template-columns: 1fr; }
  .dashboard-v3 .dashboard-sidebar { padding: 14px 18px; }
  .dashboard-sidebar { border-radius: 0 !important; }
  .selection-command-bar { align-items: stretch; flex-direction: column; }
  .selection-command-bar > p { margin: 0 0 4px; }
  .selection-command-bar button { width: 100%; }
  .home-workspaces { grid-template-columns: 1fr !important; }
  .home-offer-card { grid-column: 1 / -1 !important; }
  .home-offer-score { grid-template-columns: 130px 130px minmax(300px, 1fr); }
  .home-space-commerce,
  .home-space-logistics,
  .home-space-pac,
  .home-space-management,
  .home-space-control,
  .home-space-products,
  .home-space-admin { grid-column: 1 !important; }
  .account-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-performance-grid, .account-settings-grid { grid-template-columns: 1fr; }
  .database-console .user-admin-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
  .database-console .user-admin-identity { grid-column: 1; }
  .database-console .user-admin-role { grid-column: 2; }
  .database-console .user-admin-access,
  .database-console .user-configure-button { grid-column: 1 / -1 !important; }
}

@media (max-width: 760px) {
  body { font-size: 15px; }
  th { font-size: 12px !important; }
  td { font-size: 15px !important; }
  .dashboard-main { padding-inline: 14px !important; }
  .bulk-work-grid, .bulk-work-grid.is-compact { grid-template-columns: 1fr; }
  .home-space-actions { align-items: stretch; flex-direction: column; }
  .home-space-actions-triple { display: flex !important; }
  .home-space-actions a { width: 100%; }
  .home-offer-heading { display: grid; grid-template-columns: 1fr auto; min-height: 0; padding: 8px 10px; }
  .home-offer-heading > div { position: static; grid-column: 1 / -1; width: auto; transform: none; }
  .home-offer-state, .home-offer-manage { width: auto; }
  .home-offer-state { grid-column: 1; text-align: center; }
  .home-offer-manage { grid-column: 2; }
  .home-offer-body { padding: 6px 10px 9px; }
  .home-offer-score { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-offer-progress-zone { grid-column: 1 / -1; margin-top: 5px; }
  .offer-config-grid, .offer-config-tier-row { grid-template-columns: 1fr; }
  .offer-config-tier-remove { width: 100%; }
  .offer-config-tiers > header, .offer-config-card > footer { align-items: stretch; flex-direction: column; }
  .home-command-layout { grid-template-columns: 1fr; }
  .home-command-bar { grid-column: 1; grid-template-columns: 1fr; gap: 12px; }
  .home-welcome { grid-column: 1; grid-row: auto; }
  .home-command-actions { grid-column: 1; grid-row: auto; justify-content: stretch; }
  .home-command-actions a { flex: 1; }
  .home-performance-card { grid-template-columns: 1fr; }
  .home-daily-heading,
  .home-daily-progress { grid-column: 1; }
  .home-daily-metric + .home-daily-metric { padding: 14px 0 0; border-top: 1px solid var(--nv-line); border-left: 0; }
  .home-space-logistics,
  .home-space-pac,
  .home-space-admin { grid-template-columns: 72px minmax(0, 1fr) !important; align-items: start !important; }
  .home-space-logistics .home-space-actions,
  .home-space-pac .home-space-actions,
  .home-space-admin .home-space-actions { grid-column: 1 / -1; min-width: 0; padding-top: 18px; border-top: 1px solid var(--nv-line); }
  .account-topbar, .account-identity-card { align-items: stretch; flex-direction: column; }
  .account-access-list { justify-content: flex-start; }
  .account-period-form { width: 100%; }
  .account-kpis { grid-template-columns: 1fr; }
  .personal-monthly-chart {
    grid-template-columns: repeat(12, minmax(16px, 1fr));
    gap: 4px;
    padding-inline: 0;
  }
  .dashboard-v3 .dashboard-topbar-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .dashboard-v3 .dashboard-pdf-button { width: 100%; }
  .database-console .user-admin-list-heading {
    align-items: stretch !important;
    flex-direction: column;
  }
  .database-console .table-selection-actions {
    width: 100%;
    max-width: 100%;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .database-console .information-admin-row {
    grid-template-columns: 1fr !important;
    align-items: start;
  }
  .database-console .information-admin-actions {
    width: 100%;
    max-width: 100%;
    flex-wrap: wrap;
  }
  .database-console .information-admin-actions button { flex: 1; }
}

/* Accueil logistique : accès métier en kanban et indicateurs latéraux. */
.logistics-console .dashboard-logo .logo-symbol svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.logistics-console .logistics-topbar > div:first-child { text-align: left !important; }
.logistics-view-toolbar {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 10px 8px 8px;
  border: 1px solid var(--nv-line);
  border-radius: 14px;
  background: var(--nv-surface);
  box-shadow: var(--nv-shadow);
}
.logistics-view-toolbar[hidden] { display: none !important; }
.logistics-view-toolbar > strong { padding-right: 8px; color: var(--nv-muted); font-size: 13px; }
.logistics-back-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 9px;
  padding: 0 14px;
  border: 1px solid var(--nv-line-strong);
  color: var(--nv-ink);
  background: var(--nv-surface-alt);
}
.logistics-back-button span { color: var(--nv-accent); font-size: 18px; }
.logistics-hub-layout {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 18px;
}
.logistics-hub-kanban {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}
.logistics-hub-card {
  --hub-card-accent: var(--nv-accent);
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  min-width: 0;
  min-height: 260px;
  align-items: start;
  gap: 14px 18px;
  padding: 24px;
  overflow: hidden;
  border: 1px solid var(--nv-line);
  border-radius: var(--nv-radius-lg) !important;
  color: var(--nv-ink);
  background: var(--nv-surface);
  box-shadow: var(--nv-shadow) !important;
  text-align: left;
  cursor: pointer;
}
.logistics-hub-card::before,
.logistics-hub-card::after { content: none !important; }
.logistics-hub-card:hover {
  border-color: #c7d2fe;
  box-shadow: var(--nv-shadow-hover) !important;
  transform: translateY(-3px);
}
.logistics-hub-orders { --hub-card-accent: #c7d2fe; grid-column: 1 / -1; border-color: transparent; color: #fff; background: var(--nv-accent); }
.logistics-hub-receipts { --hub-card-accent: #0f766e; grid-column: span 6; }
.logistics-hub-allocations { --hub-card-accent: #b45309; grid-column: span 6; }
.logistics-hub-stock { --hub-card-accent: #2563eb; grid-column: span 6; border-color: #bfdbfe; background: #eff6ff; }
.logistics-hub-history { --hub-card-accent: #94a3b8; grid-column: span 6; border-color: transparent; color: #fff; background: var(--nv-sidebar); }
.logistics-hub-movements { --hub-card-accent: #7c3aed; grid-column: 1 / -1; border-color: #ddd6fe; background: #f5f3ff; }
.logistics-hub-icon {
  display: grid;
  width: 64px;
  height: 64px;
  align-self: center;
  place-items: center;
  border: 1px solid var(--nv-line-strong);
  border-radius: 14px;
  color: var(--hub-card-accent);
  background: var(--nv-accent-soft);
}
.logistics-hub-icon svg {
  width: 31px;
  height: 31px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.logistics-hub-copy { display: grid; align-self: center; gap: 5px; }
.logistics-hub-copy small { color: var(--hub-card-accent); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.logistics-hub-copy strong { color: inherit; font-size: 30px; line-height: 1.12; }
.logistics-hub-copy > span { max-width: 560px; color: var(--nv-muted); font-size: 17px; font-weight: 600; line-height: 1.5; }
.logistics-hub-arrow {
  display: inline-flex;
  grid-column: 1 / -1;
  width: 100%;
  min-height: 54px;
  align-self: end;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 12px 16px;
  border: 1px solid var(--hub-card-accent);
  border-radius: 11px;
  color: var(--hub-card-accent);
  background: var(--nv-accent-soft);
  font-size: 16px;
  font-weight: 900;
}
.logistics-hub-arrow b { display: grid; flex: 0 0 32px; width: 32px; height: 32px; margin-left: auto; place-items: center; border-radius: 50%; color: #fff; background: var(--hub-card-accent); font-size: 18px; }
.logistics-hub-orders .logistics-hub-icon,
.logistics-hub-history .logistics-hub-icon { border-color: rgba(255,255,255,.28); color: #fff; background: rgba(255,255,255,.14); }
.logistics-hub-orders .logistics-hub-copy small,
.logistics-hub-history .logistics-hub-copy small { color: #c7d2fe; }
.logistics-hub-orders .logistics-hub-copy > span,
.logistics-hub-history .logistics-hub-copy > span { color: #e0e7ff; }
.logistics-hub-orders .logistics-hub-arrow,
.logistics-hub-history .logistics-hub-arrow { color: #fff; background: rgba(255,255,255,.16); }
.logistics-hub-orders .logistics-hub-arrow b,
.logistics-hub-history .logistics-hub-arrow b { color: var(--nv-sidebar); background: #fff; }
.logistics-hub-insights {
  order: -1;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-content: start;
  gap: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.logistics-kpi-button {
  --kpi-tone: var(--nv-accent);
  --kpi-border: #c7d2fe;
  --kpi-bg: #eef2ff;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 116px;
  padding: 14px;
  border: 1px solid var(--kpi-border);
  border-radius: 14px;
  color: var(--nv-ink);
  background: var(--kpi-bg);
  box-shadow: 0 6px 14px rgba(15, 23, 42, .06);
  text-align: left;
  cursor: pointer;
}
.logistics-kpi-button:hover { box-shadow: 0 10px 22px rgba(15, 23, 42, .12); transform: translateY(-2px); }
.logistics-kpi-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--kpi-tone) 28%, transparent); outline-offset: 2px; }
.logistics-kpi-button[data-kpi-tone="danger"] { --kpi-tone: #b91c1c; --kpi-border: #fecaca; --kpi-bg: #fff1f2; }
.logistics-kpi-button[data-kpi-tone="warning"] { --kpi-tone: #b45309; --kpi-border: #fde68a; --kpi-bg: #fffbeb; }
.logistics-kpi-button[data-kpi-tone="caution"] { --kpi-tone: #a16207; --kpi-border: #fef08a; --kpi-bg: #fefce8; }
.logistics-kpi-button[data-kpi-tone="accent"] { --kpi-tone: #4338ca; --kpi-border: #c7d2fe; --kpi-bg: #eef2ff; }
.logistics-kpi-button[data-kpi-tone="success"] { --kpi-tone: #047857; --kpi-border: #a7f3d0; --kpi-bg: #ecfdf5; }
.logistics-kpi-button[data-kpi-tone="received"] { --kpi-tone: #047857; --kpi-border: #86efac; --kpi-bg: #dcfce7; }
.logistics-kpi-icon {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid var(--kpi-border);
  border-radius: 12px;
  color: var(--kpi-tone);
  background: #fff;
}
.logistics-kpi-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.logistics-kpi-copy { display: grid; min-width: 0; gap: 7px; }
.logistics-kpi-copy > span { color: var(--nv-ink); font-size: 13px; font-weight: 950; text-transform: uppercase; }
.logistics-kpi-copy small { color: #475569; font-size: 11px; font-weight: 700; line-height: 1.25; }
.logistics-kpi-copy small b { color: var(--nv-ink); }
.logistics-kpi-copy em { width: max-content; padding: 3px 7px; border: 1px solid var(--kpi-border); border-radius: 999px; color: var(--kpi-tone); background: #fff; font-size: 9px; font-style: normal; font-weight: 950; letter-spacing: .06em; }
.logistics-kpi-value { display: grid; justify-items: end; gap: 8px; }
.logistics-kpi-value strong { color: var(--kpi-tone); font-size: 32px; line-height: 1; }
.logistics-kpi-value i { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; color: #fff; background: var(--kpi-tone); font-size: 15px; font-style: normal; font-weight: 900; }
.product-alerts { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 2px; }
.product-alerts .logistics-kpi-button[data-kpi-tone="warning"] { --kpi-tone: #c2410c; --kpi-border: #fed7aa; --kpi-bg: #fff7ed; }
.database-console .product-cell-input.is-alert-target {
  border: 2px solid #f59e0b !important;
  background: #fffbeb !important;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, .16) !important;
}

/* Produits — tableau à contraste renforcé pour la saisie quotidienne. */
.product-page .product-table-wrap {
  border: 2px solid #94a3b8 !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .10) !important;
}
.product-page .product-table thead th {
  border-right-color: #475569 !important;
  border-bottom: 2px solid #0f172a !important;
  color: #f8fafc !important;
  background: #1e293b !important;
  box-shadow: none !important;
}
.product-page .product-table .table-sort-button { color: #f8fafc !important; }
.product-page .product-table .table-sort-button.is-active { color: #c4b5fd !important; }
.product-page .product-table tbody td {
  border-right-color: #cbd5e1 !important;
  border-bottom-color: #b8c3d3 !important;
  color: #0f172a !important;
  background: #fff !important;
}
.product-page .product-table tbody tr:nth-child(even) td { background: #f1f5f9 !important; }
.product-page .product-table tbody tr:hover td { background: #e9edff !important; }
.product-page .product-table tbody tr.is-inactive td { color: #475569 !important; background: #e2e8f0 !important; }
.product-page .product-table tbody td:first-child,
.product-page .product-table tbody td:last-child { background: #f8fafc !important; }
.product-page .product-table tbody tr:nth-child(even) td:first-child,
.product-page .product-table tbody tr:nth-child(even) td:last-child { background: #e8edf3 !important; }
.product-page .product-table tbody tr:hover td:first-child,
.product-page .product-table tbody tr:hover td:last-child { background: #dfe5ff !important; }
.product-page .product-cell-input,
.product-page .product-cell-category,
.product-page .product-cell-notes,
.product-page .product-money-field {
  border: 2px solid #94a3b8 !important;
  color: #0f172a !important;
  background: #fff !important;
  font-weight: 700 !important;
}
.product-page .product-cell-input::placeholder,
.product-page .product-cell-notes::placeholder { color: #64748b !important; opacity: 1; }
.product-page .product-money-field .product-cell-input:not(.is-alert-target) { border: 0 !important; outline: 0 !important; }
.product-page .product-cell-input:focus,
.product-page .product-cell-category:focus,
.product-page .product-cell-notes:focus,
.product-page .product-money-field:focus-within {
  border-color: #4f46e5 !important;
  outline: 3px solid rgba(79, 70, 229, .20) !important;
  outline-offset: 1px;
  box-shadow: none !important;
}
.product-page .product-reference-code > span,
.product-page .product-classification-field > span,
.product-page .product-extra-field > span { color: #334155 !important; font-weight: 900 !important; }
.product-page .product-reference-workspace > .product-cell-name { color: #0f172a !important; font-weight: 900 !important; }
.product-page .product-money-field > span { color: #312e81 !important; background: #e0e7ff !important; }
.product-page .product-status-badge {
  border-color: #6ee7b7 !important;
  color: #065f46 !important;
  background: #d1fae5 !important;
  font-weight: 900 !important;
}
.product-page .product-row-actions .logistics-row-button {
  border: 2px solid #64748b !important;
  color: #1e293b !important;
  background: #fff !important;
  font-weight: 900 !important;
}
.product-page .product-row-actions .logistics-row-button.is-primary {
  border-color: #4338ca !important;
  color: #fff !important;
  background: #4f46e5 !important;
}
.product-page .product-filters label > span,
.product-page .product-page-size label { color: #334155 !important; font-weight: 900 !important; }
.product-page .product-filters input,
.product-page .product-filters select,
.product-page .product-page-size select { border: 2px solid #94a3b8 !important; color: #0f172a !important; background: #fff !important; }

.product-pdf-dialog { width: min(660px, calc(100% - 28px)); max-width: none; padding: 0; }
.product-pdf-card { width: 100%; padding: 24px; }
.product-pdf-card .product-editor-heading { padding-bottom: 17px; border-bottom: 1px solid var(--nv-line); }
.product-pdf-card .product-editor-heading h2 { margin: 3px 0 5px; color: var(--nv-ink); font-size: 25px; }
.product-pdf-card .product-editor-heading p:last-child { margin: 0; color: var(--nv-muted); font-size: 13px; }
.product-pdf-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.product-pdf-choices button {
  display: grid;
  min-height: 170px;
  justify-items: start;
  align-content: center;
  gap: 8px;
  padding: 20px;
  border: 1px solid #c7d2fe;
  border-radius: 16px;
  color: #273466;
  background: linear-gradient(145deg, #f8faff, #eef2ff);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.product-pdf-choices button:hover:not(:disabled) { border-color: #6366f1; box-shadow: 0 14px 30px rgba(79,70,229,.15); transform: translateY(-2px); }
.product-pdf-choices button:disabled { cursor: wait; opacity: .55; }
.product-pdf-choices button > span {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(135deg, #4338ca, #7c3aed);
  font-size: 15px;
  font-weight: 950;
}
.product-pdf-choices button strong { color: #1e2a5a; font-size: 18px; }
.product-pdf-choices button small { color: #64748b; font-size: 11px; font-weight: 750; }
.product-pdf-status { min-height: 20px; margin: 14px 0 0; color: #475569; font-size: 12px; font-weight: 800; }
.product-pdf-status[data-tone="success"] { color: #047857; }
.product-pdf-status[data-tone="error"] { color: #b91c1c; }
.product-pdf-card > .critical-actions { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--nv-line); }

@media (max-width: 620px) {
  .product-pdf-card { padding: 18px; }
  .product-pdf-choices { grid-template-columns: 1fr; }
  .product-pdf-choices button { min-height: 122px; }
}

/* Produits : accueil catalogue par catégories avant la table de détail. */
.product-category-workspace { display: grid; gap: 16px; }
.product-category-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 2px 2px 0;
}
.product-category-heading > div { display: grid; gap: 4px; }
.product-category-heading span,
.product-catalogue-heading > div > span { color: var(--nv-accent); font-size: 10px; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.product-category-heading h2,
.product-catalogue-heading h2 { margin: 0; color: var(--nv-ink); font-size: 23px; }
.product-category-heading p,
.product-catalogue-heading p { margin: 0; color: var(--nv-muted); font-size: 13px; }
.product-category-heading > small { max-width: 310px; color: var(--nv-muted); font-size: 11px; text-align: right; }
.product-category-kanban {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}
.product-category-card {
  --product-category-accent: #6366f1;
  position: relative;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  min-width: 0;
  min-height: 148px;
  grid-column: span 4;
  align-items: center;
  gap: 14px;
  padding: 21px;
  overflow: hidden;
  border: 1px solid var(--nv-line);
  border-radius: 17px;
  color: var(--nv-ink);
  background: #fff;
  box-shadow: var(--nv-shadow);
  text-align: left;
  cursor: pointer;
}
.product-category-card::before { position: absolute; inset: 0 0 auto; height: 4px; background: var(--product-category-accent); content: ""; }
.product-category-card:hover { border-color: #c7d2fe; box-shadow: var(--nv-shadow-hover); transform: translateY(-2px); }
.product-category-card.is-selected { border-color: var(--product-category-accent); box-shadow: 0 0 0 3px rgba(99,102,241,.14), var(--nv-shadow-hover); }
.product-category-card[data-product-category="all"] { --product-category-accent: #a5b4fc; border-color: transparent; color: #fff; background: var(--nv-sidebar); }
.product-category-card[data-product-category="matelas"] { --product-category-accent: #4f46e5; background: #eef2ff; }
.product-category-card[data-product-category="sommier_simple"] { --product-category-accent: #0f766e; background: #f0fdfa; }
.product-category-card[data-product-category="sommier_coffre"] { --product-category-accent: #b45309; background: #fffbeb; }
.product-category-card[data-product-category="tete_de_lit"] { --product-category-accent: #7c3aed; background: #f5f3ff; }
.product-category-card[data-product-category="accessoire"] { --product-category-accent: #2563eb; background: #eff6ff; }
.product-option-menu-card[data-product-option="item_color"] { --product-category-accent: #db2777; background: #fdf2f8; }
.product-option-menu-card[data-product-option="delivery"] { --product-category-accent: #0891b2; background: #ecfeff; }
.product-category-marker {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--product-category-accent) 38%, white);
  border-radius: 14px;
  color: var(--product-category-accent);
  background: rgba(255,255,255,.78);
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .05em;
}
.product-category-copy { display: grid; min-width: 0; gap: 5px; }
.product-category-copy small { color: var(--product-category-accent); font-size: 9px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.product-category-copy strong { color: inherit; font-size: 18px; line-height: 1.12; }
.product-category-copy > span { color: var(--nv-muted); font-size: 11px; font-weight: 650; }
.product-category-count { display: grid; min-width: 66px; justify-items: end; gap: 2px; }
.product-category-count strong { color: inherit; font-size: 27px; line-height: 1; }
.product-category-count small { color: var(--nv-muted); font-size: 9px; }
.product-category-count b { display: grid; width: 25px; height: 25px; margin-top: 7px; place-items: center; border-radius: 50%; color: #fff; background: var(--product-category-accent); }
.product-category-card[data-product-category="all"] .product-category-marker { border-color: rgba(255,255,255,.24); color: #fff; background: rgba(255,255,255,.12); }
.product-category-card[data-product-category="all"] .product-category-copy small,
.product-category-card[data-product-category="all"] .product-category-copy > span,
.product-category-card[data-product-category="all"] .product-category-count small { color: #cbd5e1; }
.product-option-panel { scroll-margin-top: 18px; }
.product-option-panel-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--nv-line);
}
.product-option-panel-heading > div { display: grid; gap: 4px; }
.product-option-panel-heading > div > span { color: var(--nv-accent); font-size: 10px; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.product-option-panel-heading h2 { margin: 0; color: var(--nv-ink); font-size: 23px; }
.product-option-panel-heading p { margin: 0; color: var(--nv-muted); font-size: 13px; }
.product-option-status { min-height: 0; margin: 0 0 12px; }
.product-option-status:empty { display: none; }
.product-option-list { display: grid; gap: 10px; }
.database-console .product-option-row {
  align-items: end;
  gap: 11px;
  padding: 14px;
  border: 1px solid var(--nv-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .04);
}
.database-console .product-option-row.is-color { grid-template-columns: minmax(120px,.8fr) minmax(220px,1.5fr) 90px auto auto; }
.database-console .product-option-row.is-delivery { grid-template-columns: minmax(120px,.8fr) minmax(220px,1.3fr) minmax(130px,.7fr) 90px auto auto; }
.database-console .product-option-row > label:not(.sale-option-active) { gap: 6px; color: #334155; font-size: 11px; }
.database-console .product-option-row input:not([type="checkbox"]) { min-height: 42px; border-color: var(--nv-line-strong); color: var(--nv-ink); background: #fff; }
.database-console .product-option-row .sale-option-active { min-height: 42px; align-items: center; color: var(--nv-ink); font-weight: 800; }
.database-console .product-option-row .dashboard-refresh { min-height: 42px; }
.product-page .color-palette-assignments {
  margin: 0 0 14px;
}
.product-page .color-palette-assignment-card {
  display: grid;
  gap: 8px;
  padding: 15px;
  border: 1px solid #dbe3ef;
  border-radius: 14px;
  background: #f8fafc;
}
.product-page .color-palette-assignment-heading { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.product-page .color-palette-assignment-heading strong { color: var(--nv-ink); font-size: 13px; }
.product-page .color-palette-assignment-heading span { color: var(--nv-muted); font-size: 11px; }
.product-page .color-palette-assignment-list { display: flex; flex-wrap: wrap; gap: 7px; }
.product-page .color-palette-assignment-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 31px;
  padding: 6px 9px;
  border: 1px solid #dbe3ef;
  border-radius: 999px;
  color: #334155;
  background: #fff;
  font-size: 11px;
  cursor: pointer;
}
.product-page .color-palette-assignment-item:has(input:checked) { border-color: #c7d2fe; color: #3730a3; background: #eef2ff; font-weight: 800; }
.product-page .color-palette-assignment-item input { accent-color: #4f46e5; }
.product-page .color-palette-assignment-actions { display: flex; justify-content: flex-end; }
.database-console .sale-option-assignment {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  padding: 11px 12px 2px;
  border-top: 1px solid #e8edf5;
}
.database-console .sale-option-assignment-heading { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.database-console .sale-option-assignment-heading strong { color: var(--nv-ink); font-size: 12px; }
.database-console .sale-option-assignment-heading span { color: var(--nv-muted); font-size: 11px; }
.database-console .sale-option-assignment-list { display: flex; flex-wrap: wrap; gap: 7px; }
.database-console .sale-option-assignment-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 31px;
  padding: 6px 9px;
  border: 1px solid #dbe3ef;
  border-radius: 999px;
  color: #334155;
  background: #f8fafc;
  font-size: 11px;
  cursor: pointer;
}
.database-console .sale-option-assignment-item:has(input:checked) { border-color: #c7d2fe; color: #3730a3; background: #eef2ff; font-weight: 800; }
.database-console .sale-option-assignment-item input { accent-color: #4f46e5; }
.product-catalogue-panel { scroll-margin-top: 18px; }
.product-catalogue-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--nv-line);
}
.product-catalogue-heading > div { display: grid; gap: 4px; }
.product-back-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid var(--nv-line-strong);
  border-radius: 10px;
  color: var(--nv-ink);
  background: var(--nv-surface-alt);
  font-weight: 850;
  cursor: pointer;
}
.product-back-button span { color: var(--nv-accent); }

/* Produits : fenêtre complète de création d’une fiche catalogue. */
.product-editor-dialog {
  width: min(1080px, calc(100% - 28px));
  max-width: none;
  max-height: 94vh;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(15,23,42,.3);
}
.product-editor-dialog::backdrop { background: rgba(15,23,42,.62); backdrop-filter: blur(3px); }
.product-editor-card {
  display: grid;
  width: 100%;
  max-width: none;
  max-height: 94vh;
  padding: 0 !important;
  overflow: hidden;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  border-radius: 22px;
  background: #f8fafc;
}
.product-editor-heading {
  position: relative;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 24px;
  padding: 25px 28px 23px;
  color: #fff;
  background: linear-gradient(125deg, #111827 0%, #1e293b 66%, #312e81 100%);
}
.product-editor-heading::after { position: absolute; right: 82px; bottom: 0; width: 165px; height: 3px; background: #818cf8; content: ""; }
.product-editor-heading > div { display: grid; gap: 5px; }
.product-editor-heading .critical-kicker { margin: 0; color: #a5b4fc; font-size: 10px; font-weight: 950; letter-spacing: .12em; }
.database-console .product-editor-heading h2 { margin: 0; color: #fff !important; font-size: 27px; line-height: 1.05; }
.product-editor-heading p:last-child { max-width: 720px; margin: 2px 0 0; color: #cbd5e1; font-size: 12px; line-height: 1.5; }
.product-editor-heading .logistics-close-button { flex: 0 0 auto; border-color: rgba(255,255,255,.18); color: #fff; background: rgba(255,255,255,.08); }
.product-editor-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 18px 20px 20px;
  overflow: auto;
}
.product-editor-section {
  display: grid;
  align-content: start;
  gap: 17px;
  padding: 18px;
  border: 1px solid var(--nv-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15,23,42,.045);
}
.product-editor-section-title { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: start; gap: 11px; }
.product-editor-section-title > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  color: #4338ca;
  background: #eef2ff;
  font-size: 10px;
  font-weight: 950;
}
.product-editor-section-title > div { display: grid; gap: 2px; }
.product-editor-section-title h3 { margin: 0; color: var(--nv-ink); font-size: 15px; }
.product-editor-section-title p { margin: 0; color: var(--nv-muted); font-size: 10px; line-height: 1.4; }
.product-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.product-editor-field { display: grid; min-width: 0; align-content: start; gap: 6px; }
.product-editor-field-wide { grid-column: 1 / -1; }
.product-editor-field > span:first-child { color: #334155; font-size: 10px; font-weight: 850; letter-spacing: .02em; }
.product-editor-field > span b { color: #dc2626; }
.product-editor-field input,
.product-editor-field select,
.product-editor-field textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  color: var(--nv-ink);
  background: #fff;
  font: inherit;
  font-size: 12px;
}
.product-editor-field textarea { min-height: 82px; resize: vertical; }
.product-editor-field input:focus,
.product-editor-field select:focus,
.product-editor-field textarea:focus { outline: 3px solid rgba(99,102,241,.13); border-color: #6366f1; }
.product-editor-price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.product-editor-money { position: relative; display: block; }
.product-editor-money input { padding-right: 34px; }
.product-editor-money i { position: absolute; top: 50%; right: 11px; color: #64748b; font-size: 11px; font-style: normal; font-weight: 850; transform: translateY(-50%); }
.product-editor-margin {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 11px;
  border: 1px solid #c7d2fe;
  border-radius: 12px;
  background: #eef2ff;
}
.product-editor-margin > span { display: grid; gap: 2px; padding: 7px 9px; border-radius: 8px; background: rgba(255,255,255,.72); }
.product-editor-margin small { color: #6366f1; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.product-editor-margin strong { color: #312e81; font-size: 16px; }
.product-editor-margin p { grid-column: 1 / -1; margin: 0 3px; color: #64748b; font-size: 9px; }
.product-editor-availability {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid #bbf7d0;
  border-radius: 9px;
  background: #f0fdf4;
}
.product-editor-availability > span { display: grid; width: 24px; height: 24px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: #16a34a; font-size: 11px; font-weight: 950; }
.product-editor-availability p { display: grid; gap: 1px; margin: 0; }
.product-editor-availability strong { color: #166534; font-size: 10px; }
.product-editor-availability small { color: #4b7560; font-size: 9px; line-height: 1.25; }
.product-editor-message { min-height: 0; margin: 0; padding: 0 24px; }
.product-editor-message:not(:empty) { padding-block: 10px; border-top: 1px solid #fecaca; color: #b91c1c; background: #fef2f2; }
.product-editor-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 20px;
  border-top: 1px solid var(--nv-line);
  background: #fff;
}
.product-editor-actions > p { margin: 0; color: var(--nv-muted); font-size: 10px; }
.product-editor-actions > p span { color: #dc2626; }
.product-editor-actions > div { display: flex; gap: 9px; }
.product-editor-actions button { min-height: 42px; }

@media (max-width: 1080px) {
  .product-category-card { grid-column: span 6; }
  .product-alerts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .database-console .product-option-row.is-color,
  .database-console .product-option-row.is-delivery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .product-editor-sections { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .product-category-heading { align-items: start; flex-direction: column; }
  .product-category-heading > small { text-align: left; }
  .product-category-card { grid-column: 1 / -1; }
  .product-alerts { grid-template-columns: 1fr; }
  .product-option-panel-heading { grid-template-columns: 1fr; align-items: stretch; }
  .product-option-panel-heading > button { width: 100%; justify-content: center; }
  .database-console .product-option-row.is-color,
  .database-console .product-option-row.is-delivery { grid-template-columns: 1fr; }
  .product-editor-dialog { width: calc(100% - 14px); max-height: 96vh; }
  .product-editor-card { max-height: 96vh; }
  .product-editor-heading { padding: 21px 18px; }
  .product-editor-heading h2 { font-size: 23px; }
  .product-editor-sections { padding: 12px; }
  .product-editor-section { padding: 15px; }
  .product-editor-grid,
  .product-editor-price-grid { grid-template-columns: 1fr; }
  .product-editor-actions { align-items: stretch; flex-direction: column; }
  .product-editor-actions > div { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Suivi des commandes : états automatiques et saisie groupée compacte. */
.logistics-console .logistics-orders-table {
  table-layout: fixed;
}
.logistics-console .logistics-orders-table th,
.logistics-console .logistics-orders-table td {
  padding: 8px 7px !important;
  font-size: 13px !important;
  line-height: 1.25;
  vertical-align: middle;
}
.logistics-console .logistics-orders-table th {
  color: #475569 !important;
  background: var(--nv-surface-alt) !important;
  font-size: 11px !important;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.logistics-console .logistics-orders-table th:nth-child(1),
.logistics-console .logistics-orders-table td:nth-child(1) { width: 42px !important; text-align: center !important; }
.logistics-console .logistics-orders-table th:nth-child(2),
.logistics-console .logistics-orders-table td:nth-child(2) { width: 42px !important; text-align: center !important; }
.logistics-console .logistics-orders-table th:nth-child(3),
.logistics-console .logistics-orders-table td:nth-child(3) { width: 14% !important; }
.logistics-console .logistics-orders-table th:nth-child(4),
.logistics-console .logistics-orders-table td:nth-child(4) { width: 20% !important; }
.logistics-console .logistics-orders-table th:nth-child(5),
.logistics-console .logistics-orders-table td:nth-child(5) { width: 10% !important; }
.logistics-console .logistics-orders-table th:nth-child(6),
.logistics-console .logistics-orders-table td:nth-child(6) { width: 12% !important; }
.logistics-console .logistics-orders-table th:nth-child(7),
.logistics-console .logistics-orders-table td:nth-child(7) { width: 15% !important; }
.logistics-console .logistics-orders-table th:nth-child(8),
.logistics-console .logistics-orders-table td:nth-child(8) { width: 14% !important; }
.logistics-console .logistics-orders-table th:nth-child(9),
.logistics-console .logistics-orders-table td:nth-child(9) { width: 108px !important; }

.logistics-state-column { padding-inline: 5px !important; }
.logistics-orders-table th.logistics-state-column .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.logistics-order-state-icon {
  display: grid;
  width: 26px;
  height: 26px;
  margin-inline: auto;
  place-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  color: #64748b;
  background: #f8fafc;
  font-size: 13px;
  font-weight: 950;
}
.logistics-state-column[data-state="critical"] .logistics-order-state-icon { border-color: #ef4444; color: #fff; background: #dc2626; }
.logistics-state-column[data-state="late"] .logistics-order-state-icon { border-color: #f97316; color: #fff; background: #ea580c; }
.logistics-state-column[data-state="attention"] .logistics-order-state-icon { border-color: #facc15; color: #713f12; background: #fef08a; }
.logistics-state-column[data-state="current"] .logistics-order-state-icon {
  width: 32px;
  border-color: #a7f3d0;
  border-radius: 8px;
  color: #047857;
  background: #ecfdf5;
  font-size: 9px;
  letter-spacing: .06em;
}
.logistics-state-column[data-state="received"] .logistics-order-state-icon { border-color: #10b981; color: #fff; background: #059669; }

.logistics-console .logistics-orders-table tbody tr[data-stock-tone="available"] td {
  color: var(--nv-ink) !important;
  background: #fff !important;
}
.logistics-console .logistics-orders-table tbody tr[data-stock-tone="empty"] td {
  color: #7f1d1d !important;
  background: #fef2f2 !important;
}
.logistics-console .logistics-orders-table tbody tr[data-stock-tone="empty"] td:first-child {
  box-shadow: inset 4px 0 #dc2626;
}
.logistics-console .logistics-orders-table tbody tr[data-stock-tone] td:last-child {
  background: inherit !important;
  box-shadow: -7px 0 12px rgba(24,47,67,.05) !important;
}
.logistics-console .logistics-orders-table tbody tr[data-order-tone="received"] td,
.logistics-console .logistics-orders-table tbody tr[data-order-tone="received"] td:last-child {
  color: #14532d !important;
  background: #dcfce7 !important;
}
.logistics-console .logistics-orders-table tbody tr[data-order-tone="received"] td:first-child {
  box-shadow: inset 5px 0 #16a34a !important;
}
.logistics-console .logistics-orders-table tbody tr.is-dirty td {
  border-top-color: #818cf8 !important;
  border-bottom-color: #818cf8 !important;
}

.logistics-console .logistics-client-cell strong,
.logistics-console .logistics-order-article > strong,
.logistics-console .logistics-delivery-cell strong {
  font-size: 13px !important;
  line-height: 1.2;
}
.logistics-console .logistics-client-cell small,
.logistics-console .logistics-order-article > small,
.logistics-console .logistics-delivery-cell small {
  margin-top: 3px;
  font-size: 10px !important;
  line-height: 1.25;
}
.logistics-order-meta { gap: 4px; padding-top: 5px; }
.logistics-console .logistics-order-meta .logistics-badge,
.logistics-console .logistics-order-meta .logistics-color-chip {
  min-height: 22px;
  padding: 2px 6px;
  font-size: 10px !important;
}
.logistics-console .logistics-inline-date,
.logistics-console .logistics-table-select {
  width: 100% !important;
  min-height: 34px !important;
  padding: 5px 7px !important;
  border-width: 1px !important;
  border-color: var(--nv-line-strong) !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 750;
}
.logistics-console .logistics-table-select { padding-right: 27px !important; }
.logistics-console .logistics-inline-feedback {
  min-height: 0;
  margin-top: 3px;
  font-size: 9px !important;
  line-height: 1.15;
}
.logistics-assignment-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.logistics-console .logistics-assignment-summary .logistics-badge {
  min-height: 24px;
  padding: 3px 7px;
  font-size: 10px !important;
}
.logistics-row-stock {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 3px 7px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 10px;
  line-height: 1;
  white-space: nowrap;
}
.logistics-console .logistics-assign-button {
  width: 100%;
  min-height: 32px !important;
  margin-top: 5px;
  padding: 4px 8px !important;
  font-size: 11px !important;
}
.logistics-console .logistics-orders-table .logistics-order-actions {
  grid-template-columns: 1fr !important;
  gap: 5px !important;
}
.logistics-console .logistics-orders-table .logistics-order-actions button {
  min-height: 31px !important;
  padding: 4px 5px !important;
  border-width: 1px;
  font-size: 10px !important;
}
.logistics-save-changes { gap: 8px; }
.logistics-save-changes span {
  display: grid;
  min-width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 999px;
  color: var(--nv-accent-dark);
  background: #fff;
  font-size: 11px;
  font-weight: 950;
}
.logistics-save-changes:disabled span { color: #64748b; background: #e2e8f0; }
.logistics-shortage-button {
  border-color: #fca5a5 !important;
  color: #991b1b !important;
  background: #fff7f7 !important;
}
.logistics-shortage-button:hover { border-color: #ef4444 !important; background: #fef2f2 !important; }
.logistics-settlement-extract {
  display: grid;
  grid-template-columns: 48px minmax(240px, 1fr) minmax(180px, 220px) auto;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 15px 17px;
  border: 2px solid #a5b4fc;
  border-radius: 14px;
  background: linear-gradient(135deg, #eef2ff 0%, #fff 72%);
  box-shadow: 0 8px 20px rgba(79, 70, 229, .08);
}
.logistics-settlement-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: #4f46e5;
}
.logistics-settlement-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.logistics-settlement-copy { display: grid; gap: 4px; }
.logistics-settlement-copy strong { color: #1e1b4b; font-size: 16px; font-weight: 950; }
.logistics-settlement-copy small { max-width: 680px; color: #475569; font-size: 12px; line-height: 1.35; }
.logistics-settlement-extract label { display: grid; gap: 5px; }
.logistics-settlement-extract label > span { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.logistics-settlement-extract input { min-height: 42px; }
.logistics-settlement-extract button { min-height: 44px; white-space: nowrap; }
.logistics-order-legend span[data-order-legend="attention"] { border-color: #fde68a !important; color: #92400e !important; background: #fef3c7 !important; }
.logistics-order-legend [data-order-legend="attention"] i { background: #eab308; box-shadow: 0 0 0 3px rgba(234,179,8,.16); }

@media (min-width: 721px) {
  .logistics-console .logistics-section-actions {
    display: grid !important;
    width: min(100%, 440px);
    flex: 0 1 440px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .logistics-console .logistics-section-actions .logistics-save-changes {
    grid-column: 1 / -1;
    justify-content: center;
    white-space: nowrap;
  }
  .logistics-console .logistics-section-actions > button { width: 100%; }
  .logistics-console .logistics-section-actions > button:not(.logistics-save-changes) { font-size: 12px; }
}

@media (max-width: 1280px) {
  .logistics-hub-layout { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .logistics-hub-insights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .logistics-console .logistics-line[data-line-type="receipt"],
  .logistics-console .logistics-line[data-line-type="receipt"].needs-color,
  .logistics-console .logistics-line[data-line-type="allocation"],
  .logistics-console .logistics-line[data-line-type="allocation"].needs-color { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .logistics-console .logistics-line-availability { margin-top: 0; }
  .logistics-settlement-extract { grid-template-columns: 48px minmax(0, 1fr); }
  .logistics-settlement-extract label { grid-column: 1 / -1; }
  .logistics-settlement-extract button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 680px) {
  .logistics-view-toolbar { align-items: stretch; flex-direction: column; }
  .logistics-view-toolbar > strong { padding: 0 8px 4px; }
  .logistics-back-button { justify-content: center; }
  .logistics-hub-card,
  .logistics-hub-orders,
  .logistics-hub-receipts,
  .logistics-hub-allocations,
  .logistics-hub-stock,
  .logistics-hub-history,
  .logistics-hub-movements { grid-column: 1 / -1; min-height: 164px; padding: 20px; }
  .logistics-hub-card { grid-template-columns: 50px minmax(0, 1fr); gap: 12px; }
  .logistics-hub-icon { width: 50px; height: 50px; }
  .logistics-hub-arrow { grid-column: 1 / -1; width: 100%; }
  .logistics-hub-insights { grid-template-columns: 1fr; }
  .logistics-kpi-button { width: 100%; }
  .logistics-console .logistics-line[data-line-type="receipt"],
  .logistics-console .logistics-line[data-line-type="receipt"].needs-color,
  .logistics-console .logistics-line[data-line-type="allocation"],
  .logistics-console .logistics-line[data-line-type="allocation"].needs-color { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Logistique — contraste renforcé, cohérent avec la saisie des ventes. */
body.logistics-console {
  --nv-bg: #edf1f7;
  --nv-surface-alt: #f1f4f9;
  --nv-line: #b8c3d3;
  --nv-line-strong: #94a3b8;
  --nv-ink: #0f172a;
  --nv-muted: #475569;
  color: var(--nv-ink) !important;
  background: var(--nv-bg) !important;
}
.logistics-console .logistics-topbar h1,
.logistics-console .dashboard-panel h2,
.logistics-console .logistics-section-heading h2,
.logistics-console .panel-heading h2,
.logistics-console .logistics-lines-heading h3 {
  color: #111827 !important;
  font-weight: 900 !important;
}
.logistics-console .dashboard-intro,
.logistics-console .panel-heading p,
.logistics-console .logistics-section-heading p {
  color: #475569 !important;
}
.logistics-console .dashboard-panel,
.logistics-console .logistics-hub-card,
.logistics-console .logistics-view-toolbar {
  border-color: #b8c3d3 !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08) !important;
}
.logistics-console label > span,
.logistics-console .logistics-filters label > span,
.logistics-console .logistics-operation-form label > span {
  color: #1e293b !important;
  font-weight: 900 !important;
}
.logistics-console input:not([type="checkbox"]),
.logistics-console select,
.logistics-console textarea {
  border: 2px solid #94a3b8 !important;
  color: #0f172a !important;
  background: #fff !important;
  font-weight: 700;
}
.logistics-console input:not([type="checkbox"]):focus,
.logistics-console select:focus,
.logistics-console textarea:focus {
  border-color: #4f46e5 !important;
  outline: 3px solid rgba(79, 70, 229, .2) !important;
  outline-offset: 1px;
}
.logistics-console input::placeholder,
.logistics-console textarea::placeholder {
  color: #64748b !important;
  opacity: 1;
}
.logistics-console .dashboard-status {
  border-color: #a5b4fc !important;
  color: #312e81 !important;
  background: #eef2ff !important;
  font-weight: 800;
}
.logistics-console .dashboard-table th {
  border-color: #aeb9ca !important;
  color: #334155 !important;
  background: #e7ebf2 !important;
}
.logistics-console .dashboard-table td {
  border-color: #c4ccd8 !important;
  color: #0f172a !important;
}

/* Mon espace — alignement commun du bloc d’accueil. */
.account-topbar > div:first-child,
.account-topbar h1,
.account-topbar .dashboard-intro { text-align: left !important; }

/* Prévisions — alignement commun du bloc d’accueil. */
.forecast-topbar > div:first-child,
.forecast-topbar h1,
.forecast-topbar .dashboard-intro { text-align: left !important; }

/* Radar administrateur — présence et activité de l'équipe. */
.radar-page {
  --radar-violet: #5b55d9;
  --radar-navy: #16213d;
  --radar-line: #cdd5e2;
  color: #111827;
  background: #edf1f7;
}
.radar-main { min-width: 0; }
.radar-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 0 0 24px;
  text-align: left;
}
.radar-topbar > div:first-child { min-width: 0; }
.radar-topbar h1 { margin: 5px 0 8px; color: #101828; font-size: clamp(32px, 4vw, 48px); font-weight: 900; }
.radar-topbar .dashboard-intro { max-width: 720px; margin: 0; color: #475569; font-size: 17px; }
.radar-live-badge {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
  min-width: 190px;
  padding: 13px 16px;
  border: 1px solid #a7f3d0;
  border-radius: 15px;
  color: #065f46;
  background: #ecfdf5;
  box-shadow: 0 10px 24px rgba(6, 95, 70, .08);
}
.radar-live-badge > span:last-child { display: grid; gap: 2px; }
.radar-live-badge strong { font-size: 12px; letter-spacing: .08em; }
.radar-live-badge small { color: #28755f; font-size: 12px; }
.radar-live-pulse { position: relative; width: 11px; height: 11px; border-radius: 50%; background: #10b981; box-shadow: 0 0 0 5px rgba(16, 185, 129, .13); }
.radar-live-pulse::after { position: absolute; inset: -6px; border: 1px solid #10b981; border-radius: inherit; content: ""; animation: radarPulse 1.8s ease-out infinite; }
@keyframes radarPulse { from { transform: scale(.55); opacity: .8; } to { transform: scale(1.45); opacity: 0; } }
.radar-content { display: grid; gap: 18px; }
.radar-toolbar {
  display: grid;
  grid-template-columns: 170px minmax(180px, 1fr) 170px minmax(190px, 1.1fr) auto;
  align-items: end;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--radar-line);
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}
.radar-toolbar label { display: grid; gap: 7px; min-width: 0; }
.radar-toolbar label > span { color: #334155; font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.radar-toolbar input, .radar-toolbar select { width: 100%; min-height: 44px; border: 2px solid #aeb9c9; border-radius: 10px; color: #0f172a; background: #fff; font: 700 14px var(--font-body); }
.radar-toolbar input:focus, .radar-toolbar select:focus { border-color: var(--radar-violet); outline: 3px solid rgba(91, 85, 217, .16); }
.radar-toolbar .dashboard-refresh { min-height: 44px; white-space: nowrap; }
.radar-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.radar-kpi {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  min-height: 116px;
  padding: 17px;
  border: 1px solid var(--radar-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .06);
}
.radar-kpi-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; color: #4338ca; background: #eef2ff; font-size: 22px; font-weight: 900; }
.radar-kpi div { display: grid; gap: 2px; }
.radar-kpi small { color: #596579; font-size: 11px; font-weight: 900; letter-spacing: .05em; }
.radar-kpi strong { color: #0f172a; font-size: 31px; line-height: 1; }
.radar-kpi p { margin: 2px 0 0; color: #64748b; font-size: 12px; }
.radar-kpi-online { border-color: #9ae6c5; background: linear-gradient(135deg, #fff 40%, #ecfdf5); }
.radar-kpi-online .radar-kpi-icon { color: #047857; background: #d1fae5; }
.radar-kpi-commerce { border-color: #c4b5fd; background: linear-gradient(135deg, #fff 40%, #f5f3ff); }
.radar-kpi-commerce .radar-kpi-icon { color: #5b21b6; background: #ede9fe; }
.radar-page .dashboard-panel { border: 1px solid var(--radar-line); box-shadow: 0 12px 28px rgba(15, 23, 42, .06); }
.radar-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.radar-section-heading h2 { margin: 3px 0 0; color: #111827; font-size: 22px; font-weight: 900; }
.radar-section-heading > p { max-width: 480px; margin: 0; color: #64748b; font-size: 13px; text-align: right; }
.radar-users-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.radar-user-card { display: grid; gap: 14px; padding: 16px; border: 1px solid #d5dce7; border-radius: 16px; background: #f8fafc; }
.radar-user-card.is-online { border-color: #86d9b8; background: linear-gradient(145deg, #fff, #f0fdf8); box-shadow: inset 4px 0 #10b981; }
.radar-user-card.is-disabled { opacity: .64; }
.radar-user-heading { display: grid; grid-template-columns: 43px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.radar-user-avatar { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; color: #fff; font-size: 14px; font-weight: 900; }
.radar-user-heading > div { display: grid; gap: 2px; min-width: 0; }
.radar-user-heading strong { overflow: hidden; color: #172033; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.radar-user-heading small { overflow: hidden; color: #64748b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.radar-user-state { padding: 5px 8px; border-radius: 999px; color: #5d687a; background: #e7ebf1; font-size: 10px; font-weight: 900; white-space: nowrap; }
.radar-user-state.is-online { color: #047857; background: #d1fae5; }
.radar-user-presence { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.radar-user-presence span { display: grid; gap: 3px; padding: 10px; border: 1px solid #dce2eb; border-radius: 10px; background: #fff; }
.radar-user-presence small { color: #64748b; font-size: 10px; text-transform: uppercase; }
.radar-user-presence strong { color: #27324a; font-size: 12px; }
.radar-user-metrics { display: grid; grid-template-columns: 1fr 1fr; border-radius: 11px; overflow: hidden; background: #e9edf5; }
.radar-user-metrics span { display: flex; align-items: baseline; justify-content: center; gap: 5px; padding: 8px; }
.radar-user-metrics span + span { border-left: 1px solid #cbd3df; }
.radar-user-metrics strong { color: #312e81; font-size: 18px; }
.radar-user-metrics small { color: #526074; font-size: 11px; }
.radar-user-last-action { display: flex; justify-content: space-between; gap: 10px; min-height: 18px; margin: 0; color: #68758a; font-size: 11px; }
.radar-user-last-action strong { color: #27324a; font-size: 11px; }
.radar-user-last-action span { white-space: nowrap; }
.radar-table-wrap { overflow-x: auto; border: 1px solid #cbd3df; border-radius: 13px; }
.radar-table { width: 100%; min-width: 850px; border-collapse: collapse; background: #fff; table-layout: fixed; }
.radar-table th { padding: 12px 14px; border-bottom: 1px solid #b9c4d3; color: #334155; background: #e8edf4; font-size: 11px; font-weight: 900; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
.radar-table td { padding: 12px 14px; border-bottom: 1px solid #d6dde7; color: #253047; font-size: 13px; vertical-align: middle; }
.radar-table tbody tr:last-child td { border-bottom: 0; }
.radar-table tbody tr:hover td { background: #f7f8fc; }
.radar-table th:nth-child(1) { width: 150px; }
.radar-table th:nth-child(2) { width: 180px; }
.radar-table th:nth-child(3) { width: 145px; }
.radar-table th:nth-child(4) { width: 190px; }
.radar-table td:nth-child(2) { display: grid; gap: 2px; }
.radar-table td:nth-child(2) small { color: #718096; font-size: 10px; }
.radar-module-chip { display: inline-flex; padding: 6px 9px; border-radius: 999px; color: #3730a3; background: #e0e7ff; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.radar-module-chip.is-commerce { color: #075985; background: #e0f2fe; }
.radar-module-chip.is-logistics { color: #9a3412; background: #ffedd5; }
.radar-module-chip.is-products { color: #3f6212; background: #ecfccb; }
.radar-module-chip.is-administration { color: #5b21b6; background: #ede9fe; }
.radar-empty { grid-column: 1 / -1; padding: 32px !important; color: #64748b !important; text-align: center; }

@media (max-width: 1220px) {
  .radar-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .radar-toolbar .dashboard-refresh { width: 100%; }
  .radar-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .radar-users-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .radar-topbar, .radar-section-heading { align-items: stretch; flex-direction: column; }
  .radar-live-badge { width: 100%; }
  .radar-section-heading > p { max-width: none; text-align: left; }
  .radar-toolbar, .radar-kpis, .radar-users-grid { grid-template-columns: 1fr; }
}

/* Logistique — saisie manuelle multi-articles. */
.logistics-console #orderSingleArticleFields[hidden],
.logistics-console .manual-order-items-section[hidden],
.logistics-console [data-order-item-color-field][hidden] { display: none !important; }
.logistics-console .manual-order-items-section {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--nv-line);
}
.logistics-console .manual-order-items-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}
.logistics-console .manual-order-items-heading h3 { margin: 0; font-size: 18px; }
.logistics-console .manual-order-items-heading p { margin: 4px 0 0; color: var(--nv-muted); font-size: 13px; }
.logistics-console .manual-order-items { display: grid; gap: 10px; }
.logistics-console .manual-order-item {
  display: grid;
  grid-template-columns: minmax(145px, .7fr) minmax(260px, 1.6fr) minmax(160px, .8fr) 42px;
  align-items: end;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--nv-line);
  border-radius: 14px;
  background: var(--nv-surface-alt);
}
.logistics-console .manual-order-item > label { display: grid; gap: 6px; min-width: 0; }
.logistics-console .manual-order-item select { width: 100%; min-width: 0; }
.logistics-console .manual-order-remove { width: 42px; height: 42px; margin-bottom: 1px; }
.logistics-console .manual-order-item:not(.needs-color) .manual-order-remove { grid-column: 4; }
.logistics-console .manual-order-remove:disabled { cursor: not-allowed; opacity: .36; }

@media (max-width: 760px) {
  .logistics-console .manual-order-items-heading { align-items: stretch; flex-direction: column; }
  .logistics-console .manual-order-items-heading button { width: 100%; }
  .logistics-console .manual-order-item { grid-template-columns: 1fr; }
  .logistics-console .manual-order-remove,
  .logistics-console .manual-order-item:not(.needs-color) .manual-order-remove { grid-column: auto; width: 100%; }
}

/* Logistique — rattachement d'un ajout manuel à une vente existante. */
.logistics-console #orderForm > .logistics-form-grid { align-items: start; }
.logistics-console .manual-order-client-field { position: relative; display: grid; align-content: start; gap: 8px; width: 100%; min-width: 0; }
.logistics-console .manual-order-client-field > label { display: grid; gap: 7px; width: 100%; min-width: 0; }
.logistics-console .manual-order-client-field input { width: 100%; min-width: 0; }
.logistics-console .manual-order-sale-results[hidden],
.logistics-console .manual-order-selected-sale[hidden] { display: none !important; }
.logistics-console .manual-order-sale-results {
  position: absolute;
  z-index: 20;
  top: calc(100% - 1px);
  right: 0;
  left: 0;
  display: grid;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid var(--nv-line-strong);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 32px rgba(15, 23, 42, .18);
}
.logistics-console .manual-order-sale-results > button {
  display: grid;
  gap: 3px;
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid var(--nv-line);
  color: var(--nv-ink);
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.logistics-console .manual-order-sale-results > button:last-child { border-bottom: 0; }
.logistics-console .manual-order-sale-results > button:hover,
.logistics-console .manual-order-sale-results > button:focus-visible { background: var(--nv-accent-soft); outline: none; }
.logistics-console .manual-order-sale-results strong { font-size: 14px; }
.logistics-console .manual-order-sale-results small { color: var(--nv-muted); font-size: 12px; }
.logistics-console .manual-order-sale-results > p { margin: 0; padding: 12px; color: var(--nv-muted); font-size: 12px; }
.logistics-console .manual-order-selected-sale {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid #a7f3d0;
  border-radius: 10px;
  background: var(--nv-success-soft);
}
.logistics-console .manual-order-selected-sale > span { display: grid; gap: 2px; min-width: 0; }
.logistics-console .manual-order-selected-sale strong { color: var(--nv-success); font-size: 12px; }
.logistics-console .manual-order-selected-sale small { overflow: hidden; color: #326955; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.logistics-console .manual-order-sale-clear { border: 0; color: var(--nv-success); background: transparent; font-size: 11px; font-weight: 900; cursor: pointer; }

/* Produits — explorateur en dossiers et affichage permanent en liste. */
.product-page .product-explorer {
  display: grid;
  grid-template-columns: 282px minmax(0, 1fr);
  min-width: 0;
  min-height: 650px;
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .09);
}
.product-page .product-folder-pane {
  min-width: 0;
  border-right: 1px solid #cbd5e1;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.product-page .product-folder-pane-heading {
  display: flex;
  min-height: 78px;
  align-items: center;
  gap: 11px;
  padding: 16px;
  border-bottom: 1px solid #d7dee8;
  background: rgba(255,255,255,.74);
}
.product-page .product-folder-pane-heading > div { display: grid; gap: 2px; min-width: 0; }
.product-page .product-folder-pane-heading small { color: #6366f1; font-size: 9px; font-weight: 950; letter-spacing: .12em; }
.product-page .product-folder-pane-heading h2 { margin: 0; color: #172033; font-size: 16px; line-height: 1.15; }
.product-page .product-folder-pane-icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid #c7d2fe;
  border-radius: 10px;
  color: #4338ca;
  background: #eef2ff;
  font-size: 18px;
  font-weight: 900;
}
.product-page .product-folder-tree {
  display: grid;
  align-content: start;
  max-height: min(76vh, 820px);
  padding: 10px 9px 18px;
  overflow: auto;
  scrollbar-width: thin;
}
.product-page .product-folder-section-label {
  margin: 18px 9px 7px;
  color: #7c879b;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .11em;
}
.product-page .product-folder-section-label.is-settings { padding-top: 13px; border-top: 1px solid #d7dee8; }
.product-page .product-folder-row {
  display: grid;
  grid-template-columns: 14px 22px minmax(0, 1fr) auto;
  width: 100%;
  min-height: 39px;
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  border: 0;
  border-radius: 9px;
  color: #334155;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.product-page .product-folder-row:hover { color: #1e1b4b; background: #e8edf6; }
.product-page .product-folder-row:focus-visible { outline: 3px solid rgba(99,102,241,.22); outline-offset: 1px; }
.product-page .product-folder-row.is-selected { color: #312e81; background: #e0e7ff; box-shadow: inset 3px 0 0 #4f46e5; }
.product-page .product-folder-row[data-folder-level="1"] { padding-left: 20px; font-size: 12px; }
.product-page .product-folder-row[data-folder-level="2"] { padding-left: 39px; color: #536177; font-size: 11px; }
.product-page .product-folder-row[data-folder-level="2"].is-selected { color: #312e81; }
.product-page .product-folder-caret { color: #8491a4; font-size: 18px; line-height: 1; transition: transform .15s ease; }
.product-page .product-folder-row.is-open .product-folder-caret { transform: rotate(90deg); }
.product-page .product-folder-icon {
  position: relative;
  width: 19px;
  height: 14px;
  border: 1px solid #d59627;
  border-radius: 3px;
  background: #f8c95f;
  box-shadow: inset 0 -2px 0 rgba(155, 91, 12, .08);
}
.product-page .product-folder-icon::before {
  position: absolute;
  top: -5px;
  left: 1px;
  width: 9px;
  height: 5px;
  border: 1px solid #d59627;
  border-bottom: 0;
  border-radius: 3px 3px 0 0;
  background: #f8c95f;
  content: "";
}
.product-page .product-folder-icon.is-file {
  width: 15px;
  height: 19px;
  margin-left: 2px;
  border-color: #9aa7ba;
  border-radius: 2px;
  background: #fff;
}
.product-page .product-folder-icon.is-file::before { top: 4px; left: 3px; width: 7px; height: 1px; border: 0; border-radius: 0; background: #a6b0bf; box-shadow: 0 4px 0 #a6b0bf, 0 8px 0 #a6b0bf; }
.product-page .product-folder-name { min-width: 0; overflow: hidden; font-size: 12px; font-weight: 790; text-overflow: ellipsis; white-space: nowrap; }
.product-page .product-folder-count {
  min-width: 28px;
  padding: 3px 6px;
  border-radius: 999px;
  color: #64748b;
  background: rgba(255,255,255,.78);
  font-size: 9px;
  font-weight: 900;
  text-align: center;
}
.product-page .product-folder-row.is-selected .product-folder-count { color: #4338ca; background: #fff; }
.product-page .product-folder-children { display: grid; position: relative; }
.product-page .product-folder-children::before { position: absolute; top: 0; bottom: 0; left: 28px; width: 1px; background: #d4dbe5; content: ""; }
.product-page .product-folder-children.is-subfamily::before { left: 47px; }
.product-page .product-setting-row { grid-template-columns: 22px minmax(0, 1fr) auto; }
.product-page .product-setting-icon { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 6px; color: #4f46e5; background: #e0e7ff; font-size: 12px; font-weight: 900; }
.product-page .product-explorer-workspace { min-width: 0; background: #fff; }
.product-page .product-explorer-workspace > .product-panel { min-height: 100%; padding: 20px; background: #fff; }
.product-page .product-catalogue-heading { grid-template-columns: 42px minmax(0, 1fr); margin-bottom: 14px; }
.product-page .product-path-home {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  color: #4338ca;
  background: #f8fafc;
  font-size: 19px;
  cursor: pointer;
}
.product-page .product-path-home:hover { border-color: #a5b4fc; background: #eef2ff; }
.product-page .product-breadcrumb { display: flex; align-items: center; gap: 6px; min-height: 20px; overflow: hidden; }
.product-page .product-breadcrumb button {
  max-width: 220px;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: #4f46e5;
  background: transparent;
  font-size: 10px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.product-page .product-breadcrumb button:disabled { color: #64748b; cursor: default; }
.product-page .product-breadcrumb-separator { color: #a0aaba; font-size: 11px; }
.product-page .product-filters { grid-template-columns: minmax(280px, 1fr) 170px; }
.product-page .product-table-wrap { max-height: min(66vh, 720px); border-radius: 9px !important; }
.product-page .product-table { min-width: 1120px !important; }
.product-page .product-table tbody tr { height: 54px; cursor: pointer; }
.product-page .product-table tbody td { height: 54px; padding: 7px 9px !important; vertical-align: middle; }
.product-page .product-table tbody tr:focus-visible td { background: #e0e7ff !important; outline: 0; }
.product-page .product-table tbody tr.is-alert-row td { box-shadow: inset 0 1px 0 #f59e0b, inset 0 -1px 0 #f59e0b; }
.product-page .product-table tbody tr.is-alert-row td:first-child { box-shadow: inset 3px 0 0 #f59e0b, inset 0 1px 0 #f59e0b, inset 0 -1px 0 #f59e0b; }
.product-page .product-list-reference { display: flex; min-width: 230px; align-items: center; gap: 10px; }
.product-page .product-list-reference > span:last-child { display: grid; min-width: 0; gap: 3px; }
.product-page .product-list-reference strong { overflow: hidden; color: #172033; font-size: 12px; font-weight: 900; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.product-page .product-list-reference small { overflow: hidden; color: #68758a; font-size: 9px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.product-page .product-list-file-icon {
  position: relative;
  width: 25px;
  height: 30px;
  flex: 0 0 auto;
  border: 1px solid #a5b4fc;
  border-radius: 5px;
  background: #eef2ff;
}
.product-page .product-list-file-icon::before { position: absolute; top: 7px; right: 5px; left: 5px; height: 2px; border-radius: 2px; background: #818cf8; box-shadow: 0 5px 0 #a5b4fc, 0 10px 0 #c7d2fe; content: ""; }
.product-page .product-list-path { display: flex; min-width: 185px; flex-wrap: wrap; align-items: center; gap: 4px; color: #475569; font-size: 10px; font-weight: 760; line-height: 1.25; }
.product-page .product-list-path-separator { color: #a2adbc; }
.product-page .product-list-number { color: #1e293b !important; font-weight: 850; font-variant-numeric: tabular-nums; white-space: nowrap; }
.product-page .product-list-missing { color: #b45309 !important; font-size: 10px; font-weight: 850; }
.product-page .product-usage { gap: 1px; }
.product-page .product-usage strong { font-size: 13px; }
.product-page .product-usage small { font-size: 8px; }
.product-page .product-open-button {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid #a5b4fc;
  border-radius: 8px;
  color: #3730a3;
  background: #eef2ff;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}
.product-page .product-open-button:hover { border-color: #6366f1; color: #fff; background: #4f46e5; }
.product-page .product-open-button b { font-size: 17px; line-height: 1; }
.product-page .product-editor-status-button { margin-right: auto; color: #991b1b; border-color: #fecaca; background: #fff1f2; }
.product-page .product-option-panel-heading { margin-top: 2px; }

.product-page .subfamily-color-options-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.product-page .subfamily-color-option-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid #dbe3ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(35, 55, 90, .06);
}
.product-page .subfamily-color-option-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.product-page .subfamily-color-option-card header > div { min-width: 0; }
.product-page .subfamily-color-option-card header small {
  color: #6366f1;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-page .subfamily-color-option-card h3 { margin: 3px 0 0; color: #172033; font-size: 16px; }
.product-page .subfamily-color-option-card p { margin: 4px 0 0; color: #748198; font-size: 11px; }
.product-page .subfamily-color-selection-count { color: #4338ca; font-size: 12px; white-space: nowrap; }
.product-page .subfamily-color-option-select {
  width: 100%;
  min-height: 150px;
  padding: 6px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  color: #172033;
  font-size: 12px;
}
.product-page .subfamily-color-option-select option { padding: 7px 8px; border-radius: 6px; }
.product-page .subfamily-color-option-select option:checked { background: #e0e7ff linear-gradient(0deg, #e0e7ff, #e0e7ff); color: #312e81; font-weight: 800; }
.product-page .subfamily-color-option-actions { display: flex; justify-content: flex-end; }

@media (max-width: 900px) {
  .product-page .subfamily-color-options-list { grid-template-columns: 1fr; }
}
.product-page .product-alerts .logistics-hub-insights-heading { grid-column: 1 / -1; }

@media (max-width: 1120px) {
  .product-page .product-explorer { grid-template-columns: 238px minmax(0, 1fr); }
}

@media (max-width: 800px) {
  .product-page .product-explorer { grid-template-columns: 1fr; }
  .product-page .product-folder-pane { border-right: 0; border-bottom: 1px solid #cbd5e1; }
  .product-page .product-folder-tree { max-height: 330px; }
  .product-page .product-filters { grid-template-columns: 1fr; }
}

/* Accueil — appel prioritaire « Dispo sous 72h » en finition or scintillante. */
.home-space-logistics #liquidationLink:not(.is-access-locked) {
  position: relative;
  isolation: isolate;
  overflow: visible;
  border-color: #c98b09 !important;
  color: #4a2c00 !important;
  background: linear-gradient(118deg, #fff8bb 0%, #e6ad25 24%, #fff3a0 46%, #c78306 70%, #ffe982 100%) !important;
  background-size: 180% 180% !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 8px 20px rgba(161, 98, 7, .25) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.55);
  animation: liquidationGoldFlow 4.8s ease-in-out infinite;
}
.home-space-logistics #liquidationLink:not(.is-access-locked)::before {
  position: absolute;
  z-index: -1;
  top: -70%;
  bottom: -70%;
  left: -42%;
  width: 28%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.82), transparent);
  filter: blur(1px);
  content: "";
  display: none;
  animation: liquidationShine 3.1s ease-in-out infinite;
}
.home-space-logistics #liquidationLink:not(.is-access-locked) .liquidation-sparkles {
  position: absolute;
  z-index: 2;
  top: 4px;
  right: 43px;
  color: #fffdf0;
  font-size: 11px;
  font-style: normal;
  line-height: 1;
  pointer-events: none;
  text-shadow: -36px 27px 0 rgba(255,255,255,.86), 31px 25px 0 rgba(255,248,190,.95), -72px 8px 0 rgba(255,255,255,.72);
  animation: liquidationSparkle 1.65s ease-in-out infinite alternate;
}
.home-space-logistics #liquidationLink:not(.is-access-locked) > span:last-child {
  position: relative;
  z-index: 3;
  color: #684000 !important;
  background: rgba(255,255,255,.58) !important;
  box-shadow: 0 0 0 1px rgba(153,94,0,.12), 0 0 15px rgba(255,248,190,.8);
}
.home-space-logistics #liquidationLink .home-liquidation-count {
  position: absolute;
  z-index: 6;
  top: -12px;
  right: -12px;
  display: grid;
  width: 27px;
  height: 27px;
  min-width: 27px;
  flex: 0 0 27px;
  place-items: center;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: #dc2626;
  box-shadow: 0 3px 9px rgba(127,29,29,.42), 0 0 0 2px rgba(220,38,38,.18);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: -.02em;
  line-height: 1;
  text-shadow: none;
}
.home-space-logistics #liquidationLink .home-liquidation-count[hidden] { display: none !important; }
.home-space-logistics #liquidationLink .liquidation-label { position: relative; z-index: 2; white-space: nowrap; }
.home-space-logistics #liquidationLink:not(.is-access-locked):hover {
  border-color: #f8d34d !important;
  color: #3c2200 !important;
  box-shadow: inset 0 1px 0 #fff, 0 11px 28px rgba(161,98,7,.36), 0 0 0 3px rgba(250,204,21,.18) !important;
  transform: translateY(-2px);
}
@keyframes liquidationGoldFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@keyframes liquidationShine {
  0%, 20% { left: -42%; opacity: 0; }
  32% { opacity: 1; }
  66%, 100% { left: 125%; opacity: 0; }
}
@keyframes liquidationSparkle {
  0% { opacity: .28; transform: scale(.72) rotate(-8deg); }
  48% { opacity: 1; transform: scale(1.18) rotate(7deg); }
  100% { opacity: .5; transform: scale(.88) rotate(0); }
}
@media (prefers-reduced-motion: reduce) {
  .home-space-logistics #liquidationLink:not(.is-access-locked),
  .home-space-logistics #liquidationLink:not(.is-access-locked)::before,
  .home-space-logistics #liquidationLink:not(.is-access-locked) .liquidation-sparkles { animation: none; }
}

/* Logistique : accueil sans barre latérale, organisé comme les kanbans de Home. */
.logistics-console .dashboard-shell {
  display: block !important;
  min-height: 100vh;
  background: #fffdf5 !important;
}
.logistics-console .logistics-main {
  width: min(100%, 1440px);
  max-width: 1440px !important;
  margin: 0 auto;
  padding: 24px clamp(18px, 3vw, 44px) 56px !important;
  background: transparent !important;
}
.logistics-console .logistics-topbar {
  align-items: center !important;
  margin-bottom: 18px !important;
  padding: 18px 20px;
  border: 1px solid #f6d365;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff9dc 0%, #fff3b0 100%);
  box-shadow: 0 14px 32px rgba(146, 98, 12, .1);
}
.logistics-console .logistics-topbar-copy {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left !important;
}
.logistics-console .logistics-topbar h1 {
  width: auto !important;
  text-align: left !important;
  color: #713f12 !important;
  font-size: clamp(32px, 4vw, 46px) !important;
}
.logistics-console .logistics-topbar .dashboard-kicker { color: #a16207 !important; }
.logistics-console .logistics-topbar .dashboard-intro { color: #78531b !important; }
.logistics-console .logistics-topbar-actions { flex-wrap: wrap; }
.logistics-console .logistics-notification-slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.logistics-console .logistics-topbar-link,
.logistics-console .logistics-topbar-logout {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid #e9c95a;
  border-radius: 10px;
  color: #713f12;
  background: rgba(255,255,255,.72);
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
  cursor: pointer;
}
.logistics-console .logistics-topbar-link:hover,
.logistics-console .logistics-topbar-logout:hover { border-color: #d6a91e; color: #422006; background: #fff; }
.logistics-console .logistics-topbar-link[hidden] { display: none !important; }
.logistics-console .logistics-topbar-logout { width: 40px; padding: 0; font-size: 18px; }
.logistics-console .dashboard-refresh {
  min-height: 40px;
  border-color: #d6a91e !important;
  color: #fff !important;
  background: #b7791f !important;
}
.logistics-console .dashboard-refresh:hover { background: #92400e !important; }
.logistics-console .logistics-hub-layout { display: block; }
.logistics-console .logistics-hub-kanban {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 18px;
}
.logistics-console .logistics-hub-card,
.logistics-console .logistics-hub-client-needs {
  --hub-card-accent: #a16207;
  grid-column: span 6;
  min-height: 236px;
  padding: 24px;
  border: 1px solid #ebc84b !important;
  border-radius: 20px !important;
  color: #422006 !important;
  background: linear-gradient(135deg, #fff9db 0%, #fde68a 100%) !important;
  box-shadow: 0 16px 36px rgba(146,98,12,.12) !important;
}
.logistics-console .logistics-hub-card:hover {
  border-color: #d6a91e !important;
  box-shadow: 0 22px 46px rgba(146,98,12,.18) !important;
  transform: translateY(-3px);
}
.logistics-console .logistics-hub-orders {
  --hub-card-accent: #92400e;
  grid-column: 1 / -1;
  min-height: 220px;
  border-color: #eab308 !important;
  background: linear-gradient(135deg, #fff4ad 0%, #facc15 100%) !important;
}
.logistics-console .logistics-hub-receipts,
.logistics-console .logistics-hub-allocations {
  grid-column: 1 / -1;
  min-height: 204px;
}
.logistics-console .logistics-hub-receipts {
  border-color: #4ade80 !important;
  color: #064e3b !important;
  background: linear-gradient(135deg, #ecfdf5 0%, #86efac 100%) !important;
  box-shadow: 0 16px 36px rgba(22, 101, 52, .14) !important;
}
.logistics-console .logistics-hub-allocations {
  border-color: #f87171 !important;
  color: #7f1d1d !important;
  background: linear-gradient(135deg, #fff1f2 0%, #fca5a5 100%) !important;
  box-shadow: 0 16px 36px rgba(153, 27, 27, .14) !important;
}
.logistics-console .logistics-hub-transit {
  grid-column: 1 / -1;
  min-height: 204px;
  border-color: #60a5fa !important;
  color: #172554 !important;
  background: linear-gradient(135deg, #eff6ff 0%, #93c5fd 100%) !important;
  box-shadow: 0 16px 36px rgba(37, 99, 235, .14) !important;
  text-decoration: none;
}
.logistics-console .logistics-hub-stock { background: linear-gradient(135deg, #fffde8 0%, #f3db72 100%) !important; }
.logistics-console .logistics-hub-history { background: linear-gradient(135deg, #fff5d6 0%, #f5bd4f 100%) !important; }
.logistics-console .logistics-hub-movements { background: linear-gradient(135deg, #fffbeb 0%, #e9c45b 100%) !important; }
.logistics-console .logistics-hub-icon,
.logistics-console .logistics-hub-orders .logistics-hub-icon,
.logistics-console .logistics-hub-history .logistics-hub-icon,
.logistics-console .logistics-hub-client-needs .logistics-hub-icon {
  width: 66px;
  height: 66px;
  border: 1px solid rgba(113,63,18,.22);
  border-radius: 16px;
  color: #fff !important;
  background: linear-gradient(145deg, #d69e18 0%, #92400e 100%) !important;
  box-shadow: 0 10px 22px rgba(146,64,14,.16);
  font-size: 20px;
  font-weight: 950;
  letter-spacing: -.04em;
}
.logistics-console .logistics-hub-copy small,
.logistics-console .logistics-hub-orders .logistics-hub-copy small,
.logistics-console .logistics-hub-history .logistics-hub-copy small { color: #854d0e !important; }
.logistics-console .logistics-hub-copy strong { color: #422006 !important; font-size: 30px; }
.logistics-console .logistics-hub-copy > span,
.logistics-console .logistics-hub-orders .logistics-hub-copy > span,
.logistics-console .logistics-hub-history .logistics-hub-copy > span { color: #713f12 !important; }
.logistics-console .logistics-hub-arrow,
.logistics-console .logistics-hub-orders .logistics-hub-arrow,
.logistics-console .logistics-hub-history .logistics-hub-arrow,
.logistics-console .logistics-hub-client-needs .logistics-hub-arrow {
  border-color: rgba(113,63,18,.28);
  color: #713f12;
  background: rgba(255,255,255,.58);
}
.logistics-console .logistics-hub-arrow b,
.logistics-console .logistics-hub-orders .logistics-hub-arrow b,
.logistics-console .logistics-hub-history .logistics-hub-arrow b {
  color: #fff;
  background: #92400e;
}
.logistics-console .logistics-hub-receipts .logistics-hub-icon {
  border-color: rgba(6, 78, 59, .22);
  background: linear-gradient(145deg, #22c55e 0%, #047857 100%) !important;
  box-shadow: 0 10px 22px rgba(4, 120, 87, .2);
}
.logistics-console .logistics-hub-receipts .logistics-hub-copy small,
.logistics-console .logistics-hub-receipts .logistics-hub-copy strong,
.logistics-console .logistics-hub-receipts .logistics-hub-copy > span,
.logistics-console .logistics-hub-receipts .logistics-hub-arrow { color: #064e3b !important; }
.logistics-console .logistics-hub-receipts .logistics-hub-arrow { border-color: rgba(6, 78, 59, .3); }
.logistics-console .logistics-hub-receipts .logistics-hub-arrow b { color: #fff; background: #047857; }
.logistics-console .logistics-hub-allocations .logistics-hub-icon {
  border-color: rgba(127, 29, 29, .22);
  background: linear-gradient(145deg, #ef4444 0%, #991b1b 100%) !important;
  box-shadow: 0 10px 22px rgba(153, 27, 27, .2);
}
.logistics-console .logistics-hub-allocations .logistics-hub-copy small,
.logistics-console .logistics-hub-allocations .logistics-hub-copy strong,
.logistics-console .logistics-hub-allocations .logistics-hub-copy > span,
.logistics-console .logistics-hub-allocations .logistics-hub-arrow { color: #7f1d1d !important; }
.logistics-console .logistics-hub-allocations .logistics-hub-arrow { border-color: rgba(127, 29, 29, .3); }
.logistics-console .logistics-hub-allocations .logistics-hub-arrow b { color: #fff; background: #991b1b; }
.logistics-console .logistics-hub-transit .logistics-hub-icon {
  border-color: rgba(30, 64, 175, .22);
  background: linear-gradient(145deg, #3b82f6 0%, #1e40af 100%) !important;
  box-shadow: 0 10px 22px rgba(30, 64, 175, .2);
}
.logistics-console .logistics-hub-transit .logistics-hub-copy small,
.logistics-console .logistics-hub-transit .logistics-hub-copy strong,
.logistics-console .logistics-hub-transit .logistics-hub-copy > span,
.logistics-console .logistics-hub-transit .logistics-hub-arrow { color: #172554 !important; }
.logistics-console .logistics-hub-transit .logistics-hub-arrow { border-color: rgba(30, 64, 175, .3); }
.logistics-console .logistics-hub-transit .logistics-hub-arrow b { color: #fff; background: #1d4ed8; }
.logistics-console .logistics-client-needs-button {
  border-color: #eab308 !important;
  color: #713f12 !important;
  background: #fef3c7 !important;
}

.logistics-console .logistics-badge[data-tone="info"] {
  border-color: #93c5fd !important;
  color: #1e3a8a !important;
  background: #dbeafe !important;
}
.logistics-console .logistics-supply-badge {
  min-width: 118px;
  justify-content: center;
  padding: 8px 10px !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  letter-spacing: .035em;
}
.logistics-console .logistics-allocation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.logistics-console .logistics-validate-allocation {
  border-color: #2563eb !important;
  color: #fff !important;
  background: #2563eb !important;
}
.logistics-console .logistics-validate-allocation:disabled {
  border-color: #93c5fd !important;
  color: #1e3a8a !important;
  background: #dbeafe !important;
}
.logistics-console .logistics-orders-table tbody tr[data-supply-state="transit"] td {
  background: #eff6ff !important;
}

@media (max-width: 900px) {
  .logistics-console .logistics-topbar { align-items: stretch !important; flex-direction: column; }
  .logistics-console .logistics-topbar-actions { width: 100%; justify-content: flex-start; }
  .logistics-console .logistics-hub-card,
  .logistics-console .logistics-hub-client-needs { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .logistics-console .logistics-main { padding-inline: 12px !important; }
  .logistics-console .logistics-topbar { padding: 15px; }
  .logistics-console .logistics-topbar-actions > * { flex: 1; }
  .logistics-console .logistics-topbar-logout { flex: 0 0 40px; }
  .logistics-console .logistics-hub-card,
  .logistics-console .logistics-hub-client-needs { min-height: 184px; padding: 18px; }
  .logistics-console .logistics-hub-copy strong { font-size: 24px; }
}

/* Logistique — commandes : accès doubles et commandes de tableau compactes. */
.logistics-console article.logistics-hub-orders { cursor: default; }
.logistics-console article.logistics-hub-orders:hover { transform: none; }
.logistics-console .logistics-hub-actions {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-self: end;
}
.logistics-console .logistics-hub-actions .logistics-hub-arrow {
  grid-column: auto;
  margin: 0;
  font: inherit;
  cursor: pointer;
}
.logistics-console .logistics-hub-secondary-action {
  display: inline-flex;
  width: 100%;
  min-height: 54px;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 12px 16px;
  border: 1px solid rgba(113, 63, 18, .3);
  border-radius: 11px;
  color: #713f12;
  background: rgba(255, 255, 255, .72);
  font: inherit;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}
.logistics-console .logistics-hub-secondary-action b {
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  margin-left: auto;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #92400e;
}
.logistics-console .logistics-orders-title h2 {
  margin: 0 !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  letter-spacing: -.035em !important;
}
.logistics-console .logistics-filters {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.logistics-console .logistics-order-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-content: stretch;
  justify-items: stretch;
  gap: 10px;
  margin: 18px 0 0;
  padding: 12px 14px;
  border: 1px solid #d9b943;
  border-bottom: 0;
  border-radius: 14px 14px 0 0;
  background: #fff9dc;
}
.logistics-console .logistics-table-controls {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(300px, 1fr) minmax(220px, .45fr) auto auto;
  align-items: end;
  justify-self: stretch;
  gap: 10px;
}
.logistics-console .logistics-order-search,
.logistics-console .logistics-order-quick-sort {
  display: grid;
  min-width: 0;
  gap: 5px;
}
.logistics-console .logistics-order-search > span,
.logistics-console .logistics-order-quick-sort > span {
  color: #78531b;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.logistics-console .logistics-order-search input,
.logistics-console .logistics-order-quick-sort select {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d6a91e !important;
  border-radius: 9px;
  background: #fff;
  font-weight: 800;
}
.logistics-console .logistics-order-add-button {
  min-height: 42px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
  justify-self: end;
}
.logistics-console .logistics-table-controls .logistics-results {
  align-self: center;
  margin: 0;
  white-space: nowrap;
}
.logistics-console .logistics-order-toolbar + .table-scroll {
  margin-top: 0;
  border-radius: 0 0 14px 14px;
}
.logistics-console .logistics-order-confirm-card { width: min(440px, calc(100vw - 32px)); }
.logistics-console .logistics-order-confirm-card .critical-summary {
  margin: 8px 0 4px;
  color: #475569 !important;
  font-size: 16px;
  line-height: 1.55;
}
.logistics-console .logistics-promise-edit-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 2px solid #94a3b8;
  border-radius: 10px;
  color: #334155;
  background: #f8fafc;
  font: inherit;
  font-size: 15px;
  font-weight: 950;
  white-space: nowrap;
  cursor: pointer;
}
.logistics-console .logistics-promise-edit-button:hover { filter: brightness(.97); transform: translateY(-1px); }
.logistics-console .logistics-promise-edit-button[data-tone="critical"] { border-color: #dc2626; color: #7f1d1d; background: #fee2e2; }
.logistics-console .logistics-promise-edit-button[data-tone="late"] { border-color: #f97316; color: #9a3412; background: #ffedd5; }
.logistics-console .logistics-promise-edit-button[data-tone="attention"] { border-color: #eab308; color: #854d0e; background: #fef9c3; }
.logistics-console .logistics-promise-edit-button[data-tone="current"] { border-color: #22c55e; color: #166534; background: #dcfce7; }
.logistics-console .logistics-promise-edit-button[data-tone="received"] { border-color: #10b981; color: #065f46; background: #d1fae5; }
.logistics-console .logistics-order-date-field {
  display: grid;
  gap: 7px;
  margin: 14px 0 4px;
}
.logistics-console .logistics-order-date-field span {
  color: #713f12;
  font-size: 12px;
  font-weight: 900;
}
.logistics-console .logistics-order-date-field input {
  min-height: 48px;
  border: 2px solid #d6a91e;
  border-radius: 10px;
  background: #fff;
  font-size: 16px;
  font-weight: 850;
}
.logistics-console .logistics-order-date-scope {
  display: grid;
  gap: 9px;
  margin: 16px 0 4px;
  padding: 14px;
  border: 1px solid #e2c55b;
  border-radius: 11px;
  background: #fffbea;
}
.logistics-console .logistics-order-date-scope legend {
  padding: 0 6px;
  color: #713f12;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.logistics-console .logistics-order-date-scope label {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #422006;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.logistics-console .logistics-order-date-scope input { width: 18px; height: 18px; accent-color: #b7791f; }
.logistics-console .logistics-order-date-scope input:disabled + span { color: #94a3b8; }

@media (max-width: 1050px) {
  .logistics-console .logistics-table-controls { grid-template-columns: minmax(220px, 1fr) minmax(190px, .7fr) auto auto; }
}

@media (max-width: 760px) {
  .logistics-console .logistics-hub-actions,
  .logistics-console .logistics-table-controls,
  .logistics-console .logistics-filters { grid-template-columns: 1fr; }
  .logistics-console .logistics-table-controls .logistics-results { grid-column: auto; }
  .logistics-console .logistics-order-add-button { width: 100%; justify-self: stretch; }
}

/* Accueil : commandes épurées et messagerie instantanée en Kanban. */
.home-command-bar {
  justify-content: flex-start;
  gap: 14px;
  padding: 22px;
}
.home-command-bar .home-welcome {
  align-items: flex-start;
  gap: 5px;
  padding-top: 0;
  border-top: 0;
  text-align: left;
}
.home-command-bar .home-welcome span { font-size: 19px; }
.home-command-bar .home-welcome small { line-height: 1.35; }
.home-command-bar .home-command-actions {
  width: 100%;
  margin-top: 4px;
  justify-content: flex-start;
}
.home-command-actions button {
  position: relative;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.24) !important;
  border-radius: 10px !important;
  color: #fff !important;
  background: rgba(255,255,255,.1) !important;
  box-shadow: none !important;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.home-command-actions button:hover {
  border-color: rgba(255,255,255,.55) !important;
  background: rgba(255,255,255,.18) !important;
}
#storeChatUnread {
  position: absolute;
  top: -7px;
  right: -7px;
  display: grid;
  min-width: 21px;
  height: 21px;
  padding: 0 5px;
  place-items: center;
  border: 2px solid #303f82;
  border-radius: 999px;
  color: #7f1d1d;
  background: #fff;
  font-size: 9px;
  line-height: 1;
}
#storeChatUnread[hidden] { display: none; }

.store-chat-dialog {
  width: min(790px, calc(100vw - 28px));
  max-width: none;
  max-height: min(90vh, 820px);
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 22px;
  background: transparent;
}
.store-chat-dialog::backdrop {
  background: rgba(15, 23, 42, .68);
  backdrop-filter: blur(4px);
}
.store-chat-panel {
  display: grid;
  min-height: min(680px, calc(90vh - 20px));
  max-height: min(820px, calc(90vh - 20px));
  grid-template-rows: auto auto minmax(180px, 1fr) auto;
  overflow: hidden;
  border: 1px solid #3f51a3;
  border-radius: 22px;
  color: var(--nv-ink);
  background: #f8faff;
  box-shadow: 0 32px 90px rgba(15, 23, 42, .34);
}
.store-chat-panel > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 20px 22px;
  color: #fff;
  background: linear-gradient(145deg, #243574 0%, #3949a0 100%);
  text-align: left;
}
.store-chat-overline {
  display: block;
  margin-bottom: 3px;
  color: #c7d2fe;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
}
.store-chat-panel > header h2 {
  margin: 0;
  color: #fff;
  font-size: 25px;
  line-height: 1.1;
}
.store-chat-panel > header p {
  margin: 5px 0 0;
  overflow: hidden;
  color: #dbe4ff;
  font-size: 11px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.store-chat-live {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  color: #e0e7ff;
  background: rgba(255,255,255,.1);
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}
.store-chat-live::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fbbf24;
  content: "";
}
.store-chat-live[data-state="online"]::before {
  background: #4ade80;
  box-shadow: 0 0 0 4px rgba(74,222,128,.14);
}
.store-chat-close {
  display: grid;
  width: 40px;
  height: 40px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 10px;
  color: #fff;
  background: rgba(255,255,255,.1);
  font: inherit;
  font-size: 24px;
  cursor: pointer;
}
.store-chat-close:hover { background: rgba(255,255,255,.2); }
.store-chat-status {
  margin: 12px 18px 0;
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  color: #1e40af;
  background: #eff6ff;
  font-size: 11px;
  font-weight: 800;
  text-align: center;
}
.store-chat-status[data-tone="error"] { border-color: #fecaca; color: #991b1b; background: #fff1f2; }
.store-chat-list {
  display: flex;
  min-height: 0;
  flex-direction: column;
  gap: 11px;
  overflow-y: auto;
  padding: 20px 22px;
  overscroll-behavior: contain;
  scrollbar-color: #a5b4fc transparent;
}
.store-chat-empty {
  margin: auto;
  padding: 22px;
  color: #64748b;
  font-size: 13px;
  text-align: center;
}
.store-chat-message {
  display: grid;
  width: min(78%, 540px);
  gap: 6px;
  align-self: flex-start;
}
.store-chat-message > div {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-inline: 4px;
}
.store-chat-message strong { color: #334155; font-size: 10px; }
.store-chat-message time { color: #94a3b8; font-size: 9px; }
.store-chat-message p {
  margin: 0;
  padding: 11px 13px;
  border: 1px solid #dbe3f2;
  border-radius: 4px 15px 15px 15px;
  color: #1e293b;
  background: #fff;
  box-shadow: 0 6px 16px rgba(15,23,42,.055);
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.store-chat-message.is-own { align-self: flex-end; }
.store-chat-message.is-own > div { justify-content: flex-end; }
.store-chat-message.is-own p {
  border-color: #4f60af;
  border-radius: 15px 4px 15px 15px;
  color: #fff;
  background: #344695;
}
.store-chat-form {
  display: grid;
  gap: 7px;
  padding: 16px 20px 18px;
  border-top: 1px solid #dbe3f2;
  background: #fff;
}
.store-chat-form > label {
  color: #475569;
  font-size: 10px;
  font-weight: 900;
}
.store-chat-form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.store-chat-form textarea {
  width: 100%;
  min-height: 52px;
  max-height: 130px;
  resize: vertical;
  padding: 11px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  color: #0f172a;
  background: #f8fafc;
  font: inherit;
  font-size: 13px;
  line-height: 1.4;
}
.store-chat-form textarea:focus { outline: 3px solid rgba(79,70,229,.15); border-color: #6366f1; background: #fff; }
.store-chat-form button {
  min-width: 105px;
  padding: 0 16px;
  border: 1px solid #303f82;
  border-radius: 11px;
  color: #fff;
  background: #303f82;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}
.store-chat-form button:hover { background: #243574; }
.store-chat-form button:disabled { opacity: .6; cursor: wait; }
.store-chat-form > small { color: #94a3b8; font-size: 9px; }

@media (max-width: 760px) {
  .home-command-bar .home-command-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-command-actions button,
  .home-command-actions a { width: 100%; }
  .store-chat-dialog { width: 100vw; max-height: 100vh; }
  .store-chat-panel { min-height: 100vh; max-height: 100vh; border: 0; border-radius: 0; }
  .store-chat-panel > header { padding: 16px; }
  .store-chat-list { padding: 17px 14px; }
  .store-chat-message { width: 88%; }
  .store-chat-form { padding: 13px 14px 16px; }
  .store-chat-form > div { grid-template-columns: 1fr; }
  .store-chat-form button { min-height: 46px; }
}

/* Accueil : challenge commercial et espace personnel réunis dans le Kanban supérieur. */
.home-command-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-top-kanban {
  display: grid;
  min-width: 0;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 2.35fr) minmax(270px, .8fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 16px 38px rgba(30,41,99,.18);
}
.home-top-kanban .home-offer-card {
  grid-column: auto;
  min-width: 0;
  min-height: 100%;
  border-radius: 20px 0 0 20px;
  box-shadow: none;
}
.home-top-kanban .home-command-bar {
  min-width: 0;
  min-height: 100%;
  grid-column: auto;
  grid-row: auto;
  border-radius: 0 20px 20px 0;
  box-shadow: none;
}
.home-top-kanban:has(.home-offer-card[hidden]) { grid-template-columns: 1fr; }
.home-top-kanban .home-offer-card[hidden] + .home-command-bar { border-radius: 20px; }
.home-performance-day,
.home-performance-month { grid-column: auto; grid-row: auto; }

@media (max-width: 980px) {
  .home-top-kanban { grid-template-columns: minmax(0, 1fr) minmax(250px, .45fr); }
  .home-top-kanban .home-command-bar {
    display: flex;
    padding: 18px;
  }
  .home-top-kanban .home-command-bar .home-welcome,
  .home-top-kanban .home-command-actions { grid-column: auto; grid-row: auto; }
}

@media (max-width: 760px) {
  .home-command-layout { grid-template-columns: 1fr; }
  .home-top-kanban { grid-template-columns: 1fr; }
  .home-top-kanban .home-offer-card { border-radius: 20px 20px 0 0; }
  .home-top-kanban .home-command-bar { border-radius: 0 0 20px 20px; }
  .home-top-kanban .home-offer-card[hidden] + .home-command-bar { border-radius: 20px; }
}

/* Accueil corrigé après contrôle visuel : identité en haut, challenge juste dessous. */
.home-top-kanban { grid-template-columns: 1fr; }
.home-top-kanban .home-command-bar {
  display: grid;
  min-height: auto;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  order: 0;
  gap: 16px;
  padding: 14px 18px;
  border-radius: 20px 20px 0 0;
}
.home-top-kanban .home-welcome {
  grid-column: 1;
  grid-row: 1;
}
.home-top-kanban .home-command-actions {
  width: auto;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  justify-content: flex-end;
}
.home-top-kanban .home-offer-card {
  min-height: auto;
  order: 1;
  border-radius: 0 0 20px 20px;
}
.home-top-kanban:has(.home-offer-card[hidden]) .home-command-bar { border-radius: 20px; }

@media (max-width: 760px) {
  .home-top-kanban .home-command-bar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .home-top-kanban .home-welcome,
  .home-top-kanban .home-command-actions { grid-column: 1; grid-row: auto; }
  .home-top-kanban .home-command-actions { width: 100%; justify-content: stretch; }
}

/* Messagerie : magasin collectif et conversations privées en Kanban. */
.store-chat-dialog { width: min(1080px, calc(100vw - 28px)); }
.store-chat-panel {
  min-height: min(720px, calc(92vh - 20px));
  max-height: min(840px, calc(92vh - 20px));
  grid-template-rows: auto auto minmax(0, 1fr);
}
.store-chat-workspace {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(235px, 29%) minmax(0, 1fr);
  background: #f8faff;
}
.store-chat-sidebar {
  display: flex;
  min-height: 0;
  flex-direction: column;
  gap: 7px;
  overflow-y: auto;
  padding: 17px 13px;
  border-right: 1px solid #d9e1f1;
  background: linear-gradient(180deg, #eef2ff 0%, #f7f9ff 100%);
}
.store-chat-sidebar-label {
  padding: 0 8px 3px;
  color: #7180a7;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .12em;
}
.store-chat-private-label { margin-top: 10px; }
.store-chat-contacts { display: grid; gap: 7px; }
.store-chat-thread {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 14px;
  color: #334155;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.store-chat-thread:hover {
  border-color: #c7d2fe;
  background: rgba(255,255,255,.82);
  transform: translateY(-1px);
}
.store-chat-thread.is-active {
  border-color: #4c5aa5;
  color: #fff;
  background: linear-gradient(145deg, #303f82 0%, #4c5bb1 100%);
  box-shadow: 0 10px 24px rgba(48,63,130,.22);
}
.store-chat-thread > span:nth-child(2) { min-width: 0; }
.store-chat-thread strong,
.store-chat-thread small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.store-chat-thread strong { font-size: 11px; font-weight: 900; }
.store-chat-thread small { margin-top: 3px; color: #7c8aaa; font-size: 9px; font-weight: 700; }
.store-chat-thread.is-active small { color: #dbe4ff; }
.store-chat-avatar {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 2px solid color-mix(in srgb, var(--chat-avatar, #3949a0) 72%, white);
  border-radius: 12px;
  color: #fff;
  background: var(--chat-avatar, #3949a0);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.2);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .04em;
}
.store-chat-avatar-store { --chat-avatar: #c93448; }
.store-chat-thread.is-active .store-chat-avatar { border-color: rgba(255,255,255,.7); }
.store-chat-thread-unread {
  display: grid;
  min-width: 23px;
  height: 23px;
  padding: 0 6px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  background: #df243f;
  box-shadow: 0 4px 10px rgba(199,29,54,.26);
  font-size: 9px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
}
.store-chat-thread-unread[hidden] { display: none; }
.store-chat-contacts-empty {
  margin: 4px 8px;
  color: #7c8aaa;
  font-size: 10px;
  line-height: 1.5;
}
.store-chat-conversation {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: minmax(180px, 1fr) auto;
}
.store-chat-conversation .store-chat-list { min-height: 0; }
.store-chat-conversation .store-chat-form { min-width: 0; }
.store-chat-logistics-card {
  display: grid;
  gap: 6px;
  padding: 12px 13px;
  border: 1px solid #c7d2fe;
  border-left: 4px solid #df243f;
  border-radius: 12px;
  color: #1e293b;
  background: linear-gradient(145deg, #fff 0%, #f3f6ff 100%);
  box-shadow: 0 7px 18px rgba(15,23,42,.07);
  text-decoration: none;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.store-chat-logistics-card:hover { transform: translateY(-1px); border-color: #818cf8; border-left-color: #df243f; box-shadow: 0 10px 24px rgba(15,23,42,.11); }
.store-chat-logistics-card:focus-visible { outline: 3px solid rgba(79,70,229,.22); outline-offset: 2px; }
.store-chat-message.is-own .store-chat-logistics-card { border-color: #c7d2fe; border-left-color: #df243f; }
.store-chat-logistics-card > span { color: #df243f; font-size: 8px; font-weight: 950; letter-spacing: .11em; }
.store-chat-logistics-card > strong { color: #202f6e; font-size: 13px; }
.store-chat-logistics-card > p { padding: 0; border: 0; border-radius: 0; color: #334155; background: transparent; box-shadow: none; font-size: 11px; }
.store-chat-logistics-card > div { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; }
.store-chat-logistics-card > div span {
  padding: 4px 7px;
  border-radius: 999px;
  color: #475569;
  background: #e8ecfb;
  font-size: 8px;
  font-weight: 850;
}
.logistics-console .logistics-share-button {
  border-color: #a5b4fc !important;
  color: #303f82 !important;
  background: #eef2ff !important;
}
.logistics-console .logistics-share-button:hover { border-color: #4f60af !important; background: #e0e7ff !important; }
.logistics-console tr.is-shared-order-target td {
  background: #fff8dc !important;
  box-shadow: inset 0 2px 0 #f59e0b, inset 0 -2px 0 #f59e0b;
}
.logistics-console tr.is-shared-order-target td:first-child { box-shadow: inset 5px 0 0 #f59e0b, inset 0 2px 0 #f59e0b, inset 0 -2px 0 #f59e0b; }
.logistics-share-dialog { width: min(580px, calc(100vw - 24px)); }
.logistics-share-card { display: grid; gap: 17px; }
.logistics-share-preview > article {
  display: grid;
  gap: 6px;
  padding: 15px 16px;
  border: 1px solid #c7d2fe;
  border-left: 5px solid #df243f;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff 0%, #f3f6ff 100%);
  box-shadow: 0 8px 20px rgba(15,23,42,.07);
}
.logistics-share-preview span { color: #df243f; font-size: 9px; font-weight: 950; letter-spacing: .1em; }
.logistics-share-preview strong { color: #202f6e; font-size: 18px; }
.logistics-share-preview p { margin: 0; color: #334155; font-size: 13px; font-weight: 750; }
.logistics-share-preview > article > div { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 2px; }
.logistics-share-preview small {
  padding: 5px 8px;
  border-radius: 999px;
  color: #475569;
  background: #e8ecfb;
  font-size: 10px;
  font-weight: 850;
}
.logistics-share-preview small[data-tone="current"],
.logistics-share-preview small[data-tone="received"] { color: #166534; background: #dcfce7; }
.logistics-share-preview small[data-tone="attention"] { color: #92400e; background: #fef3c7; }
.logistics-share-preview small[data-tone="late"],
.logistics-share-preview small[data-tone="critical"] { color: #991b1b; background: #fee2e2; }
.logistics-share-field { display: grid; gap: 7px; }
.logistics-share-field > span { color: #475569; font-size: 10px; font-weight: 900; }
.logistics-share-field > span small { color: #94a3b8; font-weight: 700; }
.logistics-share-field select,
.logistics-share-field textarea {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  color: #0f172a;
  background: #f8fafc;
  font: inherit;
  font-size: 13px;
}
.logistics-share-field textarea { min-height: 82px; resize: vertical; }
.logistics-share-field select:focus,
.logistics-share-field textarea:focus { outline: 3px solid rgba(79,70,229,.14); border-color: #6366f1; background: #fff; }

.daily-performance-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 2px 10px; }
.daily-performance-heading strong { color: #15263a; font-size: 14px; }
.daily-performance-heading span { color: #607189; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.daily-performance-table-wrap { max-height: 430px; border: 1px solid #dbe5ee; border-radius: 13px; }
.daily-performance-table thead { position: sticky; z-index: 1; top: 0; }
.daily-performance-table td:first-child { color: #24364b; font-weight: 850; text-transform: capitalize; }
.daily-performance-table tr.is-empty-day td { color: #9aa8b8; background: #f8fafc; }
.daily-performance-table tr.is-clickable-day { cursor: pointer; }
.daily-performance-table tr.is-clickable-day:hover td,
.daily-performance-table tr.is-clickable-day:focus-visible td { color: #172554; background: #eef2ff; }
.daily-performance-table tr.is-clickable-day:focus-visible { outline: 3px solid rgba(79, 70, 229, .28); outline-offset: -3px; }
.daily-performance-table tr.is-clickable-day td:first-child::after { content: "Voir les ventes  ›"; display: block; margin-top: 3px; color: #5969b0; font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }

.daily-sales-dialog { width: min(1120px, calc(100vw - 28px)); max-width: none; padding: 0; }
.daily-sales-card { display: grid; width: 100%; max-height: min(88vh, 780px); grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 18px; color: #172033; background: #fff; box-shadow: 0 30px 90px rgba(15, 23, 42, .3); }
.daily-sales-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 24px 18px; border-bottom: 1px solid #dbe4ee; background: #f8fafc; }
.daily-sales-card > header h2 { margin: 3px 0 5px; color: #111827; font-size: 25px; text-transform: capitalize; }
.daily-sales-card > header p { margin: 0; color: #607189; font-size: 12px; }
.daily-sales-close { display: grid; flex: 0 0 38px; width: 38px; height: 38px; padding: 0 0 2px; place-items: center; border: 1px solid #cbd5e1; border-radius: 50%; color: #475569; background: #fff; font: inherit; font-size: 23px; cursor: pointer; }
.daily-sales-close:hover { border-color: #df243f; color: #fff; background: #df243f; }
.daily-sales-status { min-height: 18px; margin: 0; padding: 10px 24px; border-bottom: 1px solid #e2e8f0; color: #475569; background: #fff; font-size: 10px; font-weight: 800; }
.daily-sales-status[data-tone="success"] { color: #047857; background: #ecfdf5; }
.daily-sales-status[data-tone="error"] { color: #b4233c; background: #fff1f2; }
.daily-sales-table-wrap { max-height: 520px; overflow: auto; }
.daily-sales-table { min-width: 900px !important; }
.daily-sales-table thead { position: sticky; z-index: 1; top: 0; }
.daily-sales-table td:first-child { color: #4f46a5; font-weight: 900; }
.daily-sales-table .daily-sales-articles { overflow-wrap: anywhere; color: #334155; font-size: 10px; line-height: 1.45; }
.daily-sales-table .has-balance { color: #c71d36 !important; font-weight: 900; }
.daily-sales-card > footer { display: flex; justify-content: flex-end; padding: 14px 24px; border-top: 1px solid #dbe4ee; background: #f8fafc; }
.daily-sales-card > footer button { min-height: 38px; padding: 0 18px; border: 1px solid #cbd5e1; border-radius: 9px; color: #334155; background: #fff; font: inherit; font-size: 11px; font-weight: 850; cursor: pointer; }

@media (max-width: 760px) {
  .store-chat-workspace { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .store-chat-sidebar {
    max-height: 220px;
    padding: 11px;
    border-right: 0;
    border-bottom: 1px solid #d9e1f1;
  }
  .store-chat-thread { padding: 8px; }
  .store-chat-avatar { width: 34px; height: 34px; }
  .store-chat-panel { min-height: 100vh; max-height: 100vh; }
  .store-chat-conversation { min-height: 0; }
  .daily-sales-dialog { width: calc(100vw - 12px); }
  .daily-sales-card > header { padding: 18px; }
  .daily-sales-status, .daily-sales-card > footer { padding-right: 18px; padding-left: 18px; }
}

/* Service Client */
body[data-nv-space="service_client"] { --nv-accent: #2563eb; --nv-accent-soft: #eff6ff; --nv-accent-rgb: 37, 99, 235; }
.nv-universe-menu-sc.is-current-universe > summary { color: #2563eb; background: #eff6ff; }
.home-space-service-client { --home-space-accent: #2563eb; --home-space-soft: #eff6ff; border-color: #bfdbfe !important; }
.home-space-service-client .tool-icon-service-client { color: #fff !important; background: #2563eb !important; }
.home-space-service-client h2, .home-space-service-client .primary-tool-link { color: #1d4ed8 !important; }

.home-space-service-client, body[data-nv-space="service_client"] { --space-accent:#2563eb; --space-card-bg:#eff6ff; --space-card-border:#93c5fd; --space-card-ink:#1e3a8a; --space-card-muted:#1d4ed8; }
.home-space.tool.home-space-service-client { grid-column:1 / -1; order:7; background:#eff6ff !important; }
.home-space-service-client .home-space-actions .primary-tool-link { color:white !important; background:#2563eb !important; }
.home-space-admin { order:8; }
@media(max-width:700px){ .home-space.tool.home-space-service-client {grid-column:1 / -1 !important;} }

.nv-header-nav .nv-universe-menu-sc { --nv-menu-color:#2563eb; }
