/* Scoped to the visitor widget; existing site controls retain their original styles. */
.fsspa-chat { --chat-ink:#2d2a26; --chat-muted:#70645b; --chat-accent:#8f5a3c; --chat-deep:#71442d; --chat-surface:#fffdfa; --chat-wash:#f7efe6; --chat-line:#e8ddd1; --chat-radius:20px; position:fixed; right:24px; bottom:calc(20px + env(safe-area-inset-bottom, 0px) + var(--chat-keyboard, 0px)); z-index:900; color:var(--chat-ink); font:14px/1.5 "Segoe UI",Arial,sans-serif; text-align:left; letter-spacing:normal; }
.fsspa-chat--homepage { z-index:40; --chat-ink:#241d18; --chat-muted:#6f655d; --chat-accent:#87683b; --chat-deep:#72552f; --chat-surface:#fffaf4; --chat-wash:#f6f0e8; --chat-line:#e5d9c9; --chat-radius:24px; font-family:inherit; }
.fsspa-chat *, .fsspa-chat *::before, .fsspa-chat *::after { box-sizing:border-box; }
.fsspa-chat [hidden] { display:none !important; }
.fsspa-chat button, .fsspa-chat textarea { font:inherit; letter-spacing:normal; }
.fsspa-chat button { cursor:pointer; touch-action:manipulation; border:0; margin:0; }
.fsspa-chat button:disabled { opacity:.55; cursor:default; }
.fsspa-chat button:focus-visible, .fsspa-chat textarea:focus-visible, .fsspa-chat [tabindex]:focus-visible { outline:3px solid var(--chat-accent); outline-offset:3px; }
.fsspa-chat__launcher { display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px; min-width:160px; padding:12px 20px; border-radius:999px; background:var(--chat-accent); color:white; font-weight:600 !important; box-shadow:0 8px 24px #3d291d29; margin-left:auto !important; transition:background .15s,transform .15s; }
.fsspa-chat__launcher:hover { background:var(--chat-deep); transform:translateY(-2px); }
.fsspa-chat__bubble { display:grid; place-items:center; border:1.5px solid #fff9; border-radius:8px 8px 8px 2px; width:24px; height:22px; font-size:18px; line-height:1; }
.fsspa-chat__badge { min-width:24px; border-radius:99px; background:white; color:var(--chat-deep); padding:1px 6px; font-size:12px; }
.fsspa-chat__panel { position:absolute; right:0; bottom:68px; width:400px; height:690px; max-height:calc(var(--chat-vh, 100dvh) - 116px); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--chat-line); border-radius:var(--chat-radius); background:var(--chat-surface); box-shadow:0 24px 80px #39251733,0 2px 8px #3925170d; animation:fsspa-chat-appear .18s ease-out; }
.fsspa-chat__head { display:flex; align-items:center; gap:12px; padding:20px 18px 16px; flex-shrink:0; background:linear-gradient(135deg,#fffdfa,var(--chat-wash)); }
.fsspa-chat__mark { display:grid; place-items:center; width:42px; height:42px; flex-shrink:0; border:1px solid var(--chat-line); color:var(--chat-accent); border-radius:50%; font:20px Georgia,serif; background:#fff9; }
.fsspa-chat__titles { min-width:0; flex:1; }
.fsspa-chat__eyebrow { font-size:10px; font-weight:700; letter-spacing:1.8px; color:var(--chat-muted); margin:0 0 3px; }
.fsspa-chat .fsspa-chat__title { font-size:16px; font-weight:600; line-height:1.3; margin:0; color:var(--chat-ink); }
.fsspa-chat.fsspa-chat--homepage .fsspa-chat__title { font-family:"Cormorant Garamond",Georgia,serif; font-size:23px; font-weight:500; }
.fsspa-chat__icon { min-width:44px; min-height:44px; border-radius:50%; background:transparent; color:var(--chat-muted); font-size:27px !important; }
.fsspa-chat__icon:hover { background:#e8ddd177; }
.fsspa-chat__identity { flex-shrink:0; padding:12px 18px; background:#f2f5ee; border-top:1px solid #e3e9db; border-bottom:1px solid #e3e9db; color:#35503b; font-size:12px; }
.fsspa-chat__identity strong { display:block; font-size:12px; line-height:1.5; }
.fsspa-chat__identity strong::before { content:""; display:inline-block; width:6px; height:6px; margin-right:7px; margin-bottom:1px; border-radius:50%; background:currentColor; }
.fsspa-chat__identity p { margin:3px 0 0; line-height:1.4; }
.fsspa-chat__identity[data-state="HANDOFF_PENDING"] { background:#fff5df; color:#74510b; border-color:#f0dfb8; }
.fsspa-chat__identity[data-state="HUMAN_DISCONNECTED"], .fsspa-chat__identity[data-state="CLOSED"] { background:#f1eee9; color:#60584e; border-color:#e1dbd2; }
.fsspa-chat__notice { flex-shrink:0; padding:9px 16px; font-size:12px; background:#fff0e9; color:#8b3b21; border-bottom:1px solid #f1d0c1; }
.fsspa-chat__notice .fsspa-chat__text-button { color:#8b3b21; min-height:44px; padding:0; margin-left:8px; }
.fsspa-chat__log { min-height:80px; flex:1; overflow-y:auto; overscroll-behavior:contain; padding:16px; scrollbar-width:thin; scrollbar-color:#cfc0ad transparent; }
.fsspa-chat__welcome { text-align:center; padding:18px 10px 20px; }
.fsspa-chat__welcome-leaf { display:block; font-size:36px; color:var(--chat-accent); line-height:1.2; margin-bottom:12px; }
.fsspa-chat__welcome h3 { font-size:18px; font-weight:600; margin:0 0 8px; line-height:1.3; }
.fsspa-chat--homepage .fsspa-chat__welcome h3 { font:26px/1.15 "Cormorant Garamond",Georgia,serif; }
.fsspa-chat__welcome p { color:var(--chat-muted); font-size:13px; line-height:1.6; margin:0; }
.fsspa-chat__message { margin:0 0 16px; max-width:93%; }
.fsspa-chat__message--visitor { margin-left:auto; }
.fsspa-chat__meta { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:3px 9px; color:var(--chat-muted); font-size:10px; margin:0 2px 4px; }
.fsspa-chat__meta strong { font-weight:600; }
.fsspa-chat__meta time { font-size:10px; white-space:nowrap; }
.fsspa-chat__message-text { margin:0; padding:11px 13px; border:1px solid var(--chat-line); border-radius:3px 15px 15px; background:white; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.55; }
.fsspa-chat__message--visitor .fsspa-chat__message-text { border-color:var(--chat-accent); background:var(--chat-accent); color:white; border-radius:15px 3px 15px 15px; }
.fsspa-chat__message--system { max-width:100%; }
.fsspa-chat__message--system .fsspa-chat__meta { justify-content:center; }
.fsspa-chat__message--system .fsspa-chat__message-text { padding:8px 10px; border:0; background:transparent; text-align:center; color:var(--chat-muted); font-size:12px; }
.fsspa-chat__suggestions { flex-shrink:0; display:flex; flex-wrap:wrap; gap:7px; padding:0 16px 12px; }
.fsspa-chat__chip { display:inline-flex; align-items:center; min-height:44px; padding:8px 11px; border:1px solid var(--chat-line) !important; border-radius:12px; background:transparent; color:var(--chat-deep); font-size:12px !important; }
.fsspa-chat__chip:hover { background:var(--chat-wash); }
.fsspa-chat__pending { flex-shrink:0; padding:10px 16px; border-top:1px dashed var(--chat-line); background:var(--chat-wash); font-size:12px; }
.fsspa-chat__pending p { max-height:70px; overflow:auto; margin:0 0 4px; white-space:pre-wrap; overflow-wrap:anywhere; }
.fsspa-chat__pending span { color:var(--chat-muted); }
.fsspa-chat__pending button { display:block; min-height:44px; padding:0; }
.fsspa-chat__composer { flex-shrink:0; display:grid; grid-template-columns:1fr auto; gap:7px 8px; padding:13px 16px 0; border-top:1px solid var(--chat-line); background:#fff9; }
.fsspa-chat__input { display:block; width:100%; min-width:0; min-height:52px; max-height:120px; resize:vertical; padding:10px 12px; border:1px solid var(--chat-line); border-radius:12px; background:white; color:var(--chat-ink); line-height:1.4; font-size:16px !important; }
.fsspa-chat__input::placeholder { color:#81766d; opacity:1; }
.fsspa-chat__input:disabled { background:#f4f1ed; }
.fsspa-chat__send { align-self:center; min-width:60px; min-height:46px; padding:10px 13px; border-radius:12px; background:var(--chat-accent); color:white; font-weight:600 !important; }
.fsspa-chat__send:hover:not(:disabled) { background:var(--chat-deep); }
.fsspa-chat__hint { font-size:10px; color:var(--chat-muted); margin:0; }
.fsspa-chat__count { font-size:10px; color:var(--chat-muted); text-align:right; }
.fsspa-chat__count--over { color:#a32f20; }
.fsspa-chat__footer { flex-shrink:0; display:flex; justify-content:space-between; padding:0 14px; background:#fff9; }
.fsspa-chat__text-button { min-height:44px; padding:9px 3px; color:var(--chat-deep); background:transparent; font-size:12px !important; text-decoration:underline; text-decoration-color:#bda68a; text-underline-offset:3px; }
.fsspa-chat__privacy { flex-shrink:0; font-size:10px; text-align:center; margin:0; padding:0 16px 13px; color:var(--chat-muted); background:#fff9; }
.fsspa-chat__confirm { padding:14px 16px; background:#fff5e8; border-top:1px solid #e6d7c3; flex-shrink:0; }
.fsspa-chat__confirm p { font-size:12px; margin:5px 0 10px; }
.fsspa-chat__confirm button + button { margin-left:7px; }
.fsspa-chat__storage { padding:8px 16px; margin:0; font-size:11px; color:#8b3b21; background:#fff0e9; }
.fsspa-chat__sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@keyframes fsspa-chat-appear { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:480px) {
    .fsspa-chat { right:12px; bottom:calc(12px + env(safe-area-inset-bottom, 0px) + var(--chat-keyboard, 0px)); }
    .fsspa-chat__panel { width:calc(100vw - 24px); bottom:64px; height:660px; max-height:calc(var(--chat-vh, 100dvh) - 96px); border-radius:20px; }
    .fsspa-chat__head { padding:13px 14px 10px; gap:9px; }
    .fsspa-chat__mark { width:35px; height:35px; font-size:17px; }
    .fsspa-chat .fsspa-chat__title { font-size:14px; }
    .fsspa-chat.fsspa-chat--homepage .fsspa-chat__title { font-size:21px; }
    .fsspa-chat__identity { padding:9px 14px; }
    .fsspa-chat__log { padding:12px; }
    .fsspa-chat__launcher { min-height:48px; }
    .fsspa-chat__suggestions { padding:0 12px 8px; }
    .fsspa-chat__composer { padding:10px 12px 0; }
    .fsspa-chat__hint { font-size:9px; }
}
@media(max-height:600px) {
    .fsspa-chat__panel { max-height:calc(var(--chat-vh, 100dvh) - 90px); }
    .fsspa-chat__head { padding:8px 12px; }
    .fsspa-chat__identity { padding:6px 12px; }
    .fsspa-chat__welcome, .fsspa-chat__suggestions, .fsspa-chat__privacy, .fsspa-chat__hint { display:none; }
    .fsspa-chat__log { min-height:40px; }
}
@media(prefers-reduced-motion:reduce) { .fsspa-chat__panel { animation:none; } .fsspa-chat__launcher { transition:none; } }
@media(forced-colors:active) { .fsspa-chat__panel, .fsspa-chat button, .fsspa-chat__message-text { border:1px solid ButtonText !important; } }
@media print { .fsspa-chat { display:none !important; } }

/* Keyboard/zoom compact view keeps the full authoritative state text accessible. */
.fsspa-chat--compact .fsspa-chat__panel { overflow-y:auto; }
.fsspa-chat--compact .fsspa-chat__welcome, .fsspa-chat--compact .fsspa-chat__suggestions, .fsspa-chat--compact .fsspa-chat__privacy, .fsspa-chat--compact .fsspa-chat__hint { display:none; }
.fsspa-chat--compact .fsspa-chat__head { padding:6px 12px; }
.fsspa-chat--compact .fsspa-chat__identity { padding:6px 12px; }
.fsspa-chat--compact .fsspa-chat__log { min-height:60px; }

.fsspa-chat--compact .fsspa-chat__identity { position:sticky; top:0; z-index:1; }
@media(max-width:360px) { .fsspa-chat__welcome { padding:5px; } .fsspa-chat__welcome-leaf { display:none; } .fsspa-chat__welcome h3 { font-size:16px; } .fsspa-chat__welcome p { font-size:12px; } .fsspa-chat__suggestions { gap:5px; } .fsspa-chat__chip { min-height:44px; padding:7px 9px; font-size:11px !important; } }

.fsspa-chat--compact .fsspa-chat__input { min-height:44px; height:44px; max-height:64px; resize:none; }
.fsspa-chat--compact .fsspa-chat__composer { padding-top:8px; gap:4px 8px; }
.fsspa-chat--compact .fsspa-chat__log { min-height:40px; }

/* Appointment assistance: inherited site palette, no global control or WebForms changes. */
.fsspa-booking { display:flex; flex:1; min-height:0; flex-direction:column; background:var(--chat-surface); }
.fsspa-booking__nav { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 16px; border-bottom:1px solid var(--chat-line); flex-shrink:0; font-size:12px; }
.fsspa-booking__content { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:18px; scrollbar-width:thin; }
.fsspa-chat .fsspa-booking__title { margin:5px 0 8px; font-size:21px; line-height:1.2; font-weight:600; color:var(--chat-ink); }
.fsspa-chat--homepage .fsspa-booking__title { font-family:Georgia,serif; font-size:27px; font-weight:400; }
.fsspa-booking__intro { margin:0 0 18px; font-size:13px; color:var(--chat-muted); }
.fsspa-booking__fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; }
.fsspa-booking__field { min-width:0; }
.fsspa-booking__field:has(#fsspa-booking-action), .fsspa-booking__field:has(#fsspa-booking-proof), .fsspa-booking__field:has(#fsspa-booking-serviceId), .fsspa-booking__field:has(#fsspa-booking-date), .fsspa-booking__field:has(#fsspa-booking-time), .fsspa-booking__field:has(#fsspa-booking-name), .fsspa-booking__field:has(#fsspa-booking-phone), .fsspa-booking__field:has(#fsspa-booking-email) { grid-column:1/-1; }
.fsspa-booking__field label { display:block; margin:0 0 6px; font-size:12px; font-weight:600; color:var(--chat-ink); }
.fsspa-chat .fsspa-booking__control { display:block; min-width:0; width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--chat-line); border-radius:10px; background:white; color:var(--chat-ink); font:16px/1.35 "Segoe UI",Arial,sans-serif; box-shadow:none; }
.fsspa-chat input:focus-visible, .fsspa-chat select:focus-visible { outline:3px solid var(--chat-accent); outline-offset:2px; }
.fsspa-chat .fsspa-booking__control:disabled { color:var(--chat-muted); background:var(--chat-wash); opacity:.75; }
.fsspa-booking__help { color:var(--chat-muted); font-size:11px; line-height:1.6; margin:6px 0 0; overflow-wrap:anywhere; }
.fsspa-booking__fields > button, .fsspa-booking__fields > p, .fsspa-booking__check { grid-column:1/-1; }
.fsspa-booking__check { display:flex; align-items:flex-start; gap:10px; min-height:44px; cursor:pointer; font-size:12px; padding:12px; border-radius:10px; border:1px solid var(--chat-line); background:var(--chat-wash); line-height:1.6; }
.fsspa-chat .fsspa-booking__check input { flex:0 0 19px; width:19px; height:19px; margin:1px 0 0; accent-color:var(--chat-accent); }
.fsspa-booking__primary { display:block; width:100%; min-height:48px; margin-top:8px !important; }
.fsspa-booking__summary { border:1px solid var(--chat-line); border-radius:16px; padding:16px; background:linear-gradient(145deg,#fff,var(--chat-wash)); }
.fsspa-booking__summary h4 { font-size:18px; line-height:1.3; margin:0 0 16px; }
.fsspa-booking__details { margin:0; }
.fsspa-booking__details dt { color:var(--chat-muted); text-transform:uppercase; letter-spacing:.8px; font-size:10px; margin:12px 0 3px; }
.fsspa-booking__details dd { font-size:13px; margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.fsspa-booking__outcome { border-top:1px solid var(--chat-line); margin:16px 0; padding-top:14px; font-size:12px; line-height:1.6; }
.fsspa-booking__status { background:#fff5df; color:#74510b; border:1px solid #f0dfb8; border-radius:10px; padding:12px; font-size:12px; }
.fsspa-booking__foot { color:var(--chat-muted); font-size:11px; line-height:1.6; border-top:1px solid var(--chat-line); padding-top:14px; margin-top:18px; }
.fsspa-chat--appointment .fsspa-chat__log, .fsspa-chat--appointment .fsspa-chat__suggestions, .fsspa-chat--appointment .fsspa-chat__composer, .fsspa-chat--appointment .fsspa-chat__pending, .fsspa-chat--appointment .fsspa-chat__privacy { display:none !important; }
.fsspa-chat--appointment .fsspa-chat__panel { width:440px; }
.fsspa-chat--appointment .fsspa-chat__footer { border-top:1px solid var(--chat-line); }
.fsspa-chat--compact .fsspa-booking { min-height:160px; flex-shrink:0; }
.fsspa-chat--compact .fsspa-booking__content { max-height:55vh; }
.fsspa-chat--compact .fsspa-chat__suggestions { display:flex; }
@media(max-width:480px) { .fsspa-chat--appointment .fsspa-chat__panel { width:calc(100vw - 24px); } .fsspa-booking__content { padding:15px; } }
@media(max-width:360px) { .fsspa-booking__fields { grid-template-columns:minmax(0,1fr); } .fsspa-booking__summary { padding:12px; } }

/* Short viewports keep appointment entry and End chat reachable without sacrificing identity. */
.fsspa-chat--compact .fsspa-chat__head { padding:0 12px; }
.fsspa-chat--compact .fsspa-chat__mark { width:30px; height:30px; }
.fsspa-chat--compact .fsspa-chat__log { min-height:16px; padding:6px 12px; }
.fsspa-chat--compact .fsspa-chat__suggestions { padding:0 12px; flex-wrap:nowrap; }
.fsspa-chat--compact .fsspa-chat__count { display:none; }
.fsspa-chat--compact .fsspa-booking { min-height:80px; flex-shrink:1; }
.fsspa-chat--compact .fsspa-booking__content { max-height:none; }

/* 24206 floating launcher and same-page responsive chat. Closing is minimizing. */
.fsspa-chat, .fsspa-chat--homepage { z-index:1200; }
.fsspa-chat__launcher { position:relative; width:60px; height:60px; min-width:60px; min-height:60px; padding:0; gap:0; border-radius:50%; box-shadow:0 7px 24px #3d291d38,0 1px 4px #3d291d18; }
.fsspa-chat__launcher-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.fsspa-chat__bubble { width:29px; height:25px; border:2px solid currentColor; border-radius:9px 9px 9px 2px; font:18px/1 Arial,sans-serif; letter-spacing:-1px; padding-bottom:5px; }
.fsspa-chat--open .fsspa-chat__bubble { border:0; border-radius:0; padding:0; font:32px/1 Arial,sans-serif; }
.fsspa-chat__badge { position:absolute; top:-4px; right:-4px; min-width:24px; min-height:24px; display:grid; place-items:center; border:2px solid var(--chat-surface); background:var(--chat-deep); color:#fff; padding:0 5px; font-weight:700; box-shadow:0 2px 7px #39251722; }
.fsspa-chat__panel { bottom:76px; width:400px; max-width:calc(100vw - 48px); height:640px; max-height:calc(var(--chat-vh, 100dvh) - 120px); }
.fsspa-chat--mobile .fsspa-chat__launcher { width:56px; height:56px; min-width:56px; min-height:56px; }
.fsspa-chat--mobile.fsspa-chat--open { z-index:20000; }
.fsspa-chat--mobile.fsspa-chat--open .fsspa-chat__launcher { display:none; }
.fsspa-chat--mobile .fsspa-chat__panel,
.fsspa-chat--mobile.fsspa-chat--appointment .fsspa-chat__panel {
    position:fixed; top:var(--chat-vtop, 0px); left:var(--chat-vleft, 0px); right:auto; bottom:auto;
    width:var(--chat-vw, 100vw); max-width:none; height:var(--chat-vh, 100dvh); max-height:none; min-height:0;
    border:0; border-radius:0; box-shadow:none; animation:none; overscroll-behavior:contain;
}
.fsspa-chat--mobile .fsspa-chat__head { padding:calc(12px + env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) 12px max(16px, env(safe-area-inset-left, 0px)); }
.fsspa-chat--mobile .fsspa-chat__icon { flex-shrink:0; width:44px; height:44px; }
.fsspa-chat--mobile .fsspa-chat__composer { padding-left:max(14px, env(safe-area-inset-left, 0px)); padding-right:max(14px, env(safe-area-inset-right, 0px)); }
.fsspa-chat--mobile .fsspa-chat__footer { padding-bottom:env(safe-area-inset-bottom, 0px); padding-left:max(14px, env(safe-area-inset-left, 0px)); padding-right:max(14px, env(safe-area-inset-right, 0px)); }
.fsspa-chat--mobile .fsspa-chat__input { resize:none; }
.fsspa-chat--mobile.fsspa-chat--compact .fsspa-chat__head { position:sticky; top:0; z-index:3; padding-top:env(safe-area-inset-top, 0px); padding-bottom:0; background:var(--chat-surface); }
.fsspa-chat--mobile.fsspa-chat--compact .fsspa-chat__identity { position:static; }
.fsspa-chat--mobile.fsspa-chat--compact .fsspa-chat__suggestions { display:none; }
.fsspa-chat--mobile.fsspa-chat--compact .fsspa-chat__storage { font-size:11px; padding:6px 12px; }
@media(max-width:640px) { .fsspa-chat { right:max(14px, env(safe-area-inset-right, 0px)); bottom:calc(14px + env(safe-area-inset-bottom, 0px) + var(--chat-keyboard, 0px)); } }

/* Authoritative AI work status; inherits each site's warm neutral brand palette. */
.fsspa-chat__typing { display:flex; align-items:center; gap:9px; flex-shrink:0; min-height:30px; padding:3px 18px 8px; color:var(--chat-muted); font-size:12px; line-height:1.4; }
.fsspa-chat__typing-dots { display:inline-flex; align-items:center; gap:3px; flex-shrink:0; height:16px; }
.fsspa-chat__typing-dot { width:5px; height:5px; border-radius:50%; background:var(--chat-accent); animation:fsspa-chat-typing 1.4s ease-in-out infinite; }
.fsspa-chat__typing-dot:nth-child(2) { animation-delay:.16s; }
.fsspa-chat__typing-dot:nth-child(3) { animation-delay:.32s; }
.fsspa-chat--compact .fsspa-chat__typing { min-height:24px; padding:2px 12px 4px; font-size:11px; }
@keyframes fsspa-chat-typing { 0%,60%,100% { opacity:.45; transform:translateY(0); } 30% { opacity:1; transform:translateY(-3px); } }
@media(prefers-reduced-motion:reduce) { .fsspa-chat__typing-dot { animation:none; opacity:.75; transform:none; } }

/* Optional, explicit self-service exit shown only on server-tagged AI booking guidance. */
.fsspa-chat__self-service { display:block; width:fit-content; max-width:100%; padding:7px 2px; margin:1px 0 0; color:var(--chat-deep); font-size:11px; line-height:1.5; text-decoration:underline; text-decoration-color:var(--chat-line); text-underline-offset:3px; overflow-wrap:anywhere; }
.fsspa-chat__self-service:hover { color:var(--chat-accent); text-decoration-color:currentColor; }
.fsspa-chat__self-service:focus-visible { outline:3px solid var(--chat-accent); outline-offset:2px; border-radius:3px; }

/* 24459: a quiet, legible assistant seal; lettering stays inside the circle. */
.fsspa-chat .fsspa-chat__launcher { width:76px; height:76px; min-width:76px; min-height:76px; background:linear-gradient(145deg,#9b7b4b,var(--chat-accent) 72%); box-shadow:inset 0 0 0 1px #ffffff24,0 8px 25px #49351e30,0 2px 5px #49351e15; }
.fsspa-chat .fsspa-chat__launcher:hover { background:linear-gradient(145deg,#a18151,var(--chat-deep)); }
.fsspa-chat__crest { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.fsspa-chat__crest text { fill:#fff; font:600 12.5px "Segoe UI",Arial,sans-serif; letter-spacing:1.7px; }
.fsspa-chat .fsspa-chat__bubble { margin-top:13px; width:29px; height:25px; border-color:#fff; }
.fsspa-chat--open .fsspa-chat__crest { display:none; }
.fsspa-chat--open .fsspa-chat__bubble { margin-top:0; }
.fsspa-chat .fsspa-chat__panel { bottom:88px; }
.fsspa-chat--mobile .fsspa-chat__launcher { width:72px; height:72px; min-width:72px; min-height:72px; }
.fsspa-chat__log { overflow-anchor:none; }
.fsspa-chat--mobile.fsspa-chat--compact .fsspa-chat__panel { overflow:hidden; }
.fsspa-chat--mobile.fsspa-chat--compact .fsspa-chat__log { min-height:0; }
.fsspa-booking__actions { display:grid; grid-template-columns:1fr 1.15fr .85fr; gap:6px; margin:16px 0 0; }
.fsspa-booking__actions .fsspa-chat__chip { justify-content:center; min-width:0; min-height:44px; padding:9px 4px; border-radius:11px; font:600 12px/1.25 "Segoe UI",Arial,sans-serif !important; white-space:nowrap; text-align:center; text-decoration:none; background:#fffaf4; }
.fsspa-booking__actions .fsspa-booking__end { background:#855244; border-color:#855244 !important; color:#fff; }
.fsspa-booking__actions .fsspa-booking__end:hover { background:#704235; }
.fsspa-booking__actions .fsspa-chat__chip:not(.fsspa-booking__end):hover { background:var(--chat-wash); }
@media(max-width:360px) { .fsspa-booking__actions { gap:5px; } .fsspa-booking__actions .fsspa-chat__chip { font-size:11px !important; } }
@media(forced-colors:active) { .fsspa-chat__crest text { fill:ButtonText; } .fsspa-booking__actions .fsspa-booking__end { background:ButtonFace; color:ButtonText; } }

/* While confirming, give the decision the space normally used by the composer. */
.fsspa-chat--confirming .fsspa-chat__composer, .fsspa-chat--confirming .fsspa-chat__suggestions, .fsspa-chat--confirming .fsspa-chat__pending, .fsspa-chat--confirming .fsspa-chat__typing, .fsspa-chat--confirming .fsspa-chat__footer, .fsspa-chat--confirming .fsspa-chat__privacy { display:none !important; }
.fsspa-chat--compact.fsspa-chat--confirming .fsspa-booking { min-height:0; }
.fsspa-chat--confirming .fsspa-chat__confirm { max-height:calc(var(--chat-vh, 100dvh) - 150px); overflow:auto; }
