:root{--negro:#181512;--negro-2:#211d18;--negro-3:#2a251f;--crema:#f2e8d5;--crema-dim:#cfc3ab;--crema-faint:#8f8674;--naranja:#d2622a;--naranja-vivo:#e07038;--rojo:#e04030;--rojo-vivo:#f04a38;--dorado:#d9a441;--linea:#3a332a;--ok:#7fb069;--radius:14px;--display:'Anton','Arial Narrow',sans-serif;--body:'Archivo','Helvetica Neue',Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body,html{background:var(--negro);color:var(--crema)}body{font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}button{font-family:var(--body);cursor:pointer}a{color:inherit}:focus-visible{outline:3px solid var(--dorado);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:NaNs!important;transition-duration:NaNs!important}}header.top{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:rgba(24,21,18,.93);backdrop-filter:blur(8px);border-bottom:1px solid var(--linea)}.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:21px;letter-spacing:.02em;text-transform:uppercase;color:var(--crema);text-decoration:none;line-height:1}.logo img{width:36px;height:36px;border-radius:50%;box-shadow:0 0 0 2px rgba(224,64,48,.6);object-fit:cover}.logo b{font-weight:400;white-space:nowrap}.logo span{color:var(--rojo-vivo)}.etiqueta{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--crema-faint)}main{max-width:1040px;margin:0 auto;padding:22px 16px 60px;display:grid;gap:16px}main.angosto{max-width:560px}h1{font-family:var(--display);font-weight:400;font-size:clamp(28px,6vw,40px);line-height:1.05;text-transform:uppercase;letter-spacing:.015em;text-wrap:balance}h2{font-family:var(--display);font-weight:400;font-size:22px;text-transform:uppercase;letter-spacing:.02em}.kicker{display:block;font-size:11.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--rojo-vivo);margin-bottom:6px}.dim{color:var(--crema-dim)}.faint{color:var(--crema-faint)}.caja{background:var(--negro-2);border:1px solid var(--linea);border-radius:var(--radius);padding:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:10px;font-weight:800;font-size:15px;padding:12px 18px;text-decoration:none;transition:transform .15s ease,background .15s ease}.btn:active{transform:scale(.97)}.btn--naranja{background:var(--naranja);color:#fff}.btn--naranja:hover{background:var(--naranja-vivo)}.btn--crema{background:var(--crema);color:var(--negro)}.btn--linea{background:var(--negro-3);color:var(--crema);border:1px solid var(--linea)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--full{width:100%}.btn--chico{font-size:13px;padding:8px 12px}label.campo{display:grid;gap:5px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--crema-faint)}input,select,textarea{background:var(--negro);border:1px solid var(--linea);border-radius:10px;padding:12px 14px;color:var(--crema);font-size:15px;font-family:var(--body);width:100%;min-width:0}input::placeholder{color:var(--crema-faint)}.rejilla{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.error{color:var(--rojo-vivo);font-weight:700;font-size:14px}.okmsg{color:var(--ok);font-weight:700;font-size:14px}.fecha{flex:0 0 58px;text-align:center;background:var(--negro-3);border-radius:10px;padding:7px 4px;border:1px solid var(--linea)}.fecha em{display:block;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--crema-faint)}.fecha b{display:block;font-family:var(--display);font-weight:400;font-size:23px;line-height:1.05}.fecha span{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--rojo-vivo)}.boleta{display:grid;grid-template-columns:1fr auto;background:var(--negro-2);border:1px solid var(--linea);border-radius:16px;overflow:hidden}.boleta .izq{padding:16px;display:grid;gap:4px;align-content:center;border-right:2px dashed var(--linea);min-width:0}.boleta .ciudad{font-family:var(--display);font-size:30px;line-height:1;text-transform:uppercase}.boleta small{font-size:13px;color:var(--crema-dim);overflow-wrap:anywhere}.boleta .num{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--rojo-vivo)}.boleta .der{background:#fff;padding:12px;display:grid;justify-items:center;align-content:center;gap:6px}.boleta .qr{width:150px;height:150px}.boleta .qr canvas,.boleta .qr img{width:150px!important;height:150px!important}.boleta .cod{font-family:ui-monospace,Menlo,monospace;font-size:10px;color:#444}.boleta.usada{opacity:.55}.boleta.usada .der{background:#ddd}.sello{font-size:12px;font-weight:800;color:var(--rojo-vivo);text-transform:uppercase;letter-spacing:.08em}@media(max-width:520px){.boleta{grid-template-columns:1fr}.boleta .izq{border-right:0;border-bottom:2px dashed var(--linea)}.boleta .qr,.boleta .qr canvas,.boleta .qr img{width:220px!important;height:220px!important}}.check{width:52px;height:52px;border-radius:50%;background:var(--ok);color:var(--negro);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800}.girando{width:34px;height:34px;border-radius:50%;border:3px solid var(--linea);border-top-color:var(--naranja);animation:gira 1s linear infinite}@keyframes gira{to{transform:rotate(360deg)}}.tabla-wrap{overflow-x:auto;border:1px solid var(--linea);border-radius:12px}table{border-collapse:collapse;width:100%;font-size:13.5px;min-width:620px}td,th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--linea);white-space:nowrap}th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--crema-faint);background:var(--negro-2)}td.n{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-block;font-size:11px;font-weight:800;border-radius:99px;padding:2px 8px;white-space:nowrap}.pill.ok{background:rgba(127,176,105,.18);color:var(--ok)}.pill.no{background:var(--negro-3);color:var(--crema-faint);border:1px solid var(--linea)}.pill.alerta{background:rgba(224,64,48,.18);color:var(--rojo-vivo)}.pill.oro{background:rgba(217,164,65,.16);color:var(--dorado)}