.activo-detalle-card {
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    padding: 0.9rem;
    background: var(--bs-body-bg);
}

.activo-detalle-card-ocs {
    background: linear-gradient(180deg, rgba(255, 248, 214, 0.42), rgba(255, 253, 244, 0.96));
    border-color: rgba(217, 164, 65, 0.22);
}

.activo-detalle-card-alertas {
    background: linear-gradient(180deg, rgba(253, 232, 234, 0.52), rgba(255, 248, 249, 0.96));
    border-color: rgba(220, 53, 69, 0.18);
}

.activo-detalle-alertas-total {
    min-width: 2.25rem;
    padding: 0.42rem 0.72rem;
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    border-radius: 999px;
}

.activo-detalle-encabezado {
    border-bottom: 1px solid var(--bs-border-color);
    padding-bottom: 0.75rem;
}

.activo-detalle-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.35fr);
    gap: 1rem;
    align-items: start;
}

.activo-detalle-layout-datos,
.activo-detalle-layout-imagenes {
    min-width: 0;
}

.activo-detalle-layout-imagenes {
    padding-right: 0.25rem;
}

.activo-detalle-layout-datos {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.activo-detalle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    border: 1px solid rgba(25, 135, 84, 0.12);
    border-radius: 0.95rem;
    padding: 0.55rem;
    background: rgba(25, 135, 84, 0.04);
}

.activo-detalle-campo {
    min-height: 64px;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 0.8rem;
    background: rgba(255, 255, 255, 0.92);
}

.activo-detalle-campo:nth-child(2n) {
    border-right: 1px solid rgba(148, 163, 184, 0.22);
}

.activo-detalle-campo:nth-last-child(-n + 2) {
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.activo-detalle-campo:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.activo-detalle-campo-amplio {
    grid-column: 1 / -1;
    min-height: auto;
}

.activo-detalle-campo span {
    display: block;
    color: var(--bs-secondary-color);
    font-size: 0.69rem;
    line-height: 1.2;
    margin-bottom: 0.22rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.activo-detalle-campo strong {
    display: block;
    color: var(--bs-body-color);
    font-size: 0.93rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.activo-detalle-campo-alerta {
    border-color: #f1aeb5;
    background: #f8d7da;
}

.activo-detalle-campo-alerta span,
.activo-detalle-campo-alerta strong {
    color: #842029;
}

.activo-asignacion-card {
    border: 1px solid rgba(25, 135, 84, 0.18);
    border-radius: 10px;
    padding: 0.8rem;
    background: linear-gradient(180deg, rgba(25, 135, 84, 0.05), rgba(255, 255, 255, 0.96));
}

.activo-detalle-descripcion {
    padding: 0.9rem 1rem;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 0.95rem;
    background: linear-gradient(180deg, rgba(248, 255, 251, 1), rgba(255, 255, 255, 0.97));
}

.activo-detalle-descripcion span {
    display: block;
    color: var(--bs-secondary-color);
    font-size: 0.72rem;
    line-height: 1.2;
    margin-bottom: 0.35rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.activo-detalle-descripcion strong {
    display: block;
    color: var(--bs-body-color);
    font-size: 0.96rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.activo-asignacion-estado {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(25, 135, 84, 0.12);
}

.activo-asignacion-estado-label {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--bs-secondary-color);
}

.activo-asignacion-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: end;
}

.activo-asignacion-acciones {
    display: flex;
    align-items: end;
}

.activo-asignacion-acciones .btn {
    white-space: nowrap;
}

.activo-asignacion-feedback {
    min-height: 1.25rem;
}

.activo-mantenimientos-table th,
.activo-mantenimientos-table td {
    vertical-align: middle;
    border-color: transparent;
}

.activo-mantenimientos-table thead th {
    color: var(--bs-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    background: rgba(25, 135, 84, 0.06);
}

.activo-mantenimiento-row {
    cursor: pointer;
}

.activo-mantenimiento-row-activa {
    --bs-table-bg-state: #d1e7dd;
}

.activo-mantenimiento-row:focus {
    outline: 2px solid var(--bs-success);
    outline-offset: -2px;
}

.activo-mantenimiento-row:hover {
    --bs-table-bg-state: var(--bs-success-bg-subtle);
}

.activo-mantenimiento-detalle-table th {
    width: 34%;
    color: var(--bs-secondary-color);
    font-weight: 600;
}

.activo-mantenimiento-detalle-table td {
    white-space: pre-wrap;
}

.activo-mantenimiento-resumen > div {
    border: 1px solid #badbcc;
    border-radius: 8px;
    padding: 0.6rem 0.75rem;
    background: #fff;
}

.activos-imagenes-contenedor {
    min-height: 160px;
}

.activo-detalle-layout-imagenes .activos-imagenes-contenedor {
    min-height: 160px;
}

.activos-imagen-carousel {
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    overflow: hidden;
    background: var(--bs-light);
}

.activos-carousel-contador {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 5;
    border-radius: 8px;
    padding: 0.25rem 0.55rem;
    background: rgba(0, 0, 0, 0.65);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
}

.activos-carousel-indicadores {
    margin-bottom: 0.6rem;
}

.activos-carousel-img {
    height: 260px;
    object-fit: contain;
    background: var(--bs-light);
}

.activos-sin-imagen {
    min-height: 150px;
    border: 1px dashed var(--bs-border-color);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-align: center;
}

.activos-sin-imagen img {
    max-width: 72px;
    max-height: 72px;
}

.activos-mantenimiento-modal.activos-modal-visible {
    display: block;
    z-index: 2000;
    background: rgba(15, 23, 42, 0.55);
}

.activos-mantenimiento-modal .modal-dialog {
    margin-top: 4rem;
}

.activo-detalle-modal-dialog {
    max-width: 920px;
}

.activo-detalle-modal .modal-body {
    padding: 0.9rem;
}

.activo-detalle-modal .activo-detalle-card {
    padding: 0.8rem;
}

.activo-detalle-modal .activos-carousel-img {
    height: 220px;
}

.activos-carousel-img-ampliable {
    cursor: zoom-in;
}

.activo-imagen-preview-dialog {
    max-width: min(1200px, calc(100vw - 2rem));
}

.activo-form-label {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    color: var(--bs-body-color);
    font-weight: 600;
}

.activo-form-label-critico {
    color: #9a6700;
}

.activo-form-label-required {
    color: #b42318;
    font-weight: 700;
    line-height: 1;
}

.activo-form-help-trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 999px;
    color: var(--bs-secondary-color);
    cursor: help;
    transition: color 0.18s ease, background-color 0.18s ease;
    outline: none;
}

.activo-form-help-trigger:hover,
.activo-form-help-trigger:focus-visible {
    color: var(--bs-success);
    background: rgba(25, 135, 84, 0.1);
}

.activo-form-help-trigger::after {
    content: attr(data-help-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.55rem);
    transform: translateX(-50%);
    width: min(280px, 80vw);
    padding: 0.55rem 0.65rem;
    border-radius: 0.7rem;
    background: rgba(15, 23, 42, 0.94);
    color: #fff;
    font-size: 0.76rem;
    font-weight: 400;
    line-height: 1.35;
    text-align: left;
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    z-index: 20;
}

.activo-form-help-trigger::before {
    content: '';
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.18rem);
    transform: translateX(-50%);
    border-width: 0.32rem;
    border-style: solid;
    border-color: rgba(15, 23, 42, 0.94) transparent transparent transparent;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, visibility 0.18s ease;
    z-index: 20;
}

.activo-form-help-trigger:hover::after,
.activo-form-help-trigger:hover::before,
.activo-form-help-trigger:focus-visible::after,
.activo-form-help-trigger:focus-visible::before {
    opacity: 1;
    visibility: visible;
}

.activo-form-help-trigger:hover::after,
.activo-form-help-trigger:focus-visible::after {
    transform: translateX(-50%) translateY(-0.1rem);
}

.activo-imagen-preview-header {
    position: relative;
    align-items: flex-start;
    padding-right: 3.5rem;
}

.activo-imagen-preview-header-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.6rem;
}

.activo-imagen-preview-close {
    position: absolute;
    top: 0.9rem;
    right: 0.9rem;
}

.activo-imagen-preview-body {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 55vh;
    padding: 1rem 4.5rem;
    background: #0f1d15;
}

.activo-imagen-preview-img {
    display: block;
    max-width: 100%;
    max-height: calc(90vh - 8rem);
    width: auto;
    height: auto;
    object-fit: contain;
}

.activo-imagen-preview-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.62);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    transform: translateY(-50%);
    transition: background-color 0.18s ease, opacity 0.18s ease, border-color 0.18s ease;
}

.activo-imagen-preview-nav.is-prev {
    left: 1rem;
}

.activo-imagen-preview-nav.is-next {
    right: 1rem;
}

.activo-imagen-preview-nav:hover,
.activo-imagen-preview-nav:focus-visible {
    background: rgba(25, 135, 84, 0.8);
    border-color: rgba(255, 255, 255, 0.28);
    outline: none;
}

.activo-imagen-preview-nav:disabled {
    opacity: 0.45;
    cursor: default;
}

.activo-imagen-preview-counter {
    position: absolute;
    left: 50%;
    bottom: 1rem;
    z-index: 2;
    transform: translateX(-50%);
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.68);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1;
}

@media (max-width: 991.98px) {
    .activo-detalle-layout {
        grid-template-columns: 1fr;
    }
}

.activos-mantenimiento-modal .modal-content {
    border: 0;
    border-radius: 8px;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.22);
}

.activos-mantenimiento-modal .modal-header {
    background: var(--bs-success-bg-subtle);
    border-bottom-color: var(--bs-success-border-subtle);
}

body.activos-modal-abierto {
    overflow: hidden;
}

.mantenimiento-kpi {
    --mantenimiento-kpi-color: #198754;
    --mantenimiento-kpi-soft: rgba(25, 135, 84, 0.08);
    position: relative;
    height: 100%;
    border-radius: 8px;
    background: #ffffff;
    overflow: hidden;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.mantenimiento-kpi::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -52px;
    width: 128px;
    height: 128px;
    border-radius: 50%;
    background: var(--mantenimiento-kpi-soft);
}

.mantenimiento-kpi:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(16, 34, 23, 0.12) !important;
}

.mantenimiento-kpi .card-body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-height: 112px;
    gap: 1rem;
    padding: 1.25rem 1.4rem;
}

.mantenimiento-kpi-icono {
    display: inline-flex;
    flex: 0 0 56px;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--mantenimiento-kpi-color, #198754);
    color: #ffffff;
    font-size: 1.65rem;
    box-shadow: 0 10px 24px var(--mantenimiento-kpi-soft);
}

.mantenimiento-kpi strong {
    display: block;
    color: var(--mantenimiento-kpi-color, #198754);
    font-size: 2.05rem;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.mantenimiento-kpi p {
    margin: 0;
    color: #102217;
    font-size: 0.9rem;
    font-weight: 600;
}

.mantenimiento-kpi small {
    display: block;
    color: #65766c;
    font-size: 0.78rem;
    line-height: 1.25;
}

.mantenimiento-kpi-total {
    --mantenimiento-kpi-color: #ff7458;
    --mantenimiento-kpi-soft: rgba(255, 116, 88, 0.14);
}

.mantenimiento-kpi-preventivo {
    --mantenimiento-kpi-color: #2f80ed;
    --mantenimiento-kpi-soft: rgba(47, 128, 237, 0.14);
}

.mantenimiento-kpi-correctivo {
    --mantenimiento-kpi-color: #f5a623;
    --mantenimiento-kpi-soft: rgba(245, 166, 35, 0.16);
}

.mantenimiento-kpi-activos {
    --mantenimiento-kpi-color: #20b455;
    --mantenimiento-kpi-soft: rgba(32, 180, 85, 0.14);
}

.mantenimiento-tipo-select {
    min-width: 142px;
}

#tablaMantenimientos .mantenimiento-activos-resumen {
    display: grid;
    gap: 0.2rem;
    min-width: 220px;
}

#tablaMantenimientos .mantenimiento-activos-resumen strong {
    color: #102217;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.15;
}

#tablaMantenimientos .mantenimiento-activo-linea {
    color: #102217;
    display: block;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

#tablaMantenimientos th:nth-child(1),
#tablaMantenimientos td:nth-child(1) {
    width: 7%;
}

#tablaMantenimientos th:nth-child(2),
#tablaMantenimientos td:nth-child(2) {
    width: 9%;
}

#tablaMantenimientos th:nth-child(3),
#tablaMantenimientos td:nth-child(3) {
    width: 13%;
}

#tablaMantenimientos th:nth-child(4),
#tablaMantenimientos td:nth-child(4) {
    width: 16%;
}

#tablaMantenimientos th:nth-child(5),
#tablaMantenimientos td:nth-child(5) {
    width: 37%;
}

#tablaMantenimientos th.mantenimientos-col-estado,
#tablaMantenimientos td.mantenimientos-col-estado-celda {
    text-align: center;
    width: 11%;
}

#tablaMantenimientos th.mantenimientos-col-acciones,
#tablaMantenimientos td.mantenimientos-col-acciones-celda {
    text-align: center;
    width: 7%;
}

#tablaMantenimientos .mantenimiento-estado-badge {
    display: inline-block;
    max-width: 100%;
    padding: 0.32rem 0.48rem;
    line-height: 1.1;
    white-space: normal;
    overflow-wrap: anywhere;
}

.mantenimiento-detalle-chip,
.mantenimiento-detalle-bloque {
    border: 1px solid #d4e8da;
    border-radius: 8px;
    background: #f6fbf7;
    padding: 0.72rem 0.8rem;
}

.mantenimiento-detalle-chip span,
.mantenimiento-detalle-bloque span {
    display: block;
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.mantenimiento-detalle-chip strong {
    color: #102217;
    display: block;
    font-size: 1rem;
    overflow-wrap: anywhere;
}

.mantenimiento-detalle-bloque p {
    color: #102217;
    margin: 0.25rem 0 0;
    overflow-wrap: anywhere;
}

.mantenimiento-activos-lista .list-group-item {
    color: #102217;
    background: transparent;
    border-color: #e1eadf;
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.mantenimiento-activos-modal {
    padding: 0.8rem;
    border: 1px solid #d4e8da;
    border-radius: 8px;
    background: #f9fcfa;
}

.mantenimiento-activos-modal-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.mantenimiento-activos-modal-top span {
    flex: 0 0 auto;
    padding: 0.22rem 0.5rem;
    border-radius: 999px;
    background: #e3f4e8;
    color: #198754;
    font-size: 0.72rem;
    font-weight: 800;
}

.mantenimiento-activos-tabla-wrap {
    border: 1px solid #e1eadf;
    border-radius: 8px;
    background: #ffffff;
    overflow: hidden;
}

.mantenimiento-activos-tabla {
    table-layout: fixed;
    font-size: 0.8rem;
}

.mantenimiento-activos-tabla thead th {
    padding: 0.55rem 0.65rem;
    border-color: #173322;
    background: #102217;
    color: #f2f8f4;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
}

.mantenimiento-activos-tabla th:first-child,
.mantenimiento-activos-tabla td:first-child {
    width: 42px;
    text-align: center;
}

.mantenimiento-activos-tabla td {
    padding: 0.58rem 0.65rem;
    color: #102217;
    border-color: #e1eadf;
    overflow-wrap: anywhere;
    vertical-align: middle;
}

.mantenimiento-activos-tabla tbody tr:nth-child(even) td {
    background: transparent;
}

.mantenimiento-activos-tabla tbody tr:hover td {
    background: #eef8f1;
}

.mantenimiento-activo-indice {
    color: #198754 !important;
    font-weight: 800;
}

.mantenimiento-activo-placa {
    display: inline-block;
    padding: 0.12rem 0.42rem;
    border-radius: 999px;
    background: #e3f4e8;
    color: #0f5132;
    font-weight: 800;
    white-space: normal;
}

.mantenimiento-modal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 34%);
    gap: 1rem;
    align-items: start;
}

.mantenimiento-modal-principal {
    min-width: 0;
}

.mantenimiento-modal-soportes {
    position: sticky;
    top: 0;
    min-width: 0;
}

.mantenimiento-soporte-card {
    padding: 0.75rem;
    border: 1px solid #d4e8da;
    border-radius: 8px;
    background: #f9fcfa;
}

.mantenimiento-pdf-preview {
    width: 100%;
    height: 360px;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #ffffff;
}

.mantenimiento-pdf-preview-shell {
    display: grid;
    gap: 0.65rem;
}

.pdf-preview-open-button {
    position: relative;
    display: block;
    width: 100%;
    min-height: 280px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    text-align: left;
    overflow: hidden;
    cursor: zoom-in;
}

.pdf-preview-open-button::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7, 34, 23, 0.02) 0%, rgba(7, 34, 23, 0.12) 100%);
    pointer-events: none;
}

.pdf-preview-open-button .mantenimiento-pdf-preview {
    pointer-events: none;
}

.pdf-preview-open-hint {
    position: absolute;
    right: 0.55rem;
    bottom: 0.55rem;
    z-index: 1;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.88);
    color: #0f5132;
    font-size: 0.72rem;
    font-weight: 600;
    pointer-events: none;
}

.acta-pdf-modal-frame {
    display: block;
    width: 100%;
    min-height: 78vh;
    border: 0;
    background: #ffffff;
}

.mantenimiento-pdf-cargando {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: 58px;
    padding: 0.75rem;
    border: 1px dashed #b7d7c1;
    border-radius: 8px;
    background: #f6fbf7;
    color: #486555;
    text-align: left;
}

.mantenimiento-pdf-cargando strong,
.mantenimiento-pdf-cargando small {
    display: block;
}

.mantenimiento-pdf-cargando strong {
    color: #102217;
    font-size: 0.86rem;
}

.mantenimiento-pdf-cargando small {
    color: #65766c;
    font-size: 0.74rem;
}

.mantenimiento-pdf-spinner {
    display: inline-block;
    flex: 0 0 auto;
    width: 1.35rem;
    height: 1.35rem;
    border: 0.18rem solid rgba(25, 135, 84, 0.22);
    border-top-color: #198754;
    border-radius: 50%;
    animation: mantenimiento-pdf-giro 0.72s linear infinite;
}

@keyframes mantenimiento-pdf-giro {
    to {
        transform: rotate(360deg);
    }
}

.mantenimiento-pdf-placeholder {
    display: grid;
    gap: 0.25rem;
    min-height: 180px;
    place-items: center;
    border: 1px dashed #b7d7c1;
    border-radius: 8px;
    background: #f6fbf7;
    padding: 1rem;
    text-align: center;
}

.mantenimiento-pdf-placeholder span {
    color: #102217;
    font-weight: 800;
}

.mantenimiento-pdf-placeholder small {
    color: #65766c;
}

.mantenimiento-firma-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 150px;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #ffffff;
    overflow: hidden;
}

.mantenimiento-firma-img {
    max-width: 100%;
    max-height: 220px;
    object-fit: contain;
}

.mantenimiento-imagenes-detalle {
    margin-bottom: 1rem;
}

.mantenimiento-imagen-carousel {
    border: 1px solid #d8e9de;
    border-radius: 8px;
    overflow: hidden;
}

.mantenimiento-imagenes-grid {
    display: grid;
    gap: 1rem;
}

.mantenimiento-imagenes-grupo {
    padding: 0.75rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #f9fcfa;
}

.mantenimiento-album {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 0.65rem;
}

.mantenimiento-album-item {
    position: relative;
    display: block;
    overflow: hidden;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #0f2418;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(16, 34, 23, 0.08);
}

.mantenimiento-album-item:hover {
    border-color: #198754;
    box-shadow: 0 12px 24px rgba(16, 34, 23, 0.14);
}

.mantenimiento-album-imagen {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
}

.mantenimiento-album-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #0f2418;
}

.mantenimiento-album-img.activos-carousel-img-pendiente {
    object-fit: contain;
    padding: 0.75rem;
    background: #f6fbf7;
}

.mantenimiento-album-contador {
    position: absolute;
    z-index: 1;
    top: 6px;
    right: 6px;
    padding: 0.15rem 0.38rem;
    border-radius: 6px;
    background: rgba(15, 36, 24, 0.78);
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 700;
}

.activo-mantenimiento-detalle-table th {
    width: 34%;
    color: #486555;
    background: #f6fbf7;
    border-color: #e1eadf;
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
}

.activo-mantenimiento-detalle-table td {
    overflow-wrap: anywhere;
    border-color: #e1eadf;
    font-size: 0.82rem;
    color: #102217;
}

@media (max-width: 575.98px) {
    .activo-detalle-layout-imagenes {
        width: 100%;
        padding-right: 0;
    }

    .activo-detalle-grid {
        grid-template-columns: 1fr;
    }

    .activo-detalle-campo,
    .activo-detalle-campo:nth-child(2n),
    .activo-detalle-campo:nth-last-child(-n + 2) {
        border-right: 1px solid rgba(148, 163, 184, 0.22);
        border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    }

    .activo-detalle-campo:last-child {
        border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    }

    .activo-asignacion-form-grid {
        grid-template-columns: 1fr;
    }

    .activo-asignacion-acciones .btn {
        width: 100%;
    }
}

/* Complemento visual para panel, activos e indicadores */
:root {
    --bs-success: #198754;
    --bs-success-rgb: 25, 135, 84;
}

body {
    background: #f4faf6;
}

.card {
    border-radius: 8px;
}

.activos-main {
    margin-left: 0;
    margin-right: auto;
    transition: max-width 0.2s ease, width 0.2s ease;
}

.activos-listado-card .card-body {
    padding: 0.75rem;
}

.app-body,
.panel-body,
.indicadores-main {
    background: #f4faf6;
}

.indicadores-shell {
    background: #f4faf6;
}

.licencias-shell {
    background: #f4faf6;
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
}

.licencias-shell-content,
.licencias-shell-content-wide {
    margin-left: auto;
    margin-right: auto;
}

.licencias-shell-content {
    max-width: 1320px;
}

.licencias-shell-content-wide {
    max-width: 1460px;
}

.licencias-catalogo-layout .personal-master-lista {
    max-height: none;
}

.licencias-catalogo-layout .personal-master-lista .card-body {
    overflow: visible;
}

.indicador-seccion-card {
    border-radius: 18px;
    overflow: hidden;
}

.indicador-seccion-card .card-body {
    padding: 1.25rem;
}

.indicador-seccion-activos {
    background: linear-gradient(180deg, #f6fbff 0%, #ffffff 100%);
}

.indicador-seccion-personal {
    background: linear-gradient(180deg, #fffaf2 0%, #ffffff 100%);
}

.indicador-seccion-mantenimiento {
    background: linear-gradient(180deg, #f5fcf7 0%, #ffffff 100%);
}

.indicador-seccion-operacion {
    background: linear-gradient(180deg, #f6f7f9 0%, #ffffff 100%);
}

.indicador-seccion-icono {
    font-size: 1.5rem;
    color: #5b6f63;
}

.indicador-mini-kpis {
    display: grid;
    gap: 0.75rem;
}

.indicador-mini-kpis > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.7rem 0.85rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(78, 110, 91, 0.1);
}

.indicador-mini-kpis span,
.indicador-lista-metrica span,
.indicador-ranking span {
    color: #4d6658;
}

.indicador-mini-kpis strong,
.indicador-lista-metrica strong,
.indicador-ranking strong,
.indicador-alerta-valor {
    font-size: 1.1rem;
    color: #1d3327;
}

.indicador-mini-kpis small {
    color: #718779;
}

.indicador-mini-kpis-stacked > div {
    align-items: flex-start;
    flex-direction: column;
}

.indicador-kpi-lite {
    border-radius: 18px;
}

.indicador-kpi-lite .card-body {
    display: grid;
    gap: 0.4rem;
}

.indicador-kpi-lite span {
    color: #5f7567;
    font-size: 0.95rem;
}

.indicador-kpi-lite strong {
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    line-height: 1;
    color: #173127;
}

.indicador-kpi-lite small {
    color: #7a8f82;
}

.indicador-alertas-grid {
    display: grid;
    gap: 0.85rem;
}

.indicador-alerta-item {
    display: block;
    padding: 1rem 1.05rem;
    border-radius: 16px;
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.indicador-alerta-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(36, 57, 46, 0.08);
    color: inherit;
}

.indicador-alerta-danger {
    background: #fff6f6;
    border-color: #f4d5d5;
}

.indicador-alerta-warning {
    background: #fffaf0;
    border-color: #f6e3bf;
}

.indicador-alerta-primary {
    background: #f5f9ff;
    border-color: #d7e4fa;
}

.indicador-alerta-dark {
    background: #f5f6f8;
    border-color: #d7dae0;
}

.indicador-lista-metrica,
.indicador-ranking {
    display: grid;
    gap: 0.7rem;
}

.indicador-lista-metrica > div,
.indicador-ranking > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 0.9rem;
    border-radius: 14px;
    background: #f7faf8;
    border: 1px solid #e2ebe5;
}

.app-body {
    min-height: 100vh;
}

.app-navbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    box-shadow: 0 10px 26px rgba(9, 30, 19, 0.12);
    background:
        linear-gradient(135deg, rgba(15, 104, 61, 0.98), rgba(24, 135, 84, 0.96)) !important;
    backdrop-filter: blur(12px);
}

.app-navbar-shell {
    gap: 1rem;
}

.app-navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    letter-spacing: 0.01em;
}

.app-navbar-brand-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.05;
}

.app-navbar-brand-title {
    display: block;
    max-width: min(34vw, 320px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-navbar-brand-subtitle {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.app-navbar-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    font-size: 1.05rem;
    overflow: hidden;
    flex-shrink: 0;
}

.app-navbar-brand-mark.has-logo {
    background: rgba(255, 255, 255, 0.96);
    border-color: rgba(255, 255, 255, 0.28);
    padding: 0.15rem;
}

.app-navbar-brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.app-navbar-toggler {
    border-color: rgba(255, 255, 255, 0.2);
}

.app-navbar-links {
    align-items: center;
    gap: 0.25rem;
}

.app-navbar-scope-form {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-right: 0.45rem;
    padding: 0.28rem 0.4rem 0.28rem 0.6rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.app-navbar-scope-label {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
}

.app-navbar-scope-select {
    min-width: 190px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.96);
    color: #163122;
    border-radius: 10px;
    box-shadow: none;
}

.app-navbar-scope-select:focus {
    border-color: rgba(255, 255, 255, 0.72);
    box-shadow: 0 0 0 0.18rem rgba(255, 255, 255, 0.18);
}

.app-navbar-dropdown {
    display: flex;
    align-items: center;
}

.app-navbar .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.58rem 0.82rem;
    border-radius: 12px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.94rem;
    transition: background-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.app-navbar .nav-link i {
    font-size: 0.96rem;
}

.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-1px);
}

.app-navbar .nav-link.active {
    color: #163122;
    background: #edf8f1;
    box-shadow: inset 0 0 0 1px rgba(22, 49, 34, 0.08);
}

.app-navbar .nav-link.is-pending,
.app-navbar .nav-link.is-pending:hover,
.app-navbar .nav-link.is-pending:focus-visible,
.app-navbar-brand.is-pending,
.app-navbar-brand.is-pending:hover,
.app-navbar-brand.is-pending:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.16);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
    opacity: 0.92;
    transform: none;
}

body.app-navigation-pending .app-navbar {
    cursor: progress;
}

.app-navbar-link-exit {
    margin-left: 0.35rem;
}

.app-navbar-dropdown-menu {
    min-width: 220px;
    margin-top: 0.5rem;
    padding: 0.45rem;
    border: 1px solid rgba(22, 49, 34, 0.12);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 32px rgba(16, 34, 23, 0.14);
}

.app-navbar-dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.68rem 0.8rem;
    border-radius: 12px;
    color: #284235;
    font-size: 0.92rem;
    font-weight: 600;
}

.app-navbar-dropdown-menu .dropdown-item i {
    font-size: 0.95rem;
    color: #228050;
}

.app-navbar-dropdown-menu .dropdown-item:hover,
.app-navbar-dropdown-menu .dropdown-item:focus-visible {
    color: #163122;
    background: #edf8f1;
}

.app-navbar-dropdown-menu .dropdown-item.active,
.app-navbar-dropdown-menu .dropdown-item:active {
    color: #163122;
    background: #dff1e6;
}

.login-body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at top left, rgba(41, 121, 78, 0.18), transparent 26%),
        radial-gradient(circle at bottom right, rgba(47, 128, 237, 0.16), transparent 28%),
        linear-gradient(135deg, #eef7f1 0%, #f7fbf8 48%, #edf4f8 100%);
}

.login-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(320px, 1.1fr) minmax(360px, 0.9fr);
}

.login-visual-panel {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    padding: 3rem;
    isolation: isolate;
}

.login-visual-backdrop {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(17, 24, 39, 0.26), rgba(17, 24, 39, 0.38)),
        url("../img/login-hero.jpg") center/cover no-repeat;
    transform: scale(1.08);
    filter: blur(10px) saturate(1.08);
}

.login-visual-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.18), transparent 0 18rem),
        linear-gradient(180deg, rgba(8, 33, 21, 0.1) 0%, rgba(8, 33, 21, 0.48) 100%);
}

.login-visual-copy {
    position: relative;
    z-index: 1;
    max-width: 580px;
    color: #fff;
}

.login-eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    margin-bottom: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.login-visual-copy h1 {
    margin: 0 0 1rem;
    font-size: clamp(2rem, 3vw, 3.25rem);
    line-height: 1.05;
    font-weight: 700;
}

.login-visual-copy p {
    margin: 0;
    max-width: 34rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: 1rem;
    line-height: 1.65;
}

.login-visual-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.login-visual-pills span {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 0.84rem;
}

.login-form-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.login-card {
    width: min(100%, 460px);
    padding: 2rem;
    border: 1px solid rgba(17, 24, 39, 0.06);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(14px);
}

.login-card-header {
    margin-bottom: 1.5rem;
}

.login-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.32rem 0.72rem;
    margin-bottom: 0.85rem;
    border-radius: 999px;
    background: #edf8f1;
    color: #16603b;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.login-card-header h2 {
    margin: 0 0 0.45rem;
    color: #173325;
    font-size: 1.7rem;
    font-weight: 700;
}

.login-card-header p {
    margin: 0;
    color: #667085;
    line-height: 1.55;
}

.login-alerta {
    border-radius: 16px;
}

.login-form-grid {
    display: grid;
    gap: 1rem;
}

.login-field .form-label {
    margin-bottom: 0.45rem;
    color: #344054;
    font-weight: 600;
}

.login-input-wrap {
    position: relative;
}

.login-input-icon {
    position: absolute;
    left: 0.95rem;
    top: 50%;
    transform: translateY(-50%);
    color: #6b7280;
    font-size: 0.95rem;
    pointer-events: none;
}

.login-input {
    min-height: 50px;
    padding-left: 2.7rem;
    padding-right: 2.7rem;
    border-radius: 16px;
    border-color: #d0d5dd;
    background: rgba(255, 255, 255, 0.92);
}

.login-input:focus {
    border-color: #198754;
    box-shadow: 0 0 0 0.18rem rgba(25, 135, 84, 0.14);
}

.login-password-toggle {
    position: absolute;
    right: 0.45rem;
    top: 50%;
    transform: translateY(-50%);
    color: #667085;
    text-decoration: none;
    padding: 0.4rem 0.55rem;
}

.login-password-toggle:hover,
.login-password-toggle:focus-visible {
    color: #198754;
}

.login-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 50px;
    border-radius: 16px;
    font-weight: 600;
}

.login-divider {
    position: relative;
    margin: 1.1rem 0 0.95rem;
    text-align: center;
}

.login-divider::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    border-top: 1px solid rgba(16, 24, 40, 0.12);
}

.login-divider span {
    position: relative;
    display: inline-block;
    padding: 0 0.85rem;
    background: rgba(255, 255, 255, 0.9);
    color: #667085;
    font-size: 0.82rem;
    font-weight: 600;
}

.login-microsoft-button {
    display: inline-flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: 52px;
    border: 1px solid #bfd6ff;
    border-radius: 16px;
    background: linear-gradient(135deg, #eef5ff 0%, #f8fbff 100%);
    color: #1f4fbf;
    font-weight: 700;
    box-shadow: 0 16px 28px rgba(31, 79, 191, 0.08);
}

.login-microsoft-button:hover,
.login-microsoft-button:focus-visible {
    color: #173b8f;
    border-color: #8eb5ff;
    background: linear-gradient(135deg, #e4efff 0%, #f5f9ff 100%);
}

.login-sso-note {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 0.85rem;
    margin-top: 1.15rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(16, 24, 40, 0.08);
}

.login-sso-note-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #edf8f1;
    color: #16603b;
    font-size: 1rem;
}

.login-sso-note strong {
    display: block;
    color: #173325;
    margin-bottom: 0.18rem;
}

.login-sso-note small {
    color: #667085;
    line-height: 1.5;
}

.panel-hero,
.indicadores-hero {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem;
    border: 1px solid #d4e8da;
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff, #eef8f1);
    box-shadow: 0 12px 32px rgba(16, 34, 23, 0.08);
}

.indicadores-hero {
    align-items: center;
    min-height: 128px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(238, 248, 241, 0.96)),
        radial-gradient(circle at top right, rgba(25, 135, 84, 0.15), transparent 34%);
}

.indicadores-hero-contenido {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.indicadores-centro-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.indicadores-centro-card {
    display: flex;
    flex-direction: column;
    min-height: 320px;
    padding: 1.15rem;
    border: 1px solid #d7e7de;
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 249, 0.98));
    box-shadow: 0 18px 38px rgba(16, 34, 23, 0.07);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.indicadores-centro-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 42px rgba(16, 34, 23, 0.1);
}

.indicadores-centro-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.indicadores-centro-card-copy {
    min-width: 0;
}

.indicadores-centro-card-copy .badge {
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    font-weight: 700;
}

.indicadores-centro-card-copy h2 {
    margin: 0.05rem 0 0.4rem;
    color: #163122;
    font-size: 1.1rem;
}

.indicadores-centro-card-copy p {
    margin: 0;
    color: #62766b;
    line-height: 1.55;
    max-width: 36ch;
}

.indicadores-centro-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 18px;
    font-size: 1.35rem;
    flex: 0 0 auto;
}

.indicadores-centro-card-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: auto;
}

.indicadores-centro-metric {
    min-width: 0;
    padding: 0.85rem 0.9rem;
    border: 1px solid rgba(16, 34, 23, 0.08);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.9);
}

.indicadores-centro-metric-neutral {
    border-color: rgba(100, 116, 139, 0.18);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.92));
}

.indicadores-centro-metric-success {
    border-color: rgba(22, 163, 74, 0.22);
    background: linear-gradient(180deg, rgba(240, 253, 244, 0.96), rgba(255, 255, 255, 0.92));
}

.indicadores-centro-metric-info {
    border-color: rgba(37, 99, 235, 0.2);
    background: linear-gradient(180deg, rgba(239, 246, 255, 0.96), rgba(255, 255, 255, 0.92));
}

.indicadores-centro-metric-warning {
    border-color: rgba(245, 158, 11, 0.22);
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.96), rgba(255, 255, 255, 0.92));
}

.indicadores-centro-metric-danger {
    border-color: rgba(220, 38, 38, 0.24);
    background: linear-gradient(180deg, rgba(254, 242, 242, 0.98), rgba(255, 255, 255, 0.93));
    box-shadow: inset 0 0 0 1px rgba(220, 38, 38, 0.04);
}

.indicadores-centro-metric span {
    display: block;
    color: #607368;
    font-size: 0.8rem;
    margin-bottom: 0.28rem;
}

.indicadores-centro-metric strong {
    display: block;
    color: #173127;
    font-size: clamp(1.25rem, 1.6vw, 1.7rem);
    line-height: 1.05;
}

.indicadores-centro-card-footer {
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid rgba(16, 34, 23, 0.08);
}

.indicadores-centro-card-footer .btn {
    border-radius: 12px;
    font-weight: 700;
}

.indicadores-centro-card.is-loading .indicadores-centro-metric-skeleton span,
.indicadores-centro-card.is-loading .indicadores-centro-metric-skeleton strong {
    display: block;
    border-radius: 999px;
    background: linear-gradient(90deg, #eef4f0, #dfe9e3, #eef4f0);
    background-size: 220% 100%;
    animation: indicadoresSkeleton 1.25s ease-in-out infinite;
}

.indicadores-centro-card.is-loading .indicadores-centro-metric-skeleton span {
    width: 68%;
    height: 10px;
    margin-bottom: 0.75rem;
}

.indicadores-centro-card.is-loading .indicadores-centro-metric-skeleton strong {
    width: 54%;
    height: 24px;
}

.indicadores-centro-card-activos .indicadores-centro-card-icon,
.indicadores-centro-card-activos .badge {
    background: rgba(47, 128, 237, 0.12);
    color: #1f5fd0;
}

.indicadores-centro-card-personal .indicadores-centro-card-icon,
.indicadores-centro-card-personal .badge {
    background: rgba(245, 158, 11, 0.14);
    color: #a35f00;
}

.indicadores-centro-card-mantenimientos .indicadores-centro-card-icon,
.indicadores-centro-card-mantenimientos .badge {
    background: rgba(25, 135, 84, 0.12);
    color: #198754;
}

.indicadores-centro-card-actas .indicadores-centro-card-icon,
.indicadores-centro-card-actas .badge {
    background: rgba(15, 23, 42, 0.08);
    color: #1e293b;
}

.indicadores-centro-card-impresoras .indicadores-centro-card-icon,
.indicadores-centro-card-impresoras .badge {
    background: rgba(139, 92, 246, 0.12);
    color: #6d3fd1;
}

.indicadores-centro-card-licencias .indicadores-centro-card-icon,
.indicadores-centro-card-licencias .badge {
    background: rgba(14, 165, 233, 0.12);
    color: #0c7aa6;
}

@keyframes indicadoresSkeleton {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: -100% 0;
    }
}

.panel-modulo-card {
    border-radius: 8px;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.panel-modulo-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(16, 34, 23, 0.12) !important;
}

.panel-modulo-icono,
.indicador-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 0.8rem;
    border-radius: 8px;
    background: #e3f4e8;
    color: #198754;
    font-size: 1.35rem;
}

.panel-main {
    max-width: 1440px;
}

.panel-hero-pro {
    align-items: center;
    padding: 1.5rem;
    border-radius: 18px;
    background:
        radial-gradient(circle at top right, rgba(25, 135, 84, 0.16), transparent 26%),
        linear-gradient(135deg, #ffffff 0%, #eef8f1 100%);
}

.panel-hero-copy {
    min-width: 0;
}

.panel-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border: 1px solid #cfe5d7;
    border-radius: 999px;
    color: #1c6b43;
    background: rgba(255, 255, 255, 0.9);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.panel-hero-title {
    margin: 0.8rem 0 0.45rem;
    font-size: clamp(1.8rem, 2vw, 2.5rem);
    line-height: 1.05;
    color: #0f281a;
}

.panel-hero-text {
    max-width: 760px;
    margin-bottom: 0.9rem;
    color: #4d6658;
    font-size: 1rem;
}

.panel-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    color: #5c6e63;
    font-size: 0.84rem;
}

.panel-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.panel-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
}

.panel-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.panel-kpi-card {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 0.9rem;
    padding: 1rem;
    border: 1px solid #d7e8dd;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(16, 34, 23, 0.06);
}

.panel-kpi-card-insumos {
    --panel-kpi-accent: #2f80ed;
    --panel-kpi-soft: rgba(47, 128, 237, 0.12);
}

.panel-kpi-card-inventario {
    --panel-kpi-accent: #2f80ed;
    --panel-kpi-soft: rgba(47, 128, 237, 0.12);
}

.panel-kpi-card-historial {
    --panel-kpi-accent: #198754;
    --panel-kpi-soft: rgba(25, 135, 84, 0.12);
}

.panel-kpi-card-documental {
    --panel-kpi-accent: #198754;
    --panel-kpi-soft: rgba(25, 135, 84, 0.12);
}

.panel-kpi-card-alerta {
    --panel-kpi-accent: #dc3545;
    --panel-kpi-soft: rgba(220, 53, 69, 0.12);
}

.panel-kpi-card-analitica {
    --panel-kpi-accent: #8e63d2;
    --panel-kpi-soft: rgba(142, 99, 210, 0.14);
}

.panel-kpi-card-pendiente {
    --panel-kpi-accent: #d97706;
    --panel-kpi-soft: rgba(217, 119, 6, 0.14);
}

.panel-kpi-card-admin {
    --panel-kpi-accent: #d97706;
    --panel-kpi-soft: rgba(217, 119, 6, 0.14);
}

.panel-kpi-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--panel-kpi-soft, rgba(25, 135, 84, 0.12));
    color: var(--panel-kpi-accent, #198754);
    font-size: 1.35rem;
}

.panel-kpi-copy {
    min-width: 0;
}

.panel-kpi-copy span {
    display: block;
    color: #587060;
    font-size: 0.82rem;
    margin-bottom: 0.2rem;
}

.panel-kpi-copy strong {
    display: block;
    color: var(--panel-kpi-accent, #198754);
    font-size: clamp(1.55rem, 1.8vw, 2rem);
    line-height: 1;
    margin-bottom: 0.25rem;
}

.panel-kpi-copy small {
    display: block;
    color: #6b7f72;
    font-size: 0.76rem;
    line-height: 1.35;
}

.panel-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.8fr);
    gap: 1rem;
    align-items: start;
}

.admin-hub-card {
    border: 1px solid #d8e8df !important;
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 249, 0.98));
    box-shadow: 0 16px 34px rgba(16, 34, 23, 0.07);
    overflow: hidden;
}

.admin-hub-card-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
}

.admin-hub-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
    min-height: 132px;
}

.admin-hub-card-head-compact {
    min-height: 138px;
}

.admin-hub-card-copy {
    min-width: 0;
}

.admin-hub-card-copy .badge {
    border-radius: 999px;
    padding: 0.42rem 0.75rem;
    font-weight: 700;
}

.admin-hub-card-copy h2 {
    color: #173127;
}

.admin-hub-card-copy p {
    max-width: 36ch;
    line-height: 1.55;
}

.admin-hub-card-action {
    flex: 0 0 auto;
    min-height: 42px;
    padding-inline: 0.95rem;
    border-radius: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.admin-hub-card-content {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(16, 34, 23, 0.08);
}

.admin-hub-card-success {
    --admin-hub-soft: rgba(25, 135, 84, 0.08);
}

.admin-hub-card-primary {
    --admin-hub-soft: rgba(47, 128, 237, 0.08);
}

.admin-hub-card-emerald {
    --admin-hub-soft: rgba(22, 163, 74, 0.08);
}

.admin-hub-card-danger {
    --admin-hub-soft: rgba(220, 53, 69, 0.08);
}

.admin-hub-card-sky {
    --admin-hub-soft: rgba(14, 116, 144, 0.08);
}

.admin-hub-card-amber {
    --admin-hub-soft: rgba(217, 119, 6, 0.09);
}

.admin-hub-card-indigo {
    --admin-hub-soft: rgba(79, 70, 229, 0.10);
}

.admin-hub-card::before {
    content: "";
    display: block;
    height: 5px;
    background: linear-gradient(90deg, transparent, var(--admin-hub-soft, rgba(25, 135, 84, 0.08)));
}

.admin-hub-security-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.panel-col-principal,
.panel-col-lateral {
    min-width: 0;
}

.panel-bloque {
    padding: 1rem;
    border: 1px solid #d7e8dd;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(16, 34, 23, 0.06);
}

.panel-bloque-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.panel-alertas-lista {
    display: grid;
    gap: 0.8rem;
}

.panel-alerta-item {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #e1ebe5;
    border-radius: 14px;
    background: #fbfdfc;
}

.panel-alerta-item strong {
    display: block;
    color: #163122;
    margin-bottom: 0.18rem;
}

.panel-alerta-item small {
    color: #63766a;
}

.panel-alerta-bullet {
    width: 10px;
    height: 10px;
    margin-top: 0.2rem;
    border-radius: 999px;
    background: #9fb4a6;
}

.panel-alerta-item-critica .panel-alerta-bullet {
    background: #dc3545;
}

.panel-alerta-item-media .panel-alerta-bullet {
    background: #d97706;
}

.panel-alerta-item-ok .panel-alerta-bullet {
    background: #198754;
}

.panel-alerta-item-cargando .panel-alerta-bullet {
    background: #2f80ed;
}

.panel-modulos-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.panel-modulos-grid-sistema {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.panel-areas-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.panel-area-card {
    padding: 1rem;
    border: 1px solid #d7e8dd;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fcf9 100%);
}

.panel-area-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.24rem 0.6rem;
    border-radius: 999px;
    background: #ecf5ef;
    color: #1d6a43;
    font-size: 0.72rem;
    font-weight: 700;
    margin-bottom: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.panel-area-card h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    color: #163122;
}

.panel-area-card p {
    margin: 0;
    color: #62766a;
    font-size: 0.84rem;
}

.panel-modulo-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid #d7e8dd;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fcf9 100%);
    text-decoration: none;
    color: inherit;
}

.panel-modulo-card-amplio {
    grid-column: 1 / -1;
}

.panel-modulo-card h3 {
    margin: 0 0 0.3rem;
    font-size: 1rem;
    color: #163122;
}

.panel-modulo-card p {
    margin: 0;
    color: #62766a;
    font-size: 0.84rem;
}

.panel-modulo-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.95rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgba(16, 24, 40, 0.08);
}

.panel-modulo-stat {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.panel-modulo-stat strong {
    color: #163122;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
}

.panel-modulo-stat small {
    color: #667085;
    font-size: 0.76rem;
    line-height: 1.35;
}

.panel-automatizacion {
    display: grid;
    gap: 0.55rem;
}

.panel-automatizacion-embed {
    overflow: hidden;
}

.panel-bloque-automatizacion-compacta {
    padding: 0.9rem;
}

.panel-bloque-automatizacion-compacta .panel-bloque-header {
    margin-bottom: 0.7rem;
}

.panel-bloque-automatizacion-compacta .panel-bloque-header .text-body-secondary {
    font-size: 0.78rem;
}

.panel-resumen-lateral-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.panel-resumen-lateral-card {
    padding: 0.85rem 0.9rem;
    border: 1px solid #e1ebe5;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fcf9 100%);
}

.panel-resumen-lateral-card small {
    display: block;
    color: #667085;
    font-size: 0.76rem;
    margin-bottom: 0.28rem;
}

.panel-resumen-lateral-card strong {
    display: block;
    color: #163122;
    font-size: 1.2rem;
    line-height: 1;
}

.panel-resumen-lateral-nota {
    display: grid;
    gap: 0.25rem;
}

.panel-resumen-lateral-nota strong {
    color: #163122;
    font-size: 0.95rem;
}

.panel-resumen-lateral-nota small {
    color: #667085;
    font-size: 0.76rem;
    line-height: 1.45;
}

.panel-automatizacion-embed .admin-automatizacion-resumen,
.panel-automatizacion-embed .admin-automatizacion-badges {
    justify-items: start;
}

.panel-automatizacion-embed .admin-automatizacion-bloque,
.panel-automatizacion-embed .activo-detalle-card,
.panel-automatizacion-embed .card {
    box-shadow: none !important;
    border-radius: 14px;
}

.panel-automatizacion-embed .admin-automatizacion-grid {
    display: block;
}

.panel-automatizacion-embed .admin-automatizacion-grid > .admin-automatizacion-bloque + .admin-automatizacion-bloque {
    display: none;
}

.panel-automatizacion-embed .admin-automatizacion-bloque {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.panel-automatizacion-embed .admin-automatizacion-bloque .text-body-secondary.mb-0,
.panel-automatizacion-embed .admin-automatizacion-bloque .admin-automatizacion-mensaje small,
.panel-automatizacion-embed .admin-automatizacion-bloque .d-block.text-danger.mt-1 {
    display: none !important;
}

.panel-automatizacion-embed .admin-automatizacion-bloque .d-flex.flex-wrap.justify-content-between {
    margin-bottom: 0.75rem !important;
}

.panel-automatizacion-embed .admin-automatizacion-bloque h2.h5 {
    display: none;
}

.panel-automatizacion-embed .admin-automatizacion-resumen {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem 0.8rem !important;
}

.panel-automatizacion-embed .admin-automatizacion-resumen > div {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    min-width: 0;
}

.panel-automatizacion-embed .admin-automatizacion-resumen > div small {
    display: block;
    color: #667085;
    font-size: 0.68rem;
    margin-bottom: 0.08rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.panel-automatizacion-embed .admin-automatizacion-resumen > div strong {
    display: block;
    color: #163122;
    font-size: 0.82rem;
    line-height: 1.25;
}

.panel-automatizacion-embed .admin-automatizacion-resumen > div:nth-child(n+5) {
    display: none;
}

.panel-automatizacion-embed .admin-automatizacion-mensaje {
    margin-top: 0.4rem !important;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border-top: 1px solid rgba(16, 24, 40, 0.08);
    padding-top: 0.5rem;
}

.panel-automatizacion-embed .admin-automatizacion-mensaje strong {
    display: block;
    color: #214b37;
    font-size: 0.73rem;
    line-height: 1.32;
}

.panel-bloque-automatizacion-compacta .panel-bloque-acciones {
    margin-top: 0.65rem !important;
}

.panel-bloque-automatizacion-compacta .btn.btn-outline-success.btn-sm {
    padding: 0.3rem 0.65rem;
    font-size: 0.78rem;
}

.panel-estado-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
}

.panel-estado-pill-cargando {
    color: #2f80ed;
    background: rgba(47, 128, 237, 0.12);
}

.panel-estado-pill-alerta {
    color: #dc3545;
    background: rgba(220, 53, 69, 0.12);
}

.panel-ruta-lista {
    margin: 0;
    padding-left: 1.1rem;
    color: #355040;
}

.panel-ruta-lista li + li {
    margin-top: 0.55rem;
}

@media (max-width: 1199.98px) {
    .panel-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .panel-layout {
        grid-template-columns: 1fr;
    }

    .panel-modulos-grid-sistema {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .app-navbar .navbar-collapse {
        margin-top: 0.8rem;
        padding-top: 0.8rem;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
    }

    .app-navbar-links {
        align-items: stretch;
    }

    .app-navbar-scope-form {
        width: 100%;
        margin-right: 0;
        margin-bottom: 0.5rem;
        justify-content: space-between;
    }

    .app-navbar-scope-select {
        min-width: 0;
        width: 100%;
        max-width: 100%;
    }

    .app-navbar-dropdown {
        display: block;
    }

    .app-navbar .nav-link {
        width: 100%;
        justify-content: flex-start;
    }

    .app-navbar-brand-title {
        max-width: 70vw;
    }

    .app-navbar-dropdown-menu {
        position: static !important;
        min-width: 100%;
        margin-top: 0.35rem;
        border-radius: 14px;
        box-shadow: none;
    }

    .panel-hero-pro {
        padding: 1.1rem;
    }

    .panel-hero-actions {
        justify-content: flex-start;
    }

    .panel-kpi-grid,
    .panel-modulos-grid,
    .panel-areas-grid {
        grid-template-columns: 1fr;
    }

    .panel-modulos-grid-sistema {
        grid-template-columns: 1fr;
    }

    .panel-kpi-card,
    .panel-modulo-card {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .panel-modulo-stats {
        grid-template-columns: 1fr;
        gap: 0.55rem;
    }

    .panel-resumen-lateral-grid,
    .panel-automatizacion-embed .admin-automatizacion-resumen {
        grid-template-columns: 1fr;
    }

    .login-shell {
        grid-template-columns: 1fr;
    }

    .login-visual-panel {
        min-height: 280px;
        padding: 1.5rem;
        align-items: end;
    }

    .login-form-panel {
        padding: 1.2rem;
        margin-top: -1.6rem;
        position: relative;
        z-index: 2;
    }

    .login-card {
        padding: 1.35rem;
        border-radius: 22px;
    }

    .login-visual-copy h1 {
        font-size: 1.8rem;
    }
}

.indicadores-filtro {
    display: grid;
    grid-template-columns: minmax(110px, 0.85fr) minmax(150px, 1.15fr);
    gap: 0.65rem;
    min-width: 290px;
    align-items: end;
}

.indicador-kpi {
    position: relative;
    height: 100%;
    min-height: 100%;
    border-left: 4px solid #198754 !important;
    overflow: hidden;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.indicador-kpi::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -52px;
    width: 128px;
    height: 128px;
    border-radius: 50%;
    background: rgba(25, 135, 84, 0.08);
}

.indicador-kpi:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(16, 34, 23, 0.12) !important;
}

.indicador-kpi .card-body {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 190px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.indicador-kpi-alerta {
    border-left-color: #dc3545 !important;
}

.indicador-kpi strong {
    display: block;
    color: #102217;
    font-size: 2rem;
    line-height: 1;
    margin-bottom: 0.45rem;
}

.indicador-kpi small {
    display: block;
    margin-top: 0;
}

.indicador-kpi-flat {
    --kpi-accent: #198754;
    --kpi-soft: rgba(25, 135, 84, 0.08);
    border-left: 0 !important;
}

.indicador-kpi-flat::after {
    background: var(--kpi-soft);
}

.indicador-kpi-flat .card-body {
    min-height: 112px;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.4rem;
}

.indicador-kpi-circulo {
    display: inline-flex;
    flex: 0 0 56px;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--kpi-accent);
    color: #ffffff;
    font-size: 1.65rem;
    box-shadow: 0 10px 24px var(--kpi-soft);
}

.indicador-kpi-contenido {
    min-width: 0;
}

.indicador-kpi-flat strong {
    color: var(--kpi-accent);
    font-size: 2.05rem;
    margin-bottom: 0.25rem;
}

.indicador-kpi-flat p {
    margin: 0;
    color: #102217;
    font-size: 0.9rem;
    font-weight: 600;
}

.indicador-kpi-flat small {
    color: #65766c;
    font-size: 0.78rem;
    line-height: 1.25;
}

.indicador-kpi-requieren {
    --kpi-accent: #ff7458;
    --kpi-soft: rgba(255, 116, 88, 0.14);
}

.indicador-kpi-realizados {
    --kpi-accent: #2f80ed;
    --kpi-soft: rgba(47, 128, 237, 0.14);
}

.indicador-kpi-atendidos {
    --kpi-accent: #f5a623;
    --kpi-soft: rgba(245, 166, 35, 0.16);
}

.indicador-kpi-pendientes {
    --kpi-accent: #20b455;
    --kpi-soft: rgba(32, 180, 85, 0.14);
}

.indicador-kpi-pendientes.indicador-kpi-alerta {
    --kpi-accent: #dc3545;
    --kpi-soft: rgba(220, 53, 69, 0.13);
}

.indicador-total-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    padding: 0.75rem;
    border: 1px solid #d4e8da;
    border-radius: 8px;
    background: linear-gradient(135deg, #f6fbf7, #edf8f1);
}

.indicador-total-strip > div {
    position: relative;
    padding: 0.7rem 0.75rem;
    border: 1px solid #e1eadf;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(16, 34, 23, 0.05);
}

.indicador-total-strip > div::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: 8px 0 0 8px;
    background: #198754;
}

.indicador-total-strip span {
    display: block;
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.indicador-total-strip strong {
    display: block;
    color: #102217;
    font-size: 1.45rem;
    line-height: 1.1;
}

.indicador-total-alerta {
    border-color: #f1b7bd !important;
    background: #fff5f6 !important;
}

.indicador-total-alerta strong {
    color: #b02a37;
}

.indicador-donut {
    display: grid;
    width: 176px;
    height: 176px;
    place-items: center;
    border-radius: 50%;
    background:
        radial-gradient(circle, #fff 0 57%, transparent 58%),
        conic-gradient(#198754 var(--valor), #e1eadf 0);
}

.indicador-donut span {
    color: #102217;
    font-size: 2rem;
    font-weight: 800;
}

.indicador-progress {
    height: 0.62rem;
    border-radius: 999px;
    background: #e1eadf;
}

.indicador-meses {
    display: grid;
    grid-template-columns: repeat(12, minmax(48px, 1fr));
    gap: 0.55rem;
    min-height: 250px;
    align-items: end;
}

.indicador-mes {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
    text-align: center;
}

.indicador-mes-valor {
    min-height: 1.2rem;
    color: #102217;
    font-size: 0.76rem;
    font-weight: 700;
}

.indicador-barra {
    display: flex;
    align-items: end;
    justify-content: center;
    height: 150px;
    padding: 0.25rem;
    border-radius: 8px;
    background: #f1f8f3;
    border: 1px solid #dceee2;
}

.indicador-barra span {
    display: block;
    width: 100%;
    max-width: 30px;
    min-height: 4px;
    border-radius: 8px 8px 4px 4px;
    background: linear-gradient(180deg, #24a766, #198754);
}

.indicador-mes strong {
    color: #102217;
    font-size: 0.72rem;
}

.indicador-mes small {
    color: #65766c;
    font-size: 0.68rem;
}

.indicador-meses-lista {
    display: grid;
    gap: 0.65rem;
}

.indicador-mes-linea {
    display: grid;
    grid-template-columns: minmax(92px, 140px) 1fr;
    gap: 0.75rem;
    align-items: center;
    padding: 0.55rem 0.65rem;
    border: 1px solid #e1eadf;
    border-radius: 8px;
    background: #f9fcfa;
}

.indicador-mes-etiqueta strong,
.indicador-mes-etiqueta small {
    display: block;
}

.indicador-mes-etiqueta strong {
    color: #102217;
}

.indicador-mes-etiqueta small {
    color: #65766c;
    font-size: 0.72rem;
}

.indicador-progress-mes {
    height: 0.95rem;
}

.indicador-tipo-mini {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.indicador-tipo-mini > span:not(.badge) {
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 600;
}

.indicador-lectura {
    display: grid;
    gap: 0.55rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid #e1eadf;
}

.indicador-lectura:last-of-type {
    border-bottom: 0;
}

.indicador-lectura div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.indicador-consolidado {
    position: relative;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: 1rem;
    border: 1px solid #cfe7d6;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(16, 34, 23, 0.07);
    overflow: hidden;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.indicador-consolidado::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: #198754;
}

.indicador-consolidado:hover {
    transform: translateY(-2px);
    border-color: #b7d7c1;
    box-shadow: 0 18px 36px rgba(16, 34, 23, 0.12);
}

.indicador-consolidado-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-left: 0.25rem;
}

.indicador-consolidado-titulo {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    min-width: 0;
}

.indicador-consolidado-titulo h3 {
    color: #102217;
    font-weight: 800;
}

.indicador-consolidado-cobertura {
    min-width: 82px;
    padding: 0.55rem 0.65rem;
    border: 1px solid #cfe7d6;
    border-radius: 8px;
    background: linear-gradient(180deg, #f6fbf7, #e3f4e8);
    text-align: center;
}

.indicador-consolidado-cobertura span,
.indicador-consolidado-cobertura small {
    display: block;
}

.indicador-consolidado-cobertura span {
    color: #198754;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1;
}

.indicador-consolidado-cobertura small {
    color: #486555;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
}

.indicador-consolidado-resumen {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.indicador-consolidado-resumen div {
    padding: 0.7rem 0.65rem;
    border: 1px solid #e1eadf;
    border-radius: 8px;
    background: #f9fcfa;
}

.indicador-consolidado-resumen span {
    display: block;
    color: #65766c;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.indicador-consolidado-resumen strong {
    display: block;
    color: #102217;
    font-size: 1.32rem;
    line-height: 1.12;
}

.indicador-consolidado-pendiente {
    border-color: #f1b7bd !important;
    background: #fff5f6 !important;
}

.indicador-consolidado-pendiente strong {
    color: #b02a37;
}

.indicador-consolidado-barras,
.indicador-consolidado-cobertura-linea {
    padding: 0.75rem;
    border: 1px solid #e1eadf;
    border-radius: 8px;
    background: #f9fcfa;
}

.indicador-consolidado-cobertura-linea {
    margin-top: auto !important;
}

.indicador-progress-tipo {
    height: 1rem;
}

.indicador-consolidado-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.indicador-consolidado-grid div {
    padding: 0.65rem;
    border: 1px solid #e1eadf;
    border-radius: 8px;
    background: #ffffff;
}

.indicador-consolidado-grid span {
    display: block;
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 600;
}

.indicador-consolidado-grid strong {
    display: block;
    color: #102217;
    font-size: 1.25rem;
    line-height: 1.1;
}

.indicador-tabla {
    table-layout: fixed;
    font-size: 0.82rem;
    border: 1px solid #dceee2;
}

.indicador-tabla th {
    color: #f2f8f4;
    background: #102217;
}

.indicador-tabla td,
.indicador-tabla th {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.indicador-tabla td span {
    display: block;
    color: #65766c;
    font-size: 0.75rem;
}

.indicador-tabla tbody tr:hover td {
    background: #f6fbf7;
}

.indicador-tabla tbody td:last-child {
    background: rgba(238, 248, 241, 0.55);
}

.indicador-tabla tfoot th {
    color: #102217;
    background: #eef8f1;
    border-top: 2px solid #198754;
    font-weight: 800;
}

.indicador-tabla tfoot .badge,
.indicador-tabla td.indicador-tipo-celda .badge {
    display: inline-block;
    width: auto;
    margin: 0.08rem 0.12rem 0.08rem 0;
    font-size: 0.72rem;
}

.indicador-tabla td.indicador-tipo-celda .badge {
    overflow-wrap: normal;
    white-space: nowrap;
    word-break: normal;
}

.indicador-tabla td.indicador-tipo-celda .text-bg-success,
.indicador-tabla td.indicador-tipo-celda .text-bg-secondary {
    color: #fff;
}

.indicador-tabla td.indicador-tipo-celda .text-bg-warning {
    color: #102217;
}

.indicador-tabla-ubicaciones {
    table-layout: auto;
}

.indicador-tabla-ubicaciones th:first-child,
.indicador-tabla-ubicaciones td:first-child {
    min-width: 160px;
}

.indicador-tabla-ubicaciones th:nth-child(6),
.indicador-tabla-ubicaciones td:nth-child(6) {
    min-width: 170px;
}

.indicador-tabla-ubicaciones th:last-child,
.indicador-tabla-ubicaciones td:last-child {
    min-width: 380px;
}

.indicador-cobertura-numero {
    min-width: 42px;
    color: #102217;
    font-size: 0.78rem;
    text-align: right;
}

.indicador-cobertura-doble {
    display: grid;
    gap: 0.55rem;
    min-width: 360px;
    width: 100%;
}

.indicador-cobertura-tipo {
    display: grid;
    gap: 0.2rem;
}

.indicador-cobertura-titulo {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 4.5rem;
    gap: 1rem;
    align-items: center;
    width: 100%;
}

.indicador-cobertura-tipo span,
.indicador-cobertura-tipo small {
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 700;
}

.indicador-cobertura-tipo span {
    display: block;
    min-width: 0;
}

.indicador-cobertura-tipo strong {
    color: #102217;
    display: block;
    font-size: 0.78rem;
    justify-self: end;
    text-align: right;
    width: 4.5rem;
}

.indicador-cobertura-relacion {
    display: inline-block;
    margin-left: 0.35rem;
    padding-left: 0.35rem;
    border-left: 1px solid #cfe7d6;
    color: #102217;
    font-style: normal;
    font-weight: 800;
}

.indicador-cobertura-tipo .indicador-progress {
    height: 0.42rem;
}

.indicador-cobertura-barra {
    display: block;
    width: 100%;
}

.indicador-cobertura-barra .indicador-progress {
    width: 100%;
}

.indicador-tabla tfoot .indicador-cobertura-tipo span,
.indicador-tabla tfoot .indicador-cobertura-tipo small,
.indicador-tabla tfoot .indicador-cobertura-tipo strong {
    color: #102217;
}

.activos-table {
    width: 100%;
    table-layout: fixed;
    font-size: 0.8rem;
    border: 0;
}

.activos-table th,
.activos-table td {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    vertical-align: middle;
    padding: 0.52rem 0.45rem;
}

.activos-table thead th {
    background: #102217;
    color: #f2f8f4;
    border-color: #173322;
    font-weight: 600;
    font-size: 0.74rem;
    text-transform: uppercase;
}

.activos-table tbody td {
    border-color: #e1eadf;
}

.activos-table tbody tr:hover td {
    background: #eef8f1;
}

.activos-table-shell {
    background: #ffffff;
    border: 1px solid #d4e8da;
    border-radius: 8px;
    overflow: hidden;
}

.activos-toolbar {
    margin-bottom: 0.2rem;
    width: 100%;
    background: #f6fbf7;
    border: 1px solid #d9eadf;
    border-radius: 8px;
    padding: 0.7rem;
}

.activos-toolbar-secundario {
    margin-top: 0.15rem;
    margin-bottom: 0.85rem;
}

.activos-toolbar-ayuda {
    padding-top: 0.35rem;
    font-size: 0.78rem;
    line-height: 1.3;
}

.activos-filtros-panel {
    display: grid;
    gap: 0.45rem;
    min-height: 100%;
}

.activos-filtros-panel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.activos-filtros-panel-titulo {
    color: #486555;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.activos-filtros-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    min-height: 32px;
}

.activos-filtro-chip,
.activos-filtro-vacio {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
    line-height: 1.2;
}

.activos-filtro-chip {
    border: 1px solid #cfe7d6;
    background: #ffffff;
    color: #102217;
    font-weight: 600;
}

.activos-filtro-vacio {
    border: 1px dashed #cfe7d6;
    background: rgba(255, 255, 255, 0.65);
    color: #65766c;
}

.activos-btn-reset-filtros {
    white-space: nowrap;
}

.activos-kpi-filtro {
    cursor: pointer;
}

.activos-listado-card .mantenimiento-kpi::after {
    right: -34px;
    top: -40px;
    width: 102px;
    height: 102px;
}

.activos-listado-card .mantenimiento-kpi .card-body {
    min-height: 88px;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
}

.activos-listado-card .mantenimiento-kpi-icono {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    font-size: 1.2rem;
}

.activos-listado-card .mantenimiento-kpi strong {
    font-size: 1.45rem;
    margin-bottom: 0.15rem;
}

.activos-listado-card .mantenimiento-kpi p {
    font-size: 0.8rem;
    line-height: 1.15;
}

.activos-listado-card .mantenimiento-kpi small {
    font-size: 0.69rem;
    line-height: 1.15;
}

.activos-kpi-estatico {
    cursor: default;
}

.activos-kpi-estatico.mantenimiento-kpi:hover {
    transform: none;
    box-shadow: none !important;
}

.activos-kpi-filtro:focus-visible {
    outline: 2px solid #198754;
    outline-offset: 2px;
}

.activos-kpi-filtro-activo.mantenimiento-kpi {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(16, 34, 23, 0.18) !important;
}

.activos-kpi-filtro-activo.mantenimiento-kpi::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 2px solid var(--mantenimiento-kpi-color, #198754);
    border-radius: 8px;
    pointer-events: none;
}

.activos-kpi-total.mantenimiento-kpi {
    --mantenimiento-kpi-color: #ff7458;
    --mantenimiento-kpi-soft: rgba(255, 116, 88, 0.14);
}

.activos-kpi-sistemas.mantenimiento-kpi {
    --mantenimiento-kpi-color: #2f80ed;
    --mantenimiento-kpi-soft: rgba(47, 128, 237, 0.14);
}

.activos-kpi-almacen.mantenimiento-kpi {
    --mantenimiento-kpi-color: #8e63d2;
    --mantenimiento-kpi-soft: rgba(142, 99, 210, 0.14);
}

.activos-kpi-ruta-sur.mantenimiento-kpi {
    --mantenimiento-kpi-color: #f2994a;
    --mantenimiento-kpi-soft: rgba(242, 153, 74, 0.16);
}

.activos-kpi-aliadas.mantenimiento-kpi {
    --mantenimiento-kpi-color: #20b455;
    --mantenimiento-kpi-soft: rgba(32, 180, 85, 0.14);
}

.activos-kpi-activos.mantenimiento-kpi {
    --mantenimiento-kpi-color: #20b455;
    --mantenimiento-kpi-soft: rgba(32, 180, 85, 0.14);
}

.activos-kpi-acta-vigencia.mantenimiento-kpi {
    --mantenimiento-kpi-color: #198754;
    --mantenimiento-kpi-soft: rgba(25, 135, 84, 0.14);
}

.activos-kpi-alertas.mantenimiento-kpi {
    --mantenimiento-kpi-color: #d97706;
    --mantenimiento-kpi-soft: rgba(217, 119, 6, 0.16);
}

.activos-kpi-personal.mantenimiento-kpi {
    --mantenimiento-kpi-color: #dc3545;
    --mantenimiento-kpi-soft: rgba(220, 53, 69, 0.14);
}

.activos-kpi-estado-critico.mantenimiento-kpi {
    --mantenimiento-kpi-color: #c62828;
    --mantenimiento-kpi-soft: rgba(198, 40, 40, 0.14);
}

.activos-kpi-mantenimiento.mantenimiento-kpi {
    --mantenimiento-kpi-color: #198754;
    --mantenimiento-kpi-soft: rgba(25, 135, 84, 0.14);
}

.personal-kpi-total.mantenimiento-kpi {
    --mantenimiento-kpi-color: #ff7458;
    --mantenimiento-kpi-soft: rgba(255, 116, 88, 0.14);
}

.personal-kpi-activos.mantenimiento-kpi {
    --mantenimiento-kpi-color: #2f80ed;
    --mantenimiento-kpi-soft: rgba(47, 128, 237, 0.14);
}

.personal-kpi-mantenimientos.mantenimiento-kpi {
    --mantenimiento-kpi-color: #20b455;
    --mantenimiento-kpi-soft: rgba(32, 180, 85, 0.14);
}

.personal-kpi-alertas.mantenimiento-kpi {
    --mantenimiento-kpi-color: #d97706;
    --mantenimiento-kpi-soft: rgba(217, 119, 6, 0.16);
}

.personal-kpi-inactivos.mantenimiento-kpi {
    --mantenimiento-kpi-color: #dc3545;
    --mantenimiento-kpi-soft: rgba(220, 53, 69, 0.14);
}

.personal-kpi-contacto.mantenimiento-kpi {
    --mantenimiento-kpi-color: #8e63d2;
    --mantenimiento-kpi-soft: rgba(142, 99, 210, 0.14);
}

.insumos-kpi-total.mantenimiento-kpi {
    --mantenimiento-kpi-color: #2f80ed;
    --mantenimiento-kpi-soft: rgba(47, 128, 237, 0.14);
}

.insumos-kpi-historial.mantenimiento-kpi {
    --mantenimiento-kpi-color: #198754;
    --mantenimiento-kpi-soft: rgba(25, 135, 84, 0.14);
}

.insumos-kpi-sin-historial.mantenimiento-kpi {
    --mantenimiento-kpi-color: #d97706;
    --mantenimiento-kpi-soft: rgba(217, 119, 6, 0.16);
}

.insumos-kpi-mes-anterior.mantenimiento-kpi {
    --mantenimiento-kpi-color: #dc3545;
    --mantenimiento-kpi-soft: rgba(220, 53, 69, 0.14);
}

.actas-kpi-total.mantenimiento-kpi {
    --mantenimiento-kpi-color: #ff7458;
    --mantenimiento-kpi-soft: rgba(255, 116, 88, 0.14);
}

.actas-kpi-entrega.mantenimiento-kpi {
    --mantenimiento-kpi-color: #20b455;
    --mantenimiento-kpi-soft: rgba(32, 180, 85, 0.14);
}

.actas-kpi-actualizacion.mantenimiento-kpi {
    --mantenimiento-kpi-color: #2f80ed;
    --mantenimiento-kpi-soft: rgba(47, 128, 237, 0.14);
}

.actas-kpi-sin-firma.mantenimiento-kpi {
    --mantenimiento-kpi-color: #dc3545;
    --mantenimiento-kpi-soft: rgba(220, 53, 69, 0.14);
}

.licencias-kpi-total.mantenimiento-kpi {
    --mantenimiento-kpi-color: #ff7458;
    --mantenimiento-kpi-soft: rgba(255, 116, 88, 0.14);
}

.licencias-kpi-operativo.mantenimiento-kpi {
    --mantenimiento-kpi-color: #2f80ed;
    --mantenimiento-kpi-soft: rgba(47, 128, 237, 0.14);
}

.licencias-kpi-documental.mantenimiento-kpi {
    --mantenimiento-kpi-color: #20b455;
    --mantenimiento-kpi-soft: rgba(32, 180, 85, 0.14);
}

.licencias-kpi-alerta.mantenimiento-kpi {
    --mantenimiento-kpi-color: #d97706;
    --mantenimiento-kpi-soft: rgba(217, 119, 6, 0.16);
}

.licencias-kpi-vencer.mantenimiento-kpi {
    --mantenimiento-kpi-color: #f5a623;
    --mantenimiento-kpi-soft: rgba(245, 166, 35, 0.16);
}

.licencias-kpi-critico.mantenimiento-kpi {
    --mantenimiento-kpi-color: #dc3545;
    --mantenimiento-kpi-soft: rgba(220, 53, 69, 0.14);
}

.licencias-kpi-tecnico.mantenimiento-kpi {
    --mantenimiento-kpi-color: #8e63d2;
    --mantenimiento-kpi-soft: rgba(142, 99, 210, 0.14);
}

.kpi-cargando strong,
.kpi-cargando small {
    color: transparent !important;
}

.kpi-cargando strong,
.kpi-cargando small {
    position: relative;
}

.kpi-cargando strong::after,
.kpi-cargando small::after {
    content: "";
    display: block;
    width: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #edf5ef 0%, #f8fcf9 48%, #edf5ef 100%);
    background-size: 200% 100%;
    animation: personal-skeleton-giro 1.2s ease-in-out infinite;
}

.kpi-cargando strong::after {
    height: 1.2rem;
    max-width: 4.5rem;
}

.kpi-cargando small::after {
    height: 0.72rem;
    max-width: 7rem;
    margin-top: 0.15rem;
}

.activos-kpi-card {
    position: relative;
    overflow: hidden;
    height: 100%;
    padding: 0.9rem 1rem;
    border: 1px solid #d9eadf;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(16, 34, 23, 0.05);
}

.activos-kpi-card span,
.activos-kpi-card small {
    display: block;
}

.activos-kpi-card span {
    margin-bottom: 0.22rem;
    color: #506058;
    font-size: 0.78rem;
    text-transform: uppercase;
    font-weight: 700;
}

.activos-kpi-card strong {
    display: block;
    margin-bottom: 0.18rem;
    font-size: 1.55rem;
    line-height: 1.1;
    color: #102217;
}

.activos-kpi-card small {
    color: #66786e;
    font-size: 0.77rem;
}

.activos-kpi-total {
    background: linear-gradient(180deg, #ffffff 0%, #f6fbf7 100%);
}

.activos-kpi-alertas {
    background: linear-gradient(180deg, #fff8ef 0%, #ffffff 100%);
}

.activos-kpi-personal {
    background: linear-gradient(180deg, #fff0f0 0%, #ffffff 100%);
}

.activos-kpi-estado-critico {
    background: linear-gradient(180deg, #ffeaea 0%, #ffffff 100%);
}

.activos-kpi-mantenimiento {
    background: linear-gradient(180deg, #eef6ff 0%, #ffffff 100%);
}

.activos-kpi-sistemas {
    background: linear-gradient(180deg, #eef8f1 0%, #ffffff 100%);
}

.activos-kpi-almacen {
    background: linear-gradient(180deg, #f7f1ff 0%, #ffffff 100%);
}

.activos-kpi-ruta-sur {
    background: linear-gradient(180deg, #fff6ee 0%, #ffffff 100%);
}

.activos-kpi-aliadas {
    background: linear-gradient(180deg, #eef6ff 0%, #ffffff 100%);
}

.activos-cantidad-select {
    width: 86px;
}

.activos-col-detalle {
    width: 62px;
}

.activos-col-alertas {
    width: 19%;
}

.activos-col-serial,
.activos-col-placa,
.activos-col-marca,
.activos-col-modelo,
.activos-col-personal {
    width: 12%;
}

.activos-col-articulo,
.activos-col-ubicacion {
    width: 17%;
}

.activos-col-estado {
    width: 12%;
}

.personal-col-nombre {
    width: 19%;
}

.personal-col-cedula,
.personal-col-cargo,
.personal-col-dependencia,
.personal-col-estado,
.personal-col-ubicacion {
    width: 12%;
}

.personal-col-conteo {
    width: 8%;
    text-align: center;
}

.personal-col-alertas {
    width: 19%;
}

.personal-col-acciones {
    width: 62px;
}

.personal-col-resumen {
    width: 100%;
}

.personal-toolbar-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem;
    border: 1px solid #d9eadf;
    border-radius: 8px;
    background: #f6fbf7;
}

.personal-toolbar-campos {
    display: flex;
    flex: 1 1 540px;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.personal-toolbar-campos .form-control {
    flex: 1 1 240px;
    min-width: 180px;
}

.personal-toolbar-select {
    width: auto;
    min-width: 150px;
}

.personal-toolbar-cantidad {
    min-width: 92px;
}

.personal-toolbar-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.personal-lista-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    min-height: 54px;
}

.personal-lista-principal {
    min-width: 0;
    display: grid;
    gap: 0.16rem;
    flex: 1 1 auto;
}

.personal-lista-item strong {
    color: #102217;
    font-size: 0.93rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.personal-lista-item small {
    color: #65766c;
    font-size: 0.76rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.personal-lista-lateral {
    display: grid;
    justify-items: end;
    gap: 0.45rem;
    flex: 0 0 auto;
    min-width: 112px;
}

.personal-lista-acciones {
    min-height: 20px;
}

.activo-lista-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    min-height: 56px;
}

.activo-lista-principal {
    min-width: 0;
    display: grid;
    gap: 0.24rem;
    flex: 1 1 auto;
}

.activo-lista-principal strong {
    color: #102217;
    font-size: 0.93rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.activo-lista-principal small {
    color: #65766c;
    font-size: 0.76rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.activo-lista-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.15rem;
}

.activo-lista-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.22rem 0.48rem;
    border-radius: 999px;
    background: #e7f4ec;
    color: #185c38;
    font-size: 0.69rem;
    font-weight: 700;
    line-height: 1.15;
}

.activo-lista-chip-neutro {
    background: #f2f6f3;
    color: #55675e;
}

.activo-lista-lateral {
    display: grid;
    justify-items: end;
    gap: 0.45rem;
    flex: 0 0 auto;
    min-width: 164px;
}

.personal-master-detail {
    display: flex;
    gap: 1rem;
    align-items: stretch;
}

.personal-master-panel {
    min-width: 0;
    max-height: calc(100vh - 96px);
    display: flex;
    flex-direction: column;
    transition: flex-basis 0.28s ease, max-width 0.28s ease, opacity 0.28s ease, transform 0.28s ease;
}

.personal-master-panel .card-body {
    overflow: auto;
}

.personal-master-lista {
    flex: 1 1 100%;
    max-width: 100%;
}

.personal-master-detalle {
    flex: 0 0 0;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateX(20px);
    pointer-events: none;
}

.personal-master-detail.personal-master-detail-detalle-abierto .personal-master-lista {
    flex: 0 0 52%;
    max-width: 52%;
}

.personal-master-detail.personal-master-detail-detalle-abierto .personal-master-detalle {
    flex: 0 0 48%;
    max-width: 48%;
    opacity: 1;
    overflow: hidden;
    transform: translateX(0);
    pointer-events: auto;
}

.personal-master-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(12, 26, 18, 0.42);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.28s ease;
    z-index: 1045;
}

.personal-master-backdrop.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.activos-detalle-header-main {
    min-width: 0;
}

.activos-detalle-header-actions {
    white-space: nowrap;
}

.btn-icono-mobile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0.35rem;
}

.btn-icono-mobile .bi {
    margin-right: 0 !important;
    font-size: 1.05rem;
    line-height: 1;
}

.btn-icono-mobile-text {
    display: none !important;
}

.personal-detalle-header-main {
    min-width: 0;
    flex: 1 1 auto;
}

.personal-detalle-header-title {
    min-width: 0;
    line-height: 1.15;
}

.personal-detalle-header-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex: 0 0 auto;
}

.personal-detalle-header-btn {
    border-radius: 0.75rem;
}

body.activos-drawer-open {
    overflow: hidden;
}

.personal-fila-clickable {
    cursor: pointer;
}

.personal-fila-clickable > td {
    transition: background-color 0.18s ease, box-shadow 0.18s ease;
}

.personal-fila-clickable:hover > td {
    background: #f6fbf7 !important;
}

.personal-fila-seleccionada > td {
    background: #e7f4ec !important;
    box-shadow: inset 0 -1px 0 #d7e8dd, inset 4px 0 0 #198754;
}

.personal-estado-badge {
    min-width: 88px;
    padding: 0.18rem 0.38rem;
    font-size: 0.74rem;
    font-weight: 600;
    text-align: center;
}

.personal-condicion-badge {
    min-width: 86px;
    padding: 0.2rem 0.4rem;
    font-size: 0.73rem;
    font-weight: 700;
    text-align: center;
}

.personal-valor-col {
    white-space: nowrap;
}

.personal-detalle-tabla td.personal-valor-col {
    font-size: 0.78rem;
    font-weight: 400;
}

.personal-detalle-tabla th.personal-valor-col,
.personal-detalle-tabla tfoot .personal-valor-col {
    font-size: 0.84rem;
    font-weight: 800;
}

.personal-detalle-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.personal-detalle-hero {
    background:
        radial-gradient(circle at top right, rgba(25, 135, 84, 0.12), transparent 28%),
        linear-gradient(180deg, #eff8f2 0%, #ffffff 100%);
    border-color: #d7eadc;
    border-radius: 28px;
}

.personal-detalle-perfil {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.personal-detalle-identidad {
    min-width: 0;
}

.personal-detalle-hero-card {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1rem 1rem 1.1rem;
    border: 1px solid #d9eade;
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 14px 30px rgba(16, 34, 23, 0.08);
}

.personal-detalle-kicker {
    display: block;
    color: #198754;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.18rem;
}

.personal-detalle-nombre {
    color: #102217;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1.06;
    letter-spacing: -0.02em;
}

.personal-detalle-badges .badge {
    font-size: 0.72rem;
    padding: 0.36rem 0.6rem;
}

.personal-detalle-rol-card {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-top: 0.9rem;
    padding: 0.88rem 0.95rem;
    border: 1px solid #e3ebe6;
    border-radius: 18px;
    background: linear-gradient(180deg, #f7faf8 0%, #f2f6f4 100%);
}

.personal-detalle-rol-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #edf7f1;
    color: #198754;
    box-shadow: inset 0 0 0 1px #d8eadf;
}

.personal-detalle-rol-card strong {
    color: #11261b;
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
}

.personal-detalle-contacto {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.8rem;
}

.personal-detalle-contacto-item {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: #234434;
    font-size: 0.83rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.personal-detalle-contacto-item .bi {
    color: #198754;
    font-size: 0.88rem;
    line-height: 1;
    margin-top: 0.18rem;
}

.personal-foto-shell {
    flex: 0 0 92px;
    width: 92px;
    height: 92px;
    border: 1px solid #d8e9de;
    border-radius: 12px;
    overflow: hidden;
    background: #f6fbf7;
    box-shadow: 0 10px 22px rgba(16, 34, 23, 0.06);
}

.personal-foto {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #f6fbf7;
}

.personal-detalle-resumen {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    min-width: min(100%, 420px);
    padding: 1rem;
    border: 1px solid #d9eade;
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 14px 30px rgba(16, 34, 23, 0.08);
}

.personal-detalle-resumen div,
.personal-activos-total,
.personal-acta-grid div,
.personal-acta-nota {
    padding: 0.75rem;
    border: 1px solid #d4e8da;
    border-radius: 8px;
    background: #f9fcfa;
}

.personal-detalle-resumen span,
.personal-activos-total span,
.personal-acta-grid span,
.personal-acta-nota span {
    display: block;
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.personal-detalle-resumen strong,
.personal-activos-total strong,
.personal-acta-grid strong {
    display: block;
    color: #102217;
    font-size: 1.08rem;
    line-height: 1.15;
}

.personal-detalle-kpi {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-height: 118px;
    border: 1px solid #d7e7dc !important;
    border-radius: 22px !important;
    background: #ffffff !important;
    box-shadow: 0 12px 26px rgba(16, 34, 23, 0.06);
}

.personal-detalle-kpi-copy {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.personal-detalle-kpi-copy span {
    color: #173127;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.personal-detalle-kpi-copy strong {
    font-size: 1.42rem;
    line-height: 0.92;
}

.personal-detalle-kpi small {
    margin-top: auto;
    color: #95a7a0;
    font-size: 0.66rem;
    font-weight: 800;
    align-self: flex-end;
    line-height: 1;
}

.personal-moneda {
    white-space: nowrap;
    word-break: keep-all;
}

.personal-detalle-tabs {
    display: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
    margin: 0 0 0.9rem;
    padding: 0.35rem;
    border: 1px solid #dcebe1;
    border-radius: 999px;
    background: #f0f6f2;
}

.personal-detalle-tab-btn {
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #61756a;
    font-size: 0.8rem;
    font-weight: 800;
    padding: 0.6rem 0.75rem;
    transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.personal-detalle-tab-btn.is-active {
    background: #198754;
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(25, 135, 84, 0.18);
}

.personal-detalle-tab-busqueda {
    display: none;
    align-items: center;
    gap: 0.55rem;
    padding: 0.72rem 0.9rem;
    border: 1px solid #dce7df;
    border-radius: 18px;
    background: #f8fbf9;
}

.personal-detalle-tab-busqueda .bi {
    color: #90a499;
    font-size: 0.95rem;
}

.personal-detalle-tab-busqueda .form-control {
    border: 0;
    background: transparent;
    padding: 0;
    box-shadow: none !important;
    font-size: 0.86rem;
}

.personal-detalle-tab-busqueda .form-control::placeholder {
    color: #90a499;
}

.personal-activos-bloques,
.personal-actas-lista {
    display: grid;
    gap: 1rem;
}

.personal-activos-bloque,
.personal-acta-card {
    padding: 0.9rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #ffffff;
}

.personal-activos-bloque-top,
.personal-acta-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.personal-activos-bloque-metricas {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.4rem;
}

.personal-acta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.personal-acta-nota p {
    margin: 0.3rem 0 0;
    color: #102217;
    overflow-wrap: anywhere;
    line-height: 1.45;
}

.personal-datos-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.personal-dato-card {
    padding: 0.85rem 0.95rem;
    border: 1px solid #dce8df;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 6px 16px rgba(16, 34, 23, 0.04);
    min-width: 0;
}

.personal-dato-card span {
    display: block;
    color: #65766c;
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.08rem;
}

.personal-dato-card strong {
    display: block;
    color: #102217;
    font-size: 0.86rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.personal-dato-card-amplio {
    grid-column: 1 / -1;
}

.personal-detalle-seccion-titulo {
    color: #1e2f25;
    font-weight: 900;
}

.personal-detalle-tabla {
    table-layout: fixed;
}

.personal-detalle-tabla thead th {
    background: #102217;
    color: #f2f8f4;
    border-color: #173322;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.personal-detalle-tabla tfoot th {
    background: #eef8f1;
    border-top: 2px solid #198754;
    color: #102217;
}

.personal-categoria-grupo + .personal-categoria-grupo .personal-categoria-fila th {
    border-top: 2px solid #d8e9de;
}

.personal-categoria-fila th {
    background: #d6eadb;
    color: #0b1a12;
    border-color: #bfd8c7;
    font-size: 0.84rem;
    font-weight: 800;
    vertical-align: middle;
}

.personal-categoria-encabezado {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.personal-categoria-encabezado span:first-child {
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.personal-activo-detalle-trigger {
    cursor: pointer;
}

.personal-activo-detalle-trigger:hover {
    --bs-table-bg-state: #eef8f1;
}

.personal-activo-detalle-trigger:focus {
    outline: 2px solid #198754;
    outline-offset: -2px;
}

.personal-tabla-compuesta {
    display: grid;
    gap: 0.18rem;
}

.personal-tabla-compuesta strong {
    color: #102217;
    font-size: 0.83rem;
    line-height: 1.15;
}

.personal-tabla-compuesta small {
    color: #65766c;
    font-size: 0.72rem;
    line-height: 1.15;
}

.personal-activos-mobile,
.personal-licencias-mobile,
.personal-actas-mobile {
    display: none;
}

.personal-mobile-grupo,
.personal-mobile-simple-card {
    border: 1px solid #dce8df;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(16, 34, 23, 0.06);
    overflow: hidden;
}

.personal-mobile-grupo + .personal-mobile-grupo,
.personal-mobile-simple-card + .personal-mobile-simple-card {
    margin-top: 0.85rem;
}


.personal-mobile-grupo-head,
.personal-mobile-simple-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
    padding: 0.95rem 1rem;
    background: linear-gradient(180deg, #eff8f2 0%, #f9fcfa 100%);
    border-bottom: 1px solid #e2eee6;
}

.personal-mobile-grupo-copy,
.personal-mobile-simple-head {
    min-width: 0;
}

.personal-mobile-grupo-copy {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.personal-mobile-grupo-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    background: #eaf6ef;
    color: #147045;
    box-shadow: inset 0 0 0 1px #d8eadf;
    font-size: 1rem;
}

.personal-mobile-grupo-copy h4,
.personal-mobile-simple-head h4 {
    color: #102217;
    font-size: 0.96rem;
    font-weight: 900;
    line-height: 1.15;
}

.personal-mobile-grupo-copy small,
.personal-mobile-simple-head small,
.personal-mobile-grupo-total span,
.personal-mobile-simple-grid span,
.personal-mobile-activo-id {
    color: #708279;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.personal-mobile-grupo-total {
    text-align: right;
}

.personal-mobile-grupo-total strong,
.personal-mobile-simple-grid strong,
.personal-mobile-activo-side strong {
    color: #0f261b;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1.15;
}

.personal-mobile-grupo-items {
    display: grid;
}

.personal-mobile-activo-id-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
}

.personal-mobile-activo-chip {
    display: inline-flex;
    align-items: center;
    max-width: 46%;
    padding: 0.2rem 0.52rem;
    border-radius: 999px;
    background: #eef6f1;
    color: #557065;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.personal-mobile-activo {
    width: 100%;
    border: 0;
    border-top: 1px solid #edf4ef;
    background: #ffffff;
    text-align: left;
    padding: 0.9rem 1rem;
}

.personal-mobile-activo-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
    margin-top: 0.28rem;
}

.personal-mobile-activo-copy {
    min-width: 0;
    display: grid;
    gap: 0.16rem;
}

.personal-mobile-activo-copy strong {
    color: #102217;
    font-size: 0.96rem;
    font-weight: 900;
    line-height: 1.12;
}

.personal-mobile-activo-copy small {
    color: #5f7469;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
}

.personal-mobile-activo-copy span {
    color: #51665b;
    font-size: 0.75rem;
    font-weight: 700;
}

.personal-mobile-activo-side {
    display: grid;
    justify-items: end;
    gap: 0.35rem;
    min-width: 82px;
}

.personal-mobile-activo-side .bi {
    color: #9aaea4;
    font-size: 0.95rem;
}

.personal-mobile-simple-head {
    justify-content: flex-start;
}

.personal-mobile-simple-head > div {
    min-width: 0;
    flex: 1 1 auto;
}

.personal-mobile-simple-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
    padding: 0.95rem 1rem 1rem;
}

.personal-mobile-simple-grid-full {
    grid-column: 1 / -1;
}

.personal-mobile-simple-grid strong {
    display: block;
    margin-top: 0.12rem;
    overflow-wrap: anywhere;
}

.personal-mobile-head-badge,
.personal-mobile-head-indice {
    flex: 0 0 auto;
    align-self: flex-start;
}

.personal-mobile-head-indice {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    background: #eef6f1;
    color: #167246;
    font-size: 0.68rem;
    font-weight: 900;
    white-space: nowrap;
}

.personal-mobile-card-action .btn {
    width: 100%;
    border-radius: 999px;
    font-weight: 800;
}

.personal-activos-mobile-empty {
    padding: 0.95rem 1rem;
    border: 1px dashed #d3e5d9;
    border-radius: 18px;
    background: #f8fbf9;
    color: #60756a;
    font-size: 0.85rem;
    font-weight: 700;
}

.personal-acta-detalle-shell {
    display: grid;
    gap: 0.9rem;
}

.personal-acta-modal .modal-dialog {
    max-width: 1180px;
    margin-top: 2.5rem;
}

.personal-acta-modal .modal-content {
    border: 0;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 28px 70px rgba(16, 34, 23, 0.18);
}

.personal-acta-modal .modal-header {
    padding: 1rem 1.25rem;
    border-bottom-color: #d7eadc;
}

.personal-acta-modal-body {
    padding: 1rem;
    background:
        radial-gradient(circle at top right, rgba(45, 140, 85, 0.08), transparent 26%),
        linear-gradient(180deg, #f8fcf9 0%, #ffffff 100%);
}

.personal-detalle-loading {
    display: grid;
    gap: 0.75rem;
}

.personal-detalle-loading-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.personal-skeleton {
    display: block;
    width: 100%;
    border-radius: 10px;
    background: linear-gradient(90deg, #edf5ef 0%, #f8fcf9 48%, #edf5ef 100%);
    background-size: 200% 100%;
    animation: personal-skeleton-giro 1.2s ease-in-out infinite;
}

.personal-skeleton-titulo {
    height: 22px;
    max-width: 56%;
}

.personal-skeleton-linea {
    height: 12px;
}

.personal-skeleton-card {
    height: 88px;
}

@keyframes personal-skeleton-giro {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.personal-detalle-resumen-acta {
    grid-template-columns: repeat(3, minmax(118px, 1fr));
}

.personal-acta-detalle-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.personal-acta-nota .btn {
    border-radius: 999px;
    font-weight: 700;
}

.personal-acta-modal .mantenimiento-soporte-card {
    border-radius: 14px;
    border-color: #d7eadc;
    background: linear-gradient(180deg, #ffffff 0%, #f8fcf9 100%);
}

.personal-acta-modal .mantenimiento-activos-modal,
.personal-acta-modal .activo-detalle-card {
    border-radius: 16px;
}

.acta-detalle-shell {
    display: grid;
    gap: 1.1rem;
    font-family: inherit;
}

.acta-detalle-hero {
    display: grid;
    gap: 0.9rem;
}

.acta-detalle-title-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.acta-detalle-title {
    margin: 0;
    color: #102217;
    font-family: inherit;
    font-size: 1.8rem;
    line-height: 1.12;
    letter-spacing: -0.02em;
    font-weight: 700;
}

.acta-detalle-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: inherit;
    padding: 0.48rem 0.95rem;
    border: 1px solid #c7ead6;
    border-radius: 999px;
    background: #eef8f3;
    color: #073f29;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.acta-detalle-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.acta-detalle-meta-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: inherit;
    min-height: 36px;
    padding: 0.46rem 0.8rem;
    border: 1px solid #dce8e2;
    border-radius: 12px;
    background: #fff;
    color: #1f2937;
    font-size: 0.84rem;
    font-weight: 600;
}

.acta-detalle-section-card {
    padding: 1.15rem 1.2rem;
    border: 1px solid #dfe7e3;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.045);
}

.acta-detalle-general-card {
    padding-top: 1.1rem;
}

.acta-detalle-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    margin-bottom: 1rem;
}

.acta-detalle-section-title {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #102217;
    font-family: inherit;
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: normal;
    line-height: 1.35;
}

.acta-detalle-icon-shell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 12px;
}

.acta-detalle-icon-shell i {
    font-size: 0.98rem;
    line-height: 1;
}

.acta-detalle-icon-green {
    background: #eef8f3;
    color: #08703f;
}

.acta-detalle-icon-blue {
    background: #eff6ff;
    color: #2563eb;
}

.acta-detalle-icon-amber {
    background: #fff7ed;
    color: #d97706;
}

.acta-detalle-icon-violet {
    background: #f5f3ff;
    color: #7c3aed;
}

.acta-detalle-general-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem 1.6rem;
    align-items: start;
}

.acta-detalle-general-stack {
    display: grid;
    gap: 1rem;
}

.acta-detalle-general-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 0.8rem;
    align-items: center;
    min-width: 0;
}

.acta-detalle-general-item-note {
    align-items: start;
}

.acta-detalle-label {
    color: #64748b;
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.18rem;
}

.acta-detalle-value {
    color: #111827;
    font-family: inherit;
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.acta-detalle-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(290px, 0.85fr);
    gap: 1.2rem;
}

.acta-detalle-main-col,
.acta-detalle-side-col {
    min-width: 0;
}

.acta-detalle-mini-badge {
    display: inline-flex;
    align-items: center;
    font-family: inherit;
    border: 1px solid #c7ead6;
    background: #eef8f3;
    color: #073f29;
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
    white-space: nowrap;
}

.acta-detalle-table thead th {
    background: linear-gradient(90deg, #063f27, #075936);
}

.acta-detalle-table tbody td:first-child {
    color: #08703f;
    font-weight: 900;
}

.acta-detalle-side-col {
    display: grid;
    align-items: start;
}

.acta-detalle-support-card {
    border: 1px solid #e5e7eb;
    border-radius: 17px;
    padding: 0.95rem;
    background: #fff;
    margin-bottom: 0.9rem;
}

.acta-detalle-support-card:last-child {
    margin-bottom: 0;
}

.acta-detalle-support-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 0.75rem;
}

.acta-detalle-support-title {
    display: flex;
    align-items: center;
    gap: 0.58rem;
    color: #111827;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
}

.acta-detalle-mini-icon {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
}

.acta-detalle-mini-icon i {
    font-size: 0.82rem;
    line-height: 1;
}

.acta-detalle-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.acta-detalle-state-box {
    min-height: 94px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 1rem;
}

.acta-detalle-state-ok {
    border: 1.5px dashed #abd9bd;
    background: #f7fcf9;
    color: #073f29;
}

.acta-detalle-state-empty {
    border: 1.5px dashed #d9ccff;
    background: #fbfaff;
    color: #4b5563;
    min-height: 60px;
}

.acta-detalle-state-box strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 0.2rem;
}

.acta-detalle-state-box span {
    display: block;
    color: inherit;
    font-size: 0.88rem;
}

@media (max-width: 991.98px) {
    .acta-detalle-general-grid,
    .acta-detalle-main-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .acta-detalle-title {
        font-size: 1.45rem;
    }

    .acta-detalle-section-head,
    .acta-detalle-support-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .acta-detalle-actions,
    .acta-detalle-actions .btn {
        width: 100%;
    }

    .acta-detalle-btn-preview {
        width: 100%;
    }
}

.activos-detalle-activo {
    box-shadow: 0 0 0 0.18rem rgba(25, 135, 84, 0.25);
}

.activos-estado-badge {
    min-width: 76px;
    padding: 0.36rem 0.5rem;
    border: 1px solid transparent;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
    font-weight: 700;
}

.activos-estado-badge.text-bg-success {
    background: #dff3e5 !important;
    border-color: #b8dfc5;
    color: #0f5132 !important;
}

.activos-estado-badge.text-bg-warning {
    background: #fff1c9 !important;
    border-color: #f0d98a;
    color: #7a4d00 !important;
}

.activos-estado-badge.text-bg-danger {
    background: #f8d7da !important;
    border-color: #e9b4bb;
    color: #842029 !important;
}

.activos-estado-badge.text-bg-secondary {
    background: #e9ecef !important;
    border-color: #d5d9dd;
    color: #495057 !important;
}

.activos-alertas-lista,
.activo-detalle-alertas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem;
}

.activos-alerta-badge,
.activo-detalle-alertas .badge {
    max-width: 100%;
    padding: 0.32rem 0.48rem;
    font-size: 0.7rem;
    white-space: normal;
}

.activos-offcanvas {
    width: min(620px, 97vw);
}

.activos-offcanvas-header {
    background: #198754;
    color: #fff;
}

.activos-offcanvas-header .offcanvas-title {
    color: #fff;
}

.activos-offcanvas-header .btn-close {
    filter: invert(1) grayscale(1) brightness(200%);
}

.activos-btn-accion {
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#tablaActivos_wrapper .dataTables_info {
    font-size: 0.79rem;
    color: #506058;
}

#tablaPersonal_wrapper .dataTables_info {
    font-size: 0.79rem;
    color: #506058;
}

#tablaActivos_wrapper,
#tablaActivos,
#tablaPersonal_wrapper,
#tablaPersonal {
    width: 100% !important;
}

#tablaActivos_wrapper .row,
#tablaPersonal_wrapper .row {
    margin-left: 0;
    margin-right: 0;
}

#tablaActivos_wrapper .pagination,
#tablaPersonal_wrapper .pagination {
    margin-bottom: 0;
    gap: 0.2rem;
}

#tablaActivos_wrapper .page-link,
#tablaPersonal_wrapper .page-link {
    border-radius: 6px;
    color: #198754;
}

#tablaActivos_wrapper .page-item.active .page-link,
#tablaPersonal_wrapper .page-item.active .page-link {
    background-color: #198754;
    border-color: #198754;
    color: #ffffff;
}

#tablaActivos_processing {
    border: 1px solid #cfe7d6;
    border-radius: 8px;
    color: #0f5132;
    box-shadow: 0 10px 30px rgba(16, 34, 23, 0.12);
}

.detalle-linea {
    display: grid;
    grid-template-columns: minmax(108px, 42%) 1fr;
    gap: 8px;
    margin-bottom: 3px;
    padding: 4px 6px;
    background: #f4f6f9;
    border: 1px solid #dce3ee;
    border-radius: 4px;
    line-height: 1.3;
}

.detalle-linea strong {
    font-weight: 700;
}

.activos-detalle-tabla {
    table-layout: fixed;
    width: 100%;
    font-size: 0.86rem;
    line-height: 1.35;
}

.activos-detalle-tabla th {
    width: 34%;
    font-weight: 700;
    background: #f4f6f9;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.activos-detalle-tabla td {
    background: #ffffff;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.activos-offcanvas .offcanvas-body {
    padding: 0.85rem;
}

.activos-detalle-imagen-principal {
    border: 1px solid #d8e9de;
    border-radius: 8px;
    overflow: hidden;
    background: #f6fbf7;
}

.activos-imagen-carousel {
    background: #0f2418;
}

.activos-imagen-carousel .carousel-inner,
.activos-imagen-carousel .carousel-item,
.activos-carousel-link {
    height: 260px;
}

.activos-carousel-link {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0f2418;
}

.activos-imagen-carousel img {
    width: 100%;
    height: 260px;
    object-fit: contain;
    background: #0f2418;
}

.activos-imagen-carousel .activos-carousel-img-pendiente {
    background: #f6fbf7;
    padding: 1rem;
}

.activos-imagen-carousel .carousel-control-prev,
.activos-imagen-carousel .carousel-control-next {
    width: 14%;
}

.activos-imagen-carousel .carousel-control-prev-icon,
.activos-imagen-carousel .carousel-control-next-icon {
    width: 1.6rem;
    height: 1.6rem;
    background-color: rgba(25, 135, 84, 0.85);
    border-radius: 50%;
    background-size: 58%;
}

.activos-imagen-carousel .carousel-indicators {
    margin-bottom: 0.35rem;
}

.activos-imagen-carousel .carousel-indicators [data-bs-target] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #d6f2df;
}

.activos-carousel-contador {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 0.18rem 0.45rem;
    border-radius: 6px;
    background: rgba(15, 36, 24, 0.78);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
}

.activos-sin-imagen {
    display: grid;
    gap: 0.45rem;
    min-height: 130px;
    place-items: center;
    border: 1px dashed #b7d7c1;
    border-radius: 8px;
    background: #f6fbf7;
    padding: 0.75rem;
    text-align: center;
}

.activos-sin-imagen img {
    width: min(100%, 260px);
    height: 160px;
    object-fit: contain;
}

.activos-imagen-placeholder-text {
    display: block;
    color: #486555;
    font-size: 0.84rem;
    font-weight: 600;
}

@media (max-width: 991px) {
    .panel-hero,
    .indicadores-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .indicadores-hero-contenido {
        align-items: flex-start;
        justify-content: space-between;
    }

    .indicadores-filtro {
        width: 100%;
        min-width: 0;
    }

    .indicador-meses {
        grid-template-columns: repeat(6, minmax(46px, 1fr));
    }

    .indicador-mes-linea {
        grid-template-columns: 1fr;
    }

    .indicador-consolidado-resumen {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .indicador-total-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activos-offcanvas {
        width: min(540px, 98vw);
    }

    .activos-col-detalle {
        width: 58px;
    }

    .detalle-linea {
        grid-template-columns: 1fr;
    }

    .mantenimiento-modal-grid {
        grid-template-columns: 1fr;
    }

    .mantenimiento-modal-soportes {
        position: static;
    }

    .mantenimiento-pdf-preview {
        height: 280px;
    }

    .acta-pdf-modal-frame {
        min-height: 84vh;
    }

    .mantenimiento-activos-tabla {
        min-width: 620px;
    }

    .personal-master-detail {
        flex-direction: column;
    }

    .personal-toolbar-compact,
    .personal-toolbar-campos,
    .personal-toolbar-meta {
        align-items: stretch;
        flex-direction: column;
    }

    .personal-toolbar-compact {
        justify-content: flex-start;
        gap: 0.65rem;
    }

    .personal-toolbar-campos,
    .personal-toolbar-meta {
        flex: 0 0 auto;
        width: 100%;
    }

    .personal-toolbar-select,
    .personal-toolbar-cantidad,
    .personal-toolbar-campos .form-control {
        width: 100%;
        min-width: 0;
    }

    #tablaBusqueda,
    #tablaPersonalBusqueda,
    #tablaActasBusqueda,
    #tablaMantenimientosBusqueda {
        flex: 0 0 auto;
        align-self: stretch;
        width: 100%;
        height: auto;
        max-height: 2.15rem;
        min-height: calc(1.5em + 0.5rem + 2px);
        padding: 0.22rem 0.6rem;
        font-size: 0.84rem;
    }

    .personal-master-lista,
    .personal-master-detail.personal-master-detail-detalle-abierto .personal-master-lista,
    .personal-master-detail.personal-master-detail-detalle-abierto .personal-master-detalle {
        flex-basis: 100%;
        max-width: 100%;
    }

    .personal-master-panel {
        max-height: none;
    }

    .personal-master-detalle {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(100vw, 540px);
        max-width: 100%;
        max-height: 100dvh;
        height: 100dvh;
        margin: 0;
        border-radius: 1.1rem 0 0 1.1rem;
        box-shadow: -24px 0 48px rgba(8, 25, 14, 0.22);
        opacity: 1;
        overflow: hidden;
        transform: translateX(100%);
        pointer-events: none;
        z-index: 1050;
    }

    .personal-master-detail.personal-master-detail-detalle-abierto .personal-master-detalle {
        max-width: 100%;
        max-height: 100dvh;
        transform: translateX(0);
        pointer-events: auto;
    }

    .personal-master-detalle .card-header {
        position: sticky;
        top: 0;
        z-index: 2;
    }

    .personal-detalle-header {
        align-items: flex-start !important;
        flex-wrap: wrap;
        row-gap: 0.55rem;
    }

    .personal-detalle-header-main {
        flex: 1 1 calc(100% - 5.5rem);
        max-width: calc(100% - 5.5rem);
    }

    .personal-detalle-header-title {
        white-space: normal !important;
        overflow: visible;
        text-overflow: initial;
        font-size: 0.96rem;
    }

    .personal-detalle-header-actions {
        flex: 0 0 auto;
        margin-left: auto;
    }

    .activos-detalle-header {
        align-items: flex-start !important;
        flex-wrap: wrap;
    }

    .activos-detalle-header-main {
        flex: 1 1 100%;
        width: 100%;
    }

    .activos-detalle-header-actions {
        flex: 1 1 100%;
        width: 100%;
        justify-content: flex-end;
    }

    .btn-icono-mobile {
        min-width: 2.5rem;
        width: 2.5rem;
        height: 2.5rem;
    }

    #detalleActivoPanelLabel {
        white-space: normal;
        overflow: visible;
        text-overflow: initial;
        line-height: 1.2;
    }

    .personal-master-detalle .card-body {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    .personal-lista-item {
        flex-direction: column;
    }

    .activo-lista-item {
        flex-direction: column;
    }

    .activo-lista-lateral {
        justify-items: start;
        min-width: 0;
    }

    .personal-lista-lateral {
        justify-items: start;
        min-width: 0;
    }

    .personal-detalle-resumen,
    .personal-acta-grid,
    .personal-datos-grid,
    .personal-detalle-loading-grid {
        grid-template-columns: 1fr;
    }

    .personal-detalle-top,
    .personal-detalle-perfil {
        flex-direction: column;
        align-items: flex-start;
    }

    .personal-detalle-hero {
        padding: 1rem;
        border-radius: 22px;
    }

    .personal-detalle-hero-card {
        width: 100%;
        padding: 0.95rem 0.95rem 1rem;
        border-radius: 24px;
    }

    .personal-foto-shell {
        flex-basis: 72px;
        width: 72px;
        height: 72px;
        border-radius: 18px;
    }

    .personal-detalle-nombre {
        font-size: 1.12rem;
        line-height: 1.08;
    }

    .personal-detalle-rol-card {
        margin-top: 0.78rem;
        padding: 0.8rem 0.85rem;
        border-radius: 16px;
    }

    .personal-detalle-rol-card strong {
        font-size: 0.86rem;
    }

    .personal-detalle-contacto {
        width: 100%;
        margin-top: 0.7rem;
    }

    .personal-detalle-contacto-item {
        font-size: 0.8rem;
    }

    .personal-detalle-resumen {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        min-width: 0;
        padding: 0.85rem;
        border-radius: 22px;
    }

    .personal-detalle-kpi {
        gap: 0.28rem;
        padding: 0.82rem 0.82rem 0.78rem;
        border-radius: 20px;
        min-height: 108px;
    }

    .personal-detalle-kpi-copy span {
        font-size: 0.68rem;
        letter-spacing: 0.04em;
    }

    .personal-detalle-kpi-copy strong {
        font-size: 1.22rem;
    }

    .personal-detalle-tabs {
        display: grid;
        position: sticky;
        top: 0;
        z-index: 2;
        margin-top: -0.1rem;
    }

    .personal-detalle-tab-busqueda,
    .personal-activos-mobile,
    .personal-licencias-mobile,
    .personal-actas-mobile {
        display: block;
    }

    .personal-detalle-panel {
        display: none;
    }

    .personal-detalle-panel.is-active {
        display: block;
    }
}

@media (max-width: 575px) {
    .personal-detalle-header {
        padding-top: 0.85rem;
        padding-bottom: 0.85rem;
    }

    .personal-detalle-header-main {
        flex: 1 1 calc(100% - 5.25rem);
        max-width: calc(100% - 5.25rem);
    }

    .personal-detalle-header-title {
        font-size: 0.9rem;
    }

    .personal-detalle-header-actions {
        gap: 0.35rem;
    }

    .personal-detalle-header-btn.btn-icono-mobile {
        min-width: 2.25rem;
        width: 2.25rem;
        height: 2.25rem;
        padding: 0.3rem;
    }

    .personal-detalle-header-btn .bi {
        font-size: 0.95rem;
    }

    .personal-detalle-badges {
        gap: 0.35rem !important;
    }

    .personal-detalle-badges .badge {
        font-size: 0.66rem;
        padding: 0.3rem 0.52rem;
    }

    .personal-detalle-resumen {
        gap: 0.55rem;
        padding: 0.75rem;
        border-radius: 20px;
    }

    .personal-detalle-kpi {
        min-height: 102px;
    }

    .personal-mobile-grupo-head,
    .personal-mobile-simple-head,
    .personal-mobile-activo,
    .personal-mobile-simple-grid {
        padding-left: 0.85rem;
        padding-right: 0.85rem;
    }

    .personal-mobile-grupo-copy h4,
    .personal-mobile-simple-head h4,
    .personal-mobile-activo-copy strong {
        font-size: 0.9rem;
    }

    .personal-mobile-grupo-total strong,
    .personal-mobile-simple-grid strong,
    .personal-mobile-activo-side strong {
        font-size: 0.88rem;
    }


    .personal-mobile-activo-main {
        gap: 0.65rem;
    }

    .personal-mobile-activo-side {
        min-width: 74px;
    }

    .personal-datos-grid {
        grid-template-columns: 1fr;
    }

    .personal-dato-card {
        padding: 0.78rem 0.82rem;
        border-radius: 14px;
    }

    .personal-mobile-simple-grid {
        grid-template-columns: 1fr;
        gap: 0.6rem;
    }

    .personal-mobile-simple-grid-full {
        grid-column: auto;
    }

    .personal-mobile-head-badge,
    .personal-mobile-head-indice {
        margin-left: auto;
    }

    .indicador-meses {
        grid-template-columns: repeat(3, minmax(54px, 1fr));
    }

    .indicadores-hero-contenido {
        flex-direction: column;
    }

    .indicadores-filtro {
        grid-template-columns: 1fr;
    }

    .indicador-consolidado-top,
    .indicador-consolidado-titulo {
        flex-direction: column;
    }

    .indicador-consolidado-cobertura {
        width: 100%;
    }

    .indicador-total-strip {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 1280px) {
    .activos-main {
        padding-left: 0.5rem !important;
        padding-right: 0.75rem !important;
    }

    .activos-listado-card .card-body {
        padding: 0.65rem;
    }

    body.activos-detalle-abierto .activos-main {
        width: calc(100% - 620px);
        max-width: calc(100% - 620px);
    }
}

.insumos-enfoque-nota {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(25, 135, 84, 0.18);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(25, 135, 84, 0.08), rgba(255, 255, 255, 0.92));
    color: #356450;
    font-size: 0.93rem;
}

.insumos-enfoque-nota i {
    font-size: 1rem;
    color: #198754;
}

.insumos-resumen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.9rem;
}

.insumos-historial-tabla th,
.insumos-historial-tabla td {
    vertical-align: middle;
}

.insumos-automatico-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.9rem;
}

.insumos-automatico-card {
    padding: 0.65rem 0.75rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #f9fcfa;
}

.insumos-automatico-card strong {
    font-size: 0.95rem;
    line-height: 1.1;
}

.insumos-automatico-card small {
    display: block;
    color: #65766c;
    font-size: 0.72rem;
    margin-top: 0.14rem;
}

.insumos-automatico-bloque {
    padding: 0.85rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #ffffff;
}

.insumos-automatico-tabla th,
.insumos-automatico-tabla td {
    vertical-align: middle;
}

.insumos-automatico-fila-compacta td {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.83rem;
}

.insumos-automatico-tabla thead th {
    background: #102217;
    color: #f2f8f4;
    border-color: #173322;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.insumo-color-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.22rem 0.55rem;
    border: 1px solid #d3e1d8;
    border-radius: 999px;
    background: #f8fbf9;
    font-size: 0.76rem;
    font-weight: 600;
    color: #173322;
}

.insumo-color-chip-punto {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    flex: 0 0 10px;
    background: currentColor;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}

.insumo-color-chip-negro {
    color: #111111;
    background: #f1f1f1;
    border-color: #d7d7d7;
}

.insumo-color-chip-cian {
    color: #0a8fb5;
    background: #effafe;
    border-color: #c7edf7;
}

.insumo-color-chip-magenta {
    color: #b12f7b;
    background: #fdf1f8;
    border-color: #f4cbe2;
}

.insumo-color-chip-amarillo {
    color: #8a6a00;
    background: #fff9e6;
    border-color: #f2e2a3;
}

.insumo-color-chip-neutro {
    color: #5a6b61;
}

.insumos-chart-vertical {
    display: flex;
    align-items: flex-end;
    gap: 0.45rem;
    min-height: 145px;
    padding: 0.15rem 0 0.05rem;
    overflow-x: auto;
}

.insumos-chart-columna {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 0.24rem;
    min-width: 36px;
    flex: 0 0 36px;
}

.insumos-chart-columna-valor {
    font-size: 0.62rem;
    line-height: 1.1;
    color: #365542;
    text-align: center;
}

.insumos-chart-columna-track {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100%;
    height: 92px;
    padding: 0.16rem;
    border-radius: 10px;
    background: #e7f0ea;
}

.insumos-chart-columna-bar {
    width: 100%;
    border-radius: 10px 10px 4px 4px;
    background: linear-gradient(180deg, #5cbc88 0%, #198754 100%);
}

.insumos-chart-columna-bar-vacio {
    background: linear-gradient(180deg, #b5c5ba 0%, #8ca097 100%);
}

.insumos-chart-columna-label {
    font-size: 0.6rem;
    line-height: 1.15;
    color: #5c6e63;
    text-align: center;
}

.activos-indicador-nota {
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f6fbf7 100%);
}

.activos-analitica-card {
    border-radius: 20px;
}

.activos-analitica-card .card-body {
    display: grid;
    gap: 1rem;
    height: 100%;
    padding: 1.05rem 1.1rem;
}

.activos-indicador-mini-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.activos-indicador-mini {
    display: grid;
    gap: 0.2rem;
    padding: 0.8rem 0.85rem;
    border: 1px solid #e3ece6;
    border-radius: 16px;
    background: #f8fbf9;
}

.activos-indicador-mini span {
    color: #5e7266;
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.activos-indicador-mini strong {
    color: #153126;
    font-size: 1.35rem;
    line-height: 1;
}

.activos-indicador-mini small {
    color: #74877b;
    font-size: 0.73rem;
    line-height: 1.2;
}

.activos-indicador-bloque {
    display: grid;
    gap: 0.75rem;
}

.activos-indicador-tabs {
    gap: 0.45rem;
}

.activos-indicador-tabs .nav-link {
    border-radius: 999px;
    padding: 0.38rem 0.8rem;
    color: #4f6659;
    background: #f3f7f4;
    border: 1px solid #d9e6dd;
    font-size: 0.78rem;
    font-weight: 700;
}

.activos-indicador-tabs .nav-link.active,
.activos-indicador-tabs .show > .nav-link {
    color: #ffffff;
    background: #198754;
    border-color: #198754;
}

.activos-indicador-tab-content {
    display: grid;
}

.activos-indicador-tab-content .tab-pane {
    padding-top: 0.15rem;
}

.activos-indicador-chart {
    display: grid;
    gap: 0.68rem;
}

.activos-indicador-chart-row {
    display: grid;
    gap: 0.28rem;
}

.activos-indicador-chart-meta,
.activos-indicador-chart-legend {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}

.activos-indicador-chart-meta span {
    min-width: 0;
    color: #4d6658;
    font-size: 0.78rem;
    line-height: 1.2;
    font-weight: 600;
}

.activos-indicador-chart-meta strong {
    color: #173127;
    font-size: 0.82rem;
    white-space: nowrap;
}

.activos-indicador-chart-legend small {
    color: #7a8f82;
    font-size: 0.69rem;
}

.activos-indicador-chart-legend-wrap {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.25rem 0.7rem;
}

.activos-indicador-chart-track {
    display: flex;
    align-items: stretch;
    overflow: hidden;
    width: 100%;
    height: 11px;
    border-radius: 999px;
    background: #e7f0ea;
}

.activos-indicador-chart-track-stacked {
    gap: 0;
}

.activos-indicador-chart-bar {
    display: block;
    height: 100%;
    border-radius: 999px;
}

.activos-indicador-chart-bar-primary {
    background: linear-gradient(180deg, #46a46f 0%, #198754 100%);
}

.activos-indicador-chart-bar-secondary {
    background: linear-gradient(180deg, #5f90de 0%, #2f80ed 100%);
}

.activos-indicador-chart-bar-warning {
    background: linear-gradient(180deg, #f4bd63 0%, #d97706 100%);
}

.activos-indicador-chart-bar-danger {
    background: linear-gradient(180deg, #ef7c7c 0%, #dc3545 100%);
}

.activos-indicador-chart-bar-success {
    background: linear-gradient(180deg, #7fd0a0 0%, #20b455 100%);
}

.activos-indicador-chart-bar-info {
    background: linear-gradient(180deg, #6aa8f2 0%, #2f80ed 100%);
}

.mantenimiento-filtros-bar {
    border-radius: 20px;
    background: linear-gradient(135deg, #ffffff 0%, #f5fcf7 100%);
}

.mantenimiento-filtros-form {
    display: grid;
    grid-template-columns: minmax(240px, 1.1fr) minmax(320px, 1.4fr);
    gap: 1rem;
    align-items: end;
}

.mantenimiento-filtros-copy {
    display: grid;
    gap: 0.35rem;
}

.mantenimiento-filtros-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr)) auto;
    gap: 0.75rem;
    align-items: end;
}

.mantenimiento-filtro-campo {
    display: grid;
    gap: 0.35rem;
}

.mantenimiento-filtro-campo span {
    color: #5e7266;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.mantenimiento-filtros-acciones {
    display: grid;
    gap: 0.35rem;
    justify-items: end;
}

.mantenimiento-panel-wrapper {
    position: relative;
    transition: opacity 0.18s ease;
}

.mantenimiento-panel-wrapper.mantenimiento-panel-loading {
    opacity: 0.58;
    pointer-events: none;
}

.mantenimiento-resumen-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.mantenimiento-resumen-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.62rem;
    border: 1px solid #dbe8df;
    border-radius: 999px;
    background: #f8fbf9;
    color: #486555;
    font-size: 0.74rem;
    font-weight: 700;
}

.mantenimiento-doble-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.mantenimiento-doble-panel-card {
    display: grid;
    gap: 0.7rem;
    min-height: 0;
}

.mantenimiento-chart-scroll {
    max-height: none;
    overflow: visible;
    padding-right: 0;
}

.mantenimiento-chart-scroll-alt {
    max-height: none;
}

.mantenimiento-mensual-fila {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 54px;
    align-items: center;
    gap: 0.7rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid #edf3ee;
}

.mantenimiento-mensual-fila:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.mantenimiento-mensual-mes {
    display: grid;
    place-items: center;
    min-height: 38px;
    border: 1px solid #e1ece5;
    border-radius: 12px;
    background: #f8fbf9;
}

.mantenimiento-mensual-mes span {
    color: #173127;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.mantenimiento-mensual-cuerpo {
    display: grid;
    gap: 0.34rem;
    min-width: 0;
}

.mantenimiento-mensual-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.mantenimiento-mensual-top strong {
    color: #173127;
    font-size: 0.78rem;
    line-height: 1.1;
    white-space: nowrap;
}

.mantenimiento-mensual-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.28rem;
}

.mantenimiento-mensual-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.14rem 0.42rem;
    border: 1px solid #dce8df;
    border-radius: 999px;
    background: #f8fbf9;
    color: #60756a;
    font-size: 0.64rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.mantenimiento-mensual-compare {
    display: grid;
    gap: 0.35rem;
}

.mantenimiento-mensual-bar {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.55rem;
}

.mantenimiento-mensual-label {
    color: #60756a;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.mantenimiento-mensual-bar strong {
    color: #173127;
    font-size: 0.76rem;
    line-height: 1;
    white-space: nowrap;
}

.mantenimiento-mensual-track {
    height: 9px;
}

.mantenimiento-mensual-track-activos {
    background: #ebf2fb;
}

.mantenimiento-mensual-corte {
    display: grid;
    justify-items: end;
    gap: 0.08rem;
}

.mantenimiento-mensual-corte strong {
    color: #173127;
    font-size: 0.82rem;
    line-height: 1;
}

.mantenimiento-mensual-corte small {
    color: #70857a;
    font-size: 0.63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.mantenimiento-gauge-panel {
    display: grid;
    gap: 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid #dfeae3;
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfdfb 0%, #f5faf6 100%);
}

.mantenimiento-gauge-shell {
    display: flex;
    justify-content: center;
}

.mantenimiento-gauge-svg {
    display: block;
    width: min(100%, 360px);
    height: auto;
    overflow: visible;
}

.mantenimiento-gauge-track,
.mantenimiento-gauge-segment {
    fill: none;
    stroke-linecap: butt;
    stroke-width: 34;
}

.mantenimiento-gauge-track {
    stroke: #e4ece7;
}

.mantenimiento-gauge-segment-danger {
    stroke: #dc3545;
}

.mantenimiento-gauge-segment-warning {
    stroke: #f59f00;
}

.mantenimiento-gauge-segment-success {
    stroke: #198754;
}

.mantenimiento-gauge-pointer {
    stroke: #173127;
    stroke-width: 5;
    stroke-linecap: round;
}

.mantenimiento-gauge-pointer-cap {
    fill: #102217;
    stroke: #f3f8f4;
    stroke-width: 6;
}

.mantenimiento-gauge-meta-marker {
    stroke: #dc3545;
    stroke-width: 4;
    stroke-linecap: round;
}

.mantenimiento-gauge-label-base,
.mantenimiento-gauge-label-meta,
.mantenimiento-gauge-value,
.mantenimiento-gauge-status {
    font-family: inherit;
    text-anchor: middle;
}

.mantenimiento-gauge-label-base,
.mantenimiento-gauge-label-meta {
    font-size: 14px;
    font-weight: 700;
    dominant-baseline: middle;
}

.mantenimiento-gauge-label-base {
    fill: #5f756a;
}

.mantenimiento-gauge-label-meta {
    fill: #dc3545;
}

.mantenimiento-gauge-value {
    font-size: 26px;
    font-weight: 800;
    dominant-baseline: middle;
}

.mantenimiento-gauge-status {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    dominant-baseline: middle;
}

.mantenimiento-gauge-copy {
    display: grid;
    gap: 0.55rem;
    padding-top: 0.25rem;
}

.mantenimiento-gauge-copy strong {
    color: #173127;
    font-size: 0.95rem;
}

.mantenimiento-gauge-copy p {
    color: #61756a;
    font-size: 0.82rem;
    line-height: 1.35;
}

.mantenimiento-gauge-scale {
    display: none;
}

.mantenimiento-gauge-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
}

.mantenimiento-gauge-pill {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
}

.mantenimiento-gauge-pill-bajo {
    background: #fbe6e8;
    border-color: #efc4ca;
    color: #9b2230;
}

.mantenimiento-gauge-pill-medio {
    background: #fff4dd;
    border-color: #f3ddb0;
    color: #8a5b00;
}

.mantenimiento-gauge-pill-alto {
    background: #e5f5ea;
    border-color: #c5e2cf;
    color: #136c43;
}

.mantenimiento-gauge-pill-meta {
    background: #e4efff;
    border-color: #bfd7ff;
    color: #0d57bd;
}

.mantenimiento-gauge-bajo .mantenimiento-gauge-value,
.mantenimiento-gauge-bajo .mantenimiento-gauge-status {
    fill: #b02a37;
}

.mantenimiento-gauge-medio .mantenimiento-gauge-value,
.mantenimiento-gauge-medio .mantenimiento-gauge-status {
    fill: #a05a00;
}

.mantenimiento-gauge-alto .mantenimiento-gauge-value,
.mantenimiento-gauge-alto .mantenimiento-gauge-status {
    fill: #146c43;
}

.mantenimiento-gauge-meta .mantenimiento-gauge-value,
.mantenimiento-gauge-meta .mantenimiento-gauge-status {
    fill: #0d57bd;
}

@media (max-width: 991.98px) {
    .indicadores-centro-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activos-indicador-mini-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mantenimiento-filtros-form {
        grid-template-columns: 1fr;
    }

    .mantenimiento-filtros-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mantenimiento-filtros-acciones {
        justify-items: stretch;
        grid-column: 1 / -1;
    }

    .admin-hub-card-head,
    .admin-hub-card-head-compact {
        min-height: 0;
    }

    .admin-hub-security-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .indicadores-centro-grid {
        grid-template-columns: 1fr;
    }

    .indicadores-centro-card-metrics {
        grid-template-columns: 1fr;
    }

    .activos-indicador-mini-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .mantenimiento-filtros-grid {
        grid-template-columns: 1fr;
    }

    .mantenimiento-gauge-svg {
        width: min(100%, 320px);
    }

    .mantenimiento-mensual-fila {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .mantenimiento-mensual-corte {
        grid-column: 2;
        justify-items: start;
    }

    .mantenimiento-mensual-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .mantenimiento-mensual-chips {
        justify-content: flex-start;
    }

    .admin-hub-card-head {
        flex-direction: column;
    }

    .admin-hub-card-action {
        width: 100%;
        justify-content: center;
    }
}

.admin-automatizacion-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.85fr);
    gap: 1rem;
    align-items: start;
}

.admin-automatizacion-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: 1rem;
}

.admin-automatizacion-bloque {
    padding: 1rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(16, 34, 23, 0.05);
}

.admin-automatizacion-acciones {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.admin-automatizacion-acciones .btn {
    min-height: 46px;
    padding: 0.68rem 1rem;
    border-radius: 14px;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(16, 34, 23, 0.06);
}

.admin-automatizacion-acciones .btn-outline-primary,
.admin-automatizacion-acciones .btn-outline-success,
.admin-automatizacion-acciones .btn-outline-danger,
.admin-automatizacion-acciones .btn-outline-warning,
.admin-automatizacion-acciones .btn-outline-secondary {
    background: #ffffff;
}

.admin-automatizacion-badges {
    display: grid;
    gap: 0.4rem;
    justify-items: end;
}

.admin-automatizacion-resumen {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 0.75rem;
}

.admin-automatizacion-resumen div,
.admin-automatizacion-mensaje,
.admin-automatizacion-timeline-item {
    padding: 0.8rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: #f9fcfa;
}

.admin-automatizacion-resumen small,
.admin-automatizacion-mensaje small,
.admin-automatizacion-timeline-item small {
    display: block;
    color: #65766c;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.admin-automatizacion-resumen strong,
.admin-automatizacion-mensaje strong,
.admin-automatizacion-timeline-item strong {
    display: block;
    color: #102217;
    font-size: 1rem;
    line-height: 1.2;
    margin-top: 0.2rem;
}

.admin-automatizacion-mensaje strong {
    font-size: 0.92rem;
    font-weight: 600;
}

.admin-automatizacion-timeline {
    display: grid;
    gap: 0.75rem;
}

.admin-automatizacion-timeline-item span {
    display: block;
    margin-top: 0.3rem;
    color: #486555;
    font-size: 0.84rem;
    line-height: 1.35;
}

.admin-automatizacion-help {
    display: inline-flex;
    align-items: center;
    color: #5e7066;
    font-size: 0.82rem;
}

.admin-campo-card {
    height: 100%;
    padding: 0.9rem;
    border: 1px solid #d8e9de;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff, #fbfdfb);
}

.admin-campo-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 0.8rem;
    margin-bottom: 0.75rem;
}

.admin-campo-check {
    flex: 0 0 auto;
    margin-top: 0.1rem;
    padding: 0.35rem 0.55rem;
    border: 1px solid #d8e9de;
    border-radius: 999px;
    background: #f6fbf7;
}

.admin-campo-card .form-control:disabled {
    background: #f3f6f4;
    border-color: #d9e4dc;
    color: #6d7d74;
    opacity: 1;
}

.admin-campo-card .input-group .btn:disabled {
    opacity: 0.6;
}

.admin-subnav {
    position: relative;
    z-index: 3;
}

.admin-subnav-scroller {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    padding: 0.8rem;
    border: 1px solid #dde8e1;
    border-radius: 18px;
    background:
        radial-gradient(circle at top left, rgba(243, 248, 245, 0.95), rgba(255, 255, 255, 0.98) 48%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(245, 249, 247, 0.98));
    box-shadow: 0 14px 28px rgba(16, 34, 23, 0.06);
}

.admin-subnav-group-label {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.2rem 0.45rem 0.35rem;
    color: #607368;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-subnav-link {
    --admin-subnav-accent: #243647;
    --admin-subnav-soft: rgba(36, 54, 71, 0.09);
    --admin-subnav-border: rgba(36, 54, 71, 0.18);
    --admin-subnav-active: #1a2530;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 44px;
    padding: 0.72rem 1rem;
    border: 1px solid var(--admin-subnav-border);
    border-radius: 12px;
    background: #ffffff;
    color: var(--admin-subnav-accent);
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 4px 12px rgba(16, 34, 23, 0.04);
    transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.admin-subnav-link:hover {
    transform: translateY(-1px);
    background: var(--admin-subnav-soft);
    color: var(--admin-subnav-accent);
    box-shadow: 0 10px 22px rgba(16, 34, 23, 0.08);
}

.admin-subnav-link.is-active {
    background: var(--admin-subnav-active);
    border-color: var(--admin-subnav-active);
    color: #ffffff;
    box-shadow: 0 14px 26px rgba(16, 34, 23, 0.16);
}

.admin-subnav-link i {
    font-size: 0.95rem;
}

.licencias-context-strip {
    padding: 1rem 1.15rem;
    border: 1px solid rgba(18, 52, 36, 0.1);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(245, 251, 247, 0.96), rgba(255, 255, 255, 0.98));
    box-shadow: 0 14px 30px rgba(16, 34, 23, 0.06);
}

.licencias-context-strip-copy {
    min-width: 0;
}

.licencias-context-strip-eyebrow {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.45rem;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(11, 122, 85, 0.1);
    color: #0b6a4b;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.licencias-context-strip p {
    margin: 0;
    color: #496154;
    line-height: 1.55;
}

.admin-subnav-link-panel {
    --admin-subnav-accent: #17212b;
    --admin-subnav-soft: rgba(23, 33, 43, 0.08);
    --admin-subnav-border: rgba(23, 33, 43, 0.18);
    --admin-subnav-active: #17212b;
}

.admin-subnav-link-automatizacion {
    --admin-subnav-accent: #0b7a55;
    --admin-subnav-soft: rgba(11, 122, 85, 0.10);
    --admin-subnav-border: rgba(11, 122, 85, 0.2);
    --admin-subnav-active: #0b7a55;
}

.admin-subnav-link-ocs {
    --admin-subnav-accent: #0f6fde;
    --admin-subnav-soft: rgba(15, 111, 222, 0.1);
    --admin-subnav-border: rgba(15, 111, 222, 0.2);
    --admin-subnav-active: #0f6fde;
}

.admin-subnav-link-m365 {
    --admin-subnav-accent: #5a3ec8;
    --admin-subnav-soft: rgba(90, 62, 200, 0.1);
    --admin-subnav-border: rgba(90, 62, 200, 0.2);
    --admin-subnav-active: #5a3ec8;
}

.admin-subnav-link-recaptcha {
    --admin-subnav-accent: #cc3b32;
    --admin-subnav-soft: rgba(204, 59, 50, 0.1);
    --admin-subnav-border: rgba(204, 59, 50, 0.2);
    --admin-subnav-active: #cc3b32;
}

.admin-subnav-link-usuarios {
    --admin-subnav-accent: #1f5fff;
    --admin-subnav-soft: rgba(31, 95, 255, 0.1);
    --admin-subnav-border: rgba(31, 95, 255, 0.2);
    --admin-subnav-active: #1f5fff;
}

.admin-subnav-link-roles {
    --admin-subnav-accent: #d18a00;
    --admin-subnav-soft: rgba(209, 138, 0, 0.12);
    --admin-subnav-border: rgba(209, 138, 0, 0.2);
    --admin-subnav-active: #d18a00;
}

.admin-subnav-link-activos-contables {
    --admin-subnav-accent: #4f46e5;
    --admin-subnav-soft: rgba(79, 70, 229, 0.10);
    --admin-subnav-border: rgba(79, 70, 229, 0.20);
    --admin-subnav-active: #4f46e5;
}

.admin-subnav-link-licencias-catalogo {
    --admin-subnav-accent: #0a7a62;
    --admin-subnav-soft: rgba(10, 122, 98, 0.10);
    --admin-subnav-border: rgba(10, 122, 98, 0.18);
    --admin-subnav-active: #0a7a62;
}

.admin-subnav-link-licencias-nueva {
    --admin-subnav-accent: #1f5fff;
    --admin-subnav-soft: rgba(31, 95, 255, 0.10);
    --admin-subnav-border: rgba(31, 95, 255, 0.18);
    --admin-subnav-active: #1f5fff;
}

.admin-subnav-link-licencias-asignar {
    --admin-subnav-accent: #0f8a9d;
    --admin-subnav-soft: rgba(15, 138, 157, 0.10);
    --admin-subnav-border: rgba(15, 138, 157, 0.18);
    --admin-subnav-active: #0f8a9d;
}

.admin-subnav-link-licencias-asignaciones {
    --admin-subnav-accent: #d18a00;
    --admin-subnav-soft: rgba(209, 138, 0, 0.12);
    --admin-subnav-border: rgba(209, 138, 0, 0.18);
    --admin-subnav-active: #d18a00;
}

.admin-subnav-link-licencias-reportes {
    --admin-subnav-accent: #c0536c;
    --admin-subnav-soft: rgba(192, 83, 108, 0.11);
    --admin-subnav-border: rgba(192, 83, 108, 0.18);
    --admin-subnav-active: #c0536c;
}

.admin-subnav-link-licencias-carga {
    --admin-subnav-accent: #7a47c9;
    --admin-subnav-soft: rgba(122, 71, 201, 0.10);
    --admin-subnav-border: rgba(122, 71, 201, 0.18);
    --admin-subnav-active: #7a47c9;
}

.admin-subnav-link-licencias-m365 {
    --admin-subnav-accent: #5a3ec8;
    --admin-subnav-soft: rgba(90, 62, 200, 0.10);
    --admin-subnav-border: rgba(90, 62, 200, 0.18);
    --admin-subnav-active: #5a3ec8;
}

.admin-subnav-link-licencias-skus {
    --admin-subnav-accent: #0f6fde;
    --admin-subnav-soft: rgba(15, 111, 222, 0.10);
    --admin-subnav-border: rgba(15, 111, 222, 0.18);
    --admin-subnav-active: #0f6fde;
}

.admin-subnav-link-licencias-identidades {
    --admin-subnav-accent: #d66b1f;
    --admin-subnav-soft: rgba(214, 107, 31, 0.11);
    --admin-subnav-border: rgba(214, 107, 31, 0.18);
    --admin-subnav-active: #d66b1f;
}

.admin-subnav-link-indicadores-panel {
    --admin-subnav-accent: #17212b;
    --admin-subnav-soft: rgba(23, 33, 43, 0.08);
    --admin-subnav-border: rgba(23, 33, 43, 0.18);
    --admin-subnav-active: #17212b;
}

.admin-subnav-link-indicadores-activos {
    --admin-subnav-accent: #0f6fde;
    --admin-subnav-soft: rgba(15, 111, 222, 0.10);
    --admin-subnav-border: rgba(15, 111, 222, 0.18);
    --admin-subnav-active: #0f6fde;
}

.admin-subnav-link-indicadores-activos-contables {
    --admin-subnav-accent: #6d4bc3;
    --admin-subnav-soft: rgba(109, 75, 195, 0.10);
    --admin-subnav-border: rgba(109, 75, 195, 0.18);
    --admin-subnav-active: #6d4bc3;
}

.admin-subnav-link-indicadores-personal {
    --admin-subnav-accent: #d18a00;
    --admin-subnav-soft: rgba(209, 138, 0, 0.12);
    --admin-subnav-border: rgba(209, 138, 0, 0.18);
    --admin-subnav-active: #d18a00;
}

.admin-subnav-link-indicadores-mantenimientos {
    --admin-subnav-accent: #0b7a55;
    --admin-subnav-soft: rgba(11, 122, 85, 0.10);
    --admin-subnav-border: rgba(11, 122, 85, 0.18);
    --admin-subnav-active: #0b7a55;
}

.admin-subnav-link-indicadores-operacion {
    --admin-subnav-accent: #c86414;
    --admin-subnav-soft: rgba(200, 100, 20, 0.11);
    --admin-subnav-border: rgba(200, 100, 20, 0.18);
    --admin-subnav-active: #c86414;
}

@media (max-width: 991px) {
    .admin-automatizacion-layout,
    .admin-automatizacion-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .admin-subnav-scroller {
        gap: 0.55rem;
        padding: 0.7rem;
    }

    .admin-subnav-group-label {
        flex: 1 0 100%;
        padding: 0.1rem 0;
    }

    .admin-subnav-link {
        flex: 1 1 calc(50% - 0.55rem);
        justify-content: center;
        min-width: 0;
        padding-inline: 0.8rem;
    }

    .licencias-context-strip {
        padding: 0.9rem 1rem;
    }
}

.roles-permiso-badge {
    border: 1px solid transparent;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: none;
}

.roles-permiso-card {
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.roles-permiso-card:hover {
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

.roles-permiso-card-ver {
    background: rgba(91, 192, 222, 0.08);
    border-color: rgba(91, 192, 222, 0.22) !important;
}

.roles-permiso-card-editar {
    background: rgba(255, 193, 7, 0.08);
    border-color: rgba(255, 193, 7, 0.22) !important;
}

.roles-permiso-card-crear {
    background: rgba(25, 135, 84, 0.08);
    border-color: rgba(25, 135, 84, 0.22) !important;
}

.roles-permiso-card-otro {
    background: rgba(108, 117, 125, 0.07);
    border-color: rgba(108, 117, 125, 0.18) !important;
}

.roles-permiso-badge-ver {
    color: #225c79;
    background: rgba(91, 192, 222, 0.10);
    border-color: rgba(91, 192, 222, 0.18);
}

.roles-permiso-badge-editar {
    color: #8c5a12;
    background: rgba(255, 193, 7, 0.10);
    border-color: rgba(255, 193, 7, 0.18);
}

.roles-permiso-badge-crear {
    color: #1d6a43;
    background: rgba(25, 135, 84, 0.10);
    border-color: rgba(25, 135, 84, 0.18);
}

.roles-permiso-badge-otro {
    color: #5f6670;
    background: rgba(108, 117, 125, 0.09);
    border-color: rgba(108, 117, 125, 0.16);
}

.contabilidad-admin-kpis {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.contabilidad-admin-kpi {
    border: 1px solid rgba(79, 70, 229, 0.16);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.08), rgba(99, 102, 241, 0.02));
    padding: 0.85rem 1rem;
}

.contabilidad-admin-kpi span {
    display: block;
    color: #5b6472;
    font-size: 0.84rem;
}

.contabilidad-admin-kpi strong {
    display: block;
    color: #1f2937;
    font-size: 1.35rem;
    font-weight: 700;
}

.contabilidad-config-table-shell {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    overflow: hidden;
}

.contabilidad-config-table thead th {
    background: rgba(15, 23, 42, 0.04);
    border-bottom-color: rgba(15, 23, 42, 0.08);
    font-weight: 600;
}

.activos-contables-shell {
    border-radius: 1.35rem;
}

.activos-contables-table-shell {
    min-height: 20rem;
}

.contables-cell-main {
    display: grid;
    gap: 0.2rem;
}

.contables-cell-main strong {
    color: #1f2937;
    font-weight: 700;
}

.contables-cell-main small {
    color: #64748b;
}

.mantenimiento-form-activo-card {
    cursor: pointer;
    border: 1px solid rgba(25, 135, 84, 0.14);
    background: linear-gradient(180deg, rgba(25, 135, 84, 0.05), rgba(255, 255, 255, 0.98));
}

.mantenimiento-form-activo-card:hover {
    border-color: rgba(25, 135, 84, 0.32);
    box-shadow: 0 0.5rem 1rem rgba(25, 135, 84, 0.08);
}

.mantenimiento-form-activo-card .form-check-input {
    float: none;
}

.mantenimiento-form-activo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.mantenimiento-form-activo-grid span {
    display: block;
    color: var(--bs-secondary-color);
    font-size: 0.78rem;
    margin-bottom: 0.2rem;
}

.mantenimiento-form-activo-grid strong {
    display: block;
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}

.mantenimiento-form-list-shell {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
}

.mantenimiento-crear-lista-cabecera {
    padding: 0.9rem 1rem 0.75rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    color: #111827;
    font-size: 0.92rem;
    font-weight: 700;
}

.mantenimiento-crear-lista-seleccionados {
    display: block;
}

.mantenimiento-crear-lista-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.8rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.mantenimiento-crear-lista-item:last-child {
    border-bottom: 0;
}

.mantenimiento-crear-lista-texto {
    flex: 1 1 auto;
    min-width: 0;
    color: #1f2937;
    line-height: 1.4;
    word-break: break-word;
}

.mantenimiento-crear-lista-accion {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 999px;
    color: #0f172a;
    background: transparent;
}

.mantenimiento-crear-lista-accion:hover,
.mantenimiento-crear-lista-accion:focus {
    color: #b02a37;
    background: rgba(220, 53, 69, 0.08);
    outline: none;
}

.mantenimiento-crear-lista-vacia {
    padding: 0.95rem 1rem;
    color: #64748b;
}

.mantenimiento-resumen-bloque {
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.9rem;
    color: #334155;
    background: rgba(248, 250, 252, 0.9);
    white-space: pre-line;
}

.mantenimiento-resumen-activos {
    display: grid;
    gap: 0.75rem;
}

.mantenimiento-resumen-activo-item {
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.95rem;
    background: #fff;
}

.mantenimiento-resumen-activo-titulo {
    color: #0f172a;
    font-weight: 600;
    line-height: 1.45;
}

.mantenimiento-resumen-activo-detalle {
    margin-top: 0.3rem;
    color: #64748b;
    font-size: 0.88rem;
    line-height: 1.5;
}

.mantenimiento-resumen-vacio {
    padding: 0.9rem 1rem;
    border: 1px dashed rgba(15, 23, 42, 0.12);
    border-radius: 0.95rem;
    color: #64748b;
    background: rgba(248, 250, 252, 0.72);
}

.mantenimiento-signature-pad {
    min-height: 5rem;
    max-width: 22rem;
    border: 2px dashed rgba(25, 135, 84, 0.28);
    border-radius: 1rem;
    background:
        linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(255, 255, 255, 1));
    overflow: hidden;
}

.mantenimiento-signature-canvas {
    display: block;
    width: 100%;
    min-height: 5rem;
    touch-action: none;
    cursor: crosshair;
}

.mantenimiento-media-trigger {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 1rem;
    color: #0f172a;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 1));
    text-align: left;
}

.mantenimiento-media-trigger:hover,
.mantenimiento-media-trigger:focus {
    border-color: rgba(25, 135, 84, 0.28);
    box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.08);
    outline: none;
}

.mantenimiento-media-trigger-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.9rem;
    color: #198754;
    background: rgba(25, 135, 84, 0.12);
    font-size: 1.15rem;
}

.mantenimiento-media-trigger-copy {
    display: grid;
    gap: 0.15rem;
}

.mantenimiento-media-trigger-copy small {
    color: #64748b;
}

.mantenimiento-media-preview {
    display: grid;
    gap: 0.5rem;
}

.mantenimiento-media-preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.mantenimiento-media-preview-count {
    color: #198754;
    font-size: 0.88rem;
    font-weight: 700;
}

.mantenimiento-media-preview-add {
    color: #198754;
    font-weight: 600;
    text-decoration: none;
}

.mantenimiento-media-preview-add:hover,
.mantenimiento-media-preview-add:focus {
    color: #146c43;
}

.mantenimiento-media-preview-strip {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(9rem, 10rem);
    gap: 0.85rem;
    overflow-x: auto;
    padding-bottom: 0.35rem;
    scrollbar-width: thin;
}

.mantenimiento-media-preview-empty {
    padding: 0.65rem 0.8rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.8rem;
    color: #475569;
    background: rgba(248, 250, 252, 0.88);
    font-size: 0.92rem;
    word-break: break-word;
}

.mantenimiento-media-thumb {
    position: relative;
    min-width: 0;
}

.mantenimiento-media-thumb-frame {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.9rem;
    background: #fff;
    box-shadow: 0 0.45rem 1rem rgba(15, 23, 42, 0.08);
    aspect-ratio: 1 / 1;
}

.mantenimiento-media-thumb-link {
    display: block;
    width: 100%;
    height: 100%;
}

.mantenimiento-media-thumb-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mantenimiento-media-thumb-image.activos-carousel-img-pendiente {
    object-fit: contain;
    padding: 0.75rem;
    background: #f6fbf7;
}

.mantenimiento-media-thumb-caption {
    margin-top: 0.45rem;
    color: #475569;
    font-size: 0.78rem;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mantenimiento-media-thumb-remove {
    position: absolute;
    top: 0.45rem;
    right: 0.45rem;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: rgba(15, 23, 42, 0.78);
}

.mantenimiento-media-thumb-remove:hover,
.mantenimiento-media-thumb-remove:focus {
    background: rgba(220, 53, 69, 0.92);
    outline: none;
}

.mantenimiento-media-preview-item,
.mantenimiento-media-preview-empty {
    padding: 0.65rem 0.8rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.8rem;
    color: #475569;
    background: rgba(248, 250, 252, 0.88);
    font-size: 0.92rem;
    word-break: break-word;
}

.mantenimiento-form-single-page .form-text {
    font-size: 0.82rem;
    line-height: 1.35;
}

.mantenimiento-form-single-page .card {
    border-radius: 1rem;
}

.mantenimiento-media-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
}

.mantenimiento-media-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.38);
}

.mantenimiento-media-modal-sheet {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    border-radius: 1.2rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.22);
}

.mantenimiento-media-modal-header {
    padding: 1rem 1.1rem 0.85rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.mantenimiento-media-modal-actions {
    display: grid;
}

.mantenimiento-media-modal-action {
    padding: 1rem 1.1rem;
    border: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    color: #0f172a;
    background: #fff;
    text-align: left;
}

.mantenimiento-media-modal-action:last-child {
    border-bottom: 0;
}

.mantenimiento-media-modal-action.is-cancel {
    color: #64748b;
}

.mantenimiento-media-modal-action:hover,
.mantenimiento-media-modal-action:focus {
    background: rgba(25, 135, 84, 0.08);
    outline: none;
}

.mantenimiento-crear-estado {
    padding: 0.85rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.95rem;
    color: #475569;
    background: #f8fafc;
}

.mantenimiento-crear-estado-exito {
    border-color: rgba(25, 135, 84, 0.2);
    color: #146c43;
    background: rgba(25, 135, 84, 0.08);
}

.mantenimiento-crear-estado-alerta {
    border-color: rgba(255, 193, 7, 0.28);
    color: #946200;
    background: rgba(255, 243, 205, 0.95);
}

.mantenimiento-crear-estado-error {
    border-color: rgba(220, 53, 69, 0.22);
    color: #b02a37;
    background: rgba(248, 215, 218, 0.95);
}

.mantenimiento-crear-seleccion-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(25, 135, 84, 0.18);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(25, 135, 84, 0.08), rgba(25, 135, 84, 0.03));
}

.mantenimiento-crear-seleccion-copy {
    min-width: 0;
}

.mantenimiento-wizard-card {
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.mantenimiento-wizard-card.is-active {
    box-shadow: 0 0.9rem 1.8rem rgba(25, 135, 84, 0.12);
    transform: translateY(-1px);
}

.mantenimiento-crear-search-shell {
    position: relative;
}

.mantenimiento-required-label {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    align-items: center;
    justify-content: space-between;
}

.mantenimiento-required-hint {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1rem 0.55rem;
    border: 1px solid rgba(180, 83, 9, 0.16);
    border-radius: 999px;
    background: rgba(255, 247, 237, 0.92);
    color: #9a3412;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.mantenimiento-required-mark {
    color: #dc2626;
    font-weight: 800;
    line-height: 1;
}

.mantenimiento-crear-search-icon {
    position: absolute;
    top: 50%;
    left: 0.95rem;
    z-index: 2;
    color: #198754;
    transform: translateY(-50%);
}

.mantenimiento-crear-search-input {
    min-height: 3.1rem;
    padding-left: 2.65rem;
    border-width: 2px;
    border-color: rgba(25, 135, 84, 0.35);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(25, 135, 84, 0.04), rgba(255, 255, 255, 0.98));
    box-shadow: 0 0.45rem 1rem rgba(15, 23, 42, 0.05);
}

.mantenimiento-crear-search-input:focus {
    border-color: #198754;
    box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.14);
}

.mantenimiento-crear-search-input:disabled {
    border-color: rgba(100, 116, 139, 0.22);
    background: rgba(248, 250, 252, 0.92);
    box-shadow: none;
}

#mantenimientoFormularioWizard #mantenimientoTecnico,
#mantenimientoFormularioWizard #mantenimientoTipo,
#mantenimientoFormularioWizard #mantenimientoFecha,
#mantenimientoFormularioWizard #mantenimientoResumen {
    border-width: 2px;
    border-color: rgba(25, 135, 84, 0.32);
    background: linear-gradient(180deg, rgba(25, 135, 84, 0.03), rgba(255, 255, 255, 1));
    box-shadow: 0 0.45rem 1rem rgba(15, 23, 42, 0.04);
}

#mantenimientoFormularioWizard #mantenimientoTecnico:focus,
#mantenimientoFormularioWizard #mantenimientoTipo:focus,
#mantenimientoFormularioWizard #mantenimientoFecha:focus,
#mantenimientoFormularioWizard #mantenimientoResumen:focus {
    border-color: #198754;
    box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.14);
}

.mantenimiento-required-invalid {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 0.24rem rgba(220, 53, 69, 0.12) !important;
}

.mantenimiento-required-shell-invalid .mantenimiento-crear-search-input {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 0.24rem rgba(220, 53, 69, 0.12) !important;
}

.mantenimiento-crear-header > :first-child {
    min-width: 0;
}

.mantenimiento-crear-dropdown {
    display: none;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 0.95rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 0.85rem 2rem rgba(15, 23, 42, 0.12);
    max-height: 22rem;
    overflow-y: auto;
}

.mantenimiento-crear-dropdown.is-open {
    display: block;
}

.mantenimiento-crear-dropdown-mobile {
    position: fixed;
    top: var(--mantenimiento-dropdown-top, 5.5rem);
    right: 0.75rem;
    left: 0.75rem;
    z-index: 1090;
    max-height: var(--mantenimiento-dropdown-height, 18rem);
}

.mantenimiento-crear-dropdown-cabecera {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    color: #64748b;
    font-size: 0.85rem;
    background: #f8fafc;
}

.mantenimiento-crear-dropdown-item {
    display: block;
    width: 100%;
    padding: 0.95rem 1rem;
    border: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    color: #1f2937;
    background: #fff;
    text-align: left;
}

.mantenimiento-crear-dropdown-item:last-child {
    border-bottom: 0;
}

.mantenimiento-crear-dropdown-item:hover,
.mantenimiento-crear-dropdown-item:focus {
    background: rgba(25, 135, 84, 0.08);
    outline: none;
}

.mantenimiento-crear-dropdown-activos .mantenimiento-crear-dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}

.mantenimiento-crear-dropdown-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.mantenimiento-crear-dropdown-titulo {
    display: block;
    color: #1f2937;
    font-weight: 600;
    line-height: 1.45;
    word-break: break-word;
}

.mantenimiento-crear-dropdown-activos .mantenimiento-crear-dropdown-titulo {
    flex: 1 1 auto;
    min-width: 0;
}

.mantenimiento-crear-dropdown-subtitulo {
    display: block;
    margin-top: 0.2rem;
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.45;
    word-break: break-word;
}

.mantenimiento-crear-dropdown-vacio {
    padding: 0.85rem 0.95rem;
    color: #64748b;
    background: #fff;
}

@media (max-width: 767.98px) {
    .mantenimiento-signature-pad {
        min-height: 7rem;
        max-width: none;
    }

    .mantenimiento-signature-canvas {
        min-height: 7rem;
    }

    .mantenimiento-form-single-page .card-body {
        padding: 1rem !important;
    }

    .mantenimiento-form-single-page .form-label {
        margin-bottom: 0.4rem;
    }

    .mantenimiento-form-single-page .form-text {
        margin-top: 0.35rem !important;
        font-size: 0.76rem;
    }

    .mantenimiento-form-single-page .mantenimiento-required-hint {
        font-size: 0.7rem;
    }

    .mantenimiento-form-single-page .mantenimiento-media-trigger {
        padding: 0.85rem 0.9rem;
        gap: 0.75rem;
    }

    .mantenimiento-form-single-page .mantenimiento-media-trigger-copy small {
        font-size: 0.74rem;
    }

    .mantenimiento-form-single-page .mantenimiento-media-preview-strip {
        grid-auto-columns: minmax(7.5rem, 8.5rem);
        gap: 0.65rem;
    }
}

.mantenimiento-crear-dropdown-action {
    flex: 0 0 auto;
    color: #1f2937;
    font-size: 1rem;
}

.mantenimiento-crear-quitar-btn {
    min-width: 2rem;
    padding-right: 0.45rem;
    padding-left: 0.45rem;
}

@media (max-width: 575.98px) {
    .mantenimiento-form-activo-grid {
        grid-template-columns: 1fr;
    }

    .mantenimiento-crear-header {
        align-items: flex-start !important;
        flex-direction: column;
    }

    .mantenimiento-crear-seleccion-card {
        align-items: stretch;
        flex-direction: column;
    }

    .mantenimiento-crear-search-input {
        min-height: 2.85rem;
        border-radius: 0.9rem;
    }

    .mantenimiento-crear-dropdown {
        max-height: 18rem;
    }

    .mantenimiento-crear-dropdown-activos .mantenimiento-crear-dropdown-item {
        padding-top: 0.7rem;
        padding-bottom: 0.7rem;
    }

    .mantenimiento-crear-dropdown-activos .mantenimiento-crear-dropdown-titulo {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .mantenimiento-crear-dropdown-activos .mantenimiento-crear-dropdown-subtitulo {
        display: none;
    }

    .mantenimiento-crear-lista-cabecera {
        padding: 0.8rem 0.9rem 0.7rem;
    }

    .mantenimiento-crear-lista-item {
        padding: 0.7rem 0.9rem;
    }

    .mantenimiento-crear-lista-texto {
        font-size: 0.96rem;
    }

    .mantenimiento-media-trigger {
        padding: 0.95rem 1rem;
    }

    .mantenimiento-signature-pad,
    .mantenimiento-signature-canvas {
        min-height: 5.25rem;
    }

    .mantenimiento-media-preview-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .mantenimiento-media-preview-strip {
        grid-auto-columns: minmax(7.5rem, 8.25rem);
        gap: 0.7rem;
    }

    .mantenimiento-media-thumb-caption {
        font-size: 0.72rem;
    }
}

.acta-form-body {
    background:
        radial-gradient(circle at top left, rgba(25, 135, 84, 0.08), transparent 28%),
        linear-gradient(180deg, #fbfdfc 0%, #f5f8f6 100%);
}

.acta-form-page {
    max-width: 1220px;
}

.acta-form-topbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.3rem;
    border: 1px solid rgba(15, 122, 79, 0.08);
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 0.8rem 2rem rgba(15, 23, 42, 0.05);
}

.acta-form-eyebrow {
    color: #198754;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acta-form-title {
    font-size: 1.45rem;
    font-weight: 800;
    color: #111827;
}

.acta-form-subtitle {
    max-width: 52rem;
    color: #64748b;
    font-size: 0.92rem;
}

.acta-form-topbar-btn {
    white-space: nowrap;
    border-radius: 0.85rem;
    font-weight: 700;
}

.acta-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.acta-form-main {
    min-width: 0;
}

.acta-form-card {
    overflow: hidden;
    border: 1px solid rgba(15, 122, 79, 0.1);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 0.8rem 1.8rem rgba(15, 23, 42, 0.045);
}

.acta-form-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfb 100%);
}

.acta-form-card-body {
    padding: 1.15rem;
}

.acta-form-section-title {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    color: #111827;
    font-size: 0.98rem;
    font-weight: 800;
}

.acta-form-section-copy {
    color: #64748b;
    font-size: 0.84rem;
}

.acta-form-icon-soft {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.7rem;
    color: #198754;
    background: rgba(25, 135, 84, 0.1);
    flex: 0 0 auto;
}

.acta-form-icon-soft i {
    font-size: 0.92rem;
}

.acta-form-required-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 999px;
    color: #64748b;
    background: #f8fafc;
    font-size: 0.7rem;
    font-weight: 700;
    white-space: nowrap;
}

.acta-form-required-pill strong {
    color: #b45309;
}

.acta-form-control {
    min-height: 2.75rem;
    border-width: 1px;
    border-color: rgba(148, 163, 184, 0.38);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, rgba(25, 135, 84, 0.025), rgba(255, 255, 255, 1));
}

.acta-form-control:focus {
    border-color: #198754;
    box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.12);
}

.acta-form-textarea {
    min-height: 7rem;
}

.acta-form-selected-person-card {
    display: grid;
    grid-template-columns: 2.8rem minmax(0, 1fr) auto;
    gap: 0.8rem;
    align-items: center;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(25, 135, 84, 0.2);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(248, 255, 251, 1), rgba(241, 249, 245, 0.95));
}

.acta-form-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(180deg, #198754 0%, #126842 100%);
    font-size: 0.88rem;
    font-weight: 800;
}

.acta-form-selected-person-copy {
    min-width: 0;
}

.acta-form-selected-person-label {
    margin-bottom: 0.15rem;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.acta-form-selected-person-copy strong,
.acta-form-selected-person-copy small {
    display: block;
    overflow-wrap: anywhere;
}

.acta-form-selected-person-copy strong {
    color: #111827;
}

.acta-form-selected-person-copy small {
    color: #64748b;
}

.acta-form-asset-picker-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
}

.acta-form-asset-picker-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.acta-form-add-all {
    min-height: 3.1rem;
    padding-right: 1rem;
    padding-left: 1rem;
    border-radius: 1rem;
    font-weight: 700;
}

.acta-form-remove-all {
    min-height: 3.1rem;
    padding-right: 1rem;
    padding-left: 1rem;
    border-radius: 1rem;
    font-weight: 700;
}

.acta-form-helper-box {
    padding: 0.9rem 1rem;
    border: 1px solid rgba(226, 232, 240, 0.92);
    border-radius: 0.95rem;
    color: #64748b;
    background: #f8fafc;
    font-size: 0.82rem;
    line-height: 1.5;
}

.acta-form-selected-assets-shell .mantenimiento-crear-lista-cabecera {
    font-size: 0.84rem;
}

.acta-form-selected-asset-item {
    gap: 0.95rem;
}

.acta-form-selected-asset-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 0.8rem;
    color: #198754;
    background: rgba(25, 135, 84, 0.1);
    flex: 0 0 auto;
}

.acta-form-selected-asset-icon i,
.acta-form-summary-asset-icon i {
    font-size: 0.95rem;
}

.acta-form-selected-asset-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.acta-form-selected-asset-copy strong,
.acta-form-selected-asset-copy small {
    display: block;
}

.acta-form-selected-asset-copy small {
    color: #64748b;
}

.acta-form-signature-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.acta-form-signature-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 22rem);
    min-height: 8rem;
    padding: 0.6rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 1rem;
    background: #fff;
}

.acta-form-signature-pad {
    max-width: none;
    min-height: 6rem;
}

.acta-form-summary {
    position: relative;
    display: flex;
    flex-direction: column;
    align-self: start;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 1.3rem;
    background: linear-gradient(180deg, #075c3a 0%, #064e32 100%);
    box-shadow: 0 1rem 2.2rem rgba(7, 92, 58, 0.18);
    color: #fff;
}

.acta-form-summary-head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.15rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.acta-form-summary-eye {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    flex: 0 0 auto;
}

.acta-form-summary-title {
    color: #fff;
    font-size: 1.05rem;
    font-weight: 800;
}

.acta-form-summary-subtitle {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.78rem;
}

.acta-form-summary-body {
    padding: 1.1rem;
}

.acta-form-summary-card {
    padding: 0.95rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.08);
}

.acta-form-summary-card-title,
.acta-form-summary-label {
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.acta-form-summary-row {
    padding: 0.8rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.acta-form-summary-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.acta-form-summary-value {
    margin-top: 0.35rem;
    color: #fff;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.35;
}

.acta-form-summary-note {
    margin-top: 0.22rem;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.78rem;
    line-height: 1.45;
}

.acta-form-summary-total {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.8rem;
    align-items: end;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.acta-form-summary-total-note {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.78rem;
}

.acta-form-summary-total-number {
    color: #fff;
    font-size: 2.7rem;
    font-weight: 800;
    line-height: 0.9;
}

.acta-form-summary-block {
    padding: 0.95rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.acta-form-summary-assets {
    display: grid;
    gap: 0;
    margin-top: 0.5rem;
    max-height: 17rem;
    overflow-y: auto;
}

.acta-form-summary-asset {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    gap: 0.65rem;
    align-items: center;
    padding: 0.7rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.acta-form-summary-asset:last-child {
    border-bottom: 0;
}

.acta-form-summary-asset-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.acta-form-summary-asset-copy {
    min-width: 0;
}

.acta-form-summary-asset-copy strong,
.acta-form-summary-asset-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.acta-form-summary-asset-copy strong {
    color: #fff;
    font-size: 0.79rem;
}

.acta-form-summary-asset-copy small {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.7rem;
}

.acta-form-summary-asset-badge {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.67rem;
    font-weight: 700;
    white-space: nowrap;
}

.acta-form-summary-empty,
.acta-form-summary-more {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.78rem;
    line-height: 1.45;
}

.acta-form-summary-more {
    padding-top: 0.55rem;
    padding-left: 2.7rem;
    font-weight: 800;
}

.acta-form-summary-note-body {
    margin-top: 0.5rem;
}

.acta-form-summary-footer {
    padding-top: 0.9rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.78rem;
    line-height: 1.45;
}

@media (min-width: 992px) {
    .acta-form-layout {
        grid-template-columns: minmax(0, 1fr) 23rem;
        align-items: start;
    }

    .acta-form-summary {
        position: sticky;
        top: 1rem;
    }

    .acta-form-signature-grid {
        grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
        gap: 1.2rem;
    }
}

@media (max-width: 991.98px) {
    .acta-form-card-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 767.98px) {
    .acta-form-topbar {
        padding: 1rem;
        border-radius: 1rem;
    }

    .acta-form-title {
        font-size: 1.2rem;
    }

    .acta-form-subtitle {
        font-size: 0.86rem;
    }

    .acta-form-card-body,
    .acta-form-card-header {
        padding: 1rem;
    }

    .acta-form-selected-person-card {
        grid-template-columns: 1fr;
    }

    .acta-form-avatar {
        width: 2.5rem;
        height: 2.5rem;
    }

    .acta-form-asset-picker-row {
        grid-template-columns: 1fr;
    }

    .acta-form-asset-picker-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .acta-form-add-all {
        width: 100%;
        min-height: 2.85rem;
    }

    .acta-form-remove-all {
        width: 100%;
        min-height: 2.85rem;
    }
}
.activo-form-image-card {
    overflow: hidden;
    border: 1px solid #d9e2dc;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.activo-form-image-thumb {
    display: block;
    width: 100%;
    height: 146px;
    object-fit: contain;
    background: #fff;
}

.activo-form-album {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 0.75rem;
}

.activo-form-album-item {
    display: block;
}

.activo-form-album-media {
    position: relative;
    padding: 0.45rem;
}

.activo-form-album-link {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: inherit;
    cursor: zoom-in;
}

.activo-form-album-caption {
    padding: 0.7rem 0.8rem 0.8rem;
}

.activo-form-album-remove {
    position: absolute;
    right: 0.65rem;
    bottom: 0.65rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem;
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.64);
    border: 1px solid #dbe7e1;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

.activo-form-album-remove .form-check-input {
    margin-top: 0;
    margin-left: 0;
    flex: 0 0 auto;
}

.activo-form-album-remove .form-check-label {
    font-size: 0.86rem;
    margin-bottom: 0;
    color: #b42318;
    font-weight: 600;
}
