/*
 * Jerarquía tipográfica común de FicharNet.
 *
 * Conserva el texto de lectura en 400 y recupera presencia de forma selectiva:
 * controles y nombres (650), estados y navegación activa (700), y sólo títulos
 * o cifras principales (750). Ningún texto vuelve a los pesos históricos 850-950.
 */

:root {
    --fn-font-weight-regular: 400;
    --fn-font-weight-medium: 650;
    --fn-font-weight-semibold: 700;
    --fn-font-weight-strong: 750;
}

:where(.admin-body, .worker-body, .login-body, .public-body) * {
    font-weight: var(--fn-font-weight-regular) !important;
}

/* Texto de lectura, explicaciones y metadatos. */
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where(p, small, [class*="description"], [class*="subtitle"], [class*="helper"], [class*="hint"], [class*="caption"], [class*="meta"]) {
    font-weight: var(--fn-font-weight-regular) !important;
}

/* Controles, nombres, etiquetas y enlaces de acción. */
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where(strong, b, button, label, legend, th, summary, nav a, [role="button"], .button, .btn,
        [class*="-button"], [class*="__button"], [class*="-action"], [class*="__action"],
        [class*="-tab"], [class*="__tab"], [class*="-link"], [class*="__link"],
        [class*="eyebrow"], [class*="kicker"], [class*="overline"], [class$="-label"], [class*="__label"]) {
    font-weight: var(--fn-font-weight-medium) !important;
}

/* Estados, elementos seleccionados y acciones principales. */
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where([class*="status"], [class*="state"], [class*="badge"], [class*="pill"], [class*="chip"], [class*="tag"],
        [class~="active"], [class*="is-active"], [class*="selected"], [class*="primary"], [class*="cta"],
        [aria-current="page"], [aria-selected="true"]) {
    font-weight: var(--fn-font-weight-semibold) !important;
}

:where(.admin-body, .worker-body, .login-body, .public-body)
    :where([class*="status"], [class*="state"], [class*="badge"], [class*="pill"], [class*="chip"], [class*="tag"]) * {
    font-weight: var(--fn-font-weight-semibold) !important;
}

/* Iconos tipográficos e iniciales: visibles, sin competir con las cifras. */
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where([class*="icon"], [class*="initial"], [class*="avatar"], [class*="mark"]) {
    font-weight: var(--fn-font-weight-semibold) !important;
}

/* Títulos, marca y cifras que sostienen la jerarquía de cada pantalla. */
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where(h1, h2, h3, h4, h5, h6),
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where(h1, h2, h3, h4, h5, h6) :where(strong, b),
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where(.brand, .worker-brand, .login-brand) :where(strong, b),
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where([class*="kpi"], [class*="metric"], [class*="total"], [class*="balance"], [class*="result"],
        [class*="amount"], [class*="number"], [class*="value"], [class*="count"]),
:where(.admin-body, .worker-body, .login-body, .public-body)
    :where([class*="kpi"], [class*="metric"], [class*="total"], [class*="balance"], [class*="result"],
        [class*="amount"], [class*="number"]) :where(strong, b, dd, [class*="value"], [class*="count"]) {
    font-weight: var(--fn-font-weight-strong) !important;
}

/*
 * Menú privado: jerarquía óptica completa. El peso se aplica al texto visible
 * tanto en accesos directos como en grupos; solo el nivel actual gana énfasis.
 * Los hijos reducen además tamaño e icono para que el fondo activo no los
 * convierta en nivel principal.
 */
.admin-body .sidebar-nav > .sidebar-link,
.admin-body .sidebar-nav-group-toggle > span:nth-child(2) {
    font-weight: 500 !important;
}

.admin-body .sidebar-nav > .sidebar-link.active,
.admin-body .sidebar-nav-group.is-current > .sidebar-nav-group-toggle > span:nth-child(2) {
    font-weight: 600 !important;
}

.admin-body .sidebar-nav-group-items .sidebar-link {
    font-size: 13px !important;
    font-weight: 450 !important;
}

.admin-body .sidebar-nav-group-items .sidebar-link.active {
    font-weight: 600 !important;
}

.admin-body .sidebar-nav-group-items .sidebar-link > span {
    opacity: .70;
    font-size: 13px !important;
    font-weight: 400 !important;
}

.admin-body .sidebar-nav-group-items .sidebar-link.active > span {
    opacity: .90;
}
