.ns-chat { --ns-chat-accent: #2457d6; --ns-chat-bg: #fff; --ns-chat-text: #1d2433; font: inherit; color: var(--ns-chat-text); }
.ns-chat[hidden], .ns-chat__panel[hidden] { display: none !important; }
.ns-chat--floating { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1050; }
.ns-chat__launcher { display: inline-flex; align-items: center; gap: .5rem; border: 0; border-radius: 999px; padding: .8rem 1rem; background: var(--ns-chat-accent); color: #fff; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.ns-chat__panel { width: min(380px, calc(100vw - 2rem)); height: min(580px, calc(100vh - 7rem)); display: flex; flex-direction: column; overflow: hidden; background: var(--ns-chat-bg); border: 1px solid rgba(0,0,0,.12); border-radius: 1rem; box-shadow: 0 18px 50px rgba(0,0,0,.2); }
.ns-chat--floating .ns-chat__panel { position: absolute; right: 0; bottom: 4.25rem; }
.ns-chat__header { display: flex; align-items: center; justify-content: space-between; padding: 1rem; background: var(--ns-chat-accent); color: #fff; }
.ns-chat__close { border: 0; background: transparent; color: inherit; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.ns-chat__messages { flex: 1; overflow-y: auto; padding: 1rem; background: #f4f6fa; }
.ns-chat__message { display: flex; margin-bottom: .75rem; }
.ns-chat__message--user { justify-content: flex-end; }
.ns-chat__bubble { max-width: 85%; padding: .7rem .85rem; border-radius: .9rem; white-space: pre-wrap; overflow-wrap: anywhere; background: #fff; border: 1px solid rgba(0,0,0,.08); }
.ns-chat__message--user .ns-chat__bubble { background: var(--ns-chat-accent); color: #fff; border-color: transparent; }
.ns-chat__status { min-height: 1.6rem; padding: .25rem 1rem; font-size: .85rem; color: #a13131; background: #fff; }
.ns-chat.is-busy .ns-chat__status { color: #555; }
.ns-chat__form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; padding: .75rem; background: #fff; border-top: 1px solid rgba(0,0,0,.08); }
.ns-chat__input { min-width: 0; resize: none; border: 1px solid #b8bfcc; border-radius: .6rem; padding: .65rem .75rem; font: inherit; }
.ns-chat__send { align-self: stretch; border: 0; border-radius: .6rem; padding: .65rem .9rem; background: var(--ns-chat-accent); color: #fff; cursor: pointer; }
.ns-chat__send:disabled, .ns-chat__input:disabled { opacity: .65; cursor: wait; }
.ns-chat__privacy { margin: 0; padding: 0 .75rem .75rem; font-size: .75rem; line-height: 1.35; color: #656b77; background: #fff; }
@media (max-width: 520px) { .ns-chat--floating { right: .75rem; bottom: .75rem; } .ns-chat--floating .ns-chat__panel { position: fixed; inset: .75rem; width: auto; height: auto; } }
