.ca-support {
    position: fixed;
    right: max(20px, env(safe-area-inset-right));
    bottom: max(20px, env(safe-area-inset-bottom));
    z-index: 1035;
    color: #173633;
    font-size: 14px;
    line-height: 1.5;
}
.ca-support[hidden], .ca-support [hidden] { display: none !important; }
.ca-support button { font: inherit; cursor: pointer; }
.ca-support button:focus-visible { outline: 3px solid #e39437; outline-offset: 3px; }
.ca-support .ca-support-launch {
    touch-action: none;
    cursor: grab;
    user-select: none;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 1px solid #27665f;
    border-radius: 999px;
    padding: 10px 17px;
    background: #0e4b44;
    color: #fff;
    box-shadow: 0 6px 22px rgba(12, 56, 51, .26);
    font-weight: 700;
    white-space: nowrap;
}
.ca-support .ca-support-launch:active { cursor: grabbing; }
.ca-support-launch svg { width: 22px; height: 22px; }
.ca-support-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 12px);
    width: min(380px, calc(100vw - 40px));
    max-height: calc(100vh - 100px);
    max-height: calc(100dvh - 100px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #d4e3df;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 48px rgba(12, 56, 51, .22);
}
.ca-support-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex: 0 0 auto;
    padding: 10px 15px 10px 19px;
    background: #0e4b44;
    color: #fff;
}
.ca-support-head h2 { margin: 0; color: inherit; font-size: 17px; font-weight: 700; }
.ca-support .ca-support-close {
    width: 33px;
    height: 33px;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 9px;
    background: transparent;
    color: inherit;
    font-size: 23px;
    line-height: 1;
}
.ca-support-body { overflow-y: auto; overscroll-behavior: contain; padding: 16px 18px; }
.ca-support-chat {
    display: flex;
    flex-direction: column;
    gap: 7px;
    max-height: min(220px, 29vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 2px 3px 8px;
    scrollbar-width: thin;
}
.ca-support-bubble {
    align-self: flex-start;
    max-width: 94%;
    margin: 0;
    padding: 8px 11px;
    border-radius: 3px 12px 12px;
    background: #edf6f3;
    overflow-wrap: anywhere;
}
.ca-support-bubble.is-user {
    align-self: flex-end;
    border-radius: 12px 3px 12px 12px;
    background: #0e4b44;
    color: #fff;
}
.ca-support-choices { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 9px; }
.ca-support-choices button, .ca-support .ca-support-contact {
    border: 1px solid #cbded9;
    border-radius: 9px;
    background: #f4f9f7;
    color: #174a42;
    padding: 6px 10px;
    text-align: start;
}
.ca-support-choices button:hover, .ca-support .ca-support-contact:hover {
    background: #e1f0eb;
    border-color: #83b7ad;
}
.ca-support-choice-form { display: flex; align-items: center; gap: 8px; }
.ca-support-choice-form input { flex: 1; min-width: 0; }
.ca-support .ca-support-contact { margin-top: 14px; font-weight: 700; }
.ca-support-form { margin-top: 14px; }
.ca-support-form fieldset { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.ca-support-form label { display: grid; gap: 3px; font-weight: 650; }
.ca-support-choice-form input, .ca-support-form input, .ca-support-form textarea {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid #cadbd8;
    border-radius: 8px;
    padding: 7px 10px;
    background: #fff;
    color: #173633;
    font: inherit;
    font-weight: 400;
}
.ca-support-choice-form input:focus, .ca-support-form input:focus, .ca-support-form textarea:focus {
    border-color: #3e877c;
    outline: 2px solid #bee1da;
}
.ca-support-form textarea { resize: vertical; min-height: 84px; }
.ca-support-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ca-support .ca-support-send {
    justify-self: end;
    border: 0;
    border-radius: 9px;
    padding: 8px 14px;
    background: #0e4b44;
    color: #fff;
    font-weight: 700;
}
.ca-support .ca-support-send:disabled { opacity: .6; cursor: wait; }
.ca-support-status { margin: 0; }
.ca-support-status:not(:empty) { margin-top: 8px; color: #216b52; }
.ca-support-status[data-error="true"] { color: #982b21; }
.ca-support-replies { margin-top: 13px; border-top: 1px solid #d4e3df; padding-top: 10px; }
.ca-support-replies summary { cursor: pointer; color: #174a42; font-weight: 700; }
.ca-support-lookup-status { margin: 8px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ca-support-lookup-status:empty { display: none; }
@media (max-width: 500px) {
    .ca-support { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); }
    .ca-support-panel { width: min(380px, calc(100vw - 24px)); }
}
