:root{--violet: #8b5cf6;--fuchsia: #d946ef;--purple-deep: #6d28d9;--grad: linear-gradient(135deg, #8b5cf6 0%, #d946ef 100%);--text: #f5f3ff;--muted: #c4b5fd;--card: rgba(30, 12, 58, .55);--card-border: rgba(196, 181, 253, .18);--bubble-assistant: rgba(255, 255, 255, .08);--bubble-border: rgba(196, 181, 253, .16);--error-bg: rgba(244, 63, 94, .16);--error-border: rgba(244, 63, 94, .4);--error-text: #fecdd3}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:#150a2e;background:radial-gradient(1200px 800px at 15% -10%,#3b0a6b 0%,transparent 55%),radial-gradient(1000px 700px at 110% 20%,#7c1d95 0%,transparent 50%),linear-gradient(160deg,#1a0938,#2a1055 55%,#1a0b33);overflow:hidden}.app{position:relative;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;z-index:0;animation:float 14s ease-in-out infinite}.blob-1{width:340px;height:340px;background:#a855f7;top:-60px;left:-40px}.blob-2{width:300px;height:300px;background:#ec4899;bottom:-80px;right:-30px;animation-delay:-5s}.blob-3{width:240px;height:240px;background:#6366f1;top:40%;left:60%;animation-delay:-9s}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,-30px) scale(1.1)}}.chat-card{position:relative;z-index:1;width:100%;max-width:640px;height:min(88vh,780px);display:flex;flex-direction:column;background:var(--card);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--card-border);border-radius:26px;box-shadow:0 30px 80px #14052d99;overflow:hidden}.header{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--card-border);background:#ffffff0a}.header-text h1{margin:0;font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.header-text p{margin:2px 0 0;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}.dot-online{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399}.subtitle-short{display:none}.header-actions{margin-left:auto;position:relative;flex-shrink:0}.kebab-btn{width:30px;height:30px;display:grid;place-items:center;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:color .2s ease,background-color .2s ease}.kebab-btn:hover{color:var(--text);background:#ffffff14}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.menu-popover{position:absolute;top:38px;right:0;z-index:21;min-width:150px;padding:6px;background:#2a1550;border:1px solid var(--card-border);border-radius:12px;box-shadow:0 14px 34px #14052d99;animation:pop .14s ease}.menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;border:none;border-radius:8px;background:transparent;color:var(--text);font-family:inherit;font-size:13.5px;cursor:pointer;transition:background-color .2s ease}.menu-item:hover{background:#ffffff14}.avatar{position:relative;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--grad);color:#fff}.avatar img{position:absolute;left:50%;bottom:-1px;transform:translate(-50%);height:128%;width:auto;max-width:none;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px rgba(20,5,45,.45))}.avatar-lg{width:64px;height:64px;box-shadow:0 0 0 2px #d946ef8c,0 0 22px #a855f7b3}.avatar-sm{width:44px;height:44px;font-size:20px}.avatar-fallback{font-size:1.1em;line-height:1}.messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:rgba(196,181,253,.4) transparent}.messages::-webkit-scrollbar{width:7px}.messages::-webkit-scrollbar-thumb{background:#c4b5fd59;border-radius:8px}.row{display:flex;align-items:flex-end;gap:10px;max-width:88%;animation:pop .25s ease}.row-user{align-self:flex-end;flex-direction:row-reverse}.row-assistant,.row-error{align-self:flex-start}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg{display:flex;flex-direction:column;min-width:0}.bubble{padding:11px 15px;border-radius:18px;line-height:1.55;font-size:14.5px;white-space:pre-wrap;word-wrap:break-word}.bubble-user{background:var(--grad);color:#fff;border-bottom-right-radius:5px;box-shadow:0 6px 18px #d946ef4d}.bubble-assistant{background:var(--bubble-assistant);border:1px solid var(--bubble-border);border-bottom-left-radius:5px;color:var(--text)}.bubble-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-bottom-left-radius:5px}.bubble-typing{padding:9px 13px}.meta{margin-top:7px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.meta-label{font-weight:500}.source-tag{background:#8b5cf62e;border:1px solid rgba(196,181,253,.28);color:#ddd6fe;padding:2px 9px;border-radius:999px;font-size:11px}.no-retrieval{font-style:italic;color:#a5b4fc}.empty{margin:auto;text-align:center;color:var(--muted)}.empty-emoji{font-size:40px;margin-bottom:8px;animation:wave 2s ease-in-out infinite;transform-origin:70% 70%;display:inline-block}@keyframes wave{0%,60%,to{transform:rotate(0)}20%{transform:rotate(16deg)}40%{transform:rotate(-8deg)}}.empty p{margin:0 auto 16px;font-size:14px;max-width:340px;text-align:center;line-height:1.6}.empty p strong{color:#f5f3ff;font-weight:600}.suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{background:#ffffff0f;border:1px solid var(--card-border);color:var(--text);padding:8px 14px;border-radius:999px;font-family:inherit;font-size:12.5px;cursor:pointer;transition:background-color .5s ease,background .5s ease,border-color .5s ease}.chip:hover{background:var(--grad);border-color:transparent}.typing-dots{display:inline-flex;gap:4px;padding:2px 0}.typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:bounce 1.2s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.composer{display:flex;align-items:stretch;gap:10px;padding:14px 16px;border-top:1px solid var(--card-border);background:#ffffff0a}.composer textarea{flex:1;resize:none;padding:12px 16px;border:1px solid var(--card-border);border-radius:16px;font-size:14.5px;font-family:inherit;background:#ffffff0f;color:var(--text);max-height:140px;transition:border-color .18s ease,box-shadow .18s ease}.composer textarea::placeholder{color:#c4b5fd99}.composer-blocked{justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.blocked-text{font-size:13.5px;color:var(--muted)}.ok-btn{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 28px;border:none;border-radius:12px;background:var(--grad);color:#fff;font-family:inherit;font-size:14px;font-weight:600;line-height:1;text-align:center;cursor:pointer;box-shadow:0 6px 18px #d946ef66}.ok-btn-inline{align-self:center;margin-top:14px;height:46px;padding:0 40px;font-size:15px;letter-spacing:.3px;animation:okPulse 1.8s ease-in-out infinite}@keyframes okPulse{0%,to{transform:scale(1);box-shadow:0 6px 18px #d946ef66}50%{transform:scale(1.06);box-shadow:0 8px 26px #d946ef99}}.reset-cta{flex:1;height:46px;border:none;border-radius:14px;background:var(--grad);color:#fff;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;box-shadow:0 6px 18px #d946ef66}.composer textarea:focus{outline:none;border-color:var(--fuchsia);box-shadow:0 0 0 3px #d946ef2e}.composer button{width:46px;align-self:stretch;flex-shrink:0;border:none;border-radius:14px;background:var(--grad);color:#fff;cursor:pointer;display:grid;place-items:center;transition:box-shadow .15s ease,opacity .15s ease;box-shadow:0 6px 18px #d946ef66}.composer button svg{transform:scaleX(-1)}.composer button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.halfway-badge{align-self:center;margin:2px 0;padding:5px 14px;border-radius:999px;font-size:11.5px;color:var(--muted);background:#ffffff0d;border:1px solid var(--card-border);animation:pop .25s ease}.goodbye-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:#14052da8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:gbFade .3s ease}.goodbye-card{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}@keyframes gbFade{0%{opacity:0}to{opacity:1}}.goodbye-face{position:relative;width:180px;height:180px;border-radius:50%;overflow:hidden;background:var(--grad);box-shadow:0 0 0 3px #d946ef80,0 0 34px #a855f7b3,0 18px 44px #14052d99;will-change:transform}.goodbye-face .gb-smile,.goodbye-face .gb-wink{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:translateZ(0);backface-visibility:hidden;will-change:opacity}.goodbye-face-emoji{background:transparent;box-shadow:none;overflow:visible}.goodbye-face-emoji .gb-smile,.goodbye-face-emoji .gb-wink{display:grid;place-items:center;font-size:150px;line-height:1}.gb-smile{opacity:1;animation:gbSmile 2.8s steps(1,end) .9s infinite}.gb-wink{opacity:0;animation:gbWink 2.8s steps(1,end) .9s infinite}@keyframes gbSmile{0%,36%{opacity:1}38%,46%{opacity:0}48%,to{opacity:1}}@keyframes gbWink{0%,36%{opacity:0}38%,46%{opacity:1}48%,to{opacity:0}}.goodbye-text,.goodbye-hint{margin:0;opacity:0;animation:gbTextIn .45s ease .55s forwards}.goodbye-hint{animation-delay:.72s}@keyframes gbTextIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.goodbye-text{font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.goodbye-hint{font-size:12.5px;color:var(--muted)}@media (max-width: 560px){.app{padding:0}.chat-card{height:100vh;height:100dvh;max-width:100%;border-radius:0;border:none}.header{gap:10px;padding:12px 14px;padding-top:calc(12px + env(safe-area-inset-top))}.avatar-lg{width:50px;height:50px}.avatar-lg img{height:108%;bottom:1px}.header-text h1{font-size:19px}.header-text p{font-size:11px;align-items:center;line-height:1.5}.subtitle-full{display:none}.subtitle-short{display:inline}.header-text .dot-online{margin-top:0}.messages{padding:16px 14px;gap:13px}.row{max-width:88%}.bubble{font-size:13.5px;padding:9px 13px;line-height:1.5}.bubble-typing{padding:8px 12px}.typing-dots span{width:6px;height:6px}.composer{gap:8px;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.composer textarea{font-size:16px;padding:11px 14px}.empty-emoji{font-size:44px}}@media (max-width: 360px){.composer button{width:42px}}
