/* UI-001 rebuild — phase 1: Accueil. Loaded after the stable shell so this
   screen can be validated independently before the other modules move over. */
:root { --brand-burgundy:#7b001b; --brand-burgundy-strong:#5d0014; --border:#d9d4d6; --space-touch:44px; }
.mobile-scan-fab { display: none !important; }
#options .option-section > .flat-table { overflow-x:auto; }
.primary-btn,.ghost-btn { min-height:var(--space-touch); }
.stock-supervision-summary strong { overflow-wrap:anywhere; }
#dashboard {
  width: min(100%, 1520px);
  margin: 0 auto;
  padding: 18px 20px 40px;
  background: #f7f8fa;
}
#dashboard > .module-heading-title {
  margin: 0 0 14px;
  padding: 0 0 12px;
  border-bottom: 1px solid #dfe3ea;
}
#dashboard > .dashboard-pilotage-grid { display: block; }
#dashboard > .dashboard-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: 14px;
  align-items: start;
}
#dashboard > .dashboard-grid > .dashboard-widget {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid #dfe3ea;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(23,26,31,.05);
}
#dashboard > .dashboard-grid > [data-widget-id="stock-overview"] { grid-column: 1 / span 5; grid-row: 1 / span 2; }
#dashboard > .dashboard-grid > [data-widget-id="recent-movements"] { grid-column: 6 / span 4; grid-row: 1 / span 2; }
#dashboard > .dashboard-grid > [data-widget-id="priority-alerts"] { grid-column: 10 / span 3; grid-row: 1; }
#dashboard > .dashboard-grid > [data-widget-id="quick-scan"] { grid-column: 10 / span 3; grid-row: 2; }
#dashboard > .dashboard-grid > [data-widget-id="watch-list"] { grid-column: 6 / span 4; grid-row: 3; }
#dashboard > .dashboard-grid > [data-widget-id="orders-to-prepare"],
#dashboard > .dashboard-grid > [data-widget-id="urgent-recoveries"],
#dashboard > .dashboard-grid > [data-widget-id="inventory-validation"],
#dashboard > .dashboard-grid > [data-widget-id="recovery-documents"],
#dashboard > .dashboard-grid > [data-widget-id="risky-locations"],
#dashboard > .dashboard-grid > [data-widget-id="today-activity"],
#dashboard > .dashboard-grid > [data-widget-id="top-movements"],
#dashboard > .dashboard-grid > [data-widget-id="operational-health"] {
  display: block;
}
#dashboard .dashboard-widget-editbar { display: none; }
#dashboard .dashboard-grid.is-editing .dashboard-widget-editbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px;
  margin: -5px -5px 10px;
  padding: 5px;
  border: 1px solid #d9d4d6;
  border-radius: 6px;
  background: #f7e9ed;
}
#dashboard .dashboard-grid.is-editing .dashboard-widget-editbar .dashboard-hide-btn,
#dashboard .dashboard-grid.is-editing .dashboard-widget-editbar .dashboard-size-controls button {
  min-height: 32px;
  border-color: #d9d4d6;
  background: #fff;
  color: #1f1a1c;
}
#dashboard .dashboard-grid.is-editing .dashboard-widget-editbar .dashboard-size-controls button.active {
  border-color: #7b001b;
  background: #7b001b;
  color: #fff;
}
#dashboard .dashboard-widget h2,
#dashboard .dashboard-widget h3 { margin: 0 0 12px; color: #171a1f; font-size: 15px; font-weight: 850; }
#dashboard .dashboard-widget h3 + p { margin: -6px 0 12px; color: #68707d; font-size: 12px; }
#dashboard .dashboard-widget table { width: 100%; border-collapse: collapse; font-size: 12px; }
#dashboard .dashboard-widget th { padding: 8px 6px; border-bottom: 1px solid #dfe3ea; color: #68707d; font-size: 10px; text-align: left; text-transform: uppercase; }
#dashboard .dashboard-widget td { padding: 9px 6px; border-bottom: 1px solid #dfe3ea; vertical-align: top; }
#dashboard .dashboard-widget tr:last-child td { border-bottom: 0; }
#dashboard .dashboard-widget .primary-btn { min-height: 40px; background: #8f1230; border-color: #8f1230; }
#dashboard .dashboard-widget .status-badge { min-height: 26px; }
#dashboard .mobile-scan-home { display: none; }
@media (max-width: 1100px) {
  #dashboard > .dashboard-grid > [data-widget-id="stock-overview"] { grid-column: span 6; }
  #dashboard > .dashboard-grid > [data-widget-id="recent-movements"] { grid-column: span 6; }
  #dashboard > .dashboard-grid > [data-widget-id="priority-alerts"],
  #dashboard > .dashboard-grid > [data-widget-id="quick-scan"],
  #dashboard > .dashboard-grid > [data-widget-id="watch-list"] { grid-column: span 6; }
}

@media (min-width: 768px) {
  /* Keep the KPI strip and the operational cards available after the rebuild. */
  #dashboard > .dashboard-pilotage-grid {
    width: 100%;
    margin: 0 0 14px;
  }

  #dashboard > .dashboard-grid > [data-widget-id="orders-to-prepare"] { grid-column: 1 / span 4; grid-row: 3; }
  #dashboard > .dashboard-grid > [data-widget-id="urgent-recoveries"] { grid-column: 5 / span 4; grid-row: 3; }
  #dashboard > .dashboard-grid > [data-widget-id="inventory-validation"] { grid-column: 9 / span 4; grid-row: 3; }
  #dashboard > .dashboard-grid > [data-widget-id="recovery-documents"] { grid-column: 1 / span 4; grid-row: 4; }
  #dashboard > .dashboard-grid > [data-widget-id="risky-locations"] { grid-column: 5 / span 4; grid-row: 4; }
  #dashboard > .dashboard-grid > [data-widget-id="today-activity"] { grid-column: 9 / span 4; grid-row: 4; }
  #dashboard > .dashboard-grid > [data-widget-id="top-movements"] { grid-column: 1 / span 6; grid-row: 5; }
  #dashboard > .dashboard-grid > [data-widget-id="operational-health"] { grid-column: 7 / span 6; grid-row: 5; }

  #dashboard .dashboard-pilotage-main,
  #dashboard .dashboard-widget {
    border: 1px solid #d9d4d6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(23,26,31,.05);
  }

  #dashboard .dashboard-kpi-card,
  #dashboard .dashboard-chart-card,
  #dashboard .dashboard-summary-card {
    border-color: #d9d4d6;
    border-radius: 8px;
    box-shadow: none;
  }
}

/* UI-002 desktop — shell Stock : sidebar 250 px et contenu fluide. */
@media (min-width: 768px) {
  .stock-workspace {
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 16px;
  }

  .stock-workspace > .stock-sidebar {
    min-width: 250px;
  }

  .stock-workspace > .stock-subview-panel {
    min-width: 0;
  }

  .recovery-workspace.active-view {
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 16px;
  }

  .recovery-workspace > .recoveries-sidebar {
    min-width: 250px;
  }

  #options.options-workspace.active-view,
  #users.users-option-section.active-view {
    grid-template-columns: 250px minmax(0, 1fr) !important;
    gap: 16px;
  }

  #options.options-workspace > .options-sidebar,
  #users.users-option-section > .options-sidebar {
    min-width: 250px;
  }
}

@media (max-width: 767px) {
  /* UI-002 : véritable en-tête mobile — identité à gauche, action à droite. */
  #options.options-workspace > .options-sidebar-toggle,
  #users.users-option-section > .options-sidebar-toggle {
    display: flex;
    width: 100%;
    max-width: none;
    min-height: 58px;
    margin: 0 0 14px;
    padding: 0 14px;
    justify-content: flex-end;
    border: 0;
    border-bottom: 1px solid #d9d4d6;
    border-radius: 0;
    background: #fff;
    color: #7b001b;
  }

  #options.options-workspace > .options-sidebar-toggle::before,
  #users.users-option-section > .options-sidebar-toggle::before {
    content: "Options";
    margin-right: auto;
    color: #7b001b;
    font-size: 15px;
    font-weight: 800;
  }

  .stock-workspace > .stock-sidebar-toggle {
    display: flex;
    width: 100%;
    max-width: none;
    min-height: 58px;
    margin: 0 0 14px;
    padding: 0 14px;
    justify-content: flex-end;
    border: 0;
    border-bottom: 1px solid #d9d4d6;
    border-radius: 0;
    background: #fff;
    color: #7b001b;
  }

  .stock-workspace > .stock-sidebar-toggle::before {
    content: "Stock";
    margin-right: auto;
    color: #7b001b;
    font-size: 15px;
    font-weight: 800;
  }

  .recovery-workspace > .recoveries-sidebar-toggle {
    display: flex;
    width: 100%;
    max-width: none;
    min-height: 58px;
    margin: 0 0 14px;
    padding: 0 14px;
    justify-content: flex-end;
    border: 0;
    border-bottom: 1px solid #d9d4d6;
    border-radius: 0;
    background: #fff;
    color: #7b001b;
  }

  .recovery-workspace > .recoveries-sidebar-toggle::before {
    content: "Reprises";
    margin-right: auto;
    color: #7b001b;
    font-size: 15px;
    font-weight: 800;
  }

  html { overflow-x: hidden; }
  #dashboard { width: 100%; padding: 12px 12px 104px; }
  #dashboard { max-width: 100vw; }
  #dashboard > .module-heading-title { display: none; }
  #dashboard > .dashboard-grid { display: none; }
  #dashboard > .mobile-scan-home { display: block; }
  #dashboard .mobile-scan-home { width: 100%; }
  #users .user-accounts-panel { grid-template-columns: minmax(0, 1fr); }
  #users .workspace-toolbar .primary-btn { justify-content:center; }
  #users .workspace-toolbar .primary-btn span { display:inline; }
  .recovery-detail-actions > button:last-child { grid-column:1 / -1; }
  .mobile-bottom-nav .mobile-scan-fab { display: grid !important; }

  .mobile-global-scan-dialog {
    width: min(390px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    margin: auto;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    color: var(--text);
    box-shadow: 0 18px 48px rgba(23, 26, 31, .24);
  }

  .mobile-global-scan-dialog::backdrop { background: rgba(23, 26, 31, .48); }
  .mobile-global-scan-dialog .stock-action-form { gap: 14px; }
  .mobile-global-scan-dialog .stock-action-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .mobile-global-scan-dialog .stock-action-footer button { min-height: 44px; }
}

/* UI-002 — Options mobile : tiroir autonome, lisible et tactile. */
@media (max-width: 767px) {
  .options-workspace > .options-sidebar,
  .users-option-section > .options-sidebar {
    width: min(300px, calc(100vw - 48px));
    min-width: min(300px, calc(100vw - 48px));
    padding: 10px;
    align-content: start;
    gap: 4px;
    background: #fff;
    color: #1f1a1c;
    border: 1px solid #d9d4d6;
    border-left: 0;
    border-radius: 0 8px 8px 0;
    box-shadow: 10px 0 28px rgba(44, 23, 30, .18);
    box-sizing: border-box;
  }

  .options-workspace > .options-sidebar .stock-sidebar-heading,
  .users-option-section > .options-sidebar .stock-sidebar-heading {
    min-height: 58px;
    margin: 0 0 4px;
    padding: 8px 10px 12px;
    align-items: flex-start;
    gap: 10px;
    border-bottom: 1px solid #d9d4d6;
  }

  .options-sidebar .stock-sidebar-heading > svg {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    color: #7b001b;
  }

  .options-sidebar .stock-sidebar-heading strong {
    display: block;
    color: #7b001b;
    font-size: 14px;
    line-height: 20px;
  }

  .options-sidebar .stock-sidebar-heading span {
    display: block;
    margin-top: 1px;
    color: #6f686b;
    font-size: 11px;
    line-height: 16px;
  }

  .options-sidebar .stock-sidebar-group {
    margin: 0;
  }

  .options-sidebar .stock-sidebar-group-toggle {
    width: 100%;
    min-height: 44px;
    padding: 0 10px;
    gap: 8px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #1f1a1c;
    font-size: 13px;
    font-weight: 800;
    text-align: left;
  }

  .options-sidebar .stock-sidebar-group-toggle:hover,
  .options-sidebar .stock-sidebar-group-toggle.active,
  .options-sidebar .stock-sidebar-group.is-open > .stock-sidebar-group-toggle {
    border-color: rgba(123, 0, 27, .18);
    background: #f7e9ed;
    color: #7b001b;
  }

  .options-sidebar .stock-sidebar-group-toggle svg:last-child {
    width: 16px;
    height: 16px;
    margin-left: auto;
  }

  .options-sidebar .stock-sidebar-group-items {
    display: none;
    gap: 2px;
    padding: 2px 0 4px 14px;
  }

  .options-sidebar .stock-sidebar-group.is-open .stock-sidebar-group-items {
    display: grid;
  }

  .options-sidebar .stock-sidebar-group-items button {
    width: 100%;
    min-height: 44px;
    padding: 0 10px;
    gap: 8px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #6f686b;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
  }

  .options-sidebar .stock-sidebar-group-items button:hover,
  .options-sidebar .stock-sidebar-group-items button.active {
    border-color: rgba(123, 0, 27, .18);
    background: #f7e9ed;
    color: #7b001b;
  }

  .options-sidebar .stock-sidebar-group-items button.active {
    font-weight: 800;
  }

  .options-sidebar .stock-sidebar-group-items button svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
  }
}
@media (min-width: 768px) and (max-width: 1280px) {
  .filter-toolbar { display:flex; flex-wrap:wrap; }
  .filter-toolbar .switch-row { white-space:normal; }
}
@media (prefers-reduced-motion: reduce) {
  #dashboard *, #dashboard *::before, #dashboard *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Mode nuit — mêmes composants, surfaces et contrastes adaptés aux tokens dark. */
[data-theme="dark"] #options.options-workspace > .options-sidebar-toggle,
[data-theme="dark"] #users.users-option-section > .options-sidebar-toggle {
  background: var(--surface);
  color: var(--brand-burgundy);
  border-bottom-color: var(--border);
}

[data-theme="dark"] #options.options-workspace > .options-sidebar-toggle::before,
[data-theme="dark"] #users.users-option-section > .options-sidebar-toggle::before {
  color: var(--brand-burgundy);
}

[data-theme="dark"] .options-workspace > .options-sidebar,
[data-theme="dark"] .users-option-section > .options-sidebar {
  background: var(--surface);
  color: var(--text);
  border-color: var(--border);
  box-shadow: 10px 0 28px rgba(0, 0, 0, .35);
}

[data-theme="dark"] .options-sidebar .stock-sidebar-heading {
  border-bottom-color: var(--border);
}

[data-theme="dark"] .options-sidebar .stock-sidebar-heading > svg,
[data-theme="dark"] .options-sidebar .stock-sidebar-heading strong,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-toggle.active,
[data-theme="dark"] .options-sidebar .stock-sidebar-group.is-open > .stock-sidebar-group-toggle,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-items button.active {
  color: #d44a6b !important;
}

[data-theme="dark"] .options-sidebar .stock-sidebar-heading span,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-items button {
  color: var(--muted);
}

[data-theme="dark"] .options-sidebar .stock-sidebar-group-toggle,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-items button {
  background: transparent;
  border-color: transparent;
}

[data-theme="dark"] .options-sidebar .stock-sidebar-group-toggle {
  color: var(--text) !important;
}

[data-theme="dark"] .options-sidebar .stock-sidebar-group-toggle:hover,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-toggle.active,
[data-theme="dark"] .options-sidebar .stock-sidebar-group.is-open > .stock-sidebar-group-toggle,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-items button:hover,
[data-theme="dark"] .options-sidebar .stock-sidebar-group-items button.active {
  background: var(--brand-burgundy-soft);
  border-color: rgba(212, 74, 107, .28);
  color: var(--brand-burgundy) !important;
}

/* Commandes UI-002 : liste de travail et fiche centrée sur les articles. */
.order-active-filters { display:flex; flex-wrap:wrap; gap:8px; padding:12px 0; }
.order-active-filters button { min-height:44px; background:var(--brand-burgundy-soft); }
.order-prepare-list { display:grid; gap:12px; }
.order-prepare-card { display:grid; grid-template-columns:minmax(0,1fr) 180px; gap:12px 24px; padding:16px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.order-prepare-choice { display:flex; align-items:center; gap:12px; min-height:44px; cursor:pointer; }
.order-prepare-choice input { width:22px; height:22px; accent-color:var(--brand-burgundy); flex-shrink:0; }
.order-prepare-choice strong { font-size:14px; }
.order-prepare-choice small { display:block; color:var(--muted); margin-top:6px; line-height:1.5; }
.order-prepare-stock { grid-column:1; display:flex; gap:16px; flex-wrap:wrap; color:var(--muted); font-size:13px; }
.order-prepare-quantity { grid-column:2; grid-row:1 / span 2; display:grid; align-content:center; gap:8px; font-size:13px; }
.order-prepare-quantity input { min-height:44px; width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text); font:inherit; }
.order-timeline { display:grid; gap:16px; padding-left:24px; }
.order-timeline time { display:block; font-size:12px; color:var(--muted); margin-bottom:4px; }
@media (max-width:767px) {
  .order-prepare-card { grid-template-columns:minmax(0,1fr); }
  .order-prepare-quantity { grid-column:1; grid-row:auto; }
}
.order-hub-tools { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.order-hub-tools .orders-view-tabs { border:0; }
.order-hub-tools .orders-view-tabs button { min-height:44px; font-size:14px; }
.order-hub-tools .orders-view-tabs button.active { background:var(--brand-burgundy-soft); }
.order-hub { padding:16px; min-width:0; }
.order-hub-search { display:flex; gap:12px; align-items:flex-start; }
.order-hub-search > input { flex:1; min-width:0; }
.order-hub input, .order-hub select, .order-receipt-fields input { min-height:44px; width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text); font:inherit; }
.order-hub-filters summary, .order-detail-more summary, .order-extra-actions summary { padding:12px; min-height:44px; cursor:pointer; color:var(--brand-burgundy); font-weight:700; }
.order-hub-filters > div { display:grid; gap:12px; padding:12px; }
.order-hub label { display:grid; gap:6px; }
.order-hub-list { display:grid; }
.order-hub-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) 20px; gap:16px; align-items:center; padding:20px 4px; border:0; border-top:1px solid var(--border); background:var(--surface); color:var(--text); text-align:left; width:100%; }
.order-hub-row:hover { background:var(--brand-burgundy-soft); }
.order-hub-row > span { min-width:0; }
.order-hub-row strong { font-size:14px; overflow-wrap:anywhere; }
.order-hub-row small { display:block; margin-top:6px; font-size:13px; line-height:1.5; color:var(--muted); }
.order-hub-row .order-hub-date { color:var(--brand-burgundy); font-size:13px; font-weight:700; }
.order-hub-open { color:var(--brand-burgundy); }
.order-hub-empty { padding:24px 12px; color:var(--muted); }
.orders-section-heading { display:flex; align-items:baseline; gap:12px; margin:0 0 8px; }
.orders-section-heading h2 { margin:0; font-size:15px; font-weight:700; }
.orders-section-heading .muted-text { margin:0; font-size:12px; }
.stock-order-suggestions-heading { margin:20px 0 8px; padding-top:14px; border-top:1px solid var(--border); }
.table-secondary-line { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.order-suggestions-table { min-width:820px; width:100%; border-collapse:collapse; }
.order-suggestions-table th, .order-suggestions-table td { height:38px; padding:6px 8px; white-space:nowrap; }
.order-suggestions-table td:nth-child(2) { white-space:normal; min-width:210px; }
.order-suggestions-table input[type="checkbox"] { width:16px; height:16px; accent-color:var(--brand-burgundy); }
.order-quantity-input { width:76px; min-height:32px; padding:4px 6px; border:1px solid var(--border); border-radius:5px; background:var(--surface); color:var(--text); font:inherit; }
.module-breadcrumb { display:flex; align-items:center; gap:6px; margin:0 0 12px; color:var(--muted); font-size:12px; }
.module-breadcrumb svg { width:14px; height:14px; }
.module-breadcrumb strong { color:var(--text); font-weight:650; }
.module-breadcrumb button { min-height:28px; padding:0; border:0; background:transparent; color:var(--muted); font:inherit; cursor:pointer; }
.module-breadcrumb button:hover { color:var(--brand-burgundy); text-decoration:underline; }
.orders-data-table-wrap, .order-detail-table-wrap { width:100%; overflow:auto; }
.orders-data-table, .order-detail-table { width:100%; min-width:800px; border-collapse:collapse; }
.orders-data-table th, .orders-data-table td, .order-detail-table th, .order-detail-table td { height:38px; padding:7px 9px; vertical-align:middle; white-space:nowrap; }
.orders-data-table th, .order-detail-table th { background:var(--surface-muted); font-size:12px; font-weight:700; }
.order-table-row { cursor:pointer; }
.order-table-row:hover, .order-table-row:focus-visible { background:var(--brand-burgundy-soft); outline-color:var(--brand-burgundy); }
.stock-overview-heading { grid-template-columns:auto minmax(0,1fr) auto; align-items:center; }
.stock-demand-dialog { width:min(600px, calc(100vw - 28px)); }
.stock-demand-lines { display:grid; gap:10px; max-height:min(48vh, 420px); overflow:auto; }
.stock-demand-line { display:grid; grid-template-columns:minmax(0,1fr) 110px; align-items:end; gap:10px; padding:12px; border:1px solid var(--border); border-radius:8px; background:var(--surface-muted); }
.stock-demand-line > header { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.stock-demand-line > label:first-of-type { min-width:0; }
.stock-demand-line > label:first-of-type select, .stock-demand-line > label:first-of-type input { width:100%; }
.stock-demand-line > label:last-of-type input { width:100%; }
.stock-demand-add-actions { display:flex; gap:8px; flex-wrap:wrap; }
.stock-demand-add-actions button { min-height:34px; font-size:12px; }
.demand-row-actions { display:flex; align-items:center; gap:6px; }
.demand-action-btn { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:28px; padding:4px 8px; font-size:11px; white-space:nowrap; }
.demand-action-btn svg { width:14px; height:14px; }
.demand-action-btn:disabled { opacity:.48; cursor:not-allowed; }
.order-reception-state { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:650; }
.order-reception-state svg { width:16px; height:16px; }
.order-reception-state small { color:var(--muted); font-size:11px; font-weight:500; }
.order-reception-state.ok { color:var(--success); }
.order-reception-state.warning { color:var(--warning); }
.order-reception-state.danger { color:var(--danger); }
.order-reception-state.muted { color:var(--muted); }
.order-detail-page { width:100%; min-width:0; }
.order-detail-page-heading { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.order-detail-page-heading > div { flex:1; min-width:220px; }
.order-detail-page-heading > [data-order-detail-status] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.order-detail-page-heading h1, .order-detail-page-heading p { margin:0; }
.order-detail-page-heading p { margin-top:4px; color:var(--muted); font-size:13px; }
.order-detail-content { display:grid; gap:14px; min-width:0; }
.order-detail-content h3 { margin:0; font-size:16px; }
.order-detail-content > .order-detail-heading, .order-detail-content > .order-detail-context { display:none; }
.order-detail-table td:first-child { white-space:normal; min-width:220px; }
.order-detail-table td:first-child small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.order-detail-table input { min-height:34px; width:88px; padding:5px 7px; border:1px solid var(--border); border-radius:5px; background:var(--surface); color:var(--text); font:inherit; font-size:12px; }
.order-detail-table td:last-child input { width:150px; }
.order-price-fields { display:grid; gap:4px; }
.order-detail-page-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.order-detail-dialog { width:min(880px, calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:0; background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:12px; }
.order-detail-dialog .order-detail-form { display:flex; flex-direction:column; padding:24px; gap:16px; }
.order-detail-dialog .stock-action-header { flex-shrink:0; }
.order-detail-dialog h2 { overflow-wrap:anywhere; }
.order-detail-content { display:grid; gap:12px; min-width:0; }
.order-detail-content h3, .order-detail-content p { margin:0; }
.order-detail-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:13px; }
.order-detail-context { color:var(--muted); font-size:14px; }
.order-detail-line-list { display:grid; gap:12px; }
.order-detail-item { display:grid; gap:12px; padding:16px; border:1px solid var(--border); border-radius:8px; background:var(--surface); min-width:0; }
.order-detail-item strong { font-size:15px; overflow-wrap:anywhere; }
.order-detail-item small { display:block; margin-top:4px; line-height:1.5; color:var(--muted); }
.order-line-amounts { display:flex; flex-wrap:wrap; gap:16px; font-size:13px; color:var(--muted); }
.order-line-amounts b { color:var(--text); margin-left:4px; }
.order-detail-meta { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:12px 0; }
.order-detail-meta dt { color:var(--muted); font-size:12px; }
.order-detail-meta dd { margin:4px 0; overflow-wrap:anywhere; }
.order-receipt-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.order-receipt-fields label { display:grid; gap:6px; font-size:13px; }
.order-receipt-reason { grid-column:1/-1; }
.order-detail-dialog .stock-action-footer { position:sticky; bottom:-24px; padding:16px 0; background:var(--surface); display:flex; flex-wrap:wrap; gap:8px; border-top:1px solid var(--border); }
.order-detail-dialog .stock-action-footer button { min-height:44px; }
[data-stock-panel="stock-orders"], [data-stock-panel="stock-receptions"] { min-width:0; }
[data-stock-panel="stock-orders"] .stock-orders-panel, [data-stock-panel="stock-receptions"] .stock-receptions-panel { min-width:0; padding:16px; }
[data-stock-panel="stock-receptions"] .table-scroll { max-width:100%; overflow:auto; }
[data-stock-panel="stock-orders"] .page-heading p { max-width:680px; }
.stock-orders-heading h1 { margin-bottom:4px; }
@media (max-width:767px) {
  .orders-data-table, .order-detail-table { min-width:740px; }
  .order-detail-page-heading { align-items:flex-start; }
  .order-hub-tools { align-items:stretch; }
  .order-hub-tools > button { width:100%; min-height:44px; }
  .order-hub { padding:12px; }
  .order-hub-search { flex-wrap:wrap; }
  .order-hub-search > input { flex-basis:100%; }
  .order-hub-filters { width:100%; }
  .order-hub-row { grid-template-columns:minmax(0,1fr) 20px; gap:10px; padding:16px 0; }
  .order-hub-identity { grid-column:1; }
  .order-hub-state, .order-hub-quantity { grid-column:1; }
  .order-hub-open { grid-column:2; grid-row:1; }
  .order-hub-quantity strong, .order-hub-quantity small { display:inline; margin-right:12px; }
  .order-detail-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .order-detail-dialog .order-detail-form { padding:16px; min-height:100%; }
  .order-detail-dialog .stock-action-header { position:sticky; top:-1px; background:var(--surface); z-index:1; padding-block:8px; }
  .order-detail-dialog .stock-action-footer { bottom:-16px; flex-direction:column; margin-inline:0; margin-top:auto; padding-bottom:max(16px,env(safe-area-inset-bottom)); }
  .order-detail-dialog .stock-action-footer > * { width:100%; }
  .order-detail-dialog .stock-action-footer .primary-btn { order:-1; }
  .order-receipt-fields { grid-template-columns:1fr; }
  .order-detail-meta { grid-template-columns:1fr; }
}

/* UI-002 — Scan : parcours terrain en trois temps, scanner -> verifier -> enregistrer. */
/* Les textes d’interface ne doivent pas se comporter comme des zones d’édition au toucher. */
body { caret-color: transparent; }
button, h1, h2, h3, h4, h5, h6, p, span, small, strong, label, th, td, dt, dd, li, svg {
  -webkit-user-select: none;
  user-select: none;
}
input, textarea, select, [contenteditable="true"] {
  caret-color: auto;
  -webkit-user-select: text;
  user-select: text;
}

.scan-helper-text { display:flex; align-items:center; gap:6px; margin:-4px 0 0; color:var(--muted); font-size:12px; line-height:1.4; }
.scan-helper-text svg { width:14px; height:14px; flex:0 0 auto; color:var(--brand-burgundy); }
.scan-result-card { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px 12px; border:1px solid rgba(22,128,60,.24); border-radius:var(--radius-md); background:rgba(22,128,60,.07); }
.scan-result-card.is-unknown { border-color:rgba(194,106,0,.3); background:rgba(194,106,0,.08); }
.scan-result-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:rgba(22,128,60,.12); color:var(--success); }
.scan-result-card.is-unknown .scan-result-icon { background:rgba(194,106,0,.14); color:var(--warning); }
.scan-result-icon svg { width:18px; height:18px; }
.scan-result-card strong, .scan-result-card div span { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scan-result-card strong { color:var(--text); font-size:13px; }
.scan-result-card div span { margin-top:2px; color:var(--muted); font-size:11px; }
.scan-flow-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0; padding:0; list-style:none; }
.scan-flow-steps li { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:11px; font-weight:700; }
.scan-flow-steps li b { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--surface-muted); color:var(--muted); font-size:11px; }
.scan-flow-steps li.active { color:var(--brand-burgundy); }
.scan-flow-steps li.active b { background:var(--brand-burgundy); color:#fff; }
@media (min-width:768px) {
  .desktop-quick-scan .scan-result-card { margin-top:10px; }
  .desktop-quick-scan .scan-helper-text { margin-top:8px; }
  .desktop-quick-scan .scan-flow-steps { display:none; }
}
@media (max-width:767px) {
  .mobile-global-scan-dialog .scan-result-card { margin-top:-2px; }
  .mobile-global-scan-dialog .scan-flow-steps { margin-bottom:2px; }
  .mobile-global-scan-dialog .scan-helper-text { margin-top:-6px; }
  .mobile-global-scan-dialog select { min-height:46px; }
}

/* UI-002 — Réception par scanette Bluetooth. */
.reception-scan-panel { display:grid; gap:10px; margin:18px 0; padding:14px; border:1px solid rgba(123,0,27,.22); border-radius:12px; background:var(--brand-burgundy-soft); }
.reception-scan-step { display:flex; justify-content:space-between; gap:12px; align-items:center; color:var(--muted); font-size:12px; }
.reception-scan-step span { font-weight:800; color:var(--brand-burgundy); text-transform:uppercase; letter-spacing:.04em; }
.reception-scan-step strong { color:var(--text); }
.reception-scan-field { display:grid; grid-template-columns:22px minmax(0,1fr) 44px; gap:8px; align-items:center; min-height:52px; padding:4px 6px 4px 12px; border:2px solid rgba(123,0,27,.34); border-radius:10px; background:var(--surface); }
.reception-scan-field > svg { width:18px; color:var(--brand-burgundy); }
.reception-scan-field input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--text); }
.reception-scan-field .camera-scan-btn { width:40px; height:40px; background:var(--brand-burgundy); color:#fff; }
.reception-scan-hint { margin:0; color:var(--muted); font-size:12px; }
.reception-scan-progress { display:grid; grid-template-columns:auto auto; gap:6px 12px; align-items:center; color:var(--muted); font-size:12px; }
.reception-scan-progress strong { justify-self:end; color:var(--text); }
.reception-scan-progress-track { grid-column:1 / -1; height:5px; overflow:hidden; border-radius:999px; background:color-mix(in srgb, var(--brand-burgundy) 12%, var(--surface)); }
.reception-scan-progress-track span { display:block; height:100%; border-radius:inherit; background:var(--brand-burgundy); transition:width .2s ease; }
.reception-scan-feedback { display:flex; align-items:center; gap:8px; min-height:38px; padding:8px 10px; border-radius:8px; font-weight:700; font-size:13px; }
.reception-scan-feedback.success { background:rgba(22,128,60,.10); color:var(--success); }
.reception-scan-feedback.warning { background:rgba(194,106,0,.12); color:var(--warning); }
.reception-scan-feedback svg { width:17px; flex:0 0 auto; }
.reception-scan-undo { margin-left:auto; border:0; background:transparent; color:inherit; font-size:12px; font-weight:800; text-decoration:underline; }
.reception-scan-anomaly { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:10px; border:1px solid rgba(194,106,0,.35); border-radius:8px; background:#fffaf1; }
.reception-scan-anomaly[hidden] { display:none; }
.reception-scan-anomaly > div { flex:1 1 220px; }
.reception-scan-anomaly strong, .reception-scan-anomaly small { display:block; }
.reception-scan-anomaly strong { color:var(--warning); }
.reception-scan-anomaly small { margin-top:3px; color:var(--muted); }
.reception-scan-anomaly.is-accepted { opacity:.7; }
.reception-scan-items { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.reception-scan-items li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text); font-size:12px; }
.reception-scan-items li span { display:grid; gap:2px; min-width:0; }
.reception-scan-items strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reception-scan-items small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.reception-scan-items b { flex:0 0 auto; color:var(--brand-burgundy); }
.reception-scan-items .reception-scan-items-empty { justify-content:flex-start; color:var(--muted); background:transparent; }
.reception-anomaly-history { display:grid; gap:8px; margin:12px 0; padding:10px 12px; border:1px solid var(--border); border-radius:8px; background:var(--surface-muted); }
.reception-anomaly-history strong { color:var(--text); font-size:12px; }
.reception-anomaly-history ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.reception-anomaly-history li { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:12px; }
.reception-anomaly-history code { color:var(--text); font-family:inherit; font-weight:700; }
[data-receipt-line].is-scan-highlight { border-color:var(--success); box-shadow:0 0 0 3px rgba(22,128,60,.12); transition:box-shadow .2s ease,border-color .2s ease; }
@media (max-width:767px) {
  .reception-scan-panel { margin-inline:-4px; padding:12px; }
  .reception-scan-step { align-items:flex-start; flex-direction:column; gap:4px; }
  .reception-scan-anomaly > button { flex:1 1 calc(50% - 8px); }
}
/* Catalogue — UI-002 operational refresh */
.catalog-page-heading {
  margin-bottom: 2px;
}

.catalog-panel {
  padding: 20px;
  border-radius: 18px;
}

.catalog-heading {
  align-items: flex-start;
  margin-bottom: 18px;
}

.catalog-heading h2 {
  margin-top: 4px;
  font-size: clamp(20px, 2vw, 25px);
  letter-spacing: -0.02em;
}

.catalog-heading-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.catalog-mobile-scan {
  display: none;
}

.catalog-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.catalog-summary-card {
  min-height: 92px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-muted);
}

.catalog-summary-card span,
.catalog-summary-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.catalog-summary-card strong {
  color: var(--text);
  font-size: 24px;
  line-height: 1;
}

.catalog-summary-card.is-warning strong { color: var(--warning, #a16207); }
.catalog-summary-card.is-danger strong { color: var(--danger, #b42318); }

.catalog-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  align-items: end;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-muted);
}

.catalog-search-field {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--muted);
}

.catalog-search-field input {
  width: 100%;
  min-height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  outline: 0;
}

.catalog-table-wrap {
  margin-top: 14px;
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 14px;
}

.catalog-table {
  min-width: 820px;
}

.catalog-table th {
  white-space: nowrap;
}

.catalog-table td {
  vertical-align: middle;
}

.catalog-article-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 220px;
  padding: 3px 0;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.catalog-article-link > span:last-child,
.catalog-classification,
.catalog-stock-cell {
  display: grid;
  gap: 3px;
}

.catalog-article-link strong,
.catalog-classification strong,
.catalog-stock-cell strong { font-size: 13px; }
.catalog-article-link small,
.catalog-classification small,
.catalog-stock-cell small,
.catalog-barcode-cell { color: var(--muted); font-size: 12px; }
.catalog-stock-cell.is-empty strong { color: var(--danger, #b42318); }
.catalog-barcode-cell { max-width: 180px; word-break: break-word; }

.catalog-detail-dialog {
  width: min(560px, 100vw);
  max-width: 100vw;
  height: 100%;
  max-height: 100vh;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}

.catalog-detail-dialog::backdrop { background: rgb(15 23 42 / 42%); }
.catalog-detail-sheet { min-height: 100%; padding: 26px; overflow-y: auto; }
.catalog-detail-header,
.catalog-detail-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.catalog-detail-header h2 { margin: 4px 0 0; font-size: 24px; }
.catalog-detail-header p { margin: 5px 0 0; color: var(--muted); }
.catalog-detail-actions { display: flex; gap: 8px; margin: 22px 0; }
.catalog-detail-grid { display: grid; gap: 12px; }
.catalog-detail-card { padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-muted); }
.catalog-detail-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 14px 0 0; }
.catalog-detail-card dl div { display: grid; gap: 4px; }
.catalog-detail-card dt { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.catalog-detail-card dd { margin: 0; font-size: 13px; font-weight: 700; word-break: break-word; }
.catalog-detail-stock-list, .catalog-detail-history-list { display: grid; gap: 8px; margin-top: 14px; }
.catalog-detail-stock-row, .catalog-history-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--border); }
.catalog-detail-stock-row small, .catalog-history-row small { grid-column: 1 / -1; color: var(--muted); font-size: 12px; }
.catalog-history-row strong { color: var(--brand, #9f1239); }
.catalog-detail-card-heading h3 { margin: 4px 0 0; font-size: 16px; }

@media (max-width: 760px) {
  .catalog-panel { padding: 14px; }
  .catalog-heading { flex-direction: column; }
  .catalog-heading-actions { width: 100%; }
  .catalog-heading-actions button { flex: 1; justify-content: center; }
  .catalog-mobile-scan { display: inline-flex; }
  .catalog-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-toolbar { grid-template-columns: 1fr; }
  .catalog-status-filter select { width: 100%; }
  .catalog-table-wrap { margin-inline: -2px; }
  .catalog-detail-dialog { width: 100%; height: 100%; border-left: 0; }
  .catalog-detail-sheet { padding: 18px 16px calc(24px + env(safe-area-inset-bottom)); }
}

/* Vue stock — même hiérarchie que Catalogue */
.stock-page-heading { margin-bottom: 2px; }
.stock-supervision-summary { gap: 10px; }
.stock-supervision-summary .summary-tile { min-height: 92px; display: grid; align-content: center; gap: 4px; padding: 14px 16px; border-radius: 14px; }
.stock-supervision-summary .summary-tile strong { font-size: 24px; line-height: 1; }
.stock-supervision-summary .summary-tile small { color: var(--muted); font-size: 12px; font-weight: 700; }
.stock-supervision-panel { padding: 20px; border-radius: 18px; }
.stock-view-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto auto auto auto; align-items: end; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-muted); }
.stock-search-field { min-height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--muted); }
.stock-search-field input { width: 100%; min-height: 38px; padding: 0; border: 0; background: transparent; outline: 0; }
.stock-table-wrap { margin-top: 14px; overflow-x: auto; border: 1px solid var(--border); border-radius: 14px; }
.stock-supervision-table { min-width: 850px; }
.stock-article-link { display: inline-flex; align-items: center; gap: 10px; min-width: 220px; padding: 3px 0; border: 0; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.stock-article-link > span:last-child, .stock-location-cell, .stock-threshold-cell { display: grid; gap: 3px; }
.stock-article-link strong, .stock-location-cell strong, .stock-quantity-value { font-size: 13px; }
.stock-article-link small, .stock-location-cell small, .stock-threshold-cell small, .stock-last-move { color: var(--muted); font-size: 12px; }
.stock-threshold-cell small { display: block; }
.stock-quantity-value { min-width: 42px; }

@media (max-width: 900px) {
  .stock-view-toolbar { grid-template-columns: minmax(220px, 1fr) auto auto; }
  .stock-view-toolbar .switch-row { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .stock-supervision-panel { padding: 14px; }
  .stock-view-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .stock-view-toolbar .switch-row { grid-column: auto; }
  .stock-view-toolbar button { justify-content: center; }
  .stock-supervision-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stock-table-wrap { margin-inline: -2px; }
}

.order-reservations { display:grid; gap:10px; padding:14px; border:1px solid var(--border); border-radius:8px; background:var(--surface-muted); }
.order-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.order-section-heading span { color:var(--muted); font-size:12px; }
.order-section-heading h3 { margin:2px 0 0; }
.order-reservation-list { display:grid; gap:8px; }
.order-reservation-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--border); }
.order-reservation-row strong { display:block; }
.order-reservation-row small { display:block; margin-top:3px; color:var(--muted); line-height:1.4; }
.order-reservation-actions { display:flex; gap:4px; }
.order-handover-dialog { width:min(520px, calc(100vw - 32px)); }
.order-reassign-dialog { width:min(560px, calc(100vw - 32px)); }
.order-handover-dialog .stock-action-form { padding:24px; }
.order-reassign-dialog .stock-action-form { padding:24px; }
@media (max-width: 767px) {
  .stock-overview-heading { grid-template-columns:auto minmax(0,1fr); }
  .stock-overview-heading > button { grid-column:2; justify-self:start; }
  .stock-demand-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .stock-demand-dialog .stock-action-form { min-height:100%; padding:16px; }
  .stock-demand-line { grid-template-columns:minmax(0,1fr) 92px; }
  .order-reservation-row { grid-template-columns:minmax(0,1fr) auto; }
  .order-reservation-row .order-reservation-actions { grid-column:1 / -1; justify-content:flex-end; }
  .order-handover-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .order-handover-dialog .stock-action-form { min-height:100%; padding:16px; }
  .order-reassign-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .order-reassign-dialog .stock-action-form { min-height:100%; padding:16px; }
}
