:root{--background:#09090b;--foreground:#fafafa;--primary:#3b82f6;--primary-hover:#2563eb;--secondary:#27272a;--accent:#8b5cf6;--card:#18181b;--border:#27272a;--radius:16px;--glass-bg:#18181bcc;--glass-blur:blur(12px);--user-bubble:#2563eb;--assistant-bubble:#27272a}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;min-height:100vh;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex}.chat-container{scroll-behavior:smooth;flex:1;width:100%;max-width:900px;margin:0 auto;padding:2rem 1rem 8rem;overflow-y:auto}.message-row{width:100%;margin-bottom:1.5rem;display:flex}.user-row{justify-content:flex-end}.assistant-row{justify-content:flex-start}.bubble{border-radius:var(--radius);max-width:80%;padding:1rem 1.25rem;font-size:.95rem;line-height:1.5;position:relative}.user-bubble{background-color:var(--user-bubble);color:#fff;border-bottom-right-radius:4px}.assistant-bubble{background-color:var(--assistant-bubble);color:var(--foreground);border:1px solid var(--border);border-bottom-left-radius:4px}.input-area{z-index:100;width:90%;max-width:700px;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.glass-input{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:24px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;box-shadow:0 10px 25px -5px #0006}textarea#chat-input{color:var(--foreground);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:200px;padding:.5rem;font-size:1rem}.mode-toggle{justify-content:center;gap:.5rem;margin-bottom:1rem;display:flex}.mode-btn{background:var(--secondary);color:var(--foreground);border:1px solid var(--border);border-radius:20px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;display:flex}.mode-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.3s forwards fadeIn}.typing{gap:4px;padding:4px 0;display:flex}.dot{background:#71717a;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}
