/* Website chat widget (/ua). Uses the page tokens from style.css. */
.ss-chat{position:fixed;right:20px;bottom:20px;z-index:60;font-family:var(--body)}
.ss-chat .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ss-chat-launch{display:flex;align-items:center;gap:10px;padding:13px 18px;border:0;border-radius:999px;background:var(--grad);color:#fff;font:700 15px/1 var(--body);box-shadow:var(--shadow-l);cursor:pointer;transition:transform .2s}
.ss-chat-launch:hover{transform:translateY(-2px)}
.ss-chat-dot{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(200,245,90,.7);animation:chatPulse 2s infinite}
@keyframes chatPulse{70%{box-shadow:0 0 0 10px rgba(200,245,90,0)}100%{box-shadow:0 0 0 0 rgba(200,245,90,0)}}
.ss-chat.open .ss-chat-launch{display:none}
.ss-chat-teaser~.ss-chat-launch{margin-left:auto}
.ss-chat-teaser{position:relative;max-width:260px;margin:0 0 10px auto;animation:chatTeaser .35s ease-out}
.ss-chat-teaser[hidden],.ss-chat.open .ss-chat-teaser{display:none}
.ss-chat-teaser-go{display:block;width:100%;padding:12px 30px 12px 14px;border:1px solid var(--line);border-radius:16px 16px 5px 16px;background:var(--surface);color:var(--ink);font:600 14px/1.4 var(--body);text-align:left;box-shadow:var(--shadow-l);cursor:pointer}
.ss-chat-teaser-x{position:absolute;top:4px;right:4px;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
@keyframes chatTeaser{from{opacity:0;transform:translateY(8px)}}
.ss-chat-panel{display:flex;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(580px,calc(100dvh - 40px));background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-l);overflow:hidden}
.ss-chat-panel[hidden]{display:none}
.ss-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--grad);color:#fff}
.ss-chat-head b{display:block;font:700 15px/1.2 var(--body)}
.ss-chat-head small{display:block;margin-top:3px;font-size:12px;opacity:.85}
.ss-chat-x{width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.ss-chat-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.ss-chat-msg{max-width:86%;padding:10px 13px;border-radius:16px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.ss-chat-msg.bot{align-self:flex-start;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:5px}
.ss-chat-msg.me{align-self:flex-end;background:var(--violet);color:#fff;border-bottom-right-radius:5px}
.ss-chat-msg a{color:inherit;text-decoration:underline}
.ss-chat-msg.typing{color:var(--muted);animation:chatBlink 1s infinite}
@keyframes chatBlink{50%{opacity:.4}}
.ss-chat-choices{align-self:flex-start;display:flex;flex-wrap:wrap;gap:6px;max-width:96%;margin-top:-2px}
.ss-chat-choices button{padding:9px 12px;border:1px solid var(--violet);border-radius:999px;background:var(--surface);color:var(--violet-d);font:700 13.5px/1 var(--body);cursor:pointer;transition:background .15s,color .15s}
.ss-chat-choices button:hover,.ss-chat-choices button:focus-visible{background:var(--violet);color:#fff}
.ss-chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px;background:var(--bg)}
.ss-chat-quick[hidden]{display:none}
.ss-chat-quick button{padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--violet-d);font:600 13px/1 var(--body);cursor:pointer}
.ss-chat-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.ss-chat-form textarea{flex:1;resize:none;max-height:120px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;font:15px/1.4 var(--body);color:var(--ink);background:var(--bg)}
.ss-chat-form textarea:focus{outline:2px solid var(--violet);outline-offset:0;border-color:transparent}
.ss-chat-form button{width:42px;height:42px;flex:none;border:0;border-radius:50%;background:var(--violet);color:#fff;font-size:16px;cursor:pointer}
.ss-chat-note{margin:0;padding:0 14px 10px;font-size:11px;color:var(--muted)}
.ss-chat-note a{color:inherit}
@media (max-width:600px){
 .ss-chat{right:12px;bottom:12px}
 .ss-chat-launch span:last-child{font-size:14px}
 .ss-chat.open{inset:0;right:0;bottom:0}
 .ss-chat-panel{width:100vw;height:100dvh;border-radius:0;border:0}
}
@media (prefers-reduced-motion:reduce){.ss-chat-dot,.ss-chat-msg.typing,.ss-chat-teaser{animation:none}.ss-chat-launch{transition:none}}
/* Phones: the launcher never covers the audit buttons or the form. It stays hidden while the hero CTA or the contact
   section is on screen and sits above the sticky CTA bar once that appears. */
@media (max-width:760px){
 .hero-cta-visible .ss-chat:not(.open),.contact-visible .ss-chat:not(.open){opacity:0;visibility:hidden}
 .ss-chat:not(.open){transition:opacity .25s,visibility .25s,bottom .25s}
 .has-sticky .ss-chat:not(.open){bottom:78px}
}
