.nsab-chat-toggle{position:fixed;right:22px;bottom:22px;z-index:9998;border:0;border-radius:999px;background:#203e32;color:#fff;padding:14px 20px;box-shadow:0 8px 28px #0003;font:600 15px/1.2 system-ui,sans-serif;cursor:pointer}
.nsab-chat-toggle:hover,.nsab-chat-toggle:focus-visible{background:#315847}
.nsab-chat-panel{position:fixed;right:22px;bottom:var(--nsab-panel-bottom,78px);width:min(390px,calc(100vw - 28px));height:min(620px,calc(100dvh - var(--nsab-panel-bottom,78px) - 16px));z-index:9999;display:flex;flex-direction:column;background:#fff;color:#20342b;border:1px solid #d7e1d9;border-radius:16px;box-shadow:0 15px 45px #0004;overflow:hidden;font:14px/1.45 system-ui,sans-serif}
.nsab-chat-panel[hidden]{display:none}
.nsab-chat-header{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;background:#203e32;color:#fff}
.nsab-chat-close{border:1px solid #ffffff80;border-radius:7px;background:transparent;color:#fff;padding:5px 9px;cursor:pointer}
.nsab-chat-transcript{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:11px}
.nsab-chat-message{max-width:92%;padding:10px 12px;border-radius:12px;background:#edf4ef;white-space:pre-wrap;overflow-wrap:anywhere}
.nsab-chat-message.is-user{align-self:flex-end;background:#d8e8dc}
.nsab-chat-compose{display:flex;gap:6px;padding:10px 12px;border-top:1px solid #e3e9e4}
.nsab-chat-compose input{flex:1;min-width:0;border:1px solid #b7c7ba;border-radius:7px;padding:10px;color:#20342b;background:#fff}
.nsab-chat-compose button,.nsab-chat-booking button{border:0;border-radius:7px;background:#203e32;color:#fff;padding:10px 14px;cursor:pointer}
.nsab-chat-compose button:disabled,.nsab-chat-booking button:disabled{opacity:.6;cursor:wait}
.nsab-chat-disclosure{padding:0 13px 10px;margin:0;color:#596a60;font-size:11px}
.nsab-chat-disclosure a,.nsab-chat-source{color:#1a5f4a}
.nsab-chat-source{font-size:12px}
.nsab-chat-slot{align-self:flex-start;text-align:left;border:1px solid #8eae99;border-radius:8px;background:#fff;color:#203e32;padding:9px 11px;cursor:pointer}
.nsab-chat-slot:hover,.nsab-chat-slot:focus-visible{background:#edf4ef}
.nsab-chat-booking{display:flex;flex-direction:column;gap:9px;border:1px solid #8eae99;border-radius:10px;padding:12px}
.nsab-chat-booking p{margin:0}
.nsab-chat-booking label{display:flex;flex-direction:column;gap:4px}
.nsab-chat-booking input{border:1px solid #b7c7ba;border-radius:6px;padding:8px}
@media(max-width:480px){.nsab-chat-panel{right:8px;bottom:var(--nsab-panel-bottom,74px);width:calc(100vw - 16px);height:calc(100dvh - var(--nsab-panel-bottom,74px) - 16px)}.nsab-chat-toggle{right:10px;bottom:10px}}

.nsab-chat-toggle[hidden]{display:none!important}
.nsab-chat-panel.has-external-launcher{--nsab-panel-bottom:22px}
body.nsab-chat-external-open .yiexian-floating-actions{visibility:hidden;pointer-events:none}
.nsab-chat-panel :focus-visible{outline:3px solid #799c83;outline-offset:3px}
@media(max-width:480px){.nsab-chat-panel.has-external-launcher{--nsab-panel-bottom:8px}}
