
:root{--espacio-acciones:12px;--separacion-secciones:20px;color-scheme:light;--aviso-fondo:#fff8e6;--aviso-texto:#684a0b;--aviso-borde:#ecd59b;--fondo:#f3f6fa;--superficie:#fff;--superficie-alterna:#edf2f8;--texto:#18283d;--texto-secundario:#65758b;--borde:#cbd5e1;--enlace:#06336f;--seleccion:#e5edf8;--foco:#e5a526;--sombra:0 12px 32px #001d4526}
:root[data-tema=oscuro]{color-scheme:dark;--aviso-fondo:#382d18;--aviso-texto:#ffe5a5;--aviso-borde:#80612d;--fondo:#101927;--superficie:#192638;--superficie-alterna:#223349;--texto:#edf3fc;--texto-secundario:#b2c2d7;--borde:#40536b;--enlace:#a9cfff;--seleccion:#2c4566;--sombra:0 12px 32px #0006}
@media(prefers-color-scheme:dark){:root:not([data-tema=claro]):not([data-tema=oscuro]){color-scheme:dark;--aviso-fondo:#382d18;--aviso-texto:#ffe5a5;--aviso-borde:#80612d;--fondo:#101927;--superficie:#192638;--superficie-alterna:#223349;--texto:#edf3fc;--texto-secundario:#b2c2d7;--borde:#40536b;--enlace:#a9cfff;--seleccion:#2c4566;--sombra:0 12px 32px #0006}}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--fondo);color:var(--texto)}
header{background:linear-gradient(120deg,#062e65,#001d45);color:white;padding:20px 5%}
header h2{margin:0 0 18px}
nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
nav a,nav button{color:white;text-decoration:none;background:#ffffff16;border:1px solid #ffffff25;border-radius:7px;padding:11px 15px;font-size:14px;cursor:pointer}
nav a:hover,nav button:hover{background:#ffffff30}
nav form{margin:0}
main{max-width:1250px;margin:35px auto;padding:0 20px}
.card{background:var(--superficie);border:1px solid var(--borde);border-radius:12px;margin-bottom:20px;overflow:hidden}
.card h3{background:#06336f;color:white;padding:17px;margin:0;font-size:17px}
.contenido{padding:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
a.tarjeta{text-decoration:none;color:inherit}
.tarjeta .contenido{min-height:100px}
table{width:100%;border-collapse:collapse}
th,td{padding:13px;text-align:left;border-bottom:1px solid var(--borde)}
th{background:var(--superficie-alterna)}
input,select{width:100%;padding:11px;border:1px solid var(--borde);border-radius:6px;margin:6px 0 15px}
label{font-weight:600;font-size:14px}
.btn{background:#06336f;color:white;border:0;padding:12px 17px;border-radius:7px;cursor:pointer;text-decoration:none;display:inline-block;font-size:14px}
.btn:hover{background:#0a4592}
/* Acciones compartidas: separación de campos, tablas y bloques vecinos. */
.catalogos-acciones{display:flex;align-items:center;gap:var(--espacio-acciones);flex-wrap:wrap;margin-block:var(--separacion-secciones)}
.catalogos-acciones>form{margin:0}
.catalogos-titulo>.catalogos-acciones,td .catalogos-acciones{margin:0}
form>.catalogos-acciones:last-child{margin-bottom:0}
:is(.filtros-campos,.catalogos-campos)+.btn{margin-top:var(--separacion-secciones)}
:is(form,.btn,.acciones-en-linea)+.card{margin-top:var(--separacion-secciones)}
:is(table,.tabla-scroll)+.btn{margin-top:var(--separacion-secciones)}
.btn-sm{padding:6px 12px;font-size:13px}
.btn-secondary{background:#64748b}
.btn-secondary:hover{background:#475569}
.btn-danger{background:#b42318}
.btn-danger:hover{background:#91180f}
.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600}
.badge-success{background:#e6f4ea;color:#137333}
.badge-danger{background:#fce8e6;color:#c5221f}
.badge-warning{background:#fef7e0;color:#805000}
.badge-info{background:#e8f0fe;color:#185abc}
.aviso{background:var(--aviso-fondo);color:var(--aviso-texto);border:1px solid var(--aviso-borde);padding:13px;border-radius:7px;margin-bottom:20px}
small,.muted{color:var(--texto-secundario)}
.form-row{display:flex;gap:15px;align-items:flex-end}
.form-row > *{flex:1}

.tabla-scroll{overflow-x:auto}td{overflow-wrap:anywhere}select[multiple]{min-height:130px}@media(max-width:600px){main{padding:0 12px}header{padding:18px 12px}.form-row{flex-wrap:wrap}h1{font-size:24px}}


/* Navegación jerárquica compartida: empresa y SaaS aportan enlaces separados. */
a{color:var(--enlace)}
input,select,textarea{background:var(--superficie);color:var(--texto)}
.app-cabecera{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;min-height:64px}
.app-identidad{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:16px;flex-shrink:0}
.app-identidad span{font-size:12px;color:#ccdcf1;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-areas{display:flex;gap:2px;align-items:center;flex-wrap:nowrap}
.nav-grupo{position:relative}
.nav-grupo summary{display:flex;gap:8px;align-items:center;padding:10px 9px;border-radius:6px;cursor:pointer;font-size:14px;list-style:none;color:#fff;white-space:nowrap}
.nav-grupo summary::-webkit-details-marker{display:none}
.nav-grupo summary:hover,.nav-grupo[open]>summary,.nav-grupo.nav-activo>summary{background:#ffffff20}
.nav-grupo.nav-activo>summary{box-shadow:inset 0 -3px #b3d4ff}
.nav-desplegable{position:absolute;top:calc(100% + 6px);left:0;z-index:100;width:290px;max-width:calc(100vw - 32px);max-height:70vh;overflow-y:auto;padding:7px;background:var(--superficie);border:1px solid var(--borde);border-radius:9px;box-shadow:var(--sombra);color:var(--texto)}
.nav-grupo:nth-last-child(-n+2) .nav-desplegable{left:auto;right:0}
.nav-desplegable a,.nav-desplegable button{display:block;width:100%;text-align:left;margin:0;padding:10px 12px;white-space:normal;background:transparent;border:0;border-radius:5px;color:var(--texto);font:inherit;font-size:14px}
.nav-desplegable a:hover,.nav-desplegable button:hover,.nav-desplegable a[aria-current=page]{background:var(--seleccion);color:var(--enlace)}
.nav-desplegable a[aria-current=page]{font-weight:700}
.nav-desplegable form{border-top:1px solid var(--borde);padding-top:6px}
.nav-tema{display:block;padding:10px 12px;font-weight:400;color:var(--texto-secundario)}
.nav-tema select{margin:6px 0 0;padding:8px;font-size:14px}
.nav-movil{display:none;color:#fff;background:#ffffff16;border:1px solid #ffffff50;border-radius:6px;padding:9px 12px;cursor:pointer}
:where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid var(--foco);outline-offset:3px}
.saltar-contenido{position:absolute;left:16px;top:-100px;z-index:1000;background:var(--superficie);padding:12px}
.saltar-contenido:focus{top:12px}
.layout-admin{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.pagina-contenido{min-width:0}
.layout-admin .contenido:has(>table){overflow-x:auto}
.layout-admin .contenido>table,.layout-admin .tabla-scroll table{min-width:1050px}
.layout-admin td,.layout-admin th{overflow-wrap:normal;word-break:normal}
.config-lateral{background:var(--superficie);border:1px solid var(--borde);border-radius:10px;padding:16px 10px}
.config-lateral h2{font-size:17px;margin:0 8px 6px}
.config-lateral p{font-size:12px;color:var(--texto-secundario);margin:0 8px 16px}
.config-lateral nav{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.config-lateral a{background:transparent;border:0;color:var(--texto);padding:11px 12px;font-size:14px}
.config-lateral a:hover,.config-lateral a[aria-current=page]{background:var(--seleccion);color:var(--enlace)}
.config-lateral a[aria-current=page]{font-weight:700;border-left:3px solid var(--enlace)}
/* Conserva el Flash aprobado y su temporizador; reserva su espacio antes de la barra. */
.flash-reserva:not(:has(.notificacion)){display:none}
.flash-reserva{padding:18px 18px 8px}
.flash-reserva #notificaciones{position:static;margin-left:auto;pointer-events:auto}
.flash-reserva .notificacion{background:var(--superficie);color:var(--texto)}
.flash-reserva .notificacion-cerrar{color:var(--texto-secundario)}
.flash-reserva .notificacion-cerrar:hover{color:var(--texto)}
.campo-ayuda summary{color:var(--enlace)}
@media(max-width:1100px){.app-cabecera{flex-wrap:wrap;gap:8px}.nav-areas{justify-content:space-between;width:100%}}
@media(max-width:700px){
 .app-cabecera{padding:12px 16px}.app-identidad{font-size:15px}.app-identidad span{max-width:230px}
 .nav-movil{display:block}.nav-areas{flex-direction:column;align-items:stretch;gap:3px}
 .app-cabecera[data-nav-ready=true]:not(.nav-abierta) .nav-areas{display:none}
 .nav-grupo summary{justify-content:space-between;padding:12px}.nav-desplegable,.nav-grupo:nth-last-child(-n+2) .nav-desplegable{position:static;width:100%;max-width:none;max-height:none;margin:4px 0 8px;box-shadow:none}
 .layout-admin{grid-template-columns:minmax(0,1fr);gap:18px}.config-lateral nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.config-lateral a{padding:10px}
 .flash-reserva{padding:12px 12px 2px}.flash-reserva #notificaciones{width:100%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Iconografía compartida e identidad empresarial; no cambia controles globales. */
.icono{display:inline-block;width:18px;height:18px;flex:0 0 18px;vertical-align:middle}
.nav-chevron{width:14px;height:14px;flex-basis:14px;transition:transform .15s ease}
.nav-grupo[open]>summary>.nav-chevron{transform:rotate(180deg)}
.nav-movil{align-items:center;justify-content:center;gap:7px}
.identidad-empresa.app-identidad{flex-direction:row;align-items:center;gap:10px;flex:0 1 auto;width:min(320px,38vw)}
.identidad-texto{display:flex;flex-direction:column;gap:3px;min-width:0}
.identidad-texto strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:16px}
.identidad-texto small{color:#ccdcf1;font-size:12px}
.identidad-logo{width:40px;height:40px;object-fit:contain;flex:0 0 40px;background:#fff;border-radius:5px;padding:3px}
.identidad-fallback{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;color:inherit}
.identidad-fallback .icono{width:32px;height:32px;flex-basis:32px}
.identidad-logo[hidden],.identidad-fallback[hidden]{display:none}
.identidad-vista.app-identidad{background:linear-gradient(120deg,#062e65,#001d45);color:white;border-radius:8px;padding:14px;width:100%;max-width:420px}
.identidad-campos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}
.identidad-campos>div{grid-column:span 6;min-width:0}
.identidad-campos small{display:block;line-height:1.5}
.identidad-subtitulo{font-size:17px;margin:22px 0 12px}
.identidad-acciones{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
@media(max-width:700px){.nav-movil{display:flex}.app-cabecera .identidad-empresa{width:calc(100% - 105px)}.identidad-texto strong{font-size:15px}.identidad-campos>div{grid-column:span 12}}

/* Filtros compartidos: doce columnas, tres campos por fila en escritorio. */
.filtros-global{border:1px solid var(--borde);border-radius:12px;background:var(--superficie);margin:16px 0 22px;min-width:0}
.filtros-global>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;color:var(--texto);font-weight:600}
.filtros-global>summary::-webkit-details-marker{display:none}
.filtros-global>summary:focus-visible{outline:2px solid var(--foco);outline-offset:3px;border-radius:10px}
.filtros-titulo{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.filtros-indicador{font-size:.8rem;font-weight:400;color:var(--enlace);background:var(--seleccion);padding:3px 8px;border-radius:12px}
.filtros-indicador[hidden]{display:none}
.filtros-control{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--enlace)}
.filtros-control .icono{width:14px;height:14px;flex-shrink:0}
.filtros-ocultar,.filtros-global[open] .filtros-mostrar{display:none}
.filtros-global[open] .filtros-ocultar{display:inline}
.filtros-global[open] .filtros-control .icono{transform:rotate(180deg)}
.filtros-contenido{padding:4px 18px 16px}
.filtros-campos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px 18px}
.filtros-campos>div{grid-column:span 4;min-width:0}
.filtros-campos label{display:block;margin:0;font-size:.9rem}
.filtros-campos input,.filtros-campos select{width:100%;box-sizing:border-box;margin:5px 0 0;padding:8px 10px;min-width:0}
.filtros-acciones{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.filtros-acciones .btn{padding:8px 14px;font-size:.9rem}
.filtros-contenido>.muted,.filtros-contenido form>.muted{font-size:.85rem;margin:12px 0 0}
@media(max-width:900px){.filtros-campos>div{grid-column:span 6}}
@media(max-width:600px){.filtros-campos>div{grid-column:span 12}.filtros-global>summary{padding:12px}.filtros-contenido{padding:4px 12px 14px}.filtros-indicador{font-size:.75rem}}

/* Fecha visible chilena con calendario nativo y valor ISO preservado. */
.fecha-control{position:relative;display:block;min-width:0}
.fecha-control>input[type=text]{padding-right:42px}
.fecha-control>.fecha-original{position:absolute;right:12px;bottom:12px;width:1px;height:1px;padding:0;border:0;margin:0;opacity:0;pointer-events:none}
.fecha-calendario{position:absolute;right:5px;top:8px;bottom:17px;width:32px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--enlace);border:0;border-radius:5px;cursor:pointer}
.fecha-calendario .icono{width:18px;height:18px}
.fecha-calendario:hover{background:var(--seleccion)}
.fecha-calendario:focus-visible{outline:2px solid var(--foco)}
.fecha-calendario[hidden]{display:none}
.filtros-campos .fecha-calendario{top:6px;bottom:1px}

/* Ayuda contextual compartida. */
.ayuda-boton{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;margin-left:.5rem;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;font:inherit;cursor:pointer;vertical-align:middle}
.ayuda-boton:hover{background:#ffffff26}.ayuda-boton:focus-visible{outline:3px solid var(--foco);outline-offset:3px}
.ayuda-modal{width:min(760px,calc(100% - 24px));max-height:85dvh;padding:0;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);color:var(--texto);box-shadow:var(--sombra);overflow:auto}
.ayuda-modal::backdrop{background:#00152bb3}.ayuda-encabezado{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--borde)}
.ayuda-encabezado h2{margin:0;font-size:1.2rem}.ayuda-contenido{padding:20px;line-height:1.6}.ayuda-contenido dt{font-weight:700;margin-top:12px}.ayuda-contenido dd{margin:4px 0 12px;overflow-wrap:anywhere}

/* Cuadrícula reutilizable de formularios en filas explícitas. */
.form-grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px 24px;margin-bottom:18px;align-items:start}
.form-grid-12>div{min-width:0}.form-grid-12>.campo-4{grid-column:span 4}.form-grid-12>.campo-6{grid-column:span 6}
.campo-nota{display:block;line-height:1.4;margin:0 0 8px}.form-grid-12 input[readonly]{background:var(--superficie-alterna);color:var(--texto)}
@media(max-width:900px){.form-grid-12>.campo-4{grid-column:span 6}}
@media(max-width:600px){.form-grid-12>.campo-4,.form-grid-12>.campo-6{grid-column:span 12}}

.acciones-documento{white-space:nowrap}.acciones-documento .btn{display:inline-flex;align-items:center;justify-content:center}.editor-lienzo{max-height:70vh;overflow:auto;background:var(--superficie-alterna)}.editor-lienzo canvas{display:block}

.carga-documento-fila{display:flex;align-items:center;gap:18px;margin:6px 0 18px}.carga-documento-fila input[type=file]{flex:1;min-width:0;margin:0}.carga-documento-fila .btn{flex:none;white-space:nowrap}.accion-documento-form{display:inline;margin:0}
@media(max-width:600px){.carga-documento-fila{flex-wrap:wrap}.carga-documento-fila input[type=file]{flex-basis:100%}}

.titulo-con-valor{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.titulo-con-valor>span:last-child{font-size:.9em;white-space:nowrap}.desglose-distribucion{margin-top:18px}.desglose-distribucion summary{cursor:pointer;color:var(--enlace);font-weight:600}.desglose-distribucion>div{padding:8px 0}section[id]{scroll-margin-top:20px}

/* Control compacto compartido para encabezados de tabla. */
.tabla-control{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:22px;height:22px;padding:2px;margin:0 0 0 5px;border:0;border-radius:4px;background:transparent;color:inherit;cursor:pointer;line-height:1}.tabla-control:hover{background:var(--superficie-alterna)}.tabla-control:focus-visible{outline:2px solid var(--foco);outline-offset:2px}.tabla-control[aria-pressed="true"]{color:var(--enlace)}

/* Cantidad editable con equivalencia dentro del mismo control. */
.campo-con-equivalencia{display:flex;align-items:center;gap:8px;border:1px solid var(--borde);border-radius:6px;background:var(--superficie);margin:6px 0 15px;min-width:150px}.campo-con-equivalencia input{flex:1;min-width:3em;width:0;border:0;margin:0;background:transparent;color:var(--texto)}.campo-con-equivalencia output{flex:none;padding-right:11px;white-space:nowrap;color:var(--texto-secundario);font-size:.9em}.campo-con-equivalencia:focus-within{outline:2px solid var(--foco);outline-offset:1px}

/* Resúmenes de cinco indicadores por fila, con magnitudes alineadas por unidades. */
.resumen-cinco{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:stretch}.resumen-cinco>.card{min-width:0}.resumen-cinco h3{font-size:15px;padding:14px}.resumen-cinco .contenido{padding:14px}.numero-derecha{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.resumen-valor{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.resumen-valor .numero-derecha{margin-left:auto}@media(max-width:1000px){.resumen-cinco{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.resumen-cinco{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.resumen-cinco{grid-template-columns:1fr}}

h1 .ayuda-boton{font-size:.333em;width:1.7em;height:1.7em;line-height:1}.tabla-opciones{display:flex;justify-content:flex-end;margin-bottom:12px}.tabla-opciones summary{cursor:pointer;color:var(--enlace);font-weight:600}.columnas-opciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding:14px;border:1px solid var(--borde);border-radius:6px;background:var(--superficie)}.columnas-opciones label{display:flex;align-items:center;gap:6px}.columnas-opciones input{width:auto;margin:0}.orden-columna{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.orden-columna .icono{width:13px;height:13px;flex-basis:13px}.orden-columna:focus-visible{outline:2px solid var(--foco)}th[aria-sort]{color:var(--enlace)}

/* Selector de columnas flotante: no desplaza ni queda recortado por la tabla. */
.tabla-configurable{overflow:visible}.tabla-opciones details{position:relative}.tabla-opciones .columnas-opciones{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(440px,calc(100vw - 64px));max-height:60vh;overflow:auto;box-shadow:var(--sombra)}@media(max-width:440px){.tabla-opciones .columnas-opciones{grid-template-columns:1fr}}

/* Resumen compacto reutilizable: tablas ajustadas a su contenido y paralelas. */
.resumen-compacto .contenido{padding:14px 18px}.totales-compactos{display:flex;align-items:flex-start;gap:16px 28px;flex-wrap:wrap}.totales-compactos>.tabla-scroll{max-width:100%}.tabla-compacta{width:auto}.tabla-compacta th,.tabla-compacta td{padding:8px 12px;font-size:14px}.tabla-compacta th[scope=row]{background:transparent}.tabla-compacta .numero-derecha{min-width:100px}.resumen-compacto .aviso{margin:12px 0 0}@media(max-width:600px){.totales-compactos{gap:12px}.tabla-compacta th,.tabla-compacta td{padding:7px 9px}.tabla-compacta .numero-derecha{min-width:80px}}

/* Variante de filtros autorizada: cuatro campos en escritorio. */
.filtros-campos-cuatro>div{grid-column:span 3}@media(max-width:900px){.filtros-campos-cuatro>div{grid-column:span 6}}@media(max-width:600px){.filtros-campos-cuatro>div{grid-column:span 12}}
/* Tabla completa: evitar títulos verticales y celdas partidas palabra por palabra. */
.tabla-existencias .orden-columna{white-space:nowrap}.tabla-existencias td[data-columna=bodega]{min-width:190px}.tabla-existencias td[data-columna=estado]{min-width:140px}.tabla-existencias td[data-columna=producto]{min-width:170px}.datos-apilados{display:grid;gap:3px}.datos-apilados>span{white-space:nowrap}.tabla-existencias td[data-columna=lotes]{min-width:150px}

.lotes-resumen{display:inline-grid;gap:3px;font-variant-numeric:tabular-nums}.lotes-resumen>span{white-space:nowrap}.lotes-resumen>.muted{font-size:.85em}.lotes-resumen abbr{text-decoration:none}

/* Ficha documental compartida: proveedor y metadatos legibles, sin una cadena larga. */
.documento-proveedor{display:flex;flex-direction:column;gap:4px;margin:8px 0 14px}.documento-proveedor>span,.ficha-documento dt{font-size:12px;color:var(--texto-secundario);font-weight:600}.documento-proveedor>strong{font-size:16px;overflow-wrap:anywhere}.ficha-documento{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0;padding:12px 16px;background:var(--superficie);border:1px solid var(--borde);border-radius:8px}.ficha-documento>div{min-width:100px}.ficha-documento dt{margin-bottom:5px}.ficha-documento dd{margin:0;font-size:14px;font-weight:600}

.acciones-en-linea{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* Tablas de auditoría: evento 20%, entidad y detalle 80%, contenido ajustado. */
.tabla-auditoria{table-layout:fixed;width:100%;min-width:0}.tabla-auditoria caption{text-align:left;padding:0 0 12px;font-size:14px}.tabla-auditoria .auditoria-evento{width:20%}.tabla-auditoria .auditoria-detalle{width:80%}.tabla-auditoria td{vertical-align:top;padding:12px 10px;line-height:1.4}.tabla-auditoria th{padding:12px 10px}.dato-secundario{display:block;margin-top:4px;overflow-wrap:anywhere}.auditoria-referencia{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.auditoria-resumen{margin:8px 0;font-size:13px}.auditoria-resumen>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:3px 0;min-width:0}.auditoria-resumen dt{font-weight:600;flex:none;max-width:48%}.auditoria-resumen dd{margin:0;min-width:0;flex:1 1 160px;overflow-wrap:anywhere;white-space:normal}.auditoria-contexto{font-size:13px;margin:6px 0}.auditoria-contexto span{display:block}.auditoria-ampliar{margin-top:8px;font-size:13px}.auditoria-ampliar summary{cursor:pointer;color:var(--enlace)}.auditoria-ampliar summary:focus-visible{outline:2px solid var(--foco);outline-offset:3px}.auditoria-json{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;background:var(--superficie-alterna);border:1px solid var(--borde);border-radius:6px;padding:12px;font-size:13px;line-height:1.5}

.auditoria-identificacion{margin:0;font-size:13px}.auditoria-identificacion dt{font-weight:600;color:var(--texto-secundario);margin:12px 0 3px}.auditoria-identificacion dt:first-child{margin-top:0}.auditoria-identificacion dd{margin:0;overflow-wrap:anywhere}.tabla-auditoria td,.tabla-auditoria th{white-space:normal;overflow-wrap:anywhere;min-width:0}.auditoria-contexto,.auditoria-contexto span,.auditoria-ampliar,.auditoria-ampliar summary{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.auditoria-json{min-width:0;max-width:100%;white-space:pre-wrap;word-break:break-word}.auditoria-ampliar>p{white-space:normal;overflow-wrap:anywhere}@media(max-width:600px){.tabla-auditoria td,.tabla-auditoria th{padding:8px 5px}.auditoria-identificacion{font-size:11px}.auditoria-resumen dt{max-width:100%}}
.auditoria-datos{width:100%;table-layout:fixed;margin:10px 0;font-size:13px}.auditoria-datos th:first-child{width:36%}.auditoria-datos th,.auditoria-datos td{padding:8px 10px;vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere}.auditoria-datos th[scope=row]{font-weight:600;background:var(--superficie-alterna)}
/* Excepción de auditoría al ancho mínimo administrativo, incluida su tabla anidada. */
.layout-admin .tabla-scroll table.tabla-auditoria,.layout-admin .tabla-scroll table.auditoria-datos{min-width:0;width:100%;max-width:100%}.auditoria-datos-contenedor{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto}.tabla-auditoria .auditoria-ampliar{width:100%;max-width:100%;min-width:0}



.conciliacion-resumen{border:1px solid var(--borde);border-radius:7px;padding:12px 14px;margin:0 0 16px;background:var(--superficie-alterna)}.conciliacion-resumen .ficha-documento{margin:0}.conciliacion-resumen dd{font-variant-numeric:tabular-nums;text-align:right}.conciliacion-resumen p{margin:10px 0 0}

/* Comprobante imprimible reutilizable: conservar documento y omitir controles. */
@media print{
 body:has(.documento-imprimible){background:white;color:black}
 body:has(.documento-imprimible) :is(.app-cabecera,.config-lateral,.flash-reserva,dialog,.saltar-contenido,.no-imprimir){display:none!important}
 body:has(.documento-imprimible) main{display:block;max-width:none;margin:0;padding:0}
 body:has(.documento-imprimible) .pagina-contenido>:not(.documento-imprimible){display:none!important}
 .documento-imprimible{break-inside:avoid;color:black;background:white;box-shadow:none}
 .documento-imprimible .ficha-documento{background:white;color:black}
}

/* Calendario visual compartido: superficies y controles del diseño global. */
.calendario-barra{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--borde)}
.calendario-barra h2{font-size:20px;margin:0;color:var(--texto)}
.calendario-anterior{transform:rotate(90deg)}.calendario-siguiente{transform:rotate(-90deg)}
.calendario-scroll{position:relative;min-width:0;max-width:100%;overflow-x:auto}.tabla-calendario{table-layout:fixed;min-width:770px;width:100%}
.tabla-calendario caption{text-align:left;padding:12px 16px;font-size:13px;color:var(--texto-secundario)}
.tabla-calendario th{padding:12px 8px;text-align:center;font-size:13px;border-right:1px solid var(--borde)}
.tabla-calendario td{padding:8px;vertical-align:top;border-right:1px solid var(--borde)}
.calendario-dia{min-height:150px;display:flex;flex-direction:column;gap:8px;min-width:0}
.calendario-fecha{display:flex;align-items:center;gap:8px}.calendario-fecha time{display:inline-flex;align-items:center;justify-content:center;font-weight:700;width:28px;height:28px;border-radius:50%;font-size:14px}
.calendario-hoy{background:var(--seleccion)}.calendario-hoy time{background:var(--enlace);color:var(--superficie)}
.calendario-vacio{background:var(--superficie-alterna)}
.calendario-eventos{padding:0;margin:0;list-style:none;display:grid;gap:8px}
.calendario-evento{padding:7px 8px;background:var(--superficie-alterna);border-left:3px solid var(--enlace);border-radius:5px;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.calendario-evento a{display:block;text-decoration:none}.calendario-evento a:hover{text-decoration:underline}.calendario-evento a>span{display:block;margin:3px 0;color:var(--texto)}
.calendario-contexto{display:block;font-size:11px;margin:4px 0;color:var(--texto-secundario)}.calendario-evento .badge{font-size:10px;padding:2px 5px}
.calendario-agregar{margin-top:auto;font-size:12px}.calendario-agregar summary,.calendario-mas summary{cursor:pointer;color:var(--enlace);font-weight:600;padding:4px 0}
.calendario-agregar ul{padding-left:14px;margin:6px 0}.calendario-agregar li{margin:6px 0;line-height:1.5}.calendario-mas{font-size:12px}
.calendario-planes{padding:16px;font-weight:600;cursor:pointer}.tabla-calendario.calendario-un-dia{min-width:0}.calendario-un-dia .calendario-dia{min-height:200px}
.solo-lector{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:600px){.calendario-barra{gap:12px;padding:12px}.calendario-barra h2{font-size:18px}.tabla-calendario td{padding:6px}.calendario-dia{min-height:130px}}

/* Detalle descriptivo reutilizable de permisos y asignaciones, sin ancho mínimo heredado. */
.layout-admin .pagina-contenido :is(.tabla-permisos,.tabla-contactos),.tabla-permisos,.tabla-contactos{width:100%;min-width:0;table-layout:fixed}
.layout-admin .tabla-permisos :is(td,th),.layout-admin .tabla-contactos :is(td,th){overflow-wrap:anywhere;word-break:normal;vertical-align:top}
.tabla-permisos th:nth-child(1){width:25%}.tabla-permisos th:nth-child(2){width:40%}.tabla-permisos th:nth-child(3){width:35%}
.tabla-permisos-ambito th:nth-child(1){width:23%}.tabla-permisos-ambito th:nth-child(2){width:34%}.tabla-permisos-ambito th:nth-child(3){width:28%}.tabla-permisos-ambito th:nth-child(4){width:15%}
.permisos-scroll{max-height:28rem;overflow:auto;border:1px solid var(--borde);border-radius:7px}
.permisos-scroll thead{position:sticky;top:0;z-index:1;background:var(--superficie-alterna)}
.permisos-desglose{margin-block:12px}.permisos-desglose>summary,.asignacion-rol summary{cursor:pointer;color:var(--enlace);padding-block:8px}
.permisos-desglose[open]>.permisos-scroll{margin-top:10px}
.permiso-codigo,.permiso-ruta,.permiso-seccion,.contacto-correo,.contacto-telefono{display:block;overflow-wrap:anywhere}
.permiso-codigo,.permiso-ruta{font-size:.8rem;margin-top:5px;color:var(--texto-secundario)}
.permiso-ruta{white-space:normal}.contacto-telefono{margin-top:8px}
.asignaciones-roles{display:grid;gap:16px}.asignacion-rol{padding:16px;border:1px solid var(--borde);border-radius:8px;background:var(--superficie)}
.asignacion-cabecera,.registro-contexto{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.asignacion-cabecera .usuario-editar-check{margin:0}.registro-contexto{justify-content:flex-start;gap:10px 24px}
.opciones-casillas{display:flex;gap:10px 18px;flex-wrap:wrap;padding-block:10px}.opcion-casilla{display:flex;align-items:center;gap:8px;font-weight:400}.opcion-casilla input{width:auto;margin:0}
.campos-sin-borde{border:0;padding:0;margin-block:16px;min-width:0}
.tabla-contactos th:nth-child(1){width:28%}.tabla-contactos th:nth-child(2){width:32%}.tabla-contactos th:nth-child(3){width:15%}.tabla-contactos th:nth-child(4){width:25%}
.registro-doble>tr:first-child>td{border-bottom:0}.registro-detalle{background:var(--superficie-alterna)}.registro-detalle td{font-size:.875rem}
@media(max-width:700px){
 .tabla-contactos thead{display:none}.tabla-contactos,.tabla-contactos tbody,.tabla-contactos tr,.tabla-contactos td{display:block;width:100%}
 .tabla-contactos td[data-etiqueta]::before{content:attr(data-etiqueta);display:block;font-size:.8rem;color:var(--texto-secundario);margin-bottom:6px}
 .registro-doble{border-bottom:2px solid var(--borde)}.registro-detalle td{border:0}
 .tabla-permisos th,.tabla-permisos td{padding:9px;font-size:.8rem}
 .asignacion-rol{padding:12px}
}

/* Encabezado compartido de título y acciones. */
.catalogos-titulo{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.catalogos-titulo h1{margin:10px 0}.catalogos-titulo p{margin:0}

/* Paginador compartido para todos los listados. */
.paginador{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-block:20px;color:var(--texto-secundario);font-size:.9rem}
.paginador form,.paginador-derecha,.paginador nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.paginador label{font-weight:400}.paginador select{width:auto;min-width:76px;margin:0;padding:9px;background:var(--superficie);color:var(--texto);border:1px solid var(--borde)}
.paginador-rango{margin-right:8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.paginador .paginador-boton{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:6px 10px;border:1px solid var(--borde);border-radius:7px;background:var(--superficie);color:var(--texto);text-decoration:none}
.paginador .paginador-boton:hover{background:var(--seleccion)}.paginador [aria-current=page]{background:#64748b;color:white;font-weight:700;border-color:#64748b}
.paginador [aria-disabled=true]{opacity:.45;cursor:default}.paginador .icono{width:15px;height:15px}.paginador-puntos{padding:4px}.paginador a:focus-visible,.paginador select:focus-visible{outline:2px solid var(--foco);outline-offset:3px}
.card>.paginador{margin:16px 22px}
@media(max-width:600px){.paginador{align-items:flex-start;gap:12px}.paginador-derecha{justify-content:flex-start;width:100%}.paginador nav{gap:5px}.paginador .paginador-boton{min-width:32px;padding:5px}.card>.paginador{margin:14px 12px}}

.paginador [aria-current=page]:hover{background:#64748b;color:white}

.paginador-icono-izquierda{transform:rotate(90deg)}.paginador-icono-derecha{transform:rotate(-90deg)}

.campo-contexto { margin: 0; padding: 0.65rem 0.8rem; border: 1px solid var(--borde); border-radius: var(--radio, 8px); background: var(--superficie); color: var(--texto); overflow-wrap: anywhere; }

select[hidden], .campo-contexto[hidden] { display: none; }

/* Dashboard: componentes globales de lectura operacional, gráficos y alarmas. */
.dash-cabecera{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}.dash-cabecera h1{margin:4px 0 8px}.dash-sobretitulo{font-size:.75rem;font-weight:bold;letter-spacing:.12em;color:var(--enlace);margin:0}.dash-cabecera .catalogos-acciones{margin:0}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:24px;margin:24px 0}.dash-doce{grid-column:span 12}.dash-ocho{grid-column:span 8}.dash-cuatro{grid-column:span 4}.dash-grid>.card{margin:0;min-width:0}.dash-grid .contenido{padding:22px}.dash-hero{display:flex;align-items:center;gap:20px;background:var(--primario,#0b3265);border-radius:14px;padding:26px;color:white}.dash-hero h2{margin:0 0 8px;font-size:1.35rem}.dash-hero p{margin:0;line-height:1.5;color:white}.dash-hero-icono>.icono{width:48px;height:48px}.dash-enlace-hero{flex-shrink:0;border:1px solid #b5cbe4;color:white!important;border-radius:20px;padding:10px 14px;text-decoration:none}.dash-servicio{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--borde)}.dash-servicio:first-child{padding-top:0}.dash-servicio:last-child{border:0;padding-bottom:0}.dash-servicio>div:nth-child(2){flex:1;min-width:0}.dash-servicio h4{font-size:1.2rem;margin:10px 0}.dash-servicio p{margin:5px 0}.dash-servicio-icono>.icono{width:40px;height:40px;color:var(--enlace)}.dash-lista{display:grid;gap:12px;align-content:start}.dash-vacio{padding:20px 8px;text-align:center;line-height:1.5;color:var(--texto-secundario,var(--texto))}.dash-vacio>.icono{display:block;width:52px;height:52px;color:var(--enlace);margin:0 auto 16px}.dash-vacio h4{color:var(--texto);margin:12px 0;font-size:1.1rem}.dash-aviso{display:grid;gap:7px;padding:14px 16px;border:1px solid var(--borde);border-left:4px solid var(--enlace);border-radius:8px;color:var(--texto);text-decoration:none;background:var(--superficie)}.dash-aviso>span:last-child{font-size:.85rem;line-height:1.45}.dash-prioridad{font-size:.7rem;font-weight:bold;text-transform:uppercase;letter-spacing:.07em}.dash-nivel-critica{border-left:4px solid #d94a69}.dash-nivel-aviso{border-left:4px solid #ba8700}.dash-nivel-info{border-left:4px solid #448bdc}.dash-agenda{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--borde);color:var(--texto);text-decoration:none}.dash-agenda>span:nth-child(2){flex:1;min-width:0}.dash-agenda small{display:block;margin-top:7px;line-height:1.4}.dash-fecha{font-size:.85rem;font-weight:bold;white-space:nowrap;color:var(--enlace)}.dash-receta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--borde);color:var(--texto);text-decoration:none}.grafico-dona{max-width:220px;margin:0 auto}.grafico-dona svg,.grafico-barras svg{display:block;width:100%;height:auto}.grafico-fondo{stroke:var(--borde)}.grafico-critica{stroke:#d94a69;background:#d94a69}.grafico-aviso{stroke:#cc9400;background:#cc9400}.grafico-bien{stroke:#219a79;background:#219a79}.grafico-info{stroke:#438edf;background:#438edf}.grafico-total{fill:var(--texto);font-size:26px;font-weight:bold}.grafico-texto{fill:var(--texto);font-size:12px}.grafico-leyenda{padding:0;list-style:none;display:grid;gap:12px;font-size:.85rem}.grafico-leyenda li{display:flex;gap:9px;align-items:center}.grafico-leyenda li strong{margin-left:auto;font-variant-numeric:tabular-nums}.grafico-punto{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.grafico-guia{stroke:var(--borde);fill:none;stroke-width:1}.barra-plan{fill:#438edf}.barra-produccion{fill:#219a79}.grafico-claves{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;font-size:.85rem}.grafico-claves>span{display:flex;gap:8px;align-items:center}.dash-datos{margin:20px 0}.dash-datos>summary,.dash-generador>summary{cursor:pointer;color:var(--enlace);font-weight:bold;padding:10px 0}.dash-alarmas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dash-alarma{border:1px solid var(--borde);border-radius:9px;padding:16px;background:var(--superficie);overflow-wrap:anywhere}.dash-alarma-titulo{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.dash-alarma-titulo>.icono{color:var(--enlace)}.dash-generador{margin-top:20px;border-top:1px solid var(--borde);padding-top:10px}.dash-generador .filtros-campos{margin-top:12px}.dash-generador [hidden]{display:none}.dash-generador textarea{box-sizing:border-box;width:100%;background:var(--superficie);color:var(--texto);border:1px solid var(--borde);border-radius:6px;padding:10px}.dash-generador .campo-completo{grid-column:1/-1}.dash-grid .numero{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:1000px){.dash-ocho,.dash-cuatro{grid-column:span 6}.dash-hero{flex-wrap:wrap}.dash-alarmas{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-servicio{flex-wrap:wrap}.dash-agenda{flex-wrap:wrap}}
@media(max-width:650px){.dash-ocho,.dash-cuatro{grid-column:span 12}.dash-grid{gap:18px}.dash-hero{padding:20px}.dash-hero-icono{display:none}.dash-alarmas{grid-template-columns:minmax(0,1fr)}.dash-grid .contenido{padding:16px}.dash-agenda>.badge{margin-left:auto}.dash-cabecera .catalogos-acciones{width:100%}.grafico-texto{font-size:12px}}

@media(max-width:650px){.grafico-barras .grafico-texto{font-size:22px}}

/* Componente compartido: catalogos (antes en hoja separada). */
.catalogos-menu{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.catalogos-menu a{padding:9px 12px;border-radius:7px;text-decoration:none;color:var(--enlace);background:var(--seleccion)}
.catalogos-menu a[aria-current=page]{background:#06336f;color:white}
.catalogos-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
.catalogos-ancho{grid-column:1/-1}
.catalogos-fieldset{border:0;padding:0;margin:0;min-width:0}
.catalogos-campos textarea{display:block;box-sizing:border-box;width:100%;min-height:90px;padding:11px;border:1px solid var(--borde);border-radius:6px;margin:6px 0 15px;font:inherit;resize:vertical}
.catalogos-ayuda{display:block;margin-top:-8px;margin-bottom:12px;line-height:1.45}
.catalogos-filtros{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.catalogos-filtros>div{flex:1;min-width:140px}.catalogos-filtros input,.catalogos-filtros select{margin-bottom:0}
.catalogos-acciones-fila form{display:inline-block;margin:5px}.catalogos-acciones-fila a{display:inline-block;margin:5px}
@media(max-width:700px){.catalogos-campos{grid-template-columns:1fr}}

.operacion-numero{white-space:nowrap;font-variant-numeric:tabular-nums}

.campo-ayuda{margin:-6px 0 16px;line-height:1.5}.campo-ayuda summary{cursor:pointer;color:var(--enlace);text-decoration:underline}.campo-ayuda p{margin:8px 0}.campo-ayuda summary:focus-visible{outline:2px solid var(--foco);outline-offset:3px}
/* Tablas operacionales: preservar palabras e importes en pantallas estrechas. */
.operaciones-contenido .tabla-scroll{overflow-x:auto;max-width:100%}
.operaciones-contenido .tabla-scroll table{min-width:960px}
.operaciones-contenido .tabla-scroll table.factura-lineas{min-width:1120px}
.operaciones-contenido .tabla-scroll th,.operaciones-contenido .tabla-scroll td{overflow-wrap:normal;word-break:normal}
.operaciones-contenido .factura-lineas td:first-child{min-width:220px}
.operaciones-contenido .factura-lineas td:nth-child(n+2){white-space:nowrap}


/* Componente compartido: usuario-editar (antes en hoja separada). */
.usuario-editar-cabecera{margin-bottom:20px}
.usuario-editar-cabecera a{color:var(--enlace);text-decoration:none}
.usuario-editar-cabecera h1{margin:10px 0 6px}
.usuario-editar-cabecera p{margin:0}
.usuario-editar-fieldset{border:0;padding:0;margin:0;min-width:0}
.usuario-editar-datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.usuario-editar-roles select{min-width:160px}
.usuario-editar-check{display:flex;align-items:center;gap:8px;margin:8px 0;font-weight:400}
.usuario-editar-check input{width:auto;margin:0;flex:0 0 auto}
.usuario-editar-roles details{min-width:180px;max-height:200px;overflow:auto}
.usuario-editar-roles summary{cursor:pointer;color:var(--enlace)}
.usuario-editar-acciones{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
@media(max-width:700px){.usuario-editar-datos{grid-template-columns:1fr}}


/* Componente compartido: ayuda (antes en hoja separada). */
.ayuda-indice{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.ayuda-seccion{scroll-margin-top:24px}.ayuda-seccion p,.ayuda-seccion li{line-height:1.65;max-width:85ch}.ayuda-tabla{overflow-x:auto}.ayuda-seccion summary{cursor:pointer;font-weight:600;padding:10px 0}.ayuda-seccion details{border-bottom:1px solid var(--borde);padding:4px 0}.ayuda-seccion h2{margin-top:30px}.ayuda-seccion table{min-width:500px}.ayuda-seccion td{white-space:normal}


/* Componente compartido: password-reveal (antes en hoja separada). */
.password-reveal{position:relative}
.password-reveal input{padding-right:48px}
.password-reveal .password-reveal-boton{position:absolute;right:4px;top:8px;width:36px;height:36px;min-width:0;margin:0;padding:0;border:0;border-radius:5px;background:transparent;color:var(--texto-secundario);display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:none;user-select:none}
.password-reveal .password-reveal-boton:hover{background:var(--superficie-alterna);color:var(--enlace)}
.password-reveal .password-reveal-boton:focus-visible{outline:2px solid var(--foco);outline-offset:1px}


/* Componente compartido: notificaciones (antes en hoja separada). */
#notificaciones {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 9999;
    width: min(420px, calc(100vw - 36px));
    pointer-events: none;
}
.notificacion {
    background: var(--superficie);
    color: var(--texto);
    border-left: 5px solid #1260a8;
    box-shadow: 0 8px 28px #0002;
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 10px;
    font-size: 14px;
    overflow-wrap: anywhere;
    pointer-events: auto;
    animation: aparecer .2s ease;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}
.notificacion.success {border-left-color:#16834b}
.notificacion.danger {border-left-color:#b42318}
.notificacion.warning {border-left-color:#c58a11}
.notificacion.info {border-left-color:#1260a8}
.notificacion-texto {flex:1 1 auto;min-width:0}
.notificacion-cerrar {
    flex: 0 0 auto;
    width: auto;
    min-width: 24px;
    margin: 0;
    align-self: flex-start;
    background: transparent;
    border: 0;
    font-size: 20px;
    line-height: 1;
    color: var(--texto-secundario);
    cursor: pointer;
    padding: 0 4px;
    font-weight: bold;
}
.notificacion-cerrar:hover {color: var(--texto)}
.notificacion.ocultar {
    opacity: 0;
    transform: translateX(15px);
    transition: opacity .3s, transform .3s;
}
@keyframes aparecer {
    from {opacity:0;transform:translateX(15px)}
    to {opacity:1;transform:translateX(0)}
}


/* Contrato global de controles, densidad y superficies. */
:root{--primario:#06336f;--primario-hover:#0a4592;--control-altura:42px;--radio-control:7px;--espacio-campo:12px;--linea-texto:1.5}
[hidden]{display:none!important}
body{line-height:var(--linea-texto)}
h1{font-size:clamp(1.65rem,3vw,2.15rem);line-height:1.2;margin:0 0 24px;overflow-wrap:anywhere}
h2{line-height:1.3}p{line-height:var(--linea-texto)}
button,input,select,textarea{font-family:inherit;font-size:.9rem}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select{min-height:var(--control-altura)}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;margin:0 6px 0 0;accent-color:var(--enlace);vertical-align:middle}
textarea{display:block;width:100%;min-height:88px;margin:6px 0 15px;padding:11px;border:1px solid var(--borde);border-radius:var(--radio-control);resize:vertical;line-height:1.5}
.btn{min-height:var(--control-altura);display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.25;font:inherit;font-size:.9rem;vertical-align:middle}
.btn-sm{min-height:32px;font-size:.8rem}.btn-icono{min-height:36px}.btn:disabled{opacity:.6;cursor:not-allowed}
.fecha-control>.fecha-original{min-height:0}.fecha-calendario{min-height:0}
.tabla-scroll,.tabla-responsive,.ayuda-tabla{max-width:100%;overflow-x:auto;min-width:0}
th,td{vertical-align:top;line-height:1.45}td.numero,th.numero{font-variant-numeric:tabular-nums;text-align:right}
.catalogos-acciones-fila{display:flex;align-items:center;flex-wrap:wrap;gap:var(--espacio-acciones)}
.catalogos-acciones-fila form,.catalogos-acciones-fila a{margin:0}
.separador{margin:24px 0;border:0;border-top:1px solid var(--borde)}.texto-centro{text-align:center}.form-en-linea{display:inline}.bloque-contacto{margin-bottom:18px}
/* Acceso/MFA usa los mismos colores y controles, sin alterar sus formularios. */
body.acceso{display:grid;place-items:center;min-height:100dvh;padding:24px 12px}
.acceso input::placeholder{color:var(--texto-secundario);opacity:1}
.acceso>.card,.acceso>main{width:min(440px,100%);margin:0;padding:30px;background:var(--superficie);border:1px solid var(--borde);border-radius:12px;box-shadow:var(--sombra)}
.acceso h2{text-align:center;color:var(--texto);margin:0 0 12px}.acceso .subtitulo,.acceso .desc{color:var(--texto-secundario);text-align:center;font-size:.9rem;margin:0 0 24px}
.acceso label{display:block;margin-top:16px}.acceso input{margin-bottom:0}.acceso button[type=submit]:not(.btn-link){display:block;width:100%;margin-top:24px;min-height:42px;border:0;border-radius:7px;padding:12px;background:var(--primario);color:white;cursor:pointer}
.acceso button[type=submit]:hover{background:var(--primario-hover)}.acceso .links{margin-top:20px;text-align:center;font-size:.85rem}.acceso .links a{color:var(--enlace)}
.acceso .requisito{font-size:.8rem;color:var(--texto-secundario);margin-top:6px}.acceso .opcion{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--borde);border-radius:7px;margin-bottom:12px;cursor:pointer}
.acceso .opcion:hover{background:var(--seleccion)}.acceso .opcion-nombre{color:var(--texto)}.acceso .btn-link{background:transparent;color:var(--enlace);border:0;padding:8px;cursor:pointer;font:inherit;font-size:.85rem;text-decoration:underline}
.acceso-mfa #codigo{text-align:center;letter-spacing:.25em;font-size:1.3rem;font-weight:bold}.acceso .password-reveal-boton{margin-top:0;width:36px}
.acceso-mfa h2,.acceso-compacto h2{font-size:20px;line-height:1.2;margin-bottom:10px}.acceso-mfa .subtitulo,.acceso-compacto .desc{margin-bottom:8px}.acceso-mfa label,.acceso-compacto form>label:first-of-type{margin-top:0}.acceso-mfa button[type=submit]:not(.btn-link),.acceso-compacto button[type=submit]:not(.btn-link){margin-top:16px}
.acceso-compacto label{margin-top:10px}.acceso-compacto .etiqueta-con-ayuda{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.acceso-compacto .etiqueta-con-ayuda .requisito{margin:0;font-weight:normal}
.acceso-compacto .links{margin-top:8px}.acceso-compacto .links a{display:inline-block;padding:4px 0;line-height:20px;font-size:13px}
.acceso-mfa .links{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.acceso-mfa .links form{margin:0}.acceso-mfa .links .btn-link{display:inline-block;min-height:0;line-height:20px;padding:4px 0;font-size:13px;margin:0}
/* Resúmenes, gráficos y guía reutilizables en toda el área empresarial. */
.resumen-tarjeta{display:flex;flex-direction:column;height:100%;transition:border-color .15s ease}.resumen-tarjeta:hover{border-color:var(--enlace)}.resumen-tarjeta .contenido{flex:1}.resumen-tarjeta h3{display:flex;gap:10px;align-items:center}.resumen-cifra{font-size:2rem;font-variant-numeric:tabular-nums;margin:0 0 4px;font-weight:700;color:var(--texto)}
.resumen-tarjeta .muted{font-size:.85rem}.resumen-tarjeta .resumen-enlace{display:block;margin-top:14px;color:var(--enlace);font-weight:600}
.resumen-hero{margin-block:20px}.resumen-hero>div:not(.dash-hero-icono){flex:1;min-width:0}.resumen-hero>.dash-hero-icono{flex:0 0 auto}.resumen-pasos{padding-left:22px;line-height:1.65}.resumen-pasos li+li{margin-top:10px}
.reporte-graficos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;margin-block:24px}.reporte-graficos>.card{grid-column:span 6;min-width:0;margin:0}.grafico-horizontal{margin:0}.grafico-horizontal figcaption{margin:0 0 14px;font-size:.85rem;color:var(--texto-secundario)}
.grafico-renglon{display:grid;grid-template-columns:minmax(90px,1fr) minmax(90px,2fr) minmax(60px,auto);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--borde);font-size:.85rem}.grafico-renglon>span{overflow-wrap:anywhere}.grafico-renglon svg{width:100%;height:24px}.grafico-eje{stroke:var(--texto-secundario)}.grafico-valor{fill:#2973c7}.grafico-negativo{fill:#c24155}.grafico-renglon strong{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.guia-barra{display:flex;justify-content:flex-end;margin:0 0 16px}.guia-barra .btn{min-height:34px;font-size:.8rem}.guia-modal{width:min(900px,calc(100% - 24px))}.guia-modal .ayuda-contenido{padding:24px}.guia-pasos{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;padding:0;list-style:none}.guia-pasos button{padding:7px 10px;border:1px solid var(--borde);border-radius:7px;background:var(--superficie-alterna);color:var(--texto);font:inherit;font-size:.8rem;cursor:pointer}.guia-pasos button[aria-current=step]{background:var(--primario);color:white;border-color:var(--primario)}
.guia-etapa h3{font-size:1.35rem;margin:0 0 12px}.guia-etapa p{margin:12px 0}.guia-avance{font-size:.85rem;color:var(--texto-secundario);margin:0 0 16px}.guia-etapa .aviso{margin-top:16px}.guia-controles{border-top:1px solid var(--borde);padding-top:18px;margin-bottom:0}
@media(max-width:900px){.reporte-graficos>.card{grid-column:span 12}}
@media(max-width:600px){.acceso>.card,.acceso>main{padding:24px}.resumen-hero{align-items:flex-start}.resumen-hero .dash-hero-icono{display:none}.grafico-renglon{grid-template-columns:1fr 1fr;gap:6px}.grafico-renglon>span{grid-column:1/-1}.guia-modal .ayuda-contenido{padding:16px}.guia-controles .btn{flex:1}.guia-pasos button{min-height:36px}}

.resumen-tarjeta{text-decoration:none;color:var(--texto)}.resumen-tarjeta:hover .resumen-enlace{text-decoration:underline}.resumen-cifra small{font-size:.8rem;font-weight:400}.reporte-graficos>.card:only-child{grid-column:span 12}.dash-grid>.dash-ocho>.reporte-graficos{margin:0}
.guia-modal[open]{display:flex;flex-direction:column;overflow:hidden}.guia-modal>.ayuda-encabezado{flex:none}.guia-modal>.ayuda-contenido{overflow-y:auto;min-height:0}.guia-modal>.guia-controles{flex:none;margin:0;padding:16px 24px;background:var(--superficie)}
.btn{line-height:1.25}
@media(max-width:600px){.guia-modal>.guia-controles{padding:12px}.guia-controles .btn{font-size:.8rem;padding:10px}}

/* Consola SaaS: mismos tokens, controles y ritmo que administración empresarial. */
.saas-formularios{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;margin-block:20px}.saas-formularios:empty{display:none}.saas-formularios>*{grid-column:span 12;margin:0;min-width:0}.saas-formularios>.saas-form-corta{grid-column:span 6}.saas-form-origen form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;align-items:end}.saas-form-origen .saas-campos{display:block}.saas-form-origen .catalogos-acciones{margin:0}.saas-form-corta .saas-campos{grid-template-columns:minmax(0,1fr)}
@media(max-width:600px){.saas-formularios>.saas-form-corta{grid-column:span 12}.saas-form-origen form{grid-template-columns:minmax(0,1fr)}}
.saas-campos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.saas-campo{min-width:0}.saas-campo>label{display:flex;align-items:flex-end;min-height:2.5em}.saas-campo input,.saas-campo select{margin-bottom:0}.saas-campo-modulos{grid-column:1/-1}.saas-modulos{border:1px solid var(--borde);border-radius:8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:16px;margin:6px 0 0}.saas-modulos label{display:flex;align-items:center;gap:9px;font-weight:400}.saas-modulos input{width:18px;height:18px;margin:0;flex:none}.saas-etiquetas{display:flex;flex-wrap:wrap;gap:6px}.saas-pagina .tabla-scroll{padding:18px;max-width:100%}.saas-pagina td{overflow-wrap:anywhere;vertical-align:top}.saas-resumen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0}.saas-resumen>.card{margin:0}.saas-resumen .resumen-cifra{text-align:right;font-size:1.5rem;font-variant-numeric:tabular-nums}.saas-auditoria{table-layout:fixed}.saas-auditoria>thead>tr>th:first-child{width:20%}.saas-auditoria>thead>tr>th:last-child{width:80%}.saas-auditoria td{white-space:normal;overflow-wrap:anywhere}.saas-auditoria small{display:block;color:var(--texto-secundario);margin-top:8px}.saas-auditoria .saas-detalle{width:100%;table-layout:fixed;margin-top:16px}.saas-detalle th{width:35%}.saas-detalle td,.saas-detalle th{padding:9px}.saas-auditoria details{margin-top:14px}.saas-auditoria time{display:block;margin:10px 0}
@media(max-width:900px){.saas-campos,.saas-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}.saas-auditoria>thead>tr>th:first-child{width:30%}.saas-auditoria>thead>tr>th:last-child{width:70%}}
@media(max-width:600px){.saas-campos,.saas-resumen{grid-template-columns:minmax(0,1fr)}.saas-auditoria>thead{display:none}.saas-auditoria>tbody>tr>td{display:block;width:100%}.saas-auditoria .saas-detalle th{width:40%}.saas-pagina .tabla-scroll{padding:10px}}
.saas-home-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.saas-home-cifras .card{margin:0}.saas-home-cifras .contenido{padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.saas-home-cifras span{color:var(--texto-secundario);font-size:.88rem}.saas-home-cifras strong{font-size:1.8rem;font-variant-numeric:tabular-nums}.saas-home-cuerpo{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px}.saas-home-pendiente{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--borde)}.saas-home-pendiente:first-child{padding-top:0}.saas-home-pendiente:last-child{border:0;padding-bottom:0}.saas-home-pendiente p{font-size:.85rem;color:var(--texto-secundario);margin:6px 0}.saas-home-pendiente .resumen-cifra{font-size:1.5rem}.saas-home-estado{margin:0}.saas-home-estado>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--borde)}.saas-home-estado dd{margin:0;text-align:right}.saas-home .reporte-graficos{margin:0 0 20px}.saas-home>.card>summary{cursor:pointer;font-weight:600}.saas-home .tabla-scroll{padding:16px}
@media(max-width:900px){.saas-home-cifras{grid-template-columns:repeat(2,minmax(0,1fr))}.saas-home-cuerpo{grid-template-columns:minmax(0,1fr)}}@media(max-width:500px){.saas-home-cifras{grid-template-columns:minmax(0,1fr)}}
.saas-home-plan .contenido{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,1fr);align-items:center;gap:12px}.saas-home-plan .grafico-dona{max-width:155px}.saas-home .badge{white-space:normal}@media(max-width:500px){.saas-home-plan .contenido{grid-template-columns:minmax(0,1fr)}}

/* Firma compartida de Casino Integral; en flujo para no cubrir formularios. */
body.sitio-con-pie{display:flex;flex-direction:column;min-height:100dvh}
.sitio-con-pie>main{width:100%;flex:1 0 auto}
.pie-sitio{flex:none;margin-top:auto;width:100%;border-top:1px solid var(--borde);background:var(--superficie-alterna);color:var(--texto-secundario);padding:14px 20px;text-align:center;font-size:12px;line-height:1.5}
.pie-sitio-contenido{max-width:1250px;margin:0 auto}
.pie-sitio p{margin:0}.pie-sitio p+p{margin-top:3px}.pie-sitio strong{color:var(--texto);font-weight:600}
body.acceso.sitio-con-pie{align-items:center;justify-content:flex-start;padding:24px 0 0}
.acceso.sitio-con-pie>.card,.acceso.sitio-con-pie>main{flex:none;width:min(440px,calc(100% - 24px));margin:auto 0}
.acceso.sitio-con-pie>.pie-sitio{margin-top:24px;align-self:stretch}
@media(max-width:600px){.pie-sitio{padding:12px 16px;font-size:11px}}
