.chat-dock{position:fixed;right:20px;bottom:18px;z-index:65;display:flex;align-items:flex-end;gap:16px;color:var(--ink);font:14px/1.6 Manrope,Arial,sans-serif;pointer-events:none}
.chat-dock [hidden]{display:none!important}.chat-dock button,.chat-dock input,.chat-dock textarea{font:inherit}.chat-dock button{cursor:pointer}.chat-dock button:disabled{cursor:default;opacity:.55}.chat-dock button:focus-visible,.chat-dock a:focus-visible,.chat-dock label:focus-within{outline:2px solid var(--accent-ink);outline-offset:3px}.chat-dock .icon{width:18px;height:18px;flex:none}
.dock-rail{display:flex;align-items:center;flex-direction:column;gap:12px;pointer-events:auto}.dock-bubbles{display:flex;flex-direction:column;gap:10px}.dock-launcher,.dock-bubble{position:relative;display:grid;place-items:center;border:0;border-radius:50%;padding:0;width:52px;height:52px;box-shadow:0 5px 18px #30323a26;background:var(--surface,#fff);color:var(--accent-ink)}.dock-launcher{background:var(--accent);color:var(--accent-on);width:54px;height:54px}.dock-launcher>.icon{width:25px;height:25px}.dock-launcher:hover{background:var(--coral-hover)}.dock-bubble:hover{background:var(--surface-hover)}.dock-bubble.is-open{outline:2px solid var(--accent-ink);outline-offset:3px}.dock-bubble .avatar{width:100%;height:100%;border-radius:50%;font-size:14px}.dock-bubble .avatar img{width:100%;height:100%;object-fit:cover}.dock-channel-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--surface-muted);color:var(--accent-ink);flex:none}.dock-count,.dock-row-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;background:#a32d40;color:#fff;border-radius:7px;font-size:12px;font-weight:700;line-height:1}.dock-count{position:absolute;right:-3px;top:-4px}.dock-row-count{flex:none}
.dock-panels{display:flex;align-items:flex-end;gap:12px}.dock-panel,.dock-inbox{pointer-events:auto;background:var(--surface,#fff);border-radius:16px;box-shadow:0 12px 42px #30323a2e;overflow:hidden;width:348px}.dock-panel{position:relative;height:min(530px,calc(100dvh - 100px));display:flex;flex-direction:column}.dock-panel-heading,.dock-inbox>header{display:flex;align-items:center;gap:2px;min-height:64px;padding:10px 12px;border-bottom:1px solid var(--line);flex:none}.dock-title{display:flex;align-items:center;gap:10px;padding:0 4px 0 0;min-width:0;flex:1;border:0;background:transparent;color:var(--ink);text-align:left}.dock-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:700}.dock-title .avatar{flex:none;width:34px;height:34px}.dock-title .dock-channel-icon{width:34px;height:34px;border-radius:10px}.chat-dock .icon-button{width:32px;height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);border-radius:8px;padding:6px;flex:none}.chat-dock .icon-button:hover{background:var(--surface-hover);color:var(--ink)}.dock-minimize .icon{transform:none}
.dock-inbox{position:absolute;right:70px;bottom:0;height:min(600px,calc(100dvh - 100px));display:flex;flex-direction:column;width:360px}.dock-inbox h2{font-size:22px;line-height:1.4;margin:0;flex:1;font-weight:700;letter-spacing:-.02em}.dock-search{display:flex;align-items:center;gap:8px;margin:12px 14px;background:var(--surface-muted);border:1px solid var(--field-line);padding:8px 10px;border-radius:10px;color:var(--muted)}.dock-search input{background:transparent;border:0!important;outline:0!important;box-shadow:none!important;padding:0!important;width:100%;min-width:0;color:var(--ink);height:auto!important}.dock-search input::placeholder{color:var(--muted)}.dock-list{overflow:auto;flex:1;padding:0 8px 10px;min-height:0;overscroll-behavior:contain}.dock-conversation{display:flex;align-items:center;text-align:left;gap:12px;padding:12px 10px;border:0;background:transparent;color:var(--ink);border-radius:10px;width:100%}.dock-conversation:hover{background:var(--surface-hover)}.dock-conversation>.avatar{width:40px;height:40px;flex:none}.dock-conversation>span:not(.avatar):not(.dock-channel-icon){min-width:0;flex:1}.dock-conversation strong{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-conversation.has-unread strong{font-weight:800}.dock-conversation small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-list-label{font-size:12px;font-weight:700;color:var(--muted);padding:12px 10px 4px}.dock-all{display:flex;align-items:center;justify-content:space-between;color:var(--accent-ink);font-size:12px;font-weight:700;padding:14px 18px;border-top:1px solid var(--line)}.dock-all:hover{background:var(--surface-muted)}.dock-empty{color:var(--muted);font-size:14px;text-align:center;margin:32px 12px;line-height:1.6}
.dock-messages{position:relative;flex:1;overflow:auto;min-height:60px;padding:14px 16px 8px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--field-line) transparent}.dock-message{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 16px;gap:4px;overflow-wrap:anywhere}.dock-message.is-mine{align-items:flex-end}.dock-message-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px;line-height:1.4}.dock-message-meta strong{font-size:12px;font-weight:600}.dock-message-body{background:var(--surface-hover);padding:9px 12px;border-radius:12px;max-width:92%;white-space:pre-wrap;color:var(--ink)}.dock-message.is-mine .dock-message-body{background:var(--accent-soft);color:var(--ink)}.dock-message-body:empty{display:none}.dock-message-body.is-deleted{font-style:italic;color:var(--muted);background:transparent}.dock-message-file{display:flex;align-items:center;gap:8px;max-width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:10px;color:var(--accent-ink);font-size:12px}.dock-message-file span{min-width:0;overflow-wrap:anywhere}.dock-message-file:hover{background:var(--surface-muted)}.dock-replies,.dock-older{border:0;background:transparent;color:var(--accent-ink);font-size:12px!important;font-weight:600!important;padding:3px 1px}.dock-replies:hover{text-decoration:underline;text-underline-offset:3px}.dock-older{display:block;margin:0 auto 16px}.dock-seen{font-size:12px;color:var(--muted);max-width:95%;text-align:right}.dock-thread-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-muted);border-bottom:1px solid var(--line);flex:none}.dock-thread-bar .icon{transform:rotate(180deg)}.dock-thread-bar>span{min-width:0}.dock-thread-bar strong{display:block;font-size:12px}.dock-thread-bar small{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);max-width:260px}.dock-thread-parent{padding:10px 12px;background:var(--surface-muted);border-radius:10px;color:var(--muted);font-size:12px;margin:0 0 16px;max-height:90px;overflow:auto;white-space:pre-wrap}
.dock-typing{font-size:12px;color:var(--muted);line-height:1.4;min-height:24px;padding:2px 16px;flex:none}.dock-composer{padding:0 12px 12px;border-top:1px solid var(--line);flex:none}.chat-dock .dock-composer textarea{display:block;width:100%;min-height:46px;max-height:96px;resize:none;border:0;background:transparent;box-shadow:none;padding:12px 4px 8px;border-radius:0;line-height:1.5;color:var(--ink);font-size:14px}.chat-dock .dock-composer textarea:focus{outline:0;box-shadow:none}.dock-composer:focus-within{border-top-color:var(--accent-ink)}.dock-composer textarea::placeholder{color:var(--muted)}.dock-composer-tools{display:flex;align-items:center;gap:3px}.dock-attach{position:relative;overflow:hidden;cursor:pointer}.dock-attach input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dock-attach.is-disabled{pointer-events:none;opacity:.5}.dock-send-status{font-size:12px;color:var(--muted);margin-left:5px;flex:1}.dock-send{display:grid;place-items:center;width:34px;height:34px;padding:8px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-on);margin-left:auto}.dock-send:hover:not(:disabled){background:var(--coral-hover)}.dock-error{color:var(--theme-danger,#a32d40);background:#ffedf0;padding:8px 10px;border-radius:8px;font-size:12px;margin:8px 0}.dock-attached{display:flex;gap:6px;flex-wrap:wrap;max-height:100px;overflow:auto;padding-top:8px}.dock-attached>span{display:flex;align-items:center;gap:5px;background:var(--surface-muted);border-radius:8px;padding:2px 4px 2px 7px;font-size:12px;max-width:100%}.dock-attached>span>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.dock-attached .icon{width:14px;height:14px}.dock-attached .icon-button{width:26px;height:26px;min-height:26px}.dock-jump{position:absolute;bottom:140px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;white-space:nowrap;border:0;border-radius:10px;background:var(--accent);color:var(--accent-on);box-shadow:0 4px 16px #30323a26;font-size:12px!important;padding:8px 12px}.dock-loading{display:grid;gap:14px;padding:22px 16px}.dock-loading i{display:block;height:38px;border-radius:10px;background:var(--surface-hover)}.dock-loading i:nth-child(2){width:80%}.dock-loading i:nth-child(3){width:65%;margin-left:auto}
@media(max-width:760px){.chat-dock{right:12px;bottom:calc(78px + env(safe-area-inset-bottom));gap:0}.dock-rail{flex-direction:row;gap:10px;max-width:calc(100vw - 24px)}.dock-bubbles{flex-direction:row;gap:10px;overflow:auto;padding:5px;max-width:calc(100vw - 90px)}.dock-launcher{width:48px;height:48px;flex:none}.dock-bubble{width:40px;height:40px;box-shadow:0 3px 10px #30323a1f}.dock-bubble .avatar{width:100%;height:100%;border-radius:50%;font-size:12px}.dock-bubble .dock-channel-icon{width:34px;height:34px}.dock-panel,.dock-inbox{position:fixed;left:12px;right:12px;bottom:calc(144px + env(safe-area-inset-bottom));width:auto;height:min(520px,calc(100dvh - 210px));max-height:calc(100dvh - 210px)}.dock-panel-heading{min-height:58px}.dock-messages{padding:12px}.dock-title strong{font-size:14px}.dock-inbox>header{min-height:58px}.dock-conversation{min-height:62px}.dock-composer .icon-button{width:36px;height:36px;min-height:36px}.dock-send{width:36px;height:36px}.dock-count{font-size:12px;min-width:18px;height:18px;right:-2px;top:-2px}}
@media(prefers-reduced-motion:no-preference){.dock-launcher,.dock-bubble,.dock-conversation,.dock-send{transition:background-color 160ms ease-out,box-shadow 160ms ease-out}}
/* The shared drop target rule sets position:relative; mobile windows must stay viewport-anchored. */
@media(max-width:760px){.chat-dock .dock-panel{position:fixed}}
@media(max-width:760px){.chat-dock.dock-keyboard .dock-rail{display:none}.chat-dock.dock-keyboard .dock-panel{bottom:calc(var(--dock-keyboard-inset) + 8px);height:min(520px,calc(var(--dock-visible-height) - 76px));max-height:calc(var(--dock-visible-height) - 76px)}}

.chat-dock .dock-search input{min-height:24px!important;margin:0!important}
.chat-dock .dock-composer textarea:focus-visible{outline:2px solid var(--accent-ink);outline-offset:-2px;border-radius:8px}
