:root{--chat-border:var(--color-muted)}
.chat{position:fixed;z-index:5;right:16px;bottom:calc(var(--chat-visual-bottom,0px) + max(16px,env(safe-area-inset-bottom)));width:min(420px,calc(100vw - 32px));height:min(78vh,720px);height:min(78dvh,720px);max-height:calc(var(--chat-visual-height,100vh) - 24px);display:flex;flex-direction:column;overflow:hidden;padding:0;background:var(--color-bg);color:var(--color-text);border:1px solid var(--chat-border);border-radius:var(--radius-lg)}
.chat[hidden]{display:none}.chat__header,.chat__composer,.chat__composer-footer{padding:12px;display:flex;gap:10px;align-items:center}.chat__header{justify-content:space-between;background:var(--color-surface);flex-shrink:0}.chat__header h2{font-size:1.1rem;margin:0}.chat__messages{padding:12px;overflow:auto;overscroll-behavior:contain;flex:1;min-height:0}.chat__bubble{max-width:92%;padding:10px 12px;margin:8px 0;border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:anywhere}.chat__bubble--assistant{background:var(--color-surface)}.chat__bubble--user{margin-left:auto;background:var(--color-primary);color:var(--color-primaryContrast)}.chat__status{padding:0 12px;margin:0;min-height:1.5em;color:var(--color-muted);overflow-wrap:anywhere}.chat__alert{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.chat__bubble--error{border:1px solid var(--color-danger)}.chat__composer{display:block;flex-shrink:0;border-top:1px solid var(--chat-border)}.chat__composer label{display:block;font-weight:700;margin-bottom:6px}.chat textarea,.chat input,.chat select{font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--chat-border);border-radius:var(--radius-sm);padding:8px;width:100%;min-width:0}.chat textarea{font-size:16px;resize:vertical}.chat__composer-footer{justify-content:space-between;padding:8px 0 0}.chat button{padding:9px 14px;min-height:44px}.chat button:disabled{opacity:.55;cursor:not-allowed}.chat__slot{display:block;margin:6px 0;min-height:44px}.chat__consent label{display:block;min-height:44px;padding:8px 0}.chat__consent input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-inline-end:6px}.chat__privacy-link{display:inline-flex;align-items:center;min-height:44px}.chat__consent-summary,.chat__reset-confirm p{margin:6px 0 10px;color:var(--color-text);font-size:.95rem;line-height:1.5}.chat__reset-confirm{padding:10px 12px;border-top:1px solid var(--chat-border);flex-shrink:0}.chat__reset-confirm[hidden]{display:none}.chat__reset-confirm button{margin:4px 4px 4px 0}.chat__booking-success{border:1px solid var(--chat-border);padding:12px;border-radius:var(--radius-sm)}.chat__retry{display:block;margin-top:10px}.chat__error{color:var(--color-danger);font-weight:600}.chat :is(button,a,input,textarea,select):focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
@media(max-width:380px){.chat{right:8px;width:calc(100vw - 16px);height:min(85vh,720px);height:min(85dvh,720px)}.chat__header,.chat__composer{padding:10px}}
.chat__status{position:absolute;width:1px;height:1px;min-height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
