/* Affinités Immobilier · Le Conseiller · v1 */
.cs-box{display:flex;flex-direction:column;gap:14px;max-width:760px;margin-top:22px}
.cs-fil{display:flex;flex-direction:column;gap:12px}
.cs-fil:empty{display:none}
.cs-m{max-width:100%;padding:14px 18px;line-height:1.65;font-size:16px;overflow-wrap:anywhere}
.cs-m p{margin:0 0 8px}.cs-m p:last-of-type{margin-bottom:0}
.cs-m.v{align-self:flex-end;max-width:88%;background:var(--ink,#17191C);color:#fff}
.cs-m.a{align-self:flex-start;background:#fff;border:1px solid var(--line,#E5E0D6)}
.cs-att{color:var(--muted,#555B63)}
.cs-dots{display:inline-flex;gap:4px;margin-right:6px;vertical-align:middle}
.cs-dots i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35;animation:csd 1.2s infinite}
.cs-dots i:nth-child(2){animation-delay:.2s}.cs-dots i:nth-child(3){animation-delay:.4s}
@keyframes csd{0%,80%,100%{opacity:.25}40%{opacity:1}}
.cs-voix{margin-top:12px;font-size:14px;color:var(--muted,#555B63)}
.cs-voix audio{width:100%;max-width:420px;display:block}
.cs-c{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:14px}
.cs-k{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line,#E5E0D6);padding:12px 14px;text-decoration:none;color:inherit;background:var(--bg,#FBFAF7)}
.cs-k b{font-weight:600}.cs-k span{font-size:14px;color:var(--muted,#555B63)}.cs-k em{font-style:normal;font-size:13px;color:var(--bronze,#8C6B42)}
.cs-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.cs-act .cta{min-height:44px}
.cs-ins{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.cs-f{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line,#E5E0D6);padding:12px}
.cs-f textarea{width:100%;min-width:0;border:0;resize:vertical;font:inherit;font-size:17px;line-height:1.5;min-height:56px;background:transparent;color:inherit;outline:none}
.cs-b{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cs-mic{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line,#E5E0D6);background:transparent;font:inherit;font-size:15px;cursor:pointer;color:inherit}
.cs-mic::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--bronze,#8C6B42)}
.cs-mic.on{border-color:#A63A3A;color:#A63A3A}.cs-mic.on::before{background:#A63A3A;animation:csd 1s infinite}
.cs-ex{display:flex;flex-wrap:wrap;gap:8px}
.cs-ex button{border:1px solid var(--line,#E5E0D6);background:transparent;padding:9px 12px;font:inherit;font-size:14px;cursor:pointer;text-align:left;color:inherit}
.cs-n{margin:0;font-size:13px;color:var(--muted,#555B63);max-width:68ch}
@media (max-width:560px){.cs-m.v{max-width:94%}.cs-b .cta{flex:1}}

/* v2 · un seul bouton : Parler → Terminer, ou Envoyer dès qu'on écrit ; option voix */
.cs-b{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cs-bt{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border:0;border-radius:999px;background:var(--gold,#1F4B5E);color:#fff;font:600 15px var(--f-b,inherit);cursor:pointer;margin-left:auto;min-width:140px}
.cs-bt::before{content:"";width:12px;height:16px;border-radius:7px;border:2px solid currentColor;box-sizing:border-box}
.cs-bt.env::before{width:0;height:0;border:0;border-left:11px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent;border-radius:0}
.cs-bt.on{background:#A63A3A}
.cs-bt.on::before{width:12px;height:12px;border-radius:2px;border:0;background:currentColor;animation:csd 1s infinite}
.cs-bt[disabled]{opacity:.55;cursor:default}
.cs-bt:focus-visible{outline:2px solid var(--gold,#1F4B5E);outline-offset:3px}
.cs-son{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;line-height:1.25;user-select:none}
.cs-son input{appearance:none;-webkit-appearance:none;width:40px;height:24px;border-radius:12px;background:var(--line,#E5E0D6);position:relative;cursor:pointer;flex:none;margin:0;transition:background .2s}
.cs-son input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:left .2s}
.cs-son input:checked{background:var(--gold,#1F4B5E)}
.cs-son input:checked::after{left:19px}
.cs-son input:focus-visible{outline:2px solid var(--gold,#1F4B5E);outline-offset:2px}
.cs-son span{display:flex;flex-direction:column}
.cs-son b{font-weight:600}
.cs-son small{font-size:12px;color:var(--muted,#555B63)}
@media (max-width:560px){.cs-bt{flex:1 1 100%;margin-left:0}}

/* v3 · aucune dérive horizontale, même sur Safari iOS */
html{overflow-x:hidden}
body{overflow-x:clip;max-width:100%}
.cs-box,.cs-fil,.cs-m,.cs-c,.cs-ins,.cs-voix,.panel,.grid > *{min-width:0;max-width:100%}
.cs-m *{max-width:100%}
.cs-voix audio{display:block;width:100%;max-width:100%}
.lien-juste svg{overflow:hidden}
