/*
 * Multifichaje 2026 design system.
 * Pulso: public site, authentication and employee area.
 * Horizonte: admin, support and superadmin areas.
 * Loaded after the legacy fallback styles in layout.twig.
 */
@font-face {
  font-family: "MF Manrope";
  src: url("/assets/fonts/manrope-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}
@font-face {
  font-family: "MF DM Sans";
  src: url("/assets/fonts/dm-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

body.mf-theme-pulso {
  --mf-bg: #f4f7ff;
  --mf-bg-soft: #e8edfb;
  --mf-surface: #ffffff;
  --mf-surface-strong: #ffffff;
  --mf-surface-soft: #f6f8ff;
  --mf-border: #dce5f5;
  --mf-border-strong: #bbcceb;
  --mf-text: #142247;
  --mf-text-soft: #344767;
  --mf-text-muted: #586780;
  --mf-primary: #3158e8;
  --mf-primary-dark: #2546c2;
  --mf-primary-soft: #e9edff;
  --mf-accent: #f3735b;
  --mf-accent-dark: #d85841;
  --mf-accent-soft: #fff0ec;
  --mf-shadow: 0 24px 55px rgba(28, 53, 130, .11);
  --mf-shadow-soft: 0 12px 30px rgba(29, 56, 135, .065);
  --mf-app-header: #182453;
  --mf-app-header-border: rgba(255,255,255,.13);
  --mf-app-header-text: #f4f7ff;
  --mf-app-header-soft: #c9d4fa;
  --mf-app-header-hover: rgba(255,255,255,.08);
  --mf-app-header-active: rgba(255,255,255,.14);
  font-family: "MF Manrope", "Segoe UI", sans-serif;
  background: radial-gradient(circle at 76% 7%, #e4ebff 0, transparent 31%), var(--mf-bg);
  color: var(--mf-text);
}
body.mf-theme-horizonte {
  --mf-bg: #f6f4ef;
  --mf-bg-soft: #eeeae1;
  --mf-surface: #fffefa;
  --mf-surface-strong: #fffefa;
  --mf-surface-soft: #f8f8f2;
  --mf-border: #d9e3de;
  --mf-border-strong: #bdccc4;
  --mf-text: #17313b;
  --mf-text-soft: #39535a;
  --mf-text-muted: #5e737b;
  --mf-primary: #08766e;
  --mf-primary-dark: #065c55;
  --mf-primary-soft: #e5f2ec;
  --mf-accent: #dc8759;
  --mf-accent-dark: #b86840;
  --mf-accent-soft: #fff0e6;
  --mf-shadow: 0 24px 55px rgba(22, 53, 59, .09);
  --mf-shadow-soft: 0 10px 26px rgba(22, 53, 59, .055);
  --mf-app-header: #fffefa;
  --mf-app-header-border: #d9e3de;
  --mf-app-header-text: #17313b;
  --mf-app-header-soft: #5e737b;
  --mf-app-header-hover: #f1f5ee;
  --mf-app-header-active: #e5f2ec;
  --mf-sidebar-muted: #abc5be;
  font-family: "MF DM Sans", "Segoe UI", sans-serif;
  background: var(--mf-bg);
  color: var(--mf-text);
}

/* One component vocabulary across the four product areas. */
body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-card,.mf-panel,.mf-table-card,.mf-filter-card) {
  background: var(--mf-surface);
  border-color: var(--mf-border);
  box-shadow: var(--mf-shadow-soft);
  backdrop-filter: none;
}
body.mf-theme-pulso :is(.mf-card,.mf-panel,.mf-table-card,.mf-filter-card) { border-radius: 1.35rem; }
body.mf-theme-horizonte :is(.mf-card,.mf-panel,.mf-table-card,.mf-filter-card) { border-radius: 1rem; }
body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-page-title,.mf-heading,.mf-section-title,.mf-admin-title,.mf-superadmin-title) {
  color: var(--mf-text);
  letter-spacing: -.045em;
  line-height: 1.13;
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-page-subtitle,.mf-subtitle,.mf-section-description,.mf-card-copy,.mf-table-copy,.mf-note) {
  color: var(--mf-text-muted);
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-btn-primary,.mf-btn-secondary,.mf-btn-ghost) {
  min-height: 2.7rem;
  border-radius: .78rem;
  font-weight: 700;
  letter-spacing: -.01em;
}
body.mf-theme-pulso :is(.mf-btn-primary,.mf-btn-secondary,.mf-btn-ghost) { border-radius: .92rem; }
body:is(.mf-theme-pulso,.mf-theme-horizonte) .mf-btn-primary {
  background: var(--mf-primary);
  border-color: var(--mf-primary);
  color: #fff;
  box-shadow: 0 9px 18px color-mix(in srgb, var(--mf-primary) 20%, transparent);
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) .mf-btn-primary:hover {
  background: var(--mf-primary-dark);
  border-color: var(--mf-primary-dark);
  box-shadow: 0 11px 22px color-mix(in srgb, var(--mf-primary) 24%, transparent);
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) .mf-btn-secondary {
  background: var(--mf-surface);
  border-color: var(--mf-border);
  color: var(--mf-text);
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) .mf-btn-secondary:hover {
  background: var(--mf-primary-soft);
  border-color: var(--mf-border-strong);
  color: var(--mf-primary-dark);
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-input,.mf-select,.mf-textarea) {
  border-color: var(--mf-border-strong);
  background: var(--mf-surface);
  color: var(--mf-text);
  border-radius: .7rem;
}
body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-input,.mf-select,.mf-textarea):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--mf-primary) 24%, transparent);
  outline-offset: 1px;
  border-color: var(--mf-primary);
}

/* Pulso: public and employee. */
body.mf-theme-pulso .mf-navbar-public {
  background: rgba(255,255,255,.94);
  border-color: var(--mf-border);
  box-shadow: 0 5px 22px rgba(31,52,118,.045);
}
body.mf-theme-pulso .mf-public-nav-inner { min-height: 4.25rem; }
body.mf-theme-pulso .mf-public-links {
  border: 1px solid var(--mf-border);
  border-radius: 999px;
  padding: .22rem .42rem;
  background: #fff;
}
body.mf-theme-pulso .mf-public-link { color: var(--mf-text-soft); }
body.mf-theme-pulso .mf-public-link:hover { color: var(--mf-primary); background: var(--mf-primary-soft); }
body.mf-theme-pulso .mf-public-hero {
  background: radial-gradient(circle at 72% 18%, #e4ebff 0, transparent 47%);
}
body.mf-theme-pulso .mf-public-title {
  color: var(--mf-text);
  max-width: 12ch;
  letter-spacing: -.06em;
  line-height: 1.06;
  text-wrap: balance;
}
body.mf-theme-pulso .mf-public-lead { color: var(--mf-text-muted); max-width: 32rem; }
body.mf-theme-pulso .mf-public-preview-window {
  background: #182453;
  color: #f4f7ff;
  border-color: #22356f;
  border-radius: 1.4rem;
  box-shadow: 0 28px 56px rgba(20,34,71,.19);
}
body.mf-theme-pulso .mf-public-proof-card { background: #fff; border-color: var(--mf-border); }
body.mf-theme-pulso .mf-app-header { background: #182453; }
body.mf-theme-pulso .mf-app-link { color: #eef2ff; }
body.mf-theme-pulso .mf-app-link:hover,
body.mf-theme-pulso .mf-app-link.is-active { background: #ffffff24; color: #fff; }
body.mf-theme-pulso .mf-employee-page .mf-card,
body.mf-theme-pulso .mf-employee-page .mf-table-card {
  background: #fff;
  border-color: var(--mf-border);
  box-shadow: var(--mf-shadow-soft);
}
body.mf-theme-pulso .mf-employee-page .mf-employee-primary-card {
  background: linear-gradient(135deg, #e4ebff, #ffffff 58%);
  border-color: #ccd9fb;
}
body.mf-theme-pulso .mf-employee-page .mf-action-button--start {
  background: #3158e8;
  color: #fff;
}
body.mf-theme-pulso .mf-employee-page .mf-action-button--resume { background: #2449c8; }
body.mf-theme-pulso .mf-employee-page .mf-employee-primary-title { color: var(--mf-text); }
body.mf-theme-pulso .mf-user-avatar { background: #3158e8; }

/* Horizonte: the calmer operational workspace. */
body.mf-theme-horizonte .mf-app-shell { background: var(--mf-bg); }
body.mf-theme-horizonte .mf-app-sidebar {
  background: #17333b;
  border-color: #26454b;
  color: #e6f4ef;
  box-shadow: none;
}
body.mf-theme-horizonte .mf-sidebar-label {
  color: #aac8c0;
  font-size: .66rem;
  letter-spacing: .13em;
  font-weight: 700;
}
body.mf-theme-horizonte .mf-sidebar-nav { gap: .2rem; }
body.mf-theme-horizonte .mf-sidebar-link {
  color: #e3efeb;
  border-color: transparent;
  border-radius: .62rem;
  padding: .62rem .74rem;
  box-shadow: none;
}
body.mf-theme-horizonte .mf-sidebar-link-title {
  font-family: "MF DM Sans", "Segoe UI", sans-serif;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.28;
}
body.mf-theme-horizonte .mf-sidebar-link-note { display: none; }
body.mf-theme-horizonte .mf-sidebar-link:hover,
body.mf-theme-horizonte .mf-sidebar-link.is-active {
  color: #fff;
  background: #ffffff20;
  border-color: transparent;
  box-shadow: none;
}
body.mf-theme-horizonte .mf-sidebar-icon { color: #aac8c0; width: 1rem; height: 1rem; }
body.mf-theme-horizonte .mf-sidebar-link.is-active .mf-sidebar-icon { color: #fff; }
body.mf-theme-horizonte .mf-sidebar-surface {
  background: #ffffff0d;
  border-color: #ffffff1a;
  box-shadow: none;
  border-radius: .85rem;
}
body.mf-theme-horizonte .mf-sidebar-section > summary { color: #aac8c0; }
body.mf-theme-horizonte .mf-app-topbar {
  background: #fffefa;
  border-color: var(--mf-border);
  color: var(--mf-text);
  backdrop-filter: none;
}
body.mf-theme-horizonte .mf-topbar-title { color: var(--mf-text); }
body.mf-theme-horizonte .mf-topbar-chip { background: var(--mf-surface-soft); border-color: var(--mf-border); }
body.mf-theme-horizonte .mf-user-avatar { background: var(--mf-primary); color: #fff; }
body.mf-theme-horizonte .mf-admin-hero,
body.mf-theme-horizonte .mf-superadmin-hero {
  background: var(--mf-surface);
  border: 1px solid var(--mf-border);
  border-radius: 1rem;
  box-shadow: var(--mf-shadow-soft);
}
body.mf-theme-horizonte .mf-admin-hero::after,
body.mf-theme-horizonte .mf-superadmin-hero::after { display: none; }
body.mf-theme-horizonte .mf-admin-command-card,
body.mf-theme-horizonte .mf-superadmin-command-card,
body.mf-theme-horizonte .mf-admin-dashboard .mf-admin-card,
body.mf-theme-horizonte .mf-admin-dashboard .mf-admin-priority-map {
  background: var(--mf-surface);
  border-color: var(--mf-border);
  border-radius: 1rem;
  box-shadow: var(--mf-shadow-soft);
}
body.mf-theme-horizonte .mf-admin-kpi,
body.mf-theme-horizonte .mf-superadmin-kpi {
  background: var(--mf-surface);
  border-color: var(--mf-border);
  border-radius: 1rem;
  box-shadow: var(--mf-shadow-soft);
}
body.mf-theme-horizonte .mf-kpi-value,
body.mf-theme-horizonte .mf-admin-kpi strong,
body.mf-theme-horizonte .mf-superadmin-kpi strong { color: var(--mf-text); }
body.mf-theme-horizonte .mf-sidebar-toggle { color: var(--mf-text); }

/* Dark mode keeps the chosen role identity and sufficient contrast. */
.dark body.mf-theme-pulso {
  --mf-bg: #101933;
  --mf-bg-soft: #172247;
  --mf-surface: #1a2648;
  --mf-surface-strong: #1a2648;
  --mf-surface-soft: #202e54;
  --mf-border: #34456e;
  --mf-border-strong: #52658b;
  --mf-text: #f2f5ff;
  --mf-text-soft: #d3def7;
  --mf-text-muted: #b0c0df;
  --mf-primary: #8aa6ff;
  --mf-primary-dark: #acc0ff;
  --mf-primary-soft: #2b3e77;
  --mf-shadow: none;
  --mf-shadow-soft: none;
  background: #101933;
}
.dark body.mf-theme-horizonte {
  --mf-bg: #13272c;
  --mf-bg-soft: #173039;
  --mf-surface: #1d383e;
  --mf-surface-strong: #1d383e;
  --mf-surface-soft: #254149;
  --mf-border: #35545a;
  --mf-border-strong: #57737a;
  --mf-text: #f0f5f1;
  --mf-text-soft: #d2e1da;
  --mf-text-muted: #b3c9c3;
  --mf-primary: #67c5b2;
  --mf-primary-dark: #8bdac8;
  --mf-primary-soft: #254d4b;
  --mf-shadow: none;
  --mf-shadow-soft: none;
  background: #13272c;
}
.dark body:is(.mf-theme-pulso,.mf-theme-horizonte) .mf-btn-primary { color: #10232d; }
.dark body.mf-theme-horizonte .mf-app-topbar { background: #1d383e; }
.dark body.mf-theme-pulso .mf-navbar-public,
.dark body.mf-theme-pulso .mf-public-links,
.dark body.mf-theme-pulso .mf-employee-page .mf-card,
.dark body.mf-theme-pulso .mf-employee-page .mf-table-card { background: var(--mf-surface); }
.dark body.mf-theme-pulso .mf-navbar-public .mf-brand-title,
.dark body.mf-theme-pulso .mf-navbar-public .mf-public-link { color: var(--mf-text); }
.dark body.mf-theme-pulso .mf-public-hero { background: radial-gradient(circle at 72% 18%, #25396e, transparent 47%), #101933; }
.dark body.mf-theme-pulso .mf-public-proof-card { background: var(--mf-surface); border-color: var(--mf-border); }
.dark body.mf-theme-pulso .mf-employee-page .mf-employee-primary-card { background: #202e54; }
.dark body.mf-theme-horizonte .mf-admin-hero,
.dark body.mf-theme-horizonte .mf-superadmin-hero,
.dark body.mf-theme-horizonte .mf-admin-command-card,
.dark body.mf-theme-horizonte .mf-superadmin-command-card,
.dark body.mf-theme-horizonte .mf-admin-dashboard .mf-admin-card,
.dark body.mf-theme-horizonte .mf-admin-dashboard .mf-admin-priority-map { background: var(--mf-surface); }

@media (max-width: 1023px) {
  body.mf-theme-horizonte .mf-app-sidebar { box-shadow: 18px 0 42px rgba(5,30,34,.25); }
  body.mf-theme-pulso .mf-public-links { border: 0; padding: 0; }
}
@media (max-width: 1279px) {
  body.mf-theme-pulso .mf-register-intro { display: none; }
}
@media (min-width: 768px) {
  body.mf-theme-horizonte .mf-attendance-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.mf-theme-horizonte .mf-antifraud-kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body.mf-theme-horizonte .mf-attendance-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.mf-theme-horizonte .mf-attendance-kpi-grid .mf-kpi { min-width: 0; padding: .75rem; }
  body.mf-theme-horizonte .mf-attendance-kpi-grid .mf-kpi-label { overflow-wrap: anywhere; }
  body.mf-theme-horizonte .mf-antifraud-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.mf-theme-horizonte .mf-antifraud-kpi-grid .mf-kpi { min-width: 0; padding: .75rem; }
  body.mf-theme-horizonte .mf-antifraud-kpi-grid .mf-kpi-label { overflow-wrap: anywhere; }
  body.mf-theme-pulso .mf-public-title { max-width: none; }
  body.mf-theme-horizonte .mf-sidebar-link { min-height: 2.7rem; }
  body:is(.mf-theme-pulso,.mf-theme-horizonte) :is(.mf-btn-primary,.mf-btn-secondary) { min-height: 2.75rem; }
  body.mf-theme-pulso .mf-employee-page:not(.mf-employee-shell) .mf-employee-hero-card { order: 0; }
  body.mf-theme-horizonte .mf-admin-dashboard-hero .mf-admin-subtitle,
  body.mf-theme-horizonte .mf-admin-dashboard-hero .mf-live-refresh-status,
  body.mf-theme-horizonte .mf-admin-dashboard-hero .mf-admin-account-grid { display: none; }
  body.mf-theme-horizonte .mf-admin-dashboard-hero .mf-admin-quick-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.mf-theme-horizonte .mf-admin-dashboard-hero .mf-admin-quick-nav .mf-anchor-link { grid-column: 1 / -1; text-align: center; }
  body.mf-theme-horizonte .mf-admin-review-priority .mf-section-description { display: none; }
}
