*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a2e;--text-primary: #e0e0e0;--text-secondary: #888;--accent: #00d4ff;--accent-dim: #0099cc;--user-bg: #1e3a5f;--error: #f87171;--success: #4ade80;--border: #2a2a4a}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.6}.app{display:flex;flex-direction:column;height:100vh;max-width:100%;overflow:hidden}.header{background:linear-gradient(135deg,var(--bg-tertiary) 0%,#16213e 100%);border-bottom:1px solid var(--border);padding:1rem 1.5rem;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:900px;margin:0 auto}.header h1{font-size:1.5rem;font-weight:600;color:var(--accent);letter-spacing:-.02em}.status{font-size:.875rem;padding:.25rem .75rem;border-radius:999px;background:var(--bg-secondary)}.status.connected{color:var(--success)}.status.disconnected{color:var(--error)}.chat-container{flex:1;display:flex;flex-direction:column;max-width:900px;width:100%;margin:0 auto;padding:1rem;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem;background:var(--bg-secondary);border-radius:16px;margin-bottom:1rem}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:1rem}.message{max-width:85%;padding:1rem;border-radius:16px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;background:var(--user-bg);border-bottom-right-radius:4px}.message.assistant{align-self:flex-start;background:var(--bg-tertiary);border:1px solid var(--border);border-bottom-left-radius:4px}.message.system{align-self:center;background:transparent;color:var(--error);font-size:.875rem;padding:.5rem}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.75rem}.message-header .role{text-transform:uppercase;letter-spacing:.05em;font-weight:600}.message.user .role{color:#60a5fa}.message.assistant .role{color:var(--accent)}.message-header .time{color:var(--text-secondary)}.message .content{white-space:pre-wrap;word-break:break-word;line-height:1.7}.message.loading{padding:1.25rem 1.5rem}.typing-indicator{display:flex;gap:4px}.typing-indicator span{width:8px;height:8px;background:var(--accent);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.error-banner{background:#f871711a;border:1px solid var(--error);color:var(--error);padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem}.input-area{display:flex;gap:.75rem;background:var(--bg-secondary);padding:1rem;border-radius:16px;border:1px solid var(--border)}.input-area textarea{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:.875rem 1rem;color:var(--text-primary);font-family:inherit;font-size:1rem;resize:none;outline:none;transition:border-color .2s;min-height:48px;max-height:200px}.input-area textarea:focus{border-color:var(--accent)}.input-area textarea::placeholder{color:var(--text-secondary)}.input-area textarea:disabled{opacity:.5;cursor:not-allowed}.input-area button{padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dim) 100%);border:none;border-radius:12px;color:#000;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .1s,opacity .2s;white-space:nowrap}.input-area button:hover:not(:disabled){transform:scale(1.02)}.input-area button:active:not(:disabled){transform:scale(.98)}.input-area button:disabled{opacity:.5;cursor:not-allowed}.messages::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.messages::-webkit-scrollbar-thumb:hover{background:#3a3a5a}@media(max-width:600px){.header{padding:.875rem 1rem}.header h1{font-size:1.25rem}.chat-container{padding:.5rem}.messages{padding:.75rem;border-radius:12px}.message{max-width:90%;padding:.875rem}.input-area{padding:.75rem;border-radius:12px}.input-area button{padding:.875rem 1rem}}
