.kei-launcher{right:max(1.25rem, var(--sa-right,0px));bottom:calc(max(1.25rem, var(--sa-bottom,0px)) + var(--mini-player-h,0px));z-index:95;cursor:pointer;width:3.5rem;height:3.5rem;box-shadow:0 0 0 3px var(--color-bg), 0 12px 28px -10px #4c66e699;background:radial-gradient(circle at 50% 30%,#9fb2ff 0%,#6c8cff 55%,#5670e6 100%);border-radius:9999px;padding:0;transition:transform .18s,box-shadow .18s;position:fixed;overflow:hidden}.kei-launcher img{-o-object-fit:cover;object-fit:cover;width:100%;max-width:none;height:100%;display:block;transform:translateY(5px)scale(1.12)}.kei-launcher:hover{box-shadow:0 0 0 3px var(--color-bg), 0 16px 32px -10px #4c66e6b3;transform:translateY(-2px)}.kei-launcher:focus-visible{outline-offset:4px;outline:2px solid #6c8cff}.kei-stage{--kei-accent:#4f6bea;right:max(1.25rem, var(--sa-right,0px));bottom:calc(max(1.25rem, var(--sa-bottom,0px)) + var(--mini-player-h,0px));z-index:96;width:400px;height:min(720px, calc(100dvh - max(1.25rem, var(--sa-top,0px)) - max(1.25rem, var(--sa-bottom,0px)) - var(--mini-player-h,0px)));isolation:isolate;border:1px solid var(--color-border);color:var(--color-text);transform-origin:100% 100%;background:radial-gradient(85% 52% at 50% 30%,#6c8cff4d,#0000 72%),linear-gradient(#e6eaff 0%,#f3f5fc 55%,#f6f6f9 100%);border-radius:24px;animation:.26s cubic-bezier(.2,.8,.2,1) kei-rise;position:fixed;overflow:hidden;box-shadow:0 32px 80px -24px #14183c73}:root.dark .kei-stage{--kei-accent:#a3b4ff;background:radial-gradient(85% 52% at 50% 30%,#6c8cff57,#0000 72%),linear-gradient(#1d2440 0%,#151a2b 58%,#11141f 100%);box-shadow:0 32px 80px -24px #000000bf}.kei-halo{z-index:0;aspect-ratio:1;pointer-events:none;border:1px solid #6c8cff33;border-radius:9999px;width:112%;position:absolute;top:30%;left:50%;translate:-50% -50%;box-shadow:inset 0 0 0 40px #6c8cff0a}.kei-canvas{z-index:1;touch-action:manipulation;width:100%;height:100%;position:absolute;inset:0}.kei-still{z-index:1;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;max-width:none;height:auto;transition:left .3s,top .3s,width .3s;position:absolute}.kei-head{z-index:3;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;top:14px;left:14px;right:14px}.kei-head>*{pointer-events:auto}.kei-glass{background:color-mix(in srgb, var(--color-bg) 74%, transparent);border:1px solid color-mix(in srgb, var(--color-border) 75%, transparent);backdrop-filter:blur(12px)}.kei-tag{border-radius:9999px;align-items:baseline;gap:8px;min-width:0;padding:6px 13px 7px;font-size:14px;line-height:1.3;display:flex}.kei-tag strong{letter-spacing:.01em;font-weight:650}.kei-tag span{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.kei-actions{gap:6px;display:flex}.kei-iconbtn{width:36px;height:36px;color:var(--color-muted);cursor:pointer;border-radius:9999px;place-items:center;transition:color .15s;display:grid}.kei-iconbtn:hover{color:var(--color-text)}.kei-iconbtn svg{width:18px;height:18px}.kei-aside{z-index:3;border-radius:14px 14px 14px 4px;max-width:72%;padding:8px 12px;font-size:13px;line-height:1.55;animation:.2s ease-out kei-pop;position:absolute;top:62px;left:14px}.kei-dialog{z-index:2;background:color-mix(in srgb, var(--color-bg) 90%, transparent);border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);backdrop-filter:blur(18px)saturate(1.2);border-radius:20px;flex-direction:column;transition:border-color .15s;display:flex;position:absolute;inset:48% 12px 34px;box-shadow:0 18px 40px -18px #14183c59}.kei-dialog:focus-within{border-color:color-mix(in srgb, #6c8cff 55%, var(--color-border))}.kei-log{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-muted) 40%, transparent) transparent;flex:auto;min-height:0;padding:14px 16px 10px;overflow-y:auto}.kei-log::-webkit-scrollbar{width:10px}.kei-log::-webkit-scrollbar-track{background:0 0;margin:10px 0}.kei-log::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-muted) 38%, transparent);background-clip:padding-box;border:3px solid #0000;border-radius:9999px}.kei-log:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--color-muted) 60%, transparent)}.kei-history{border-bottom:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);width:100%;color:var(--color-muted);text-align:left;cursor:pointer;border-radius:20px 20px 0 0;flex:none;align-items:center;gap:6px;padding:9px 16px 8px 12px;font-size:12.5px;transition:color .15s,background .15s;display:flex}.kei-history:hover,.kei-history:focus-visible{color:var(--color-text);background:color-mix(in srgb, var(--color-surface) 70%, transparent);outline:none}.kei-history svg{flex:none;width:14px;height:14px;transition:transform .15s}.kei-history[aria-expanded=true] svg{transform:rotate(90deg)}.kei-greet{font-size:15px;font-weight:500;line-height:1.65}.kei-chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.kei-chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:9999px;padding:5px 11px 6px;font-size:13px;line-height:1.4;transition:border-color .15s,color .15s}.kei-chip:hover:not(:disabled),.kei-chip:focus-visible:not(:disabled){border-color:color-mix(in srgb, #6c8cff 70%, var(--color-border));color:var(--kei-accent);outline:none}.kei-chip:disabled{opacity:.5;cursor:not-allowed}.kei-fine{color:var(--color-muted);margin-top:10px;font-size:12px;line-height:1.55}.kei-offline-note{border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);background:color-mix(in srgb, var(--color-surface) 80%, transparent);color:var(--color-text);border-radius:8px;padding:7px 9px}.kei-turn+.kei-turn{border-top:1px dashed var(--color-border);margin-top:14px;padding-top:14px}.kei-q{justify-content:flex-end;display:flex}.kei-q p{color:#fff;overflow-wrap:anywhere;background:#6c8cff;border-radius:14px 14px 4px;max-width:85%;padding:6px 12px 7px;font-size:14px;line-height:1.55}.kei-a{overflow-wrap:anywhere;margin-top:8px;font-size:14.5px;line-height:1.75}.kei-a>*+*{margin-top:.5em}.kei-a ul{padding-left:1.2em;list-style:outside}.kei-a ol{padding-left:1.3em;list-style:decimal}.kei-a li+li{margin-top:.2em}.kei-a strong{font-weight:650}.kei-a code{background:var(--color-surface);border-radius:4px;padding:.1em .35em;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}.kei-a pre{background:var(--color-surface);border-radius:8px;padding:8px 10px;font-size:12.5px;line-height:1.55;overflow-x:auto}.kei-a pre code{background:0 0;padding:0}.kei-a a{color:var(--kei-accent);text-underline-offset:3px;text-decoration:underline 1px}.kei-a.is-refusal,.kei-a.is-error{color:var(--color-muted)}.kei-thinking{color:var(--color-muted);align-items:center;gap:10px;margin-top:8px;font-size:13.5px;display:inline-flex}.kei-dots{gap:4px;display:inline-flex}.kei-dots i{background:currentColor;border-radius:9999px;width:5px;height:5px;animation:1.1s ease-in-out infinite kei-dot}.kei-dots i:nth-child(2){animation-delay:.15s}.kei-dots i:nth-child(3){animation-delay:.3s}.kei-refs{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.kei-refs>span{color:var(--color-muted);font-size:12px}.kei-ref{border:1px solid var(--color-border);background:var(--color-surface);max-width:100%;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:8px;padding:3px 10px 4px;font-size:12.5px;line-height:1.45;transition:border-color .15s,color .15s;overflow:hidden}.kei-ref:hover,.kei-ref:focus-visible{border-color:color-mix(in srgb, #6c8cff 70%, var(--color-border));color:var(--kei-accent);outline:none}.kei-ask{border-top:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);align-items:center;gap:8px;padding:6px 6px 6px 16px;display:flex}.kei-ask input{min-width:0;height:40px;color:var(--color-text);background:0 0;border:0;outline:none;flex:1;font-size:15px}.kei-ask input::-moz-placeholder{color:var(--color-muted)}.kei-ask input::placeholder{color:var(--color-muted)}.kei-ask input:disabled{opacity:.5;cursor:not-allowed}.kei-send{color:#fff;cursor:pointer;background:#6c8cff;border-radius:9999px;flex:none;place-items:center;width:40px;height:40px;transition:opacity .15s,background .15s;display:grid}.kei-send:hover:not(:disabled){background:#5a7bf5}.kei-send:disabled{opacity:.35;cursor:not-allowed}.kei-send svg{width:18px;height:18px}.kei-send:focus-visible,.kei-iconbtn:focus-visible{outline-offset:2px;outline:2px solid #6c8cff}.kei-credit{z-index:2;color:var(--color-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;line-height:16px;position:absolute;bottom:9px;left:16px;right:16px;overflow:hidden}.kei-credit a{color:inherit;text-underline-offset:2px;text-decoration:underline 1px}.kei-credit a:hover{color:var(--color-text)}.kei-note{color:var(--color-muted);margin-top:6px;font-size:12.5px}.kei-stage.is-collapsed .kei-dialog{top:auto}.kei-stage.is-collapsed .kei-ask{border-top:0}.kei-resize{z-index:6;position:absolute}.kei-resize-n,.kei-resize-s{cursor:ns-resize;height:7px;left:28px;right:28px}.kei-resize-n{top:0}.kei-resize-s{bottom:0}.kei-resize-e,.kei-resize-w{cursor:ew-resize;width:7px;top:28px;bottom:28px}.kei-resize-e{right:0}.kei-resize-w{left:0}.kei-resize-ne,.kei-resize-nw,.kei-resize-se,.kei-resize-sw{width:28px;height:28px}.kei-resize-nw{cursor:nwse-resize;top:0;left:0}.kei-resize-se{cursor:nwse-resize;bottom:0;right:0}.kei-resize-ne{cursor:nesw-resize;top:0;right:0}.kei-resize-sw{cursor:nesw-resize;bottom:0;left:0}@media (width>=640px){.kei-head{pointer-events:auto;cursor:grab;touch-action:none}.kei-head button{cursor:pointer}}.kei-stage.is-gesturing{-webkit-user-select:none;-moz-user-select:none;user-select:none}.kei-stage.is-gesturing .kei-head{cursor:grabbing}.kei-stage.is-gesturing .kei-still{transition:none}@media (width<=639px){.kei-stage{transform-origin:50% 100%;border:0;border-radius:0;width:auto;height:100dvh;inset:0}.kei-head{top:calc(12px + var(--sa-top,0px))}.kei-aside{top:calc(60px + var(--sa-top,0px))}.kei-dialog{left:10px;right:10px;bottom:calc(32px + var(--sa-bottom,0px))}.kei-credit{bottom:calc(8px + var(--sa-bottom,0px))}.kei-ask input{font-size:16px}}@keyframes kei-rise{0%{opacity:0;transform:translateY(14px)scale(.98)}}@keyframes kei-pop{0%{opacity:0;transform:translateY(4px)}}@keyframes kei-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.kei-stage,.kei-aside{animation:none}.kei-still{transition:none}.kei-dots i{opacity:.6;animation:none}}
