/* =====================================================================
   Createamweb — boutique 2026 : éléments communs aux pages Dépannage (boutique/), Rendez-vous (rendez-vous/) et Compte (compte/)
   boutons · champs de formulaire · panneau de commande · cartes · calendrier · suivi de commande · espace admin
   ===================================================================== */
.sh{--navy:#0d1b2a;--panel:#10233a;--tq:#22a6b3;--tq2:#7ed6df;--ice:#eafbfc;--paper:#f2fafb;--white:#fff;--blue:#3c6382;--mute:#2a7186;--ink:#0d1b2a;
  --line:rgba(34,166,179,.22);--card:#fff;--field:#fff;--bad:#c0392b;--good:#1e9e6a;--warn:#c9821f;
  --fh:"Francois One",futura-pt-condensed,"Arial Narrow",sans-serif;--fb:futura-pt,Jost,Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);--spring:cubic-bezier(.34,1.56,.64,1);
  display:block;position:relative;font-family:var(--fb);color:var(--blue)}
html.dark-mode .sh{--paper:#0b1724;--white:#0d1b2a;--blue:#c7ecee;--mute:#8fd3dc;--ink:#eafbfc;--card:#10233a;--field:#0b1724;--line:rgba(126,214,223,.2);--bad:#ff7a6b;--good:#5fd6a3}
.sh *,.sh *::before,.sh *::after{box-sizing:border-box}
.sh a,.sh button{-webkit-tap-highlight-color:transparent}
.sh button{font-family:inherit}
.sh a:focus-visible,.sh button:focus-visible,.sh input:focus-visible,.sh select:focus-visible,.sh textarea:focus-visible{outline:2px solid var(--tq);outline-offset:3px}
.sh svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.caw-sr,.bq-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------------------------------------------------------------- boutons */
.sh-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:16px 26px;border:0;border-radius:999px;cursor:pointer;
  position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:#fff!important;text-decoration:none!important;
  font:600 12.5px/1.2 var(--fb);letter-spacing:.18em;text-transform:uppercase;transition:transform .45s var(--ease),box-shadow .45s,opacity .3s}
.sh-btn::before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:var(--tq);transform:translateY(102%);transition:transform .5s var(--ease)}
.sh-btn:hover::before,.sh-btn:focus-visible::before{transform:none}
.sh-btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px -16px rgba(34,166,179,.8)}
.sh-btn:active{transform:scale(.97)}
.sh-btn svg{width:17px;height:17px;stroke-width:2;transition:transform .45s var(--ease)}
.sh-btn:hover svg{transform:translateX(3px)}
.sh-btn[disabled],.sh-btn.is-busy{opacity:.55;pointer-events:none}
.sh-btn.is-busy svg{animation:sh-spin .8s linear infinite}
.sh-btn--full{width:100%}
.sh-btn--line{background:transparent;color:var(--ink)!important;box-shadow:inset 0 0 0 1.5px var(--line)}
.sh-btn--line:hover{color:#fff!important}
.sh-btn--danger{background:var(--bad)}
.sh-btn--sm{min-height:42px;padding:11px 18px;font-size:11.5px}
html.dark-mode .sh-btn{background:var(--tq)}
html.dark-mode .sh-btn::before{background:#fff}
html.dark-mode .sh-btn:hover{color:var(--navy)!important}
html.dark-mode .sh-btn--line{background:transparent;color:var(--ice)!important;box-shadow:inset 0 0 0 1.5px rgba(126,214,223,.45)}
.sh-link{display:inline-flex;align-items:center;gap:6px;padding:8px 0;border:0;background:none;cursor:pointer;color:var(--mute)!important;
  font:500 14px/1.4 var(--fb);text-decoration:underline;text-decoration-color:rgba(34,166,179,.45);text-underline-offset:4px}
.sh-link:hover{color:var(--tq)!important;text-decoration-color:currentColor}
.sh-small{margin:10px 0 0;font:400 13px/1.55 var(--fb);color:var(--mute)}
@keyframes sh-spin{to{transform:rotate(360deg)}}
.sh-spin{display:inline-block;width:20px;height:20px;border-radius:50%;border:2.5px solid rgba(34,166,179,.25);border-top-color:var(--tq);animation:sh-spin .8s linear infinite;vertical-align:middle}

/* ---------------------------------------------------------------- champs */
.sh-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px}
.sh-f--full{grid-column:1/-1}
.sh-f{position:relative;display:flex;flex-direction:column;gap:7px;min-width:0}
.sh-f label{font:600 12px/1.3 var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.sh-f input,.sh-f select,.sh-f textarea{width:100%;min-height:54px;padding:15px 18px;border:1.5px solid var(--line);border-radius:16px;background:var(--field);
  color:var(--ink);font:400 16px/1.3 var(--fb);transition:border-color .3s,box-shadow .3s;-webkit-appearance:none;appearance:none}
.sh-f textarea{min-height:96px;resize:vertical;line-height:1.5}
.sh-f select{background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:44px}
.sh-f input::placeholder,.sh-f textarea::placeholder{color:rgba(60,99,130,.45)}
html.dark-mode .sh-f input::placeholder,html.dark-mode .sh-f textarea::placeholder{color:rgba(199,236,238,.35)}
.sh-f input:focus,.sh-f select:focus,.sh-f textarea:focus{outline:0;border-color:var(--tq);box-shadow:0 0 0 4px rgba(34,166,179,.16)}
.sh-f.is-bad input,.sh-f.is-bad select,.sh-f.is-bad textarea{border-color:var(--bad);box-shadow:0 0 0 4px rgba(192,57,43,.1)}
.sh-f.is-ok input{border-color:rgba(30,158,106,.6)}
.sh-err{display:block;min-height:0;font:500 13px/1.4 var(--fb);color:var(--bad)}
.sh-err:empty{display:none}
.sh-pw{position:relative}
.sh-pw input{padding-right:58px}
.sh-pw-eye{position:absolute;right:8px;bottom:8px;width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--mute);cursor:pointer;display:grid;place-items:center}
.sh-pw-eye svg{width:20px;height:20px}
.sh-pw-eye:hover{background:rgba(34,166,179,.1);color:var(--tq)}
.sh-meter{height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.sh-meter i{display:block;height:100%;width:0;border-radius:inherit;background:var(--bad);transition:width .45s var(--ease),background .3s}
.sh-check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font:400 14px/1.55 var(--fb);color:var(--blue)}
.sh-check input{position:absolute;opacity:0;width:1px;height:1px}
.sh-check-b{flex:none;display:grid;place-items:center;width:24px;height:24px;margin-top:1px;border-radius:8px;border:1.5px solid var(--line);background:var(--field);transition:background .3s,border-color .3s,transform .3s var(--spring)}
.sh-check-b svg{width:15px;height:15px;stroke:#fff;stroke-width:2.6;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .4s var(--ease) .05s}
.sh-check input:checked+.sh-check-b{background:var(--tq);border-color:var(--tq);transform:scale(1.06)}
.sh-check input:checked+.sh-check-b svg{stroke-dashoffset:0}
.sh-check input:focus-visible+.sh-check-b{outline:2px solid var(--tq);outline-offset:3px}
.sh-check a{color:var(--tq)!important}
.sh-check.is-bad .sh-check-b{border-color:var(--bad)}
@media (max-width:560px){.sh-form{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- messages */
.sh-pay-err,.sh-msg{margin:0;font:500 14px/1.5 var(--fb);color:var(--bad)}
.sh-pay-err:empty,.sh-msg:empty{display:none}
.sh-msg--ok{color:var(--good)}
.sh-alert{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:18px;background:rgba(34,166,179,.1);color:var(--ink);font:400 15px/1.55 var(--fb)}
.sh-alert svg{flex:none;width:22px;height:22px;color:var(--tq);margin-top:1px}
.sh-alert--warn{background:rgba(201,130,31,.12)}
.sh-alert--warn svg{color:var(--warn)}
.sh-alert--bad{background:rgba(192,57,43,.1)}
.sh-alert--bad svg{color:var(--bad)}
.sh-toast{position:fixed;z-index:2000;left:50%;bottom:28px;width:max-content;max-width:min(560px,calc(100vw - 32px));padding:15px 22px;border-radius:18px;background:#0d1b2a;color:#fff;
  font:500 15px/1.45 futura-pt,Jost,Helvetica,Arial,sans-serif;box-shadow:0 24px 60px -20px rgba(0,0,0,.55);transform:translate(-50%,140%);opacity:0;transition:transform .55s var(--spring),opacity .35s}
.sh-toast.is-on{transform:translate(-50%,0);opacity:1}
.sh-toast--bad{background:#7d1f15}

/* ---------------------------------------------------------------- panneau de commande */
.sh-co{position:fixed;inset:0;z-index:1200;display:flex;justify-content:flex-end}
.sh-co[hidden]{display:none}
.sh-co-back{position:absolute;inset:0;background:rgba(6,14,23,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s}
.sh-co.is-open .sh-co-back{opacity:1}
.sh-co-panel{position:relative;display:flex;flex-direction:column;width:min(520px,100%);height:100%;background:var(--paper);color:var(--blue);
  box-shadow:-30px 0 80px -30px rgba(0,0,0,.5);transform:translateX(104%);transition:transform .7s var(--ease);outline:0}
.sh-co.is-open .sh-co-panel{transform:none}
.sh-co-head{flex:none;padding:26px 28px 18px;background:var(--white);border-bottom:1px solid var(--line)}
.sh-co-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.sh-co-head h2{margin:0;font:400 32px/1 var(--fh);text-transform:uppercase;letter-spacing:.01em;color:var(--ink)}
.sh-co-x{display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:50%;background:rgba(34,166,179,.1);color:var(--ink);cursor:pointer;transition:transform .5s var(--spring),background .3s}
.sh-co-x svg{width:20px;height:20px;stroke-width:2}
.sh-co-x:hover{transform:rotate(90deg);background:rgba(34,166,179,.2)}
.sh-steps{display:flex;gap:6px;margin:20px 0 0;padding:0;list-style:none;counter-reset:s}
.sh-steps li{flex:1;display:flex;align-items:center;gap:8px;min-width:0;padding-top:10px;border-top:3px solid var(--line);font:600 11px/1.2 var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);opacity:.6;transition:opacity .4s,border-color .4s}
.sh-steps li i{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--line);color:var(--ink);font-style:normal;font-size:11px;letter-spacing:0;transition:background .4s,color .4s}
.sh-steps li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-steps li.is-on,.sh-steps li.is-done{opacity:1;border-color:var(--tq)}
.sh-steps li.is-on i,.sh-steps li.is-done i{background:var(--tq);color:#fff}
.sh-co-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:24px 28px 40px}
.sh-co-v{animation:sh-in .55s var(--ease) both}
@keyframes sh-in{from{opacity:0;transform:translateX(26px)}}
.sh-co-v.is-back{animation-name:sh-in-b}
@keyframes sh-in-b{from{opacity:0;transform:translateX(-26px)}}
.sh-lines{margin:0;padding:0;list-style:none}
.sh-line{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;margin-bottom:10px;border-radius:20px;background:var(--card);box-shadow:0 1px 0 var(--line),0 18px 40px -30px rgba(13,27,42,.4)}
.sh-line-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#2cbac6,#1c7f8a);color:#fff}
.sh-line-ic svg{width:22px;height:22px}
.sh-line-n{margin:0;font:600 15px/1.3 var(--fb);color:var(--ink)}
.sh-line-o{margin:3px 0 0;font:400 13px/1.4 var(--fb);color:var(--mute)}
.sh-line-p{font:400 22px/1 var(--fh);color:var(--ink);white-space:nowrap}
.sh-line-rm{grid-column:2/-1;justify-self:start;padding:0;border:0;background:none;color:var(--mute);font:500 12.5px/1 var(--fb);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.sh-line-rm:hover{color:var(--bad)}
.sh-line select{grid-column:2/-1;width:100%;min-height:44px;padding:10px 40px 10px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--field);color:var(--ink);font:400 14px/1.3 var(--fb);
  -webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.sh-total{display:flex;align-items:baseline;justify-content:space-between;margin:18px 4px 0;padding-top:16px;border-top:1.5px dashed var(--line)}
.sh-total span{font:600 13px/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.sh-total b{font:400 44px/1 var(--fh);color:var(--ink)}
.sh-note{display:flex;gap:14px;align-items:flex-start;margin:20px 0 22px;padding:16px 18px;border-radius:18px;background:rgba(34,166,179,.1)}
.sh-note svg{flex:none;width:22px;height:22px;color:var(--tq)}
.sh-note p{margin:0;font:400 14.5px/1.55 var(--fb);color:var(--ink)}
.sh-empty{padding:40px 10px;text-align:center;font:400 16px/1.6 var(--fb)}
.sh-mini{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;border-radius:18px;background:var(--card);font:500 14px/1.45 var(--fb);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.sh-mini b{font:400 26px/1 var(--fh);white-space:nowrap}
.sh-ref{margin:18px 0 0;font:500 14px/1.4 var(--fb);color:var(--mute)}
.sh-ref b{color:var(--ink);letter-spacing:.06em}
/* bouton PayPal (jaune, comme le bouton officiel) */
.sh-paypal{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:62px;margin:16px 0 0;padding:14px 22px;border-radius:999px;
  background:#ffc439;color:#0d1b2a!important;text-decoration:none!important;font:600 16px/1.2 var(--fb);overflow:hidden;isolation:isolate;
  box-shadow:0 18px 40px -18px rgba(255,170,0,.8);transition:transform .45s var(--ease),box-shadow .45s,filter .3s}
.sh-paypal::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:-40%;width:30%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);transform:skewX(-20deg);animation:sh-shine 3.2s var(--ease) infinite 1s}
@keyframes sh-shine{0%{left:-40%}55%,100%{left:130%}}
.sh-paypal:hover{transform:translateY(-2px);filter:brightness(1.03);box-shadow:0 24px 50px -18px rgba(255,170,0,.95)}
.sh-paypal:active{transform:scale(.98)}
.sh-paypal-l b{font-weight:700}
.sh-paypal-logo{font:italic 800 21px/1 Verdana,"DejaVu Sans",Arial,sans-serif;letter-spacing:-.02em}
.sh-paypal-logo b{color:#003087;font-weight:800}
.sh-paypal-logo i{color:#009cde;font-style:italic}
.sh-paypal.is-busy{pointer-events:none;filter:saturate(.6)}
.sh-how{margin:22px 0 0;padding:0;list-style:none;display:grid;gap:12px}
.sh-how li{display:flex;gap:12px;align-items:flex-start;font:400 14.5px/1.5 var(--fb);color:var(--blue)}
.sh-how i{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(34,166,179,.14);color:var(--tq);font:700 12px/1 var(--fb);font-style:normal}
.sh-secure{display:flex;gap:10px;align-items:flex-start}
.sh-secure svg{flex:none;width:17px;height:17px;margin-top:1px;color:var(--tq)}
.sh-paid{margin-top:12px}
@media (max-width:640px){
  .sh-co{align-items:flex-end}
  .sh-co-panel{width:100%;height:auto;max-height:94svh;border-radius:26px 26px 0 0;transform:translateY(104%)}
  .sh-co-head{padding:20px 20px 14px;border-radius:26px 26px 0 0}
  .sh-co-head::before{content:"";display:block;width:44px;height:5px;margin:-6px auto 14px;border-radius:5px;background:var(--line)}
  .sh-co-head h2{font-size:27px}
  .sh-co-body{padding:20px 20px 32px}
  .sh-steps li span{display:none}
  .sh-steps li.is-on{flex:3}
  .sh-steps li.is-on span{display:inline}
  .sh-total b{font-size:38px}
}

/* ---------------------------------------------------------------- pages Rendez-vous et Compte : héros compact, cartes */
.sh-page{min-height:70vh;padding:0 0 clamp(60px,8vw,110px);background:var(--paper)}
.sh-hero{position:relative;overflow:hidden;padding:clamp(150px,17vw,200px) 0 clamp(120px,12vw,160px);background:var(--navy);color:#eafbfc;isolation:isolate}
.sh-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;
  background-image:linear-gradient(rgba(126,214,223,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(126,214,223,.09) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask:radial-gradient(ellipse 70% 80% at 50% 0%,#000 30%,transparent 75%);mask:radial-gradient(ellipse 70% 80% at 50% 0%,#000 30%,transparent 75%)}
.sh-hero::after{content:"";position:absolute;z-index:-1;left:50%;top:-30%;width:min(900px,120vw);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(34,166,179,.32),transparent 60%);filter:blur(10px)}
.sh-wrap{width:calc(100% - 80px);max-width:1180px;margin:0 auto;position:relative}
@media (max-width:767px){.sh-wrap{width:calc(100% - 32px)}}
.sh-kick{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font:600 12.5px/1.3 var(--fb);letter-spacing:.22em;text-transform:uppercase;color:var(--tq2)}
.sh-kick::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tq2);box-shadow:0 0 0 5px rgba(126,214,223,.18)}
.sh-h1{margin:0;font:400 clamp(44px,7vw,104px)/.92 var(--fh);text-transform:uppercase;letter-spacing:.005em;color:#fff;text-wrap:balance}
.sh-lead{margin:20px 0 0;max-width:58ch;font:400 clamp(16px,1.3vw,19px)/1.6 var(--fb);color:#b9e4e8}
.sh-main{position:relative;z-index:2;margin-top:clamp(-90px,-8vw,-60px)}
/* contenu chargé par le script : place réservée (le pied de page ne saute pas) */
.sh-main>.sh-app{min-height:min(820px,calc(100vh - 120px))}
.sh-card{position:relative;border-radius:28px;background:var(--card);box-shadow:0 1px 0 var(--line),0 40px 90px -50px rgba(13,27,42,.55);padding:clamp(22px,3.2vw,40px)}
.sh-card + .sh-card{margin-top:22px}
.sh-card-h{margin:0 0 6px;font:400 clamp(26px,2.6vw,36px)/1 var(--fh);text-transform:uppercase;color:var(--ink)}
.sh-card-p{margin:0 0 20px;font:400 15.5px/1.6 var(--fb);color:var(--blue)}
.sh-grid2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:22px;align-items:start}
@media (max-width:960px){.sh-grid2{grid-template-columns:minmax(0,1fr)}}
.sh-sec-t{display:flex;align-items:center;gap:12px;margin:0 0 16px;font:600 12.5px/1.3 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.sh-sec-t i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--tq);color:#fff;font:700 12px/1 var(--fb);font-style:normal;letter-spacing:0}
.sh-loading{display:flex;align-items:center;gap:14px;padding:30px 4px;font:500 15px/1.4 var(--fb);color:var(--mute)}

/* ---------------------------------------------------------------- lieu du rendez-vous (chez le client / à l'atelier) */
.sh-places{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 20px}
@media (max-width:560px){.sh-places{grid-template-columns:1fr}}
.sh-place{position:relative;display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:20px;cursor:pointer;background:var(--field);
  box-shadow:inset 0 0 0 1.5px var(--line);transition:box-shadow .35s,background .35s,transform .45s var(--spring)}
.sh-place input{position:absolute;opacity:0;width:1px;height:1px}
.sh-place-ic{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(34,166,179,.12);color:var(--tq);transition:background .35s,color .35s}
.sh-place-ic svg{width:23px;height:23px}
.sh-place b{display:block;font:600 15.5px/1.3 var(--fb);color:var(--ink)}
.sh-place small{display:block;margin-top:4px;font:400 13.5px/1.45 var(--fb);color:var(--blue)}
.sh-place:hover{transform:translateY(-2px)}
.sh-place:has(input:checked){background:rgba(34,166,179,.08);box-shadow:inset 0 0 0 2px var(--tq)}
.sh-place:has(input:checked) .sh-place-ic{background:var(--tq);color:#fff}
.sh-place:has(input:focus-visible){outline:2px solid var(--tq);outline-offset:3px}
.sh-addr[hidden]{display:none}
.sh-addr>.sh-form{gap:16px 14px}
.sh-err.sh-hint{color:var(--mute)}

/* ---------------------------------------------------------------- calendrier de rendez-vous */
.sh-weeks{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;margin:0 -2px;scrollbar-width:thin}
.sh-week{flex:none;width:min(100%,360px);scroll-snap-align:start}
.sh-week-t{margin:0 0 10px;font:600 12px/1.3 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.sh-days{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sh-day{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 6px 12px;border:1.5px solid var(--line);border-radius:18px;background:var(--field);color:var(--ink);cursor:pointer;
  transition:transform .4s var(--spring),border-color .3s,background .3s,box-shadow .3s}
.sh-day small{font:600 11px/1.2 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.sh-day b{font:400 32px/1 var(--fh)}
.sh-day em{font:500 11.5px/1.2 var(--fb);font-style:normal;color:var(--tq)}
.sh-day:hover:not([disabled]){transform:translateY(-3px);border-color:var(--tq)}
.sh-day.is-sel{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 18px 36px -18px rgba(13,27,42,.8)}
.sh-day.is-sel small,.sh-day.is-sel em{color:var(--tq2)}
html.dark-mode .sh-day.is-sel{background:var(--tq);border-color:var(--tq)}
html.dark-mode .sh-day.is-sel small,html.dark-mode .sh-day.is-sel em{color:#fff}
.sh-day[disabled]{cursor:not-allowed;opacity:.42;background:transparent}
.sh-day[disabled] em{color:var(--mute)}
.sh-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;margin-top:6px}
.sh-slot{min-height:52px;padding:12px 10px;border:1.5px solid var(--line);border-radius:14px;background:var(--field);color:var(--ink);cursor:pointer;font:600 15px/1.2 var(--fb);
  transition:transform .4s var(--spring),border-color .3s,background .3s,color .3s}
.sh-slot:hover:not([disabled]){border-color:var(--tq);transform:translateY(-2px)}
.sh-slot.is-sel{background:var(--tq);border-color:var(--tq);color:#fff;transform:scale(1.03)}
.sh-slot[disabled]{cursor:not-allowed;opacity:.38;text-decoration:line-through}
.sh-slots-empty{grid-column:1/-1;margin:0;font:400 14.5px/1.5 var(--fb);color:var(--mute)}
.sh-sum{position:sticky;top:130px}
.sh-sum-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font:400 14.5px/1.45 var(--fb);color:var(--blue)}
.sh-sum-row b{color:var(--ink);font-weight:600;text-align:right}
.sh-ticket{position:relative;padding:26px;border-radius:24px;background:var(--navy);color:#eafbfc;overflow:hidden;isolation:isolate}
.sh-ticket::before{content:"";position:absolute;z-index:-1;right:-30%;top:-60%;width:80%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(34,166,179,.55),transparent 65%)}
.sh-ticket-k{margin:0 0 6px;font:600 12px/1.3 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--tq2)}
.sh-ticket-d{margin:0;font:400 clamp(28px,3vw,40px)/1 var(--fh);text-transform:uppercase;color:#fff}
.sh-ticket-s{margin:8px 0 0;font:500 18px/1.3 var(--fb);color:#fff}
.sh-ticket-a{margin:14px 0 0;font:400 14.5px/1.55 var(--fb);color:#b9e4e8}
.sh-ticket-badge{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:8px 14px;border-radius:999px;background:rgba(126,214,223,.14);font:600 12px/1 var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--tq2)}
.sh-ticket-badge.is-ok{background:rgba(95,214,163,.18);color:#7ee2b8}
.sh-ticket-badge i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(126,214,223,.15);animation:sh-pulse 1.8s ease-in-out infinite}
@keyframes sh-pulse{50%{opacity:.4}}
.sh-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.sh-done-ic{display:block;width:84px;height:84px;margin:0 0 18px}
.sh-done-ic circle{fill:none;stroke:var(--tq);stroke-width:2.5;stroke-dasharray:160;stroke-dashoffset:160;animation:sh-draw .9s var(--ease) forwards}
.sh-done-ic path{fill:none;stroke:var(--tq);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:sh-draw .6s var(--ease) .55s forwards}
@keyframes sh-draw{to{stroke-dashoffset:0}}
.sh-suggest{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;border-radius:16px;background:var(--card);box-shadow:0 24px 60px -24px rgba(13,27,42,.55),0 0 0 1px var(--line)}
.sh-suggest[hidden]{display:none}
.sh-suggest li{padding:11px 12px;border-radius:11px;cursor:pointer;font:400 14.5px/1.35 var(--fb);color:var(--ink)}
.sh-suggest li small{display:block;color:var(--mute)}
.sh-suggest li.is-on,.sh-suggest li:hover{background:rgba(34,166,179,.12)}

/* ---------------------------------------------------------------- compte : onglets, suivi de commande */
.sh-auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:0;padding:0;overflow:hidden}
.sh-auth-f{padding:clamp(24px,3.4vw,44px)}
.sh-auth-v{position:relative;padding:clamp(24px,3.4vw,44px);background:var(--navy);color:#eafbfc;overflow:hidden;isolation:isolate}
.sh-auth-v::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 80% 10%,rgba(34,166,179,.45),transparent 55%),radial-gradient(circle at 10% 100%,rgba(126,214,223,.18),transparent 50%)}
.sh-auth-v h2{margin:0 0 10px;font:400 clamp(28px,2.6vw,38px)/1 var(--fh);text-transform:uppercase;color:#fff}
.sh-auth-v p{margin:0;font:400 15px/1.6 var(--fb);color:#b9e4e8}
@media (max-width:860px){.sh-auth{grid-template-columns:1fr}.sh-auth-v{order:-1}}
.sh-tabs{display:flex;gap:4px;padding:5px;margin:0 0 24px;border-radius:999px;background:rgba(34,166,179,.1);position:relative}
.sh-tab{flex:1;position:relative;z-index:1;min-height:46px;padding:10px 14px;border:0;border-radius:999px;background:none;cursor:pointer;color:var(--mute);font:600 12.5px/1.2 var(--fb);letter-spacing:.14em;text-transform:uppercase;transition:color .35s}
.sh-tab.is-on{color:#fff}
.sh-tabs-pill{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;border-radius:999px;background:var(--navy);transition:transform .55s var(--spring),width .55s var(--spring)}
html.dark-mode .sh-tabs-pill{background:var(--tq)}
.sh-ts{min-height:65px;margin:4px 0}
.sh-auth-form{display:grid;gap:16px}
.sh-sent{text-align:center;padding:10px 0}
.sh-sent svg.sh-mail{width:74px;height:74px;margin:0 auto 14px;display:block;color:var(--tq);stroke-width:1.4}
.sh-hello{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;margin-bottom:22px;padding:clamp(20px,2.6vw,30px) clamp(22px,3vw,36px)}
.sh-hello .sh-tabs{margin:0;min-width:min(300px,100%)}
.sh-hello h2{margin:0;font:400 clamp(30px,3vw,44px)/1 var(--fh);text-transform:uppercase;color:var(--ink)}
.sh-hello p{margin:6px 0 0;font:400 15px/1.5 var(--fb)}
.sh-order{position:relative;border-radius:26px;background:var(--card);box-shadow:0 1px 0 var(--line),0 30px 70px -45px rgba(13,27,42,.55);padding:clamp(20px,2.8vw,32px);margin-bottom:20px}
.sh-order-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;align-items:baseline}
.sh-order-ref{margin:0;font:600 13px/1.3 var(--fb);letter-spacing:.14em;color:var(--mute)}
.sh-order-t{margin:4px 0 0;font:400 clamp(22px,2.2vw,30px)/1.05 var(--fh);text-transform:uppercase;color:var(--ink)}
.sh-order-p{font:400 30px/1 var(--fh);color:var(--ink)}
.sh-track{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:24px 0 6px;padding:0;list-style:none;counter-reset:t}
.sh-track li{position:relative;padding:34px 8px 0 0;font:600 12px/1.35 var(--fb);letter-spacing:.06em;color:var(--mute)}
.sh-track li::before{content:"";position:absolute;left:0;right:0;top:10px;height:3px;border-radius:3px;background:var(--line)}
.sh-track li::after{content:"";position:absolute;left:0;top:10px;height:3px;width:0;border-radius:3px;background:var(--tq);transition:width 1s var(--ease)}
.sh-track li i{position:absolute;left:0;top:0;z-index:1;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--card);border:2.5px solid var(--line);transition:background .4s,border-color .4s}
.sh-track li i svg{width:12px;height:12px;stroke:#fff;stroke-width:3;opacity:0;transition:opacity .3s}
.sh-track li small{display:block;margin-top:4px;font:400 12.5px/1.35 var(--fb);letter-spacing:0;color:var(--blue)}
.sh-track li.is-done{color:var(--ink)}
.sh-track li.is-done::after{width:100%}
.sh-track li.is-done i{background:var(--tq);border-color:var(--tq)}
.sh-track li.is-done i svg{opacity:1}
.sh-track li.is-now{color:var(--ink)}
.sh-track li.is-now i{border-color:var(--tq);box-shadow:0 0 0 6px rgba(34,166,179,.18);animation:sh-ring 1.8s ease-in-out infinite}
@keyframes sh-ring{50%{box-shadow:0 0 0 10px rgba(34,166,179,.05)}}
.sh-track li.is-cancel i{background:var(--bad);border-color:var(--bad)}
@media (max-width:640px){
  .sh-track{grid-template-columns:1fr;gap:14px}
  .sh-track li{padding:0 0 0 38px}
  .sh-track li::before,.sh-track li::after{display:none}
}
.sh-order-b{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.sh-order-b p{margin:0;font:400 14.5px/1.55 var(--fb)}
.sh-order-b strong{color:var(--ink)}
@media (max-width:640px){.sh-order-b{grid-template-columns:1fr}}
.sh-hist{margin:14px 0 0;font:400 13px/1.5 var(--fb);color:var(--mute)}
.sh-hist summary{cursor:pointer;list-style:none;font-weight:600}
.sh-hist summary::-webkit-details-marker{display:none}
.sh-hist ul{margin:8px 0 0;padding-left:18px}

/* petit suivi de démonstration (colonne bleu nuit de la connexion) */
.sh-demo-tl{margin:26px 0 0;padding:0 0 0 4px;list-style:none}
.sh-demo-tl li{position:relative;padding:0 0 20px 30px;font:600 14px/1.3 var(--fb);color:rgba(234,251,252,.55)}
.sh-demo-tl li::before{content:"";position:absolute;left:8px;top:18px;bottom:-2px;width:2px;background:rgba(126,214,223,.2)}
.sh-demo-tl li:last-child::before{display:none}
.sh-demo-tl li i{position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(126,214,223,.35)}
.sh-demo-tl li.is-done{color:#fff}
.sh-demo-tl li.is-done i{background:#22a6b3;box-shadow:none}
.sh-demo-tl li.is-done::before{background:#22a6b3}
.sh-demo-tl li.is-now{color:#fff}
.sh-demo-tl li.is-now i{box-shadow:inset 0 0 0 2px #7ed6df,0 0 0 5px rgba(126,214,223,.2);animation:sh-ring 1.8s ease-in-out infinite}
.sh-close-form{grid-template-columns:1fr 1fr 1.4fr auto;align-items:end}
@media (max-width:760px){.sh-close-form{grid-template-columns:1fr 1fr}.sh-close-form .sh-btn{grid-column:1/-1}}

/* ---------------------------------------------------------------- espace admin */
.sh-adm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.sh-stat{padding:18px;border-radius:20px;background:var(--card);box-shadow:0 1px 0 var(--line)}
.sh-stat b{display:block;font:400 34px/1 var(--fh);color:var(--ink)}
.sh-stat span{font:600 11.5px/1.3 var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
@media (max-width:760px){.sh-adm-stats{grid-template-columns:repeat(2,1fr)}}
.sh-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.sh-chip{min-height:38px;padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--mute);cursor:pointer;font:600 12px/1 var(--fb);letter-spacing:.08em}
.sh-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}
html.dark-mode .sh-chip.is-on{background:var(--tq);border-color:var(--tq)}
.sh-chip b{margin-left:6px;opacity:.7}
.sh-adm-o{border-radius:20px;background:var(--card);box-shadow:0 1px 0 var(--line);margin-bottom:10px;overflow:hidden}
.sh-adm-o summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:16px 18px;cursor:pointer;list-style:none}
.sh-adm-o summary::-webkit-details-marker{display:none}
.sh-adm-o summary small{display:block;font:400 12.5px/1.3 var(--fb);color:var(--mute)}
.sh-adm-o summary b{font:600 15px/1.3 var(--fb);color:var(--ink)}
.sh-adm-o summary .sh-adm-p{font:400 22px/1 var(--fh);color:var(--ink)}
.sh-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font:600 11px/1 var(--fb);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:rgba(34,166,179,.12);color:var(--mute)}
.sh-badge--pending{background:rgba(201,130,31,.14);color:#a3660d}
.sh-badge--booked{background:rgba(34,166,179,.16);color:#1b7f89}
.sh-badge--confirmed,.sh-badge--paid{background:rgba(30,158,106,.14);color:#167a52}
.sh-badge--done{background:rgba(13,27,42,.1);color:var(--ink)}
.sh-badge--cancelled{background:rgba(192,57,43,.12);color:var(--bad)}
html.dark-mode .sh-badge--pending{color:#f0b35a}html.dark-mode .sh-badge--booked{color:#8fe3ea}html.dark-mode .sh-badge--confirmed,html.dark-mode .sh-badge--paid{color:#7ee2b8}html.dark-mode .sh-badge--done{background:rgba(234,251,252,.1)}
.sh-dot{width:10px;height:10px;border-radius:50%;background:var(--warn)}
.sh-dot.is-paid{background:var(--good)}
.sh-adm-in{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:4px 18px 20px}
.sh-adm-in h4{margin:0 0 8px;font:600 12px/1.3 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.sh-adm-in p{margin:0 0 6px;font:400 14px/1.55 var(--fb);color:var(--blue);overflow-wrap:anywhere}
.sh-adm-in a{color:var(--tq)!important}
.sh-adm-act{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:10px;align-items:end;padding-top:14px;border-top:1px solid var(--line)}
.sh-adm-act .sh-f input,.sh-adm-act .sh-f select{min-height:46px;padding:10px 14px;border-radius:12px;font-size:14.5px}
.sh-adm-act label.sh-check{grid-column:1/-1}
.sh-adm-tools{display:flex;flex-wrap:wrap;gap:10px;grid-column:1/-1}
@media (max-width:760px){.sh-adm-in{grid-template-columns:1fr}.sh-adm-act{grid-template-columns:1fr}.sh-adm-o summary{grid-template-columns:auto minmax(0,1fr) auto}.sh-adm-o summary .sh-adm-p{display:none}}
.sh-closures{margin:12px 0 0;padding:0;list-style:none}
.sh-closures li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font:400 14.5px/1.4 var(--fb);color:var(--ink)}
.sh-health{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.sh-health li{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--paper);font:400 14px/1.4 var(--fb);color:var(--ink)}
.sh-health li i{flex:none;width:10px;height:10px;border-radius:50%;background:var(--good)}
.sh-health li.is-bad i{background:var(--bad)}
.sh-health li.is-warn i{background:var(--warn)}

@media (prefers-reduced-motion:reduce){
  .sh *,.sh *::before,.sh *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .sh-paypal::after{display:none}
}
