*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #2a2a2a;--text-primary: #e4e4e7;--text-secondary: #a1a1aa;--accent: #6366f1;--accent-hover: #818cf8;--user-bg: #1e1b4b;--border: #333;--radius: 12px}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary)}.app{display:flex;flex-direction:column;align-items:center;height:100%}.app-header{width:100%;padding:16px 24px;border-bottom:1px solid var(--border);text-align:center}.app-header h1{font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.chat-container{display:flex;flex-direction:column;width:100%;max-width:800px;height:calc(100% - 57px);position:relative}.message-list{flex:1;overflow-y:auto;padding:24px 16px 120px;display:flex;flex-direction:column;gap:16px}.message-list::-webkit-scrollbar{width:6px}.message-list::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;color:var(--text-secondary)}.empty-state h2{font-size:28px;font-weight:700;color:var(--text-primary)}.empty-state p{font-size:15px}.message-bubble{max-width:85%;padding:12px 16px;border-radius:var(--radius);font-size:15px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.message-bubble.user{align-self:flex-end;background:var(--user-bg);border-bottom-right-radius:4px}.message-bubble.assistant{align-self:flex-start;background:var(--bg-secondary);border-bottom-left-radius:4px}.message-mode-tag{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-hover);margin-bottom:6px}.message-content{color:var(--text-primary)}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:var(--text-secondary);border-radius:50%;animation:typing 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-input-container{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,var(--bg-primary) 30%)}.chat-input-row{display:flex;align-items:flex-end;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px}.mode-selector{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);color:var(--accent-hover);border:none;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}.mode-selector:hover{background:var(--border)}.mode-selector:disabled{opacity:.5;cursor:not-allowed}.chat-textarea{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:15px;font-family:inherit;line-height:1.5;resize:none;padding:6px 0;max-height:200px}.chat-textarea::placeholder{color:var(--text-secondary)}.send-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:none;background:var(--accent);color:#fff;cursor:pointer;flex-shrink:0;transition:background .15s}.send-button:hover:not(:disabled){background:var(--accent-hover)}.send-button:disabled{opacity:.4;cursor:not-allowed}.mic-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:color .15s,background .15s}.mic-button:hover:not(:disabled){color:var(--text-primary);background:var(--bg-tertiary)}.mic-button.listening{color:#ef4444;background:#ef444426;animation:pulse-mic 1.5s ease-in-out infinite}.mic-button:disabled{opacity:.4;cursor:not-allowed}@keyframes pulse-mic{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 8px #ef444400}}@media (max-width: 640px){.message-bubble{max-width:92%}.chat-input-row{padding:6px 8px}.mode-selector{padding:6px 8px;font-size:12px}}
