/**
 * Marca NeuroVital — logo de sistema (no favicon).
 */
.nv-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    text-decoration: none;
    line-height: 0;
    flex-shrink: 0;
}

.nv-brand__img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
}

/* Sidebar: logo dedicado, centrado y encuadrado */
.nv-brand--sidebar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    max-width: none;
    padding: 4px 40px 4px 8px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.nv-brand--sidebar .nv-brand__img {
    display: block;
    width: auto;
    height: auto;
    max-width: min(176px, 100%);
    max-height: 72px;
    margin: 0 auto;
    object-fit: contain;
    object-position: center center;
}

.sidebar-brand--neurovital {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-height: 88px;
    padding: 14px 12px 12px !important;
    background: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.sidebar--v2 .sidebar-brand--neurovital .btn-sidebar-toggle {
    position: absolute;
    top: 12px;
    right: 10px;
    z-index: 2;
    margin: 0;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--eeg-shell-muted, #8a8a8a);
    flex: 0 0 auto;
}

.sidebar--v2 .sidebar-brand--neurovital .btn-sidebar-toggle:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.18);
}

html.sidebar-collapsed .sidebar-brand--neurovital {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 0;
    padding: 12px 8px 10px !important;
    gap: 10px;
}

html.sidebar-collapsed .nv-brand--sidebar {
    padding: 0;
    max-width: 100%;
}

html.sidebar-collapsed .nv-brand--sidebar .nv-brand__img {
    max-width: 44px;
    max-height: 44px;
    object-fit: contain;
    object-position: center;
}

html.sidebar-collapsed .sidebar.sidebar--v2 .nav-item {
    align-items: center;
    padding: 0;
    overflow: hidden;
}

html.sidebar-collapsed .sidebar--v2 .sidebar-brand--neurovital .btn-sidebar-toggle {
    position: static;
}

/* Nav sidebar: tipografía y estados más limpios */
.sidebar.sidebar--v2 .nav-section-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: color-mix(in srgb, var(--eeg-shell-muted, #8a8a8a) 92%, transparent);
    padding: 16px 14px 6px;
}

.sidebar.sidebar--v2 {
    height: 100dvh;
    max-height: 100dvh;
    overflow-x: hidden;
    overflow-y: hidden;
}

.sidebar.sidebar--v2 .sidebar-brand,
.sidebar.sidebar--v2 .sidebar-footer {
    flex-shrink: 0;
    overflow-x: hidden;
    max-width: 100%;
}

.sidebar.sidebar--v2 .sidebar-nav {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.sidebar.sidebar--v2 .nav-item {
    margin: 2px 8px;
    min-height: 40px;
    height: auto;
    align-items: flex-start;
    padding: 8px 12px;
    border-radius: 11px;
    font-size: 0.84rem;
    font-weight: 500;
    color: color-mix(in srgb, var(--eeg-shell-text, #f5f5f5) 88%, transparent);
    overflow: hidden;
}

.sidebar.sidebar--v2 .nav-item .nav-label {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.25;
}

.sidebar.sidebar--v2 .nav-item:hover {
    background: var(--sidebar-hover, rgba(255, 255, 255, 0.07)) !important;
    color: #fff;
}

.sidebar.sidebar--v2 .nav-item.active {
    background: var(--eeg-accent) !important;
    color: var(--eeg-accent-text) !important;
    font-weight: 650;
    box-shadow: 0 8px 18px -12px rgba(0, 0, 0, 0.65);
}

.sidebar.sidebar--v2 .nav-item .nav-icon {
    color: color-mix(in srgb, var(--eeg-shell-muted, #8a8a8a) 95%, transparent);
}

.sidebar.sidebar--v2 .nav-item:hover .nav-icon,
.sidebar.sidebar--v2 .nav-item.active .nav-icon {
    color: inherit;
}

.sidebar.sidebar--v2 .sidebar-footer {
    background: transparent;
    border-top-color: color-mix(in srgb, var(--eeg-shell-border, #2a2a2a) 90%, transparent);
}

.sidebar.sidebar--v2 .btn-logout {
    background: var(--sidebar-logout-bg, rgba(255, 255, 255, 0.06));
    border-color: var(--sidebar-logout-border, rgba(255, 255, 255, 0.12));
}

.sidebar.sidebar--v2 .btn-logout:hover {
    background: var(--sidebar-logout-hover, rgba(255, 255, 255, 0.11));
}

/* Login top bar (legacy — oculto por login.css; estilos residuales) */
.nv-brand--login-bar {
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.nv-brand--login-bar .nv-brand__img {
    height: 40px;
    max-width: min(200px, 48vw);
}

/* Login card: marca como héroe, sin caja anidada */
.nv-brand--login-card {
    display: flex;
    width: 100%;
    margin: 0 auto 20px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.nv-brand--login-card .nv-brand__img {
    width: min(260px, 82%);
    max-height: 120px;
    margin-inline: auto;
    filter: drop-shadow(0 8px 18px rgba(15, 40, 70, 0.12));
}

.nv-brand--auth {
    padding: 4px 8px;
    border-radius: 10px;
    background: #fff;
}

.nv-brand--auth .nv-brand__img {
    height: 40px;
    max-width: min(200px, 48vw);
}

/* Pie de crédito discreto en todas las vistas */
.app-copyright {
    margin-top: auto;
    padding: 10px 14px 12px;
    border-top: 1px solid color-mix(in srgb, var(--eeg-border, #d8d8d8) 70%, transparent);
    text-align: center;
    font-size: 0.68rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--eeg-content-muted, #6b6b6b) 88%, transparent);
    flex-shrink: 0;
    background: transparent;
}

.app-copyright__text {
    margin: 0 auto;
    max-width: 48rem;
    opacity: 0.85;
    font-weight: 500;
    letter-spacing: 0.01em;
}

.app-copyright--login {
    margin-top: 0;
    padding: 10px 16px max(14px, env(safe-area-inset-bottom));
    border-top: none;
    background: transparent;
}

.app-copyright--shell {
    position: relative;
    z-index: 2;
    padding: 8px 12px max(10px, env(safe-area-inset-bottom));
    border-top: 1px solid color-mix(in srgb, var(--eeg-border, #d8d8d8) 55%, transparent);
    background: color-mix(in srgb, var(--eeg-content, #f7f7f7) 92%, transparent);
    font-size: 0.64rem;
    pointer-events: none;
}

.app-copyright--shell .app-copyright__text {
    opacity: 0.72;
}

/* Crédito fijo en worklists: desactivado (solo login.php muestra marca de agua) */
body.layout-bandeja .app-copyright--shell,
body.layout-calendario .app-copyright--shell,
body.layout-mensajes .app-copyright--shell {
    display: none !important;
}

@media (max-width: 900px) {
    .nv-brand--sidebar .nv-brand__img {
        max-width: 132px;
        max-height: 64px;
    }

    .nv-brand--login-card .nv-brand__img {
        width: min(210px, 82%);
        max-height: 100px;
    }
}

@media (max-width: 480px) {
    .nv-brand--login-bar .nv-brand__img {
        height: 34px;
        max-width: min(160px, 55vw);
    }

    .login-bar__meta {
        font-size: 0.65rem;
    }
}
