:root{--violet:#7b1fa2;--violet-2:#9c27b0;--violet-pale:#f4eaf8;--jaune:#f5c518;--jaune-pale:#fff8dc;--texte:#241b2f;--gris:#6e6478;--ligne:#e6deef;--fond:#f7f3fa;--blanc:#fff;--vert:#1e8e5a;--rouge:#c62e3a;--orange:#b86e00;--r:14px}*{box-sizing:border-box}html,body{background:var(--fond);color:var(--texte);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}button,input,select,textarea{font:inherit;color:inherit}h1{color:var(--violet);margin:6px 0 14px;font-size:1.45rem}h2{margin:22px 0 8px;font-size:1.05rem}.card h2{margin-top:0}main{max-width:980px;margin:0 auto;padding:14px 16px 96px}.top{z-index:20;padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top));background:var(--violet);color:#fff;align-items:center;gap:10px;display:flex;position:sticky;top:0}.brand{letter-spacing:.5px;flex:1;font-size:1.15rem}.brand b{font-weight:800}.brand span{color:var(--jaune);font-weight:600}.who{text-align:right;font-size:.85rem;line-height:1.1}.who small{opacity:.8;display:block}.iconbtn{color:#fff;cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:1.5rem}.offline{z-index:30;background:var(--rouge);color:#fff;text-align:center;padding:8px 12px;font-size:.9rem;font-weight:600;position:sticky;top:0}.drawer{z-index:40;background:#241b2f73;position:fixed;inset:0}.drawer nav{background:#fff;flex-direction:column;width:min(290px,82vw);height:100%;padding-bottom:20px;display:flex;overflow:auto}.drawer-head{background:var(--violet);color:#fff;border-bottom:4px solid var(--jaune);padding:22px 18px;font-weight:700}.drawer nav button{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:14px;padding:14px 18px;font-size:1rem;display:flex}.drawer nav button span{text-align:center;width:24px}.drawer nav button.on{background:var(--violet-pale);color:var(--violet);border-left:4px solid var(--violet);font-weight:700}.drawer .logout{color:var(--rouge);margin-top:auto}.bottom{z-index:20;border-top:1px solid var(--ligne);padding-bottom:env(safe-area-inset-bottom);background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom button{color:var(--gris);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 10px;font-size:.75rem;display:flex}.bottom button span{font-size:1.3rem}.bottom button.on{color:var(--violet);font-weight:700}.card{border:1px solid var(--ligne);border-radius:var(--r);background:#fff;margin-bottom:12px;padding:14px}.subcard{border:1px dashed var(--ligne);border-radius:10px;padding:10px}.form{flex-direction:column;gap:12px;display:flex}label{color:var(--gris);flex-direction:column;flex:1;gap:5px;min-width:0;font-size:.88rem;display:flex}label.check{color:var(--texte);flex-direction:row;align-items:center;gap:8px;margin:8px 0}input,select,textarea{border:1.5px solid var(--ligne);width:100%;color:var(--texte);background:#fff;border-radius:10px;min-height:46px;padding:12px;font-size:1rem}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--violet)}input:focus,select:focus,textarea:focus{border-color:var(--violet-2);box-shadow:0 0 0 3px var(--violet-pale);outline:none}textarea{min-height:70px}.row{gap:10px;display:flex}.row4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (width<=520px){.row{flex-direction:column}.row4{grid-template-columns:repeat(2,1fr)}}.btn{border:1.5px solid var(--violet);color:var(--violet);cursor:pointer;background:#fff;border-radius:12px;min-height:46px;padding:12px 16px;font-weight:700}.btn.primary{background:var(--violet);color:#fff}.btn.danger{background:var(--rouge);border-color:var(--rouge);color:#fff}.btn.big{padding:16px 20px;font-size:1.05rem}.btn:disabled{opacity:.45;cursor:not-allowed}.link{color:var(--violet);cursor:pointer;text-align:left;background:0 0;border:0;padding:6px 0;font-weight:700}.link.danger{color:var(--rouge)}.actions{gap:10px;margin-top:10px;display:flex}.actions .btn.primary{flex:1}.head{justify-content:space-between;align-items:center;display:flex}.chips{flex-wrap:wrap;gap:8px;margin:6px 0 12px;display:flex}.chip{border:1.5px solid var(--ligne);cursor:pointer;background:#fff;border-radius:999px;padding:8px 14px;font-size:.9rem}.chip.on{background:var(--violet);border-color:var(--violet);color:#fff;font-weight:700}.search{margin-bottom:10px}.muted{color:var(--gris);margin:4px 0;font-size:.9rem}.error{color:var(--rouge);background:#fdecee;border-radius:10px;margin:8px 0;padding:10px 12px;font-weight:600}.okmsg{color:var(--vert);background:#e8f6ef;border-radius:10px;margin:8px 0;padding:10px 12px;font-weight:600}.notice{background:var(--jaune-pale);border:1px solid var(--jaune);border-radius:12px;margin-bottom:12px;padding:12px}.neg{color:var(--rouge)}.pos{color:var(--vert)}.warn{color:var(--orange)}.strike{color:var(--gris);text-decoration:line-through}.center{place-items:center;min-height:100vh;padding:20px;display:grid}.list{padding:4px 14px}.li{border-bottom:1px solid var(--ligne);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.li:last-child{border-bottom:0}.li>span{min-width:0}.li small{color:var(--gris);margin-top:2px;font-size:.8rem;display:block}.li b{white-space:nowrap}.li.click{cursor:pointer}.right{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.right select{width:auto;min-height:36px;padding:6px}.kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:8px;display:grid}.kpi{border:1px solid var(--ligne);border-radius:var(--r);background:#fff;flex-direction:column;gap:4px;padding:12px;display:flex}.kpi small{color:var(--gris);font-size:.8rem}.kpi b{font-size:1.2rem}.kpi b.sm{font-size:.95rem}.kpi span{color:var(--gris);font-size:.8rem}.kpi.main{background:var(--violet);color:#fff;border-color:var(--violet);grid-column:1/-1}.kpi.main small{color:#e5d6f3}.kpi.main b{color:var(--jaune);font-size:1.7rem}.total-bar{background:var(--violet-pale);border-radius:12px;justify-content:space-between;align-items:center;margin:8px 0 12px;padding:14px;display:flex}.total-bar b{color:var(--violet);font-size:1.25rem}.period .row{margin-bottom:10px}.searchrow{gap:8px;display:flex}.searchrow .search{flex:1}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding-bottom:180px;display:grid}.tile{border:1.5px solid var(--ligne);border-radius:var(--r);text-align:left;cursor:pointer;background:#fff;flex-direction:column;gap:4px;padding:10px;display:flex}.tile:active{border-color:var(--violet)}.tile:disabled{opacity:.45}.tile img,.tile .ph{aspect-ratio:1;object-fit:cover;background:var(--violet-pale);border-radius:10px;width:100%}.tile .ph{color:var(--violet);place-items:center;font-size:2rem;font-weight:800;display:grid}.tile .n{font-size:.9rem;line-height:1.2}.tile b{color:var(--violet)}.tile small{color:var(--gris);font-size:.78rem}.cart{z-index:15;border-top:3px solid var(--jaune);background:#fff;max-height:45vh;padding:10px 16px 12px;position:fixed;bottom:62px;left:0;right:0;overflow:auto;box-shadow:0 -6px 20px #241b2f1f}.cl{border-bottom:1px solid var(--ligne);justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.cl small{color:var(--gris);font-size:.8rem;display:block}.qty{align-items:center;gap:10px;display:flex}.qty button{border:1.5px solid var(--violet);width:38px;height:38px;color:var(--violet);cursor:pointer;background:#fff;border-radius:10px;font-size:1.2rem;font-weight:800}.pay .chips{margin-top:0}.success{text-align:center;padding-top:40px}.big-ok{background:var(--vert);color:#fff;border-radius:50%;place-items:center;width:90px;height:90px;margin:0 auto 12px;font-size:3rem;display:grid}.success .ref{color:var(--gris);font-weight:700}.success .total{color:var(--violet);margin:4px 0 24px;font-size:2rem;font-weight:800}.modal{z-index:50;background:#241b2f80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal .card{width:min(460px,100%);max-height:90vh;overflow:auto}.scan{background:#000;border-radius:10px;width:100%;margin-bottom:10px}.preview{object-fit:cover;border-radius:10px;width:120px;height:120px}details summary{cursor:pointer;color:var(--violet);padding:4px 0;font-weight:700}details[open]{flex-direction:column;gap:12px;display:flex}.top{background:linear-gradient(#8e24aa,#7b1fa2);justify-content:space-between;min-height:60px}.top .brand{text-align:center;letter-spacing:0;font-size:1.2rem;font-weight:700}main>section>h1:first-child,main .head h1{display:none}main .head{justify-content:flex-end}.hello{background:linear-gradient(135deg, #fff, var(--violet-pale));border:1px solid var(--ligne);border-radius:18px;align-items:center;gap:14px;margin:4px 0 16px;padding:16px;display:flex;box-shadow:0 4px 14px #7b1fa214}.hello .avatar{background:var(--violet);border-radius:50%;flex:none;place-items:center;width:52px;height:52px;font-size:1.5rem;display:grid}.hello b{font-size:1.15rem;display:block}.hello small{color:var(--gris)}.tiles{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=700px){.tiles{grid-template-columns:repeat(4,1fr)}}.tile2{border:1px solid var(--ligne);color:var(--texte);cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:18px 8px;font-size:1rem;display:flex;box-shadow:0 3px 10px #7b1fa212}.tile2 span{font-size:2rem;line-height:1}.tile2.main{color:#fff;background:linear-gradient(160deg,#ab47bc,#7b1fa2);border-color:#0000;font-weight:700}.tile2:active{transform:scale(.98)}.field-ico{align-items:center;display:flex;position:relative}.field-ico .ico{opacity:.6;pointer-events:none;position:absolute;left:14px}.field-ico input{border-radius:12px;padding-left:44px}.field-ico .eye{cursor:pointer;background:0 0;border:0;padding:6px;font-size:1.1rem;position:absolute;right:8px}.grow{flex:1}.btn.full{width:100%}.chips.scroll{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.chips.scroll .chip{flex:none}.scanbtn{border:1.5px solid var(--ligne);width:50px;color:var(--violet);cursor:pointer;background:#fff;border-radius:12px;font-size:1.5rem}.plist{border:1px solid var(--ligne);background:#fff;border-radius:16px;margin-bottom:190px;padding:4px 12px}.prow{border-bottom:1px solid var(--ligne);align-items:center;gap:12px;padding:10px 0;display:flex}.prow:last-child{border-bottom:0}.prow img,.prow .ph{object-fit:cover;background:var(--violet-pale);border-radius:12px;flex:none;width:64px;height:64px}.prow .ph{color:var(--violet);place-items:center;font-size:1.6rem;font-weight:800;display:grid}.pinfo{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pinfo b{font-size:1rem}.pinfo span{font-size:.95rem}.pinfo small{color:var(--gris);font-size:.78rem}.plus{background:var(--violet);color:#fff;cursor:pointer;border:0;border-radius:10px;flex:none;width:42px;height:42px;font-size:1.6rem;line-height:1}.plus:disabled{opacity:.35}.cartbar{z-index:15;background:#fff;border-radius:18px 18px 0 0;max-height:60vh;padding:10px 16px 12px;position:fixed;bottom:62px;left:0;right:0;overflow:auto;box-shadow:0 -6px 22px #241b2f1f}.cartsum{cursor:pointer;width:100%;color:var(--texte);background:0 0;border:0;justify-content:space-between;align-items:center;padding:6px 2px 10px;font-size:1.05rem;display:flex}.cartlines{margin-bottom:8px}.login{background:linear-gradient(180deg, var(--violet-pale), #fff 45%);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-wave{background:linear-gradient(#8e24aa,#7b1fa2);border-radius:0 0 50% 50%/0 0 60px 60px;height:110px}.login-body{flex:1;width:100%;max-width:420px;margin:0 auto;padding:20px 24px}.login-logo{width:240px;max-width:75%;margin:10px auto 0;display:block}.login-sub{text-align:center;margin:14px 0 26px;font-size:1.15rem}.login form{flex-direction:column;gap:14px;display:flex}.login-illu{width:100%;max-width:480px;margin:0 auto;display:block;-webkit-mask-image:linear-gradient(#0000,#000 30%);mask-image:linear-gradient(#0000,#000 30%)}.side{z-index:45;color:#e9ddf2;background:#1e1029;flex-direction:column;width:250px;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.side.open{transform:none}.side-overlay{z-index:44;background:#00000073;position:fixed;inset:0}.side-head{border-bottom:1px solid #ffffff14;padding:22px 18px 16px}.side-head img{filter:brightness(0)invert();opacity:.95;width:130px;margin-bottom:10px;display:block}.side-head b{color:#fff;display:block}.side-head small{color:#a893b8;font-size:.8rem}.side button{text-align:left;color:#e9ddf2;cursor:pointer;background:0 0;border:0;border-left:4px solid #0000;align-items:center;gap:14px;padding:13px 18px;font-size:.98rem;display:flex}.side button span{text-align:center;width:24px}.side button:hover{background:#ffffff0d}.side button.on{color:#fff;border-left-color:var(--jaune);background:#ab47bc38;font-weight:700}.side .logout{color:#ff8a95;border-top:1px solid #ffffff14;margin-top:auto}@media (width>=900px){.side{transform:none}.side-overlay{display:none}.top,main,.cartbar,.offline{margin-left:250px}.cartbar{margin-left:0;bottom:0;left:250px}.top .iconbtn:first-child{visibility:hidden}nav.bottom{display:none}main{padding-bottom:40px}}.chart{width:100%;height:auto;margin-top:6px;display:block}.chart .grid{stroke:var(--ligne);stroke-width:1px}.chart .axis{fill:var(--gris);font-size:11px}.chart .bar{fill:#ab47bc}.chart .bar:hover{fill:var(--violet)}.chart .lineM{fill:none;stroke:#f5b700;stroke-width:2.5px}.chart .dotM{fill:#f5b700}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.chart-head h2{margin:0}.legend{color:var(--gris);align-items:center;gap:6px;font-size:.8rem;display:flex}.lg-bar{background:#ab47bc;border-radius:3px;width:12px;height:12px;display:inline-block}.lg-line{background:#f5b700;width:16px;height:3px;margin-left:10px;display:inline-block}.grid2{gap:12px;display:grid}@media (width>=900px){.grid2{grid-template-columns:1fr 1fr}}.hbars{flex-direction:column;gap:12px;display:flex}.hb-top{justify-content:space-between;gap:10px;font-size:.9rem;display:flex}.hb-track{background:var(--violet-pale);border-radius:6px;height:10px;margin-top:4px;overflow:hidden}.hb-fill{background:linear-gradient(90deg,#ab47bc,#7b1fa2);border-radius:6px;height:100%}.hb small{color:var(--gris);font-size:.78rem}html{-webkit-text-size-adjust:100%}body{overscroll-behavior-y:contain}button,.chip,.prow,.li.click,.tile2{touch-action:manipulation;-webkit-user-select:none;user-select:none}button:active{transform:scale(.97)}.prow{cursor:pointer;transition:background .12s}.prow:active{background:var(--violet-pale)}.prow.off{opacity:.55;cursor:default}.plus{font-size:1.15rem;font-weight:800}.chart .axis{font-size:11px}@media (width<=600px){main{padding:12px 12px calc(84px + env(safe-area-inset-bottom))}.card{border-radius:14px;padding:12px}.kpi b{font-size:1.05rem}.kpi.main b{font-size:1.5rem}.total-bar b{font-size:1.15rem}.form>.actions{bottom:calc(66px + env(safe-area-inset-bottom));z-index:5;background:#fff;padding-top:8px;position:sticky;box-shadow:0 -8px 12px -8px #241b2f26}.form>.btn.primary.big{bottom:calc(70px + env(safe-area-inset-bottom));z-index:5;position:sticky;box-shadow:0 6px 18px #7b1fa259}.useractions{flex-flow:wrap;justify-content:flex-end;gap:4px 12px;max-width:55%}.li{gap:8px}.chips{gap:6px}.chip{padding:8px 12px}.modal{align-items:end;padding:0}.modal .card{width:100%;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.cartbar{padding-bottom:10px}}nav.bottom{padding-bottom:env(safe-area-inset-bottom)}nav.bottom button{min-height:58px}main .head{flex-wrap:wrap;gap:8px}.banner{border:1px solid var(--ligne);background:linear-gradient(120deg,#f1e4fa,#fbf6ff 60%,#f6eefc);border-radius:18px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;padding:16px 18px;display:flex}.banner-ico{background:linear-gradient(150deg,#ab47bc,#7b1fa2);border-radius:14px;flex:none;place-items:center;width:52px;height:52px;font-size:1.6rem;display:grid;box-shadow:0 6px 14px #7b1fa24d}.banner b{color:#2a1238;font-size:1.45rem;display:block}.banner small{color:var(--gris)}.banner-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.kpi5{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.kpi{position:relative}.kpi .k-ico{border-radius:10px;place-items:center;width:34px;height:34px;font-size:.95rem;font-weight:800;display:grid;position:absolute;top:12px;right:12px}.kpi.click{cursor:pointer}.k-violet{background:linear-gradient(140deg,#f6eefc,#fff)}.k-violet .k-ico{color:var(--violet);background:#ebdcf7}.k-green{background:linear-gradient(140deg,#e9f8ef,#fff)}.k-green .k-ico{color:var(--vert);background:#cfefdc}.k-orange{background:linear-gradient(140deg,#fff6e0,#fff)}.k-orange .k-ico{color:var(--orange);background:#fce7b5}.k-red{background:linear-gradient(140deg,#fdecee,#fff)}.k-red .k-ico{color:var(--rouge);background:#f8d2d7}.k-blue{background:linear-gradient(140deg,#eaf2fd,#fff)}.k-blue .k-ico{color:#1f5fb4;background:#d4e4fa;font-size:.75rem}.filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.filters label{flex:160px}.filters .f-grow{flex:3 260px}.tcard{padding:0;overflow:hidden}.t-title{border-bottom:1px solid var(--ligne);justify-content:space-between;align-items:center;padding:14px 16px;font-weight:700;display:flex}.t-title small{color:var(--gris);font-weight:400}.pad{padding:14px 16px}.dtable{border-collapse:collapse;width:100%;font-size:.92rem}.dtable th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:#5b4a6b;white-space:nowrap;background:#f4ecfb;padding:10px 12px;font-size:.72rem}.dtable td{border-bottom:1px solid var(--ligne);vertical-align:middle;padding:10px 12px}.dtable tr.click{cursor:pointer}.dtable tbody tr:hover{background:#fbf7fe}.dtable td small{color:var(--gris);margin-top:2px;font-size:.76rem;display:block}.dtable .num{text-align:right;white-space:nowrap}.dtable .strong{font-weight:700}.t-prod{align-items:center;gap:10px;min-width:220px;display:flex}.t-prod img,.t-prod .ph{object-fit:cover;background:var(--violet-pale);border-radius:10px;flex:none;width:46px;height:46px}.t-prod .ph{color:var(--violet);place-items:center;font-weight:800;display:grid}.t-prod b{font-size:.92rem;line-height:1.25;display:block}.t-act{text-align:right;white-space:nowrap}.btn.sm{border-radius:10px;min-height:34px;padding:6px 12px;font-size:.85rem}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.b-green{color:#17744a;background:#ddf4e7}.b-orange{color:#8a5300;background:#fff0cc}.b-red{color:#a61f2e;background:#fbdde1}.b-grey{color:#6e6478;background:#ece8f0}@media (width<=760px){.banner{padding:12px}.banner b{font-size:1.2rem}.banner-ico{width:44px;height:44px;font-size:1.3rem}.banner-actions{width:100%;margin-left:0}.banner-actions .btn{flex:1}.kpi5{grid-template-columns:1fr 1fr}.kpi5 .kpi.k-blue{grid-column:1/-1}.filters label{flex:45%}.filters .f-grow{flex:100%}.dtable thead{display:none}.dtable,.dtable tbody,.dtable tr,.dtable td{width:100%;display:block}.dtable tr{border-bottom:1px solid var(--ligne);grid-template-columns:1fr 1fr;gap:2px 12px;padding:12px 14px;display:grid}.dtable td{border:0;padding:3px 0;text-align:left!important}.dtable td[data-l]:before{content:attr(data-l);text-transform:uppercase;letter-spacing:.3px;color:var(--gris);font-size:.68rem;display:block}.dtable .t-prod{grid-column:1/-1;min-width:0;padding-bottom:6px}.dtable .t-act{grid-column:1/-1;text-align:right!important}.dtable .t-act .btn{width:100%}.dtable td.t-prod{display:flex}}@media (width>=1100px){main{max-width:1280px}}.chart .lineCR{fill:none;stroke:#7b1fa2;stroke-width:2.5px}.chart .lineV{fill:none;stroke:#f5b700;stroke-width:2.5px;stroke-dasharray:6 4}.chart .areaCR{fill:#ab47bc1f}.chart .dotCR{fill:#7b1fa2}.lg-line.cr{background:#7b1fa2;margin-left:0}.lg-line.v{background:#f5b700}
