*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a0a;--bg-secondary: #141414;--bg-card: #1a1a1a;--bg-input: #222222;--accent: #4f8ef7;--accent-hover: #6aa3ff;--text-primary: #f0f0f0;--text-secondary: #888888;--text-muted: #555555;--border: #2a2a2a;--user-bubble: #1e3a5f;--assistant-bubble: #1a1a1a;--error: #e05555;--success: #4caf7d;--radius: 16px;--radius-sm: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}.loading-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.loading-logo{font-size:2rem;font-weight:700;letter-spacing:.2em;color:var(--accent)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:24px}.login-logo{display:flex;flex-direction:column;align-items:center;gap:4px}.logo-dli{font-size:3rem;font-weight:800;letter-spacing:.3em;color:var(--accent)}.logo-chat{font-size:1rem;color:var(--text-secondary);letter-spacing:.1em}.login-subtitle{text-align:center;font-size:.8rem;color:var(--text-muted)}.login-form{display:flex;flex-direction:column;gap:12px}.login-input{width:100%;padding:14px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;outline:none}.login-input:focus{border-color:var(--accent)}.btn-primary{width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-message{text-align:center;font-size:.875rem;padding:10px;border-radius:var(--radius-sm)}.login-message.success{background:#4caf7d1a;color:var(--success)}.login-message.error{background:#e055551a;color:var(--error)}.chat-screen{height:100vh;display:flex;flex-direction:column}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;padding-top:max(12px,env(safe-area-inset-top))}.chat-header-left{display:flex;align-items:center;gap:8px}.header-logo{font-size:1.1rem;font-weight:800;letter-spacing:.15em;color:var(--accent)}.header-title{font-size:.9rem;color:var(--text-secondary)}.chat-header-right{display:flex;gap:8px}.icon-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:6px;border-radius:var(--radius-sm);color:var(--text-secondary)}.message-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.message-list.empty{align-items:center;justify-content:center}.empty-state{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary)}.empty-icon{font-size:3rem}.empty-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.empty-subtitle{font-size:.875rem;max-width:260px;line-height:1.5}.message-bubble{max-width:85%;padding:12px 16px;border-radius:var(--radius);font-size:.95rem;line-height:1.5;display:flex;flex-direction:column;gap:6px}.message-bubble.user{align-self:flex-end;background:var(--user-bubble);border-bottom-right-radius:4px}.message-bubble.assistant{align-self:flex-start;background:var(--assistant-bubble);border:1px solid var(--border);border-bottom-left-radius:4px}.message-bubble.loading{flex-direction:row;gap:6px;align-items:center;padding:14px 20px}.assistant-label{font-size:.7rem;color:var(--accent);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.message-content{white-space:pre-wrap;word-break:break-word}.mcp-tag{font-size:.7rem;color:var(--text-muted);background:var(--bg-input);padding:3px 8px;border-radius:99px;align-self:flex-start}.typing-dot{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:pulse 1.2s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.chat-input-area{flex-shrink:0;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.text-input-row{display:flex;gap:8px;align-items:center}.chat-text-input{flex:1;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:99px;color:var(--text-primary);font-size:.95rem;outline:none}.chat-text-input:focus{border-color:var(--accent)}.send-btn{width:44px;height:44px;background:var(--accent);border:none;border-radius:50%;color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.send-btn:disabled{opacity:.4;cursor:not-allowed}.voice-input-area{display:flex;flex-direction:column;align-items:center;gap:10px}.voice-transcript{width:100%;padding:10px 14px;background:var(--bg-input);border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-secondary);font-style:italic}.voice-btn{display:flex;align-items:center;gap:10px;padding:14px 28px;background:var(--bg-card);border:2px solid var(--border);border-radius:99px;color:var(--text-primary);font-size:1rem;cursor:pointer;width:100%;justify-content:center}.voice-btn.listening{border-color:var(--accent);background:#4f8ef71a;animation:voice-pulse 1.5s ease-in-out infinite}.voice-btn.disabled{opacity:.4;cursor:not-allowed}@keyframes voice-pulse{0%,to{box-shadow:0 0 #4f8ef74d}50%{box-shadow:0 0 0 8px #4f8ef700}}.voice-icon{font-size:1.4rem}.voice-label{font-size:.9rem;color:var(--text-secondary)}.voice-unsupported{text-align:center;color:var(--text-muted);font-size:.875rem;padding:12px}.chat-error{font-size:.8rem;color:var(--error);text-align:center}
