/* Commerce — caisse tactile et écrans de gestion (complète socle.css) */

/* ---------- Écran de caisse ---------- */
.cs{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}
.cs-g{min-width:0}
.cs-barre{display:flex;gap:8px;margin-bottom:10px;align-items:center}
.cs-scan{max-width:none;height:46px}
.cs-scan input{font-size:15px}
.cs-rayons{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:6px;scrollbar-width:thin}
.cs-rayons button{flex-shrink:0;height:38px;padding:0 14px;border-radius:10px;background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--trait);font-weight:750;font-size:13.5px;display:flex;align-items:center;gap:7px;white-space:nowrap}
.cs-rayons button i{width:9px;height:9px;border-radius:50%;background:var(--c,var(--acc))}
.cs-rayons button.on{background:var(--ink);color:#fff;box-shadow:none}
.cs-grille{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));max-height:calc(100vh - 230px);overflow-y:auto;padding:2px 2px 10px;align-content:start}
.produit{min-height:92px;cursor:pointer;border:0}
.produit b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;padding-right:22px}
.produit .px small{font-weight:600;color:var(--gris)}
.produit .px s{font-weight:500;font-size:12px}
.produit .st{background:var(--trait2);border-radius:6px;padding:1px 5px}
.produit .st.bas{background:var(--rouge-f);color:var(--rouge)}
.produit .promo{align-self:flex-start;font-size:11px;font-weight:800;color:var(--rouge);background:var(--rouge-f);border-radius:6px;padding:1px 6px;margin-top:auto}
.produit .promo s{font-weight:600}
.produit .promo+.px{margin-top:2px}
.produit.menu{background:var(--acc-f)}
.produit.libre{box-shadow:none;border:1.5px dashed var(--trait);background:transparent;border-top:1.5px dashed var(--trait);justify-content:center}
.produit.libre b{display:flex;align-items:center;gap:6px;color:var(--acc-d);padding:0}
.produit.libre b svg{width:16px;height:16px}
.produit:hover{box-shadow:var(--ombre),inset 0 0 0 1.5px var(--trait)}
.cs-d{position:sticky;top:12px;margin:0;display:flex;flex-direction:column;max-height:calc(100vh - 100px)}
.cs-tt{display:flex;flex-direction:column;gap:8px;padding:12px 14px 10px;border-bottom:1px solid var(--trait2)}
.cs-mode{display:flex;width:100%}.cs-mode button{flex:1;justify-content:center}
.cs-client{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:10px;box-shadow:inset 0 0 0 1.5px var(--trait);text-align:left;color:var(--gris);font-weight:650;font-size:13.5px;min-height:44px}
.cs-client>span{flex:1;min-width:0;display:flex;flex-direction:column}
.cs-client b{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-client small{font-size:12px;color:var(--acc-d);font-weight:700}
.cs-client.on{box-shadow:inset 0 0 0 1.5px var(--acc);background:var(--acc-f)}
.cs-client i{display:flex;padding:4px;border-radius:7px;color:var(--gris)}
.cs-client i:hover{background:#fff}
.cs-info{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--ambre-f);color:#6B3F00;font-size:13px;font-weight:650}
.cs-info svg{width:16px;height:16px}
.cs-d .lignes{flex:1;min-height:90px;max-height:none;overflow-y:auto}
.cs-d .tl{display:flex;align-items:center;gap:8px;cursor:pointer;padding:9px 14px;border-top:1px solid var(--trait2);font-size:13.5px}
.cs-d .tl .co{flex:1;min-width:0}
.cs-d .tl:hover{background:#FAFBFD}
.cs-d .tl .co b{display:block;font-size:13.8px;line-height:1.25}
.cs-d .tl .co .petit{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-mt{min-width:70px;text-align:right}
.cs-d .qte button{width:30px;height:30px}
.cs-sous{padding:6px 16px 0;border-top:1px solid var(--trait2);font-size:12.5px}
.cs-sous .l{display:flex;justify-content:space-between;padding:2px 0}
.cs-d .total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 16px 12px;font-size:22px;font-weight:800;border-top:1px solid var(--trait)}
.cs-d .total small{font-size:12px;font-weight:650}
.cs-act{display:flex;gap:6px;padding:0 16px 10px;flex-wrap:wrap}
.cs-act .btn{flex:1;min-width:0;height:40px;padding:0 8px;font-size:12.8px}
.cs-act .btn span{overflow:hidden;text-overflow:ellipsis}
.cs-mobile{display:none}
.cs-ferme{max-width:560px;margin:30px auto;text-align:center}
.cs-ferme-ic{width:56px;height:56px;border-radius:16px;background:var(--acc-f);color:var(--acc-d);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.cs-ferme-ic svg{width:28px;height:28px}
.cs-ferme h2{font-size:21px;font-weight:800}
@media(max-width:1180px){.cs{grid-template-columns:minmax(0,1fr) 330px}.cs-grille{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}}
@media(max-width:860px){.cs-grille{max-height:none;overflow:visible}.cs-d{max-height:calc(100vh - 170px);top:8px}}
@media(max-width:700px){
  .cs{grid-template-columns:1fr}
  .cs>.cs-d{display:none}
  .cs-grille{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:7px}
  .produit{min-height:84px;padding:9px 9px 8px}
  .produit b{font-size:13px}
  .cs-mobile{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));padding:8px 12px;background:var(--surface);border-top:1px solid var(--trait);z-index:39;box-shadow:0 -6px 18px rgba(13,23,48,.06)}
  .cs-mobile .btn{flex:1;height:50px}
  .cs-mb-t{display:flex;align-items:center;gap:10px;flex:1;text-align:left;padding:0 6px}
  .cs-mb-t span{display:flex;flex-direction:column;font-size:13.5px}.cs-mb-t small{color:var(--gris);font-size:12px}
  .contenu:has(.cs-mobile){padding-bottom:170px}
  .tiroir .cs-d{max-height:none}
}
.pave{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pave button{height:50px;border-radius:10px;background:var(--trait2);font-size:19px;font-weight:800}
.pave button:active{background:var(--trait)}
.cs-poids{font-size:22px!important;height:52px!important;text-align:center;font-weight:800!important}
.cs-prix-calc{text-align:center;font-weight:700;color:var(--ink)!important;min-height:20px}
table.decl th,table.decl td{padding:7px 8px;text-align:center}
.decl-b{min-width:44px;height:38px;border-radius:9px;background:var(--acc-f);color:var(--acc-d);font-weight:800}
.decl-b.zero,td.zero{color:var(--rouge)}
.decl-b.zero{background:var(--rouge-f)}
.menu-choix{display:flex;flex-wrap:wrap;gap:6px}
.menu-choix button{padding:10px 12px;border-radius:10px;box-shadow:inset 0 0 0 1.5px var(--trait);font-weight:700;font-size:13.5px}
.menu-choix button small{color:var(--gris);font-weight:600}
.menu-choix button.on{background:var(--acc);color:#fff;box-shadow:none}
.menu-choix button.on small{color:#fff}

/* ---------- Encaissement ---------- */
.pay{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:900px;margin:0 auto}
.pay-g,.pay-d{background:var(--surface);border-radius:var(--r);box-shadow:var(--ombre);padding:16px}
.pay-du{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;border-bottom:1px solid var(--trait)}
.pay-du span{color:var(--gris);font-weight:700}.pay-du b{font-size:30px;letter-spacing:-.03em}
.pay-l{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--trait2)}
.pay-l span{flex:1;display:flex;align-items:center;gap:8px;font-weight:650}
.pay-l .ib{width:32px;height:32px}
.pay-reste{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px}
.pay-reste span{font-weight:700;color:var(--gris)}.pay-reste b{font-size:26px;color:var(--rouge)}
.pay-reste.ok b{color:var(--vert)}
.pay-rendu{margin-top:12px;background:var(--vert-f);color:var(--vert);font-weight:800;font-size:20px;text-align:center;border-radius:12px;padding:14px}
.pay-inp{width:100%;height:58px!important;font-size:28px;font-weight:800;text-align:right;margin:6px 0 10px}
.pay-rap{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;min-height:33px}
.pay-modes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.pay-modes .btn{height:58px;font-size:14px;justify-content:flex-start;padding:0 14px}
.pay-modes .btn svg{width:22px;height:22px}
@media(max-width:700px){.pay{grid-template-columns:1fr;gap:12px}.pay-du b{font-size:26px}.plein .pp{flex-wrap:wrap}.plein .pp .btn{flex:1}}

/* ---------- Ticket (reçu) ---------- */
.recu{background:#fff;max-width:340px;margin:0 auto;padding:18px 16px;font:12.5px/1.45 "Courier New",ui-monospace,monospace;color:#111;box-shadow:var(--ombre);border-radius:4px}
.recu .c{text-align:center}.recu .g{font-weight:700}.recu .gros{font-size:15px}
.recu .l{display:flex;justify-content:space-between;gap:8px}
.recu .l>span:last-child{white-space:nowrap}
.recu .sep{border-top:1px dashed #999;margin:7px 0}
.recu .petit{font-size:11px}
.recu-pp{flex-wrap:wrap}
@media(max-width:700px){.recu-pp .btn:not(.gros) span{display:none}.recu-pp .btn.gros{flex-basis:100%}}

/* ---------- Tableau de bord, listes ---------- */
.a-traiter>svg{width:20px;height:20px;color:var(--ambre);flex-shrink:0}
.a-traiter.rouge>svg{color:var(--rouge)}
.a-traiter .p{font-weight:650;font-size:13.5px}
.ligne .av b{font-size:14px}
.lien{color:var(--acc-d)}
.art-n{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cmds{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:14px}
.cmd{background:var(--surface);border-radius:var(--r);box-shadow:var(--ombre);padding:13px 15px;text-align:left;display:flex;flex-direction:column;gap:5px;border-left:4px solid var(--trait);min-width:0}
.cmd.a_preparer{border-left-color:var(--ambre)}.cmd.pret{border-left-color:var(--vert)}.cmd.retire,.cmd.annule{opacity:.7}
.cmd-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cmd-h b{font-size:15px;margin-right:auto}
.cmd-n{font-weight:800;font-size:14.5px}
.cmd-l{font-size:13px;color:var(--ink)}
.cmd-x{font-size:12.5px;color:var(--gris);display:flex;gap:6px;align-items:flex-start}
.cmd-x svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}
.cmd-p{display:flex;justify-content:space-between;font-size:12.5px;color:var(--gris);border-top:1px solid var(--trait2);padding-top:7px;margin-top:3px}
.cmd-p b{color:var(--ink)}
.cmd-ligne{display:grid;grid-template-columns:1fr 70px 90px 38px;gap:6px;align-items:center;padding:4px 0;font-size:13.5px}
.cmd-ligne>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.cmd-ajout{display:flex;gap:6px;margin-top:8px}
.cmd-ajout .inp{flex:1}
@media(max-width:560px){.cmd-ligne{grid-template-columns:1fr 60px 78px 34px}.cmds{grid-template-columns:1fr}}
.ret-l{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--trait2);font-size:13.5px}
.ret-l>span{flex:1;min-width:0}
.ret-l .inp{width:90px;flex-shrink:0}
.coupures{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.coupures label{font-size:12px}
.coupures .inp{text-align:right}
@media(max-width:560px){.coupures{grid-template-columns:repeat(3,1fr)}.decl-b{min-width:36px;height:36px}table.decl th,table.decl td{padding:6px 4px}}
.z-tot{display:flex;gap:10px;flex-wrap:wrap}
.z-tot .l{flex:1;min-width:120px;background:var(--trait2);border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;font-size:12.5px;color:var(--gris)}
.z-tot .l b{font-size:18px;color:var(--ink)}
.z-tot .l.ecart b{color:var(--rouge)}
.jet-etat{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--vert-f);color:var(--vert)}
.jet-etat svg{width:26px;height:26px}
.jet-etat.ko{background:var(--rouge-f);color:var(--rouge)}
.jet-etat .petit{color:var(--ink);opacity:.75}
code.emp{font-size:11.5px;color:var(--gris);background:var(--trait2);padding:2px 5px;border-radius:5px}
.inv-i{width:96px;height:36px;text-align:right}
table.inv td,table.prod td{padding:7px 12px}
table.prod .sel{height:36px;max-width:200px}
.decl-aj{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.decl-aj label{font-size:12px}
.rec-l{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--trait2)}
.rec-l:has([data-rl]){grid-template-columns:1fr 80px 110px 140px}
@media(max-width:620px){.rec-l:has([data-rl]){grid-template-columns:1fr 1fr}.rec-l:has([data-rl])>div{grid-column:1/-1}}
.compo-l{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--trait2);font-size:13.5px}
.compo-l>span{flex:1;min-width:0}
.menu-et{border:1.5px solid var(--trait);border-radius:10px;padding:10px}
.menu-et>.inp{width:100%;margin-bottom:8px;font-weight:700}
.menu-ch{display:flex;flex-wrap:wrap;gap:4px 14px;max-height:140px;overflow-y:auto}
.menu-ch label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);font-weight:600;flex-direction:row}

/* ---------- Préparation (restauration rapide) ---------- */
.kds-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.kds-col{background:var(--trait2);border-radius:var(--r);padding:10px;min-height:200px}
.kds-t{display:flex;justify-content:space-between;align-items:center;font-weight:800;padding:4px 6px 10px}
.kds{background:var(--surface);border-radius:12px;box-shadow:var(--ombre);padding:12px;margin-bottom:10px;border-top:4px solid var(--acc)}
.kds.tard{border-top-color:var(--rouge)}
.kds-h{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.kds-n{font-size:30px;font-weight:800;min-width:48px;height:48px;border-radius:12px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center}
.kds ul{margin:6px 0 10px;padding-left:18px;font-size:14px}
.kds li{margin:3px 0}
@media(max-width:860px){.kds-g{grid-template-columns:1fr}}
.appel-ecran{background:var(--ink);color:#fff}
.appel-ecran .ph{background:var(--ink);border-color:rgba(255,255,255,.15)}
.appel-ecran .pb{background:var(--ink)}
.appel-g{display:grid;grid-template-columns:1fr 1fr;gap:24px;height:100%}
.appel-g h3{font-size:22px;font-weight:800;opacity:.7;margin-bottom:16px}
.appel-g .pret h3{color:#4ADE80;opacity:1}
.appel-n{display:flex;flex-wrap:wrap;gap:14px}
.appel-n span{font-size:64px;font-weight:800;min-width:110px;text-align:center;background:rgba(255,255,255,.08);border-radius:16px;padding:6px 14px}
.appel-g .pret .appel-n span{background:#16A34A}
@media(max-width:700px){.appel-g{grid-template-columns:1fr}.appel-n span{font-size:40px;min-width:70px}}

/* ---------- Dépôt-vente, pressing ---------- */
.dep-l{display:grid;grid-template-columns:1fr 130px 80px 86px 38px;gap:6px;margin-bottom:6px}
@media(max-width:620px){.dep-l{grid-template-columns:1fr 1fr 38px}.dep-l>:first-child{grid-column:1/-1}.dep-l>:nth-child(3){display:none}}
.press-rech{max-width:none;flex:1 1 260px;height:46px}
.press-rech input{font-size:15px}
.press-num{font-size:15px;letter-spacing:.02em}
.press-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;max-height:300px;overflow-y:auto;padding:2px}
.press-r>div:last-child{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.press-r button{padding:8px 10px;border-radius:9px;box-shadow:inset 0 0 0 1.5px var(--trait);font-weight:700;font-size:13px;display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.press-r button small{color:var(--acc-d);font-weight:700;font-size:11.5px}
.press-r button:active{background:var(--acc-f)}
.press-l{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 72px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--trait2);font-size:13.5px}
@media(max-width:620px){.press-l{grid-template-columns:1fr auto 70px}.press-l>.inp{grid-column:1/-1;grid-row:2}}
