/* ===== Caisse Aura : élégante, prune et rose poudré, responsive ===== */
[hidden]{display:none!important}
body.pos{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(60% 50% at 100% 0,#eeebe3 0,#0000 60%),#F6F4F1}
.pos .ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pos button{font-family:inherit}

/* --- en-tête --- */
.ptop{flex:none;display:flex;align-items:center;gap:14px;padding:10px clamp(12px,2vw,24px);color:#fff;background:linear-gradient(100deg,#202B27,#3B4A45 55%,#465b54);box-shadow:0 8px 30px #3b4a4533;position:relative;z-index:20}
.plogo{display:flex;align-items:center;gap:10px;font:600 1.65rem 'Cormorant Garamond',Georgia,serif;white-space:nowrap}
.plogo b{color:#D9C9A8;font-weight:700}
.plogo em{font:600 .68rem Outfit,sans-serif;letter-spacing:.16em;text-transform:uppercase;background:#ffffff1f;border-radius:99px;padding:4px 11px;font-style:normal}
.psearch{position:relative;flex:1;max-width:620px;margin:0 auto}
.psearch .ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);opacity:.75;pointer-events:none}
.psearch input{width:100%;border:1px solid #ffffff2a;border-radius:99px;padding:12px 48px 12px 46px;background:#ffffff17;color:#fff;font:inherit;font-size:.96rem;transition:background .2s,box-shadow .2s}
.psearch input::placeholder{color:#dae2df;opacity:.85}
.psearch input:focus{outline:0;background:#fff;color:var(--ink);box-shadow:0 0 0 4px #d9c9a866}
.psearch input:focus::placeholder{color:#929a98}
.psearch kbd{position:absolute;right:14px;top:50%;transform:translateY(-50%);font:600 .75rem Outfit;border:1px solid #ffffff44;border-radius:7px;padding:1px 8px;opacity:.7}
.psearch input:focus~kbd{display:none}
.pday{display:grid;line-height:1.15;text-align:right;padding:6px 14px;border-radius:16px;background:#ffffff14;white-space:nowrap}
.pday small{font-size:.7rem;opacity:.75;text-transform:uppercase;letter-spacing:.08em}.pday strong{font:700 1.2rem 'Cormorant Garamond',serif;color:#ece4d3}
.pday:hover{background:#ffffff26}
.pico{width:44px;height:44px;border-radius:50%;border:1px solid #ffffff2a;background:#ffffff14;color:#fff;display:grid;place-items:center;cursor:pointer;padding:0}.pico:hover{background:#ffffff2e}
.pmenu{position:relative}.pmenu summary{list-style:none;cursor:pointer;width:44px;height:44px;font-size:1.1rem}.pmenu summary::-webkit-details-marker{display:none}
.pmenu>div{position:absolute;right:0;top:54px;z-index:50;min-width:240px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:10px;box-shadow:0 24px 60px #3b4a4544}
.pmenu p{margin:0;padding:8px 12px 10px;border-bottom:1px solid var(--line);display:grid}.pmenu p small{color:var(--mute);text-transform:capitalize}
.pmenu a{display:block;padding:10px 12px;border-radius:12px;font-weight:500}.pmenu a:hover{background:var(--bg)}

/* --- grille : colonne 1 (modes) · colonne 2 (catalogue) · colonne 3 (ticket) --- */
.pgrid{flex:1;min-height:0;display:grid;grid-template-columns:104px minmax(0,1fr) clamp(360px,30vw,460px);grid-template-areas:"modes cat tkt"}
.modes{grid-area:modes;display:flex;flex-direction:column;gap:10px;padding:18px 12px;border-right:1px solid #e8e5df;background:#ffffff80;backdrop-filter:blur(6px)}
.modes button{position:relative;display:grid;justify-items:center;gap:6px;padding:14px 4px;white-space:nowrap;border:0;border-radius:20px;background:transparent;color:#75807a;font-weight:600;font-size:.74rem;cursor:pointer;transition:background .2s,color .2s,transform .15s}
.modes button .ic{width:28px;height:28px}
.modes button:hover{background:#fff;color:var(--green)}
.modes button.on{background:linear-gradient(160deg,#3B4A45,#577169);color:#fff;box-shadow:0 12px 24px #3b4a4540}
.modes i{position:absolute;top:6px;right:12px;min-width:20px;height:20px;border-radius:99px;background:#D9C9A8;color:#3B4A45;font:800 .72rem/20px Outfit;font-style:normal;padding:0 5px}
.cat{grid-area:cat;min-height:0;overflow:auto;padding:0 clamp(14px,2vw,28px) 40px;scroll-behavior:smooth}
.cbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 0 14px;background:linear-gradient(#F6F4F1 78%,#F6F4F100)}
.chips2{display:flex;gap:8px;flex-wrap:wrap}
.chips2 button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:99px;padding:9px 16px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .15s}
.chips2 button b{opacity:.55;margin-left:4px}.chips2 button:hover{border-color:#c1bbae}
.chips2 button.on{background:var(--green);color:#fff;border-color:var(--green)}
.chips2 .note{color:var(--mute);font-size:.92rem;padding:8px 4px}
.cgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}  /* 6 produits par ligne : plus lisible */
.cgrid.rl{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.cgrid .vide{grid-column:1/-1}

.pc{position:relative;display:grid;gap:3px;align-content:start;text-align:left;padding:10px;border:1px solid var(--line);border-radius:16px;min-width:0;background:#fff;color:var(--ink);cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.pc:hover{transform:translateY(-2px);box-shadow:0 10px 22px #3b4a451f;border-color:#d2cdc3}
.pc:active{transform:scale(.98)}
.pc.sel{border-color:var(--viol);box-shadow:0 0 0 3px #5771692a}
.pc:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.mono{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font:600 1.15rem 'Cormorant Garamond',serif;background:linear-gradient(135deg,var(--g1,#577169),var(--g2,#b1a07f));box-shadow:0 5px 12px #3b4a452e;margin-bottom:2px}
.mono .ic{width:18px;height:18px;stroke-width:1.5}
.pc strong{font-weight:600;font-size:.88rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em;overflow-wrap:anywhere}
.pc .ref{color:var(--mute);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc .pf{display:grid;justify-items:start;gap:3px;margin-top:2px}
.pc .pf b{font:700 1.02rem 'Cormorant Garamond',serif;color:var(--green);white-space:nowrap}
.stk{font-style:normal;font-size:.6rem;font-weight:700;padding:2px 7px;border-radius:99px;white-space:nowrap}
.stk.good{background:#dff3e8;color:#2b7a55}.stk.low{background:#ffefd2;color:#966a12}.stk.out{background:#f5f0e6;color:#b3261e}
.inc{position:absolute;top:6px;right:6px;min-width:20px;height:20px;border-radius:99px;background:var(--green);color:#ece4d3;font:800 .7rem/20px Outfit;text-align:center;padding:0 5px;font-style:normal;box-shadow:0 6px 14px #3b4a4550}

.rc{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:24px;background:#fff;color:var(--ink);cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.rc.off{opacity:.55}.rc:hover{transform:translateY(-2px);box-shadow:0 14px 30px #3b4a451c}.rc.sel{border-color:var(--viol);box-shadow:0 0 0 3px #5771692a}
.rt{display:grid;justify-items:center;min-width:64px;padding:8px 10px;border-radius:16px;background:var(--bg);line-height:1.1}
.rt b{font:700 1.5rem 'Cormorant Garamond',serif;color:var(--green)}.rt small{color:var(--mute);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.rm{display:grid;gap:3px;min-width:0;justify-items:start}.rm strong{font-weight:600}.rm small{color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.re{display:grid;gap:3px;justify-items:end;text-align:right}.re b{font:700 1.2rem 'Cormorant Garamond',serif;color:var(--green)}
.re i{font-style:normal;font-size:.76rem;font-weight:700;padding:3px 10px;border-radius:99px}.re i.due{background:#fde4ea;color:#a8324f}.re i.paid{background:#dff3e8;color:#2b7a55}

/* --- colonne 3 : le ticket --- */
.tkt{--ln:42px;grid-area:tkt;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:#fff;border-left:1px solid #e8e5df;box-shadow:-18px 0 50px #3b4a4512;position:relative;z-index:6;margin:0}
.tk-head{flex:none;display:flex;align-items:center;gap:10px;padding:12px 18px 8px;position:sticky;top:0;z-index:3;background:#fff}
.tk-head>div{flex:1;min-width:0}.tk-head small{display:block;color:var(--viol);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.tk-head h2{margin:0;font:600 1.5rem/1.1 'Cormorant Garamond',serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-head .rb{flex:none;display:grid;place-items:center}.tk-head .rb.mob{display:none}
.tk-body{flex:1 0 auto;padding:0 18px 8px}
#tkLines{min-height:calc(10*var(--ln))}
.cl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
.cl label{display:grid;gap:4px;font-size:.78rem;font-weight:600;color:var(--mute)}.cl small{font-weight:400}
.cl input{padding:8px 10px}.cl input,.prow select,.prow input,.recu input{border:1px solid var(--line);border-radius:14px;padding:11px 12px;font:inherit;font-size:.95rem;background:#fff;color:var(--ink);min-width:0;width:100%}
.cl input:focus,.prow select:focus,.prow input:focus,.recu input:focus{outline:0;border-color:var(--viol);box-shadow:0 0 0 3px #57716922}
.rinfo{background:linear-gradient(135deg,#f9f8f5,#f3f1ec);border:1px solid #eae7df;border-radius:16px;padding:9px 12px;margin-bottom:6px}
.rh{display:flex;align-items:center;gap:12px}.rh>div{flex:1;min-width:0}.rh strong{display:block}.rh small{color:var(--mute)}
.rinfo dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:6px 0 0;font-size:.82rem}.rinfo dt{color:var(--mute)}.rinfo dd{margin:0;font-weight:500}
.rn{margin:10px 0 0;font-size:.86rem;color:var(--mute);border-top:1px dashed #dfdbd2;padding-top:8px}
.tl{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;min-height:var(--ln);padding:3px 0;border-bottom:1px dashed #e6e3dc}
.tl .nm{font-weight:600;min-width:0;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl .nm small{display:inline;margin-left:6px;font-weight:400;color:var(--mute);font-size:.72rem}
.tl .lt,.tl>b{font-weight:700;white-space:nowrap}
.tl.lock{grid-template-columns:minmax(0,1fr) auto;opacity:.78}.tl.lock::before{content:none}
.qty{display:inline-flex;align-items:center;background:var(--bg);border-radius:99px;padding:3px}
.tl button{min-height:0}.qty button{width:26px;height:26px;border-radius:50%;border:0;background:#fff;color:var(--green);font-size:1.15rem;line-height:1;cursor:pointer;box-shadow:0 2px 6px #3b4a451f;padding:0}
.qty b{min-width:24px;text-align:center;font-size:.9rem}
.tl .x{width:28px;height:28px;border:0;background:transparent;color:#a5aeab;border-radius:50%;cursor:pointer;display:grid;place-items:center;padding:0}.tl .x:hover{background:#fde4ea;color:#a8324f}
.tl .x .ic{width:18px;height:18px}
.tk-empty{display:grid;justify-items:center;align-content:center;min-height:calc(10*var(--ln));text-align:center;gap:6px;color:var(--mute);padding:10px}
.tk-empty .ic{width:46px;height:46px;stroke-width:1.2;color:#c7c2b8}.tk-empty p{margin:0}
.tk-foot{flex:none;position:sticky;bottom:0;z-index:3;padding:10px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ece9e4;background:linear-gradient(#fff,#faf9f7);display:grid;gap:8px;box-shadow:0 -10px 24px #3b4a4512}
.tr{display:flex;justify-content:space-between;color:var(--mute);font-size:.88rem}.tr b{color:var(--ink)}
.tt{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid #ece9e4;padding-top:6px}
.tt span{font-weight:600}.tt strong{font:700 1.8rem/1 'Cormorant Garamond',serif;color:var(--green);letter-spacing:-.01em}
.tt.due strong{color:#92805b}
#tkTot{display:grid;gap:3px}
#tkPay{display:grid;gap:8px}#tkPay h4{margin:0;font:600 .72rem Outfit;letter-spacing:.14em;text-transform:uppercase;color:var(--viol)}
.prow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center}.prow:only-of-type{grid-template-columns:1fr 1fr}
.rb.sm{width:36px;height:36px;display:grid;place-items:center;padding:0;min-height:0}.rb.sm .ic{width:16px;height:16px}
.link{justify-self:start;border:0;background:none;color:var(--viol);font-weight:600;font-size:.88rem;cursor:pointer;padding:2px 0;min-height:0}.link:hover{text-decoration:underline}
.recu input{padding:7px 10px}.prow select,.prow input{padding:8px 10px}.recu{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;align-items:center;font-size:.86rem;font-weight:600;color:var(--mute)}.recu em{grid-column:1/-1;font-style:normal;font-weight:700;color:#2b7a55}.recu em.bad{color:#b3261e}
.chk{display:flex;gap:9px;align-items:center;font-size:.9rem;font-weight:500;cursor:pointer}.chk input{width:20px;height:20px;accent-color:var(--viol)}
.miss{margin:0;font-size:.84rem;color:var(--mute);min-height:0}.miss:empty{display:none}.miss.bad{color:#b3261e;font-weight:600}
.go{width:100%;border:0;border-radius:18px;padding:13px;font:700 1.08rem Outfit,sans-serif;color:#fff;cursor:pointer;background:linear-gradient(120deg,#B1A07F,#577169 55%,#3B4A45);box-shadow:0 14px 30px #3b4a4550;transition:transform .15s,filter .2s,opacity .2s;min-height:48px}
.go:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px)}.go:active:not(:disabled){transform:scale(.99)}
.go:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}
.go.done{background:linear-gradient(120deg,#4fae85,#2b7a55);opacity:.9}
.tk-head>.tk-alt{flex:none}.tk-alt{display:flex;gap:6px;align-items:center}.tk-alt:empty{display:none}.btn.ghost{background:transparent;color:var(--green);border:1px solid var(--line);box-shadow:none}

/* --- format d'impression, historique RDV, création de RDV --- */
.fmtsel{display:inline-flex}.fmt{border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--ink);font:600 .85rem Outfit,sans-serif;padding:8px 12px;cursor:pointer;min-height:0}
.tk-alt .fmt{padding:6px 8px;font-size:.76rem;max-width:122px}.tk-head .rb:disabled{opacity:.4;cursor:not-allowed}
.dact .fmtsel{justify-content:center}.dlg .dh .fmtsel{margin-left:auto;margin-right:10px}
.hf{display:inline-flex;gap:8px;flex-wrap:wrap}.hf input,.hf select{border:1px solid var(--line);border-radius:99px;padding:8px 14px;font:inherit;font-size:.88rem;background:#fff;color:var(--ink);min-height:0;width:auto}
.nf{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 12px;margin-top:14px}
.nf label{display:grid;gap:4px;font-size:.78rem;font-weight:600;color:var(--mute)}
.nf input,.nf select{border:1px solid var(--line);border-radius:14px;padding:10px 12px;font:inherit;font-size:.95rem;background:#fff;color:var(--ink);min-width:0;width:100%}
.nf input:focus,.nf select:focus{outline:0;border-color:var(--viol);box-shadow:0 0 0 3px #57716922}
.nh{margin:18px 0 8px;font:600 .72rem Outfit;letter-spacing:.14em;text-transform:uppercase;color:var(--viol)}
.nsv{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.nchip{position:relative;cursor:pointer}.nchip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.nchip span{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;font-weight:600;font-size:.88rem;height:100%}
.nchip small{color:var(--mute);font-weight:400;font-size:.76rem}
.nchip input:checked+span{border-color:var(--viol);background:#f3f1ec;box-shadow:0 0 0 3px #57716922}
.nchip input:focus-visible+span{outline:2px solid var(--viol)}
.nfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}.nfoot span{font-weight:600}.nfoot strong{font:700 1.7rem 'Cormorant Garamond',serif;color:var(--green);margin-left:6px}
.nfoot .btn:disabled{opacity:.45;cursor:not-allowed}
#dNew{max-height:92dvh;overflow:auto}

/* écrans peu hauts (portables) : on garde 8 sélections visibles en resserrant le reste */
@media(min-width:821px) and (max-height:860px){
  .tkt{--ln:38px}
  .cl{gap:6px;margin-bottom:4px}.cl label{font-size:0;gap:0}.cl input{font-size:.88rem;padding:7px 10px}
  #tkPay h4,#tkTot .sub{display:none}
  .tk-head{padding:8px 18px 6px}.tk-head h2{font-size:1.3rem}
  .tt strong{font-size:1.5rem}.go{min-height:42px;padding:10px}.tk-foot{padding-top:8px;gap:6px}
  .rinfo dl{display:none}
}

/* --- messages et fenêtres --- */
.toast{position:fixed;left:calc(50% - 190px);bottom:28px;transform:translate(-50%,14px);z-index:90;opacity:0;pointer-events:none;background:var(--green);color:#fff;padding:12px 20px;border-radius:99px;font-weight:600;font-size:.92rem;box-shadow:0 14px 34px #3b4a4555;transition:opacity .25s,transform .25s;max-width:92vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}.toast.bad{background:#a8324f}.toast.good{background:#2b7a55}
.dlg{border:0;border-radius:30px;padding:30px 28px;width:min(92vw,440px);text-align:center;box-shadow:0 40px 90px #202b2766;color:var(--ink)}
.dlg.wide{width:min(94vw,720px);text-align:left;max-height:86dvh}
.dlg::backdrop{background:#202b27a8;backdrop-filter:blur(5px)}
.dlg h3{margin:12px 0 2px;font:600 1.9rem 'Cormorant Garamond',serif}.dlg .big{font:700 2.8rem/1.1 'Cormorant Garamond',serif;color:var(--green);margin:8px 0 14px}
.dlg .dh{display:flex;justify-content:space-between;align-items:center}.dlg .dh h3{margin:0}.dlg .rb{display:grid;place-items:center}
.okmark{width:70px;height:70px;margin:0 auto;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#4fae85,#2b7a55);box-shadow:0 14px 30px #2b7a5555;animation:pop .45s cubic-bezier(.2,1.4,.4,1)}
.okmark .ic{width:34px;height:34px;stroke-width:2.4}
@keyframes pop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
.dact{display:grid;gap:10px;margin-top:6px}.dact .btn{display:inline-flex;gap:8px;justify-content:center;align-items:center;padding:15px 24px}
.dlg .lines{margin-top:14px;max-height:62dvh;overflow:auto}.dlg .ln .rb{display:grid;place-items:center}
#pfr{position:fixed;width:1px;height:1px;border:0;opacity:0;pointer-events:none;right:0;bottom:0}
.tbar{display:none}

/* --- tablette --- */
@media(max-width:1180px){
  .cgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pgrid{grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"modes tkt" "cat tkt"}
  .modes{flex-direction:row;padding:12px clamp(14px,2vw,28px) 0;border:0;background:transparent;backdrop-filter:none}
  .modes button{grid-auto-flow:column;gap:8px;padding:10px 18px;border-radius:99px;font-size:.92rem;background:#fff;border:1px solid var(--line)}
  .modes button .ic{width:20px;height:20px}.modes i{position:static;margin-left:2px;line-height:20px}
  .pday small{display:none}
}
/* --- téléphone : le ticket devient un tiroir --- */
@media(max-width:820px){
  body.pos{height:auto;min-height:100dvh;overflow:auto;display:block}
  .ptop{position:relative;flex-wrap:wrap;gap:10px;padding:10px 12px 12px}
  .plogo{margin-right:auto}.psearch{order:9;flex:1 1 100%;max-width:none;margin:0}
  .plogo span{display:none}.plogo em{display:none}.plogo img{width:34px;height:34px}
  .psearch kbd,.pday small{display:none}.pday{padding:5px 10px}.pday strong{font-size:1.05rem}
  .pico{width:40px;height:40px}.pmenu summary{width:40px;height:40px}
  .pgrid{display:block}
  .modes{position:sticky;top:0;z-index:15;padding:10px 12px;background:#f6f4f1ee;backdrop-filter:blur(8px);overflow-x:auto;gap:8px}
  .modes button{flex:1;justify-content:center;padding:10px 12px}
  .cat{overflow:visible;padding:0 12px 130px}.cbar{position:static;padding:6px 0 12px;background:none}
  .cgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cgrid.rl{grid-template-columns:1fr}
  .pc{padding:9px}
  .rc{grid-template-columns:auto 1fr;}.rc .re{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;text-align:left}
  .tkt{position:fixed;inset:auto 0 0 0;max-height:94dvh;height:94dvh;border-radius:30px 30px 0 0;transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);z-index:80;box-shadow:0 -24px 60px #202b2766}
  .tkt.open{transform:none}
  .tk-head .rb.mob{display:grid}
  body.lock{overflow:hidden}body.lock::after{content:"";position:fixed;inset:0;background:#202b2777;z-index:70}
  .tbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:12px;border:0;border-radius:22px;padding:12px 16px;background:linear-gradient(120deg,#3B4A45,#577169);color:#fff;font:600 1rem Outfit,sans-serif;box-shadow:0 18px 40px #3b4a4566;cursor:pointer;text-align:left}
  .tbar .n{min-width:30px;height:30px;border-radius:99px;background:#D9C9A8;color:#3B4A45;display:grid;place-items:center;font-weight:800;font-size:.9rem}
  .tbar span:nth-child(2){flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbar strong{font:700 1.3rem 'Cormorant Garamond',serif;color:#ece4d3}
  .tbar:not(.has){opacity:.92}
  #pwa-btn{bottom:84px}
  .toast{left:50%;bottom:calc(88px + env(safe-area-inset-bottom))}
}
@media(max-width:430px){.modes button .ic{display:none}.modes button{padding:11px 8px;font-size:.88rem;gap:4px}.modes{gap:6px}}
body.lock .toast{display:none}
@media(max-width:380px){.cgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.cgrid.rl{grid-template-columns:1fr}.cl{grid-template-columns:1fr}}
@media print{body.pos>*:not(.never){display:none!important}}
@media(prefers-reduced-motion:reduce){.tkt,.pc,.rc,.okmark{transition:none!important;animation:none!important}}

/* --- page de connexion --- */
body.login{display:grid;place-items:center;min-height:100dvh;height:auto;overflow:auto;padding:24px;background:radial-gradient(60% 70% at 85% 5%,#657f77 0,#0000 62%),radial-gradient(50% 60% at 0 100%,#b1a07faa 0,#0000 62%),#202B27}
.lcard{width:min(100%,400px);background:#fff;border-radius:32px;padding:34px 30px;text-align:center;box-shadow:0 40px 90px #0006;display:grid;gap:10px;justify-items:center;padding-inline:clamp(20px,6vw,34px)}
.lcard h1{margin:6px 0 0;font:600 2.4rem 'Cormorant Garamond',serif;color:var(--ink)}.lcard h1 b{color:var(--green)}
.lcard p{margin:0}.lcard .sm{font-size:.82rem}.lcard .form{width:100%;margin-top:8px}.lcard .err{width:100%;text-align:left}
.lcard .form input{padding:14px 16px;border-radius:16px}.lcard .go{margin-top:2px}

/* ===== v13 : 10 lignes visibles, compteur de sélection, synchronisation, impression automatique ===== */
.tkt{--ln:40px}
#tkLines{height:calc(10*var(--ln));overflow-y:auto;overscroll-behavior:contain}   /* 10 lignes affichées, défilement au-delà */
.tk-empty{min-height:calc(10*var(--ln))}
@media(min-width:821px) and (max-height:860px){.tkt{--ln:34px}.tl{padding:2px 0}}
@media(min-width:821px) and (max-height:740px){.tkt{--ln:30px}.qty button{width:22px;height:22px;font-size:1rem}.tl .x{width:24px;height:24px}.tk-foot{gap:4px}}
@media(max-width:820px){.tkt{--ln:38px}}

/* compteur d'articles sélectionnés, en haut du ticket (écran seulement, jamais imprimé) */
.tkn{flex:none;display:inline-flex;align-items:center;gap:7px;padding:4px 12px 4px 5px;border-radius:99px;background:#f2f0eb;color:#75807a;font:600 .76rem Outfit,sans-serif;white-space:nowrap;transition:background .2s,color .2s}
.tkn b{min-width:28px;height:28px;border-radius:99px;display:grid;place-items:center;padding:0 7px;background:#e2dfd8;color:#75807a;font:800 .95rem Outfit,sans-serif}
.tkn em{font-style:normal}
.tkn.on{background:linear-gradient(120deg,#3B4A45,#577169);color:#fff}.tkn.on b{background:#D9C9A8;color:#3B4A45}

/* voyant de synchronisation et impression automatique (en-tête) */
.sdot{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:99px;background:#ffffff14;font:600 .74rem Outfit,sans-serif;white-space:nowrap}
.sdot .ic{width:16px;height:16px}.sdot em{font-style:normal}
.sdot.ok .ic{color:#8fe0b4}.sdot.off{background:#a8324f66}.sdot.off .ic{color:#e8decb}
.nbadge{position:absolute;right:-3px;top:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:#e02f44;color:#fff;font:700 .72rem/19px Outfit,system-ui,sans-serif;text-align:center;border:2px solid #3B4A45;box-sizing:content-box;box-shadow:0 0 0 0 #e02f4488}.nbadge:not([hidden]){animation:nbp 1.6s infinite}@keyframes nbp{70%{box-shadow:0 0 0 8px #e02f4400}}.pico{position:relative}.pico .adot{position:absolute;right:5px;top:5px;width:10px;height:10px;border-radius:50%;background:#58d79b;border:2px solid #3B4A45}
.pico.off{opacity:.62}.pico.off .adot{background:#bec6c4}
.autoinfo{display:flex;gap:6px;align-items:center;justify-content:center;margin:0 0 10px}.autoinfo .ic{width:18px;height:18px}
@media(max-width:1180px){.sdot em{display:none}.sdot{padding:8px}}

/* ---------- v14 : catégories de prestations (en-têtes numérotés) ---------- */
.catbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;padding:16px 0 4px}
.catbar[hidden]{display:none}
.cth{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);font:600 .95rem Outfit,sans-serif;cursor:pointer;transition:all .15s}
.cth b{min-width:26px;height:26px;border-radius:99px;background:#f0eee9;color:var(--viol);font:800 .78rem/26px Outfit;text-align:center}
.cth:hover{border-color:#c1bbae;transform:translateY(-1px)}
.cth.on{background:linear-gradient(160deg,#3B4A45,#577169);color:#fff;border-color:transparent;box-shadow:0 10px 22px #3b4a4540}
.cth.on b{background:#ffffff2e;color:#fff}
/* rendez-vous : liste déroulante des prestations */
.nsel{margin-bottom:10px}.nsel select{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px;font:inherit;background:#fff;color:var(--ink)}
.nsv{display:flex;flex-wrap:wrap;gap:8px}.nsv .muted{margin:2px 0}
.nchosen{display:inline-flex;align-items:center;gap:8px;padding:8px 8px 8px 14px;border:1px solid var(--viol);border-radius:99px;background:#f3f1ec;font-weight:600;font-size:.88rem}
.nchosen small{display:block;color:var(--mute);font-weight:400;font-size:.74rem}
.nchosen button{display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:#fff;color:var(--viol);cursor:pointer;padding:0}
.nchosen button .ic{width:14px;height:14px}
/* choix de l'imprimante */
.pprn{border:1px solid #ffffff2a;border-radius:99px;background:#ffffff17;color:#fff;font:600 .78rem Outfit,sans-serif;padding:8px 10px;max-width:190px}
.pprn option{color:#1F2A26}
@media(max-width:820px){.catbar{grid-template-columns:1fr 1fr}.pprn{display:none}}

.annibar{margin:10px clamp(14px,2vw,28px) 0;padding:11px 16px;border-radius:16px;background:linear-gradient(90deg,#f7f4ed,#ecf2f0);border:1px solid #e3dccf;color:#3B4A45;font-size:.92rem}
.cl label:nth-child(3){grid-column:1/-1}

/* ---------- v14.1 ---------- */
.hs{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 0}
.hsv{display:flex!important;flex-wrap:nowrap!important;gap:8px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1 1 0}.hsv::-webkit-scrollbar{display:none}
.hsv>*{flex:none}
.hsb{display:none;flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--viol);font:700 1.3rem/1 Outfit,sans-serif;cursor:pointer;padding:0;box-shadow:0 2px 8px #3b4a451a}
.hs.can .hsb{display:grid;place-items:center}.hsb:hover{background:var(--viol);color:#fff}
.hs.cats{padding:12px 0 2px}.hs.cats[hidden]{display:none}
.catbar{display:flex!important;grid-template-columns:none;padding:0}
.cth{white-space:nowrap}.cth span{white-space:nowrap}
.cgrid.sv{grid-template-columns:repeat(6,minmax(0,1fr))}
.svc{gap:2px;padding:10px 12px;align-content:start}
.svc strong.ttl{display:-webkit-box;font:600 .86rem/1.25 Outfit,sans-serif;min-height:0!important;white-space:normal;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 4px;overflow-wrap:anywhere}
.svc .px{font:700 1.08rem 'Cormorant Garamond',serif;color:var(--green);white-space:nowrap;line-height:1.1}
.svc .mn{color:var(--mute);font-size:.78rem;line-height:1.2}
.svc .sal{font:700 .6rem Outfit,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--viol);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 4px;padding:0 0 5px;border-bottom:1px solid #edeae5}
.svc .pf{gap:0}.svc .pf .ref{font-size:.6rem}
.nmt{margin:8px 0 0;font-size:.95rem}.nmt strong{color:var(--green);font:700 1.2rem 'Cormorant Garamond',serif}.nmt small{color:var(--mute)}
@media(max-width:1180px){.cgrid.sv{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){.cgrid.sv{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body.pos>*:not(#pfr){display:none!important}}

/* ---------- v15 ---------- */
.annibar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.xclose{flex:none;display:grid;place-items:center;width:30px;height:30px;min-height:0;border:0;border-radius:50%;background:#ffffffb8;color:#577169;font:400 1.35rem/1 Outfit,sans-serif;cursor:pointer;padding:0 0 2px}
.xclose:hover{background:#577169;color:#fff}

/* ---------- v16 : salons sur une ligne (sans flèches), produits par salon, client + ---------- */
.cbar .chips2{flex:1 1 0;min-width:0;flex-wrap:nowrap;gap:6px;align-items:center}
.cbar .chips2 button{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 14px}
.cbar .chips2 .note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbar .chips2 .hf{flex:none;margin-left:auto}
.fps{flex:none;margin-left:auto;border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--ink);font:600 .85rem Outfit,sans-serif;padding:8px 12px;cursor:pointer;min-height:0}
.pc .pf .sal{color:var(--viol);font:700 .58rem Outfit,sans-serif;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.svc .ref{font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl{grid-template-columns:1fr}
.cn{display:flex;gap:8px;align-items:stretch}.cn input{flex:1;min-width:0}
.cadd{flex:none;width:44px;border:0;border-radius:14px;background:linear-gradient(135deg,#577169,#B1A07F);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 6px 14px #3b4a4533}
.cadd:hover{filter:brightness(1.08)}.cadd .ic{width:20px;height:20px;stroke-width:2.2}
#dCli .nfoot .muted{font-size:.82rem;font-weight:400;max-width:60%}
@media(max-width:820px){.cbar .chips2{overflow-x:auto;scrollbar-width:none}.cbar .chips2::-webkit-scrollbar{display:none}.cbar .chips2 button{flex:none}}

/* alerte stock rouge (caisse) */
.alerte-rouge{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 16px;background:#b3261e;color:#fff;font:600 .88rem Outfit,system-ui,sans-serif}
.alerte-rouge[hidden]{display:none}
.alerte-rouge .ar-t{min-width:0}.alerte-rouge strong{margin-right:8px}
.alerte-rouge .ar-x{flex:none;border:1.5px solid #ffffffcc;background:transparent;color:#fff;border-radius:99px;padding:5px 15px;font:600 .82rem Outfit,system-ui,sans-serif;cursor:pointer}
.alerte-rouge .ar-x:hover{background:#fff;color:#b3261e}

/* ---------- v19 : cartes produits / prestations plus petites sur tablette et téléphone ----------
   Avant : 3 colonnes fixes sous 820 px (une tablette en portrait affichait 3 énormes cartes) et 2 colonnes pour les prestations.
   Maintenant : le nombre de colonnes s'adapte à la largeur de l'écran (téléphone ≈ 3, tablette portrait ≈ 6-7, tablette paysage ≈ 4-5 à côté du ticket). */
@media(max-width:1180px){
  .cgrid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
  .cgrid.sv{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .cgrid.rl{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
  .pc{padding:8px;border-radius:14px}
  .mono{width:28px;height:28px;font-size:1rem}.mono .ic{width:15px;height:15px}
  .pc strong{font-size:.8rem;min-height:2.3em}
  .pc .pf b,.svc .px{font-size:.95rem}
  .svc{padding:8px 10px}.svc strong.ttl{font-size:.8rem}
}
@media(max-width:820px){
  .cgrid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
  .cgrid.sv{grid-template-columns:repeat(auto-fill,minmax(138px,1fr))}
  .cgrid.rl{grid-template-columns:1fr}
}
@media(max-width:380px){
  .cgrid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
  .cgrid.sv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cgrid.rl{grid-template-columns:1fr}
}

/* produit dont le stock est inférieur à 10 : cadre rouge */
.pc.lowstk{box-shadow:inset 0 0 0 2px #b3261e}
.stk.out{background:#b3261e;color:#fff}
.caisse-alert{flex:none;position:relative;z-index:20}

/* Prestations : plus d'espace entre les cartes ; 3 par ligne sur mobile */
.cgrid.sv{gap:16px}
@media(max-width:1180px){.cgrid.sv{gap:14px}}
@media(max-width:820px){
  .cgrid.sv{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .svc{padding:8px 8px}.svc strong.ttl{font-size:.74rem}.svc .px{font-size:.88rem}.svc .mn{font-size:.68rem}
}
@media(max-width:380px){.cgrid.sv{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.svc{padding:7px 6px}}

/* ---- Rendez-vous en tableau + pagination (5 lignes) ---- */
.cgrid.rtab{display:block}
.rtw{overflow-x:auto;border:1px solid var(--line);border-radius:20px;background:#fff}
.rtb{width:100%;border-collapse:collapse;font-size:.92rem}
.rtb th{text-align:left;font:600 .7rem Outfit,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--viol);padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.rtb td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.rtb tbody tr:last-child td{border-bottom:0}
.rtb .num{text-align:right;white-space:nowrap}
.rtb tbody tr{cursor:pointer;transition:background .15s}.rtb tbody tr:hover,.rtb tbody tr:focus-visible{background:var(--bg);outline:0}
.rtb tbody tr.sel{background:#57716914;box-shadow:inset 3px 0 0 var(--viol)}.rtb tbody tr.off{opacity:.55}
.rtb td small{display:block;color:var(--mute);font-size:.74rem}.rtb td.rtt{min-width:84px}.rtb td.rtt b{font:700 1.3rem 'Cormorant Garamond',serif;color:var(--green);display:block;line-height:1}
.rtb td.sv{max-width:220px}.rtb td.num b{font:700 1.1rem 'Cormorant Garamond',serif;color:var(--green)}
.rtb .st{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.76rem;font-weight:600;white-space:nowrap}
/* FIX colonne Reste : .re met display:grid, ce qui sort la cellule de la ligne (badge collé en haut, trait décalé).
   Dans le tableau, la cellule redevient une vraie cellule, centrée verticalement. */
.rtb td.re{display:table-cell;vertical-align:middle;text-align:right;gap:0}
.rtb td.re i{font-style:normal;font-size:.76rem;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap}.rtb td.re i.due{background:#fde4ea;color:#a8324f}.rtb td.re i.paid{background:#dff3e8;color:#2b7a55}
.rpg{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 2px 4px;font-size:.84rem;color:var(--mute)}
.rpg[hidden]{display:none}.rpg .pn{display:flex;gap:4px;flex-wrap:wrap}
.rpg button{min-height:0;min-width:34px;height:34px;padding:0 12px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink);font:600 .84rem Outfit,sans-serif;cursor:pointer}
.rpg button.on{background:var(--viol);border-color:var(--viol);color:#fff}.rpg button:disabled{opacity:.4;cursor:default}
@media(max-width:820px){.rtb .eq{display:none}.rtb td.sv{max-width:140px}.rtb th,.rtb td{padding:10px}}
/* ---- Alerte : l'heure du rendez-vous est arrivée ---- */
#dAlert .al-p{margin:6px 0 12px;color:var(--mute)}.al-l{display:grid;gap:10px}
.al-c{border:1px solid var(--line);border-radius:18px;padding:12px 14px;background:#fff}
.al-h{display:flex;align-items:center;gap:12px}.al-h>div{flex:1;min-width:0}.al-h b{font:700 1.5rem 'Cormorant Garamond',serif;color:var(--green)}.al-h small{display:block;color:var(--mute)}
.al-h .st{padding:3px 10px;border-radius:99px;font-size:.76rem;font-weight:600}
.al-t{margin:8px 0;font-size:.88rem}.al-b{display:flex;gap:8px;flex-wrap:wrap}.al-b .bad{color:#b3261e;border-color:#e8b4ad}.al-f{margin-top:12px;text-align:right}
.chips2{flex-wrap:wrap}.chips2 button{flex:none}.hf input[type=date]{width:150px}

/* Alerte rendez-vous : simple, sans défilement, boutons larges sur téléphone */
#dAlert{overflow:visible}
#dAlert .dh h3{font-size:1.4rem}
.al-c{background:var(--w,#fff);box-shadow:0 4px 14px #3b4a4510}
.al-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.al-b .btn{width:100%;min-height:44px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center}
.al-more{margin:10px 0 0;text-align:center;color:var(--mute);font-size:.84rem;font-weight:600}
.al-f{text-align:center}.al-f .btn{width:100%;min-height:44px}
@media(max-width:520px){#dAlert{width:calc(100vw - 20px);padding:18px 14px;max-height:none}.al-h b{font-size:1.3rem}.al-b{grid-template-columns:1fr 1fr}}

/* Noms de salon en entier (Produits et Prestations) : les puces passent à la ligne au lieu d'être coupées avec « … » */
.cbar .chips2{flex-wrap:wrap!important;overflow:visible!important;row-gap:8px}
.cbar .chips2 button{flex:none!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap;max-width:100%}
.cbar .chips2 .note{white-space:normal;overflow:visible;text-overflow:clip}
.cbar .chips2 .fps{margin-left:auto}
@media(max-width:820px){.cbar .chips2{overflow-x:visible!important}.cbar .chips2 button{padding:8px 13px}}
.chips2 button:disabled{opacity:.45;cursor:default}.chips2 button.on:disabled{opacity:1}

/* Salons + filtre de stock sur UNE seule ligne : puces compactes, le menu « Stock » reste à droite sur la même ligne */
.cbar .chips2{gap:5px!important;align-items:center}
.cbar .chips2 button{padding:7px 10px!important;font-size:.8rem!important}
.cbar .chips2 button b{margin-left:3px;font-size:.72rem;padding:1px 6px}
.cbar .chips2 .fps{flex:none;margin-left:auto;padding:6px 8px;font-size:.78rem;max-width:110px}

/* UNE seule ligne : Tous 9 · salons · menu Stock (jamais de retour à la ligne) */
.cbar .chips2{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none;gap:4px!important}
.cbar .chips2::-webkit-scrollbar{display:none}
.cbar .chips2 button{flex:0 0 auto!important;padding:6px 8px!important;font-size:.76rem!important;white-space:nowrap}
.cbar .chips2 button b{margin-left:2px;padding:0 5px;font-size:.68rem}
.cbar .chips2 .fps{flex:0 0 auto;margin-left:auto;padding:5px 6px;font-size:.74rem;max-width:none}
@media(max-width:820px){.cbar .chips2{overflow-x:auto!important}}

/* ---------- v28 : cartes produits / prestations plus petites + puces et catégories plus jolies ---------- */
/* Plus d'articles visibles : le nombre de colonnes s'adapte à la largeur (les listes de rendez-vous ne changent pas) */
.cgrid:not(.rl):not(.rtab){grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}
@media(max-width:820px){.cgrid:not(.rl):not(.rtab){grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px}}
@media(max-width:430px){.cgrid:not(.rl):not(.rtab){grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}}

/* Carte compacte et plus soignée */
.pc{padding:7px 8px;gap:2px;border-radius:13px;border:1px solid #ebe8e3;background:linear-gradient(180deg,#fff,#fbfaf8);box-shadow:0 1px 2px #3b4a450f}
.pc:hover{transform:translateY(-2px);box-shadow:0 8px 18px #3b4a4522;border-color:#d1cbbe}
.pc.sel{border-color:#577169;background:linear-gradient(180deg,#f4f8f7,#ecf1f0);box-shadow:0 0 0 3px #57716926}
.pc .mono{width:26px;height:26px;font-size:.95rem;margin-bottom:1px;box-shadow:0 3px 8px #3b4a452e}
.pc strong{font-size:.76rem;line-height:1.2;min-height:2.3em}
.pc .ref{font-size:.54rem}
.pc .pf{gap:2px;margin-top:1px}
.pc .pf b{font-size:.92rem}
.pc .pf .sal{font-size:.52rem}
.stk{font-size:.54rem;padding:1px 6px}
.pc .inc{font-size:.66rem}
.svc{padding:7px 8px;gap:1px}
.svc strong.ttl{font-size:.76rem;margin:0 0 2px;min-height:0}
.svc .px{font-size:.95rem}
.svc .mn{font-size:.64rem}
.svc .sal{font-size:.52rem;margin:0 0 3px;padding:0 0 3px}
.svc .ref,.svc .pf .ref{font-size:.54rem}

/* Puces (salons, filtres, onglets rendez-vous) */
.cbar .chips2{gap:7px!important}
.cbar .chips2 button{padding:7px 14px!important;font-size:.82rem!important;font-weight:600;border:1px solid #e8e4dd!important;border-radius:99px!important;background:#fff;color:#384642;box-shadow:0 1px 3px #3b4a4512;transition:background .18s,color .18s,box-shadow .18s,transform .15s}
.cbar .chips2 button:hover{border-color:#c5bdad!important;box-shadow:0 4px 10px #3b4a451c;transform:translateY(-1px)}
.cbar .chips2 button.on{background:linear-gradient(135deg,#3B4A45,#577169);color:#fff;border-color:transparent!important;box-shadow:0 6px 14px #3b4a4540}
.cbar .chips2 button b{margin-left:5px;padding:1px 7px;border-radius:99px;background:#f0eee9;color:#577169;font-size:.7rem;font-weight:800;opacity:1}
.cbar .chips2 button.on b{background:#ffffff30;color:#fff}
.cbar .chips2 .fps{border:1px solid #e8e4dd;border-radius:99px;background:#fff;color:#384642;font-weight:600;padding:7px 12px;box-shadow:0 1px 3px #3b4a4512;cursor:pointer}

/* Catégories de prestations (Combos, Épilation, …) */
.cth{padding:9px 13px;border-radius:14px;font-size:.84rem;border:1px solid #e8e4dd;background:linear-gradient(180deg,#fff,#fbfaf8);box-shadow:0 1px 3px #3b4a4512}
.cth b{min-width:22px;height:22px;font-size:.7rem;line-height:22px}
.cth:hover{border-color:#c5bdad;box-shadow:0 6px 14px #3b4a451c}
.cth.on{background:linear-gradient(135deg,#3B4A45,#577169);border-color:transparent;box-shadow:0 8px 18px #3b4a4540}

/* ---------- v29 : moins d'espace vertical entre les barres (salons, catégories) et la grille ---------- */
.cbar{padding:10px 0 8px}
.hs.cats{padding:2px 0 8px}
.hsb{width:30px;height:30px;font-size:1.15rem}

/* v30 : corbeille grisée (annulation impossible après 5 minutes) */
.rb.off{opacity:.35;cursor:not-allowed;display:grid;place-items:center}

/* v31 : prestations plus haut (moins de vide entre les barres salons / catégories et les cartes) */
.cbar{padding:4px 0 4px}
.hs.cats{padding:0 0 4px;margin:0!important;flex-wrap:nowrap}  /* style.css (vitrine) mettait .cats{margin-bottom:34px} : c'était le gros vide */
.cat .cgrid{margin-top:0}
.cat .cgrid.sv{gap:12px}
@media(min-width:821px){.cat{padding-top:0}}

/* commandes du site public */
.wb{display:inline-block;font-style:normal;font-size:.66rem;font-weight:700;background:#c9a96a38;color:#7a5d1f;border-radius:99px;padding:1px 8px;margin-left:6px;vertical-align:middle;white-space:nowrap}
