:root{
  --bg:#EEF0F2; --card:#FFFFFF; --ink:#1C2127; --muted:#5D6670; --line:#DDE1E5;
  --side:#1C2127; --side2:#262C33; --side-ink:#C9D0D6;
  --accent:#1E7B4C; --accent-dark:#14583A; --accent-soft:#E3F2EA;
  --ok:#0E7A55; --ok-soft:#E3F4EC; --warn:#A05A00; --warn-soft:#FFF1DC; --bad:#B42318; --bad-soft:#FDECEA;
  --radius:14px; --shadow:0 1px 2px rgba(20,25,30,.06),0 4px 14px rgba(20,25,30,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent-dark)}
.ico{width:20px;height:20px;flex:none}
.shell{display:flex;min-height:100vh}
.side{width:248px;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex:none;z-index:30}
.brand{display:flex;align-items:center;gap:12px;padding:20px 18px;border-bottom:1px solid #2F363E}
.brand strong{color:#fff;display:block;font-size:17px;letter-spacing:.04em}
.brand small{color:#8E98A2}
.brand-mark{width:40px;height:40px;border-radius:11px;background:var(--accent);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.side nav{flex:1;overflow:auto;padding:10px}
.side nav a{display:flex;align-items:center;gap:12px;color:var(--side-ink);text-decoration:none;padding:11px 12px;border-radius:10px;margin-bottom:2px;font-weight:500}
.side nav a:hover{background:var(--side2);color:#fff}
.side nav a.on{background:var(--accent);color:#fff}
.side-user{border-top:1px solid #2F363E;padding:14px 18px;display:flex;flex-direction:column;gap:10px;font-size:14px}
.side-user div{display:flex;align-items:center;gap:8px;color:#fff}
.side-user small{color:#8E98A2}
.side-user a{display:flex;align-items:center;gap:8px;color:var(--side-ink);text-decoration:none}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:12px;padding:14px 24px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top h1{font-size:19px;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .menu-btn{display:none}
.content{padding:22px 24px 60px;max-width:1280px;width:100%}
.overlay{display:none}

.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}
.card h2{font-size:16px;margin:0 0 12px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.card-head h2{margin:0}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.kpi small{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.kpi b{display:block;font-size:24px;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi span{color:var(--muted);font-size:13px}
.kpi.accent{background:var(--side);color:#fff}
.kpi.accent small,.kpi.accent span{color:#AEB7BF}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 16px;border-radius:11px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;min-height:44px;white-space:nowrap}
.btn:hover{border-color:#B9C0C7}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn-dark{background:var(--side);border-color:var(--side);color:#fff}
.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn-danger{color:var(--bad);border-color:#F2C6C2}
.btn-sm{min-height:36px;padding:6px 12px;font-size:14px}
.btn-lg{min-height:56px;font-size:17px;padding:12px 22px}
.btn-block{width:100%}
.icon-btn{width:44px;height:44px;border-radius:11px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);padding:0}
.actions{display:flex;gap:8px;flex-wrap:wrap}

label{display:block;font-weight:600;font-size:13px;color:var(--muted);margin-bottom:5px}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #C9D0D6;border-radius:10px;padding:10px 12px;min-height:44px}
textarea{min-height:80px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field{margin-bottom:12px}
.check{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--ink);font-size:15px}
.check input{width:20px;height:20px;min-height:0}
.hint{color:var(--muted);font-size:13px;margin-top:4px}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:10px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 10px;border-bottom:1px solid #EEF0F2;vertical-align:middle}
tr:last-child td{border-bottom:none}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.muted{color:var(--muted)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#EDEFF2;color:var(--ink);white-space:nowrap}
.b-ok{background:var(--ok-soft);color:var(--ok)}
.b-warn{background:var(--warn-soft);color:var(--warn)}
.b-bad{background:var(--bad-soft);color:var(--bad)}
.b-red{background:var(--accent-soft);color:var(--accent-dark)}
.flash{padding:12px 14px;border-radius:11px;margin-bottom:14px;font-weight:600}
.flash-ok{background:var(--ok-soft);color:var(--ok)}
.flash-err{background:var(--bad-soft);color:var(--bad)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.toolbar .grow{flex:1;min-width:200px}
.empty{padding:30px;text-align:center;color:var(--muted)}

/* Caisse de vente */
.pos{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.scan-box{position:relative}
.scan-box input{font-size:18px;min-height:56px;padding-left:46px;border-width:2px}
.scan-box .ico{position:absolute;left:14px;top:18px;color:var(--muted)}
.suggest{position:absolute;left:0;right:0;top:60px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.12);z-index:10;max-height:320px;overflow:auto;display:none}
.suggest button{display:flex;width:100%;justify-content:space-between;gap:10px;border:0;background:none;padding:12px 14px;font:inherit;text-align:left;cursor:pointer;border-bottom:1px solid #F0F2F4}
.suggest button:hover,.suggest button.sel{background:var(--accent-soft)}
.cart-line{display:grid;grid-template-columns:minmax(0,1fr) 92px 100px 96px 40px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #EEF0F2}
.cart-line input{min-height:40px;padding:6px 8px;text-align:right}
.cart-line .nm b{display:block}
.cart-line .nm small{color:var(--muted)}
.totals{display:flex;flex-direction:column;gap:8px}
.totals .row{display:flex;justify-content:space-between;gap:10px}
.totals .big{font-size:28px;font-weight:800;border-top:2px solid var(--ink);padding-top:10px;margin-top:4px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.seg button{min-height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;font:inherit;font-weight:600;cursor:pointer}
.seg button.on{background:var(--side);border-color:var(--side);color:#fff}
.dialog{position:fixed;inset:0;background:rgba(15,18,22,.55);display:none;align-items:center;justify-content:center;z-index:50;padding:16px}
.dialog.open{display:flex}
.dialog .box{background:#fff;border-radius:16px;padding:20px;width:100%;max-width:440px;max-height:90vh;overflow:auto}
.dialog h3{margin:0 0 12px}
.success-big{font-size:46px;color:var(--ok);text-align:center}

/* Étiquettes */
.labels{display:flex;flex-wrap:wrap;gap:8px}
.label{width:50mm;height:30mm;border:1px dashed #BBB;padding:2mm;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;overflow:hidden}
.label .ln{font-size:8.5pt;font-weight:700;line-height:1.2;max-height:2.4em;overflow:hidden;padding-top:1px}
.label .lp{font-size:10pt;font-weight:800}
.label svg{width:100%;height:12mm}
.label .lc{font-size:7pt;font-family:monospace}

.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--side)}
.login .card{width:100%;max-width:380px;padding:26px}

@media (max-width:1000px){
  .pos{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  .side{position:fixed;left:-260px;transition:left .2s}
  .side.open{left:0}
  .overlay.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:25}
  .top .menu-btn{display:inline-flex}
  .top{padding:10px 14px}
  .content{padding:16px 14px 60px}
  .g2,.g3{grid-template-columns:1fr}
  .cart-line{grid-template-columns:minmax(0,1fr) 70px 86px 36px;}
  .cart-line .lt{display:none}
  .top-sale span{display:none}
}
@media (max-width:480px){
  .g4{grid-template-columns:1fr 1fr}
  .kpi b{font-size:20px}
}
@media print{
  .side,.top,.no-print,.flash{display:none!important}
  body{background:#fff}
  .content{padding:0}
  .label{border:none;page-break-inside:avoid}
}

/* ===== Épicerie : factures en onglets, paiement $ / LBP ===== */
.tickets{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;margin-bottom:4px;scrollbar-width:thin}
.tk{display:flex;align-items:center;gap:10px;flex:none;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px 8px 14px;cursor:pointer;box-shadow:var(--shadow);min-height:48px}
.tk:hover{border-color:#B9C1C8}
.tk.on{background:var(--ink);border-color:var(--ink);color:#fff}
.tk-nom{font-weight:700;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-tot{font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}
.tk.on .tk-tot{color:#C9D0D6}
.tk-x{border:0;background:transparent;color:inherit;font-size:20px;line-height:1;width:28px;height:28px;border-radius:8px;cursor:pointer;opacity:.6}
.tk-x:hover{opacity:1;background:rgba(127,127,127,.18)}
.tk-add{flex:none;border:1px dashed #AEB7BF;background:transparent;border-radius:12px;padding:0 16px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;min-height:48px}
.tk-add:hover{border-color:var(--accent);color:var(--accent-dark)}
.lbp-total{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.lbp-total small{font-size:13px}
.quick{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 10px}
.etat{padding:10px 12px;border-radius:10px;background:var(--bg);font-size:14px;min-height:20px}
.etat:empty{display:none}
.etat.bad{background:var(--bad-soft);color:var(--bad)}
.etat.ok{background:var(--ok-soft);color:var(--ok)}
.rendu{margin-top:10px;border:2px solid var(--ok);border-radius:12px;padding:12px}
.rendu-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.rendu-head span{font-weight:700;text-transform:uppercase;font-size:12px;color:var(--ok);letter-spacing:.04em}
.rendu-head b{font-size:22px;font-variant-numeric:tabular-nums}
.ok-rendu{font-size:20px}
.pay input{font-variant-numeric:tabular-nums}

.carton-box{border:1px solid var(--line);border-radius:12px;padding:12px 14px 4px;margin:0 0 14px}
.carton-box legend{font-weight:700;font-size:14px;padding:0 6px}

.achat-tbl td{vertical-align:top}
.achat-tbl input{min-height:40px;padding:6px 8px;text-align:right;width:100%}
.achat-tbl small{display:block;margin-top:2px}
.achat-tbl .badge{display:inline-block}

.brand-logo{display:block;width:100%;max-width:196px;height:auto}
.brand-mark-img{width:40px;height:40px;flex:none}

/* ===== Arabe : de droite à gauche ===== */
[dir=rtl] body{font-family:"Segoe UI",Tahoma,"Noto Sans Arabic","DejaVu Sans",system-ui,sans-serif}
[dir=rtl] .num,[dir=rtl] th.num{text-align:left}
[dir=rtl] .scan-box input{padding-left:12px;padding-right:46px}
[dir=rtl] .scan-box .ico{left:auto;right:14px}
[dir=rtl] .brand-logo{direction:ltr}
[dir=rtl] .mono,[dir=rtl] input[inputmode="decimal"],[dir=rtl] input[inputmode="numeric"],[dir=rtl] input[type="number"]{direction:ltr}
[dir=rtl] .cart-line input,[dir=rtl] .achat-tbl input{text-align:left}
@media (max-width:1000px){
  [dir=rtl] .side{left:auto;right:-260px;transition:right .2s}
  [dir=rtl] .side.open{right:0;left:auto}
}
.lang-switch{display:flex;gap:6px;flex-wrap:wrap}
.lang-switch a{color:var(--side-ink);text-decoration:none;font-size:13px;padding:3px 8px;border-radius:7px;border:1px solid #39424B}
.lang-switch a.on{background:var(--accent);border-color:var(--accent);color:#fff}
.login .lang-switch{justify-content:center;margin-top:16px}
.login .lang-switch a{color:var(--muted);border-color:var(--line)}
.login .lang-switch a.on{color:#fff}

a.kpi-lien{text-decoration:none;color:var(--ink)}
a.kpi-lien.accent{color:#fff}
.kpi b.kpi-lbp{font-size:19px;margin-top:2px}
.kpi.accent b{color:#fff}
.solde-col{background:var(--bg);font-weight:600}

[dir=rtl] .num,[dir=rtl] #tTotal,[dir=rtl] #tTotalLbp,[dir=rtl] #tSous,[dir=rtl] #tCout,[dir=rtl] #tBenef,[dir=rtl] #renduTxt,
[dir=rtl] .tk-tot,[dir=rtl] .kpi b,[dir=rtl] .ok-rendu b,[dir=rtl] #okTotal,[dir=rtl] .etat b,[dir=rtl] .lt b,[dir=rtl] .lt small,[dir=rtl] .rendu-head b{direction:ltr;unicode-bidi:isolate}

/* ===== Téléphone : rien ne doit dépasser la largeur de l'écran ===== */
.grid > *, .pos > *, .shell > .main { min-width: 0; }
.table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.toolbar { flex-wrap: wrap; }
.toolbar > * { min-width: 0; }
.card { max-width: 100%; }
@media (max-width: 820px) {
  .toolbar > div, .toolbar > .grow { flex: 1 1 100%; }
  .table-wrap table { font-size: 13px; }
  .table-wrap th, .table-wrap td { padding-left: 6px; padding-right: 6px; }
}
@media (max-width: 820px) { .hide-m { display: none; } }
.pagination{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px}
/* v1.4 : achats, vente détail/gros, boutons rapides */
.nav-badge{margin-inline-start:auto;background:var(--bad);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;font-weight:700}
.seg.seg-sm{display:inline-grid;grid-template-columns:repeat(2,auto);gap:4px;margin:0}
.seg.seg-sm button{min-height:32px;padding:0 12px;font-size:13px;border-radius:8px}
.achat-tbl tr.l1 td{border-bottom:0;padding-bottom:4px}
.achat-tbl tr.l2 td{padding-top:0;background:var(--bg2,#FAFBFC)}
.achat-opts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;margin:4px 0 6px}
.achat-opts .opt{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--muted);margin:0}
.achat-opts .opt input,.achat-opts .opt select{width:120px;min-height:36px;padding:4px 8px;font-size:14px}
.achat-opts .opt-cat select{width:190px}
.achat-opts .mini{display:inline-flex;align-items:center;gap:4px;font-size:12px;margin-inline-start:8px}
.achat-opts .mini input{width:64px;min-height:32px;padding:2px 6px}
@media (max-width:700px){.achat-opts .opt input,.achat-opts .opt select,.achat-opts .opt-cat select{width:100%}.achat-opts .opt{flex:1 1 140px}}
.cart-line{grid-template-columns:minmax(0,1fr) 72px 150px 96px 40px}
.cart-line .px2{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:3px 4px;align-items:center}
.cart-line .px2 input{min-height:34px;padding:4px 6px;font-size:14px}
.cart-line .px2 input[readonly]{background:transparent;border-color:transparent;font-weight:600}
.cart-line .px2 .cur{font-size:11px;color:var(--muted);font-weight:700}
.cart-line .stk{display:block;white-space:nowrap;font-size:12px;color:var(--ok);font-weight:600}
.cart-line .stk.zero{color:var(--warn)}
.cart-line .stk.neg{color:var(--bad)}
.tarif-box{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tarif-box label{margin:0}
/* Boutons rapides de l'écran de vente */
.pos.avec-rapides{grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto 1fr}
.pos .rapides{align-self:start}
.pos .rapides{grid-column:1;grid-row:2}
.pos .pos-main{grid-column:1;grid-row:1}
.pos .pos-pay{grid-column:2;grid-row:1 / span 2}
@media (min-width:1500px){
  .pos.avec-rapides{grid-template-columns:280px minmax(0,1fr) 340px;grid-template-rows:auto}
  .pos.avec-rapides .cart-line{grid-template-columns:minmax(0,1fr) 58px 124px 78px 36px}
  .pos.avec-rapides .rap-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}
  .pos.avec-rapides .rapides{grid-column:1;grid-row:1;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow:auto}
  .pos.avec-rapides .pos-main{grid-column:2;grid-row:1}
  .pos.avec-rapides .pos-pay{grid-column:3;grid-row:1}
}
.rap-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.rap-cat{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font:inherit;font-weight:600;font-size:13px;cursor:pointer;min-height:36px}
.rap-cat small{color:var(--muted);font-weight:500}
.rap-cat.on{background:var(--accent);border-color:var(--accent);color:#fff}
.rap-cat.on small{color:#fff;opacity:.8}
.rap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.rap-item{display:flex;flex-direction:column;gap:4px;text-align:start;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;font:inherit;cursor:pointer;min-height:84px}
.rap-item:hover{border-color:var(--accent);background:var(--accent-soft)}
.rap-item.vide{opacity:.6}
.rap-nom{font-weight:700;font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rap-prix{white-space:nowrap}.rap-prix b{font-size:14px}.rap-prix small,.rap-stk{font-size:11px;color:var(--muted)}
[dir=rtl] .rap-prix,[dir=rtl] .cart-line .stk{unicode-bidi:plaintext}
@media (max-width:1000px){
  .pos .rapides,.pos .pos-main,.pos .pos-pay{grid-column:1;grid-row:auto}
  .pos.avec-rapides{grid-template-columns:1fr}
  .pos .pos-main{order:1}.pos .rapides{order:2}.pos .pos-pay{order:3}
  .cart-line{grid-template-columns:minmax(0,1fr) 62px 120px 36px}
  .cart-line .lt{display:none}
}
/* Graphique des statistiques */
.chart-wrap{width:100%;overflow-x:auto}
.chart{width:100%;min-width:520px;height:auto;display:block}
.chart .grid-l{stroke:#E6E9EC;stroke-width:1}
.chart .base-l{stroke:#AEB7BF;stroke-width:1}
.chart .ax{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.chart .b-ca,.legende .b-ca{fill:#2A78D6;background:#2A78D6}
.chart .b-ben,.legende .b-ben{fill:#1BAF7A;background:#1BAF7A}
.chart .hit{fill:transparent}
.chart .hit:hover{fill:rgba(31,78,120,.06)}
.legende{display:flex;gap:14px;font-size:13px;color:var(--muted)}
.legende .sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-inline-end:6px;vertical-align:-1px}
[dir=rtl] .chart{direction:ltr}
.stk-achat{display:block;font-size:12px;font-weight:600;color:var(--ok)}
.achat-tbl input[data-f="quantite"]{min-width:64px}
.stk-achat.bas{color:var(--warn)}
[dir=rtl] .stk-achat{unicode-bidi:plaintext}
/* Clôture de caisse */
.cl-titre{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 8px}
.cl-devises{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.tk.on .tk-nom{color:#fff}
.cl-ligne{display:grid;grid-template-columns:84px 12px minmax(70px,1fr) 96px;gap:8px;align-items:center;margin-bottom:6px}
.cl-ligne label{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.cl-ligne input{min-height:40px;text-align:right}
.cl-x{color:var(--muted);text-align:center}
.cl-st{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.cl-total{display:flex;justify-content:space-between;border-top:2px solid var(--ink);margin-top:8px;padding-top:8px;font-size:17px}
.cl-total b{font-size:20px;font-variant-numeric:tabular-nums}
.cl-res td,.cl-res th{padding:8px 6px}.cl-res tr.b td{font-weight:800;font-size:17px}
.z-bloc{border-radius:12px;padding:10px 12px;margin:14px 0}
.z-ok{background:#E8F5EC}.z-ecart{background:#FDECEA}
.row-z{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dashed var(--line);font-size:14px}
.zticket{max-width:640px}
[dir=rtl] .cl-ligne input{text-align:left}
[dir=rtl] .cl-st,[dir=rtl] .cl-total b,[dir=rtl] .cl-res td.num{direction:ltr;unicode-bidi:isolate}
@media (max-width:500px){.cl-ligne{grid-template-columns:78px 10px minmax(0,1fr) 84px;gap:6px}}
@media print{.zticket{max-width:none;box-shadow:none;border:0;padding:0}.z-ok,.z-ecart{background:none;border:1px solid #000}}
/* Raccourcis clavier sur les boutons */
kbd{display:inline-block;font:600 11px/1 ui-monospace,monospace;padding:3px 5px;border-radius:5px;border:1px solid currentColor;opacity:.75;margin-inline-start:6px;vertical-align:2px}
.msg-fort{font-size:16px;font-weight:700;background:#E8F5EC;border-radius:10px;padding:8px 10px}
.tg-etapes{padding-inline-start:20px;margin:6px 0 10px}.tg-etapes li{margin-bottom:8px;line-height:1.45}
/* Prix de vente + pourcentage de gain */
.pv-ligne{display:flex;gap:6px;align-items:center}
.pv-ligne > input{flex:1;min-width:0}
.pct-box{display:inline-flex;align-items:center;gap:3px}
.pct-box input.pct{width:62px!important;min-width:0;text-align:right;padding:4px 6px}
.pct-box b{font-size:13px;color:var(--muted)}
.achat-opts .opt .pv-ligne > input{width:110px}
@media (max-width:700px){.achat-opts .opt .pv-ligne > input{width:100%}}
[dir=rtl] .pct-box input.pct{text-align:left}
/* Bandeau connexion / ventes hors ligne */
#bandeauHL:empty{display:none}
#bandeauHL{margin-bottom:12px;display:flex;flex-direction:column;gap:6px}
.hl{border-radius:10px;padding:10px 14px;font-size:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hl a{font-weight:700;margin-inline-start:auto}
.hl-off{background:#FFF1D6;color:#7A4B00;border:1px solid #F2C46D}
.hl-att{background:#E7F0FB;color:#1D4E89;border:1px solid #A9C6EC}
.hl-err{background:#FDECEA;color:#9B1C1C;border:1px solid #F3B2AC}
