/* t405 — Bulle de chat (aperçu). Jetons de site.css : clair et sombre automatiques. */
:root{--ch-bas:0px;--ch-vt:0px;--ch-vvh:100dvh;--ch-dur:450ms;--ch-fin:360ms;--ch-ressort:cubic-bezier(.32,.72,0,1)} /* style des sheets iOS : doux, sans rebond */
.ch-bul{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));z-index:45;width:56px;height:56px;border-radius:50%;border:0;background:var(--accent);color:#000;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.18);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),opacity 280ms var(--ease-out),visibility 0s linear 0s}
.ch-pret .ch-bul{transition:transform var(--dur-fast) var(--ease-out),bottom var(--dur) var(--ease-out),opacity 280ms var(--ease-out),visibility 0s linear 0s}
/* Au-dessus de la rangée CTA (pas sur la même ligne), écart ~12 px */
html.ch-mbar .ch-bul{
  bottom:calc(var(--bas-gap, 8px) + var(--ch-bas) + 12px);
  right:max(16px, calc((100vw - min(420px, calc(100% - 56px))) / 2));
  width:56px;height:56px;
}
.ch-bul:hover{transform:scale(1.05)} .ch-bul:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.ch-bul.on{transform:scale(.94)}
.ch-bul>span{grid-area:1/1;display:grid;place-items:center;transition:transform var(--ch-dur) var(--ch-ressort),opacity 180ms ease}
.ch-i2{opacity:0;transform:rotate(-90deg) scale(.6)}
.ch-bul.on .ch-i1{opacity:0;transform:rotate(90deg) scale(.6)} .ch-bul.on .ch-i2{opacity:1;transform:none}
.ch-bul>.ch-bdg{position:absolute;top:-3px;right:-3px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#E5252A;color:#fff;font:700 11.5px/20px var(--font);text-align:center;box-shadow:0 0 0 2px var(--bg);transform:none;opacity:1;pointer-events:none}
.ch-bul>.ch-bdg[hidden],.ch-fond[hidden],.ch-pan[hidden]{display:none}
.ch-bdg.pop{animation:chPop 420ms var(--ch-ressort)}
@keyframes chPop{0%{transform:scale(0);opacity:0}60%{opacity:1}100%{transform:scale(1);opacity:1}}
.ch-fond{position:fixed;inset:0;z-index:46;background:rgba(0,0,0,.42);opacity:0;pointer-events:none;transition:opacity var(--ch-fin) var(--ch-ressort);-webkit-tap-highlight-color:transparent}
.ch-poi{display:none}
.ch-pan{position:fixed;right:16px;bottom:calc(var(--ch-bas) + var(--bas-gap, 8px) + 84px);z-index:46;width:min(380px,calc(100vw - 24px));height:min(600px,calc(100dvh - var(--ch-bas) - 110px));display:flex;flex-direction:column;padding:0;margin:0;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.22);overflow:hidden;font-family:var(--font);
  transform:translate3d(0,16px,0) scale(.97);transform-origin:100% 100%;opacity:0;visibility:hidden;
  transition:transform var(--ch-fin) var(--ch-ressort),opacity var(--ch-fin) var(--ch-ressort),visibility 0s linear var(--ch-fin)}
html.ch-ouvert .ch-pan{transform:none;opacity:1;visibility:visible;transition:transform var(--ch-dur) var(--ch-ressort),opacity 240ms ease,visibility 0s}
.ch-pan.ch-tire,html.ch-tire .ch-fond{transition:none!important}
html.ch-sans .ch-pan,html.ch-sans .ch-fond,html.ch-sans .ch-bul>span{transition:none!important}
.ch-h>div{min-width:0}
.ch-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 12px 18px;border-bottom:1px solid var(--border)}
.ch-h b{display:block;font:600 16px/1.2 var(--font);color:var(--title)}
.ch-l1{display:flex;align-items:center;gap:8px;min-width:0}
.ch-ia-p{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:22px;padding:0 9px 0 7px;border:1px solid var(--border);border-radius:var(--radius-pill);font:500 11.5px/1 var(--font);color:var(--text-muted);white-space:nowrap}
.ch-ia-p .ch-pt{width:7px;height:7px}
.ch-h .ch-err-ia{display:block;margin-top:3px;font-size:11.5px;line-height:1.3;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-pt{width:8px;height:8px;border-radius:50%;background:#1E9E5A;display:inline-block}
.ch-x{width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--title);display:grid;place-items:center;cursor:pointer}
.ch-x:hover{background:var(--surface-2)}
.ch-l{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.ch-l>*{flex-shrink:0}
.ch-m{max-width:86%;padding:10px 13px;border-radius:16px;font-size:14.5px;line-height:1.45;word-wrap:break-word}
.ch-v{align-self:flex-end;background:var(--accent-soft);color:#1A1A1A;border-bottom-right-radius:6px}
.ch-ia{align-self:flex-start;background:var(--bg);border-bottom-left-radius:6px}
.ch-sys{align-self:center;font-size:12.5px;color:var(--text-muted);padding:2px 8px}
.ch-acts,.ch-rap{display:flex;flex-wrap:wrap;gap:6px}
.ch-acts{align-self:flex-start}
.ch-pied{position:relative;border-top:1px solid var(--border)}
.ch-rapw{position:absolute;left:0;right:0;bottom:100%;padding-top:8px;background:linear-gradient(to bottom,transparent,var(--surface) 10px);transition:opacity 200ms ease,transform 280ms var(--ch-ressort)}
@media (max-width:559px) and (pointer:coarse) and (hover:none){.ch-foc .ch-rapw{opacity:0;transform:translate3d(0,8px,0);pointer-events:none}} /* t405h : mobile seulement */
.ch-l{padding-bottom:56px!important}
.ch-rap{padding:0 12px 8px;flex-wrap:nowrap}
.ch-rap button{flex:1 1 0;min-width:0;white-space:nowrap;padding:0 10px}
.ch-acts button,.ch-rap button,.ch-jrs button,.ch-hrs button,.ch-b2{min-height:36px;padding:0 12px;border:1.5px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--title);font:500 13.5px/1 var(--font);cursor:pointer}
.ch-acts button:hover,.ch-rap button:hover{border-color:var(--border-strong)}
.ch-f{display:flex;align-items:flex-end;gap:8px;padding:8px 12px 8px}
.ch-f textarea{flex:1;resize:none;min-height:44px;max-height:110px;padding:11px 14px;border:1.5px solid var(--border);border-radius:22px;background:var(--bg);color:var(--text);font:400 16px/1.35 var(--font)}
.ch-f textarea:focus{outline:none;border-color:var(--title)}
.ch-f button{width:44px;height:44px;flex:0 0 44px;border:0;border-radius:50%;background:var(--accent);color:#000;display:grid;place-items:center;cursor:pointer}
.ch-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ch-dots{display:inline-flex;gap:4px} .ch-dots i{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:chDot 1s infinite ease-in-out} .ch-dots i:nth-child(2){animation-delay:.15s} .ch-dots i:nth-child(3){animation-delay:.3s}
@keyframes chDot{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ch-c{align-self:stretch;padding:12px;border:1.5px solid var(--border);border-radius:16px;background:var(--surface)}
.ch-c.fait{opacity:.7}
.ch-frm{display:flex;flex-direction:column;gap:9px}
.ch-frm label{display:flex;flex-direction:column;gap:4px;font:500 13px/1.3 var(--font);color:var(--title)}
.ch-frm label small{font-weight:400;color:var(--text-muted)}
.ch-frm input:not([type=checkbox]):not([type=radio]){min-height:42px;padding:8px 12px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font:400 16px/1.3 var(--font)}
.ch-lb{font:500 13px/1.3 var(--font);color:var(--title)}
.ch-pu{display:flex;flex-wrap:wrap;gap:6px}
.ch-pu label{position:relative;display:block}
.ch-pu input{position:absolute;opacity:0;width:1px;height:1px}
.ch-pu span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1.5px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);font:500 13px/1 var(--font);color:var(--text);cursor:pointer}
.ch-pu input:checked+span{background:var(--accent);border-color:var(--accent);color:#000}
.ch-pu input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.ch-ok{flex-direction:row!important;align-items:flex-start;gap:8px!important;font-weight:400!important;font-size:12.5px!important;color:var(--text)!important}
.ch-ok input{margin-top:2px;width:18px;height:18px;flex:0 0 18px;accent-color:var(--accent)}
.ch-ok a{color:inherit}
.ch-b{min-height:44px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#000;font:600 15px/1 var(--font);cursor:pointer}
.ch-b:disabled{opacity:.6}
.ch-b2{align-self:center}
.ch-err{margin:0;color:var(--danger);font-size:13px}
.ch-adr{position:relative}
.ch-sug{list-style:none;margin:2px 0 0;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface);max-height:180px;overflow:auto}
.ch-sug li{padding:9px 10px;border-radius:8px;font:400 14px/1.3 var(--font);color:var(--text);cursor:pointer}
.ch-sug li:hover,.ch-sug li:focus{background:var(--accent-soft);outline:none}
.ch-jrs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.ch-jrs button{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;min-width:56px;height:auto;padding:6px 4px;border-radius:12px;gap:1px}
.ch-jrs button b{font:600 17px/1.15 var(--font)} .ch-jrs button small{font-size:11px;color:var(--text-muted)}
.ch-hrs{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:6px;margin-top:6px}
.ch-jrs button[aria-pressed=true],.ch-hrs button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#000}
.ch-jrs button[aria-pressed=true] small{color:#000}
.ch-hrs button{height:38px}
@media (max-width:559px){
  /* bottom sheet : collée en bas de la zone visible (visualViewport : suit le clavier iOS), 40 px cachés sous le bord pour le dépassement du ressort */
  .ch-pan{left:0;right:0;width:auto;top:calc(var(--ch-vt) + env(safe-area-inset-top, 0px) + 8px);bottom:auto; /* pleine hauteur : sous la zone sûre du haut, bas = haut du clavier */
    height:calc(var(--ch-vvh) - env(safe-area-inset-top, 0px) - 8px);padding-bottom:env(safe-area-inset-bottom, 0px);
    border:0;border-radius:16px 16px 0 0;box-shadow:0 -8px 40px rgba(0,0,0,.25);z-index:47;
    transform:translate3d(0,100%,0);opacity:1;transition:transform var(--ch-dur) var(--ch-ressort),visibility 0s linear var(--ch-dur)}
  html.ch-ouvert .ch-pan{transform:translate3d(0,0,0);transition:transform var(--ch-dur) var(--ch-ressort),visibility 0s}
  html:not(.ch-ouvert) .ch-pan{transition:transform var(--ch-fin) var(--ch-ressort),visibility 0s linear var(--ch-fin)} /* fermeture : 360 ms, même courbe */
  html.ch-ouvert .ch-fond{opacity:1;pointer-events:auto;transition:opacity var(--ch-dur) var(--ch-ressort)}
  .ch-poi{display:flex;justify-content:center;padding:8px 0 2px;cursor:grab;touch-action:none}
  .ch-poi i{width:36px;height:5px;border-radius:3px;background:var(--border-strong,rgba(0,0,0,.25))}
  .ch-h{padding-top:4px;touch-action:none}
  html.ch-clav .ch-pan{padding-bottom:0} /* clavier ouvert : champ collé au clavier */
  /* iOS 26 : la barre d'adresse flottante et la barre d'accessoires sont HORS de visualViewport, mais Safari y peint la page : le fond devient opaque, couleur de la sheet */
  html.ch-ouvert.ch-clav .ch-fond{background:var(--surface);transition:none}
}
html[data-theme="dark"]{
  .ch-pan{background:#1C1C1C;border-color:var(--border)}
  .ch-rapw{background:linear-gradient(to bottom,transparent,#1C1C1C 10px)}
  html.ch-ouvert.ch-clav .ch-fond{background:#1C1C1C}
  .ch-ia{background:#262626;color:var(--text)}
  .ch-v{background:rgba(255,199,0,.22);color:var(--text)}
  .ch-c,.ch-acts button,.ch-rap button,.ch-jrs button,.ch-hrs button,.ch-b2,.ch-sug{background:#1C1C1C}
  .ch-f textarea,.ch-frm input:not([type=checkbox]):not([type=radio]),.ch-pu span{background:#262626}
  .ch-bul{box-shadow:0 6px 20px rgba(0,0,0,.5)}
}
html[data-theme="dark"]{.ch-poi i{background:rgba(255,255,255,.28)} .ch-fond{background:rgba(0,0,0,.6)}}
/* mouvement réduit : fondu court seulement, sans glissement ni rebond */
@media (prefers-reduced-motion:reduce){
  .ch-dots i{animation:none}.ch-bul,.ch-bul>span{transition:opacity 120ms linear}.ch-rapw{transition:opacity 120ms linear;transform:none!important}.ch-bdg.pop{animation:none}
  .ch-pan,html.ch-ouvert .ch-pan,html:not(.ch-ouvert) .ch-pan{transform:none!important;opacity:0;transition:opacity 150ms linear,visibility 0s linear 150ms}
  html.ch-ouvert .ch-pan{opacity:1;transition:opacity 150ms linear,visibility 0s}
  .ch-fond{transition:opacity 150ms linear}
}
@media print{.ch-bul,.ch-pan{display:none}}
/* t533 : carte « Appel de service » (formulaire, texto, Me faire appeler) */
.ch-acts:has(.ch-svc){align-self:stretch}
.ch-svc{display:flex;flex-direction:column;gap:8px;width:100%;padding:12px;border:1.5px solid var(--border);border-radius:16px;background:var(--surface)}
.ch-svc b{font:600 15px/1.2 var(--font);color:var(--title)}
.ch-svc a.ch-b{display:flex;align-items:center;justify-content:center;text-decoration:none}
.ch-svc .ch-b2{align-self:stretch}
@media (prefers-color-scheme:dark){.ch-svc{background:#1C1C1C}}

/* spinner adresse : styles dans site.css (.ch-adr.adr-loading) */
.ch-avis{margin:8px 0 0;font:500 11.5px/1.4 var(--font-legal);color:var(--text-muted)}
.ch-avis a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* t2137 : dans le secteur à ce moment */
.ch-jrs button.rdv-sect:not([aria-pressed=true]),.ch-hrs button.rdv-sect:not([aria-pressed=true]){border-color:#FFC700;box-shadow:0 0 10px rgba(255,199,0,.28),0 0 22px rgba(255,199,0,.12)}
.ch-hrs button.rdv-sect{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:44px}
.ch-hrs button.rdv-sect small{font-size:10px;font-weight:600;color:#8a6a00}
@media (prefers-color-scheme:dark){.ch-hrs button.rdv-sect small{color:#FFC700}}

/* t2397 : type de propriété en liste déroulante */
.ch-sel{position:relative;display:block}
.ch-sel select{width:100%;min-height:42px;padding:8px 38px 8px 12px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font:400 16px/1.3 var(--font);-webkit-appearance:none;appearance:none;cursor:pointer}
.ch-sel::after{content:"";position:absolute;right:15px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);pointer-events:none}
.ch-sel select:focus{outline:none;border-color:var(--focus)}
@media (prefers-color-scheme:dark){.ch-sel select{background:#262626}}

/* t2489 : téléphone dans le navigateur (Safari 26 barre d'adresse flottante) — sans rangée CTA, la bulle passe au-dessus de la barre et de la zone sûre. */
@media (max-width:899px) and (pointer:coarse) and (display-mode:browser){
  html:not(.ch-mbar) .ch-bul{bottom:calc(max(16px, env(safe-area-inset-bottom, 0px)) + 58px)}
}
@media (max-width:899px) and (pointer:coarse) and (display-mode:browser){
  html.tm-ouvert:not(.ch-mbar) .ch-bul{bottom:calc(max(8px, env(safe-area-inset-bottom, 0px)) + 58px + var(--tm-h, 0px) + 12px)}
}
