*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f4f4f5;--surface: #ffffff;--border: #e4e4e7;--text: #18181b;--text-muted: #71717a;--primary: #6366f1;--primary-hover: #4f46e5;--user-bg: #6366f1;--user-text: #ffffff;--assistant-bg: #ffffff;--badge-template: #059669;--badge-generated: #6366f1;--error: #ef4444;--code-bg: #fafafa;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(0,0,0,.04), 0 2px 8px rgba(0,0,0,.04);--shadow-md: 0 2px 8px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.06);--sidebar-width: 280px;--sidebar-bg: #F9FAFB;--sidebar-text: #6B7280;--sidebar-hover: #F3F4F6;--sidebar-active: #EFF6FF;--transition: .2s cubic-bezier(.4, 0, .2, 1)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem;background:linear-gradient(135deg,#f4f4f5,#e9e5ff)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:3rem 2.5rem;width:100%;max-width:400px;box-shadow:var(--shadow-md);text-align:center}.login-card h1{font-size:1.625rem;font-weight:700;margin-bottom:.25rem;letter-spacing:-.02em}.login-subtitle{color:var(--text-muted);font-size:.875rem;margin-bottom:2rem}.login-card form{display:flex;flex-direction:column;gap:.875rem}.login-card input{padding:.875rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.9375rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);background:var(--bg)}.login-card input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11f;background:var(--surface)}.login-card button{padding:.875rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background var(--transition),transform var(--transition);margin-top:.25rem}.login-card button:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.login-card button:active:not(:disabled){transform:translateY(0)}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--error);font-size:.8125rem;background:#fef2f2;padding:.5rem .75rem;border-radius:8px}.app{display:flex;height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:100px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}*{scrollbar-width:thin;scrollbar-color:#D1D5DB transparent}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid #E5E7EB}.sidebar-header{padding:1.25rem 1rem}.sidebar-logo{display:block;height:13px;width:auto;margin-bottom:1.75rem}.new-chat-btn{width:100%;padding:.625rem .75rem;background:transparent;border:1px solid #E5E7EB;outline:none;border-radius:10px;color:#111827;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition);text-align:center}.new-chat-btn:hover{background:#f3f4f6}.session-list{flex:1;overflow-y:auto;padding:.5rem}.session-list-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.3px;color:#9ca3af;padding:.25rem .75rem .375rem}.session-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:none;border:none;outline:none;border-radius:8px;color:#4b5563;font-size:.8125rem;cursor:pointer;text-align:left;transition:all var(--transition);margin-bottom:2px}.session-item:hover{background:#edeef1;color:#374151}.session-item.active{background:#e5e7eb;color:#111827;font-weight:500}.session-icon{flex-shrink:0;font-size:.8125rem;color:#9ca3af;opacity:1}.session-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-empty{padding:1.5rem 1rem;text-align:center;font-size:.75rem;color:#9ca3af}.sidebar-footer{padding:.75rem 1rem;border-top:1px solid #E5E7EB}.sidebar-user{font-size:.8125rem;font-weight:500;color:#374151;padding:0 0 .5rem;text-transform:capitalize}.logout-btn-sidebar{width:100%;padding:.5rem;background:transparent;border:1px solid #E5E7EB;outline:none;border-radius:8px;color:#6b7280;font-size:.75rem;cursor:pointer;transition:all var(--transition)}.logout-btn-sidebar:hover{background:#f3f4f6;color:#374151}.main-panel{flex:1;display:flex;flex-direction:column;min-width:0;background:#f7f8f9}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem;background:#f7f8f9;border-bottom:none;flex-shrink:0}.app-header h1{font-size:.9375rem;font-weight:500;color:#111827;letter-spacing:-.01em}.chat-container{flex:1;overflow-y:auto;padding:2rem 1.5rem;display:flex;flex-direction:column}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;padding-bottom:80px}.empty-state h2{font-size:26px;font-weight:400;letter-spacing:-.8px;color:#111827}.empty-state p{color:#6b7280;max-width:360px;margin:0 auto;font-size:14px}.suggestions{margin-top:40px}.suggestions-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.chips{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:720px;margin:0 auto}.chip{padding:14px 20px;background:#fff;border:1px solid #E5E7EB;border-radius:14px;font-size:13px;color:#374151;cursor:pointer;transition:all var(--transition);white-space:normal;text-align:left;width:100%}.chip:hover{border-color:#111827;background:#fafafa;color:#374151}.messages{display:flex;flex-direction:column;gap:1.25rem;max-width:900px;width:100%;margin:0 auto}.message{max-width:100%}.user-message{align-self:flex-end;max-width:70%}.user-message .message-content{background:#e5e7eb;color:#111827;padding:.75rem 1.125rem;border-radius:16px 16px 4px;font-size:.9375rem;display:inline-block;max-width:100%;line-height:1.5;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word}.assistant-message{align-self:flex-start;background:#fff;border:none;border-radius:16px;padding:1.25rem;box-shadow:0 1px 3px #0000000a;width:100%;color:#374151}.badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .625rem;border-radius:5px;margin-bottom:.625rem}.badge-template{background:#f0fdf4;color:#16a34a;border:1px solid #BBF7D0}.badge-generated{background:#eff6ff;color:#2563eb}.message-summary{font-size:.9375rem;margin-bottom:1rem;line-height:1.6;color:#374151}.message-summary strong,.message-summary b{color:#111827}.message-interpretation{font-size:.9375rem;line-height:1.6;color:#111827;font-weight:500;background:#f0f9ff;border-left:3px solid #3B82F6;padding:.625rem .875rem;border-radius:0 8px 8px 0;margin-bottom:1rem}.message-error{color:var(--error);font-size:.8125rem;padding:.625rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.table-wrapper{overflow-x:auto;margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius-sm)}table{width:100%;border-collapse:collapse;font-size:.8125rem}th,td{padding:.625rem .875rem;text-align:left;white-space:nowrap}td{color:#374151;border-bottom:1px solid #F3F4F6}th{background:#fff;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#111827;border-bottom:2px solid #E5E7EB;position:sticky;top:0}tr:nth-child(2n) td{background:#f9fafb}tr:last-child td{border-bottom:none}tr:hover td{background:#f0f1f3}.row-count{font-size:.75rem;color:var(--text-muted);padding:.5rem .875rem;text-align:right;border-top:1px solid #F3F4F6;background:transparent}.table-toggle{margin-top:.5rem}.table-toggle summary{font-size:.8125rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;transition:color var(--transition)}.table-toggle summary:hover{color:var(--primary)}.sql-toggle{margin-top:.75rem}.sql-toggle summary{font-size:.75rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;transition:color var(--transition)}.sql-toggle summary:hover{color:var(--primary)}.sql-toggle pre{margin-top:.5rem;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;overflow-x:auto;font-size:.8125rem;line-height:1.7}.sql-toggle code{font-family:SF Mono,Fira Code,JetBrains Mono,Menlo,monospace}.loading{display:flex;align-items:center;gap:.75rem}.loading-dots{display:flex;gap:5px}.loading-dots span{width:7px;height:7px;border-radius:50%;background:var(--primary);animation:dot-pulse 1.2s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,60%,to{opacity:.25;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.loading-status{font-size:.8125rem;color:var(--text-muted)}.input-bar{padding:.75rem 1.5rem 1.5rem;background:#f7f8f9;border-top:none;flex-shrink:0}.input-wrapper{display:flex;align-items:center;max-width:900px;margin:0 auto;background:#fff;border:1px solid #E5E7EB;border-radius:24px;padding:8px 8px 8px 18px;gap:10px;transition:border-color var(--transition)}.input-wrapper:focus-within{border-color:#e5e7eb}.input-bar input{flex:1;border:none;background:none;outline:none;font-size:15px;color:#111827;padding:0;height:40px}.input-bar input::placeholder{color:#9ca3af}.send-btn{width:34px;height:34px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:background var(--transition);outline:none}.send-btn:disabled{background:#d1d5db;color:#fff;cursor:not-allowed}.send-btn:not(:disabled){background:#111827;color:#fff;cursor:pointer}.send-btn:not(:disabled):hover{background:#374151}.stop-btn{width:34px;height:34px;border-radius:50%;background:#ef4444;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition);flex-shrink:0;outline:none}.stop-btn:hover{background:#dc2626}@media(max-width:768px){.sidebar{width:220px}}@media(max-width:640px){.sidebar{display:none}.chat-container{padding:1rem}.input-bar{padding:.625rem}.app-header{padding:.625rem 1rem}.chips{justify-content:flex-start}th,td{padding:.375rem .5rem}.input-wrapper{padding:4px 4px 4px 12px}}
