:root{--verde:#217346;--verde-osc:#185c37;--verde-claro:#e2efda;--fondo:#f3f3f3;--superficie:#fff;--borde:#d4d4d4;--texto:#1f1f1f;--tenue:#616161;--error:#b42318;--error-fondo:#fdecea;--alerta:#8a5a00;--alerta-fondo:#fff4ce;--ok:#107c41;--ok-fondo:#dff6dd;--radio:6px;color:var(--texto);background:var(--fondo);font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}button{font:inherit;color:inherit}[hidden]{display:none!important}.tenue{color:var(--tenue);font-size:12px}.logo{width:26px;height:26px;color:var(--verde);background:#fff;border-radius:4px;place-items:center;font-size:15px;font-weight:800;display:inline-grid}.btn{border-radius:var(--radio);cursor:pointer;border:1px solid #0000;padding:9px 14px;font-weight:600}.btn-primario{background:var(--verde);color:#fff}.btn-primario:hover{background:var(--verde-osc)}.btn-secundario{background:var(--superficie);border-color:var(--borde)}.btn-enlace{color:var(--verde);background:0 0;padding:4px 0;font-weight:500}.btn:disabled{opacity:.6;cursor:progress}.login{background:linear-gradient(180deg, var(--verde) 0 42%, var(--fondo) 42%);place-items:center;min-height:100%;padding:16px;display:grid}.login-tarjeta{background:var(--superficie);border-radius:10px;width:min(400px,100%);padding:28px;box-shadow:0 10px 40px #00000026}.login-marca{align-items:center;gap:12px;margin-bottom:24px;display:flex}.login-marca .logo{background:var(--verde);color:#fff;border-radius:8px;width:40px;height:40px;font-size:22px}.login-marca h1{margin:0;font-size:19px}.login-marca p{color:var(--tenue);margin:2px 0 0;font-size:13px}.login-paso{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.login-paso label{font-size:13px;font-weight:600}.login-paso input{border:1px solid var(--borde);border-radius:var(--radio);width:100%;min-width:0;padding:10px 12px;font-size:15px}.login-paso input:focus{outline:2px solid var(--verde);border-color:var(--verde)}#codigo{letter-spacing:.5em;text-indent:.5em;text-align:center;font-variant-numeric:tabular-nums;font-size:22px}.login-acciones{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.login-mensaje{min-height:20px;margin:12px 0 0;font-size:13px}.login-mensaje[data-tipo=error]{color:var(--error)}.login-mensaje[data-tipo=ok]{color:var(--ok)}.login-dev{background:var(--alerta-fondo);color:var(--alerta);border-radius:var(--radio);margin:12px 0 0;padding:6px 10px;font-size:12px}.app{flex-direction:column;height:100%;display:flex}.barra{background:var(--verde);color:#fff;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:6px 12px;font-size:13px;display:flex}.barra-izq,.barra-der{align-items:center;gap:10px;min-width:0;display:flex}.barra .sep{opacity:.6}.titulo-archivo{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.barra-empresa{opacity:.85;white-space:nowrap}.barra-usuario{text-overflow:ellipsis;white-space:nowrap;background:#ffffff26;border-radius:999px;max-width:220px;padding:3px 10px;overflow:hidden}.barra-salir{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;display:flex}.barra-salir:hover{background:#ffffff1f}.barra-salir svg{width:16px;height:16px}.cinta{background:var(--superficie);border-bottom:1px solid var(--borde);padding:4px 4px 0;display:flex;overflow-x:auto}.cinta-grupo{border-right:1px solid #e5e5e5;flex-direction:column;flex:none;padding:0 8px;display:flex}.cinta-items{flex:1;align-items:stretch;gap:2px;display:flex}.cinta-titulo{text-align:center;color:var(--tenue);padding:3px 0 4px;font-size:11px}.cinta-col{flex-direction:column;justify-content:center;gap:2px;display:flex}.cinta-btn{cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex}.cinta-btn svg{width:18px;height:18px;color:var(--verde);flex:none}.cinta-btn.grande{white-space:normal;text-align:center;flex-direction:column;justify-content:center;width:104px;padding:6px 4px;line-height:1.2}.cinta-btn.grande svg{width:28px;height:28px}.cinta-btn:hover:not(:disabled){background:#e8f2ec;border-color:#c6dfd0}.cinta-btn.activo,.cinta-btn[aria-pressed=true]{background:#d6eadf;border-color:#a9d1b9}.cinta-btn.primario:not(:disabled){background:var(--verde);color:#fff}.cinta-btn.primario:not(:disabled) svg{color:#fff}.cinta-btn.primario:hover:not(:disabled){background:var(--verde-osc)}.cinta-btn:disabled{opacity:.45;cursor:default}.cinta-fechas{grid-template-columns:auto auto;align-items:center;gap:4px 8px;padding:4px 0;font-size:12px;display:grid}.cinta-fechas input{font:inherit;border:1px solid var(--borde);border-radius:3px;padding:3px 6px}.cinta-fechas input[readonly]{color:var(--tenue);background:#f5f5f5}.resumen{background:var(--superficie);border-bottom:1px solid var(--borde);flex-wrap:wrap;gap:8px;min-height:38px;padding:6px 10px;font-size:12px;display:flex}.resumen:empty{display:none}.chip{background:#f1f1f1;border-radius:999px;align-items:baseline;gap:6px;padding:3px 10px;display:flex}.chip span{color:var(--tenue)}.chip strong{font-variant-numeric:tabular-nums}.chip.ok{background:var(--ok-fondo);color:var(--ok)}.chip.error{background:var(--error-fondo);color:var(--error)}.chip.gris strong{color:var(--tenue)}.trabajo{flex:1;min-height:0;display:flex}.zona{flex:1;min-width:0;position:relative}.grilla{position:absolute;inset:0}.zona.arrastrando:after{content:"Suelta el archivo aquí";border:3px dashed var(--verde);color:var(--verde);background:#21734614;border-radius:10px;place-items:center;font-size:18px;font-weight:700;display:grid;position:absolute;inset:8px}.vacio{z-index:2;background:#f3f3f3eb;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.vacio-caja{text-align:center;background:var(--superficie);border:2px dashed #b9d8c6;border-radius:12px;max-width:420px;padding:32px}.vacio-caja svg{width:48px;height:48px;color:var(--verde)}.vacio-caja h2{margin:8px 0;font-size:18px}.panel{border-left:1px solid var(--borde);background:var(--superficie);flex-direction:column;flex:none;width:380px;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--borde);display:flex}.tab{cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;padding:9px;font-size:13px}.tab.activo{border-bottom-color:var(--verde);color:var(--verde);font-weight:600}.panel-cuerpo{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px;display:flex;overflow:auto}.panel-pie{justify-content:flex-end;display:flex}.estado{border-radius:var(--radio);padding:8px 10px;font-size:13px;font-weight:600}.estado.ok{background:var(--ok-fondo);color:var(--ok)}.estado.error{background:var(--error-fondo);color:var(--error)}.grupo-avisos{border:1px solid var(--borde);border-radius:var(--radio);font-size:12px}.grupo-avisos summary{cursor:pointer;padding:6px 10px;font-weight:600}.grupo-avisos.error summary{color:var(--error)}.grupo-avisos.alerta summary{color:var(--alerta)}.grupo-avisos.gris summary{color:var(--tenue)}.grupo-avisos ul{gap:4px;max-height:260px;margin:0;padding:0 10px 8px;list-style:none;display:grid;overflow:auto}.grupo-avisos li{align-items:baseline;gap:6px;display:flex}.fila{border:1px solid var(--borde);cursor:pointer;background:#fafafa;border-radius:3px;flex:none;padding:0 5px;font-size:11px}.fila:hover{border-color:var(--verde);color:var(--verde)}.aviso-cargue{background:var(--alerta-fondo);color:var(--alerta);border-radius:var(--radio);padding:8px 10px;font-size:12px}.texto-plano{color:#d4d4d4;border-radius:var(--radio);background:#1e1e1e;flex:1;min-height:120px;margin:0;padding:8px 0;font:12px/1.55 ui-monospace,Cascadia Mono,Consolas,monospace;overflow:auto}.linea{white-space:pre;display:flex}.linea .n{text-align:right;color:#6e7681;-webkit-user-select:none;user-select:none;flex:none;width:42px;padding-right:10px}.linea:first-child span:last-child{color:#7ee2a8}.toast{border-radius:var(--radio);color:#fff;z-index:50;background:#323232;max-width:min(560px,100% - 32px);padding:10px 16px;font-size:13px;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.toast[data-tipo=error]{background:var(--error)}@media (max-width:900px){.panel{z-index:3;width:min(380px,100%);position:absolute;top:0;bottom:0;right:0;box-shadow:-6px 0 20px #00000026}.trabajo{position:relative}.barra-empresa{display:none}}
