        html, body {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
            overflow: hidden;
        }

        .map {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            width: 100%;
            height: 100%;
            z-index: 1; 
        }

/* Navegación cartográfica V40: los controles originales conservan sus handlers. */
.map-navigation {
    position: fixed;
    z-index: 1250;
    top: 50%;
    left: 12px;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(27, 54, 71, .14);
    border-radius: 12px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 4px 16px rgba(13, 31, 45, .2);
    font-family: Arial, sans-serif;
}
.map-navigation-groups { display: flex; flex-direction: column; gap: 5px; }
.map-navigation-group { position: relative; }
.map-navigation-group.is-unavailable { display: none; }
.map-navigation-trigger, .map-navigation-collapse {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 44px;
    min-height: 42px;
    align-items: center;
    gap: 11px;
    padding: 0 11px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #253c4a;
    font: 600 13px Arial, sans-serif;
    text-align: left;
    cursor: pointer;
    touch-action: manipulation;
}
.map-navigation-trigger:hover, .map-navigation-trigger[aria-expanded="true"], .map-navigation-collapse:hover { background: #edf4f7; }
.map-navigation-trigger.has-active-action::after { content: ''; position: absolute; top: 5px; right: 5px; width: 8px; height: 8px; border: 2px solid #fff; border-radius: 50%; background: #087aab; }
.map-navigation-trigger:focus-visible, .map-navigation-collapse:focus-visible, .map-navigation-menu button:focus-visible { outline: 3px solid #1677a8; outline-offset: 2px; }
.map-navigation-trigger svg, .map-navigation-collapse svg { width: 20px; height: 20px; flex: 0 0 20px; fill: currentColor; pointer-events: none; }
.map-navigation-trigger span { white-space: nowrap; pointer-events: none; }
.map-navigation-collapse { width: 100%; min-height: 36px; justify-content: flex-end; color: #536977; }
.map-navigation[data-expanded="false"] { padding: 7px; }
.map-navigation[data-expanded="false"] .map-navigation-trigger { justify-content: center; padding: 0; }
.map-navigation[data-expanded="false"] .map-navigation-trigger span { display: none; }
.map-navigation[data-expanded="false"] .map-navigation-collapse { justify-content: center; }
.map-navigation[data-expanded="false"] .map-navigation-collapse svg { transform: rotate(180deg); }
.map-navigation-menu[hidden] { display: none !important; }
.map-navigation-item[hidden] { display: none !important; }
/* Controls are briefly created by Mapbox before map-navigation reparents them. */
.mapboxgl-ctrl-top-right { display: none !important; }
.map-navigation-menu {
    position: absolute;
    top: 0;
    left: calc(100% + 10px);
    z-index: 1251;
    display: flex;
    min-width: 220px;
    max-width: min(320px, calc(100vw - 92px));
    max-height: min(70vh, 560px);
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    overflow: auto;
    border: 1px solid rgba(27, 54, 71, .16);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 5px 20px rgba(13, 31, 45, .24);
}
.map-navigation-item { display: flex; min-height: 48px; align-items: stretch; border-radius: 6px; color: #344c5c; }
.map-navigation-item-label { flex: 1 1 auto; min-width: 0; font-size: 12px !important; line-height: 1.25; text-align: left; pointer-events: none; }
.map-navigation-location-feedback { margin: 2px 6px 4px; padding: 7px 8px; border-radius: 5px; background: #fff4df; color: #6b4b10; font-size: 11px; line-height: 1.35; }
.map-navigation-item button {
    position: static !important;
    inset: auto !important;
    display: flex !important;
    width: 100% !important;
    min-width: 48px;
    height: auto !important;
    min-height: 48px;
    flex: 1 1 auto;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    margin: 0 !important;
    padding: 0 10px !important;
    border: 1px solid #d5e0e5 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    color: #354e5d !important;
    box-shadow: none !important;
    cursor: pointer;
    font: inherit;
    touch-action: manipulation;
}
.map-navigation-item button svg { width: 19px !important; height: 19px !important; flex: 0 0 19px; margin: 0 !important; fill: currentColor !important; pointer-events: none; }
.map-navigation-item button .mapboxgl-ctrl-icon { width: 19px; height: 19px; flex: 0 0 19px; pointer-events: none; }
.map-navigation-item button[aria-pressed="true"], .map-navigation-item button.mapbox-gl-draw_utm-active, .map-navigation-item button.active { background-color: #d9eff9 !important; border-color: #1681b1 !important; color: #0e648d !important; }
.map-navigation-item button:hover { background-color: #f2f7f9 !important; }
.map-navigation-item.is-active button { background-color: #e5f4fb !important; box-shadow: inset 3px 0 #1681b1 !important; }
.map-navigation-item .incidencia-fab {
    position: static !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: auto !important;
    width: 100% !important;
    min-width: 48px !important;
    min-height: 48px !important;
    height: auto !important;
    justify-content: flex-start;
    gap: 10px;
    padding: 0 10px !important;
    border: 1px solid #d5e0e5 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #354e5d !important;
    box-shadow: none !important;
    font-size: 18px !important;
}
.map-navigation-item .incidencia-fab-text { display: none; }
.map-navigation-item .incidencia-fab-icon { font-size: 22px; }
.exonumis-map-signature {
    position: fixed;
    z-index: 3;
    /* Leave the mandatory Mapbox logo/attribution unobstructed below. */
    bottom: 34px;
    left: 7px;
    display: flex;
    min-width: 74px;
    min-height: 30px;
    align-items: center;
    justify-content: center;
    padding: 2px 5px;
    border-radius: 4px;
    background: rgba(255,255,255,.88);
    opacity: .84;
    text-decoration: none;
}
.exonumis-map-signature img { display: block; width: 66px; height: auto; }
.exonumis-map-signature span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.exonumis-map-signature:hover, .exonumis-map-signature:focus-visible { opacity: 1; }
.exonumis-map-signature:focus-visible { outline: 2px solid #1677a8; outline-offset: 2px; }

        .calculation-box {
            height: auto;
            min-height: 60px;
            width: 200px;
            position: absolute;
            bottom: 30px;
            left: 10px;
            background-color: rgba(255, 255, 255, 0.95);
            padding: 12px;
            text-align: left;
            z-index: 10;
            border-radius: 4px;
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
            font-family: 'Open Sans', sans-serif;
            font-size: 13px;
            border: 1px solid #ccc;
        }

        /* Estilo para destacar visualmente cuándo el botón de coordenadas está activo */
        .mapboxgl-ctrl-icon.mapbox-gl-draw_utm-active {
            background-color: #2eb0e8 !important;
        }
        .mapboxgl-ctrl-icon.mapbox-gl-draw_utm-active svg {
            fill: #ffffff !important;
        }

        #panel-medicion table {
            width: 100%;
            border-collapse: collapse;
            font-size: 11px;
        }
        #panel-medicion th, #panel-medicion td {
            padding: 4px 8px;
        }
        #panel-medicion thead tr {
            background: #f2f2f2;
        }
        #panel-medicion th {
            text-align: left;
        }
        #panel-medicion tfoot tr {
            border-top: 1px solid #ccc;
            font-weight: bold;
        }
        #panel-medicion tbody tr {
            cursor: pointer;
        }
        #panel-medicion tbody tr:hover {
            background: #f0f7ff;
        }
        #panel-medicion td.valor-medicion,
        #panel-medicion #total-area,
        #panel-medicion #total-distancia {
            color: #00c853;
            font-weight: bold;
        }
        .btn-eliminar-medicion {
            border: none;
            background: transparent;
            color: #c0392b;
            font-size: 14px;
            cursor: pointer;
            line-height: 1;
            padding: 2px 4px;
        }


/* ===============================
   VISOR DE FOTOS DE ELEMENTOS DE RED
   =============================== */
.visor-imagenes {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.78);
    padding: 20px;
    box-sizing: border-box;
    font-family: Arial, sans-serif;
}

.visor-imagenes.activo { display: flex; }

.visor-contenido {
    position: relative;
    width: min(1100px, 96vw);
    height: min(90vh, 850px);
    max-height: calc(100vh - 40px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.visor-titulo {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 10px;
    text-shadow: 0 1px 3px #000;
}

.visor-foto-wrap {
    position: relative;
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.visor-foto {
    display: none;
    max-width: calc(100% - 110px);
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 3px;
    box-shadow: 0 4px 25px rgba(0,0,0,.45);
    user-select: none;
    -webkit-user-drag: none;
}

.visor-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 68px;
    border: 0;
    border-radius: 6px;
    background: rgba(0,0,0,.48);
    color: #fff;
    font-size: 30px;
    cursor: pointer;
    z-index: 2;
    touch-action: manipulation;
}

.visor-nav:hover { background: rgba(0,0,0,.72); }
.visor-nav:disabled { opacity: .25; cursor: default; }
.visor-anterior { left: 8px; }
.visor-siguiente { right: 8px; }

.visor-cerrar {
    position: absolute;
    top: -4px;
    right: 0;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    z-index: 3;
    touch-action: manipulation;
}

.visor-contador {
    color: #fff;
    font-size: 13px;
    margin-top: 8px;
    text-shadow: 0 1px 3px #000;
}

.visor-acciones-foto { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 8px; }
.visor-acciones-foto button { min-height: 38px; padding: 0 12px; border: 1px solid rgba(255,255,255,.65); border-radius: 5px; background: rgba(0,0,0,.55); color: #fff; font: inherit; cursor: pointer; touch-action: manipulation; }
.visor-acciones-foto button:disabled { opacity: .55; cursor: not-allowed; }
.visor-acciones-foto button[hidden] { display: none; }

.visor-mensaje {
    display: none;
    color: #fff;
    background: rgba(0,0,0,.65);
    padding: 12px 18px;
    border-radius: 5px;
    font-size: 14px;
    text-align: center;
    max-width: 100%;
    box-sizing: border-box;
}

/* Área táctil invisible sobre los Marcos */
#capa-marcos-hit { cursor: pointer; }

.network-dependencies-panel {
    position: fixed;
    z-index: 1000;
    top: 76px;
    right: 16px;
    width: min(390px, calc(100vw - 32px));
    max-height: min(720px, calc(100dvh - 100px));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #243447;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(22,58,82,.2);
    border-radius: 9px;
    box-shadow: 0 8px 26px rgba(13,31,45,.28);
    font-family: 'Open Sans', Arial, sans-serif;
}
.network-dependencies-panel.is-event-review-hidden { display: none !important; }
.network-dependencies-panel[hidden] { display: none; }
.network-dependencies-header { display: flex; flex: 0 0 auto; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 15px 16px 9px; }
.network-dependencies-heading { min-width: 0; }
.network-dependencies-eyebrow { color: #147aa2; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.network-dependencies-header h2 { margin: 3px 0 2px; overflow-wrap: anywhere; font-size: 19px; line-height: 1.2; }
.network-dependencies-header p { margin: 0; color: #657582; font-size: 11px; }
.network-dependencies-type { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; }
.network-dependencies-type-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 6px; border-radius: 12px; background: #edf1f4; color: #3e5361; font-size: 10px; font-weight: 700; line-height: 1.4; }
.network-dependencies-type-badge svg { width: 13px; height: 13px; fill: currentColor; }
.network-dependencies-type-badge.is-frame { background: #fff2d9; color: #76500c; }
.network-dependencies-type-badge.is-channel { background: #e3f2f7; color: #155c76; }
.network-dependencies-type-context { color: #657582; font-size: 11px; }
#network-dependencies-close { flex: 0 0 34px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #f1f4f6; color: #334; font-size: 25px; line-height: 1; cursor: pointer; }
.network-dependencies-content { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; }
.network-dependencies-status { padding: 4px 16px 8px; color: #536573; font-size: 11px; }
.network-dependencies-status.error { color: #b3261e; }
.network-dependencies-metrics { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; padding: 0 14px 10px; }
.network-dependency-metric { min-width: 0; padding: 9px 10px; border: 1px solid #e3e9ed; border-radius: 6px; background: #f8fafb; }
.network-dependency-metric span { display: block; color: #5e6e79; font-size: 10px; line-height: 1.25; }
.network-dependency-metric strong { display: block; margin-top: 4px; overflow-wrap: anywhere; color: #19384c; font-size: 16px; line-height: 1.1; }
.network-dependency-demo { grid-column: 1 / -1; margin: 0; padding: 2px 4px; color: #78540a; font-size: 10px; font-weight: 700; }
.network-dependencies-detail { padding: 0 16px 12px; }
.network-dependencies-panel.is-collapsed .network-dependencies-detail,
.network-dependencies-panel.is-map-mode .network-dependencies-detail { display: none; }
.network-dependency-detail-section { padding: 9px 0; border-top: 1px solid #e8ecef; }
.network-dependency-detail-section h3 { margin: 0 0 5px; color: #30495a; font-size: 11px; }
.network-dependency-detail-section p, .network-dependency-detail-section li { color: #5e6e79; font-size: 10px; line-height: 1.45; }
.network-dependency-detail-section p { margin: 4px 0; }
.network-dependency-detail-section ul { margin: 0; padding-left: 17px; }
.network-dependency-detail-section li { padding: 1px 0; }
.network-dependency-property-link { padding: 0; border: 0; background: transparent; color: #1677a8; font: inherit; text-decoration: underline; cursor: pointer; }
.network-dependency-property-link:focus-visible { outline: 2px solid #1677a8; outline-offset: 2px; }
.network-dependencies-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 8px; padding: 10px 14px 13px; border-top: 1px solid #e4e9ec; background: #fff; }
.network-dependencies-actions button { min-height: 38px; padding: 0 12px; border-radius: 5px; font: 700 11px 'Open Sans', Arial, sans-serif; cursor: pointer; }
.network-dependencies-primary { flex: 1; border: 0; background: #126d91; color: #fff; }
.network-dependencies-secondary { border: 1px solid #b9c6ce; background: #fff; color: #344c5c; }
.network-event-status { display: flex; flex-direction: column; gap: 4px; margin: 0 14px 10px; padding: 10px 12px; border: 1px solid #e3a63b; border-left: 4px solid #d97706; border-radius: 6px; background: #fff8e7; color: #4c3a16; font-size: 11px; }
.network-event-status[hidden] { display: none; }
.network-event-planned-toggle { display:flex; align-items:center; gap:9px; min-height:44px; width:max-content; max-width:100%; font-size:12px; font-weight:700; cursor:pointer; }
.network-event-planned-toggle input { width:20px; height:20px; margin:0; accent-color:#126d91; }
.network-event-empty { margin:2px 0 0; color:#536573; font-size:11px; }
.network-event-status.is-total-active { border-color: #b42318; border-left-color: #b42318; background: #fff0ee; color: #601d18; }
.network-event-status.is-partial-active { border-color: #c45a11; border-left-color: #c45a11; background: #fff4e8; color: #6e3710; }
.network-event-status.is-no-impact-active { border-color: #94a3ad; border-left-color: #64748b; background: #f1f4f6; color: #344653; }
.network-event-status-badge { font-size: 10px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.network-event-status-title { font-size: 13px; font-weight: 700; }
.network-event-group-heading { margin-top: 4px; font-size: 10px; text-transform: uppercase; letter-spacing: .03em; }
.network-event-card { display: flex; flex-direction: column; gap: 3px; padding: 6px 7px; border: 1px solid rgba(90,70,40,.24); border-radius: 5px; background: rgba(255,255,255,.65); }
.network-event-card.is-impact-total { border-left: 4px solid #b42318; background: linear-gradient(90deg,#fff8f6 0,#fff 82%); }
.network-event-card.is-impact-parcial { border-left: 4px solid #c45a11; background: linear-gradient(90deg,#fffaf4 0,#fff 82%); }
.network-event-card.is-impact-sin_afectacion { border-left: 4px solid #64748b; background: linear-gradient(90deg,#f6f8fa 0,#fff 82%); }
.network-event-status-origin, .network-event-status-metrics { font-size: 10px; }
.network-event-card-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.network-event-action-button { min-height: 34px; padding: 5px 9px; border: 1px solid currentColor; border-radius: 5px; background: #fff; color: inherit; font: 700 11px Arial,sans-serif; cursor: pointer; }
.network-event-card-actions button { min-height: 44px; padding: 4px 7px; font-size: 10px; }
.network-event-map-error { margin: 2px 0 5px; color: #a5221c; font-size: 12px; line-height: 1.4; }
@media (min-width: 701px) {
    .network-event-status { gap: 2px; margin: 0 8px 4px; padding: 4px 8px; }
    .network-event-group-heading { margin-top: 1px; }
    .network-event-card { gap: 1px; padding: 2px 5px; }
    .network-event-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; }
    .network-event-card-actions button { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; padding: 4px 6px; line-height: 1.15; white-space: normal; overflow-wrap: anywhere; }
}
.network-event-dependency-item.is-activo.is-total strong { color: #a5221c; }
.network-event-dependency-item.is-activo.is-parcial strong { color: #a5460c; }
.event-composer-overlay { position: fixed; inset: 0; z-index: 1400; display: flex; align-items: center; justify-content: center; padding: 14px; background: rgba(15,30,42,.52); }
.event-composer-panel, .event-composer-panel *, .event-composer-review, .event-composer-review * { font-family: Arial, sans-serif !important; }
.event-work-section, .event-impact-section { margin: 10px 0; padding: 10px; border: 1px solid #d4dde5; border-radius: 6px; }
.event-work-section legend, .event-impact-section legend { padding: 0 5px; font-weight: 700; }
.event-direction-dialog { width: min(560px, calc(100vw - 24px)); border: 0; border-radius: 8px; padding: 18px; box-shadow: 0 12px 38px rgba(0,0,0,.32); }
.event-direction-dialog::backdrop { background: rgba(0,0,0,.48); }
.event-composer-overlay[hidden] { display: none; }
.event-composer-panel[hidden] { display:none; }
.event-composer-panel [hidden] { display:none !important; }
.event-composer-panel { display:flex; flex-direction:column; width: min(640px, calc(100vw - 28px)); max-height: min(92dvh, 900px); min-height:0; box-sizing:border-box; overflow: hidden; padding: 17px; border-radius: 10px; background: #fff; color: #20313d; box-shadow: 0 12px 38px rgba(0,0,0,.3); font-family: Arial, sans-serif; }
.event-composer-panel > header { display: flex; flex:0 0 auto; justify-content: space-between; gap: 14px; margin: -3px 0 12px; }
.event-composer-panel h2 { margin: 3px 0; font-size: 19px; }
.event-composer-panel header p { margin: 0; color: #526574; font-size: 12px; }
.event-composer-panel header > button { width: 36px; height: 36px; border: 0; border-radius: 50%; background: #eef2f4; font-size: 24px; }
.event-composer-panel form { display: flex; min-width:0; min-height:0; flex:0 1 auto; flex-direction: column; gap: 7px; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
.event-composer-panel label { display: flex; flex-direction: column; gap: 3px; color: #394f5d; font-size: 11px; font-weight: 700; }
.event-composer-panel input, .event-composer-panel select, .event-composer-panel textarea { min-width: 0; width: 100%; box-sizing: border-box; min-height: 44px; padding: 7px 9px; border: 1px solid #c8d2d8; border-radius: 5px; background: #fff; color: #20313d; font: 13px Arial, sans-serif; }
.event-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.event-point-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 4px 0; }
.event-point-row button, .event-composer-actions button, #event-direction-label + input { min-height: 44px; border: 1px solid #9aabb5; border-radius: 5px; padding: 0 12px; background: #fff; color: #203d50; font: 700 12px Arial,sans-serif; }
.event-point-row span { flex: 1 1 200px; color: #516675; font-size: 11px; }
.event-direction-label[hidden], #event-direction-label[hidden] { display: none; }
.event-composer-preview { white-space: pre-line; padding: 10px; border: 1px solid #d6e0e5; border-radius: 6px; background: #f6f9fa; color: #294555; font-size: 12px; line-height: 1.5; }
.event-composer-preview.is-error { border-color: #d2736d; background: #fff3f1; color: #842a24; }
.event-composer-review[hidden] { display: none; }
.event-composer-overlay.is-review { pointer-events: none; align-items: flex-start; justify-content: center; padding: max(12px,env(safe-area-inset-top)) 12px 12px; background: transparent; }
.event-composer-review { pointer-events: auto; display:flex; flex-direction:column; width: min(520px,calc(100vw - 24px)); max-height: min(42dvh,380px); overflow: hidden; padding: 12px 14px; border: 1px solid #bccbd2; border-radius: 9px; background: rgba(255,255,255,.97); box-shadow: 0 4px 18px rgba(0,0,0,.22); color: #20313d; }
.event-composer-review-header { display:flex; flex:0 0 auto; align-items:center; gap:10px; margin-bottom:6px; }
.event-composer-review-header h2 { margin: 0; font-size: 15px; }
.event-composer-review-header button { min-height:44px; padding:7px 12px; border:1px solid #8fa4af; border-radius:5px; background:#fff; color:#203d50; font:700 12px Arial,sans-serif; }
.event-composer-review > p { min-height:0; flex:1 1 auto; overflow:auto; overscroll-behavior:contain; margin: 0; white-space: pre-line; font-size: 12px; line-height: 1.45; }
.event-composer-review #event-direction-label { margin-top: 8px; }
.event-composer-review #event-direction-label select { min-height: 48px; }
.event-master-direction { min-width: 0; margin: 0; padding: 10px; border: 1px solid #cbd7dd; border-radius: 6px; }
.event-master-direction legend { padding: 0 5px; color: #264a5d; font-size: 12px; font-weight: 700; }
.event-master-direction p { margin: 2px 0 8px; color: #425b68; font-size: 12px; }
.event-master-direction > button { min-height: 42px; padding: 8px 12px; border: 1px solid #38738f; border-radius: 5px; background: #f1f8fb; color: #1f526c; font-weight: 700; cursor: pointer; }
.event-composer-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:8px; margin-top:3px; padding:8px 0 max(3px,env(safe-area-inset-bottom)); background:#fff; }
.event-composer-actions #event-composer-confirm { border-color: #126d91; background: #126d91; color: #fff; }
.event-composer-actions button:disabled { opacity: .5; cursor: not-allowed; }
.event-map-pick-banner { position: fixed; z-index: 1410; top: max(12px,env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; max-width: calc(100vw - 24px); padding: 10px 13px; border-radius: 8px; background: #102a43; color: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.3); font-size: 12px; pointer-events: auto; }
.event-map-pick-banner[hidden] { display: none; }
.event-map-pick-banner button { min-height: 40px; padding: 0 10px; border: 1px solid #b9d5e4; border-radius: 5px; background: #fff; color: #102a43; font-weight: 700; }
body.event-map-picking .event-composer-overlay { pointer-events: none; background: transparent; }
body.event-map-picking .event-composer-panel { display: none; }
body.has-network-dependencies .incidencia-fab { right: auto; left: 18px; }
body.has-network-dependencies-map-mode .network-dependencies-panel { pointer-events: auto; }
body.network-dependency-property-focus .network-dependencies-header { align-items: center; padding-top: 8px; padding-bottom: 8px; }
body.network-dependency-property-focus .network-dependencies-heading h2 { font-size: 14px; }
body.network-dependency-property-focus .network-dependencies-header > p,
body.network-dependency-property-focus .network-dependencies-eyebrow,
body.network-dependency-property-focus #network-dependencies-map,
body.network-dependency-property-focus #network-dependencies-photos,
body.network-dependency-property-focus #network-dependencies-create-event { display: none !important; }
body.network-dependency-property-focus #network-dependencies-expand { display: none !important; }
body.network-dependency-property-focus.mobile-property-focus #network-dependencies-expand { display: block !important; min-height: 44px; }
body.network-dependency-property-focus .network-dependencies-actions { padding: 5px 10px; }
body.network-dependency-property-focus #network-dependencies-return { display: block !important; min-height: 44px; }

@media (max-width: 700px) {
    .map-navigation {
        top: auto;
        bottom: max(10px, env(safe-area-inset-bottom));
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        max-width: calc(100vw - 20px);
        padding: 5px;
        border-radius: 14px;
    }
    .map-navigation-collapse { display: none; }
    .map-navigation-groups { flex-direction: row; gap: 2px; }
    .map-navigation-trigger { width: 48px; min-width: 48px; min-height: 48px; justify-content: center; padding: 0; }
    .map-navigation-trigger span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .map-navigation-menu {
        position: fixed;
        top: auto;
        bottom: calc(max(10px, env(safe-area-inset-bottom)) + 60px);
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        width: min(330px, calc(100vw - 20px));
        max-width: calc(100vw - 20px);
        max-height: min(60dvh, 480px);
    }
    .map-navigation-item { min-height: 48px; }
    .map-navigation-item button { width: 100% !important; min-width: 48px; height: auto !important; min-height: 48px; flex-basis: auto; }
    .exonumis-map-signature { bottom: max(34px, calc(env(safe-area-inset-bottom) + 30px)); left: 3px; min-width: 66px; min-height: 30px; }
    .exonumis-map-signature img { width: 58px; }
    body.has-network-dependencies .incidencia-fab { right: 12px; left: auto; }
    body.has-network-dependencies-map-mode .map-navigation { bottom: max(8px, env(safe-area-inset-bottom)); }
    body.has-network-dependencies-map-mode .network-dependencies-panel {
        bottom: var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom)));
        left: 50%;
        width: min(330px, calc(100vw - 24px));
        max-height: calc(100dvh - 16px - var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom))));
        transform: translateX(-50%);
    }
    body.has-network-dependencies-map-mode .network-dependencies-header { padding: 7px 10px 4px; }
    body.has-network-dependencies-map-mode .network-dependencies-header h2 { font-size: 14px; }
    body.has-network-dependencies-map-mode .network-dependencies-status,
    body.has-network-dependencies-map-mode .network-dependencies-metrics { display: none; }
    body.has-network-dependencies-map-mode .network-dependencies-content { flex: 0 0 0; overflow: hidden; }
    body.has-network-dependencies-map-mode .network-event-card-actions,
    body.has-network-dependencies-map-mode .network-event-details-button { display: none; }
    body.has-network-dependencies-map-mode .network-dependencies-actions { padding: 4px 8px; }
    body.has-network-dependencies-map-mode #network-dependencies-exit-map { min-height: 38px; }
    body.has-network-dependencies-map-mode .incidencia-fab,
    body.has-network-dependencies-map-mode #btn-gestion-incidencias { display: none !important; }
    body.network-dependency-property-focus .network-dependencies-panel:not(.is-collapsed):not(.is-map-mode) {
        top: auto;
        bottom: var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom)));
        left: 50%;
        width: min(330px, calc(100vw - 24px));
        height: auto;
        max-height: min(45dvh, calc(100dvh - 16px - var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom)))));
        transform: translateX(-50%);
    }
    body.network-dependency-property-focus .network-dependencies-content { display: block !important; min-height: 0; flex: 0 1 auto; overflow-y: auto; }
    body.network-dependency-property-focus #network-dependencies-detail[hidden] { display: none !important; }
    body.network-dependency-property-focus.mobile-property-focus #network-dependencies-detail:not([hidden]) { display: block !important; }
    body.network-dependency-property-focus .network-dependencies-status { padding-bottom: 4px; }
    body.network-dependency-property-focus .network-dependencies-metrics { padding-bottom: 4px; }
    body.network-dependency-property-focus #network-dependencies-close { flex-basis: 44px; width: 44px; height: 44px; }
    .event-composer-overlay { align-items: flex-end; padding: 0; }
    .event-composer-panel { width:100%; max-width:100%; max-height:94dvh; box-sizing:border-box; padding:13px 12px max(14px,env(safe-area-inset-bottom)); border-radius:12px 12px 0 0; }
    .event-composer-panel h2 { font-size: 17px; }
    .event-form-grid { grid-template-columns: 1fr; }
    .event-composer-actions button { flex: 1 1 120px; }
    .event-composer-overlay.is-review { align-items: flex-start; padding: max(12px,env(safe-area-inset-top)) 8px 8px; }
    .event-composer-review { width: 100%; max-height: min(46dvh,380px); padding: 10px; }
    .event-map-pick-banner { width: max-content; flex-wrap: wrap; justify-content: center; text-align: center; }
    body.network-dependency-property-focus .network-dependencies-header { padding: 7px 10px 3px; }
    body.network-dependency-property-focus .network-dependencies-actions { padding: 5px 8px 15px; }
    .network-dependencies-panel {
        top: auto;
        right: 7px;
        bottom: var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom)));
        left: 7px;
        width: auto;
        max-height: calc(var(--network-dependencies-viewport-height, 100dvh) - max(max(8px, env(safe-area-inset-top)), var(--network-dependencies-panel-top, 0px)) - var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom))));
        border-radius: 12px;
    }
    .network-dependencies-panel.is-collapsed:not(.is-map-mode) { height: auto; }
    .network-dependencies-panel:not(.is-collapsed):not(.is-map-mode) { top: max(max(8px, env(safe-area-inset-top)), var(--network-dependencies-panel-top, 0px)); bottom: var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom))); height: calc(var(--network-dependencies-viewport-height, 100dvh) - max(max(8px, env(safe-area-inset-top)), var(--network-dependencies-panel-top, 0px)) - var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom)))); max-height: none; }
    .network-dependencies-panel.is-map-mode { max-height: min(42dvh, calc(100dvh - 16px - var(--network-dependencies-panel-bottom, calc(68px + env(safe-area-inset-bottom))))); }
    .network-dependencies-header { padding: 11px 13px 6px; }
    .network-dependencies-header h2 { font-size: 17px; }
    .network-dependencies-status { padding: 3px 13px 7px; }
    .network-dependencies-metrics { gap: 6px; padding: 0 10px 8px; }
    .network-dependency-metric { padding: 7px 8px; }
    .network-dependency-metric strong { font-size: 14px; }
    .network-dependencies-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 10px 10px; }
    .network-dependencies-actions button { min-height: 44px; padding: 0 8px; }
    .network-dependencies-panel:not(.is-collapsed):not(.is-map-mode) { min-height: 0; }
    .network-dependencies-panel:not(.is-collapsed):not(.is-map-mode) .network-dependencies-content { min-height: 0; flex: 1 1 auto; overflow-y: auto; }
    .network-event-status { gap: 2px; margin: 0 8px 6px; padding: 6px 8px; }
    .network-event-group-heading { margin-top: 2px; }
    .network-event-card { gap: 2px; padding: 4px 6px; }
    .network-event-status-origin,
    .network-event-status-metrics,
    .network-event-status-until { display: none; }
    .network-event-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; }
    .network-event-card-actions button, .network-event-details-button { width: 100%; min-width: 0; min-height: 44px; align-self: stretch; box-sizing: border-box; padding: 2px 5px; font-size: 10px; line-height: 1.1; white-space: normal; overflow-wrap: anywhere; }
    body.has-network-dependencies .incidencia-fab { right: 12px; left: auto; bottom: 12px; }
    body.network-event-red-map-context .network-dependencies-panel {
        top: auto;
        right: 50%;
        bottom: calc(var(--network-dependencies-panel-bottom, 68px) + 8px);
        left: auto;
        width: max-content;
        max-width: calc(100vw - 24px);
        height: auto;
        max-height: none;
        transform: translateX(50%);
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }
    body.network-event-red-map-context .network-dependencies-header,
    body.network-event-red-map-context .network-dependencies-content,
    body.network-event-red-map-context .network-dependencies-actions > button:not(#network-dependencies-exit-map) { display: none !important; }
    body.network-event-red-map-context .network-dependencies-actions { display: block; padding: 0; border: 0; background: transparent; }
    body.network-event-red-map-context #network-dependencies-exit-map { display: block; min-height: 48px; padding: 0 20px; border-radius: 24px; box-shadow: 0 3px 14px rgba(0,0,0,.3); }
}

@media (max-width: 380px) {
    .network-dependencies-header h2 { font-size: 15px; }
    .network-dependency-metric strong { font-size: 13px; }
    .network-dependencies-actions { gap: 6px; padding-right: 8px; padding-left: 8px; }
}

@media (max-width: 600px) {
    .visor-imagenes {
        padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right))
            max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
    }
    .visor-contenido {
        width: 100%;
        height: min(90vh, 850px);
        height: min(90dvh, 850px);
        max-height: calc(100vh - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
        max-height: calc(100dvh - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
        min-height: 0;
    }
    .visor-titulo { flex: 0 0 auto; max-width: calc(100% - 48px); min-height: 24px; margin: 0 0 8px; }
    .visor-foto-wrap { flex: 1 1 auto; min-height: 0; }
    .visor-foto { max-width: calc(100% - 78px); max-height: 100%; }
    .visor-contador, .visor-acciones-foto { flex: 0 0 auto; }
    .visor-contador { margin-top: 8px; }
    .visor-acciones-foto { flex-wrap: wrap; margin-top: 8px; padding-bottom: max(0px, env(safe-area-inset-bottom)); }
    .visor-acciones-foto button { min-height: 44px; }
    .visor-nav { width: 42px; height: 58px; font-size: 25px; }
    .visor-anterior { left: 2px; }
    .visor-siguiente { right: 2px; }
    .visor-titulo { font-size: 16px; }
    .visor-cerrar { top: 0; right: 0; width: 46px; height: 46px; }
}


/* ============================================================
   BÚSQUEDA POR ROL - INTERFAZ ACTUALIZADA
   ============================================================ */

.control-busqueda-rol {
    position: absolute;
    top: 10px;
    right: 60px;
    z-index: 20;
    width: 280px;
    max-height: min(70vh, 520px);
    padding: 10px;
    box-sizing: border-box;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
    font-family: 'Open Sans', sans-serif;
}

.rol-search-title {
    font-size: 12px;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 7px;
}

.rol-search-row {
    display: flex;
    gap: 5px;
    align-items: center;
}

#input-busqueda-rol {
    flex: 1;
    min-width: 0;
    height: 32px;
    box-sizing: border-box;
    padding: 5px 8px;
    border: 1px solid #bbb;
    border-radius: 3px;
    outline: none;
    font-family: inherit;
    font-size: 12px;
    background: #fff;
}

#input-busqueda-rol:focus {
    border-color: #2eb0e8;
    box-shadow: 0 0 0 1px rgba(46, 176, 232, 0.25);
}

#btn-buscar-rol {
    width: 34px;
    height: 32px;
    padding: 0;
    border: 1px solid #bbb;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

#btn-buscar-rol:hover {
    background: #f2f2f2;
}

#btn-buscar-rol svg {
    width: 18px;
    height: 18px;
    fill: #404040;
}

.rol-search-status {
    min-height: 14px;
    margin-top: 5px;
    font-size: 10px;
    color: #777;
}

.rol-search-status.ok {
    color: #087f23;
}

.rol-search-status.error {
    color: #b3261e;
}

.rol-search-results {
    margin-top: 7px;
    max-height: 360px;
    overflow-y: auto;
    border-top: 1px solid #eee;
}

.rol-search-result {
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
    border: 0;
    border-bottom: 1px solid #eee;
    background: #fff;
    padding: 8px 7px;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}

.rol-search-result:hover,
.rol-search-result:focus {
    background: #f0f7ff;
    outline: none;
}

.rol-result-main {
    color: #2c3e50;
    font-size: 12px;
    font-weight: 700;
}

.rol-result-secondary {
    color: #777;
    font-size: 10px;
    margin-top: 2px;
}


/* Después de seleccionar un ROL: mantener solo el cuadro de búsqueda,
   ocultando resultados/estado para dejar libre la vista del mapa. */
.control-busqueda-rol.rol-search-collapsed {
    max-height: none;
    padding: 7px;
}

.control-busqueda-rol.rol-search-collapsed .rol-search-title {
    margin-bottom: 5px;
}

.control-busqueda-rol.rol-search-collapsed .rol-search-status,
.control-busqueda-rol.rol-search-collapsed .rol-search-results {
    display: none;
}

.rol-search-more {
    padding: 8px 7px;
    color: #777;
    font-size: 10px;
    line-height: 1.35;
    background: #fafafa;
}

#btn-toggle-busqueda-rol.mapbox-gl-draw_utm-active {
    background-color: #2eb0e8 !important;
}

#btn-toggle-busqueda-rol.mapbox-gl-draw_utm-active svg {
    fill: #ffffff !important;
}


/* ROL clickeable en la información de coordenadas */
.rol-popup-link {
    color: #1677b8;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.rol-popup-link:hover {
    color: #0b4f7a;
}




@media (max-width: 600px) {
    .control-busqueda-rol:not(.rol-search-collapsed) {
        top: 8px;
        right: 52px;
        width: min(280px, calc(100vw - 68px));
        max-height: min(62vh, 430px);
    }

    .control-busqueda-rol:not(.rol-search-collapsed) .rol-search-results {
        max-height: min(38vh, 270px);
        overscroll-behavior: contain;
    }

    .control-busqueda-rol.rol-search-collapsed {
        top: 8px;
        right: 52px;
        width: 235px;
        padding: 6px;
    }

    .control-busqueda-rol.rol-search-collapsed .rol-search-title {
        font-size: 11px;
    }

    .control-busqueda-rol.rol-search-collapsed #input-busqueda-rol {
        height: 30px;
        font-size: 12px;
    }

    .control-busqueda-rol.rol-search-collapsed #btn-buscar-rol {
        height: 30px;
        width: 32px;
    }
}


/* ===============================
   AUTENTICACION V31
   =============================== */
.login-overlay {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.45);
    font-family: 'Open Sans', Arial, sans-serif;
}
.login-overlay.activo { display: flex; }
.login-box {
    width: min(340px, calc(100vw - 32px));
    box-sizing: border-box;
    background: #fff;
    border-radius: 6px;
    padding: 22px;
    box-shadow: 0 8px 30px rgba(0,0,0,.28);
}
.login-title { font-size: 20px; font-weight: 700; color: #2c3e50; }
.login-subtitle { margin: 3px 0 18px; color: #777; font-size: 12px; }
.login-box label { display:block; margin: 10px 0 5px; font-size:12px; color:#444; }
.login-box input { width:100%; height:36px; box-sizing:border-box; padding:7px 9px; border:1px solid #bbb; border-radius:3px; font:inherit; font-size:13px; }
#login-submit { width:100%; margin-top:16px; height:36px; border:0; border-radius:3px; background:#2eb0e8; color:#fff; font-weight:600; cursor:pointer; }
#login-cancel { width:100%; margin-top:8px; height:34px; border:1px solid #bbb; border-radius:3px; background:#fff; color:#444; cursor:pointer; }
#login-submit:disabled { opacity:.6; cursor:default; }
.login-status { min-height:16px; margin-top:9px; font-size:11px; color:#b3261e; }
.login-product-metadata {
    margin: 13px 0 0;
    padding-top: 9px;
    border-top: 1px solid #e7eaec;
    color: #68757c;
    font-size: 10px;
    line-height: 1.4;
    text-align: center;
    overflow-wrap: anywhere;
}
@media (max-height: 430px) {
    .login-overlay {
        align-items: flex-start;
        overflow-y: auto;
        padding: 12px 0;
        box-sizing: border-box;
    }
}

/* Acceso separado de las herramientas del mapa para el modo público. */
.login-public-trigger {
    position: static;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 18px;
    background: #fff;
    color: #2c3e50;
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
    font: 600 12px Arial, sans-serif;
    cursor: pointer;
}

.auth-toolbar {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 1201;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: calc(100vw - 24px);
    font: 600 12px Arial, sans-serif;
}
.auth-status-public,
.auth-user-session {
    min-height: 36px;
    display: flex;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    padding: 0 11px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 18px;
    background: #fff;
    color: #2c3e50;
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.auth-user-session[hidden] { display: none; }
.auth-user-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.auth-logout {
    min-height: 30px;
    padding: 0 10px;
    border: 0;
    border-radius: 15px;
    background: #701b38;
    color: #fff;
    font: inherit;
    cursor: pointer;
    touch-action: manipulation;
}


/* ===============================
   INCIDENCIAS V37
   =============================== */
.incidencia-fab {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1300;
    min-height: 44px;
    padding: 0 15px;
    border: 0;
    border-radius: 22px;
    background: #2c3e50;
    color: #fff;
    box-shadow: 0 3px 12px rgba(0,0,0,.28);
    display: flex;
    align-items: center;
    gap: 8px;
    font: 600 13px Arial, sans-serif;
    cursor: pointer;
}
.incidencia-fab:hover { background: #58142b; }
.incidencia-fab-icon { font-size: 22px; line-height: 1; font-weight: 400; }

.incidencia-modal {
    position: fixed;
    inset: 0;
    z-index: 6000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 14px;
    box-sizing: border-box;
    background: rgba(0,0,0,.48);
    font-family: Arial, sans-serif;
}
.incidencia-modal.activo { display: flex; }
.incidencia-dialog {
    position: relative;
    width: min(540px, 100%);
    max-height: calc(100vh - 28px);
    overflow-y: auto;
    box-sizing: border-box;
    padding: 20px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 38px rgba(0,0,0,.32);
}
.incidencia-cerrar {
    position: absolute;
    top: 7px;
    right: 10px;
    width: 34px;
    height: 34px;
    border: 0;
    background: transparent;
    color: #555;
    font-size: 27px;
    cursor: pointer;
}
.incidencia-titulo { padding-right: 32px; color: #2c3e50; font-size: 20px; font-weight: 700; }
.incidencia-subtitulo { margin: 4px 0 17px; color: #777; font-size: 12px; line-height: 1.4; }
.incidencia-dialog label { display:block; margin: 11px 0 5px; color:#444; font-size:12px; font-weight:600; }
.incidencia-dialog input[type="text"],
.incidencia-dialog select,
.incidencia-dialog textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #bbb;
    border-radius: 4px;
    padding: 8px 9px;
    font: 13px Arial, sans-serif;
    background: #fff;
}
.incidencia-dialog textarea { resize: vertical; min-height: 52px; }
.incidencia-contexto {
    min-height: 34px;
    box-sizing: border-box;
    padding: 8px 9px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f7f7f7;
    color: #444;
    font-size: 12px;
}
.incidencia-contexto.vacio { color:#888; }
.incidencia-contexto span { color:#777; }
.incidencia-fila-botones, .incidencia-fila-final { display:flex; gap:8px; align-items:center; }
.incidencia-fila-botones { margin-top:7px; }
.incidencia-fila-final { justify-content:flex-end; margin-top:15px; }
.incidencia-boton-secundario, .incidencia-boton-principal {
    min-height: 36px;
    padding: 7px 12px;
    border-radius: 4px;
    cursor: pointer;
    font: 600 12px Arial, sans-serif;
}
.incidencia-boton-secundario { border:1px solid #bbb; background:#fff; color:#444; }
.incidencia-boton-principal { border:0; background:#2c3e50; color:#fff; }
.incidencia-boton-principal:disabled { opacity:.55; cursor:default; }
.incidencia-fotos-lista { margin-top:7px; border:1px solid #ddd; border-radius:4px; background:#fafafa; }
.incidencia-fotos-vacio { display:block; padding:8px; color:#888; font-size:11px; }
.incidencia-foto-item { display:flex; justify-content:space-between; gap:8px; padding:7px 8px; border-bottom:1px solid #eee; font-size:11px; }
.incidencia-foto-item:last-child { border-bottom:0; }
.incidencia-foto-item button { border:0; background:transparent; color:#b3261e; font-size:18px; line-height:1; cursor:pointer; }
.incidencia-estado { min-height:18px; margin-top:10px; color:#555; font-size:11px; line-height:1.4; }
.incidencia-estado.success { color:#16733a; font-weight:700; }
.incidencia-estado.error { color:#b3261e; font-weight:600; }
.incidencia-estado.warning { color:#8a5b00; font-weight:600; }

@media (max-width: 600px) {
    .incidencia-fab { right: 12px; bottom: 76px; width:48px; height:48px; min-height:48px; padding:0; border-radius:50%; justify-content:center; }
    .incidencia-fab-text { display:none; }
    .incidencia-fab-text { font-size:12px; }
    .incidencia-dialog { padding:17px; border-radius:7px; }
    .incidencia-fila-final { position:sticky; bottom:0; padding-top:9px; background:#fff; }
    .incidencia-modal { align-items:flex-start; padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom)); }
    .incidencia-dialog { width:100%; max-height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom))); overscroll-behavior:contain; scroll-padding-bottom:76px; }
}

/* ===============================
   INCIDENCIAS V37.2 - móvil
   =============================== */
.incidencia-busqueda-wrap { position: relative; }
.incidencia-elemento-resultados {
    display: none;
    position: absolute;
    z-index: 50;
    left: 0;
    right: 0;
    top: calc(100% + 3px);
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #bbb;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.incidencia-elemento-resultados.activo { display: block; }
.incidencia-elemento-resultado {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-bottom: 1px solid #eee;
    background: #fff;
    color: #333;
    text-align: left;
    cursor: pointer;
    font: 12px Arial, sans-serif;
}
.incidencia-elemento-resultado:last-child { border-bottom: 0; }
.incidencia-elemento-resultado:active { background: #eef5f8; }
.incidencia-elemento-resultado strong { font-size: 13px; color: #2c3e50; }
.incidencia-elemento-resultado span { margin-top: 2px; color: #777; line-height: 1.3; }
.incidencia-elemento-vacio { padding: 10px; color: #777; font-size: 11px; line-height: 1.35; }
.incidencia-selector-mapa {
    position: fixed;
    top: max(10px, env(safe-area-inset-top));
    left: 50%;
    transform: translateX(-50%);
    z-index: 7000;
    width: min(560px, calc(100vw - 20px));
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 7px;
    background: rgba(44,62,80,.96);
    color: #fff;
    box-shadow: 0 3px 14px rgba(0,0,0,.28);
    font: 12px Arial, sans-serif;
}
.incidencia-selector-mapa-text { flex: 1; line-height: 1.3; }
.incidencia-selector-mapa button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 4px;
    background: transparent;
    color: #fff;
    font: 600 11px Arial, sans-serif;
}
@media (max-width: 600px) {
    .incidencia-elemento-resultados { max-height: 220px; }
    .incidencia-selector-mapa { width: calc(100vw - 14px); }
}

/* ===============================
   GESTION DE INCIDENCIAS
   =============================== */
.incidencia-gestion-overlay {
    position: fixed;
    inset: 0;
    z-index: 4500;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 14px;
    box-sizing: border-box;
    background: rgba(0,0,0,.5);
    font-family: Arial, sans-serif;
}
.incidencia-gestion-overlay.activo { display: flex; }
.incidencia-gestion-panel {
    width: min(1100px, 100%);
    height: auto;
    max-height: calc(100dvh - 28px);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 18px;
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 38px rgba(0,0,0,.32);
}
.incidencia-gestion-header {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    justify-content: space-between;
    padding-bottom: 10px;
    border-bottom: 1px solid #e5e5e5;
}
.incidencia-gestion-header h1 { margin: 0; color: #2c3e50; font-size: 20px; }
.incidencia-gestion-subtitulo { margin-top: 4px; color: #777; font-size: 11px; }
.incidencia-gestion-x { width: 36px; height: 36px; border: 0; background: transparent; color: #555; font-size: 28px; cursor: pointer; }
.incidencia-gestion-mensaje { flex: 0 0 auto; min-height: 18px; padding-top: 6px; color: #555; font-size: 12px; }
.incidencia-gestion-mensaje.error { color: #b3261e; }
.incidencia-gestion-mensaje.success { color: #16733a; font-weight: 700; }
.incidencia-gestion-mensaje.warning { color: #8a5b00; font-weight: 700; }
#gestion-listado, #gestion-detalle { min-width: 0; min-height: 0; flex: 1 1 auto; overflow-y: auto; }
.incidencia-gestion-filtros {
    display: grid;
    grid-template-columns: repeat(3, minmax(120px, 1fr)) minmax(200px, 2fr) auto;
    gap: 9px;
    align-items: end;
    padding: 10px 0;
}
.incidencia-gestion-busqueda-acciones { display: contents; }
.incidencia-gestion-filtro-estado { min-width: 0; }
.incidencia-gestion-filtros label, .incidencia-gestion-form label { display: block; color: #444; font-size: 11px; font-weight: 600; }
.incidencia-gestion-filtros select, .incidencia-gestion-filtros input,
.incidencia-gestion-form select, .incidencia-gestion-form textarea {
    width: 100%;
    min-height: 35px;
    margin-top: 4px;
    padding: 7px 8px;
    box-sizing: border-box;
    border: 1px solid #bbb;
    border-radius: 4px;
    background: #fff;
    font: 12px Arial, sans-serif;
}
.incidencia-gestion-acciones-filtro { display: flex; gap: 6px; }
.incidencia-gestion-total { padding: 4px 0 7px; color: #666; font-size: 11px; }
.incidencia-gestion-tabla-wrap { box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid #ddd; border-radius: 4px; }
.incidencia-gestion-tabla { width: 100%; min-width: 0; max-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 11px; table-layout: fixed; }
.incidencia-gestion-tabla th:nth-child(1), .incidencia-gestion-tabla td:nth-child(1) { width: 58px; }
.incidencia-gestion-tabla th:nth-child(2), .incidencia-gestion-tabla td:nth-child(2) { width: 54px; }
.incidencia-gestion-tabla th:nth-child(3), .incidencia-gestion-tabla td:nth-child(3) { width: 128px; }
.incidencia-gestion-tabla th:nth-child(4), .incidencia-gestion-tabla td:nth-child(4) { width: 76px; }
.incidencia-gestion-tabla th:nth-child(5), .incidencia-gestion-tabla td:nth-child(5) { width: 126px; }
.incidencia-gestion-tabla th:nth-child(6), .incidencia-gestion-tabla td:nth-child(6) { overflow-wrap: anywhere; }
.incidencia-gestion-tabla th, .incidencia-gestion-tabla td { padding: 8px 7px; border-bottom: 1px solid #eee; text-align: left; vertical-align: top; }
.incidencia-gestion-tabla th { position: sticky; top: 0; z-index: 1; background: #f3f5f6; color: #444; }
.incidencia-gestion-tabla th:nth-child(1), .incidencia-gestion-tabla td:nth-child(1) { position: sticky; left: 0; z-index: 2; background: #fff; }
.incidencia-gestion-tabla th:nth-child(1) { z-index: 4; background: #f3f5f6; }
.incidencia-gestion-tabla th:nth-child(2), .incidencia-gestion-tabla td:nth-child(2) { position: sticky; left: var(--incidencia-id-col-width, 58px); z-index: 2; white-space: nowrap; background: #fff; box-shadow: 2px 0 3px rgba(0,0,0,.08); }
.incidencia-gestion-tabla th:nth-child(2) { z-index: 4; background: #f3f5f6; }
.incidencia-gestion-tabla .incidencia-gestion-vacio td { position: static; box-shadow: none; }
.incidencia-gestion-tabla tr:last-child td { border-bottom: 0; }
.incidencia-gestion-abrir { border: 0; background: transparent; color: #1677a8; font: 700 11px Arial, sans-serif; text-decoration: underline; cursor: pointer; }
.incidencia-gestion-tarjetas[hidden] { display: none; }
.incidencia-gestion-tarjetas { display: none; }
.incidencia-gestion-tarjeta { position: relative; min-width: 0; margin-bottom: 10px; padding: 12px; border: 1px solid #e1e5e8; border-radius: 5px; background: #fff; }
.incidencia-gestion-tarjeta.is-expandida { border-color: #1677a8; }
.incidencia-gestion-tarjeta-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.incidencia-gestion-tarjeta-estado { display: inline-flex; min-height: 24px; align-items: center; padding: 3px 9px; border-radius: 12px; background: #edf4f7; color: #2c3e50; font-size: 11px; font-weight: 700; }
.incidencia-gestion-tarjeta-referencia { color: #596873; font-size: 11px; white-space: nowrap; }
.incidencia-gestion-tarjeta-titulo { margin: 8px 0; color: #2c3e50; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.incidencia-gestion-tarjeta-metadatos { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; color: #596873; font-size: 11px; }
.incidencia-gestion-tarjeta-prioridad { color: #2c3e50; font-weight: 700; }
.incidencia-gestion-tarjeta-evento { margin: 5px 0 0; color: #a61b1b; font-size: 10px; font-weight: 700; }
.incidencia-gestion-tarjeta-acciones { display: flex; align-items: center; gap: 8px; min-width: 0; margin-top: 8px; }
.incidencia-gestion-tarjeta-acciones > button { min-width: 44px; min-height: 44px; padding: 0 8px; border: 0; border-radius: 4px; background: #edf4f7; color: #1677a8; font: 700 12px Arial, sans-serif; text-decoration: underline; touch-action: manipulation; }
.incidencia-gestion-tarjeta-acciones > [data-mobile-view][aria-expanded="true"] { border: 1px solid #126d91; background: #126d91; color: #fff; text-decoration: none; }
.incidencia-gestion-tarjeta-acciones > [data-mobile-view]:focus-visible { outline: 3px solid #126d91; outline-offset: 2px; }
.incidencia-gestion-mas { flex: 0 0 44px; width: 44px; padding: 0 !important; border: 1px solid #cbd3dd !important; background: #fff !important; color: #657286 !important; font-size: 22px !important; text-decoration: none !important; }
.incidencia-gestion-menu { display: none; position: fixed; z-index: 10000; min-width: min(190px,calc(100vw - 16px)); max-width: calc(100vw - 16px); max-height: 70vh; box-sizing: border-box; overflow-y: auto; padding: 7px; border: 1px solid #c8d2d8; border-radius: 7px; background: #fff; box-shadow: 0 6px 20px rgba(15,30,42,.24); }
.incidencia-gestion-menu.is-abierto { display: grid; gap: 4px; }
.incidencia-gestion-menu button { width: 100%; min-height: 44px; padding: 7px 10px; border: 1px solid #d8dee6; border-radius: 6px; background: #fff; color: #34445a; font: 600 13px Arial, sans-serif; text-align: left; overflow-wrap: anywhere; touch-action: manipulation; }
.incidencia-gestion-menu-vacio { margin: 0; padding: 8px 10px; color: #718096; font-size: 12px; }
.incidencia-gestion-detalle-slot { min-width: 0; }
.incidencia-gestion-tarjeta [data-mobile-detail] #gestion-detalle { display: block; min-height: 0; overflow: visible; }
.incidencia-gestion-tarjeta [data-mobile-detail] #gestion-volver { display: none; }
.incidencia-gestion-paginacion { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 12px 0; color: #555; font-size: 11px; }
.incidencia-gestion-paginacion button:disabled { opacity: .45; cursor: default; }
.incidencia-gestion-detalle-titulo { margin: 12px 0; color: #2c3e50; font-size: 18px; }
.incidencia-gestion-detalle-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.incidencia-gestion-campo { min-width: 0; padding: 8px; border: 1px solid #eee; border-radius: 4px; background: #fafafa; }
.incidencia-gestion-campo strong { display: block; margin-bottom: 4px; color: #666; font-size: 10px; text-transform: uppercase; }
.incidencia-gestion-campo span { display: block; overflow-wrap: anywhere; color: #333; font-size: 12px; line-height: 1.4; white-space: pre-wrap; }
#gestion-detalle h3 { margin: 16px 0 8px; color: #2c3e50; font-size: 14px; }
.incidencia-gestion-fotografias { max-width: 620px; }
.incidencia-gestion-carrusel { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 8px; min-height: 190px; padding: 8px; border: 1px solid #ddd; border-radius: 5px; background: #f7f7f7; }
.incidencia-gestion-foto-nav { min-width: 40px; min-height: 48px; border: 1px solid #bbb; border-radius: 4px; background: #fff; color: #333; font-size: 28px; line-height: 1; cursor: pointer; touch-action: manipulation; }
.incidencia-gestion-foto-nav:disabled { opacity: .4; cursor: default; }
.incidencia-gestion-foto-ampliar { display: flex; width: 100%; min-height: 170px; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.incidencia-gestion-foto-ampliar img { display: block; max-width: 100%; max-height: 260px; object-fit: contain; }
.incidencia-gestion-foto-contador { padding-top: 6px; text-align: center; color: #555; font-size: 12px; }
.incidencia-gestion-foto-nombre { padding-top: 4px; overflow-wrap: anywhere; text-align: center; color: #555; font-size: 11px; }
.incidencia-evento-activo { color: #a61b1b; font-size: 10px; }
.incidencia-gestion-eventos { grid-column: 1 / -1; padding: 10px; border: 1px solid #d9e1e8; border-radius: 5px; background: #f8fafb; }
.incidencia-gestion-eventos h3 { margin: 0 0 8px; font-size: 13px; }
.incidencia-gestion-evento { display: grid; gap: 4px; padding: 8px; border-top: 1px solid #e3e8ed; font-size: 12px; }
.incidencia-gestion-evento.is-activo { border-left: 4px solid #b42318; }
.incidencia-gestion-evento.is-programado { border-left: 4px solid #b7791f; }
.incidencia-gestion-evento span { overflow-wrap: anywhere; }
.incidencia-gestion-fotos-vacio { color: #777; font-size: 12px; }
.incidencia-gestion-ver-mapa { display: block; margin-top: 7px; padding: 5px 9px; border: 1px solid #1677a8; border-radius: 4px; background: #fff; color: #12658f; font: 600 11px Arial, sans-serif; cursor: pointer; }
.network-event-map-button { min-height:44px; padding:7px 12px; border:1px solid #126d91; border-radius:5px; background:#fff; color:#126d91; font:700 12px 'Open Sans',Arial,sans-serif; }
.network-events-inbox-overlay[hidden] { display:none; }
.network-events-inbox-overlay { position:fixed; inset:0; z-index:1450; display:flex; justify-content:center; align-items:center; padding:14px; background:rgba(15,30,42,.48); }
.network-events-inbox-panel { display:flex; flex-direction:column; width:min(740px,calc(100vw - 28px)); max-height:min(88dvh,820px); box-sizing:border-box; min-width:0; overflow:hidden; padding:12px 16px; border-radius:10px; background:#fff; color:#263244; box-shadow:0 12px 38px rgba(0,0,0,.3); font-family:'Open Sans',Arial,sans-serif; }
.network-events-inbox-panel > header { display:flex; flex:0 0 auto; justify-content:space-between; align-items:center; gap:10px; padding:2px 0 8px; border-bottom:1px solid #e1e5ea; }
.network-events-inbox-panel > header > div:first-child { flex:1 1 auto; min-width:0; }
.network-events-inbox-panel > header > div:last-child { display:flex; flex:0 0 auto; gap:8px; align-items:center; }
.network-events-inbox-panel .network-dependencies-eyebrow { display:block; font-size:10px; line-height:1.2; letter-spacing:.06em; }
.network-events-inbox-panel h2 { margin:2px 0 0; color:#202b3b; font-size:20px; line-height:1.2; overflow-wrap:anywhere; }
.network-events-inbox-panel > header #network-events-inbox-close { flex:0 0 44px; width:44px; min-height:44px; padding:0; border:0; border-radius:50%; background:#f0f1f3; color:#747b86; font-size:23px; line-height:1; }
.network-events-inbox-panel > header #network-events-series-open { min-height:44px; padding:0 16px; border:1px solid #3973b4; border-radius:10px; background:#fff; color:#326aa8; font:700 14px 'Open Sans',Arial,sans-serif; white-space:nowrap; }
.network-events-inbox-filter { display:flex; flex:0 0 auto; align-items:center; gap:10px; min-height:44px; padding:8px 0; color:#414b5d; font-size:14px; font-weight:700; }
.network-events-inbox-filter select { flex:0 0 104px; width:104px; min-width:0; min-height:44px; padding:5px 8px; border:1px solid #cbd1d8; border-radius:7px; background:#fff; color:#424d60; font:400 14px 'Open Sans',Arial,sans-serif; }
#network-events-inbox-message { flex:0 0 auto; min-height:0; padding:0 0 4px; color:#657286; font-size:12px; }
#network-events-inbox-list { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.network-events-inbox-section { margin:0 0 8px; border:1px solid #dfe5ea; border-radius:7px; background:#fff; }
.network-events-inbox-section[hidden] { display:none; }
.network-events-inbox-section-title { display:flex; align-items:center; min-height:46px; padding:5px 12px; color:#263244; font-size:13px; font-weight:800; cursor:pointer; }
.network-events-inbox-section-content { padding:0 10px 8px; }
.network-events-inbox-section-message,.network-events-inbox-error { padding:8px 2px; color:#657286; font-size:13px; }
.network-events-inbox-error { color:#a5221c; }
.network-events-inbox-load-more { display:block; width:100%; min-height:44px; margin:8px 0; border:1px solid #126d91; border-radius:6px; background:#fff; color:#126d91; font-weight:700; }
.network-events-inbox-card { display:grid; gap:2px; min-width:0; padding:6px 9px; border:1px solid #d7e0e5; border-left:4px solid #94a3ad; border-radius:7px; background:#f8fafb; box-shadow:0 1px 3px rgba(24,46,60,.08); }
.network-events-inbox-card.is-impact-total { border-left-color:#b42318; background:linear-gradient(90deg,#fff8f6 0,#fff 78%); }
.network-events-inbox-card.is-impact-parcial { border-left-color:#c45a11; background:linear-gradient(90deg,#fffaf4 0,#fff 78%); }
.network-events-inbox-card.is-impact-sin_afectacion { border-left-color:#64748b; background:linear-gradient(90deg,#f6f8fa 0,#fff 78%); }
.network-events-inbox-status { grid-column:1; color:#384255; font-size:10px; font-weight:800; line-height:1.3; align-self:center; }
.network-events-inbox-card.is-vencido .network-events-inbox-status { color:#8c1d18; }
.network-events-inbox-card.is-activo .network-events-inbox-status { color:#075c7b; }
.network-events-inbox-card.is-programado .network-events-inbox-status { color:#76500c; }
.network-events-inbox-impact { grid-column:2; justify-self:end; align-self:center; width:max-content; max-width:100%; padding:3px 8px; border-radius:999px; background:#eef2f4; color:#344b58; font-size:11px; font-weight:700; }
.network-events-inbox-card.is-impact-total .network-events-inbox-impact { background:#fff0ee; color:#a5221c; }
.network-events-inbox-card.is-impact-parcial .network-events-inbox-impact { background:#fff4e8; color:#a5460c; }
.network-events-inbox-card.is-impact-sin_afectacion .network-events-inbox-impact { background:#f1f4f6; color:#344653; }
.network-events-inbox-element { color:#4a5568 !important; font-weight:700; }
.network-events-inbox-type { color:#657286 !important; text-transform:capitalize; }
.network-events-inbox-card h3,.network-events-inbox-card p,.network-events-inbox-card > details,.network-events-inbox-card > .network-events-inbox-actions { grid-column:1 / -1; }
.network-events-inbox-card h3 { min-width:0; margin:0; color:#263244; font-size:16px; font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.network-events-inbox-card p { min-width:0; margin:0; color:#808b9d; font-size:12px; line-height:1.35; overflow-wrap:anywhere; }
.network-events-inbox-dates .network-events-inbox-provenance { color:#96a0af; }
.network-events-inbox-lengths { min-width:0; color:#4a5568; font-size:13px; }
.network-events-inbox-lengths summary { min-height:44px; display:flex; align-items:center; cursor:pointer; line-height:1.3; }
.network-events-inbox-lengths summary:focus-visible { outline:2px solid #3477b6; outline-offset:2px; }
.network-events-inbox-lengths > p { padding:0 0 5px 22px; color:#657286; }
.network-events-inbox-actions { display:flex; align-items:center; gap:7px; min-width:0; }
.network-events-inbox-actions > button { display:inline-flex; flex:0 0 128px; align-items:center; justify-content:center; width:128px; min-width:128px; min-height:44px; box-sizing:border-box; padding:7px 12px; border:1px solid #126d91; border-radius:6px; background:#fff; color:#126d91; font:700 12px 'Open Sans',Arial,sans-serif; cursor:pointer; }
.network-events-inbox-more { position:relative; flex:0 0 auto; }
.network-events-inbox-more > summary { display:flex; align-items:center; justify-content:center; width:44px; min-height:44px; box-sizing:border-box; border:1px solid #cbd3dd; border-radius:6px; background:#fff; color:#657286; font-size:20px; line-height:1; cursor:pointer; list-style:none; }
.network-events-inbox-more > summary::-webkit-details-marker { display:none; }
.network-events-inbox-more > summary:focus-visible,.network-events-inbox-actions > button:focus-visible,.network-events-inbox-panel button:focus-visible,.network-events-inbox-filter select:focus-visible { outline:3px solid #3d82c4; outline-offset:2px; }
.network-events-inbox-more-menu { display:none; position:fixed; z-index:1460; width:max-content; min-width:min(190px,calc(100vw - 16px)); max-width:calc(100vw - 16px); box-sizing:border-box; gap:4px; overflow-y:auto; padding:7px; border:1px solid #c8d2d8; border-radius:7px; background:#fff; box-shadow:0 6px 20px rgba(15,30,42,.24); }
.network-events-inbox-more-menu.is-open { display:grid; }
.network-events-inbox-more-menu button { width:100%; min-height:44px; padding:7px 10px; border:1px solid #d8dee6; border-radius:6px; background:#fff; color:#34445a; font:600 13px 'Open Sans',Arial,sans-serif; text-align:left; cursor:pointer; overflow-wrap:anywhere; }
.network-events-inbox-more-menu button.is-danger { border-color:#e6c3c3; color:#a52b2b; }
.network-events-inbox-menu-empty { margin:0; padding:8px 10px; color:#718096; font-size:12px; }
.network-events-inbox-more-menu button:disabled,.network-events-inbox-actions button:disabled { opacity:.58; cursor:wait; }
.event-series-config { display:grid; grid-template-columns:minmax(0,1fr) minmax(90px,.55fr); gap:8px; padding:12px; border:1px solid #d4e0e7; border-radius:8px; }
.event-series-config[hidden] { display:none; }
.event-series-config > legend { padding:0 6px; font-weight:700; }
.event-series-config button { grid-column:1/-1; min-height:46px; }
.event-series-config > p { grid-column:1/-1; margin:2px 0; }
.event-series-config > select,.event-series-config > input { min-width:0; width:100%; box-sizing:border-box; min-height:44px; }
.event-series-preview-list { grid-column:1/-1; display:grid; gap:8px; max-height:32dvh; overflow:auto; }
.event-series-occurrence-preview,.event-series-occurrence-card,.event-series-card { display:grid; gap:5px; padding:10px; border:1px solid #dce4e9; border-radius:8px; background:#fff; }
.event-series-actions { display:grid; gap:8px; padding:12px 0 max(12px,env(safe-area-inset-bottom)); }
.event-series-actions[hidden] { display:none !important; }
.event-series-actions button,.event-series-choice button { min-height:44px; width:100%; padding:8px 12px; border:1px solid #126d91; border-radius:6px; background:#fff; color:#126d91; font:700 12px 'Open Sans',Arial,sans-serif; text-align:left; }
.event-detail-more-actions { display:grid; gap:8px; }
.event-detail-more-actions > summary { min-height:44px; display:flex; align-items:center; padding:0 12px; border:1px solid #9aabb5; border-radius:6px; color:#344b58; font-size:12px; font-weight:700; cursor:pointer; }
.event-detail-more-actions > button { min-height:44px; width:100%; padding:8px 12px; border:1px solid #126d91; border-radius:6px; background:#fff; color:#126d91; font:700 12px 'Open Sans',Arial,sans-serif; text-align:left; }
.event-detail-more-actions > button.is-danger { border-color:#b42318; color:#a5221c; }
.event-series-actions button.is-primary,.event-series-choice button.is-primary { background:#126d91; color:#fff; }
.event-series-actions button.is-danger { border-color:#b42318; color:#a5221c; }
.event-series-reload { display:block; min-height:44px; margin-top:8px; padding:8px 12px; border:1px solid #126d91; border-radius:7px; background:#fff; color:#126d91; font-weight:700; }
.event-series-choice { display:grid; gap:10px; padding:12px 0; }
.event-series-choice[hidden] { display:none; }
.event-series-choice button { display:grid; gap:5px; }
.event-series-choice button span { font-size:12px; font-weight:400; }
.network-event-details-overlay,.network-event-series-overlay { position:fixed; inset:0; z-index:1480; display:flex; justify-content:center; align-items:center; padding:12px; background:rgba(15,30,42,.5); }
.network-event-details-overlay[hidden],.network-event-series-overlay[hidden] { display:none; }
.event-map-context-return { position:fixed; z-index:1510; top:calc(max(12px,env(safe-area-inset-top)) + 46px); left:50%; transform:translateX(-50%); box-sizing:border-box; min-height:44px; max-width:calc(100vw - 24px); padding:0 16px; border:0; border-radius:24px; background:#126d91; color:#fff; box-shadow:0 3px 14px rgba(0,0,0,.3); font:700 14px 'Open Sans',Arial,sans-serif; white-space:normal; text-align:center; cursor:pointer; }
.event-map-context-return[hidden] { display:none !important; }
body.event-map-context-active #map-navigation [data-group="consultar"],
body.event-map-context-active #map-navigation [data-group="incidencias"],
body.event-map-context-active #map-navigation [data-group="herramientas"],
body.event-map-context-active #btn-reportar-incidencia,
body.event-map-context-active .mapboxgl-ctrl-geolocate,
body.event-map-context-active #panel-medicion { display:none !important; }
.network-event-details-panel,.network-event-series-panel { display:flex; flex-direction:column; width:min(720px,calc(100vw - 24px)); max-height:92dvh; min-width:0; box-sizing:border-box; overflow:hidden; padding:14px; border-radius:12px; background:#fff; color:#20313d; box-shadow:0 12px 38px rgba(0,0,0,.3); font-family:'Open Sans',Arial,sans-serif; }
.network-event-details-panel > header,.network-event-series-panel > header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; padding-bottom:8px; border-bottom:1px solid #e1e8ec; }
.network-event-series-panel > header { grid-template-columns:auto minmax(0,1fr); }
.network-event-details-panel > header h2,.network-event-series-panel > header h2 { margin:0; font-size:18px; overflow-wrap:anywhere; }
.network-event-details-panel > header button,.network-event-series-panel > header button { min-height:44px; padding:7px 10px; border:1px solid #c8d2d8; border-radius:7px; background:#fff; color:#20313d; }
#network-event-details-message,#network-event-series-message { flex:0 0 auto; min-height:24px; padding:8px 0; color:#526574; }
#network-event-details-message:empty,#network-event-series-message:empty { min-height:0; padding:0; }
#network-event-details-content,#network-event-series-content { min-height:0; overflow:auto; overscroll-behavior:contain; }
.event-detail-summary { display:grid; grid-template-columns:max-content max-content minmax(0,1fr); align-items:center; gap:6px 8px; padding:9px 11px; border:1px solid #e3e9ed; border-left:4px solid #64748b; border-radius:6px; background:#f8fafb; color:#344653; }
.event-detail-summary.is-impact-total { border-left-color:#b42318; background:linear-gradient(90deg,#fff8f6 0,#fff 82%); }
.event-detail-summary.is-impact-parcial { border-left-color:#c45a11; background:linear-gradient(90deg,#fffaf4 0,#fff 82%); }
.event-detail-summary.is-impact-sin_afectacion { border-left-color:#64748b; background:linear-gradient(90deg,#f6f8fa 0,#fff 82%); }
.event-detail-badge,.event-detail-impact { width:max-content; max-width:100%; padding:4px 8px; border-radius:999px; background:#e5edf2; color:#344b58; font-size:11px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
.event-detail-impact { background:#eef2f4; font-weight:700; }
.event-detail-summary.is-state-vencido .event-detail-badge { background:#fff0ee; color:#8c1d18; }
.event-detail-summary.is-state-activo .event-detail-badge { background:#e3f2f7; color:#075c7b; }
.event-detail-summary.is-state-programado .event-detail-badge { background:#fff4d8; color:#76500c; }
.event-detail-summary > p { grid-column:1/-1; margin:0; color:#4b5f6b; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.event-detail-summary > .event-detail-summary-type { color:#19384c; font-weight:700; }
.network-event-details-panel .event-detail-summary { grid-template-columns:minmax(0,1fr); gap:6px; padding:8px 11px; }
.event-detail-summary-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:6px 10px; min-width:0; flex-wrap:wrap; }
.event-detail-summary-heading .event-detail-summary-type { min-width:0; margin:1px 0 0; color:#30495a; font-size:12px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
.event-detail-summary-badges { display:flex; align-items:flex-start; gap:6px; min-width:0; flex-wrap:wrap; justify-content:flex-end; }
.network-event-details-panel .event-detail-summary-meta { margin:0; color:#4e616d; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.network-event-details-panel .event-detail-summary-provenance { margin:0; color:#526574; font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
.network-event-details-panel .event-detail-a2-card { display:grid; gap:6px; margin-top:6px; padding:8px 10px; border-color:#dce4e9; }
.network-event-details-panel .event-detail-a2-card h3 { margin:0; padding:0; color:#30495a; font-size:13px; font-weight:800; line-height:1.35; }
.network-event-details-panel .event-detail-a2-fields { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:8px 10px; min-width:0; }
.network-event-details-panel .event-detail-a2-card > .event-detail-a2-fields { padding:0; }
.event-detail-a2-field { min-width:0; overflow-wrap:anywhere; }
.event-detail-a2-field.is-wide { grid-column:1/-1; }
.event-detail-a2-field > span { display:block; margin-bottom:2px; color:#4e616d; font-size:11px; line-height:1.3; }
.event-detail-a2-field > p { margin:0; color:#20313d; font-size:12px; line-height:1.4; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.event-detail-a2-history { display:grid; gap:5px; min-width:0; }
.event-detail-a2-history-entry { display:grid; gap:2px; min-width:0; padding-top:5px; border-top:1px solid #edf1f3; overflow-wrap:anywhere; }
.event-detail-a2-history-entry:first-child { padding-top:0; border-top:0; }
.event-detail-a2-history-entry time { color:#4e616d; font-size:11px; line-height:1.35; }
.event-detail-a2-history-entry p { margin:0; color:#30495a; font-size:12px; font-weight:700; line-height:1.4; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.event-detail-section { margin-top:6px; border:1px solid #dce4e9; border-radius:6px; background:#fff; }
.event-detail-section summary { min-height:40px; padding:9px 11px; color:#30495a; font-size:13px; font-weight:700; cursor:pointer; }
.event-detail-section.is-static h3 { margin:0; padding:9px 11px 4px; color:#30495a; font-size:13px; font-weight:700; line-height:1.35; }
.event-detail-section > div { padding:0 11px 8px; overflow-wrap:anywhere; }
.event-detail-section p { margin:4px 0; color:#4e616d; font-size:12px; line-height:1.4; }
.event-series-occurrence-card { margin:8px 0; }
.event-series-occurrence-card header { display:flex; justify-content:space-between; gap:8px; }
.event-series-occurrence-card > button { width:100%; min-height:44px; padding:8px 12px; border:1px solid #126d91; border-radius:6px; background:#fff; color:#126d91; font:700 12px 'Open Sans',Arial,sans-serif; text-align:left; }
.event-series-provenance { color:#526574; font-size:13px; }
.event-journal { margin-top:8px; min-width:0; padding-top:6px; border-top:1px solid #e1e8ec; }
.event-journal-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.event-journal-heading h3 { min-width:0; margin:8px 0; }
.event-journal-refresh { min-height:44px; flex:0 0 auto; }
.event-journal button { box-sizing:border-box; border-radius:6px; font:700 12px 'Open Sans',Arial,sans-serif; cursor:pointer; }
.event-journal-refresh,.event-journal-older,.event-journal-retry,.event-journal-selected-file button { border:1px solid #b9c8d0; background:#fff; color:#344b58; }
.event-journal-add.is-primary { padding:8px 12px; border:1px solid #126d91; background:#126d91; color:#fff; }
.event-journal > h3 { margin:8px 0; font-size:16px; }
.event-journal-status,.event-journal-form-message { min-height:0; margin:5px 0; color:#526574; font-size:12px; line-height:1.4; }
.event-journal-card { min-width:0; margin:8px 0; padding:10px; border:1px solid #dce4e9; border-radius:8px; background:#fff; overflow-wrap:anywhere; }
.event-journal-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; font-size:12px; }
.event-journal-meta time { color:#526574; }
.event-journal-phase { padding:3px 7px; border-radius:999px; background:#eef3f6; color:#405563; font-size:11px; }
.event-journal-after-close { margin:8px 0 0; color:#805119; font-size:12px; font-weight:700; }
.event-journal-text { margin:8px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.45; }
.event-journal-attachments { display:flex; flex-wrap:wrap; gap:8px; margin-top:9px; }
.event-journal-attachments a,.event-journal-attachments button { display:block; width:72px; height:72px; padding:0; border:1px solid #d4dde2; border-radius:6px; background:#fff; overflow:hidden; }
.event-journal-attachments img { display:block; width:100%; height:100%; object-fit:cover; }
.event-journal-add,.event-journal-form button,.event-journal-older,.event-journal-retry { min-height:44px; }
.event-journal-form { display:grid; gap:8px; margin-top:8px; padding:10px; border:1px solid #dce4e9; border-radius:8px; background:#f8fafb; }
.event-journal-form[hidden] { display:none; }
.event-journal-form label { display:grid; gap:5px; font-size:12px; font-weight:700; }
.event-journal-form select,.event-journal-form textarea,.event-journal-form input[type=file] { width:100%; min-width:0; box-sizing:border-box; padding:9px; border:1px solid #bdcbd4; border-radius:6px; background:#fff; color:#20313d; font:inherit; font-size:14px; }
.event-journal-form select,.event-journal-form input[type=file] { min-height:44px; }
.event-journal-form textarea { min-height:120px; resize:vertical; line-height:1.45; }
.event-journal-selected-files { display:grid; gap:5px; min-width:0; }
.event-journal-selected-file { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:6px 8px; border:1px solid #dce4e9; border-radius:6px; background:#fff; font-size:12px; }
.event-journal-selected-file span { min-width:0; overflow-wrap:anywhere; }
.event-journal-selected-preview { width:44px; height:44px; flex:0 0 44px; border:1px solid #dce4e9; border-radius:4px; object-fit:cover; background:#f1f5f7; }
.event-journal-selected-file button { flex:0 0 44px; min-height:44px; padding:4px; }
#event-incident-id-help { display:block; margin-top:-5px; color:#586775; font-size:12px; line-height:1.4; }
.event-journal-form-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:8px 0; background:#f8fafb; }
.event-journal-form-actions button { padding:8px; border:1px solid #b9c8d0; border-radius:7px; background:#fff; color:#20313d; }
.event-journal-form-actions button.is-primary { background:#126d91; border-color:#126d91; color:#fff; }
.event-journal-older,.event-journal-retry { width:100%; margin:6px 0; border:1px solid #c8d2d8; border-radius:7px; background:#fff; color:#20313d; }
#network-event-details-actions { flex:0 0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr)); align-items:stretch; gap:7px; padding:8px 0 max(8px,env(safe-area-inset-bottom)); }
#network-event-details-actions > button { width:auto; min-width:0; min-height:44px; padding:7px 9px; text-align:center; }
#network-event-details-actions .event-detail-map-action { border-color:#126d91; background:#126d91; color:#fff; }
#network-event-details-actions .event-detail-finish-action { border-color:#718895; background:#f4f7f8; color:#344b58; font-weight:700; }
#network-event-details-actions .event-detail-secondary-action { border-color:#9aabb5; background:#fff; color:#344b58; }
#network-event-details-actions .event-detail-more-actions { min-width:0; }
#network-event-details-actions .event-detail-more-actions > summary { justify-content:center; }
@media (max-width:700px) {
    .network-event-details-overlay.event-journal-visual-viewport { inset:auto 0 auto 0; top:var(--journal-viewport-top,0px); height:var(--journal-viewport-height,100dvh); }
    .network-event-details-overlay.event-journal-visual-viewport .network-event-details-panel { height:100%; max-height:100%; }
    .network-event-details-overlay,.network-event-series-overlay { align-items:flex-end; padding:0; }
    .network-event-details-panel { width:100%; max-width:100%; height:100vh; max-height:100vh; height:100dvh; max-height:100dvh; box-sizing:border-box; padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom)); border-radius:0; }
    .network-event-series-panel { width:100%; max-width:100%; height:min(94dvh,calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom))); max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); box-sizing:border-box; padding:10px 12px max(10px,env(safe-area-inset-bottom)); border-radius:14px 14px 0 0; }
    .network-event-details-panel { min-height:0; }
    #network-event-details-content { flex:1 1 auto; min-height:0; padding-bottom:12px; }
    .event-journal-form { padding:10px; }
    .event-journal-form textarea,.event-journal-form select,.event-journal-form input[type=file] { font-size:16px; }
    .event-journal-selected-file button { min-width:44px; }
    .network-event-details-panel > header h2,.network-event-series-panel > header h2 { font-size:16px; }
    #network-event-details-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .event-series-preview-list { max-height:26dvh; }
    .event-series-actions { grid-template-columns:1fr; }
    .network-events-inbox-panel > header > div:last-child { flex-direction:row; }
    .event-series-config { grid-template-columns:minmax(0,1fr); }
    .event-series-config > label,.event-series-config > select,.event-series-config > input,.event-series-config > span,.event-series-config > p,.event-series-config > button,.event-series-preview-list { grid-column:1; width:100%; box-sizing:border-box; }
}
@media (max-width:700px) {
    .network-events-inbox-overlay { align-items:flex-end; padding:0; }
    .network-events-inbox-panel { width:100%; max-width:100%; max-height:94dvh; padding:9px 16px max(10px,env(safe-area-inset-bottom)); border-radius:12px 12px 0 0; }
    .network-events-inbox-panel > header { gap:8px; }
    .network-events-inbox-panel > header > div:last-child { gap:6px; }
    .network-events-inbox-panel > header #network-events-series-open { padding:0 14px; font-size:13px; }
    .network-events-inbox-panel h2 { font-size:20px; }
    .network-events-inbox-filter { gap:8px; font-size:13px; }
    .network-events-inbox-filter select { flex-basis:94px; width:94px; min-height:44px; padding:4px 7px; font-size:13px; }
    .network-events-inbox-card { gap:2px; padding:6px 8px; }
    .network-events-inbox-card h3 { font-size:15px; }
    .network-events-inbox-actions { gap:6px; }
    .network-events-inbox-actions > button { min-width:128px; min-height:44px; padding:7px 10px; }
}
@media (min-width:701px) {
    .network-events-inbox-card { gap:2px; padding:6px 8px; }
    .network-events-inbox-card h3 { font-size:15px; }
}
.incidencia-mapa-volver { position: fixed; top: 14px; left: 50%; z-index: 1300; transform: translateX(-50%); min-height: 42px; padding: 0 16px; border: 0; border-radius: 22px; background: #1677a8; color: #fff; box-shadow: 0 3px 12px rgba(0,0,0,.28); font: 600 13px Arial, sans-serif; cursor: pointer; }
body.modo-publico #btn-volver-incidencia-mapa { display: none; }
.incidencia-gestion-form { margin-top: 16px; padding: 12px; border: 1px solid #d7e3e9; border-radius: 5px; background: #f7fbfd; }
.incidencia-gestion-form label { margin-top: 9px; }
.incidencia-gestion-form textarea { min-height: 100px; resize: vertical; }
.incidencia-gestion-acciones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 12px; }

@media (min-width: 701px) and (max-height: 780px) {
    .incidencia-gestion-filtros { padding-block: 6px; }
    .incidencia-gestion-total { padding-bottom: 3px; }
}

@media (min-width: 701px) and (max-width: 900px) {
    .incidencia-gestion-filtros { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .incidencia-gestion-busqueda-acciones { display: flex; grid-column: 1 / -1; align-items: end; gap: 8px; min-width: 0; }
    .incidencia-gestion-busqueda { flex: 1 1 auto; min-width: 0; }
    .incidencia-gestion-acciones-filtro { flex: 0 0 auto; }
}

@media (max-width: 700px) {
    .incidencia-gestion-overlay { padding: 0; }
    .incidencia-gestion-panel { width: 100%; height: 100dvh; max-height: 100dvh; padding: max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom)); border-radius: 0; }
    .incidencia-gestion-header h1 { font-size: 18px; }
    .incidencia-gestion-filtros { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 12px 0; }
    .incidencia-gestion-filtro-estado { display: flex; grid-column: 1 / -1; align-items: center; gap: 8px; }
    .incidencia-gestion-filtro-estado label { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; white-space: nowrap; }
    .incidencia-gestion-filtro-estado select { width: 120px; margin: 0; }
    .incidencia-gestion-total { flex: 1 1 auto; min-width: 0; padding: 0; text-align: right; white-space: nowrap; }
    .incidencia-gestion-busqueda-acciones { display: flex; grid-column: 1 / -1; align-items: end; gap: 7px; min-width: 0; }
    .incidencia-gestion-busqueda { flex: 1 1 auto; min-width: 0; }
    .incidencia-gestion-acciones-filtro { flex: 0 0 auto; justify-content: flex-end; gap: 5px; }
    .incidencia-gestion-tabla-wrap { display: none; }
    .incidencia-gestion-tarjetas { display: block; min-width: 0; }
    .incidencia-gestion-tarjetas-vacio { padding: 12px; color: #666; font-size: 12px; }
    .incidencia-gestion-filtros select, .incidencia-gestion-filtros input { min-height: 38px; }
    .incidencia-gestion-acciones-filtro button { min-height: 38px; padding-inline: 9px; }
    #gestion-listado { display: flex; flex-direction: column; overflow: hidden; overscroll-behavior: contain; }
    #gestion-resultados-mobile { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
    #gestion-listado.tiene-detalle-activo .incidencia-gestion-filtros,
    #gestion-listado.tiene-detalle-activo .incidencia-gestion-tabla-wrap,
    #gestion-listado.tiene-detalle-activo .incidencia-gestion-paginacion { display: none; }
    #gestion-listado.tiene-detalle-activo #gestion-resultados-mobile { overflow-y: auto; }
    #gestion-resultados-mobile .incidencia-gestion-tarjeta.is-expandida { display: flex; flex: 1 0 100%; min-height: 0; flex-direction: column; box-sizing: border-box; overflow: hidden; margin-bottom: 0; }
    #gestion-resultados-mobile .incidencia-gestion-tarjeta-resumen { position: sticky; top: 0; z-index: 2; flex: 0 0 auto; margin: -1px -1px 0; padding: 1px 1px 8px; border-bottom: 1px solid #e5edf1; background: #fff; }
    #gestion-resultados-mobile .incidencia-gestion-tarjeta-resumen.menu-contextual-abierto { z-index: 3; }
    #gestion-resultados-mobile .incidencia-gestion-detalle-slot:not(:empty) { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
    #gestion-resultados-mobile .incidencia-gestion-detalle-slot:empty { display: none; }
    #gestion-resultados-mobile #gestion-detalle { width: 100%; flex: none; box-sizing: border-box; padding-bottom: max(12px,env(safe-area-inset-bottom)); }
    .incidencia-gestion-detalle-campos { grid-template-columns: 1fr; gap: 6px; }
    .incidencia-gestion-carrusel { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 5px; min-height: 150px; padding: 5px; }
    .incidencia-gestion-foto-ampliar { min-height: 140px; }
    .incidencia-gestion-foto-ampliar img { max-height: 190px; }
    .incidencia-mapa-volver { top: max(52px,calc(env(safe-area-inset-top) + 48px)); min-height: 36px; padding: 0 11px; font-size: 11px; }
    .incidencia-gestion-acciones { position: sticky; bottom: -12px; padding: 10px 0; background: #f7fbfd; }
    .incidencia-gestion-acciones button { flex: 1 1 auto; }
    .incidencia-gestion-tabla-wrap { overflow: visible; }
    .incidencia-gestion-tabla { display: block; min-width: 0; }
    .incidencia-gestion-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .incidencia-gestion-tabla tbody, .incidencia-gestion-tabla tr { display: block; width: 100%; }
    .incidencia-gestion-tabla tbody tr:not(.incidencia-gestion-vacio) { margin: 0 0 10px; padding: 5px 9px; border: 1px solid #e1e5e8; border-radius: 5px; }
    .incidencia-gestion-tabla td,
    .incidencia-gestion-tabla th:nth-child(1), .incidencia-gestion-tabla td:nth-child(1),
    .incidencia-gestion-tabla th:nth-child(2), .incidencia-gestion-tabla td:nth-child(2) { position: static; display: flex; width: auto; min-height: 28px; align-items: flex-start; gap: 9px; padding: 5px 0; border: 0; white-space: normal; box-shadow: none; background: transparent; }
    .incidencia-gestion-tabla td { width: 100% !important; min-width: 0; box-sizing: border-box; }
    .incidencia-gestion-tabla tbody tr:not(.incidencia-gestion-vacio) { box-sizing: border-box; max-width: 100%; }
    .incidencia-gestion-tabla td::before { flex: 0 0 92px; color: #596873; font-weight: 700; content: attr(data-label); }
    .incidencia-gestion-tabla .incidencia-gestion-vacio td { display: block; }
    .incidencia-gestion-tabla .incidencia-gestion-abrir { padding: 3px 8px; }
}

/* Modo público: solo quedan visibles los controles de posición del mapa. */
.mapboxgl-ctrl-group:empty { display: none; }
body.modo-publico .mapboxgl-ctrl-group {
    display: none !important;
}
body.modo-publico .mapboxgl-ctrl-group.exoview-control-posicion {
    display: flex !important;
}
body.modo-publico .mapboxgl-ctrl-group.exoview-control-posicion:empty { display: none !important; }
body.modo-publico #network-dependencies-panel { display: none !important; }
body.modo-publico #btn-reportar-incidencia,
body.modo-publico #panel-medicion,
body.modo-publico #control-busqueda-rol,
body.modo-publico #incidencia-selector-mapa,
body.modo-publico #visor-imagenes,
body.modo-publico #modal-incidencia,
body.modo-publico #incidencia-gestion,
body.modo-publico .mapboxgl-popup {
    display: none !important;
}
body.modo-autenticado #auth-status-public,
body.modo-publico #auth-user-session { display: none; }
body.modo-autenticado .login-public-trigger { display: none; }
body.modo-consulta #btn-reportar-incidencia { display: none; }
body.modo-consulta .map-navigation-item #btn-reportar-incidencia { display: none !important; }
body.has-network-dependencies-map-mode [data-group="incidencias"] { display: none !important; }

@media (max-width: 520px) {
    .auth-toolbar { top: 8px; left: 8px; gap: 5px; max-width: calc(100vw - 16px); }
    .auth-status-public, .auth-user-session { min-height: 38px; padding: 0 9px; font-size: 11px; }
    .auth-user-label { max-width: min(52vw, 220px); }
    .login-public-trigger { min-height: 38px; padding: 0 10px; }
    .auth-logout { min-height: 32px; padding: 0 9px; }
}
