.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:420px}.auth-card h1{margin:0 0 10px;font-size:40px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;letter-spacing:-.3px}.auth-subtitle{margin:0 0 30px;font-size:14px;color:#666;text-align:center}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#333}.form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#667eea}.form-hint{font-size:12px;color:#999}.error-message{padding:12px;background:#fee;color:#c33;border-radius:6px;font-size:14px;text-align:center}.auth-button{padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-footer{margin:20px 0 0;text-align:center;font-size:14px;color:#666}.auth-footer a{color:#667eea;text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}.auth-divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:#999;font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid #e0e0e0}.auth-divider span{padding:0 10px}.google-auth-button{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:#fff;color:#444;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s;margin-bottom:10px}.google-auth-button:hover{background:#f8f8f8;border-color:silver;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.google-auth-button svg{flex-shrink:0}.loading-spinner{width:40px;height:40px;margin:0 auto;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.terms-notice{margin:16px 0 0;text-align:center;font-size:12px;color:#999;line-height:1.5}.terms-notice a{color:#667eea;text-decoration:none}.terms-notice a:hover{text-decoration:underline}.password-requirements{margin-top:8px;padding:12px;background:#f8f9fa;border-radius:6px;border:1px solid #e0e0e0}.requirement{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px;transition:color .2s}.requirement:last-child{margin-bottom:0}.requirement.met{color:#22c55e}.requirement.unmet{color:#94a3b8}.requirement-icon{font-weight:700;font-size:14px;width:16px;display:inline-block}.requirement-text{flex:1}.chat-container{display:flex;flex-direction:column;height:100%;flex:1;background:#fff}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.chat-header h1{margin:0;font-size:1.5rem;color:#111827;flex:1;min-width:0}.chat-header .new-chat-btn{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;transition:background .2s;flex-shrink:0;white-space:nowrap}.new-chat-btn:hover{background:#2563eb}.messages-container{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:1.125rem;padding:2rem}.welcome-message{max-width:600px;text-align:center}.welcome-title{font-size:1.5rem;font-weight:600;color:#374151;margin-bottom:1rem}.welcome-subtitle{font-size:1.125rem;line-height:1.7;color:#6b7280;margin-bottom:1.5rem}.welcome-examples{font-size:.95rem;color:#9ca3af;font-style:italic;margin-top:1rem}.message{display:flex;max-width:80%;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.message-content{padding:.75rem 1rem;border-radius:12px;word-wrap:break-word;line-height:1.6;white-space:pre-wrap}.message.assistant .message-content{max-width:700px}.message.assistant .message-content p{margin:0 0 1rem}.message.assistant .message-content p:last-child{margin-bottom:0}.message.assistant .message-content strong{font-weight:600;color:#1f2937}.message.assistant .message-content em{font-style:italic;color:#374151}.message.user .message-content{background:#3b82f6;color:#fff}.message.assistant .message-content{background:#f3f4f6;color:#111827}.message-content.typing{display:flex;align-items:center;gap:.5rem;opacity:.8}.typing-dots{display:flex;gap:.25rem}.typing-dots span{width:8px;height:8px;border-radius:50%;background:#6b7280;animation:typingDot 1.4s infinite}.typing-dots span:nth-child(1){animation-delay:0s}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.error-message{padding:.75rem 1.5rem;background:#fef2f2;color:#dc2626;border-top:1px solid #fecaca;font-size:.875rem}.input-form{display:flex;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.message-input{flex:1;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;outline:none;transition:border-color .2s}.message-input:focus{border-color:#3b82f6}.message-input:disabled{background:#f3f4f6;cursor:not-allowed}.send-btn{padding:.5rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;width:36px;height:36px;flex-shrink:0}.send-btn:hover:not(:disabled){background:#2563eb;transform:scale(1.05)}.send-btn:disabled{background:#d1d5db;cursor:not-allowed;opacity:.5}.send-btn svg{transform:rotate(0)}.cursor{display:inline;margin-left:.05em;color:#9ca3af;font-weight:300;opacity:.6;animation:blink 1.4s ease-in-out infinite}@keyframes blink{0%,40%{opacity:.6}50%{opacity:.1}60%,to{opacity:.6}}.agent-label{display:inline;font-weight:600;color:#6b7280;margin-right:.25rem}.conversation-list{width:280px;height:100%;background-color:#f7f7f8;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;overflow:hidden}@media (max-width: 768px){.conversation-list{width:100%;border-right:none;padding-top:60px}.conversation-list-header{padding:20px}}.conversation-list-header{padding:20px;border-bottom:1px solid #e5e5e5;background-color:#fff}.conversation-list-header h2{margin:0 0 12px;font-size:18px;color:#1a1a1a;display:none}.new-chat-btn{width:100%;padding:10px 16px;background-color:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.new-chat-btn:hover{background-color:#0056b3}.conversation-items{flex:1;overflow-y:auto;padding:8px}.conversation-item{background-color:#fff;border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .2s;border:1px solid transparent}.conversation-item:hover{background-color:#f0f0f0;border-color:#d0d0d0}.conversation-item.active{background-color:#e3f2fd;border-color:#007bff}.conversation-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.conversation-title{font-weight:500;font-size:14px;color:#1a1a1a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.conversation-title:hover{background-color:#e8e8e8}.conversation-title-input{font-weight:500;font-size:14px;color:#1a1a1a;flex:1;border:2px solid #007bff;border-radius:4px;padding:4px 6px;outline:none;background-color:#fff}.delete-btn{background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0;width:20px;height:20px;line-height:20px;text-align:center;border-radius:3px;transition:all .2s;flex-shrink:0}.delete-btn:hover{background-color:#f44;color:#fff}.conversation-meta{display:flex;justify-content:space-between;font-size:11px;color:#666;margin-bottom:6px}.conversation-date{font-weight:500}.message-count{color:#999}.conversation-preview{font-size:12px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.loading,.empty-state{padding:20px;text-align:center;color:#666;font-size:14px}.error-container{padding:16px;text-align:center}.error{color:#dc3545;font-size:12px;margin-bottom:12px;line-height:1.4}.retry-btn{padding:8px 16px;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:background-color .2s}.retry-btn:hover{background-color:#5a6268}.conversation-items::-webkit-scrollbar{width:6px}.conversation-items::-webkit-scrollbar-track{background:transparent}.conversation-items::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.conversation-items::-webkit-scrollbar-thumb:hover{background:#999}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafafa}.app-container{display:flex;height:100%;overflow:hidden}.start-container{display:flex;flex-direction:column;height:100vh;background-color:#fafafa;overflow:hidden}.app-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background-color:#fff;border-bottom:1px solid #e5e5e5;box-shadow:0 1px 3px #0000000d;flex-shrink:0;min-height:60px}.header-left{display:flex;align-items:center;gap:12px}.app-logo{height:64px;width:auto;flex-shrink:0}.app-title{margin:0;font-size:38px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.app-subtitle{font-size:13px;color:#666;font-weight:400}.header-right{display:flex;align-items:center;gap:16px}.user-email{font-size:14px;color:#666;padding:6px 12px;background-color:#f7f7f8;border-radius:6px;font-weight:500}.logout-btn{padding:8px 16px;background-color:#fff;border:1px solid #d0d0d0;border-radius:6px;color:#1a1a1a;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn:hover{background-color:#f7f7f8;border-color:#b0b0b0}.logout-btn:active{transform:translateY(1px)}.app-container{flex:1;overflow:hidden;min-height:0}.hamburger-menu{display:none;flex-direction:column;justify-content:space-around;width:32px;height:32px;background:#007bff;border:none;border-radius:6px;cursor:pointer;padding:6px;z-index:1001;box-shadow:0 2px 8px #007bff4d}.hamburger-menu span{width:100%;height:3px;background-color:#fff;border-radius:2px;transition:all .3s ease}.hamburger-menu:hover{background-color:#0056b3;box-shadow:0 2px 12px #007bff80}.conversation-list-wrapper{height:100%}@media (max-width: 768px){.hamburger-menu{display:flex!important;position:fixed;left:16px;top:16px;z-index:1002}.app-header{flex-direction:row;align-items:center;padding:12px 16px 12px 64px;position:relative;min-height:56px}.header-left{flex:1;justify-content:flex-start;gap:8px}.app-logo{height:48px;width:48px}.app-subtitle{display:none}.header-right{flex-shrink:0;gap:8px}.app-title{font-size:28px}.user-email{display:none}.logout-btn{font-size:12px;padding:6px 12px;white-space:nowrap}.rate-limit-banner{padding:8px 16px}.rate-limit-message{font-size:13px}.app-container{display:block!important;position:relative}.conversation-list-wrapper{position:fixed;top:0;left:-100%;width:80%;max-width:320px;height:100vh;z-index:1000;transition:left .3s ease;box-shadow:2px 0 8px #00000026;background-color:#f7f7f8}.conversation-list-wrapper.mobile-open{left:0}}.rate-limit-banner{background-color:#fff3cd;border-bottom:1px solid #ffc107;padding:12px 24px;flex-shrink:0;animation:slideDown .3s ease-out}.rate-limit-content{display:flex;align-items:center;gap:12px;max-width:1200px;margin:0 auto}.rate-limit-icon{font-size:20px;flex-shrink:0}.rate-limit-message{flex:1;color:#856404;font-size:14px;font-weight:500}.rate-limit-close{background:none;border:none;font-size:24px;color:#856404;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;flex-shrink:0}.rate-limit-close:hover{background-color:#8564041a}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.terms-container{min-height:100vh;background-color:#f8f8f8;padding:40px 20px;display:flex;justify-content:center}.terms-content{max-width:800px;width:100%;background:#fff;padding:48px;border-radius:4px;box-shadow:0 1px 3px #00000008}.back-link{display:inline-block;color:#999;text-decoration:none;font-size:13px;margin-bottom:24px;transition:color .2s}.back-link:hover{color:#666;text-decoration:underline}.terms-content h1{font-size:24px;font-weight:500;color:#666;margin:0 0 8px}.last-updated{color:#999;font-size:13px;margin:0 0 24px}.intro{font-size:14px;line-height:1.8;color:#666;margin-bottom:32px;padding:14px;background-color:#fafafa;border-left:2px solid #e0e0e0;border-radius:4px}.terms-content section{margin-bottom:28px}.terms-content h2{font-size:16px;font-weight:500;color:#666;margin:0 0 10px}.terms-content p{font-size:14px;line-height:1.8;color:#777;margin:0 0 14px}.terms-content ul{margin:0;padding-left:24px}.terms-content li{font-size:14px;line-height:1.8;color:#777;margin-bottom:10px}.terms-content li:last-child{margin-bottom:0}@media (max-width: 768px){.terms-content{padding:32px 24px}.terms-content h1{font-size:28px}.terms-content h2{font-size:18px}}
