/* TRANSPORT-MAP-DELIVERY-V1547 */
.map-filter-card{margin-bottom:14px}.map-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;align-items:end}.map-filter-grid label,.delivery-form label{display:flex;flex-direction:column;gap:5px}.map-filter-actions{display:flex;gap:8px;flex-wrap:wrap}.map-geocode-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #e4e7ec}.map-config-warning{font-size:.9rem;color:#b54708}.map-legend{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 10px}.map-legend span{display:inline-flex;align-items:center;gap:6px;font-size:.88rem}.map-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.status-pending{background:#d89a00}.status-assigned{background:#2563eb}.status-in_transit{background:#7c3aed}.status-partial{background:#b7791f}.status-completed{background:#16a34a}.status-incident{background:#dc2626}.status-cancelled{background:#667085}.badge-incident{background:#fee2e2!important;color:#991b1b!important;border-color:#fca5a5!important}.map-card{padding:0;overflow:hidden}.map-card #transport-map{height:620px;min-height:420px;width:100%;background:#eef2f6}.map-attribution-note{padding:6px 10px;font-size:.75rem;color:#667085;background:#fff;border-top:1px solid #eaecf0}.map-popup-wrap{font-family:Arial,sans-serif}.map-popup-count{font-weight:800;margin-bottom:8px}.map-popup-order{padding:8px 0;border-top:1px solid #e4e7ec}.map-popup-order:first-child{border-top:0}.map-popup-title{font-weight:800;font-size:14px}.map-popup-status{display:inline-block;margin:4px 0;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:800;color:#fff}.map-popup-status.status-pending{background:#d89a00}.map-popup-status.status-assigned{background:#2563eb}.map-popup-status.status-in_transit{background:#7c3aed}.map-popup-status.status-partial{background:#b7791f}.map-popup-status.status-completed{background:#16a34a}.map-popup-status.status-incident{background:#dc2626}.map-popup-status.status-cancelled{background:#667085}.map-popup-address{margin-top:5px;color:#475467}.map-popup-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.map-popup-actions a,.map-popup-status-form button{border:1px solid #d0d5dd;background:#fff;border-radius:6px;padding:5px 7px;text-decoration:none;font-size:12px;color:#344054;cursor:pointer}.map-popup-actions .map-popup-partial{background:#fff8e6;border-color:#e5b84b;color:#7a4d00}.map-popup-actions .map-popup-deliver{background:#ecfdf3;border-color:#86efac;color:#166534}.map-popup-actions .map-popup-incident{background:#fff1f2;border-color:#fda4af;color:#9f1239}.map-popup-status-form{margin-top:6px}.map-unlocated-list{display:grid;gap:8px}.map-unlocated-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px;border:1px solid #e4e7ec;border-radius:8px}.map-unlocated-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}.map-unlocated-row small{white-space:pre-line;color:#667085}.map-unlocated-row .map-error{color:#b42318}.delivery-form-card{max-width:760px}.delivery-summary{display:flex;flex-direction:column;gap:5px;padding:12px;background:#f8fafc;border-radius:8px;margin-bottom:14px}.delivery-form{display:grid;gap:15px}.delivery-form input,.delivery-form select,.delivery-form textarea{width:100%}.delivery-form small{color:#667085}.delivery-gps-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.delivery-submit{min-height:46px}.delivery-history-list{display:grid;gap:12px}.delivery-event{border-left:5px solid #98a2b3}.delivery-event.event-delivered{border-left-color:#16a34a}.delivery-event.event-partial_delivery{border-left-color:#b7791f}.delivery-event.event-incident{border-left-color:#dc2626}.delivery-event.event-status{border-left-color:#7c3aed}.delivery-event-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}.delivery-event-head>div{display:flex;flex-direction:column}.delivery-event-head span{color:#667085}.delivery-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:12px}.delivery-photo-grid img{display:block;width:100%;height:180px;object-fit:cover;border-radius:8px;border:1px solid #d0d5dd}.delivery-sync-ok{color:#067647;font-weight:700}.delivery-sync-error{color:#b42318}.delivery-resync-form{margin-top:12px}@media(max-width:900px){.map-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-card #transport-map{height:520px}}@media(max-width:600px){.map-filter-grid{grid-template-columns:1fr}.map-card #transport-map{height:460px}.map-unlocated-row{align-items:flex-start;flex-direction:column}.delivery-photo-grid{grid-template-columns:1fr}.delivery-photo-grid img{height:auto;max-height:380px}.delivery-event-head{flex-direction:column}}


/* LEAFLET-LAYOUT-FIX-V1548
   Fallback local para evitar mosaicos desalineados si la hoja CSS
   externa de Leaflet tarda, es bloqueada o entra en conflicto con
   estilos globales de la aplicación. */
#transport-map.leaflet-container {
    position: relative;
    overflow: hidden;
    outline: 0;
    background: #eef2f6;
}

#transport-map .leaflet-pane,
#transport-map .leaflet-tile,
#transport-map .leaflet-marker-icon,
#transport-map .leaflet-marker-shadow,
#transport-map .leaflet-tile-container,
#transport-map .leaflet-pane > svg,
#transport-map .leaflet-pane > canvas {
    position: absolute;
    left: 0;
    top: 0;
}

#transport-map .leaflet-map-pane,
#transport-map .leaflet-control-container {
    position: absolute;
    left: 0;
    top: 0;
}

#transport-map .leaflet-map-pane {
    width: 100%;
    height: 100%;
}

#transport-map .leaflet-pane { z-index: 400; }
#transport-map .leaflet-tile-pane { z-index: 200; }
#transport-map .leaflet-overlay-pane { z-index: 400; }
#transport-map .leaflet-shadow-pane { z-index: 500; }
#transport-map .leaflet-marker-pane { z-index: 600; }
#transport-map .leaflet-tooltip-pane { z-index: 650; }
#transport-map .leaflet-popup-pane { z-index: 700; }

#transport-map img.leaflet-tile {
    width: 256px !important;
    height: 256px !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}

#transport-map .leaflet-tile {
    user-select: none;
    -webkit-user-drag: none;
}

#transport-map .leaflet-control {
    position: relative;
    z-index: 800;
    pointer-events: auto;
}

#transport-map .leaflet-top,
#transport-map .leaflet-bottom {
    position: absolute;
    z-index: 1000;
    pointer-events: none;
}

#transport-map .leaflet-top { top: 0; }
#transport-map .leaflet-right { right: 0; }
#transport-map .leaflet-bottom { bottom: 0; }
#transport-map .leaflet-left { left: 0; }

#transport-map .leaflet-control { float: left; clear: both; }
#transport-map .leaflet-right .leaflet-control { float: right; }
#transport-map .leaflet-top .leaflet-control { margin-top: 10px; }
#transport-map .leaflet-bottom .leaflet-control { margin-bottom: 10px; }
#transport-map .leaflet-left .leaflet-control { margin-left: 10px; }
#transport-map .leaflet-right .leaflet-control { margin-right: 10px; }

#transport-map .leaflet-control-zoom a {
    display: block;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    text-decoration: none;
    background: #fff;
    color: #111827;
    border-bottom: 1px solid #ccc;
}

#transport-map .leaflet-control-zoom {
    border: 2px solid rgba(0,0,0,.2);
    border-radius: 4px;
    overflow: hidden;
}

#transport-map .leaflet-control-attribution {
    margin: 0;
    padding: 0 5px;
    background: rgba(255,255,255,.8);
    font-size: 11px;
}

#transport-map .leaflet-popup {
    position: absolute;
    text-align: center;
    margin-bottom: 20px;
}

#transport-map .leaflet-popup-content-wrapper,
#transport-map .leaflet-popup-tip {
    background: #fff;
    color: #333;
    box-shadow: 0 3px 14px rgba(0,0,0,.25);
}

#transport-map .leaflet-popup-content-wrapper {
    border-radius: 8px;
    padding: 1px;
}

#transport-map .leaflet-popup-content {
    margin: 13px 20px;
    line-height: 1.4;
    text-align: left;
}

#transport-map .leaflet-popup-tip-container {
    width: 40px;
    height: 20px;
    position: absolute;
    left: 50%;
    margin-left: -20px;
    overflow: hidden;
    pointer-events: none;
}

#transport-map .leaflet-popup-tip {
    width: 17px;
    height: 17px;
    padding: 1px;
    margin: -10px auto 0;
    transform: rotate(45deg);
}

#transport-map .leaflet-popup-close-button {
    position: absolute;
    top: 0;
    right: 0;
    border: 0;
    text-align: center;
    width: 24px;
    height: 24px;
    font: 16px/24px Tahoma, Verdana, sans-serif;
    color: #757575;
    text-decoration: none;
    background: transparent;
}


/* LEAFLET-POINTER-FIX-V1549
   Restaura la interacción de capas SVG y evita que los mosaicos
   del mapa capturen el clic destinado a los puntos. */
#transport-map .leaflet-tile,
#transport-map .leaflet-tile-container {
    pointer-events: none !important;
}

#transport-map .leaflet-overlay-pane,
#transport-map .leaflet-overlay-pane > svg {
    pointer-events: auto !important;
}

#transport-map .leaflet-pane > svg path {
    pointer-events: none;
}

#transport-map .leaflet-pane > svg path.leaflet-interactive {
    pointer-events: auto !important;
    cursor: pointer;
}

#transport-map .leaflet-interactive {
    pointer-events: auto !important;
    cursor: pointer;
}

#transport-map .leaflet-popup-pane {
    pointer-events: none;
}

#transport-map .leaflet-popup {
    pointer-events: auto;
}


/* MAP-POPUP-SCROLL-CSS-V1550
   Cuando varios transportes comparten coordenadas, el popup debe
   mostrar todos mediante scroll en vez de quedar recortado por el mapa. */
#transport-map .leaflet-popup-scrolled {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border-top: 1px solid #e4e7ec;
    border-bottom: 1px solid #e4e7ec;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

#transport-map .map-popup-wrap {
    min-width: 300px;
}

#transport-map .map-popup-order {
    break-inside: avoid;
}

@media (max-width: 600px) {
    #transport-map .map-popup-wrap {
        min-width: 230px;
    }
}
