:root{--fondo:#f4f6f9;--superficie:#fff;--texto:#1f2937;--suave:#6b7280;--borde:#d9dee5;--marca:#0b5394;--marca-osc:#073763;--ok:#047857;--ok-fondo:#ecfdf5;--alerta:#b45309;--alerta-fondo:#fffbeb;--error:#b91c1c;--error-fondo:#fef2f2;--info-fondo:#eff6ff;--radio:10px}*{box-sizing:border-box}html,body{margin:0}body{background:var(--fondo);min-height:100vh;color:var(--texto);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}h1{margin:0;font-size:1.5rem}h2{margin:1.5rem 0 .75rem;font-size:1.1rem}h3{margin:0 0 .25rem;font-size:.95rem}button,input,select,textarea{font:inherit}.oculto{display:none}.suave{color:var(--suave);margin:.2rem 0 0}.vacio{color:var(--suave);background:var(--superficie);border:1px dashed var(--borde);border-radius:var(--radio);padding:1rem}.cargando{color:var(--suave)}.barra{background:var(--marca);color:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.barra__marca{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:1.1rem;font-weight:700}.barra__marca small{opacity:.8;font-weight:400}.barra__usuario{align-items:center;gap:.75rem;min-width:0;font-size:.9rem;display:flex}.barra__usuario span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contenido{max-width:1200px;margin:0 auto;padding:1.25rem 1rem 3rem}.pagina__cabecera{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:.5rem 0 1rem;display:flex}.pagina__cabecera h2{margin:0}.botones{flex-wrap:wrap;gap:.5rem;display:flex}.boton{border:1px solid var(--borde);background:var(--superficie);color:var(--texto);cursor:pointer;border-radius:8px;padding:.55rem .9rem;font-weight:500}.boton:hover{border-color:var(--marca)}.boton--primario{background:var(--marca);border-color:var(--marca);color:#fff}.boton--primario:hover{background:var(--marca-osc)}.boton--peligro{background:var(--error);border-color:var(--error);color:#fff}.boton:disabled{opacity:.6;cursor:not-allowed}.boton-enlace{color:var(--marca);cursor:pointer;background:0 0;border:0;padding:.25rem 0;font-weight:500}.boton-enlace--peligro{color:var(--error)}.boton-enlace--claro{color:#fff;text-decoration:underline}.boton-icono{cursor:pointer;color:var(--suave);background:0 0;border:0;font-size:1.5rem;line-height:1}.aviso{border-radius:8px;margin:.75rem 0;padding:.75rem 1rem}.aviso--error{background:var(--error-fondo);color:var(--error)}.aviso--ok{background:var(--ok-fondo);color:var(--ok)}.aviso--info{background:var(--info-fondo);color:var(--marca-osc)}.estado{white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.estado--pagado{background:var(--ok-fondo);color:var(--ok)}.estado--pendiente{background:var(--info-fondo);color:var(--marca)}.estado--parcial{background:var(--alerta-fondo);color:var(--alerta)}.estado--vencido{background:var(--error-fondo);color:var(--error)}.estado--anulado{color:var(--suave);background:#f3f4f6}.saldos,.totales{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.saldo,.total{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);border-top:4px solid var(--ok);padding:1rem}.saldo--debe{border-top-color:var(--marca)}.saldo--vencido{border-top-color:var(--error)}.saldo__principal{justify-content:space-between;align-items:baseline;margin:.25rem 0;display:flex}.saldo__principal strong{font-size:1.5rem}.saldo__linea{margin:.15rem 0;font-size:.9rem}.saldo__linea--vencido{color:var(--error);font-weight:600}.saldo__linea--favor{color:var(--ok);font-weight:600}.saldo__linea--suave{color:var(--suave);font-size:.8rem}.total{border-top-color:var(--marca)}.total h2{margin:0 0 .5rem;font-size:1rem}.total dl{gap:.35rem;margin:0;display:grid}.total dl div{justify-content:space-between;gap:1rem;display:flex}.total dt{color:var(--suave)}.total dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.total--vencido dd{color:var(--error)}.buscar{border:1px solid var(--borde);border-radius:8px;width:240px;min-width:0;max-width:100%;padding:.5rem .75rem}.clientes{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.cliente{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);cursor:pointer;text-align:left;width:100%;color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.85rem 1rem;display:flex}.cliente:hover{border-color:var(--marca)}.cliente__nombre{font-weight:600}.cliente__saldos{flex-wrap:wrap;gap:.35rem;display:flex}.chip{background:#f3f4f6;border-radius:999px;padding:.15rem .6rem;font-size:.85rem}.chip--debe{background:var(--info-fondo);color:var(--marca);font-weight:600}.chip--vencido{background:var(--error-fondo);color:var(--error);font-weight:600}.chip--favor{background:var(--ok-fondo);color:var(--ok);font-weight:600}.pestanas{border-bottom:1px solid var(--borde);gap:.25rem;margin:1.25rem 0 .5rem;display:flex;overflow-x:auto}.pestana{cursor:pointer;color:var(--suave);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:.6rem .9rem;font-weight:500}.pestana--activa{color:var(--marca);border-bottom-color:var(--marca)}.columnas{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (min-width:960px){.columnas{grid-template-columns:1.1fr 1fr}}.tabla-scroll{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);overflow-x:auto}.tabla{border-collapse:collapse;width:100%;font-size:.92rem}.tabla th,.tabla td{text-align:left;border-bottom:1px solid var(--borde);vertical-align:top;padding:.6rem .75rem}.tabla tr:last-child td{border-bottom:0}.tabla th{color:var(--suave);text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;font-weight:600}.num{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.fila--anulada td{color:var(--suave);text-decoration:line-through}.fila--anulada .motivo{text-decoration:none}.motivo{color:var(--suave);font-size:.8rem;display:block}.acciones{text-align:right}.pagos{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.pago{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:.9rem 1rem}.pago--anulado{opacity:.65}.pago__cabecera{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.pago__monto{font-size:1.2rem;display:block}.pago__meta{color:var(--suave);font-size:.88rem}.pago__linea{margin:.4rem 0 0;font-size:.9rem}.pago__detalle{white-space:pre-wrap;background:var(--fondo);border-radius:8px;margin:.6rem 0 0;padding:.6rem .75rem}.pago__aplicacion{margin-top:.6rem;font-size:.9rem}.pago__aplicacion ul{margin:.2rem 0 0;padding-left:1.2rem}.pago__nota{color:var(--alerta);margin:.5rem 0 0;font-size:.85rem}.pago__registro{color:var(--suave);margin:.5rem 0 0;font-size:.78rem}.comprobantes{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.comprobante{width:120px;margin:0;font-size:.78rem}.comprobante__vista{background:var(--fondo);border:1px solid var(--borde);width:120px;height:90px;color:var(--suave);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;display:flex;overflow:hidden}.comprobante__vista img{object-fit:cover;width:100%;height:100%}.comprobante__icono{color:var(--error);font-weight:700}.comprobante figcaption{gap:.1rem;margin-top:.25rem;display:grid}.comprobante figcaption span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.comprobante figcaption a{color:var(--marca)}.comprobante figcaption .boton-enlace{justify-self:start;padding:0;font-size:.78rem}.comprobante--subir{border:1px dashed var(--marca);height:90px;color:var(--marca);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-weight:600;display:flex}.servicios,.accesos{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.servicio,.accesos li{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.servicio--inactivo{opacity:.6}.en-linea{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.en-linea input{border:1px solid var(--borde);border-radius:8px;flex:1;min-width:0;padding:.55rem .75rem}.historial{margin-top:1.5rem}.historial summary{cursor:pointer;color:var(--marca);margin-bottom:.75rem;font-weight:600}.modal{z-index:10;border:0;border-radius:14px;width:min(520px,100vw - 2rem);max-height:calc(100vh - 2rem);margin:auto;padding:0;position:fixed;inset:0;box-shadow:0 20px 50px #00000040}.modal--ancho{width:min(720px,100vw - 2rem)}.modal::backdrop{background:#0f172a73}.modal__cabecera{border-bottom:1px solid var(--borde);background:var(--superficie);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.modal__cabecera h2{margin:0}.modal__cuerpo{padding:1rem 1.25rem 1.25rem}.formulario{gap:.85rem;display:grid}.fila-campos{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.campo{gap:.3rem;display:grid}.campo__etiqueta{font-size:.88rem;font-weight:600}.campo input,.campo select,.campo textarea{border:1px solid var(--borde);background:#fff;border-radius:8px;width:100%;padding:.55rem .7rem}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid var(--marca);outline-offset:0;border-color:var(--marca)}.campo--error input,.campo--error select,.campo--error textarea{border-color:var(--error)}.campo__ayuda{color:var(--suave);font-size:.8rem}.campo__error{color:var(--error);font-size:.82rem}.check{cursor:pointer;align-items:center;gap:.45rem;display:flex}.check--derecha{color:var(--suave);justify-content:flex-end;font-size:.9rem}.aplicacion{border:1px solid var(--borde);border-radius:var(--radio);gap:.5rem;padding:.75rem 1rem;display:grid}.aplicacion legend{padding:0 .3rem;font-weight:600}.simulacion{background:var(--fondo);border-radius:8px;padding:.6rem .8rem;font-size:.9rem}.simulacion ul{margin:0;padding-left:1.2rem}.simulacion p{margin:.3rem 0 0}.manual{gap:.5rem;display:grid}.acciones-formulario{justify-content:flex-end;display:flex}@media (max-width:600px){.contenido{padding:1rem .75rem 3rem}.tabla th:nth-child(2),.tabla td:nth-child(2),.barra__usuario span{display:none}}
