/* Attendance, Geo-Fencing, GPS Tracking */

#gps-replay-map {
    height: 420px;
    width: 100%;
    border-radius: 0 0 12px 12px;
    z-index: 1;
}

.gps-live-row .gps-team-card,
.gps-live-row .gps-map-card {
    min-height: 480px;
}

.gps-live-row #gps-live-map,
.gps-live-row .gps-live-map-fill {
    height: 100%;
    min-height: 420px;
    width: 100%;
    border-radius: 0 0 12px 12px;
    z-index: 1;
}

.gps-alerts-row > [class*="col-"] > .card {
    min-height: 280px;
}

.gps-table-nowrap th,
.gps-table-nowrap td {
    white-space: nowrap;
    vertical-align: middle;
}

.gps-table-scroll {
    overflow-x: auto;
}

.leaflet-popup-content .gps-map-popup {
    margin: 0;
    min-width: 240px;
}

.leaflet-popup-content .gps-map-popup .table td {
    padding: 0.2rem 0;
}

.gps-employee-card {
    cursor: pointer;
    transition: box-shadow 0.2s, border-color 0.2s;
    border: 2px solid transparent;
}

.gps-employee-card:hover,
.gps-employee-card.active {
    border-color: var(--portal-accent, #6c3a36);
    box-shadow: 0 4px 12px rgba(108, 58, 54, 0.15);
}

.gps-timeline {
    position: relative;
    padding-left: 1.25rem;
    max-height: 360px;
    overflow-y: auto;
}

.gps-timeline::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 4px;
    bottom: 4px;
    width: 2px;
    background: var(--bs-border-color);
}

.gps-timeline-item {
    position: relative;
    padding-bottom: 1rem;
    font-size: 0.8125rem;
}

.gps-timeline-item::before {
    content: "";
    position: absolute;
    left: -1.25rem;
    top: 4px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--portal-accent, #6c3a36);
    border: 2px solid var(--bs-body-bg);
}

.gps-timeline-item.alert-point::before {
    background: #f06548;
}

.gps-timeline-item.current-point::before {
    background: #0ab39c;
    box-shadow: 0 0 0 3px rgba(10, 179, 156, 0.3);
}

.geofence-map-mini {
    height: 200px;
    border-radius: 8px;
    z-index: 1;
}

.route-legend {
    font-size: 0.75rem;
}

.route-legend .line-planned {
    display: inline-block;
    width: 24px;
    height: 3px;
    background: #878a99;
    vertical-align: middle;
    margin-right: 4px;
}

.route-legend .line-actual {
    display: inline-block;
    width: 24px;
    height: 3px;
    background: #6c3a36;
    vertical-align: middle;
    margin-right: 4px;
}

.replay-controls .form-range {
    max-width: 100%;
}

.attendance-stat-card {
    border-left: 4px solid var(--portal-accent, #6c3a36);
}

.attendance-filter-toolbar {
    background: var(--bs-tertiary-bg);
    overflow-x: auto;
}

.attendance-filters-row .form-label {
    font-weight: 500;
    letter-spacing: 0.02em;
}

.attendance-filters-row .form-control-sm,
.attendance-filters-row .form-select-sm {
    min-height: 31px;
}

.attendance-filters-row {
    min-width: 0;
}
