/* Nodiq e-CF — sistema de diseño */
:root{
  --azul:#007AFF; --azul2:#0A64D8; --azul-suave:#E8F2FF;
  --cian:#00C8E6; --verde:#16B364; --verde-suave:#E7F8EF; --ambar:#F59E0B; --ambar-suave:#FEF5E2;
  --rojo:#EF4444; --rojo-suave:#FDECEC; --violeta:#7C5CFF; --violeta-suave:#F0ECFF;
  --tinta:#07142A; --texto:#0B1B33; --suave:#5B6B85; --tenue:#8A98AF;
  --fondo:#F4F7FC; --panel:#FFFFFF; --panel2:#F8FAFD; --borde:#E2E8F2; --borde2:#EEF2F8;
  --sombra:0 1px 2px rgba(11,27,51,.05),0 4px 16px rgba(11,27,51,.06);
  --sombra-g:0 10px 40px rgba(11,27,51,.16);
  --radio:14px; --radio-s:10px;
  --t:'Plus Jakarta Sans',system-ui,sans-serif; --b:'Inter',system-ui,sans-serif;
  --lado:252px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){ :root:not([data-tema="claro"]){
  --azul-suave:#0F2A4D; --verde-suave:#0D2E20; --ambar-suave:#33260B; --rojo-suave:#3A1416; --violeta-suave:#221A45;
  --tinta:#F2F6FC; --texto:#E6ECF5; --suave:#9AA9C0; --tenue:#6F7F99;
  --fondo:#070F1D; --panel:#0D1A2E; --panel2:#11203A; --borde:#1D2E4A; --borde2:#16253F;
  --sombra:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25); color-scheme:dark;
}}
:root[data-tema="oscuro"]{
  --azul-suave:#0F2A4D; --verde-suave:#0D2E20; --ambar-suave:#33260B; --rojo-suave:#3A1416; --violeta-suave:#221A45;
  --tinta:#F2F6FC; --texto:#E6ECF5; --suave:#9AA9C0; --tenue:#6F7F99;
  --fondo:#070F1D; --panel:#0D1A2E; --panel2:#11203A; --borde:#1D2E4A; --borde2:#16253F;
  --sombra:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25); color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--texto);font:14.5px/1.5 var(--b);-webkit-font-smoothing:antialiased}
a{color:var(--azul);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--t);color:var(--tinta);margin:0;letter-spacing:-.01em}
h1{font-size:24px;font-weight:800} h2{font-size:18px;font-weight:700} h3{font-size:15px;font-weight:700}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
img,svg{max-width:100%}
.oculto{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ── Armazón ── */
.app{display:flex;min-height:100vh}
.lateral{width:var(--lado);flex:0 0 var(--lado);background:var(--panel);border-right:1px solid var(--borde);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}
.lateral .marca{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;font:800 16px var(--t);color:var(--tinta)}
.lateral .marca img{width:30px;height:30px}
.lateral .marca small{display:block;font:600 11px var(--b);color:var(--suave);letter-spacing:.02em}
.empresa-sel{margin:0 12px 10px;padding:10px 12px;border:1px solid var(--borde);border-radius:12px;background:var(--panel2);display:flex;align-items:center;gap:10px;cursor:pointer;width:calc(100% - 24px);text-align:left;color:inherit;font:inherit}
.empresa-sel:hover{border-color:var(--azul)}
.empresa-sel .av{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font:700 13px var(--t);flex:0 0 30px}
.empresa-sel b{display:block;font-size:13px;color:var(--tinta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.empresa-sel span{font-size:11.5px;color:var(--suave)}
.nav{flex:1;overflow:auto;padding:4px 10px 14px}
.nav .grupo{font:700 10.5px var(--b);text-transform:uppercase;letter-spacing:.08em;color:var(--tenue);padding:14px 10px 6px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--suave);font-weight:500;margin:1px 0}
.nav a:hover{background:var(--panel2);color:var(--tinta);text-decoration:none}
.nav a.activo{background:var(--azul-suave);color:var(--azul);font-weight:600}
.nav a svg{width:18px;height:18px;flex:0 0 18px}
.nav a .cnt{margin-left:auto;background:var(--rojo);color:#fff;font-size:11px;font-weight:700;border-radius:20px;padding:1px 7px}
.lateral .pie{padding:12px;border-top:1px solid var(--borde)}
.principal{flex:1;min-width:0;display:flex;flex-direction:column}
.barra{height:60px;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--borde);background:color-mix(in srgb,var(--panel) 85%,transparent);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}
.barra .buscar{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--borde);border-radius:10px;padding:7px 12px;color:var(--tenue);cursor:pointer}
.barra .buscar kbd{margin-left:auto}
.barra .der{margin-left:auto;display:flex;align-items:center;gap:8px}
.contenido{padding:24px;max-width:1280px;width:100%;margin:0 auto}
.menu-movil{display:none}
kbd{font:600 11px var(--b);border:1px solid var(--borde);border-bottom-width:2px;border-radius:6px;padding:1px 6px;background:var(--panel);color:var(--suave)}

/* ── Ambiente ── */
.amb{display:inline-flex;align-items:center;gap:6px;font:700 11.5px var(--b);padding:4px 10px;border-radius:20px;white-space:nowrap}
.amb i{width:7px;height:7px;border-radius:50%;background:currentColor}
.amb-Simulado{background:var(--violeta-suave);color:var(--violeta)}
.amb-TesteCF,.amb-CerteCF{background:var(--ambar-suave);color:#B45309}
.amb-eCF{background:var(--verde-suave);color:var(--verde)}
.franja{padding:8px 24px;font-size:13px;text-align:center;font-weight:500}
.franja.violeta{background:var(--violeta-suave);color:var(--violeta)}
.franja.ambar{background:var(--ambar-suave);color:#B45309}
.franja.roja{background:var(--rojo-suave);color:var(--rojo)}

/* ── Componentes ── */
.cab{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.cab p{margin:4px 0 0;color:var(--suave)}
.cab .acciones{display:flex;gap:8px;flex-wrap:wrap}
.tarjeta{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra)}
.tarjeta>.t-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--borde2)}
.tarjeta>.t-cuerpo{padding:20px}
.tarjeta+.tarjeta{margin-top:16px}
.rejilla{display:grid;gap:16px}
.r2{grid-template-columns:repeat(2,minmax(0,1fr))} .r3{grid-template-columns:repeat(3,minmax(0,1fr))} .r4{grid-template-columns:repeat(4,minmax(0,1fr))}
.r-21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.kpi{padding:18px 20px}
.kpi .et{font-size:12.5px;color:var(--suave);font-weight:500;display:flex;align-items:center;gap:6px}
.kpi .v{font:800 26px var(--t);color:var(--tinta);margin-top:6px;letter-spacing:-.02em}
.kpi .s{font-size:12.5px;color:var(--suave);margin-top:2px}
.kpi .s .up{color:var(--verde);font-weight:600} .kpi .s .down{color:var(--rojo);font-weight:600}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:10px;border:1px solid var(--borde);background:var(--panel);color:var(--texto);font:600 14px var(--b);cursor:pointer;white-space:nowrap;transition:.15s}
.btn:hover{border-color:var(--tenue);text-decoration:none}
.btn svg{width:17px;height:17px}
.btn.prim{background:var(--azul);border-color:var(--azul);color:#fff}
.btn.prim:hover{background:var(--azul2)}
.btn.peligro{color:var(--rojo)} .btn.peligro:hover{border-color:var(--rojo)}
.btn.peligro.lleno{background:var(--rojo);color:#fff;border-color:var(--rojo)}
.btn.verde{background:var(--verde);border-color:var(--verde);color:#fff}
.btn.fantasma{border-color:transparent;background:transparent}
.btn.fantasma:hover{background:var(--panel2)}
.btn.chico{height:30px;padding:0 10px;font-size:13px;border-radius:8px}
.btn.icono{width:38px;padding:0}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.cargando{position:relative;color:transparent!important}
.btn.cargando::after{content:"";position:absolute;width:16px;height:16px;border:2px solid #fff;border-right-color:transparent;border-radius:50%;animation:gira .7s linear infinite}
.btn:not(.prim).cargando::after{border-color:var(--azul);border-right-color:transparent}
@keyframes gira{to{transform:rotate(360deg)}}

.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.campo>label,.etq{font-size:13px;font-weight:600;color:var(--tinta)}
.campo .ayuda{font-size:12.5px;color:var(--suave)}
.campo .err{font-size:12.5px;color:var(--rojo)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],input[type=tel],input[type=url],select,textarea{
  width:100%;height:40px;padding:0 12px;border:1px solid var(--borde);border-radius:10px;background:var(--panel);color:var(--texto);font:14.5px var(--b);outline:none;transition:.15s}
textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--azul);box-shadow:0 0 0 3px color-mix(in srgb,var(--azul) 18%,transparent)}
input[readonly]{background:var(--panel2)}
.inv{border-color:var(--rojo)!important}
input[type=checkbox],input[type=radio]{accent-color:var(--azul);width:16px;height:16px}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.check small{display:block;color:var(--suave)}
.fila{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.fila>.campo{flex:1;min-width:160px}

.chip{display:inline-flex;align-items:center;gap:5px;font:600 12px var(--b);padding:3px 10px;border-radius:20px;white-space:nowrap}
.chip i{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.verde{background:var(--verde-suave);color:var(--verde)}
.chip.rojo{background:var(--rojo-suave);color:var(--rojo)}
.chip.ambar{background:var(--ambar-suave);color:#B45309}
.chip.azul{background:var(--azul-suave);color:var(--azul)}
.chip.gris{background:var(--panel2);color:var(--suave);border:1px solid var(--borde)}
.chip.violeta{background:var(--violeta-suave);color:var(--violeta)}

.tabla-env{overflow-x:auto}
table.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th{text-align:left;font:600 12px var(--b);color:var(--suave);text-transform:uppercase;letter-spacing:.04em;padding:10px 16px;border-bottom:1px solid var(--borde);background:var(--panel2);white-space:nowrap}
.tabla td{padding:12px 16px;border-bottom:1px solid var(--borde2);vertical-align:middle}
.tabla tr:last-child td{border-bottom:0}
.tabla tbody tr.clic{cursor:pointer} .tabla tbody tr.clic:hover{background:var(--panel2)}
.tabla .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tabla .sub{display:block;font-size:12.5px;color:var(--suave)}
.vacio{text-align:center;padding:48px 20px;color:var(--suave)}
.vacio svg{width:44px;height:44px;color:var(--tenue);margin-bottom:8px}
.vacio h3{margin-bottom:4px}

.aviso{display:flex;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid;font-size:14px;margin-bottom:16px;align-items:flex-start}
.aviso svg{width:20px;height:20px;flex:0 0 20px;margin-top:1px}
.aviso.info{background:var(--azul-suave);border-color:color-mix(in srgb,var(--azul) 25%,transparent);color:var(--texto)}
.aviso.info svg{color:var(--azul)}
.aviso.ok{background:var(--verde-suave);border-color:color-mix(in srgb,var(--verde) 25%,transparent)} .aviso.ok svg{color:var(--verde)}
.aviso.alerta{background:var(--ambar-suave);border-color:color-mix(in srgb,var(--ambar) 30%,transparent)} .aviso.alerta svg{color:var(--ambar)}
.aviso.error{background:var(--rojo-suave);border-color:color-mix(in srgb,var(--rojo) 25%,transparent)} .aviso.error svg{color:var(--rojo)}
.aviso ul{margin:6px 0 0;padding-left:18px}

.pestanas{display:flex;gap:4px;border-bottom:1px solid var(--borde);margin-bottom:20px;overflow-x:auto}
.pestanas a{padding:10px 14px;color:var(--suave);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.pestanas a:hover{color:var(--tinta);text-decoration:none}
.pestanas a.activo{color:var(--azul);border-color:var(--azul)}
.filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:14px 16px;border-bottom:1px solid var(--borde2)}
.filtros input,.filtros select{height:36px;width:auto;min-width:140px}
.filtros .buscar-in{flex:1;min-width:200px}
.paginacion{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;color:var(--suave);font-size:13px;border-top:1px solid var(--borde2)}

.lista-def{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:14px}
.lista-def dt{color:var(--suave)} .lista-def dd{margin:0;color:var(--tinta);font-weight:500;word-break:break-word}

.progreso{height:8px;background:var(--panel2);border-radius:20px;overflow:hidden;border:1px solid var(--borde2)}
.progreso>i{display:block;height:100%;background:var(--azul);border-radius:20px}
.progreso.ambar>i{background:var(--ambar)} .progreso.rojo>i{background:var(--rojo)} .progreso.verde>i{background:var(--verde)}

.linea-tiempo{list-style:none;margin:0;padding:0}
.linea-tiempo li{position:relative;padding:0 0 16px 24px;font-size:13.5px}
.linea-tiempo li::before{content:"";position:absolute;left:5px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--azul);box-shadow:0 0 0 3px var(--azul-suave)}
.linea-tiempo li::after{content:"";position:absolute;left:9px;top:18px;bottom:0;width:1px;background:var(--borde)}
.linea-tiempo li:last-child::after{display:none}
.linea-tiempo li.verde::before{background:var(--verde);box-shadow:0 0 0 3px var(--verde-suave)}
.linea-tiempo li.rojo::before{background:var(--rojo);box-shadow:0 0 0 3px var(--rojo-suave)}
.linea-tiempo li.ambar::before{background:var(--ambar);box-shadow:0 0 0 3px var(--ambar-suave)}
.linea-tiempo time{display:block;color:var(--tenue);font-size:12px}

/* Pasos (puesta en marcha) */
.pasos{list-style:none;margin:0;padding:0;counter-reset:p}
.pasos li{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--borde2)}
.pasos li:last-child{border-bottom:0}
.pasos .n{width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:grid;place-items:center;font:700 14px var(--t);background:var(--panel2);border:1px solid var(--borde);color:var(--suave)}
.pasos li.hecho .n{background:var(--verde);border-color:var(--verde);color:#fff}
.pasos li.actual .n{background:var(--azul);border-color:var(--azul);color:#fff;box-shadow:0 0 0 4px var(--azul-suave)}
.pasos h3{margin-bottom:2px} .pasos p{margin:0;color:var(--suave);font-size:13.5px}
.pasos .acc{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}

/* Modal */
.modal-fondo{position:fixed;inset:0;background:rgba(7,20,42,.5);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px;z-index:100;animation:aparece .15s}
.modal{background:var(--panel);border:1px solid var(--borde);border-radius:16px;box-shadow:var(--sombra-g);width:100%;max-width:520px;max-height:84vh;overflow:auto;animation:sube .18s}
.modal.ancho{max-width:760px}
.modal .m-cab{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--borde2)}
.modal .m-cuerpo{padding:20px} .modal .m-pie{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--borde2);background:var(--panel2);border-radius:0 0 16px 16px}
@keyframes aparece{from{opacity:0}} @keyframes sube{from{transform:translateY(8px);opacity:0}}

/* Paleta de comandos */
.paleta{max-width:620px;padding:0}
.paleta input{height:54px;border:0;border-bottom:1px solid var(--borde2);border-radius:16px 16px 0 0;font-size:16px;padding:0 18px;box-shadow:none!important}
.paleta .res{max-height:52vh;overflow:auto;padding:6px}
.paleta .it{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--texto)}
.paleta .it.sel,.paleta .it:hover{background:var(--azul-suave);text-decoration:none}
.paleta .it small{color:var(--suave);margin-left:auto;font-size:12px}
.paleta .it .ic{width:30px;height:30px;border-radius:8px;background:var(--panel2);display:grid;place-items:center;color:var(--suave)}
.paleta .gr{font:700 10.5px var(--b);text-transform:uppercase;letter-spacing:.08em;color:var(--tenue);padding:10px 12px 4px}

/* Toasts */
.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:200}
.toast{background:var(--tinta);color:var(--fondo);padding:12px 16px;border-radius:12px;box-shadow:var(--sombra-g);font-size:14px;max-width:380px;animation:sube .2s;display:flex;gap:10px;align-items:center}
.toast.error{background:var(--rojo);color:#fff} .toast.ok{background:var(--verde);color:#fff}

/* Editor de comprobante */
.editor{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.tipos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tipo-op{border:1px solid var(--borde);border-radius:12px;padding:10px 12px;cursor:pointer;background:var(--panel);text-align:left;font:inherit;color:inherit}
.tipo-op b{display:block;font:700 13.5px var(--t);color:var(--tinta)} .tipo-op span{font-size:12px;color:var(--suave)}
.tipo-op .cod{float:right;font:700 11px var(--b);color:var(--tenue)}
.tipo-op.sel{border-color:var(--azul);background:var(--azul-suave);box-shadow:0 0 0 1px var(--azul)}
.lineas-ed{width:100%;border-collapse:collapse}
.lineas-ed th{font:600 11.5px var(--b);color:var(--suave);text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:8px 6px;border-bottom:1px solid var(--borde)}
.lineas-ed td{padding:6px;border-bottom:1px solid var(--borde2);vertical-align:top}
.lineas-ed input,.lineas-ed select{height:36px;font-size:14px;padding:0 8px}
.lineas-ed .monto{text-align:right;font-variant-numeric:tabular-nums;padding-top:14px;white-space:nowrap;font-weight:600}
.resumen{position:sticky;top:76px}
.resumen .fila-t{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;color:var(--suave)}
.resumen .fila-t b{color:var(--tinta);font-variant-numeric:tabular-nums}
.resumen .total{border-top:1px solid var(--borde);margin-top:8px;padding-top:12px;font:800 22px var(--t);color:var(--tinta);display:flex;justify-content:space-between}
.autocomp{position:relative}
.autocomp .op{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--panel);border:1px solid var(--borde);border-radius:12px;box-shadow:var(--sombra-g);z-index:50;max-height:300px;overflow:auto;padding:4px}
.autocomp .op div{padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14px}
.autocomp .op div:hover,.autocomp .op div.sel{background:var(--azul-suave)}
.autocomp .op small{display:block;color:var(--suave);font-size:12px}

/* Asistente IA */
.ia-chat{display:flex;flex-direction:column;height:calc(100vh - 170px);min-height:420px}
.ia-msgs{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
.ia-msg{max-width:78%;padding:12px 16px;border-radius:16px;font-size:14.5px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}
.ia-msg.user{align-self:flex-end;background:var(--azul);color:#fff;border-bottom-right-radius:4px}
.ia-msg.assistant{align-self:flex-start;background:var(--panel2);border:1px solid var(--borde);border-bottom-left-radius:4px}
.ia-entrada{display:flex;gap:8px;padding:14px;border-top:1px solid var(--borde)}
.ia-entrada textarea{min-height:46px;height:46px}
.sugerencias{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 12px}
.sugerencias button{border:1px solid var(--borde);background:var(--panel);border-radius:20px;padding:6px 12px;font:500 13px var(--b);color:var(--texto);cursor:pointer}
.sugerencias button:hover{border-color:var(--azul);color:var(--azul)}

/* Gráfico de barras simple */
.barras{display:flex;align-items:flex-end;gap:6px;height:160px;padding-top:8px}
.barras .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.barras .b i{display:block;width:100%;max-width:36px;background:linear-gradient(180deg,var(--azul),color-mix(in srgb,var(--azul) 60%,var(--cian)));border-radius:6px 6px 2px 2px;min-height:2px;position:relative}
.barras .b i:hover::after{content:attr(data-v);position:absolute;bottom:100%;left:50%;transform:translate(-50%,-4px);background:var(--tinta);color:var(--fondo);font-size:11px;padding:3px 6px;border-radius:6px;white-space:nowrap}
.barras .b span{font-size:11px;color:var(--tenue)}

/* Autenticación */
.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.auth .lado-a{background:radial-gradient(1200px 600px at 10% 10%,#0E2A55,transparent),linear-gradient(160deg,#07142A,#0B1B33 60%,#0A2F5C);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth .lado-a h1{color:#fff;font-size:34px;line-height:1.15;max-width:460px}
.auth .lado-a p{color:#B8C6DD;max-width:440px;font-size:15.5px}
.auth .lado-a ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px;color:#DCE6F5}
.auth .lado-a li{display:flex;gap:10px;align-items:center}
.auth .lado-a li svg{width:18px;height:18px;color:var(--cian)}
.auth .lado-b{display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--panel)}
.auth form{width:100%;max-width:400px}
.auth .logo{height:30px;margin-bottom:28px}
.auth h2{font-size:24px;margin-bottom:6px}
.auth .sub{color:var(--suave);margin:0 0 24px}
.auth .btn{width:100%;height:44px}
.auth .alt{text-align:center;margin-top:18px;color:var(--suave);font-size:14px}
.brillo{position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(0,200,230,.25),transparent 70%);right:-120px;bottom:-120px}

/* Detalle de comprobante */
.doc-cab{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.doc-cab .encf{font:800 22px var(--t);color:var(--tinta);letter-spacing:.01em}
.monto-g{font:800 30px var(--t);color:var(--tinta);letter-spacing:-.02em}
pre.xml{background:#0B1B33;color:#D6E4FF;border-radius:12px;padding:16px;overflow:auto;max-height:520px;font-size:12.5px;line-height:1.5;margin:0}

@media (max-width:1100px){ .editor{grid-template-columns:1fr} .resumen{position:static} .r4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:860px){
  .lateral{position:fixed;left:0;transform:translateX(-100%);transition:.2s;box-shadow:var(--sombra-g)}
  .lateral.abierto{transform:none}
  .menu-movil{display:inline-flex}
  .barra{padding:0 16px} .contenido{padding:16px}
  .r2,.r3,.r-21{grid-template-columns:1fr}
  .auth{grid-template-columns:1fr} .auth .lado-a{display:none}
  .barra .buscar span{display:none}
}
@media (max-width:520px){ .r4{grid-template-columns:1fr 1fr} .kpi .v{font-size:21px} .tabla th,.tabla td{padding:10px 12px} h1{font-size:21px} }
@media print{ .lateral,.barra,.no-print{display:none!important} .contenido{padding:0} body{background:#fff} }
