.cx-launcher,.cx-root{--_cx-accent-rgb:var(--cx-accent-rgb,var(--primary-rgb,99 102 241));--_cx-bg-rgb:var(--cx-bg-rgb,var(--card-bg-rgb,255 255 255));--_cx-fg-rgb:var(--cx-fg-rgb,var(--text-color-rgb,var(--foreground-rgb,17 24 39)));--_cx-danger-rgb:var(--cx-danger-rgb,220 38 38);--_cx-success-rgb:var(--cx-success-rgb,22 163 74);--_cx-accent:var(--cx-accent,rgb(var(--_cx-accent-rgb)));--_cx-on-accent:var(--cx-on-accent,var(--primary-text,#fff));--_cx-bg:var(--cx-bg,rgb(var(--_cx-bg-rgb)));--_cx-fg:var(--cx-fg,rgb(var(--_cx-fg-rgb)));--_cx-muted:var(--cx-muted,rgb(var(--_cx-fg-rgb)/0.62));--_cx-border:var(--cx-border,var(--border-normal,rgb(var(--_cx-fg-rgb)/0.12)));--_cx-surface:var(--cx-surface,rgb(var(--_cx-fg-rgb)/0.05));--_cx-user-bg:var(--cx-user-bg,var(--_cx-accent));--_cx-user-fg:var(--cx-user-fg,var(--_cx-on-accent));--_cx-assistant-bg:var(--cx-assistant-bg,rgb(var(--_cx-fg-rgb)/0.06));--_cx-assistant-fg:var(--cx-assistant-fg,var(--_cx-fg));--_cx-danger:var(--cx-danger,rgb(var(--_cx-danger-rgb)));--_cx-success:var(--cx-success,rgb(var(--_cx-success-rgb)));--_cx-focus:var(--cx-focus,0 0 0 2px rgb(var(--_cx-accent-rgb)/0.45));--_cx-font:var(--cx-font,var(--font-family,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif));--_cx-font-size:var(--cx-font-size,14px);--_cx-line-height:var(--cx-line-height,1.5);--_cx-radius:var(--cx-radius,14px);--_cx-radius-sm:var(--cx-radius-sm,8px);--_cx-gap:var(--cx-gap,12px);--_cx-shadow:var(--cx-shadow,0 12px 40px rgba(0,0,0,.18));--_cx-panel-width:var(--cx-panel-width,380px);--_cx-panel-height:var(--cx-panel-height,min(620px,calc(100vh - 120px)));--_cx-launcher-size:var(--cx-launcher-size,56px);--_cx-launcher-offset:var(--cx-launcher-offset,20px);--_cx-z-index:var(--cx-z-index,1000)}[data-cx-theme=dark] .cx-launcher,[data-cx-theme=dark] .cx-root,[data-cx-theme=dark].cx-launcher,[data-cx-theme=dark].cx-root{--cx-bg-rgb:var(--card-bg-rgb,24 24 27);--cx-fg-rgb:var(--text-color-rgb,var(--foreground-rgb,244 244 245));--cx-shadow:0 12px 40px rgba(0,0,0,.5)}.cx-root{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--_cx-bg);color:var(--_cx-fg);font-family:var(--_cx-font);font-size:var(--_cx-font-size);line-height:var(--_cx-line-height)}.cx-root,.cx-root *,.cx-root :after,.cx-root :before{box-sizing:border-box}.cx-root button{font:inherit;color:inherit;cursor:pointer}.cx-root button:disabled{cursor:not-allowed}.cx-launcher :focus-visible,.cx-root :focus-visible{outline:none;box-shadow:var(--_cx-focus)}.cx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.cx-header{display:flex;align-items:center;gap:var(--_cx-gap);padding:12px 14px;border-bottom:1px solid var(--_cx-border)}.cx-header__text{flex:1;min-width:0}.cx-title{margin:0;font-size:1.05em;font-weight:600}.cx-subtitle{margin:0;color:var(--_cx-muted);font-size:.86em}.cx-header__actions{display:flex;gap:4px}.cx-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--_cx-radius-sm);background:transparent;color:var(--_cx-muted)}.cx-icon-btn:hover:not(:disabled){background:var(--_cx-surface);color:var(--_cx-fg)}.cx-icon-btn:disabled{opacity:.4}.cx-error{display:flex;align-items:center;gap:8px;margin:10px 12px 0;padding:8px 6px 8px 12px;border-radius:var(--_cx-radius-sm);background:rgb(var(--_cx-danger-rgb)/.1);color:var(--_cx-danger);font-size:.9em}.cx-error>span{flex:1}.cx-error .cx-icon-btn{color:inherit}.cx-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 12px}.cx-log,.cx-messages{display:flex;flex-direction:column;gap:var(--_cx-gap)}.cx-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--_cx-muted);text-align:center}.cx-placeholder p{margin:0}.cx-load-older{align-self:center;padding:4px 10px;border:1px solid var(--_cx-border);border-radius:999px;background:transparent;color:var(--_cx-muted);font-size:.85em}.cx-message{display:flex;flex-direction:column;gap:4px;max-width:85%;align-self:flex-start}.cx-message--user{align-self:flex-end;align-items:flex-end}.cx-bubble{padding:9px 13px;border-radius:var(--_cx-radius);background:var(--_cx-assistant-bg);color:var(--_cx-assistant-fg);overflow-wrap:anywhere}.cx-message--assistant .cx-bubble,.cx-message--staff .cx-bubble{border-bottom-left-radius:4px}.cx-message--staff .cx-bubble{border:1px solid rgb(var(--_cx-accent-rgb)/.35)}.cx-message--notice{align-self:center;align-items:center;max-width:92%}.cx-message--notice .cx-bubble{background:transparent;color:var(--_cx-muted);border:1px dashed var(--_cx-border);font-size:.9em}.cx-message--user .cx-bubble{background:var(--_cx-user-bg);color:var(--_cx-user-fg);border-bottom-right-radius:4px}.cx-message--pending .cx-bubble{opacity:.7}.cx-message--failed .cx-bubble{opacity:.6}.cx-content blockquote,.cx-content h3,.cx-content h4,.cx-content h5,.cx-content h6,.cx-content ol,.cx-content p,.cx-content pre,.cx-content ul{margin:0}.cx-content{overflow-wrap:anywhere}.cx-content>*+*{margin-top:.6em}.cx-content ol,.cx-content ul{padding-left:1.25em}.cx-content li>ol,.cx-content li>ul{margin-top:.25em}.cx-content li+li{margin-top:.2em}.cx-heading{font-size:1em;font-weight:700;line-height:1.35}.cx-content h3.cx-heading{font-size:1.05em}.cx-quote{padding-left:.8em;border-left:3px solid var(--_cx-border);color:var(--_cx-muted)}.cx-codeblock{padding:.6em .8em;border-radius:8px;background:rgb(var(--_cx-fg-rgb)/.08);overflow-x:auto;font-size:.88em;line-height:1.45}.cx-codeblock code{padding:0;background:none;font-size:inherit;white-space:pre}.cx-rule{width:100%;border:0;border-top:1px solid var(--_cx-border)}.cx-table{max-width:100%;overflow-x:auto}.cx-table table{border-collapse:collapse;font-size:.92em}.cx-table td,.cx-table th{padding:.35em .6em;border:1px solid var(--_cx-border);text-align:left;vertical-align:top;overflow-wrap:normal}.cx-table th{background:rgb(var(--_cx-fg-rgb)/.06);font-weight:600}.cx-content code{padding:.1em .35em;border-radius:4px;background:rgb(var(--_cx-fg-rgb)/.08);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.cx-message--user .cx-content code{background:hsla(0,0%,100%,.2)}.cx-link{color:inherit;text-decoration:underline;text-underline-offset:2px}.cx-citation{display:inline-flex;align-items:center;justify-content:center;min-width:1.35em;height:1.35em;margin:0 2px;padding:0 4px;border-radius:999px;background:rgb(var(--_cx-accent-rgb)/.14);color:var(--_cx-accent);font-size:.72em;font-weight:600;vertical-align:.15em}.cx-meta{display:flex;gap:8px;font-size:.8em;color:var(--_cx-muted)}.cx-meta--error{color:var(--_cx-danger)}.cx-link-button{padding:0;border:0;background:none;color:var(--_cx-accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}.cx-handoff{flex-direction:column;gap:6px;padding:6px 12px 0;font-size:.9em}.cx-handoff,.cx-handoff__notice{display:flex;align-items:flex-start}.cx-handoff__notice{gap:8px;width:100%;padding:8px 6px 8px 12px;border-radius:var(--_cx-radius-sm);background:rgb(var(--_cx-danger-rgb)/.1);color:var(--_cx-fg);border:1px solid rgb(var(--_cx-danger-rgb)/.35)}.cx-handoff__text{flex:1;display:flex;flex-direction:column;gap:4px}.cx-handoff__text p{margin:0}.cx-handoff__note,.cx-handoff__queue{margin:0;color:var(--_cx-muted)}.cx-feedback{display:flex;align-items:center;gap:2px}.cx-feedback__btn{display:inline-flex;padding:4px;border:0;border-radius:6px;background:transparent;color:var(--_cx-muted)}.cx-feedback__btn:hover{background:var(--_cx-surface);color:var(--_cx-fg)}.cx-feedback__btn[aria-pressed=true]{color:var(--_cx-accent)}.cx-feedback__thanks{margin-left:4px;font-size:.78em;color:var(--_cx-muted)}.cx-status{align-self:flex-start;max-width:85%;color:var(--_cx-muted);font-size:.9em}.cx-status__line{display:flex;align-items:center;gap:8px}.cx-dots{display:inline-flex;gap:3px;padding:8px 10px;border-radius:var(--_cx-radius);background:var(--_cx-assistant-bg)}.cx-dots>span{width:6px;height:6px;border-radius:50%;background:currentColor;animation:cx-bounce 1.2s ease-in-out infinite}.cx-dots>span:nth-child(2){animation-delay:.15s}.cx-dots>span:nth-child(3){animation-delay:.3s}@keyframes cx-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.cx-activity{margin-top:6px}.cx-activity__toggle{display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border:0;border-radius:6px;background:transparent;color:var(--_cx-muted);font-size:.9em}.cx-chevron{display:inline-flex;transition:transform .15s ease}.cx-chevron--open{transform:rotate(180deg)}.cx-activity__list{list-style:none;margin:4px 0 0;padding:0 0 0 4px;display:flex;flex-direction:column;gap:2px}.cx-activity__list[hidden]{display:none}.cx-activity__item{display:flex;align-items:center;gap:6px}.cx-activity__icon{display:inline-flex;color:var(--_cx-success)}.cx-activity__item--failed .cx-activity__icon{color:var(--_cx-danger)}.cx-empty{margin:auto 0;padding:16px 8px;text-align:center}.cx-empty__title{margin:0 0 4px;font-size:1.1em;font-weight:600}.cx-empty__body{margin:0;color:var(--_cx-muted)}.cx-suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.cx-suggestion{padding:6px 12px;border:1px solid var(--_cx-border);border-radius:999px;background:transparent;font-size:.9em;text-align:left}.cx-suggestion:hover{border-color:var(--_cx-accent);color:var(--_cx-accent)}.cx-composer{position:relative;display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--_cx-border)}.cx-textarea{flex:1;min-height:40px;max-height:160px;padding:9px 12px;border:1px solid var(--_cx-border);border-radius:var(--_cx-radius-sm);background:transparent;color:inherit;font:inherit;line-height:1.4;resize:none;overflow-y:auto}.cx-textarea::-moz-placeholder{color:var(--_cx-muted)}.cx-textarea::placeholder{color:var(--_cx-muted)}.cx-textarea:focus{outline:none;border-color:var(--_cx-accent);box-shadow:var(--_cx-focus)}.cx-textarea[aria-invalid=true]{border-color:var(--_cx-danger)}.cx-counter{position:absolute;right:62px;bottom:16px;font-size:.72em;color:var(--_cx-muted);pointer-events:none}.cx-counter--over{color:var(--_cx-danger);font-weight:600}.cx-send{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border:0;border-radius:var(--_cx-radius-sm);background:var(--_cx-accent);color:var(--_cx-on-accent)}.cx-send:disabled{opacity:.45}.cx-launcher{position:fixed;bottom:var(--_cx-launcher-offset);z-index:var(--_cx-z-index);display:flex;flex-direction:column;gap:12px;font-family:var(--_cx-font)}.cx-launcher--bottom-right{right:var(--_cx-launcher-offset);align-items:flex-end}.cx-launcher--bottom-left{left:var(--_cx-launcher-offset);align-items:flex-start}.cx-launcher__button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--_cx-launcher-size);height:var(--_cx-launcher-size);border:0;border-radius:50%;background:var(--_cx-accent);color:var(--_cx-on-accent);box-shadow:var(--_cx-shadow);cursor:pointer;transition:transform .15s ease}.cx-launcher__button:hover{transform:scale(1.05)}.cx-launcher__badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--_cx-danger);color:#fff;font-size:11px;line-height:18px}.cx-panel{width:var(--_cx-panel-width);max-width:calc(100vw - 2 * var(--_cx-launcher-offset));height:var(--_cx-panel-height);border:1px solid var(--_cx-border);border-radius:var(--_cx-radius);overflow:hidden;background:var(--_cx-bg);box-shadow:var(--_cx-shadow);animation:cx-pop .16s ease-out}@keyframes cx-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media (max-width:480px){.cx-panel{width:calc(100vw - 2 * var(--_cx-launcher-offset));height:calc(100vh - var(--_cx-launcher-size) - 3 * var(--_cx-launcher-offset))}}@media (prefers-reduced-motion:reduce){.cx-dots>span,.cx-panel{animation:none}.cx-dots>span{opacity:.6}.cx-chevron,.cx-launcher__button{transition:none}}.cx-launcher,.cx-root{--cx-accent:var(--primary);--cx-on-accent:var(--primary-text);--cx-bg:var(--card-bg);--cx-fg:var(--text-color);--cx-muted:color-mix(in srgb,var(--text-color) 62%,transparent);--cx-border:var(--border-normal);--cx-surface:color-mix(in srgb,var(--text-color) 6%,transparent);--cx-assistant-bg:color-mix(in srgb,var(--text-color) 8%,transparent);--cx-focus:0 0 0 2px color-mix(in srgb,var(--primary) 45%,transparent);--cx-danger:var(--error-text);--cx-font:inherit}