:root {
    --support-navy-950: #061f33;
    --support-navy-900: #082b43;
    --support-navy-800: #0b3a59;
    --support-cyan: #42c3d5;
    --support-cyan-soft: #e8f8fa;
    --support-ink: #0b263a;
    --support-slate: #587080;
    --support-line: #d7e3e8;
    --support-paper: #ffffff;
    --support-error: #9e2940;
}

.support-chat-root,
.support-chat-root * { box-sizing: border-box; }

.support-chat-root [hidden] { display: none !important; }

.support-chat-root {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1200;
    color: var(--support-ink);
    font-family: Arial, Helvetica, sans-serif;
}

.support-chat-root.is-suppressed { display: none; }

.support-chat-launcher {
    position: relative;
    display: grid;
    width: 4rem;
    height: 4rem;
    margin-left: auto;
    place-items: center;
    color: #fff;
    background: var(--support-navy-900);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    box-shadow: 0 1rem 2.4rem rgba(4, 34, 54, .26), inset 0 1px 0 rgba(255, 255, 255, .14);
    cursor: pointer;
    transition: transform .22s cubic-bezier(.16, 1, .3, 1), background-color .22s ease;
}

.support-chat-launcher:hover { background: var(--support-navy-800); transform: translateY(-2px); }
.support-chat-launcher:active { transform: translateY(0) scale(.97); }
.support-chat-launcher:focus-visible,
.support-chat-close:focus-visible,
.support-chat-primary:focus-visible,
.support-chat-composer button:focus-visible,
.support-chat-closed button:focus-visible { outline: 3px solid rgba(66, 195, 213, .55); outline-offset: 3px; }
.support-chat-launcher svg { width: 1.8rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }

.support-chat-launcher__badge {
    position: absolute;
    top: -.2rem;
    right: -.15rem;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 .3rem;
    color: #fff;
    background: #b12f49;
    border: 2px solid #fff;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.05rem;
    text-align: center;
}

.support-chat-panel {
    position: absolute;
    right: 0;
    bottom: 4.8rem;
    display: flex;
    width: min(24.5rem, calc(100vw - 2rem));
    height: min(45rem, calc(100dvh - 7.5rem));
    min-height: 32rem;
    overflow: hidden;
    flex-direction: column;
    background: var(--support-paper);
    border: 1px solid rgba(8, 43, 67, .14);
    border-radius: .8rem;
    box-shadow: 0 1.6rem 4rem rgba(4, 31, 48, .24);
    opacity: 0;
    transform: translateY(.8rem) scale(.985);
    transform-origin: bottom right;
    transition: opacity .2s ease, transform .24s cubic-bezier(.16, 1, .3, 1);
}

.support-chat-panel.is-open { opacity: 1; transform: translateY(0) scale(1); }

.support-chat-header {
    display: grid;
    min-height: 5rem;
    padding: 1rem 1rem 1rem 1.1rem;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .75rem;
    color: #fff;
    background: var(--support-navy-950);
}

.support-chat-header__mark {
    width: 2.5rem;
    height: 2.5rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
}
.support-chat-header__mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.support-chat-header strong { display: block; font-size: 1rem; line-height: 1.2; }
.support-chat-header div > span { display: flex; margin-top: .25rem; align-items: center; gap: .38rem; color: #bdd2dd; font-size: .72rem; }
.support-chat-header i { width: .45rem; height: .45rem; background: var(--support-cyan); border-radius: 50%; }

.support-chat-close {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    place-items: center;
    color: #fff;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: .45rem;
    cursor: pointer;
}
.support-chat-close:hover { background: rgba(255, 255, 255, .12); }
.support-chat-close svg { width: 1.2rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; }

.support-chat-body { position: relative; min-height: 0; flex: 1; background: #fbfdfe; }
.support-chat-intake,
.support-chat-conversation { height: 100%; }
.support-chat-intake { padding: 1.3rem; overflow-y: auto; }
.support-chat-intake__intro { margin-bottom: 1.15rem; }
.support-chat-intake__intro p { margin: 0 0 .4rem; color: #087f94; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.support-chat-intake__intro h2 { margin: 0; color: var(--support-navy-950); font-size: 1.45rem; line-height: 1.18; }
.support-chat-intake__intro > span { display: block; margin-top: .55rem; color: var(--support-slate); font-size: .83rem; line-height: 1.5; }
.support-chat-intake-form { display: grid; gap: .9rem; }
.support-chat-field { display: grid; gap: .38rem; }
.support-chat-field label { color: var(--support-ink); font-size: .76rem; font-weight: 800; }
.support-chat-field input,
.support-chat-field select {
    width: 100%;
    min-height: 2.85rem;
    padding: .7rem .78rem;
    color: var(--support-ink);
    background: #fff;
    border: 1px solid #b8ccd5;
    border-radius: .32rem;
    font: inherit;
    font-size: .86rem;
}
.support-chat-field input:focus,
.support-chat-field select:focus,
.support-chat-composer textarea:focus { border-color: #168ea2; outline: 3px solid rgba(66, 195, 213, .18); }
.support-chat-field input[aria-invalid="true"],
.support-chat-field select[aria-invalid="true"] { border-color: var(--support-error); }
.support-chat-field__error,
.support-chat-form-error,
.support-chat-composer__error { min-height: 0; color: var(--support-error); font-size: .72rem; line-height: 1.35; }
.support-chat-field__error:empty,
.support-chat-form-error:empty,
.support-chat-composer__error:empty { display: none; }
.support-chat-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.support-chat-turnstile { min-height: 4.1rem; }
.support-chat-turnstile > div { max-width: 100%; }

.support-chat-primary {
    display: flex;
    min-height: 3rem;
    padding: .72rem 1rem;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    color: #fff;
    background: var(--support-navy-900);
    border: 0;
    border-radius: .35rem;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
}
.support-chat-primary:hover { background: var(--support-navy-800); }
.support-chat-primary:active { transform: translateY(1px); }
.support-chat-primary:disabled,
.support-chat-composer button:disabled { cursor: wait; opacity: .58; }
.support-chat-primary svg { width: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

.support-chat-loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    align-content: center;
    gap: .35rem;
    background: rgba(251, 253, 254, .94);
}
.support-chat-loading span { width: .46rem; height: .46rem; background: #168ea2; border-radius: 50%; animation: support-chat-pulse 1s ease-in-out infinite; }
.support-chat-loading span:nth-child(2) { animation-delay: .14s; }
.support-chat-loading span:nth-child(3) { animation-delay: .28s; }
.support-chat-loading p { width: 100%; margin: .65rem 0 0; color: var(--support-slate); font-size: .75rem; text-align: center; }

.support-chat-conversation { display: flex; min-height: 0; flex-direction: column; }
.support-chat-reference { display: flex; padding: .65rem 1rem; justify-content: space-between; gap: .8rem; color: #667d8a; background: #f1f7f9; border-bottom: 1px solid var(--support-line); font-size: .63rem; }
.support-chat-reference span:first-child { color: var(--support-navy-900); font-weight: 800; letter-spacing: .05em; }
.support-chat-reference span:last-child { text-align: right; }
.support-chat-transcript { display: flex; min-height: 0; padding: 1rem; overflow-y: auto; flex: 1; flex-direction: column; gap: .85rem; scroll-behavior: smooth; }
.support-chat-message { display: grid; max-width: 84%; gap: .28rem; }
.support-chat-message--incoming { align-self: flex-start; }
.support-chat-message--outgoing { align-self: flex-end; }
.support-chat-message__meta { display: flex; justify-content: space-between; gap: .65rem; color: #6b808c; font-size: .64rem; }
.support-chat-message__bubble { padding: .72rem .82rem; border-radius: .65rem; font-size: .82rem; line-height: 1.48; white-space: pre-wrap; overflow-wrap: anywhere; }
.support-chat-message--incoming .support-chat-message__bubble { color: var(--support-ink); background: #edf4f7; border-top-left-radius: .18rem; }
.support-chat-message--outgoing .support-chat-message__bubble { color: #fff; background: var(--support-navy-900); border-top-right-radius: .18rem; }
.support-chat-message__automated { color: #6a808c; font-size: .61rem; font-style: normal; }

.support-chat-composer { position: relative; display: grid; padding: .85rem; grid-template-columns: 1fr 2.8rem; align-items: end; gap: .55rem; background: #fff; border-top: 1px solid var(--support-line); }
.support-chat-composer textarea { width: 100%; min-height: 2.8rem; max-height: 7rem; padding: .72rem .8rem; resize: none; color: var(--support-ink); background: #fff; border: 1px solid #b8ccd5; border-radius: .4rem; font: inherit; font-size: .82rem; line-height: 1.35; }
.support-chat-composer button { display: grid; width: 2.8rem; height: 2.8rem; padding: 0; place-items: center; color: #fff; background: var(--support-navy-900); border: 0; border-radius: .4rem; cursor: pointer; }
.support-chat-composer button:hover { background: var(--support-navy-800); }
.support-chat-composer button:active { transform: translateY(1px); }
.support-chat-composer button svg { width: 1.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.support-chat-composer__error { grid-column: 1 / -1; }

.support-chat-closed { margin: auto 1rem 1rem; padding: 1rem; color: var(--support-slate); background: #f1f6f8; border: 1px solid var(--support-line); }
.support-chat-closed strong,
.support-chat-closed span { display: block; }
.support-chat-closed strong { color: var(--support-ink); font-size: .86rem; }
.support-chat-closed span { margin-top: .3rem; font-size: .74rem; line-height: 1.45; }
.support-chat-closed button { margin-top: .8rem; padding: .6rem .75rem; color: #fff; background: var(--support-navy-900); border: 0; border-radius: .3rem; font-size: .75rem; font-weight: 700; cursor: pointer; }
.support-chat-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

@keyframes support-chat-pulse { 0%, 100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }

@media (max-width: 600px) {
    .support-chat-root { right: .65rem; bottom: .65rem; }
    .support-chat-launcher { width: 3.65rem; height: 3.65rem; }
    .support-chat-panel { position: fixed; inset: .45rem; width: auto; height: auto; min-height: 0; max-height: none; border-radius: .7rem; transform-origin: bottom right; }
    .support-chat-header { min-height: 4.35rem; padding: .72rem .85rem; }
    .support-chat-header__mark { width: 2.35rem; height: 2.35rem; }
    .support-chat-close { width: 2.45rem; height: 2.45rem; }
    .support-chat-intake { padding: .8rem 1rem .9rem; }
    .support-chat-intake__intro { margin-bottom: .7rem; }
    .support-chat-intake__intro h2 { font-size: 1.28rem; }
    .support-chat-intake__intro > span { margin-top: .35rem; line-height: 1.35; }
    .support-chat-intake-form { gap: .62rem; }
    .support-chat-field { gap: .28rem; }
    .support-chat-field input,
    .support-chat-field select { min-height: 2.75rem; padding: .58rem .7rem; }
    .support-chat-turnstile { min-height: 4rem; }
    .support-chat-primary { min-height: 2.8rem; }
}

@media (prefers-reduced-motion: reduce) {
    .support-chat-launcher,
    .support-chat-panel { transition: none; }
    .support-chat-loading span { animation: none; opacity: 1; }
    .support-chat-transcript { scroll-behavior: auto; }
}
