@keyframes statusPulse{0%,to{box-shadow:0 0 0 2px rgba(59,165,93,.18)}50%{box-shadow:0 0 0 4px rgba(59,165,93,.35),0 0 8px rgba(59,165,93,.5)}}@keyframes chatTypingPulse{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-2px);opacity:1}}@keyframes chatMicPulse{0%,to{box-shadow:0 0 0 0 rgba(229,72,77,.35)}50%{box-shadow:0 0 0 5px transparent}}@keyframes chatRowCascade{0%{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-18px);filter:blur(3px)}}.chatbox-container{position:fixed;right:max(12px,env(safe-area-inset-right,0));bottom:max(12px,env(safe-area-inset-bottom,0));z-index:1200}.chatbox-icon{opacity:1;visibility:visible;transition:opacity .25s ease,visibility .25s ease,transform .25s ease}.chatbox-launch-btn{position:relative;width:58px;height:58px;border-radius:50%;border:1px solid color-mix(in srgb,var(--text-primary, #111) 12%,transparent);background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.28),transparent 48%),linear-gradient(135deg,#5865f2,#00a8fc);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.24);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;overflow:hidden;padding:0}[data-theme=light] .chatbox-launch-btn{box-shadow:0 10px 22px rgba(29,78,216,.2)}.chatbox-launch-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 14px 28px rgba(0,0,0,.28);filter:saturate(1.08)}.chatbox-launch-btn:focus-visible{outline:3px solid color-mix(in srgb,#5865f2 36%,transparent);outline-offset:2px}.chatbox-launch-icon{font-size:1.45rem;opacity:.98;filter:drop-shadow(0 1px 3px rgba(0,0,0,.2))}.chatbox-icon.hide{opacity:0;visibility:hidden;transform:translateY(8px)}.chatbox-modal{--chat-surface:color-mix(in srgb, var(--card-bg, #ffffff) 96%, transparent);--chat-surface-2:color-mix(in srgb, var(--bg-secondary, #f3f3f3) 92%, transparent);--chat-border:color-mix(in srgb, var(--text-primary, #111) 10%, transparent);--chat-text:var(--text-primary, #222);--chat-muted:var(--text-secondary, #666);--chat-accent:#5865f2;--chat-accent-2:#4752c4;--chat-bot-bubble:color-mix(in srgb, var(--bg-secondary, #f3f3f3) 82%, var(--card-bg, #fff) 18%);--chat-user-bubble:color-mix(in srgb, var(--chat-accent) 14%, var(--card-bg, #fff) 86%);display:none;position:fixed;right:max(12px,env(safe-area-inset-right,0));bottom:calc(max(64px,env(safe-area-inset-bottom,0)) + 8px);width:min(380px,calc(100vw - 20px));height:min(620px,calc(var(--chat-viewport-height, 100dvh) - 92px));max-height:calc(var(--chat-viewport-height, 100dvh) - 92px);border-radius:16px;border:1px solid var(--chat-border);background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01)),var(--chat-surface);box-shadow:0 18px 44px rgba(0,0,0,.28);backdrop-filter:blur(10px);overflow:hidden;flex-direction:column}[data-theme=dark] .chatbox-modal{--chat-surface:color-mix(in srgb, var(--card-bg, #1e1e1e) 96%, #101217 4%);--chat-surface-2:#1b1d24;--chat-border:rgba(255, 255, 255, 0.08);--chat-text:#f2f3f5;--chat-muted:#a7acb5;--chat-bot-bubble:#23262f;--chat-user-bubble:rgba(88, 101, 242, 0.18)}[data-theme=light] .chatbox-modal{--chat-surface:#ffffff;--chat-surface-2:#ffffff;--chat-border:#e5e5e5;background:#fff}[data-theme=light] .chatbox-header{background:#fff}[data-theme=light] .chatbox-help-card{background:#fff;border-color:#e5e5e5}[data-theme=light] .chatbox-body,[data-theme=light] .chatbox-footer{background:#fff}[data-theme=light] .chat-options button,[data-theme=light] .chatbox-composer{background:#fff;border-color:#e5e5e5}[data-theme=light] .chat-options button:hover{background:#f5f5f5;border-color:#5865f2}.chatbox-modal .dots-loader{min-height:100%}.chatbox-header{display:none;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:linear-gradient(180deg,rgba(88,101,242,.22),rgba(88,101,242,.08)),color-mix(in srgb,var(--chat-surface-2) 96%,transparent);border-bottom:1px solid var(--chat-border);position:sticky;top:0;z-index:2}.chatbox-header-meta{display:flex;align-items:center;gap:10px;min-width:0}.chatbox-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,#5865f2,#00a8fc);box-shadow:0 6px 14px rgba(88,101,242,.28)}.chatbox-avatar__img{width:100%;height:100%;object-fit:cover;display:block}.chatbox-header-text{min-width:0;display:grid}.chatbox-title{color:var(--chat-text);font-size:.98rem;font-weight:700;line-height:1.2}.chatbox-status{display:inline-flex;align-items:center;gap:6px;color:var(--chat-muted);font-size:.72rem;font-weight:500;margin-top:2px}.chatbox-status-dot{width:8px;height:8px;border-radius:50%;background:#3ba55d;box-shadow:0 0 0 2px rgba(59,165,93,.18);animation:statusPulse 2s ease-in-out infinite}.chatbox-close,.chatbox-header-actions{display:inline-flex;align-items:center;flex-shrink:0}.chatbox-close{width:32px;height:32px;justify-content:center;border:1px solid transparent;border-radius:10px;background:0 0;color:var(--chat-muted);font-size:1.3rem;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.chatbox-header-actions{gap:4px}.chatbox-maximize-toggle,.chatbox-mute-toggle{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;background:0 0;color:var(--chat-muted);font-size:1.05rem;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease;flex-shrink:0}.chatbox-mute-toggle:hover{background:rgba(255,255,255,.06);color:var(--chat-text);border-color:var(--chat-border)}.chatbox-mute-toggle[aria-pressed=true]{color:var(--chat-accent);border-color:color-mix(in srgb,var(--chat-accent) 35%,transparent);background:color-mix(in srgb,var(--chat-accent) 14%,transparent)}.chatbox-maximize-toggle:hover{background:rgba(255,255,255,.06);color:var(--chat-text);border-color:var(--chat-border)}.chatbox-maximize-toggle[aria-pressed=true]{color:var(--chat-accent);border-color:color-mix(in srgb,var(--chat-accent) 35%,transparent);background:color-mix(in srgb,var(--chat-accent) 14%,transparent)}.chatbox-close:hover{background:rgba(255,255,255,.06);color:var(--chat-text);border-color:var(--chat-border)}.chatbox-body{display:none;flex:1;min-height:0;padding:12px;gap:10px;font-size:14px;flex-direction:column;background:linear-gradient(180deg,rgba(255,255,255,.01),transparent 35%),0 0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.chatbox-help-card{border:1px solid var(--chat-border);border-radius:12px;padding:10px 12px;background:color-mix(in srgb,var(--chat-surface-2) 86%,transparent);flex-shrink:0}.chatbox-help{margin:0;color:var(--chat-muted);line-height:1.45;font-size:.83rem}.chat-messages{flex:1;min-height:0;overflow:auto;padding-right:4px;display:flex;flex-direction:column;gap:8px;margin-bottom:0;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--chat-muted) 35%,transparent) transparent;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--chat-muted) 35%,transparent);border-radius:999px}.chat-message-row{display:grid;gap:4px;align-content:start;min-width:0}.chat-message-row.is-user{justify-items:end}.chat-message-row.is-bot{justify-items:start}.chat-message-meta{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;color:var(--chat-muted);padding:0 2px;max-width:92%}.chat-message-meta__name{font-weight:700;color:color-mix(in srgb,var(--chat-text) 88%,transparent)}.chat-message-meta__dot{opacity:.55}.chat-message-meta__time{opacity:.9}.chat-message{border-radius:12px;padding:10px 12px;margin:0;line-height:1.45;word-wrap:break-word;overflow-wrap:anywhere;border:1px solid transparent;max-width:92%;min-width:0}.chat-message-header{background:var(--chat-user-bubble);color:var(--chat-text)!important;border-color:color-mix(in srgb,var(--chat-accent) 20%,transparent);font-weight:600}.chat-message-answer{background:var(--chat-bot-bubble);color:var(--chat-text)!important;border-color:var(--chat-border)}[data-theme=dark] .chat-message-answer{color:#eef0f4!important}.chat-typing-indicator{display:inline-flex;align-items:center;gap:4px;min-height:16px}.chat-typing-indicator__dot{width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--chat-muted) 88%,white);opacity:.55;animation:chatTypingPulse 1.1s infinite ease-in-out}.chat-typing-indicator__dot:nth-child(2){animation-delay:.16s}.chat-typing-indicator__dot:nth-child(3){animation-delay:.32s}.chat-options-panel{border:1px solid var(--chat-border);border-radius:12px;background:color-mix(in srgb,var(--chat-surface-2) 88%,transparent);padding:8px;display:grid;gap:8px;min-height:0;flex-shrink:0;overflow:hidden}.chat-options button,.chat-options-toggle{color:var(--chat-text);border-radius:10px;cursor:pointer;text-align:left}.chat-options-toggle{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border:1px solid var(--chat-border);padding:8px 10px;background:rgba(255,255,255,.02);transition:border-color .16s ease,background-color .16s ease}.chat-options-toggle:hover{border-color:color-mix(in srgb,var(--chat-accent) 22%,transparent);background:rgba(255,255,255,.04)}.chat-options-toggle__label{min-width:0;font-size:.8rem;font-weight:700;overflow-wrap:anywhere}.chat-options-toggle__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.8em;height:1.8em;border-radius:999px;padding:0 6px;font-size:.7rem;color:var(--chat-muted);background:rgba(255,255,255,.05);border:1px solid var(--chat-border)}.chat-options-toggle__icon{font-size:.95rem;color:var(--chat-muted);transition:transform .18s ease}.chat-options-panel.is-collapsed .chat-options-toggle__icon{transform:rotate(-90deg)}.chat-options{justify-content:center}.chat-options.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:0;min-height:0}.chat-options-panel.is-collapsed .chat-options.grid{display:none}.chat-options button{background:linear-gradient(180deg,rgba(88,101,242,.18),rgba(88,101,242,.1)),color-mix(in srgb,var(--chat-surface-2) 88%,transparent);border:1px solid color-mix(in srgb,var(--chat-accent) 18%,transparent);padding:10px;transition:background-color .18s ease,transform .18s ease,border-color .18s ease;font-size:.8rem;line-height:1.25;min-height:48px;font-weight:600;white-space:normal;overflow-wrap:anywhere}.chat-options button:hover{background:linear-gradient(180deg,rgba(88,101,242,.28),rgba(88,101,242,.14)),color-mix(in srgb,var(--chat-surface-2) 84%,transparent);border-color:color-mix(in srgb,var(--chat-accent) 30%,transparent);transform:translateY(-1px)}.chatbox-footer{padding:10px 12px 12px;border-top:1px solid var(--chat-border);background:color-mix(in srgb,var(--chat-surface-2) 92%,transparent);display:grid;gap:8px}.chatbox-composer,.chatbox-input{width:100%;min-width:0;box-sizing:border-box}.chatbox-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px;border-radius:12px;border:1px solid var(--chat-border);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01)),color-mix(in srgb,var(--chat-surface) 92%,transparent)}.chatbox-input{max-width:100%;border:0;outline:0;background:0 0;color:var(--chat-text);font-size:.88rem;padding:8px 76px 8px 10px;border-radius:8px}.chatbox-input::placeholder{color:var(--chat-muted)}.chatbox-composer-input{position:relative;min-width:0}.chatbox-emoji-btn,.chatbox-mic-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:inline-grid;place-items:center;border:0;border-radius:999px;background:color-mix(in srgb,var(--chat-text) 8%,transparent);color:var(--chat-muted);cursor:pointer;transition:background .2s ease,color .2s ease,opacity .2s ease}.chatbox-mic-btn{right:42px}.chatbox-mic-btn:hover{background:color-mix(in srgb,var(--chat-text) 14%,transparent);color:var(--chat-text)}.chatbox-emoji-btn ion-icon,.chatbox-mic-btn ion-icon{font-size:17px}.chatbox-mic-btn.is-recording{color:#e5484d;background:rgba(229,72,77,.16);animation:chatMicPulse 1.2s ease-in-out infinite}.chatbox-emoji-btn:hover{background:color-mix(in srgb,var(--chat-text) 14%,transparent);color:var(--chat-text)}.chatbox-emoji-btn:disabled{cursor:not-allowed;opacity:.75}.chatbox-emoji-picker{position:absolute;right:0;bottom:calc(100% + 8px);width:min(260px,calc(100vw - 120px));display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:8px;border-radius:12px;background:color-mix(in srgb,var(--chat-surface-2) 96%,transparent);border:1px solid var(--chat-border);box-shadow:0 12px 26px rgba(0,0,0,.35);z-index:20}.chatbox-emoji-picker[hidden]{display:none!important}.chatbox-emoji-picker button{border:0;border-radius:8px;background:color-mix(in srgb,var(--chat-text) 6%,transparent);color:var(--chat-text);height:34px;font-size:18px;cursor:pointer;line-height:1}.chatbox-emoji-picker button:hover{background:color-mix(in srgb,var(--chat-text) 14%,transparent)}.chatbox-send{border:1px solid color-mix(in srgb,var(--accent-color, #007bff) 30%,transparent);background:var(--accent-color, #007bff);color:#fff;min-height:38px;padding:8px 12px;border-radius:10px;font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background-color .18s ease,transform .18s ease,border-color .18s ease}[data-theme=dark] .chatbox-send{background:var(--accent-color, #2962ff);border-color:var(--accent-color, #2962ff)}.chatbox-send ion-icon{font-size:.95rem;flex-shrink:0}.chatbox-send span{line-height:1}.chatbox-send .chatbox-send__loader{display:none;align-items:center;gap:4px}.chatbox-send.is-loading .chatbox-send__loader{display:inline-flex}.chatbox-send.is-loading ion-icon,.chatbox-send.is-loading>span:not(.chatbox-send__loader){display:none}.chatbox-input:disabled,.chatbox-send.is-loading{cursor:not-allowed;opacity:.75}.chatbox-send:disabled:hover{transform:none}.chatbox-send__dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.6;animation:chatTypingPulse 1.1s infinite ease-in-out}.chatbox-send__dot:nth-child(2){animation-delay:.16s}.chatbox-send__dot:nth-child(3){animation-delay:.32s}.chatbox-send:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--accent-color, #007bff) 90%,#000)}.chatbox-input:focus-visible,.chatbox-send:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-color, #007bff) 35%,transparent);outline-offset:2px}#clearChat{background:0 0;color:var(--chat-muted);border:1px solid var(--chat-border);padding:9px 12px;border-radius:10px;font-size:.84rem;font-weight:600;cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease;width:100%}#clearChat:hover{background:rgba(255,255,255,.04);color:var(--chat-text);border-color:color-mix(in srgb,var(--chat-accent) 18%,transparent)}.chatbox-modal input[type=text]:not(.chatbox-input){width:calc(100% - 80px);padding:5px;border:1px solid #ccc;border-radius:5px}@media (max-width:480px){.chatbox-container,.chatbox-modal{right:max(8px,env(safe-area-inset-right,0))}.chatbox-container{bottom:max(8px,env(safe-area-inset-bottom,0))}.chatbox-modal{bottom:calc(max(58px,env(safe-area-inset-bottom,0)) + 6px);width:calc(100vw - 12px - env(safe-area-inset-left,0) - env(safe-area-inset-right,0));max-width:100%;height:min(560px,calc(var(--chat-viewport-height, 100dvh) - 72px));max-height:calc(var(--chat-viewport-height, 100dvh) - 72px);border-radius:14px}.chatbox-launch-btn{width:50px;height:50px}.chatbox-header{padding:10px 12px}.chatbox-body{padding:10px;gap:8px}.chatbox-footer{padding:8px 10px 10px}.chatbox-help-card{padding:9px 10px}.chat-options.grid,.chatbox-composer{grid-template-columns:1fr}.chatbox-composer{width:100%;min-width:0;padding:5px}.chatbox-send{width:100%}.chatbox-input{width:100%;max-width:100%;min-width:0;padding:8px 74px 8px 8px;font-size:16px}.chatbox-emoji-btn,.chatbox-mic-btn{width:28px;height:28px;right:40px}.chatbox-emoji-btn{right:7px}.chatbox-emoji-picker{width:min(220px,calc(100vw - 90px));grid-template-columns:repeat(5,1fr);gap:5px;padding:7px}.chat-options button{min-height:44px;font-size:.78rem;padding:9px}.chat-message{max-width:96%;padding:9px 10px}}@media (max-width:768px){.chatbox-modal{width:min(420px,calc(100vw - 16px - env(safe-area-inset-left,0) - env(safe-area-inset-right,0)));height:min(620px,calc(var(--chat-viewport-height, 100dvh) - 78px));max-height:calc(var(--chat-viewport-height, 100dvh) - 78px)}.chatbox-send{min-height:40px}}@media (max-height:580px){.chatbox-modal{height:min(500px,calc(var(--chat-viewport-height, 100dvh) - 72px));max-height:calc(var(--chat-viewport-height, 100dvh) - 72px)}}@media (max-height:520px){.chatbox-modal{height:min(440px,calc(var(--chat-viewport-height, 100dvh) - 16px));max-height:calc(var(--chat-viewport-height, 100dvh) - 16px);bottom:max(6px,env(safe-area-inset-bottom,0))}}@media (max-height:410px){.chatbox-modal{height:min(360px,calc(var(--chat-viewport-height, 100dvh) - 12px));max-height:calc(var(--chat-viewport-height, 100dvh) - 12px)}}.chat-message-row--clearing{animation:chatRowCascade .55s cubic-bezier(.22,1,.36,1) forwards;will-change:opacity,transform,filter}.chatbox-modal.is-maximized{width:min(50vw,calc(100vw - 24px));height:min(85vh,calc(var(--chat-viewport-height, 100dvh) - 48px));max-height:calc(var(--chat-viewport-height, 100dvh) - 48px);border-radius:16px}@media (max-width:768px){.chatbox-modal.is-maximized{right:0;bottom:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}}@media (max-width:480px){.chatbox-modal.is-maximized{right:0;bottom:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}}@media (prefers-reduced-motion:reduce){#clearChat,.chat-options button,.chatbox-close,.chatbox-emoji-btn,.chatbox-icon,.chatbox-launch-btn,.chatbox-maximize-toggle,.chatbox-mute-toggle,.chatbox-send{transition:none}.chat-message-row--clearing{animation-duration:.01s}.chatbox-mic-btn.is-recording{animation:none}.chat-options button:hover,.chatbox-send:hover{transform:none}}