/* ============================================================
   e-dentiste – feuille de style v2
   Header, footer et logo identiques à Flexjob (blocs marqués « identique »)
   ============================================================ */
:root{
  --sc-navy:#1c1715; --sc-navy-2:#2c221c; --sc-ink:#1f1a17;
  --sc-blue:#b45309; --sc-blue-soft:#fbeedd;
  --sc-orange:#f59e0b; --sc-orange-dark:#e08e00; --sc-orange-ink:#b26c00;
  --sc-muted:#6d635a; --sc-line:#e4d9c9; --sc-soft:#f7f2ea; --sc-sand:#f6e7cc;
  --ok:#16a34a; --ok-soft:#e7f7ec; --ko:#dc2626;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; font-family:'Plus Jakarta Sans',system-ui,sans-serif; color:var(--sc-ink); background:#fff; -webkit-font-smoothing:antialiased; line-height:1.5}
img{max-width:100%}
a{color:var(--sc-blue)}
button,input,select,textarea{font:inherit; color:inherit}
.ed-skip{position:absolute; left:-999px; top:8px; z-index:2000; background:#fff; padding:8px 14px; border-radius:8px}
.ed-skip:focus{left:8px}
.sc-wrap{max-width:1068px; margin:0 auto; padding:0 20px}
.serif{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.02em}
:focus-visible{outline:3px solid var(--sc-orange); outline-offset:2px}

/* ---------- HEADER (identique Flexjob) ---------- */
header.sc-header{position:sticky; top:0; z-index:1000; height:55px;
  background:linear-gradient(90deg,#050f20 0%,#0a2040 55%,#081a35 100%); font-family:'Plus Jakarta Sans',sans-serif}
.sc-header .sc-nav{height:100%; max-width:1068px; margin:0 auto; padding:0 20px; display:flex; align-items:center; justify-content:space-between}
.sc-logo{display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-weight:800; font-size:21px; letter-spacing:-.3px}
.sc-logo:hover{color:#fff}
.sc-logo-icon{width:24px; height:24px; border-radius:50%; border:3px solid #fff; display:inline-flex; align-items:center; justify-content:center}
.sc-logo-icon::after{content:""; width:7px; height:7px; border-radius:50%; background:#fff}
.sc-menu{display:flex; gap:22px; list-style:none; margin:0; padding:0}
.sc-menu a{color:#fff; text-decoration:none; font-size:14.5px; font-weight:500; opacity:.95}
.sc-menu a:hover,.sc-menu a[aria-current]{color:var(--sc-orange)}
.sc-right{display:flex; align-items:center; gap:16px}
.sc-login{color:#fff; text-decoration:none; font-size:14.5px; font-weight:500; display:inline-flex; align-items:center; gap:8px}
.sc-login i{font-size:13px; opacity:.85}
.sc-m-only{display:none}
.sc-login:hover{color:var(--sc-orange)}
.sc-cta{background:var(--sc-orange); color:#0b1630; font-weight:700; font-size:14.5px; padding:9px 20px; border-radius:999px; text-decoration:none; white-space:nowrap; border:0; cursor:pointer;
  transition:transform .2s, background .2s, box-shadow .2s}
.sc-cta:hover{background:var(--sc-orange-dark); color:#0b1630; transform:translateY(-2px); box-shadow:0 8px 18px rgba(245,158,11,.4)}
.sc-burger{display:none; background:none; border:0; padding:6px; cursor:pointer}
.sc-burger span{display:block; width:22px; height:2px; background:#fff; margin:5px 0; border-radius:2px}
@media (max-width:991px){
  .sc-burger{display:block}
  .sc-menu{position:absolute; top:55px; left:0; right:0; flex-direction:column; gap:0; background:#0a2040; padding:8px 20px 16px; display:none}
  .sc-menu.open{display:flex}
  .sc-menu li a{display:block; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.08)}
  /* Espace praticien visible sur mobile : bouton rond dans la barre + entrée dans le menu */
  .sc-right{gap:10px}
  .sc-login{width:36px; height:36px; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.06)}
  .sc-login i{font-size:15px; opacity:1}
  .sc-login span{display:none}
  .sc-login:hover{border-color:var(--sc-orange)}
  .sc-m-only{display:block}
  .sc-menu li a.sc-m-pro{display:flex; align-items:center; gap:10px; margin-top:12px; padding:12px 16px; border:1px solid rgba(245,158,11,.55); border-radius:12px; color:var(--sc-orange); font-weight:600}
}
@media (max-width:480px){ .sc-cta{padding:8px 14px; font-size:13px} .sc-logo{font-size:18px} .sc-right{gap:8px} .sc-login{width:34px; height:34px} }
@media (max-width:360px){ .sc-logo-t{font-size:16px} .sc-cta{padding:8px 11px} }


/* ============================================================
   e-dentiste v2 – design
   ============================================================ */
@keyframes scUp{from{opacity:0; transform:translateY(22px)} to{opacity:1; transform:none}}
@keyframes scPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)} 100%{box-shadow:0 0 0 9px rgba(34,197,94,0)}}
@keyframes feed{from{transform:translateY(0)} to{transform:translateY(-50%)}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes pop{0%{transform:scale(.4); opacity:0} 70%{transform:scale(1.08)} 100%{transform:scale(1); opacity:1}}
.rv{opacity:0; transform:translateY(26px); transition:opacity .75s var(--ease), transform .75s var(--ease)}
.rv.in{opacity:1; transform:none}
.live-dot{width:8px; height:8px; border-radius:50%; background:#22c55e; display:inline-block; animation:scPulse 1.6s infinite; flex:none}
.wrap{max-width:1068px; margin:0 auto; padding:0 20px}
.muted{color:var(--sc-muted)}
.hide{display:none !important}

/* ---------- Boutons, tags ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; font-weight:700; font-size:14.5px; padding:12px 20px; border-radius:14px; text-decoration:none; border:0; cursor:pointer;
  transition:background .2s, transform .2s, box-shadow .2s, color .2s, border-color .2s; line-height:1.2}
.btn-or{background:var(--sc-orange); color:#1c1715}
.btn-or:hover{background:var(--sc-orange-dark); transform:translateY(-2px); box-shadow:0 10px 22px rgba(245,158,11,.4); color:#1c1715}
.btn-ln{background:#fff; border:1.5px solid var(--sc-line); color:var(--sc-ink)}
.btn-ln:hover{border-color:var(--sc-ink); color:var(--sc-ink)}
.btn-dk{background:var(--sc-navy); color:#fff}
.btn-dk:hover{background:#2c221c; color:#fff; transform:translateY(-2px)}
.btn-gh{background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.16)}
.btn-gh:hover{background:rgba(255,255,255,.14); color:#fff}
.btn-block{width:100%}
.btn-lg{padding:15px 24px; font-size:15.5px; border-radius:16px}
.btn:disabled{opacity:.5; cursor:not-allowed; transform:none; box-shadow:none}
.tag{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; padding:5px 11px; border-radius:999px; background:#f5efe6; color:#4a4038; white-space:nowrap}
.tag.ur{background:#fdecec; color:#b91c1c}
.tag.ok{background:var(--ok-soft); color:#166534}
.tag.bl{background:var(--sc-blue-soft); color:#8a4b08}
.tag.or{background:#fff3da; color:var(--sc-orange-ink)}
.eyebrow{display:inline-flex; align-items:center; gap:8px; background:var(--sc-blue-soft); color:#8a4b08; font-size:11.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; padding:7px 14px; border-radius:999px}
.eyebrow.dk{background:rgba(255,255,255,.08); color:#d8cfc3}
.sec{padding:96px 0}
.sec.sand{background:#f8f6ee}
.sec.soft{background:var(--sc-soft)}
.sec-h{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:40px}
.sec-h h2{font-size:clamp(30px,4vw,48px); line-height:1.04; letter-spacing:-.04em; margin:16px 0 0; font-weight:800; max-width:640px}
.sec-h h2 .serif{color:var(--sc-blue)}
.sec-h p{margin:12px 0 0; color:var(--sc-muted); max-width:520px; font-size:16.5px}
.more{font-weight:700; color:var(--sc-ink); text-decoration:none; border-bottom:2px solid var(--sc-orange); padding-bottom:2px; white-space:nowrap}
.more i{margin-left:6px; transition:transform .2s}
.more:hover{color:var(--sc-ink)} .more:hover i{transform:translateX(4px)}

/* ---------- Avatar (photo ou initiales) ---------- */
.ava{--h:212; --s:54px; width:var(--s); height:var(--s); flex:none; border-radius:30%; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:calc(var(--s)*.33); letter-spacing:-.3px;
  color:hsl(var(--h) 70% 28%); background:linear-gradient(135deg,hsl(var(--h) 85% 92%),hsl(var(--h) 70% 82%)); position:relative}
.ava img{width:100%; height:100%; object-fit:cover; border-radius:inherit; display:block}
.ava-ok{position:absolute; right:-4px; bottom:-4px; width:calc(var(--s)*.38); height:calc(var(--s)*.38); min-width:18px; min-height:18px; border-radius:50%; background:var(--sc-blue); border:2.5px solid #fff;
  display:flex; align-items:center; justify-content:center}
.ava-ok::after{content:""; width:35%; height:18%; border:2px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-1px)}
.ava.sm{--s:44px} .ava.lg{--s:132px; border-radius:34px} .ava.xs{--s:36px}

/* ================= HERO ================= */
.hx{position:relative; overflow:hidden; color:#fff; background:radial-gradient(1200px 500px at 85% -10%,#3d2a17 0%,transparent 60%),linear-gradient(180deg,#241c17 0%,#1c1715 100%); padding:56px 0 0}
.zel{position:absolute; inset:0 0 0 auto; width:62%; pointer-events:none; color:var(--sc-orange); opacity:.09;
  -webkit-mask-image:linear-gradient(270deg,#000,rgba(0,0,0,.35) 55%,transparent); mask-image:linear-gradient(270deg,#000,rgba(0,0,0,.35) 55%,transparent)}
.hx .wrap{position:relative; z-index:1; display:grid; grid-template-columns:1.2fr .8fr; gap:44px; align-items:start}
.hx-l>*{opacity:0; animation:scUp .7s var(--ease) forwards}
.hx-l>:nth-child(2){animation-delay:.08s} .hx-l>:nth-child(3){animation-delay:.16s} .hx-l>:nth-child(4){animation-delay:.24s} .hx-l>:nth-child(5){animation-delay:.32s}
.hx-kick{display:inline-flex; align-items:center; gap:10px; font-size:13.5px; color:#a39789; padding:7px 14px 7px 10px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1)}
.hx-kick b{color:#fff}
.hx h1{font-size:clamp(40px,6vw,72px); line-height:.98; letter-spacing:-.05em; font-weight:800; margin:22px 0 18px}
.hx h1 .serif{color:var(--sc-orange); display:inline-block}
.hx h1 .smile{position:relative; display:inline-block}
.hx h1 .smile svg{position:absolute; left:2%; right:0; bottom:-.16em; width:96%; height:.32em; color:var(--sc-orange)}
.hx h1 .smile svg path{stroke-dasharray:400; stroke-dashoffset:400; animation:draw 1.2s .7s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.hx-lead{font-size:18px; color:var(--sc-sand); max-width:520px; margin:0 0 30px; opacity:.88}

/* recherche intelligente */
.ss{position:relative; max-width:640px; z-index:20}
.ss-box{background:#fff; color:var(--sc-ink); border-radius:22px; padding:8px; box-shadow:0 30px 70px rgba(0,0,0,.35); transition:box-shadow .25s}
.ss-box:focus-within{box-shadow:0 30px 70px rgba(0,0,0,.35),0 0 0 4px rgba(245,158,11,.4)}
.ss-row{display:grid; grid-template-columns:1.2fr 1.15fr auto; gap:4px; align-items:stretch}
.ss-f{display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:15px; transition:background .2s; position:relative; min-width:0}
.ss-f:hover{background:var(--sc-soft)}
.ss-f>i{color:var(--sc-blue); font-size:16px; width:18px; text-align:center}
.ss-f div{flex:1; min-width:0}
.ss-f label{display:block; font-size:10.5px; font-weight:800; letter-spacing:.7px; text-transform:uppercase; color:var(--sc-muted)}
.ss-f input,.ss-f select{border:0; outline:0; background:transparent; width:100%; font-size:15.5px; font-weight:600; padding:2px 0 0; appearance:none; cursor:pointer; text-overflow:ellipsis}
.ss-f input{cursor:text}
.ss-f input::placeholder{color:#988c7e; font-weight:500}
.ss-f+.ss-f::before{content:""; position:absolute; left:-2px; top:14px; bottom:14px; width:1px; background:var(--sc-line)}
.ss-geo{border:0; background:var(--sc-blue-soft); color:var(--sc-blue); width:34px; height:34px; border-radius:10px; flex:none; cursor:pointer; transition:background .2s, color .2s}
.ss-geo:hover{background:var(--sc-blue); color:#fff}
.ss-geo.spin i{animation:spinSlow 1s linear infinite}
.ss-go{border:0; border-radius:16px; background:var(--sc-orange); color:#1c1715; font-weight:800; font-size:15.5px; padding:0 26px; cursor:pointer; display:flex; align-items:center; gap:10px; transition:background .2s, transform .2s}
.ss-go:hover{background:var(--sc-orange-dark)}
.ss-when{display:flex; gap:6px; padding:8px 6px 4px; border-top:1px solid #f1ebe1; margin-top:6px; align-items:center; flex-wrap:wrap}
.ss-when>span{font-size:12.5px; color:var(--sc-muted); font-weight:600; margin:0 6px 0 4px}
.pill{position:relative}
.pill input{position:absolute; opacity:0; pointer-events:none}
.pill span{display:inline-block; padding:7px 13px; border-radius:999px; font-size:13px; font-weight:700; color:#4a4038; background:#f5efe6; cursor:pointer; transition:background .2s, color .2s}
.pill span:hover{background:#ede4d6}
.pill input:checked+span{background:var(--sc-navy); color:#fff}
.pill input:focus-visible+span{outline:3px solid var(--sc-orange); outline-offset:2px}
/* suggestions */
.sg{position:absolute; left:0; right:0; top:calc(100% + 10px); background:#fff; color:var(--sc-ink); border-radius:20px; box-shadow:0 30px 70px rgba(28,23,21,.28); padding:8px; display:none; max-height:440px; overflow:auto}
.sg.on{display:block; animation:scUp .25s var(--ease)}
.sg h6{margin:8px 12px 6px; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--sc-muted)}
.sg a{display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:12px; text-decoration:none; color:var(--sc-ink)}
.sg a:hover,.sg a.act{background:var(--sc-soft)}
.sg a .ic{width:36px; height:36px; border-radius:11px; background:var(--sc-blue-soft); color:var(--sc-blue); display:flex; align-items:center; justify-content:center; flex:none}
.sg a b{display:block; font-size:14.5px}
.sg a small{display:block; color:var(--sc-muted); font-size:12.5px}
.sg a .nx{margin-left:auto; font-size:12px; font-weight:700; color:#166534; background:var(--ok-soft); padding:4px 9px; border-radius:999px; white-space:nowrap}
.sg .empty{padding:16px; color:var(--sc-muted); font-size:14px}
.hx-trust{display:flex; gap:22px; flex-wrap:wrap; margin-top:24px; font-size:13.5px; color:#c9bdae}
.hx-trust span{display:inline-flex; align-items:center; gap:8px}
.hx-trust i{color:var(--sc-orange)}

/* fil des disponibilités */
.feed{position:relative; height:520px; overflow:hidden; opacity:0; animation:scUp .9s .3s var(--ease) forwards;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 14%,#000 86%,transparent); mask-image:linear-gradient(180deg,transparent,#000 14%,#000 86%,transparent)}
.feed-in{display:flex; flex-direction:column; gap:12px; animation:feed 38s linear infinite}
.feed:hover .feed-in{animation-play-state:paused}
.fc{display:flex; gap:12px; align-items:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:13px 14px; text-decoration:none; color:#fff;
  backdrop-filter:blur(6px); transition:background .25s, border-color .25s, transform .25s}
.fc:hover{background:rgba(255,255,255,.12); border-color:rgba(245,158,11,.6); transform:translateX(-4px); color:#fff}
.fc b{display:block; font-size:14.5px}
.fc small{display:block; font-size:12.5px; color:#a39789}
.fc .t{margin-left:auto; text-align:right; flex:none}
.fc .t em{display:block; font-style:normal; font-size:11px; color:#a39789; text-transform:uppercase; letter-spacing:.4px; font-weight:700}
.fc .t strong{display:inline-block; margin-top:3px; font-size:13.5px; background:var(--sc-orange); color:#1c1715; border-radius:9px; padding:4px 9px}
.feed-lbl{display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:#d8cfc3; margin:4px 0 6px}

/* bande de confiance sous le hero */
.hx-band{position:relative; z-index:1; margin-top:56px; border-top:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.02)}
.hx-band .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding-top:0}
.hx-band div{padding:22px 10px; text-align:center; border-left:1px solid rgba(255,255,255,.08)}
.hx-band div:first-child{border-left:0}
.hx-band strong{display:block; font-size:30px; font-weight:800; letter-spacing:-1px}
.hx-band span{font-size:12px; color:#c9bdae; text-transform:uppercase; letter-spacing:.6px; font-weight:600}

/* ================= BESOINS ================= */
.needs{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
.need{position:relative; overflow:hidden; isolation:isolate; display:flex; flex-direction:column; gap:12px; min-height:168px; padding:22px; border-radius:24px; background:#fff; border:1px solid #ebe8e1; text-decoration:none; color:var(--sc-ink);
  transition:transform .35s var(--ease), box-shadow .35s, border-color .35s}
.need::before{content:""; position:absolute; inset:auto -30% -60% auto; width:200px; height:200px; border-radius:50%; background:var(--c,#fbeedd); z-index:-1; transition:transform .5s var(--ease)}
.need:hover{transform:translateY(-6px); box-shadow:0 24px 50px rgba(28,23,21,.1); border-color:transparent}
.need:hover::before{transform:scale(2.6)}
.need .ic{width:48px; height:48px; border-radius:15px; background:#fff; box-shadow:0 6px 16px rgba(28,23,21,.08); display:flex; align-items:center; justify-content:center; font-size:19px; color:var(--sc-navy)}
.need h3{margin:auto 0 0; font-size:18px; letter-spacing:-.3px}
.need p{margin:0; font-size:13.5px; color:var(--sc-muted)}
.need .ar{position:absolute; top:22px; right:22px; width:32px; height:32px; border-radius:50%; border:1px solid rgba(28,23,21,.12); display:flex; align-items:center; justify-content:center; font-size:12px; transition:all .35s}
.need:hover .ar{background:var(--sc-navy); color:#fff; transform:rotate(-45deg)}
.need.big{grid-row:span 2; background:var(--sc-navy); color:#fff; border:0}
.need.big::before{background:#2c221c}
.need.big p{color:#c9bdae}
.need.big .ic{background:var(--sc-orange); color:#1c1715}
.need.big .ar{border-color:rgba(255,255,255,.2)}
.need.big:hover .ar{background:var(--sc-orange); color:#1c1715}
.need.big h3{font-size:26px}

/* ================= BENTO ================= */
.bento{display:grid; grid-template-columns:repeat(6,1fr); gap:16px}
.bx{background:#fff; border:1px solid #ece4d8; border-radius:26px; padding:26px; position:relative; overflow:hidden}
.bx h3{margin:0 0 8px; font-size:20px; letter-spacing:-.4px}
.bx p{margin:0; color:var(--sc-muted); font-size:14.5px}
.bx-a{grid-column:span 4; grid-row:span 2}
.bx-b{grid-column:span 2; background:linear-gradient(150deg,#fff3da,#fde2a6); border-color:#f6d48d}
.bx-c{grid-column:span 2; background:var(--sc-navy); color:#fff; border:0}
.bx-c p{color:#c9bdae}
.bx .big{font-size:56px; font-weight:800; letter-spacing:-.05em; line-height:1}
.bx-list{display:flex; flex-direction:column; gap:10px; margin-top:18px}
.mini{display:flex; align-items:center; gap:14px; padding:12px; border-radius:18px; border:1px solid #f1ebe1; transition:border-color .25s, background .25s}
.mini:hover{border-color:#e0d5c4; background:#fcfaf6}
.mini .who{min-width:0; flex:1}
.mini .who a{color:var(--sc-ink); text-decoration:none; font-weight:700; font-size:15px}
.mini .who a:hover{color:var(--sc-blue)}
.mini .who small{display:block; color:var(--sc-muted); font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.mini .sl{display:flex; gap:6px; flex:none}
.slot{display:inline-block; font-size:13px; font-weight:700; padding:8px 11px; border-radius:10px; background:var(--sc-blue-soft); color:#8a4b08; text-decoration:none; border:0; cursor:pointer; transition:background .2s, color .2s, transform .2s; text-align:center}
.slot:hover{background:var(--sc-orange); color:#1c1715; transform:translateY(-2px)}
.verify{display:flex; gap:10px; margin-top:18px; align-items:center}
.verify .card{width:120px; height:76px; border-radius:12px; background:linear-gradient(135deg,#2c221c,#b45309); position:relative; box-shadow:0 14px 30px rgba(180,83,9,.25); transform:rotate(-6deg)}
.verify .card::before{content:""; position:absolute; left:12px; top:14px; width:26px; height:20px; border-radius:5px; background:linear-gradient(135deg,#ffd27a,#f59e0b)}
.verify .card::after{content:""; position:absolute; left:12px; right:12px; bottom:14px; height:6px; border-radius:3px; background:rgba(255,255,255,.35); box-shadow:0 -11px 0 rgba(255,255,255,.2)}
.verify .ok{width:42px; height:42px; border-radius:50%; background:var(--ok); color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; margin-left:-22px; z-index:1; box-shadow:0 0 0 5px #fff}

/* ================= VILLES ================= */
.cities{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
.city{position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:20px 20px; border-radius:20px; background:#fff; border:1px solid #ece4d8; text-decoration:none; color:var(--sc-ink)}
.city::before{content:""; position:absolute; inset:0; z-index:-1; background:var(--sc-orange); transform:scaleY(0); transform-origin:bottom; transition:transform .45s cubic-bezier(.7,0,.2,1)}
.city:hover::before{transform:scaleY(1)}
.city b{font-size:19px; letter-spacing:-.4px; display:block}
.city small{font-size:12.5px; color:var(--sc-muted); transition:color .3s}
.city .n{font-weight:800; font-size:13px; min-width:38px; height:38px; border-radius:12px; background:var(--sc-blue-soft); color:#8a4b08; display:flex; align-items:center; justify-content:center; transition:background .3s, color .3s}
.city:hover small{color:#3a2a08}
.city:hover .n{background:#1c1715; color:#fff}

/* ================= COMMENT ÇA MARCHE ================= */
.how{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.step{background:#fff; border-radius:26px; padding:24px; border:1px solid #ece4d8}
.step .ui{height:150px; border-radius:18px; background:var(--sc-soft); margin-bottom:20px; padding:16px; display:flex; flex-direction:column; justify-content:center; gap:8px; overflow:hidden}
.step .num{font-family:'Fraunces',serif; font-style:italic; color:var(--sc-orange); font-size:22px}
.step h3{margin:4px 0 6px; font-size:19px; letter-spacing:-.3px}
.step p{margin:0; color:var(--sc-muted); font-size:14.5px}
.ui-bar{height:40px; border-radius:12px; background:#fff; border:1px solid #ebe3d6; display:flex; align-items:center; gap:10px; padding:0 12px; font-size:13px; color:var(--sc-muted)}
.ui-bar i{color:var(--sc-blue)}
.ui-bar .go{margin-left:auto; width:28px; height:28px; border-radius:8px; background:var(--sc-orange)}
.ui-slots{display:grid; grid-template-columns:repeat(4,1fr); gap:6px}
.ui-slots span{height:30px; border-radius:9px; background:var(--sc-blue-soft); font-size:12px; font-weight:700; color:#8a4b08; display:flex; align-items:center; justify-content:center}
.ui-slots span.on{background:var(--sc-orange); color:#1c1715; transform:scale(1.06)}
.ui-ok{display:flex; align-items:center; gap:12px; background:#fff; border-radius:14px; padding:14px; border:1px solid #ebe3d6}
.ui-ok i{width:36px; height:36px; border-radius:50%; background:var(--ok); color:#fff; display:flex; align-items:center; justify-content:center}
.ui-ok b{display:block; font-size:14px} .ui-ok small{color:var(--sc-muted); font-size:12px}

/* ================= CTA PRATICIENS ================= */
.pro{position:relative; overflow:hidden; background:var(--sc-navy); color:#fff; border-radius:34px; padding:52px; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center}
.pro::after{content:""; position:absolute; right:-120px; top:-120px; width:360px; height:360px; border-radius:50%; background:rgba(245,158,11,.14)}
.pro h2{font-size:clamp(28px,3.4vw,40px); letter-spacing:-.04em; line-height:1.05; margin:16px 0 14px}
.pro h2 .serif{color:var(--sc-orange)}
.pro p{color:#c9bdae; margin:0 0 24px; max-width:460px}
.pro ul{list-style:none; padding:0; margin:0 0 28px; display:grid; gap:10px}
.pro li{display:flex; gap:10px; align-items:center; color:#eee6da}
.pro li i{color:var(--sc-orange)}
.pro-mock{position:relative; z-index:1; background:#fff; color:var(--sc-ink); border-radius:22px; padding:18px; box-shadow:0 40px 80px rgba(0,0,0,.4); transform:rotate(2deg)}
.pro-mock .r{display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid #f1ebe1; font-size:13.5px}
.pro-mock .r:last-child{border:0}
.pro-mock .r b{width:52px} .pro-mock .r span{flex:1}

/* ================= FAQ ================= */
.faq{max-width:840px}
.faq details{border-top:1px solid var(--sc-line)}
.faq details:last-child{border-bottom:1px solid var(--sc-line)}
.faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:20px; align-items:center; padding:20px 0; font-weight:700; font-size:17.5px; letter-spacing:-.2px}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{width:34px; height:34px; flex:none; border-radius:50%; background:var(--sc-blue-soft); color:var(--sc-blue); display:flex; align-items:center; justify-content:center; font-size:12px; transition:transform .3s, background .3s, color .3s}
.faq details[open] summary i{transform:rotate(45deg); background:var(--sc-orange); color:#1c1715}
.faq details p{margin:0 0 22px; color:var(--sc-muted); max-width:720px}

/* ================= BANDEAU DE PAGE ================= */
.band{position:relative; overflow:hidden; background:radial-gradient(900px 400px at 90% -20%,#3d2a17 0%,transparent 60%),linear-gradient(180deg,#241c17,#1c1715); color:#fff; padding:38px 0 34px}
.band .wrap{position:relative; z-index:1}
.crumbs{font-size:13px; color:#a39789; margin-bottom:14px}
.crumbs a{color:#d8cfc3; text-decoration:none}
.crumbs a:hover{color:var(--sc-orange)}
.band h1{margin:0; font-size:clamp(30px,4.4vw,50px); letter-spacing:-.045em; line-height:1.02}
.band h1 .serif{color:var(--sc-orange)}
.band .sub{margin:12px 0 0; color:var(--sc-sand); opacity:.85; font-size:16.5px}
.band .ss{margin-top:24px; max-width:none}

/* ================= ANNUAIRE ================= */
.dir-top{position:sticky; top:55px; z-index:30; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); border-bottom:1px solid #ece4d8}
.dir-top .wrap{display:flex; gap:8px; align-items:center; overflow-x:auto; padding-top:12px; padding-bottom:12px; scrollbar-width:none}
.dir-top .wrap::-webkit-scrollbar{display:none}
.chip{display:inline-flex; align-items:center; gap:8px; white-space:nowrap; font-size:13.5px; font-weight:700; padding:9px 14px; border-radius:999px; border:1.5px solid var(--sc-line); background:#fff; color:var(--sc-ink); text-decoration:none; cursor:pointer; transition:all .2s}
.chip:hover{border-color:var(--sc-ink); color:var(--sc-ink)}
.chip.on{background:var(--sc-navy); border-color:var(--sc-navy); color:#fff}
.chip.on:hover{color:#fff}
.chip i{font-size:12px}
.chip select{border:0; background:transparent; font-weight:700; font-size:13.5px; outline:0; cursor:pointer; color:inherit; max-width:170px}
.chip .x{margin-left:2px; opacity:.7}
.dir{display:grid; grid-template-columns:1fr 380px; gap:24px; padding:26px 20px 90px; max-width:1068px; margin:0 auto; align-items:start}
.dir.nomap{grid-template-columns:1fr}
.dir-h{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px}
.dir-h p{margin:0; color:var(--sc-muted)} .dir-h p b{color:var(--sc-ink)}
.dir-h select{border:1.5px solid var(--sc-line); border-radius:12px; padding:8px 10px; background:#fff; font-weight:600; font-size:13.5px}
.dir-map{position:sticky; top:130px; height:calc(100vh - 150px); min-height:420px; border-radius:24px; overflow:hidden; border:1px solid #ece4d8; background:var(--sc-soft)}
#map{width:100%; height:100%}
.leaflet-popup-content{font-family:'Plus Jakarta Sans',sans-serif !important}
.pin{width:34px; height:34px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--sc-navy); border:3px solid #fff; box-shadow:0 6px 14px rgba(0,0,0,.3); display:flex; align-items:center; justify-content:center}
.pin b{transform:rotate(45deg); color:#fff; font-size:11px; font-family:'Plus Jakarta Sans',sans-serif}
.pin.hl{background:var(--sc-orange)} .pin.hl b{color:#1c1715}

.rc{display:grid; grid-template-columns:1fr; background:#fff; border:1px solid #ece4d8; border-radius:24px; margin-bottom:14px; overflow:hidden; transition:box-shadow .3s, border-color .3s}
.rc:hover,.rc.hl{box-shadow:0 22px 44px rgba(28,23,21,.09); border-color:#e4d9c9}
.rc-top{display:flex; gap:16px; padding:20px 20px 0}
.rc-top h3{margin:0; font-size:18px; letter-spacing:-.3px}
.rc-top h3 a{color:inherit; text-decoration:none}
.rc-top h3 a:hover{color:var(--sc-blue)}
.rc-sp{margin:2px 0 8px; font-size:13.5px; color:var(--sc-blue); font-weight:600}
.rc-meta{display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13.5px; color:var(--sc-muted)}
.rc-meta i{color:#a89c8e; margin-right:5px}
.rc-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.rc-cal{margin-top:16px; padding:14px 20px 18px; background:linear-gradient(180deg,#fcfaf6,#f8f3ec); border-top:1px solid #f1ebe1}
.rc-cal-h{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; font-size:13px}
.rc-cal-h b{display:flex; align-items:center; gap:8px; color:#166534}
.rc-cal-h a{font-weight:700; color:var(--sc-ink); text-decoration:none}
.rc-cal-h a:hover{color:var(--sc-blue)}
.rc-days{display:grid; grid-template-columns:repeat(5,1fr); gap:8px}
.rc-day{display:flex; flex-direction:column; gap:6px}
.rc-day>small{text-align:center; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; color:var(--sc-muted)}
.rc-day>small b{display:block; color:var(--sc-ink); font-size:13px; text-transform:none; letter-spacing:0}
.rc-day .slot{padding:7px 0; font-size:12.5px}
.rc-day .nil{text-align:center; color:#cfc6ba; padding:7px 0; font-size:13px; border:1px dashed #e7ded1; border-radius:10px}
.empty{text-align:center; padding:60px 20px; border:1.5px dashed var(--sc-line); border-radius:24px; color:var(--sc-muted); background:#fff}
.empty i{font-size:34px; color:var(--sc-orange); margin-bottom:12px}
.empty h3{color:var(--sc-ink); margin:0 0 6px}
.pages{display:flex; gap:6px; justify-content:center; margin-top:24px}
.pages a,.pages span{min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; border-radius:12px; border:1.5px solid var(--sc-line); text-decoration:none; color:var(--sc-ink); font-weight:700}
.pages span{background:var(--sc-navy); color:#fff; border-color:var(--sc-navy)}
.sheet{position:fixed; inset:0; z-index:1100; background:rgba(28,23,21,.5); display:none; align-items:flex-end; justify-content:center}
.sheet.on{display:flex}
.sheet-in{background:#fff; width:100%; max-width:520px; border-radius:26px 26px 0 0; padding:22px; max-height:88vh; overflow:auto; animation:scUp .3s var(--ease)}
.sheet h3{margin:0 0 6px; display:flex; justify-content:space-between; align-items:center}
.sheet h3 button{border:0; background:var(--sc-soft); width:36px; height:36px; border-radius:50%; cursor:pointer}
.fgrp{border-top:1px solid #f1ebe1; padding:14px 0 6px; margin-top:10px}
.fgrp>b{display:block; font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:var(--sc-muted); margin-bottom:10px}
.ck{display:flex; align-items:center; gap:10px; font-size:14.5px; padding:6px 0; cursor:pointer}
.ck input{accent-color:var(--sc-orange); width:18px; height:18px}

/* ================= FICHE DENTISTE ================= */
.pf{position:relative; overflow:hidden; background:radial-gradient(900px 420px at 90% -20%,#3d2a17 0%,transparent 60%),linear-gradient(180deg,#241c17,#1c1715); color:#fff; padding:34px 0 0}
.pf .wrap{position:relative; z-index:1}
.pf-id{display:flex; gap:28px; align-items:flex-end; padding-bottom:30px}
.pf-id .ava.lg{box-shadow:0 0 0 6px rgba(255,255,255,.08),0 24px 50px rgba(0,0,0,.4)}
.pf-id .ava.lg .ava-ok{border-color:#1c1715}
.pf-id h1{margin:0; font-size:clamp(30px,4.4vw,48px); letter-spacing:-.045em; line-height:1.02}
.pf-id .role{margin:8px 0 0; color:var(--sc-sand); font-size:16.5px}
.pf-id .role b{color:#fff}
.pf-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px}
.pf-badges .tag{background:rgba(255,255,255,.08); color:#ece4d8; border:1px solid rgba(255,255,255,.1)}
.pf-badges .tag.vf{background:rgba(180,83,9,.25); color:#fff; border-color:rgba(245,158,11,.4)}
.pf-badges .tag.ur{background:rgba(220,38,38,.25); color:#fff}
.pf-nav{position:sticky; top:55px; z-index:30; background:#fff; border-bottom:1px solid #ece4d8}
.pf-nav .wrap{display:flex; gap:4px; overflow-x:auto; scrollbar-width:none}
.pf-nav a{padding:15px 14px; font-weight:700; font-size:14px; color:var(--sc-muted); text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap; transition:color .2s, border-color .2s}
.pf-nav a:hover,.pf-nav a.on{color:var(--sc-ink); border-color:var(--sc-orange)}
.pf-page{display:grid; grid-template-columns:1fr 410px; gap:28px; max-width:1068px; margin:0 auto; padding:28px 20px 100px; align-items:start}
.blk{background:#fff; border:1px solid #ece4d8; border-radius:24px; padding:26px; margin-bottom:16px; scroll-margin-top:130px}
.blk>h2{font-size:20px; margin:0 0 16px; letter-spacing:-.4px; display:flex; align-items:center; gap:12px}
.blk>h2 i{width:36px; height:36px; border-radius:12px; background:var(--sc-blue-soft); color:var(--sc-blue); display:flex; align-items:center; justify-content:center; font-size:14px}
.blk p{margin:0; color:#4f453d; line-height:1.65}
.facts{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px}
.facts div{background:var(--sc-soft); border-radius:16px; padding:14px}
.facts small{display:block; font-size:11.5px; color:var(--sc-muted); text-transform:uppercase; letter-spacing:.4px; font-weight:700}
.facts b{font-size:15px; display:block; margin-top:2px}
.tl{list-style:none; margin:0; padding:0; position:relative}
.tl::before{content:""; position:absolute; left:51px; top:8px; bottom:8px; width:2px; background:repeating-linear-gradient(180deg,#e4d9c9 0 6px,transparent 6px 10px)}
.tl li{display:grid; grid-template-columns:44px 16px 1fr; gap:12px; align-items:start; padding:8px 0}
.tl .y{font-weight:800; font-size:14px; color:var(--sc-ink); text-align:right; padding-top:1px}
.tl .d{width:16px; height:16px; border-radius:50%; background:#fff; border:3px solid var(--sc-blue); margin-top:3px; position:relative; z-index:1}
.tl li.dip .d{border-color:var(--sc-orange); background:var(--sc-orange)}
.tl b{display:block; font-size:15.5px}
.tl small{color:var(--sc-muted); font-size:13.5px}
.tl .k{display:inline-block; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--sc-orange-ink); background:#fff3da; padding:2px 8px; border-radius:6px; margin-bottom:4px}
.tl li.frm .k{color:#8a4b08; background:var(--sc-blue-soft)}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chips span{display:inline-flex; gap:9px; align-items:center; padding:10px 14px; border-radius:14px; background:var(--sc-soft); font-weight:600; font-size:14px}
.chips span i{color:var(--sc-blue)}
.hours{width:100%; border-collapse:collapse; font-size:14.5px}
.hours td{padding:10px 0; border-bottom:1px solid #f1ebe1}
.hours td:last-child{text-align:right; color:#4f453d}
.hours tr:last-child td{border:0}
.hours tr.today td{font-weight:800; color:var(--sc-ink)}
.hours tr.today td:first-child::after{content:"Aujourd'hui"; margin-left:8px; font-size:11px; background:var(--sc-orange); color:#1c1715; padding:2px 8px; border-radius:999px; vertical-align:2px}
.hours .closed{color:#a89c8e !important}
.map{border:0; width:100%; height:280px; border-radius:18px; margin-top:16px; background:var(--sc-soft); display:block}
.addr{display:flex; gap:14px; align-items:flex-start}
.addr>i{width:44px; height:44px; flex:none; border-radius:14px; background:var(--sc-orange); color:#1c1715; display:flex; align-items:center; justify-content:center}
.addr b{display:block; font-size:16px}

/* widget RDV */
.bk{position:sticky; top:118px; background:#fff; border:1px solid #ece4d8; border-radius:26px; box-shadow:0 30px 70px rgba(28,23,21,.12); overflow:hidden; scroll-margin-top:120px}
.bk-h{background:linear-gradient(110deg,#1c1715 0%,#2c221c 70%,#3a2c22 140%); color:#fff; padding:18px 20px}
.bk-h h2{margin:0; font-size:18px; letter-spacing:-.3px}
.bk-h p{margin:4px 0 0; font-size:13px; color:#c9bdae; display:flex; align-items:center; gap:8px}
.bk-steps{display:flex; gap:6px; margin-top:14px}
.bk-steps span{flex:1; height:4px; border-radius:4px; background:rgba(255,255,255,.18); transition:background .3s}
.bk-steps span.on{background:var(--sc-orange)}
.bk-b{padding:18px 20px 20px}
.bk-first{display:flex; align-items:center; gap:12px; width:100%; text-align:left; border:1.5px solid #f6d48d; background:linear-gradient(120deg,#fff9ec,#fff3da); border-radius:16px; padding:12px 14px; cursor:pointer; transition:transform .2s, box-shadow .2s}
.bk-first:hover{transform:translateY(-2px); box-shadow:0 10px 22px rgba(245,158,11,.25)}
.bk-first i{width:36px; height:36px; border-radius:11px; background:var(--sc-orange); color:#1c1715; display:flex; align-items:center; justify-content:center; flex:none}
.bk-first small{display:block; font-size:11.5px; color:var(--sc-orange-ink); font-weight:800; text-transform:uppercase; letter-spacing:.4px}
.bk-first b{font-size:15px}
.bk-first .go{margin-left:auto; font-weight:800; font-size:13px; color:var(--sc-ink)}
.bk-or{display:flex; align-items:center; gap:10px; color:var(--sc-muted); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin:16px 0 12px}
.bk-or::before,.bk-or::after{content:""; height:1px; background:#f1ebe1; flex:1}
.bk-week{display:flex; align-items:center; gap:6px}
.bk-week button.nv{width:32px; height:56px; flex:none; border:0; background:var(--sc-soft); border-radius:12px; cursor:pointer; color:var(--sc-ink)}
.bk-week button.nv:disabled{opacity:.3; cursor:default}
.bk-days{display:grid; grid-template-columns:repeat(5,1fr); gap:6px; flex:1}
.bk-day{border:1.5px solid var(--sc-line); background:#fff; border-radius:14px; padding:7px 0; text-align:center; cursor:pointer; transition:all .2s; min-width:0}
.bk-day small{display:block; font-size:10.5px; text-transform:uppercase; font-weight:800; color:var(--sc-muted); letter-spacing:.3px}
.bk-day b{display:block; font-size:18px; letter-spacing:-.4px; line-height:1.2}
.bk-day em{display:block; width:6px; height:6px; border-radius:50%; background:var(--ok); margin:3px auto 0}
.bk-day.full{opacity:.4} .bk-day.full em{background:#cfc6ba}
.bk-day:hover{border-color:var(--sc-ink)}
.bk-day.on{background:var(--sc-navy); border-color:var(--sc-navy); color:#fff}
.bk-day.on small{color:#c9bdae} .bk-day.on em{background:var(--sc-orange)}
.bk-pane{display:none; margin-top:12px}
.bk-pane.on{display:block; animation:scUp .3s var(--ease)}
.bk-pane h3{font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--sc-muted); margin:12px 0 8px; display:flex; align-items:center; gap:8px}
.bk-slots{display:grid; grid-template-columns:repeat(4,1fr); gap:6px}
.bk-slots label{position:relative}
.bk-slots input{position:absolute; opacity:0; pointer-events:none}
.bk-slots span{display:block; text-align:center; padding:10px 0; border-radius:11px; background:var(--sc-blue-soft); color:#8a4b08; font-weight:700; font-size:13.5px; cursor:pointer; transition:background .2s, color .2s, transform .2s}
.bk-slots span:hover{background:#f6dfbf}
.bk-slots input:checked+span{background:var(--sc-orange); color:#1c1715; transform:scale(1.05)}
.bk-slots input:focus-visible+span{outline:3px solid var(--sc-orange); outline-offset:2px}
.bk-none{font-size:14px; color:var(--sc-muted); padding:16px; text-align:center; background:var(--sc-soft); border-radius:14px}
.bk-form{display:none}
.bk-form.on{display:block; animation:scUp .35s var(--ease)}
.bk-pick{display:flex; justify-content:space-between; align-items:center; gap:10px; background:#fff7e6; border:1px solid #f6d48d; border-radius:16px; padding:12px 14px; margin-bottom:14px}
.bk-pick small{display:block; color:var(--sc-orange-ink); font-weight:800; font-size:11.5px; text-transform:uppercase; letter-spacing:.4px}
.bk-pick b{font-size:15.5px}
.bk-pick button{background:#fff; border:1px solid #f6d48d; border-radius:10px; padding:6px 10px; color:var(--sc-ink); font-weight:700; cursor:pointer; font-size:12.5px}
.motifs{display:flex; flex-wrap:wrap; gap:6px}
.motifs .pill span{font-size:12.5px; padding:7px 11px}
.bk-note{font-size:12.5px; color:var(--sc-muted); text-align:center; margin:12px 0 0}
.mbar{display:none}

/* formulaires */
.fl{margin-bottom:14px}
.fl>label,.fl>.lb{display:block; font-size:13px; font-weight:700; margin-bottom:6px}
.fl>label small,.fl>.lb small{font-weight:500; color:var(--sc-muted)}
.fl input:not([type=checkbox]):not([type=radio]),.fl select,.fl textarea{width:100%; border:1.5px solid var(--sc-line); border-radius:13px; padding:12px 13px; background:#fff; font-size:15px; transition:border-color .2s, box-shadow .2s}
.fl input:focus,.fl select:focus,.fl textarea:focus{outline:0; border-color:var(--sc-blue); box-shadow:0 0 0 4px rgba(245,158,11,.18)}
.fl input.err,.fl select.err,.fl textarea.err{border-color:var(--ko)}
.fl .hint{display:block; font-size:12.5px; color:var(--sc-muted); margin-top:5px}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px}
.seg{display:grid; grid-template-columns:1fr 1fr; gap:4px; background:#f3ece2; border-radius:13px; padding:4px}
.seg label{position:relative; margin:0}
.seg input{position:absolute; opacity:0}
.seg span{display:block; text-align:center; padding:9px; border-radius:10px; font-size:13.5px; font-weight:700; cursor:pointer; color:#4a4038}
.seg input:checked+span{background:#fff; color:var(--sc-ink); box-shadow:0 2px 8px rgba(28,23,21,.12)}
.consent{display:flex; gap:10px; font-size:12.5px; color:var(--sc-muted); margin:6px 0 14px; align-items:flex-start; cursor:pointer}
.consent input{accent-color:var(--sc-orange); margin-top:2px; width:16px; height:16px; flex:none}
.alert{padding:13px 15px; border-radius:14px; font-size:14px; margin-bottom:16px; display:flex; gap:10px; align-items:flex-start}
.alert.err{background:#fdecec; color:#991b1b}
.alert.ok{background:var(--ok-soft); color:#166534}
.alert.info{background:var(--sc-blue-soft); color:#8a4b08}
.checks{display:flex; flex-wrap:wrap; gap:8px}
.checks label{position:relative}
.checks input{position:absolute; opacity:0}
.checks span{display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border-radius:12px; border:1.5px solid var(--sc-line); font-size:14px; font-weight:600; cursor:pointer; transition:all .2s; background:#fff}
.checks span::before{content:""; width:16px; height:16px; border-radius:5px; border:1.5px solid #c4b8aa; transition:all .2s}
.checks input:checked+span{border-color:var(--sc-navy); background:var(--sc-navy); color:#fff}
.checks input:checked+span::before{background:var(--sc-orange); border-color:var(--sc-orange); box-shadow:inset 0 0 0 3px var(--sc-navy)}
.checks input:focus-visible+span{outline:3px solid var(--sc-orange); outline-offset:2px}

/* ================= INSCRIPTION (assistant) ================= */
.wz-wrap{display:grid; grid-template-columns:300px 1fr; gap:28px; max-width:1068px; margin:0 auto; padding:30px 20px 90px; align-items:start}
.wz-side{position:sticky; top:75px; background:var(--sc-navy); color:#fff; border-radius:26px; padding:24px; overflow:hidden}
.wz-side h2{font-size:20px; margin:0 0 4px; letter-spacing:-.3px}
.wz-side>p{color:#a39789; font-size:13.5px; margin:0 0 20px}
.wz-nav{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; counter-reset:wz}
.wz-nav li{display:flex; align-items:center; gap:12px; padding:10px; border-radius:14px; color:#a39789; font-weight:600; font-size:14.5px; cursor:pointer; transition:background .2s, color .2s}
.wz-nav li::before{counter-increment:wz; content:counter(wz); width:30px; height:30px; flex:none; border-radius:10px; border:1.5px solid rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800}
.wz-nav li.on{background:rgba(255,255,255,.08); color:#fff}
.wz-nav li.on::before{background:var(--sc-orange); border-color:var(--sc-orange); color:#1c1715}
.wz-nav li.done{color:#eee6da}
.wz-nav li.done::before{content:"✓"; background:rgba(34,197,94,.2); border-color:#22c55e; color:#4ade80}
.wz-prog{height:6px; border-radius:6px; background:rgba(255,255,255,.1); margin-top:20px; overflow:hidden}
.wz-prog i{display:block; height:100%; width:20%; background:var(--sc-orange); border-radius:6px; transition:width .4s var(--ease)}
.wz-side .sec-note{margin-top:18px; font-size:12.5px; color:#a39789; display:flex; gap:8px}
.wz-side .sec-note i{color:#22c55e; margin-top:3px}
.wz{background:#fff; border:1px solid #ece4d8; border-radius:26px; padding:30px}
.wz-step{display:none}
.wz-step.on{display:block; animation:scUp .35s var(--ease)}
.wz-step>h2{font-size:26px; letter-spacing:-.04em; margin:0 0 4px}
.wz-step>p.lead{color:var(--sc-muted); margin:0 0 24px}
.wz-sub{font-size:13px; text-transform:uppercase; letter-spacing:.5px; color:var(--sc-muted); font-weight:800; margin:24px 0 12px; display:flex; align-items:center; gap:10px}
.wz-sub::after{content:""; flex:1; height:1px; background:#f1ebe1}
.wz-foot{display:flex; justify-content:space-between; gap:10px; margin-top:26px; padding-top:20px; border-top:1px solid #f1ebe1}
.drop{position:relative; display:flex; align-items:center; gap:16px; border:2px dashed var(--sc-line); border-radius:20px; padding:18px; cursor:pointer; transition:border-color .2s, background .2s; background:#fcfaf6}
.drop:hover,.drop.over{border-color:var(--sc-blue); background:#fdf6ec}
.drop input{position:absolute; inset:0; opacity:0; cursor:pointer}
.drop .pv{width:84px; height:84px; flex:none; border-radius:22px; background:var(--sc-blue-soft); color:var(--sc-blue); display:flex; align-items:center; justify-content:center; font-size:26px; overflow:hidden}
.drop .pv img{width:100%; height:100%; object-fit:cover}
.drop.card .pv{width:120px; height:78px; border-radius:12px}
.drop b{display:block; font-size:15px}
.drop small{color:var(--sc-muted); font-size:13px}
.drop.has{border-style:solid; border-color:#86d8a4; background:#f3fbf6}
.rep{display:flex; flex-direction:column; gap:10px}
.rep-row{display:grid; grid-template-columns:1.4fr 1.2fr 90px 40px; gap:8px; align-items:center}
.rep-row input{width:100%; border:1.5px solid var(--sc-line); border-radius:12px; padding:11px 12px; font-size:14.5px}
.rep-row input:focus{outline:0; border-color:var(--sc-blue); box-shadow:0 0 0 4px rgba(245,158,11,.18)}
.rep-row button{height:42px; border:0; border-radius:12px; background:#fdecec; color:var(--ko); cursor:pointer}
.rep-add{align-self:flex-start; border:1.5px dashed var(--sc-line); background:#fff; border-radius:12px; padding:10px 14px; font-weight:700; font-size:13.5px; cursor:pointer; color:var(--sc-ink)}
.rep-add:hover{border-color:var(--sc-ink)}
.hr-tbl{width:100%; border-collapse:separate; border-spacing:0 6px}
.hr-tbl td{padding:0 6px 0 0; vertical-align:middle}
.hr-tbl td:first-child{width:130px}
.hr-tbl input[type=time]{border:1.5px solid var(--sc-line); border-radius:10px; padding:8px; font-size:14px; width:100%; max-width:110px}
.hr-tbl tr.off input[type=time]{opacity:.35; pointer-events:none}
.hr-tbl .sep{color:var(--sc-muted); font-size:13px; padding:0 4px; white-space:nowrap}
.sw{display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-weight:700; font-size:14.5px}
.sw input{appearance:none; width:40px; height:24px; border-radius:24px; background:#e4d9c9; position:relative; cursor:pointer; transition:background .2s; flex:none; margin:0}
.sw input::after{content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.2)}
.sw input:checked{background:var(--ok)}
.sw input:checked::after{transform:translateX(16px)}
.recap{display:grid; grid-template-columns:1fr 1fr; gap:10px; background:var(--sc-soft); border-radius:18px; padding:16px; font-size:14px}
.recap small{display:block; color:var(--sc-muted); font-size:11.5px; text-transform:uppercase; letter-spacing:.4px; font-weight:700}
.done-box{text-align:center; padding:30px 10px}
.done-box .ic{width:84px; height:84px; margin:0 auto 18px; border-radius:50%; background:var(--ok); color:#fff; display:flex; align-items:center; justify-content:center; font-size:34px; animation:pop .6s var(--ease)}
.done-box h2{font-size:30px; letter-spacing:-.04em; margin:0 0 8px}
.done-box p{color:var(--sc-muted); max-width:480px; margin:0 auto 10px}
.done-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:26px 0; text-align:left}
.done-steps div{background:var(--sc-soft); border-radius:16px; padding:14px; font-size:13.5px}
.done-steps b{display:block; margin-bottom:2px}
.done-steps div.on{background:#fff3da}

/* ================= CONFIRMATION RDV ================= */
.ed-confirm{max-width:640px; margin:0 auto; padding:50px 20px 90px}
.ed-empty{text-align:center; padding:60px 20px; border:1.5px dashed var(--sc-line); border-radius:24px; color:var(--sc-muted); background:#fff}
.ed-empty i{font-size:34px; color:var(--sc-orange); margin-bottom:12px}
.cf{background:#fff; border-radius:28px; box-shadow:0 40px 80px rgba(28,23,21,.14); border:1px solid #ece4d8; overflow:hidden}
.cf-top{background:linear-gradient(110deg,#1c1715 0%,#2c221c 70%,#3a2c22 140%); color:#fff; padding:32px; text-align:center}
.cf-check{width:68px; height:68px; margin:0 auto 14px; border-radius:50%; background:var(--ok); color:#fff; display:flex; align-items:center; justify-content:center; font-size:28px; animation:pop .6s var(--ease)}
.cf-top h1{margin:0; font-size:28px; letter-spacing:-.03em}
.cf-top p{margin:6px 0 0; color:#c9bdae}
.cf-cut{height:0; border-top:2px dashed var(--sc-line); position:relative}
.cf-cut::before,.cf-cut::after{content:""; position:absolute; top:-14px; width:26px; height:26px; border-radius:50%; background:var(--sc-soft)}
.cf-cut::before{left:-13px} .cf-cut::after{right:-13px}
.cf-body{padding:26px 30px}
.cf-when{display:flex; gap:16px; align-items:center; margin-bottom:20px}
.cf-date{width:76px; flex:none; text-align:center; border-radius:18px; overflow:hidden; border:1px solid var(--sc-line)}
.cf-date small{display:block; background:var(--sc-orange); color:#1c1715; font-weight:800; font-size:11px; text-transform:uppercase; padding:4px 0}
.cf-date b{display:block; font-size:30px; padding:4px 0 6px; letter-spacing:-1px}
.cf-when h2{margin:0; font-size:20px; letter-spacing:-.3px}
.cf-when p{margin:2px 0 0; color:var(--sc-muted)}
.cf-rows{display:grid; grid-template-columns:1fr 1fr; gap:14px; border-top:1px solid #f1ebe1; padding-top:18px}
.cf-rows small{display:block; font-size:12px; text-transform:uppercase; letter-spacing:.4px; font-weight:700; color:var(--sc-muted)}
.cf-rows b{font-size:15px}
.cf-ref{font-family:ui-monospace,Menlo,monospace; letter-spacing:1px; background:var(--sc-soft); padding:2px 8px; border-radius:6px}
.cf-acts{display:flex; gap:8px; flex-wrap:wrap; margin-top:22px}
.cf-acts .btn{flex:1}

/* ================= ESPACE PRATICIEN / ADMIN ================= */
.auth{max-width:460px; margin:0 auto; padding:60px 20px 90px}
.dash{max-width:1068px; margin:0 auto; padding:30px 20px 90px}
.dash-h{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:22px}
.dash-h .me{display:flex; gap:16px; align-items:center}
.dash-h h1{margin:0; font-size:28px; letter-spacing:-.04em}
.dash-h p{margin:2px 0 0; color:var(--sc-muted)}
.tabs{display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap}
.tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px}
.tile{background:#fff; border:1px solid #ece4d8; border-radius:20px; padding:18px}
.tile small{font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--sc-muted); font-weight:700}
.tile b{display:block; font-size:32px; letter-spacing:-1px}
.tile.or{background:linear-gradient(135deg,#fff7e6,#fde7b8); border-color:#f6d48d}
.tbl-wrap{border:1px solid #ece4d8; border-radius:20px; overflow:auto; background:#fff}
.tbl{width:100%; border-collapse:collapse; font-size:14.5px}
.tbl th{text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--sc-muted); padding:13px; border-bottom:1px solid #ece4d8; white-space:nowrap}
.tbl td{padding:13px; border-bottom:1px solid #f1ebe1; vertical-align:middle}
.tbl tr:last-child td{border:0}
.tbl tr:hover td{background:#fcfaf6}
.st{font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; white-space:nowrap}
.st.en_attente{background:#fff7e6; color:var(--sc-orange-ink)}
.st.confirme,.st.valide{background:var(--ok-soft); color:#166534}
.st.annule,.st.refuse{background:#f1f3f7; color:#988c7e}
.mini-btn{border:1.5px solid var(--sc-line); background:#fff; border-radius:9px; padding:6px 11px; font-size:12.5px; font-weight:700; cursor:pointer; text-decoration:none; color:var(--sc-ink); display:inline-block}
.mini-btn.ok:hover{background:var(--ok); color:#fff; border-color:var(--ok)}
.mini-btn.ko:hover{background:var(--ko); color:#fff; border-color:var(--ko)}
.adm-card{display:grid; grid-template-columns:auto 1fr auto; gap:20px; background:#fff; border:1px solid #ece4d8; border-radius:24px; padding:22px; margin-bottom:14px; align-items:start}
.adm-card h3{margin:0; font-size:19px}
.adm-card dl{display:grid; grid-template-columns:150px 1fr; gap:6px 12px; margin:12px 0 0; font-size:14px}
.adm-card dt{color:var(--sc-muted)} .adm-card dd{margin:0; font-weight:600}
.adm-docs{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap}
.adm-docs a{display:block; width:180px; border-radius:14px; overflow:hidden; border:1px solid #ece4d8; text-decoration:none; color:var(--sc-ink); font-size:12.5px; font-weight:700}
.adm-docs a img{display:block; width:100%; height:110px; object-fit:cover; background:var(--sc-soft)}
.adm-docs a span{display:block; padding:8px 10px}
.adm-docs a .pdf{height:110px; display:flex; align-items:center; justify-content:center; background:#fdecec; color:var(--ko); font-size:30px}
.adm-act{display:flex; flex-direction:column; gap:8px; min-width:200px}
.adm-act textarea{border:1.5px solid var(--sc-line); border-radius:12px; padding:9px; font-size:13.5px; resize:vertical}
/* ---------- Footer (identique Flexjob) ---------- */
.sc-footer{--ft-bg:#1c1715; --ft-txt:#d3ccc3; --ft-dim:#a49c92; --ft-line:rgba(255,255,255,.09); background:var(--ft-bg); color:var(--ft-txt); position:relative}
.sc-footer a{text-decoration:none; transition:color .2s, background .2s, transform .2s}
.sc-footer .sc-wrap{max-width:1068px; margin:0 auto; padding:0 16px}
.sc-footer .sc-logo{color:#fff !important; font-size:22px}
.sc-foot-grid{display:grid; grid-template-columns:1fr 1fr; gap:34px 20px; padding:52px 0 34px}
.sc-foot-brand{grid-column:1/-1}
.sc-foot-brand p{font-size:14.5px; line-height:1.7; color:var(--ft-txt); margin:18px 0 22px; max-width:320px}
.sc-social{display:flex; flex-wrap:wrap; gap:8px}
.sc-social a{width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); color:#fff; font-size:14px; display:inline-flex; align-items:center; justify-content:center}
.sc-social a:hover{background:#f59e0b; color:#1c1715; transform:translateY(-3px)}
.sc-foot-col h4{font-size:14px; font-weight:600; color:#ece4d8; margin:6px 0 20px; letter-spacing:.2px; text-transform:uppercase}
.sc-foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px}
.sc-foot-col li a{color:var(--ft-txt); font-size:14.5px}
.sc-foot-col li a:hover{color:#f59e0b}
.sc-foot-pay{grid-column:1/-1}
.sc-pay{display:flex; flex-wrap:wrap; gap:6px}
.sc-pay span{width:40px; height:28px; border-radius:6px; background:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:15px; color:#1c1715}
.sc-pay span.txt{font-size:10.5px; font-weight:800; letter-spacing:.3px; color:#00539b}
/* v8.7 : moyens de paiement */
.sc-pay span.pm{width:auto; min-width:54px; height:32px; padding:0 10px; border-radius:7px; font-family:Arial,Helvetica,sans-serif; box-shadow:0 1px 0 rgba(0,0,0,.08)}
.sc-pay .pm-cmi{font-size:13px; font-weight:900; letter-spacing:.5px; color:#0a4c94}
.sc-pay .pm-cmi::before{content:""; width:7px; height:7px; border-radius:50%; background:#e30613; margin-right:5px}
.sc-pay .pm-visa{font-size:15px; font-weight:900; font-style:italic; letter-spacing:.5px; color:#1a1f71}
.sc-pay .pm-mc{padding:0 8px}
.sc-pay .pm-pp{font-size:14px; font-weight:800; font-style:italic}
.sc-pay .pm-pp b{color:#003087; font-weight:800} .sc-pay .pm-pp i{color:#009cde}
.sc-secure{display:flex; align-items:center; gap:8px; margin:14px 0 0; font-size:13px; color:var(--ft-dim)}
.sc-secure i{color:#22c55e; font-size:12px}
.sc-foot-col h4.sc-app-t{margin-top:26px; margin-bottom:14px}
.sc-apps{display:flex; flex-wrap:wrap; gap:8px}
.sc-apps a{display:inline-flex; align-items:center; gap:9px; padding:7px 13px 7px 11px; border-radius:10px; border:1px solid rgba(255,255,255,.16); color:#fff !important; font-size:13px; font-weight:700; line-height:1.1}
.sc-apps a i{font-size:19px; color:#fff}
.sc-apps a small{display:block; font-size:9.5px; font-weight:500; color:var(--ft-dim); text-transform:uppercase; letter-spacing:.4px}
.sc-apps a:hover{border-color:#f59e0b; background:rgba(245,158,11,.1)}
.sc-cities{border-top:1px solid var(--ft-line); padding:22px 0; display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; font-size:13.5px}
.sc-cities b{color:#ece4d8; font-weight:600; margin-right:4px}
.sc-cities a{color:var(--ft-dim)}
.sc-cities a:hover{color:#f59e0b}
.sc-bottom{max-width:1068px; margin:0 auto; padding:0 16px}
.sc-bottom-in{border-top:1px solid var(--ft-line); padding:20px 0 24px; display:flex; flex-direction:column; text-align:center; gap:12px; font-size:13.5px; color:var(--ft-dim)}
.sc-bottom-in nav{display:flex; flex-wrap:wrap; justify-content:center; gap:10px 22px}
.sc-bottom-in a{color:var(--ft-txt)}
.sc-bottom-in a:hover{color:#f59e0b}
.sc-top{position:fixed; right:22px; bottom:22px; z-index:999; width:46px; height:46px; border-radius:50%; border:0; background:#f59e0b; color:#1c1715; font-size:16px; cursor:pointer;
  box-shadow:0 10px 24px rgba(245,158,11,.4); opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .3s, transform .3s}
.sc-top.on{opacity:1; pointer-events:auto; transform:none}
@media (min-width:768px){
  .sc-footer .sc-wrap,.sc-bottom{padding:0 20px}
  .sc-foot-grid{grid-template-columns:repeat(3,1fr)}
  .sc-foot-pay{grid-column:auto}
  .sc-bottom-in{flex-direction:row; justify-content:space-between; text-align:left}
}
@media (min-width:1024px){
  .sc-foot-grid{grid-template-columns:1.45fr 1fr 1fr 1fr 1.15fr; gap:36px; padding:60px 0 44px}
  .sc-foot-brand{grid-column:auto}
}



/* ============================================================
   v3 – palette chaude (sans bleu) : crème, sable, encre, orange
   ============================================================ */
:root{--cream:#faf6ef; --sand:#f3ebdf; --ink:#1c1715; --terra:#c2410c}
body{background:#fffdf9}
a{color:var(--sc-orange-ink)}
::selection{background:#fde3b0; color:var(--ink)}

/* Hero clair */
.hx{color:var(--ink); background:radial-gradient(700px 420px at 92% 10%,rgba(245,158,11,.22),transparent 65%),radial-gradient(600px 400px at -10% 110%,rgba(194,65,12,.10),transparent 60%),var(--cream); padding-top:60px}
.hx .zel,.band .zel,.pf .zel{color:#c08a3e; opacity:.16}
.hx h1{color:var(--ink)}
.hx h1 .serif{color:var(--sc-orange-ink)}
.hx h1 .smile svg{color:var(--sc-orange)}
.hx-lead{color:#5c524a; opacity:1}
.hx-kick{background:#fff; border:1px solid #eadfce; color:#6d635a; box-shadow:0 6px 18px rgba(28,23,21,.05)}
.hx-kick b{color:var(--ink)}
.ss-box{border:1px solid #eadfce; box-shadow:0 30px 60px rgba(120,70,20,.14)}
.ss-box:focus-within{box-shadow:0 30px 60px rgba(120,70,20,.16),0 0 0 4px rgba(245,158,11,.35)}
.ss-f>i{color:var(--sc-orange-ink)}
.ss-geo{background:var(--sand); color:var(--sc-orange-ink)}
.ss-geo:hover{background:var(--ink); color:#fff}
.hx-trust{color:#6d635a}
.hx-trust span{background:#fff; border:1px solid #eadfce; padding:7px 12px; border-radius:999px}
.feed-lbl{color:#6d635a}
.fc{background:#fff; border:1px solid #eadfce; color:var(--ink); backdrop-filter:none; box-shadow:0 8px 22px rgba(120,70,20,.06)}
.fc:hover{background:#fff; border-color:var(--sc-orange); color:var(--ink); box-shadow:0 14px 30px rgba(120,70,20,.12)}
.fc small,.fc .t em{color:#8b7f72}
.hx-band{background:var(--ink); border-top:0; color:#fff}
.hx-band div{border-color:rgba(255,255,255,.08)}
.hx-band strong{color:#fff}
.hx-band strong::after{content:""; display:block; width:22px; height:3px; border-radius:3px; background:var(--sc-orange); margin:8px auto 6px}

/* macaron rotatif */
.seal{position:absolute; right:-30px; top:-46px; z-index:3; width:118px; height:118px; border-radius:50%; background:var(--sc-orange); color:var(--ink);
  display:flex; align-items:center; justify-content:center; box-shadow:0 18px 40px rgba(245,158,11,.4)}
.seal svg{position:absolute; inset:0; width:100%; height:100%; animation:spinSlow 18s linear infinite}
.seal text{font:800 10.5px 'Plus Jakarta Sans',sans-serif; letter-spacing:2.2px; text-transform:uppercase; fill:var(--ink)}
.seal i{font-size:30px}
.feed-col{position:relative}

/* Bandeaux de page clairs */
.band,.pf{color:var(--ink); background:radial-gradient(700px 380px at 95% 0%,rgba(245,158,11,.18),transparent 65%),var(--cream); border-bottom:1px solid #eee3d3}
.band h1,.pf-id h1{color:var(--ink)}
.band h1 .serif{color:var(--sc-orange-ink)}
.band .sub,.pf-id .role{color:#5c524a; opacity:1}
.pf-id .role b{color:var(--ink)}
.crumbs{color:#8b7f72} .crumbs a{color:#5c524a} .crumbs a:hover{color:var(--sc-orange-ink)}
.pf-badges .tag{background:#fff; color:#4a4038; border:1px solid #eadfce}
.pf-badges .tag.vf{background:var(--ink); color:#fff; border-color:var(--ink)}
.pf-badges .tag.vf i{color:var(--sc-orange)}
.pf-badges .tag.ur{background:#fdecec; color:#b91c1c; border-color:#f8d0d0}
.pf-id .ava.lg{box-shadow:0 0 0 6px #fff,0 24px 50px rgba(120,70,20,.18)}
.pf-id .ava.lg .ava-ok{border-color:#fff}
.pf-nav{background:#fffdf9; border-color:#eee3d3}
.dir-top{background:rgba(255,253,249,.94); border-color:#eee3d3}

/* Avatars & badge vérifié */
.ava-ok{background:var(--ok)}
.tag.bl{background:#e7f5ec; color:#166534}

/* Sections & cartes : touches éditoriales */
.sec.soft{background:var(--sand)}
.sec.sand{background:var(--cream)}
.sec-h h2 .serif,.blk>h2 .serif{color:var(--terra)}
.eyebrow{background:#fff; border:1px solid #eadfce; color:var(--sc-orange-ink)}
.eyebrow.dk{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.14); color:#e8dccb}
.need,.bx,.city,.step,.blk,.rc,.wz,.tile,.adm-card,.tbl-wrap,.empty{border-color:#eadfce}
.need .ic{color:var(--ink)}
.need.big,.bx-c,.pro,.wz-side{background:var(--ink)}
.need.big::before{background:#2c221c}
.bx-b{background:linear-gradient(150deg,#ffe9bf,#fbc96b); border-color:#f6c766}
.verify .card{background:linear-gradient(135deg,#3a2c22,#7c3f10); box-shadow:0 14px 30px rgba(124,63,16,.35)}
.city .n,.blk>h2 i,.sg a .ic,.chips span i,.adm-docs a .pdf{color:var(--sc-orange-ink)}
.city .n,.blk>h2 i,.sg a .ic,.step .ui{background:var(--sand)}
.blk>h2 i{border-radius:50%}
.slot,.bk-slots span,.ui-slots span{background:var(--sand); color:var(--ink)}
.slot:hover,.bk-slots span:hover{background:#f8e2bd; color:var(--ink)}
.slot:hover{background:var(--sc-orange)}
.bk-h,.cf-top{background:linear-gradient(120deg,#1c1715 0%,#2c221c 60%,#4a2f12 130%)}
.bk-h p,.cf-top p{color:#c9bdae}
.tl .d{border-color:var(--ink)}
.tl li.frm .k{color:#4a4038; background:var(--sand)}
.chip.on,.pill input:checked+span,.bk-day.on,.pages span,.checks input:checked+span{background:var(--ink); border-color:var(--ink)}
.fl input:focus,.fl select:focus,.fl textarea:focus,.rep-row input:focus{border-color:var(--sc-orange); box-shadow:0 0 0 4px rgba(245,158,11,.18)}
.drop:hover,.drop.over{border-color:var(--sc-orange); background:#fff8ec}
.alert.info{background:#fff3da; color:#8a4b08}
.pin{background:var(--ink)}
.mini{border-color:#f1ebe1}
.need::after{content:""; position:absolute; left:22px; bottom:0; width:0; height:3px; background:var(--sc-orange); transition:width .4s var(--ease)}
.need:hover::after{width:44px}
.need.big::after{display:none}
.rc-cal{background:linear-gradient(180deg,#fcfaf6,#f8f3ec)}
.rc-cal-h b{color:#166534}
.sc-promo{background:linear-gradient(100deg,#f3ebdf,#fde7c0)}
/* grain discret pour un rendu plus « print » */
.hx::before,.band::before,.pf::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:.35; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .35 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (max-width:640px){ .seal{width:92px; height:92px; right:-6px; top:-30px} .seal text{font-size:8.5px} .hx-trust span{padding:5px 10px} }


/* ============================================================
   v4 – comptes patients & messagerie
   ============================================================ */
.badge{display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--sc-orange); color:var(--ink); font-style:normal; font-size:11.5px; font-weight:800; line-height:1}
.chip.on .badge{background:var(--sc-orange); color:var(--ink)}
.pf-cta{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px}
.pw{position:relative}
.pw input{padding-right:46px !important}
.pw button{position:absolute; right:6px; top:50%; transform:translateY(-50%); width:36px; height:36px; border:0; border-radius:10px; background:transparent; cursor:pointer; color:#8b7f72}
.pw button:hover{background:var(--sand); color:var(--ink)}
.who-me{display:flex; align-items:center; gap:12px; background:var(--cream); border:1px solid #eadfce; border-radius:14px; padding:10px 12px; margin-bottom:14px}
.who-me div{flex:1; min-width:0} .who-me b{display:block; font-size:14.5px} .who-me small{display:block; color:#8b7f72; font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.who-me a{font-size:12.5px; font-weight:700; color:var(--sc-orange-ink)}
.acc-opt{background:var(--cream); border:1px dashed #e4d9c9; border-radius:14px; padding:12px 14px; margin:4px 0 12px}
.acc-opt .sw{font-size:13.5px; align-items:flex-start} .acc-opt .sw small{display:block; font-weight:500; color:#8b7f72}
.acc-opt .fl{margin:12px 0 0}
.acc-login{margin:10px 0 0; font-size:12.5px; color:#8b7f72}

/* pages compte */
.acc-bg{background:var(--cream); min-height:60vh; position:relative}
.acc-auth{max-width:1068px; margin:0 auto; padding:56px 20px 90px; display:grid; grid-template-columns:1fr 440px; gap:48px; align-items:center}
.acc-pitch h1{font-size:clamp(32px,4.4vw,50px); letter-spacing:-.045em; line-height:1.02; margin:16px 0 26px}
.acc-pitch h1 .serif{color:var(--terra)}
.acc-pitch ul{list-style:none; margin:0 0 22px; padding:0; display:grid; gap:14px}
.acc-pitch li{display:flex; gap:14px; align-items:flex-start}
.acc-pitch li>i{width:44px; height:44px; flex:none; border-radius:14px; background:#fff; border:1px solid #eadfce; color:var(--sc-orange-ink); display:flex; align-items:center; justify-content:center; font-size:17px}
.acc-pitch li b{display:block; font-size:16px} .acc-pitch li span{color:#6d635a; font-size:14.5px}
.acc-card{background:#fff; border:1px solid #eadfce; border-radius:26px; padding:26px; box-shadow:0 30px 70px rgba(120,70,20,.12)}
.acc-tabs{display:grid; grid-template-columns:1fr 1fr; margin-bottom:20px}
.acc-tabs a{display:block; text-align:center; padding:10px; border-radius:10px; font-weight:700; font-size:14px; color:#4a4038; text-decoration:none}
.acc-tabs a.on{background:#fff; color:var(--ink); box-shadow:0 2px 8px rgba(28,23,21,.1)}
.acc-h2{font-size:15px; text-transform:uppercase; letter-spacing:.6px; color:#8b7f72; margin:26px 0 12px}
.rdv-list{display:grid; gap:12px}
.rdv-card{display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; background:#fff; border:1px solid #eadfce; border-radius:22px; padding:16px 18px; transition:box-shadow .25s}
.rdv-card:hover{box-shadow:0 16px 36px rgba(120,70,20,.08)}
.rdv-card.past{opacity:.72}
.rdv-card .cf-date{width:70px}
.rdv-card .cf-date span{display:block; font-size:12px; color:#8b7f72; padding-bottom:6px; margin-top:-6px}
.rdv-i b{display:block; font-size:16px} .rdv-i small{display:block; color:#6d635a; font-size:13.5px; margin:2px 0 8px}
.rdv-a{display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end}
.rdv-a .btn{padding:10px 14px; font-size:13.5px}

/* bulle compte */
.acct{position:fixed; left:20px; bottom:22px; z-index:990; display:flex; align-items:center; gap:10px; padding:7px 16px 7px 7px; border-radius:999px; background:var(--ink); color:#fff; text-decoration:none;
  box-shadow:0 14px 30px rgba(28,23,21,.3); transition:transform .25s, box-shadow .25s}
.acct:hover{color:#fff; transform:translateY(-3px); box-shadow:0 18px 36px rgba(28,23,21,.36)}
.acct-i{position:relative; width:38px; height:38px; border-radius:50%; background:var(--sc-orange); color:var(--ink); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13.5px}
.acct-i .badge{position:absolute; top:-5px; right:-6px; background:#ef4444; color:#fff; border:2px solid var(--ink); animation:pop .4s var(--ease)}
.acct-t{font-weight:700; font-size:13.5px; line-height:1.15} .acct-t small{display:block; font-weight:500; font-size:11.5px; color:#c9bdae}

/* ---------- Messagerie ---------- */
.chat{display:grid; grid-template-columns:320px 1fr; height:calc(100vh - 260px); min-height:520px; background:#fff; border:1px solid #eadfce; border-radius:24px; overflow:hidden}
.chat-list{border-right:1px solid #eee3d3; overflow-y:auto; background:#fffdf9}
.chat-list-h{display:flex; justify-content:space-between; align-items:baseline; padding:18px 18px 10px; position:sticky; top:0; background:#fffdf9; z-index:1}
.chat-list-h b{font-size:18px; letter-spacing:-.3px} .chat-list-h span{font-size:12.5px}
.cl{display:flex; gap:12px; align-items:center; padding:12px 18px; text-decoration:none; color:var(--ink); border-left:3px solid transparent; transition:background .2s}
.cl:hover{background:var(--cream); color:var(--ink)}
.cl.on{background:var(--sand); border-left-color:var(--sc-orange)}
.cl-t{flex:1; min-width:0} .cl-t b{display:block; font-size:14.5px} .cl-t small{display:block; font-size:12.5px; color:#8b7f72; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.cl.unread .cl-t small{color:var(--ink); font-weight:700}
.cl-m{display:flex; flex-direction:column; align-items:flex-end; gap:5px; font-size:11.5px; color:#a39789; flex:none}
.cl-m em{font-style:normal; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--sc-orange); color:var(--ink); font-weight:800; display:flex; align-items:center; justify-content:center}
.chat-empty-l{padding:30px 22px; text-align:center; color:#6d635a; font-size:14px}
.chat-empty-l i{font-size:30px; color:var(--sc-orange); margin-bottom:10px}
.chat-main{display:flex; flex-direction:column; min-width:0; min-height:0; background:linear-gradient(180deg,#fff,#fffaf3)}
.chat-ph{margin:auto; text-align:center; max-width:340px; padding:30px; color:#6d635a}
.chat-ph .ic{width:72px; height:72px; margin:0 auto 14px; border-radius:22px; background:var(--sand); color:var(--sc-orange-ink); display:flex; align-items:center; justify-content:center; font-size:28px}
.chat-ph h3{color:var(--ink); margin:0 0 6px}
.chat-h{display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid #eee3d3; background:#fff}
.chat-h-t{flex:1; min-width:0} .chat-h-t b{display:block; font-size:15.5px} .chat-h-t small{display:block; font-size:12.5px; color:#8b7f72; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.chat-h .btn{padding:9px 13px; font-size:13px}
.chat-back{display:none; width:36px; height:36px; border-radius:50%; align-items:center; justify-content:center; color:var(--ink); background:var(--sand)}
.chat-msgs{flex:1; overflow-y:auto; padding:18px 18px 8px; display:flex; flex-direction:column; gap:6px; scroll-behavior:smooth}
.chat-intro{display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:10px 20px 18px; color:#8b7f72; font-size:13px}
.chat-intro b{color:var(--ink); font-size:15px}
.chat-intro .ava{--s:64px}
.chat-day{display:flex; justify-content:center; margin:10px 0 6px}
.chat-day span{font-size:11.5px; font-weight:700; color:#8b7f72; background:#fff; border:1px solid #eee3d3; padding:4px 12px; border-radius:999px}
.msg{max-width:min(76%,520px); display:flex; flex-direction:column; animation:scUp .25s var(--ease)}
.msg p{margin:0; padding:10px 14px; border-radius:18px; font-size:14.5px; line-height:1.5; overflow-wrap:anywhere; white-space:normal}
.msg time{font-size:11px; color:#a39789; margin:3px 8px 0; display:flex; align-items:center; gap:5px}
.msg.them{align-self:flex-start} .msg.them p{background:#fff; border:1px solid #eadfce; border-bottom-left-radius:6px}
.msg.me{align-self:flex-end; align-items:flex-end} .msg.me p{background:var(--ink); color:#fff; border-bottom-right-radius:6px}
.msg.me.pending p{opacity:.6}
.msg.me.fail p{background:#b91c1c}
.tk{display:inline-block; width:14px; height:8px; position:relative}
.tk::before{content:""; position:absolute; left:2px; top:0; width:8px; height:4px; border-left:2px solid #c4b8aa; border-bottom:2px solid #c4b8aa; transform:rotate(-45deg)}
.tk.vu::before{border-color:var(--sc-orange)}
.tk.vu::after{content:""; position:absolute; left:7px; top:0; width:8px; height:4px; border-left:2px solid var(--sc-orange); border-bottom:2px solid var(--sc-orange); transform:rotate(-45deg)}
.chat-quick{display:flex; gap:6px; overflow-x:auto; padding:6px 16px 2px; scrollbar-width:none}
.chat-quick button{flex:none; border:1px solid #eadfce; background:#fff; border-radius:999px; padding:7px 12px; font-size:12.5px; font-weight:600; cursor:pointer; color:#4a4038; transition:all .2s}
.chat-quick button:hover{border-color:var(--sc-orange); background:#fff8ec}
.chat-form{display:flex; gap:8px; align-items:flex-end; padding:10px 14px 4px}
.chat-form textarea{flex:1; resize:none; border:1.5px solid #e4d9c9; border-radius:18px; padding:11px 14px; font-size:15px; max-height:140px; line-height:1.4; background:#fff}
.chat-form textarea:focus{outline:0; border-color:var(--sc-orange); box-shadow:0 0 0 4px rgba(245,158,11,.15)}
.chat-form button{width:46px; height:46px; flex:none; border:0; border-radius:50%; background:var(--sc-orange); color:var(--ink); font-size:16px; cursor:pointer; transition:transform .2s, background .2s}
.chat-form button:hover{background:var(--sc-orange-dark); transform:scale(1.06)}
.chat-hint{margin:0; padding:2px 18px 12px; font-size:11.5px; color:#a39789}
.chat-new{position:sticky; bottom:6px; align-self:center; background:var(--sc-orange); color:var(--ink); border:0; font-weight:800; font-size:12.5px; padding:7px 14px; border-radius:999px; cursor:pointer; box-shadow:0 8px 18px rgba(245,158,11,.35)}

@media (max-width:991px){
  .acc-auth{grid-template-columns:1fr; gap:28px; padding-top:34px}
  .chat{grid-template-columns:1fr; height:calc(100vh - 210px)}
  .chat.has-active .chat-list{display:none}
  .chat:not(.has-active) .chat-main{display:none}
  .chat-back{display:inline-flex}
  .chat-h .btn span{display:none}
  .rdv-card{grid-template-columns:auto 1fr} .rdv-a{grid-column:1/-1; justify-content:flex-start}
}
@media (max-width:991px){ body:has(.mbar) .acct{display:none} }
@media (max-width:640px){ .acct-t{display:none} .acct{padding:6px; left:14px; bottom:16px} .msg{max-width:88%} }

/* ================= RESPONSIVE ================= */
@media (max-width:991px){
  .hx .wrap{grid-template-columns:1fr}
  .feed{height:300px} .feed-col{margin-top:10px}
  .hx-band .wrap{grid-template-columns:repeat(2,1fr)}
  .hx-band div:nth-child(3){border-left:0}
  .hx-band div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.08)}
  .needs{grid-template-columns:repeat(2,1fr)}
  .need.big{grid-row:auto; grid-column:span 2}
  .bento{grid-template-columns:1fr 1fr}
  .bx-a{grid-column:span 2; grid-row:auto}
  .bx-b,.bx-c{grid-column:span 1}
  .cities{grid-template-columns:repeat(2,1fr)}
  .how{grid-template-columns:1fr}
  .pro{grid-template-columns:1fr; padding:34px}
  .dir{grid-template-columns:1fr}
  .dir-map{display:none}
  .dir-map.on{display:block; position:fixed; inset:55px 0 0 0; height:auto; border-radius:0; z-index:900}
  .pf-page{grid-template-columns:1fr}
  .bk{position:static}
  .facts{grid-template-columns:1fr 1fr}
  .mbar{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:950; background:#fff; border-top:1px solid #ece4d8; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); gap:12px; align-items:center; box-shadow:0 -10px 30px rgba(28,23,21,.08)}
  .mbar div{flex:1; min-width:0; font-size:13px} .mbar b{display:block; font-size:14.5px}
  .sc-top{bottom:84px}
  .wz-wrap{grid-template-columns:1fr}
  .wz-side{position:static}
  .wz-nav{flex-direction:row; overflow-x:auto}
  .wz-nav li{flex:none; font-size:0; padding:6px} .wz-nav li.on{font-size:14px; padding:6px 12px 6px 6px}
  .tiles{grid-template-columns:1fr 1fr}
  .adm-card{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ss-row{grid-template-columns:1fr}
  .ss-f+.ss-f::before{left:14px; right:14px; top:-2px; bottom:auto; width:auto; height:1px}
  .ss-go{padding:14px; justify-content:center}
  .hx h1{font-size:44px}
  .needs,.cities{grid-template-columns:1fr 1fr}
  .need{min-height:140px; padding:18px}
  .bento{grid-template-columns:1fr}
  .bx-a,.bx-b,.bx-c{grid-column:auto}
  .mini{flex-wrap:wrap} .mini .sl{width:100%} .mini .sl .slot{flex:1}
  .rc-days{grid-template-columns:repeat(3,1fr)} .rc-day:nth-child(n+4){display:none}
  .pf-id{flex-direction:column; align-items:flex-start; gap:18px}
  .ava.lg{--s:104px}
  .row2,.row3,.recap,.cf-rows,.done-steps{grid-template-columns:1fr}
  .rep-row{grid-template-columns:1fr 1fr; } .rep-row input:nth-child(3){grid-column:auto}
  .wz{padding:20px}
  .hr-tbl td:first-child{width:auto}
  .sec{padding:68px 0}
  .tl::before{left:43px} .tl li{grid-template-columns:36px 16px 1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important; transition:none !important}
  .rv,.hx-l>*,.feed{opacity:1 !important; transform:none !important}
  .hx h1 .smile svg path{stroke-dashoffset:0}
}
.pf-page>*,.dir>*,.wz-wrap>*,.hx .wrap>*{min-width:0}
.bk-days{min-width:0}
.facts.f3{grid-template-columns:repeat(3,1fr)}
.facts b{overflow-wrap:anywhere}
@media (max-width:640px){ .facts.f3{grid-template-columns:1fr} }

/* ============ v5 : agenda hebdomadaire de l'espace praticien ============ */
.ag-2{display:grid; grid-template-columns:1fr 360px; gap:18px; align-items:start}
@media(max-width:900px){.ag-2{grid-template-columns:1fr}}

/* ============ v6 : galerie du cabinet & derniers cas (fiche publique) ============ */
.cas-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px}
.cas-card{border:1px solid #ece4d8; border-radius:20px; overflow:hidden; background:#fff; display:flex; flex-direction:column}
.ba{position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--sc-soft); user-select:none}
.ba img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.ba-before{position:absolute; inset:0; clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.ba-line{position:absolute; top:0; bottom:0; left:var(--p); width:3px; margin-left:-1.5px; background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.12); pointer-events:none}
.ba-line::after{content:"\2194"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:34px; height:34px; border-radius:50%; background:#fff; color:var(--sc-ink); display:flex; align-items:center; justify-content:center; font-weight:800; box-shadow:0 4px 12px rgba(0,0,0,.2)}
.ba input[type=range]{position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; margin:0}
.ba-tag{position:absolute; top:10px; background:rgba(28,23,21,.72); color:#fff; font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; padding:4px 9px; border-radius:999px; pointer-events:none}
.ba-tag.l{left:10px} .ba-tag.r{right:10px; background:var(--sc-orange); color:#1c1715}
.cas-b{padding:14px 16px 16px}
.cas-b h3{margin:4px 0 6px; font-size:16px; letter-spacing:-.2px}
.cas-b p{margin:0; font-size:13.5px; color:var(--sc-muted)}
.cas-k{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--sc-orange-ink)}
.cas-all summary{cursor:pointer; font-weight:700; margin-top:14px; color:var(--sc-blue)}

/* Espace praticien : onglet Photos & cas */
.ph-grid2{display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start}
@media(max-width:1000px){.ph-grid2{grid-template-columns:1fr}}
.ph-drop{margin-bottom:4px} .ph-drop .pv{width:64px; height:64px; border-radius:16px}
.ph-empty{margin-top:18px; font-size:14px}
.cas-list{display:flex; flex-direction:column; gap:12px; margin-top:20px}
.cas-item{display:grid; grid-template-columns:auto 1fr; gap:6px 12px; border:1px solid #ece4d8; border-radius:14px; padding:8px; background:#fff}
.cas-item .ph-act{grid-column:1/-1; padding:0}
.cas-imgs{display:flex; gap:6px}
.cas-imgs figure{margin:0; position:relative}
.cas-imgs img{width:92px; height:70px; object-fit:cover; border-radius:9px; display:block}
.cas-imgs figcaption{position:absolute; left:4px; bottom:4px; background:rgba(28,23,21,.7); color:#fff; font-size:10px; padding:1px 6px; border-radius:6px}
.cas-txt b{display:block; font-size:14px} .cas-txt small{color:var(--sc-muted); font-size:12px}


/* ============================================================
   v7 : AGENDA (jour · semaine · mois) + panneau d'action
   ============================================================ */
:root{--lb-g:#16a34a; --lb-gs:#effaf2; --at:#f59e0b; --ats:#fff5dc; --cf:#2b211b; --bq:#a89d90}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
form.inl{display:inline}
a.tile{color:inherit; text-decoration:none; transition:transform .2s var(--ease), box-shadow .2s}
a.tile:hover{transform:translateY(-3px); box-shadow:0 12px 26px rgba(28,23,21,.08); color:inherit}
.tile.warn b{color:var(--sc-orange-ink)}
@media(max-width:760px){.tiles{grid-template-columns:1fr 1fr} .tile b{font-size:26px}}

.ag-views{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px}
.seg{display:inline-flex; background:#fff; border:1.5px solid var(--sc-line); border-radius:16px; padding:4px; gap:2px}
.seg a{display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:12px; font-weight:700; font-size:14px; color:var(--sc-ink); text-decoration:none; transition:background .2s}
.seg a:hover{background:var(--sc-soft)}
.seg a.on{background:var(--sc-navy); color:#fff}
.ag-lists{display:flex; gap:6px; flex-wrap:wrap}
.ag-lists .chip{padding:7px 12px; font-size:13px}

.agx{background:#fff; border:1px solid #ece4d8; border-radius:26px; padding:20px; box-shadow:0 18px 40px -28px rgba(28,23,21,.25)}
.ag-bar{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; margin-bottom:12px}
.ag-navs{display:flex; gap:6px; align-items:center}
.ag-arrow{width:40px; height:40px; border-radius:12px; border:1.5px solid var(--sc-line); display:inline-flex; align-items:center; justify-content:center; color:var(--sc-ink); text-decoration:none; transition:all .2s}
.ag-arrow:hover{background:var(--sc-navy); border-color:var(--sc-navy); color:#fff}
.ag-title{margin:0; font-size:22px; letter-spacing:-.03em; text-align:center}
.wk .sl.passe .sl-m{display:none}
.ag-goto label{display:inline-flex; align-items:center; gap:8px; border:1.5px solid var(--sc-line); border-radius:12px; padding:0 10px; height:40px; cursor:pointer; color:var(--sc-muted)}
.ag-goto input{border:0; outline:0; background:transparent; font-weight:600; font-size:13.5px; color:var(--sc-ink)}
.ag-legend{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:16px}
.lg{display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; padding:5px 10px 5px 8px; border-radius:999px; background:var(--sc-soft)}
.lg i{width:11px; height:11px; border-radius:4px; display:inline-block}
.lg b{font-weight:800}
.lg.libre i{background:var(--lb-g)} .lg.en_attente i{background:var(--at)} .lg.confirme i{background:var(--cf)}
.lg.bloque i{background:repeating-linear-gradient(135deg,var(--bq) 0 2px,#eee8df 2px 4px)}
.ag-tip{margin-left:auto; font-size:12.5px; color:var(--sc-muted)}
@media(max-width:760px){.ag-bar{grid-template-columns:1fr auto} .ag-title{grid-column:1/-1; order:-1; text-align:left; font-size:19px} .ag-tip{display:none} .agx{padding:14px; border-radius:20px}}

/* --- Créneau (commun) --- */
.sl{position:relative; display:flex; flex-direction:column; justify-content:center; gap:1px; min-height:48px; padding:6px 9px; border-radius:12px; font-size:12.5px; line-height:1.25;
  text-decoration:none; color:var(--sc-ink); border:1.5px solid transparent; transition:transform .15s var(--ease), box-shadow .15s; overflow:hidden; min-width:0}
a.sl:hover{transform:translateY(-2px); box-shadow:0 8px 18px -8px rgba(28,23,21,.35); z-index:2; color:var(--sc-ink)}
.sl-h{display:none; font-style:normal; font-size:11px; font-weight:800; opacity:.7}
.sl-n{font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sl-m{color:inherit; opacity:.75; font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sl-new{font-style:normal; font-size:10.5px; font-weight:800; background:var(--ok-soft); color:#166534; padding:1px 7px; border-radius:999px; margin-left:4px}
.sl-badge{position:absolute; top:5px; right:6px; width:8px; height:8px; border-radius:50%; background:var(--at); font-size:0; box-shadow:0 0 0 3px rgba(245,158,11,.25); animation:scPulse 1.8s infinite}
.sl.libre{background:var(--lb-gs); border:1.5px dashed #9fd8b0; color:#166534}
.sl.libre .sl-free{font-weight:700; opacity:.55; transition:opacity .2s}
a.sl.libre:hover{background:#dff5e6; border-style:solid; border-color:var(--lb-g)} a.sl.libre:hover .sl-free{opacity:1}
.sl.rdv.confirme{background:linear-gradient(135deg,#2b211b,#46352a); color:#fff; border-color:#2b211b}
.sl.rdv.confirme .sl-m{opacity:.8} a.sl.rdv.confirme:hover{color:#fff}
.sl.rdv.en_attente{background:var(--ats); border-color:var(--at); color:#5c3b00}
.sl.bloque{background:repeating-linear-gradient(135deg,#f3eee7 0 7px,#ebe4da 7px 14px); color:#7d7166; border-color:#e4dbcf}
.sl.passe{background:#faf8f5; color:#b3a99e; border-color:#f1ece5}
.sl.none{background:transparent; min-height:48px}
.sl.none.rest{background:repeating-linear-gradient(135deg,transparent 0 7px,#f6f2ec 7px 14px); border-radius:12px}
.sl.dayoff{background:repeating-linear-gradient(135deg,#f3eee7 0 7px,#ebe4da 7px 14px); border-color:transparent; border-radius:4px; min-height:48px}
.sl.now{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--ko)}
.sl.now::before{content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--ko)}

/* --- Semaine : grille horaire --- */
.wk-scroll{overflow-x:auto; margin:0 -6px; padding:4px 6px 10px; scrollbar-width:thin}
.wk{display:grid; grid-template-columns:58px repeat(7,minmax(112px,1fr)); gap:6px; min-width:880px}
.wk-corner{display:flex; align-items:center; justify-content:center; color:var(--sc-muted); position:sticky; left:0; background:#fff; z-index:3}
.wk-h{display:flex; flex-direction:column; align-items:center; gap:4px; padding:10px 6px; border-radius:16px; background:var(--sc-soft); text-align:center; min-width:0}
.wk-d{display:flex; flex-direction:column; align-items:center; text-decoration:none; color:var(--sc-ink); line-height:1}
.wk-d span{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--sc-muted)}
.wk-d b{font-size:26px; letter-spacing:-1px; margin-top:3px}
.wk-d:hover b{color:var(--sc-orange-ink)}
.wk-s{font-size:11.5px; font-weight:600; color:var(--sc-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%}
.wk-meter{width:70%; height:5px; border-radius:9px; background:#e6dccd; overflow:hidden}
.wk-meter i{display:block; height:100%; background:linear-gradient(90deg,var(--sc-orange),#d97706); border-radius:9px}
.wk-tg{border:0; background:transparent; font-size:11.5px; font-weight:700; color:var(--sc-muted); cursor:pointer; padding:3px 8px; border-radius:8px; text-decoration:none}
.wk-tg:hover{background:#fff; color:var(--ko)} .wk-tg.ok{color:var(--ok)} .wk-tg.ok:hover{color:var(--ok)}
.wk-h.today{background:var(--sc-navy)} .wk-h.today .wk-d b,.wk-h.today .wk-d span{color:#fff} .wk-h.today .wk-s{color:#d6cbbd}
.wk-h.today .wk-meter{background:#4a3c32} .wk-h.today .wk-tg{color:#d6cbbd} .wk-h.today .wk-tg:hover{background:#3a2e26; color:#fff}
.wk-h.past{opacity:.6}
.wk-h.closed{background:repeating-linear-gradient(135deg,#f3eee7 0 7px,#ebe4da 7px 14px)}
.wk-t{position:sticky; left:0; z-index:3; background:#fff; font-size:12px; font-weight:800; color:var(--sc-muted); display:flex; align-items:center; justify-content:flex-end; padding-right:6px}
.wk-pause{grid-column:1/-1; display:flex; align-items:center; gap:10px; font-size:11.5px; font-weight:700; color:var(--sc-muted); margin:4px 0}
.wk-pause::before,.wk-pause::after{content:""; flex:1; border-top:1.5px dashed var(--sc-line)}
.wk-pause span{background:var(--sc-soft); padding:3px 12px; border-radius:999px}
.wk-empty{grid-column:1/-1; text-align:center; padding:40px; color:var(--sc-muted)}

/* --- Mois --- */
.mo{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; user-select:none}
.mo-dn{text-align:center; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:var(--sc-muted); padding:4px 0 6px}
.mo-dn.we{color:#b8ada0}
.mo-d{position:relative; min-height:118px; border-radius:16px; background:#fff; border:1.5px solid #efe7db; transition:border-color .15s, box-shadow .15s, transform .15s; min-width:0}
.mo-d:hover{border-color:var(--sc-ink); box-shadow:0 10px 22px -14px rgba(28,23,21,.4)}
.mo-a{display:flex; flex-direction:column; gap:5px; height:100%; padding:9px 10px; text-decoration:none; color:var(--sc-ink)}
.mo-n{font-size:15px; font-weight:800; width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; margin:-3px 0 0 -4px}
.mo-d.today .mo-n{background:var(--sc-orange); color:#1c1715}
.mo-d.out{background:transparent; border-color:transparent; opacity:.4}
.mo-d.past:not(.today){background:#fcfbf9} .mo-d.past .mo-a{opacity:.6}
.mo-d.rest{background:repeating-linear-gradient(135deg,#fff 0 7px,#f8f4ee 7px 14px)}
.mo-d.closed{background:repeating-linear-gradient(135deg,#f3eee7 0 7px,#ebe4da 7px 14px); border-color:#e4dbcf}
.mo-d.sel{border-color:var(--sc-navy); box-shadow:0 0 0 3px rgba(28,23,21,.12); transform:scale(.97)}
.mo-bar{display:flex; height:7px; border-radius:9px; overflow:hidden; gap:2px; background:#f1ebe2}
.mo-bar i{display:block; min-width:3px}
.mo-bar .confirme{background:var(--cf)} .mo-bar .attente{background:var(--at)} .mo-bar .libre{background:#9ddcb0} .mo-bar .bloque{background:var(--bq)} .mo-bar .passe{background:#e3dbd0}
.mo-rdv{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px}
.mo-rdv li{font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:2px 6px; border-radius:6px; background:#f4efe8; border-left:3px solid var(--cf)}
.mo-rdv li.en_attente{border-left-color:var(--at); background:var(--ats)}
.mo-rdv li.more{background:transparent; border:0; color:var(--sc-muted); font-weight:700; padding-left:2px}
.mo-f{margin-top:auto; font-size:11.5px; font-weight:700; color:#166534}
.mo-f.warn{color:var(--ko)}
.mo-closed{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:#7d7166; margin-top:auto}
.mo-closed.rest{color:#b8ada0; font-weight:600}
.mo-ck{position:absolute; top:7px; right:7px; z-index:2; width:24px; height:24px; border-radius:50%; border:2px solid #d8cdbd; background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:.0; transition:opacity .15s, background .15s}
.mo-ck input{position:absolute; opacity:0; pointer-events:none}
.mo-ck i{font-size:11px; color:#fff; opacity:0}
.mo-d:hover .mo-ck,.mo-d.sel .mo-ck,.mo-ck:focus-within{opacity:1}
.mo-d.sel .mo-ck{background:var(--sc-navy); border-color:var(--sc-navy)} .mo-d.sel .mo-ck i{opacity:1}
.dragging .mo-d{cursor:cell}
.mo-act{position:sticky; bottom:16px; z-index:20; display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:14px; padding:12px 14px; border-radius:20px; background:var(--sc-navy); color:#fff;
  box-shadow:0 20px 40px -12px rgba(28,23,21,.5); animation:moUp .25s var(--ease)}
.mo-act:not(.on){display:none}
@keyframes moUp{from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none}}
.mo-act input{flex:1; min-width:160px; border:0; border-radius:12px; padding:11px 12px; font-size:14px; color:var(--sc-ink)}
.mo-act .btn{padding:10px 16px} .mo-act .btn-dk{background:var(--ko)} .mo-act .btn-dk:hover{background:#b91c1c}
.mo-cnt{font-weight:600; font-size:14px} .mo-cnt b{font-size:18px; color:var(--sc-orange)}
.mo-x{background:transparent; border:0; color:#fff; width:36px; height:36px; border-radius:50%; cursor:pointer} .mo-x:hover{background:rgba(255,255,255,.12)}
.ag-help{font-size:13px; color:var(--sc-muted); margin:14px 0 0}
@media(max-width:760px){
  .mo{gap:3px} .mo-d{min-height:64px; border-radius:11px} .mo-a{padding:5px; gap:3px; align-items:center}
  .mo-rdv,.mo-f,.mo-closed{display:none} .mo-bar{width:100%; height:5px} .mo-n{margin:0; font-size:13px}
  .mo-ck{opacity:1; width:16px; height:16px; top:auto; bottom:4px; right:50%; margin-right:-8px; border-width:1.5px} .mo-ck i{font-size:8px} .mo-d{min-height:70px} .mo-dn{font-size:10.5px}
  .ag-goto input{width:118px; font-size:12.5px}
}

/* --- Jour --- */
.dv{display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start}
@media(max-width:900px){.dv{grid-template-columns:1fr} .dv-side{order:-1}}
.dv-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px}
.dv-row{display:grid; grid-template-columns:56px 1fr; gap:12px; align-items:stretch}
.dv-row time{font-weight:800; font-size:14px; color:var(--sc-muted); padding-top:15px; text-align:right}
.dv-row.now time{color:var(--ko)}
.sl.big{min-height:56px; padding:10px 40px 10px 14px; font-size:14px; flex-direction:row; justify-content:flex-start; flex-wrap:wrap; align-items:center; column-gap:14px}
.sl.big .sl-n{font-size:15px} .sl.big .sl-m{font-size:13px}
.sl.big .sl-badge{position:static; width:auto; height:auto; font-size:11px; font-weight:800; padding:2px 9px; border-radius:999px; background:var(--at); color:#1c1715; box-shadow:none; animation:none}
.sl-go{position:absolute; right:14px; top:50%; transform:translateY(-50%); opacity:.35; font-size:12px}
.dv-pause{display:flex; align-items:center; gap:10px; color:var(--sc-muted); font-size:12px; font-weight:700; margin:6px 0 6px 68px}
.dv-pause::after{content:""; flex:1; border-top:1.5px dashed var(--sc-line)}
.dv-banner{display:flex; gap:12px; align-items:center; padding:14px 16px; border-radius:16px; background:repeating-linear-gradient(135deg,#f3eee7 0 9px,#ebe4da 9px 18px); margin-bottom:12px}
.dv-banner>i{width:38px; height:38px; border-radius:12px; background:var(--sc-navy); color:#fff; display:flex; align-items:center; justify-content:center}
.dv-banner b{display:block} .dv-banner span{font-size:13px; color:var(--sc-muted)}
.dv-empty{display:flex; flex-direction:column; align-items:center; gap:6px; padding:60px 20px; text-align:center; color:var(--sc-muted); border:1.5px dashed var(--sc-line); border-radius:20px}
.dv-empty i{font-size:34px; color:var(--sc-orange)} .dv-empty b{color:var(--sc-ink); font-size:17px}
.dv-side{display:flex; flex-direction:column; gap:12px}
.dv-card{background:var(--sc-soft); border-radius:20px; padding:18px}
.dv-card h3{font-size:15px; margin:0 0 12px; display:flex; gap:8px; align-items:center}
.dv-card .fl{margin-bottom:10px} .dv-card select,.dv-card input{width:100%; border:1.5px solid var(--sc-line); border-radius:10px; padding:9px 10px; background:#fff}
.dv-card .row2{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.btn-block{width:100%} .dv-card form{display:block}
.donut{--a1:0%; --a2:0%; --a3:0%; --a4:0%; width:150px; height:150px; border-radius:50%; margin:0 auto 14px; position:relative;
  background:conic-gradient(var(--cf) 0 var(--a1), var(--at) var(--a1) var(--a2), #7fd39a var(--a2) var(--a3), var(--bq) var(--a3) var(--a4), #e8e0d4 var(--a4) 100%)}
.donut span{position:absolute; inset:18px; border-radius:50%; background:var(--sc-soft); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:12px; color:var(--sc-muted)}
.donut b{font-size:28px; color:var(--sc-ink); letter-spacing:-1px; line-height:1}
.dv-k{list-style:none; margin:0 0 14px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:6px}
.dv-k li{display:flex; align-items:center; gap:6px; font-size:12.5px; background:#fff; border-radius:10px; padding:6px 8px}
.dv-k li b{margin-left:auto} .dv-k i{width:9px; height:9px; border-radius:3px}
.dv-k .confirme i{background:var(--cf)} .dv-k .en_attente i{background:var(--at)} .dv-k .libre i{background:#7fd39a} .dv-k .bloque i{background:var(--bq)}
.mini-cal .mc-h{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; text-transform:capitalize}
.mini-cal .mc-h a{width:30px; height:30px; border-radius:9px; display:flex; align-items:center; justify-content:center; color:var(--sc-ink)} .mini-cal .mc-h a:hover{background:#fff}
.mc-g{display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center}
.mc-dn{font-size:11px; font-weight:800; color:var(--sc-muted); padding-bottom:4px}
.mc-g a{position:relative; aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:600; border-radius:10px; color:var(--sc-ink); text-decoration:none}
.mc-g a:hover{background:#fff} .mc-g a.ps{color:#b3a99e}
.mc-g a.td{box-shadow:inset 0 0 0 2px var(--sc-orange)}
.mc-g a.on{background:var(--sc-navy); color:#fff}
.mc-g a i{position:absolute; bottom:4px; width:4px; height:4px; border-radius:50%; background:var(--sc-orange)}

/* --- Panneau latéral --- */
.ag-dr{position:fixed; inset:0; z-index:1500}
.ag-dr-bg{position:absolute; inset:0; background:rgba(15,12,10,.4); opacity:0; transition:opacity .2s; backdrop-filter:blur(2px)}
.ag-dr-p{position:absolute; top:0; right:0; bottom:0; width:min(420px,100%); background:#fff; padding:28px 26px; overflow-y:auto; transform:translateX(100%); transition:transform .25s var(--ease); box-shadow:-20px 0 50px rgba(0,0,0,.15)}
.ag-dr.on .ag-dr-bg{opacity:1} .ag-dr.on .ag-dr-p{transform:none}
.ag-dr-x{position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; border:0; background:var(--sc-soft); cursor:pointer; font-size:16px}
.ag-dr-x:hover{background:var(--sc-navy); color:#fff}
.dr-k{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; padding:5px 11px 5px 9px; border-radius:999px; background:var(--sc-soft)}
.dr-k i{width:9px; height:9px; border-radius:50%}
.dr-k.libre{background:var(--lb-gs); color:#166534} .dr-k.libre i{background:var(--lb-g)}
.dr-k.en_attente{background:var(--ats); color:#7a4d00} .dr-k.en_attente i{background:var(--at)}
.dr-k.confirme{background:#efe9e3} .dr-k.confirme i{background:var(--cf)}
.dr-k.bloque i,.dr-k.passe i{background:var(--bq)}
.ag-dr-p h3{font-size:44px; letter-spacing:-2px; margin:12px 0 0; line-height:1}
.dr-date{margin:4px 0 18px; color:var(--sc-muted); font-weight:600}
.dr-note{font-size:13.5px; color:var(--sc-muted); background:var(--sc-soft); padding:11px 13px; border-radius:12px; margin:0 0 16px}
.dr-f h4{margin:0 0 10px; font-size:15px}
.dr-f input{width:100%; border:1.5px solid var(--sc-line); border-radius:12px; padding:12px; margin-bottom:8px; font-size:14.5px}
.dr-f input:focus{border-color:var(--sc-orange); outline:0}
.dr-or{display:flex; align-items:center; gap:10px; color:var(--sc-muted); font-size:12px; margin:16px 0}
.dr-or::before,.dr-or::after{content:""; flex:1; border-top:1px solid var(--sc-line)}
.dr-row{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:6px}
.dr-row form:only-child{grid-column:1/-1}
.dr-row .btn{padding:11px 10px; font-size:13.5px}
.btn.ko{color:var(--ko)} .btn.ko:hover{border-color:var(--ko); color:var(--ko)}
.dr-pat{display:flex; align-items:center; gap:12px; margin-bottom:14px}
.dr-pat b{font-size:18px; display:block}
.dr-av{width:50px; height:50px; border-radius:16px; background:linear-gradient(135deg,var(--sc-orange),#d97706); color:#1c1715; font-weight:800; display:flex; align-items:center; justify-content:center; font-size:17px; flex:none}
.dr-contact{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px}
.dr-contact .btn{padding:9px 13px; font-size:13.5px}
.dr-contact .wa i{color:#16a34a}
.dr-dl{display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:0 0 18px; font-size:14px; background:var(--sc-soft); padding:12px 14px; border-radius:14px}
.dr-dl dt{color:var(--sc-muted)} .dr-dl dd{margin:0; font-weight:700}
.dr-day{display:inline-flex; gap:8px; align-items:center; margin-top:18px; font-weight:700; font-size:14px}


/* ============================================================
   v7 : GALERIE PHOTOS + visionneuse avec téléchargement
   ============================================================ */
.gal-head{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px}
.gal-head h2{margin:0}
.gal-btns{display:flex; gap:6px; flex-wrap:wrap}
.gal{display:grid; gap:8px; grid-template-columns:repeat(4,1fr); grid-auto-rows:130px; grid-auto-flow:dense}
.gal .gi{position:relative; margin:0; border-radius:16px; overflow:hidden; background:var(--sc-soft)}
.gal .gi[hidden]{display:none}
.gal .gi:first-child{grid-column:span 2; grid-row:span 2}
.gal .gi>a:first-child{display:block; width:100%; height:100%}
.gal img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease)}
.gal .gi:hover img{transform:scale(1.06)}
.gal figcaption{position:absolute; left:0; right:0; bottom:0; padding:22px 12px 9px; font-size:12.5px; font-weight:600; color:#fff; background:linear-gradient(transparent,rgba(15,12,10,.75));
  opacity:0; transform:translateY(6px); transition:all .25s; pointer-events:none}
.gal .gi:hover figcaption{opacity:1; transform:none}
.gi-dl{position:absolute; top:8px; right:8px; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--sc-ink); display:flex; align-items:center; justify-content:center;
  font-size:13px; opacity:0; transform:scale(.8); transition:all .2s; box-shadow:0 4px 12px rgba(0,0,0,.18)}
.gal .gi:hover .gi-dl,.gi-dl:focus{opacity:1; transform:none}
.gi-dl:hover{background:var(--sc-orange); color:#1c1715}
.gal-more{position:absolute; inset:0; background:rgba(28,23,21,.6); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:28px; font-weight:800; backdrop-filter:blur(2px)}
.gal-more small{font-size:12px; font-weight:600; opacity:.85}
.gal-1{grid-template-columns:1fr; grid-auto-rows:340px} .gal-1 .gi:first-child{grid-column:auto; grid-row:auto}
.gal-2{grid-template-columns:1fr 1fr; grid-auto-rows:260px} .gal-2 .gi:first-child{grid-column:auto; grid-row:auto}
.gal-3{grid-template-columns:2fr 1fr; grid-auto-rows:150px} .gal-3 .gi:first-child{grid-column:auto}
.gal-4{grid-template-columns:2fr 1fr 1fr; grid-auto-rows:150px} .gal-4 .gi:first-child{grid-column:auto} .gal-4 .gi:nth-child(4){grid-column:span 2}
@media(max-width:640px){.gal,.gal-3,.gal-4{grid-template-columns:1fr 1fr; grid-auto-rows:120px} .gal .gi:first-child{grid-column:span 2; grid-row:span 2} .gal-4 .gi:nth-child(4){grid-column:auto} .gi-dl{opacity:1; transform:none; width:30px; height:30px}}
.ba-zoom{position:absolute; right:10px; bottom:10px; z-index:3; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--sc-ink); display:flex; align-items:center; justify-content:center; font-size:12px}
.ba-zoom:hover{background:var(--sc-orange)}
.cas-dl{display:flex; gap:12px; margin-top:10px; font-size:13px; font-weight:700}
.cas-dl a{text-decoration:none} .cas-dl a:hover{text-decoration:underline}

/* Visionneuse */
.lbx{position:fixed; inset:0; z-index:2000; background:rgba(12,10,8,.95); display:none; align-items:center; justify-content:center; padding:70px 80px 120px}
.lbx.on{display:flex; animation:lbIn .2s ease}
@keyframes lbIn{from{opacity:0}}
.lbx figure{margin:0; max-width:100%; max-height:100%; text-align:center}
.lbx figure img{max-width:100%; max-height:calc(100vh - 220px); border-radius:12px; display:block; margin:0 auto; opacity:0; transform:scale(.98); transition:opacity .25s, transform .25s}
.lbx figure img.in{opacity:1; transform:none}
.lbx figcaption{color:#e9e2d8; margin-top:12px; font-size:14px}
.lb-top{position:absolute; top:0; left:0; right:0; display:flex; align-items:center; gap:10px; padding:14px 18px}
.lb-c{color:#cfc5b8; font-size:14px; font-weight:700; margin-right:auto}
.lb-dl{display:inline-flex; align-items:center; gap:8px; background:var(--sc-orange); color:#1c1715; font-weight:800; font-size:14px; padding:11px 18px; border-radius:999px; text-decoration:none}
.lb-dl:hover{background:var(--sc-orange-dark); color:#1c1715}
.lbx button{background:rgba(255,255,255,.12); color:#fff; border:0; width:46px; height:46px; border-radius:50%; font-size:18px; cursor:pointer}
.lbx button:hover{background:var(--sc-orange); color:#1c1715}
.lb-p,.lb-n{position:absolute; top:50%; transform:translateY(-50%)} .lb-p{left:16px} .lb-n{right:16px}
.lbx.one .lb-p,.lbx.one .lb-n{display:none}
.lb-th{position:absolute; left:0; right:0; bottom:14px; display:flex; gap:8px; justify-content:center; overflow-x:auto; padding:4px 16px; scrollbar-width:none}
.lb-th button{flex:none; width:64px; height:48px; border-radius:10px; padding:0; overflow:hidden; opacity:.45; border:2px solid transparent; transition:opacity .2s}
.lb-th button:hover{opacity:.85; background:none}
.lb-th button.on{opacity:1; border-color:var(--sc-orange)}
.lb-th img{width:100%; height:100%; object-fit:cover; display:block}
@media(max-width:640px){.lbx{padding:64px 8px 100px} .lb-p,.lb-n{top:auto; bottom:76px; transform:none; width:40px; height:40px} .lb-dl span{display:none} .lb-dl{padding:12px 14px} .lb-th button{width:52px; height:40px}}

/* Espace praticien : galerie */
.ph-bar{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:22px; font-size:14px; color:var(--sc-muted)}
.ph-bar b{color:var(--sc-ink)}
.ph-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; margin-top:10px; grid-auto-flow:dense}
.ph-item{position:relative; border:1px solid #ece4d8; border-radius:16px; overflow:hidden; background:#fff}
.ph-item.first{grid-column:span 2; grid-row:span 2}
.ph-img{display:block; position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--sc-soft)}
.ph-item.first .ph-img{aspect-ratio:auto; height:calc(100% - 44px)}
.ph-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s var(--ease)}
.ph-item:hover .ph-img img{transform:scale(1.05)}
.ph-une{position:absolute; left:8px; top:8px; background:var(--sc-orange); color:#1c1715; font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px}
.ph-ov{position:absolute; top:8px; right:8px; display:flex; gap:5px; opacity:0; transition:opacity .2s}
.ph-item:hover .ph-ov,.ph-ov:focus-within{opacity:1}
.ph-ov form{display:inline}
.ph-ov a,.ph-ov button{width:32px; height:32px; border-radius:50%; border:0; background:rgba(255,255,255,.94); color:var(--sc-ink); display:inline-flex; align-items:center; justify-content:center; font-size:12.5px; cursor:pointer; box-shadow:0 3px 10px rgba(0,0,0,.18)}
.ph-ov a:hover,.ph-ov button:hover{background:var(--sc-orange)} .ph-ov button.ko:hover{background:var(--ko); color:#fff}
@media(hover:none){.ph-ov{opacity:1}}
.ph-cap{display:flex; gap:4px; padding:6px}
.ph-cap input{flex:1; min-width:0; border:1.5px solid transparent; border-radius:8px; padding:5px 7px; font-size:12.5px; background:var(--sc-soft)}
.ph-cap input:focus{border-color:var(--sc-orange); background:#fff; outline:0}
.ph-act{display:flex; gap:5px; padding:0 6px 8px; flex-wrap:wrap}
.ph-act form{display:inline}
.cas-imgs a{display:block}


/* ============================================================
   v7 : ADMINISTRATION (rendez-vous, patients, dentistes)
   ============================================================ */
.dash.adm{max-width:1240px}
.adm-tiles{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.adm-tiles{grid-template-columns:repeat(2,1fr)}}
.adm-seg{margin-bottom:16px}
.adm-new{font-style:normal; font-size:11px; font-weight:800; background:var(--sc-orange); color:#1c1715; padding:1px 8px; border-radius:999px; margin-left:4px}
.adm-filters{background:#fff; border:1px solid #ece4d8; border-radius:20px; padding:14px; margin-bottom:12px; display:flex; flex-direction:column; gap:12px}
.adm-per{display:flex; gap:6px; flex-wrap:wrap}
.adm-per .chip{padding:7px 13px; font-size:13px}
.adm-f{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.adm-f select{border:1.5px solid var(--sc-line); border-radius:12px; padding:10px 12px; background:#fff; max-width:260px}
.adm-f .btn{padding:10px 18px}
.adm-q{flex:1; min-width:240px; display:flex; align-items:center; gap:9px; border:1.5px solid var(--sc-line); border-radius:12px; padding:0 12px; color:var(--sc-muted)}
.adm-q:focus-within{border-color:var(--sc-orange)}
.adm-q input{flex:1; border:0; outline:0; padding:10px 0; background:transparent}
.adm-bar{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:6px 2px 10px; font-size:14px; color:var(--sc-muted)}
.adm-bar b{color:var(--sc-ink)} .adm-bar>a{margin-left:auto}
.adm-bulk{display:none; align-items:center; gap:6px; background:var(--sc-navy); color:#fff; padding:5px 6px 5px 14px; border-radius:999px}
.adm-bulk.on{display:inline-flex; animation:moUp .2s var(--ease)}
.adm-sel{font-size:13px; font-weight:700; margin-right:4px}
.adm-bulk .mini-btn{background:#fff}
.adm-tbl td{vertical-align:top; font-size:14px}
.adm-tbl td small{display:block; color:var(--sc-muted); font-size:12.5px; margin-top:2px}
.adm-tbl td small a{color:var(--sc-muted)}
.adm-tbl .nw{white-space:nowrap}
.adm-tbl .mono{font-family:ui-monospace,Menlo,monospace; font-size:11.5px}
.adm-tbl tr.old td{color:#8d8379}
.adm-tbl tr.sel td{background:#fff7e6}
.adm-tbl tr.hl td{background:#fdf1dc}
.adm-tbl input[type=checkbox]{width:17px; height:17px; accent-color:var(--sc-navy); cursor:pointer}
.adm-act-c{text-align:right}
.ic{width:34px; height:34px; border-radius:10px; border:1.5px solid var(--sc-line); background:#fff; display:inline-flex; align-items:center; justify-content:center; color:var(--sc-ink); cursor:pointer; font-size:13px; text-decoration:none; vertical-align:middle}
.ic:hover{border-color:var(--sc-ink); color:var(--sc-ink)} .ic.ok{color:var(--ok)} .ic.ok:hover{background:var(--ok); border-color:var(--ok); color:#fff}
.ic.ko{color:var(--ko)} .ic.ko:hover{background:var(--ko); border-color:var(--ko); color:#fff}
.adm-av{display:inline-flex; width:30px; height:30px; border-radius:10px; background:var(--sc-sand); color:#8a4b08; font-size:12px; font-weight:800; align-items:center; justify-content:center; margin-right:8px; vertical-align:middle}
.adm-n{display:inline-flex; min-width:30px; height:26px; padding:0 8px; border-radius:999px; background:var(--sc-soft); font-weight:800; align-items:center; justify-content:center; text-decoration:none; color:var(--sc-ink)}
.adm-n:hover{background:var(--sc-navy); color:#fff}
.adm-pg{display:flex; gap:4px; justify-content:center; margin-top:16px; flex-wrap:wrap}
.adm-pg a,.adm-pg span{min-width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background:#fff; border:1px solid #ece4d8; text-decoration:none; color:var(--sc-ink); font-weight:700; font-size:14px}
.adm-pg a.on{background:var(--sc-navy); color:#fff; border-color:var(--sc-navy)} .adm-pg span{border:0; background:transparent}
.adm-edit{background:#fff; border:2px solid var(--sc-orange); border-radius:22px; padding:20px 22px; margin-bottom:16px; box-shadow:0 20px 40px -24px rgba(180,83,9,.45); animation:moUp .25s var(--ease)}
.adm-edit-h{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:14px}
.adm-edit-h h2{margin:0; font-size:19px; display:flex; gap:10px; align-items:center}
.adm-edit-h code{background:var(--sc-soft); padding:2px 8px; border-radius:8px; font-size:15px}
.adm-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0 12px}
@media(max-width:900px){.adm-grid{grid-template-columns:1fr 1fr}}
.adm-edit .fl input,.adm-edit .fl select{width:100%; border:1.5px solid var(--sc-line); border-radius:12px; padding:10px 12px; background:#fff}
.adm-edit .fl input:focus,.adm-edit .fl select:focus{border-color:var(--sc-orange); outline:0}
.adm-edit-f{display:flex; align-items:center; gap:16px; flex-wrap:wrap} .adm-edit-f .btn{margin-left:auto}
.adm-2{display:grid; grid-template-columns:1fr 1fr; gap:24px} @media(max-width:900px){.adm-2{grid-template-columns:1fr}}
.adm-2 .row2{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.adm-h3{margin:0 0 10px; font-size:15px}
.adm-hist{list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:6px; max-height:290px; overflow:auto}
.adm-hist li{display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--sc-soft); border-radius:12px; padding:8px 10px; font-size:13.5px}
.adm-hist li span:not(.st){color:var(--sc-muted)} .adm-hist .mini-btn{margin-left:auto}
.adm-danger{border-top:1px dashed var(--sc-line); padding-top:14px}

/* v7 : statut des RDV, ordre de réception, fiche détail (admin) */
.adm-sts{display:flex; gap:6px; flex-wrap:wrap; margin:4px 0 8px}
.adm-sts a{display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:12px; background:#fff; border:1.5px solid #ece4d8; text-decoration:none; color:var(--sc-ink); font-weight:700; font-size:13.5px}
.adm-sts a b{background:var(--sc-soft); border-radius:999px; padding:1px 8px; font-size:12px}
.adm-sts a.confirme i{color:var(--ok)} .adm-sts a.en_attente i{color:var(--sc-orange)} .adm-sts a.annule i{color:#a1958a}
.adm-sts a:hover{border-color:var(--sc-ink)}
.adm-sts a.on{background:var(--sc-navy); border-color:var(--sc-navy); color:#fff} .adm-sts a.on i{color:inherit} .adm-sts a.on b{background:rgba(255,255,255,.18)}
.adm-st{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:800; padding:5px 11px; border-radius:999px}
.adm-st.confirme{background:var(--ok-soft); color:#166534}
.adm-st.en_attente{background:#fff4dc; color:#8a5300}
.adm-st.annule{background:#f1eeea; color:#8d8379; text-decoration:line-through}
.adm-recu{font-size:13.5px}
.adm-dot{display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--sc-orange); margin-right:6px; box-shadow:0 0 0 3px rgba(245,158,11,.22); vertical-align:middle}
.adm-pn{font-weight:800; color:var(--sc-ink); text-decoration:none} .adm-pn:hover{color:var(--sc-blue); text-decoration:underline}
.adm-when{display:inline-flex; flex-direction:column; line-height:1.2}
.adm-when em{font-style:normal; font-size:18px; font-weight:800; letter-spacing:-.5px}
.adm-voir{background:#fff; border:2px solid var(--sc-navy); border-radius:22px; padding:20px 22px; margin-bottom:16px; box-shadow:0 22px 44px -26px rgba(28,23,21,.45); animation:moUp .25s var(--ease)}
.av-top{display:grid; grid-template-columns:auto 1fr 1.3fr 1.2fr; gap:12px; margin-bottom:16px}
.av-date{display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--sc-navy); color:#fff; border-radius:18px; padding:12px 20px; min-width:120px; text-transform:capitalize}
.av-date b{font-size:40px; line-height:1; letter-spacing:-2px; margin:2px 0} .av-date span{font-size:12.5px; color:#d6cbbd; font-weight:600}
.av-h{background:var(--sc-soft); border-radius:18px; padding:14px 16px; display:flex; flex-direction:column; justify-content:center}
.av-h small{font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--sc-muted)}
.av-h b{font-size:30px; letter-spacing:-1px; line-height:1.15} .av-h b.sm{font-size:18px; letter-spacing:-.3px; margin:4px 0}
.av-h span{font-size:13px; color:var(--sc-muted)}
.av-st{border-radius:18px; padding:14px 16px; display:grid; grid-template-columns:auto 1fr; gap:0 12px; align-items:center}
.av-st i{grid-row:span 2; font-size:30px} .av-st b{font-size:20px} .av-st span{font-size:13px; opacity:.85}
.av-st.confirme{background:var(--ok-soft); color:#166534} .av-st.en_attente{background:#fff4dc; color:#8a5300} .av-st.annule{background:#f1eeea; color:#7d7166}
.av-cols{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.av-cols dl{margin:0; display:grid; grid-template-columns:130px 1fr; gap:8px 12px; font-size:14px; border:1px solid #ece4d8; border-radius:16px; padding:14px 16px}
.av-cols dt{color:var(--sc-muted)} .av-cols dd{margin:0; font-weight:600}
.av-cols .av-k{grid-column:1/-1; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:var(--sc-orange-ink)}
.av-foot{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-top:14px; font-size:13px}
@media(max-width:900px){.av-top{grid-template-columns:1fr 1fr} .av-cols{grid-template-columns:1fr} .av-cols dl{grid-template-columns:110px 1fr}}

/* v7 : logo eDentiste */
.sc-logo{position:relative}
/* 1. le rond arrive en roulant depuis la gauche */
.sc-logo-icon{animation:logoRoll 1s cubic-bezier(.2,.85,.25,1.15) backwards; transition:transform .7s cubic-bezier(.2,.8,.2,1)}
@keyframes logoRoll{0%{transform:translateX(-56px) rotate(-540deg) scale(.6); opacity:0} 60%{opacity:1} 100%{transform:none}}
.sc-logo:hover .sc-logo-icon{transform:rotate(360deg)}
/* 2. le nom se dévoile de gauche à droite, en blanc, derrière un trait de lumière */
.sc-logo-t{position:relative; display:inline-block; letter-spacing:-.4px; color:#fff;
  background:linear-gradient(100deg,#fff 0 40%,#ffe6b3 46%,#ffffff 50%,#ffd27a 54%,#fff 60% 100%); background-size:280% 100%; background-position:100% 0;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:logoReveal .95s .4s cubic-bezier(.65,0,.35,1) backwards, logoShine 6s 2s ease-in-out infinite}
.sc-logo-t i{font-style:normal; margin-right:1px}
@keyframes logoReveal{from{clip-path:inset(-30% 100% -30% 0); transform:translateX(-8px)} to{clip-path:inset(-30% 0 -30% 0); transform:none}}
/* 3. un reflet doré traverse le nom de gauche à droite, toutes les 6 secondes */
@keyframes logoShine{0%,72%{background-position:100% 0} 100%{background-position:0 0}}
.sc-logo::after{content:""; position:absolute; top:6%; bottom:6%; left:34px; width:3px; border-radius:3px; background:#ffd27a;
  box-shadow:0 0 10px 3px rgba(245,158,11,.85),0 0 24px 6px rgba(245,158,11,.35); opacity:0; pointer-events:none; animation:logoBar .95s .4s cubic-bezier(.65,0,.35,1)}
@keyframes logoBar{0%{left:34px; opacity:1} 88%{opacity:1} 100%{left:100%; opacity:0}}
.sc-logo:hover .sc-logo-t{animation:logoShineFast .9s ease-in-out}
@keyframes logoShineFast{from{background-position:100% 0} to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.sc-logo-icon,.sc-logo-t,.sc-logo::after{animation:none !important}}

/* ============================================================
   v7 : pages ville (SEO)
   ============================================================ */
.vl-intro{max-width:760px; line-height:1.6}
.vl-stats{display:grid; grid-template-columns:repeat(4,minmax(0,170px)); gap:10px; margin-top:22px}
.vl-stats div{background:rgba(255,255,255,.72); border:1px solid #eee3d3; border-radius:16px; padding:12px 14px; backdrop-filter:blur(4px)}
.vl-stats b{display:block; font-size:24px; letter-spacing:-.8px; line-height:1.1}
.vl-stats span{font-size:12.5px; color:#6d635a; font-weight:600}
.vl-next{display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:16px; padding:11px 16px; border-radius:999px; background:var(--sc-navy); color:#fff; text-decoration:none; font-size:14px}
.vl-next:hover{background:#2c221c; color:#fff} .vl-next b{color:var(--sc-orange)}
.vl-h2{margin:0; font-size:20px; letter-spacing:-.4px} .vl-h2 small{font-size:13px; font-weight:600; color:var(--sc-muted); letter-spacing:0}
.vl-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px}
.vl-grid .blk{margin:0} .vl-grid .blk h2{font-size:17px; margin:0 0 14px; display:flex; gap:9px; align-items:center}
.vl-chips{display:flex; flex-wrap:wrap; gap:7px}
.vl-chips a,.vl-chips span{display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border-radius:12px; background:var(--sc-soft); color:var(--sc-ink); text-decoration:none; font-size:13.5px; font-weight:600; transition:background .2s}
.vl-chips a:hover{background:var(--sc-orange)}
.vl-chips em{font-style:normal; font-size:11.5px; font-weight:800; background:#fff; border-radius:999px; padding:1px 7px; color:#8a4b08}
.vl-chips i{color:var(--sc-orange-ink)}
.vl-reg{font-size:15px; text-transform:uppercase; letter-spacing:.6px; color:var(--sc-muted); margin:0 0 12px}
@media(max-width:760px){.vl-stats{grid-template-columns:1fr 1fr} .cities{grid-template-columns:1fr 1fr}}
.adm-sec{background:#fff7e6; border:1px solid #f6d48d; border-radius:14px; padding:12px 15px; margin-bottom:16px; font-size:14px}
.adm-sec summary{cursor:pointer; display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.adm-sec form{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap}
.adm-sec input{flex:1; min-width:240px; border:1.5px solid var(--sc-line); border-radius:12px; padding:10px 12px}

/* v7 : nom du dentiste moins gras */
.pf-id h1{font-weight:600; letter-spacing:-.03em}
.rc-top h3,.rc-top h3 a{font-weight:700}

/* ============================================================
   v8 : mot de passe oublié · consultation vidéo · patients absents · adhésion praticien
   ============================================================ */
:root{--abs:#b45309; --abs-s:#fdeedd; --vid:#2563eb; --vid-s:#e8effd}

/* --- Mot de passe oublié --- */
.pw-forgot{margin:-6px 0 14px; text-align:right; font-size:13.5px}
.pw-forgot a{font-weight:700; text-decoration:none}
.pw-forgot a:hover{text-decoration:underline}
.pw-h{font-size:28px; letter-spacing:-.04em; margin:14px 0 6px; font-weight:700}
.pw-ok{width:64px; height:64px; border-radius:20px; display:flex; align-items:center; justify-content:center; font-size:28px; background:var(--ok-soft); color:var(--ok); margin:18px 0 4px}
.pw-ok.ko{background:#fdecec; color:var(--ko)}
.pw-tips{list-style:none; padding:0; margin:18px 0 0; display:grid; gap:8px}
.pw-tips li{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; background:var(--sc-soft); border-radius:12px; padding:10px 12px}
.pw-tips i{color:var(--sc-orange-ink); margin-top:3px; width:16px; text-align:center}
.pw-switch{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px}
.pw-switch a{display:flex; align-items:center; justify-content:center; gap:8px; border:1.5px solid var(--sc-line); border-radius:12px; padding:10px; font-size:13.5px; font-weight:700; color:var(--sc-muted); text-decoration:none}
.pw-switch a.on{border-color:var(--sc-orange); background:#fff8eb; color:var(--sc-ink)}

/* --- Consultation vidéo --- */
.tag.vid{background:var(--vid-s); color:#1d4ed8}
.pf-badges .tag.vid{background:var(--vid-s); color:#1d4ed8; border-color:#cddcfb}
.vid-tag{display:inline-flex; align-items:center; gap:5px; font-weight:700; color:#1d4ed8}
.vid-opt .sw span small{display:block; font-weight:500; font-size:12.5px; color:var(--sc-muted)}
.vid-lien{margin-top:12px; padding:14px; border-radius:14px; background:#f6f9ff; border:1px solid #dbe6fb}
.vid-lien label{display:block; font-weight:700; font-size:13.5px; margin-bottom:6px}
.vid-lien input{width:100%}
.bk-mode span{display:flex; align-items:center; justify-content:center; gap:7px}
.bk-vnote{margin:8px 0 0; font-size:12.5px; color:#1e3a8a; background:#f1f6ff; border-radius:10px; padding:9px 11px; line-height:1.45}
.cf-video{margin:4px 0 18px; padding:16px; border-radius:18px; background:#f1f6ff; border:1px solid #d6e3fb}
.cf-video p{margin:10px 0 0; font-size:13px; color:#1e3a8a}
.btn.soon{opacity:.92}
.sl-vid{color:var(--vid); font-size:.9em}
.sl.rdv.confirme .sl-vid{color:#9cc0ff}
.mini-btn.vid{color:#1d4ed8; border-color:#cddcfb}
.mini-btn.vid:hover{background:var(--vid); color:#fff; border-color:var(--vid)}
.dr-vid{margin:0 0 16px; display:grid; gap:8px}
.dr-vid .btn-or{background:var(--vid); color:#fff}
.dr-vid .btn-or:hover{background:#1d4ed8; color:#fff; box-shadow:0 10px 22px rgba(37,99,235,.35)}
.dr-vl{font-size:13px; font-weight:700; color:#15803d; text-decoration:none; text-align:center}
.dr-ck{display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600; margin:2px 0 10px; cursor:pointer}
.dr-ck input{width:auto!important; margin:0!important}

/* --- Patients absents --- */
.st.absent,.adm-st.absent{background:var(--abs-s); color:#92400e}
.adm-sts a.absent i{color:var(--abs)}
.tag.abs{background:var(--abs-s); color:#92400e; font-size:11px; padding:2px 8px; margin-left:4px}
.sl.rdv.absent{background:repeating-linear-gradient(135deg,#fdf2e4 0 7px,#fbe8d2 7px 14px); border-color:#f3c99a; color:#7c3d06}
.sl.rdv.absent .sl-n{text-decoration:line-through; text-decoration-thickness:1.5px}
.sl-badge.abs{background:var(--abs); box-shadow:none; animation:none}
.sl.big .sl-badge.abs{background:var(--abs); color:#fff}
.lg.absent i,.dv-k li.absent i,.mo-bar i.absent{background:var(--abs)}
.mo-rdv li.absent{text-decoration:line-through; opacity:.7}
.sl-abs{display:inline-flex; align-items:center; gap:5px; font-style:normal; font-size:11.5px; font-weight:800; color:#92400e; background:var(--abs-s); padding:2px 8px; border-radius:999px; margin-top:4px}
.dr-note.ko{background:var(--abs-s); color:#7c3d06}
.dr-f + form, .dr-note.ko + form{margin-top:4px}

/* --- Adhésion praticien : coordonnées bancaires --- */
.pay-box{border:1px solid #ecdcc2; border-radius:20px; overflow:hidden; background:#fff}
.pay-amount{display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 16px; padding:16px 18px; background:linear-gradient(135deg,#1c1715,#3a2b20); color:#fff}
.pay-amount small{grid-column:1; font-size:11.5px; letter-spacing:.6px; text-transform:uppercase; color:#f6c766; font-weight:800}
.pay-amount b{grid-column:2; grid-row:1/3; font-size:30px; letter-spacing:-.03em; font-weight:800; white-space:nowrap}
.pay-amount span{grid-column:1; font-size:13.5px; color:#d9cfc3}
.pay-rib{display:grid; grid-template-columns:auto 1fr; gap:0; margin:0; padding:6px 18px}
.pay-rib dt,.pay-rib dd{padding:10px 0; border-top:1px solid #f1e8da; margin:0; font-size:14px}
.pay-rib dt{color:var(--sc-muted); padding-right:16px; font-size:13px}
.pay-rib dt:first-of-type,.pay-rib dt:first-of-type + dd{border-top:0}
.pay-rib dd{font-weight:700; display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0}
.pay-num{font-family:Menlo,Consolas,monospace; font-size:15px; letter-spacing:.5px; background:var(--sc-soft); padding:4px 8px; border-radius:8px; word-break:break-all}
.pay-rib code{font-family:Menlo,Consolas,monospace; font-size:13px}
.pay-how{margin:0; padding:12px 18px 16px; font-size:13px; color:var(--sc-muted); display:flex; gap:9px; align-items:flex-start}
.pay-how i{color:var(--sc-orange-ink); margin-top:3px}
.mini-btn.ok{background:var(--ok); color:#fff; border-color:var(--ok)}
@media(max-width:560px){.pay-rib{grid-template-columns:1fr} .pay-rib dt{padding-bottom:0; border-top:1px solid #f1e8da} .pay-rib dd{border-top:0; padding-top:4px} .pay-amount b{font-size:24px}}

/* --- Page d'activation --- */
.act-wrap{max-width:780px; margin:0 auto; padding:44px 20px 90px}
.act-h{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:20px}
.act-h .me{display:flex; align-items:center; gap:16px}
.act-h h1{margin:8px 0 2px; font-size:28px; letter-spacing:-.04em; font-weight:700}
.act-h p{margin:0}
.act-steps{list-style:none; margin:0 0 18px; padding:0; background:#fff; border:1px solid #ece4d8; border-radius:24px; padding:10px 22px}
.act-steps > li{display:flex; gap:16px; padding:18px 0; border-top:1px solid #f1e9de; position:relative}
.act-steps > li:first-child{border-top:0}
.act-steps .ic{width:40px; height:40px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:16px; background:#f1ece5; color:#9b8f83}
.act-steps li.done .ic{background:var(--ok-soft); color:var(--ok)}
.act-steps li.wait .ic{background:#fff3da; color:var(--sc-orange-ink)}
.act-steps li.ko .ic{background:#fdecec; color:var(--ko)}
.act-steps li.todo#paiement .ic{background:var(--sc-orange); color:#1c1715}
.act-steps b{display:block; font-size:16px; margin:8px 0 3px}
.act-steps small{display:block; color:var(--sc-muted); font-size:13.5px; line-height:1.5}
.act-steps small.ko-t{color:var(--ko)}
.act-pay{margin-top:16px; display:grid; gap:14px}
.act-form .drop{margin-top:4px}
.act-form details summary{cursor:pointer; font-weight:700; font-size:13.5px; color:var(--sc-blue); margin-bottom:10px}
.done-steps.four{grid-template-columns:repeat(4,1fr)}
.done-pay{text-align:left; margin:8px 0 6px; padding:20px; border-radius:20px; background:#fffaf1; border:1px solid #f2e2c5}
.done-pay h3{margin:0 0 14px; font-size:18px; letter-spacing:-.02em}
.done-pay p{font-size:13.5px}
@media(max-width:760px){.done-steps.four{grid-template-columns:1fr 1fr}}

/* --- Administration : adhésions --- */
.st[class*="pay-"]{display:inline-flex; align-items:center; gap:5px}
.st.pay-non_paye{background:#f1eeea; color:#7a6f65}
.st.pay-envoye{background:#fff3da; color:#8a5300}
.st.pay-valide{background:var(--ok-soft); color:#166534}
.st.pay-refuse{background:#fdecec; color:#b91c1c}
.adm-pay{margin-top:14px; padding:12px 14px; border-radius:14px; background:var(--sc-soft); font-size:13.5px; display:grid; gap:3px}
.adm-pay.pay-envoye{background:#fff6e3; border:1px solid #f6dca6}
.adm-pay.pay-valide{background:var(--ok-soft)}
.adm-pay.pay-refuse{background:#fdecec}
.adm-pay span{color:var(--sc-muted)}
.adm-docs a.adm-preuve{border-color:#f6dca6}
.adm-docs a.adm-preuve span{background:#fff6e3}
.adm-hr{border:0; border-top:1px solid #efe6da; margin:12px 0}
.adm-hint{display:block; font-size:12px; margin-top:6px; text-align:center}
.dr-k.absent i{background:var(--abs)} .dr-k.absent{background:var(--abs-s); color:#92400e}

/* ============================================================
   v8.4 : consultation vidéo intégrée · notifications de messages
   ============================================================ */
.vz{background:#14100e; min-height:calc(100vh - 55px); color:#fff; padding:18px 20px 26px}
.vz-msg{max-width:540px; margin:40px auto; background:#fff; color:var(--sc-ink); border-radius:24px; padding:34px 30px; text-align:center}
.vz-msg h1{font-size:26px; letter-spacing:-.03em; margin:14px 0 8px; font-weight:600}
.vz-msg .pw-ok{margin:0 auto}
.vz-acts{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:20px}
.vz-room{max-width:1180px; margin:0 auto; display:flex; flex-direction:column; gap:12px; height:calc(100vh - 55px - 44px); min-height:520px}
.vz-top{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap}
.vz-who{display:flex; align-items:center; gap:12px}
.vz-who b{display:block; font-size:17px; font-weight:600}
.vz-who small{color:#c9bdae; font-size:13px}
.vz-dot{width:12px; height:12px; border-radius:50%; background:#6b6158; flex:none}
.vz-dot.warn{background:var(--sc-orange); animation:scPulse 1.4s infinite}
.vz-dot.on{background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.25)}
.vz-dot.off{background:#ef4444}
.vz-meta{display:flex; gap:10px; align-items:center; font-size:13px; color:#c9bdae; flex-wrap:wrap}
.vz-meta > span{background:rgba(255,255,255,.07); padding:6px 11px; border-radius:999px}
.vz-timer{font-variant-numeric:tabular-nums; color:#fff!important; background:rgba(34,197,94,.18)!important}
.vz-lock i{color:#86efac}
.vz-stage{position:relative; flex:1; min-height:0; border-radius:22px; overflow:hidden; background:radial-gradient(circle at 50% 40%,#2c221c,#120e0c)}
#vRemote{position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#000; opacity:0; transition:opacity .4s}
.vz-room.live #vRemote{opacity:1}
#vLocal{position:absolute; right:16px; bottom:16px; width:min(26%,240px); aspect-ratio:4/3; object-fit:cover; border-radius:14px; background:#2a211b;
  box-shadow:0 10px 30px rgba(0,0,0,.45); border:2px solid rgba(255,255,255,.18); transform:scaleX(-1); opacity:0; transition:opacity .3s; z-index:3}
.vz-room.joined #vLocal{opacity:1}
.vz-room.rear #vLocal{transform:none}
.vz-room.camoff #vLocal,.vz-room.nocam #vLocal{opacity:.25}
.vz-wait{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:24px; z-index:2; transition:opacity .3s}
.vz-room.live .vz-wait{opacity:0; pointer-events:none}
.vz-wait h2{font-size:24px; font-weight:600; letter-spacing:-.02em; margin:16px 0 6px}
.vz-wait p{color:#c9bdae; max-width:480px; margin:0 0 20px; font-size:15px}
.vz-ava .ava.lg{width:96px; height:96px; font-size:32px; box-shadow:0 0 0 6px rgba(245,158,11,.18)}
.vz-room.joined:not(.live) .vz-ava .ava{animation:scPulse 2s infinite}
.vz-err{background:#fdecec; color:#991b1b; border-radius:12px; padding:10px 14px; max-width:480px; font-size:14px}
.vz-help{position:absolute; left:16px; top:16px; right:16px; z-index:4; display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:rgba(28,23,21,.92);
  border:1px solid rgba(245,158,11,.4); border-radius:14px; padding:10px 14px; font-size:13.5px}
.vz-help i{color:var(--sc-orange)}
.vz-help span{flex:1; min-width:200px}
.vz-help .mini-btn{background:#fff; color:var(--sc-ink)}
.vz-bar{display:flex; justify-content:center; gap:10px; flex-wrap:wrap}
.vz-b{display:flex; flex-direction:column; align-items:center; gap:4px; min-width:76px; padding:10px 12px; border-radius:16px; border:0; background:rgba(255,255,255,.08); color:#fff; cursor:pointer; font-size:12px}
.vz-b i{font-size:18px}
.vz-b:hover:not(:disabled){background:rgba(255,255,255,.16)}
.vz-b:disabled{opacity:.35; cursor:default}
.vz-b.off{background:#fff; color:var(--ko)}
.vz-b.end{background:#dc2626}
.vz-b.end:hover:not(:disabled){background:#b91c1c}
.vz-foot{margin:0; text-align:center; font-size:12.5px; color:#a49c92}
.vz-foot a{color:#f6c766}
.vz-stage:fullscreen{border-radius:0}
@media(max-width:700px){.vz{padding:10px 10px 16px} .vz-room{height:calc(100vh - 55px - 26px)} .vz-meta > span:not(.vz-timer){display:none} .vz-b{min-width:62px; padding:9px 8px} .vz-b span{display:none} #vLocal{width:32%; right:10px; bottom:10px}}

/* Accueil : bloc vidéo */
.vid-sec{background:linear-gradient(180deg,#fff,#f5f8ff)}
.vid-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center}
.vid-sec h2{font-size:clamp(28px,3.4vw,40px); letter-spacing:-.04em; margin:14px 0 12px; font-weight:600}
.vid-lead{color:var(--sc-muted); font-size:16px; margin:0 0 20px}
.vid-steps{list-style:none; counter-reset:v; padding:0; margin:0 0 24px; display:grid; gap:10px}
.vid-steps li{counter-increment:v; display:flex; gap:12px; align-items:baseline; background:#fff; border:1px solid #e3e9f6; border-radius:14px; padding:12px 14px; font-size:14.5px}
.vid-steps li::before{content:counter(v); flex:none; width:26px; height:26px; border-radius:50%; background:var(--vid-s); color:#1d4ed8; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:13px}
.vid-steps b{font-weight:600; margin-right:4px}
.vid-steps span{color:var(--sc-muted)}
.vid-mock .vm-screen{position:relative; aspect-ratio:4/3; border-radius:26px; background:radial-gradient(circle at 50% 40%,#3a2b20,#14100e); box-shadow:0 30px 60px -20px rgba(28,23,21,.5); overflow:hidden}
.vm-badge{position:absolute; left:16px; top:16px; font-size:12px; color:#d9cfc3; background:rgba(255,255,255,.08); padding:6px 11px; border-radius:999px}
.vm-doc{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:84px; color:rgba(246,199,102,.85)}
.vm-me{position:absolute; right:16px; bottom:70px; width:26%; aspect-ratio:4/3; border-radius:12px; background:#4a3a2e; display:flex; align-items:center; justify-content:center; color:#d9cfc3; font-size:26px; border:2px solid rgba(255,255,255,.2)}
.vm-bar{position:absolute; left:0; right:0; bottom:16px; display:flex; justify-content:center; gap:10px}
.vm-bar i{width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center; justify-content:center}
.vm-bar i.ko{background:#dc2626}
.vm-note{font-size:13px; color:var(--sc-muted); text-align:center; margin:14px 0 0}
@media(max-width:860px){.vid-grid{grid-template-columns:1fr}}

/* Administration : e-mails */
.mail-chk{list-style:none; padding:0; margin:0 0 18px; display:grid; gap:8px}
.mail-chk li{display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border-radius:12px; font-size:14px; background:var(--ok-soft)}
.mail-chk li.ko{background:#fff4dc}
.mail-chk li i{margin-top:3px; color:var(--ok)} .mail-chk li.ko i{color:var(--sc-orange-ink)}
.mail-chk small{display:block; color:var(--sc-muted); font-size:12.5px; margin-top:2px}
.mail-test label{display:block; font-weight:600; font-size:13.5px; margin-bottom:6px}
.mail-test div{display:flex; gap:8px; flex-wrap:wrap}
.mail-test input{flex:1; min-width:200px; border:1.5px solid var(--sc-line); border-radius:12px; padding:10px 12px}
.mail-help{margin-top:18px; font-size:14px}
.mail-help summary{cursor:pointer; font-weight:600; color:var(--sc-blue)}
.mail-help pre{background:#1c1715; color:#f6e7cc; padding:12px 14px; border-radius:12px; font-size:12.5px; overflow:auto; white-space:pre}
.mail-log{list-style:none; padding:0; margin:0; display:grid; gap:6px; max-height:560px; overflow:auto}
.mail-log li{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; padding:8px 10px; border-radius:10px; background:var(--sc-soft)}
.mail-log li b{flex:none; font-size:11.5px; font-weight:600; padding:2px 8px; border-radius:999px; background:#e9e2d8}
.mail-log li.ok b{background:var(--ok-soft); color:#166534} .mail-log li.ko b{background:#fdecec; color:#b91c1c}
.mail-log small{display:block; color:var(--sc-muted); font-size:12px; word-break:break-all}

/* Notifications de messages */
.ntf-wrap{position:fixed; top:66px; right:16px; z-index:1500; display:grid; gap:10px; width:min(380px,calc(100vw - 32px))}
.ntf{display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:start; background:#fff; border-radius:18px; padding:14px; box-shadow:0 18px 40px -12px rgba(28,23,21,.45);
  border:1px solid #efe6da; border-left:5px solid var(--sc-orange); animation:ntfIn .35s var(--ease); text-decoration:none; color:var(--sc-ink)}
.ntf:hover{color:var(--sc-ink); box-shadow:0 22px 46px -12px rgba(28,23,21,.55)}
.ntf .ntf-ic{width:42px; height:42px; border-radius:50%; background:var(--sc-orange); color:#1c1715; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700}
.ntf b{display:block; font-size:14.5px; font-weight:600}
.ntf small{display:block; font-size:11.5px; color:var(--sc-orange-ink); font-weight:600; text-transform:uppercase; letter-spacing:.5px; margin-bottom:2px}
.ntf p{margin:3px 0 8px; font-size:14px; color:#4f453d; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.ntf .ntf-go{font-size:13px; font-weight:600; color:var(--sc-blue)}
.ntf-x{border:0; background:none; color:#9b8f83; cursor:pointer; font-size:16px; padding:2px 4px}
.ntf.out{animation:ntfOut .25s forwards}
@keyframes ntfIn{from{opacity:0; transform:translateY(-10px) scale(.97)}to{opacity:1; transform:none}}
@keyframes ntfOut{to{opacity:0; transform:translateX(30px)}}
.msg-banner{display:flex; align-items:center; gap:12px; background:#fff6e3; border:1px solid #f6dca6; border-left:5px solid var(--sc-orange); border-radius:16px; padding:12px 16px; margin:0 0 16px; text-decoration:none; color:var(--sc-ink)}
.msg-banner i{font-size:20px; color:var(--sc-orange-ink)}
.msg-banner b{font-weight:600}
.msg-banner span{flex:1}
.msg-banner em{font-style:normal; font-weight:600; color:var(--sc-blue); white-space:nowrap}
.snd-tg{display:inline-flex; align-items:center; gap:6px; border:1px solid var(--sc-line); background:#fff; border-radius:999px; padding:5px 11px; font-size:12.5px; cursor:pointer; color:var(--sc-muted)}
.snd-tg.on{color:var(--ok); border-color:#bfe6cb}
.cl.unread{background:#fff6e3}
.cl.unread b{font-weight:700}
.cl.unread .cl-t small{color:var(--sc-ink); font-weight:600}
.msg.them.fresh p{animation:freshMsg 2.2s ease}
@keyframes freshMsg{0%{box-shadow:0 0 0 0 rgba(245,158,11,.7)}100%{box-shadow:0 0 0 14px rgba(245,158,11,0)}}
@media(max-width:600px){.ntf-wrap{top:62px; right:10px}}
.chat-ntf{display:flex; gap:6px; flex-wrap:wrap; padding:0 14px 10px}
.vz [hidden],.ntf-wrap [hidden],.chat-ntf [hidden]{display:none!important}

/* v8.5 : consultation vidéo sur chaque fiche + interrupteur praticien */
.pf-vid .pfv-grid{display:grid; grid-template-columns:1fr; gap:16px}
.pfv-cta{justify-self:start}
.pfv-st{display:flex; align-items:center; gap:10px; margin:0; font-size:16px; color:var(--sc-ink)}
.pfv-dot{width:10px; height:10px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.18); flex:none}
.pfv-st.off{color:var(--sc-muted); font-size:15px; margin-bottom:12px}
.pfv-st.off .pfv-dot{background:#c9bdae; box-shadow:none}
.pfv-list{list-style:none; padding:0; margin:0 0 12px; display:grid; gap:7px; font-size:14.5px}
.pfv-list i{color:#1d4ed8; margin-right:8px}
.pfv-note{margin:0; font-size:13px; color:var(--sc-muted)}
.pf-vid.on{border-color:#d6e3fb; background:linear-gradient(180deg,#fff,#f7faff)}
@media(max-width:700px){.pf-vid .pfv-grid{grid-template-columns:1fr} .pfv-cta{width:100%; justify-content:center}}
.vid-sw{border:1.5px solid var(--sc-line); background:#fff; border-radius:14px; padding:7px 12px}
.vid-sw.on{border-color:#cddcfb; background:#f6f9ff}
.vid-sw .sw{font-size:13.5px}
.vid-sw .sw span small{display:block; font-weight:500; font-size:11.5px; color:var(--sc-muted)}
.lb-dl[hidden]{display:none !important}
/* v8.7.1 : moyens de paiement posés directement sur le fond du pied de page (pas de cartouche blanc) */
.sc-pay span.pm{background:transparent; box-shadow:none; min-width:0; padding:0 6px 0 0; height:30px}
.sc-pay{gap:18px; align-items:center}
.sc-pay .pm-cmi{color:#fff}
.sc-pay .pm-visa{color:#fff; font-size:17px}
.sc-pay .pm-pp b{color:#fff} .sc-pay .pm-pp i{color:#5fb7f2}

/* ============================================================
   v8.7.2 : demandes de RDV à valider (praticien) & confirmation claire (patient)
   ============================================================ */
.badge.hide{display:none}
.chip .badge.rqb{background:#ef4444; color:#fff; margin-left:6px; animation:rqPulse 1.8s ease-in-out infinite}
.rq-banner{background:#fff1f0; border-color:#f8c9c4; border-left-color:#ef4444}
.rq-banner i{color:#dc2626}
@keyframes rqPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.45)} 50%{box-shadow:0 0 0 7px rgba(239,68,68,0)}}
@keyframes rqRing{0%,60%,100%{transform:rotate(0)} 10%,30%{transform:rotate(-14deg)} 20%,40%{transform:rotate(14deg)}}

/* Bloc « Demandes à valider » */
.rq{background:#fff; border:2px solid var(--sc-orange); border-radius:24px; padding:18px; margin:0 0 18px; box-shadow:0 18px 40px -18px rgba(178,108,0,.45); scroll-margin-top:90px}
.rq-h{display:flex; gap:14px; align-items:center; margin-bottom:14px}
.rq-h h2{margin:0; font-size:20px; font-weight:500; letter-spacing:-.02em; color:var(--sc-ink)}
.rq-h p{margin:3px 0 0; color:#6f645a; font-size:14px}
.rq-bell{position:relative; flex:none; width:48px; height:48px; border-radius:50%; background:#fff3da; color:var(--sc-orange-ink); display:flex; align-items:center; justify-content:center; font-size:21px}
.rq-bell i{animation:rqRing 2.4s ease-in-out infinite; transform-origin:50% 10%}
.rq-bell em{position:absolute; top:-4px; right:-4px; min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:#ef4444; color:#fff; font-style:normal; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; border:2px solid #fff; animation:rqPulse 1.8s ease-in-out infinite}
.rq-bell.big{width:64px; height:64px; font-size:28px; background:#fff; margin:0 auto 10px}
.rq-list{list-style:none; margin:0; padding:0; display:grid; gap:10px; max-height:520px; overflow:auto}
.rq-item{display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:12px 14px; border:1px solid #efe3d2; border-radius:18px; background:#fffcf7}
.rq-item.last{background:#fff6e3; border-color:#f6d28c; box-shadow:inset 4px 0 0 var(--sc-orange)}
.rq-when{width:64px; text-align:center; background:#fff; border:1px solid #eadfce; border-radius:14px; padding:6px 4px; line-height:1.1}
.rq-when small{display:block; font-size:11px; text-transform:uppercase; color:#8b7f72; letter-spacing:.5px}
.rq-when b{display:block; font-size:24px; font-weight:600}
.rq-when span{display:block; font-size:12px; color:#8b7f72}
.rq-when em{display:block; margin-top:4px; font-style:normal; font-weight:700; font-size:13px; color:var(--sc-orange-ink)}
.rq-i{min-width:0; display:grid; gap:3px}
.rq-i b{font-size:16px; font-weight:600}
.rq-i small{color:#5f554c; font-size:13.5px}
.rq-new{display:inline-flex; align-items:center; gap:5px; width:max-content; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#fff; background:#ef4444; padding:3px 9px; border-radius:999px}
.rq-recu{font-size:12.5px; color:#8b7f72}
.rq-recu a{color:inherit}
.rq-a{display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end}
.rq-a form{margin:0}
.btn.rq-yes{background:var(--ok); color:#fff; border-color:var(--ok)}
.btn.rq-yes:hover{background:#15803d; color:#fff}
.btn.rq-no{color:var(--ko)}
.rq-ok{display:flex; gap:10px; align-items:center; background:var(--ok-soft); color:#166534; border-radius:16px; padding:10px 14px; margin:0 0 16px; font-size:14px; scroll-margin-top:90px}
.rq-ok b{font-weight:600}
.tbl tr.tr-rq td{background:#fff8ea}
.st i{margin-right:4px}
@media (max-width:720px){
  .rq-item{grid-template-columns:auto 1fr}
  .rq-a{grid-column:1/-1; justify-content:stretch}
  .rq-a form, .rq-a .btn{flex:1}
  .rq-a .btn{width:100%; justify-content:center}
}

/* Fenêtre d'alerte « Nouveau rendez-vous » */
.rq-modal{position:fixed; inset:0; z-index:2000; display:flex; align-items:center; justify-content:center; padding:16px}
.rq-modal[hidden]{display:none}
.rq-modal-bg{position:absolute; inset:0; background:rgba(28,23,21,.55); opacity:0; transition:opacity .22s}
.rq-modal-p{position:relative; width:min(460px,100%); background:#fff; border-radius:26px; overflow:hidden; box-shadow:0 40px 80px -20px rgba(0,0,0,.5); transform:translateY(24px) scale(.96); opacity:0; transition:transform .3s var(--ease), opacity .22s}
.rq-modal.open .rq-modal-bg{opacity:1}
.rq-modal.open .rq-modal-p{transform:none; opacity:1}
.rq-modal-top{background:linear-gradient(135deg,#f59e0b,#e08e00); color:#1c1715; text-align:center; padding:22px 20px 18px}
.rq-modal-top small{display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; opacity:.8}
.rq-modal-top h2{margin:4px 0 0; font-size:22px; font-weight:500; letter-spacing:-.02em}
.rq-modal-b{padding:18px 20px 20px; display:grid; gap:12px}
.rq-modal-card{display:flex; gap:14px; align-items:center; border:1px solid #efe3d2; background:#fffcf7; border-radius:18px; padding:12px}
.rq-modal-card b{display:block; font-size:17px; font-weight:600}
.rq-modal-card span{display:block; font-size:13.5px; color:#5f554c}
.rq-modal-txt{margin:0; font-size:14px; color:#4f453d}
.rq-modal-txt i{color:var(--sc-orange-ink); margin-right:4px}
.rq-modal-b form{margin:0}
.rq-modal-b .rq-yes{width:100%; justify-content:center}
.rq-modal-2{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.rq-modal-2 .btn{justify-content:center}

/* Notifications en direct */
.ntf.ntf-rq{border-left-color:#ef4444}
.ntf.ntf-rq .ntf-ic{background:#ef4444; color:#fff}
.ntf.ntf-rq small{color:#dc2626}
.ntf.ntf-ok{border-left-color:var(--ok)}
.ntf.ntf-ok .ntf-ic{background:var(--ok); color:#fff}
.ntf.ntf-ok small{color:#15803d}

/* Patient : statut et annonce de confirmation */
.st.big{display:inline-flex; align-items:center; gap:6px; font-size:13px; padding:6px 12px; width:max-content; margin-top:4px}
.st.big small{font-weight:500; opacity:.8}
.rdv-card.is-confirme{border-color:#a7e3bb; box-shadow:inset 5px 0 0 var(--ok)}
.rdv-card.is-en_attente{border-color:#f6d28c; box-shadow:inset 5px 0 0 var(--sc-orange)}
.pc-ok{display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; background:linear-gradient(135deg,#e7f7ec,#d3f1dd); border:1px solid #a7e3bb; border-radius:20px; padding:16px 18px; margin:0 0 16px; animation:scUp .5s var(--ease)}
.pc-ic{width:52px; height:52px; border-radius:50%; background:var(--ok); color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; animation:pop .6s var(--ease)}
.pc-ok small{display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:#15803d}
.pc-ok b{display:block; font-size:19px; font-weight:600; color:#14532d}
.pc-ok span{display:block; color:#166534; font-size:14.5px}
.btn.pc-btn{background:#fff; color:#166534; border-color:#a7e3bb}
.pc-wait{display:flex; gap:12px; align-items:center; background:#fff6e3; border:1px solid #f6dca6; border-left:5px solid var(--sc-orange); border-radius:16px; padding:12px 16px; margin:0 0 16px; font-size:14.5px}
.pc-wait i{font-size:20px; color:var(--sc-orange-ink)}
.pc-wait b{font-weight:600}
.cf-check.wait{background:var(--sc-orange); color:#1c1715}
@media (max-width:640px){ .pc-ok{grid-template-columns:auto 1fr} .pc-ok .btn{grid-column:1/-1; justify-content:center} }

/* ============================================================
   v8.7.4 : nouvelle carte dentiste (.dc) & bannière des chiffres (.kpi)
   Mobile d'abord, puis écran large à partir de 900px.
   ============================================================ */
.dc{--dc-b:#ece3d6; position:relative; display:grid; grid-template-columns:1fr; margin:0 0 16px; background:#fff; border:1px solid var(--dc-b); border-radius:24px; overflow:hidden;
  box-shadow:0 1px 2px rgba(28,23,21,.04), 0 12px 28px -20px rgba(120,70,20,.28);
  transition:opacity .75s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s}
.dc::before{content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg,#f59e0b,#fbbf24,#fb923c); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); z-index:1}
.dc:hover,.dc.hl{border-color:#f3cf8c; box-shadow:0 2px 4px rgba(28,23,21,.04), 0 28px 56px -26px rgba(178,108,0,.45)}
.dc:hover::before,.dc.hl::before{transform:scaleX(1)}

/* Identité */
.dc-id{position:relative; padding:18px 18px 16px; background:radial-gradient(140% 120% at 0% 0%,#fff7e8 0%,#fffdf9 45%,#fff 100%)}
.dc-head{display:flex; gap:14px; align-items:center}
.dc-ph{flex:none; text-decoration:none}
.dc-ph .ava{--s:68px; border-radius:22px; box-shadow:0 10px 22px -12px rgba(120,70,20,.55), 0 0 0 3px #fff; transition:transform .4s var(--ease)}
.dc:hover .dc-ph .ava{transform:scale(1.05) rotate(-2deg)}
.dc-name{min-width:0}
.dc-flags{display:flex; flex-wrap:wrap; gap:5px; margin-bottom:5px}
.dc-ok,.dc-fl{display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; letter-spacing:.2px; padding:3px 9px; border-radius:999px; white-space:nowrap}
.dc-ok{background:#e7f7ec; color:#15803d}
.dc-fl.ur{background:#fdecec; color:#b91c1c}
.dc-fl.vid{background:#e8efff; color:#1d4ed8}
.dc h3{margin:0; font-size:18px; line-height:1.25; font-weight:600; letter-spacing:-.02em}
.dc h3 a{color:var(--sc-ink); text-decoration:none; background:linear-gradient(var(--sc-orange),var(--sc-orange)) 0 100%/0 2px no-repeat; transition:background-size .35s var(--ease)}
.dc:hover h3 a{background-size:100% 2px}
.dc-sp{margin:3px 0 0; font-size:13.5px; font-weight:600; color:var(--sc-blue); line-height:1.35}
.dc-info{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:7px}
.dc-info li{display:flex; gap:9px; align-items:flex-start; font-size:13.5px; color:#5a5048; line-height:1.4}
.dc-info i{flex:none; width:26px; height:26px; margin-top:-3px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:11.5px; color:var(--sc-orange-ink); background:#fff3da}
.dc-info b{font-weight:600; color:var(--sc-ink)}
.dc-conv{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.dc-conv span{font-size:11.5px; font-weight:600; color:#6b5f54; padding:3px 9px; border:1px solid #eadfce; border-radius:8px; background:#fff}
.dc-more{display:none}

/* Réservation */
.dc-book{padding:14px 18px 18px; border-top:1px solid #f2eadf; display:flex; flex-direction:column; gap:12px; min-width:0}
.dc-next{display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; font-size:12.5px; color:#3f7a52; background:#effaf2; border:1px solid #cdeed8; border-radius:14px; padding:9px 12px}
.dc-next b{margin-left:auto; font-size:14px; font-weight:700; color:#166534}
.dc-next.none{color:var(--sc-muted); background:#f7f3ee; border-color:#ece4d8}
.dc-days{display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 16px) / 3); gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin:0 -2px; padding:2px}
.dc-days::-webkit-scrollbar{display:none}
.dc-day{scroll-snap-align:start; display:flex; flex-direction:column; gap:6px; min-width:0}
.dc-dh{text-align:center; padding:6px 4px; border-radius:12px; background:#f8f4ee; line-height:1.15}
.dc-dh small{display:block; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:#8b7f72}
.dc-dh b{display:block; font-size:13px; font-weight:700; color:var(--sc-ink)}
.dc-day.today .dc-dh{background:var(--ink); }
.dc-day.today .dc-dh small{color:var(--sc-orange)}
.dc-day.today .dc-dh b{color:#fff}
.dc-slot,.dc-plus,.dc-nil{display:block; text-align:center; font-size:13px; font-weight:700; padding:9px 0; border-radius:11px; text-decoration:none}
.dc-slot{color:var(--sc-ink); background:#fff; border:1px solid #ebe1d3; transition:background .2s, border-color .2s, color .2s, transform .2s var(--ease), box-shadow .2s}
.dc-slot:hover,.dc-slot:focus-visible{background:var(--sc-orange); border-color:var(--sc-orange); color:#1c1715; transform:translateY(-2px); box-shadow:0 10px 18px -10px rgba(245,158,11,.9)}
.dc-slot.first{background:#16a34a; border-color:#16a34a; color:#fff; box-shadow:0 8px 16px -10px rgba(22,163,74,.9)}
.dc-slot.first:hover{background:#15803d; border-color:#15803d; color:#fff}
.dc-plus{font-size:12px; color:var(--sc-blue); padding:4px 0}
.dc-plus:hover{text-decoration:underline}
.dc-nil{color:#b5aa9c; font-weight:600; border:1px dashed #e5dccf; font-size:12px}
.dc-acts{display:flex; flex-direction:column; gap:8px; align-items:stretch}
.dc-btn{display:flex; align-items:center; justify-content:center; gap:8px; padding:13px 18px; border-radius:14px; background:var(--sc-orange); color:#1c1715; font-weight:700; font-size:14.5px; text-decoration:none;
  box-shadow:0 12px 24px -14px rgba(245,158,11,.95); transition:background .25s, transform .25s var(--ease), box-shadow .25s}
.dc-btn:hover{background:var(--sc-orange-dark); color:#1c1715; transform:translateY(-1px); box-shadow:0 16px 28px -14px rgba(245,158,11,1)}
.dc-link{display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:13px; font-weight:700; color:var(--sc-ink); text-decoration:none; padding:4px}
.dc-link i,.dc-more i{font-size:11px; transition:transform .3s var(--ease)}
.dc-link:hover{color:var(--sc-blue)} .dc-link:hover i,.dc-more:hover i{transform:translateX(4px)}

@media (max-width:559px){ .dc-days{-webkit-mask:linear-gradient(90deg,#000 86%,transparent); mask:linear-gradient(90deg,#000 86%,transparent); padding-right:24px} }
@media (min-width:560px){
  .dc-days{grid-auto-columns:calc((100% - 32px) / 5)}
  .dc-acts{flex-direction:row; align-items:center; justify-content:space-between}
  .dc-btn{flex:none}
}
@media (min-width:900px){
  .dc{grid-template-columns:minmax(290px,34%) 1fr}
  .dc:hover{transform:translateY(-3px)}
  .dc-id{padding:22px; border-right:1px solid #f2eadf; display:flex; flex-direction:column}
  .dc-ph .ava{--s:76px}
  .dc-more{display:inline-flex; align-items:center; gap:7px; margin-top:auto; padding-top:14px; font-size:13px; font-weight:700; color:var(--sc-blue); text-decoration:none}
  .dc-book{border-top:0; padding:20px 22px}
  .dc-next{background:none; border:0; padding:0; font-size:13px}
  .dc-next b{margin-left:4px; font-size:15px}
  .dc-days{overflow:visible; scroll-snap-type:none}
}
@media (prefers-reduced-motion:reduce){ .dc,.dc::before,.dc-ph .ava,.dc-slot{transition:none} .dc:hover{transform:none} }

/* ---------- v8.7.5 : bannière des chiffres sur fond blanc ---------- */
.kpi{position:relative; z-index:1; margin-top:44px; padding:26px 0; background:#fff; border-top:1px solid #f0e8dc; border-bottom:1px solid #f0e8dc}
.kpi .wrap{position:relative; display:block; grid-template-columns:none; padding-top:0; padding-bottom:0}
.kpi-g{list-style:none; margin:0; padding:0; width:100%; display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.kpi-c{--k:#f59e0b; --ks:#fff4dc; position:relative; display:flex; flex-direction:column; align-items:flex-start; padding:16px 14px 15px; border-radius:20px; background:#fff; border:1px solid #efe6d9; overflow:hidden;
  box-shadow:0 1px 2px rgba(28,23,21,.04), 0 10px 26px -20px rgba(120,70,20,.35); transition:transform .35s var(--ease), box-shadow .35s, border-color .35s}
.kpi-c::before{content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--k); transform:scaleX(.18); transform-origin:left; transition:transform .45s var(--ease)}
.kpi-c:hover{transform:translateY(-3px); border-color:color-mix(in srgb,var(--k) 35%,#fff); box-shadow:0 2px 4px rgba(28,23,21,.04), 0 22px 40px -22px color-mix(in srgb,var(--k) 70%,transparent)}
.kpi-c:hover::before{transform:scaleX(1)}
.kpi-c:nth-child(2){--k:#0ea5e9; --ks:#e6f6fd}
.kpi-c:nth-child(3){--k:#16a34a; --ks:#e7f7ec}
.kpi-ic{width:40px; height:40px; border-radius:13px; display:flex; align-items:center; justify-content:center; margin-bottom:12px; font-size:16px; color:var(--k); background:var(--ks); transition:transform .35s var(--ease)}
.kpi-c:hover .kpi-ic{transform:rotate(-8deg) scale(1.08)}
.kpi-c strong{display:flex; align-items:baseline; gap:4px; font-size:32px; line-height:1; font-weight:800; letter-spacing:-.04em; color:var(--sc-ink); font-variant-numeric:tabular-nums; white-space:nowrap}
.kpi-c strong em{font-style:normal; font-size:16px; letter-spacing:0; color:var(--k)}
.kpi-l{margin-top:8px; font-size:13.5px; font-weight:700; color:var(--sc-ink)}
.kpi-c small{display:flex; align-items:center; gap:6px; margin-top:2px; font-size:12px; color:var(--sc-muted)}
.kpi-c.hot{background:linear-gradient(150deg,#fff8ea 0%,#ffefd2 100%); border-color:#f6d9a2}
.kpi-c.hot .kpi-ic{background:var(--k); color:#1c1715}
.kpi-c.hot::after{content:""; position:absolute; right:-30px; bottom:-34px; width:110px; height:110px; border-radius:50%; background:radial-gradient(circle,rgba(245,158,11,.22),transparent 70%)}
@media (min-width:900px){
  .kpi{margin-top:56px; padding:30px 0}
  .kpi-g{grid-template-columns:repeat(4,1fr); gap:16px}
  .kpi-c{padding:22px 22px 20px}
  .kpi-c strong{font-size:42px}
  .kpi-c strong em{font-size:19px}
  .kpi-l{font-size:15px}
}

/* ---------- v8.7.5 : moyens de paiement sur une seule ligne ---------- */
.sc-pay{flex-wrap:nowrap; gap:8px; align-items:center}
.sc-pay span.pm{height:26px; padding:0; flex:none}
.sc-pay .pm-cmi{font-size:11.5px}
.sc-pay .pm-cmi::before{width:6px; height:6px; margin-right:4px}
.sc-pay .pm-visa{font-size:14px}
.sc-pay .pm-mc svg{width:28px; height:18px}
.sc-pay .pm-pp{font-size:12.5px}
@media (min-width:1024px){ .sc-foot-grid{grid-template-columns:1.35fr 1fr 1fr 1fr 1.3fr} }

/* ============================================================
   v8.7.5 : boutons du site — pilules modernes, dégradé, reflet au survol
   ============================================================ */
.btn,.sc-cta,.ss-go,.dc-btn{position:relative; isolation:isolate; overflow:hidden; border-radius:999px; letter-spacing:-.01em;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s, border-color .25s, color .25s}
.btn::after,.sc-cta::after,.ss-go::after,.dc-btn::after{content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%; z-index:-1; pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent); transform:skewX(-18deg); transition:left .65s var(--ease)}
.btn:hover::after,.sc-cta:hover::after,.ss-go:hover::after,.dc-btn:hover::after{left:120%}
.btn:active,.sc-cta:active,.ss-go:active,.dc-btn:active,.mini-btn:active{transform:translateY(0) scale(.97)}
.btn:focus-visible,.sc-cta:focus-visible,.ss-go:focus-visible,.dc-btn:focus-visible,.mini-btn:focus-visible,.chip:focus-visible{outline:0; box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--sc-orange)}
.btn .fa-arrow-right,.sc-cta .fa-arrow-right,.ss-go .fa-arrow-right,.dc-btn .fa-arrow-right{transition:transform .3s var(--ease)}
.btn:hover .fa-arrow-right,.sc-cta:hover .fa-arrow-right,.ss-go:hover .fa-arrow-right{transform:translateX(4px)}
.btn{padding:12px 22px}
.btn-lg{padding:15px 28px; border-radius:999px}

/* Principal : orange */
.btn-or,.sc-cta,.ss-go,.dc-btn{background:linear-gradient(180deg,#fbbf24 0%,#f59e0b 55%,#ea8a00 100%); color:#1c1715; border:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), inset 0 -2px 0 rgba(180,83,9,.25), 0 10px 22px -12px rgba(234,138,0,.9)}
.btn-or:hover,.sc-cta:hover,.ss-go:hover,.dc-btn:hover{background:linear-gradient(180deg,#fcd34d 0%,#f59e0b 50%,#e08e00 100%); color:#1c1715; transform:translateY(-2px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), inset 0 -2px 0 rgba(180,83,9,.25), 0 16px 30px -12px rgba(234,138,0,.95)}
.ss-go{border-radius:999px}
@media (max-width:760px){ .ss-go{border-radius:16px} }

/* Contour */
.btn-ln{background:#fff; color:var(--sc-ink); border:1.5px solid #e8dccb; box-shadow:0 1px 2px rgba(28,23,21,.05)}
.btn-ln:hover{background:#fff8ec; border-color:var(--sc-orange); color:var(--sc-ink); transform:translateY(-2px); box-shadow:0 12px 24px -16px rgba(234,138,0,.8)}
.btn-ln::after{background:linear-gradient(105deg,transparent,rgba(245,158,11,.16),transparent)}

/* Sombre */
.btn-dk{background:linear-gradient(180deg,#3a302a 0%,#1c1715 100%); color:#fff; border:0; box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 10px 22px -14px rgba(28,23,21,.9)}
.btn-dk:hover{background:linear-gradient(180deg,#4a3d35 0%,#241d1a 100%); color:#fff; transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 16px 28px -14px rgba(28,23,21,.9)}
.btn-dk::after{background:linear-gradient(105deg,transparent,rgba(255,255,255,.18),transparent)}

/* Verre (sur fond sombre) */
.btn-gh{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:#fff; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px)}
.btn-gh:hover{background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.35); color:#fff; transform:translateY(-2px)}

/* Variantes colorées existantes */
.btn.rq-yes{background:linear-gradient(180deg,#22c55e,#16a34a); box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 10px 22px -12px rgba(22,163,74,.9)}
.btn.rq-yes:hover{background:linear-gradient(180deg,#4ade80,#16a34a); transform:translateY(-2px)}
.dr-vid .btn-or{background:linear-gradient(180deg,#60a5fa,#2563eb); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 10px 22px -12px rgba(37,99,235,.9)}
.dr-vid .btn-or:hover{background:linear-gradient(180deg,#93c5fd,#2563eb); color:#fff}
.mo-act .btn-dk{background:linear-gradient(180deg,#ef4444,#dc2626)}
.btn:disabled,.btn[disabled]{opacity:.5; transform:none; box-shadow:none}
.btn:disabled::after{display:none}

/* Petits boutons */
.mini-btn{display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 13px; border:1.5px solid #e8dccb; background:#fff; color:var(--sc-ink);
  transition:background .2s, border-color .2s, color .2s, transform .2s var(--ease), box-shadow .2s}
.mini-btn:hover{border-color:var(--sc-orange); background:#fff8ec; transform:translateY(-1px); box-shadow:0 8px 16px -12px rgba(234,138,0,.8)}
.mini-btn.ok{background:linear-gradient(180deg,#22c55e,#16a34a); border-color:#16a34a; color:#fff}
.mini-btn.ok:hover{background:#15803d; color:#fff}
.mini-btn.ko:hover{background:var(--ko); border-color:var(--ko); color:#fff}

/* Puces de filtre */
.chip{border-radius:999px; transition:background .2s, border-color .2s, color .2s, transform .2s var(--ease), box-shadow .2s}
.chip:hover{border-color:var(--sc-orange); background:#fff8ec; transform:translateY(-1px)}
.chip.on{background:linear-gradient(180deg,#3a302a,#1c1715); border-color:#1c1715; color:#fff; box-shadow:0 8px 18px -12px rgba(28,23,21,.9)}
.chip.on:hover{background:linear-gradient(180deg,#3a302a,#1c1715); color:#fff}
@media (prefers-reduced-motion:reduce){ .btn::after,.sc-cta::after,.ss-go::after,.dc-btn::after{display:none} .btn:hover,.sc-cta:hover,.ss-go:hover,.dc-btn:hover{transform:none} }

/* ============================================================
   v8.7.6 – Charte de bonne conduite & suspension
   ============================================================ */
.tag.ko{background:#fdecec; color:#b91c1c}
.ch-list{list-style:none; margin:0; padding:0; display:grid; gap:10px}
.ch-list li{display:flex; gap:14px; align-items:flex-start; border:1px solid #efe3d2; background:#fffcf7; border-radius:16px; padding:14px 16px}
.ch-list li b{display:block; font-size:15.5px; font-weight:600; color:var(--sc-ink); margin-bottom:3px}
.ch-list li p{margin:0; font-size:14px; color:#5f554c; line-height:1.55}
.ch-list li.ch-warn{border-color:#f6c9c9; background:#fff6f6}
.ch-list li.ch-warn .ch-ic{background:#fdecec; color:var(--ko)}
.ch-ic{flex:none; width:38px; height:38px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:#fff3da; color:var(--sc-orange-ink); font-size:16px}
.ch-ic.big{width:50px; height:50px; border-radius:15px; font-size:21px}
.ch-note{display:flex; gap:10px; align-items:flex-start; margin:14px 0 0; padding:12px 14px; border-radius:14px; background:var(--sc-soft); font-size:13px; color:var(--sc-muted)}
.ch-note i{margin-top:3px; color:var(--sc-orange-ink)}
.ch-head{display:flex; gap:14px; align-items:center; margin-bottom:16px}
.ch-head h2{margin:0; font-size:22px; font-weight:500; letter-spacing:-.02em}
.ch-head p{margin:2px 0 0; font-size:13.5px}
.ch-page{max-width:820px}
.ch-public{padding:44px 20px 60px; max-width:860px}
.ch-public h1{font-size:clamp(30px,4vw,42px); font-weight:500; letter-spacing:-.04em; margin:14px 0 8px}
.ch-lead{color:var(--sc-muted); max-width:680px; margin:0 0 18px}
.ch-nav{margin-bottom:18px}
.ch-public .ch-page + .ch-page{margin-top:20px}
.ch-public .ch-page{scroll-margin-top:80px}

/* Fenêtre bloquante (au-dessus de l'alerte « Nouveau rendez-vous ») */
.ch-modal{position:fixed; inset:0; z-index:2100; display:flex; align-items:center; justify-content:center; padding:14px}
.ch-modal-bg{position:absolute; inset:0; background:rgba(28,23,21,.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px)}
.ch-modal-p{position:relative; width:min(640px,100%); max-height:calc(100vh - 28px); display:flex; flex-direction:column; background:#fff; border-radius:24px; overflow:hidden;
  box-shadow:0 40px 80px -20px rgba(0,0,0,.5); animation:chIn .35s var(--ease)}
@keyframes chIn{from{transform:translateY(24px) scale(.97); opacity:0}to{transform:none; opacity:1}}
.ch-modal-top{display:flex; gap:14px; align-items:center; padding:18px 22px; background:linear-gradient(135deg,#f59e0b,#e08e00); color:#1c1715}
.ch-modal-top > span{width:44px; height:44px; border-radius:14px; background:rgba(255,255,255,.35); display:inline-flex; align-items:center; justify-content:center; font-size:19px; flex:none}
.ch-modal-top small{display:block; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.7px; opacity:.8}
.ch-modal-top h2{margin:2px 0 0; font-size:22px; font-weight:500; letter-spacing:-.02em}
.ch-modal-b{padding:18px 22px; overflow-y:auto; flex:1}
.ch-intro{margin:0 0 14px; font-size:14.5px; color:#4a4038}
.ch-modal-f{padding:14px 22px 18px; border-top:1px solid #efe3d2; background:#fffcf7}
.ch-modal-f .consent{font-size:13.5px; color:var(--sc-ink); margin:0 0 12px}
.ch-btns{display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap}
body:has(.ch-modal){overflow:hidden}
.ch-adm{border-top:1px dashed #efe3d2; padding-top:12px; margin-top:14px}
.ch-adm p{margin:0 0 8px; font-size:13px}
@media (max-width:560px){ .ch-modal-p{border-radius:20px} .ch-btns .btn{flex:1; justify-content:center} .ch-list li{padding:12px} }
@media (prefers-reduced-motion:reduce){ .ch-modal-p{animation:none} }

/* ============================================================
   v8.7.7 – Adhésion annuelle
   ============================================================ */
.adh-pill{display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border-radius:999px; font-size:13px; font-weight:600; text-decoration:none; border:1.5px solid transparent; white-space:nowrap}
.adh-pill.ok{background:var(--ok-soft); color:#166534; border-color:#bfe7cb}
.adh-pill.warn{background:#fff3da; color:var(--sc-orange-ink); border-color:#f6d48d}
.adh-pill.ko{background:#fdecec; color:#b91c1c; border-color:#f6c9c9}
.adh-pill:hover{transform:translateY(-1px)}
.adh-st{display:inline-flex; align-items:center; font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap}
.adh-st.actif{background:var(--ok-soft); color:#166534}
.adh-st.bientot{background:#fff3da; color:var(--sc-orange-ink)}
.adh-st.grace,.adh-st.expire{background:#fdecec; color:#b91c1c}
.adh-banner.ko{background:#fdecec; border-color:#f6c9c9; border-left-color:var(--ko); color:#991b1b}
.adh-banner.ko i,.adh-banner.ko em{color:#b91c1c}
.adh-grid{display:grid; grid-template-columns:1fr 1.25fr; gap:18px; align-items:start}
.adh-big{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px}
.adh-big small{width:100%; font-size:12px; text-transform:uppercase; letter-spacing:.6px; color:var(--sc-muted); font-weight:700}
.adh-big b{font-size:34px; font-weight:600; letter-spacing:-.03em}
.adh-bar{height:8px; border-radius:99px; background:#f1e8db; overflow:hidden; margin:14px 0}
.adh-bar i{display:block; height:100%; background:linear-gradient(90deg,#22c55e,#16a34a); border-radius:inherit}
.adh-card.bientot .adh-bar i{background:linear-gradient(90deg,#f59e0b,#e08e00)}
.adh-card.grace .adh-bar i,.adh-card.expire .adh-bar i{background:var(--ko)}
.adh-card.grace,.adh-card.expire{border-color:#f6c9c9}
.adh-dl{display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0; font-size:14px}
.adh-dl dt{color:var(--sc-muted)} .adh-dl dd{margin:0; font-weight:600}
.adh-tbl td small,.adm-tbl td small{display:block}
.adh-wait{display:grid; gap:12px; margin-bottom:26px}
.adh-wcard{display:grid; grid-template-columns:120px 1fr 240px; gap:16px; align-items:start}
.adh-wi{display:grid; gap:4px; font-size:13.5px}
.adh-wi > b{font-size:16px}
.adh-wa{display:grid; gap:8px}
details summary{cursor:pointer}
@media (max-width:860px){ .adh-grid,.adh-wcard{grid-template-columns:1fr} }

/* ============================================================
   v8.7.8 – Rubriques des espaces colorées (mobile first)
   Mobile : grille de tuiles (icône au-dessus du libellé) · ≥ 760px : pastilles sur une ligne
   ============================================================ */
.dtabs{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:0}
.dtabs .chip{--c:#6d635a; --cs:#f7f2ea; --cb:#e4d9c9;
  position:relative; flex-direction:column; justify-content:center; gap:6px; min-height:68px; padding:10px 4px; border-radius:16px;
  white-space:normal; text-align:center; line-height:1.15; font-size:11.5px; font-weight:700;
  background:var(--cs); border:1.5px solid var(--cb); color:#2b231e; box-shadow:none; -webkit-tap-highlight-color:transparent}
.dtabs .chip i{font-size:18px; color:var(--c); transition:transform .2s var(--ease)}
.dtabs .chip:hover{background:var(--cs); border-color:var(--c); color:#2b231e; transform:translateY(-1px)}
.dtabs .chip:hover i{transform:scale(1.08)}
.dtabs .chip.on,.dtabs .chip.on:hover{background:var(--c); border-color:var(--c); color:#fff; box-shadow:0 10px 20px -14px var(--c)}
.dtabs .chip.on i{color:#fff}
.dtabs .chip .badge{position:absolute; top:5px; right:5px; margin:0; min-width:18px; height:18px; font-size:10.5px; padding:0 5px}
.dtabs .chip.on .badge{background:#fff; color:var(--c)}
.dtabs .chip .badge.rqb{background:#ef4444; color:#fff}
.dtabs .t-agenda{--c:#2563eb; --cs:#eef4ff; --cb:#cfdcfb}
.dtabs .t-msg{--c:#7c3aed; --cs:#f4f0ff; --cb:#ddd3fc}
.dtabs .t-photos{--c:#db2777; --cs:#fff0f6; --cb:#fbcfe2}
.dtabs .t-fiche{--c:#0d9488; --cs:#ebfaf6; --cb:#bdebdf}
.dtabs .t-mdp{--c:#475569; --cs:#f1f5f9; --cb:#d6dee8}
.dtabs .t-adh{--c:#16a34a; --cs:#edfbf2; --cb:#c3ebd0}
.dtabs .t-charte{--c:#c2790a; --cs:#fff7e8; --cb:#f6dca6}

/* En-tête de l'espace : actions empilées sur mobile */
.dash{padding:20px 14px 80px}
.dash-h{flex-direction:column; align-items:stretch; gap:14px; margin-bottom:16px}
.dash-h h1{font-size:23px}
.dash-h p{font-size:13.5px}
.dash-act{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.dash-act > *{min-width:0}
.dash-act .vid-sw,.dash-act .adh-pill{grid-column:1 / -1}
.dash-act .vid-sw{display:flex; align-items:center}
.dash-act .adh-pill{justify-content:center; padding:10px 13px}
.dash-act .btn{justify-content:center; padding-left:10px; padding-right:10px; font-size:14px}
.dash-act.pat .btn{grid-column:auto}
.msg-banner{flex-wrap:wrap; gap:8px 12px; font-size:14px}
.msg-banner em{margin-left:auto}

@media (min-width:760px){
  .dash{padding:30px 20px 90px}
  .dash-h{flex-direction:row; align-items:center; justify-content:space-between}
  .dash-h h1{font-size:28px}
  .dash-act{display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end}
  .dash-act .adh-pill{padding:8px 13px}
  .dtabs{display:flex; flex-wrap:wrap; gap:8px}
  .dtabs .chip{flex-direction:row; min-height:0; padding:9px 15px; border-radius:999px; font-size:13.5px; gap:8px; white-space:nowrap}
  .dtabs .chip i{font-size:13px}
  .dtabs .chip .badge{position:static; margin-left:2px}
  .msg-banner{flex-wrap:nowrap}
}

/* Notifications en direct : sur mobile, une seule à la fois, en bas de l'écran, compacte */
@media (max-width:759px){
  .ntf-wrap{top:auto; bottom:12px; right:10px; left:10px; width:auto}
  .ntf-wrap .ntf:not(:first-child){display:none}
  .ntf{padding:11px 12px; gap:10px; border-radius:16px; box-shadow:0 14px 34px -10px rgba(28,23,21,.5)}
  .ntf .ntf-ic{width:34px; height:34px; font-size:13px}
  .ntf p{-webkit-line-clamp:2; margin:2px 0 4px; font-size:13.5px}
}

/* ============================================================
   v8.7.9 – Rubriques en dégradés légers, variantes de l'orange eDentiste
   --g1/--g2 : dégradé clair · --c : icône · --cb : bordure · --a1/--a2 : dégradé de l'onglet actif
   ============================================================ */
.dtabs .chip{background:linear-gradient(160deg,var(--g1) 0%,var(--g2) 100%); border-color:var(--cb); color:#2b211a}
.dtabs .chip:hover{background:linear-gradient(160deg,var(--g1) 0%,var(--g2) 100%); border-color:var(--c); color:#2b211a; box-shadow:0 8px 18px -14px var(--c)}
.dtabs .chip.on,.dtabs .chip.on:hover{background:linear-gradient(160deg,var(--a1) 0%,var(--a2) 100%); border-color:var(--a2); color:#1c1715;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), 0 10px 22px -14px var(--a2)}
.dtabs .chip.on i{color:#1c1715}
.dtabs .chip.on .badge{background:#fff; color:#1c1715}
.dtabs .chip.on .badge.rqb{background:#ef4444; color:#fff}
.dtabs .t-agenda{--g1:#fffaf0; --g2:#ffefc7; --cb:#f8dc95; --c:#c98a00; --a1:#fcd34d; --a2:#f5b014}   /* miel */
.dtabs .t-msg   {--g1:#fff8f0; --g2:#ffe6cc; --cb:#f9cf9f; --c:#d9741a; --a1:#fdba74; --a2:#f59440}   /* abricot */
.dtabs .t-photos{--g1:#fff7f3; --g2:#ffe2d6; --cb:#f8c7b3; --c:#d9653f; --a1:#fdac8f; --a2:#f48a62}   /* pêche */
.dtabs .t-fiche {--g1:#fdf9f3; --g2:#f5e7d3; --cb:#e8cfac; --c:#a8692b; --a1:#e9c08f; --a2:#d39b5c}   /* caramel */
.dtabs .t-mdp   {--g1:#fbf9f6; --g2:#efe7dc; --cb:#ddd0bf; --c:#806a55; --a1:#d9c8b3; --a2:#bfa88d}   /* sable */
.dtabs .t-adh   {--g1:#fffbea; --g2:#fdedb5; --cb:#f2d77c; --c:#b88a06; --a1:#fde68a; --a2:#f0c43c}   /* or */
.dtabs .t-charte{--g1:#fff9ee; --g2:#fee9c2; --cb:#f6d48d; --c:#c27a06; --a1:#fbbf24; --a2:#f59e0b}   /* orange eDentiste */

/* ---------- v8.8 : onglet Google Maps de l'espace praticien ---------- */
.dtabs .t-google{--c:#1a73e8; --cs:#eef4fe; --cb:#c6dafc; --g1:#f2f7ff; --g2:#dce9fd; --a1:#8ab4f8; --a2:#1a73e8}
.gg-grid{display:grid; grid-template-columns:1.6fr 1fr; gap:22px; align-items:start}
.gg-link{display:flex; gap:10px; margin-top:6px}
.gg-link input{flex:1; min-width:0; font-family:Menlo,Consolas,monospace; font-size:13px; padding:12px 14px; border:1.5px solid #c6dafc; border-radius:12px; background:#f6f9ff; color:var(--sc-ink)}
.gg-link .btn{white-space:nowrap; border-radius:12px}
.gg-steps{counter-reset:gg; list-style:none; padding:0; margin:22px 0 0; display:grid; gap:12px}
.gg-steps li{counter-increment:gg; position:relative; padding:12px 14px 12px 54px; border:1px solid #e3ebf8; border-radius:14px; background:linear-gradient(135deg,#fff,#f5f9ff)}
.gg-steps li::before{content:counter(gg); position:absolute; left:14px; top:12px; width:28px; height:28px; border-radius:9px; background:#1a73e8; color:#fff; font-weight:800; display:grid; place-items:center; font-size:14px}
.gg-steps b{display:block}
.gg-steps span{font-size:14px; color:#5b6472}
.gg-tip{display:flex; gap:10px; margin-top:18px; padding:12px 14px; border-radius:14px; background:#fff7e8; border:1px solid #f6dca6; font-size:14px}
.gg-tip i{color:#f59e0b; margin-top:3px}
.gg-check{list-style:none; padding:0; margin:0 0 14px; display:grid; gap:10px; font-size:14px}
.gg-check li{display:flex; gap:9px}
.gg-check i{color:#16a34a; margin-top:3px}
.gg-stat{padding:10px 14px; border-radius:12px; background:#eef4fe; color:#1a4fa0; margin:0 0 12px}
.gg-stat b{font-size:20px}
@media (max-width:860px){ .gg-grid{grid-template-columns:1fr} .gg-link{flex-direction:column} }

/* ============================================================
   v9 : messagerie – photos, documents et emojis
   ============================================================ */
.sr-only{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.chat-form .chat-tool{width:40px; height:40px; margin-bottom:3px; flex:none; border:0; border-radius:50%; background:transparent; color:#8b7f72; font-size:19px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s, color .2s}
.chat-form .chat-tool:hover, .chat-form .chat-tool[aria-expanded="true"]{background:var(--sand); color:var(--ink); transform:none}
.chat-form .chat-tool input{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}
.chat-form .chat-tool:focus-within{outline:2px solid var(--sc-orange); outline-offset:2px}
.chat-emoji{display:grid; grid-template-columns:repeat(auto-fill,minmax(38px,1fr)); gap:2px; margin:6px 14px 0; padding:8px; max-height:168px; overflow-y:auto; background:#fff; border:1px solid #eadfce; border-radius:16px; box-shadow:0 12px 28px rgba(7,21,43,.10); animation:scUp .2s var(--ease)}
.chat-emoji[hidden]{display:none}
.chat-emoji button{border:0; background:transparent; font-size:22px; line-height:1; padding:7px 0; border-radius:10px; cursor:pointer; transition:background .15s, transform .15s}
.chat-emoji button:hover{background:#fff8ec; transform:scale(1.15)}
.chat-file{display:flex; align-items:center; gap:10px; margin:8px 14px 0; padding:8px 10px; background:#fff; border:1.5px dashed #e4d9c9; border-radius:14px; animation:scUp .2s var(--ease)}
.chat-file[hidden]{display:none}
.cf-thumb{width:44px; height:44px; flex:none; border-radius:10px; overflow:hidden; background:var(--sand); color:var(--sc-orange-ink); display:flex; align-items:center; justify-content:center; font-size:20px}
.cf-thumb img{width:100%; height:100%; object-fit:cover}
.cf-t{flex:1; min-width:0} .cf-t b{display:block; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis} .cf-t small{font-size:12px; color:#8b7f72}
.cf-x{width:32px; height:32px; flex:none; border:0; border-radius:50%; background:var(--sand); color:var(--ink); cursor:pointer}
.cf-x:hover{background:#fde7c3}
.chat.drag .chat-main{outline:3px dashed var(--sc-orange); outline-offset:-10px}
.msg-img{display:block; border-radius:16px; overflow:hidden; max-width:280px; border:1px solid #eadfce; background:#fff; margin-bottom:4px}
.msg-img img{display:block; width:100%; height:auto; max-height:320px; object-fit:cover}
.msg-doc{display:flex; align-items:center; gap:10px; min-width:220px; max-width:320px; padding:10px 12px; border-radius:16px; background:#fff; border:1px solid #eadfce; color:var(--ink); text-decoration:none; margin-bottom:4px; transition:border-color .2s, background .2s}
.msg-doc:hover{border-color:var(--sc-orange); background:#fff8ec}
.msg-doc > i:first-child{font-size:26px; color:var(--sc-orange-ink)} .msg-doc > i:last-child{color:#a39789}
.msg-doc span{flex:1; min-width:0} .msg-doc b{display:block; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis} .msg-doc small{font-size:11.5px; color:#8b7f72}
.msg.me .msg-doc{background:#12233f; border-color:#12233f; color:#fff} .msg.me .msg-doc small, .msg.me .msg-doc > i:last-child{color:#c9d2e0}
.msg.me .msg-doc > i:first-child{color:var(--sc-orange)}
.msg.pending .msg-img, .msg.pending .msg-doc{opacity:.6}
@media (max-width:640px){ .chat-form{gap:4px; padding:8px 10px 4px} .chat-form .chat-tool{width:36px; height:36px; font-size:18px} .msg-img{max-width:220px} }

/* v9.2 : pagination */
.pages{flex-wrap:wrap; align-items:center}
.pages .pg-nav{padding:0 14px; gap:8px; font-size:14px}
.pages a:hover{border-color:var(--sc-orange); background:#fff8ec}
.pages .pg-gap{min-width:24px; text-align:center; font-style:normal; color:#a39789; font-weight:700}
.pg-info{text-align:center; font-size:13px; color:#8b7f72; margin:10px 0 0}
@media (max-width:640px){ .pages .pg-nav span{display:none} .pages .pg-nav{padding:0; min-width:42px} .pages a,.pages span{min-width:38px; height:38px} }
.pages a.pg-nav span{min-width:0; height:auto; padding:0; border:0; border-radius:0; background:none; color:inherit; display:inline}
