.siram-sidebar {
    --cui-offcanvas-width: 16rem;
}

.siram-sidebar .nav {
    --cui-nav-link-color: #e1e7ef;
    --cui-nav-link-hover-color: #fff;
}

@media (min-width: 992px) {
    .siram-sidebar {
        flex: 0 0 var(--cui-offcanvas-width);
    }
}

.siram-workspace {
    min-width: 0;
}

.siram-access {
    max-width: 52rem;
}

.siram-access-brand {
    background: #152944;
    color: #fff;
}

.siram-access-brand .small {
    letter-spacing: .1em;
    color: #d0dceb;
}

.validation-summary-valid {
    display: none;
}

.input-validation-error {
    border-color: var(--cui-form-invalid-border-color);
}
.permisos-workspace {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: clip;
    border: 1px solid var(--cui-border-color);
    border-radius: var(--cui-border-radius);
    background: var(--cui-body-bg);
}

.permisos-workspace [hidden] {
    display: none !important;
}

.permisos-workspace > .alert {
    grid-row: 1;
}

.permisos-body {
    grid-row: 2;
    display: grid;
    min-height: 0;
}

.permisos-modulos {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    border-bottom: 1px solid var(--cui-border-color);
    background: var(--cui-tertiary-bg);
}

.permisos-lista-modulos {
    max-height: 14rem;
    overflow: auto;
}

.permisos-modulo {
    color: var(--cui-body-color);
}

.permisos-modulo[aria-pressed="true"] {
    color: var(--cui-primary-text-emphasis);
    background: var(--cui-primary-bg-subtle);
    font-weight: 600;
}

.permisos-acciones {
    min-width: 0;
    min-height: 0;
    background: var(--cui-body-bg);
}

.permisos-acciones h2 {
    color: var(--cui-primary-text-emphasis);
    overflow-wrap: anywhere;
}

.permisos-seleccion,
.permisos-ruta {
    background: var(--cui-tertiary-bg);
}

.permisos-recurso {
    background: var(--cui-body-bg);
    cursor: pointer;
}

.permisos-recurso:has(input:checked) {
    border-color: var(--cui-primary-border-subtle) !important;
    background: var(--cui-primary-bg-subtle);
}

.permisos-recurso-texto {
    min-width: 0;
    overflow-wrap: anywhere;
}

.permisos-ruta {
    display: inline-block;
    max-width: 100%;
    color: var(--cui-secondary-color);
}

.permisos-footer {
    grid-row: 3;
    position: sticky;
    bottom: 0;
    z-index: 1;
    border-top: 1px solid var(--cui-border-color);
    background: var(--cui-body-bg);
}

@media (min-width: 992px) {
    .permisos-workspace {
        height: max(32rem, calc(100dvh - 11rem));
    }

    .permisos-body {
        grid-template-columns: minmax(15rem, 25%) minmax(0, 1fr);
    }

    .permisos-modulos {
        border-right: 1px solid var(--cui-border-color);
        border-bottom: 0;
    }

    .permisos-lista-modulos {
        max-height: none;
    }

    .permisos-acciones {
        overflow: auto;
    }

    .permisos-busqueda-acciones {
        float: inline-end;
        width: min(42%, 21rem);
        margin-inline-start: 1rem;
    }

    .permisos-seleccion {
        clear: both;
    }
}
#PerfilIds + .select2-container .select2-selection--multiple {
    min-height: calc(1.5em + .75rem + 2px);
    border-color: var(--cui-border-color);
    border-radius: var(--cui-border-radius);
}

#PerfilIds + .select2-container--focus .select2-selection--multiple {
    border-color: var(--cui-primary-border-subtle);
    box-shadow: 0 0 0 var(--cui-focus-ring-width) var(--cui-focus-ring-color);
}

#PerfilIds.input-validation-error + .select2-container .select2-selection--multiple {
    border-color: var(--cui-form-invalid-border-color);
}
.menu-editor-lista {
    display: grid;
    gap: .375rem;
}

.menu-editor-hijos {
    margin-inline-start: .75rem;
    padding-inline-start: .75rem;
    border-inline-start: 1px solid var(--cui-border-color);
}

.menu-editor-hijos:has(> .menu-editor-nodo) {
    padding-top: .375rem;
}

.menu-editor-arrastrando .menu-editor-hijos:not(:has(> .menu-editor-nodo)) {
    min-height: 1.2rem;
    margin-top: .25rem;
    border: 1px dashed var(--cui-border-color);
    border-radius: var(--cui-border-radius-sm);
}

.menu-editor-fila {
    background: var(--cui-body-bg);
}

.menu-editor-fantasma > .menu-editor-fila {
    background: var(--cui-primary-bg-subtle);
}

.menu-editor-nombre {
    min-width: 0;
    overflow-wrap: anywhere;
}

.menu-editor-asa {
    cursor: grab;
    touch-action: none;
}
.menu-icono-resultados {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
    gap: .5rem;
}
.siram-workspace:has(> .rastreo-contenido) {
    height: 100dvh;
}

.rastreo-contenido {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: .75rem !important;
}

.rastreo-workspace {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    flex: 1;
    min-height: 0;
    font-size: .8125rem;
}

.rastreo-workspace .btn,
.rastreo-workspace .form-control,
.rastreo-workspace .form-select,
.rastreo-workspace .page-link {
    font-size: .8125rem;
}

.rastreo-workspace .h5 {
    font-size: 1rem;
}

.rastreo-workspace .badge {
    font-size: .6875rem;
}

.rastreo-unidades .dt-container {
    font-size: .8125rem;
}

.rastreo-unidades .table > :not(caption) > * > * {
    padding: .35rem .3rem;
}

.rastreo-unidades .dt-paging .page-link {
    padding: .3rem .5rem;
}

.rastreo-unidades .dt-search input {
    max-width: 10rem;
}

.rastreo-workspace [hidden] {
    display: none !important;
}

.rastreo-unidades,
.rastreo-mapa-detalle {
    min-width: 0;
    min-height: 0;
}

.rastreo-unidades {
    position: absolute;
    inset: 3.5rem auto .5rem .5rem;
    width: min(24rem, calc(100% - 1rem));
    z-index: 3;
    overflow: auto;
    box-shadow: var(--cui-box-shadow);
}

.rastreo-unidades > .card-header {
    flex-shrink: 0;
}

.rastreo-mapa-detalle {
    display: flex;
}

.rastreo-mapa-tarjeta {
    flex: 1;
    min-width: 0;
}

.rastreo-mapa-contenedor {
    position: relative;
    flex: 1;
    min-height: 0;
    background: var(--cui-tertiary-bg);
}

.recorrido-mapa-contenedor {
    position: relative;
    flex: 1;
    min-height: 0;
}

.recorridos-contenido {
    display: flex;
    min-height: 0;
    padding: .75rem !important;
}

.recorridos-workspace {
    display: grid;
    grid-template-columns: 20rem minmax(0, 1fr);
    gap: .75rem;
    flex: 1;
    min-width: 0;
    min-height: 0;
}

.recorridos-controles,
.recorridos-resultado {
    min-width: 0;
    min-height: 0;
}

.recorridos-controles {
    overflow-y: auto;
}

.recorridos-controles > .card-header,
.recorridos-resultado > .card-header {
    flex-shrink: 0;
}

.recorridos-resultado {
    overflow: hidden;
}

.recorridos-vacio {
    align-items: center;
    justify-content: center;
}

@media (min-width: 992px) {
    .siram-workspace:has(> .recorridos-contenido) {
        height: 100dvh;
    }

    .siram-workspace:has(> .recorridos-contenido) > .header {
        flex-shrink: 0;
    }
}

@media (max-width: 991.98px) {
    .recorridos-workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .recorridos-controles {
        overflow-y: visible;
    }

    .recorridos-resultado {
        min-height: 55dvh;
    }
}

.rastreo-mapa {
    position: absolute;
    inset: 0;
}

.rastreo-detalle-flotante {
    position: absolute;
    bottom: 2rem;
    left: .5rem;
    right: .5rem;
    max-height: 45%;
    overflow: auto;
    z-index: 2;
}

.rastreo-detalle-flotante .btn-close {
    z-index: 1;
}

.rastreo-aviso {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.rastreo-aviso[hidden] {
    display: none;
}

.rastreo-punto {
    display: inline-block;
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
}

.rastreo-marcador {
    display: inline-flex;
    width: 52px;
    height: 52px;
    line-height: 0;
    align-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
}

.rastreo-marcador-linea i {
    color: #16843d;
}

.rastreo-marcador-sin-senal i {
    color: #a05e00;
}

.rastreo-marcador-activo {
    z-index: 1;
}

.rastreo-metricas > div {
    min-width: 6rem;
}

@media (min-width: 992px) {
    .rastreo-workspace:not(.rastreo-lista-oculta) {
        grid-template-columns: minmax(20rem, 24rem) minmax(0, 1fr);
    }

    .rastreo-unidades {
        position: static;
        width: auto;
        box-shadow: none;
    }

    .rastreo-detalle-flotante {
        left: 1rem;
        right: 4rem;
    }
}
.siram-fecha-hora {
    font-size: .75rem;
    background: #eef1f6;
    color: #253b55;
}

@media (max-width: 575.98px) {
    .siram-fecha-hora {
        order: 3;
        width: 100%;
        justify-content: center;
    }
}
.geografia-mapa {
    height: 420px;
    width: 100%;
}

.geografia-tabla-vertices {
    min-width: 470px;
}

@media (max-width: 575.98px) {
    .geografia-mapa {
        height: 300px;
    }
}

/* Estación de trabajo de mapas: navegación compacta y una sola superficie de operación. */
.mapa-layout { overflow: hidden; }
.mapa-aplicacion { height: 100dvh; display: flex; flex-direction: column; }
.mapa-cabecera { height: 52px; flex-shrink: 0; display: flex; align-items: center; gap: 1.25rem; padding: 0 1rem; border-bottom: 1px solid #dfe5ed; background: white; z-index: 20; }
.mapa-marca { display: inline-flex; align-items: center; gap: .5rem; color: #1b3454; text-decoration: none; font-weight: 800; letter-spacing: .04em; font-size: 1rem; }
.mapa-marca i { color: var(--cui-primary); }
.mapa-navegacion { flex: 1; min-width: 0; }
.mapa-nav-lista, .mapa-nav-grupo ul { list-style: none; margin: 0; padding: 0; }
.mapa-nav-lista { display: flex; align-items: center; gap: .2rem; }
.mapa-nav-lista > li > a, .mapa-nav-grupo > summary { display: block; padding: .55rem .7rem; border-radius: .35rem; text-decoration: none; color: #48556b; font-size: .8125rem; cursor: pointer; white-space: nowrap; }
.mapa-nav-grupo > summary { list-style: none; }
.mapa-nav-grupo > summary::-webkit-details-marker { display: none; }
.mapa-nav-lista a:hover, .mapa-nav-grupo > summary:hover { background: #f0f3f8; }
.mapa-nav-lista .mapa-nav-activo { color: var(--cui-primary); background: #eeedfc; font-weight: 600; }
.mapa-nav-grupo { position: relative; }
.mapa-nav-grupo > ul, .mapa-cuenta-opciones { position: absolute; top: calc(100% + .4rem); left: 0; min-width: 220px; max-height: 70dvh; overflow: auto; padding: .5rem; background: white; border: 1px solid #dfe5ed; border-radius: .5rem; box-shadow: 0 8px 28px #15294420; }
.mapa-nav-grupo ul a { display: block; padding: .5rem .65rem; color: #48556b; text-decoration: none; font-size: .8125rem; border-radius: .3rem; }
.mapa-nav-grupo ul .mapa-nav-grupo > ul { position: static; box-shadow: none; border: 0; border-left: 2px solid #e5eaf0; margin-left: .65rem; min-width: 0; }
.mapa-cuenta { margin-left: auto; }
.mapa-cuenta > summary { display: flex; gap: .5rem; align-items: center; }
.mapa-usuario { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.mapa-cuenta-opciones { right: 0; left: auto; }
.mapa-menu-toggle { display: none; }
.mapa-principal { flex: 1; min-height: 0; padding: 0 !important; display: flex; }
.mapa-layout .rastreo-workspace, .mapa-layout .recorridos-workspace { gap: 0; position: relative; min-width: 0; font-size: .8125rem; }
.mapa-layout .card { border-radius: 0; }
.mapa-layout .rastreo-workspace:not(.rastreo-lista-oculta), .mapa-layout .recorridos-workspace { grid-template-columns: 320px minmax(0, 1fr); }
.mapa-layout .rastreo-workspace.rastreo-lista-oculta, .mapa-layout .recorridos-filtros-ocultos { grid-template-columns: minmax(0, 1fr); }
.mapa-layout .rastreo-unidades, .mapa-layout .recorridos-controles { border: 0; border-right: 1px solid #dfe5ed; background: #fff; }
.mapa-layout .recorridos-controles[hidden] { display: none; }
.mapa-layout .card-header { background: #fff; border-bottom-color: #edf0f5; }
.mapa-layout .rastreo-unidades .card-body { padding: .75rem !important; }
.mapa-layout .recorridos-controles .card-body { padding: 1rem; }
.mapa-layout .recorridos-controles .h5, .mapa-layout .rastreo-unidades .h5 { font-size: .95rem; }
.mapa-layout .recorridos-controles .form-control, .mapa-layout .recorridos-controles .form-select, .mapa-layout .recorridos-controles .btn { font-size: .8125rem; }
.mapa-layout .rastreo-mapa-tarjeta, .mapa-layout .recorridos-resultado { position: relative; border: 0; min-height: 0; background: #eaf0f4; }
.mapa-herramientas { position: absolute; left: .75rem; top: .75rem; right: 4rem; display: flex; align-items: center; justify-content: space-between; gap: .5rem; pointer-events: none; z-index: 4; }
.mapa-herramientas > * { pointer-events: auto; }
.mapa-herramientas .btn, .mapa-filtros-toggle { background: white; border: 1px solid #dbe1ea; box-shadow: 0 2px 8px #15294418; }
.mapa-herramientas .btn-primary { background: var(--cui-primary); color: #fff; }
.mapa-layout .recorrido-mapa-contenedor { min-height: 0; }
.mapa-filtros-toggle { position: absolute; z-index: 5; top: .75rem; left: 332px; font-size: .8125rem; }
.recorridos-filtros-ocultos .mapa-filtros-toggle { left: .75rem; }
.recorrido-herramientas { left: 7rem; }
.recorrido-herramientas > span { padding: .45rem .65rem; background: white; border-radius: .35rem; box-shadow: 0 2px 8px #15294418; font-size: .75rem; }
.mapa-layout .rastreo-detalle-flotante { left: .75rem; right: 4rem; bottom: 2rem; border-radius: .5rem; }
.mapa-layout .rastreo-unidad-icono { display: none; }
.mapa-layout .rastreo-detalle-flotante .card-body { padding: .75rem; }
.mapa-layout .rastreo-detalle-flotante .h5 { font-size: .95rem; }
.mapa-layout .rastreo-unidades .dt-search { display: flex; flex-direction: column; align-items: stretch; text-align: left; gap: .25rem; }
.mapa-layout .rastreo-unidades .dt-search input { max-width: none; width: 100%; margin: 0; }
.mapa-layout .rastreo-unidades .dt-length { text-align: left; }
.mapa-layout .rastreo-unidades time { font-size: .72rem; }
.mapa-layout .rastreo-unidades .dt-paging { display: flex; justify-content: center; }
.mapa-layout :focus-visible { outline: 3px solid #5965de; outline-offset: 2px; }
@media (max-width: 1199.98px) {
    .mapa-cabecera { gap: .5rem; }
    .mapa-usuario { display: none; }
    .mapa-nav-lista > li > a, .mapa-nav-grupo > summary { padding: .55rem .5rem; }
}
@media (max-width: 991.98px) {
    .mapa-menu-toggle { display: inline-flex; }
    .mapa-navegacion { display: none; position: absolute; top: 52px; left: 0; right: 0; background: white; padding: .75rem; border-bottom: 1px solid #dfe5ed; max-height: 75dvh; overflow: auto; }
    .mapa-navegacion.mapa-menu-abierto { display: block; }
    .mapa-nav-lista { flex-direction: column; align-items: stretch; }
    .mapa-nav-grupo > ul { position: static; box-shadow: none; border: 0; margin-left: .75rem; }
    .mapa-layout .rastreo-workspace:not(.rastreo-lista-oculta), .mapa-layout .recorridos-workspace { grid-template-columns: minmax(0, 1fr); }
    .mapa-layout .rastreo-unidades, .mapa-layout .recorridos-controles { position: absolute; top: 3.5rem; left: .5rem; bottom: 1rem; width: min(320px, calc(100% - 1rem)); z-index: 6; overflow: auto; border: 1px solid #dfe5ed; border-radius: .5rem; box-shadow: 0 6px 24px #15294430; }
    .mapa-filtros-toggle { left: .75rem; }
    .mapa-layout .recorridos-resultado { min-height: 0; }
    .recorrido-herramientas > span { display: none; }
    .recorrido-herramientas { justify-content: flex-end; }
}
@media (prefers-reduced-motion: no-preference) {
    .mapa-nav-lista a, .mapa-nav-grupo > summary, .mapa-herramientas .btn { transition: background-color .15s, color .15s; }
}
.mapa-selector-capas { width: auto; margin-left: auto; background-color: white; box-shadow: 0 2px 8px #15294418; }
.mapa-detalle-recorrido { position: absolute; bottom: 2rem; left: .75rem; right: 4rem; z-index: 4; background: white; padding: .65rem .85rem; border-radius: .4rem; box-shadow: 0 2px 8px #15294420; }
.recorrido-resumen > div { display: flex; justify-content: space-between; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid #edf0f5; }
.recorrido-resumen dt { font-weight: 500; color: #596578; }
.recorrido-resumen dd { margin: 0; text-align: right; }

/* Configuración de unidad: formulario principal y archivos de referencia. */
.unidad-espacio { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.25rem; align-items: start; }
.unidad-formulario, .unidad-inspector { min-width: 0; }
.unidad-seccion { padding: 1.75rem; }
.unidad-modos .btn { border-radius: 2rem; padding-inline: 1rem; }
.unidad-iconos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.unidad-icono { position: relative; cursor: pointer; min-width: 0; }
.unidad-icono input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.unidad-icono > span { min-height: 100px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; border: 1px solid var(--cui-border-color); border-radius: .5rem; transition: background-color .15s, border-color .15s; }
.unidad-icono img { object-fit: contain; }
.unidad-icono small { font-size: .7rem; text-transform: capitalize; overflow-wrap: anywhere; text-align: center; }
.unidad-icono input:checked + span { border-color: var(--cui-primary); background: var(--cui-primary-bg-subtle); box-shadow: inset 0 0 0 1px var(--cui-primary); }
.unidad-icono input:focus-visible + span { outline: 3px solid var(--cui-primary); outline-offset: 3px; }
.unidad-dropzone { text-align: center; border: 2px dashed var(--cui-border-color); border-radius: .75rem; background: var(--cui-tertiary-bg); padding: 1.5rem .75rem; transition: border-color .15s, background-color .15s; }
.unidad-dropzone.arrastrando { border-color: var(--cui-primary); background: var(--cui-primary-bg-subtle); }
.unidad-fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.unidad-foto { min-width: 0; position: relative; display: block; }
.unidad-foto img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .5rem; border: 1px solid var(--cui-border-color); }
.unidad-foto-quitar { position: absolute; top: .2rem; right: .2rem; min-width: 28px; min-height: 28px; }
.unidad-detalle-fotos { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
@media (max-width: 1199.98px) { .unidad-espacio { grid-template-columns: minmax(0, 1fr) 300px; } .unidad-seccion { padding: 1.25rem; } }
@media (max-width: 991.98px) { .unidad-espacio { grid-template-columns: 1fr; } .unidad-inspector { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } }
@media (max-width: 575.98px) { .unidad-inspector { display: block; } .unidad-seccion { padding: 1rem; } .unidad-pie > div { width: 100%; } .unidad-pie .btn { flex: 1; } }
@media (prefers-reduced-motion: reduce) { .unidad-icono > span, .unidad-dropzone { transition: none; } }

/* Rastreo: franja inferior con una fotografía y datos en columnas. */
.rastreo-nombre-unidad { border: 0; background: transparent; padding: 0; color: var(--cui-body-color); font: inherit; font-weight: 600; text-align: left; }
.rastreo-nombre-unidad:hover { color: var(--cui-primary); text-decoration: underline; }
.rastreo-fila-pendiente { --cui-table-bg: var(--cui-tertiary-bg); }
.rastreo-fila-pendiente td { color: var(--cui-secondary-color); }
.rastreo-mapa-contenedor { container: rastreo-mapa / inline-size; }
.rastreo-detalle-flotante, .mapa-layout .rastreo-detalle-flotante { left: .75rem; right: .75rem; bottom: .75rem; width: auto; max-height: 55%; }
.rastreo-detalle-flotante .btn-close { position: static; }
.rastreo-detalle-flotante .rastreo-detalle-cerrar { position: absolute; top: .45rem; right: .45rem; }
.rastreo-detalle-nombre { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-bottom: .25rem; }
.rastreo-detalle-nombre h2, .rastreo-detalle-nombre .badge { margin-bottom: 0 !important; }
#rastreo-detalle-reporte .d-block { display: inline !important; }
#rastreo-detalle-reporte .d-block::before { content: ' · '; }
.rastreo-detalle-cuerpo { display: grid; grid-template-columns: 80px minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: .75rem; padding: .5rem 1.9rem .5rem .65rem; align-items: start; }
.rastreo-detalle-grupo { min-width: 0; }
.rastreo-detalle-grupo .h6 { font-size: .72rem; margin-bottom: .25rem !important; }
.rastreo-detalle-datos { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .55rem; row-gap: .2rem; margin: 0; font-size: .72rem; }
.rastreo-detalle-datos dt { color: var(--cui-secondary-color); font-weight: 400; }
.rastreo-detalle-datos dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.rastreo-detalle-botones { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .4rem; }
.rastreo-detalle-telemetria { align-self: center; }
.rastreo-detalle-fotografia { min-width: 0; }
.rastreo-fotos-contenedor { display: grid; grid-template-columns: 22px minmax(0, 1fr) 22px; align-items: center; gap: .15rem; }
.rastreo-fotos-contenedor > .btn { padding: .1rem; min-height: 22px; border: 0; background: transparent; box-shadow: none; }
#rastreo-fotos-anterior { grid-row: 2; grid-column: 1; }
#rastreo-fotos-siguiente { grid-row: 2; grid-column: 3; }
.rastreo-fotos { min-width: 0; grid-row: 1; grid-column: 1 / -1; }
.rastreo-foto { display: flex; align-items: center; justify-content: center; width: 100%; height: 66px; border: 1px solid var(--cui-border-color); border-radius: .35rem; overflow: hidden; background: var(--cui-tertiary-bg); }
.rastreo-foto img { width: 100%; height: 100%; object-fit: cover; }
.rastreo-foto span { padding: .3rem; font-size: .7rem; }
.rastreo-foto-contador { grid-row: 2; grid-column: 2; text-align: center; color: var(--cui-secondary-color); font-size: .65rem; pointer-events: none; }
.rastreo-vehiculo { object-fit: contain; transform-origin: center; flex-shrink: 0; }
@container rastreo-mapa (max-width: 600px) {
    .rastreo-detalle-cuerpo { grid-template-columns: 80px minmax(0, 1fr) minmax(0, 1fr); }
    .rastreo-detalle-botones { grid-column: 3; margin-top: 0; }
}
@container rastreo-mapa (max-width: 480px) {
    .rastreo-detalle-cuerpo { grid-template-columns: 80px minmax(0, 1fr); gap: .5rem; }
    .rastreo-detalle-telemetria { grid-column: 1 / -1; }
    .rastreo-detalle-datos { grid-template-columns: auto minmax(0, 1fr); }
    .rastreo-detalle-botones { grid-column: 2; margin-top: 0; }
}
@media (max-width: 991.98px) { .rastreo-detalle-flotante, .mapa-layout .rastreo-detalle-flotante { left: .5rem; bottom: .5rem; right: .5rem; width: auto; max-height: 65%; } }

/* Vista ampliada del mapa; las herramientas permanecen accesibles. */
.mapa-layout.mapa-vista-completa .mapa-cabecera { display: none; }
.mapa-layout.mapa-vista-completa .mapa-navegacion { display: none; }
