/* Shared map presentation for every account, including rotated driver maps. */
.gps-map-status { padding: 6px 9px; gap: 7px; border-radius: 9px; }
.gps-map-status strong { font-size: 11px; }
.gps-pulse { width: 8px; height: 8px; }
.gps-offline .gps-pulse { background: #df1f2d; animation: none; }
.gps-live .gps-pulse { background: #16825d; animation: mapLivePulse 1.6s ease-in-out infinite; }
@keyframes mapLivePulse { 0%,100% { opacity: 1; box-shadow: 0 0 0 2px #16825d22; } 50% { opacity: .45; box-shadow: 0 0 0 5px #16825d11; } }
.map-ride-footer { padding: 10px 14px; border-top: 1px solid #e5eaf0; background: #fff; }
.map-ride-footer .ride-map-status { position: static; max-width: none; padding: 4px 10px; border-radius: 0; box-shadow: none; backdrop-filter: none; pointer-events: auto; }
.schooltrack-map-label.leaflet-tooltip { max-width: 150px; overflow: hidden; text-overflow: ellipsis; padding: 2px 5px; border-radius: 5px; font-size: 8px; font-weight: 650; box-shadow: 0 2px 5px #17223522; }
.vehicle-marker-pro { transform: scale(.65); transform-origin: 36px 42px; }
.osm-map-legend { gap: 6px; padding: 4px 6px; font-size: 8px; }
@media (max-width: 600px) { .schooltrack-map-label.leaflet-tooltip { max-width: 110px; } }
@media (prefers-reduced-motion: reduce) { .gps-live .gps-pulse { animation: none; } }
/* Compact symbol key; route samples match the polylines on the map. */
.osm-map-legend{align-items:center;gap:8px;max-width:calc(100% - 24px);padding:5px 8px;border-radius:9px;pointer-events:auto}
.osm-map-legend .map-legend-symbol{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;color:#fff;background:#172235}
.osm-map-legend .map-legend-symbol .icon{width:17px;height:17px}
.osm-map-legend .is-home,.map-place-symbol.is-home{background:#16825d}
.osm-map-legend .is-driver{background:#df1f2d}
.osm-map-legend i.legend-passed,.osm-map-legend i.legend-remaining,.osm-map-legend i.st-line-normal,.osm-map-legend i.st-line-fast,.osm-map-legend i.st-line-unknown{width:22px;height:3px;border-radius:2px;display:inline-block;flex-shrink:0}
.osm-map-legend i.legend-passed{background:#16a34a}.osm-map-legend i.legend-remaining{background:#df1f2d}
.map-place-marker{background:transparent;border:0}.map-place-symbol{display:grid;place-items:center;width:28px;height:28px;border:2px solid #fff;border-radius:8px;background:#172235;color:#fff;box-shadow:0 2px 6px #17223555}.map-place-symbol .icon{width:19px;height:19px}
.map-legend-notes{position:relative;margin-inline-start:auto}.map-legend-notes summary{list-style:none;cursor:pointer;font-size:20px;line-height:24px;width:26px;text-align:center;color:#334155}.map-legend-notes summary::-webkit-details-marker{display:none}
.map-legend-notes-content{position:absolute;bottom:32px;inset-inline-end:0;width:220px;max-width:70vw;background:#fff;border:1px solid #d5dce5;border-radius:9px;padding:8px 12px;box-shadow:0 4px 16px #17223533;color:#334155;font-size:11px;line-height:1.5}.map-legend-notes-content p{margin:5px 0}
@media(max-width:600px){.osm-map-legend{gap:6px;font-size:9px;bottom:24px}.osm-map-legend>span{gap:4px}}

.history-trace-notice{padding:10px 14px;background:#fff6e5;color:#714a12;border-top:1px solid #ead5b2;font-size:12px;line-height:1.5}
.schooltrack-map-label.history-stop-duration-label{max-width:150px;white-space:normal;text-align:center;font-size:10px;line-height:1.5;padding:4px 7px}
.history-stop-duration-label strong{color:#172235;font-size:11px}

.osm-map-legend i.history-planned-line{display:inline-block;width:24px;height:0;border-top:3px dashed #df1f2d;background:none;border-radius:0}
.schooltrack-map-label.history-stop-duration-label strong{color:inherit}
.osm-map-legend i.st-line-normal{background:#18854b}.osm-map-legend i.st-line-fast{background:#db303f}.osm-map-legend i.st-line-unknown{background:#7c8795}
