:root{
  --red:#cc3c24;--red2:#e04a29;--blue:#679fc0;--blue2:#4e85a3;
  --bg:#0d0f12;--panel:#171a1f;--panel2:#20242b;--text:#f4f5f6;--muted:#9da4ae;
  --ok:#65c18c;--warn:#f0b75b;--danger:#ef6a6a;--border:#303640;
  --shadow:0 12px 32px rgba(0,0,0,.24);--radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body{min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{max-width:900px;margin:0 auto;min-height:100vh;padding-bottom:88px}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:18px 16px 14px;background:rgba(13,15,18,.92);backdrop-filter:blur(14px);border-bottom:1px solid #1f2329}
.brand{font-weight:1000;letter-spacing:.06em;font-size:20px;font-style:italic}.brand::after{content:" / MERCH";color:var(--red2)}
.event-label{font-size:12px;color:var(--muted);margin-top:2px}
.status-pill{font-size:11px;color:#cbd2d9;padding:8px 10px;border:1px solid var(--border);border-radius:999px;white-space:nowrap}.dot{display:inline-block;width:7px;height:7px;background:var(--ok);border-radius:50%;margin-right:5px}
main{padding:14px 14px 28px}
.bottom-nav{position:fixed;z-index:10;left:50%;bottom:0;transform:translateX(-50%);width:min(900px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(20,23,28,.96);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
.nav-btn{border:0;background:transparent;color:var(--muted);border-radius:12px;padding:7px 2px;display:flex;flex-direction:column;gap:2px;align-items:center}.nav-btn span{font-size:21px}.nav-btn small{font-size:10px}.nav-btn.active{color:#fff;background:#282d35}
.section-title{font-size:24px;margin:4px 0 4px}.section-sub{color:var(--muted);font-size:13px;margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.card{background:var(--panel);border:1px solid #242931;border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.kpi{padding:15px}.kpi .value{font-size:24px;font-weight:900}.kpi .label{font-size:11px;color:var(--muted);margin-top:3px}.kpi.accent{background:linear-gradient(145deg,#20252b,#341c17);border-color:#51261f}
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.toolbar>*{flex:1}.search,.input,.select{width:100%;border:1px solid var(--border);background:#111419;color:#fff;border-radius:12px;padding:12px 12px;outline:none}.input:focus,.search:focus,.select:focus{border-color:var(--blue)}
.product-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product{position:relative;min-height:128px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(155deg,#1a1e24,#111418);border:1px solid #2a3038;border-radius:16px;padding:13px}.product.low{border-color:#6d522e}.product.out{opacity:.48}.product-name{font-weight:850;line-height:1.1}.product-price{font-weight:900;font-size:19px;margin-top:7px}.product-stock{font-size:11px;color:var(--muted);margin-top:4px}.product .tag{position:absolute;right:9px;top:9px;font-size:9px;background:#2a3038;color:#dce0e4;border-radius:999px;padding:5px 7px}.product .tag.low{background:#48371f;color:#ffd88f}.product .tag.out{background:#4c2727;color:#ffb4b4}
.btn{border:0;border-radius:12px;padding:12px 14px;font-weight:800;background:#2a3038;color:#fff}.btn.primary{background:var(--red);color:white}.btn.secondary{background:var(--blue2)}.btn.ok{background:#2e7d55}.btn.warn{background:#735522}.btn.danger{background:#7b3333}.btn.ghost{background:transparent;border:1px solid var(--border);color:#dce1e6}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.full{width:100%}.btn.small{padding:8px 10px;font-size:12px}
.cart{margin-top:14px}.cart-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #292e36}.cart-row:last-child{border-bottom:0}.cart-title{font-weight:750}.cart-variant{font-size:11px;color:var(--muted)}.qty{display:flex;align-items:center;gap:6px}.qty button{width:31px;height:31px;border:0;background:#2c323a;color:#fff;border-radius:9px}.qty b{min-width:20px;text-align:center}.cart-total{display:flex;align-items:flex-end;justify-content:space-between;padding-top:14px}.cart-total .amount{font-size:30px;font-weight:1000}.empty{text-align:center;color:var(--muted);padding:30px 10px}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.66);display:flex;align-items:flex-end;justify-content:center}.modal{width:min(620px,100%);max-height:88vh;overflow:auto;background:#181c21;border-radius:22px 22px 0 0;border:1px solid #343b45;padding:18px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px rgba(0,0,0,.45)}.modal h3{margin:0 0 4px}.modal p{color:var(--muted);font-size:13px}.variant-grid{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}.variant{border:1px solid var(--border);background:#111419;color:#fff;border-radius:12px;padding:10px 12px}.variant.selected{border-color:var(--red2);background:#321b18}.variant:disabled{opacity:.4}.modal-actions{display:flex;gap:8px}.modal-actions>*{flex:1}
.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.pay-card{border:1px solid var(--border);border-radius:14px;background:#111419;color:#fff;padding:18px;text-align:center;font-weight:850}.pay-card.selected{border-color:var(--red2);background:#321b18}.change{font-size:13px;color:var(--ok);margin-top:8px}
.stock-item,.sale-item{background:var(--panel);border:1px solid #272c33;border-radius:15px;padding:12px;margin-bottom:10px}.stock-head,.sale-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.stock-name,.sale-name{font-weight:850}.meta{font-size:11px;color:var(--muted);margin-top:3px}.variants{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.stock-chip{background:#232831;border-radius:999px;padding:6px 9px;font-size:11px}.stock-chip.low{background:#4a391f;color:#ffd995}.stock-chip.out{background:#4b2929;color:#ffb6b6}.stock-actions{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;background:#272d35;color:#dce2e8}.badge.cash{background:#1f503b}.badge.card{background:#27495c}.badge.refund{background:#5a3030}
.list-title{font-weight:900;margin:18px 0 8px}.divider{height:1px;background:#2b3038;margin:14px 0}.row{display:flex;justify-content:space-between;gap:12px;align-items:center}.row+.row{margin-top:10px}.muted{color:var(--muted)}.right{text-align:right}
.form-group{margin-bottom:12px}.form-group label{display:block;font-size:11px;color:var(--muted);margin:0 0 5px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkbox-row{display:flex;gap:9px;align-items:center;color:#dce1e6;font-size:13px;margin:10px 0}
.toast{position:fixed;z-index:100;left:50%;bottom:95px;transform:translate(-50%,20px);opacity:0;background:#f2f3f4;color:#111;padding:11px 14px;border-radius:999px;font-size:12px;font-weight:800;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
.sale-lines{margin-top:10px;font-size:12px;color:#d2d7dc}.sale-lines div{display:flex;justify-content:space-between;gap:8px;margin-top:4px}
.progress{height:8px;background:#252a31;border-radius:999px;overflow:hidden;margin-top:6px}.progress>div{height:100%;background:var(--blue)}
@media (min-width:700px){main{padding:18px 22px 30px}.product-list{grid-template-columns:repeat(3,minmax(0,1fr))}.grid{grid-template-columns:repeat(4,minmax(0,1fr))}.modal{border-radius:22px;margin-bottom:20px}.modal-backdrop{align-items:center}.bottom-nav{border-radius:18px 18px 0 0}}
/* V2 additions */
.title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.title-row .section-sub{margin-bottom:16px}
.status-pill{background:transparent;color:#cbd2d9}.status-pill.online .dot{background:var(--ok)}.status-pill.local .dot{background:var(--warn)}.status-pill.offline .dot{background:var(--danger)}
.mt10{margin-top:10px}.mt12{margin-top:12px}.mt15{margin-top:15px}.help{font-size:12px;color:var(--muted);line-height:1.45}.sync-detail{margin-top:10px;font-size:12px;color:var(--muted)}
.product-img{width:100%;height:92px;object-fit:cover;border-radius:10px;margin-bottom:10px;background:#0b0d10}.price-line{display:flex;gap:7px;align-items:baseline;justify-content:flex-end}.old-price{text-decoration:line-through;color:var(--muted);font-size:11px}
.checkout-total{font-size:38px;font-weight:1000;margin-bottom:14px}.discount-row{display:flex;gap:8px;flex-wrap:wrap}.discount-row .selected{border-color:var(--red2);background:#321b18}
.seller-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #292e36}.seller-row:last-child{border-bottom:0}
.move{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #292e36;font-size:12px}.move:last-child{border-bottom:0}.move .muted{text-align:right;font-size:10px}
.badge.pending{background:#5d4923;color:#ffe0a0}.badge.conflict{background:#6d2d2d;color:#ffc0c0}.badge.free{background:#49345f}
.ok-text{color:var(--ok)}.danger-text{color:var(--danger)}.error-box{margin-top:10px;padding:10px;border-radius:10px;background:#4c2727;color:#ffb9b9;font-size:11px;word-break:break-word}.sync-panel{display:grid;gap:8px;padding:12px;background:#111419;border-radius:12px;margin:12px 0}
.file-btn{display:block;text-align:center;margin-top:8px}.adjust-row{margin:10px 0}
@media(max-width:460px){.grid-3{grid-template-columns:1fr}.title-row{align-items:center}.seller-row{align-items:flex-start;flex-direction:column}.seller-row>div{width:100%;display:flex;gap:6px}.seller-row>div .btn{flex:1}.product-img{height:75px}}

/* V3 additions */
.category-strip{display:flex;gap:7px;overflow:auto;padding:0 0 10px;scrollbar-width:none}.category-strip::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border:1px solid var(--border);background:#171b20;color:#cfd5db;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800}.chip.selected{background:#2b3540;border-color:var(--blue);color:#fff}.scan-btn{flex:0 0 auto!important;white-space:nowrap}.mini-input{width:105px!important;padding:8px 9px}.payment-grid{grid-template-columns:repeat(3,1fr)}#scanVideo{width:100%;max-height:48vh;object-fit:cover;background:#000;border-radius:14px;margin-top:10px}.stocktake-list{max-height:55vh;overflow:auto}.stocktake-row{display:grid;grid-template-columns:1fr 90px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #292e36}.count-input{text-align:center}.receipt-brand{font-size:22px;font-weight:1000;letter-spacing:.08em}.receipt-event{font-weight:800;margin-top:3px}.badge.split{background:#493c66}
@media(max-width:460px){.toolbar{align-items:stretch}.toolbar .search{min-width:0}.pay-card{padding:14px 6px;font-size:12px}}


/* V3.2 Mobile Event — focused on iPhone/tablet use */
@media (max-width:699px){
  body{padding-bottom:env(safe-area-inset-bottom)}
  .app-shell{padding-bottom:154px}
  .topbar{
    padding:calc(10px + env(safe-area-inset-top)) 12px 10px;
    min-height:62px;
  }
  .brand{font-size:17px}
  .event-label{
    font-size:11px;
    max-width:220px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .status-pill{padding:7px 9px;font-size:10px}
  main{padding:10px 10px 22px}
  .section-title{font-size:21px;margin-top:2px}
  .section-sub{font-size:12px;margin-bottom:10px}
  .title-row{gap:8px}
  #sellerSwitch{padding:9px 10px;min-height:40px}
  .toolbar{gap:7px;margin-bottom:8px}
  .search,.input,.select{min-height:46px;padding:12px}
  .scan-btn{min-height:46px;padding:10px 12px}
  .category-strip{padding-bottom:8px}
  .chip{padding:9px 12px;min-height:38px}
  .product-list{gap:8px}
  .product{
    min-height:116px;
    padding:11px;
    border-radius:14px;
    touch-action:manipulation;
  }
  .product-name{font-size:14px}
  .product-price{font-size:18px}
  .product-stock{font-size:10px}
  .product .tag{font-size:8px;padding:4px 6px;max-width:72px;overflow:hidden;text-overflow:ellipsis}
  .product-img{height:68px}
  .cart{margin-top:10px;padding:12px}
  .cart-row{grid-template-columns:1fr auto;padding:9px 0}
  .cart-row> b:last-child{display:none}
  .qty button{width:38px;height:38px;font-size:20px;border-radius:11px}
  .qty b{min-width:24px}
  .cart-total .amount{font-size:25px}
  .cart-total #checkout{display:none}
  .btn{min-height:44px}
  .btn.small{min-height:38px}
  .bottom-nav{
    padding-top:6px;
    padding-bottom:calc(7px + env(safe-area-inset-bottom));
  }
  .nav-btn{padding:7px 1px;min-height:52px}
  .nav-btn span{font-size:20px}
  .nav-btn small{font-size:10px}
  .modal-backdrop{align-items:flex-end}
  .modal{
    width:100%;
    max-height:92dvh;
    padding:16px 12px calc(16px + env(safe-area-inset-bottom));
    border-radius:20px 20px 0 0;
  }
  .modal h3{font-size:20px}
  .variant{min-height:44px;padding:11px 13px}
  .modal-actions{position:sticky;bottom:0;background:#181c21;padding-top:10px;margin-top:12px}
  .modal-actions .btn{min-height:48px}
  .payment-grid{gap:8px}
  .pay-card{min-height:72px;padding:12px 5px;font-size:12px}
  .checkout-total{font-size:34px;margin-bottom:10px}
  .discount-row{gap:6px}
  .discount-row .btn{min-height:40px}
  .two{gap:8px}
  .stock-item,.sale-item{padding:11px}
  .stock-actions .btn{flex:1}
  .mobile-checkout-bar{
    position:fixed;
    z-index:9;
    left:8px;
    right:8px;
    bottom:calc(69px + env(safe-area-inset-bottom));
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:9px 10px 9px 14px;
    background:rgba(29,33,39,.98);
    border:1px solid #3b424c;
    border-radius:16px;
    box-shadow:0 12px 35px rgba(0,0,0,.38);
    backdrop-filter:blur(14px);
  }
  .mobile-checkout-bar>div{display:flex;flex-direction:column}
  .mobile-checkout-bar small{font-size:10px;color:var(--muted)}
  .mobile-checkout-bar strong{font-size:20px;line-height:1.05}
  .mobile-checkout-bar .btn{min-width:128px;min-height:48px;font-size:15px}
}

@media (max-width:380px){
  .brand{font-size:15px}
  .brand::after{content:" / MERCH"}
  .event-label{max-width:150px}
  .product{min-height:108px;padding:9px}
  .product-name{font-size:13px}
  .product-price{font-size:17px}
  .mobile-checkout-bar .btn{min-width:112px}
}


/* V3.3 — Apparence sombre / claire */
.theme-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}

/* Dark remains the default. Light mode is local to each device. */
html[data-theme="light"]{
  --bg:#f3f5f7;
  --panel:#ffffff;
  --panel2:#eef1f4;
  --text:#171a1f;
  --muted:#66707a;
  --border:#cfd5dc;
  --shadow:0 10px 28px rgba(25,35,45,.10);
}
html[data-theme="light"] body{background:var(--bg);color:var(--text)}
html[data-theme="light"] .topbar{
  background:rgba(255,255,255,.94);
  border-bottom-color:#dfe3e7;
}
html[data-theme="light"] .bottom-nav{
  background:rgba(255,255,255,.96);
  border-top-color:#d5dbe1;
}
html[data-theme="light"] .nav-btn{color:#6c7580}
html[data-theme="light"] .nav-btn.active{color:#111;background:#e7ebef}
html[data-theme="light"] .card,
html[data-theme="light"] .stock-item,
html[data-theme="light"] .sale-item{
  background:#fff;border-color:#dfe4e9;color:#171a1f;
}
html[data-theme="light"] .product{
  background:linear-gradient(155deg,#fff,#f4f6f8);
  border-color:#d9dfe5;color:#171a1f;
}
html[data-theme="light"] .product.low{border-color:#c69b4d}
html[data-theme="light"] .product .tag{background:#e8edf2;color:#46515c}
html[data-theme="light"] .product .tag.low{background:#fff0cf;color:#76510f}
html[data-theme="light"] .product .tag.out{background:#ffe1e1;color:#8b3333}
html[data-theme="light"] .search,
html[data-theme="light"] .input,
html[data-theme="light"] .select{
  background:#fff;color:#171a1f;border-color:#cfd5dc;
}
html[data-theme="light"] .btn{background:#e1e6eb;color:#171a1f}
html[data-theme="light"] .btn.primary{background:var(--red);color:#fff}
html[data-theme="light"] .btn.secondary{background:var(--blue2);color:#fff}
html[data-theme="light"] .btn.ok{background:#2e7d55;color:#fff}
html[data-theme="light"] .btn.warn{background:#c08a2e;color:#fff}
html[data-theme="light"] .btn.danger{background:#a94545;color:#fff}
html[data-theme="light"] .btn.ghost{background:transparent;color:#343b43;border-color:#c8cfd6}
html[data-theme="light"] .status-pill{color:#404852;background:#f7f8f9}
html[data-theme="light"] .chip{background:#fff;color:#515b65;border-color:#ccd3da}
html[data-theme="light"] .chip.selected{background:#dfeaf1;color:#17232b;border-color:var(--blue)}
html[data-theme="light"] .cart-row,
html[data-theme="light"] .seller-row,
html[data-theme="light"] .move,
html[data-theme="light"] .stocktake-row{border-bottom-color:#e1e5e9}
html[data-theme="light"] .qty button{background:#e3e8ed;color:#111}
html[data-theme="light"] .stock-chip{background:#e9edf1;color:#252c33}
html[data-theme="light"] .stock-chip.low{background:#fff0cf;color:#76510f}
html[data-theme="light"] .stock-chip.out{background:#ffe1e1;color:#8b3333}
html[data-theme="light"] .modal{background:#fff;border-color:#d4dae0;color:#171a1f}
html[data-theme="light"] .modal p{color:#66707a}
html[data-theme="light"] .variant,
html[data-theme="light"] .pay-card{
  background:#f6f7f9;color:#171a1f;border-color:#cfd5dc;
}
html[data-theme="light"] .variant.selected,
html[data-theme="light"] .pay-card.selected{
  background:#fff0ec;border-color:var(--red2);
}
html[data-theme="light"] .modal-actions{background:#fff}
html[data-theme="light"] .sync-panel{background:#f4f6f8}
html[data-theme="light"] .mobile-checkout-bar{
  background:rgba(255,255,255,.98);
  border-color:#ccd3da;color:#171a1f;
}
html[data-theme="light"] .kpi.accent{
  background:linear-gradient(145deg,#fff,#fff0ec);
  border-color:#efc2b9;
}


/* V3.5 — profils ADMIN / VENTE corrigés */
.sale-title-actions{display:flex;align-items:center;gap:7px}
.role-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.role-badge,.role-quick{
  font-size:10px;font-weight:900;letter-spacing:.06em;
  padding:7px 10px;border-radius:999px;
}
.role-quick{cursor:pointer}
.role-badge.admin,.role-quick.admin{
  background:rgba(204,60,36,.18);color:#ff9b87;border:1px solid rgba(224,74,41,.45)
}
.role-quick.vente{
  background:rgba(103,159,192,.18);color:#a9ddf8;border:1px solid rgba(103,159,192,.45)
}
.delete-product-button{
  flex:1 0 100% !important;
  width:100%;
  min-height:44px;
  margin-top:2px;
  font-weight:850;
}
html[data-theme="light"] .role-badge.admin,
html[data-theme="light"] .role-quick.admin{
  background:#fff0ec;color:#963c2b;border-color:#efb5aa
}
html[data-theme="light"] .role-quick.vente{
  background:#eaf4fa;color:#326984;border-color:#b9d7e7
}
@media(max-width:699px){
  .sale-title-actions{gap:5px}
  .role-quick{padding:7px 8px;font-size:9px}
  .delete-product-button{min-height:48px;font-size:13px}
}


/* V3.7 — gestion des événements */
.event-manager{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.event-manager-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px;border:1px solid #2d333b;border-radius:12px;background:#13171b;
}
html[data-theme="light"] .event-manager-row{
  background:#f7f8fa;border-color:#d9dfe5;
}
@media(max-width:699px){
  .event-manager-row{align-items:flex-start}
  .event-manager-row .btn{min-width:92px}
}


/* V3.8 — droits liés au vendeur */
.variant[data-seller]{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.variant[data-seller] small{font-size:10px;color:var(--muted)}
.seller-row{align-items:flex-start}
.seller-row>div:last-child{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}

/* V3.9 — suppression vendeurs */
.seller-row [data-delete-seller]{margin-left:2px}
@media(max-width:699px){
  .seller-row>div:last-child{width:100%}
  .seller-row [data-delete-seller]{margin-top:4px}
}
