:root{color-scheme:light;--fondo: #eef1f7;--superficie: #ffffff;--superficie-alta: #f2f5fa;--superficie-solida: #e4eaf4;--borde: #d6deeb;--texto: #182636;--texto-suave: #56687f;--texto-tenue: #8b9aae;--acento: #1c4fa1;--acento-fuerte: #133a7d;--acento-suave: #e8f0fc;--acento-contorno: rgba(28, 79, 161, .18);--ok: #1d7a46;--ok-suave: #e2f3e9;--aviso: #b2760f;--aviso-suave: #faf0dc;--error: #bc3b2e;--error-suave: #fae9e6;--info: #1b7aaf;--info-suave: #e1f1fa;--radio-sm: 6px;--radio: 10px;--radio-lg: 14px;--sombra-sm: 0 1px 2px rgba(16, 42, 77, .05);--sombra: 0 1px 2px rgba(16, 42, 77, .06), 0 6px 18px -6px rgba(16, 42, 77, .1);--sombra-lg: 0 20px 45px -18px rgba(16, 42, 77, .28);--transicion: .15s ease;--nav-fondo: #101f36;--nav-fondo-fuerte: #0b1628;--nav-texto: #8fa3be;--nav-texto-suave: #5d7190;--nav-activo-fondo: rgba(28, 79, 161, .4);--nav-activo-texto: #ffffff;--nav-hover: rgba(255, 255, 255, .055);--nav-borde: #1d3352;--nav-marca-texto: #ffffff;--nav-marca-sub: #7790b4;--topbar-fondo: rgba(255, 255, 255, .82)}[data-tema=oscuro]{color-scheme:dark;--fondo: #0a1322;--superficie: #111f33;--superficie-alta: #182943;--superficie-solida: #213652;--borde: #243b5c;--texto: #dce6f3;--texto-suave: #9aadc8;--texto-tenue: #6d829f;--acento: #3f7bc8;--acento-fuerte: #5d94dc;--acento-suave: #16283f;--acento-contorno: rgba(99, 151, 220, .35);--ok: #45bd82;--ok-suave: #0f2b1d;--aviso: #ddab4c;--aviso-suave: #2c230f;--error: #e0685c;--error-suave: #341715;--info: #56a9d9;--info-suave: #11283a;--sombra-sm: 0 1px 2px rgba(0, 0, 0, .35);--sombra: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 22px -8px rgba(0, 0, 0, .55);--sombra-lg: 0 24px 50px -18px rgba(0, 0, 0, .7);--topbar-fondo: rgba(17, 31, 51, .82)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;background:var(--fondo);color:var(--texto);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .5rem;font-weight:650;letter-spacing:-.01em}h1{font-size:1.35rem}h2{font-size:1.05rem}h3{font-size:.92rem}a{color:var(--acento);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}:focus-visible{outline:2px solid var(--acento);outline-offset:2px}::selection{background:var(--acento-contorno)}*{scrollbar-width:thin;scrollbar-color:var(--superficie-solida) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--superficie-solida);border-radius:999px;border:2px solid var(--superficie)}*::-webkit-scrollbar-track{background:transparent}.app{display:flex;min-height:100vh}.principal{flex:1;padding:1.75rem 2rem 3rem;overflow-x:auto;min-width:0}.cabecera{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.4rem;gap:1rem;flex-wrap:wrap}.cabecera p{margin:0;color:var(--texto-suave);font-size:.85rem}.lateral{width:248px;flex-shrink:0;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--nav-fondo) 0%,var(--nav-fondo-fuerte) 100%);border-right:1px solid var(--nav-borde);color:var(--nav-texto);position:sticky;top:0;height:100vh;transition:width var(--transicion);overflow:hidden}.lateral-plegado .lateral{width:70px}.marca{display:flex;align-items:center;gap:.7rem;padding:1rem 1.1rem;border-bottom:1px solid var(--nav-borde);flex:none}.marca-marca{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;background:#fff;overflow:hidden;color:#fff;font-weight:800;font-size:.85rem;letter-spacing:.02em}.marca-marca img{width:100%;height:100%;object-fit:cover;display:block}.marca-txt{display:flex;flex-direction:column;line-height:1.15;min-width:0;flex:1;white-space:nowrap}.marca-txt strong{color:var(--nav-marca-texto);font-size:.98rem}.marca-txt span{color:var(--nav-marca-sub);font-size:.68rem;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis}.nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem 0 1rem}.nav-grupo{margin:1.05rem 1.2rem .3rem;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--nav-texto-suave);white-space:nowrap}.nav-grupo:first-child{margin-top:.6rem}.nav a{display:flex;align-items:center;gap:.75rem;margin:2px 8px;padding:.5rem .7rem;border-radius:8px;color:var(--nav-texto);text-decoration:none;white-space:nowrap;font-size:.86rem;transition:background var(--transicion),color var(--transicion)}.nav a:hover{background:var(--nav-hover);color:#fff;text-decoration:none}.nav a.activo{background:var(--nav-activo-fondo);color:var(--nav-activo-texto);font-weight:600;box-shadow:inset 2.5px 0 0 var(--acento)}.nav-ico{width:18px;height:18px;flex:none;display:grid;place-items:center}.nav-ico svg{width:18px;height:18px}.lateral-plegado .nav a{justify-content:center;padding:.55rem}.lateral-plegado .nav a span,.lateral-plegado .nav-grupo,.lateral-plegado .marca-txt{display:none}.lateral-plegado .marca{justify-content:center;padding:1rem 0}.usuario{padding:.9rem 1rem;margin-top:auto;border-top:1px solid var(--nav-borde);display:flex;align-items:center;gap:.6rem;flex:none}.avatar{width:2.15rem;height:2.15rem;flex:none;border-radius:50%;background:linear-gradient(135deg,#d08a2b,#b96f14);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}.usuario-txt{display:flex;flex-direction:column;line-height:1.2;overflow:hidden;min-width:0;white-space:nowrap}.usuario-txt strong{color:var(--nav-marca-texto);font-size:.8rem;overflow:hidden;text-overflow:ellipsis}.usuario-txt span{color:var(--nav-texto-suave);font-size:.68rem}.usuario .cerrar-sesion{margin-left:auto;flex:none;background:none;border:none;color:var(--nav-texto-suave);padding:.35rem;border-radius:7px;cursor:pointer;line-height:0}.usuario .cerrar-sesion:hover{background:var(--nav-hover);color:#fff}.usuario .cerrar-sesion svg{width:16px;height:16px}.lateral-plegado .usuario{justify-content:center;padding:.9rem 0}.lateral-plegado .usuario-txt{display:none}.plegar{margin-left:auto;flex:none;width:26px;height:26px;display:grid;place-items:center;background:none;border:none;border-radius:7px;color:var(--nav-texto-suave);cursor:pointer;line-height:0;padding:0}.plegar:hover{background:var(--nav-hover);color:#fff}.plegar svg{width:16px;height:16px}.marco{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 2rem;background:var(--topbar-fondo);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--borde);flex-wrap:wrap}.tb-titulo{display:flex;flex-direction:column;line-height:1.2;min-width:0}.tb-titulo h1{margin:0;font-size:1.02rem}.tb-titulo .tb-sub{font-size:.72rem;color:var(--texto-suave);display:flex;align-items:center;gap:.4rem;min-width:0}.tb-titulo .tb-sub .tenant-nombre{font-weight:600;color:var(--texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}.tb-titulo .tb-sub .tenant-rnc{color:var(--texto-tenue)}.tb-acciones{display:flex;align-items:center;gap:.6rem}.estado-conexion{display:inline-flex;align-items:center;gap:.45rem;font-size:.74rem;font-weight:600;color:var(--texto-suave);padding:.3rem .65rem;border-radius:999px;background:var(--superficie);border:1px solid var(--borde);white-space:nowrap}.estado-conexion:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-suave)}.estado-conexion.off:before{background:var(--error);box-shadow:0 0 0 3px var(--error-suave)}.estado-conexion.off{color:var(--error)}.tb-sel{display:flex;align-items:center;gap:.55rem}.tb-sel label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--texto-suave);font-weight:700;white-space:nowrap}.tb-sel select{min-width:210px;background:var(--superficie);border:1px solid var(--borde);border-radius:8px;color:var(--texto);padding:.42rem .65rem;font-size:.82rem;font-weight:500;font-family:inherit;box-shadow:var(--sombra-sm)}.tb-sel select:hover{border-color:var(--acento)}.tb-sel select:focus-visible{outline:2px solid var(--acento);outline-offset:1px}.btn-icono{width:34px;height:34px;flex:none;display:grid;place-items:center;background:var(--superficie);border:1px solid var(--borde);border-radius:8px;color:var(--texto-suave);cursor:pointer;line-height:0;padding:0;box-shadow:var(--sombra-sm);transition:background var(--transicion),color var(--transicion),border-color var(--transicion)}.btn-icono:hover{background:var(--superficie-alta);color:var(--texto);border-color:var(--acento)}.btn-icono svg{width:16px;height:16px}@media (max-width: 900px){.lateral{position:fixed;left:0;top:0;bottom:0;z-index:60}.principal{padding:1.25rem 1rem 2.5rem}.topbar{padding:.6rem 1rem}}.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:1rem 1.1rem;box-shadow:var(--sombra-sm)}.tarjeta .etiqueta{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--texto-suave);font-weight:700}.tarjeta .valor{font-size:1.7rem;font-weight:700;margin:.3rem 0;font-variant-numeric:tabular-nums}.tarjeta .pie{font-size:.74rem;color:var(--texto-suave)}.tarjeta.ok .valor{color:var(--ok)}.tarjeta.error .valor{color:var(--error)}.tarjeta.aviso .valor{color:var(--aviso)}.panel{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:1.1rem 1.2rem;margin-bottom:1rem;box-shadow:var(--sombra-sm)}.panel>h2,.panel>h3{margin-bottom:.85rem}.tabla-envoltorio{overflow-x:auto;border:1px solid var(--borde);border-radius:var(--radio);background:var(--superficie);box-shadow:var(--sombra-sm)}table{width:100%;border-collapse:collapse;font-size:.85rem;background:var(--superficie)}th{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--borde);color:var(--texto-suave);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:var(--superficie-alta)}td{padding:.6rem .7rem;border-bottom:1px solid var(--borde);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--superficie-alta)}.num{text-align:right;font-variant-numeric:tabular-nums}.insignia,.pastilla{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;line-height:1.4}.insignia.ACEPTADO,.insignia.ok,.pastilla.si{background:var(--ok-suave);color:var(--ok)}.insignia.RECHAZADO,.insignia.ERROR,.insignia.error,.pastilla.no{background:var(--error-suave);color:var(--error)}.insignia.ENVIADO,.insignia.EN-PROCESO,.insignia.aviso,.pastilla.aviso{background:var(--aviso-suave);color:var(--aviso)}.insignia.FIRMADO,.insignia.info,.pastilla.ambiente{background:var(--info-suave);color:var(--info)}.pastilla.nulo{background:var(--superficie-alta);color:var(--texto-tenue)}input,select,textarea{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio-sm);color:var(--texto);padding:.48rem .65rem;font-size:.85rem;font-family:inherit;width:100%;transition:border-color var(--transicion),box-shadow var(--transicion)}input:hover,select:hover,textarea:hover{border-color:var(--texto-tenue)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-contorno)}label{display:block;font-size:.74rem;color:var(--texto-suave);margin-bottom:.3rem;font-weight:600}.campo{margin-bottom:.8rem}.filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;align-items:end}button{background:var(--acento);border:1px solid transparent;border-radius:var(--radio-sm);color:#fff;padding:.48rem .95rem;font-size:.84rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--transicion),box-shadow var(--transicion),transform var(--transicion),border-color var(--transicion)}button:hover{background:var(--acento-fuerte);box-shadow:0 4px 12px -4px var(--acento-contorno)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}button.secundario{background:var(--superficie);border-color:var(--borde);color:var(--texto)}button.secundario:hover{background:var(--superficie-alta);border-color:var(--acento);box-shadow:none}button.peligro{background:var(--error)}button.peligro:hover{background:var(--error);filter:brightness(1.08)}button.pequeno{padding:.28rem .6rem;font-size:.74rem}.acciones{display:flex;gap:.5rem;flex-wrap:wrap}a.btn{display:inline-flex;align-items:center;background:var(--superficie);border:1px solid var(--borde);color:var(--texto);border-radius:var(--radio-sm);padding:.45rem .9rem;font-size:.84rem;font-weight:600;text-decoration:none;font-family:inherit;transition:background var(--transicion),border-color var(--transicion)}a.btn:hover{background:var(--superficie-alta);border-color:var(--acento);text-decoration:none}.linea-tiempo{position:relative;padding-left:1.5rem}.linea-tiempo:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--borde)}.evento{position:relative;padding-bottom:1rem}.evento:before{content:"";position:absolute;left:-1.5rem;top:5px;width:12px;height:12px;border-radius:50%;background:var(--info);border:2px solid var(--superficie)}.evento.ERROR:before{background:var(--error)}.evento.AVISO:before{background:var(--aviso)}.evento .titulo{font-weight:600;font-size:.85rem}.evento .meta{font-size:.75rem;color:var(--texto-suave)}.evento .cuerpo{font-size:.8rem;margin-top:.25rem}pre{background:var(--superficie-alta);border:1px solid var(--borde);border-radius:var(--radio-sm);padding:.75rem;overflow-x:auto;font-size:.75rem;margin:.5rem 0 0;max-height:320px}.barra{height:6px;background:var(--superficie-solida);border-radius:999px;overflow:hidden}.barra>span{display:block;height:100%;background:var(--acento);border-radius:999px}.barra.aviso>span{background:var(--aviso)}.barra.error>span{background:var(--error)}.grafico{display:flex;align-items:flex-end;gap:6px;height:130px;padding-top:.5rem}.grafico .columna{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;min-width:0}.grafico .segmento{border-radius:2px 2px 0 0;min-height:2px}.grafico .segmento.ok{background:var(--ok)}.grafico .segmento.error{background:var(--error)}.grafico .segmento.aviso{background:var(--aviso)}.grafico .fecha{font-size:.65rem;color:var(--texto-suave);text-align:center;margin-top:.25rem;white-space:nowrap;overflow:hidden}.leyenda{display:flex;gap:1rem;font-size:.75rem;color:var(--texto-suave)}.leyenda span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:.3rem}.leyenda .l-ok:before{background:var(--ok)}.leyenda .l-error:before{background:var(--error)}.leyenda .l-aviso:before{background:var(--aviso)}.aviso-caja{padding:.75rem 1rem;border-radius:var(--radio);border:1px solid var(--borde);border-left:3px solid var(--info);margin-bottom:1rem;font-size:.85rem;background:var(--superficie)}.aviso-caja.error{background:var(--error-suave);border-color:transparent;border-left-color:var(--error);color:var(--error)}.aviso-caja.aviso{background:var(--aviso-suave);border-color:transparent;border-left-color:var(--aviso);color:var(--aviso)}.aviso-caja.ok{background:var(--ok-suave);border-color:transparent;border-left-color:var(--ok);color:var(--ok)}.vacio{text-align:center;padding:3rem 2rem;color:var(--texto-suave)}.vacio-icono{font-size:2rem;margin-bottom:.5rem;opacity:.6}.cargando{text-align:center;padding:2.5rem;color:var(--texto-suave)}.esqueleto{border-radius:var(--radio)}.esqueleto-linea{height:12px;border-radius:999px;margin-bottom:.6rem;background:linear-gradient(90deg,var(--superficie-alta) 25%,var(--superficie-solida) 50%,var(--superficie-alta) 75%);background-size:200% 100%;animation:esqueleto 1.2s ease-in-out infinite}@keyframes esqueleto{0%{background-position:200% 0}to{background-position:-200% 0}}.paginacion{display:flex;align-items:center;gap:.75rem;margin-top:1rem;font-size:.8rem;color:var(--texto-suave)}.rejilla-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 900px){.rejilla-2{grid-template-columns:1fr}}dl.datos{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:0}dl.datos dt{color:var(--texto-suave);font-size:.8rem}dl.datos dd{margin:0;font-size:.85rem}
