Spaces:
Sleeping
Sleeping
| :root { | |
| --bg-main: #0f172a; | |
| --bg-secondary: #1e293b; | |
| --glass-bg: rgba(30, 41, 59, 0.7); | |
| --glass-border: rgba(255, 255, 255, 0.1); | |
| --text-main: #f8fafc; | |
| --text-muted: #94a3b8; | |
| --primary: #6366f1; | |
| --primary-hover: #4f46e5; | |
| --secondary: #8b5cf6; | |
| --accent: #ec4899; | |
| --success: #10b981; | |
| --error: #ef4444; | |
| --border-radius: 12px; | |
| --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background-color: var(--bg-main); | |
| color: var(--text-main); | |
| min-height: 100vh; | |
| overflow-x: hidden; | |
| background-image: | |
| radial-gradient(circle at 15% 50%, rgba(99, 102, 241, 0.15) 0%, transparent 50%), | |
| radial-gradient(circle at 85% 30%, rgba(139, 92, 246, 0.15) 0%, transparent 50%); | |
| } | |
| .gradient-text { | |
| background: linear-gradient(135deg, var(--primary), var(--secondary), var(--accent)); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-size: 200% 200%; | |
| animation: gradientShift 5s ease infinite; | |
| } | |
| @keyframes gradientShift { | |
| 0% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| 100% { background-position: 0% 50%; } | |
| } | |
| .glass-panel { | |
| background: var(--glass-bg); | |
| backdrop-filter: blur(16px); | |
| -webkit-backdrop-filter: blur(16px); | |
| border: 1px solid var(--glass-border); | |
| border-radius: var(--border-radius); | |
| box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3); | |
| } | |
| .app-container { | |
| display: grid; | |
| grid-template-columns: 280px 1fr; | |
| min-height: 100vh; | |
| } | |
| /* Sidebar */ | |
| .sidebar { | |
| padding: 2rem 1.5rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 3rem; | |
| border-right: 1px solid var(--glass-border); | |
| border-radius: 0; | |
| } | |
| .logo { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| font-size: 1.5rem; | |
| font-weight: 700; | |
| } | |
| .nav-menu { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| .nav-item { | |
| padding: 1rem 1.25rem; | |
| border-radius: 8px; | |
| color: var(--text-muted); | |
| text-decoration: none; | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| font-weight: 500; | |
| transition: var(--transition); | |
| } | |
| .nav-item:hover, .nav-item.active { | |
| background: rgba(255, 255, 255, 0.05); | |
| color: var(--text-main); | |
| } | |
| .nav-item.active { | |
| border-left: 3px solid var(--primary); | |
| background: linear-gradient(90deg, rgba(99, 102, 241, 0.1) 0%, transparent 100%); | |
| } | |
| .upload-section { | |
| margin-top: auto; | |
| } | |
| .sql-upload-panel { | |
| margin-top: 1rem; | |
| padding: 1rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.6rem; | |
| } | |
| .sql-upload-panel h4 { | |
| margin: 0; | |
| font-size: 0.9rem; | |
| color: var(--text-main); | |
| } | |
| .sql-upload-panel input { | |
| width: 100%; | |
| padding: 0.55rem 0.7rem; | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| border-radius: 6px; | |
| background: rgba(0, 0, 0, 0.25); | |
| color: var(--text-main); | |
| } | |
| .sql-upload-panel input::placeholder { | |
| color: var(--text-muted); | |
| } | |
| .upload-area { | |
| border: 2px dashed rgba(255, 255, 255, 0.2); | |
| border-radius: var(--border-radius); | |
| padding: 2rem 1rem; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: var(--transition); | |
| color: var(--text-muted); | |
| } | |
| .upload-area:hover, .upload-area.dragover { | |
| border-color: var(--primary); | |
| background: rgba(99, 102, 241, 0.05); | |
| transform: translateY(-2px); | |
| } | |
| .upload-area i { | |
| color: var(--primary); | |
| margin-bottom: 1rem; | |
| transition: transform 0.3s; | |
| } | |
| .upload-area:hover i { | |
| transform: scale(1.1); | |
| } | |
| /* Main Content */ | |
| .main-content { | |
| padding: 2rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2rem; | |
| height: 100vh; | |
| overflow-y: auto; | |
| } | |
| .top-bar { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .top-bar h1 { | |
| font-size: 1.8rem; | |
| font-weight: 600; | |
| } | |
| .user-profile img { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| border: 2px solid var(--primary); | |
| } | |
| /* Welcome State */ | |
| .welcome-state { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 3rem; | |
| align-items: center; | |
| text-align: center; | |
| margin-top: 5rem; | |
| } | |
| .features-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 2rem; | |
| max-width: 1000px; | |
| } | |
| .feature-card { | |
| padding: 2rem; | |
| text-align: left; | |
| transition: transform 0.3s ease; | |
| } | |
| .feature-card:hover { | |
| transform: translateY(-5px); | |
| } | |
| .feature-card i { | |
| font-size: 2rem; | |
| color: var(--secondary); | |
| margin-bottom: 1rem; | |
| } | |
| /* Analysis State */ | |
| .analysis-state { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2rem; | |
| } | |
| .hidden { | |
| display: none ; | |
| } | |
| .progress-section { | |
| padding: 1.5rem; | |
| } | |
| .progress-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 1rem; | |
| } | |
| .terminal-box { | |
| background: #000; | |
| color: #0f0; | |
| font-family: 'Consolas', monospace; | |
| padding: 1.5rem; | |
| border-radius: 8px; | |
| height: 300px; | |
| overflow-y: auto; | |
| font-size: 0.9rem; | |
| line-height: 1.5; | |
| white-space: pre-wrap; | |
| } | |
| .loader { | |
| display: inline-block; | |
| width: 20px; | |
| height: 20px; | |
| border: 3px solid rgba(255, 255, 255, 0.3); | |
| border-radius: 50%; | |
| border-top-color: var(--primary); | |
| animation: spin 1s ease-in-out infinite; | |
| margin-left: 10px; | |
| vertical-align: middle; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| /* Buttons */ | |
| .btn { | |
| padding: 0.75rem 1.5rem; | |
| border: none; | |
| border-radius: 6px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: var(--transition); | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .export-actions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.75rem; | |
| } | |
| .primary-btn { | |
| background: var(--primary); | |
| color: white; | |
| } | |
| .primary-btn:hover { | |
| background: var(--primary-hover); | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4); | |
| } | |
| /* Panels */ | |
| .panels-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 2rem; | |
| } | |
| .panel { | |
| padding: 1.5rem; | |
| } | |
| .panel h3 { | |
| margin-bottom: 1.5rem; | |
| color: var(--text-main); | |
| border-bottom: 1px solid rgba(255,255,255,0.1); | |
| padding-bottom: 0.5rem; | |
| } | |
| /* Markdown styling */ | |
| .markdown-body { | |
| line-height: 1.6; | |
| color: var(--text-muted); | |
| } | |
| .markdown-body h1, .markdown-body h2, .markdown-body h3 { | |
| color: var(--text-main); | |
| margin-top: 1rem; | |
| margin-bottom: 0.5rem; | |
| } | |
| .markdown-body strong { | |
| color: var(--text-main); | |
| } | |
| .markdown-body ul, .markdown-body ol { | |
| margin-left: 1.5rem; | |
| margin-bottom: 1rem; | |
| } | |
| .text-yellow { | |
| color: #fbbf24; | |
| } | |
| /* Custom stats */ | |
| .stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| .stat-item { | |
| background: rgba(255, 255, 255, 0.05); | |
| padding: 1rem; | |
| border-radius: 8px; | |
| text-align: center; | |
| } | |
| .stat-value { | |
| font-size: 1.5rem; | |
| font-weight: 700; | |
| color: var(--primary); | |
| } | |
| .stat-label { | |
| font-size: 0.85rem; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| margin-top: 0.5rem; | |
| } | |
| /* Styled lists */ | |
| .styled-list { | |
| list-style: none; | |
| } | |
| .styled-list li { | |
| padding: 1rem 0; | |
| border-bottom: 1px dashed rgba(255, 255, 255, 0.1); | |
| color: var(--text-muted); | |
| } | |
| .styled-list li:last-child { | |
| border-bottom: none; | |
| } | |
| .styled-list li::before { | |
| content: '→'; | |
| color: var(--secondary); | |
| margin-right: 0.5rem; | |
| } | |
| .empty-state { | |
| padding: 3rem; | |
| text-align: center; | |
| color: var(--text-muted); | |
| background: rgba(255, 255, 255, 0.02); | |
| border-radius: 8px; | |
| border: 1px dashed rgba(255, 255, 255, 0.1); | |
| } | |