// Import variables and mixins @use '../variables' as *; @use '../mixins' as *; // Main application styles for index.html .container { max-width: 1200px; margin: 0 auto; padding: $spacing-lg; } .header { margin-bottom: $spacing-lg; padding: $spacing-md 0; border-bottom: 1px solid var(--border-color); } .header-content { @include flex-between; align-items: flex-start; gap: $spacing-lg; } .header-text { flex: 1; h1 { color: var(--text-color); font-size: $font-size-xxl; margin: 0 0 $spacing-xs 0; } p { color: var(--text-color); opacity: 0.8; margin: 0; font-size: $font-size-md; } } // Responsive header @include mobile { .header-content { flex-direction: column; align-items: stretch; gap: $spacing-md; } .header-text { text-align: center; h1 { font-size: $font-size-xl; } p { font-size: $font-size-sm; } } .theme-toggle { @include theme-toggle-styles; align-self: center; } } .title { color: var(--text-color); font-size: $font-size-xxl; margin: 0; } .subtitle { color: var(--text-color); opacity: 0.8; margin: $spacing-xs 0; } // Map and view controls .view-controls { @include flex-center; gap: $spacing-sm; margin-bottom: $spacing-lg; } .view-btn { @include button; &.active { background-color: $primary-color; color: white; } &:not(.active) { background-color: transparent; color: var(--text-color); border: 1px solid var(--border-color); } } // Map container .map-view { width: 100%; height: 500px; border-radius: $border-radius-md; overflow: hidden; box-shadow: $shadow-md; @include mobile { height: 400px; } } // Specific map element styling #map { height: 500px; width: 100%; border-radius: $border-radius-md; box-shadow: $shadow-md; margin: $spacing-lg 0; @include mobile { height: 400px; } } // Reports table (main page) .reports-table { @include table-base; th { background-color: var(--bg-secondary, var(--card-bg)); color: var(--text-color); font-weight: 600; padding: 1rem; border-bottom: 2px solid var(--border-color); &:first-child { border-top-left-radius: $border-radius-md; } &:last-child { border-top-right-radius: $border-radius-md; } } td { padding: 1rem; border-bottom: 1px solid var(--border-color); color: var(--text-color); vertical-align: top; &:first-child { padding-left: 1.5rem; } &:last-child { padding-right: 1.5rem; } } tbody tr { transition: background-color 0.2s ease; &:hover { background-color: var(--bg-hover, var(--table-hover)); } &:last-child td { border-bottom: none; } } // Specific cell styles td.location-cell { color: var(--text-color); font-size: $font-size-sm; font-weight: 500; max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } td.details-cell { color: var(--text-color); font-size: 14px; font-weight: 400; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: italic; } td.time-cell { color: var(--text-color); font-size: 12px; font-weight: 400; } td.remaining-cell { color: var(--text-color); font-size: 12px; font-weight: 500; &.urgent { @include status-indicator(var(--status-danger, $danger-color), white); text-transform: uppercase; letter-spacing: 0.025em; } &.warning { @include status-indicator(var(--status-warning, $warning-color), white); text-transform: uppercase; letter-spacing: 0.025em; } &.normal { @include status-indicator(var(--status-info, $info-color), white); } } @include mobile { display: block; overflow-x: auto; white-space: nowrap; th, td { min-width: 120px; } } } // Form section .form-section { @include card; margin-bottom: $spacing-lg; h3 { margin-top: 0; margin-bottom: $spacing-md; color: var(--text-color); } } // Map section with card styling .map-section { @include card; margin-bottom: $spacing-lg; h2 { margin-top: 0; margin-bottom: $spacing-md; color: var(--text-color); } } // Reports header .reports-header { @include flex-between; align-items: center; margin-bottom: $spacing-lg; h2 { margin: 0; } } // View toggle buttons .view-toggle { display: flex; gap: $spacing-xs; } .toggle-btn { @include button($size: sm); &.active { background-color: $primary-color; color: white; } &:not(.active) { background-color: transparent; color: var(--text-color); border: 1px solid var(--border-color); } } // View containers .view-container { margin-top: $spacing-md; } // Map info styling .map-info { margin-top: $spacing-md; padding: $spacing-md; background-color: var(--bg-secondary); border-radius: $border-radius-sm; border: 1px solid var(--border-color); p { margin: $spacing-xs 0; font-size: $font-size-sm; color: var(--text-color); &:last-child { margin-bottom: 0; } } } // Table controls .table-controls { margin-bottom: $spacing-md; } .table-info { text-align: center; p { margin: 0; color: var(--text-color); font-size: $font-size-md; } } .table-container { overflow-x: auto; } // Add location form .add-location-form { display: grid; grid-template-columns: 1fr auto; gap: $spacing-md; align-items: end; @include mobile { grid-template-columns: 1fr; } .location-input { @include input-base; min-width: 300px; @include mobile { min-width: unset; } } .add-btn { @include button($bg-color: $success-color); } } // Location count display .location-count { color: var(--text-color); font-size: $font-size-md; margin-bottom: $spacing-md; text-align: center; } // Error/Success messages .error-message { @include card($spacing-md); background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; margin: $spacing-md 0; &.success { background-color: #d4edda; color: #155724; border-color: #c3e6cb; } } // Loading states .loading { text-align: center; color: var(--text-color); opacity: 0.7; padding: $spacing-lg; } // Theme toggle (shared with admin) .theme-section { position: fixed; top: $spacing-lg; right: $spacing-lg; z-index: 100; @include mobile { position: static; margin-bottom: $spacing-lg; text-align: center; } }