Spaces:
Running
Running
| /* Data Viewer Styles */ | |
| .data-viewer { | |
| width: 100%; | |
| } | |
| .data-viewer.loading { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 2rem; | |
| min-height: 200px; | |
| } | |
| .data-viewer.loading p { | |
| margin-top: 1rem; | |
| color: var(--text-secondary); | |
| } | |
| .data-viewer-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: flex-start; | |
| margin-bottom: 1.5rem; | |
| gap: 1rem; | |
| } | |
| .data-viewer-header .data-info h4 { | |
| color: var(--text-primary); | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| margin-bottom: 0.25rem; | |
| } | |
| .data-viewer-header .data-info p { | |
| color: var(--text-secondary); | |
| font-size: 0.875rem; | |
| } | |
| .download-btn { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1.5rem; | |
| background: var(--success-color); | |
| color: white; | |
| border: none; | |
| border-radius: 8px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| text-decoration: none; | |
| white-space: nowrap; | |
| } | |
| .download-btn:hover { | |
| background: #059669; | |
| transform: translateY(-1px); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .data-table-container { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| overflow: hidden; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .data-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 0.875rem; | |
| } | |
| .data-table thead { | |
| background: var(--bg-tertiary); | |
| } | |
| .data-table th { | |
| padding: 1rem 0.75rem; | |
| text-align: left; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| border-bottom: 1px solid var(--border-color); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| max-width: 200px; | |
| } | |
| .data-table td { | |
| padding: 0.75rem; | |
| color: var(--text-secondary); | |
| border-bottom: 1px solid rgba(71, 85, 105, 0.3); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| max-width: 200px; | |
| } | |
| .data-table tbody tr:hover { | |
| background: rgba(59, 130, 246, 0.05); | |
| } | |
| .data-table tbody tr:last-child td { | |
| border-bottom: none; | |
| } | |
| .pagination { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 1rem; | |
| margin-top: 1.5rem; | |
| padding: 1rem; | |
| } | |
| .pagination-info { | |
| color: var(--text-secondary); | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| } | |
| .pagination .btn { | |
| padding: 0.5rem 1rem; | |
| min-width: auto; | |
| } | |
| .data-viewer.error, | |
| .data-viewer.empty { | |
| text-align: center; | |
| } | |
| .download-section { | |
| text-align: center; | |
| } | |
| /* Additional styles for improved UI */ | |
| .error-actions { | |
| display: flex; | |
| justify-content: center; | |
| gap: 0.75rem; | |
| flex-wrap: wrap; | |
| } | |
| .error-help ul { | |
| color: var(--text-secondary); | |
| opacity: 0.9; | |
| } | |
| .error-help li { | |
| margin-bottom: 0.25rem; | |
| } | |
| .success-details { | |
| display: flex; | |
| gap: 1rem; | |
| flex-wrap: wrap; | |
| margin-top: 0.75rem; | |
| } | |
| .success-stat { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| font-size: 0.875rem; | |
| } | |
| .success-label { | |
| color: var(--text-secondary); | |
| font-weight: 500; | |
| } | |
| .success-value { | |
| color: var(--text-primary); | |
| font-weight: 600; | |
| padding: 0.25rem 0.5rem; | |
| background: rgba(16, 185, 129, 0.1); | |
| border-radius: 4px; | |
| } | |
| .download-actions { | |
| display: flex; | |
| justify-content: center; | |
| gap: 1rem; | |
| flex-wrap: wrap; | |
| } | |
| .download-btn-primary { | |
| font-size: 1rem; | |
| padding: 0.875rem 2rem; | |
| font-weight: 600; | |
| } | |
| .btn-outline { | |
| background: transparent; | |
| border: 2px solid var(--border-color); | |
| color: var(--text-secondary); | |
| padding: 0.75rem 1.5rem; | |
| border-radius: 8px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| text-decoration: none; | |
| } | |
| .btn-outline:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| background: rgba(59, 130, 246, 0.05); | |
| } | |
| .preview-note { | |
| border: 1px solid var(--border-color); | |
| } | |
| /* Enhanced error display styles */ | |
| .btn-large { | |
| padding: 12px 24px ; | |
| font-size: 1rem ; | |
| font-weight: 600 ; | |
| } | |
| .success-note { | |
| animation: fadeIn 0.3s ease-in-out; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .error-actions .btn { | |
| min-width: 180px; | |
| } | |
| .status-message.error .status-message-content h4 { | |
| color: var(--error-color, #dc3545); | |
| } | |
| .status-message.error .status-message-content p { | |
| margin-bottom: 0.75rem; | |
| } | |
| /* Responsive data table */ | |
| @media (max-width: 768px) { | |
| .data-viewer-header { | |
| flex-direction: column; | |
| align-items: stretch; | |
| gap: 1rem; | |
| } | |
| .data-table-container { | |
| overflow-x: auto; | |
| } | |
| .data-table th, | |
| .data-table td { | |
| padding: 0.5rem; | |
| min-width: 120px; | |
| } | |
| .pagination { | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| } | |
| /* Responsive improvements */ | |
| @media (max-width: 568px) { | |
| .error-actions { | |
| flex-direction: column; | |
| align-items: center; | |
| } | |
| .download-actions { | |
| flex-direction: column; | |
| align-items: center; | |
| } | |
| .success-details { | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| } | |