#kd-ecosystem .kd-assistant { position:fixed; inset-inline-end:20px; bottom:96px; z-index:1100; width:420px; height:570px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 112px); display:flex; flex-direction:column; background:var(--ke-surface); color:var(--ke-ink); border:1px solid var(--ke-line); border-radius:22px; box-shadow:0 16px 64px #0003; overflow:hidden; font-size:14px; line-height:1.6; }
#kd-ecosystem .kd-assistant[hidden], #kd-ecosystem .kd-assistant [hidden] { display:none; }
#kd-ecosystem .kd-assistant button { cursor:pointer; font:inherit; }
#kd-ecosystem .kd-assistant button:disabled { opacity:.45; cursor:default; }
#kd-ecosystem .kd-assistant button:focus-visible, #kd-ecosystem .kd-assistant textarea:focus-visible, #kd-ecosystem .kd-bot-launcher:focus-visible { outline:2px solid var(--ke-accent); outline-offset:3px; }
#kd-ecosystem .kd-assistant svg, #kd-ecosystem .kd-bot-launcher > svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#kd-ecosystem .kd-bot-header { display:flex; align-items:center; gap:10px; padding:16px; border-bottom:1px solid var(--ke-line); flex-shrink:0; }
#kd-ecosystem .kd-bot-heading { flex:1; min-width:0; }
#kd-ecosystem .kd-bot-heading h2 { font-size:16px; line-height:1.3; letter-spacing:normal; }
#kd-ecosystem .kd-bot-heading p { color:var(--ke-muted); font-size:11px; margin-top:3px; }
#kd-ecosystem .kd-bot-avatar { width:48px; height:48px; flex-shrink:0; }
#kd-ecosystem .kd-bot-close { display:grid; place-items:center; border:0; background:none; color:var(--ke-muted); width:32px; height:32px; border-radius:8px; }
#kd-ecosystem .kd-bot-messages { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:20px; }
#kd-ecosystem .kd-bot-message { margin-bottom:22px; overflow-wrap:anywhere; }
#kd-ecosystem .kd-bot-role { font-size:11px; color:var(--ke-muted); font-weight:600; margin-bottom:6px; }
#kd-ecosystem .kd-bot-user { margin-inline-start:32px; padding:10px 14px; background:var(--ke-tint); border-radius:16px 16px 4px 16px; }
#kd-ecosystem .kd-bot-text { white-space:pre-wrap; }
#kd-ecosystem .kd-bot-text a { color:var(--ke-accent); text-decoration:underline; }
#kd-ecosystem .kd-bot-system { text-align:center; color:var(--ke-muted); font-size:12px; margin:16px 0; }
#kd-ecosystem .kd-bot-welcome { text-align:center; color:var(--ke-muted); padding:28px 8px; }
#kd-ecosystem .kd-bot-welcome .kd-bot-mascot { width:90px; height:90px; margin:0 auto 18px; }
#kd-ecosystem .kd-bot-welcome h3 { color:var(--ke-ink); font-size:22px; margin-bottom:8px; letter-spacing:normal; }
#kd-ecosystem .kd-bot-welcome p { font-size:13px; }
#kd-ecosystem .kd-bot-footer { border-top:1px solid var(--ke-line); padding:12px 14px 10px; flex-shrink:0; }
#kd-ecosystem .kd-bot-footer form { display:flex; position:relative; }
#kd-ecosystem .kd-bot-footer textarea { resize:none; width:100%; border:1px solid var(--ke-input-line); background:var(--ke-input); color:var(--ke-ink); border-radius:14px; min-height:68px; max-height:120px; padding:12px 14px; padding-inline-end:54px; font:inherit; }
#kd-ecosystem .kd-bot-send { position:absolute; inset-inline-end:8px; bottom:8px; width:36px; height:36px; border:0; border-radius:10px; color:#fff; background:var(--ke-accent); display:grid; place-items:center; }
#kd-ecosystem .kd-bot-hint { color:var(--ke-muted); font-size:10px; text-align:center; margin-top:7px; }
#kd-ecosystem .kd-bot-privacy { display:block; text-align:center; font-size:10px; color:var(--ke-muted); text-decoration:underline; }
#kd-ecosystem .kd-bot-error, #kd-ecosystem .kd-bot-failed { color:var(--ke-error); font-size:12px; }
#kd-ecosystem .kd-bot-error { padding:8px 16px; }
#kd-ecosystem .kd-bot-verification { padding:6px 14px; max-height:180px; overflow:auto; flex-shrink:0; }
#kd-ecosystem .kd-bot-verification p, #kd-ecosystem .kd-bot-verification button { font-size:12px; }
#kd-ecosystem .kd-bot-progress { display:flex; align-items:center; gap:9px; color:var(--ke-muted); font-size:13px; }
#kd-ecosystem .kd-bot-dots { display:inline-flex; gap:4px; flex-shrink:0; }
#kd-ecosystem .kd-bot-dots i { width:6px; height:6px; border-radius:50%; background:var(--ke-accent); animation:kd-dot 1.2s ease-in-out infinite; }
#kd-ecosystem .kd-bot-dots i:nth-child(2) { animation-delay:.15s; }
#kd-ecosystem .kd-bot-dots i:nth-child(3) { animation-delay:.3s; }
#kd-ecosystem .kd-bot-older { display:block; margin:0 auto 14px; background:none; color:var(--ke-accent); border:0; font-size:12px; }
#kd-ecosystem .kd-bot-launcher { position:fixed; inset-inline-end:20px; bottom:20px; z-index:1090; width:110px; height:110px; padding:0; background:transparent; color:var(--ke-ink); border:1px solid transparent; border-radius:50%; cursor:pointer; transition:width .3s,height .3s,background .25s; }
#kd-ecosystem .kd-bot-mascot { display:block; position:relative; width:100%; height:100%; }
#kd-ecosystem .kd-bot-mascot::after { content:''; position:absolute; bottom:1%; left:30%; width:40%; height:8%; border-radius:50%; background:#000; filter:blur(2px); opacity:.22; animation:kd-shadow 3.6s ease-in-out infinite; }
#kd-ecosystem .kd-bot-motion { position:relative; z-index:1; display:block; width:100%; height:100%; overflow:hidden; animation:kd-hover 3.6s ease-in-out infinite; }
#kd-ecosystem .kd-bot-motion img { display:block; width:200%; max-width:none; height:100%; animation:kd-blink 4s steps(1,end) infinite; }
#kd-ecosystem .kd-bot-launcher > svg { position:absolute; top:50%; left:50%; opacity:0; transform:translate(-50%,-50%) scale(.6) rotate(90deg); transition:transform .3s,opacity .2s; }
#kd-ecosystem .kd-bot-open { width:61px; height:61px; border-color:var(--ke-line); background:var(--ke-soft-surface); box-shadow:0 5px 18px #22242b29; }
#kd-ecosystem .kd-bot-open > .kd-bot-mascot { display:none; }
#kd-ecosystem .kd-bot-open > svg { opacity:1; transform:translate(-50%,-50%) scale(1); }
@keyframes kd-hover { 0%,100% { transform:translate3d(0,0,0); } 50% { transform:translate3d(0,-6%,0); } }
@keyframes kd-shadow { 0%,100% { transform:scaleX(1); opacity:.22; } 50% { transform:scaleX(.78); opacity:.12; } }
@keyframes kd-blink { 0%,66.24%,70%,100% { transform:translateX(0); } 66.25%,69.99% { transform:translateX(-50%); } }
@keyframes kd-dot { 0%,80%,100% { transform:scale(.7); opacity:.4; } 40% { transform:scale(1); opacity:1; } }
@media(max-width:575px) { #kd-ecosystem .kd-assistant { inset-inline-end:8px; bottom:88px; max-width:calc(100vw - 16px); max-height:calc(100dvh - 104px); } #kd-ecosystem .kd-bot-header { padding:12px; } #kd-ecosystem .kd-bot-heading h2 { font-size:14px; } #kd-ecosystem .kd-bot-avatar { width:38px; height:38px; } }
@media(prefers-reduced-motion:reduce) { #kd-ecosystem .kd-bot-motion, #kd-ecosystem .kd-bot-motion img, #kd-ecosystem .kd-bot-mascot::after, #kd-ecosystem .kd-bot-dots i { animation:none; } #kd-ecosystem .kd-bot-launcher { transition:none; } }
