/* Estilo «Moderno» de FacturaGesTOTAL RRHH (gestión y portal del empleado): tarjetas redondeadas con sombra suave,
   acento índigo y más aire. Va detrás de estilo.css y solo cambia el aspecto, no la estructura de las pantallas.
   Modo oscuro: <html data-tema="oscuro">, que elige cada usuario con el botón 🌙 (se guarda en su cuenta). */

/* Letra Inter (SIL Open Font License 1.1, /fonts/Inter-LICENSE.txt), alojada en este servidor: sin llamadas a terceros */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("/fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("/fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root { --m-acento: #4f46e5; --m-acento-osc: #4338ca; --m-acento-suave: #eef2ff; --m-acento-borde: #c7d2fe; --m-fondo: #f5f7fb; --m-panel: #ffffff; --m-tinta: #111827; --m-gris: #6b7280; --m-linea: #e5e7eb; --m-linea-suave: #f1f2f6; --m-sombra: 0 1px 2px rgba(16,24,40,.04), 0 4px 12px rgba(16,24,40,.05); --m-letra: "Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Roboto, Arial, sans-serif; }
html[data-tema="oscuro"] { --m-acento: #6366f1; --m-acento-osc: #818cf8; --m-acento-suave: #262b52; --m-acento-borde: #3b4280;
  --m-fondo: #0e1020; --m-panel: #171a2e; --m-tinta: #e5e7eb; --m-gris: #9ca3af; --m-linea: #2c3150; --m-linea-suave: #20243a;
  --m-sombra: 0 1px 2px rgba(0,0,0,.35); color-scheme: dark; }

/* ---------------------------------------------------------------- gestión (body.fg) */
body.fg { --bg: var(--m-fondo); --ink: var(--m-tinta); --muted: var(--m-gris); --line: var(--m-linea); --teal: var(--m-acento); --navy: var(--m-tinta); font-family: var(--m-letra) !important; background: var(--m-fondo) !important; color: var(--m-tinta) !important; font-size: 13.5px !important; }
body.fg .fg-sidebar { background: var(--m-panel) !important; border-right: 0 !important; box-shadow: 1px 0 0 var(--m-linea-suave) !important; }
body.fg .sb-icono { border-radius: 12px !important; margin: 4px 6px !important; }
body.fg .sb-grupo.activo .sb-icono, body.fg .sb-grupo:hover .sb-icono { background: var(--m-acento-suave) !important; }
body.fg .sb-sub, body.fg .mb-sub { background: var(--m-panel) !important; border: 1px solid var(--m-linea) !important; border-radius: 12px !important; box-shadow: 0 12px 32px rgba(16,24,40,.14) !important; padding: 6px !important; }
body.fg .sb-titulo { background: transparent !important; color: var(--m-gris) !important; text-transform: uppercase !important; letter-spacing: .06em !important; margin: 0 0 4px !important; }
body.fg .sb-sub a, body.fg .mb-sub a { border-radius: 8px !important; color: var(--m-tinta) !important; }
body.fg .sb-sub a:hover, body.fg .mb-sub a:hover, body.fg .sb-sub a.activo, body.fg .mb-sub a.activo { background: var(--m-acento-suave) !important; color: var(--m-acento-osc) !important; }
body.fg .fg-menubar { height: 44px !important; background: var(--m-panel) !important; border-bottom: 1px solid var(--m-linea-suave) !important; }
body.fg .mb-grupo > span { font-weight: 500 !important; color: var(--m-gris) !important; padding: 0 14px !important; font-size: 13px !important; }
body.fg .mb-grupo:hover > span { background: transparent !important; color: var(--m-tinta) !important; }
body.fg .mb-grupo.activo > span { color: var(--m-acento) !important; box-shadow: inset 0 -2px 0 var(--m-acento) !important; }
body.fg .mb-version, body.fg .mb-version b { color: var(--m-gris) !important; }
body.fg .mb-salir button { background: var(--m-acento) !important; color: #fff !important; border-radius: 8px !important; padding: 5px 12px !important; }
body.fg .fg-header { background: transparent !important; border: 0 !important; padding: 22px 28px 6px !important; }
body.fg .fg-titulo { font-size: 26px !important; font-weight: 700 !important; letter-spacing: -.02em !important; color: var(--m-tinta) !important; }
body.fg .fg-subtitulo { color: var(--m-gris) !important; }
body.fg .fg-contenido { padding: 14px 28px !important; }
body.fg .rh-op-kpi, body.fg .rh-op-tarjeta, body.fg .rh-op-seccion, body.fg .rh-lista, body.fg .rh-ficha, body.fg .rh-barra,
body.fg .rh-op-seleccion, body.fg fieldset, body.fg .card, body.fg .seccion, body.fg .fg-tabla { background: var(--m-panel) !important; border: 1px solid var(--m-linea-suave) !important; border-radius: 14px !important; box-shadow: var(--m-sombra) !important; color: var(--m-tinta) !important; }
body.fg .rh-op-kpi { padding: 18px 20px !important; }
body.fg .rh-lista { overflow: hidden !important; }
body.fg table { background: transparent !important; }
body.fg th { background: var(--m-panel) !important; color: var(--m-gris) !important; font-weight: 600 !important; text-transform: uppercase !important; font-size: 11px !important; letter-spacing: .04em !important; border-bottom: 1px solid var(--m-linea) !important; }
body.fg td { border-bottom: 1px solid var(--m-linea-suave) !important; color: var(--m-tinta) !important; }
body.fg tbody tr:hover td { background: var(--m-acento-suave) !important; }
body.fg tr.sel td, body.fg tbody tr.sel { background: var(--m-acento-suave) !important; }
body.fg input, body.fg select, body.fg textarea { background: var(--m-panel) !important; color: var(--m-tinta) !important; border: 1px solid var(--m-linea) !important; border-radius: 8px !important; padding: 7px 10px !important; }
body.fg input:focus, body.fg select:focus, body.fg textarea:focus { outline: 3px solid var(--m-acento-suave) !important; border-color: var(--m-acento) !important; }
body.fg button { background: var(--m-acento) !important; color: #fff !important; border: 0 !important; border-radius: 8px !important; font-weight: 600 !important; }
body.fg button:hover { background: var(--m-acento-osc) !important; }
body.fg button.secundario { background: var(--m-panel) !important; color: var(--m-tinta) !important; border: 1px solid var(--m-linea) !important; }
body.fg button.secundario:hover { background: var(--m-acento-suave) !important; }
body.fg legend { font-weight: 700 !important; color: var(--m-tinta) !important; padding: 0 6px !important; }
body.fg label { color: var(--m-gris) !important; }
body.fg .rh-paso { background: var(--m-panel) !important; border: 1px solid var(--m-linea) !important; border-radius: 999px !important; padding: 6px 14px !important; color: var(--m-tinta) !important; }
body.fg .rh-paso.hecho { background: var(--m-acento-suave) !important; border-color: var(--m-acento-borde) !important; color: var(--m-acento-osc) !important; }
body.fg .fg-nota, body.fg .rh-op-nota { color: var(--m-gris) !important; }
body.fg a { color: var(--m-acento) !important; }

/* ---------------------------------------------------------------- portal del empleado y páginas de entrada (body.portal) */
body.portal { font-family: var(--m-letra) !important; background: var(--m-fondo) !important; color: var(--m-tinta) !important; }
body.portal .pt-cab { background: linear-gradient(135deg, #4f46e5, #7c3aed) !important; color: #fff !important; }
body.portal .pt-cab .pt-empresa { opacity: .85 !important; }
body.portal .pt-herramientas button { background: rgba(255,255,255,.18) !important; border: 0 !important; color: #fff !important; border-radius: 10px !important; }
body.portal .pt-cab form button { background: rgba(255,255,255,.18) !important; border-radius: 10px !important; }
body.portal .pt-demo-volver { color: #fff !important; }
body.portal .pt-nav { background: var(--m-panel) !important; box-shadow: 0 1px 0 var(--m-linea-suave) !important; padding: 0 8px !important; }
body.portal .pt-nav a { border-radius: 999px !important; margin: 8px 2px !important; padding: 6px 12px !important; border: 0 !important; color: var(--m-gris) !important; }
body.portal .pt-nav a.activo { background: var(--m-acento-suave) !important; color: var(--m-acento-osc) !important; font-weight: 600 !important; box-shadow: none !important; }
body.portal .pt-reloj { background: linear-gradient(160deg, #1e1b4b, #312e81) !important; border-radius: 20px !important; box-shadow: 0 10px 30px rgba(49,46,129,.35) !important; }
body.portal .pt-estado { color: #a5b4fc !important; letter-spacing: .2em !important; }
body.portal .pt-botones button { border-radius: 14px !important; font-weight: 600 !important; }
body.portal .pt-botones button:not(.parar) { background: #6366f1 !important; }
body.portal .pt-botones button.parar { background: #ef4444 !important; }
body.portal .pt-kpi, body.portal .pt-panel, body.portal .pt-caja, body.portal .pt-anuncio, body.portal .pt-login { background: var(--m-panel) !important; border: 1px solid var(--m-linea-suave) !important; border-radius: 16px !important; box-shadow: var(--m-sombra) !important; color: var(--m-tinta) !important; }
body.portal .pt-kpi .valor { color: var(--m-tinta) !important; font-weight: 700 !important; }
body.portal .pt-kpi .valor.rojo, body.portal .rojo { color: #dc2626 !important; }
body.portal .pt-panel h2, body.portal .pt-caja h2, body.portal .pt-sec h2, body.portal .pt-sec h3 { background: transparent !important; color: var(--m-tinta) !important; font-weight: 700 !important; border: 0 !important; }
body.portal th { background: var(--m-panel) !important; color: var(--m-gris) !important; text-transform: uppercase !important; font-size: 11px !important; border-color: var(--m-linea) !important; }
body.portal td { border-color: var(--m-linea-suave) !important; color: var(--m-tinta) !important; }
body.portal input, body.portal select, body.portal textarea { border-radius: 10px !important; border: 1px solid var(--m-linea) !important; background: var(--m-panel) !important; color: var(--m-tinta) !important; }
body.portal button { border-radius: 10px !important; background: var(--m-acento) !important; }
body.portal button.secundario { background: var(--m-panel) !important; color: var(--m-tinta) !important; border: 1px solid var(--m-linea) !important; }
body.portal .pt-login h1 { color: var(--m-tinta) !important; }

/* ---------------------------------------------------------------- modo oscuro: lo que no sale solo de las variables */
html[data-tema="oscuro"] body.fg .sb-icono { filter: brightness(1.1) !important; }
html[data-tema="oscuro"] body.fg .rh-op-kpi, html[data-tema="oscuro"] body.fg .rh-op-kpi * { color: var(--m-tinta) !important; }
html[data-tema="oscuro"] body.fg .rh-op-kpi .rojo { color: #f87171 !important; }
html[data-tema="oscuro"] body.fg .rh-op-pie, html[data-tema="oscuro"] body.fg .rh-op-pie *,
html[data-tema="oscuro"] body.fg .rh-op-kpis, html[data-tema="oscuro"] body.fg .rh-op-cabecera { background: transparent !important; color: var(--m-tinta) !important; }
html[data-tema="oscuro"] body.fg .rh-op-seccion h2, html[data-tema="oscuro"] body.fg .rh-op-subtitulo { color: #a5b4fc !important; background: transparent !important; }
html[data-tema="oscuro"] body.fg .fg-demo { background: #3b2f0b !important; color: #fde68a !important; border-color: #5b4a12 !important; }
html[data-tema="oscuro"] body.portal .pt-reloj { background: linear-gradient(160deg, #111427, #1e1b4b) !important; }
html[data-tema="oscuro"] body.portal .pt-cab { background: linear-gradient(135deg, #312e81, #4c1d95) !important; }
html[data-tema="oscuro"] ::-webkit-scrollbar { background: #14172a !important; }
html[data-tema="oscuro"] ::-webkit-scrollbar-thumb { background: #2c3150 !important; border-radius: 8px !important; }

/* «Vista previa · imprimir · exportar» de cada tabla: enlace discreto, no botón */
body.fg .rh-lst-boton, body.portal .rh-lst-boton { background: transparent !important; color: var(--m-acento) !important; border: 0 !important;
  font-weight: 500 !important; padding: 2px 4px !important; box-shadow: none !important; }
body.fg .rh-lst-boton:hover, body.portal .rh-lst-boton:hover { text-decoration: underline !important; background: transparent !important; }
/* portal: selector de idioma */
.pt-idioma{font:inherit;font-size:.82rem;padding:4px 6px;border-radius:8px;border:1px solid var(--m-linea, #e5e7eb) !important;background:transparent !important;color:inherit !important;max-width:9.5em}
.pt-idiomas{font-size:12px;text-align:center;margin:14px 0 0;line-height:1.9}
.pt-idiomas a{color:inherit;opacity:.75}
.pt-idiomas a[aria-current]{font-weight:700;opacity:1}
