/* ============================================================================
   nexa-polish.css — Refinamiento visual sutil de TODO el sitio.
   Se carga última (después de nexa-contrast.css). No toca colores de texto ni
   los overrides de contraste: sólo pule sombras, radios, transiciones, marca
   del header, encabezados de página, tablas y micro-interacciones.
   ========================================================================== */

:root {
    --nx-accent: #2563eb;
    --nx-accent-2: #0891b2;
    --nx-ring: rgba(37, 99, 235, .14);
    --nx-line: #e6eaf2;
    --nx-shadow-sm: 0 2px 10px rgba(15, 32, 71, .06);
    --nx-shadow-md: 0 8px 26px rgba(15, 32, 71, .10);
}

/* ---------- Marca del header (prestador: logo + Portal de Prestadores Sanidad) ---------- */
.app-header .brand .nx-brand-logo { height: 30px; max-width: 170px; }
.app-header .brand .nx-brand-sep {
    width: 1px; height: 26px; margin: 0 14px;
    background: linear-gradient(180deg, transparent, #cbd5e1, transparent);
}
.app-header .brand .nx-brand-title {
    font-size: .95rem; font-weight: 500; color: #46536b;
    letter-spacing: .01em; line-height: 1;
}
.app-header .brand .nx-brand-title b {
    font-weight: 800; color: #0f2a5e;
}
@media (max-width: 767.98px) {
    .app-header .brand .nx-brand-sep,
    .app-header .brand .nx-brand-title { display: none; }
}

/* ---------- Links sin subrayado en todo el sitio ----------
   El tema base declara a{text-decoration:none} pero lo reactiva en varias reglas
   a:hover{text-decoration:underline}. Lo apagamos global; se respeta la utilidad
   .text-decoration-underline de Bootstrap para los casos en que se quiera a propósito. */
a:not(.text-decoration-underline),
a:not(.text-decoration-underline):hover,
a:not(.text-decoration-underline):focus,
a:not(.text-decoration-underline):active {
    text-decoration: none !important;
}

/* ---------- Encabezado de página: barra de acento a la izquierda ---------- */
.page-header {
    position: relative;
    padding-left: 14px;
    font-weight: 800;
    letter-spacing: -.015em;
    color: #14213d;
}
.page-header::before {
    content: "";
    position: absolute; left: 0; top: .18em; bottom: .18em;
    width: 4px; border-radius: 4px;
    background: linear-gradient(180deg, var(--nx-accent), var(--nx-accent-2));
}

/* ---------- Cards: sombra más suave y elevación al hover ---------- */
.card.shadow-sm {
    box-shadow: var(--nx-shadow-sm) !important;
    border-radius: 16px;
    transition: box-shadow .18s ease, transform .18s ease;
}
.card.shadow-sm:hover { box-shadow: var(--nx-shadow-md) !important; }
/* Sólo las tarjetas clickeables "levantan" */
.card.stat-card-link:hover,
a > .card.shadow-sm:hover { transform: translateY(-2px); }

/* ---------- Botones: micro-interacción uniforme ---------- */
.btn {
    border-radius: .55rem;
    font-weight: 600;
    transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease, border-color .12s ease;
}
.btn:active { transform: translateY(1px); }
.btn-primary {
    background-image: linear-gradient(135deg, var(--nx-accent), var(--nx-accent-2));
    border: 0;
    box-shadow: 0 6px 16px rgba(37, 99, 235, .22);
}
.btn-primary:hover, .btn-primary:focus {
    background-image: linear-gradient(135deg, #1d4ed8, #0e7490);
    box-shadow: 0 10px 22px rgba(37, 99, 235, .3);
}
.btn-sm { border-radius: .5rem; }

/* ---------- Formularios: foco con anillo suave ---------- */
.form-control, .form-select {
    border-radius: .6rem;
    border-color: #dfe4ee;
    transition: border-color .14s ease, box-shadow .14s ease;
}
.form-control:focus, .form-select:focus {
    border-color: var(--nx-accent);
    box-shadow: 0 0 0 .22rem var(--nx-ring);
}

/* ---------- Tablas: cabecera prolija y filas con hover suave ---------- */
.table > thead > tr > th {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 700;
    color: #55617a;
    border-bottom: 2px solid var(--nx-line);
    background: #fafbfd;
    white-space: nowrap;
}
.table > tbody > tr { transition: background-color .12s ease; }
.table-hover > tbody > tr:hover > * { background-color: #f4f7fd; }
.table > :not(caption) > * > * { border-bottom-color: #eef1f7; }

/* ---------- Badges / pills un poco más suaves ---------- */
.badge { font-weight: 700; letter-spacing: .01em; }
.badge.rounded-pill { padding-inline: .7em; }

/* ---------- Sidebar: indicador del ítem activo ---------- */
.app-sidebar .menu-item.active > .menu-link {
    position: relative;
    font-weight: 700;
}
.app-sidebar .menu-item.active > .menu-link::before {
    content: "";
    position: absolute; left: 0; top: 20%; bottom: 20%;
    width: 3px; border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, var(--nx-accent), var(--nx-accent-2));
}
.app-sidebar .menu-link { transition: background-color .14s ease, padding-left .14s ease; }
.app-sidebar .menu-item:not(.active) > .menu-link:hover { padding-left: 22px; }

/* ---------- Modales y dropdowns ---------- */
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 26px 60px rgba(9, 20, 55, .28); }
.dropdown-menu { border: 1px solid var(--nx-line); border-radius: 14px; box-shadow: var(--nx-shadow-md); padding: .35rem; }
.dropdown-item { border-radius: 9px; }

/* ---------- Scrollbar discreta (webkit) ---------- */
* { scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #c8d1e0; border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: #aab6cb; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }
