/* Public visitor panel. The scrollable content and reachable controls are separate. */
.chat-launch{position:fixed;right:1rem;bottom:1rem;z-index:80;border-radius:2rem;box-shadow:0 4px 18px #17372d22;max-width:calc(100vw - 2rem)}
.chat-panel{position:fixed;right:1rem;bottom:5rem;z-index:81;display:flex;flex-direction:column;box-sizing:border-box;width:min(420px,calc(100vw - 2rem));height:min(720px,calc(100dvh - 7rem));overflow:hidden;background:#f5f8f6;border:1px solid #d7e3dc;border-radius:20px;box-shadow:0 12px 45px #17372d26;color:#18372d}
.chat-panel[hidden],.chat-panel [hidden]{display:none}
.chat-header{display:flex;align-items:center;flex-shrink:0;padding:1.15rem 1rem .9rem;background:#fff;border-bottom:1px solid #e3ebe6}
.chat-panel .chat-header h2{font-size:1.25rem;letter-spacing:-.025em;margin:0}
.chat-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:1rem;gap:.6rem}
.chat-panel p{font-size:.95rem;line-height:1.5;margin:0 0 .5rem}
.chat-panel label,.chat-panel input,.chat-panel textarea{display:block;width:100%}
.chat-panel input,.chat-panel textarea{box-sizing:border-box;border:1px solid #c5d6cd;border-radius:12px;background:#fff;color:#18372d;font:inherit;font-size:16px;padding:.75rem;box-shadow:none}
.chat-panel input:focus-visible,.chat-panel textarea:focus-visible{outline:2px solid #2b6373;outline-offset:2px}
.chat-panel button{min-height:44px;font-size:.95rem;border-radius:12px}
.chat-panel button:focus-visible,.chat-panel a:focus-visible{outline:2px solid #2b6373;outline-offset:3px}
.chat-panel button:disabled{opacity:.55;cursor:wait}
.chat-panel .button{justify-content:center;box-shadow:none}
.chat-panel .button.secondary{background:#eef4f0;color:#234c3d;border:1px solid #d7e3dc}
.chat-panel .button.secondary:hover{background:#e3ece6}
.chat-conversation{display:flex;flex-direction:column;flex:1;min-height:0}
.chat-panel .chat-messages{max-height:32dvh;overflow:auto;overscroll-behavior:contain;padding:.25rem;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-conversation>.chat-messages{flex:1;min-height:0;max-height:none;padding:.25rem .1rem .5rem}
.chat-panel .chat-message{padding:.75rem .9rem;border-radius:16px;background:#fff;border:1px solid #e2ebe5;margin:.65rem 0;max-width:92%;box-shadow:0 2px 4px #17372d05}
.chat-panel .chat-message[data-sender=visitor]{background:#20596b;color:#fff;border-color:#20596b;margin-left:auto;border-bottom-right-radius:5px}
.chat-panel .chat-message[data-sender=volunteer]{border-bottom-left-radius:5px}
.chat-panel .chat-message small{display:block;font-size:.72rem;line-height:1.4;color:#587063;margin-bottom:.35rem}
.chat-panel .chat-message[data-sender=visitor] small{color:#d5e9ec}
.chat-panel .chat-message p{margin:0}
.chat-panel .chat-message[data-sender=system]:not([data-kind=help]){max-width:100%;padding:.35rem .5rem;background:transparent;border:0;box-shadow:none;color:#587063;font-size:.82rem}
.chat-panel .chat-message[data-sender=system]:not([data-kind=help]) p{font-size:.82rem}
.chat-panel .chat-message[data-kind=help]{border:2px solid #526e61;background:#fffaf0;max-width:100%}
.chat-muted{font-size:.85rem;color:#587063}
.chat-dock{flex-shrink:0;padding:.75rem 1rem .65rem;border-top:1px solid #dce7df;background:#fff;box-shadow:0 -5px 18px #17372d06}
.chat-dock>p{font-size:.8rem;color:#587063;margin-bottom:.4rem}
.chat-compose-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:end}
.chat-compose-form textarea{height:62px;min-height:56px;max-height:120px;resize:vertical;line-height:1.35}
.chat-compose-form .button{height:56px;min-width:78px;padding:.65rem .8rem}
.chat-dock-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem}
.chat-dock-actions>.button{flex:1;min-width:0;padding:.5rem .8rem}
.chat-dock-actions>button[aria-controls=chat-leave-form]{flex:1}
.chat-dock-actions>.chat-close{margin-left:auto}
.chat-start-form>.button,.chat-dock>button[form=chat-leave-form]{width:100%}
.chat-start-form altcha-widget{display:block;margin-bottom:.6rem}
.chat-panel .chat-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid #d7e3dc;border-radius:50%;background:#f3f7f4;color:#234c3d;font:inherit;font-size:1.8rem;line-height:1;cursor:pointer}
.chat-panel .chat-close:hover{background:#e3ece6}
.chat-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:.35rem 0}
.chat-panel .chat-actions a{font-size:.85rem;color:#2b6373;text-underline-offset:3px}
.chat-information{font-size:.82rem;color:#587063;margin-top:auto;flex-shrink:0}
.chat-information summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:none;font-size:.82rem}
.chat-information[open]{margin-top:.5rem}
.chat-information p{font-size:.85rem}
.chat-panel [role=alert]:empty,.chat-panel .chat-muted:empty{display:none}
.chat-leave{flex-shrink:0}
.chat-leave label{font-size:.9rem;font-weight:600;margin-bottom:.35rem}
.chat-leave input,.chat-leave textarea{margin:0 0 .9rem}
.chat-leave textarea{min-height:130px;resize:vertical}
.chat-leave [role=status]{font-size:.95rem}
.chat-leave altcha-widget{display:block;margin:.5rem 0}
@media(max-width:600px){
 .chat-panel{right:.5rem;top:calc(var(--chat-viewport-top,0px) + max(.5rem,env(safe-area-inset-top)));bottom:auto;width:calc(100vw - 1rem);height:calc(var(--chat-viewport-height,100dvh) - max(.5rem,env(safe-area-inset-top)) - max(.5rem,env(safe-area-inset-bottom)));border-radius:18px}
 .chat-launch[aria-expanded=true]{display:none}
 .chat-launch{right:.5rem;bottom:max(.5rem,env(safe-area-inset-bottom))}
 .chat-header{padding:.9rem .85rem .8rem}
 .chat-content{padding:.8rem .85rem}
 .chat-dock{padding:.65rem .75rem .6rem}
}
@media(prefers-reduced-motion:reduce){.chat-panel *{scroll-behavior:auto}}

/* Volunteer and administrator views retain their existing layout. */
.chat-card{border:1px solid #cddbd3;border-radius:12px;padding:1rem;margin:1rem 0;max-width:760px}.chat-card textarea{width:100%;min-height:90px}.chat-card select{max-width:100%}#chat-console input,#chat-console select,#chat-console textarea{max-width:100%}#chat-console button{min-height:44px}#chat-report-evidence{white-space:pre-wrap;overflow-wrap:anywhere}.chat-volunteer{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;padding:.6rem;border-bottom:1px solid #dde5df}#chat-invite{overflow-wrap:anywhere}#chat-settings{max-width:700px}#chat-settings textarea{width:100%;min-height:90px}#chat-settings label{display:block;margin:.75rem 0}#chat-hours{max-height:16rem;overflow:auto}#chat-error:empty{display:none}#chat-console input[type=checkbox]{display:inline-block;width:auto;margin-right:.5rem}#chat-console label:has(input[type=checkbox]){display:inline-flex;align-items:center;gap:.4rem}

.chat-card .chat-message{padding:.65rem;border-radius:10px;background:#f2f5f3;margin:.5rem 0}.chat-card .chat-message[data-sender=visitor]{background:#e6efe9}.chat-card .chat-message[data-kind=help]{border:2px solid #526e61}.chat-card .chat-message small{display:block;font-size:.75rem;color:#4f6259}.chat-card .chat-message p{margin:.3rem 0}

.chat-card .chat-messages{max-height:32dvh;overflow:auto;overscroll-behavior:contain;padding:.3rem;white-space:pre-wrap;overflow-wrap:anywhere}

.chat-panel .chat-sound{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid #d7e3dc;border-radius:50%;background:#f3f7f4;color:#234c3d;font-size:1.4rem;cursor:pointer}.chat-panel .chat-sound[aria-pressed=false]{color:#76857c;text-decoration:line-through}.chat-panel .chat-invitation{font-size:1.15rem;font-weight:600;line-height:1.45}
