:root{--azul:#0b1e3f;--naranja:#e8650a;--texto:#1c2536;--gris:#5b6678;--linea:#dfe3ea;--fondo:#f3f5f8;--blanco:#fff;--verde:#12803c;--verde-f:#e5f5ea;--rojo:#c02020;--rojo-f:#fdeaea;--ambar:#8a6100;--ambar-f:#fdf3dc}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--texto);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1{font-size:1.5rem;margin:0;color:var(--azul);line-height:1.2}h2{font-size:1.05rem;margin:0 0 4px;color:var(--azul)}
a{color:var(--azul)}
.marca{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--azul);text-decoration:none;font-size:1.05rem}.marca img{height:40px;width:auto}
.ancho{max-width:1040px;margin:0 auto;padding:0 16px}
.barra{background:var(--blanco);border-bottom:3px solid var(--naranja)}
.barra-in{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:64px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}nav a{font-size:.95rem;text-decoration:none}nav form{margin:0}
.enlace{background:none;border:0;padding:0;font:inherit;font-size:.95rem;color:var(--azul);cursor:pointer}
main.ancho{padding-top:24px;padding-bottom:48px}
.cab{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.cab>div:first-child{display:flex;align-items:center;gap:12px}
.btn{display:inline-block;padding:10px 16px;min-height:44px;border:1px solid var(--linea);border-radius:8px;background:var(--blanco);color:var(--azul);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{border-color:var(--azul)}.btn:disabled{opacity:.6;cursor:default}
.btn.primario{background:var(--azul);border-color:var(--azul);color:#fff}.btn.peligro{background:var(--rojo);border-color:var(--rojo);color:#fff}
.btn.chico{padding:7px 12px;min-height:36px;font-size:.9rem}nav .btn.primario{color:#fff}
.acciones{display:flex;gap:8px;flex-wrap:wrap}
:focus-visible{outline:2px solid var(--naranja);outline-offset:2px}
.tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:12px;padding:20px}
label{display:block;font-size:.875rem;font-weight:600;color:var(--azul)}
input,select{display:block;width:100%;margin-top:5px;padding:10px 11px;min-height:44px;border:1px solid #c5ccd8;border-radius:8px;font:inherit;font-weight:400;color:var(--texto);background:var(--blanco)}
.pila{display:grid;gap:14px}.angosto{max-width:420px}
.malla{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.d2{grid-column:span 2}.d4{grid-column:span 4}
.filtros{display:grid;grid-template-columns:1fr 170px 140px auto;gap:8px;margin-bottom:14px}.filtros input,.filtros select{margin:0}
.resumen{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.resumen div{background:var(--blanco);border:1px solid var(--linea);border-radius:10px;padding:10px 14px}.resumen span{display:block;font-size:.8rem;color:var(--gris)}.resumen b{font-size:1.2rem;color:var(--azul);font-variant-numeric:tabular-nums}
.tabla{background:var(--blanco);border:1px solid var(--linea);border-radius:12px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.93rem}th{font-size:.78rem;text-align:left;color:var(--gris);font-weight:600}th,td{padding:11px 14px;border-bottom:1px solid var(--linea);white-space:nowrap}td:nth-child(3),td:nth-child(4){white-space:normal;min-width:150px}tr:last-child td{border-bottom:0}.der{text-align:right;font-variant-numeric:tabular-nums}
.chip{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.8rem;font-weight:600}.chip.ok{background:var(--verde-f);color:var(--verde)}.chip.mal{background:var(--rojo-f);color:var(--rojo)}
.pags{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.vacio{text-align:center;padding:48px 16px;background:var(--blanco);border:1px dashed #c5ccd8;border-radius:12px}.vacio p{color:var(--gris);margin-top:0}
.aviso{background:var(--ambar-f);color:var(--ambar);padding:10px 14px;border-radius:8px;margin:0 0 14px}.aviso.mal{background:var(--rojo-f);color:var(--rojo)}
.detalle{display:grid;grid-template-columns:1fr 280px;gap:14px;align-items:start}
.datos{margin:0}.dato{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--linea)}.dato:last-child{border-bottom:0}dt{color:var(--gris);font-size:.9rem;flex:none}dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.dato.total dd{font-size:1.25rem;color:var(--azul);font-variant-numeric:tabular-nums}
.qr{text-align:center}.qr-img svg{width:100%;max-width:220px;height:auto}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9rem;color:var(--azul);margin:8px 0 12px}
.cancelar{margin-top:14px;display:grid;gap:12px;max-width:560px}.sub{color:var(--gris);margin:6px 0 14px}.cancelar .sub{margin:0}.cancelar .btn{justify-self:start}.check{display:flex;gap:8px;align-items:center;font-weight:500}.check input{width:20px;min-height:20px;margin:0}
.pub{max-width:480px;margin:0 auto;padding:24px 16px 40px}.pub-cab{text-align:center;margin-bottom:18px}.pub-cab .marca{flex-direction:column;gap:6px;font-size:1.15rem}.pub-cab .marca img{height:84px}.pub-cab p{margin:2px 0 0;color:var(--gris);font-size:.9rem}
.sello{display:flex;align-items:center;gap:12px;padding:14px;border-radius:10px;margin-bottom:12px}.sello h1{font-size:1.4rem;color:inherit}.sello .ico{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.3rem;font-weight:700}
.sello.ok{background:var(--verde-f);color:var(--verde)}.sello.ok .ico{background:var(--verde)}.sello.mal{background:var(--rojo-f);color:var(--rojo)}.sello.mal .ico{background:var(--rojo)}.sello.nulo{background:var(--ambar-f);color:var(--ambar)}.sello.nulo .ico{background:var(--ambar)}
.codigo{display:grid;gap:10px}.codigo input{text-transform:uppercase;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
.pub-pie{text-align:center;color:var(--gris);font-size:.78rem;margin-top:18px}
@media(max-width:720px){.malla{grid-template-columns:repeat(2,1fr)}.d4{grid-column:span 2}.filtros{grid-template-columns:1fr 1fr}.filtros input[type=search]{grid-column:span 2}.detalle{grid-template-columns:1fr}.resumen b{font-size:1rem}.cab .acciones{width:100%}.cab .acciones .btn{flex:1}}
