.zfa-root, .zfa-root * { box-sizing: border-box; }
.zfa-root { --zfa-ink:#14171b; --zfa-dark:#171c23; --zfa-line:#e6e7ea; --zfa-red:#d92332; font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; color:var(--zfa-ink); font-size:14px; line-height:1.45; position:fixed; z-index:99991; right:22px; bottom:22px; }
.zfa-root button, .zfa-root textarea { font-family:inherit; letter-spacing:normal; text-transform:none; }
.zfa-root button { cursor:pointer; }
.zfa-root .zfa-launcher { display:flex; gap:9px; align-items:center; padding:12px 17px; color:#fff; background:var(--zfa-dark); border:1px solid #313840; border-radius:50px; font-size:13px; font-weight:700; box-shadow:0 8px 30px #0003; transition:transform .16s ease; }
.zfa-root .zfa-launcher:hover { transform:translateY(-2px); background:#262c34; color:#fff; }
.zfa-root .zfa-launcher svg { width:22px; height:22px; }
.zfa-root .zfa-panel[hidden] { display:none!important; }
.zfa-root .zfa-panel { position:absolute; bottom:64px; right:0; display:flex; flex-direction:column; width:min(385px,calc(100vw - 24px)); height:min(560px,calc(100dvh - 112px)); border:1px solid #dadee3; border-radius:18px; background:#fff; box-shadow:0 18px 70px #10141a40; overflow:hidden; }
.zfa-root .zfa-header { background:#161b22; color:#fff; display:flex; align-items:center; justify-content:space-between; min-height:72px; padding:17px 19px; border-top:3px solid var(--zfa-red); }
.zfa-root .zfa-header strong { display:block; font-size:17px; line-height:1.2; letter-spacing:.01em; }
.zfa-root .zfa-header small { color:#adb5be; display:block; margin-top:4px; font-size:11px; }
.zfa-root .zfa-header .zfa-close { background:transparent; border:none; color:#fff; width:31px; height:31px; font-size:27px; line-height:1; padding:0; }
.zfa-root .zfa-messages { flex:1; overflow-y:auto; overscroll-behavior:contain; background:#fafafb; padding:17px 14px; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.zfa-root .zfa-bubble { font-size:13px; max-width:90%; white-space:pre-line; overflow-wrap:anywhere; padding:11px 13px; background:#fff; border:1px solid var(--zfa-line); border-radius:12px 12px 12px 3px; color:#26292d; }
.zfa-root .zfa-bubble.zfa-user { align-self:flex-end; background:#1a2027; color:#fff; border-color:#1a2027; border-radius:12px 12px 3px 12px; }
.zfa-root .zfa-answer-link { display:inline-block; background:#fff; color:#c41d2c!important; border:1px solid #ead7d9; border-radius:8px; padding:8px 12px; text-decoration:none!important; font-size:12px; font-weight:700; }
.zfa-root .zfa-answer-link:hover { background:#fff2f3; }
.zfa-root .zfa-quick { display:flex; gap:6px; padding:9px 12px 0; overflow-x:auto; background:#fff; }
.zfa-root .zfa-quick button { font-size:12px; padding:5px 10px; border-radius:20px; border:1px solid #d8dce2; color:#242b34; background:#f9f9fa; white-space:nowrap; min-height:28px; }
.zfa-root .zfa-quick button:hover { border-color:#d92332; }
.zfa-root .zfa-form { margin:0; display:flex; align-items:center; gap:8px; padding:10px 12px 7px; background:#fff; }
.zfa-root .zfa-form textarea { display:block; margin:0; box-shadow:none; width:100%; min-height:48px; max-height:94px; resize:vertical; padding:10px; font-size:13px; background:#fff; color:#14171b; border:1px solid #d7dbe0; border-radius:11px; }
.zfa-root .zfa-form textarea:focus { outline:2px solid #eaa4ab; border-color:#c92836; }
.zfa-root .zfa-form button { background:#d92332; color:#fff; flex:0 0 39px; width:39px; height:39px; border:0; border-radius:10px; padding:0; font-size:18px; }
.zfa-root .zfa-form button:disabled { background:#a1a3a8; cursor:not-allowed; }
.zfa-root .zfa-consent { font-size:10.5px; line-height:1.3; color:#58606a; padding:1px 14px 6px; display:flex; align-items:flex-start; gap:7px; margin:0; font-weight:400; }
.zfa-root .zfa-consent input { width:14px; height:14px; min-width:14px; margin:0; accent-color:#cd2734; }
.zfa-root .zfa-footnote { font-size:10px; padding:6px 14px 10px; color:#6e757f; background:#fff; border-top:1px solid #f1f1f2; }
.zfa-root .zfa-footnote a { color:#ad1722; text-decoration:underline; }
.zfa-approved-faq details { border-bottom:1px solid #e3e3e3; padding:12px 2px; }
.zfa-approved-faq summary { cursor:pointer; font-weight:600; }
.zfa-approved-faq p { margin:12px 0; white-space:pre-line; }
@media(max-width:600px) { .zfa-root { right:12px; bottom:12px; } .zfa-root .zfa-launcher { padding:11px 13px; } .zfa-root .zfa-panel { bottom:61px; width:calc(100vw - 24px); height:min(640px,calc(100dvh - 92px)); } }
@media(prefers-reduced-motion:reduce){ .zfa-root *, .zfa-root *:before { transition:none!important; animation:none!important; } }
/* v0.2: preserve approved answer formatting and support Turnstile / honeypot. */
.zfa-root .zfa-hp { position:absolute!important; left:-10000px!important; top:auto!important; height:1px!important; width:1px!important; opacity:0!important; pointer-events:none!important; }
.zfa-root .zfa-turnstile { padding:0 12px; min-height:1px; max-width:100%; overflow:hidden; background:#fff; }
.zfa-root .zfa-rich-answer { white-space:normal; width:100%; }
.zfa-root .zfa-rich-answer p { margin:0 0 8px; font-size:13px; }
.zfa-root .zfa-rich-answer p:last-child { margin-bottom:0; }
.zfa-root .zfa-rich-answer ul, .zfa-root .zfa-rich-answer ol { margin:8px 0 10px; padding-left:22px; }
.zfa-root .zfa-rich-answer li { margin-bottom:5px; }
.zfa-root .zfa-rich-answer a { color:#bc1e2c; text-decoration:underline; }
.zfa-approved-faq h2 { margin-top:24px; }
.zfa-approved-faq .zfa-faq-answer { margin:12px 0; }
.zfa-approved-faq .zfa-faq-answer p { margin:8px 0; }
/* Related FAQ is offered without disclosing its text until the visitor opts in. */
.zfa-root .zfa-related-choice{display:block;width:92%;margin:5px 0 9px;padding:12px 14px;border:1px solid #c8d0d8;border-radius:10px;background:#fff;color:#183048;text-align:left;font:inherit;line-height:1.4;cursor:pointer}
.zfa-root .zfa-related-choice:hover,.zfa-root .zfa-related-choice:focus-visible{background:#f0f3f7;border-color:#8998ab}
.zfa-root .zfa-turnstile[hidden],.zfa-root .zfa-consent[hidden]{display:none!important}
