:root{--forest:#19372f;--forest2:#10251f;--cream:#f7f4ec;--gold:#d9b982;--ink:#23302b;--muted:#757c77;--line:#e6e4db}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}header{display:flex;align-items:center;justify-content:space-between;padding:23px max(5vw,20px);border-bottom:1px solid #e7e4d9}.brand{display:flex;align-items:center;gap:14px;color:var(--forest);font-size:14px;font-weight:700;letter-spacing:.14em;text-decoration:none}.brand small{display:block;font-size:9px;letter-spacing:.3em;margin-top:5px;font-weight:500}.brandmark{display:grid;place-items:center;border:1.5px solid var(--forest);border-radius:50%;width:45px;height:45px;font-family:Georgia,serif;font-size:26px}.brandmark span{color:#b98745}.navlink{border:0;background:transparent;color:#777;padding:10px 17px;cursor:pointer;font-weight:600;font-family:inherit}.navlink.active{color:var(--forest);border-bottom:2px solid var(--forest)}.lock{font-size:12px}.intro{text-align:center;max-width:850px;margin:0 auto;padding:72px 18px 54px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.27em;color:#9e815b}.eyebrow.dark{color:#9c7a51}.eyebrow.gold{color:var(--gold)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:600}h1{font-size:clamp(45px,6vw,76px);line-height:1.11;letter-spacing:-.04em;margin:18px 0 18px}h1 em,.rewardshead em{color:#a17a4d;font-weight:500}p{line-height:1.65}.intro p{max-width:440px;color:#737873;margin:auto;font-size:15px}.appgrid{width:min(1170px,92%);margin:0 auto 85px;display:grid;grid-template-columns:1.07fr .93fr;gap:48px;align-items:start}.maincol{min-width:0}.panel{background:#fff;padding:32px;border:1px solid #e9e6df;border-radius:5px;box-shadow:0 18px 45px #23302b0a;margin-bottom:22px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:25px}.sectionhead h2{margin:6px 0 0;font-size:30px}.sectionhead h2 small{font:400 14px 'DM Sans',sans-serif;color:var(--muted)}.pill{background:#e7efe9;color:#38604b;padding:8px 13px;border-radius:25px;font-size:11px;font-weight:700;white-space:nowrap}.tabs{display:flex;margin-bottom:24px;border-bottom:1px solid var(--line)}.tab{background:none;border:0;cursor:pointer;flex:1;padding:12px;color:#8b8c87;font-family:inherit;font-weight:700}.tab.active{color:var(--forest);border-bottom:2px solid var(--forest)}.form{display:grid;gap:18px}.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{display:grid;gap:7px;font-weight:700;font-size:12px;color:#4a5750}input,select{width:100%;border:1px solid #dddcd4;border-radius:4px;background:#fbfbf8;color:#22372c;padding:13px 12px;font:400 14px 'DM Sans',sans-serif;min-width:0}input:focus,select:focus{outline:2px solid #b4cab9}.checkline{display:flex;align-items:flex-start;font-size:11px;font-weight:400;line-height:1.6;color:#666}.checkline input{width:16px;height:16px;flex-shrink:0}.checkline a{color:var(--forest)}button{font-family:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.primary{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--forest);color:#fff;border:1px solid var(--forest);padding:15px 20px;font-weight:700;font-size:13px;border-radius:4px}.primary:hover{background:#275043}.secondary{background:#fff;border:1px solid #bfc9c0;color:var(--forest);padding:12px 15px;border-radius:4px;font-weight:700}.hide{display:none!important}.notice{padding:14px;border:1px solid #d9b982;background:#fff8e8;margin-bottom:15px;color:#6b522b}.rewardshead{margin:5px 0 22px}.rewardshead h2{font-size:39px;line-height:1.18;margin:8px 0}.rewardshead p{color:#7c827b;max-width:360px}.rewards{display:grid;grid-template-columns:1fr 1fr;gap:13px}.reward{background:#fdfcf9;border:1px solid #e7e4db;padding:18px;min-height:232px;display:flex;flex-direction:column}.reward.feature{background:var(--forest);color:white;border-color:var(--forest)}.rewardtop{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;color:#a1a49d}.badge{background:#efe8d9;color:#8d7047;padding:6px 9px;border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.08em}.feature .badge{background:#344f43;color:#e8d1a4}.emoji{font-size:42px;height:72px;display:flex;align-items:center;font-family:Georgia,serif;color:#a17a4d}.emoji span{font-size:17px;margin-top:-25px}.reward h3{font-size:19px;line-height:1.3;margin:0 0 8px}.reward p{font-size:11px;margin:0;color:#838781}.feature p{color:#c6d4cb}.rules{color:#8b8c84;font-size:11px;margin-top:17px}.membership{background:linear-gradient(138deg,#274c3d,var(--forest2));border-radius:13px;min-height:265px;color:#fff;padding:28px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 20px 35px #15292328;margin-bottom:20px}.membership-top,.membership-bottom{display:flex;justify-content:space-between;align-items:start;font-size:14px;letter-spacing:.12em;font-weight:700}.membership-top small{font-size:9px;letter-spacing:.19em}.membership h2{font-size:31px;margin:10px 0}.membership-bottom{font-size:11px;align-items:end}.membership-bottom span:last-child{font-size:9px}.star{font-size:40px;color:var(--gold)}.bigcup{font-size:37px}.dots{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin:12px 0}.dot{aspect-ratio:1;border:1px solid #d8dfd9;background:#f5f7f3;border-radius:50%;display:grid;place-items:center;font-size:12px;color:#b4bbb6}.dot.filled{background:var(--forest);color:#fff;border-color:var(--forest)}.muted{color:var(--muted);font-size:13px}.qrwrap{text-align:center;border-top:1px solid var(--line);margin-top:22px;padding-top:25px}.qrwrap #qrCode{margin:auto;display:flex;justify-content:center}.qrwrap p{max-width:310px;margin:13px auto;font-size:11px;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.lookup{display:flex;align-items:end;gap:12px;margin:20px 0}.lookup label{flex:1}.foundbox{background:#f6f7f2;padding:20px;margin-bottom:16px}.foundbox h3{font-size:26px;margin:5px 0}.foundbox p{margin:6px 0}.huge{font-size:44px;font-weight:700;color:var(--forest)}.huge small{font-size:15px;font-weight:400}.rewardsactions{display:grid;gap:8px}.rewardsactions button{justify-content:space-between}.historyitem{font-size:12px;color:#647068;border-top:1px solid #e8ebe6;padding:9px 0}.countpanel{margin-top:10px}footer{text-align:center;font-size:12px;color:#85877f;padding:35px;border-top:1px solid var(--line)}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#20372e;color:white;padding:12px 22px;border-radius:6px;box-shadow:0 10px 30px #0002;display:none;max-width:90%;z-index:4}#toast.show{display:block}@media(max-width:850px){.appgrid{grid-template-columns:1fr;gap:42px}.intro{padding:45px 18px 35px}.rewardshead{margin-top:0}}@media(max-width:480px){header{padding:14px}.brand{font-size:11px;letter-spacing:.05em}.brandmark{width:38px;height:38px}.navlink{padding:9px 7px;font-size:12px}.panel{padding:21px}.two{grid-template-columns:1fr}.intro h1{font-size:43px}.rewards{gap:9px}.reward{padding:12px;min-height:215px}.reward h3{font-size:17px}.lookup{flex-direction:column;align-items:stretch}.membership{padding:21px}}
/* Pase temporal y comprobación en caja */
.livecode{display:block;font:700 clamp(1.1rem,4vw,1.65rem)/1.3 'DM Sans',sans-serif;letter-spacing:.12em;color:#19372f;overflow-wrap:anywhere;margin:10px auto}.validation{display:block;margin:18px 0 12px}.validation input{display:block;width:100%;margin-top:8px;letter-spacing:.12em;text-transform:uppercase}

/* Identidad oficial Aristóteles · adaptable a pantallas pequeñas */
.brand-official{display:inline-flex;align-items:center;gap:12px;min-width:0;letter-spacing:normal}
.brand-logo{display:block;width:218px;height:auto;max-width:min(55vw,218px);object-fit:contain}
.brand-club{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:.23em;color:#8f754b;border-left:1px solid #d3caba;padding-left:12px;white-space:nowrap}
@media(max-width:520px){header{padding:15px 16px;gap:10px}.brand-logo{width:155px;max-width:46vw}.brand-club{font-size:8px;letter-spacing:.12em;padding-left:8px}.brand-official{gap:8px}.navlink{padding:8px 6px;font-size:11px}}

/* V3: Paleta original intacta; logotipo vectorial verde bosque + dorado suave. */
.emoji-frappe { color: #9B7646; }
.frappe-snowflake { width: 39px; height: 39px; display: block; }
@media(max-width:480px) { .frappe-snowflake { width: 34px; height: 34px; } }

/* Datos de contacto - formulario V6 */
.email-help {display:flex;align-items:center;font-size:.8rem;line-height:1.55;color:#6d736c;padding:9px 2px 0;max-width:320px;}
@media(max-width:650px){.email-help{max-width:none;padding-bottom:5px;}}

/* Panel V8: búsqueda asistida y escaneo opcional */
.searchresults{display:grid;gap:8px;margin:12px 0 16px}.searchresults.hide,.scanner-view.hide,.scanner-controls .hide{display:none!important}
.searchhit{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:4px;text-align:left;width:100%;padding:13px 16px!important}.searchhit strong{font-size:15px}.searchhit small{opacity:.75;font-size:12px}.scanner-controls{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.scanner-view{max-width:420px;padding:12px;background:#f4f2ed;border-radius:12px}.scanner-view video{width:100%;border-radius:10px;max-height:320px;object-fit:cover}

/* V15 Turnstile */
.captcha-slot{min-height:65px;margin:12px 0;max-width:100%;overflow:visible}
.captcha-slot iframe{max-width:100%}

/* V17 · Tarjeta instalable */
.install-card{margin:20px 0;padding:17px;border:1px solid #d8d2bf;border-radius:14px;background:#f5f2e9}
.install-card-copy{display:flex;gap:13px;align-items:center}
.install-card-copy img{border-radius:13px;flex-shrink:0}
.install-card-copy strong{display:block;color:#19372f;font-size:1.02rem}
.install-card-copy p{margin:5px 0 0;color:#5a635d;font-size:.9rem;line-height:1.45}
.install-cta{margin-top:13px;width:100%;min-height:44px}
.install-guide{position:fixed;inset:0;z-index:9999;background:rgba(13,35,29,.76);display:flex;align-items:center;justify-content:center;padding:18px}
.install-guide.hide{display:none!important}
.install-guide-box{position:relative;max-width:430px;width:100%;max-height:90vh;overflow:auto;padding:27px;border-radius:18px;background:#faf8f3;color:#19372f;box-shadow:0 12px 50px rgba(0,0,0,.25)}
.install-guide-box>img{border-radius:15px}
.install-guide-box h2{margin:12px 0 15px;font-size:1.5rem}
.install-guide-box ol{padding-left:23px;line-height:1.75;margin-bottom:20px}
.install-guide-box li{margin-bottom:8px}
.install-guide-box .primary{width:100%}
.install-close{position:absolute;top:10px;right:15px;font-size:29px;border:0;background:none;color:#19372f;cursor:pointer;padding:8px}
@media(max-width:450px){.install-card{padding:13px}.install-card-copy{gap:9px}.install-card-copy p{font-size:.83rem}}

/* V18: Turnstile compacto y recuperación independiente */
.captcha-slot{width:100%;min-width:0;overflow:visible}.captcha-slot>div{max-width:100%}.recover-request{border:1px solid #d8d2bf;background:#f8f6ef;border-radius:12px;padding:16px;margin:12px 0}.recover-request .secondary{width:100%;min-height:44px}

/* V18.7 — Fecha de la última visita */
.lastvisit{margin:12px 0 0;color:#245347;font-size:.96rem;font-weight:650;line-height:1.5}

.password-hint{display:block;font-size:.8rem;color:#5d6860;margin-top:.35rem;line-height:1.5}

/* V19: tarjetas de recompensas + QR integrado + hitos visibles */
.reward-teasers{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:2px 0 15px;margin-bottom:8px}
.reward-mini{flex:0 0 172px;min-height:82px;display:flex;gap:9px;align-items:center;background:#efe9dd;border:1px solid #e6ddcb;padding:11px;border-radius:15px;scroll-snap-align:start}
.reward-mini-icon{font-size:27px;line-height:1;flex-shrink:0}.reward-mini div{display:grid;gap:4px}.reward-mini small{font-size:9px;letter-spacing:.1em;color:#8c724d;font-weight:800}.reward-mini strong{font-size:12px;line-height:1.3;color:#253b31}
.v19-card{min-height:220px;padding:24px;position:relative}.v19-card .membership-content{display:flex;flex-direction:column;justify-content:space-between;min-height:172px}.v19-card .membership-main{display:flex;gap:14px;justify-content:space-between;align-items:center;min-width:0}.v19-card .membership-identity{min-width:0;flex:1}.v19-card h2{font-size:clamp(19px,3.2vw,29px);line-height:1.15;overflow-wrap:anywhere}.v19-card .membership-qr{flex-shrink:0;width:132px;height:132px;display:flex;align-items:center;justify-content:center;border:5px solid #fff;border-radius:10px;background:#fff;overflow:hidden}.v19-card .membership-qr canvas{display:block;width:100%!important;height:100%!important}.v19-card .membership-qr:empty:after{content:'QR temporal';color:#4e6155;font-size:11px;text-align:center}
.v19-progress{padding-top:21px}.v19-progress .sectionhead{margin-bottom:13px}.v19-progress .compact-count{font-family:'DM Sans',sans-serif;font-size:20px;margin:0;white-space:nowrap}.v19-progress .compact-count small{font-size:11px;font-weight:400}.v19-dots{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;align-items:center;margin:14px 0}.v19-dots .dot{border:0;border-radius:50%;aspect-ratio:1;background:#e8e8e2;color:#8a968d;font-size:10px;position:relative}.v19-dots .dot.filled:not(.milestone){background:#1d4636;color:white}.v19-dots .dot.milestone{background:transparent;border:0;overflow:visible;color:#b4873f;display:grid;place-items:center}.v19-dots .dot.milestone .milestone-star{font-size:clamp(18px,2.9vw,28px);color:transparent;-webkit-text-stroke:1.5px #ad7d31;line-height:1}.v19-dots .dot.milestone.filled .milestone-star{color:#ccab63;-webkit-text-stroke:1px #ad7d31}.v19-dots .dot.milestone small{position:absolute;top:100%;font-size:9px;color:#807e78;margin-top:2px}.v19-progress .next-reward{font-size:11px;margin:17px 0 5px}.v19-progress .lastvisit{font-size:11px;color:#718077}
.v19-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px}.v19-actions button{min-width:0;justify-content:center;min-height:49px;font-size:11px;border-radius:11px;padding:10px 5px;text-align:center}
.v19-pass-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;padding:13px 0;border-top:1px solid #ebeae3;margin-top:16px;color:#69776e;font-size:11px}.v19-pass-meta strong{color:#284a39}.v19-pass-meta .livecode{font-size:10px;letter-spacing:.08em}.v19-pass-meta p{width:100%;margin:0;font-size:10px;line-height:1.5}
@media(max-width:480px){.v19-card{padding:16px;min-height:205px}.v19-card .membership-content{min-height:168px}.v19-card .membership-qr{width:112px;height:112px}.v19-card .membership-main{gap:8px}.v19-progress .compact-count{font-size:17px}.v19-actions button{font-size:10px}.reward-mini{flex-basis:155px}.v19-dots{gap:3px}}

/* V19.1 — Preferencias visuales guardadas en auth.users.user_metadata */
.theme-panel{background:#f8f5ee;border:1px solid #e2d9c9;border-radius:15px;padding:15px 17px;margin:14px 0;color:#19372f}
.theme-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.theme-heading h3{font-size:17px;margin:4px 0 0}.theme-heading button{font-size:12px;min-height:40px;white-space:nowrap;padding:8px 12px}
.theme-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:9px;margin-top:15px}.theme-choices.hide{display:none!important}.theme-choices button{border:1px solid #d5cebf;padding:9px;display:flex;gap:9px;align-items:center;text-align:left;background:#fff;border-radius:12px;color:#263b32;font-size:12px;cursor:pointer}.theme-choices button[aria-pressed="true"]{border:2px solid #9b763c;background:#f2ead9}.theme-choices button i{display:block;background:var(--swatch);width:30px;height:34px;border-radius:7px;flex-shrink:0}.theme-help{font-size:11px;color:#72796e;margin:9px 0 0}
.v19-card[data-card-theme="aristoteles"]{background:#19372f;color:#faf6eb}
.v19-card[data-card-theme="nocturno"]{background:#102d49;color:#f7f4ec}
.v19-card[data-card-theme="lila"]{background:#563f69;color:#fff8f3}
.v19-card[data-card-theme="reserva"]{background:#382b26;color:#f7f1e8}
.v19-card[data-card-theme="salvia"]{background:#dccfb8;color:#24352e}
.v19-card[data-card-theme="olivo"]{background:#495b3f;color:#f5f1e8}
.v19-card[data-card-theme="perla"]{background:#cbb8b6;color:#2d2a2a}
.v19-card[data-card-theme="salvia"] .gold,.v19-card[data-card-theme="perla"] .gold{color:#6c6548}
@media(max-width:440px){.theme-panel{padding:12px}.theme-heading h3{font-size:15px}.theme-heading button{font-size:11px}}

/* V19.2: premium card, six persistent themes, reduced motion. */
.v19-card{--card-bg:#102D47;--card-ink:#FAF7EF;--card-accent:#C9AA76;background:var(--card-bg)!important;color:var(--card-ink)!important;box-shadow:0 16px 42px rgba(13,35,46,.15);border:1px solid color-mix(in srgb,var(--card-accent) 26%,transparent);border-radius:18px;transition:background-color .24s ease,color .24s ease,box-shadow .24s ease;isolation:isolate}
.v19-card[data-card-theme="azul"]{--card-bg:#102D47;--card-ink:#FAF7EF;--card-accent:#C9AA76}
.v19-card[data-card-theme="olivo"]{--card-bg:#34483C;--card-ink:#F9F5EB;--card-accent:#D5C49A}
.v19-card[data-card-theme="champagne"]{--card-bg:#E9DDC8;--card-ink:#403226;--card-accent:#68533E}
.v19-card[data-card-theme="terracota"]{--card-bg:#A66656;--card-ink:#FFF8ED;--card-accent:#F5DCC1}
.v19-card[data-card-theme="grafito"]{--card-bg:#252B32;--card-ink:#FCFCFB;--card-accent:#C0C6CE}
.v19-card[data-card-theme="lavanda"]{--card-bg:#B7A9CF;--card-ink:#31283F;--card-accent:#423657}
.v19-card .gold{color:var(--card-accent)!important}.v19-card .membership-top{color:var(--card-ink);font-weight:650}.v19-card .membership-top small{opacity:.82}.v19-card .membership-bottom{color:var(--card-ink);opacity:.9}.v19-card h2{color:var(--card-ink);font-family:Georgia,'Times New Roman',serif;font-weight:500;letter-spacing:-.025em;line-height:1.1;margin:9px 0;word-break:normal;overflow-wrap:break-word}
.v19-card .membership-qr{box-sizing:border-box;width:clamp(110px,30%,158px);height:auto;aspect-ratio:1;min-width:110px;padding:7px;border:0;border-radius:12px;background:#fff;box-shadow:0 2px 9px #0000000e;overflow:hidden}
.v19-card .membership-qr canvas{width:100%!important;height:100%!important;image-rendering:auto;object-fit:contain}
.theme-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.theme-choices button.theme-option{flex-direction:column;align-items:stretch;gap:7px;min-height:94px;transition:border-color .18s,background-color .18s}
.theme-choices button.theme-option i{width:100%;height:48px;border-radius:8px;background:var(--swatch);position:relative}
.theme-choices button.theme-option i:after{content:'';position:absolute;left:12px;bottom:9px;width:38%;height:6px;border-radius:5px;background:var(--swatch-accent)}
.theme-choices button.theme-option[aria-pressed=true]{outline:2px solid #9b763c;outline-offset:1px}
.theme-save{width:100%;margin-top:12px;justify-content:center}.theme-status{font-size:12px;color:#506359;margin:9px 0 0}
.v19-progress .sectionhead h2{font-size:20px}.v19-dots .dot.milestone .milestone-star{transition:transform .18s ease}.v19-dots .dot.milestone.filled .milestone-star{transform:scale(1.08)}
@media(max-width:480px){.v19-card{padding:17px;min-height:195px}.v19-card .membership-content{min-height:165px}.v19-card .membership-qr{width:clamp(108px,30vw,130px);min-width:108px}.v19-card h2{font-size:clamp(20px,5vw,27px)}.v19-card .membership-main{align-items:center;gap:9px}.theme-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:350px){.v19-card .membership-main{flex-direction:column;align-items:flex-start}.v19-card .membership-qr{align-self:flex-end}.v19-card .membership-content{min-height:240px}}
@media(prefers-reduced-motion:reduce){.v19-card,.theme-choices button.theme-option,.v19-dots .dot.milestone .milestone-star{transition:none!important;animation:none!important}}


/* V19.4 — Restauración exclusiva de la tarjeta V19, conservando funciones V19.3. */
.v19-card{--card-bg:#102D47;--card-ink:#F7F4EC;--card-accent:#C9AA76;background:var(--card-bg)!important;color:var(--card-ink)!important;min-height:220px;padding:24px!important;border-radius:18px;position:relative;overflow:hidden;transition:background-color .22s ease,color .22s ease}
.v19-card[data-card-theme="azul"]{--card-bg:#102D47;--card-ink:#F7F4EC;--card-accent:#C9AA76}
.v19-card[data-card-theme="olivo"]{--card-bg:#34483C;--card-ink:#FFF8EC;--card-accent:#D5C49A}
.v19-card[data-card-theme="champagne"]{--card-bg:#E9DDC8;--card-ink:#342A20;--card-accent:#68533E}
.v19-card[data-card-theme="terracota"]{--card-bg:#A66656;--card-ink:#FFF9F2;--card-accent:#F5DCC1}
.v19-card[data-card-theme="grafito"]{--card-bg:#252B32;--card-ink:#FAFAFA;--card-accent:#C0C6CE}
.v19-card[data-card-theme="lavanda"]{--card-bg:#B7A9CF;--card-ink:#30253B;--card-accent:#423657}
.v19-card[data-card-theme="perla"]{--card-bg:#CBB8B6;--card-ink:#2D2A2A;--card-accent:#76535D}
.v19-card[data-card-theme="matcha"]{--card-bg:#748E71;--card-ink:#14271F;--card-accent:#F1E5C8}
.v19-card .membership-content{display:flex;flex-direction:column;justify-content:space-between;min-height:172px;gap:15px}
.v19-card .membership-top{display:flex;justify-content:space-between;align-items:flex-start;color:var(--card-ink);letter-spacing:.14em;font-weight:650}
.v19-card .membership-top small{font-size:.67em;letter-spacing:.18em;color:var(--card-accent)}
.v19-card .membership-top .star{color:var(--card-accent);font-size:23px;line-height:1}
.v19-card .membership-main{display:flex;gap:14px;justify-content:space-between;align-items:center;min-width:0}
.v19-card .membership-identity{min-width:0;flex:1}
.v19-card .gold{color:var(--card-accent)!important}
.v19-card h2{color:var(--card-ink);font:500 clamp(19px,3.2vw,29px)/1.15 Georgia,'Times New Roman',serif;overflow-wrap:break-word;margin:8px 0}
.v19-card .membership-qr{box-sizing:border-box;width:clamp(110px,29%,155px);min-width:105px;aspect-ratio:1;height:auto;padding:8px;border:0;border-radius:12px;background:#fff;overflow:hidden;flex-shrink:0}
.v19-card .membership-qr canvas{width:100%!important;height:100%!important;display:block;object-fit:contain}
.v19-card .membership-bottom{display:flex;justify-content:space-between;gap:8px;color:var(--card-ink);font-size:11px;letter-spacing:.06em;opacity:.93}
.v19-card .membership-bottom>span:last-child{color:var(--card-accent)}
@media(max-width:480px){.v19-card{padding:16px!important;min-height:205px}.v19-card .membership-content{min-height:168px}.v19-card .membership-qr{width:112px;min-width:105px}.v19-card .membership-main{gap:8px}}
@media(max-width:350px){.v19-card{padding:12px!important}.v19-card .membership-qr{width:102px;min-width:98px}.v19-card h2{font-size:18px}.v19-card .membership-bottom{font-size:9px}}
@media(prefers-reduced-motion:reduce){.v19-card{transition:none!important}}

/* V19.4.1 — pictograma vectorial de taza, sin emoji dependiente del sistema */
.v19-card .card-cup-mark{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;color:var(--card-accent);flex:0 0 37px;pointer-events:none}
.v19-card .card-cup-mark svg{display:block;width:100%;height:100%;overflow:visible}
@media (max-width:480px){.v19-card .card-cup-mark{width:31px;height:31px;flex-basis:31px}}

/* V19.5: acceso Google y perfil posterior a OAuth */
.google-auth{margin:1rem 0 1.25rem}.google-separator{text-align:center;color:#747b75;font-size:.83rem;margin:.8rem 0}.google-signin{width:100%;display:flex;align-items:center;justify-content:center;gap:.65rem;background:#fff;color:#26362f;border:1px solid #cbd2cb;border-radius:12px;padding:14px 18px;font:600 1rem system-ui,sans-serif;cursor:pointer;transition:border-color .2s,background .2s}.google-signin:hover{background:#f8f6f0;border-color:#375347}.google-signin:disabled{opacity:.55;cursor:wait}#googleProfilePanel{max-width:820px}#googleProfilePanel .form{margin-top:1.3rem}@media(prefers-reduced-motion:reduce){.google-signin{transition:none}}


/* V19.5.1 — Ajustes para Safari iPhone (zoom y desbordamiento horizontal).
   No altera el QR ni los controles de acceso. */
html{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;min-width:0;max-width:100%;overflow-x:clip}
.appgrid{min-width:0;grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr)}
.appgrid > *, .maincol, .panel, .rewardshead, .rewards, .reward, .reward-teasers{min-width:0;max-width:100%}
.rewards{grid-template-columns:repeat(2,minmax(0,1fr))}
.reward{overflow-wrap:anywhere}
.reward-teasers{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
@media(max-width:850px){
  .appgrid{grid-template-columns:minmax(0,1fr);width:min(100% - 28px,720px);gap:26px}
  .intro{width:100%;max-width:100%;padding-left:14px;padding-right:14px}
  .rewardshead h2{font-size:clamp(30px,8vw,42px);overflow-wrap:break-word}
  .panel{max-width:100%}
}
@media(max-width:480px){
  .appgrid{width:calc(100% - 24px)}
  .panel{padding:clamp(14px,4vw,21px)}
  .sectionhead{flex-wrap:wrap}
  .sectionhead h2{font-size:clamp(23px,7vw,30px)}
  input,select,textarea{font-size:16px} /* Evita zoom automático al enfocar en Safari iOS */
  .lookup, .actions, .scanner-controls, .v19-actions{max-width:100%}
  .lookup>*{min-width:0;max-width:100%}
  .membership-bottom{min-width:0}
}
@supports not (overflow:clip){html,body{overflow-x:hidden}}

/* V19.6.1: mensajes de compra minima y validacion visual para personal */
#toast.toast-error{background:#9e1e28;color:#fff;border:2px solid #ffb3b8;box-shadow:0 10px 32px #6d121a55;font-weight:700}
#toast.toast-success{background:#20372e;color:#fff}
#ticketAmount.ticket-invalid{border:2px solid #c62832!important;background:#fff2f2!important;outline:2px solid #c6283233;outline-offset:2px}

/* V19.6.3: Casillas legales legibles en pantallas estrechas */
.checkline{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;gap:12px!important;align-items:start!important;font-size:14px!important;line-height:1.55!important;text-align:left!important;white-space:normal!important;margin:0 0 12px!important;}
.checkline input[type="checkbox"]{grid-column:1;width:20px!important;height:20px!important;margin:2px 0 0!important;min-width:20px!important;}
.checkline .checkline-text{grid-column:2;display:block;min-width:0;overflow-wrap:break-word;}
.checkline a{display:inline!important;white-space:normal!important;overflow-wrap:break-word;text-decoration:underline;text-underline-offset:2px;}
@media(max-width:440px){.checkline{font-size:13px!important;gap:10px!important;}}

/* V19.7.2 - controles móviles de contraseña y selección de tarjeta */
.password-control{position:relative;display:block;min-width:0;width:100%}
.password-control input{width:100%;padding-right:94px}
.password-visibility{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#21483b;font-weight:700;font-size:12px;min-height:40px;min-width:72px;padding:6px;cursor:pointer;border-radius:6px}
.password-visibility:focus-visible,.theme-heading button:focus-visible{outline:3px solid #b79b6d;outline-offset:2px}
.theme-heading #themeToggle.primary{background:#19372f;color:white;border-color:#19372f}
.theme-cancel{margin-top:10px;font-size:12px;padding:8px 13px;min-height:38px}
@media(max-width:480px){.theme-heading{align-items:flex-start;gap:9px}.theme-heading #themeToggle{min-height:44px;font-size:12px;white-space:normal;max-width:155px}.password-visibility{min-height:44px}}
