*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--rose: #E91E8C;--violet: #8B5CF6;--bg: #F6F4F0;--text: #1A1A1A;--text-secondary: #5E5E6A;--white: #ffffff;--shadow-violet: rgba(139, 92, 246, .08);--border-subtle: rgba(139, 92, 246, .15);--gradient: linear-gradient(135deg, var(--rose), var(--violet))}html,body,#app{height:100%}body{font-family:Outfit,sans-serif;background-color:var(--bg);color:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100dvh;max-width:780px;margin:0 auto;padding:0 20px}.consent-overlay{position:fixed;inset:0;background:#f6f4f0d9;backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;padding:24px 20px;z-index:100}.consent-card{background:var(--white);border:1px solid var(--border-subtle);border-radius:24px;padding:28px 32px;max-width:600px;width:100%;box-shadow:0 8px 32px var(--shadow-violet)}.consent-card p{font-size:14px;color:var(--text-secondary);line-height:1.7;margin-bottom:20px}.consent-card a{color:var(--violet);text-decoration:underline;text-underline-offset:3px}.btn-consent{font-family:Sora,sans-serif;font-weight:600;font-size:15px;color:var(--white);background:var(--gradient);border:none;border-radius:100px;padding:12px 28px;cursor:pointer;transition:opacity .2s;width:100%}.btn-consent:hover{opacity:.9}.chat-area{flex:1;overflow-y:auto;padding:24px 0;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:var(--border-subtle) transparent}.chat-area::-webkit-scrollbar{width:4px}.chat-area::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:100px}.message{display:flex;max-width:72%}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.bubble{padding:14px 18px;border-radius:24px;font-size:15px;line-height:1.65}.message.user .bubble{background:var(--gradient);color:var(--white);border-bottom-right-radius:6px}.message.assistant .bubble{background:#ffffffd1;border:1px solid rgba(255,255,255,.7);color:var(--text);border-bottom-left-radius:6px;box-shadow:0 2px 12px var(--shadow-violet)}.bubble strong{font-weight:600}.bubble em{font-style:italic}.bubble code{font-family:Outfit,monospace;font-size:13px;background:#8b5cf614;border-radius:4px;padding:1px 5px}.bubble a{color:var(--violet);text-decoration:underline;text-underline-offset:3px}.typing-indicator{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:12px 18px;background:#ffffffd1;border:1px solid rgba(255,255,255,.7);border-radius:24px 24px 24px 6px;box-shadow:0 2px 12px var(--shadow-violet);max-width:140px}.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--violet);opacity:.4;animation:typing-bounce 1.2s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}.input-area{padding:16px 0 24px;flex-shrink:0}.input-row{display:flex;gap:10px;align-items:center;background:var(--white);border:1px solid var(--border-subtle);border-radius:100px;padding:8px 8px 8px 20px;box-shadow:0 2px 12px var(--shadow-violet);transition:border-color .2s,box-shadow .2s}.input-row:focus-within{border-color:var(--violet);box-shadow:0 2px 20px #8b5cf626}.chat-input{flex:1;border:none;outline:none;font-family:Outfit,sans-serif;font-size:15px;color:var(--text);background:transparent;resize:none;min-height:24px;max-height:120px;line-height:1.5}.chat-input::placeholder{color:var(--text-secondary)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.btn-send{font-family:Sora,sans-serif;font-weight:600;font-size:14px;color:var(--white);background:var(--gradient);border:none;border-radius:100px;padding:10px 20px;cursor:pointer;transition:opacity .2s;flex-shrink:0;white-space:nowrap}.btn-send:hover:not(:disabled){opacity:.9}.btn-send:disabled{opacity:.4;cursor:not-allowed}.error-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:40px 20px}.error-screen h2{font-family:Sora,sans-serif;font-size:20px;font-weight:600;color:var(--text)}.error-screen p{font-size:15px;color:var(--text-secondary);max-width:420px;line-height:1.7}.btn-retry{font-family:Sora,sans-serif;font-weight:600;font-size:14px;color:var(--white);background:var(--gradient);border:none;border-radius:100px;padding:12px 28px;cursor:pointer;transition:opacity .2s;margin-top:8px}.btn-retry:hover{opacity:.9}@media(max-width:600px){.app{padding:0 20px}.message{max-width:88%}.consent-card{padding:24px 20px}.bubble{font-size:14px}}
