/* Finitions de la version de démonstration. */
[hidden] { display: none !important; }

/* L'accueil d'accès et le registre sont deux écrans distincts. Aucun morceau
   de la barre latérale ne peut apparaître derrière la connexion Discord. */
body.access-screen { background: radial-gradient(circle at 50% 8%, #332a1c 0, #17130f 44%, #090807 100%); }
body.access-screen .app-shell { display: none !important; }
body.registry-screen #access-gate { display: none !important; }

.dashboard-subnav {
  margin: 7px 0 9px 18px;
  padding: 3px 0 3px 11px;
}

.stock-summary strong {
  font-family: Inter, Segoe UI, Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.035em;
  font-size: 20px;
  font-weight: 750;
}

.supply-workspace {
  display: grid;
  grid-template-columns: minmax(300px, .72fr) minmax(420px, 1.28fr);
  gap: 14px;
}

.supply-form label {
  display: grid;
  gap: 5px;
  margin: 10px 0;
  color: #c9ba94;
  font-weight: bold;
}

.supply-form small {
  display: block;
  color: var(--muted);
  margin-top: 12px;
}

/* Facturation : deux statuts, chacun sur une moitié du sélecteur. */
.payment-status {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.filters:has(#invoice-filters) {
  align-items: flex-start;
}

#invoice-filters {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.invoice-filter-group {
  display: grid;
  gap: 5px;
}

.invoice-filter-group > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.invoice-filter-options {
  display: flex;
  align-items: center;
  gap: 7px;
}

.invoice-filter-option,
.invoice-filter-reset {
  border: 0;
  background: transparent;
  color: #cfc2a5;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 1px;
  cursor: pointer;
}

.invoice-filter-option:hover,
.invoice-filter-option.active {
  color: var(--gold-soft);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.invoice-filter-reset {
  color: var(--muted);
  cursor: pointer;
}

.invoice-filter-reset:hover,
.invoice-filter-reset.active {
  color: var(--gold-soft);
}

@media (max-width: 700px) {
  .supply-workspace { grid-template-columns: 1fr; }
}

/* Les quantités restent saisissables au clavier : les flèches natives sont masquées. */
input[type="number"] { appearance: textfield; -moz-appearance: textfield; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.admin-action-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.admin-action { display:flex; flex-direction:column; align-items:flex-start; gap:8px; text-align:left; cursor:pointer; background:#211b14!important; border-color:#4e4020!important; color:#f4e4b4!important; }
.admin-action:hover { background:#2b2418!important; border-color:#826827!important; }
.admin-action strong { color:#f8e8b9!important; font:700 21px Georgia,serif; }
.admin-action span,.permission-group h4 { color:var(--gold, #d5ad32); font-size:12px; letter-spacing:.08em; }
.admin-action small,.permission-row small { color:#b8aa82; }
.admin-role-row,.permission-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px; border:1px solid #4a3d1e; background:#1d1913; color:#f5e6bd; text-align:left; }
.admin-role-row + .admin-role-row { border-top:0; }
.admin-role-row span,.permission-row span { display:grid; gap:3px; }
.permission-group { margin:18px 0; }
.permission-row { margin-top:7px; border-radius:8px; }
.permission-row input { width:20px; height:20px; accent-color:#d5ad32; }
.dialog-option-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
.dialog-back { margin:0 0 16px; }
.discord-mark { display:inline-grid; place-items:center; width:20px; height:20px; vertical-align:middle; }
.discord-mark svg { display:block; width:20px; height:20px; }
.discord-login .discord-mark { color:#fff; }
.role-preview-status { white-space:nowrap; border-color:#9f7b1f; color:#f8df8e; }
.registry-sync-status { margin:7px 0 0; color:#b9ad8d; font-size:12px; font-weight:700; }
.registry-sync-status::before { content:'◌ '; color:var(--gold-soft); }
.registry-sync-status.is-error { color:#e7ac8e; }
.registry-sync-status.is-error::before { color:var(--red); }
.inventory-picker-trigger { width:100%; margin-top:10px; }
@media (max-width: 760px) { .admin-action-grid,.dialog-option-grid { grid-template-columns:1fr; } }

/* Les quantités restent toujours lisibles, notamment 80/160/480 pour les
   carquois. Les contrôles natifs du navigateur sont masqués : les boutons
   − et + constituent l'unique incrément ergonomique. */
.stock-product-meta {
  display: block;
  margin-top: 4px;
}

/* Les deux paniers partagent une ligne de commande stable. Les largeurs sont
   compatibles avec le panneau latéral, sans pousser les boutons hors cadre. */
.cart-line-controls {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.cart-line-controls input,
.cart-line-controls input[data-cart-qty],
.cart-line-controls input[data-supply-qty] {
  width: 72px;
  min-width: 72px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  appearance: textfield;
  -moz-appearance: textfield;
}
.cart-line-controls input[data-cart-unit] { width: 88px; min-width: 88px; }
.cart-fulfillment { display:flex; gap:4px; margin-top:4px; }
.cart-fulfillment button { border:1px solid #6e5925; border-radius:5px; background:#201b14; color:#cdbd97; padding:1px 6px; font-size:9px; font-weight:800; cursor:pointer; }
.cart-fulfillment button.active { color:#b9e893; border-color:#4c883e; background:#1e371e; }
.cart-fulfillment button:disabled { opacity:.45; cursor:not-allowed; }
.supply-cart-line .cart-line-controls { min-width:150px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }
.supply-contributor{display:grid;gap:3px;min-width:150px;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.supply-contributor select{min-width:150px;max-width:220px;text-transform:none;letter-spacing:normal;font-size:.88rem;font-weight:600}.supply-line-actions{display:flex;align-items:center;justify-content:center;gap:8px}.supply-line-actions :is(button,input){align-self:center}.supply-split{padding:7px 9px!important;font-size:.8rem}
.supply-history-row { cursor:pointer; }
.supply-history-row:hover td { background:#292218!important; }
.reference-price { color: #bcae8d !important; }
.invoice-correction { margin-top: 16px; padding-top: 14px; border-top: 1px solid #443925; }
.invoice-correction h3 { margin: 0 0 5px; font-size: 15px; }
.invoice-correction p { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.correction-lines-wrap { margin-top: 14px; }
.correction-lines-wrap input { width: 86px; min-width: 86px; text-align: right; font-variant-numeric: tabular-nums; }
.correction-total { margin: 12px 0; }
.invoice-cancelled { opacity: .66; }
.movement-tag.cancelled { color: #e9a49b; background: #542920; border: 1px solid #8a4539; }
.cart-line-controls input::-webkit-outer-spin-button,
.cart-line-controls input::-webkit-inner-spin-button,
.invoice-correction input[type="number"]::-webkit-outer-spin-button,
.invoice-correction input[type="number"]::-webkit-inner-spin-button,
.stock-adjust input[type="number"]::-webkit-outer-spin-button,
.stock-adjust input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.invoice-correction input[type="number"],
.stock-adjust input[type="number"] { appearance: textfield; -moz-appearance: textfield; }
.access-game-name { width: 100%; min-width: 180px; }
.supply-history-table { min-width: 1080px; }
.table-sort { border: 0; background: transparent; color: inherit; font: inherit; font-weight: inherit; letter-spacing: inherit; padding: 0; cursor: pointer; }
.table-sort:hover,.table-sort.active { color: var(--gold-soft); }
.stock-filters { align-items: flex-start; }
.stock-adjust { width: min(940px, calc(100vw - 28px)); max-height: calc(100vh - 36px); overflow: auto; }
.stock-adjust-topbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,300px); gap:16px; align-items:end; padding-right:48px; }
.stock-adjust-topbar h2 { margin:0; }
.stock-adjust-topbar .dialog-meta { margin:8px 0 0; }
.stock-adjust-inventory,.product-material-field { display:grid; gap:6px; color:#c9ba94; font-weight:bold; }
.material-input-row { display:flex; gap:8px; align-items:center; }
.material-input-row input { min-width:0; flex:1; }
.material-input-row .button { margin:0; white-space:nowrap; }
.material-tag-list { display:flex; flex-wrap:wrap; gap:6px; min-height:24px; align-items:center; }
.material-tag { display:inline-flex; align-items:center; gap:7px; padding:4px 8px; border:1px solid #695528; border-radius:999px; background:#2a2218; color:var(--gold-soft); font-size:12px; }
.material-tag button { padding:0; border:0; background:transparent; color:#df6951; font:inherit; font-size:17px; line-height:1; cursor:pointer; }
.stock-adjust-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:12px 0 16px; }
.stock-adjust-metrics>div { border:1px solid #443925; border-radius:9px; padding:10px 8px; text-align:center; }
.stock-adjust-metrics span { display:block; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.stock-adjust-metrics strong { display:block; margin-top:4px; color:var(--gold-soft); font-size:18px; font-variant-numeric:tabular-nums; }
.stock-adjust .wide { display:grid; gap:6px; margin:12px 0; color:#c9ba94; font-weight:bold; }
.stock-advanced { margin:14px 0; padding:10px 12px; border:1px solid #443925; border-radius:8px; }
.stock-advanced summary { cursor:pointer; color:#d8c79d; font-weight:800; }
.recipe-editor-add { display:grid; grid-template-columns:minmax(0,1fr) 150px auto; gap:10px; align-items:end; }
.recipe-editor-add label { margin:0; }
.recipe-editor-add .button { margin-bottom:0; }
.recipe-preview h3 { margin:4px 0 12px; }
.recipe-cost { margin:12px 0 0 !important; color:#d8c79d !important; }
.stock-row { cursor:pointer; }
.stock-row:hover td,.stock-row:focus td { background:#2a2218 !important; }
.stock-row:focus { outline:2px solid #a7852b; outline-offset:-2px; }
.stock-row .row-actions { cursor:default; }
.stock-detail-dialog { width:min(660px,calc(100vw - 20px)); max-width:660px; min-height:100vh; max-height:100vh; margin:0 0 0 auto; border-radius:0; padding:22px; }
.stock-detail-dialog .close { position:absolute; right:20px; top:16px; }
.recipe-ingredient-results { margin-top:8px; border:1px solid #3e3427; border-radius:7px; max-height:190px; overflow:auto; background:#17130f; }
.recipe-ingredient-results:has(.recipe-ingredient-hint) { margin:8px 0 0 14px; border:0; border-radius:0; max-height:none; overflow:visible; background:transparent; }
.recipe-ingredient-hint { margin:0; color:var(--muted); }
.customer-order-progress-lines{display:grid;gap:12px}.customer-order-progress-line{border:1px solid var(--line);border-radius:9px;padding:13px}.customer-order-progress-line>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.customer-order-progress-line small{display:block;color:var(--muted);margin-top:4px}.customer-order-progress-line progress{width:100%;height:12px;margin:12px 0;accent-color:var(--gold)}.customer-order-progress-action{display:flex;gap:8px;justify-content:flex-end;align-items:center}.customer-order-progress-action input{width:86px;text-align:center}.customer-order-progress-action .button{padding:8px 10px}.customer-order-progress-action .button:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.45)}.customer-order-progress-line.done{border-color:#478345;background:#1b2819}.customer-order-production-readiness{margin:0 0 10px;padding:8px 10px;border:1px solid;border-radius:7px}.customer-order-production-readiness strong,.customer-order-production-readiness small{display:block}.customer-order-production-readiness small{margin-top:3px}.customer-order-production-readiness.ready{border-color:#478345;background:#1b2819}.customer-order-production-readiness.ready strong{color:#93d07e}.customer-order-production-readiness.missing{border-color:#aa5a45;background:#351d19}.customer-order-production-readiness.missing strong{color:#f09a7e}.customer-order-progress-alert{margin:0;padding:10px 12px;border:1px solid #aa5a45;border-radius:8px;background:#351d19;color:#f5c0aa;font-weight:700}.customer-order-allocations{border-top:1px solid var(--line);padding-top:14px}.customer-order-allocations h3{margin:0 0 4px}.customer-order-allocation-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.customer-order-allocation-row small{display:block;color:var(--muted);margin-top:4px}.customer-order-allocation-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.customer-order-allocation-controls input{width:78px;text-align:center}.customer-order-progress-cell{display:flex;flex-direction:column;gap:6px;white-space:nowrap}.customer-order-progress-cell span{font-size:.9rem;color:var(--gold-soft);font-weight:700}@media(max-width:720px){.customer-order-allocation-row{align-items:flex-start;flex-direction:column}.customer-order-allocation-controls{justify-content:flex-start}}
.recipe-ingredient-option { display:grid; gap:2px; width:100%; padding:9px 11px; border:0; border-bottom:1px solid #3e3427; background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.recipe-ingredient-option:last-child { border-bottom:0; }
.recipe-ingredient-option:hover { background:#2a2218; color:var(--gold-soft); }
.recipe-ingredient-option small { color:var(--muted); }
.recipe-ingredient-selected { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 11px; color:var(--ink); }
.recipe-ingredient-selected button { border:0; background:transparent; color:#df6951; font-size:20px; line-height:1; cursor:pointer; }
.stock-detail-back { margin:0 0 14px; }
.stock-detail-heading { display:flex; gap:12px; align-items:center; padding:5px 0 14px; border-bottom:1px solid #3d3326; }
.stock-detail-heading h2 { margin:0; font-size:20px; }
.stock-detail-heading p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.stock-detail-icon { display:inline-grid; place-items:center; width:25px; height:25px; border-radius:7px; background:#5f4a2c; color:#f2e5bd; font-size:14px; flex:0 0 auto; }
.stock-detail-icon.large { width:44px; height:44px; font-size:23px; }
.stock-detail-metrics { display:flex; flex-wrap:wrap; gap:12px; padding:13px 0; color:var(--muted); font-size:11px; }
.stock-detail-metrics span { display:flex; gap:3px; align-items:baseline; }
.stock-detail-metrics strong { color:var(--gold-soft); font-size:15px; }
.stock-detail-columns { display:grid; grid-template-columns:1fr 1fr; gap:12px; border-top:1px solid #3d3326; padding-top:15px; }
.stock-detail-columns section { min-width:0; border:1px solid #3d3326; border-radius:8px; overflow:hidden; }
.stock-detail-columns .eyebrow { padding:11px 12px 8px; margin:0; }
.stock-detail-list { max-height:calc(100vh - 285px); min-height:130px; overflow:auto; }
.stock-detail-item { width:100%; display:flex; align-items:center; gap:8px; text-align:left; color:var(--ink); background:#1c1813; border:0; border-top:1px solid #352c21; padding:9px 11px; cursor:pointer; }
.stock-detail-item:hover { background:#2a2218; color:var(--gold-soft); }
.stock-detail-item small { margin-left:auto; color:var(--muted); white-space:nowrap; }
.stock-detail-empty { margin:0; padding:12px; color:var(--muted); font-size:12px; }
@media(max-width:700px){ .stock-detail-dialog { width:100vw; max-width:none; padding:18px; }.stock-detail-columns { grid-template-columns:1fr; }.stock-detail-list { max-height:230px; } }
@media (max-width:700px) { .stock-adjust-topbar { grid-template-columns:1fr; padding-right:46px; }.stock-adjust-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.recipe-editor-add { grid-template-columns:1fr; }.recipe-editor-add .button { width:100%; } }

/* Téléphone / tablette : le panneau latéral devient une barre de navigation
   horizontale. Les tableaux gardent leur lisibilité via leur défilement propre,
   au lieu de réduire les colonnes au point de les rendre illisibles. */
@media (max-width: 760px) {
  body { font-size: 14px; }

  .app-shell { display: block; }

  .sidebar {
    position: sticky;
    z-index: 20;
    inset: 0 auto auto 0;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 8px 10px;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    overflow: visible;
  }

  .brand {
    flex: 0 0 auto;
    width: auto;
    padding: 0 9px 0 0;
    border: 0;
  }

  .brand-name { font-size: 12px; }
  .brand-name::after { content: none; }
  .brand-subtitle,
  .personal-sales,
  .sidebar-bottom { display: none; }

  .sidebar nav {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 3px;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  .nav-item {
    flex: 0 0 auto;
    width: auto;
    padding: 8px 9px;
    white-space: nowrap;
  }

  .nav-item span { display: inline; }
  .nav-chevron { display: none !important; }

  .dashboard-subnav {
    flex: 0 0 auto;
    display: flex;
    gap: 3px;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .subnav-item {
    width: auto;
    white-space: nowrap;
    padding: 8px 9px;
  }

  .content {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 16px 12px 32px;
  }

  .topbar,
  .section-heading {
    align-items: stretch;
    gap: 13px;
  }

  .top-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
  }

  .top-actions .select-wrap { min-width: 0; }
  .top-actions .service-status { align-self: center; }
  .top-actions .button { min-height: 42px; }

  .metrics-grid,
  .mini-grid,
  .cards-grid,
  .transaction-layout,
  .client-cards,
  .supply-workspace { grid-template-columns: 1fr; }

  .metric { border-right: 0; border-bottom: 1px solid #4a3d1e; }
  .metric:last-child { border-bottom: 0; }
  .metric strong { font-size: 25px; }
  .low-stock { align-items: flex-start; flex-wrap: wrap; }
  .low-stock button { margin-left: 0; }

  .filters { align-items: stretch; flex-direction: column; }
  .filters input { min-width: 0; width: 100%; }
  #invoice-filters { gap: 12px; }

  .table-wrap { margin-inline: -1px; }
  .stock-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

  dialog,
  #history-dialog,
  .invoice-dialog,
  .work-order-dialog {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
    padding: 16px;
  }

  .form-grid,
  .modal-metrics,
  .history-product-summary { grid-template-columns: 1fr; }

  .dialog-actions { flex-wrap: wrap; }
  .dialog-actions .button { flex: 1 1 130px; }
  .dialog-actions .danger { margin-left: 0; }
}

.rental-city-settings,.rental-list{display:grid;gap:12px;margin:14px 0}.rental-city-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;text-align:left;cursor:pointer}.rental-city-card:hover,.rental-card:hover,.rental-add-card:hover{border-color:#76602a;transform:translateY(-1px)}.rental-city-card strong{display:block;color:var(--gold-soft);font-size:22px;margin:2px 0}.rental-city-card small,.rental-city-card em,.rental-card small{display:block;color:var(--muted);font-style:normal}.rental-city-card b{color:var(--gold-soft)}.rental-city-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #725d2e;border-radius:10px;color:var(--gold-soft);font-size:24px}.rental-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;cursor:pointer}.rental-card h3{margin:2px 0 4px}.rental-card-metric{text-align:right}.rental-card-metric span{display:block;color:var(--muted);font-size:11px}.rental-card-metric strong{display:block;color:var(--gold-soft);font-size:20px;margin:4px 0}.rental-add-card{min-height:120px;display:grid;place-content:center;gap:5px;border:1px dashed #725d2e;background:transparent;color:var(--gold-soft);cursor:pointer;font-size:25px}.rental-add-card strong{font-size:16px}.rental-add-card span{font-size:13px;color:var(--muted)}.rental-back{justify-self:start}.rental-detail-section{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.rental-history-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.rental-space-row{width:100%;align-items:center}.rental-space-main{background:transparent;border:0;text-align:left;color:inherit;cursor:pointer;flex:1;padding:2px 0}.rental-space-main:hover strong{text-decoration:underline}.rental-space-status{cursor:pointer}.rental-payment-form{display:grid;grid-template-columns:100px 1fr auto;gap:8px;margin-top:12px}.rental-space-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;margin-top:12px}@media(max-width:700px){.rental-card,.rental-city-card{grid-template-columns:1fr}.rental-card-metric{text-align:left}.rental-payment-form,.rental-space-form{grid-template-columns:1fr}}

.customer-order-accordion{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.customer-order-accordion summary{cursor:pointer;color:var(--cream);font-family:var(--display);font-size:1.16rem;font-weight:700}.customer-order-accordion[open] summary{margin-bottom:8px}.customer-order-delivery-line{border:1px solid var(--line);border-radius:9px;padding:13px;margin-top:10px}.customer-order-delivery-line>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.customer-order-delivery-line small{display:block;color:var(--muted);margin-top:4px}.customer-order-delivery-line progress{width:100%;height:12px;margin:12px 0;accent-color:var(--gold)}.customer-order-delivery-line.done{border-color:#478345;background:#1b2819}.customer-order-delivery-line input{width:86px;text-align:center}
.customer-order-reservation-events{display:grid;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.customer-order-reservation-events article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid var(--line)}.customer-order-reservation-events article:last-child{border-bottom:0}.customer-order-reservation-events small{display:block;margin-top:3px;color:var(--muted);font-size:.82rem}.customer-order-reservation-events b{white-space:nowrap}
.invoice-dialog:has(#customer-order-progress-lines){width:min(1180px,calc(100vw - 32px));max-width:1180px;max-height:calc(100dvh - 28px);overflow-x:hidden}
.customer-order-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.customer-order-steps button{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:8px;background:#1e1913;color:var(--cream);cursor:pointer;text-align:left}.customer-order-steps button:hover,.customer-order-steps button.active{border-color:var(--gold);background:rgba(205,168,38,.12)}.customer-order-steps button>b{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:999px;background:#4f3b17;color:var(--gold-soft)}.customer-order-steps button.active>b{background:var(--gold);color:#211608}.customer-order-steps span,.customer-order-steps small{display:block;min-width:0}.customer-order-steps span{font-weight:800;font-size:.82rem}.customer-order-steps small{margin-top:2px;color:var(--muted);font-size:.7rem;font-weight:500}
.customer-order-stage>h3,.customer-order-final-summary>h3{margin:0 0 5px;color:var(--cream)}.customer-order-stage>h4{margin:7px 0 -2px;color:var(--gold-soft);font-size:.92rem}.customer-order-stage{display:grid;gap:10px}.customer-order-contribution-form{margin-top:14px;padding:12px;border:1px solid #5b4822;border-radius:9px;background:rgba(205,168,38,.05)}.customer-order-contribution-form h3{margin:0 0 4px;font-size:1rem}.customer-order-contribution-form>div:first-of-type{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(140px,1fr) 92px auto;align-items:end;gap:8px;margin-top:10px}.customer-order-contribution-form>div:first-of-type:has([data-customer-order-delivery-contribution-line]){grid-template-columns:120px 96px minmax(230px,1fr) 70px auto}.customer-order-contribution-form label{display:grid;gap:4px;color:var(--gold-soft);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.customer-order-contribution-form input,.customer-order-contribution-form select{min-width:0}.customer-order-contribution-form .button{white-space:nowrap}.customer-order-contributions{display:grid;gap:0;margin-top:10px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.customer-order-contributions article{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line)}.customer-order-contributions article:last-child{border-bottom:0}.customer-order-contributions small{display:block;margin-top:2px;color:var(--muted);font-size:.78rem}.customer-order-contributions b{color:var(--gold-soft);font-variant-numeric:tabular-nums}.customer-order-delivery-contributions{display:grid;gap:7px;margin-top:10px}.customer-order-delivery-contributions article{display:grid;gap:5px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:rgba(205,168,38,.04)}.customer-order-delivery-contributions article>div{display:flex;flex-wrap:wrap;gap:5px}.customer-order-delivery-contributions span{padding:3px 6px;border:1px solid #4d402a;border-radius:999px;color:var(--muted);font-size:.78rem}.customer-order-delivery-contributions span b{color:var(--gold-soft)}.customer-order-final-summary{display:grid;gap:10px}.customer-order-final-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px}.customer-order-final-lines article,.customer-order-archive-cards article{display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:7px;background:rgba(205,168,38,.05)}.customer-order-final-lines span,.customer-order-archive-cards small{color:var(--muted);font-size:.82rem}.customer-order-archive-steps{display:grid;gap:9px}.customer-order-archive-steps>section{padding:11px;border:1px solid var(--line);border-radius:8px;background:rgba(205,168,38,.035)}.customer-order-archive-steps header{display:flex;align-items:center;gap:8px;margin-bottom:9px}.customer-order-archive-steps header>b{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:999px;background:#4f3b17;color:var(--gold-soft)}.customer-order-archive-steps header span,.customer-order-archive-steps header small{display:block}.customer-order-archive-steps header small{margin-top:2px;color:var(--muted);font-size:.78rem}.customer-order-archive-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:7px}.customer-order-progress-action label{display:grid;gap:3px;color:var(--gold-soft);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.customer-order-progress-action select{min-width:150px}
@media(max-width:760px){.invoice-dialog:has(#customer-order-progress-lines){width:calc(100vw - 16px);max-width:none}.customer-order-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-order-contribution-form>div:first-of-type{grid-template-columns:1fr}.customer-order-progress-action{align-items:stretch;flex-wrap:wrap;justify-content:flex-start}.customer-order-progress-action label{flex:1 1 100%}.customer-order-progress-action select{width:100%}}
.recipe-status-toggle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0}.recipe-status-toggle small{color:var(--muted)}.recipe-status-toggle .button[aria-pressed="true"]{background:var(--gold);color:#191205;border-color:var(--gold)}.recipe-editor-add :is(input,button):disabled{opacity:.55;cursor:not-allowed}
.recipe-dependency-tree{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.recipe-dependency-tree summary{cursor:pointer;color:var(--cream);font-weight:700}.recipe-dependency-tree p{margin:7px 0;color:var(--muted);font-size:.88rem}.recipe-dependency-branches{margin:8px 0;padding-left:19px}.recipe-dependency-branches ul{margin:4px 0;padding-left:20px}.recipe-dependency-branches li{margin:4px 0;color:var(--text)}.recipe-dependency-branches b{color:var(--gold)}.recipe-dependency-branches small{color:var(--muted);font-size:.8rem}.recipe-dependency-leaves{display:grid;gap:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:rgba(205,168,38,.06);font-size:.9rem}.recipe-dependency-leaves strong{color:var(--gold-soft)}.recipe-dependency-leaves span{color:var(--text)}
.recipe-raw-materials{display:grid;gap:7px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.recipe-raw-materials>span{color:var(--gold-soft);font-family:var(--display);font-size:.98rem;font-weight:700}.recipe-raw-material-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;margin-top:7px}.recipe-raw-material-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:rgba(205,168,38,.06)}.recipe-raw-material-card strong,.recipe-raw-material-card small{display:block}.recipe-raw-material-card strong{font-size:.84rem}.recipe-raw-material-card small{margin-top:2px;color:var(--muted);font-size:.72rem}.recipe-raw-material-card b{color:var(--gold);font-size:.94rem;white-space:nowrap}.recipe-material-reservations{display:grid;gap:7px;margin-top:8px}.recipe-material-reservations>span{color:var(--muted);font-size:.82rem}.recipe-material-group-list,.customer-order-material-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:7px}.recipe-material-group,.customer-order-material-groups>section{padding:7px;border:1px solid var(--line);border-radius:8px;background:rgba(205,168,38,.04)}.recipe-material-group summary{cursor:pointer;color:var(--gold-soft);font-size:.82rem;font-weight:800;list-style:none}.recipe-material-group summary::-webkit-details-marker{display:none}.recipe-material-group summary::before{content:'▸';margin-right:6px}.recipe-material-group[open] summary::before{content:'▾'}.recipe-material-group summary small{color:var(--muted);font-weight:500}.recipe-material-reservation-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.recipe-material-reservation{display:inline-flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:rgba(205,168,38,.05);font-size:.78rem}.recipe-material-reservation strong{font-weight:700}.recipe-material-reservation b{color:var(--gold);white-space:nowrap}.customer-order-material-groups .customer-order-allocation-row{margin:0;border-width:0 0 1px;border-radius:0;padding:9px 0}.customer-order-material-groups .customer-order-allocation-row:last-child{border-bottom:0}

/* Le registre reste fixé à l'écran : seules les longues listes défilent dans
   leur propre zone, sans déplacer toute la page ni la barre latérale. */
@media (min-width:761px){
  html,body{height:100%;overflow:hidden}
  body.registry-screen .app-shell{height:100dvh;min-height:0;overflow:hidden}
  body.registry-screen .content{height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding-bottom:18px}
  body.registry-screen .content>.topbar{flex:0 0 auto}
  body.registry-screen .content>.view.active{flex:1 1 auto;min-height:0;overflow:auto;padding:0 8px 14px 0;overscroll-behavior:contain}
}

.daily-history-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.daily-history-card{min-height:116px;text-align:left;cursor:pointer}.daily-history-card.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 28%,transparent)}.daily-history-card strong,.daily-history-card span{display:block}.daily-history-card strong{margin:7px 0 4px;color:var(--cream)}.daily-history-card span{color:var(--gold-soft);font-weight:700}.daily-history-controls{display:flex;align-items:end;gap:18px;margin-bottom:14px}.daily-history-controls label{display:grid;gap:7px;color:var(--cream);font-weight:700}.daily-history-controls input{width:185px}.daily-history-controls p{margin:0 0 10px;color:var(--muted)}@media(max-width:900px){.daily-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.daily-history-grid{grid-template-columns:1fr}.daily-history-controls{align-items:stretch;flex-direction:column}.daily-history-controls input{width:100%}.daily-history-controls p{margin:0}}
/* Administration des comptes : les intitulés servent de tri sans alourdir le tableau. */
.table-sort { border: 0; padding: 0; color: inherit; background: transparent; font: inherit; font-weight: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.table-sort:hover, .table-sort.active { color: var(--gold-soft, #f0d580); }
.compact-delete { min-width: 34px; min-height: 32px; padding: 0 9px; font-size: 20px; line-height: 1; }
.business-access-editor { position: relative; min-width: 145px; }
.business-access-editor summary { cursor: pointer; color: var(--gold-soft, #f0d580); }
.business-access-editor > div { display: grid; gap: 5px; min-width: 190px; margin-top: 7px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: #191510; }
.business-access-editor label { display: flex; gap: 7px; align-items: center; font-size: 12px; white-space: nowrap; }
.business-tag-list { color: var(--muted); font-size: 12px; }

/* La gestion des comptes comporte sept colonnes : sur un écran de bureau, la
   fenêtre les montre toutes sans imposer une barre horizontale pour atteindre
   l'action de retrait. */
#admin-users-dialog { width: min(1320px, calc(100vw - 32px)); }
#admin-users-dialog .table-wrap { overflow-x: auto; }
#admin-users-dialog table { min-width: 1160px; }
#admin-users-dialog th:last-child,
#admin-users-dialog td:last-child { position: sticky; right: 0; background: #211d16; box-shadow: -8px 0 10px rgba(0,0,0,.18); }
#admin-users-dialog .admin-users-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 260px);
  gap: 12px;
  align-items: end;
  margin: 14px 0;
}

#admin-users-dialog .admin-users-filters label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: .85rem;
  font-weight: 700;
}

#admin-roles-dialog { width: min(920px, calc(100vw - 32px)); }
#admin-roles-dialog .admin-role-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(185px, 240px) auto;
  gap: 12px;
  align-items: end;
  margin: 14px 0;
}
#admin-roles-dialog .admin-role-filters label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: .85rem;
  font-weight: 700;
}
.options-panel { max-width: 540px; display: grid; gap: 12px; }
.options-panel small { color: var(--muted); }

/* Fiscalité : des repères compacts et des colonnes réellement équilibrées. */
.daily-history-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.daily-history-card { min-height:82px; padding:11px 13px; }
.daily-history-card small { font-size:9px; }
.daily-history-card strong { margin:4px 0 2px; font-size:14px; }
.daily-history-card span { font-size:12px; }
.forge-tax-metrics { gap:8px; }
.forge-tax-metrics > div,.fiscal-metric-edit { min-height:74px; padding:10px 11px; }
.forge-tax-metrics strong { font-family:Inter,Segoe UI,Arial,sans-serif; font-size:16px; font-weight:750; letter-spacing:-.02em; white-space:nowrap; }
.fiscal-metric-edit { display:block; width:100%; border:1px solid #493d2b; border-radius:8px; color:inherit; background:#1b1813; text-align:center; cursor:pointer; }
.fiscal-metric-edit:hover { border-color:#806a2c; background:#262016; }
.fiscal-metric-edit small { display:block; margin-top:4px; color:var(--gold-soft); font-size:10px; font-weight:700; }
.admin-inventory-form{margin-top:14px}.admin-inventories-list{display:grid;gap:8px;margin-top:16px}.admin-inventory-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--line)}.admin-inventory-row small{display:block;color:var(--muted);margin-top:3px}.admin-inventory-row .button{flex:0 0 auto}
.top-select-label{display:flex;align-items:center;gap:5px}.select-manager{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--gold-soft);font-size:14px;line-height:1;cursor:pointer}.select-manager:hover{background:#302718;color:var(--gold)}.select-manager[hidden]{display:none}
.forge-tax-dialog, #forge-tax-dialog { width:min(940px,calc(100vw - 30px)); }
.forge-tax-table { width:100%; min-width:0; }
.forge-tax-table .tax-bracket { width:38%; }
.forge-tax-table .tax-rate { width:16%; }
.forge-tax-table .tax-taxable { width:24%; }
.forge-tax-table .tax-amount { width:22%; }
.forge-tax-table th,.forge-tax-table td { padding-left:14px; padding-right:14px; }

/* Paie : relevés compacts, distincts pour chaque commerce. */
.payroll-panel { max-width:1120px; }
.payroll-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.payroll-panel-heading h2 { margin:0; }
.payroll-panel-heading p { margin:5px 0 0; color:var(--muted); }
.payroll-layout { display:grid; grid-template-columns:minmax(255px,.65fr) minmax(0,1.35fr); gap:14px; align-items:start; }
.payroll-accounts-list { display:grid; gap:7px; max-height:540px; overflow:auto; padding-right:3px; }
.payroll-account { width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 12px; text-align:left; color:inherit; background:#1c1813; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.payroll-account:hover,.payroll-account.active { border-color:#8e7428; background:#292218; }
.payroll-account span,.payroll-entry>div { min-width:0; }
.payroll-account strong,.payroll-entry strong { display:block; }
.payroll-account small,.payroll-entry small { display:block; margin-top:3px; color:var(--muted); line-height:1.35; }
.payroll-account b,.payroll-entry b { white-space:nowrap; color:var(--gold-soft); }
.payroll-account b.available,.payroll-entry b.available,.payroll-balance.available { color:#a8df94; }
.payroll-account b.missing,.payroll-entry b.missing,.payroll-balance.missing { color:#efab9b; }
.payroll-account-detail { min-height:235px; padding:15px; border:1px solid var(--line); border-radius:9px; background:#191611; }
.payroll-detail-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.payroll-detail-heading h2 { margin:2px 0 4px; }
.payroll-detail-heading p { margin:0; color:var(--muted); }
.payroll-balance { font:700 23px Georgia,serif; color:var(--gold-soft); white-space:nowrap; }
.payroll-account-detail h3 { margin:18px 0 8px; font-size:15px; color:var(--gold-soft); }
.payroll-actions { margin:14px 0 0; }
.payroll-entry-list { border-top:1px solid var(--line); }
.payroll-entry { display:flex; width:100%; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:inherit; text-align:left; cursor:pointer; }
.payroll-entry:hover { background:rgba(205,168,38,.07); }
.payroll-entry-detail { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.payroll-entry-detail>div { padding:10px; border:1px solid var(--line); border-radius:8px; background:#1c1813; }
.payroll-entry-detail .wide { grid-column:1 / -1; }.payroll-entry-detail span,.payroll-entry-detail strong { display:block; }.payroll-entry-detail span { color:var(--muted); font-size:.78rem; }.payroll-entry-detail strong { margin-top:4px; }.payroll-entry-detail p { margin:5px 0 0; color:var(--text); white-space:pre-wrap; }

@media (max-width:760px) {
  .payroll-layout { grid-template-columns:1fr; }
  .payroll-accounts-list { max-height:270px; }
  .payroll-panel-heading { align-items:stretch; flex-direction:column; }
}

@media (max-width: 680px) {
  #admin-users-dialog .admin-users-filters { grid-template-columns: 1fr; }
  #admin-roles-dialog .admin-role-filters { grid-template-columns: 1fr; }
  .daily-history-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Réservations de matières dans une commande : chaque catégorie reste compacte
   et ne prend toute la largeur qu'au moment où elle est ouverte. */
.customer-order-material-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;margin-top:8px}
.customer-order-material-group{padding:0;border:1px solid var(--line);border-radius:8px;background:rgba(205,168,38,.04);overflow:hidden}
.customer-order-material-group[open]{grid-column:1/-1}
.customer-order-material-group summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;cursor:pointer;color:var(--gold-soft);font-size:.82rem;font-weight:800;list-style:none}
.customer-order-material-group summary::-webkit-details-marker{display:none}
.customer-order-material-group summary::before{content:'▸';margin-right:5px}
.customer-order-material-group[open] summary::before{content:'▾'}
.customer-order-material-group summary span{margin-right:auto}
.customer-order-material-group summary small{color:var(--muted);font-size:.74rem;font-weight:500;white-space:nowrap}
.customer-order-material-list{padding:0 9px 3px;border-top:1px solid var(--line)}
.customer-order-material-groups .customer-order-allocation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:0;border-width:0 0 1px;border-radius:0;padding:7px 0}
.customer-order-material-groups .customer-order-allocation-row:last-child{border-bottom:0}
.customer-order-material-groups .customer-order-allocation-row strong{font-size:.88rem}
.customer-order-material-groups .customer-order-allocation-row small{margin-top:1px;font-size:.74rem;line-height:1.25}
.customer-order-material-groups .customer-order-allocation-controls{gap:5px;flex-wrap:nowrap}
.customer-order-material-groups .customer-order-allocation-controls input{width:58px;min-height:32px}
.customer-order-material-groups .customer-order-allocation-controls .button{min-height:32px;padding:5px 7px;font-size:.75rem;line-height:1.15;white-space:nowrap}
@media(max-width:650px){.customer-order-material-groups{grid-template-columns:1fr}.customer-order-material-groups .customer-order-allocation-row{grid-template-columns:1fr}.customer-order-material-groups .customer-order-allocation-controls{justify-content:flex-start;flex-wrap:wrap}}
.customer-order-remuneration{display:grid;gap:8px;padding:11px;border:1px solid var(--line);border-radius:8px;background:rgba(205,168,38,.035)}
.customer-order-remuneration h3,.customer-order-remuneration h4{margin:0;color:var(--cream)}
.customer-order-remuneration h4{margin-top:3px;color:var(--gold-soft);font-size:.9rem}
.customer-order-remuneration-list{display:grid;gap:0;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.customer-order-remuneration-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-bottom:1px solid var(--line)}
.customer-order-remuneration-list article:last-child{border-bottom:0}
.customer-order-remuneration-list article>div,.customer-order-remuneration-list article>span{display:grid;gap:2px}
.customer-order-remuneration-list article>span{text-align:right}
.customer-order-remuneration-list small{color:var(--muted);font-size:.78rem}
.customer-order-remuneration-list b{color:var(--gold-soft);font-variant-numeric:tabular-nums}
