/* ==========================================================
   RÉCEPTION IA PRO — FEUILLE CONSOLIDÉE (2026-07-10)
   Générée par fusion des couches historiques : chaque
   sélecteur n'existe plus qu'une fois, cascade préservée.
   Sauvegarde d'origine : app.css.bak-avant-consolidation
   ========================================================== */

@font-face {
  font-family: "Inter";
  src: url("/vendor/inter-variable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* --- Tokens --- */
:root {
  --soft-blue: #e7f1ff;
  --soft-teal: #e4faf5;
  --soft-amber: #fff3d9;
  --soft-coral: #ffe8eb;
  --surface-soft: #faf7f0;
  --surface-teal: #f7efdd;
  --surface-red: #fff1f2;
  --accent-teal: #14b8a6;
  --accent-indigo: #4f46e5;
  --shadow-strong: 0 18px 40px rgba(15, 23, 42, 0.12);
  --focus-ring: 0 0 0 3px rgba(37, 99, 235, 0.18);
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --success: #047857;
  --danger: #d92d4b;
  --warn: #b85c00;
  --blue: #0284c7;
  --rail: #0891b2;
  --accent-violet: #7c3aed;
  --accent-coral: #e84c62;
  --accent-amber: #d97706;
  --surface-blue: #eef5ff;
  --surface-cyan: #ecfeff;
  --surface-green: #ecfdf5;
  --surface-amber: #fff8e8;
  --surface-rose: #fff1f4;
  --radius: 8px;
  --radius-sm: 6px;
  --bg: #f5f7fa;
  --panel: #ffffff;
  --ink: #16233a;
  --muted: #5b6b80;
  --line: #e3e8ef;
  --sidebar: #14151a;
  --shadow: 0 1px 3px rgba(22, 35, 58, 0.07), 0 6px 18px rgba(22, 35, 58, 0.05);
  --shadow-hover: 0 4px 10px rgba(22, 35, 58, 0.1), 0 12px 28px rgba(22, 35, 58, 0.08);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

.icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

button, input, select, textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.brand strong, .brand span {
  display: block;
}

.field {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 760;
}

.nav-btn span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.nav-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sidebar-card strong, .sidebar-card span {
  display: block;
}

.sidebar-card span {
  margin-top: 5px;
  color: #cbd6df;
}

.sidebar-card p {
  margin: 10px 0 0;
  color: #aebbc6;
  line-height: 1.45;
}

.installer-details .field {
  margin-top: 10px;
}

.topbar-actions, .toolbar, .form-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 14px;
}

.btn.full {
  width: 100%;
}

.btn.icon-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.btn.icon-action svg {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.1;
}

.btn:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.alert {
  margin-bottom: 16px;
  padding: 13px 15px;
  border: 1px solid #f0c7c3;
  border-radius: 8px;
  background: #fdebea;
  color: var(--danger);
  font-weight: 800;
}

.hidden {
  display: none !important;
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

.command-center {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr);
  gap: 16px;
  margin-bottom: 16px;
}

.summary-line span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 780;
}

.summary-line strong {
  font-size: 0.95rem;
}

.bakery-activity-card strong, .bakery-activity-card span, .bakery-activity-card small {
  display: block;
}

.bakery-activity-card.red strong {
  color: #ef2f3d;
}

.bakery-activity-card.green strong {
  color: #00a86b;
}

.bakery-activity-card.orange strong {
  color: #d97800;
}

.bakery-activity-card span {
  color: var(--ink);
  font-weight: 850;
}

.today-focus-card span, .today-focus-card small {
  color: #436273;
  font-weight: 820;
}

.today-signal-row span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 820;
}

.bakery-menu-group {
  border: 1px solid #cfe3f5;
  border-radius: 6px;
  background: #ffffff;
}

.bakery-menu-tiles.compact {
  grid-template-columns: minmax(0, 1fr);
}

.bakery-menu-tile svg {
  width: 56px;
  height: 56px;
  fill: none;
  stroke: #374654;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bakery-menu-tile:hover svg, .bakery-menu-tile.stock-in svg, .bakery-menu-tile.stock-out svg {
  stroke: #28a4df;
}

.page-hero-actions {
  display: flex;
  justify-content: flex-end;
  align-items: end;
  gap: 10px;
}

.desktop-menubar, .page-menu-tiles {
  display: none;
}

.page-menu-tiles .bakery-menu-tile svg {
  width: 46px;
  height: 46px;
}

.summary-focus {
  display: grid;
  gap: 4px;
  width: 100%;
  min-height: 68px;
  margin-bottom: 10px;
  border: 1px solid #e3cfa6;
  border-radius: 8px;
  padding: 12px;
  background: #fcf5e6;
  color: #12364f;
  text-align: left;
}

.summary-focus strong, .summary-focus span {
  display: block;
}

.summary-focus span {
  color: #436273;
  font-weight: 760;
}

.quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.quick-action {
  min-height: 104px;
  display: grid;
  align-content: center;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  box-shadow: var(--shadow);
}

.quick-action strong, .quick-action span {
  display: block;
}

.quick-action strong {
  font-size: 1.05rem;
}

.quick-action span {
  color: var(--muted);
  line-height: 1.35;
}

.quick-action.primary {
  border-color: #9fd6cc;
  background: #e9f8f5;
}

.quick-action.danger {
  border-color: #f0c7c3;
  background: #fff0ef;
}

.day-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
  gap: 18px;
  align-items: stretch;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.day-card h2 {
  margin: 0 0 8px;
  font-size: 1.55rem;
  letter-spacing: 0;
}

.day-card p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.5;
}

.day-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.summary-tile {
  min-height: 86px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfb;
}

.summary-tile span, .summary-tile small {
  display: block;
}

.summary-tile span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 820;
}

.summary-tile strong {
  display: block;
  margin: 4px 0 2px;
  font-size: 1.55rem;
}

.summary-tile small {
  color: var(--muted);
}

.priority-panel {
  box-shadow: var(--shadow);
}

.validation-panel {
  margin-bottom: 16px;
}

.expert-details {
  margin-top: 16px;
}

.install-tools {
  margin: 0 0 14px;
}

.install-tools .toolbar {
  margin: 10px 0 0;
}

.sheet-details {
  margin-bottom: 16px;
}

.sheet-details > summary {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 12px;
  background: #ffffff;
  color: var(--muted);
  cursor: pointer;
  font-weight: 850;
  box-shadow: var(--shadow);
}

.sheet-details .sheet-panel {
  margin-top: 12px;
}

.expert-details > summary, .payload-details > summary {
  cursor: pointer;
  color: var(--muted);
  font-weight: 850;
}

.expert-details > summary {
  margin-bottom: 12px;
}

.panel-head.compact {
  margin-bottom: 10px;
}

.action-queue, .workflow-list, .integration-list, .validation-list {
  display: grid;
  gap: 10px;
}

.action-item, .workflow-item, .integration-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.action-item strong, .action-item span, .workflow-item strong, .workflow-item span, .integration-item strong, .integration-item span {
  display: block;
}

.action-item span, .workflow-item span, .integration-item span {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.4;
}

.integration-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.integration-card {
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffdf8;
}

.integration-card legend {
  padding: 0 6px;
  color: var(--text);
  font-weight: 900;
}

.field-help {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.35;
}

.integration-config-status {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.operations-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}

.metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.metric, .panel, .module-card, .plan-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.metric {
  padding: 17px;
}

.metric span, .metric small {
  display: block;
}

.metric span {
  color: var(--muted);
  font-weight: 820;
}

.metric strong {
  display: block;
  margin: 8px 0 4px;
  font-size: 2rem;
}

.metric small {
  color: var(--muted);
  line-height: 1.35;
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
  gap: 16px;
}

.module-grid, .plans-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.module-card, .plan-card {
  padding: 15px;
  min-height: 148px;
}

.module-card.locked {
  background: #f8fafb;
}

.module-card strong, .plan-card strong {
  display: block;
  margin-bottom: 8px;
}

.module-card p, .plan-card p, .note {
  color: var(--muted);
  line-height: 1.48;
}

.admin-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(135deg, #ffffff 0%, #edf8f4 58%, #eef3fa 100%);
  box-shadow: var(--shadow);
}

.admin-hero h2 {
  margin: 0 0 8px;
  font-size: 1.55rem;
}

.admin-hero p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.admin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.admin-kpi {
  min-height: 104px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.admin-kpi span, .admin-kpi small {
  display: block;
  color: var(--muted);
  font-weight: 820;
}

.admin-kpi strong {
  display: block;
  margin: 6px 0 3px;
  font-size: 1.75rem;
}

.admin-layout {
  align-items: start;
  margin-bottom: 16px;
}

.admin-client-grid, .admin-module-checklist {
  display: grid;
  gap: 10px;
}

.admin-client-card {
  display: grid;
  gap: 10px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
  color: var(--ink);
  text-align: left;
}

.admin-client-card.active {
  border-color: #9fd6cc;
  background: #edf9f6;
}

.admin-client-card strong, .admin-client-card span, .admin-client-card small, .admin-selected-card strong, .admin-selected-card span, .admin-selected-card small, .admin-module-row strong, .admin-module-row span {
  display: block;
}

.admin-client-card span, .admin-client-card small, .admin-selected-card span, .admin-selected-card small, .admin-module-row span {
  color: var(--muted);
  line-height: 1.4;
}

.admin-client-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.admin-selected-card, .admin-module-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.admin-module-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.admin-module-row.locked {
  background: #f8fafb;
}

.admin-plans-panel {
  margin-top: 16px;
}

.admin-agents-panel {
  margin: 0 0 14px;
}

.admin-agent-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.admin-agent-card {
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.admin-agent-card.disabled {
  background: #fbfcfd;
}

.admin-agent-card.locked {
  opacity: 0.72;
}

.admin-agent-card small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}

.admin-agent-schedule {
  display: grid;
  grid-template-columns: minmax(130px, 0.7fr) minmax(130px, 0.7fr) repeat(2, minmax(0, 1fr));
  gap: 9px;
  align-items: end;
  margin-top: 12px;
}

.admin-agent-schedule > div span, .admin-agent-schedule > div strong {
  display: block;
}

.admin-agent-schedule > div span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.admin-agent-schedule > div strong {
  margin-top: 5px;
  font-size: 0.86rem;
}

.admin-auto-layout {
  align-items: start;
}

.admin-profile-grid {
  display: grid;
  gap: 12px;
}

.admin-score-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid #b8dcc8;
  border-radius: 8px;
  background: #eefaf3;
}

.admin-score-card span, .admin-score-card small {
  display: block;
  color: var(--muted);
  font-weight: 820;
}

.admin-score-card strong {
  display: block;
  margin: 4px 0;
  font-size: 2rem;
  color: var(--success);
}

.admin-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.admin-autofill-field input {
  background: #f8fafb;
  color: var(--ink);
}

.admin-document-list {
  display: grid;
  gap: 8px;
}

.admin-document-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.admin-document-kpis article {
  padding: 12px;
  border: 1px solid #cdddeb;
  border-radius: 8px;
  background: #f3f8fc;
}

.admin-document-kpis span {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.admin-document-kpis strong {
  display: block;
  margin-top: 4px;
  color: #0f6392;
  font-size: 1.45rem;
}

.admin-document-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.admin-document-row strong, .admin-document-row span, .admin-document-row small {
  display: block;
}

.admin-document-row span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.86rem;
}

.admin-document-row small {
  margin-top: 3px;
  color: #506274;
  font-size: 0.8rem;
  line-height: 1.35;
}

.admin-document-missing {
  color: #9f3412 !important;
  font-weight: 800;
}

.admin-document-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
  align-items: center;
}

.admin-document-modal-card {
  width: min(1040px, calc(100vw - 28px));
  max-height: min(88vh, 920px);
  overflow: auto;
}

.admin-document-validation, .admin-document-official-box, .admin-document-form {
  margin-top: 12px;
}

.admin-document-alert {
  display: grid;
  gap: 4px;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid var(--line);
}

.admin-document-alert.ok {
  background: #ecfdf3;
  border-color: #8fd6aa;
  color: #14532d;
}

.admin-document-alert.warn {
  background: #fff7ed;
  border-color: #fdba74;
  color: #7c2d12;
}

.admin-document-alert span {
  font-size: 0.88rem;
}

.admin-document-official-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid #cdddeb;
  border-radius: 8px;
  background: #f3f8fc;
}

.admin-document-official-box > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.admin-document-official-box span {
  color: var(--muted);
  font-weight: 780;
}

.admin-document-group {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.admin-document-group + .admin-document-group {
  margin-top: 12px;
}

.admin-document-group h3 {
  margin: 0 0 12px;
  font-size: 1rem;
  color: #12344d;
}

.admin-document-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.admin-document-edit-field.required > span {
  color: #8a3b12;
}

.admin-document-edit-field textarea {
  min-height: 86px;
  resize: vertical;
}

.settings-admin-layout {
  align-items: start;
}

.admin-settings-panel {
  min-width: 0;
}

.admin-settings-grid {
  align-items: end;
}

.admin-settings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
}

.admin-schedule-preview, .admin-obligation-grid {
  display: grid;
  gap: 10px;
}

.admin-schedule-row, .admin-obligation-card {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.admin-schedule-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.admin-schedule-row strong, .admin-schedule-row span, .admin-schedule-row small, .admin-obligation-card strong, .admin-obligation-card span, .admin-obligation-card p {
  display: block;
}

.admin-schedule-row span, .admin-schedule-row small, .admin-obligation-card span, .admin-obligation-card p {
  color: var(--muted);
  line-height: 1.4;
}

.admin-schedule-row small, .admin-obligation-card p {
  margin: 5px 0 0;
  font-size: 0.86rem;
}

.admin-schedule-meta {
  display: grid;
  justify-items: end;
  gap: 5px;
}

.admin-obligation-panel {
  margin-top: 16px;
}

.admin-obligation-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-obligation-card.active {
  border-color: #b8dcc8;
  background: #f5fbf8;
}

.supplier-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.supplier-hero h2 {
  margin: 0 0 8px;
  font-size: 1.55rem;
}

.supplier-hero p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.supplier-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.supplier-kpi {
  min-height: 104px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.supplier-kpi span, .supplier-kpi small {
  display: block;
  color: var(--muted);
  font-weight: 820;
}

.supplier-kpi strong {
  display: block;
  margin: 6px 0 3px;
  font-size: 1.55rem;
}

.supplier-layout {
  align-items: start;
}

.supplier-list {
  display: grid;
  gap: 10px;
}

.supplier-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
  color: var(--ink);
  text-align: left;
}

.supplier-card.active {
  border-color: #9fd6cc;
  background: #edf9f6;
}

.supplier-card strong, .supplier-card span, .supplier-card small {
  display: block;
}

.supplier-card span, .supplier-card small {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}

.supplier-card-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  align-content: start;
}

.supplier-form-grid {
  margin-bottom: 12px;
}

.supplier-detail-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.supplier-detail-stats article {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.supplier-detail-stats span {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  line-height: 1.35;
}

.supplier-attach-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin-bottom: 14px;
}

.supplier-products-wrap {
  box-shadow: none;
}

.supplier-products-table {
  min-width: 760px;
}

.economy-layout {
  align-items: start;
}

.economy-status {
  margin-top: 12px;
  width: 100%;
}

.economy-proposal-card {
  border-left: 5px solid var(--primary);
}

.economy-proposal-card.approved {
  border-left-color: var(--success);
}

.economy-proposal-card.rejected {
  border-left-color: var(--danger);
}

.economy-proposal-card.unverified {
  border-left-color: var(--warn);
}

.economy-source-details {
  margin-top: 12px;
}

.economy-source-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.economy-source-row, .economy-source-proof {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 780;
}

.economy-source-row {
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.economy-source-row span, .economy-source-proof span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.economy-source-proof {
  margin-top: 10px;
}

.economy-proposal-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.economy-proposal-metrics article {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.economy-proposal-metrics span, .economy-proposal-metrics strong {
  display: block;
}

.economy-proposal-metrics span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.economy-proposal-metrics strong {
  margin-top: 4px;
}

.economy-rationale {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.4;
}

.card-list, .log-list {
  display: grid;
  gap: 10px;
}

.item-card, .log-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.item-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.item-card strong, .item-card span, .item-card small, .log-item strong, .log-item span {
  display: block;
}

.item-card small, .log-item span {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.4;
}

.invoice-line-editor.ignored {
  background: #f8fafb;
  opacity: 0.72;
}

.line-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.invoice-lines span {
  color: var(--ink);
  font-size: 0.9rem;
}

.invoice-line-notes {
  grid-column: 1 / -1;
  color: var(--muted);
  line-height: 1.35;
}

.analysis {
  margin: 14px 0 0;
  min-height: 170px;
  overflow: auto;
  padding: 12px;
  border: 1px solid #273849;
  border-radius: 8px;
  background: #101820;
  color: #e8f0f6;
  white-space: pre-wrap;
}

.payload-preview {
  max-height: 155px;
  overflow: auto;
  margin: 10px 0 0;
  padding: 10px;
  border: 1px solid #d4dde5;
  border-radius: 8px;
  background: #f4f7fa;
  color: #273849;
  font-size: 0.78rem;
  white-space: pre-wrap;
}

.payload-details {
  margin-top: 10px;
}

.toolbar {
  margin-bottom: 14px;
}

.simple-toolbar {
  justify-content: flex-start;
}

.admin-actions {
  margin: 12px 0 0;
}

.stock-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 16px;
  align-items: end;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.stock-hero h2 {
  margin: 0 0 8px;
  font-size: 1.55rem;
}

.stock-hero p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.stock-subtab.active, .stock-subtab:hover {
  background: var(--primary);
  color: #fff;
}

.stock-subpanel {
  display: none;
}

.stock-subpanel.active {
  display: block;
}

.auto-order-panel {
  margin-bottom: 16px;
  border-color: #c9ded8;
  background: #fbfefd;
}

.agent-run-status {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #b8dcc8;
  border-radius: 999px;
  background: #eefaf3;
  color: var(--success);
  font-size: 0.86rem;
  font-weight: 860;
  white-space: nowrap;
}

.auto-order-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.auto-order-kpi {
  min-height: 94px;
  padding: 14px;
  border: 1px solid #d7e5e1;
  border-radius: 8px;
  background: #fff;
}

.auto-order-kpi span, .auto-order-kpi small {
  display: block;
  color: var(--muted);
  font-weight: 820;
}

.auto-order-kpi strong {
  display: block;
  margin: 6px 0 3px;
  font-size: 1.45rem;
}

.auto-order-body {
  display: grid;
  grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.2fr);
  gap: 12px;
}

.auto-order-agent-list, .auto-order-plan-list {
  display: grid;
  gap: 9px;
}

.auto-agent-card, .auto-order-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fff;
}

.auto-agent-card strong, .auto-agent-card span, .auto-order-row strong, .auto-order-row span {
  display: block;
}

.auto-agent-card span, .auto-order-row span {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}

.auto-order-row {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(120px, 0.5fr) auto;
  gap: 10px;
  align-items: center;
}

.auto-order-row.danger {
  border-color: #efbeb9;
  background: #fff8f7;
}

.auto-order-row.warn {
  border-color: #f0d99d;
  background: #fffaf0;
}

.stock-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.stock-kpi {
  min-height: 110px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.stock-kpi span, .stock-kpi small {
  display: block;
  color: var(--muted);
}

.stock-kpi strong {
  display: block;
  margin: 7px 0 4px;
  font-size: 1.75rem;
}

.stock-visual-panel {
  margin-bottom: 16px;
}

.stock-priority-card {
  grid-column: 1 / -1;
}

.stock-chart-title strong, .stock-chart-title span {
  display: block;
}

.stock-chart-title strong {
  font-size: 1rem;
}

.stock-chart-title span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.86rem;
}

.stock-pie-chart {
  box-shadow: inset 0 0 0 12px rgba(255, 255, 255, 0.14);
}

.stock-chart-legend {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.stock-chart-legend-row {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.stock-chart-legend-row strong, .stock-chart-legend-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-chart-legend-row strong {
  font-size: 0.88rem;
}

.stock-chart-legend-row span {
  color: var(--muted);
  font-size: 0.82rem;
}

.chart-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.stock-priority-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.stock-priority-row {
  display: grid;
  gap: 8px;
  min-height: 124px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.stock-priority-row strong, .stock-priority-row span {
  display: block;
}

.stock-priority-row span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.82rem;
}

.stock-priority-bar {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef2;
}

.stock-priority-bar span {
  display: block;
  height: 100%;
  max-width: 100%;
  margin: 0;
  border-radius: inherit;
  background: var(--primary);
}

.stock-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.85fr);
  gap: 16px;
  margin-bottom: 16px;
}

.stock-alert-list, .stock-family-grid, .stock-product-grid {
  display: grid;
  gap: 10px;
}

.stock-alert-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.stock-alert-card strong, .stock-alert-card span {
  display: block;
}

.stock-alert-card span {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.4;
}

.stock-family-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stock-family-card {
  display: grid;
  gap: 6px;
  min-height: 102px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
  color: var(--ink);
  text-align: left;
}

.stock-family-card.active {
  border-color: #9fd6cc;
  background: #edf9f6;
}

.stock-family-card strong, .stock-family-card span {
  display: block;
}

.stock-family-card span {
  color: var(--muted);
  line-height: 1.35;
}

.stock-products-panel {
  margin-bottom: 16px;
}

.excel-stock-panel {
  margin-bottom: 16px;
}

.excel-sheet-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.stock-product-workbench .stock-sheet-wrap {
  margin: 0;
}

.rail-action {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 44px;
  border: 0;
  border-radius: 3px;
  padding: 0 9px;
  background: #8d89d0;
  color: #ffffff;
  font-size: 0.84rem;
  font-weight: 850;
  text-align: left;
}

.rail-action span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.rail-action svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rail-action.success {
  background: #24c63a;
}

.rail-action.danger {
  background: #ff794f;
}

.rail-action:hover {
  filter: brightness(1.06);
}

.stock-product-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.stock-product-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--success);
  border-radius: 8px;
  padding: 14px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.stock-product-card.warn {
  border-left-color: var(--warn);
}

.stock-product-card.info {
  border-left-color: var(--blue);
}

.stock-product-main {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.stock-product-main > div {
  min-height: 70px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #f8fbfb;
}

.stock-product-main span, .stock-product-meta span {
  display: block;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}

.stock-product-main strong {
  display: block;
  margin-top: 5px;
  font-size: 1.05rem;
}

.stock-product-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
}

.stock-product-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.compact-field {
  gap: 5px;
}

.bakery-stock-grid {
  margin-bottom: 16px;
}

.scanner-panel {
  min-width: 0;
}

.mobile-stock-scan-panel {
  display: none;
  margin-bottom: 16px;
}

body.phone-mode .mobile-stock-scan-panel {
  display: block;
}

.mobile-scan-actions, .mobile-scan-confirm, .mobile-move-actions {
  display: grid;
  gap: 10px;
}

.mobile-scan-actions {
  margin-bottom: 12px;
}

.mobile-scan-confirm {
  grid-template-columns: minmax(0, 1fr) 112px;
  margin-top: 12px;
}

.mobile-move-actions {
  margin-top: 12px;
}

.mobile-scan-product-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.mobile-scan-product-card strong, .mobile-scan-product-card span {
  display: block;
}

.mobile-scan-product-card span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.88rem;
}

.scan-assist {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #cfdde1;
  border-radius: 8px;
  background: #fbfcfd;
}

.scan-assist-head {
  display: grid;
  gap: 4px;
}

.scan-assist-head strong, .scan-assist-head span {
  display: block;
}

.scan-assist-head span {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.35;
}

.scan-assist-canvas {
  width: 100%;
  max-height: 56vh;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #101820;
  touch-action: none;
}

.scan-assist-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.phone-scan-hint, .barcode-catalog-box {
  display: grid;
  gap: 4px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfb;
}

.phone-scan-hint strong, .phone-scan-hint span, .barcode-catalog-box strong, .barcode-catalog-box span {
  display: block;
}

.phone-scan-hint span, .barcode-catalog-box span {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.35;
}

.phone-scan-hint a {
  color: var(--primary-dark);
  font-weight: 850;
}

.scanner-status, .expiry-photo-status {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #cfdde1;
  border-radius: 8px;
  background: #f7fbfd;
  color: #314555;
  font-size: 0.88rem;
  font-weight: 760;
  line-height: 1.35;
}

.expiry-photo-status {
  border-style: dashed;
  background: #fffdf7;
}

.scanner-status[data-kind="ok"], .expiry-photo-status[data-kind="ok"] {
  border-color: #b8dcc8;
  background: #eefaf3;
  color: var(--success);
}

.scanner-status[data-kind="warn"], .expiry-photo-status[data-kind="warn"] {
  border-color: #e7d09a;
  background: #fff8e6;
  color: #7a5200;
}

.scanner-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto auto auto auto;
  gap: 10px;
  align-items: end;
}

.scanner-code-field {
  min-width: 0;
}

.scanner-video {
  width: 100%;
  max-height: 280px;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #101820;
  object-fit: cover;
}

.scan-result {
  margin-top: 12px;
}

.scan-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.scan-proposal {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  padding: 10px;
  border-radius: 8px;
  background: #edf9f6;
}

.scan-proposal strong, .scan-proposal span {
  display: block;
}

.scan-proposal span {
  color: var(--muted);
  font-size: 0.86rem;
}

.barcode-product-editor {
  margin-top: 12px;
}

.stock-move-grid {
  margin-top: 12px;
  align-items: end;
}

.scanner-apply {
  align-self: end;
}

.scan-json {
  min-height: 110px;
}

.sheet-panel {
  margin-top: 16px;
}

.sheet-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 260px);
  gap: 12px;
  margin-bottom: 12px;
}

.stock-sheet-wrap {
  max-height: 64vh;
}

.stock-sheet-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 1;
}

.excel-name-box, .excel-fx {
  display: grid;
  min-height: 38px;
  place-items: center;
  border-right: 1px solid #d8e1e8;
  background: #eef3f6;
  color: #435263;
  font-weight: 850;
}

.excel-fx {
  font-style: italic;
  color: var(--primary-dark);
}

.excel-formula-bar input {
  min-height: 38px;
  border: 0;
  border-radius: 0;
  background: #ffffff;
  font-family: Consolas, "Liberation Mono", monospace;
  font-size: 0.9rem;
}

.excel-sheet-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 0.86rem;
}

.excel-sheet-summary strong, .excel-sheet-summary span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid #d8e1e8;
  border-radius: 999px;
  background: #f8fbfb;
}

.excel-table-wrap {
  border-radius: 6px;
  box-shadow: none;
}

.excel-stock-table thead th {
  background: #eef3f6;
  color: #435263;
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0;
  text-align: center;
  text-transform: none;
}

.excel-stock-table tbody .excel-row-number {
  z-index: 3;
  font-size: 0.78rem;
  font-weight: 800;
}

.excel-cell {
  background: #ffffff;
}

.excel-cell:focus-within, .excel-readonly:focus, .excel-cell:hover {
  outline: 2px solid #0875d1;
  outline-offset: -2px;
}

.excel-readonly {
  padding: 0 8px !important;
  background: #fbfcfd;
  color: #435263;
  font-weight: 760;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.excel-muted-cell {
  color: var(--muted);
  font-weight: 650;
}

.excel-money {
  text-align: right;
}

.excel-center {
  text-align: center;
}

.excel-empty {
  padding: 14px !important;
  color: var(--muted);
}

.sheet-input {
  min-height: 30px;
  width: 100%;
  margin: 2px 0;
  padding: 4px 7px;
  border-color: #c9d4dd;
  border-radius: 6px;
  font-size: 0.88rem;
}

.sheet-input.strong {
  font-weight: 850;
}

.sheet-input.muted {
  color: var(--muted);
  font-size: 0.82rem;
}

.sheet-input.number {
  max-width: 116px;
}

.sheet-input.unit {
  max-width: 72px;
}

.excel-input.number {
  max-width: none;
  text-align: right;
}

.excel-input.strong {
  font-weight: 850;
}

.excel-checkbox {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.sheet-pair {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 6px;
}

.sheet-check {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
  color: var(--muted);
  font-weight: 800;
}

.sheet-check input {
  width: auto;
}

.dirty-row td {
  background: #fff8e8;
}

.dirty-row .excel-row-number {
  background: #ffe9b8;
  color: #6c4700;
}

.diagnostic-box, .diagnostic-grid {
  display: grid;
  gap: 10px;
}

.diagnostic-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.diagnostic-grid article {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.diagnostic-grid span {
  display: block;
  margin-top: 7px;
  color: var(--muted);
}

.planning-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 16px;
  align-items: end;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.planning-hero h2 {
  margin: 0 0 8px;
  font-size: 1.55rem;
}

.planning-hero p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.planning-controls, .planning-stats {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(170px, 1fr) auto;
  gap: 12px;
}

.planning-nav-controls {
  display: flex;
  gap: 8px;
  align-items: end;
  justify-content: flex-end;
}

.planning-icon-btn svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.planning-icon-btn:hover {
  border-color: var(--primary);
  color: var(--primary);
}

.planning-agent-status {
  display: none;
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffdf8;
}

.planning-agent-status.ok, .planning-agent-status.warn {
  display: grid;
  gap: 3px;
}

.planning-agent-status.ok {
  border-color: #aedcc7;
  background: #f0faf5;
}

.planning-agent-status.warn {
  border-color: #f0cc91;
  background: #fff8eb;
}

.planning-agent-status strong, .planning-agent-status span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.planning-agent-status span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.planning-stat span, .planning-stat small {
  display: block;
  color: var(--muted);
  font-weight: 820;
}

.planning-layout {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.planning-calendar-panel {
  order: 1;
  min-width: 0;
}

.planning-manual-panel {
  order: 2;
  width: min(100%, 980px);
}

.planning-day-grid {
  display: grid;
  grid-template-columns: 64px minmax(560px, 1fr);
}

.planning-week-grid {
  display: grid;
  grid-template-columns: 64px repeat(7, minmax(136px, 1fr));
  max-height: min(720px, 72vh);
}

.calendar-corner {
  left: 0;
  z-index: 4;
  border-right: 1px solid var(--line);
}

.calendar-day-head {
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 7px 9px;
  border-right: 1px solid var(--line);
}

.calendar-day-head strong, .calendar-day-head span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-day-head strong {
  font-size: 0.86rem;
  text-transform: capitalize;
}

.calendar-day-head span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 850;
}

.calendar-day-head.today {
  background: #eaf7ff;
  color: #006ca8;
}

.calendar-time {
  position: sticky;
  left: 0;
  z-index: 2;
  min-height: 48px;
  padding: 8px 7px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid #e5edf2;
  background: #fbfcfd;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
  text-align: right;
}

.calendar-slot {
  min-height: 48px;
  padding: 4px;
  border-right: 1px solid #edf2f6;
  border-bottom: 1px solid #e5edf2;
  background: #ffffff;
  outline: 2px solid transparent;
  outline-offset: -2px;
  cursor: pointer;
  transition: background 0.12s ease, outline-color 0.12s ease;
}

.calendar-slot:hover, .calendar-slot.is-drop-target, .planning-month-cell.is-drop-target {
  background: #edf8ff;
  outline-color: #1b8fd2;
}

.calendar-slot.has-items {
  background: #fffdf8;
}

.calendar-slot-items, .planning-month-items, .planning-unscheduled-list {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.planning-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(132px, 1fr));
}

.planning-month-weekday {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 8px;
  border-right: 1px solid #263746;
  border-bottom: 1px solid var(--line);
  background: #101820;
  color: #ffffff;
  font-weight: 900;
  text-align: center;
}

.planning-month-cell {
  min-height: 126px;
  padding: 0 7px 7px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #ffffff;
  outline: 2px solid transparent;
  outline-offset: -2px;
  cursor: pointer;
  transition: background 0.12s ease, outline-color 0.12s ease;
}

.planning-month-cell header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 34px;
  margin: 0 -7px 7px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--line);
  background: #faf7f0;
  color: var(--text);
  font-weight: 900;
}

.planning-month-cell header small {
  display: inline-grid;
  min-width: 22px;
  min-height: 22px;
  place-items: center;
  border-radius: 999px;
  background: #e8f4ff;
  color: #006ca8;
  font-size: 0.72rem;
}

.planning-month-cell.today header {
  background: #eaf7ff;
  color: #006ca8;
}

.planning-month-cell.outside {
  background: #f6f8fb;
  color: var(--muted);
}

.planning-chip:active {
  cursor: grabbing;
}

.planning-chip.dragging {
  opacity: 0.55;
}

.planning-chip.locked {
  cursor: default;
  opacity: 0.72;
}

.planning-chip strong, .planning-chip span, .planning-chip small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planning-chip.to_schedule, .planning-chip.pending_client_confirmation {
  border-color: #f0cc91;
  border-left-color: #d78316;
  background: #fff8eb;
}

.planning-chip.collision, .planning-chip.cancelled, .planning-chip.customer_cancelled {
  border-color: #e9aaa6;
  border-left-color: var(--danger);
  background: #fff4f3;
}

.planning-chip.source-whatsapp {
  box-shadow: inset -3px 0 0 #31b66d;
}

.planning-chip.source-email {
  box-shadow: inset -3px 0 0 #6f7de8;
}

.planning-chip.source-sms, .planning-chip.source-voice {
  box-shadow: inset -3px 0 0 #00a6a6;
}

.planning-chip.source-admin {
  border-color: #f0cc91;
  border-left-color: var(--warn);
  background: #fff8eb;
  box-shadow: inset -3px 0 0 var(--warn);
}

.planning-unscheduled {
  border: 1px solid #f0cc91;
  border-radius: 8px;
  background: #fffaf0;
}

.planning-unscheduled header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #f0cc91;
}

.planning-unscheduled header span {
  color: var(--muted);
  font-weight: 850;
}

.planning-unscheduled-list {
  padding: 8px;
}

.appointment-card {
  border-left: 5px solid var(--primary);
}

.appointment-card.pending_client_confirmation, .appointment-card.to_schedule {
  border-left-color: var(--warn);
}

.appointment-card.collision, .appointment-card.cancelled {
  border-left-color: var(--danger);
}

.appointment-card p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.appointments-panel {
  margin-top: 16px;
}

.table-wrap {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

td strong, td span {
  display: block;
}

td span {
  color: var(--muted);
  font-size: 0.86rem;
}

.stock-low {
  color: var(--warn);
  font-weight: 900;
}

.orders-panel {
  margin-top: 16px;
}

.brand-logo {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  width: 24px;
  height: 24px;
}

input, select {
  min-height: 36px;
  padding: 6px 9px;
}

textarea {
  resize: vertical;
  line-height: 1.5;
  min-height: 112px;
  padding: 9px;
}

.bakery-desktop {
  border: 1px solid #cfdde8;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
  overflow: hidden;
  margin-bottom: 10px;
}

.bakery-inventory-summary h2 {
  margin: 0 0 12px;
  font-size: 1.05rem;
  display: none;
}

.home-command:hover, .home-command.primary {
  border-color: var(--primary);
  background: #eef7fd;
}

.home-advanced-menu > summary {
  cursor: pointer;
  padding: 8px 12px;
  color: #435263;
  font-size: 0.84rem;
  font-weight: 850;
}

.bakery-activity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: 8px;
}

.bakery-activity-card {
  border: 1px solid #e7dbc6;
  border-radius: 8px;
  background: #ffffff;
  min-height: 64px;
  padding: 9px 11px;
  box-shadow: none;
}

.bakery-activity-card strong {
  color: #0875d1;
  margin-bottom: 2px;
  font-size: 1.35rem;
}

.bakery-activity-card small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 760;
  text-transform: uppercase;
  margin-top: 1px;
}

.bakery-menu-tiles, .bakery-menu-tiles.compact {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  padding: 7px;
}

.overview-action-strip, .split, .operations-grid, .stock-dashboard-grid, .auto-order-body, .supplier-layout, .planning-workbench, .invoice-workbench {
  gap: 10px;
  margin-bottom: 10px;
}

.panel, .sheet-details, .expert-details {
  padding: 12px;
}

.panel h2 {
  margin: 0;
  font-size: 1.02rem;
}

.card-list, .workflow-list, .integration-list, .log-list, .stock-alert-list, .stock-family-grid, .stock-movement-list, .supplier-list, .validation-list, .action-queue {
  gap: 7px;
}

.stock-subnav {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
  gap: 5px;
  margin-bottom: 10px;
  padding: 6px;
}

.tab-panel[data-panel="inventory"] > .stock-subnav {
  display: flex;
}

.stock-subtab {
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-weight: 850;
  min-height: 34px;
  padding: 0 10px;
}

.stock-kpi-grid, .auto-order-kpi-grid, .admin-kpi-grid, .supplier-kpi-grid, .planning-stats, .stock-visual-grid {
  gap: 8px;
  margin-bottom: 10px;
}

.scanner-grid, .barcode-product-editor, .stock-move-grid, .form-grid {
  gap: 8px;
}

.scanner-status, .expiry-photo-status, .scan-card, .scan-proposal, .empty {
  padding: 8px 10px;
}

th, td {
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
  padding: 8px 10px;
}

.orders-panel, .auto-order-panel, .stock-visual-panel, .stock-products-panel, .excel-stock-panel, .appointments-panel, .admin-plans-panel {
  margin-top: 10px;
  margin-bottom: 10px;
}

.stock-compact-header {
  border-bottom: 0;
}

.bread-action .field {
  min-width: 180px;
}

.bread-btn {
  min-height: 36px;
}

.excel-stock-panel .panel-head {
  align-items: end;
}

.stock-main-toolbar {
  grid-template-columns: minmax(260px, 1fr) minmax(160px, 220px);
  margin-bottom: 8px;
}

.stock-product-workbench {
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 10px;
  align-items: stretch;
  display: block;
}

.excel-formula-bar {
  grid-template-columns: 76px 42px minmax(0, 1fr);
  gap: 0;
  align-items: center;
  margin-bottom: 8px;
  border: 1px solid #cbd6df;
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
  display: none;
}

.excel-stock-table {
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.86rem;
  min-width: 850px;
}

.excel-stock-table .excel-column-row th {
  top: 0;
  z-index: 4;
  color: #ffffff;
  height: 24px;
  background: #0d7bc9;
}

.excel-input {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  min-height: 33px;
  padding: 4px 6px;
  font-size: 0.82rem;
}

.excel-stock-table .excel-corner, .excel-stock-table .excel-row-number {
  position: sticky;
  left: 0;
  z-index: 5;
  background: #e5ebf0;
  color: #536171;
  text-align: center;
  width: 38px;
  min-width: 38px;
  max-width: 38px;
}

.excel-stock-table td:nth-child(2), .excel-stock-table th:nth-child(2) {
  width: 72px;
}

.excel-stock-table td:nth-child(3), .excel-stock-table th:nth-child(3) {
  width: 180px;
}

.excel-stock-table td:nth-child(4), .excel-stock-table th:nth-child(4), .excel-stock-table td:nth-child(5), .excel-stock-table th:nth-child(5), .excel-stock-table td:nth-child(6), .excel-stock-table th:nth-child(6) {
  width: 68px;
}

.excel-stock-table td:nth-child(7), .excel-stock-table th:nth-child(7) {
  width: 120px;
}

.excel-stock-table td:nth-child(8), .excel-stock-table th:nth-child(8) {
  width: 100px;
}

.excel-stock-table td:nth-child(9), .excel-stock-table th:nth-child(9) {
  width: 52px;
}

.excel-stock-table td:nth-child(10), .excel-stock-table th:nth-child(10) {
  width: 84px;
}

.stock-row-actions {
  display: flex;
  gap: 5px;
  align-items: center;
}

.mini-action {
  min-height: 27px;
  border: 1px solid #cbd8e4;
  border-radius: 6px;
  padding: 0 6px;
  background: #ffffff;
  color: #314555;
  font-size: 0.78rem;
  font-weight: 850;
}

.mini-action:hover {
  border-color: var(--primary);
  color: var(--primary-dark);
}

.stock-actions-cell {
  padding: 0 6px !important;
}

.excel-stock-table .badge {
  min-height: 20px;
  padding: 2px 5px;
  font-size: 0.66rem;
}

.stock-action-rail {
  gap: 7px;
  align-content: start;
  padding: 8px;
  border: 1px solid #938fd0;
  border-radius: 8px;
  background: #b5b0f2;
  display: none;
}

body.phone-mode .stock-visual-panel, body.phone-mode .stock-dashboard-grid, body.phone-mode .auto-order-panel, body.phone-mode .bakery-desktop, body.phone-mode .excel-stock-panel, body.phone-mode .stock-cards-details, body.phone-mode .bakery-stock-grid, body.phone-mode .orders-panel {
  display: none;
}

body.phone-mode .excel-stock-panel {
  display: block;
}

body.phone-mode .excel-stock-panel .panel-head, body.phone-mode .excel-sheet-actions, body.phone-mode .stock-main-toolbar, body.phone-mode .bread-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

body.phone-mode .excel-stock-table {
  min-width: 880px;
}

body.phone-mode .excel-column-row {
  display: none;
}

body.phone-mode .excel-stock-table .excel-field-row th {
  top: 0;
}

body.phone-mode .stock-hero {
  margin-bottom: 12px;
}

body.phone-mode .stock-hero p {
  display: none;
}

body.phone-mode .stock-kpi-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-command.secondary:hover {
  border-color: #8fc6ed;
}

.action-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  border-color: #d7e3ee;
  background: #ffffff;
}

.action-item .badge {
  align-self: start;
  border-radius: 7px;
  white-space: nowrap;
}

.validation-card {
  border-left: 4px solid var(--primary);
  background: #ffffff;
}

.validation-card .item-actions {
  align-items: center;
}

.validation-card .item-actions .btn {
  min-width: 102px;
}

.workshop-panel {
  display: grid;
  grid-template-columns: minmax(180px, 0.24fr) minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  margin-bottom: 10px;
  padding: 12px;
  border: 1px solid #cfe3f5;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.workshop-panel h2 {
  margin: 0;
  font-size: 1.08rem;
}

.workshop-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.workshop-action {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-areas: "icon title"
    "icon detail";
  gap: 2px 9px;
  align-items: center;
  min-height: 70px;
  border: 1px solid #dbe6ef;
  border-radius: 8px;
  padding: 10px;
  background: #fffdf8;
  color: #314555;
  text-align: left;
}

.workshop-action.primary, .workshop-action:hover {
  border-color: var(--primary);
  background: #eef7fd;
}

.workshop-action svg {
  grid-area: icon;
  width: 28px;
  height: 28px;
  fill: none;
  stroke: var(--primary);
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.workshop-action strong {
  grid-area: title;
  min-width: 0;
  font-size: 0.92rem;
  line-height: 1.15;
}

.workshop-action span {
  grid-area: detail;
  min-width: 0;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 720;
  line-height: 1.2;
}

body.workshop-mode .installer-details, body.workshop-mode .sidebar-card, body.workshop-mode .expert-details, body.workshop-mode .home-advanced-menu, body.workshop-mode .desktop-menubar, body.workshop-mode .nav-btn[data-tab="billing"], body.workshop-mode .nav-btn[data-tab="admin"], body.workshop-mode .nav-btn[data-tab="economy"], body.workshop-mode .nav-btn[data-tab="reminders"], body.workshop-mode .stock-subtab[data-stock-subtab="tableur"], body.workshop-mode .stock-subtab[data-stock-subtab="journal"], body.workshop-mode .stock-subtab[data-stock-subtab="pilotage"] {
  display: none;
}

.production-panel {
  margin-bottom: 10px;
}

.production-catalog-panel {
  margin-top: 16px;
}

.production-catalog-actions {
  justify-content: flex-end;
}

.production-catalog-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(205px, 1fr));
  gap: 12px;
}

.production-product-card:hover, .production-product-card:focus-visible {
  border-color: var(--primary);
  outline: 0;
  box-shadow: 0 14px 28px rgba(8, 117, 209, 0.16);
  transform: translateY(-1px);
}

.production-product-card svg {
  width: 66px;
  height: 66px;
  padding: 13px;
  border-radius: 8px;
  background: linear-gradient(135deg, #eaf7ff, #f1fff9);
  color: var(--primary-dark);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
  box-shadow: inset 0 0 0 1px rgba(8, 117, 209, 0.16);
}

.production-product-card strong, .production-product-card span, .production-product-card small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.production-product-card strong {
  font-size: 1.08rem;
  line-height: 1.2;
}

.production-product-card span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1.3;
}

.production-product-card small {
  align-self: end;
  color: #314555;
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.35;
}

.production-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 0.7fr);
  gap: 14px;
  align-items: start;
}

.production-main {
  display: grid;
  gap: 12px;
}

.production-preview, .production-lines {
  display: grid;
  gap: 8px;
}

.production-decision {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 72px;
  padding: 12px;
  border: 1px solid #b8dcc8;
  border-left: 5px solid var(--success);
  border-radius: 8px;
  background: #eefaf3;
}

.production-decision.warn {
  border-color: #efd2a6;
  border-left-color: var(--warn);
  background: #fff8e9;
}

.production-decision.danger {
  border-color: #efb8b2;
  border-left-color: var(--danger);
  background: #fff4f3;
}

.production-decision strong, .production-decision span {
  display: block;
}

.production-decision span {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.production-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.production-metrics article {
  min-height: 62px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.production-metrics span, .production-metrics strong {
  display: block;
}

.production-metrics span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 820;
}

.production-metrics strong {
  margin-top: 4px;
  font-size: 1.05rem;
}

.production-summary {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px solid #cfe3f5;
  border-radius: 8px;
  background: #f3f9ff;
}

.production-summary strong, .production-summary span, .production-line strong, .production-line span {
  display: block;
}

.production-summary span, .production-line span {
  color: var(--muted);
  line-height: 1.35;
}

.production-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--primary);
  border-radius: 8px;
  background: #ffffff;
}

.production-line.warn {
  border-left-color: var(--warn);
  background: #fffaf0;
}

.production-line.danger {
  border-left-color: var(--danger);
  background: #fff4f3;
}

.stock-preparation-panel {
  margin-top: 12px;
}

.stock-preparation-board, .mobile-preparation-board, .preparation-lines {
  display: grid;
  gap: 8px;
}

.stock-preparation-card, .mobile-preparation-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.stock-preparation-card.active, .mobile-preparation-card {
  border-color: #8bc7f2;
  box-shadow: inset 0 0 0 1px rgba(8, 117, 209, 0.14);
}

.stock-preparation-card small a {
  color: var(--primary-dark);
  font-weight: 850;
}

.preparation-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--warn);
  border-radius: 8px;
  background: #fffdf8;
}

.preparation-line.ok {
  border-left-color: var(--success);
  background: #effaf4;
}

.preparation-line.info {
  border-left-color: var(--primary);
  background: #f8f2e5;
}

.preparation-line strong, .preparation-line span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.preparation-line span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.production-tracking-panel {
  margin-top: 16px;
}

.production-tracking-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.production-tracking-kpis article {
  min-height: 76px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.production-tracking-kpis span, .production-tracking-kpis strong, .production-tracking-kpis small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.production-tracking-kpis span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
  text-transform: uppercase;
}

.production-tracking-kpis strong {
  margin-top: 4px;
  font-size: 1.35rem;
}

.production-tracking-kpis small {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.3;
}

.production-tracking-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  gap: 14px;
  margin-top: 14px;
}

.production-tracking-op-board, .production-tracking-movement-list, .production-tracking-timeline {
  display: grid;
  gap: 10px;
}

.tracking-op-card, .tracking-declaration-card, .tracking-movement-row {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.tracking-op-card.active {
  border-color: #8bc7f2;
  box-shadow: inset 0 0 0 1px rgba(8, 117, 209, 0.14);
}

.tracking-movement-row, .tracking-declaration-card {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.tracking-movement-row.warn {
  border-left: 4px solid var(--warn);
}

.tracking-movement-row.ok, .tracking-declaration-card {
  border-left: 4px solid var(--success);
}

.tracking-movement-row.info {
  border-left: 4px solid var(--primary);
}

.tracking-movement-row strong, .tracking-movement-row span, .tracking-movement-row small, .tracking-declaration-card strong, .tracking-declaration-card span, .tracking-declaration-card small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.tracking-movement-row span, .tracking-movement-row small, .tracking-declaration-card span, .tracking-declaration-card small {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.production-modal-card, .appointment-modal-card {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.appointment-modal-card {
  width: min(720px, 100%);
}

.modal-head h2 {
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.2;
}

.production-modal-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.production-modal-summary article {
  min-height: 66px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfd;
}

.production-modal-summary span, .production-modal-summary strong, .production-modal-line strong, .production-modal-line span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.production-modal-summary span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
  text-transform: uppercase;
}

.production-modal-summary strong {
  margin-top: 5px;
  font-size: 1rem;
}

.production-modal-ingredients {
  display: grid;
  gap: 8px;
}

.production-modal-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--success);
  border-radius: 8px;
  background: #ffffff;
}

.production-modal-line.warn {
  border-left-color: var(--warn);
  background: #fffaf0;
}

.production-modal-line.danger {
  border-left-color: var(--danger);
  background: #fff4f3;
}

.production-modal-line span {
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.recipe-editor {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fffdf8;
}

.recipe-editor > summary {
  cursor: pointer;
  color: #314555;
  font-weight: 900;
}

.recipe-editor[open] > summary {
  margin-bottom: 12px;
}

.recipe-table {
  min-width: 520px;
}

.recipe-table th, .recipe-table td {
  padding: 8px;
}

.recipe-table input, .recipe-table select {
  min-height: 34px;
}

.recipe-actions {
  margin: 10px 0 0;
}

@media (max-width: 1120px) {
  .command-center, .overview-action-strip, .bakery-dashboard-strip, .page-dashboard-strip, .stock-dashboard-grid, .operations-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .day-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .metrics, .quick-actions, .stock-kpi-grid, .auto-order-kpi-grid, .admin-kpi-grid, .supplier-kpi-grid, .economy-kpi-grid, .module-grid, .plans-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .split {
    grid-template-columns: minmax(0, 1fr);
  }

  .stock-visual-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .integration-config-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .stock-priority-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bakery-module-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-command-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .enterprise-signal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bakery-menu-group {
    min-height: 0;
  }

  .bakery-inventory-summary {
    border-left: 0;
    border-top: 1px solid #e9ddc7;
  }

  .page-hero-actions {
    justify-content: flex-start;
  }

  .admin-fields-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .scanner-grid {
    grid-template-columns: 1fr 1fr;
  }

  .stock-hero, .auto-order-body, .stock-product-workbench, .planning-hero, .admin-hero, .supplier-hero, .stock-alert-card, .stock-product-actions, .planning-stats, .supplier-attach-row, .diagnostic-grid, .economy-proposal-metrics, .invoice-lines > div {
    grid-template-columns: minmax(0, 1fr);
  }

  .excel-sheet-actions {
    justify-content: flex-start;
  }

  .today-command-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workshop-panel, .production-grid, .production-tracking-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .production-catalog-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }

  .production-tracking-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workshop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

.nav-btn:hover, .nav-btn.active {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  box-shadow: none;
}

.btn.primary, .desktop-menubar, .stock-subnav {
  background: linear-gradient(135deg, var(--primary), var(--accent-teal));
}

.bakery-desktop, .today-command-shell, .workshop-panel, .day-card, .admin-hero, .planning-hero, .panel, .metric, .module-card, .plan-card, .stock-chart-card, .stock-kpi, .admin-kpi, .supplier-kpi, .auto-order-kpi, .integration-card, .item-card, .log-item {
  border-color: #bcd2e8;
  background: linear-gradient(180deg, #ffffff 0%, #fffdf8 100%);
  box-shadow: var(--shadow);
}

.bakery-inventory-summary, .page-menu-tiles, .bakery-module-board, .home-command-grid, .enterprise-signal-grid {
  background: linear-gradient(180deg, #fffdf8, #f8f2e5);
}

.bakery-activity-card, .enterprise-signal, .summary-tile, .quick-action, .action-item, .workflow-item, .integration-item, .admin-client-card, .auto-order-row, .production-metrics article, .production-line, .recipe-editor {
  border-color: #c5d8eb;
  background: #ffffff;
  box-shadow: 0 9px 22px rgba(15, 33, 55, 0.08);
}

.bakery-activity-card strong, .enterprise-signal strong, .metric strong, .stock-kpi strong, .admin-kpi strong, .supplier-kpi strong, .auto-order-kpi strong, .planning-stat strong {
  color: var(--primary);
}

.bakery-activity-card.green strong, .badge.ok {
  color: var(--success);
}

.bakery-activity-card.orange strong, .badge.warn {
  color: var(--warn);
}

.home-command.primary, .workshop-action.primary, .workshop-action:hover, .quick-action.primary, .admin-client-card.active {
  border-color: #45bdd4;
  background: linear-gradient(135deg, #e8f4ff, #e1fbf5);
  color: #123d63;
}

.calendar-day-head.today, .planning-month-cell.today header {
  background: linear-gradient(135deg, var(--soft-blue), var(--soft-teal));
  color: var(--primary-dark);
}

.planning-chip.to_schedule, .planning-chip.pending_client_confirmation, .planning-unscheduled, .production-decision.warn, .auto-order-row.warn {
  background: var(--soft-amber);
}

.planning-chip.customer_confirmed, .planning-chip.done, .planning-chip.completed {
  border-color: #aedcc7;
  border-left-color: #238b5b;
  background: var(--soft-teal);
}

.scanner-status[data-kind="ok"], .expiry-photo-status[data-kind="ok"], .production-decision {
  background: var(--soft-teal);
}

.scanner-status[data-kind="warn"], .expiry-photo-status[data-kind="warn"], .dirty-row td {
  background: var(--soft-amber);
}

.brand span, .sidebar .field {
  color: #b8c3d2;
}

.sidebar-card, .installer-details {
  padding: 11px;
  border-color: rgba(148, 163, 184, 0.2);
  background: #10192b;
}

.topbar p, .panel p, .day-card p, .stock-hero p, .admin-hero p, .planning-hero p {
  color: var(--muted);
}

.btn:hover {
  transform: translateY(-1px);
}

.btn.secondary:hover, .sheet-details > summary:hover {
  border-color: #91b7f7;
  background: #f6ecdc;
  color: #1d4ed8;
}

.btn.danger {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
}

.bakery-desktop, .today-command-shell, .workshop-panel, .day-card, .admin-hero, .planning-hero, .stock-hero, .panel, .metric, .module-card, .plan-card, .stock-chart-card, .stock-kpi, .admin-kpi, .supplier-kpi, .auto-order-kpi, .integration-card, .item-card, .log-item {
  border: 1px solid var(--line);
  background: #ffffff;
  box-shadow: var(--shadow);
}

.bakery-dashboard-strip, .page-dashboard-strip, .today-command-head {
  border-color: #e7dbc6;
  background: linear-gradient(135deg, #faf7f0 0%, #f6ecdc 64%, #f7efdd 100%);
}

.desktop-menubar button, .stock-subtab {
  color: #dbeafe;
}

.desktop-menubar button:hover, .desktop-menubar button.active, .stock-subtab.active, .stock-subtab:hover {
  background: #ffffff;
  color: #2b2118;
}

.enterprise-signal-grid, .bakery-inventory-summary, .page-menu-tiles, .bakery-module-board, .home-command-grid {
  background: #faf7f0;
}

.enterprise-signal, .bakery-activity-card, .summary-tile, .quick-action, .action-item, .workflow-item, .integration-item, .admin-client-card, .auto-order-row, .production-metrics article, .production-line, .recipe-editor, .stock-alert-card, .stock-family-card, .stock-product-card {
  border-color: #dbe5f0;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.07);
}

.enterprise-signal::before, .bakery-activity-card::before, .stock-kpi::before, .admin-kpi::before, .supplier-kpi::before, .auto-order-kpi::before, .metric::before {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin-bottom: 10px;
  border-radius: 999px;
  background: var(--primary);
}

.enterprise-signal:nth-child(2)::before, .bakery-activity-card.green::before, .stock-kpi:nth-child(2)::before, .admin-kpi:nth-child(2)::before, .supplier-kpi:nth-child(2)::before, .auto-order-kpi:nth-child(2)::before {
  background: var(--success);
}

.enterprise-signal:nth-child(3)::before, .bakery-activity-card.orange::before, .stock-kpi:nth-child(3)::before, .admin-kpi:nth-child(3)::before, .supplier-kpi:nth-child(3)::before, .auto-order-kpi:nth-child(3)::before {
  background: var(--accent-amber);
}

.enterprise-signal:nth-child(4)::before, .bakery-activity-card.red::before, .stock-kpi:nth-child(4)::before, .admin-kpi:nth-child(4)::before, .supplier-kpi:nth-child(4)::before, .auto-order-kpi:nth-child(4)::before {
  background: var(--danger);
}

.enterprise-signal strong, .bakery-activity-card strong, .metric strong, .stock-kpi strong, .admin-kpi strong, .supplier-kpi strong, .auto-order-kpi strong, .planning-stat strong {
  color: #2b2118;
}

.bakery-activity-card.red strong, .badge.danger, .stock-low {
  color: #dc2626;
}

.bakery-activity-card.green strong, .badge.ok, .stock-ok {
  color: #059669;
}

.bakery-activity-card.orange strong, .badge.warn, .stock-warning {
  color: #b45309;
}

.home-command, .bakery-menu-tile, .workshop-action, .quick-action {
  border-color: #dbe5f0;
  background: #ffffff;
}

.home-command:hover, .bakery-menu-tile:hover, .workshop-action:hover, .quick-action:hover {
  border-color: #93c5fd;
  background: #f6ecdc;
  color: #1d4ed8;
}

.home-command.primary, .workshop-action.primary, .quick-action.primary, .admin-client-card.active {
  border-color: #99f6e4;
  background: linear-gradient(135deg, #f7efdd 0%, #f6ecdc 100%);
  color: #134e4a;
}

.home-command.danger, .quick-action.danger {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
}

.home-command svg, .bakery-menu-tile svg, .workshop-action svg {
  stroke: var(--primary);
}

.stock-hero, .admin-hero, .planning-hero {
  background: linear-gradient(135deg, #ffffff 0%, #faf7f0 56%, #f6ecdc 100%);
}

.bread-action {
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px;
  border: 1px solid #cfe4dd;
  border-radius: 8px;
  display: flex;
  gap: 8px;
  align-items: end;
  border-color: #ecd9b4;
  background: #ffffff;
}

.stock-chart-card, .stock-priority-card, .excel-stock-panel, .stock-products-panel, .admin-selected-card, .supplier-detail-panel {
  border-color: #dbe5f0;
  background: #ffffff;
}

.excel-stock-table .excel-column-row th, .planning-month-weekday {
  background: #2b2118;
  color: #ffffff;
}

.excel-stock-table .excel-field-row th {
  z-index: 4;
  padding: 0 8px;
  text-align: left;
  top: 24px;
  height: 34px;
  border-bottom: 2px solid #cbd8e4;
  background: #1d4ed8;
  color: #ffffff;
}

.excel-stock-table tbody tr:nth-child(even) .excel-cell, .excel-stock-table tbody tr:nth-child(even) .excel-readonly {
  background: #faf7f0;
}

.excel-stock-table tbody tr:hover .excel-cell, .excel-stock-table tbody tr:hover .excel-readonly {
  background: #f6ecdc;
}

.planning-chip, .calendar-event, .planning-unscheduled {
  border-color: #ecd9b4;
  background: #f6ecdc;
  color: #1e3a8a;
}

.planning-chip.customer_confirmed, .planning-chip.done, .planning-chip.completed, .scanner-status[data-kind="ok"], .expiry-photo-status[data-kind="ok"], .production-decision, .auto-order-row.ok {
  border-color: #a7f3d0;
  background: #f7efdd;
  color: #047857;
}

.planning-chip.to_schedule, .planning-chip.pending_client_confirmation, .production-decision.warn, .auto-order-row.warn, .scanner-status[data-kind="warn"], .expiry-photo-status[data-kind="warn"], .dirty-row td {
  border-color: #fde68a;
  background: #fff7e6;
  color: #92400e;
}

.planning-chip.collision, .planning-chip.cancelled, .production-decision.danger, .auto-order-row.danger {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
}

::selection {
  background: #ecd9b4;
  color: #2b2118;
}

.topbar p {
  margin-bottom: 0;
  margin-top: 4px;
  line-height: 1.3;
}

.bakery-desktop, .today-command-shell, .overview-action-strip, .panel, .stock-hero, .planning-hero, .admin-hero {
  margin-bottom: 12px;
}

.bakery-desktop, .today-command-shell, .panel, .stock-hero, .planning-hero, .admin-hero {
  box-shadow: var(--shadow);
}

.bakery-dashboard-strip {
  display: grid;
  border-bottom: 1px solid #e9ddc7;
  background: #f8f3e9;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 320px);
}

.bakery-dashboard-strip > div, .bakery-inventory-summary {
  padding: 12px;
}

.today-focus-card {
  display: grid;
  gap: 7px;
  border: 1px solid #e3cfa6;
  border-radius: 8px;
  text-align: left;
  position: relative;
  min-height: 92px;
  padding: 13px 14px 13px 18px;
  border-color: #ecd9b4;
  background: #ffffff;
  color: #2b2118;
  box-shadow: 0 8px 20px rgba(180, 83, 9, 0.12);
}

.today-focus-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, #2563eb, #0f766e);
}

.today-focus-card strong {
  font-size: 1.1rem;
}

.today-signal-row article {
  display: grid;
  align-content: center;
  border: 1px solid #e7dbc6;
  border-radius: 8px;
  background: #ffffff;
  min-height: 92px;
  padding: 12px;
  box-shadow: 0 8px 20px rgba(76, 52, 22, 0.07);
}

.today-signal-row strong {
  margin-top: 5px;
  color: #2b2118;
  font-size: 1.45rem;
}

.enterprise-signal-grid {
  display: grid;
  border-bottom: 1px solid #e9ddc7;
  background: #fbf7ec;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 12px;
}

.enterprise-signal {
  border: 1px solid #e7dbc6;
  border-radius: 8px;
  background: #ffffff;
  position: relative;
  min-height: 78px;
  padding: 10px 12px 10px 16px;
  overflow: hidden;
}

.enterprise-signal::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  height: 100%;
  margin: 0;
  border-radius: 0;
}

.enterprise-signal strong {
  display: block;
  color: var(--primary);
  margin: 2px 0;
  font-size: 1.18rem;
}

.enterprise-signal span, .enterprise-signal small {
  display: block;
  color: var(--muted);
  font-weight: 820;
  font-size: 0.74rem;
  line-height: 1.22;
}

.home-command-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(118px, 1fr));
  gap: 8px;
  padding: 10px;
  border-top: 1px solid var(--line);
  background: #ffffff;
}

.panel-head h2, .stock-hero h2, .planning-hero h2, .admin-hero h2 {
  margin-bottom: 4px;
  font-size: 1.2rem;
}

.action-queue, .validation-list, .workflow-list, .integration-list, .log-list {
  gap: 8px;
}

.action-item, .workflow-item, .integration-item, .log-item, .auto-order-row, .stock-priority-row {
  border-radius: 8px;
  padding: 10px;
}

.home-advanced-menu {
  border-top: 1px solid var(--line);
  background: #faf7f0;
}

.home-advanced-menu > summary, .expert-details > summary, .sheet-details > summary {
  min-height: 36px;
  color: #334155;
}

.home-advanced-menu > summary:hover, .expert-details > summary:hover, .sheet-details > summary:hover {
  background: #f6ecdc;
  color: #1d4ed8;
}

.bakery-module-board {
  display: grid;
  background: #fffdf8;
  align-items: start;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  padding: 10px;
}

.bakery-menu-group h2 {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 0;
  border-bottom: 1px solid #e1edf5;
  text-align: left;
  color: #193755;
  justify-content: center;
  padding: 8px 10px 6px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.9rem;
  font-weight: 850;
}

.bakery-menu-group h2::before, .bakery-menu-group h2::after {
  content: "";
  height: 2px;
  flex: 1;
  background: linear-gradient(90deg, transparent, var(--accent-teal), transparent);
  display: none;
}

.bakery-menu-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 8px;
}

.bakery-menu-tile {
  display: grid;
  border-radius: 8px;
  color: #586474;
  font-weight: 790;
  grid-template-columns: 30px minmax(0, 1fr);
  justify-items: start;
  align-content: center;
  align-items: center;
  padding: 6px 8px;
  text-align: left;
  min-height: 74px;
  gap: 5px;
  border: 1px solid transparent;
  background: #ffffff;
}

.bakery-menu-tile:hover {
  background: linear-gradient(135deg, var(--soft-blue), var(--soft-teal));
  color: var(--primary-dark);
  border-color: #ecd9b4;
}

.bakery-menu-tile svg, .page-menu-tiles .bakery-menu-tile svg {
  width: 32px;
  height: 32px;
}

.bakery-menu-tile.stock-in svg, .bakery-menu-tile.stock-out svg {
  border: 3px solid #28a4df;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  border-width: 2px;
  padding: 6px;
}

.bakery-menu-tile span {
  display: block;
  text-align: left;
  line-height: 1.12;
  font-size: 0.78rem;
  font-weight: 820;
}

.page-dashboard-strip, .stock-hero, .planning-hero, .admin-hero {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  gap: 12px;
  padding: 14px;
}

.page-menu-tiles .bakery-menu-tile {
  min-height: 72px;
}

.stock-kpi-grid, .admin-kpi-grid, .supplier-kpi-grid, .auto-order-kpi-grid, .planning-stats {
  gap: 8px;
  margin-bottom: 12px;
}

.stock-kpi, .admin-kpi, .supplier-kpi, .auto-order-kpi, .planning-stat, .metric {
  min-height: 82px;
  padding: 12px;
}

.stock-kpi::before, .admin-kpi::before, .supplier-kpi::before, .auto-order-kpi::before, .metric::before {
  width: 34px;
  margin-bottom: 7px;
}

.stock-kpi strong, .admin-kpi strong, .supplier-kpi strong, .auto-order-kpi strong, .planning-stat strong, .metric strong {
  margin: 3px 0 1px;
  font-size: 1.34rem;
}

.stock-visual-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.stock-chart-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
  padding: 12px;
}

.stock-chart-body {
  display: grid;
  align-items: center;
  margin-top: 14px;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 12px;
}

.stock-donut-chart, .stock-pie-chart {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border: 1px solid #d8e1e8;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.54);
  width: 126px;
}

.stock-donut-hole {
  display: grid;
  place-items: center;
  padding: 8px;
  border: 1px solid #d8e1e8;
  border-radius: 999px;
  background: #ffffff;
  text-align: center;
  width: 72px;
  height: 72px;
}

.stock-donut-hole strong {
  color: var(--ink);
  font-size: 1rem;
}

.stock-main-toolbar, .toolbar {
  gap: 8px;
}

.excel-stock-table th, .excel-stock-table td {
  padding: 0;
  border-right: 1px solid #d8e1e8;
  border-bottom: 1px solid #d8e1e8;
  vertical-align: middle;
  height: 34px;
}

.planning-controls {
  align-items: end;
  grid-template-columns: minmax(130px, 0.7fr) minmax(150px, 0.7fr) auto;
  gap: 8px;
}

.planning-board {
  display: grid;
  min-width: 0;
  gap: 8px;
}

.planning-calendar, .planning-month-grid {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: none;
}

.calendar-corner, .calendar-day-head {
  position: sticky;
  top: 0;
  z-index: 3;
  border-bottom: 1px solid var(--line);
  background: #faf6ec;
  min-height: 40px;
}

.calendar-slot-time, .calendar-slot-cell {
  min-height: 42px;
}

.planning-chip strong {
  font-size: 0.82rem;
}

.planning-chip span, .planning-chip small, .planning-more {
  color: var(--muted);
  font-weight: 800;
  font-size: 0.72rem;
}

.toast {
  position: fixed;
  max-width: min(440px, calc(100vw - 36px));
  padding: 13px 15px;
  border: 1px solid #c8d8d4;
  border-radius: 8px;
  font-weight: 800;
  border-color: #ecd9b4;
  background: #ffffff;
  color: #2b2118;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16);
  right: 18px;
  bottom: 18px;
  width: min(420px, calc(100vw - 36px));
}

.desktop-menubar {
  flex-wrap: wrap;
  gap: 2px;
  align-items: center;
  display: flex;
  min-height: 38px;
  padding: 4px 8px;
  background: #2b2118;
}

.desktop-menubar button {
  background: transparent;
  padding: 0 11px;
  min-height: 30px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #dbeafe;
  font-size: 0.82rem;
  font-weight: 680;
}

.desktop-menubar button:hover, .desktop-menubar button.active {
  border-color: rgba(255, 255, 255, 0.18);
  background: #ffffff;
  color: #2b2118;
}

.page-menu-tiles {
  background: #fffdf8;
  grid-template-columns: repeat(auto-fit, minmax(124px, 1fr));
  gap: 8px;
  padding: 10px;
  display: none;
}

.tab-panel[data-panel="requests"].active {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tab-panel[data-panel="requests"] > .bakery-desktop {
  order: 1;
}

.tab-panel[data-panel="requests"] > .split {
  order: 2;
}

.tab-panel[data-panel="requests"] > .twilio-diagnostic {
  order: 3;
}

.tab-panel[data-panel="requests"] > .integration-config-panel {
  order: 4;
}

.tab-panel[data-panel="requests"] > .install-tools {
  order: 5;
}

.integration-config-panel {
  margin: 14px 0;
  border-style: dashed;
  background: #fffdf8;
}

.integration-config-panel .panel-head h2::after {
  content: " installateur";
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 560;
}

.btn, .nav-btn, .desktop-menubar button, .home-command, .bakery-menu-tile {
  font-weight: 680;
}

.btn:hover, .home-command:hover {
  transform: none;
}

.home-command.primary strong {
  font-size: 0.96rem;
}

.enterprise-signal.success::before {
  background: var(--success);
}

.enterprise-signal.warn::before {
  background: var(--accent-amber);
}

.enterprise-signal.danger::before {
  background: var(--danger);
}

@media (max-width: 760px) {
  .topbar {
    position: static;
    margin: 0 0 10px;
    padding: 0;
    border-bottom: 0;
    background: transparent;
    backdrop-filter: none;
  }

  .topbar-actions {
    width: 100%;
  }

  .topbar-actions .btn {
    flex: 1 1 140px;
  }

  .bakery-dashboard-strip, .bakery-activity-grid.focus-mode, .overview-action-strip, .page-dashboard-strip, .stock-hero, .planning-hero, .admin-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .enterprise-signal-grid, .today-signal-row, .stock-kpi-grid, .admin-kpi-grid, .supplier-kpi-grid, .auto-order-kpi-grid, .planning-stats, .home-command-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .enterprise-signal {
    min-height: 68px;
  }

  .home-command {
    min-height: 58px;
  }

  .planning-controls {
    grid-template-columns: minmax(0, 1fr);
  }

  .stock-chart-body {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }

  .desktop-menubar {
    display: none;
  }

  .page-menu-tiles {
    display: grid;
  }

  body.phone-mode .nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.phone-mode .nav-btn[data-tab="production"], body.phone-mode .nav-btn[data-tab="productionTracking"], body.phone-mode .nav-btn[data-tab="suppliers"], body.phone-mode .nav-btn[data-tab="billing"], body.phone-mode .nav-btn[data-tab="economy"], body.phone-mode .nav-btn[data-tab="invoices"], body.phone-mode .nav-btn[data-tab="reminders"], body.phone-mode .nav-btn[data-tab="admin"] {
    display: none;
  }

  .page-hero-actions {
    justify-content: stretch;
  }

  .page-hero-actions .btn {
    flex: 1 1 150px;
  }

}

.dup-hidden {
  display: none !important;
}

.nav > .nav-group-label:first-child {
  margin-top: 0;
}

.nav-btn, .btn {
  min-height: 44px;
}

.bakery-activity-grid.focus-mode {
  align-items: stretch;
  gap: 10px;
  grid-template-columns: minmax(230px, 0.75fr) minmax(0, 1.25fr);
}

.today-signal-row {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
}

@media (max-width: 1280px) {
  .home-command-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .enterprise-signal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bakery-module-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bakery-dashboard-strip {
    grid-template-columns: minmax(0, 1fr);
  }

  .bakery-inventory-summary {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .bakery-activity-grid.focus-mode {
    grid-template-columns: minmax(0, 1fr);
  }

}

.bakery-inventory-summary {
  background: #faf6ec;
  display: grid;
  gap: 8px;
  border-top: 1px solid #e9ddc7;
  border-left: 0;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.summary-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid #e7dbc6;
  border-radius: 6px;
  background: #ffffff;
  min-height: 32px;
  margin-bottom: 0;
  padding: 0 8px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.page-dashboard-strip input, .page-dashboard-strip select, .bakery-dashboard-strip input, .bakery-dashboard-strip select {
  min-width: 0;
  max-width: 100%;
}

body.phone-mode .nav-group-label {
  display: none;
}

.invoice-lines {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.invoice-lines > div {
  display: grid;
  grid-template-columns: minmax(160px, 1.6fr) 82px 62px 92px 92px 92px 128px minmax(230px, auto);
  gap: 8px;
  align-items: start;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  min-width: max-content;
}

.item-card {
  min-width: 0;
  overflow-wrap: anywhere;
}

.prod-subnav {
  display: flex;
  gap: 8px;
  margin: 14px 0;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  width: fit-content;
}

.prod-subtab {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
}

.prod-subtab svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.prod-subtab:hover {
  background: #f6efe2;
  color: var(--ink);
}

.prod-subtab.active {
  background: var(--primary);
  color: #fff;
}

.prod-subtab-count[hidden] {
  display: none;
}

.prod-subtab-count {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--danger);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
}

.prod-subpanel {
  display: none;
}

.prod-subpanel.active {
  display: block;
}

.pilotage-tile > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  flex: 1;
}

.pilotage-gauge {
  height: 8px;
  margin-top: 3px;
  border-radius: 999px;
  background: #efe6d2;
  overflow: hidden;
}

.pilotage-gauge-bar {
  height: 100%;
  border-radius: 999px;
  transition: width 0.3s ease;
}

.pilotage-gauge-bar.ok {
  background: var(--success);
}

.pilotage-gauge-bar.warn {
  background: var(--warn);
}

.pilotage-gauge-bar.danger {
  background: var(--danger);
}

.topbar .eyebrow, .topbar p {
  display: none;
}

.tax-modal-card {
  max-width: 640px;
}

.tax-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 12px 0;
}

.tax-block {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #faf6ec;
}

.tax-block.auto {
  background: #fff;
}

.tax-block h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  font-size: 0.95rem;
}

.tax-block h3 svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: var(--primary);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tax-lines, .tax-result {
  display: grid;
  gap: 7px;
}

.tax-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}

.tax-line.ok strong {
  color: var(--success);
}

.tax-line.danger strong {
  color: var(--danger);
}

.tax-line.total {
  border-width: 2px;
  font-size: 1.02rem;
}

.tax-result {
  margin-top: 4px;
  padding: 12px;
  border: 1px dashed var(--rail);
  border-radius: 12px;
  background: #fffdf8;
}

.tax-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.order-card.closed {
  opacity: 0.65;
}

.order-edit-input {
  width: 100%;
  min-height: 38px;
  margin-bottom: 4px;
}

.onboarding-card {
  max-width: 560px;
}

.onboarding-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 14px 0 18px;
}

.onboarding-step {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #faf6ec;
  color: var(--muted);
  font-weight: 700;
}

.onboarding-step.active {
  border-color: var(--primary);
  background: #fff;
  color: var(--ink);
}

.step-dot {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--line);
  color: var(--ink);
  font-size: 0.82rem;
}

.onboarding-step.active .step-dot {
  background: var(--primary);
  color: #fff;
}

.onboarding-panel {
  display: none;
}

.onboarding-panel.active {
  display: grid;
  gap: 12px;
}

.onboarding-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto;
  border-radius: 16px;
  background: linear-gradient(135deg, #fdf3e0, #f6ecdc);
  border: 1px solid var(--line);
}

.onboarding-icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: var(--primary);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.onboarding-hint {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.onboarding-list {
  margin: 0;
  padding-left: 20px;
  color: var(--ink);
  line-height: 1.7;
}

.onboarding-choices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

#phoneScanHint, .phone-scan-hint {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.phone-scan-text {
  display: grid;
  gap: 5px;
  min-width: 0;
  flex: 1;
}

.phone-scan-qr {
  flex: 0 0 auto;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.phone-scan-qr img, .phone-scan-qr canvas {
  display: block;
  width: 132px;
  height: 132px;
}

.empty::before {
  content: "";
  width: 26px;
  height: 26px;
  opacity: 0.55;
  background-color: var(--muted);
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487"/><path d="M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132"/><path d="M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42"/><path d="M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14"/><path d="M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676"/></svg>') center / contain no-repeat;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487"/><path d="M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132"/><path d="M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42"/><path d="M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14"/><path d="M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676"/></svg>') center / contain no-repeat;
}

.margin-chip {
  display: inline-block;
  margin-top: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 800;
}

.margin-chip.ok {
  background: #e3f4e8;
  color: #1e7d43;
}

.margin-chip.warn {
  background: #fdf0dc;
  color: #b45309;
}

.margin-chip.danger {
  background: #fde5e3;
  color: #d92d20;
}

.margin-chip.muted {
  background: #f1ece0;
  color: #7d6f5d;
}

.production-modal-summary article.margin-ok strong {
  color: var(--success);
}

.production-modal-summary article.margin-danger strong {
  color: var(--danger);
}

.demo-tools {
  display: none !important;
}

body.show-demo-tools .demo-tools {
  display: flex !important;
}

body.show-demo-tools label.demo-tools {
  display: grid !important;
}

.production-kanban {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

.kanban-column {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #faf6ec;
  overflow: hidden;
}

.kanban-column-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.kanban-column-head svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.kanban-column.encours .kanban-column-head {
  color: var(--warn);
}

.kanban-column.terminee .kanban-column-head {
  color: var(--success);
}

.kanban-column.annulee .kanban-column-head {
  color: var(--danger);
}

.kanban-column-head strong {
  color: var(--ink);
}

.kanban-count {
  margin-left: auto;
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--bg);
  color: var(--ink);
  font-size: 0.8rem;
  font-weight: 800;
}

.kanban-cards {
  display: grid;
  gap: 8px;
  padding: 10px;
  min-height: 90px;
  align-content: start;
}

.kanban-group {
  display: grid;
  gap: 8px;
}

.kanban-group h4 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 4px 2px 0;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.kanban-group h4 span {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: #efe6d2;
  color: var(--ink);
  font-size: 0.75rem;
}

.kanban-card {
  display: grid;
  gap: 6px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--muted);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 10px rgba(76, 52, 22, 0.05);
  cursor: pointer;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.kanban-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 16px rgba(76, 52, 22, 0.1);
}

.kanban-card.warn {
  border-left-color: var(--warn);
}

.kanban-card.ok {
  border-left-color: var(--success);
}

.kanban-card.info {
  border-left-color: var(--blue);
}

.kanban-card.danger {
  border-left-color: var(--danger);
  opacity: 0.72;
}

.kanban-card.most-urgent {
  background: linear-gradient(135deg, #fff3ee, #ffe9df);
  border-color: #f3b09a;
  border-left-color: var(--danger);
  box-shadow: 0 8px 18px rgba(217, 45, 32, 0.16);
}

.kanban-card.most-urgent .kanban-card-head strong::before {
  content: "🔥 ";
}

.kanban-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.kanban-card-products {
  font-weight: 700;
  color: var(--ink);
  font-size: 0.9rem;
}

.kanban-card-meta, .kanban-card small {
  color: var(--muted);
  font-size: 0.84rem;
}

.due-chip {
  justify-self: start;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
}

.due-chip.warn {
  background: #fdf0dc;
  color: #b45309;
}

.due-chip.danger {
  background: #fde5e3;
  color: #d92d20;
}

.kanban-progress {
  height: 8px;
  border-radius: 999px;
  background: #efe6d2;
  overflow: hidden;
}

.kanban-progress-bar {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--rail), var(--primary));
  transition: width 0.3s ease;
}

.kanban-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}

.btn.small {
  min-height: 34px;
  padding: 0 11px;
  font-size: 0.86rem;
}

.kanban-empty {
  padding: 16px 10px;
  color: var(--muted);
  text-align: center;
  font-size: 0.88rem;
}

@media (max-width: 1100px) {
  .layout {
    grid-template-columns: 246px minmax(0, 1fr);
  }

  main {
    padding: 16px;
  }

  .production-kanban {
    grid-template-columns: minmax(0, 1fr);
  }

}

.op-detail-card {
  max-width: 560px;
}

.op-detail-body {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

.op-detail-info {
  display: grid;
  gap: 7px;
}

.admin-score-card.score-ok strong {
  color: var(--success);
}

.admin-score-card.score-warn strong {
  color: var(--warn);
}

.admin-score-card.score-danger strong {
  color: var(--danger);
}

.weekly-modal-card {
  max-width: 620px;
}

.weekly-body {
  margin-top: 10px;
}

.weekly-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.weekly-tile {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--rail);
  border-radius: 11px;
  background: #fff;
}

.weekly-tile.ok {
  border-left-color: var(--success);
}

.weekly-tile.danger {
  border-left-color: var(--danger);
}

.weekly-tile svg {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  fill: none;
  stroke: var(--primary);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.weekly-tile > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.weekly-tile span {
  color: var(--muted);
  font-size: 0.82rem;
}

.weekly-tile strong {
  font-size: 1.02rem;
}

.weekly-tile small {
  color: var(--muted);
  font-size: 0.8rem;
}

.admin-autofill-field.editable input {
  border-color: var(--rail);
  background: #fffdf6;
}

.admin-autofill-field.editable input:focus {
  border-color: var(--primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(180, 83, 9, 0.12);
}

.admin-autofill-field input[readonly] {
  background: #f4f0e7;
  color: var(--muted);
}

.admin-score-card .btn {
  margin-left: auto;
}

.admin-profile-details, .admin-template-details {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
}

.admin-profile-details > summary, .admin-template-details > summary {
  cursor: pointer;
  padding: 12px 14px;
  color: var(--ink);
  font-weight: 800;
  background: #f7f5ef;
}

.admin-profile-details[open] > summary, .admin-template-details[open] > summary {
  border-bottom: 1px solid var(--line);
}

.admin-profile-details .admin-fields-grid, .admin-template-details > div {
  padding: 12px;
}

.admin-document-list > h3 {
  margin: 2px 0 10px;
  font-size: 0.95rem;
}

.admin-template-details {
  margin-top: 10px;
}

.admin-document-edit-field > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.admin-document-edit-field > span small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 650;
}

.admin-document-alert.info {
  border-color: #8cc6e8;
  background: #eff8fd;
  color: #134f70;
}

.admin-document-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #e7ba62;
  border-radius: 8px;
  background: #fff8e8;
  color: #50370b;
  font-weight: 750;
  line-height: 1.35;
}

.admin-document-confirmation input {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-top: 1px;
  accent-color: var(--primary);
}

body.workshop-mode.sector-salon .nav-btn[data-tab="requests"], body.workshop-mode.sector-salon .nav-btn[data-tab="inventory"], body.workshop-mode.sector-salon .nav-btn[data-tab="suppliers"], body.workshop-mode.sector-salon .nav-btn[data-tab="invoices"], body.workshop-mode.sector-salon .nav-btn[data-tab="settings"], body.workshop-mode.sector-artisan .nav-btn[data-tab="requests"], body.workshop-mode.sector-artisan .nav-btn[data-tab="inventory"], body.workshop-mode.sector-artisan .nav-btn[data-tab="suppliers"], body.workshop-mode.sector-artisan .nav-btn[data-tab="invoices"], body.workshop-mode.sector-artisan .nav-btn[data-tab="settings"] {
  display: none;
}

body.workshop-mode.sector-salon .nav-group-label, body.workshop-mode.sector-artisan .nav-group-label {
  display: none;
}

body.workshop-mode .today-command-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pilotage-tile.autopilot {
  cursor: default;
}

.validation-list .badge {
  flex: 0 0 auto;
  white-space: nowrap;
}

html, body {
  min-height: 100%;
  background: var(--bg);
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;
  background: linear-gradient(180deg, #eef4fb 0%, #f7f9fc 42%, #f3f6fa 100%);
  color: var(--ink);
  font-size: 15px;
}

button, input, select, textarea, summary {
  letter-spacing: 0;
}

button, .btn, .nav-btn, .home-command, .pilotage-tile, .customer-case-card, .business-flow-step {
  -webkit-tap-highlight-color: transparent;
}

button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 3px solid rgba(37, 99, 235, 0.22);
  outline-offset: 2px;
}

.layout {
  display: grid;
  min-height: 100vh;
  grid-template-columns: 264px minmax(0, 1fr);
}

.brand {
  display: grid;
  align-items: center;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 11px;
}

.brand strong {
  color: #ffffff;
  font-size: 0.98rem;
  line-height: 1.15;
}

.brand span {
  margin-top: 3px;
  color: #aeb7c5;
  font-size: 0.78rem;
}

.sidebar .field {
  color: #aeb7c5;
  font-size: 0.75rem;
}

.sidebar input:hover, .sidebar select:hover {
  border-color: #596170;
}

.installer-details summary {
  cursor: pointer;
  font-weight: 800;
  color: #c5ccd6;
  font-size: 0.78rem;
}

.nav {
  display: grid;
  gap: 3px;
}

.onboarding-open-btn:hover {
  border-color: #2563eb;
  background: #282d37;
}

.sidebar-card strong {
  color: #ffffff;
  font-size: 0.86rem;
}

.sidebar-card span, .sidebar-card p {
  color: #9ea8b6;
  font-size: 0.75rem;
}

main {
  min-width: 0;
  width: min(100%, 1500px);
  margin: 0 auto;
  padding: 18px 20px;
}

.topbar {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(243, 246, 250, 0.92);
  backdrop-filter: blur(12px);
  margin-bottom: 12px;
  align-items: center;
  min-height: 52px;
  margin: 0 -20px 14px;
  padding: 0 20px 14px;
  border-bottom: 1px solid var(--line);
}

.topbar-actions {
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}

.btn.secondary {
  border-color: #ccd6e3;
  background: #ffffff;
  color: #273449;
}

.btn.secondary:hover {
  border-color: #9cb0ca;
  background: #f6f9fd;
}

.btn.success {
  border-color: #a7f3d0;
  border: 1px solid #8ed4b7;
  background: var(--surface-green);
  color: #05603f;
}

input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: #ffffff;
  border-color: #cbd6e4;
  border-radius: 7px;
  color: #172033;
}

input:focus, select:focus, textarea:focus {
  border-color: var(--primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.panel, .metric, .module-card, .plan-card, .bakery-desktop, .today-command-shell, .planning-calendar-panel, .planning-manual-panel, .stock-chart-card, .stock-kpi, .admin-kpi, .admin-score-card {
  border-color: var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.panel h2, .panel-head h2 {
  color: #1c2738;
  font-size: 1.05rem;
  font-weight: 760;
}

.head-icon {
  width: 20px;
  height: 20px;
  margin-right: 4px;
  vertical-align: -3px;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: var(--primary);
  stroke: currentColor;
}

.page-dashboard-strip, .bakery-dashboard-strip, .stock-hero, .planning-hero, .admin-hero {
  border-color: var(--line);
  background: #ffffff;
  box-shadow: none;
}

.page-dashboard-strip h2 {
  margin: 0 0 8px;
  margin-bottom: 3px;
  color: #172033;
  font-size: 1.25rem;
}

.page-dashboard-strip p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.25;
  color: var(--muted);
}

.tab-panel[data-panel="planning"] .page-dashboard-strip {
  border-left-color: #7c3aed;
}

.tab-panel[data-panel="production"] .page-dashboard-strip {
  border-left-color: #0891b2;
}

.tab-panel[data-panel="inventory"] .page-dashboard-strip {
  border-left-color: #047857;
}

.tab-panel[data-panel="suppliers"] .page-dashboard-strip {
  border-left-color: #d97706;
}

.tab-panel[data-panel="economy"] .page-dashboard-strip {
  border-left-color: #0f9f6e;
}

.tab-panel[data-panel="invoices"] .page-dashboard-strip {
  border-left-color: #e84c62;
}

.tab-panel[data-panel="reminders"] .page-dashboard-strip {
  border-left-color: #7c3aed;
}

.tab-panel[data-panel="settings"] .page-dashboard-strip {
  border-left-color: #64748b;
}

.pilotage-panel {
  padding-bottom: 12px;
  padding: 14px;
  overflow: hidden;
}

.pilotage-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.pilotage-tile:nth-child(2) {
  border-top-color: #0891b2;
}

.pilotage-tile:nth-child(3) {
  border-top-color: #d97706;
}

.pilotage-tile:nth-child(4) {
  border-top-color: #7c3aed;
}

.pilotage-tile:hover {
  transform: none;
  border-color: #b8c8dc;
  box-shadow: var(--shadow-hover);
}

.pilotage-tile.primary-work {
  border-left-color: var(--primary);
  border-left-width: 1px;
  background: var(--surface-blue);
}

.pilotage-tile:nth-child(2) > svg {
  background: #e6fbff;
  color: #087f96;
}

.pilotage-tile:nth-child(3) > svg {
  background: #fff3d8;
  color: #a64e00;
}

.pilotage-tile:nth-child(4) > svg {
  background: #f3edff;
  color: #6d28d9;
}

.pilotage-tile strong {
  color: #172033;
  font-size: 0.94rem;
  line-height: 1.25;
}

.pilotage-tile span {
  color: #64748b;
  font-size: 0.78rem;
  line-height: 1.3;
}

.business-flow-shell {
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid var(--line);
}

.business-flow-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.business-flow-head strong {
  color: #334155;
  font-size: 0.78rem;
}

.business-flow-head .head-icon {
  width: 16px;
  height: 16px;
}

.business-flow-head > span, .agent-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--surface-green);
  color: #05603f;
  font-size: 0.68rem;
  font-weight: 750;
}

.business-flow-head > span.warn {
  background: var(--surface-amber);
  color: #8a4300;
}

.business-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.business-flow-step {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 50px;
  padding: 7px 9px;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #f8fafc;
  color: #526277;
  text-align: left;
}

.business-flow-step:hover {
  border-color: #a8bad0;
  background: #ffffff;
}

.business-flow-step.active {
  border-color: #bad0f8;
  background: var(--surface-blue);
  color: #1d4ed8;
}

.business-flow-step.warn {
  border-color: #f0c986;
  background: var(--surface-amber);
  color: #8a4300;
}

.business-flow-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px #dfe6ef;
}

.business-flow-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.business-flow-step > span:nth-child(2) {
  display: grid;
  min-width: 0;
}

.business-flow-step small {
  overflow: hidden;
  font-size: 0.66rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.business-flow-step strong {
  color: #172033;
  font-size: 1rem;
}

.business-flow-step i {
  position: absolute;
  right: -9px;
  z-index: 2;
  width: 9px;
  height: 1px;
  background: #cbd5e1;
}

.today-command-shell {
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.today-command-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  min-height: 42px;
  padding: 10px 13px;
  border-bottom: 1px solid var(--line);
  background: #f8fafc;
}

.today-command-head h2 {
  margin: 0;
  color: #1c2738;
  font-size: 1rem;
}

.today-command-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 0;
  gap: 8px;
  padding: 10px;
}

.home-command {
  grid-template-areas: "icon title"
    "icon detail";
  align-items: center;
  border-color: #dbe5f0;
  display: grid;
  gap: 6px;
  padding: 14px 10px;
  min-height: 68px;
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: auto auto;
  justify-items: start;
  align-content: center;
  column-gap: 10px;
  row-gap: 1px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: #253247;
  text-align: left;
  box-shadow: none;
}

.home-command:hover {
  transform: translateY(-1px);
  border-color: #9fb2c9;
  background: #f8fbff;
  box-shadow: 0 6px 16px rgba(31, 48, 78, 0.09);
}

.home-command strong, .home-command span {
  grid-column: 2;
}

.home-command strong {
  grid-area: title;
  min-width: 0;
  line-height: 1.15;
  align-self: end;
  color: #1f2d42;
  font-size: 0.86rem;
}

.home-command span {
  grid-area: detail;
  min-width: 0;
  font-weight: 720;
  line-height: 1.2;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  align-self: start;
  color: #68768a;
  font-size: 0.7rem;
}

.home-command.primary {
  grid-template-columns: 42px minmax(0, 1fr);
  min-height: 68px;
  border-color: #a9c4fb;
  background: var(--surface-blue);
  color: #1d4ed8;
}

.home-command.danger {
  border-color: #f3b6c1;
  background: var(--surface-rose);
  color: #be2440;
}

.home-command.danger svg {
  stroke: var(--danger);
  background: #ffe0e6;
  color: #c32643;
}

.overview-action-strip {
  display: grid;
  margin-bottom: 16px;
  grid-template-columns: minmax(260px, 0.4fr) minmax(0, 0.6fr);
  gap: 12px;
}

.overview-action-strip.priority-empty {
  grid-template-columns: minmax(0, 1fr);
}

.overview-action-strip.priority-empty .priority-panel.empty-panel {
  display: none;
}

.action-item, .workflow-item, .integration-item, .validation-list article {
  border-color: #e1e7ef;
  border-radius: 7px;
  background: #f9fbfd;
}

.action-item, .validation-list article {
  padding: 10px 11px;
}

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  background: #faf7f0;
  color: #334155;
  padding: 4px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.67rem;
  font-weight: 760;
}

.stock-subnav, .prod-subnav {
  gap: 4px;
  padding: 4px;
  border-color: var(--line);
  border-radius: 8px;
  background: #e9eef5;
}

.stock-subtab, .prod-subtab {
  min-height: 38px;
  border-radius: 6px;
  color: #526277;
}

.stock-subtab:hover, .prod-subtab:hover {
  background: rgba(255, 255, 255, 0.7);
}

.stock-subtab.active, .prod-subtab.active {
  background: #ffffff;
  color: var(--primary);
  box-shadow: 0 2px 8px rgba(31, 48, 78, 0.1);
}

table {
  width: 100%;
  min-width: 1080px;
  border-collapse: collapse;
  border-color: var(--line);
}

th {
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: #edf2f8;
  color: #34445b;
  font-size: 0.72rem;
  font-weight: 760;
}

td {
  border-color: #e4eaf1;
}

tbody tr:hover td {
  background: #f3f7fd;
}

.excel-stock-table thead th, .stock-sheet-wrap thead th {
  background: #e8eef7;
  color: #334155;
}

.stock-kpi, .admin-kpi, .planning-stat {
  border-top: 3px solid var(--primary);
}

.stock-kpi:nth-child(2), .admin-kpi:nth-child(2), .planning-stat:nth-child(2) {
  border-top-color: #0891b2;
}

.stock-kpi:nth-child(3), .admin-kpi:nth-child(3), .planning-stat:nth-child(3) {
  border-top-color: #d97706;
}

.stock-kpi:nth-child(4), .admin-kpi:nth-child(4), .planning-stat:nth-child(4) {
  border-top-color: #7c3aed;
}

.modal-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  gap: 12px;
  align-items: start;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.empty {
  display: grid;
  place-items: center;
  gap: 4px;
  padding: 22px 14px;
  border: 1.5px dashed var(--line);
  color: var(--muted);
  text-align: center;
  font-size: 0.92rem;
  border-color: #c7d3e1;
  border-radius: 8px;
  background: #f8fafc;
}

.onboarding-sector-options svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.customer-case-panel {
  margin-bottom: 12px;
}

body.sector-artisan .prod-subpanel[data-prod-subpanel="tracking"] .production-ops-only, body.sector-salon .prod-subpanel[data-prod-subpanel="tracking"] .production-ops-only {
  display: none;
}

body.workshop-mode.sector-artisan .production-catalog-actions, body.workshop-mode.sector-salon .production-catalog-actions {
  display: none;
}

.agent-live-pill > span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.14);
}

.customer-case-list {
  display: grid;
  gap: 7px;
}

.customer-case-card {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto 18px;
  gap: 11px;
  align-items: center;
  width: 100%;
  min-height: 68px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--primary);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-align: left;
}

.customer-case-card:hover {
  border-color: #aabbd0;
  box-shadow: var(--shadow);
}

.customer-case-card.ok {
  border-left-color: var(--success);
}

.customer-case-card.warn {
  border-left-color: var(--warn);
}

.customer-case-card.danger {
  border-left-color: var(--danger);
}

.case-card-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: var(--surface-blue);
  color: var(--primary);
}

.case-card-icon svg, .case-card-chevron {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.case-card-main, .case-card-value {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.case-card-heading {
  display: flex;
  align-items: center;
  gap: 8px;
}

.case-card-main > span:not(.case-card-heading), .case-card-main small, .case-card-value small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.74rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-card-value {
  justify-items: end;
}

.case-card-value strong {
  color: #1d4ed8;
  font-size: 0.9rem;
}

.case-card-chevron {
  color: #94a3b8;
}

.customer-case-modal-card {
  max-width: 720px;
}

.customer-case-modal-body {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.case-timeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}

.case-timeline-step {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 9px 4px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f8fafc;
  color: #94a3b8;
}

.case-timeline-step svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.case-timeline-step.done {
  border-color: #a7ddc7;
  background: var(--surface-green);
  color: #047857;
}

.case-timeline-step.current {
  border-color: #a9c4fb;
  background: var(--surface-blue);
  color: #1d4ed8;
}

.case-timeline-step small {
  font-size: 0.66rem;
  font-weight: 720;
}

.customer-case-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.customer-case-summary article, .customer-case-detail-grid > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f9fbfd;
}

.customer-case-summary span, .customer-case-summary small, .customer-case-detail-grid span, .customer-case-detail-grid small {
  color: var(--muted);
  font-size: 0.7rem;
}

.customer-case-summary strong {
  color: #172033;
  font-size: 1rem;
}

.customer-case-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.customer-case-detail-grid small {
  overflow-wrap: anywhere;
}

.case-agent-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px;
  border: 1px solid #b8d5ff;
  border-radius: 7px;
  background: var(--surface-blue);
  color: #1e4c8f;
}

.case-agent-note > svg {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.case-agent-note > div {
  display: grid;
  gap: 3px;
}

.case-agent-note span {
  color: #526f99;
  font-size: 0.74rem;
}

@media (max-width: 1160px) {
  .pilotage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pilotage-tile {
    min-height: 92px;
  }

}

@media (max-width: 900px) {
  body.workshop-mode .today-command-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .layout {
    grid-template-columns: 226px minmax(0, 1fr);
  }

  main {
    padding: 14px;
  }

  .topbar {
    margin-right: -14px;
    margin-left: -14px;
    padding-right: 14px;
    padding-left: 14px;
  }

  .business-flow-step {
    padding: 6px;
  }

  .business-flow-icon {
    width: 27px;
    height: 27px;
  }

}

@media (max-width: 780px) {
  .layout {
    grid-template-columns: minmax(0, 1fr);
  }

  main {
    padding: 20px;
  }

  .topbar {
    display: grid;
  }

  .topbar-actions {
    justify-content: flex-start;
  }

  .metrics, .quick-actions, .bakery-activity-grid, .stock-kpi-grid, .auto-order-kpi-grid, .admin-kpi-grid, .supplier-kpi-grid, .stock-family-grid, .stock-product-main, .stock-product-meta, .economy-proposal-metrics, .planning-controls, .module-grid, .plans-grid, .form-grid, .supplier-detail-stats, .day-summary, .scanner-grid, .sheet-toolbar, .bread-action {
    grid-template-columns: minmax(0, 1fr);
  }

  .bakery-module-board, .bakery-menu-tiles, .page-menu-tiles, .home-command-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .enterprise-signal-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .bakery-menu-tile {
    min-height: 84px;
  }

  .planning-day-grid {
    grid-template-columns: 56px minmax(520px, 1fr);
  }

  .planning-week-grid {
    grid-template-columns: 56px repeat(7, minmax(126px, 1fr));
  }

  .planning-month-grid {
    grid-template-columns: repeat(7, minmax(126px, 1fr));
  }

  .calendar-time {
    padding: 8px 5px;
  }

  .stock-action-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-score-card, .admin-document-row, .admin-document-kpis {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-document-actions {
    justify-content: stretch;
  }

  .admin-document-actions .btn {
    flex: 1 1 120px;
  }

  .admin-document-field-grid, .admin-document-official-box {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-document-official-box {
    display: grid;
  }

  .agent-run-status {
    width: 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
  }

  .auto-order-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .excel-formula-bar {
    grid-template-columns: 62px 34px minmax(0, 1fr);
  }

  .stock-chart-body, .stock-priority-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .stock-donut-chart, .stock-pie-chart {
    width: min(220px, 72vw);
    justify-self: center;
  }

  .sidebar {
    position: static;
    height: auto;
    gap: 12px;
    padding: 16px;
  }

  body.phone-mode .installer-details, body.phone-mode .sidebar-card {
    display: none;
  }

  body.phone-mode .tab-panel[data-panel="inventory"] > .stock-subnav {
    display: flex;
  }

  body.phone-mode .mobile-scan-confirm, body.phone-mode .mobile-scan-product-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .scan-assist-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .stock-kpi {
    min-height: 86px;
    padding: 12px;
  }

  body.phone-mode .stock-kpi strong {
    font-size: 1.25rem;
  }

  body.phone-mode .layout {
    display: block;
  }

  body.phone-mode .brand-mark {
    width: 34px;
    height: 34px;
  }

  body.phone-mode .brand span {
    display: none;
  }

  body.phone-mode .nav-btn {
    justify-content: flex-start;
    display: grid;
    justify-items: center;
    gap: 4px;
    min-height: 48px;
    padding: 5px 4px;
    text-align: center;
  }

  body.phone-mode .nav-icon {
    width: 17px;
    height: 17px;
  }

  body.phone-mode .today-command-shell {
    margin-bottom: 12px;
  }

  body.phone-mode .today-command-head h2 {
    font-size: 0.96rem;
  }

  body.phone-mode .workshop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.phone-mode .workshop-action {
    grid-template-columns: 28px minmax(0, 1fr);
    min-height: 62px;
  }

  body.phone-mode .home-command svg {
    width: 22px;
    height: 22px;
  }

  body.phone-mode .home-command strong {
    font-size: 0.84rem;
  }

  body.phone-mode .home-command span {
    font-size: 0.7rem;
  }

  body.phone-mode .overview-action-strip {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .action-item {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .action-item .badge {
    justify-self: start;
  }

  body.phone-mode .production-line {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .production-decision, body.phone-mode .production-metrics, body.phone-mode .production-modal-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .production-catalog-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .production-product-card {
    grid-template-columns: 56px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    min-height: 0;
  }

  body.phone-mode .production-product-card svg {
    grid-row: 1 / 4;
    width: 52px;
    height: 52px;
    padding: 10px;
  }

  body.phone-mode .modal-shell {
    align-items: end;
    padding: 10px;
  }

  body.phone-mode .modal-card {
    max-height: calc(100vh - 92px);
  }

  body.phone-mode .production-modal-card {
    padding: 14px;
  }

  body.phone-mode .production-modal-line {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .stock-preparation-card .item-actions, body.phone-mode .preparation-line, body.phone-mode .tracking-movement-row, body.phone-mode .tracking-declaration-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .production-tracking-kpis {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .bakery-activity-grid.focus-mode, body.phone-mode .today-signal-row, .bakery-activity-grid.focus-mode, .today-signal-row {
    grid-template-columns: minmax(0, 1fr);
  }

  body.phone-mode .production-line .badge {
    justify-self: start;
  }

  body.phone-mode .recipe-table {
    min-width: 480px;
  }

  body.phone-mode .nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 50;
    display: grid;
    gap: 5px;
    padding: 8px;
    background: rgba(27, 21, 25, 0.98);
    box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.22);
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  body.phone-mode .nav .nav-group-label {
    display: none;
  }

  body.phone-mode .nav .onboarding-open-btn {
    display: none;
  }

  body.phone-mode.workshop-mode.sector-artisan .nav-btn[data-tab="production"], body.phone-mode.workshop-mode.sector-salon .nav-btn[data-tab="production"] {
    display: grid;
  }

  body.phone-mode.workshop-mode.sector-artisan .nav, body.phone-mode.workshop-mode.sector-salon .nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.phone-mode.workshop-mode.sector-artisan .pilotage-grid, body.phone-mode.workshop-mode.sector-salon .pilotage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.phone-mode.workshop-mode.sector-artisan .pilotage-tile.primary-work, body.phone-mode.workshop-mode.sector-salon .pilotage-tile.primary-work {
    grid-column: 1 / -1;
  }

  body.phone-mode.workshop-mode.sector-artisan .pilotage-grid > :last-child, body.phone-mode.workshop-mode.sector-salon .pilotage-grid > :last-child {
    grid-column: 1 / -1;
  }

  body.phone-mode.workshop-mode.sector-artisan .pilotage-tile, body.phone-mode.workshop-mode.sector-salon .pilotage-tile {
    min-height: 104px;
    padding: 12px;
  }

  body.phone-mode.workshop-mode.sector-artisan .today-command-grid, body.phone-mode.workshop-mode.sector-salon .today-command-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.phone-mode.workshop-mode.sector-artisan .today-command-grid .home-command:nth-child(2), body.phone-mode.workshop-mode.sector-salon .today-command-grid .home-command:nth-child(2), body.phone-mode.workshop-mode .priority-panel.empty-panel {
    display: none;
  }

  body.phone-mode.workshop-mode .validation-panel {
    max-height: 330px;
  }

  body.phone-mode.workshop-mode .validation-list {
    max-height: 250px;
    overflow-y: auto;
  }

  body.phone-mode {
    background: #f3f6fb;
  }

  body.phone-mode .sidebar {
    position: sticky;
    top: 0;
    z-index: 30;
    height: auto;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 10px;
    align-items: end;
    padding: 10px;
  }

  body.phone-mode .brand {
    grid-template-columns: 34px minmax(0, 1fr);
    align-self: center;
  }

  body.phone-mode .brand strong {
    font-size: 0.82rem;
  }

  body.phone-mode .sidebar > .field {
    gap: 5px;
    min-width: 0;
  }

  body.phone-mode .sidebar > .field > span {
    font-size: 0.64rem;
  }

  body.phone-mode .sidebar select {
    min-height: 38px;
    padding: 6px 8px;
    font-size: 0.72rem;
  }

  body.phone-mode .onboarding-open-btn {
    display: none;
  }

  body.phone-mode main {
    padding-bottom: 104px;
    padding: 12px 10px 98px;
  }

  body.phone-mode .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-height: 48px;
    margin: 0 -10px 10px;
    padding: 0 10px 10px;
  }

  body.phone-mode .topbar h1 {
    font-size: 1.08rem;
  }

  body.phone-mode .topbar-actions {
    display: flex;
    flex-wrap: nowrap;
    width: auto;
    justify-content: flex-end;
  }

  body.phone-mode .topbar-actions .btn {
    display: inline-flex;
    flex: 0 0 38px;
    justify-content: center;
    width: 38px;
    min-height: 38px;
    padding: 0;
  }

  body.phone-mode .topbar-actions .btn span {
    display: none;
  }

  body.phone-mode .pilotage-panel, body.phone-mode .panel {
    padding: 12px;
  }

  body.phone-mode .pilotage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  body.phone-mode .pilotage-tile {
    min-height: 98px;
    padding: 10px;
  }

  body.phone-mode .pilotage-tile.primary-work {
    grid-column: 1 / -1;
  }

  body.phone-mode .pilotage-grid > :last-child {
    grid-column: 1 / -1;
  }

  body.phone-mode .business-flow-head {
    margin-bottom: 6px;
  }

  body.phone-mode .business-flow-head strong {
    font-size: 0.7rem;
  }

  body.phone-mode .business-flow-head > span {
    max-width: 142px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.phone-mode .business-flow {
    gap: 4px;
  }

  body.phone-mode .business-flow-step {
    display: grid;
    justify-items: center;
    gap: 3px;
    min-height: 58px;
    padding: 5px 2px;
    text-align: center;
  }

  body.phone-mode .business-flow-step i {
    display: none;
  }

  body.phone-mode .business-flow-icon {
    width: 25px;
    height: 25px;
  }

  body.phone-mode .business-flow-step > span:nth-child(2) {
    justify-items: center;
  }

  body.phone-mode .business-flow-step small {
    width: 100%;
    font-size: 0.58rem;
  }

  body.phone-mode .business-flow-step strong {
    font-size: 0.86rem;
  }

  body.phone-mode .today-command-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 8px;
  }

  body.phone-mode .home-command {
    grid-template-columns: 28px minmax(0, 1fr);
    min-height: 64px;
    padding: 9px;
  }

  body.phone-mode .customer-case-card {
    grid-template-columns: 34px minmax(0, 1fr) 14px;
    gap: 8px;
  }

  body.phone-mode .case-card-icon {
    width: 34px;
    height: 34px;
  }

  body.phone-mode .case-card-value {
    grid-column: 2;
    justify-items: start;
  }

  body.phone-mode .case-card-chevron {
    grid-column: 3;
    grid-row: 1 / 3;
  }

  .customer-case-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .onboarding-sector-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .customer-case-detail-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .case-timeline {
    gap: 3px;
  }

  .case-timeline-step {
    padding: 7px 2px;
  }

  .case-timeline-step small {
    font-size: 0.56rem;
  }

  body.phone-mode .nav-btn span {
    max-width: 100%;
    line-height: 1.05;
    overflow: visible;
    font-size: 0.64rem;
    text-overflow: clip;
    white-space: normal;
  }

}

.billing-kpis {
  margin-bottom: 12px;
}

.billing-list {
  display: grid;
  gap: 10px;
}

.billing-card {
  display: grid;
  gap: 7px;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--rail);
  border-radius: 11px;
  background: #fff;
}

.billing-card.sent {
  border-left-color: var(--blue);
}

.billing-card.accepted, .billing-card.paid {
  border-left-color: var(--success);
}

.billing-card.refused {
  border-left-color: var(--danger);
  opacity: 0.75;
}

.billing-card.invoiced {
  border-left-color: var(--success);
}

.billing-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.billing-card-head strong {
  font-size: 0.98rem;
}

.billing-card small {
  color: var(--muted);
}

.billing-amount {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ink);
}

.quote-lines-head, .quote-line {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) 62px 70px 84px 70px 84px 32px;
  gap: 6px;
  align-items: center;
}

.quote-lines-head {
  margin-top: 10px;
  padding: 0 2px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.quote-lines {
  display: grid;
  gap: 6px;
  margin: 6px 0 10px;
}

.quote-line input, .quote-line select {
  min-height: 38px;
  padding: 4px 8px;
  font-size: 0.9rem;
}

.quote-line .quote-line-total {
  text-align: right;
  font-weight: 700;
}

.quote-line .icon-btn {
  width: 30px;
  height: 30px;
}

.quote-totals {
  margin: 12px 0;
}

@media (max-width: 720px) {
  .tax-modal-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .quote-lines-head {
    display: none;
  }

  .quote-line {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .quote-line input:first-child {
    grid-column: 1 / -1;
  }

}

body.sector-bakery {
  --primary: #d97706;
  --primary-dark: #b45309;
  --rail: #f59e0b;
  --sector-soft: var(--surface-amber);
}

body.sector-bar {
  --primary: #0891b2;
  --primary-dark: #0e7490;
  --rail: #22d3ee;
  --sector-soft: var(--surface-cyan);
}

body.sector-salon {
  --primary: #c026d3;
  --primary-dark: #a21caf;
  --rail: #e879f9;
  --sector-soft: var(--surface-rose);
}

body.sector-artisan {
  --primary: #ea580c;
  --primary-dark: #c2410c;
  --rail: #fb923c;
  --sector-soft: #fff3ea;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 8px;
  color: #ffffff;
  background: var(--primary);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--primary) 35%, transparent);
}

.nav-group-label {
  text-transform: uppercase;
  margin: 10px 10px 3px;
  color: #7f8998;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.nav-btn.active .nav-icon {
  stroke-width: 2.25;
  stroke: #ffffff;
}

.pilotage-tile {
  display: flex;
  align-items: flex-start;
  border-left: 5px solid var(--success);
  text-align: left;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
  min-height: 108px;
  gap: 11px;
  padding: 13px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--primary);
  border-left-width: 1px;
  border-radius: 8px;
  box-shadow: none;
  background: var(--surface-green);
}

.pilotage-tile > svg {
  flex: 0 0 auto;
  margin-top: 2px;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  width: 24px;
  height: 24px;
  padding: 4px;
  border-radius: 7px;
  box-sizing: content-box;
  background: #e7efff;
  color: var(--primary);
  stroke: var(--primary);
}

.pilotage-tile.warn > svg {
  stroke: var(--accent-amber);
}

.pilotage-tile.danger > svg {
  stroke: var(--accent-coral);
}

.home-command svg {
  grid-area: icon;
  fill: none;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  grid-row: 1 / 3;
  box-sizing: content-box;
  color: #426285;
  padding: 8px;
  border-radius: 12px;
  width: 40px;
  height: 40px;
  background: var(--surface-blue);
  stroke: #2563eb;
}

.home-command:nth-child(6n + 2) svg {
  background: var(--surface-amber);
  stroke: var(--accent-amber);
}

.home-command:nth-child(6n + 3) svg {
  background: var(--surface-green);
  stroke: var(--success);
}

.home-command:nth-child(6n + 4) svg {
  background: var(--surface-rose);
  stroke: var(--accent-coral);
}

.home-command:nth-child(6n + 5) svg {
  background: var(--surface-cyan);
  stroke: var(--blue);
}

.home-command:nth-child(6n + 6) svg {
  background: #f3e8ff;
  stroke: var(--accent-violet);
}

.home-command.primary svg {
  width: 22px;
  height: 22px;
  color: #1d4ed8;
  background: var(--sector-soft, var(--surface-blue));
  stroke: var(--primary);
}

.page-dashboard-strip, .today-command-head {
  background: linear-gradient(120deg, var(--sector-soft, var(--surface-blue)), #ffffff 80%);
  border-color: color-mix(in srgb, var(--primary) 22%, #ffffff);
}

.badge.ok {
  border-color: #a7ddc7;
  background: #d1fae5;
  color: #065f46;
}

.badge.warn {
  border-color: #f0ce91;
  background: #fef3c7;
  color: #92400e;
}

.badge.danger {
  border-color: #f2b5c0;
  background: #fee2e2;
  color: #b91c1c;
}

.badge.info {
  border-color: #b8d5ff;
  background: #dbeafe;
  color: #1e40af;
}

.onboarding-sector-options button:hover {
  border-color: #a9bcd2;
  background: #ffffff;
  transform: translateY(-2px);
}

.onboarding-sector-options button.active {
  border-color: var(--primary);
  background: var(--sector-soft, var(--surface-blue));
  color: var(--primary-dark);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--primary) 22%, transparent);
}

.onboarding-sector-options button[data-onboarding-sector^="Boulangerie"].active {
  border-color: #d97706;
  color: #b45309;
  background: var(--surface-amber);
}

.onboarding-sector-options button[data-onboarding-sector^="Bar"].active {
  border-color: #0891b2;
  color: #0e7490;
  background: var(--surface-cyan);
}

.onboarding-sector-options button[data-onboarding-sector^="Coiffure"].active {
  border-color: #c026d3;
  color: #a21caf;
  background: var(--surface-rose);
}

.onboarding-sector-options button[data-onboarding-sector^="Plombier"].active {
  border-color: #ea580c;
  color: #c2410c;
  background: #fff3ea;
}

.siret-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.field-hint {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.8rem;
}

@media (max-width: 640px) {
  .onboarding-choices {
    grid-template-columns: minmax(0, 1fr);
  }

  .weekly-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .onboarding-sector-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

body.workshop-mode .nav-icon {
  width: 21px;
  height: 21px;
}

body.workshop-mode .home-command strong {
  font-size: 1.05rem;
}

body.workshop-mode .pilotage-tile strong {
  font-size: 1.08rem;
}

.login-screen.hidden {
  display: none;
}

.login-card {
  width: min(420px, 100%);
  display: grid;
  gap: 12px;
  padding: 30px 28px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
}

.login-brand {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto;
  border-radius: 18px;
  background: var(--primary);
}

.login-brand svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.login-card h1 {
  margin: 0;
  text-align: center;
  font-size: 1.5rem;
}

.login-sub {
  margin: 0 0 6px;
  text-align: center;
  color: var(--muted);
}

.login-card input {
  min-height: 50px;
  font-size: 1.05rem;
}

.login-submit {
  min-height: 52px;
  font-size: 1.08rem;
}

.login-status {
  min-height: 20px;
  margin: 0;
  text-align: center;
  color: var(--danger);
  font-size: 0.9rem;
}

.login-installer {
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.login-installer summary {
  color: var(--muted);
  font-size: 0.85rem;
  cursor: pointer;
}

.login-installer .field {
  margin-top: 8px;
}

body.patron-session .logout-btn {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.patron-session .installer-details {
  display: none;
}

body.patron-session .sidebar > .field {
  display: none;
}

.production-product-card {
  grid-template-rows: 72px auto auto 1fr;
  min-height: 224px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  box-shadow: 0 10px 22px rgba(23, 33, 43, 0.06);
  display: grid;
  justify-items: center;
  gap: 8px;
  text-align: center;
}

.production-product-card > svg {
  display: none;
}

.sector-hero-emoji {
  font-size: 42px;
  line-height: 1;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.12));
}

.page-dashboard-strip {
  border-bottom: 1px solid #e9ddc7;
  background: #f6efe2;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 92px;
  padding: 16px;
  border-left: 4px solid var(--primary);
  display: flex;
  align-items: center;
  gap: 16px;
}

.page-dashboard-strip > div {
  flex: 1;
  min-width: 0;
}

.onboarding-sector-options button .sector-card-emoji {
  font-size: 30px;
  line-height: 1;
}

.modal-shell {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 20px;
  backdrop-filter: blur(3px);
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
}

.modal-card > .modal-head {
  flex: 0 0 auto;
  margin: 0;
  padding: 18px 22px 14px;
  background: linear-gradient(120deg, var(--sector-soft, var(--surface-blue)), #ffffff 85%);
  border-bottom: 1px solid var(--line);
}

.modal-card > .modal-head h2 {
  font-size: 1.22rem;
}

.modal-card > *:not(.modal-head):not(.modal-actions) {
  margin-left: 22px;
  margin-right: 22px;
}

.modal-card > .form-grid:first-of-type, .modal-card > .onboarding-steps {
  margin-top: 16px;
}

.modal-card {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  border: 1px solid #d5dfeb;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  max-height: 90vh;
  padding: 0;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 34px 80px rgba(8, 15, 30, 0.4);
  animation: modal-pop 0.18s ease-out;
  gap: 10px;
}

.modal-card > .modal-actions {
  flex: 0 0 auto;
  margin: 6px 0 0;
  padding: 14px 22px 18px;
  border-top: 1px solid var(--line);
  background: #fbfcfe;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.modal-card-scroll, .modal-card > .onboarding-panel, .modal-card > .weekly-body, .modal-card > .op-detail-body, .modal-card > .tax-modal-grid, .modal-card > .quote-lines, .modal-card > .production-modal-ingredients {
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
}

.modal-card input, .modal-card select, .modal-card textarea {
  min-height: 46px;
}

.modal-card textarea {
  min-height: 70px;
}

.icon-btn {
  display: grid;
  place-items: center;
  font-weight: 800;
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  font-size: 1.15rem;
  line-height: 1;
  color: var(--muted);
}

.icon-btn:hover {
  background: var(--surface-rose);
  color: var(--danger);
  border-color: currentColor;
}

.panel {
  padding: 16px;
  border-radius: 14px;
}

.panel-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.panel-head h2 {
  font-size: 1.06rem;
}

.eyebrow {
  margin: 0 0 5px;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 22px;
  margin-bottom: 6px;
  padding: 0 8px;
  border: 1px solid #ecd9b4;
  border-radius: 999px;
  background: #f6ecdc;
  text-transform: none;
  color: #526277;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.09em;
}

.item-card, .billing-card, .kanban-card {
  border-radius: 12px;
}

.item-actions {
  display: flex;
  flex-wrap: wrap;
  margin-top: 10px;
  gap: 8px;
}

.btn {
  border: 1px solid transparent;
  min-height: 40px;
  padding: 0 13px;
  font-size: 0.86rem;
  font-weight: 700;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  border-radius: 10px;
}

.btn.primary:hover {
  border-color: var(--primary-dark);
  background: var(--primary-dark);
  box-shadow: 0 7px 16px rgba(37, 99, 235, 0.24);
  transform: translateY(-1px);
}

input:hover, select:hover, textarea:hover {
  border-color: color-mix(in srgb, var(--primary) 45%, var(--line));
}

.admin-kpi-grid article, .billing-kpis article, .production-tracking-kpis article {
  padding: 14px;
  border-radius: 12px;
}

.admin-kpi-grid article strong, .billing-kpis article strong, .production-tracking-kpis article strong {
  font-size: 1.35rem;
}

body.trade-plumber {
  --primary: #0f766e;
  --primary-dark: #115e59;
  --sector-soft: #ccfbf1;
}

body.trade-electrician {
  --primary: #1d4ed8;
  --primary-dark: #1e3a8a;
  --sector-soft: #dbeafe;
}

body.trade-painter {
  --primary: #be185d;
  --primary-dark: #831843;
  --sector-soft: #fce7f3;
}

body.trade-btp {
  --primary: #b45309;
  --primary-dark: #78350f;
  --sector-soft: #fef3c7;
}

.panel, .item-card, .billing-card, .kanban-card, .admin-kpi-grid article, .billing-kpis article, .production-tracking-kpis article, .home-command, .pilotage-tile, .production-product-card, .modal-card, .login-card, .login-brand, .product-visual, .onboarding-sector-options button {
  border-radius: var(--radius);
}

.btn, .icon-btn, input, select, textarea, .badge {
  border-radius: var(--radius-sm);
}

.page-dashboard-strip, .today-command-head, .modal-card > .modal-head {
  background: var(--sector-soft, #eff6ff);
  border-color: color-mix(in srgb, var(--primary) 28%, #cbd5e1);
}

.topbar, .modal-shell {
  backdrop-filter: none;
}

.btn.primary {
  color: #ffffff;
  border-color: var(--primary);
  background: var(--primary);
  box-shadow: none;
}

.onboarding-sector-options {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.onboarding-sector-options button {
  display: grid;
  justify-items: center;
  gap: 7px;
  border: 2px solid var(--line);
  border-radius: 14px;
  background: #fff;
  font-weight: 800;
  color: var(--muted);
  cursor: pointer;
  transition: transform 0.1s ease, border-color 0.1s ease;
  font-size: 0.84rem;
  min-height: 78px;
  padding: 10px 6px;
}

.onboarding-sector-options button svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
  width: 30px;
  height: 30px;
}

.sector-card-emoji {
  display: none !important;
}

.sector-hero-icon {
  display: grid;
  place-items: center;
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  border: 1px solid color-mix(in srgb, var(--primary) 35%, #fff);
  border-radius: var(--radius);
  background: #fff;
  color: var(--primary);
}

.sector-hero-icon svg, .product-visual svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.production-product-card:nth-child(4n + 2) .product-visual {
  color: #b45309;
  background: #fef3c7;
}

.production-product-card:nth-child(4n + 3) .product-visual {
  color: #047857;
  background: #d1fae5;
}

.production-product-card:nth-child(4n + 4) .product-visual {
  color: #be185d;
  background: #fce7f3;
}

.pilotage-tile small {
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  color: #475569;
}

.quote-modal-card {
  max-width: 720px;
  width: min(920px, calc(100vw - 28px));
  overflow-y: auto;
}

.quote-trade-details {
  margin: 0 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #f8fafc;
}

.quote-trade-details.hidden {
  display: none;
}

.quote-trade-details summary {
  padding: 10px 12px;
  color: var(--ink);
  font-weight: 800;
  cursor: pointer;
}

.quote-trade-grid {
  padding: 0 12px 12px;
}

.field-wide {
  grid-column: 1 / -1;
}

.field-check {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #fff;
  color: var(--ink);
  font-weight: 700;
}

.field-check input {
  flex: 0 0 auto;
  width: 20px;
  min-height: 20px !important;
}

.inline-icon {
  width: 14px;
  height: 14px;
  margin-right: 5px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  vertical-align: -2px;
}

body.workshop-mode {
  font-size: 15.5px;
}

body.workshop-mode .nav-btn {
  min-height: 46px;
  font-size: 0.96rem;
}

body.workshop-mode .btn {
  min-height: 42px;
  font-size: 0.94rem;
}

body.workshop-mode .btn.small {
  min-height: 36px;
}

body.workshop-mode .home-command {
  gap: 8px;
  min-height: 82px;
  grid-template-columns: 48px minmax(0, 1fr);
}

body.workshop-mode .home-command svg {
  width: 44px;
  height: 44px;
  padding: 9px;
  box-sizing: border-box;
  border-radius: var(--radius);
}

body.workshop-mode .pilotage-tile {
  min-height: 78px;
}

body.workshop-mode input, body.workshop-mode select {
  min-height: 42px;
  font-size: 0.95rem;
}

@media (max-width: 700px) {
  .onboarding-sector-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .quote-modal-card {
    width: calc(100vw - 12px);
  }

  .quote-trade-details {
    margin-inline: 12px;
  }

  .quote-trade-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .field-wide {
    grid-column: auto;
  }

  .sector-hero-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }

  .sector-hero-icon svg {
    width: 25px;
    height: 25px;
  }

}

.planning-stats {
  margin-bottom: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.planning-stat {
  box-shadow: var(--shadow);
  min-height: 78px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 12px;
  background: #fff;
}

.planning-stat .stat-emoji {
  font-size: 28px;
  line-height: 1;
}

.planning-stat > div {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.planning-stat span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.planning-stat strong {
  display: block;
  margin: 5px 0 3px;
  font-size: 1.3rem;
}

.planning-stat small {
  color: var(--muted);
  font-size: 0.75rem;
}

.planning-grid td, .planning-slot {
  min-height: 46px;
}

[data-drop-date] {
  position: relative;
  cursor: pointer;
  transition: background 0.12s ease;
}

[data-drop-date]:hover {
  background: var(--sector-soft, var(--surface-blue));
}

[data-drop-date]:hover::after {
  content: "＋";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--primary);
  opacity: 0.85;
  pointer-events: none;
}

[data-drop-date]:has(.planning-chip):hover::after {
  content: "";
}

.planning-chip {
  display: grid;
  gap: 1px;
  min-width: 0;
  border: 1px solid #b9daf0;
  border-left: 4px solid #1b8fd2;
  color: var(--text);
  user-select: none;
  border-color: #9fd4ff;
  background: #f1f8ff;
  padding: 7px;
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(31, 48, 78, 0.1);
  cursor: pointer;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.planning-chip:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 16px rgba(15, 23, 42, 0.14);
}

.chip-time {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 7px;
  border-radius: 6px;
  background: color-mix(in srgb, var(--primary) 14%, #ffffff);
  color: var(--primary-dark);
  font-variant-numeric: tabular-nums;
}

.chip-emoji {
  margin-right: 5px;
  font-size: 0.95em;
}

button, .nav-btn, .home-command, .pilotage-tile, .bakery-menu-tile, .production-product-card, .kanban-card, .onboarding-sector-options button {
  transition: transform 0.08s ease, box-shadow 0.12s ease, background 0.12s ease;
}

button:active, .nav-btn:active, .home-command:active, .pilotage-tile:active, .bakery-menu-tile:active, .production-product-card:active, .kanban-card:active, .planning-chip:active, .onboarding-sector-options button:active {
  transform: scale(0.96);
}

.production-product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
}

.production-product-card:hover .product-visual {
  transform: scale(1.08);
}

.product-visual {
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--sector-soft, var(--surface-blue));
  line-height: 1;
  width: 52px;
  height: 52px;
  color: var(--primary);
  font-size: 0;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 24%, transparent);
  transition: transform 0.12s ease;
}

body.sector-tpe {
  --primary: #e4312b;
  --primary-dark: #c4221d;
  --rail: #f0716c;
  --sector-soft: #fdeeed;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  scrollbar-width: thin;
  gap: 12px;
  padding: 18px 16px;
  background: var(--sidebar);
  color: #eef1f6;
  border-right: none;
  box-shadow: none;
}

.sidebar .field, .installer-details summary, .brand span, .sidebar-card span, .sidebar-card p {
  color: var(--muted);
}

.brand strong, .sidebar-card strong {
  color: var(--ink);
}

.sidebar input, .sidebar select {
  min-height: 40px;
  background: #ffffff;
  border-color: var(--line);
  color: var(--ink);
}

.installer-details {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 9px 11px;
  background: var(--bg);
  border-color: var(--line);
}

.installer-nav {
  width: 100%;
  margin-top: 10px;
  background: var(--bg);
  color: var(--ink);
}

.sidebar-card {
  margin-top: auto;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 12px;
  background: var(--bg);
  border-color: var(--line);
}

.nav-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  text-align: left;
  border: 1px solid transparent;
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
  min-height: 40px;
  border-radius: 7px;
  padding: 0 11px;
  font-size: 0.88rem;
  color: var(--ink);
  font-weight: 700;
}

.nav-btn:hover {
  border-color: rgba(231, 181, 104, 0.3);
  background: color-mix(in srgb, var(--primary) 8%, #ffffff);
  color: var(--primary-dark);
}

.nav-btn.active {
  border-color: rgba(231, 181, 104, 0.5);
  background: var(--primary);
  color: #ffffff;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 35%, transparent);
}

.nav-group-label:nth-of-type(1) {
  color: #2563eb;
}

.nav-group-label:nth-of-type(2) {
  color: var(--primary-dark);
}

.nav-group-label:nth-of-type(3) {
  color: #0e8a5f;
}

.nav-group-label:nth-of-type(4) {
  color: #7c3aed;
}

.nav-btn[data-tab="overview"] .nav-icon, .nav-btn[data-tab="requests"] .nav-icon, .nav-btn[data-tab="planning"] .nav-icon {
  stroke: #2563eb;
}

.nav-btn[data-tab="production"] .nav-icon, .nav-btn[data-tab="inventory"] .nav-icon {
  stroke: var(--primary);
}

.nav-btn[data-tab="suppliers"] .nav-icon, .nav-btn[data-tab="invoices"] .nav-icon, .nav-btn[data-tab="economy"] .nav-icon {
  stroke: #0e8a5f;
}

.nav-btn[data-tab="billing"] .nav-icon, .nav-btn[data-tab="reminders"] .nav-icon, .nav-btn[data-tab="settings"] .nav-icon {
  stroke: #7c3aed;
}

.onboarding-open-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  font-weight: 700;
  min-height: 42px;
  border-color: var(--line);
  background: var(--bg);
  color: var(--ink);
}

.logout-btn {
  display: none;
  border-color: var(--line);
  background: var(--bg);
  color: var(--ink);
}

.page-dashboard-strip, .today-command-head, .bakery-dashboard-strip {
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 5px solid var(--primary);
  border-radius: 12px;
}

.desktop-menubar, .stock-subnav {
  background: #ffffff;
  border: 1px solid var(--line);
}

.panel, .item-card, .billing-card, .kanban-card, .pilotage-tile, .planning-stat, .home-command, .production-product-card, .admin-kpi-grid article, .billing-kpis article, .production-tracking-kpis article, .bakery-menu-tile, .stock-preparation-card, .tracking-op-card {
  box-shadow: var(--shadow);
}

.pilotage-tile, .planning-stat {
  background: #ffffff;
}

.pilotage-tile.warn {
  border-left-color: var(--warn);
  background: #fff9ec;
}

.pilotage-tile.danger {
  border-left-color: var(--danger);
  background: #fff2f2;
}

.planning-stat.ok {
  border-left-color: var(--success);
  background: #f2fbf6;
}

.planning-stat.warn {
  border-left-color: var(--warn);
  background: #fff9ec;
}

.planning-stat.info {
  border-left-color: var(--blue);
  background: #f3f7ff;
}

.login-screen {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 20px;
  background: linear-gradient(150deg, #eef3fb 0%, #f7f9fc 55%, #eef7f2 100%);
}

.topbar h1 {
  margin: 0;
  letter-spacing: 0;
  line-height: 1.08;
  font-size: clamp(1.3rem, 2vw, 1.62rem);
  font-weight: 760;
  color: var(--ink);
}

@media (min-width: 1000px) {
  .tab-panel[data-panel="overview"] .pilotage-panel {
    order: 1;
    margin: 0;
  }

  .tab-panel[data-panel="overview"] .today-command-shell {
    order: 2;
    margin: 0;
  }

  .tab-panel[data-panel="overview"] .overview-action-strip {
    order: 3;
    min-height: 0;
    margin: 0;
  }

  .overview-action-strip .panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0;
  }

  .overview-action-strip .action-queue, .overview-action-strip .validation-list {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-right: 4px;
  }

  .tab-panel[data-panel="overview"] .panel-head {
    margin-bottom: 8px;
  }

  body:not(.phone-mode) {
    overflow: hidden;
  }

  body:not(.phone-mode) .layout {
    height: 100vh;
    overflow: hidden;
  }

  body:not(.phone-mode) main {
    display: flex;
    flex-direction: column;
    height: 100vh;
    min-width: 0;
    padding: 16px 20px 14px;
    overflow: hidden;
  }

  body:not(.phone-mode) .topbar, body:not(.phone-mode) #suspendedAlert {
    flex: 0 0 auto;
  }

  body:not(.phone-mode) .tab-panel {
    display: none;
  }

  body:not(.phone-mode) .tab-panel.active {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 6px;
    scrollbar-width: thin;
    scrollbar-color: var(--rail) transparent;
  }

  body:not(.phone-mode) .tab-panel.active::-webkit-scrollbar {
    width: 8px;
  }

  body:not(.phone-mode) .tab-panel.active::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 35%, transparent);
  }

  body:not(.phone-mode) .tab-panel[data-panel="overview"].active {
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 12px;
    display: grid;
    height: auto;
    overflow: hidden;
  }

  body:not(.phone-mode) .tab-panel[data-panel="planning"].active {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    gap: 10px;
  }

  .tab-panel[data-panel="planning"] .bakery-desktop, .tab-panel[data-panel="planning"] .planning-stats {
    flex: 0 0 auto;
  }

  .tab-panel[data-panel="planning"] .planning-layout {
    flex: 1 1 auto;
    min-height: 0;
    margin-bottom: 0;
  }

  .tab-panel[data-panel="planning"] .planning-layout > .panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }

  .planning-board {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--rail) transparent;
  }

  .tab-panel[data-panel="planning"] .appointments-panel, .tab-panel[data-panel="planning"] .sheet-details {
    flex: 0 0 auto;
  }

  body:not(.phone-mode) .tab-panel[data-panel="planning"] .bakery-desktop {
    display: none;
  }

  body:not(.phone-mode) .planning-stat {
    padding: 8px 12px;
  }

  body:not(.phone-mode) .planning-stat strong {
    font-size: 1.15rem;
  }

  body:not(.phone-mode) .planning-stat .stat-emoji {
    font-size: 22px;
  }

  body:not(.phone-mode) .tab-panel[data-panel="planning"] .planning-layout > .panel {
    height: 100%;
  }

  body:not(.phone-mode) .planning-board {
    max-height: none !important;
    height: auto;
  }

  body:not(.phone-mode) .tab-panel[data-panel="planning"] .planning-layout {
    align-items: stretch;
    display: flex;
  }

  body:not(.phone-mode) .planning-manual-panel {
    display: none;
  }

  body:not(.phone-mode) .planning-calendar-panel {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
  }

  body:not(.phone-mode) .tab-panel[data-panel="planning"] .planning-layout > .planning-manual-panel {
    display: none !important;
  }

}

.sidebar .nav .nav-btn.active, body .nav-btn.active {
  background: var(--primary) !important;
  color: #ffffff !important;
}

body .nav-btn.active .nav-icon {
  stroke: #ffffff !important;
}

body .today-command-head, body .page-dashboard-strip, body .bakery-dashboard-strip {
  background: #ffffff !important;
}



/* --- Animations --- */
@keyframes modal-pop {
  from { opacity: 0; transform: translateY(14px) scale(0.98); }
  to { opacity: 1; transform: none; }
}

