:root { --lsp: #0b5d4b; }
.bg-primary-lsp { background-color: var(--lsp); }

/* ---------------------------------------------------------- encabezado institucional */
.nav-seal {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: #fff;
    padding: 2px;
    object-fit: contain;
}
.app-banner { background: #fff; border-bottom: 1px solid #e6e3e4; padding: .45rem 0 .55rem; }
.app-banner-link { display: inline-block; }
.app-banner-img {
    display: block;
    height: clamp(56px, 6vw, 88px);
    width: auto;
    max-width: 100%;
}
.auth-logo {
    display: block;
    height: clamp(48px, 12vw, 68px);
    width: auto;
    max-width: 100%;
    margin: 0 auto 1.25rem;
}
.auth-bg { background: linear-gradient(135deg, #0b5d4b, #1c8a6e); }
.auth-card { width: 100%; max-width: 420px; }

.semaforo-dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; vertical-align: middle; margin-right: 6px; }
.semaforo-dot.VERDE { background: #198754; }
.semaforo-dot.AMARILLO { background: #ffc107; }
.semaforo-dot.ROJO { background: #dc3545; }
.semaforo-dot.SIN_META { background: #adb5bd; }

.card-semaforo { border-left: 6px solid #adb5bd; }
.card-semaforo.VERDE { border-left-color: #198754; }
.card-semaforo.AMARILLO { border-left-color: #ffc107; }
.card-semaforo.ROJO { border-left-color: #dc3545; }

.table-registro td, .table-registro th { vertical-align: middle; }
.table-registro input[type=number] { width: 110px; }
.col-extra { display: none; }
.show-extra .col-extra { display: table-cell; }
.table-registro .col-extra input { min-width: 150px; }
.row-saved { animation: flash-ok 1.6s ease-out; }
@keyframes flash-ok { from { background: #d1e7dd; } to { background: transparent; } }
.row-error { background: #f8d7da; }

.matriz td, .matriz th { text-align: center; font-size: .85rem; white-space: nowrap; }
.matriz td:first-child, .matriz th:first-child { text-align: left; position: sticky; left: 0; background: #fff; z-index: 1; }
.cat-row th { background: #e9ecef !important; }
