Spaces:
No application file
No application file
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; | |
| background-color: #121212; | |
| color: #e0e0e0; | |
| margin: 0; | |
| padding: 20px; | |
| display: flex; | |
| justify-content: center; | |
| } | |
| .container { | |
| display: flex; | |
| width: 100%; | |
| max-width: 1600px; | |
| gap: 20px; | |
| } | |
| .main-content { | |
| flex: 4; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .sidebar { | |
| flex: 1; | |
| background-color: #1e1e1e; | |
| padding: 20px; | |
| border-radius: 8px; | |
| height: fit-content; | |
| } | |
| .header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 10px; | |
| } | |
| h1 { border-bottom: none; padding-bottom: 0; } | |
| h2, h3 { color: #ffffff; border-bottom: 2px solid #333; padding-bottom: 10px; } | |
| .dashboard-grid { | |
| display: grid; | |
| grid-template-columns: 1.8fr 1.5fr; /* Video area vs Results column */ | |
| gap: 20px; | |
| align-items: flex-start; | |
| } | |
| .video-area { | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .video-wrapper { | |
| width: 100%; | |
| margin-bottom: 10px; | |
| } | |
| #videoPlayer { | |
| background-color: #000; | |
| border-radius: 8px; | |
| } | |
| #statusLabel { | |
| margin-top: 0; | |
| font-style: italic; | |
| color: #f44336; | |
| text-align: center; | |
| min-height: 24px; | |
| } | |
| /* NEW: This column holds the graph and summary */ | |
| .results-column { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; /* Adds space between graph and summary */ | |
| } | |
| .loader-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| padding: 20px 0; | |
| } | |
| .loader-container p { | |
| font-style: italic; | |
| color: #999; | |
| } | |
| .loader { | |
| border: 5px solid #333; /* Light grey */ | |
| border-top: 5px solid #03dac6; /* Teal */ | |
| border-radius: 50%; | |
| width: 40px; | |
| height: 40px; | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .chart-container, | |
| .yolo-container, | |
| .summary-container { | |
| background-color: #1e1e1e; | |
| padding: 20px; | |
| border-radius: 8px; | |
| } | |
| /* CHANGED: Removed margin-top from summary container */ | |
| .summary-container h3 { | |
| margin-top: 0; | |
| } | |
| #summaryTextLabel { | |
| font-size: 0.95em; | |
| color: #e0e0e0; | |
| min-height: 50px; | |
| white-space: pre-wrap; | |
| word-wrap: break-word; | |
| } | |
| #yoloTextLabel { font-size: 1.2em; font-weight: bold; color: #4CAF50; min-height: 25px; } | |
| #yoloImageFrame { width: 100%; height: auto; border-radius: 4px; background-color: #333; min-height: 150px; margin-top: 10px; } | |
| /* Styles for controls in the sidebar */ | |
| .custom-select { | |
| width: 100%; | |
| padding: 12px 15px; | |
| background-color: #3a3a3a; | |
| color: #e0e0e0; | |
| border: 1px solid #bb86fc; | |
| border-radius: 4px; | |
| font-size: 1em; | |
| cursor: pointer; | |
| } | |
| .custom-select:hover { background-color: #4a4a4a; } | |
| .separator { border: none; border-top: 1px solid #333; margin: 20px 0; } | |
| .upload-section { display: flex; flex-direction: column; gap: 10px; } | |
| #videoUpload { color: #e0e0e0; } | |
| #videoUpload::file-selector-button { font-weight: bold; color: #bb86fc; background-color: #3a3a3a; padding: 8px 12px; border: 1px solid #bb86fc; border-radius: 4px; cursor: pointer; transition: background-color 0.2s; } | |
| #videoUpload::file-selector-button:hover { background-color: #4a4a4a; } | |
| #uploadButton { padding: 10px 20px; font-size: 16px; font-weight: bold; color: white; background-color: #03dac6; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.2s; } | |
| #uploadButton:hover { background-color: #018786; } | |
| #resetButton { padding: 10px 20px; font-size: 16px; font-weight: bold; color: white; background-color: #f44336; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.2s; } | |
| #resetButton:hover { background-color: #d32f2f; } | |
| #statusLabel.recording { | |
| color: #f44336; /* Red color */ | |
| font-weight: bold; | |
| } |