.file-upload-container{width:100%;max-width:600px}.upload-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-8);background:var(--glass-bg);border:2px dashed var(--color-border);border-radius:var(--radius-2xl);cursor:pointer;transition:all var(--transition-normal)}.upload-dropzone:hover{border-color:var(--color-accent-primary);background:#6366f10d}.upload-dropzone.drag-over{border-color:var(--color-accent-primary);background:#6366f11a;transform:scale(1.02);box-shadow:var(--shadow-lg),var(--shadow-glow)}.upload-dropzone.loading{cursor:default;pointer-events:none}.upload-icon{color:var(--color-text-muted);margin-bottom:var(--space-4);transition:all var(--transition-normal)}.upload-dropzone:hover .upload-icon{color:var(--color-accent-primary);transform:translateY(-4px)}.upload-text{font-size:var(--font-size-md);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.upload-highlight{color:var(--color-accent-primary);font-weight:500}.upload-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.upload-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.progress-spinner{width:48px;height:48px;border:3px solid var(--color-bg-elevated);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin 1s linear infinite}.progress-text{color:var(--color-text-secondary);font-size:var(--font-size-md);margin:0}.progress-bar{width:200px;height:6px;background:var(--color-bg-elevated);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--color-accent-gradient);border-radius:var(--radius-full);transition:width var(--transition-normal)}.progress-percent{font-size:var(--font-size-sm);color:var(--color-text-muted);font-family:monospace}.upload-error{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);color:var(--color-error);font-size:var(--font-size-sm)}.error-icon{font-size:1rem}.error-dismiss{margin-left:auto;background:none;border:none;color:var(--color-error);font-size:1.25rem;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity var(--transition-fast)}.error-dismiss:hover{opacity:1}.upload-divider{display:flex;align-items:center;width:100%;margin:var(--space-6) 0;color:var(--color-text-muted);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.upload-divider:before,.upload-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.upload-divider span{padding:0 var(--space-4)}.btn-demo{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:linear-gradient(135deg,#6366f126,#a855f726);border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-lg);color:var(--color-accent-primary);font-size:var(--font-size-md);font-weight:500;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.btn-demo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#6366f133,#a855f733);opacity:0;transition:opacity var(--transition-normal)}.btn-demo:hover{transform:translateY(-2px);box-shadow:0 8px 16px #6366f133;border-color:#6366f180}.btn-demo:hover:before{opacity:1}.btn-demo:active{transform:translateY(0)}.demo-icon{font-size:1.25rem;position:relative;z-index:1}.btn-demo span:last-child{position:relative;z-index:1}.data-table-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:48px}.table-file-info{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.table-file-info .file-icon{font-size:1rem}.table-file-info .file-name{font-weight:600;color:var(--color-text-primary)}.table-file-info .file-meta{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-left:var(--space-2)}.page-size-selector{padding:var(--space-1) var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:monospace;font-weight:500;cursor:pointer;transition:all .2s ease;outline:none}.page-size-selector:hover{border-color:var(--color-accent-primary);background:var(--color-bg-elevated)}.page-size-selector:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #6366f11a}.page-size-selector option{background:var(--color-bg-secondary);color:var(--color-text-primary)}.table-wrapper{flex:1;overflow:auto;background:var(--color-bg-secondary)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis}.data-table th{position:sticky;top:0;background:var(--color-bg-tertiary);font-weight:600;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:10}.data-table th:hover{background:var(--color-bg-elevated)}.data-table th.sorted{color:var(--color-accent-primary)}.th-content{display:flex;align-items:center;gap:var(--space-2)}.th-text{overflow:hidden;text-overflow:ellipsis}.sort-indicator{color:var(--color-accent-primary);font-weight:700}.data-table td{color:var(--color-text-secondary);font-family:monospace;font-size:var(--font-size-xs)}.data-table tbody tr:hover{background:#6366f10d}.data-table tbody tr:hover td{color:var(--color-text-primary)}.row-number-header,.row-number{width:60px;min-width:60px;text-align:center;color:var(--color-text-muted);background:var(--color-bg-tertiary);border-right:1px solid var(--color-border)}.null-value{color:var(--color-text-muted);font-style:italic}.table-pagination{display:flex;align-items:center;gap:var(--space-3)}.pagination-info{color:var(--color-text-secondary);font-size:var(--font-size-sm);min-width:100px;text-align:center}.table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);height:300px;color:var(--color-text-secondary)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-bg-elevated);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin 1s linear infinite}.table-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);height:300px;color:var(--color-error)}.table-error .error-icon{font-size:2rem}.chart-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.chart-selector{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);overflow-x:auto}.chart-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.chart-tab:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.chart-tab.active{background:var(--color-bg-secondary);border-color:var(--color-accent-primary);color:var(--color-accent-primary)}.chart-type-icon{font-size:.875rem}.chart-tab-title{max-width:120px;overflow:hidden;text-overflow:ellipsis}.user-created-badge{font-size:.75rem;margin-left:auto;opacity:.7;transition:opacity var(--transition-fast)}.chart-tab:hover .user-created-badge{opacity:1}.chart-tab.user-created{border-left:3px solid var(--color-accent-secondary)}.chart-tab.user-created.active{border-left-color:var(--color-accent-primary)}.chart-refresh-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:1rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);margin-right:var(--space-2)}.chart-refresh-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-accent-primary);transform:rotate(90deg)}.chart-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.chart-container{flex:1;min-height:300px;padding:var(--space-4);background:var(--color-bg-secondary)}.chart-wrapper{height:100%;min-height:280px}.chart-grid{display:flex;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-tertiary);border-top:1px solid var(--color-border);overflow-x:auto;overflow-y:hidden}.chart-grid-item{flex-shrink:0;width:150px;height:80px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;overflow:hidden;transition:all var(--transition-fast)}.chart-grid-item:hover{border-color:var(--color-accent-primary);transform:scale(1.02)}.chart-grid-item.active{border-color:var(--color-accent-primary);box-shadow:0 0 0 2px #6366f14d}.chart-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);height:100%;color:var(--color-text-secondary)}.chart-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);height:100%;color:var(--color-error)}.chart-error .error-icon{font-size:2rem}.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);height:100%;text-align:center;padding:var(--space-8)}.chart-empty .empty-icon{font-size:3rem;opacity:.5}.chart-empty h3{color:var(--color-text-secondary);margin:0}.chart-empty p{color:var(--color-text-muted);max-width:300px;margin:0}.chart-renderer{margin:1rem 0;background:#1e1e2d99;border:1px solid rgba(102,126,234,.2);border-radius:12px;padding:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideInUp .3s ease-out}.chart-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(102,126,234,.15)}.chart-icon{font-size:1.5rem}.chart-info h4{margin:0;font-size:1rem;font-weight:600;color:#e0e0e0}.chart-info p{margin:.25rem 0 0;font-size:.875rem;color:#999}.chart-container{min-height:400px;position:relative}.chart-error{padding:2rem;text-align:center;color:#999;font-size:.875rem}.chart-error span{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#ff64641a;border:1px solid rgba(255,100,100,.2);border-radius:8px}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.chart-renderer{padding:1rem}.chart-container{min-height:300px}}.chat-panel{display:flex;flex-direction:column;height:100%;background:var(--color-bg-primary)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--glass-bg);border-bottom:1px solid var(--color-border)}.chat-header-content{display:flex;align-items:center;gap:var(--space-3)}.chat-icon{font-size:1.5rem}.chat-title{font-size:var(--font-size-md);font-weight:600;margin:0}.chat-subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs)}.sql-preview{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:var(--space-3)}.sql-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.sql-label{font-size:var(--font-size-xs);font-weight:500;color:var(--color-accent-primary);text-transform:uppercase;letter-spacing:.05em}.sql-copy{font-size:var(--font-size-xs);color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.sql-copy:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.sql-code{font-family:SF Mono,Consolas,monospace;font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:var(--space-3);border-radius:var(--radius-md);overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.chat-message{display:flex;gap:var(--space-3);max-width:90%}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-message.assistant{align-self:flex-start}.message-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:1rem;flex-shrink:0}.chat-message.user .message-avatar{background:var(--color-accent-primary)}.message-content{display:flex;flex-direction:column;gap:var(--space-2)}.message-text{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word}.chat-message.user .message-text{background:var(--color-accent-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-message.assistant .message-text{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-sm)}.chat-message.error .message-text{background:#ef444426;color:var(--color-error)}.cursor-blink{animation:blink 1s step-end infinite;color:var(--color-accent-primary)}@keyframes blink{50%{opacity:0}}.show-sql-btn{font-size:var(--font-size-xs);color:var(--color-accent-primary);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}.show-sql-btn:hover{color:var(--color-accent-secondary)}.data-preview{margin-top:var(--space-1)}.preview-label{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.chat-input-form{padding:var(--space-4);background:var(--glass-bg);border-top:1px solid var(--color-border)}.input-wrapper{display:flex;align-items:flex-end;gap:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2);transition:all var(--transition-fast)}.input-wrapper:focus-within{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #6366f133}.input-wrapper.disabled{opacity:.6;pointer-events:none;background:var(--color-bg-tertiary)}.chat-input{flex:1;padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-primary);background:transparent;border:none;outline:none;resize:none;min-height:24px;max-height:120px}.chat-input::placeholder{color:var(--color-text-muted)}.chat-input:disabled{opacity:.5}.send-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-accent-gradient);border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.send-button:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--shadow-glow)}.send-button:disabled{opacity:.5;cursor:not-allowed}.send-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.input-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;margin:var(--space-2) 0 0}.chat-login-banner{padding:var(--space-4);background:var(--glass-bg);border-top:1px solid var(--color-border)}.login-banner-content{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:#6366f11a;border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-lg)}.login-banner-icon{font-size:1.5rem;flex-shrink:0}.login-banner-text{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.login-banner-text strong{font-size:var(--font-size-sm);color:var(--color-text-primary)}.login-banner-text span{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.login-banner-content .btn{flex-shrink:0}.user-menu{position:relative;display:flex;align-items:center;gap:.75rem}.user-menu--signed-out{gap:.75rem}.user-menu--loading{opacity:.6}.user-menu__status{font-size:.875rem;color:var(--text-muted, #888)}.user-menu__summary{cursor:pointer;list-style:none;display:flex;align-items:center;padding:.25rem;border-radius:50%;transition:background-color .2s}.user-menu__summary::-webkit-details-marker{display:none}.user-menu__summary:hover{background-color:#ffffff1a}.user-menu__avatar{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.875rem;overflow:hidden}.user-menu__avatar img{width:100%;height:100%;object-fit:cover}.user-menu__dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#1e1e28f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:.5rem;padding:.5rem;min-width:200px;box-shadow:0 8px 24px #0000004d;z-index:1000}.user-menu__info{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.5rem}.user-menu__name{font-weight:600;color:#fff;margin-bottom:.25rem}.user-menu__email{font-size:.75rem;color:var(--text-muted, #888)}.user-menu__item{width:100%;padding:.75rem;background:transparent;border:none;color:#fff;text-align:left;cursor:pointer;border-radius:.25rem;transition:background-color .2s;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.user-menu__item:hover{background-color:#ffffff1a}.menu-icon{font-size:1rem;display:inline-flex;align-items:center;justify-content:center}.button--ghost{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;font-size:.875rem;transition:all .2s}.button--ghost:hover{background:#ffffff1a;border-color:#ffffff80}.my-files-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.my-files-content{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:90%;max-width:900px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}.my-files-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.my-files-header h2{margin:0;font-size:var(--font-size-xl);font-weight:700}.close-btn{background:transparent;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-fast)}.close-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.files-list{padding:var(--space-6);overflow-y:auto;flex:1}.file-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);transition:all var(--transition-normal)}.file-card:hover{border-color:var(--color-accent-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.file-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-4)}.file-info{display:flex;align-items:flex-start;gap:var(--space-3);flex:1}.file-icon{font-size:2rem;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{margin:0 0 var(--space-2) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.delete-btn{background:transparent;border:none;font-size:1.2rem;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-fast);opacity:.6}.delete-btn:hover{background:var(--color-error);opacity:1;transform:scale(1.1)}.file-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.stat-icon{font-size:1.2rem}.stat-value{font-size:var(--font-size-lg);font-weight:700;color:var(--color-accent-primary)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.file-card-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.empty-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.5}.empty-state h3{margin:0 0 var(--space-2) 0;font-size:var(--font-size-xl)}.empty-state p{margin:0 0 var(--space-6) 0;color:var(--color-text-secondary)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12)}.spinner{width:40px;height:40px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{color:var(--color-text-secondary)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.error-icon{font-size:3rem;margin-bottom:var(--space-4)}.error-state p{color:var(--color-error);margin-bottom:var(--space-6)}@media (max-width: 768px){.my-files-content{width:95%;max-height:90vh}.file-card-stats{grid-template-columns:1fr}.file-meta{flex-wrap:wrap}}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{position:sticky;top:0;z-index:50;background:var(--glass-bg);border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);padding:var(--space-4) var(--space-6)}.header-content{margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo-group{display:flex;align-items:center;gap:var(--space-4)}.logo{display:flex;align-items:center;gap:var(--space-2)}.logo-icon{font-size:1.5rem}.logo-text{font-size:var(--font-size-xl);font-weight:700;background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-tagline{color:var(--color-text-tertiary);font-size:var(--font-size-sm);padding-left:var(--space-4);border-left:1px solid var(--color-border)}.header-right{display:flex;align-items:center;gap:var(--space-4);margin-left:auto}.header-actions{display:flex;align-items:center;gap:var(--space-4)}.header-user{display:flex;align-items:center}.current-file{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.file-icon{font-size:1rem}.file-name{font-weight:500;color:var(--color-text-primary)}.file-meta{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-left:var(--space-2)}.upload-new-btn{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;font-weight:600;padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);box-shadow:0 4px 12px #667eea4d;transition:all var(--transition-normal);border:none}.upload-new-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66;background:linear-gradient(135deg,#764ba2,#667eea)!important}.upload-new-btn:active{transform:translateY(0)}.upload-new-btn .btn-icon{display:inline-block;margin-right:var(--space-2);font-size:1.1em}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.upload-view{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);max-width:1200px;margin:0 auto;width:100%}.upload-hero{text-align:center;margin-bottom:var(--space-10)}.hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;margin-bottom:var(--space-4);line-height:1.2}.gradient-text{background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-6);margin-top:var(--space-12);width:100%}.feature-card{text-align:center;padding:var(--space-6);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);transition:all var(--transition-normal)}.feature-card:hover{transform:translateY(-4px);border-color:var(--color-accent-primary);box-shadow:var(--shadow-lg),var(--shadow-glow)}.feature-icon{font-size:2.5rem;margin-bottom:var(--space-4)}.feature-card h3{font-size:var(--font-size-lg);margin-bottom:var(--space-2)}.feature-card p{color:var(--color-text-tertiary);font-size:var(--font-size-sm);margin:0}.analysis-view{flex:1;height:calc(100vh - 73px)}.left-pane,.right-pane{height:100%;display:flex;flex-direction:column;overflow:hidden}.left-pane{background:var(--color-bg-secondary)}.right-pane{background:var(--color-bg-primary);border-left:1px solid var(--color-border)}.resize-handle{width:8px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:col-resize;transition:background var(--transition-fast)}.resize-handle:hover{background:var(--color-bg-tertiary)}.resize-handle-bar{width:4px;height:40px;background:var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.resize-handle:hover .resize-handle-bar{background:var(--color-accent-primary);height:60px}.tab-view{display:flex;flex-direction:column;height:100%}.tab-header{display:flex;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.tab-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.tab-btn:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.tab-btn.active{color:var(--color-accent-primary);background:var(--color-bg-secondary)}.tab-icon{font-size:1rem}.tab-content{flex:1;overflow:hidden}.schema-view{padding:var(--space-6);height:100%;overflow-y:auto}.schema-header{margin-bottom:var(--space-6)}.schema-header h3{margin-bottom:var(--space-1)}.schema-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.schema-item{padding:var(--space-4)}.schema-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.schema-column-name{font-weight:600;color:var(--color-text-primary)}.schema-item-details{display:flex;flex-direction:column;gap:var(--space-2)}.schema-detail{display:flex;justify-content:space-between;font-size:var(--font-size-sm)}.detail-label{color:var(--color-text-muted)}.detail-value{color:var(--color-text-secondary);font-family:monospace}.detail-value.samples{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-tabs{height:100%}:root{--color-bg-primary: #0a0a0f;--color-bg-secondary: #12121a;--color-bg-tertiary: #1a1a25;--color-bg-card: rgba(26, 26, 37, .8);--color-bg-elevated: rgba(35, 35, 50, .9);--color-accent-primary: #6366f1;--color-accent-secondary: #8b5cf6;--color-accent-tertiary: #a855f7;--color-accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-tertiary: #64748b;--color-text-muted: #475569;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-border: rgba(148, 163, 184, .1);--color-border-hover: rgba(148, 163, 184, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--glass-bg: rgba(26, 26, 37, .6);--glass-border: rgba(255, 255, 255, .08);--glass-blur: blur(20px);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-dropdown: 100;--z-modal: 200;--z-toast: 300}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 20% 20%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(139,92,246,.1) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(168,85,247,.05) 0%,transparent 70%);pointer-events:none;z-index:-1}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{color:var(--color-text-secondary);margin-bottom:var(--space-4)}a{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);outline:none}.btn-primary{background:var(--color-accent-gradient);color:#fff;box-shadow:var(--shadow-md),var(--shadow-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 30px #6366f166}.btn-secondary{background:var(--glass-bg);color:var(--color-text-primary);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.btn-secondary:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);padding:var(--space-6);transition:all var(--transition-normal)}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.input{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);outline:none;transition:all var(--transition-fast)}.input:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #6366f133}.input::placeholder{color:var(--color-text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-bg-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out}.animate-slide-up{animation:slideUp var(--transition-slow) ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.w-full{width:100%}.h-full{height:100%}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.m-0{margin:0}.mb-4{margin-bottom:var(--space-4)}.mt-4{margin-top:var(--space-4)}.skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-elevated) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full)}.badge-success{background:#10b98126;color:var(--color-success)}.badge-warning{background:#f59e0b26;color:var(--color-warning)}.badge-error{background:#ef444426;color:var(--color-error)}.badge-info{background:#3b82f626;color:var(--color-info)}
