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; }