:root{--bg:#f4f2ef;--surface:#ffffff;--text:#1c1917;--muted:#78716c;--border:#e7e5e4;--accent:#6b3e26;--ok:#15803d;--error:#b91c1c;--radius:16px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:inherit}.page{max-width:440px}.page,.page-wide{margin:0 auto;padding:24px 16px 48px}.page-wide{max-width:1040px}h1{font-size:1.6rem;line-height:1.2;margin:0 0 8px;letter-spacing:-.01em}h2{font-size:1.1rem;margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:.85rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.stack>*+*{margin-top:12px}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:4px}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.9rem}.check input{margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;font:inherit;font-weight:600;padding:14px 18px;border-radius:12px;border:1px solid transparent;background:var(--accent);color:#fff;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--text);border-color:var(--border)}.btn-wallet{background:#000;color:#fff;border-radius:999px}.btn-ok{background:var(--ok)}.alert{padding:12px 14px;border-radius:10px;font-size:.95rem}.alert-error{background:#fef2f2;color:var(--error)}.alert-ok{background:#f0fdf4;color:var(--ok)}.alert-info{background:#f5f5f4;color:var(--muted)}.tarjeta{border-radius:20px;color:#fff;padding:20px;box-shadow:0 10px 30px rgba(0,0,0,.18)}.tarjeta-head{display:flex;align-items:center;gap:12px}.tarjeta-logo{width:40px;height:40px;border-radius:50%;background:#fff;object-fit:cover}.tarjeta-nombre{font-weight:700;font-size:1.05rem}.tarjeta-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;opacity:.75}.tarjeta-valor{font-size:1.5rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tarjeta-fila{display:flex;justify-content:space-between;margin-top:18px}.sellos{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px;margin-top:18px}.sello{aspect-ratio:1;border-radius:50%;border:2px dashed rgba(255,255,255,.5);display:grid;place-items:center;font-size:1.1rem;transition:background .3s,transform .3s}.sello.lleno{background:#fff;border-style:solid;border-color:#fff;color:var(--card-color)}.sello.nuevo{animation:pop .45s ease-out}@keyframes pop{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}.tarjeta-premio{margin-top:16px;background:rgba(255,255,255,.16);border-radius:12px;padding:10px 12px;font-size:.95rem}.tarjeta-qr{background:#fff;border-radius:14px;padding:14px;margin-top:18px;text-align:center;color:var(--text)}.tarjeta-qr img{width:160px;height:160px;display:block;margin:0 auto}@media (prefers-reduced-motion:reduce){.sello.nuevo{animation:none}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.kpi-valor{font-size:1.8rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grid-2{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}@media (min-width:820px){.grid-2{grid-template-columns:2fr 1fr}}table{width:100%;border-collapse:collapse;font-size:.92rem}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border)}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tabla-scroll{overflow-x:auto}.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:600;background:#f5f5f4}.chip-ok{background:#dcfce7;color:var(--ok)}.hub{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}@media (min-width:700px){.hub{grid-template-columns:repeat(3,1fr)}}.hub a{text-decoration:none}.hub .panel:hover{border-color:var(--accent)}#lector{border-radius:12px;overflow:hidden}@media print{body{background:#fff}.no-print{display:none!important}}.cuota{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.12);border-left:6px solid}.cuota-punto{width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.25)}.bloque{border:1px solid var(--border);border-radius:14px;padding:14px 16px;background:#fff}.bloque>summary{cursor:pointer;font-weight:700;list-style:none}.bloque>summary::-webkit-details-marker{display:none}.bloque>summary:after{content:"▾";float:right;color:var(--muted,#888)}.bloque[open]>summary:after{content:"▴"}.bloque-mensaje{padding:12px 14px}.bloque-mensaje>summary{font-weight:400}.vista-tarjeta{display:flex;align-items:center;gap:14px;border-radius:18px;padding:18px 20px;color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.15)}.vista-tarjeta img{width:52px;height:52px;border-radius:999px;object-fit:cover;background:#fff}.vista-tarjeta strong{display:block;font-size:1.1rem}.vista-tarjeta span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.vista-aviso{background:#f6f6f8;border:1px solid var(--border);border-radius:14px;padding:12px 14px}.variables{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.variables .chip{cursor:pointer;border:0;font:inherit;font-size:.8rem}.fila-programada{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border);padding-top:8px}input[type=datetime-local],select{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.fila-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fila-form input{flex:1 1 140px;width:auto}.catalogo{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-gap:10px;gap:10px}.catalogo li{background:rgba(255,255,255,.12);border-radius:12px;padding:10px 12px}.catalogo li.alcanza{background:rgba(255,255,255,.24)}.catalogo li.agotado{opacity:.55}.premio-caja{display:grid;grid-gap:4px;gap:4px}.fila-premio{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border);padding-top:10px;flex-wrap:wrap}.form-premio{border:1px solid var(--border);border-radius:14px;padding:14px;background:#fafaf9}.form-premio label.small{display:grid;grid-gap:4px;gap:4px}.aviso-stock{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px 12px}input[type=date]{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.catalogo-fila{display:flex;justify-content:space-between;gap:8px;font-size:.95rem;font-weight:600}.progreso{margin-top:14px;height:10px;border-radius:999px;background:rgba(255,255,255,.2);overflow:hidden}.progreso>div{height:100%;background:#fff;border-radius:999px;transition:width .4s}.semaforo{padding:16px;border-radius:14px;color:#fff;font-weight:700;font-size:1.1rem}.semaforo .small{font-weight:400;opacity:.9}.semaforo-al-dia{background:#15803d}.semaforo-por-vencer{background:#b45309}.semaforo-vencida{background:#b91c1c}.semaforo-sin-cuota{background:#57534e}.chip-warn{background:#fef3c7;color:#92400e}.chip-error{background:#fee2e2;color:#b91c1c}.btn-chico{width:auto;padding:6px 10px;font-size:.85rem;border-radius:8px}.legal h2{font-size:1.05rem;margin-top:20px}.legal ul{padding-left:20px}.legal li+li{margin-top:6px}.check a,.legal a{color:var(--accent)}