/* ONE palette is the only color source. Override these geometry tokens for restyling. */
:root{--talk-width:660px;--talk-height:690px;--talk-radius:20px;--talk-tab-width:80px;--talk-bubble-radius:16px;--talk-message-avatar-size:36px}
/* A single roster scroller with reserved gutter prevents width changes on expansion. */
.ot-section.ot-people-section{overflow:hidden}
.ot-people-section>h2,.ot-people-section>input,.ot-people-section>.ot-muted{flex:none}
.ot-directory,.ot-messages,.ot-recipient-picker{scrollbar-gutter:stable;overflow-anchor:none;overscroll-behavior:contain}
.ot-chat-row{border-bottom:1px solid var(--color-border);padding:4px 0 12px}
.ot-chat-summary{display:flex;gap:12px;align-items:center;padding-left:56px;padding-right:5px}
.ot-chat-summary .ot-preview{flex:1;min-width:0;margin:0}
.ot-chat-summary>small{flex:none;font-size:10px;color:var(--color-text-muted)}
.ot-tabs .icon svg{width:25px;height:25px;stroke-linecap:round;stroke-linejoin:round}
.ot-launch.is-wiggling{animation:ot-wiggle .45s ease-in-out;transform-origin:50% 70%}
@keyframes ot-wiggle{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(-2px) rotate(-3deg)}40%{transform:translateX(2px) rotate(3deg)}60%{transform:translateX(-1px) rotate(-2deg)}80%{transform:translateX(1px) rotate(1deg)}}
.ot-typing{height:24px;flex:none;display:flex;align-items:center;gap:4px;padding:0 20px;background:var(--color-surface-subtle)}
.ot-typing-dot{width:5px;height:5px;border-radius:50%;background:var(--color-text-muted);animation:ot-typing 1.2s ease-in-out infinite}
.ot-typing-dot:nth-child(2){animation-delay:.15s}.ot-typing-dot:nth-child(3){animation-delay:.3s}
@keyframes ot-typing{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
@media(prefers-reduced-motion:reduce){.ot-launch.is-wiggling,.ot-typing-dot{animation:none}}
.ot-dock{position:fixed;right:24px;bottom:22px;z-index:95;display:grid;justify-items:end;gap:12px;color:var(--color-text)}
.ot-panel{width:min(var(--talk-width),calc(100vw - 48px));height:min(var(--talk-height),calc(100dvh - 110px));display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--talk-radius);background:var(--color-surface);box-shadow:0 22px 70px var(--color-shadow-alpha-18-82);overflow:hidden}
.ot-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--color-border);gap:12px}.ot-head>div:first-child{display:grid;gap:2px}.ot-head small{font-size:9px;letter-spacing:2px;color:var(--color-brand);font-weight:700}.ot-head strong{font-size:21px}.ot-tools{display:flex;gap:6px;flex-wrap:wrap}
.ot-workspace{display:grid;grid-template-columns:var(--talk-tab-width) minmax(0,1fr);flex:1;min-height:0}.ot-tabs{padding:14px 7px;display:flex;flex-direction:column;gap:7px;border-right:1px solid var(--color-border);background:var(--color-surface-subtle)}.ot-tabs button{position:relative;display:grid;justify-items:center;gap:7px;border:0;background:transparent;color:var(--color-text-secondary);padding:12px 3px;border-radius:12px;min-height:65px}.ot-tabs button>span{font-size:22px}.ot-tabs small{font-size:10px;color:inherit}.ot-tabs button.active{background:var(--color-brand-soft);color:var(--color-brand);font-weight:700}.ot-tabs .ot-badge{position:absolute;right:0;top:0}
.ot-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ot-section{padding:22px;display:flex;flex-direction:column;gap:16px;overflow:auto;flex:1;min-height:0}.ot-section h2{font-size:20px}.ot-section h3{font-size:15px}.ot-section form{display:grid;gap:14px}.ot-section textarea{min-height:160px}.ot-action{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);color:var(--color-text-secondary);font-size:12px;font-weight:600;padding:7px 10px;cursor:pointer}.ot-action:hover,.ot-action.selected{background:var(--color-brand-soft);color:var(--color-brand);border-color:var(--color-brand-border)}.ot-action.primary{background:var(--color-brand);color:var(--color-on-brand);border-color:var(--color-brand)}.ot-action:disabled{opacity:.5}
.ot-launch{position:relative;display:flex;align-items:center;gap:9px;min-height:48px;border:0;border-radius:25px;background:var(--color-surface-inverse);color:var(--color-on-inverse);padding:12px 20px;box-shadow:0 10px 30px var(--color-shadow-alpha-18-82);font-size:14px;font-weight:700}.ot-launch-icon{display:flex}.ot-badge{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--color-danger);color:var(--color-on-brand);font-size:10px;line-height:1;font-weight:700}.ot-launch .ot-badge{position:absolute;right:-4px;top:-4px}
.ot-directory{overflow:auto;min-height:0;flex:1}.ot-directory details{border-bottom:1px solid var(--color-border)}.ot-directory summary{cursor:pointer;padding:15px 4px;font-size:14px;font-weight:650}.ot-directory summary span{float:right;color:var(--color-text-muted);font-size:12px}.ot-person{display:flex;position:relative;align-items:center;gap:5px}.ot-person-open{display:flex;align-items:center;gap:12px;padding:12px 5px;flex:1;min-width:0;border:0;background:transparent;text-align:left;color:var(--color-text)}.ot-person-open>span:not(.ot-avatar){display:grid;gap:4px;min-width:0}.ot-person-open strong{font-size:14px}.ot-person-open small{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-person-open:hover{background:var(--color-surface-subtle)}.ot-avatar{width:39px;height:39px;border-radius:13px;background:var(--color-brand-soft);color:var(--color-brand);display:grid;place-items:center;object-fit:cover;font-weight:700;flex:none}.ot-menu{position:absolute;right:5px;top:43px;z-index:4;padding:5px;display:grid;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 24px var(--color-shadow-alpha-18-82);min-width:140px}.ot-menu button{border:0;justify-content:flex-start}.ot-menu hr{border:0;border-top:1px solid var(--color-border);width:100%}
.ot-conversation-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--color-border)}.ot-conversation-head>div{display:grid;gap:4px;flex:1;min-width:0}.ot-conversation-head strong{font-size:14px}.ot-conversation-head small{font-size:11px}.ot-messages{flex:1;min-height:0;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:14px;background:var(--color-surface-subtle)}.ot-message{max-width:85%;align-self:flex-start;display:grid;gap:5px;font-size:14px}.ot-message>p,.ot-message>div{margin:0;padding:11px 14px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--talk-bubble-radius);border-top-left-radius:4px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.ot-message.mine{align-self:flex-end}.ot-message.mine>p,.ot-message.mine>div{background:var(--color-brand-soft);border-color:var(--color-brand-border);border-radius:var(--talk-bubble-radius);border-top-right-radius:4px}.ot-message small{font-size:10px}.ot-message.mine small{text-align:right}.ot-date{text-align:center;font-size:10px;color:var(--color-text-muted);padding:8px}.ot-composer{border-top:1px solid var(--color-border);padding:12px 16px;display:grid;gap:8px;background:var(--color-surface)}.ot-composer textarea{min-height:64px;max-height:130px;resize:vertical;border:0;background:var(--color-surface-subtle);font-size:13px}.ot-composer>div{display:flex;align-items:center;gap:8px}.ot-composer>div>button:last-child{margin-left:auto}.ot-composer small{font-size:10px;color:var(--color-text-muted)}.ot-ai-history{border:0;border-bottom:1px solid var(--color-border);border-radius:0;font-size:11px;min-height:36px;padding:8px 18px}.ot-ai-mark{font-size:24px;color:var(--color-brand)}
.ot-footer{display:flex;justify-content:space-between;gap:12px;padding:9px 18px;border-top:1px solid var(--color-border);font-size:9px;color:var(--color-text-muted)}.ot-empty{display:grid;justify-items:center;align-content:center;gap:12px;padding:40px 18px;flex:1;text-align:center}.ot-empty .one-logo-symbol{--brand-symbol-size:42px;opacity:.6}.ot-empty h3{font-size:16px}.ot-empty p,.ot-muted{font-size:11px;line-height:1.7;color:var(--color-text-muted)}.ot-preview{font-size:11px;color:var(--color-text-muted);margin:0 5px 14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-error{padding:10px 14px;background:var(--color-danger-soft);color:var(--color-danger);font-size:12px}.ot-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ot-row>h2{margin-right:auto}.ot-note-row{display:grid;gap:8px;width:100%;padding:16px 5px;text-align:left;border:0;border-bottom:1px solid var(--color-border);background:transparent;color:var(--color-text)}.ot-note-row strong{display:flex;justify-content:space-between;font-size:14px}.ot-note-row small,.ot-note-row p{font-size:11px;color:var(--color-text-muted)}.ot-note-row p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ot-note-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8}.ot-recipient-picker{max-height:230px;overflow:auto;border:1px solid var(--color-border);border-radius:12px;padding:10px;font-size:12px}.ot-recipient-picker summary{cursor:pointer;padding:6px}.ot-recipient-picker label{padding:5px 12px;font-size:12px}
.ot-settings-block{display:grid;gap:12px;border-top:1px solid var(--color-border);padding-top:18px}.ot-profile-picture{display:flex;gap:10px;align-items:center}.ot-profile-backdrop{position:fixed;inset:0;z-index:150;background:var(--color-overlay);display:grid;place-items:center;padding:20px}.ot-profile-card{width:min(380px,100%);border-radius:20px;background:var(--color-surface);padding:25px;display:grid;gap:15px;color:var(--color-text)}.ot-profile-card>.ot-action:first-child{justify-self:end}.ot-profile-card>.ot-avatar{width:80px;height:80px;border-radius:25px;justify-self:center;font-size:25px}.ot-profile-card h2,.ot-profile-card>p{text-align:center}.ot-profile-card dl{display:grid;grid-template-columns:65px 1fr;gap:15px;font-size:12px}.ot-profile-card dd{margin:0;overflow-wrap:anywhere}.ot-profile-card dt{color:var(--color-text-muted)}.ot-transfer{padding:10px 16px;border-top:1px solid var(--color-border);background:var(--color-info-soft);display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}.ot-transfer strong{overflow-wrap:anywhere;max-width:180px}.ot-transfer progress{width:100%;height:4px;accent-color:var(--color-brand)}
.ot-detached .one-shell{display:none}.ot-detached .ot-dock{inset:0;display:block}.ot-detached .ot-panel{width:100%;height:100dvh;max-height:none;border-radius:0}.ot-detached .ot-head [data-ot="popout"]{display:none}
.one-icon-button[data-one-notifications]{position:relative}.one-icon-button[data-one-notifications] .ot-badge{position:absolute;right:-5px;top:-5px}
@media(max-width:720px){.ot-panel~.ot-launch{display:none}}
@media(min-width:721px){.ot-panel:not(.is-detached){resize:both;min-width:440px;min-height:380px;max-width:calc(100vw - 48px);max-height:calc(100dvh - 110px)}}
@media(max-width:720px){:root{--talk-tab-width:62px}.ot-dock{right:16px;bottom:16px}.ot-panel{position:fixed;inset:0;width:100%;height:100dvh;border:0;border-radius:0}.ot-head{padding:calc(12px + env(safe-area-inset-top)) 14px 12px}.ot-head strong{font-size:18px}.ot-head [data-ot="popout"]{display:none}.ot-tabs{padding:9px 3px}.ot-tabs small{font-size:9px}.ot-section{padding:16px}.ot-composer{padding:10px 12px}.ot-footer{padding-bottom:calc(9px + env(safe-area-inset-bottom))}.ot-composer>div>small{display:none}.ot-launch{padding:12px 16px}.ot-profile-card dl{grid-template-columns:55px 1fr}}

/* Incoming sender identity is shared across consecutive bubbles; own messages stay plain. */
.ot-chat-message.incoming{grid-template-columns:var(--talk-message-avatar-size) minmax(0,1fr);column-gap:10px;max-width:95%;min-width:0}
.ot-chat-message.incoming>p,.ot-chat-message.incoming>small,.ot-message-name{grid-column:2;min-width:0}
.ot-message-name{font-size:12px;font-weight:600;line-height:1.5;color:var(--color-text-secondary);overflow-wrap:anywhere}
.ot-message-avatar{grid-column:1;grid-row:1 / span 3;align-self:start;width:var(--talk-message-avatar-size);padding:0;border:0;border-radius:12px;background:transparent;cursor:pointer}
.ot-message-avatar>.ot-avatar{width:var(--talk-message-avatar-size);height:var(--talk-message-avatar-size);border-radius:12px;font-size:13px}
.ot-message-avatar:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}
.ot-chat-message.is-continued{margin-top:-6px}

.ot-icon-button{display:inline-grid;place-items:center;flex:none;width:38px;height:38px;padding:7px;border:0;border-radius:10px;background:transparent;color:var(--color-text-secondary);cursor:pointer}
.ot-icon-button:hover,.ot-icon-button[aria-pressed="true"]{background:var(--color-brand-soft);color:var(--color-brand)}
.ot-icon-button:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}
.ot-icon-button svg{width:23px;height:23px;stroke-linecap:round;stroke-linejoin:round}
.ot-tabs-bottom{margin-top:auto;padding-top:16px;display:flex;justify-content:center}
.ot-tabs .ot-tabs-bottom .ot-icon-button{display:inline-grid;min-height:38px;padding:7px}
.ot-conversation-head>.ot-conversation-tools{position:relative;display:flex;flex:none;gap:3px}
.ot-header-person,.ot-header-name{padding:0;border:0;background:transparent;color:var(--color-text);text-align:left;cursor:pointer}
.ot-header-name{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ot-conversation-head>div:not(.ot-conversation-tools){overflow:hidden}
.ot-search-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--color-border);flex:none}
.ot-search-bar input{min-width:0;flex:1}
.ot-search-results{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable;padding:14px;overscroll-behavior:contain}
.ot-search-result{width:100%;padding:14px 4px;border:0;border-bottom:1px solid var(--color-border);background:transparent;color:var(--color-text);text-align:left;cursor:pointer}
.ot-search-result>small{font-size:11px;color:var(--color-text-muted)}
.ot-search-result>p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin-top:7px}
.ot-search-result mark{background:var(--color-brand-soft);color:var(--color-brand);font-weight:700}
.ot-chat-message.is-search-target>p{outline:2px solid var(--color-brand);outline-offset:2px}
.ot-messages[hidden]{display:none}
.ot-invite-card{display:flex;flex-direction:column;gap:16px;width:min(440px,100%);max-height:calc(100dvh - 48px);padding:22px;border-radius:var(--talk-radius);background:var(--color-surface);color:var(--color-text)}
.ot-invite-card h2{font-size:18px}.ot-invite-card>.ot-row:last-child{justify-content:space-between}
.ot-invite-members{min-height:0;overflow:auto;scrollbar-gutter:stable}
.ot-invite-person{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border);cursor:pointer}
.ot-invite-person>span:last-child{display:grid;gap:4px}.ot-invite-person strong{font-size:13px}.ot-invite-person small{font-size:11px;color:var(--color-text-muted)}

.ot-typing{height:40px;gap:10px}
.ot-typing-people,.ot-typing-dots{display:flex;align-items:center;gap:4px}
.ot-typing-person{padding:0;border:0;border-radius:9px;background:transparent;cursor:pointer}
.ot-typing-person>.ot-avatar{width:26px;height:26px;border-radius:9px;font-size:11px}
.ot-typing-person:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}
.ot-typing-people>small{font-size:10px;color:var(--color-text-muted)}
.ot-chat-message.mine>.ot-action{justify-self:end;min-height:28px;font-size:11px}
.ot-note-compose{gap:14px}
.ot-note-recipients{flex:none;border-bottom:1px solid var(--color-border);padding-bottom:16px}
.ot-note-recipients>.ot-row>strong,.ot-note-content-label{font-size:13px;font-weight:600}
.ot-note-recipients>.ot-row>small{font-size:11px;color:var(--color-text-muted)}
.ot-recipient-chips{display:flex;flex-wrap:wrap;gap:7px;padding-top:8px;max-height:110px;overflow:auto;scrollbar-gutter:stable}
.ot-recipient-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--color-brand-border);border-radius:9px;background:var(--color-brand-soft);color:var(--color-brand);font-size:12px}
.ot-recipient-chip>button{display:grid;place-items:center;width:20px;height:20px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:16px}
.ot-note-compose>textarea{flex:1;min-height:160px;resize:vertical;line-height:1.7}
.ot-note-send{display:flex;justify-content:flex-end;flex:none}
.ot-note-picker{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}
.ot-note-picker input[data-ot-input="note-search"]{width:100%}
.ot-note-picker-list{max-height:180px;overflow:auto;scrollbar-gutter:stable;overscroll-behavior:contain}
.ot-note-picker-list details{border-bottom:1px solid var(--color-border)}
.ot-note-picker-list summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:7px 0;font-size:12px;font-weight:600}
.ot-note-picker-list summary::before{content:'›';color:var(--color-text-muted)}
.ot-note-picker-list details[open]>summary::before{transform:rotate(90deg)}
.ot-note-picker-list summary>span{flex:1}
.ot-note-picker-person{display:flex;align-items:center;gap:9px;padding:8px 12px;font-size:12px;cursor:pointer}
.ot-note-picker-person>input{flex:none}
.ot-note-picker-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-border);padding-top:10px}
.ot-note-picker-footer>small{font-size:11px;color:var(--color-text-muted)}
.ot-note-list>.ot-note-row{padding:18px 10px;border-bottom:1px solid var(--color-border);border-radius:0}
.ot-note-list>.ot-note-row:first-child{border-top:1px solid var(--color-border)}
.ot-note-list>.ot-note-row:hover{background:var(--color-surface-subtle)}
.ot-note-list>.ot-note-row p{margin:0;font-size:13px;line-height:1.6}
.ot-tabs>.ot-tabs-bottom{flex:none;padding-top:10px}
.ot-tabs>button[data-ot="tab"]{flex-shrink:0}
.ot-icon-button>.icon,.ot-tabs .ot-icon-button>.icon{display:grid;place-items:center;width:24px;height:24px;flex:none}
.ot-icon-button>.icon>svg,.ot-tabs .ot-icon-button>.icon>svg{display:block;width:24px;height:24px;flex:none}
.ot-tabs .ot-tabs-bottom .ot-icon-button{width:40px;height:40px;min-height:40px;padding:8px;gap:0;align-content:center;flex:none}
.ot-settings-hint{font-size:11px;line-height:1.6;color:var(--color-text-muted)}
#ot-admin-preview[hidden]{display:none}
