/* Visitor preferences override the inherited administrator theme only while selected. */
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
:focus-visible { outline: 3px solid #126bde !important; outline-offset: 3px; box-shadow: 0 0 0 6px #fff !important; }
.composer textarea:focus-visible { outline: none !important; box-shadow: none !important; }
.chat:focus-visible { outline-offset: -4px; box-shadow: none !important; }
.chat-widget { grid-template-rows: auto minmax(0, 1fr) auto auto; }
.chat-header { flex-wrap: wrap; gap: 10px; flex-shrink: 0; }
.assistant-title { flex: 1 1 175px; min-width: 0; }
.assistant-title > div { min-width: 0; overflow-wrap: anywhere; }
.assistant-mark { flex-shrink: 0; }
.chat-controls { margin-left: auto; flex-shrink: 0; flex-wrap: wrap; }
.chat-controls button { width: 36px; height: 36px; }
.chat-controls svg { width: 19px; height: 19px; }
.chat { min-width: 0; min-height: 0; }
.message.assistant { flex-direction: column; align-items: flex-start; }
.bubble { min-width: 0; }
.quick-prompts { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.quick-prompts button { min-height: 44px; min-width: 0; overflow-wrap: anywhere; }
.composer { grid-template-columns: minmax(0, 1fr) 48px; }
.composer textarea { min-width: 0; width: 100%; }
.thinking-indicator { width: auto; max-width: 100%; flex-wrap: wrap; }
.thinking-orbit { flex-shrink: 0; }
button:disabled { cursor: not-allowed; }
.chat-utility-dock { position: fixed; z-index: 24; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 10px; }
/* Keep page content out of the space occupied by the floating controls. */
body.chat-is-open .site-shell { height: calc(100dvh - 88px); min-height: 0; overflow-y: auto; }
body:not(.chat-is-open) .site-shell { margin-right: 225px; }
body:not(.chat-is-open) .chat-launcher { right: 136px; bottom: 116px; }
body:not(.chat-is-open) .chat-utility-dock { right: 24px; bottom: 28px; width: 200px; height: 172px; display: block; }
body:not(.chat-is-open) #audioLauncher { position: absolute; top: auto; right: 3px; bottom: 62px; left: auto; width: 46px; height: 46px; }
body:not(.chat-is-open) .language-control { position: absolute; right: auto; left: 0; bottom: 6px; width: 132px; }
body:not(.chat-is-open) #accessibilityLauncher { position: absolute; right: 3px; left: auto; bottom: 3px; width: 46px; height: 46px; }
.chat-utility-dock > button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; flex-shrink: 0; border: 2px solid #72009f; border-radius: 50%; background: #fff; color: #72009f; box-shadow: 0 4px 14px #28123826; cursor: pointer; }
.chat-utility-dock > button:hover, .chat-utility-dock > button[aria-pressed="true"] { background: #72009f; color: #fff; }
.chat-utility-dock > button:disabled { opacity: .55; cursor: not-allowed; }
.chat-utility-dock svg { width: 23px; height: 23px; fill: currentColor; }
body:not(.chat-is-open) .chat-utility-dock > button { border: 4px solid #fff; background: #942e7b; color: #fff; box-shadow: 0 0 0 3px #942e7b, 0 6px 18px rgba(148,46,123,.24); }
body:not(.chat-is-open) .chat-utility-dock > button:hover,
body:not(.chat-is-open) .chat-utility-dock > button[aria-pressed="true"] { background: #7f246a; color: #fff; transform: translateY(-2px); }
body:not(.chat-is-open) .chat-utility-dock svg { width: 23px; height: 23px; }
.language-control { display: block; flex-shrink: 0; }
.language-control select { width: clamp(116px, calc(4.5rem + 28px), 156px); min-height: 46px; padding: 8px 36px 8px 14px; border: 2px solid #72009f; border-radius: 14px; background: #fff; color: #72009f; font-size: .85rem; cursor: pointer; }
body:not(.chat-is-open) .language-control select { width: 132px; height: 52px; appearance: none; -webkit-appearance: none; border: 3px solid #942e7b; border-radius: 18px; background-color: #fff; background-image: linear-gradient(45deg,transparent 50%,#942e7b 50%),linear-gradient(135deg,#942e7b 50%,transparent 50%); background-position: calc(100% - 18px) 22px,calc(100% - 13px) 22px; background-size: 6px 6px,6px 6px; background-repeat: no-repeat; color: #942e7b; font-size: .88rem; font-weight: 700; box-shadow: 0 6px 18px rgba(148,46,123,.12); }
body:is([data-contrast="dark"], [data-contrast="light"]) .language-control select { border-color: var(--contrast-link); background: var(--contrast-bg); color: var(--contrast-link); }
.external-audio-status:not(.sr-only) { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(300px, calc(100vw - 140px)); margin: 0; padding: 12px; border: 1px solid var(--bot-border); border-radius: 10px; background: var(--bot-fill); color: var(--bot-text); font-size: .85rem; line-height: 1.5; box-shadow: 0 5px 20px #28123830; }
.chat-widget { bottom: 88px; height: min(var(--bot-height), calc(100vh - 112px)); height: min(var(--bot-height), calc(100dvh - 112px)); }
.chat-widget.maximized { bottom: 88px; height: auto; }
body:is([data-contrast="dark"], [data-contrast="light"]) .chat-utility-dock > button { border-color: var(--contrast-link); background: var(--contrast-bg); color: var(--contrast-link); }
body:is([data-contrast="dark"], [data-contrast="light"]) .chat-utility-dock > button[aria-pressed="true"] { background: var(--contrast-link); color: var(--contrast-bg); }
.accessibility-dialog { --settings-ink: #29242f; --settings-fill: #fff; --settings-soft: #f7f3fa; --settings-border: #c5b6d0; --settings-accent: #5b087f; color: var(--settings-ink); background: var(--settings-fill); width: min(570px, calc(100vw - 24px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--settings-border); border-radius: 22px; box-shadow: 0 24px 80px #18092455; overflow: auto; }
.accessibility-dialog::backdrop { background: #150d2466; }
.accessibility-heading { display: flex; gap: 16px; align-items: flex-start; padding: 22px 24px 18px; border-bottom: 1px solid var(--settings-border); }
.accessibility-heading > div { flex: 1; min-width: 0; }
.accessibility-heading h2 { margin: 0; color: var(--settings-accent); font-size: 1.35rem; line-height: 1.25; overflow-wrap: anywhere; }
.accessibility-heading p { margin: 8px 0 0; font-size: .875rem; line-height: 1.5; }
.accessibility-close { flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid var(--settings-border); border-radius: 50%; color: var(--settings-accent); background: var(--settings-fill); font-size: 1.6rem; cursor: pointer; }
.accessibility-content { padding: 20px 24px 24px; }
.accessibility-content, .accessibility-heading { overflow-wrap: anywhere; }
.accessibility-content fieldset { padding: 0; margin: 0 0 24px; border: 0; min-width: 0; }
.accessibility-content legend { padding: 0; margin-bottom: 12px; font-weight: 800; font-size: 1rem; }
.accessibility-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.accessibility-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-size: .85rem; font-weight: 700; }
.accessibility-field select { width: 100%; min-width: 0; min-height: 44px; padding: 9px 8px; border: 1px solid var(--settings-border); border-radius: 8px; background: var(--settings-fill); color: var(--settings-ink); font-size: .85rem; }
.accessibility-toggle { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 12px; border: 1px solid var(--settings-border); border-radius: 10px; background: var(--settings-soft); font-size: .85rem; font-weight: 700; line-height: 1.4; cursor: pointer; }
.accessibility-toggle:has(input:checked) { border-color: var(--settings-accent); box-shadow: inset 0 0 0 1px var(--settings-accent); }
.accessibility-toggle input { flex-shrink: 0; margin: 0; width: 20px; height: 20px; accent-color: var(--settings-accent); }
.accessibility-toggle small { display: block; margin-top: 3px; font-weight: 400; font-size: .75rem; }
.accessibility-hint { margin: 0 0 14px; line-height: 1.55; font-size: .82rem; }
#audioSettings > .accessibility-toggle { margin-bottom: 14px; }
#stopAllSpeech { margin: 14px 0 12px; }
#readSelectedMessage { margin: 10px 0 16px; }
.accessibility-secondary { min-height: 44px; padding: 10px 16px; border: 1px solid var(--settings-accent); border-radius: 9px; background: var(--settings-fill); color: var(--settings-accent); font-size: .85rem; font-weight: 700; cursor: pointer; }
.accessibility-secondary:disabled { opacity: .55; }
.accessibility-tooltip { position: fixed; z-index: 100; width: max-content; max-width: min(320px, calc(100vw - 16px)); padding: 9px 12px; border: 2px solid #fff; border-radius: 6px; background: #15101c; color: #fff; pointer-events: none; font-size: .9rem; line-height: 1.5; overflow-wrap: anywhere; box-shadow: 0 3px 12px #0006; }
.reading-guide { position: fixed; z-index: 90; left: 0; right: 0; height: 6px; background: #ffcf00; border: 1px solid #161016; pointer-events: none; }
body[data-reading-cursor="mask"] .reading-guide { height: 120px; margin-top: -60px; border: 0; border-top: 2px solid #ffcf00; border-bottom: 2px solid #ffcf00; background: transparent; box-shadow: 0 0 0 100vmax #000a; }
body[data-reading-cursor="large"], body[data-reading-cursor="large"] * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='48' viewBox='0 0 40 48'%3E%3Cpath d='M3 2v36l10-10 9 17 7-4-9-16h15z' fill='black' stroke='white' stroke-width='3'/%3E%3C/svg%3E") 3 2, auto !important; }
body.a11y-readableFont, body.a11y-readableFont :is(button, input, textarea, select) { font-family: Verdana, Tahoma, sans-serif; }
body[data-text-spacing="wide"] { letter-spacing: .06em; word-spacing: .12em; }
body[data-text-spacing="wider"] { letter-spacing: .12em; word-spacing: .2em; }
body[data-text-spacing]:not([data-text-spacing="default"]) :is(p, h1, h2, h3, h4, h5, a, button, input, textarea, select, label, span, strong, small, li, th, td, .bubble, .eyebrow) { letter-spacing: inherit; word-spacing: inherit; }
body[data-line-height="relaxed"] { --reading-line-height: 1.8; }
body[data-line-height="extra"] { --reading-line-height: 2.1; }
body[data-line-height]:not([data-line-height="default"]) :is(p, h1, h2, h3, h4, h5, li, th, td, label, select, button, textarea, .bubble, .assistant-title, .accessibility-hint) { line-height: var(--reading-line-height); }
body.a11y-highlightLinks a { background: #ffeb3b !important; color: #111 !important; outline: 2px solid #111; outline-offset: 1px; text-decoration: underline !important; text-decoration-thickness: 2px !important; font-weight: 800; }
body.a11y-reduceMotion *, body.a11y-reduceMotion *::before, body.a11y-reduceMotion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html:has(body.a11y-reduceMotion) { scroll-behavior: auto !important; }
body.a11y-hideImages img { visibility: hidden !important; }
body.a11y-hideImages .logo-link::after { content: "Children’s Services Council of Broward County"; display: block; padding: 10px; font-weight: 800; }
body.a11y-hideImages .site-logo { display: none; }
body[data-contrast="inverted"] :is(.site-shell, .chat-widget, .chat-launcher, .follow-up-popup) { filter: invert(1) hue-rotate(180deg); }
body[data-contrast="dark"] {
  --contrast-bg: #141414; --contrast-surface: #222; --contrast-ink: #fff; --contrast-link: #ffdf70;
  --csc-ink: #fff; --csc-purple: #ffdf70; --csc-purple-dark: #333;
}
body[data-contrast="light"] {
  --contrast-bg: #fff; --contrast-surface: #fff; --contrast-ink: #111; --contrast-link: #3b0075;
  --csc-ink: #111; --csc-purple: #3b0075; --csc-purple-dark: #eee;
}
body:is([data-contrast="dark"], [data-contrast="light"]) {
  --header-left: var(--contrast-surface); --header-right: var(--contrast-surface); --header-text: var(--contrast-ink);
  --window-fill: var(--contrast-bg); --window-border: var(--contrast-ink); --icon-fill: var(--contrast-bg); --icon-symbol: var(--contrast-ink);
  --intro-fill: var(--contrast-surface); --intro-border: var(--contrast-link); --intro-text: var(--contrast-ink);
  --suggested-fill: var(--contrast-surface); --suggested-border: var(--contrast-link); --suggested-text: var(--contrast-link);
  --user-fill: var(--contrast-ink); --user-text: var(--contrast-bg); --user-border: var(--contrast-ink);
  --bot-fill: var(--contrast-surface); --bot-text: var(--contrast-ink); --bot-border: var(--contrast-ink); --bold-text: var(--contrast-link);
  --input-fill: var(--contrast-bg); --input-border: var(--contrast-ink); --input-text: var(--contrast-ink); --placeholder: var(--contrast-ink);
  --send-left: var(--contrast-ink); --send-right: var(--contrast-ink); --send-text: var(--contrast-bg); --focus-ring: var(--contrast-link);
  background: var(--contrast-bg); color: var(--contrast-ink);
}
body:is([data-contrast="dark"], [data-contrast="light"]) :is(.site-shell, .site-header, .utility-bar, .site-nav, .mission-card, .topic-chips span, .hero-primary, .hero-actions a, .contact-pill, .assistant-mark, .follow-up-popup, .follow-up-popup input, .follow-up-popup select, .thinking-indicator, .formatted-response code, .formatted-response th, .answer-feedback .feedback-icon, .learn-more-toggle) { background: var(--contrast-surface); color: var(--contrast-ink); border-color: var(--contrast-ink); }
body:is([data-contrast="dark"], [data-contrast="light"]) :is(.hero-copy h1, .hero-copy > p, .mission-card strong, .mission-card span, .status, .assistant-title small, .feedback-status, .learn-more-collapse > summary, #followUpStatus, .follow-up-fields small, .site-nav a:hover, .site-nav a:focus) { color: var(--contrast-ink); }
body:is([data-contrast="dark"], [data-contrast="light"]) .chat-header::after,
body:is([data-contrast="dark"], [data-contrast="light"]) .hero::before,
body:is([data-contrast="dark"], [data-contrast="light"]) .hero::after { display: none; }
body:is([data-contrast="dark"], [data-contrast="light"]) .quick-prompts button:hover { background: var(--contrast-surface); }
body:is([data-contrast="dark"], [data-contrast="light"]) .accessibility-dialog { --settings-ink: var(--contrast-ink); --settings-fill: var(--contrast-bg); --settings-soft: var(--contrast-surface); --settings-border: var(--contrast-ink); --settings-accent: var(--contrast-link); }
.follow-up-popup { max-height: calc(100dvh - 32px); overflow: auto; }
.follow-up-popup h2 { padding-right: 28px; font-size: 1.125rem; }
.follow-up-fields small, #followUpStatus { font-size: .8rem; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
@media (max-width: 760px) {
  .chat-header { padding: 10px 12px; }
  .chat-controls button { width: 40px; height: 40px; }
  .chat-widget { bottom: 80px; height: calc(100vh - 96px); height: calc(100dvh - 96px); }
  .chat-widget.maximized { height: auto; }
  body.chat-is-open .chat-utility-dock { right: 12px; bottom: 18px; }
}
@media (max-width: 520px) {
  .chat-widget, .chat-widget.maximized { inset: 8px 8px 80px; height: auto; max-height: calc(100dvh - 88px); }
  .assistant-title { flex-basis: 100%; }
  .chat-controls { justify-content: flex-end; width: 100%; }
  .chat-controls button { width: 44px; height: 44px; }
  .assistant-title strong { font-size: .95rem; }
  .chat { padding: 12px 10px; }
  .bubble { max-width: 100%; }
  .accessibility-heading { padding: 16px; gap: 8px; }
  .accessibility-content { padding: 16px; }
  .accessibility-grid { grid-template-columns: 1fr; }
  .utility-bar nav, .site-nav { flex-wrap: wrap; }
  .site-nav a { white-space: normal; padding-block: 12px; }
  .hero-copy h1 { overflow-wrap: anywhere; }
  .hero-visual { min-width: 0; }
}
@media (max-width: 360px) {
  .chat-utility-dock { gap: 4px; }
  .language-control select { width: clamp(100px, calc(4.5rem + 28px), 156px); }
}

@media (max-width: 760px) {
  body:not(.chat-is-open) .site-shell { margin-right: 0; padding-bottom: 215px; }
  body:not(.chat-is-open) .chat-launcher { right: 124px; bottom: 110px; }
  body:not(.chat-is-open) .chat-utility-dock { right: 18px; bottom: 24px; width: 194px; }
}
@media (max-height: 500px) {
  .chat-header { min-height: 0; padding: 6px 10px; gap: 4px; }
  .assistant-title small, .assistant-mark { display: none; }
  .chat-controls button { width: 36px; height: 36px; }
  .composer textarea { min-height: 36px; max-height: 65px; padding-block: 5px; }
}
