/* Yaxché · aplicación del estándar compartido al ERP. Solo pantalla.
   tokens.css conserva los valores del aplicativo de Asistencias/Extractor.
   Los nombres heredados se vinculan aquí; marca y estados permanecen separados. */
@media screen {
html[data-diseno="yaxche-claro"] {
 --ui-font:var(--yx-fuente);--ui-shadow:var(--yx-sombra);--ui-ring:0 0 0 3px #087f6c22;
 --negro:var(--yx-texto);--gris:var(--yx-texto-secundario);--gris2:var(--yx-texto-secundario);
 --bg:var(--yx-fondo);--card:var(--yx-panel);--linea:var(--yx-borde);
 --sidebar:var(--yx-navegacion);--sidebartx:var(--yx-navegacion-texto);
 --guinda:var(--yx-marca-guinda);--ui-green:var(--yx-accion);
 --ui-surface:var(--yx-fondo);--ui-border:var(--yx-borde);
 --ok:var(--yx-confirmacion-texto);--warn:var(--yx-atencion-texto);--bad:var(--yx-error-texto);
}
body {font-family:var(--yx-fuente);font-size:14px;line-height:1.5;color:var(--yx-texto);background:var(--yx-fondo)}
button,input,select,textarea {font-family:var(--yx-fuente)}
input:not([aria-invalid="true"]):focus,select:not([aria-invalid="true"]):focus,textarea:not([aria-invalid="true"]):focus {border-color:var(--yx-foco)!important;outline:3px solid var(--yx-foco);outline-offset:2px}
::selection {background:#bbe0a5;color:var(--yx-texto)}
:focus-visible {outline:3px solid var(--yx-foco);outline-offset:3px}
:where(button,a,input,select,textarea) {touch-action:manipulation}
body>aside {background:var(--yx-navegacion);color:var(--yx-navegacion-texto);border-right:0;box-shadow:none;width:252px;flex-basis:252px;scrollbar-color:#839d91 transparent}
body>aside .brand {padding:24px 20px;background:none;border-bottom:1px solid #ffffff26;grid-template-columns:52px 1fr;gap:0 12px}
body>aside .brand-logo {width:52px;height:52px;max-width:none;border-radius:0;box-shadow:none;filter:none}
body>aside .brand .n {font:600 24px/1.2 var(--yx-fuente);letter-spacing:-.02em;color:#fff}
body>aside .brand .s {font:400 12px/1.5 var(--yx-fuente);color:#e1e7df;letter-spacing:0;margin-top:4px}
body>aside #nav {padding:16px 12px}
body>aside #nav a {min-height:44px;padding:11px 12px;margin:4px 0;color:#fff;font-size:14px;border-radius:7px;border-left:3px solid transparent;line-height:1.5;box-shadow:none}
body>aside #nav a .ic {width:20px;font-size:16px}
body>aside #nav a small {font-size:12px;color:#e1e7df;opacity:1}
body>aside #nav a.active {background:var(--yx-navegacion-activa);border-left-color:var(--yx-navegacion-marca);color:#fff;font-weight:600}
body>aside #nav a:hover,body>aside .toggle button:not(:disabled):hover,body>aside .toggle button.on:not(:disabled):hover {background:#36594d!important;color:#fff!important;border-color:#bbe0a5!important}
body>aside :is(a,button):not(:disabled):focus-visible,body>aside #nav a.active:focus-visible,body>aside .toggle button.on:focus-visible,body>aside :is(a,button):not(:disabled):hover:focus-visible {outline:3px solid #bbe0a5;outline-offset:-3px}
body>aside>a {background:var(--yx-navegacion-activa)!important;border:1px solid #ffffff4d;box-shadow:none;font-size:14px!important;min-height:44px}
body>aside .rolebox {border-color:#ffffff26;padding:16px}
body>aside .rolebox label,body>aside .side-foot {color:#e1e7df;font-size:12px;letter-spacing:0}
body>aside .toggle button,body>aside #usrTag {min-height:44px;font-size:12px!important;color:#fff;border-color:#ffffff70;line-height:1.4}
body>aside .toggle button.on {background:var(--yx-navegacion-activa);border-color:#bbe0a5;color:#fff}
body>aside .side-foot {border-color:#ffffff26;padding:16px;line-height:1.7}
body:not(.portal-ui)>main>header.top {padding:16px 28px;gap:12px;flex-wrap:wrap;align-items:center;flex:0 0 auto;border-bottom:1px solid var(--yx-borde);box-shadow:none;background:#fff;color:var(--yx-texto)}
.yx-marca-corporativa {width:180px;height:auto;object-fit:contain;flex-shrink:0;background:#fff;filter:none}
body:not(.portal-ui)>main>header.top .yx-marca-corporativa {margin-right:8px}
body:not(.portal-ui)>main>header.top h1 {font-size:18px;color:var(--yx-texto);font-weight:600;letter-spacing:-.02em;max-width:none}
body:not(.portal-ui)>main>header.top .crumb,body:not(.portal-ui)>main>header.top .date,body:not(.portal-ui)>main>header.top .reloj {font-size:12px;color:var(--yx-texto-secundario)}
#selloVersion {font-size:12px!important;color:var(--yx-texto-secundario)!important;margin-left:0!important;flex:1 1 100%;order:10}
#folioBusca {min-height:44px;font-size:14px!important;border-color:var(--yx-borde-control)!important;border-radius:7px!important;max-width:100%!important;box-shadow:none}
.roletag {font-size:12px;border-radius:7px}
.roletag.dg,.roletag.tt {color:var(--yx-texto-secundario);background:var(--yx-neutral-fondo);border:1px solid var(--yx-borde)}
body:not(.portal-ui)>main>.wrap {padding:28px 32px 88px;max-width:1600px}
.yx-welcome {gap:24px;border-color:var(--yx-borde);padding-bottom:24px;margin-bottom:24px}
.yx-welcome h2 {font-size:32px;line-height:1.2;font-weight:600;letter-spacing:-.035em;color:var(--yx-texto)}
.yx-welcome>div>p:last-child {font-size:15px;color:var(--yx-texto-secundario)}
.yx-eyebrow {font-size:12px;color:var(--yx-marca-guinda);letter-spacing:.08em}
.yx-quick-capture {background:var(--yx-accion);font-size:14px;border-radius:7px;min-height:44px}
.yx-section-heading h2 {font-size:20px;color:var(--yx-texto);font-weight:600}
.yx-section-heading>span {font-size:12px;color:var(--yx-texto-secundario)}
.yx-area-card {border-color:var(--yx-borde);border-radius:11px;padding:20px;min-height:128px;box-shadow:var(--yx-sombra)}
.yx-area-body strong {font-size:16px;color:var(--yx-texto);font-weight:600}
.yx-area-body small {font-size:14px;color:var(--yx-texto-secundario);line-height:1.5}
.yx-area-index,.yx-area-arrow {color:var(--yx-texto-secundario)}
.yx-area-index {font-size:12px}
.yx-summary {background:var(--yx-neutral-fondo);border-color:var(--yx-borde);border-radius:11px}
.yx-summary .home-heading h2.sec {color:var(--yx-texto);font-size:20px}
.yx-summary .home-heading h2 small,.yx-summary .k .sub,.yx-summary .k-link {color:var(--yx-texto-secundario);font-size:12px}
.yx-summary .k .l {font-size:12px;letter-spacing:0;text-transform:none}
.yx-summary .k .v {font-size:32px;color:var(--yx-texto)}
.yx-summary .home-tools button,.yx-summary .home-tools a {min-height:44px;font-size:14px}
.yx-summary .home-tools button[aria-pressed=true] {background:var(--yx-accion);color:#fff}
:is(.k,.tile,.mcard,.tbc,.ncard,.alerts) {background:var(--yx-panel);border-color:var(--yx-borde);border-radius:11px;box-shadow:var(--yx-sombra);background-image:none}
h2.sec {font-size:20px;color:var(--yx-texto);line-height:1.4;font-weight:600;padding-bottom:12px;margin-bottom:20px;border-color:var(--yx-borde)}
.k .l,.k .sub,.tile .mods,.alert .dom,.mcard .mk .meta,.nbar .meta,.tbc .sub,.fin-mini {font-size:12px;color:var(--yx-texto-secundario)}
.k .v,.tbn {font:600 32px/1.2 var(--yx-fuente);font-variant-numeric:tabular-nums}
.tile .th .t,.mcard .mt {font-size:16px;line-height:1.4;font-weight:600}
.tile .kp,.mcard .md,.mcard .mk,.alert,.tbpie,.fin-sec {font-size:14px;line-height:1.5}
.mcard {padding:20px;gap:12px}
.mcard .act {flex-wrap:wrap;align-items:center}
.mcard .mk b,.tile .kp b {color:var(--yx-texto)}
.tag {font-size:12px;padding:3px 8px;border-radius:5px;letter-spacing:0;text-transform:none;background:var(--yx-neutral-fondo);color:var(--yx-texto-secundario)}
.tag.nativo,.tag.folder,.tag.dg {background:var(--yx-neutral-fondo);color:var(--yx-texto-secundario)}
.tag.live {background:var(--yx-confirmacion-fondo);color:var(--yx-confirmacion-texto)}
.tag.soon {background:var(--yx-atencion-fondo);color:var(--yx-atencion-texto)}
/* Botones existentes: mismo comportamiento, una apariencia compartida. */
:is(.mcard .act,.vbar) :is(a,button),.nbar .back,.fin-tabs button,.fin-btn,.vfall .bb {min-height:44px;font-size:14px;line-height:1.4;border-radius:7px;padding:10px 14px;border-color:var(--yx-borde-control)}
.mcard .act a.p,.mcard .act button.p,.vbar a.p,.vbar button.p,.fin-btn.p,.fin-tabs button.on,.vfall .bb {background:var(--yx-accion);color:#fff;border-color:var(--yx-accion)}
.nbar button[onclick^="accionNuevoDoc"] {background:var(--yx-accion)!important;border-radius:7px!important;min-height:44px;font-size:14px!important}
.fin-tabs {gap:8px}
.fin-tabs button {border-radius:7px}
:is(.nbar,.dyhbar,.fin-form) :is(input:not([type=checkbox]),select,textarea) {font-size:14px;min-height:44px;border-radius:7px;border-color:var(--yx-borde-control)}
.fin-form {background:#fff;border:1px solid var(--yx-borde);border-radius:11px;padding:16px;gap:16px}
.fin-form label {font-size:12px;letter-spacing:0;text-transform:none;line-height:1.5}
.fin-form input[type=checkbox] {accent-color:var(--yx-accion)}
.fin-num {font-family:var(--yx-fuente);font-variant-numeric:tabular-nums;text-align:right}
:is(.ntab,.dyh) {font-size:14px}
:is(.ntab,.dyh) th {background:var(--yx-neutral-fondo);color:var(--yx-texto-secundario);font-size:12px;font-weight:600;letter-spacing:.02em;border-bottom:1px solid var(--yx-borde-control);padding:12px;box-shadow:none}
:is(.ntab,.dyh) td {padding:12px;border-color:var(--yx-borde)}
.ntab tr:hover td,.dyh tbody tr:hover {background:var(--yx-fondo)}
.ncard {max-width:100%;overflow:auto;overscroll-behavior:contain}
.fin-sec h3 {font-size:18px;font-weight:600;color:var(--yx-texto)}
.alert .go,.yxc .cx-link,.mf .mf-link {color:var(--yx-enlace);font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.fin-nivel,.fin-est {font-size:12px;border-radius:5px}
/* RH, conciliación y folios consumen los mismos tokens, incluidos sus diálogos. */
:is(#chHub,.rh-dialog,.rh-document-viewer) {
 --rh-accent:var(--yx-accion);--rh-soft:var(--yx-neutral-fondo);
 --rh-brand:var(--yx-accion);--rh-brand-soft:var(--yx-neutral-fondo);--rh-brand-line:var(--yx-borde-control);
 --rh-ink:var(--yx-texto);--rh-muted:var(--yx-texto-secundario);--rh-line:var(--yx-borde);--rh-line-strong:var(--yx-borde-control);
 --rh-surface:var(--yx-fondo);--rh-surface-raised:var(--yx-panel);--rh-focus:var(--yx-foco);
 --rh-red-bg:var(--yx-error-fondo);--rh-red-ink:var(--yx-error-texto);--rh-red-line:var(--yx-error-texto);
 --rh-green-bg:var(--yx-confirmacion-fondo);--rh-green-ink:var(--yx-confirmacion-texto);--rh-green-line:var(--yx-confirmacion-texto);
 --rh-yellow-bg:var(--yx-atencion-fondo);--rh-yellow-ink:var(--yx-atencion-texto);--rh-yellow-line:var(--yx-atencion-texto);
}
.yxc,#cx-dialog {--cx-ink:var(--yx-texto);--cx-muted:var(--yx-texto-secundario);--cx-green:var(--yx-accion);--cx-red:var(--yx-error-texto)}
.mf {--mf-accent:var(--yx-accion)}
#chHub .rh-title,.yxc h2,.mf h2 {font:600 32px/1.2 var(--yx-fuente);color:var(--yx-texto)}
#chHub .rh-description,#chHub .rh-card p,.rh-dialog .rh-help {font-size:14px;color:var(--yx-texto-secundario)}
#chHub .rh-eyebrow {font-size:12px;color:var(--yx-marca-guinda)}
#chHub .rh-stat {border:1px solid var(--yx-borde)}
#chHub .rh-stat:first-child {border-top-color:var(--yx-borde)}
#chHub .rh-stat .rh-label,#chHub .rh-stat p {font-size:12px}
#chHub .rh-links button[aria-current=page] {color:var(--yx-accion);box-shadow:inset 0 -2px var(--yx-accion)}
#chHub :is(.rh-groups,.rh-links,.rh-subnav) button {font-size:14px}
:is(#chHub,.rh-dialog) .rh-btn,.yxc .cx-btn,#cx-dialog .cx-btn,.mf button {font-size:14px;min-height:44px;border-radius:7px;border-color:var(--yx-borde-control)}
:is(#chHub,.rh-dialog) .rh-btn.rh-primary,#chHub .fin-btn.p,.yxc .cx-primary {background:var(--yx-accion);border-color:var(--yx-accion);color:#fff}
:is(#chHub,.rh-dialog) .rh-btn.rh-primary:hover {background:var(--yx-navegacion)}
:is(#chHub,.rh-dialog) .rh-table,.yxc table,.mf table {font-size:14px}
:is(#chHub,.rh-dialog) .rh-table th,.yxc th,.mf th {font-size:12px;background:var(--yx-neutral-fondo);color:var(--yx-texto-secundario);border-color:var(--yx-borde)}
:is(#chHub,.rh-dialog) .rh-status {font-size:12px}
:is(#chHub,.rh-dialog) .rh-status.rh-good {color:var(--yx-confirmacion-texto);background:var(--yx-confirmacion-fondo)}
:is(#chHub,.rh-dialog) .rh-status.rh-warn {color:var(--yx-atencion-texto);background:var(--yx-atencion-fondo)}
:is(#chHub,.rh-dialog) .rh-status.rh-bad {color:var(--yx-error-texto);background:var(--yx-error-fondo)}
:is(#chHub,.rh-dialog) .rh-alert {background:var(--yx-atencion-fondo);border-left-color:var(--yx-atencion-texto)}
:is(#chHub,.rh-dialog) .rh-alert.rh-error {background:var(--yx-error-fondo);border-left-color:var(--yx-error-texto)}
:is(#chHub,.rh-dialog) .rh-alert.rh-success {background:var(--yx-confirmacion-fondo);border-left-color:var(--yx-confirmacion-texto)}
:is(#chHub,.rh-dialog) :is(.rh-toolbar input,.rh-toolbar select,.rh-field input,.rh-field select,.rh-field textarea) {border-color:var(--yx-borde-control);font-size:14px;min-height:44px}
:is(#chHub,.rh-dialog) .rh-table-wrap:focus-visible,:is(#chHub,.rh-dialog,.yxc,#cx-dialog,.mf,.portal-ui) :is(button,a,input,select,textarea):focus-visible {outline:3px solid var(--yx-foco);outline-offset:3px}
/* Ventanas del ERP y acceso: no modifica validaciones ni gestión de sesión. */
:is(#loginOverlay,#cpOverlay,#taOverlay)>div {background-image:none!important}
#loginOverlay>div {padding:32px!important;border-radius:11px!important;box-shadow:0 16px 64px #14352b40!important}
#loginOverlay .yx-marca-acceso {display:block;width:228px;height:auto;max-width:100%;margin:0 0 24px;background:#fff}
#loginOverlay .yx-titulo-acceso {font-size:24px!important;line-height:1.3;font-weight:600!important;padding-right:0!important}
#loginOverlay input {font-size:14px!important;border:1px solid var(--yx-borde-control)!important;border-radius:7px!important;min-height:44px}
#loginOverlay>div>button {min-height:44px;background:var(--yx-accion)!important;border-radius:7px!important;font-size:14px!important}
#loginOverlay #lg_error {color:var(--yx-error-texto)!important;font-size:14px!important}
.viewer .vbar {border-bottom:1px solid var(--yx-borde);border-radius:11px 11px 0 0}
#fabAdjuntar {background:var(--yx-accion)!important}
#fabAdjuntar:focus-visible {outline:3px solid var(--yx-foco)}
:is(.yx-welcome,.yx-areas,.yx-summary) :is(a,button):focus-visible {outline:3px solid var(--yx-foco);outline-offset:3px}
/* Portal del colaborador: misma identidad, densidad adaptada a tareas breves. */
body.portal-ui {background:var(--yx-fondo);font-family:var(--yx-fuente)}
.portal-ui .topbar {background:#fff;border-bottom:1px solid var(--yx-borde);color:var(--yx-texto);flex-wrap:wrap;gap:20px}
.portal-ui .brand {color:var(--yx-texto);font-family:var(--yx-fuente);border:0;background:none;padding:0}
.portal-ui .brand img {width:52px;height:52px;border-radius:0}
.portal-ui .brand .brand-word small {color:var(--yx-texto-secundario);font:400 12px/1.5 var(--yx-fuente);letter-spacing:0}
.portal-ui .portal-label {color:var(--yx-accion);border-color:var(--yx-borde-control)}
.portal-ui .topbar .yx-marca-corporativa {margin-left:auto}
.portal-ui .topbar button {color:var(--yx-texto);border-color:var(--yx-borde-control);font-size:14px}
.portal-ui .primary {background:var(--yx-accion);border-color:var(--yx-accion)}
.portal-ui .primary:hover {background:var(--yx-navegacion);border-color:var(--yx-navegacion)}
.portal-ui .login {border:1px solid var(--yx-borde);border-radius:11px;box-shadow:var(--yx-sombra)}
.portal-ui :is(input,select,textarea) {border-color:var(--yx-borde-control);min-height:44px;font-size:16px;border-radius:7px}
.portal-ui .eyebrow {font-size:12px;color:var(--yx-marca-guinda)}
.portal-ui h1 {font-size:32px;font-weight:600}
.portal-ui .overview .card:first-child {border-top-color:var(--yx-accion)}
/* Estado de fuerza: conserva Extractor y Asistencia en grupos separados. */
#efHub,.ef-drawer {--ef-ink:var(--yx-texto);--ef-muted:var(--yx-texto-secundario);--ef-line:var(--yx-borde);--ef-card:var(--yx-panel);font-family:var(--yx-fuente);color:var(--yx-texto)}
#efHub {flex-direction:column;min-height:0}
#efHub .ef-side {width:100%;flex:none;flex-direction:row;flex-wrap:wrap;gap:12px;padding:0 0 16px;background:transparent;color:var(--yx-texto);overflow:visible}
#efHub .ef-block {flex:1 1 220px;padding:12px;border-color:var(--yx-borde);border-radius:11px;background:var(--yx-panel);display:flex;flex-wrap:wrap;gap:8px}
#efHub .ef-block h2 {width:100%;padding:0;margin:0 0 4px;color:var(--yx-texto-secundario)}
#efHub .ef-block .ef-nav {width:auto;flex:1;color:var(--yx-texto);background:var(--yx-neutral-fondo);border-radius:7px}
#efHub .ef-block .ef-nav[aria-current=page] {background:var(--yx-accion);color:white}
#efHub .ef-main {padding:0;background:transparent}
#efHub .ef-chip,.ef-drawer .ef-chip {border-color:var(--yx-borde-control);color:var(--yx-texto);border-radius:7px}
#efHub .ef-chip.ef-primary,#efHub .ef-cta,.ef-drawer .ef-cta {background:var(--yx-accion);border-color:var(--yx-accion);color:white;border-radius:7px}
.ef-drawer>.ef-panel {background:var(--yx-fondo);color:var(--yx-texto);font-family:var(--yx-fuente)}
.ef-drawer input,.ef-drawer select,.ef-drawer textarea {border-color:var(--yx-borde-control);font:inherit;font-size:16px}
#efHub .ef-pill.bad {background:var(--yx-error-fondo);color:var(--yx-error-texto)}
#efHub .ef-pill.warn {background:var(--yx-atencion-fondo);color:var(--yx-atencion-texto)}
#efHub .ef-pill.ok {background:var(--yx-confirmacion-fondo);color:var(--yx-confirmacion-texto)}
@media (max-width:1180px) and (min-width:861px) {
 body>aside {width:228px;flex-basis:228px}
 body:not(.portal-ui)>main>.wrap {padding:24px 24px 88px}
 body:not(.portal-ui)>main>header.top {padding:16px 24px}
 .yx-area-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px) {
 body>aside {width:min(82vw,300px);max-width:300px;padding-top:58px}
 #btnNav {width:44px;height:44px;color:var(--yx-accion);border-color:var(--yx-borde-control);box-shadow:none}
 body:not(.portal-ui)>main {padding:60px 0 0}
 body:not(.portal-ui)>main>header.top {padding:16px;gap:12px;position:static}
 body:not(.portal-ui)>main>header.top .yx-marca-corporativa {width:172px;margin-right:calc(100% - 172px)}
 body:not(.portal-ui)>main>header.top h1 {flex:0 1 auto;font-size:18px}
 #selloVersion {flex:1 1 100%;order:10}
 #folioBusca {width:100%!important;flex:1 1 100%;order:11}
 body:not(.portal-ui)>main>.wrap {padding:24px 16px 88px}
 .yx-welcome h2,#chHub .rh-title,.yxc h2,.mf h2 {font-size:30px}
 .yx-welcome {padding:0 0 24px;gap:20px}
 .yx-section-heading {flex-wrap:wrap;gap:8px;align-items:baseline}
 .yx-section-heading>span {max-width:none;text-align:left}
 .yx-summary {padding:16px}
 .yx-area-card {padding:16px}
 .mgrid,.fin-grid,.tb {grid-template-columns:minmax(0,1fr)}
 .nbar input,.fin-campo,.fin-form input,.fin-form select {min-width:0;max-width:100%}
 .nbar input {flex:1 1 100%}
 .viewer {padding:12px}
 .portal-ui .topbar {padding:16px;gap:16px}
 .portal-ui .topbar .yx-marca-corporativa {width:160px;margin-left:0}
}
@media (max-width:460px) {
 .yx-area-grid {grid-template-columns:minmax(0,1fr)}
 .yx-area-body small {font-size:14px}
 .yx-summary .k .v {font-size:30px}
 #loginOverlay>div {padding:24px!important}
 .portal-ui .topbar .yx-marca-corporativa {width:180px}
}
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
}
