/* Isolated widget styling. The page outside the chat is never dimmed or blurred. */
.woc-root {
    --woc-primary:#2a7a74; --woc-primary-dark:#1f5f5a; --woc-secondary:#f7f2ea;
    --woc-text:#23323a; --woc-muted:#52646c; --woc-border:rgba(42,122,116,.2);
    color:var(--woc-text); font-family:inherit; font-size:15px; line-height:1.5;
}
.woc-root *, .woc-root *::before, .woc-root *::after { box-sizing:border-box; }
.woc-root [hidden] { display:none !important; }
.woc-root button, .woc-root input, .woc-root textarea, .woc-root select { font:inherit; letter-spacing:normal; text-transform:none; margin:0; }
.woc-root button { cursor:pointer; min-width:0; }
.woc-root button:disabled { cursor:default; opacity:.6; }
.woc-root button:focus-visible, .woc-root textarea:focus-visible, .woc-root select:focus-visible, .woc-root a:focus-visible, .woc-root input:focus-visible { outline:3px solid var(--woc-primary-dark); outline-offset:3px; }
.woc-floating-wrap { position:fixed; right:24px; bottom:max(24px,env(safe-area-inset-bottom)); z-index:99990; width:66px; height:66px; }
.woc-root .woc-fab { display:flex; align-items:center; justify-content:center; width:66px; height:66px; padding:0; border:0; border-radius:50%; background:linear-gradient(135deg,var(--woc-primary),var(--woc-primary-dark)); color:#fff; box-shadow:0 12px 30px rgba(31,95,90,.28); }
.woc-root .woc-fab:hover { background:var(--woc-primary-dark); }
.woc-chatbot { display:flex; flex-direction:column; min-width:0; overflow:hidden; color:var(--woc-text); background:#fff; border:1px solid var(--woc-border); border-radius:22px; box-shadow:0 18px 48px rgba(23,48,54,.18); }
.woc-chatbot--floating { position:absolute; right:0; bottom:80px; width:430px; max-width:calc(100vw - 48px); height:610px; max-height:calc(100vh - 128px); max-height:calc(100dvh - 128px); }
.woc-chatbot--embedded { width:100%; max-width:760px; height:660px; max-height:85vh; }
.woc-header { display:flex; flex-shrink:0; align-items:center; justify-content:space-between; gap:12px; padding:13px 16px; background:linear-gradient(135deg,var(--woc-secondary),#fffdfa); border-bottom:1px solid var(--woc-border); }
.woc-header-badge { display:flex; align-items:center; gap:12px; min-width:0; font-size:15px; font-weight:700; color:var(--woc-primary-dark); }
.woc-header-dot { width:9px; height:9px; border-radius:50%; background:var(--woc-primary); box-shadow:0 0 0 4px rgba(42,122,116,.12); flex:0 0 auto; }
.woc-header-actions { display:flex; flex:0 0 auto; gap:4px; }
.woc-root .woc-close, .woc-root .woc-clear { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border:0; border-radius:10px; background:transparent; color:var(--woc-primary-dark); padding:0; font-size:26px; line-height:1; }
.woc-root .woc-close:hover, .woc-root .woc-clear:hover { background:#e4f1ef; }
.woc-language-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 15px; flex-shrink:0; border-bottom:1px solid var(--woc-border); font-size:12px; color:var(--woc-muted); }
.woc-root .woc-language { max-width:190px; min-height:32px; height:auto; width:auto; padding:3px 7px; color:var(--woc-text); background:#fff; border:1px solid var(--woc-border); border-radius:8px; }
.woc-messages { padding:16px; display:flex; flex-direction:column; flex:1 1 auto; min-height:0; gap:12px; overflow:auto; overscroll-behavior:contain; background:#fff; }
.woc-message { padding:12px 14px; border-radius:16px; max-width:94%; line-height:1.55; font-size:14px; flex-shrink:0; overflow-wrap:anywhere; }
.woc-message-text, .woc-welcome { white-space:pre-wrap; }
.woc-bot { background:#f4faf8; border:1px solid rgba(42,122,116,.12); align-self:flex-start; }
.woc-user { background:#e4f1ef; border:1px solid rgba(42,122,116,.12); align-self:flex-end; }
.woc-status { font-size:12px; color:var(--woc-muted); padding:0 16px; flex-shrink:0; }
.woc-status:not(:empty) { padding-bottom:10px; }
.woc-form { display:flex; align-items:flex-end; flex-shrink:0; gap:8px; padding:12px; background:#fffdfa; border-top:1px solid var(--woc-border); margin:0; }
.woc-root .woc-input { flex:1; display:block; width:100%; min-width:0; resize:vertical; min-height:62px; max-height:130px; padding:10px 12px; border:1px solid var(--woc-border); border-radius:12px; background:#fff; color:var(--woc-text); line-height:1.4; font-size:16px; }
.woc-send-actions { display:flex; flex-direction:column; gap:6px; flex-shrink:0; }
.woc-root .woc-send, .woc-root .woc-mic { border:0; border-radius:10px; background:var(--woc-primary); color:#fff; padding:8px 12px; min-height:38px; font-weight:600; display:flex; justify-content:center; align-items:center; }
.woc-root .woc-send:hover, .woc-root .woc-mic:hover { background:var(--woc-primary-dark); }
.woc-root .woc-mic { background:#e4f1ef; color:var(--woc-primary-dark); }
.woc-root .woc-mic[aria-pressed="true"] { background:#a22e36; color:white; }
.woc-root .woc-mic:hover { color:white; }
.woc-sources { display:flex; flex-direction:column; margin-top:10px; gap:4px; font-size:12px; white-space:normal; }
.woc-root .woc-sources a, .woc-root .woc-privacy a { color:var(--woc-primary-dark); text-decoration:underline; }
.woc-root .woc-privacy { margin:0; padding:8px 13px 12px; background:#fffdfa; color:var(--woc-muted); font-size:11px; line-height:1.45; flex-shrink:0; }
.woc-voice-info { margin:0; padding:6px 14px; flex-shrink:0; font-size:11px; line-height:1.45; background:#f7f2ea; max-height:155px; overflow:auto; }
.woc-voice-info summary { cursor:pointer; }
.woc-voice-info p { margin:6px 0; font-size:11px; }
.woc-voice-info input { width:auto; height:auto; }
.woc-voice-info label { display:block; font-size:11px; }
.woc-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:640px) {
    .woc-floating-wrap { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); }
    .woc-chatbot--floating { width:430px; max-width:calc(100vw - 32px); max-height:calc(100vh - 115px); max-height:calc(100dvh - 115px); }
    .woc-hide-mobile { display:none !important; }
    .woc-message { max-width:98%; }
}
@media(max-height:540px) {
    .woc-chatbot--floating { bottom:0; right:78px; max-width:calc(100vw - 120px); max-height:calc(100vh - 42px); max-height:calc(100dvh - 42px); }
    .woc-header { padding-top:6px; padding-bottom:6px; }
    .woc-privacy { font-size:10px; padding-top:4px; padding-bottom:6px; }
}
.woc-root .woc-privacy a, .woc-root .woc-sources a { font:inherit; }
/* 2.1.0: configurable privacy notice and static, user-initiated contact handoff. */
.woc-root .woc-privacy { max-height:125px; overflow:auto; overscroll-behavior:contain; }
.woc-privacy-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.woc-chat-consent-row { display:flex; align-items:flex-start; gap:7px; padding-top:6px; font-size:12px; }
.woc-chat-consent-row input { width:17px; height:17px; flex:0 0 17px; margin-top:1px; }
.woc-handoff { margin-top:12px; padding-top:12px; border-top:1px solid var(--woc-border); }
.woc-handoff p { font-size:13px; margin:5px 0 10px; white-space:pre-wrap; }
.woc-contact { display:flex; flex-direction:column; gap:6px; margin-top:10px; font-size:13px; }
.woc-root .woc-contact a { display:block; padding:7px 10px; border:1px solid var(--woc-border); border-radius:9px; background:#fff; color:var(--woc-primary-dark); text-decoration:underline; font:inherit; overflow-wrap:anywhere; }
@media(max-height:540px) { .woc-root .woc-privacy { max-height:75px; } }
@media(max-height:540px) {
    .woc-root .woc-form { padding:7px 10px; align-items:center; }
    .woc-root .woc-input { min-height:40px; height:42px; max-height:56px; padding:7px 10px; }
    .woc-send-actions { flex-direction:row; }
    .woc-language-row { padding:4px 12px; }
    .woc-root .woc-privacy { max-height:62px; }
    .woc-voice-info { max-height:70px; padding-top:3px; padding-bottom:3px; }
}
