:root{
  --red:#C8102E;--red-d:#9a0c22;--black:#0d0d0d;--dark:#161616;
  --card:#1e1e1e;--card2:#252525;--border:#2e2e2e;--text:#f0f0f0;
  --muted:#666;--green:#27ae60;--gl:#2ecc71;--yellow:#f1c40f;
  --pink:#e91e8c;--blue:#3498db;--purple:#9b59b6;--orange:#e67e22;
  --teal:#1abc9c;--promo:#ff6b35;
  --c0:#e74c3c;--c1:#e91e8c;--c2:#e67e22;--c3:#3498db;--c4:#9b59b6;--c5:#1abc9c;--c6:#f1c40f;
  --luc:#27ae60;--mer:#3498db;--fel:#e67e22;--mar:#9b59b6;
}
/* MODE CLAIR */
body.light{
  --black:#f2f2f7;--dark:#ffffff;--card:#ffffff;--card2:#f0f0f5;
  --border:#d1d1d6;--text:#1c1c1e;--muted:#6e6e73;
}
/* Backgrounds généraux */
body.light .app-header{background:#fff;border-bottom-color:#d1d1d6;}
body.light .tab-bar{background:#fff;border-bottom-color:#d1d1d6;}
body.light .tab{color:#6e6e73;}
body.light .tab.active{color:var(--red);border-bottom-color:var(--red);}
body.light .content{background:#f2f2f7;}

/* Cartes magasins overview */
body.light [onclick^="openStorePanel"]{background:#fff !important;border-color:#d1d1d6 !important;}
body.light [onclick^="openStorePanel"] div{color:#1c1c1e;}

/* Stats badges */
body.light span[style*="background:#0d1f0d"]{background:#d4f5de !important;border-color:#27ae60 !important;}
body.light span[style*="background:#1a1200"]{background:#fef9c3 !important;border-color:#d4a800 !important;}
body.light span[style*="background:#1a1505"]{background:#fef3e2 !important;border-color:#f39c12 !important;}
body.light span[style*="background:#1a1010"]{background:#fde8e8 !important;border-color:#e74c3c !important;}

/* Tableau supervision */
body.light .tbl-wrap{background:#fff;border-color:#d1d1d6;box-shadow:0 1px 8px #0000001a;}
body.light .tbl thead tr.r1 th{background:#f2f2f7;color:#1c1c1e;}
body.light .tbl thead tr.r2 th{background:#e5e5ea;}
body.light .tbl td{border-bottom-color:#e5e5ea;}
body.light .tbl td.prod-c{background:#fff !important;}
/* Tint de couleur animal : seulement sur les lignes de données, pas sur le texte */
body.light .tbl tbody tr[style*="background:"] td.prod-c{
  background:inherit !important;
  filter:none !important;
}
/* Le texte reste toujours sombre */
body.light .prod-label{color:#1c1c1e !important;font-weight:600;}
/* La pill garde sa couleur vive */
body.light .prod-pill{filter:none !important;opacity:1;}
/* Lignes tintées : filtre seulement sur les td de données, pas prod-c */
body.light .tbl tbody tr:not(.cat-row) td:not(.prod-c){filter:none !important;}
/* Cat-row : fond teinté lisible */
body.light .tbl tr.cat-row td{filter:none !important;}

/* Panneau magasin (modal) */
body.light #storePanelModal{background:#f2f2f7;}
body.light #storePanelModal > div:first-child{background:#fff !important;border-bottom-color:#d1d1d6;}
body.light #storePanelModal > div{background:#fff !important;border-bottom-color:#d1d1d6 !important;}
body.light #storePanelContent{background:#f2f2f7;}
body.light #storePanelContent > div > div:first-child{background:#fff !important;}
/* Lignes produits dans panneau */
body.light #storePanelContent [style*="background:#1c1c1e"]{background:#fff !important;}
body.light #storePanelContent [style*="background:#141416"]{background:#f2f2f7 !important;border-bottom-color:#d1d1d6 !important;}
body.light #storePanelContent [style*="border-bottom:1px solid #1e1e20"]{border-bottom-color:#e5e5ea !important;}
body.light #storePanelContent [style*="border-bottom:1px solid #242426"]{border-bottom-color:#e5e5ea !important;}
/* Inputs réelle en mode clair */
body.light #storePanelContent input[type="number"]{background:#f0fff4 !important;border-color:#30d158 !important;}

/* Sections admin (actions, prix, historique) */
body.light #adminContent{background:#f2f2f7;}
body.light #adminContent > *{color:#1c1c1e;}
body.light .promo-card{background:#fff;border-color:#d1d1d6;}
body.light .psel,body.light .pfg input,body.light .pfg select{background:#f2f2f7;border-color:#d1d1d6;color:#1c1c1e;}
body.light .add-btn{background:var(--red);}
/* Cartes prix version */
body.light .ver-item{background:#fff;border-color:#d1d1d6;}
body.light .ver-badge{background:#f2f2f7;border-color:#d1d1d6;color:#1c1c1e;}

/* Actions tableau */
body.light #actionsList [style*="background:#111"]{background:#f2f2f7 !important;}
body.light #actionsList [style*="background:#0a0a0c"]{background:#f0f0f5 !important;}
body.light #actionsList [style*="background:#141416"]{background:#e5e5ea !important;}
body.light #actionsList [style*="background:#1c1c1e"]{background:#fff !important;}
body.light #actionsList input[type="number"]{background:#fff !important;border-color:#d1d1d6 !important;color:#1c1c1e !important;}

/* Toasts */
body.light .toast{background:#1c1c1e;color:#fff;}

/* Historique */
body.light [style*="background:var(--card)"],
body.light [style*="background:var(--dark)"]{background:#fff;}
body.light [style*="background:var(--card2)"]{background:#f2f2f7;}

/* ── LOGIN ── */
body.light .login-box{color:#1c1c1e;}
body.light .login-logo p{color:#6e6e73;}
body.light .lg label{color:#6e6e73;}
body.light .lg input,body.light .lg select{background:#fff;border-color:#d1d1d6;color:#1c1c1e;}
body.light .btn-login{background:var(--red);}
body.light .mode-btn{background:#fff;border-color:#d1d1d6;color:#6e6e73;}
body.light .mode-btn.active{background:var(--red);color:#fff;border-color:var(--red);}

/* ── STORE SCREEN ── */
body.light .order-row{background:#fff !important;border-color:#d1d1d6 !important;}
body.light .fi{background:#f2f2f7;border-color:#d1d1d6;color:#1c1c1e;}
body.light .fi:focus{border-color:var(--red);}
body.light .fg label{color:#6e6e73;}
body.light .prod-name{color:#1c1c1e;}
body.light .si-wrap{background:#f2f2f7;border-color:#d1d1d6;}
body.light .si-btn{background:#e5e5ea;color:#1c1c1e;}
body.light .si-inp{color:#1c1c1e;}
body.light .si-wrap.blue .si-inp{color:#3498db;}
body.light .si-wrap.blue .si-btn{color:#3498db;}
body.light .si-wrap.orange .si-inp{color:#e67e22;}
body.light .si-wrap.orange .si-btn{color:#e67e22;}
body.light .si-wrap.green .si-inp{color:#27ae60;}
body.light .si-wrap.green .si-btn{color:#27ae60;}
/* Warn/ok chips on order-row */
body.light .chip{color:#1c1c1e;}

/* ── FILTER TABS ── */
body.light .ftab{background:#e5e5ea;border-color:#d1d1d6;color:#6e6e73;}
body.light .ftab.active{background:var(--red);color:#fff;border-color:var(--red);}

/* ── EXPORT MODAL ── */
body.light #exportModal{background:#f2f2f7;}
body.light #exportModal > div:first-child{background:#fff !important;border-bottom-color:#d1d1d6 !important;}
body.light #exportModal .empty{color:#6e6e73;}

/* ── PRODUIT HISTORIQUE MODAL ── */
body.light #prodHistModal > div{background:#f2f2f7 !important;}
body.light #prodHistModal > div > div:first-child{background:#fff !important;border-bottom-color:#d1d1d6 !important;}
body.light #prodHistModal [style*="background:var(--card)"]{background:#fff !important;}
body.light #prodHistModal [style*="background:var(--card2)"]{background:#f2f2f7 !important;}

/* ── SUPPLIER SCREEN ── */
body.light #supplierContent{background:#f2f2f7;}
body.light #supplierContent [style*="background:#0d0d0f"],
body.light #supplierContent [style*="background:#0a0a0c"],
body.light #supplierContent [style*="background:#141416"],
body.light #supplierContent [style*="background:#1c1c1e"],
body.light #supplierContent [style*="background:#111"]{background:#fff !important;}
body.light #supplierContent input,
body.light #supplierContent select,
body.light #supplierContent textarea{background:#f2f2f7 !important;border-color:#d1d1d6 !important;color:#1c1c1e !important;}
body.light #supplierContent .si-wrap{background:#f2f2f7;border-color:#f39c1244;}
body.light #supplierContent .si-inp{color:#f39c12 !important;}
body.light #supplierContent .si-btn{background:#e5e5ea;color:#f39c12;}

/* ── ADMIN ACTIONS tableau (buildActionsTable) ── */
body.light #adminContent [style*="background:#111"],
body.light #adminContent [style*="background:#0d0d0f"],
body.light #adminContent [style*="background:#1a1a1c"]{background:#f8f8fb !important;}
body.light #adminContent [style*="background:#141416"]{background:#e5e5ea !important;}
body.light #adminContent input[type="number"],
body.light #adminContent input[type="text"]{background:#fff;border-color:#d1d1d6;color:#1c1c1e;}
/* Keep colored inputs colored */
body.light #adminContent input[style*="color:#f39c12"]{color:#e07b00 !important;background:#fff9f0 !important;}
body.light #adminContent input[style*="color:#30d158"]{color:#1a8a40 !important;background:#f0fff6 !important;}

/* ── PRIX MODULE ── */
body.light .prix-tbl th{background:#f2f2f7;color:#1c1c1e;}
body.light .prix-tbl td{border-bottom-color:#e5e5ea;}
body.light .prix-tbl td:first-child{background:#f8f8fb;}
body.light .prix-tbl tr:hover td{background:#eaeaf0;}
body.light .pi{background:#fff;border-color:#d1d1d6;color:#1c1c1e;}
body.light .pi:focus{background:#f0f8ff;border-color:var(--red);}
body.light .prix-tbl-wrap{border-color:#d1d1d6;background:#fff;}

/* ── PDF PREVIEW MODAL ── */
body.light #pdfPreviewModal > div:first-child{background:#f2f2f7 !important;border-bottom-color:#d1d1d6 !important;}

/* ── STORE PANEL MODAL extra ── */
body.light #storePanelModal > div:nth-child(2){background:#f2f2f7 !important;}
body.light #storePanelModal > div:nth-child(3){background:#f2f2f7 !important;color:#6e6e73 !important;}
body.light #storePanelContent [style*="background:#0e0e10"],
body.light #storePanelContent [style*="background:#0a0a0c"]{background:#f2f2f7 !important;}

/* ── GENERAL HARDCODED DARKS ── */
body.light .hrow{background:#fff;border-color:#d1d1d6;}
body.light .hs{background:#f2f2f7;}
body.light .sum-card{background:#fff;border-color:#d1d1d6;}
body.light .ibox{background:#fff;border-color:#d1d1d6;}
body.light .irow{border-bottom-color:#e5e5ea;}

/* ── TEXTES INVISIBLES EN MODE CLAIR ── */
/* Tirets "vides" dans supervision table : #2a3550 #3d2e10 → gris clair lisible */
body.light .tbl td[style*="#2a3550"],
body.light .tbl td[style*="color:#2a3550"]{color:#b0b8c8 !important;}
body.light .tbl td[style*="#3d2e10"],
body.light .tbl td[style*="color:#3d2e10"]{color:#c8b090 !important;}
/* Total colonne supervision : #1a4a2a → gris sur blanc */
body.light .tbl td[style*="#1a4a2a"]{color:#aaa !important;background:transparent !important;}
/* Actions tableau : couleurs sombres → visibles */
body.light #adminContent [style*="color:#1a3a1a"]{color:#aaa !important;}
body.light #adminContent [style*="color:#333"]{color:#888 !important;}
body.light #adminContent [style*="color:#2a2a2a"]{color:#999 !important;}
/* Panel magasin : tirets inv/cmd vides */
body.light #storePanelContent [style*="color:#2a3550"]{color:#b0b8c8 !important;}
body.light #storePanelContent [style*="color:#3d2e10"]{color:#c8a870 !important;}
/* v-empty class */
body.light .v-empty{color:#bbb !important;}
/* cat-row text visible */
body.light .tbl tr.cat-row td{color:inherit;filter:none !important;}
/* Tableau actions : span vides */
body.light #adminContent span[style*="color:#333"]{color:#999 !important;}
body.light #adminContent span[style*="color:#222"]{color:#aaa !important;}
body.light #adminContent span[style*="color:#1a3a1a"]{color:#aaa !important;}
/* Total supervision */
body.light .v-tot{color:#1a8a40 !important;background:#e8fdf0 !important;}
/* Supervision header total col */
body.light .tbl th[style*="background:#091409"],
body.light .tbl th[style*="background:#0a160a"]{background:#e8fdf0 !important;}

/* Bouton theme */
.theme-btn{
  background:none;border:1px solid var(--border);color:var(--muted);
  border-radius:20px;padding:4px 10px;font-size:12px;cursor:pointer;
  font-family:'DM Sans';transition:all .2s;
  display:flex;align-items:center;gap:5px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'DM Sans',sans-serif;background:var(--black);color:var(--text);min-height:100vh;font-size:14px;}
.screen{display:none;}.screen.active{display:flex;flex-direction:column;min-height:100vh;}

/* LOGIN */
#loginScreen{align-items:center;justify-content:center;padding:40px 20px;}
.login-box{width:100%;max-width:460px;}
.login-logo{text-align:center;margin-bottom:28px;}
.login-logo .g{width:auto;height:auto;background:transparent;border-radius:0;margin:0 auto 16px;display:block;font-size:0;color:transparent;text-align:center;}
.login-logo .g img{display:block;max-width:300px;width:100%;height:auto;margin:0 auto;}
.login-logo h1{font-family:'Bebas Neue';font-size:26px;letter-spacing:3px;}
.login-logo p{color:var(--muted);font-size:12px;margin-top:4px;}
.mode-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px;}
.mode-btn{width:100%;min-width:0;min-height:42px;padding:10px 6px;border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:8px;cursor:pointer;font-family:'DM Sans';font-size:11.5px;font-weight:500;transition:all .2s;white-space:normal;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;}
@media (max-width:480px){
  .login-box{max-width:360px;}
  .mode-toggle{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
  .mode-btn{font-size:11px;min-height:48px;padding:10px 5px;}
}
@media(max-width:320px){.mode-btn{font-size:11px;padding:9px 6px;}}
.mode-btn.active{background:var(--red);color:#fff;border-color:var(--red);}
.lg{margin-bottom:13px;}
.lg label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.8px;}
.lg select,.lg input{width:100%;padding:11px 13px;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;font-family:'DM Sans';}
.lg select:focus,.lg input:focus{outline:none;border-color:var(--red);}
.btn-login{width:100%;padding:14px;background:var(--red);color:#fff;border:none;border-radius:10px;font-family:'Bebas Neue';font-size:20px;letter-spacing:2px;cursor:pointer;margin-top:6px;}
.btn-login:active{background:var(--red-d);}

/* HEADER */
.app-header{background:var(--dark);border-bottom:3px solid var(--red);padding:0 14px;height:54px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;position:sticky;top:0;z-index:50;}
.logo{font-family:'Bebas Neue';font-size:17px;letter-spacing:2px;display:flex;align-items:center;gap:9px;}
.logo .g{width:34px;height:34px;background:transparent;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:0;color:transparent;flex-shrink:0;}
.logo .g img{width:34px;height:34px;display:block;object-fit:contain;}
.logout-btn{background:none;border:1px solid var(--border);color:var(--muted);padding:4px 9px;border-radius:6px;font-size:11px;cursor:pointer;font-family:'DM Sans';}
.wk-badge{font-size:11px;color:var(--muted);background:var(--card2);padding:3px 9px;border-radius:12px;border:1px solid var(--border);}

/* TABS */
.tab-bar{background:var(--dark);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.tab-bar::-webkit-scrollbar{display:none;}
.tab-list{display:flex;padding:0 10px;gap:2px;white-space:nowrap;}
.tab{padding:9px 13px;font-size:12px;font-weight:500;cursor:pointer;border:none;background:none;color:var(--muted);border-bottom:3px solid transparent;transition:all .2s;font-family:'DM Sans';position:relative;}
.tab:hover{color:var(--text);}
.tab.active{color:var(--text);border-bottom-color:var(--red);}
.tab .dot{width:5px;height:5px;border-radius:50%;background:var(--gl);display:none;position:absolute;top:7px;right:5px;}
.tab.has-data .dot{display:block;}

/* CONTENT */
.content{flex:1;overflow-y:auto;padding:13px;}

/* SECTION HEADERS */
.sec{font-family:'Bebas Neue';font-size:15px;letter-spacing:2px;padding:9px 0 4px;border-bottom:2px solid;margin:10px 0 5px;display:flex;align-items:center;gap:7px;}
.sec.boeuf{color:#e74c3c;border-color:#e74c3c;}
.sec.porc{color:var(--pink);border-color:var(--pink);}
.sec.volaille{color:var(--orange);border-color:var(--orange);}
.sec.mouton{color:var(--blue);border-color:var(--blue);}
.sec.veau{color:var(--purple);border-color:var(--purple);}
.sec.agneau{color:var(--teal);border-color:var(--teal);}
.sec.cheval{color:var(--yellow);border-color:var(--yellow);}
.sec.autres{color:var(--muted);border-color:var(--muted);}

/* ORDER FORM */
.order-row{border-bottom:1px solid #1a1a1a;padding:6px 0;}
.fi.field-error{border-color:var(--red)!important;outline:2px solid var(--red)!important;}

/* Soft incomplete state - visible but not aggressive */
.fi.fi-incomplete{
  border-color:#5a4a1a;
  background:linear-gradient(135deg,var(--card2),#1e1a10);
  animation:soft-pulse 2.5s ease-in-out infinite;
}
@keyframes soft-pulse{
  0%,100%{border-color:#5a4a1a;}
  50%{border-color:#8a6a20;}
}

/* Tab warning dot for incomplete categories */
.tab .dot-warn{
  width:7px;height:7px;border-radius:50%;
  background:var(--orange);
  display:none;
  position:absolute;top:6px;right:5px;
  box-shadow:0 0 5px var(--orange);
  animation:warn-blink 2s ease-in-out infinite;
}
.tab.has-warn .dot-warn{display:block;}
@keyframes warn-blink{
  0%,100%{opacity:1;}
  50%{opacity:0.4;}
}
.prod-name{font-size:12px;color:var(--text);margin-bottom:4px;line-height:1.3;}
.order-fields{display:flex;gap:5px;align-items:center;}
.fg{display:flex;flex-direction:column;gap:2px;flex:1;}
.fg label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
.fi{width:100%;padding:5px 7px;background:var(--card2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;font-weight:600;text-align:center;font-family:'DM Sans';}
.fi:focus{outline:none;border-color:var(--red);}
.fi.inv-f{border-color:#2a4a2a;color:var(--gl);}
.fi.cmd-f{border-color:#4a3a1a;color:#f39c12;}
.fi.info-f{font-size:11px;font-weight:400;text-align:left;color:var(--muted);}
.fi.info-f:focus{color:var(--text);}
input[type="date"].fi{color-scheme:dark;font-size:12px;padding:5px 7px;}



/* ── BOUCHERIE COMMANDE : modes d'affichage ── */
.store-view-menu-wrap{position:relative;display:inline-flex;align-items:center;}
.sec.store-order-sec{justify-content:space-between;align-items:center;gap:10px;}
.sec.store-order-sec .store-view-menu-wrap{margin-left:auto;flex-shrink:0;}
.sec.store-order-sec .store-view-icon{width:30px;height:30px;border-radius:9px;font-size:14px;}
.sec.store-order-sec .store-view-popover{top:36px;}
.store-view-icon{width:34px;height:34px;border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;transition:all .15s;box-shadow:0 2px 10px #00000020;}
.store-view-icon:hover,.store-view-icon.active{color:var(--text);border-color:var(--red);background:var(--card2);}
.store-view-popover{position:absolute;right:0;top:40px;z-index:40;min-width:178px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 28px #00000080;padding:7px;display:none;}
.store-view-popover.open{display:block;}
.store-view-title{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;font-weight:800;padding:5px 7px 7px;}
.store-view-option{width:100%;border:1px solid transparent;background:transparent;color:var(--text);border-radius:8px;padding:8px 9px;font-family:'DM Sans';font-size:12px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:7px;justify-content:space-between;}
.store-view-option:hover{background:var(--card2);}
.store-view-option.active{background:var(--red);border-color:var(--red);color:#fff;}
.store-view-option .check{width:16px;text-align:center;font-weight:900;}
body.light .store-view-popover{background:#fff;border-color:#d1d1d6;box-shadow:0 10px 24px #00000030;}
body.light .store-view-icon{background:#fff;border-color:#d1d1d6;color:#6e6e73;}
body.light .store-view-icon:hover,body.light .store-view-icon.active{background:#f2f2f7;color:#1c1c1e;border-color:var(--red);}
.store-order-wrap.comfort{max-width:1180px;margin:0 auto;}
.store-order-wrap.compact{max-width:980px;margin:0 auto;}
.store-order-wrap.compact .order-row{padding:8px !important;margin-bottom:6px !important;}
.store-order-wrap.compact .prod-name{margin-bottom:6px !important;}
.store-order-wrap.compact .si-btn{height:34px;width:32px;min-width:32px;font-size:19px;}
.store-order-wrap.compact .si-inp{height:34px;font-size:13px;}
.store-order-wrap.compact .fi{padding:5px 7px;font-size:12px;}
.store-order-table-wrap{max-width:1280px;margin:0 auto;overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--card);}
.store-order-table{width:100%;min-width:900px;border-collapse:collapse;font-size:11px;}
.store-order-table th{background:var(--card2);color:var(--muted);text-align:left;padding:8px 7px;border-bottom:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;}
.store-order-table td{padding:6px 7px;border-bottom:1px solid var(--border);vertical-align:middle;}
.store-order-table tr:last-child td{border-bottom:none;}
.store-order-table .prod-cell{min-width:190px;font-weight:700;color:var(--text);}
.store-order-table .mini-inp{width:78px;padding:6px 7px;background:var(--card2);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:12px;font-weight:700;text-align:center;font-family:'DM Sans';}
.store-order-table .mini-inp.inv-f{border-color:#2a4a2a;color:var(--gl);}
.store-order-table .mini-inp.cmd-f{border-color:#4a3a1a;color:#f39c12;}
.store-order-table .date-inp{width:132px;text-align:left;font-weight:600;}
.store-order-table .note-inp{width:170px;text-align:left;font-weight:500;}
.store-order-status{display:inline-flex;align-items:center;gap:4px;border-radius:9px;padding:2px 7px;font-size:10px;font-weight:800;white-space:nowrap;}
.store-order-status.ok{background:#27ae6020;color:var(--gl);border:1px solid #27ae6040;}
.store-order-status.warn{background:#e29c2520;color:#e29c25;border:1px solid #e29c2540;}
body.light .store-order-table-wrap{background:#fff;border-color:#d1d1d6;}
body.light .store-order-table th{background:#f2f2f7;color:#6e6e73;}
body.light .store-order-table td{border-bottom-color:#e5e5ea;}
body.light .store-order-table .mini-inp{background:#fff;border-color:#d1d1d6;color:#1c1c1e;}

/* ── BOUCHERIE COMMANDE : rappel couleur animal ── */
.order-row.animal-marked{position:relative;overflow:hidden;}
.order-row.animal-marked::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--animal-color,var(--muted));border-radius:10px 0 0 10px;}
.order-row.animal-marked{padding-left:15px !important;}
.store-order-wrap.compact .order-row.animal-marked{padding-left:13px !important;}
.animal-mini-badge{display:inline-flex;align-items:center;border:1px solid currentColor;border-radius:999px;padding:1px 6px;font-size:9px;font-weight:800;line-height:1.2;opacity:.9;white-space:nowrap;}
.animal-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--animal-color,var(--muted));flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--animal-color,var(--muted)) 22%,transparent);}
.store-order-table tr.animal-marked-row td:first-child{border-left:5px solid var(--animal-color,var(--muted));}
body.light .animal-mini-badge{background:#ffffffaa;}
@media (max-width:640px){.sec.store-order-sec .store-view-icon{width:36px;height:36px;font-size:16px;}.sec.store-order-sec .store-view-popover{right:0;top:42px;min-width:190px;}.store-view-option{padding:10px 10px;font-size:13px;}.store-order-wrap.comfort,.store-order-wrap.compact{max-width:none;margin:0;}.store-order-wrap.compact .order-row{padding:10px !important;}.store-order-table{min-width:820px;}.store-order-table-wrap{margin:0 -2px;}}

/* ── GENERIC VIEW MODES (v24.6) ── */
.view-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.view-title-row .view-title-main{font-family:'Bebas Neue';font-size:18px;letter-spacing:2px;color:var(--text);}
.view-title-row .view-title-sub{font-size:11px;color:var(--muted);margin-top:2px;}
.view-title-row .store-view-menu-wrap{margin-left:auto;flex-shrink:0;}
.view-mode-shell.compact .order-row,
.view-mode-shell.compact .promo-card,
.view-mode-shell.compact .hrow,
.view-mode-shell.compact .supplier-hist-card{padding:8px !important;margin-bottom:6px !important;}
.view-mode-shell.compact .hs{padding:5px !important;}
.view-mode-shell.compact .sum-card{padding:8px !important;}
.view-mode-shell.compact .btn{padding:8px 11px !important;font-size:11px !important;}
.view-mode-shell.compact table{font-size:10px !important;}
.view-mode-shell.compact th,.view-mode-shell.compact td{padding:4px 5px !important;}
/* Réception : modes refaits v24.8 */
.reception-mode-compact .reception-card{padding:8px !important;margin-bottom:6px !important;}
.reception-mode-compact .reception-quality-block{padding:7px !important;}
.reception-mode-compact textarea{min-height:34px !important;}
.reception-mode-quick .rec-quick-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--card);margin-bottom:10px;}
.reception-mode-quick .rec-quick-table{width:100%;min-width:980px;border-collapse:collapse;font-size:11px;}
.reception-mode-quick .rec-quick-table th{background:var(--card2);color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px;padding:7px 6px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;}
.reception-mode-quick .rec-quick-table td{padding:6px;border-bottom:1px solid var(--border);vertical-align:middle;}
.reception-mode-quick .rec-quick-table tr:last-child td{border-bottom:none;}
.reception-mode-quick .rec-quick-table textarea{min-height:30px !important;font-size:10px !important;}
.reception-mode-quick .rec-quick-table .rec-mini-quality{min-width:132px;}
.reception-mode-quick .rec-quick-table .rec-mini-input{min-width:108px;}
.reception-mode-quick .rec-quick-table .rec-product-cell{min-width:180px;}
.reception-mode-quick .rec-quick-extra-row td{background:#1a0d2a55;}
.rec-status-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;white-space:nowrap;}
.rec-animal-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 7px;font-size:9px;font-weight:800;white-space:nowrap;border:1px solid currentColor;}
.rec-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:currentColor;}
@media (max-width:640px){.reception-mode-compact .rec-compact-grid{grid-template-columns:1fr !important;}.reception-mode-quick .rec-quick-wrap{margin-left:-4px;margin-right:-4px;}.reception-mode-quick .rec-quick-table{min-width:900px;}}
.etiq-mode-compact .etiq-product-row{padding-top:5px !important;padding-bottom:5px !important;}
.etiq-mode-quick .etiq-format-options,.etiq-mode-quick .etiq-display-options{display:none !important;}
.etiq-mode-quick .etiq-product-row{padding:4px 10px !important;}
.supplier-prod-mode-list .supplier-prod-card{padding:7px !important;margin-bottom:5px !important;}
.supplier-prod-mode-list .supplier-prod-info-btn{display:none !important;}
.supplier-prod-mode-list .supplier-prod-status-help{display:none !important;}
.supplier-prod-mode-opportunities .supplier-prod-card{border-left-color:#f39c12 !important;}
.supplier-hist-mode-list .supplier-hist-grid{display:flex;flex-direction:column;gap:6px;}
.supplier-hist-mode-list .supplier-hist-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 11px !important;}
.supplier-hist-mode-list .supplier-hist-card-stats,.supplier-hist-mode-list .supplier-hist-card .supplier-hist-updown{display:none !important;}
.supplier-hist-mode-list .supplier-hist-card-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;}
.accounting-mode-table .accounting-card-grid{display:block !important;}
.accounting-mode-table .accounting-supplier-card{display:grid;grid-template-columns:minmax(0,1.2fr) 1fr .8fr auto;align-items:center;gap:8px;margin-bottom:6px;padding:10px !important;}
.accounting-lines-table{width:100%;border-collapse:collapse;font-size:11px;min-width:820px;}
.accounting-lines-table th{background:var(--card2);color:var(--muted);padding:7px;text-align:left;border-bottom:1px solid var(--border);}
.accounting-lines-table td{padding:6px 7px;border-bottom:1px solid var(--border);}
.admin-overview-mode-compact .admin-store-grid{grid-template-columns:repeat(auto-fit,minmax(105px,1fr)) !important;gap:5px !important;}
.admin-overview-mode-compact .admin-store-card{padding:7px !important;}
.admin-overview-mode-detail .admin-store-card .admin-extra-detail{display:block !important;}
.admin-overview-mode-supervision .admin-store-card .admin-extra-detail{display:none !important;}
.admin-prix-mode-compact .prix-tbl td,.admin-prix-mode-compact .prix-tbl th{padding:3px 4px !important;font-size:10px !important;}
.admin-prix-mode-analyse .prix-analysis-panel{display:block !important;}
.admin-prix-mode-table .prix-analysis-panel,.admin-prix-mode-compact .prix-analysis-panel{display:none !important;}
.admin-history-mode-list .hrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;}
.admin-history-mode-list .hstats{display:none !important;}
@media(max-width:640px){.view-title-row{gap:6px}.view-title-row .view-title-main{font-size:16px}.accounting-mode-table .accounting-supplier-card{grid-template-columns:1fr}.supplier-hist-mode-list .supplier-hist-card{grid-template-columns:1fr}.store-view-popover{max-width:calc(100vw - 24px);}}


/* ADMIN TABLE — Apple-style */
.tbl-wrap{overflow-x:auto;border-radius:14px;margin-bottom:8px;background:var(--card);border:1px solid #2a2a2e;box-shadow:0 2px 16px #00000050;}
.tbl{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed;}
.tbl thead tr.r1 th{background:#1c1c1e;padding:7px 3px 5px;text-align:center;border-bottom:1px solid #252528;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tbl thead tr.r1 th.prod-h{text-align:left;padding-left:12px;position:sticky;left:0;z-index:4;background:#1c1c1e;}
.tbl thead tr.r2 th{background:#161618;padding:3px 2px 5px;text-align:center;border-bottom:2px solid #2a2a2e;font-size:8px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;}
.tbl td{padding:4px 3px;text-align:center;border-bottom:1px solid #1c1c1e;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;}
.tbl td.prod-c{text-align:left;background:#111;position:sticky;left:0;z-index:2;padding:5px 4px 5px 0;width:150px;min-width:150px;max-width:150px;}
.prod-inner{display:flex;align-items:center;gap:5px;overflow:hidden;}
.prod-pill{width:3px;flex-shrink:0;align-self:stretch;border-radius:2px;min-height:14px;}
.prod-label{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4;color:var(--text);}
.tbl tr.cat-row td{background:#0e0e10;padding:5px 12px;font-family:'Bebas Neue';font-size:11px;letter-spacing:1.5px;border-top:2px solid #222;border-bottom:1px solid #222;}
body.light .tbl tr.cat-row td{background:#f0f0f0 !important;border-top-color:#ddd !important;border-bottom-color:#ddd !important;filter:none !important;}
.tbl tbody tr:not(.cat-row):hover td{background:#1e1e20;}
.tbl tbody tr:not(.cat-row):hover td.prod-c{background:#1a1a1c;}
.v-inv{color:#5b9cf6;font-weight:500;}
.v-cmd{color:#f39c12;font-weight:500;}
.v-real{color:#30d158;font-weight:700;}
.v-empty{color:#333;font-weight:400;}
body.light .v-empty{color:#bbb !important;}
body.light .v-tot{color:#1a8a40 !important;background:#e8fdf0 !important;}
.v-tot{color:#30d158;font-weight:800;font-size:10px;background:#091409;}
.bdr-store{border-left:1px solid #2a2a2e !important;}
/* STEP INPUT −/+ */
.si-wrap{display:flex;align-items:center;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--card2);width:100%;}
.si-btn{width:36px;min-width:36px;height:38px;background:var(--card);border:none;color:var(--text);font-size:22px;font-weight:300;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .12s;user-select:none;-webkit-user-select:none;line-height:1;}
.si-btn:active{background:var(--border);}
.si-inp{flex:1;min-width:0;width:0;height:38px;background:transparent;border:none;color:var(--text);font-size:14px;font-weight:700;text-align:center;font-family:'DM Sans';padding:0;-moz-appearance:textfield;}
.si-inp::-webkit-outer-spin-button,.si-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.si-inp:focus{outline:none;}
.si-wrap:focus-within{border-color:var(--red);}
.si-wrap.green{border-color:#30d15855;}.si-wrap.green:focus-within{border-color:#30d158;}.si-wrap.green .si-inp{color:#30d158;}.si-wrap.green .si-btn{color:#30d158;}
.si-wrap.orange{border-color:#f39c1255;}.si-wrap.orange:focus-within{border-color:#f39c12;}.si-wrap.orange .si-inp{color:#f39c12;}.si-wrap.orange .si-btn{color:#f39c12;}
.si-wrap.blue{border-color:#5b9cf655;}.si-wrap.blue:focus-within{border-color:#5b9cf6;}.si-wrap.blue .si-inp{color:#5b9cf6;}.si-wrap.blue .si-btn{color:#5b9cf6;}
body.light .si-wrap{background:#f2f2f7;border-color:#d1d1d6;}
body.light .si-btn{background:#e5e5ea;color:#1c1c1e;}
body.light .si-btn:active{background:#c8c8cc;}
.ci{width:46px;padding:2px 4px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--gl);font-size:11px;font-weight:600;text-align:center;font-family:'DM Sans';}
.ci:focus{outline:none;background:var(--card2);border-color:var(--red);color:var(--text);}
.ci.z{color:#2a2a2a;}
.c-inv{color:var(--blue);font-weight:600;}
.c-cmd{color:#f39c12;font-weight:600;}
.c-tot{color:var(--gl);font-weight:700;background:#101a10 !important;}

/* SUMMARY CARDS */
.sum-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.sum-card{background:var(--card);border-radius:10px;padding:11px;border:1px solid var(--border);}
.sum-card .lbl{font-size:10px;color:var(--muted);margin-bottom:2px;}
.sum-card .val{font-family:'Bebas Neue';font-size:24px;}
.val.g{color:var(--gl);}.val.r{color:var(--red);}.val.o{color:var(--orange);}.val.b{color:var(--blue);}

/* BUTTONS */
.btn{padding:10px 16px;border:none;border-radius:8px;cursor:pointer;font-family:'DM Sans';font-size:12px;font-weight:600;transition:all .2s;}
.btn-red{background:var(--red);color:#fff;}
.btn-dark{background:var(--card2);color:var(--text);border:1px solid var(--border);}
.btn-full{width:100%;padding:12px;font-family:'Bebas Neue';font-size:17px;letter-spacing:2px;border-radius:10px;border:none;cursor:pointer;}
.btn-g{background:var(--green);color:#fff;}
.btn-row{display:flex;gap:8px;margin-top:10px;}
.btn-row .btn{flex:1;}

/* INFO BOX */
.ibox{background:var(--card);border-radius:9px;padding:11px;border:1px solid var(--border);margin-bottom:10px;}
.irow{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid var(--border);font-size:11px;}
.irow:last-child{border:none;}
.irow .k{color:var(--muted);}
.irow .v{font-weight:600;}

/* PROMO */
.promo-card{background:var(--card);border-radius:10px;padding:13px;border-left:4px solid var(--promo);margin-bottom:9px;}
.promo-title{font-weight:600;font-size:13px;margin-bottom:7px;display:flex;align-items:center;gap:7px;}
.promo-meta{font-size:11px;color:var(--muted);margin-bottom:9px;}
.pf-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;}
.pfg{display:flex;flex-direction:column;gap:2px;}
.pfg label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
.pfg input,.pfg select{padding:6px 7px;background:var(--card2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;font-weight:600;text-align:center;font-family:'DM Sans';}
.pfg input:focus,.pfg select:focus{outline:none;border-color:var(--promo);}
.add-btn{width:100%;padding:11px;background:var(--promo);color:#fff;border:none;border-radius:9px;font-family:'Bebas Neue';font-size:16px;letter-spacing:2px;cursor:pointer;margin-top:7px;}
.psel{width:100%;padding:9px 11px;background:var(--card2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12px;font-family:'DM Sans';margin-bottom:9px;}
.psel:focus{outline:none;border-color:var(--promo);}
.badge-promo{background:var(--promo);color:#fff;padding:2px 6px;border-radius:8px;font-size:10px;font-weight:700;}

/* HISTORY */
.hrow{display:flex;flex-direction:column;gap:3px;padding:10px;background:var(--card);border-radius:8px;margin-bottom:7px;border-left:3px solid var(--promo);}
.hrow .ht{font-weight:600;font-size:12px;display:flex;align-items:center;gap:5px;}
.hrow .hd{font-size:10px;color:var(--muted);}
.hstats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px;}
.hs{background:var(--card2);border-radius:6px;padding:6px;text-align:center;}
.hs .v{font-family:'Bebas Neue';font-size:16px;}
.hs .lbl{font-size:9px;color:var(--muted);text-transform:uppercase;}

/* CHIPS */
.chip{display:inline-block;padding:2px 7px;border-radius:9px;font-size:10px;font-weight:700;}
.chip-ok{background:#27ae6020;color:var(--gl);border:1px solid #27ae6040;}
.chip-wait{color:var(--muted);font-size:11px;}

/* ══════════════════════════════════════════════════
   PRIX MODULE
══════════════════════════════════════════════════ */

/* Supplier color pills */
.sup-luc{color:var(--luc);}.sup-mer{color:var(--mer);}.sup-fel{color:var(--fel);}.sup-mar{color:var(--mar);}
.bg-luc{background:var(--luc);}.bg-mer{background:var(--mer);}.bg-fel{background:var(--fel);}.bg-mar{background:var(--mar);}

.prix-tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;}
.prix-tbl{width:100%;border-collapse:collapse;min-width:560px;font-size:11px;}
.prix-tbl th{background:var(--card);padding:7px 8px;text-align:center;border-bottom:2px solid var(--border);font-size:10px;font-weight:600;white-space:nowrap;}
.prix-tbl th:first-child{text-align:left;min-width:145px;position:sticky;left:0;background:var(--card);z-index:2;}
.prix-tbl td{padding:5px 7px;text-align:center;border-bottom:1px solid #1a1a1a;vertical-align:middle;}
.prix-tbl td:first-child{text-align:left;background:var(--dark);position:sticky;left:0;font-size:11px;line-height:1.3;}
.prix-tbl tr.cat-r td{font-family:'Bebas Neue';font-size:12px;letter-spacing:1px;padding-top:9px;border-bottom:1px solid var(--border);}
.prix-tbl tr:hover td{background:#1b1b1b;}
.prix-tbl tr:hover td:first-child{background:#1b1b1b;}

/* price input */
.pi{width:52px;padding:3px 4px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text);font-size:11px;font-weight:600;text-align:center;font-family:'DM Sans';}
.pi:focus{outline:none;background:var(--card2);border-color:var(--red);}
.pi.z{color:#2a2a2a;}

/* sell price input */
.si{width:52px;padding:3px 4px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--yellow);font-size:11px;font-weight:600;text-align:center;font-family:'DM Sans';}
.si:focus{outline:none;background:var(--card2);border-color:var(--yellow);}

/* supplier radio selector */
.sup-sel{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;}
.sup-btn{padding:2px 6px;border-radius:6px;border:1px solid var(--border);background:var(--card2);color:var(--muted);font-size:9px;font-weight:700;cursor:pointer;font-family:'DM Sans';transition:all .15s;}
.sup-btn.sel-luc{background:var(--luc);color:#fff;border-color:var(--luc);}
.sup-btn.sel-mer{background:var(--mer);color:#fff;border-color:var(--mer);}
.sup-btn.sel-fel{background:var(--fel);color:#fff;border-color:var(--fel);}
.sup-btn.sel-mar{background:var(--mar);color:#fff;border-color:var(--mar);}

/* margin display */
.marge-cell{font-size:10px;font-weight:700;}
.mg{color:var(--gl);}.mr{color:var(--red);}.mm{color:var(--orange);}

/* lowest price highlight */
.best-price{color:var(--gl);font-weight:700;}
.prix-tbl .chosen-row td{background:#101a10 !important;}
.prix-tbl .chosen-row td:first-child{background:#101a10 !important;}

/* version badge */
.ver-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:var(--card2);border-radius:10px;border:1px solid var(--border);font-size:11px;cursor:pointer;}
.ver-badge:hover{border-color:var(--red);}

/* MAJ panel */
.maj-panel{background:var(--card);border-radius:10px;padding:13px;border:1px solid var(--border);margin-bottom:12px;}
.maj-panel h3{font-family:'Bebas Neue';font-size:15px;letter-spacing:1px;color:var(--text);margin-bottom:10px;}
.maj-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.maj-field{display:flex;flex-direction:column;gap:3px;}
.maj-field label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
.maj-field input,.maj-field select{padding:8px 10px;background:var(--card2);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:13px;font-family:'DM Sans';}
.maj-field input:focus,.maj-field select:focus{outline:none;border-color:var(--red);}

/* history version list */
.ver-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.ver-item{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--card);border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:border-color .2s;}
.ver-item:hover,.ver-item.active{border-color:var(--red);}
.ver-item .vi-date{font-weight:600;font-size:13px;}
.ver-item .vi-meta{font-size:11px;color:var(--muted);}
.ver-item .vi-badge{font-size:10px;padding:2px 7px;border-radius:8px;background:var(--red);color:#fff;font-weight:700;}

.divider{height:1px;background:var(--border);margin:12px 0;}
.empty{text-align:center;padding:36px;color:var(--muted);font-size:12px;}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--green);color:#fff;padding:9px 20px;border-radius:18px;font-size:12px;font-weight:600;transition:transform .3s;z-index:999;white-space:nowrap;max-width:90vw;}
.toast.show{transform:translateX(-50%) translateY(0);}

/* prix filter tabs */
.filter-tabs{display:flex;gap:5px;margin-bottom:10px;overflow-x:auto;scrollbar-width:none;}
.filter-tabs::-webkit-scrollbar{display:none;}
.ftab{padding:5px 12px;border-radius:16px;border:1px solid var(--border);background:var(--card2);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;}
.ftab.active{background:var(--red);color:#fff;border-color:var(--red);}

/* MODAL personnalisé (remplace confirm/prompt) */
.app-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:12px;}
.app-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(2px);}
.app-modal-box{position:relative;background:var(--card);border:1px solid var(--border);border-radius:14px;max-width:420px;width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 8px 30px rgba(0,0,0,.5);animation:appModalIn .15s ease-out;overflow:hidden;}
@keyframes appModalIn{from{transform:scale(.95);opacity:0;}to{transform:scale(1);opacity:1;}}
.app-modal-header{padding:12px 14px 8px;flex-shrink:0;border-bottom:1px solid var(--border);}
.app-modal-title{font-family:'Bebas Neue';font-size:18px;letter-spacing:1.5px;color:var(--text);margin:0;}
.app-modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;padding:10px 14px;}
.app-modal-message{color:var(--text);font-size:13px;line-height:1.5;white-space:pre-wrap;}
.app-modal-input{width:100%;padding:11px 13px;background:var(--card2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;font-family:'DM Sans';}
.app-modal-input:focus{outline:none;border-color:var(--red);}
.app-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:10px 14px;flex-shrink:0;border-top:1px solid var(--border);background:var(--card);}
.app-modal-btn{padding:10px 20px;border-radius:8px;border:none;font-family:'DM Sans';font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;}
.app-modal-cancel{background:var(--card2);color:var(--muted);border:1px solid var(--border);}
.app-modal-cancel:hover{color:var(--text);}
.app-modal-ok{background:var(--red);color:#fff;}
.app-modal-ok:hover{background:var(--red-d);}
.app-modal.danger .app-modal-ok{background:var(--red);}
body.light .app-modal-backdrop{background:rgba(0,0,0,.4);}

/* LOADER overlay */
.app-loader{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);}
.app-loader-box{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px 32px;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:0 8px 30px rgba(0,0,0,.5);}
.app-loader-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--red);border-radius:50%;animation:appSpin .8s linear infinite;}
@keyframes appSpin{to{transform:rotate(360deg);}}
.app-loader-msg{color:var(--text);font-size:13px;font-weight:500;}

/* ── FOURNISSEUR HISTORIQUE : cartes MAJ séparées ── */
.supplier-hist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:10px;}
.supplier-hist-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px;cursor:pointer;transition:border-color .18s,transform .18s,box-shadow .18s;}
.supplier-hist-card:hover{border-color:var(--red);transform:translateY(-1px);box-shadow:0 4px 18px #00000030;}
.supplier-hist-card-title{font-weight:800;font-size:14px;color:var(--text);line-height:1.3;}
.supplier-hist-card-sub{font-size:11px;color:var(--muted);margin-top:3px;}
.supplier-hist-card-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0;}
.supplier-hist-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.supplier-hist-card-actions .wide{grid-column:1/-1;}
.supplier-hist-detail-modal .app-modal-box{max-width:980px;width:min(980px,96vw);}
.supplier-hist-table-wrap{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:10px;}
.supplier-hist-table{width:100%;border-collapse:collapse;font-size:11px;min-width:720px;}
.supplier-hist-table th{padding:7px;background:var(--card2);border-bottom:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.4px;}
.supplier-hist-table td{padding:7px;border-bottom:1px solid var(--border);vertical-align:top;}
.supplier-hist-cat-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid currentColor;background:var(--card2);color:var(--cat-color,var(--muted));font-size:10px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;}
body.light .supplier-hist-cat-badge{background:#fff;}
.supplier-hist-row-changed td{background:#f39c120c;}

