Spaces:
Sleeping
Sleeping
| .app-container { | |
| display: flex; | |
| min-height: 100vh; | |
| max-width: 1400px; | |
| margin: 0 auto; | |
| padding: 16px; | |
| gap: 16px; | |
| } | |
| /* --- Sidebar --- */ | |
| .sidebar { | |
| flex: 0 0 300px; | |
| padding: 24px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; | |
| height: calc(100vh - 32px); | |
| position: sticky; | |
| top: 16px; | |
| overflow-y: auto; | |
| background: var(--bg-sidebar) ; | |
| border-right: 1px solid rgba(255, 255, 255, 0.05); | |
| } | |
| .sidebar h2 { | |
| font-size: 1.25rem; | |
| font-weight: 600; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| margin-bottom: 8px; | |
| color: var(--text-primary); | |
| } | |
| .form-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .form-group label { | |
| font-size: 0.875rem; | |
| color: var(--text-secondary); | |
| font-weight: 500; | |
| } | |
| .form-control { | |
| background: rgba(15, 23, 42, 0.6); | |
| border: 1px solid var(--border-color); | |
| color: var(--text-primary); | |
| padding: 10px 12px; | |
| border-radius: 8px; | |
| font-family: inherit; | |
| font-size: 0.95rem; | |
| outline: none; | |
| transition: all 0.2s ease; | |
| } | |
| .form-control:focus { | |
| border-color: var(--accent-primary); | |
| box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25); | |
| } | |
| select.form-control { | |
| appearance: none; | |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23cbd5e1'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E"); | |
| background-repeat: no-repeat; | |
| background-position: right 12px center; | |
| background-size: 16px; | |
| padding-right: 36px; | |
| } | |
| .radio-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .radio-label { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| cursor: pointer; | |
| font-size: 0.95rem; | |
| color: var(--text-secondary); | |
| transition: color 0.2s ease; | |
| } | |
| .radio-label:hover { | |
| color: var(--text-primary); | |
| } | |
| .radio-label input[type="radio"] { | |
| accent-color: var(--accent-primary); | |
| width: 16px; | |
| height: 16px; | |
| } | |
| .date-row { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| .date-row .form-group { | |
| flex: 1; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%) ; | |
| color: white; | |
| border: none; | |
| padding: 12px 20px; | |
| border-radius: 12px; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) ; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| margin-top: 10px; | |
| box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3) ; | |
| letter-spacing: 0.5px; | |
| } | |
| .btn-primary:hover { | |
| transform: translateY(-2px) ; | |
| box-shadow: 0 8px 25px rgba(139, 92, 246, 0.5) ; | |
| } | |
| .btn-primary:active { | |
| transform: translateY(0); | |
| } | |
| .btn-primary:disabled { | |
| background: var(--bg-secondary) ; | |
| color: var(--text-secondary); | |
| cursor: not-allowed; | |
| transform: none; | |
| box-shadow: none ; | |
| } | |
| /* --- Main Content --- */ | |
| .main-content { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| min-width: 0; | |
| } | |
| .dashboard-header { | |
| padding: 20px; | |
| } | |
| .dashboard-header h1 { | |
| font-size: 2rem; | |
| margin-bottom: 12px; | |
| background: linear-gradient(135deg, #e0e7ff 0%, #8b5cf6 100%) ; | |
| -webkit-background-clip: text ; | |
| background-clip: text ; | |
| -webkit-text-fill-color: transparent ; | |
| font-weight: 700 ; | |
| } | |
| .status-bar { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 16px; | |
| font-size: 0.95rem; | |
| color: var(--text-secondary); | |
| } | |
| .status-item span { | |
| color: var(--text-primary); | |
| font-weight: 600; | |
| margin-left: 6px; | |
| } | |
| /* Progress / Results area */ | |
| .results-area { | |
| padding: 20px; | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; | |
| } | |
| .loader-neon { | |
| width: 70px; | |
| height: 70px; | |
| border-radius: 50%; | |
| border: 4px solid transparent; | |
| border-top-color: #3b82f6; | |
| border-bottom-color: #8b5cf6; | |
| animation: spin-pulse 1.2s cubic-bezier(0.5, 0.1, 0.4, 0.9) infinite; | |
| box-shadow: 0 0 25px rgba(59, 130, 246, 0.5), inset 0 0 25px rgba(139, 92, 246, 0.5); | |
| } | |
| @keyframes spin-pulse { | |
| 0% { | |
| transform: rotate(0deg) scale(1); | |
| } | |
| 50% { | |
| transform: rotate(180deg) scale(1.1); | |
| } | |
| 100% { | |
| transform: rotate(360deg) scale(1); | |
| } | |
| } | |
| .gradient-text { | |
| background: linear-gradient(135deg, #e0e7ff 0%, #8b5cf6 100%); | |
| -webkit-background-clip: text ; | |
| background-clip: text ; | |
| -webkit-text-fill-color: transparent ; | |
| font-weight: 600 ; | |
| font-size: 1.5rem ; | |
| margin-top: 20px; | |
| margin-bottom: 10px; | |
| } | |
| .loader-info { | |
| color: #94a3b8; | |
| font-size: 1rem; | |
| margin: 0; | |
| } | |
| .loader-timer { | |
| font-size: 0.85rem; | |
| color: var(--text-secondary); | |
| margin-top: 8px; | |
| } | |
| .progress-bar-container { | |
| width: 100%; | |
| max-width: 400px; | |
| height: 6px; | |
| background: var(--bg-secondary); | |
| border-radius: 3px; | |
| overflow: hidden; | |
| } | |
| .progress-bar { | |
| height: 100%; | |
| background: linear-gradient(to right, #3b82f6, #8b5cf6) ; | |
| width: 0%; | |
| transition: width 0.3s ease; | |
| border-radius: 10px; | |
| } | |
| /* Table */ | |
| .table-container { | |
| overflow-x: auto; | |
| border-radius: 8px; | |
| border: 1px solid var(--border-color); | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| text-align: left; | |
| font-size: 0.9rem; | |
| } | |
| th, | |
| td { | |
| padding: 12px 16px; | |
| border-bottom: 1px solid var(--border-color); | |
| white-space: nowrap; | |
| } | |
| th { | |
| background: rgba(15, 23, 42, 0.8); | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| position: sticky; | |
| top: 0; | |
| } | |
| tr:hover td { | |
| background: rgba(255, 255, 255, 0.03); | |
| } | |
| .empty-state { | |
| text-align: center; | |
| padding: 60px 20px; | |
| color: var(--text-secondary); | |
| font-size: 1.1rem; | |
| } | |
| .alert { | |
| padding: 16px; | |
| border-radius: 8px; | |
| margin-bottom: 16px; | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 12px; | |
| } | |
| .alert-error { | |
| background: rgba(239, 68, 68, 0.1); | |
| border: 1px solid var(--danger); | |
| color: #fca5a5; | |
| } | |
| .alert-success { | |
| background: rgba(16, 185, 129, 0.1); | |
| border: 1px solid var(--success); | |
| color: #6ee7b7; | |
| } | |
| .alert-info { | |
| background: rgba(59, 130, 246, 0.1); | |
| border: 1px solid var(--accent-primary); | |
| color: #93c5fd; | |
| } | |
| .code-block { | |
| background: var(--bg-primary); | |
| padding: 16px; | |
| border-radius: 8px; | |
| font-family: monospace; | |
| overflow-x: auto; | |
| border: 1px solid var(--border-color); | |
| margin-top: 12px; | |
| color: #a78bfa; | |
| } |