/* Scoped styles. The link works without JavaScript or icon fonts. */
#wa-float-button {
    position: fixed;
    z-index: 999999;
    bottom: calc(var(--wa-margin-vertical, 20px) + env(safe-area-inset-bottom, 0px));
    width: var(--wa-button-size, 60px);
    height: var(--wa-button-size, 60px);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    opacity: 1;
    visibility: visible;
    background: var(--wa-background-color, #25d366);
    color: var(--wa-icon-color, #fff);
    border: var(--wa-border-width, 0px) solid var(--wa-border-color, #000);
    border-radius: var(--wa-border-radius, 50%);
    box-shadow: 0 4px 12px rgba(0,0,0,.2);
    text-decoration: none;
    line-height: 1;
    transition: transform .2s ease, box-shadow .2s ease;
}
#wa-float-button.wa-float-position-right {
    right: calc(var(--wa-margin-horizontal, 20px) + env(safe-area-inset-right, 0px));
    left: auto;
}
#wa-float-button.wa-float-position-left {
    left: calc(var(--wa-margin-horizontal, 20px) + env(safe-area-inset-left, 0px));
    right: auto;
}
#wa-float-button svg { width: 65%; height: 65%; fill: currentColor; display: block; pointer-events: none; }
#wa-float-button:focus-visible { outline: 3px solid #111; outline-offset: 4px; box-shadow: 0 0 0 4px #fff; }
@media (hover: hover) {
    #wa-float-button:hover { transform: scale(var(--wa-hover-scale, 1.1)); box-shadow: 0 6px 20px rgba(0,0,0,.3); }
}
@media (prefers-reduced-motion: reduce) {
    #wa-float-button { transition: none; }
    #wa-float-button:hover { transform: none; }
}

/* Native dialog/top layer avoids theme z-index conflicts. No global font reset. */
dialog.wa-modal {
    --wam-background:#fff; --wam-text:#173b36; --wam-field-background:#f6f8f9;
    --wam-border:#d9e3e5; --wam-selected-background:#4d8993; --wam-selected-text:#fff;
    --wam-button-background:#4d8993; --wam-button-text:#fff; --wam-overlay-rgb:16,36,33;
    --wam-overlay-opacity:.55; --wam-radius:24px; --wam-max-width:620px; --wam-padding:24px;
    background:var(--wam-background); color:var(--wam-text); border:0; border-radius:var(--wam-radius);
    padding:0; margin:auto; width:calc(100% - 32px); max-width:var(--wam-max-width);
    max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); box-shadow:0 24px 80px #0004;
    font-size:16px; line-height:1.5; text-align:left; overflow:hidden; box-sizing:border-box;
}
dialog.wa-modal[open] { display:flex; flex-direction:column; }
dialog.wa-modal::backdrop { background:rgba(var(--wam-overlay-rgb),var(--wam-overlay-opacity)); }
.wa-modal *, .wa-modal *::before, .wa-modal *::after { box-sizing:border-box; }
.wa-modal [hidden] { display:none !important; }
.wa-modal button, .wa-modal input, .wa-modal select, .wa-modal textarea, .wa-modal a { font-family:inherit; font-size:inherit; letter-spacing:normal; text-transform:none; }
.wa-modal .wam-header { position:relative; flex:0 0 auto; padding:var(--wam-padding); padding-right:calc(var(--wam-padding) + 40px); border-bottom:1px solid var(--wam-border); }
.wa-modal .wam-title { margin:0; padding:0; font-family:inherit; color:inherit; font-size:clamp(1.3rem,4vw,1.8rem); line-height:1.2; font-weight:700; }
.wa-modal .wam-description { color:inherit; font-size:.95em; line-height:1.4; margin:.55em 0 0; }
.wa-modal .wam-close { position:absolute; top:16px; right:12px; width:40px; height:40px; padding:0; display:grid; place-items:center; color:inherit; background:var(--wam-field-background); border:1px solid var(--wam-border); border-radius:50%; font-size:28px; line-height:1; cursor:pointer; box-shadow:none; }
.wa-modal .wam-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:var(--wam-padding); flex:1 1 auto; }
.wa-modal .wam-form { margin:0; padding:0; }
.wa-modal .wam-question { margin:0 0 1.4em; padding:0; border:0; min-width:0; }
.wa-modal .wam-question legend { display:block; float:none; width:100%; margin:0 0 .65em; padding:0; font:inherit; font-weight:600; color:inherit; }
.wa-modal .wam-choices { display:flex; gap:.5em; flex-wrap:wrap; }
.wa-modal .wam-choice { display:inline-flex; position:relative; padding:0; margin:0; font:inherit; cursor:pointer; }
.wa-modal .wam-choice input { position:absolute; opacity:0; width:1px; height:1px; margin:0; }
.wa-modal .wam-choice span { display:block; padding:.65em 1em; border:1px solid var(--wam-border); border-radius:30px; background:var(--wam-field-background); color:var(--wam-text); line-height:1.3; overflow-wrap:anywhere; }
.wa-modal .wam-choice:hover span { box-shadow:inset 0 0 0 1px var(--wam-text); }
.wa-modal .wam-choice input:checked + span { color:var(--wam-selected-text); background:var(--wam-selected-background); border-color:var(--wam-selected-background); }
.wa-modal .wam-choice input:focus-visible + span { outline:2px solid var(--wam-text); outline-offset:3px; }
.wa-modal .wam-input { display:block; width:100%; min-height:44px; height:auto; padding:.7em .9em; color:var(--wam-text); background:var(--wam-field-background); border:1px solid var(--wam-border); border-radius:10px; box-shadow:none; font-size:16px; line-height:1.5; }
.wa-modal textarea.wam-input { resize:vertical; }
.wa-modal .wam-question > .wam-input { margin-top:.6em; }
.wa-modal .wam-input::placeholder { color:inherit; opacity:.65; }
.wa-modal .wam-clear { border:0; box-shadow:none; padding:.3em 0; margin-top:.35em; background:transparent; color:var(--wam-text); text-decoration:underline; font-size:.8em; cursor:pointer; }
.wa-modal .wam-preview { border:1px solid var(--wam-border); border-radius:12px; padding:1em; background:var(--wam-field-background); }
.wa-modal .wam-preview summary { cursor:pointer; font-size:.85em; font-weight:600; }
.wa-modal .wam-message { white-space:pre-wrap; overflow-wrap:anywhere; margin:.75em 0 0; color:inherit; }
.wa-modal .wam-footer { flex:0 0 auto; padding:16px var(--wam-padding); border-top:1px solid var(--wam-border); background:var(--wam-background); }
.wa-modal .wam-status { margin:0 0 .45em; font-size:.85em; color:inherit; }
.wa-modal .wam-status::before { content:''; display:inline-block; width:.6em; height:.6em; border-radius:50%; margin-right:.45em; background:#87949b; }
.wa-modal .wam-open::before { background:#15994b; }
.wa-modal .wam-note { font-size:.8em; line-height:1.35; margin:0 0 .75em; color:inherit; }
.wa-modal .wam-send { display:block; padding:.8em 1em; text-align:center; border:1px solid var(--wam-button-background); border-radius:12px; color:var(--wam-button-text); background:var(--wam-button-background); font-weight:600; text-decoration:none; line-height:1.4; }
.wa-modal .wam-send:hover { color:var(--wam-button-text); filter:brightness(.95); }
.wa-modal .wam-skip { display:block; font-size:.8em; text-align:center; margin:.6em 0 0; color:var(--wam-text); text-decoration:underline; }
.wa-modal .wam-call { margin:.65em 0 0; text-align:center; color:inherit; font-size:.9em; }
.wa-modal .wam-call a { color:inherit; text-decoration:underline; white-space:nowrap; }
.wa-modal .wam-error { margin:.5em 0 0; font-size:.85em; color:inherit; font-weight:600; }
.wa-modal .wam-error:empty { display:none; }
.wa-modal .wam-help, .wa-modal .wam-privacy { font-size:.85em; margin:.5em 0; color:inherit; }
.wa-modal .wam-privacy a { color:inherit; text-decoration:underline; }
.wa-modal .wam-privacy-title { font-family:inherit; font-size:1em; font-weight:600; line-height:1.4; color:inherit; margin:0 0 .3em; }
.wa-modal .wam-field-error { font-size:.85em; margin:.4em 0 0; font-weight:600; color:inherit; }
.wa-modal .wam-submit-note { font-size:.75em; line-height:1.35; margin:.6em 0 0; color:inherit; }
#wa-float-button.wa-float-labeled { width:auto; max-width:calc(100vw - 40px); padding:0 18px; gap:8px; border-radius:999px; font-family:inherit; }
#wa-float-button.wa-float-labeled svg { width:calc(var(--wa-button-size,60px) * .6); height:calc(var(--wa-button-size,60px) * .6); flex-shrink:0; }
#wa-float-button .wa-float-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; font-weight:600; line-height:1.3; }
.wa-modal a:focus-visible, .wa-modal button:focus-visible, .wa-modal .wam-input:focus-visible { outline:2px solid var(--wam-text); outline-offset:3px; }
@media(max-width:600px) {
    dialog.wa-modal { width:100%; max-width:100%; margin:auto 0 0; max-height:92vh; max-height:92dvh; border-radius:var(--wam-radius) var(--wam-radius) 0 0; }
    .wa-modal .wam-header { padding:18px 56px 16px 18px; }
    .wa-modal .wam-body { padding:18px; }
    .wa-modal .wam-footer { padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px)); }
    .wa-modal .wam-choice span { padding:.6em .8em; }
}
@media(max-height:560px) { .wa-modal .wam-description, .wa-modal .wam-note { display:none; } }
