:root{--bg:#f4f6f9;--panel:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--primary:#111827;--radius:18px;--shadow:0 8px 30px rgba(15,23,42,.06)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}input,select{width:100%;border:1px solid #d9dee7;border-radius:12px;padding:12px 13px;background:#fff;outline:none;min-height:46px}input:focus,select:focus{border-color:#111827;box-shadow:0 0 0 3px rgba(17,24,39,.08)}label{display:flex;flex-direction:column;gap:7px;font-weight:650;font-size:14px}.muted{color:var(--muted)}.micro{font-size:12px;color:#8b93a1;text-align:center}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:#6b7280}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(20px,calc((100vw - 1240px)/2));gap:34px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap}.brand-mark,.logo-big{display:grid;place-items:center;background:#111827;color:white;font-weight:900;border-radius:10px}.brand-mark{width:34px;height:34px}.logo-big{width:58px;height:58px;border-radius:16px;font-size:25px;margin:auto}.navlinks{display:flex;align-items:center;gap:22px;font-size:14px;color:#4b5563;flex:1}.navlinks a:hover{color:#111827}.nav-user{display:flex;align-items:center;gap:12px;font-size:13px}.link-btn{border:0;background:transparent;color:#6b7280;cursor:pointer}.mobile-nav{display:none}.app-shell{max-width:1240px;margin:0 auto;padding:34px 20px 90px}.app-shell.narrow{max-width:850px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:26px}.page-head h1{font-size:30px;margin:5px 0 3px;letter-spacing:-.03em}.page-head p{margin:0}.btn{border:0;border-radius:12px;min-height:43px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750;cursor:pointer}.btn.primary{background:#111827;color:white}.btn.secondary{background:#e8eefc;color:#183d88}.btn.ghost{background:#fff;border:1px solid var(--line)}.btn.sm{min-height:34px;padding:7px 10px;font-size:12px}.btn.wide{width:100%}.btn.tenant{background:var(--tenant,#111827);color:#fff}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel h2,.panel-head h2{margin:0 0 14px;font-size:18px}.panel-head h2{margin:0}.panel-head a{font-size:13px;color:#4b5563}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.stat span{display:block;color:#6b7280;font-size:13px;margin-bottom:9px}.stat strong{font-size:27px;letter-spacing:-.03em}.table-wrap{overflow:auto;margin:0 -3px}table{width:100%;border-collapse:collapse;min-width:650px}th{text-align:left;color:#6b7280;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid #eef0f3;font-size:13px}td small{display:block;color:#8b93a1;margin-top:3px}.pill{display:inline-block;padding:5px 9px;border-radius:99px;font-size:11px;font-weight:750}.pill.ok{background:#eaf8ef;color:#19713a}.pill.off{background:#f2f2f3;color:#777}.form-stack{display:flex;flex-direction:column;gap:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid.compact{align-items:end}.form-actions{display:flex;align-items:end}.section-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding-top:8px}.alert{border-radius:12px;padding:12px 14px;margin:0 0 18px;font-size:13px}.alert.error{background:#fff0f0;color:#9d2323;border:1px solid #ffd2d2}.alert.success{background:#effbf3;color:#176b36;border:1px solid #ccefd8}.searchbar{display:flex;gap:10px;margin-bottom:18px}.searchbar input{flex:1}.empty{text-align:center;padding:28px;color:#8b93a1}.timeline-row{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid #f0f2f5}.timeline-row:last-child{border:0}.timeline-dot{width:8px;height:8px;background:#111827;border-radius:99px;margin-top:7px}.timeline-row span{display:block;font-size:12px;color:#6b7280;margin-top:3px}.timeline-row time{font-size:11px;color:#9ca3af}.customer-layout{display:grid;grid-template-columns:320px 1fr;gap:22px}.customer-balance{text-align:center}.balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.balance-grid div{background:#f7f8fa;border-radius:14px;padding:16px}.balance-grid span{display:block;font-size:12px;color:#6b7280}.balance-grid strong{display:block;font-size:28px;margin-top:5px}.qr{width:210px;max-width:100%;display:block;margin:20px auto 5px}.customer-balance small{display:block;color:#8b93a1}.customer-balance>a{font-size:12px;display:inline-block;margin-top:12px;text-decoration:underline}.actions-panel h3{font-size:14px;margin:25px 0 10px}.inline-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;margin-bottom:13px}.reward-row{display:flex;justify-content:space-between;align-items:center;border:1px solid #e7eaf0;border-radius:12px;padding:11px;margin-bottom:8px}.reward-row small{display:block;color:#6b7280;margin-top:3px}.positive{color:#15733a}.negative{color:#a32626}.auth-wrap{min-height:calc(100vh - 40px);display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#fff 0,#f3f5f9 48%,#eceff4 100%)}.auth-card{width:min(100%,420px);background:#fff;border:1px solid #e3e6eb;border-radius:24px;padding:30px;box-shadow:0 24px 65px rgba(15,23,42,.09);text-align:center}.auth-card h1{margin:14px 0 4px}.auth-card .form-stack{text-align:left;margin-top:24px}.footer{text-align:center;color:#a0a6b0;font-size:11px;padding:14px 10px}.join-page,.card-page{--tenant:#111827;min-height:calc(100vh - 40px);padding:32px 16px;background:linear-gradient(160deg,color-mix(in srgb,var(--tenant) 8%,white),#f3f5f8 45%)}.join-card{width:min(100%,520px);margin:25px auto;background:white;border-radius:26px;padding:30px;box-shadow:0 25px 70px rgba(15,23,42,.12);border:1px solid rgba(0,0,0,.05)}.join-card{text-align:center}.join-card .form-stack{text-align:left;margin-top:20px}.merchant-logo,.merchant-placeholder{width:76px;height:76px;border-radius:20px;margin:0 auto 18px;object-fit:contain;background:#fff;border:1px solid #e7e9ee}.merchant-placeholder{display:grid;place-items:center;background:var(--tenant);color:white;font-size:30px;font-weight:900}.join-card h1{margin:6px 0}.benefit-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:12px;margin:18px 0;color:#4b5563}.welcome-bonus{background:#fff8db;border:1px solid #f3e8ab;border-radius:12px;padding:11px;font-size:13px}.check{display:grid!important;grid-template-columns:20px 1fr;gap:9px!important;font-weight:450!important;font-size:12px!important;color:#5f6773}.check input{width:18px;height:18px;min-height:0}.card-page{display:flex;flex-direction:column;align-items:center;gap:18px}.loyalty-card{width:min(100%,500px);min-height:285px;padding:25px;border-radius:27px;background:linear-gradient(145deg,var(--tenant),color-mix(in srgb,var(--tenant) 70%,#000));color:white;box-shadow:0 22px 60px color-mix(in srgb,var(--tenant) 22%,transparent);position:relative;overflow:hidden}.loyalty-card:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:1px solid rgba(255,255,255,.14);right:-90px;bottom:-130px}.card-top{display:flex;justify-content:space-between;align-items:start;position:relative;z-index:1}.card-kicker{font-size:9px;letter-spacing:.17em;opacity:.72}.card-top h1{margin:5px 0;font-size:22px}.card-logo{width:54px;height:54px;object-fit:contain;border-radius:14px;background:white;padding:5px}.card-logo.fallback{display:grid;place-items:center;color:var(--tenant);font-weight:900;font-size:22px}.member-name{font-size:16px;margin-top:28px;opacity:.95}.balances{display:flex;gap:36px;margin-top:23px}.balances strong{display:block;font-size:30px}.balances span{display:block;font-size:10px;letter-spacing:.08em;opacity:.72;text-transform:uppercase}.member-id{position:absolute;right:25px;bottom:25px;font-size:9px;letter-spacing:.1em;opacity:.8}.public-panel{width:min(100%,500px);background:#fff;border:1px solid #e5e7eb;border-radius:22px;padding:22px;box-shadow:var(--shadow)}.public-panel h2{margin:0 0 3px}.wallet-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 8px}.wallet{min-height:58px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 10px}.wallet.apple{background:#000;color:#fff;font-size:24px}.wallet.google{background:#fff;border:1px solid #cfd3d9}.wallet span{font-size:10px;line-height:1.15}.wallet span b{font-size:14px}.wallet .g{font-size:24px;font-weight:800}.disabled-wallet{opacity:.42}.info-box{margin-top:18px;background:#f6f7f9;border-radius:13px;padding:13px;font-size:12px}.info-box p{margin:5px 0 0;color:#626b77}.scanner-panel{max-width:580px;margin:auto}.scanner-panel #reader{border:0!important;border-radius:16px;overflow:hidden;background:#111827;min-height:300px}.divider{display:flex;align-items:center;gap:10px;margin:20px 0;color:#9ca3af;font-size:12px}.divider:before,.divider:after{content:"";height:1px;background:#e5e7eb;flex:1}code{display:block;background:#f4f5f7;border-radius:10px;padding:12px;word-break:break-all;font-size:12px}
@media(max-width:800px){body{padding-bottom:70px}.topbar{height:58px;padding:0 15px}.navlinks,.nav-user>span{display:none}.nav-user{margin-left:auto}.mobile-nav{display:grid;grid-template-columns:repeat(var(--mobile-items,5),1fr);position:fixed;bottom:0;left:0;right:0;height:66px;background:white;border-top:1px solid #e5e7eb;z-index:50;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px;color:#737b88}.mobile-nav small{font-size:9px;margin-top:2px}.mobile-nav .scan-main{color:#111827;font-weight:800}.app-shell{padding:22px 13px 82px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:25px}.page-head .btn{width:100%}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:23px}.panel{border-radius:15px;padding:15px}.form-grid{grid-template-columns:1fr}.customer-layout{grid-template-columns:1fr}.searchbar{flex-direction:column}.searchbar .btn{width:100%}.inline-form{grid-template-columns:1fr}.inline-form .btn{width:100%}.wallet-buttons{grid-template-columns:1fr}.join-page,.card-page{padding:18px 11px}.join-card{padding:23px 18px;border-radius:20px;margin:8px auto}.loyalty-card{min-height:260px;padding:21px;border-radius:22px}.member-id{right:21px;bottom:21px}.balances{gap:25px}.balances strong{font-size:27px}.timeline-row{grid-template-columns:12px 1fr}.timeline-row time{grid-column:2}.scanner-panel #reader{min-height:250px}}

/* V1.1 · Superadmin y gestión multiempresa */
.stat small{display:block;color:#9aa1ad;font-size:11px;margin-top:7px}.filterbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px 180px auto auto;gap:10px;margin-bottom:18px}.filterbar input,.filterbar select{min-width:0}.business-link{display:block}.business-link:hover b{text-decoration:underline}.plan-badge{display:inline-flex;padding:5px 9px;border-radius:99px;background:#f0f3f8;font-size:11px;font-weight:750}.row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.row-actions form{margin:0}.btn:disabled{opacity:.45;cursor:not-allowed}.company-head{align-items:center}.company-title-wrap{display:flex;align-items:center;gap:14px}.company-avatar{width:58px;height:58px;border-radius:15px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:4px}.company-avatar.fallback{display:grid;place-items:center;background:var(--tenant,#111827);color:white;font-size:23px;font-weight:900;border:0}.head-actions{display:flex;gap:9px;align-items:center}.head-actions form{margin:0}.subnav{position:sticky;top:72px;z-index:10;display:flex;gap:7px;overflow:auto;padding:7px;background:rgba(244,246,249,.94);backdrop-filter:blur(9px);margin:0 0 18px;border-radius:14px}.subnav a{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12px;font-weight:700}.full{grid-column:1/-1}.toggle-line{display:flex!important;align-items:flex-start;gap:11px;background:#f7f8fa;border:1px solid #e7eaf0;border-radius:13px;padding:14px!important}.toggle-line input{width:19px;height:19px;min-height:0;margin-top:2px}.toggle-line span{display:block}.toggle-line b,.toggle-line small{display:block}.toggle-line small{font-weight:400;color:#6b7280;margin-top:3px}.logo-upload-row{display:flex;gap:17px;align-items:center;background:#f8f9fb;border:1px dashed #d9dde5;border-radius:14px;padding:14px}.logo-preview-wrap{width:84px;flex:0 0 84px}.logo-preview{width:84px;height:84px;border-radius:16px;object-fit:contain;background:white;border:1px solid #e1e5eb;padding:5px}.logo-preview.fallback{display:grid;place-items:center;color:#8d95a3;font-size:11px;text-align:center}.logo-file{min-height:0;border:0;padding:0;background:transparent}.inline-check{display:flex!important;align-items:center;gap:7px!important;font-size:12px!important;margin-top:10px}.inline-check input{width:16px;height:16px;min-height:0}.hidden{display:none!important}.section-separator{border-top:1px solid #eceff3;margin:24px 0 18px;padding-top:20px}.section-separator h3{margin:0;font-size:14px}.wallet-admin-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px}.wallet-status{border:1px solid #e7eaf0;border-radius:13px;padding:14px;background:#fafbfc}.wallet-status span,.wallet-status b{display:block}.wallet-status span{font-size:11px;color:#6b7280;margin-bottom:5px}.wallet-status b{font-size:12px}.panel-actions{margin-top:20px}.stack-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack-actions form{margin:0}.password-inline{display:flex;gap:6px}.password-inline input{width:155px;min-height:34px;padding:7px 9px;font-size:12px}.danger-zone{border-color:#f0cccc;background:#fffafa}.danger-zone h2{color:#9c2424}.danger-grid{display:grid;grid-template-columns:1fr 2fr;gap:18px;align-items:end}.danger-delete{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.btn.danger{background:#a62626;color:#fff}.impersonation-bar{min-height:38px;background:#fff3cd;border-bottom:1px solid #f0df9d;color:#694f00;display:flex;justify-content:center;align-items:center;gap:14px;padding:7px 14px;font-size:12px;font-weight:700}.impersonation-bar form{margin:0}.impersonation-bar button{border:0;background:#6a5100;color:#fff;border-radius:8px;padding:6px 9px;cursor:pointer}.micro{font-size:11px;color:#8b93a1}
@media(max-width:900px){.filterbar{grid-template-columns:1fr 1fr}.filterbar input{grid-column:1/-1}.wallet-admin-grid{grid-template-columns:1fr}.danger-grid{grid-template-columns:1fr}.danger-delete{grid-template-columns:1fr}.head-actions{width:100%;flex-wrap:wrap}.head-actions .btn,.head-actions form{flex:1}.head-actions form .btn{width:100%}}
@media(max-width:600px){.filterbar{grid-template-columns:1fr}.filterbar input{grid-column:auto}.company-title-wrap{align-items:flex-start}.company-avatar{width:50px;height:50px}.subnav{top:60px;margin-left:-6px;margin-right:-6px}.logo-upload-row{align-items:flex-start;flex-direction:column}.wallet-admin-grid{grid-template-columns:1fr}.password-inline{width:100%}.password-inline input{width:100%;flex:1}.impersonation-bar{justify-content:space-between}.admin-stats{grid-template-columns:1fr 1fr}}

/* ITE Fideliza V1.2 - tarjeta pública */
.card-page-v12{padding:28px 14px 60px}.loyalty-card-v12{min-height:310px}.loyalty-card-v12 .balances{padding-bottom:68px}.card-mini-qr{position:absolute;left:24px;bottom:20px;width:68px;height:68px;border:0;border-radius:13px;background:#fff;padding:5px;cursor:pointer;z-index:2;box-shadow:0 4px 18px rgba(0,0,0,.12)}.card-mini-qr img{width:100%;height:100%;display:block;border-radius:8px}.card-mini-qr span{position:absolute;left:50%;bottom:-15px;transform:translateX(-50%);font-size:8px;font-weight:800;letter-spacing:.12em;color:rgba(255,255,255,.78);white-space:nowrap}.loyalty-card-v12 .member-id{bottom:24px}.public-panel-v12{padding:24px}.public-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.public-panel-title h2{font-size:24px;margin:4px 0 3px}.card-kicker.dark{color:#6b7280;opacity:1}.reward-count{background:#ecfdf3;color:#067647;border:1px solid #d1fadf;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;white-space:nowrap}.show-qr-btn{width:100%;border:0;background:var(--tenant,#111827);color:#fff;border-radius:16px;padding:15px 16px;margin:20px 0 18px;display:grid;grid-template-columns:44px 1fr 18px;gap:12px;align-items:center;text-align:left;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--tenant) 18%,transparent)}.show-qr-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.15);font-size:25px}.show-qr-btn b{display:block;font-size:15px}.show-qr-btn small{display:block;font-size:11px;opacity:.75;margin-top:3px}.show-qr-arrow{font-size:28px;opacity:.8}.loyalty-progress-box,.next-reward-box{border:1px solid #e6e9ef;border-radius:16px;padding:15px;margin-top:14px;background:#fafbfc}.progress-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.progress-head>div b,.progress-head>div small{display:block}.progress-head small{font-size:11px;color:#8b93a1;margin-top:2px}.progress-head>span{font-size:11px;color:#667085}.ready-text{color:#067647!important;font-weight:800}.stamp-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.stamp-dot{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;border:1px dashed #c9ced7;color:#98a2b3;background:#fff;font-size:11px;font-weight:800}.stamp-dot.filled{background:var(--tenant,#111827);border-color:var(--tenant,#111827);color:#fff}.next-reward-box{display:flex;gap:13px;align-items:center;background:color-mix(in srgb,var(--tenant) 5%,#fff)}.gift-icon{width:43px;height:43px;border-radius:13px;background:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 3px 12px rgba(15,23,42,.06)}.next-reward-box>div:last-child{min-width:0}.next-reward-box span,.next-reward-box b,.next-reward-box small{display:block}.next-reward-box span{font-size:9px;letter-spacing:.12em;color:#7b8491;font-weight:800}.next-reward-box b{font-size:14px;margin:2px 0}.next-reward-box small{font-size:11px;color:#667085}.rewards-section,.wallet-section{margin-top:24px;padding-top:20px;border-top:1px solid #edf0f3}.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-title-row h3{margin:0;font-size:16px}.section-title-row>span{font-size:11px;color:#7b8491}.customer-reward-list{display:flex;flex-direction:column;gap:9px}.customer-reward{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;border:1px solid #e8ebf0;border-radius:14px;padding:12px;background:#fff}.customer-reward.available{border-color:#b7ebcb;background:#f6fff9}.reward-status-icon{width:38px;height:38px;border-radius:11px;background:#f2f4f7;color:#7b8491;display:grid;place-items:center;font-weight:900}.customer-reward.available .reward-status-icon{background:#dcfae6;color:#067647}.reward-main{min-width:0}.reward-main>b,.reward-main>small{display:block}.reward-main>b{font-size:13px}.reward-main>small{font-size:10px;color:#7b8491;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reward-cost{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.reward-cost span{font-size:9px;border-radius:999px;background:#f2f4f7;padding:3px 6px;color:#667085;font-weight:750}.reward-state{font-size:10px;font-weight:800;color:#8a93a1}.customer-reward.available .reward-state{color:#067647}.reward-note{margin:10px 0 0}.wallet-buttons-v12{margin-top:0}.wallet-v12{font-size:inherit!important;justify-content:flex-start;padding:10px 13px}.wallet-v12>span:last-child{display:flex;flex-direction:column}.wallet-v12 small{font-size:9px;opacity:.75;line-height:1.1}.wallet-v12 b{font-size:13px;line-height:1.2}.wallet-generic-icon{font-size:22px!important;line-height:1!important}.wallet-v12.disabled-wallet{cursor:not-allowed;user-select:none}.card-actions-public{display:flex;flex-direction:column;gap:5px;margin-top:18px}.text-action{border:0;background:transparent;padding:8px;color:#667085;font-size:11px;cursor:pointer}.qr-modal{position:fixed;inset:0;display:none;z-index:200;align-items:center;justify-content:center;padding:20px}.qr-modal.open{display:flex}.qr-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.72);backdrop-filter:blur(6px)}.qr-modal-card{position:relative;z-index:1;width:min(100%,430px);background:#fff;border-radius:24px;padding:26px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.28)}.qr-modal-card h2{margin:5px 0}.qr-modal-card p{margin:4px 0 14px}.qr-close{position:absolute;right:14px;top:12px;width:36px;height:36px;border-radius:50%;border:0;background:#f2f4f7;color:#475467;font-size:24px;cursor:pointer}.qr-large-wrap{width:min(100%,310px);margin:16px auto 12px;background:#fff;border:1px solid #e7eaf0;padding:12px;border-radius:19px}.qr-large-wrap img{width:100%;height:auto;display:block}.qr-member-name,.qr-member-number{display:block}.qr-member-name{font-size:17px}.qr-member-number{font-size:11px;color:#8a93a1;margin:3px 0 18px}.modal-open{overflow:hidden}
@media(max-width:520px){.card-page-v12{padding:16px 10px 36px}.loyalty-card-v12{min-height:290px;padding:20px;border-radius:23px}.loyalty-card-v12 .card-top h1{font-size:20px}.loyalty-card-v12 .member-name{margin-top:22px}.loyalty-card-v12 .balances{gap:28px;margin-top:18px;padding-bottom:66px}.loyalty-card-v12 .balances strong{font-size:27px}.card-mini-qr{left:20px;bottom:18px;width:62px;height:62px}.loyalty-card-v12 .member-id{right:20px;bottom:20px}.public-panel-v12{padding:18px;border-radius:20px}.public-panel-title{flex-direction:column;gap:8px}.reward-count{align-self:flex-start}.wallet-buttons-v12{grid-template-columns:1fr}.customer-reward{grid-template-columns:36px 1fr}.reward-state{grid-column:2}.qr-modal{padding:12px}.qr-modal-card{padding:22px 18px;border-radius:22px}.qr-large-wrap{width:min(100%,290px)}}

/* ITE Fideliza V1.3 - gestión y Wallet */
.manage-list{display:flex;flex-direction:column;gap:12px}.manage-card{border:1px solid #e5e9ef;border-radius:16px;background:#fff;overflow:hidden}.manage-card.is-disabled{background:#fafafa;opacity:.82}.manage-summary{display:grid;grid-template-columns:minmax(190px,1.5fr) minmax(260px,1fr) auto;gap:16px;align-items:center;padding:16px}.manage-summary b,.manage-summary small{display:block}.manage-summary small{color:#7b8491;margin-top:4px;font-size:11px}.manage-metrics{display:flex;gap:7px;flex-wrap:wrap}.manage-metrics span{background:#f4f6f8;border:1px solid #e7eaf0;border-radius:999px;padding:5px 8px;font-size:10px;color:#667085;font-weight:700}.manage-editor{border-top:1px solid #edf0f3}.manage-editor>summary{cursor:pointer;padding:11px 16px;font-size:12px;font-weight:800;color:#475467;list-style:none}.manage-editor>summary::-webkit-details-marker{display:none}.manage-editor[open]>summary{background:#f8fafc}.edit-form{padding:16px;border-top:1px solid #edf0f3}.inline-toggle{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important}.inline-toggle input{width:18px!important;height:18px!important;min-height:0!important}.row-danger-actions{padding:0 16px 16px;display:flex;justify-content:flex-end}.row-danger-actions form{margin:0}.micro.left{text-align:left}.wallet-overview{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wallet-provider-card{min-width:0}.wallet-provider-head{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;margin-bottom:18px}.wallet-provider-head h2{margin:0 0 3px}.wallet-provider-head p{margin:0;font-size:12px}.provider-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;font-weight:900}.google-provider{background:#f2f4f7;color:#475467}.apple-provider{background:#111827;color:#fff}.status-list{margin:0 0 18px}.status-list div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #eef1f4}.status-list dt{font-size:11px;color:#7b8491}.status-list dd{margin:0;font-size:11px;font-weight:700;overflow-wrap:anywhere}.wallet-help{background:#f8fafc;border:1px solid #e7eaf0;border-radius:14px;padding:14px}.wallet-help b{font-size:13px}.wallet-help p{font-size:11px;color:#667085;margin:6px 0 0;line-height:1.5}.wallet-help code,.wallet-steps code{font-size:10px;background:#eef1f4;padding:2px 5px;border-radius:5px}.wallet-stats{grid-template-columns:1fr 1fr;margin-bottom:18px}.wallet-steps p{font-size:12px;line-height:1.6;color:#596273}.wallet-steps p b{color:#111827}
@media(max-width:820px){.manage-summary{grid-template-columns:1fr auto}.manage-metrics{grid-column:1/-1}.wallet-overview{grid-template-columns:1fr}}
@media(max-width:560px){.manage-summary{grid-template-columns:1fr}.manage-summary>.pill{justify-self:start}.manage-metrics{grid-column:auto}.edit-form{grid-template-columns:1fr}.wallet-provider-head{grid-template-columns:44px 1fr}.wallet-provider-head>.pill{grid-column:2;justify-self:start}.wallet-stats{grid-template-columns:1fr 1fr}.status-list div{grid-template-columns:1fr}.status-list dd{margin-top:-5px}}

/* V1.3.1 · comprobación visual del logo de Google Wallet */
.wallet-logo-check{display:flex;align-items:center;gap:14px;margin:14px 0;padding:14px;border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc}.wallet-logo-check img{width:58px;height:58px;object-fit:contain;border-radius:14px;background:#fff;border:1px solid #e5e7eb}.wallet-logo-check p{margin:3px 0 0}.wallet-logo-check b{display:block}
/* V1.3.2 · carga de logo */
.logo-field{display:block}.field-label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.logo-upload-controls{display:flex;flex-direction:column;gap:7px;min-width:0}.logo-upload-controls small{display:block;color:#667085;font-weight:400}.logo-file{width:100%;max-width:420px}.logo-file::file-selector-button{border:0;border-radius:10px;background:#111827;color:#fff;padding:9px 12px;margin-right:10px;font-weight:700;cursor:pointer}

/* V1.4.3 · Wallet limpio, validación de imágenes y progresos compactos */
.wallet-admin-shell{max-width:1380px}.wallet-designer-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:22px;align-items:start;margin:20px 0}.wallet-design-form{min-width:0}.wallet-design-form .panel-head{margin-bottom:4px}.designer-section{padding:22px 0;border-top:1px solid #edf0f3}.designer-section:first-of-type{border-top:0}.designer-section-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.designer-section-head h3{margin:1px 0 3px;font-size:16px}.designer-section-head p{margin:0;color:#7b8491;font-size:11px}.designer-step{width:30px;height:30px;border-radius:10px;background:#111827;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:850;flex:0 0 auto}.wallet-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.color-field{display:grid;grid-template-columns:58px 1fr;gap:8px}.color-field input[type=color]{width:58px;min-height:46px;padding:4px;border-radius:12px}.color-code{text-transform:lowercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.color-presets{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}.color-presets button{width:28px;height:28px;border-radius:9px;border:2px solid #fff;outline:1px solid #d9dee7;background:var(--preset);cursor:pointer;box-shadow:0 2px 7px rgba(15,23,42,.08)}.color-presets button:hover{transform:translateY(-1px)}.wallet-assets-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wallet-asset-field{border:1px solid #e5e9ef;border-radius:17px;padding:15px;background:#fbfcfd;display:flex;flex-direction:column;gap:9px;min-width:0}.wallet-asset-field.full-asset{grid-column:1/-1}.asset-title b,.asset-title small{display:block}.asset-title b{font-size:13px}.asset-title small{font-size:10px;color:#7b8491;margin-top:2px}.asset-preview{background:#fff;border:1px dashed #d5dbe4;border-radius:14px;display:grid;place-items:center;overflow:hidden}.asset-preview.square{width:104px;height:104px}.asset-preview.wide{height:95px;width:100%}.asset-preview.hero{height:180px;width:100%}.asset-preview img{width:100%;height:100%;object-fit:contain}.asset-preview.hero img{object-fit:cover}.asset-placeholder{font-size:11px;color:#98a2b3}.wallet-asset-field input[type=file]{width:100%;font-size:11px}.wallet-asset-field input[type=file]::file-selector-button{border:0;border-radius:10px;background:#111827;color:#fff;padding:8px 10px;margin-right:8px;font-weight:750}.wallet-asset-field>small{font-size:10px;color:#667085;line-height:1.4}.icon-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.icon-fields input{text-align:center;font-size:20px}.icon-palette{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0 16px}.wallet-icon-choice{width:38px;height:38px;border:1px solid #dfe4eb;background:#fff;border-radius:11px;font-size:18px;cursor:pointer}.wallet-icon-choice:hover{border-color:#111827;transform:translateY(-1px)}.icon-palette small{font-size:10px;color:#7b8491;margin-left:5px}.wallet-visible-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wallet-toggle{display:flex!important;flex-direction:row!important;gap:11px!important;align-items:flex-start!important;border:1px solid #e5e9ef;border-radius:14px;padding:13px;background:#fff}.wallet-toggle input{width:19px!important;height:19px!important;min-height:0!important;margin-top:1px}.wallet-toggle b,.wallet-toggle small{display:block}.wallet-toggle b{font-size:12px}.wallet-toggle small{font-size:10px;color:#7b8491;margin-top:3px}.wallet-save-bar{position:sticky;bottom:10px;z-index:5;margin:8px -4px -4px;padding:14px;border:1px solid #dfe4eb;border-radius:18px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);box-shadow:0 10px 35px rgba(15,23,42,.1);display:flex;align-items:center;justify-content:space-between;gap:18px}.wallet-save-bar b,.wallet-save-bar small{display:block}.wallet-save-bar b{font-size:11px}.wallet-save-bar small{font-size:9px;color:#7b8491;margin-top:2px}.preview-sticky{position:sticky;top:18px}.preview-title{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:12px}.preview-title span{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.preview-title small{font-size:9px;color:#7b8491;text-align:right;max-width:230px}.google-wallet-list-preview{--wallet-bg:#111827;--wallet-accent:#fff;background:var(--wallet-bg);color:var(--wallet-accent);border-radius:22px;padding:18px;display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;box-shadow:0 18px 50px rgba(15,23,42,.18);min-height:126px}.wallet-list-logo{width:64px;height:64px;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.15);display:grid;place-items:center}.wallet-list-logo img{width:100%;height:100%;object-fit:cover}.wallet-list-copy{min-width:0}.wallet-list-copy b,.wallet-list-copy span,.wallet-list-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet-list-copy b{font-size:16px;margin-bottom:6px}.wallet-list-copy span{font-size:11px;font-weight:750;opacity:.95}.wallet-list-copy small{font-size:10px;opacity:.75;margin-top:5px}.preview-caption{font-size:9px;color:#7b8491;text-align:center;margin:8px 0 18px}.google-wallet-pass-preview{--wallet-bg:#111827;--wallet-accent:#fff;background:var(--wallet-bg);color:var(--wallet-accent);border-radius:26px;overflow:hidden;box-shadow:0 22px 55px rgba(15,23,42,.2);min-height:430px}.wallet-pass-head{display:flex;gap:12px;align-items:center;padding:22px}.wallet-pass-head img{width:52px;height:52px;object-fit:cover;border-radius:50%;background:rgba(255,255,255,.14)}.wallet-pass-head small,.wallet-pass-head b{display:block}.wallet-pass-head small{font-size:9px;opacity:.72}.wallet-pass-head b{font-size:16px;margin-top:2px}.wallet-wide-preview{height:90px;padding:19px 22px;display:grid;place-items:center}.wallet-wide-preview img{max-width:100%;max-height:52px;object-fit:contain}.wallet-pass-hero{height:180px;background:rgba(255,255,255,.07)}.wallet-pass-hero img{width:100%;height:100%;object-fit:cover}.wallet-pass-data{padding:18px 22px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.wallet-data-card{background:color-mix(in srgb,var(--wallet-accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--wallet-accent) 18%,transparent);border-radius:14px;padding:11px;min-width:0}.wallet-data-card span,.wallet-data-card strong{display:block}.wallet-data-card span{font-size:9px;opacity:.72;text-transform:uppercase;letter-spacing:.05em}.wallet-data-card strong{font-size:13px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet-data-card i{font-style:normal}.wallet-preview-qr{margin:0 22px 22px;border-top:1px solid color-mix(in srgb,var(--wallet-accent) 18%,transparent);padding-top:16px;display:flex;align-items:center;gap:10px}.fake-qr{width:48px;height:48px;border-radius:9px;background:#fff;color:#111827;display:grid;place-items:center;font-size:31px;line-height:1}.wallet-preview-qr small{font-size:10px;opacity:.7}.wallet-preview-note{margin-top:14px;border:1px solid #e5e9ef;border-radius:16px;padding:14px;background:#fff}.wallet-preview-note b{font-size:11px}.wallet-preview-note p{font-size:10px;color:#667085;line-height:1.5;margin:5px 0 0}
@media(max-width:1050px){.wallet-designer-grid{grid-template-columns:1fr}.preview-sticky{position:static}.wallet-preview-column{max-width:560px;margin:0 auto;width:100%}}
@media(max-width:680px){.wallet-admin-shell{padding-left:12px;padding-right:12px}.wallet-form-grid,.wallet-visible-grid,.wallet-assets-grid,.icon-fields{grid-template-columns:1fr}.wallet-asset-field.full-asset{grid-column:auto}.wallet-save-bar{position:static;flex-direction:column;align-items:stretch}.wallet-save-bar .btn{width:100%}.asset-preview.hero{height:150px}.google-wallet-list-preview{grid-template-columns:56px 1fr;padding:16px;border-radius:20px}.wallet-list-logo{width:56px;height:56px}.wallet-pass-data{padding:15px 17px}.google-wallet-pass-preview{border-radius:22px}.wallet-pass-head{padding:18px}.wallet-pass-hero{height:150px}}

.progress-badge.neutral{color:#475467;font-weight:700}.progress-bar-wrap{margin-top:13px}.progress-bar-track{height:12px;border-radius:999px;background:#eef2f6;overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--tenant,#111827),color-mix(in srgb,var(--tenant,#111827) 65%,#fff))}.progress-bar-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:8px}.progress-bar-meta b{font-size:13px}.progress-bar-meta span{font-size:11px;color:#667085}.progress-bar-meta.single{justify-content:flex-start}.points-step-row{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;margin-top:10px}.points-step{height:7px;border-radius:999px;background:#e5e7eb}.points-step.filled{background:var(--tenant,#111827)}.points-progress-box{background:linear-gradient(180deg,#fafbfc 0%,color-mix(in srgb,var(--tenant,#111827) 4%,#fff) 100%)}.wallet-data-card.progress-card small{display:block;margin-top:7px;font-size:10px;opacity:.72}.mini-progress{height:7px;border-radius:999px;background:rgba(255,255,255,.18);margin-top:9px;overflow:hidden}.mini-progress-bar{height:100%;border-radius:inherit;background:var(--wallet-accent)}.mini-stamp-progress{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-top:9px}.mini-stamp-progress span{height:8px;border-radius:999px;background:rgba(255,255,255,.22)}.mini-stamp-progress span.filled{background:var(--wallet-accent)}

.mini-stamp-progress.five{grid-template-columns:repeat(5,1fr)}

.nearby-wallet-panel{margin-top:22px}.nearby-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 18px}.wallet-location-list{display:flex;flex-direction:column;gap:12px}.wallet-location-card{border:1px solid #e4e8ee;border-radius:18px;padding:16px;background:#fbfcfd;margin-top:12px}.wallet-location-card.new-location{background:color-mix(in srgb,var(--tenant,#111827) 2%,#fff)}.location-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.location-card-head b,.location-card-head small{display:block}.location-card-head b{font-size:14px}.location-card-head small{font-size:10px;color:#7b8491;margin-top:3px}.wallet-location-grid{grid-template-columns:1.2fr 1fr 1fr}.location-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.btn.danger{background:#fff1f2;color:#b42318;border:1px solid #fecdd3}.btn.danger:hover{background:#ffe4e6}@media(max-width:760px){.nearby-info-grid{grid-template-columns:1fr}.wallet-location-grid{grid-template-columns:1fr}.location-actions .btn{flex:1 1 auto}.wallet-location-card{padding:14px}}

textarea{width:100%;border:1px solid #d9dee7;border-radius:12px;padding:12px 13px;background:#fff;outline:none;resize:vertical;font:inherit}textarea:focus{border-color:#111827;box-shadow:0 0 0 3px rgba(17,24,39,.08)}.field-help{font-size:10px;color:#8b93a1;font-weight:500}.campaign-compose-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:22px;align-items:start}.campaign-sub{font-size:11px;margin:3px 0 0}.campaign-preview-column{position:sticky;top:86px}.notification-preview{margin:18px 0;border:1px solid #dfe4eb;background:#f8fafc;border-radius:20px;padding:16px;display:grid;grid-template-columns:46px 1fr;gap:12px;box-shadow:0 14px 35px rgba(15,23,42,.08)}.notification-app{width:46px;height:46px;border-radius:13px;background:#fff;border:1px solid #e4e7ec;display:grid;place-items:center;font-size:22px;font-weight:850}.notification-preview small,.notification-preview b,.notification-preview p{display:block}.notification-preview small{font-size:9px;color:#8b93a1}.notification-preview b{margin-top:2px;font-size:14px}.notification-preview p{margin:3px 0 0;color:#475467;font-size:12px;line-height:1.45}.campaign-rules{border-radius:15px;background:#fff7ed;border:1px solid #fed7aa;padding:14px;margin-top:15px}.campaign-rules b{font-size:11px}.campaign-rules p{font-size:10px;line-height:1.5;color:#7c4a16;margin:6px 0 0}.wallet-provider-state{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f3;font-size:12px}.wallet-provider-state:last-child{border:0}.campaign-condition{border:1px solid #e5e9ef;background:#fbfcfd;border-radius:15px;padding:14px}.campaign-customer-list{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:7px;margin-top:10px}.campaign-customer{display:grid!important;grid-template-columns:20px 1fr;gap:10px!important;align-items:center!important;border:1px solid #e5e9ef;border-radius:12px;padding:10px;background:#fff}.campaign-customer input{width:18px;height:18px;min-height:0}.campaign-customer b,.campaign-customer small{display:block}.campaign-customer small{font-size:10px;color:#7b8491;margin-top:2px}.selected-customer-head{display:flex;justify-content:space-between;align-items:center}.campaign-confirm{margin-top:4px}.campaign-detail-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.campaign-detail-meta div{background:#f8fafc;border-radius:14px;padding:14px}.campaign-detail-meta span,.campaign-detail-meta b{display:block}.campaign-detail-meta span{font-size:10px;color:#8b93a1;text-transform:uppercase;letter-spacing:.05em}.campaign-detail-meta b{font-size:12px;margin-top:5px;word-break:break-word}.btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.campaign-compose-grid{grid-template-columns:1fr}.campaign-preview-column{position:static}.campaign-detail-meta{grid-template-columns:1fr 1fr}}@media(max-width:560px){.campaign-detail-meta{grid-template-columns:1fr}.campaign-stats{grid-template-columns:1fr 1fr}.campaign-compose{padding:15px}}

/* V1.7 */
.v17{--text:#111827}.v17-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.v17-stat{border:1px solid #e7eaf0;background:#fff;padding:18px;border-radius:20px;box-shadow:0 8px 25px rgba(15,23,42,.04)}.v17-stat span,.v17-stat strong,.v17-stat small{display:block}.v17-stat span{font-size:12px;color:#667085}.v17-stat strong{font-size:25px;line-height:1.3;margin:6px 0;color:#111827}.v17-stat small{font-size:10px;color:#98a2b3}.v17-chart-panel .panel-head{align-items:flex-start;gap:14px}.v17-period{display:flex;gap:5px;flex-wrap:wrap}.v17-period a,.v17-period button{display:inline-flex;align-items:center;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:8px 10px;font-size:12px;text-decoration:none;color:#667085;cursor:pointer}.v17-period .selected{background:#111827;color:#fff;border-color:#111827}.v17-metrics{margin:15px 0}.v17-chart{display:flex;align-items:flex-end;gap:8px;height:235px;border-bottom:1px solid #e5e7eb;overflow-x:auto;padding:12px 4px 0;margin-bottom:22px}.v17-bar-col{display:flex;flex:1 0 26px;align-items:center;flex-direction:column;justify-content:flex-end;gap:5px;height:100%;min-width:0}.v17-bar{background:linear-gradient(180deg,#b88c49,#6b4b10);border-radius:7px 7px 0 0;width:min(100%,34px);min-height:3px;transition:height .2s}.v17-bar-col small{font-size:9px;color:#98a2b3;white-space:nowrap;writing-mode:vertical-rl;max-height:42px}.v17-rule-list{display:grid;gap:16px}.v17-rule{border:1px solid #e5e7eb;padding:15px;border-radius:15px;background:#fafbfc}.v17-rule .form-grid{margin:0}.v17-actions{display:flex;gap:8px;margin-top:10px}.v17-actions form{margin:0}.referral-public-box{border:1px solid #e5e7eb;border-left:5px solid #c39b39;border-radius:15px;padding:15px;margin-top:18px;background:#fff}.referral-public-box b,.referral-public-box small{display:block;margin-bottom:5px}.referral-public-box small{color:#667085;font-size:11px}.referral-public-box .btn{margin-top:10px}.v17 .panel{margin-bottom:18px}
@media(max-width:760px){.v17-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.v17 .page-head{display:flex;flex-direction:column;align-items:stretch}.v17-chart-panel .panel-head{flex-direction:column}.v17-bar-col{flex:1 0 32px}}
@media(max-width:410px){.v17-stats{grid-template-columns:1fr 1fr}.v17-stat strong{font-size:20px}}

.v17-shortcuts{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}.v17-shortcuts a{background:#fff;border:1px solid #dfe4ec;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:750}.v17-shortcuts a:hover{background:#f2f4f7}@media(min-width:801px){.topbar{height:auto;min-height:68px;padding-top:8px;padding-bottom:8px}.navlinks{flex-wrap:wrap;gap:9px 15px;font-size:12px}}
/* V1.8 · autorización de visitas por escaneo */
.visit-approval{padding:26px}.visit-eyebrow{font-size:11px;letter-spacing:.12em;font-weight:850;color:#64748b}.visit-approval h2{font-size:28px;margin:9px 0 4px}.visit-approval .balance-grid{margin:22px 0;gap:12px}.visit-approval .balance-grid>div{background:#f8fafc;border:1px solid #e4e9ef;border-radius:14px;padding:18px}.visit-approval .balance-grid span{display:block;font-size:12px;color:#64748b}.visit-approval .balance-grid strong{display:block;font-size:26px;margin-top:5px}.visit-approval button[type=submit]{min-height:53px;font-size:15px}.visit-approval button[disabled]{opacity:.65;cursor:wait}.visit-approval p.muted{margin:13px 0 0}.visit-secondary-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.visit-secondary-actions a{flex:1;white-space:normal;text-align:center}
@media(max-width:540px){.visit-approval{padding:18px}.visit-approval .balance-grid strong{font-size:21px}.visit-secondary-actions{flex-direction:column}}

/* V1.9.1 · navegación compacta y centro de gestión */
@media(min-width:801px){.topbar{height:68px;min-height:68px;padding-top:0;padding-bottom:0}.navlinks{flex-wrap:nowrap;gap:clamp(10px,1.8vw,24px);font-size:13px}.navlinks a.is-active{color:#111827;font-weight:800}}
.manage-hub>.panel{margin-bottom:16px}.manage-hub h2{margin-top:0;font-size:17px}
.manage-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.manage-hub-link{border:1px solid #e5e7eb;border-radius:13px;display:flex;flex-direction:column;gap:4px;padding:15px;text-decoration:none;background:#f9fafb;min-width:0}
.manage-hub-link:hover,.manage-hub-link:focus-visible{background:#eff4fb;border-color:#bac8db}
.manage-hub-link b{font-size:14px;color:#111827}.manage-hub-link small{font-size:12px;line-height:1.5;color:#64748b}
.visit-hub-card{padding:22px}.visit-hub-card .panel-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.visit-hub-card .panel-head h2{margin:0}
@media(max-width:600px){.manage-hub-grid{grid-template-columns:1fr}.visit-hub-card{padding:17px}.mobile-nav{padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a{gap:2px;min-width:0}.mobile-nav a span{font-size:19px}.mobile-nav a small{font-size:10px}}

.mobile-nav a.is-active{color:#111827;font-weight:800}


/* V1.9.7 · Interfaz unificada, lectura QR y espacios táctiles */
.app-shell{max-width:1200px;min-width:0}.app-shell .page-head{margin-bottom:22px;gap:15px}
.app-shell .page-head h1{font-size:clamp(25px,3.4vw,35px);letter-spacing:-.035em;line-height:1.14}
.app-shell .page-head .muted{font-size:13px;line-height:1.6;max-width:680px}
.app-shell .panel{border:1px solid #e6eaf0;border-radius:21px;box-shadow:0 12px 34px rgba(25,40,65,.045)}
.app-shell input,.app-shell select,.app-shell textarea{min-height:46px;font-size:14px;max-width:100%}
.app-shell button,.app-shell .btn{min-height:42px;transition:transform .15s ease,box-shadow .15s ease}
.app-shell .btn.primary{box-shadow:0 7px 18px rgba(17,24,39,.12)}
.app-shell .btn.primary:active,.app-shell button:active{transform:scale(.985)}
.app-shell button:focus-visible,.app-shell a:focus-visible,.app-shell input:focus-visible{outline:3px solid #6d89ff;outline-offset:3px}
.dashboard-welcome{display:flex;justify-content:space-between;align-items:center;gap:24px;border:1px solid #dfe6f0;border-radius:25px;background:linear-gradient(112deg,#fff 0%,#f0f4fa 100%);padding:26px 28px;margin:0 0 18px}
.dashboard-welcome h1{font-size:clamp(29px,4vw,39px);letter-spacing:-.045em;line-height:1.1;margin:7px 0}
.dashboard-welcome p{font-size:13px;color:#596578;line-height:1.55;margin:0;max-width:490px}
.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.dashboard-stats .stat{min-width:0;display:flex;flex-direction:column;text-decoration:none;border-radius:20px;border:1px solid #e6eaf0;background:#fff;padding:19px 20px;box-shadow:0 9px 26px rgba(15,23,42,.04)}
.dashboard-stats .stat strong{font-size:clamp(24px,3vw,36px);letter-spacing:-.045em;line-height:1.14;margin:9px 0;color:#121c30}
.dashboard-stats .stat span{font-size:12px;font-weight:650;color:#606d7e}
.dashboard-stats .stat small{font-size:11px;color:#76859a;margin-top:auto}
.dashboard-stats a.stat:hover{border-color:#afbdce;transform:translateY(-1px)}
.dashboard-recent .panel-head{align-items:center;flex-wrap:wrap;gap:12px}
.manage-sections{display:grid;gap:16px}.manage-sections>.panel{margin:0;padding:21px}.manage-hub-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.manage-hub-link{background:#fbfcfe;border-color:#e5eaf1;border-radius:16px;padding:18px;min-height:142px;justify-content:flex-start}
.manage-hub-link b{font-size:15px;letter-spacing:-.01em}.manage-hub-link small{font-size:12px;line-height:1.5}
.manage-link-icon{width:37px;height:37px;border:1px solid #e0e6f1;background:#fff;border-radius:12px;display:grid;place-items:center;font-size:19px;margin-bottom:5px;color:#233552}
.manager-restricted{background:#f7f8fc}
.visit-scan-main{display:grid;grid-template-columns:62px 1fr auto;gap:16px;align-items:center;background:#172337;color:white;text-decoration:none;padding:24px;border-radius:23px;box-shadow:0 12px 28px rgba(17,24,39,.16);margin:0 0 17px}
.visit-scan-main b,.visit-scan-main small{display:block}.visit-scan-main b{font-size:19px;color:#fff}.visit-scan-main small{font-size:13px;color:#cbd5e1;line-height:1.5;margin-top:5px}
.visit-scan-icon{width:60px;height:60px;display:grid;place-items:center;background:rgba(255,255,255,.12);border-radius:17px;font-size:29px}
.visit-arrow{font-size:26px;color:#e3ebf5}.visit-scan-main:hover{background:#25344a}
.visit-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.visit-methods>.panel{margin:0;min-width:0}
.visit-qr-image{display:block;width:min(100%,290px);margin:15px auto;border:10px solid #fff;border-radius:20px;box-shadow:0 5px 20px rgba(15,23,42,.07)}
.scanner-card{padding:20px}.scan-viewport{position:relative;aspect-ratio:4/3;max-height:460px;width:100%;background:#131c2d;border-radius:19px;overflow:hidden;display:grid;place-items:center}
.scan-viewport #scanVideo,.scan-viewport #reader{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scan-viewport #reader video{width:100%;height:100%;object-fit:cover}.scan-viewport [hidden]{display:none!important}
.scan-placeholder{text-align:center;color:#e8eefb;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px}
.scan-placeholder b{font-size:19px}.scan-placeholder small{color:#b0bfd3;font-size:12px;line-height:1.5}.scan-placeholder-icon{font-size:65px;line-height:1}
.scan-reticle{position:absolute;pointer-events:none;z-index:5;width:min(58%,260px);aspect-ratio:1;border:3px solid #a7f3d0;border-radius:22px;box-shadow:0 0 0 9999px rgba(0,0,0,.09)}
.scan-status{font-size:13px;color:#475569;line-height:1.5;margin:15px 0}.scan-status.error{color:#b42318}
.scan-actions{display:flex;gap:10px}.scan-actions>.btn{flex:1}.scan-separator{font-size:12px;color:#7c8796;text-align:center;margin:22px 0 16px;border-top:1px solid #e6ebf1;line-height:0}
.scan-separator::first-letter{background:#fff}.scan-photo-label{position:relative;display:flex;align-items:center;justify-content:center;min-height:50px;padding:12px;border:1px dashed #b7c6dc;border-radius:13px;font-size:13px;font-weight:750;background:#f9fbff;color:#20334f;cursor:pointer}
.scan-photo-label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.scan-manual{border:1px solid #e5eaf0;border-radius:14px;padding:14px;margin-top:14px}.scan-manual summary{font-size:13px;font-weight:700;cursor:pointer;color:#405168}
.scan-manual label{display:block;margin-top:13px}.scan-manual .btn{margin-top:10px}.scan-help{font-size:12px;color:#7b8798;line-height:1.55;margin:14px 2px}
@media(max-width:900px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.app-shell{padding-left:13px;padding-right:13px}.app-shell .panel{padding:17px;border-radius:19px}.dashboard-welcome{padding:21px;flex-direction:column;align-items:stretch}.dashboard-welcome .btn{width:100%;text-align:center}.dashboard-stats{gap:10px}.dashboard-stats .stat{padding:16px;border-radius:17px}.dashboard-stats .stat strong{font-size:27px}.manage-hub-grid{grid-template-columns:1fr 1fr;gap:9px}.manage-hub-link{min-height:130px;padding:13px}.manage-link-icon{width:34px;height:34px}.visit-methods{grid-template-columns:1fr}.visit-scan-main{grid-template-columns:47px 1fr auto;padding:17px;gap:11px}.visit-scan-icon{width:46px;height:46px;font-size:24px}.visit-scan-main b{font-size:16px}.visit-scan-main small{font-size:11px}.scanner-card{padding:13px!important}.scan-viewport{aspect-ratio:1/1;max-height:420px}.scan-actions{flex-direction:column}}
@media(max-width:370px){.manage-hub-grid{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stats .stat strong{font-size:23px}}

/* V1.9.8 · casillas de premio y celebración de una sola vez. */
.stamp-row .stamp-dot{position:relative;width:36px;height:36px;flex:0 0 36px}
.stamp-row .stamp-dot.reward-slot{font-size:18px;background:#fff7df;border:1px solid #f3ce80;color:#92400e;box-shadow:0 2px 7px rgba(180,119,20,.10)}
.stamp-row .stamp-dot.reward-slot.filled{background:#fef3c7;border:2px solid #d97706;box-shadow:0 0 0 3px rgba(251,191,36,.14)}
.stamp-row .stamp-dot.reward-slot.goal-slot{background:#ffedd5;border:2px solid #ea580c}
.stamp-row .stamp-dot.reward-slot::after{content:attr(data-slot);position:absolute;bottom:-5px;right:-5px;min-width:15px;height:15px;display:grid;place-items:center;padding:0 2px;border-radius:50%;background:#111827;color:#fff;font-size:9px;line-height:1}
.reward-celebration-overlay{position:fixed;inset:0;z-index:550;display:grid;place-items:center;padding:18px;background:rgba(14,20,38,.68);backdrop-filter:blur(7px)}
.reward-celebration-dialog{position:relative;width:min(100%,420px);padding:33px 24px;text-align:center;background:#fff;border-radius:28px;box-shadow:0 26px 90px rgba(0,0,0,.26);animation:celebration-pop .55s cubic-bezier(.2,1.3,.4,1) both;overflow:hidden}
.reward-celebration-emoji{font-size:56px;line-height:1.3;display:block;margin:0 auto 8px}
.reward-celebration-dialog h2{font-size:29px;line-height:1.15;margin:8px 0 12px;color:#111827}
.reward-celebration-dialog p{font-size:14px;line-height:1.5;color:#667085;margin:0 0 20px}
.reward-celebration-names{display:block;color:#7c2d12;font-size:18px;font-weight:850;margin:8px 0}
.reward-celebration-dialog button{width:100%;border:0;border-radius:14px;padding:14px;background:var(--tenant,#111827);color:#fff;font-size:16px;font-weight:750;cursor:pointer}
.reward-confetti-piece{position:fixed;top:-30px;left:var(--x);z-index:551;pointer-events:none;width:var(--w);height:var(--h);border-radius:var(--r);background:var(--c);animation:celebration-fall var(--d) linear var(--delay) forwards;transform:rotate(var(--rotation))}
@keyframes celebration-pop{from{opacity:0;transform:translateY(35px) scale(.75)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes celebration-fall{from{top:-30px;transform:translateX(0) rotate(0)}to{top:110vh;transform:translateX(var(--drift)) rotate(var(--rotation))}}
@media(prefers-reduced-motion:reduce){.reward-celebration-dialog,.reward-confetti-piece{animation:none!important}.reward-confetti-piece{display:none}}

/* V1.9.9 · compartir invitaciones, legible en móviles. */
.referral-share-card{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.referral-share-symbol{font-size:30px;line-height:1}
.referral-share-card>b{font-size:17px;color:#182338}
.referral-share-card>small{font-size:12px;line-height:1.55;color:#64748b}
.referral-share-preview{white-space:pre-line;background:#f6f8fc;border:1px solid #e5eaf2;border-radius:13px;padding:14px;color:#334155;font-size:13px;line-height:1.55;margin:0}
.referral-share-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.referral-share-options[hidden]{display:none!important}
.referral-share-options>a,.referral-share-options>button{display:flex;align-items:center;justify-content:center;min-height:43px;border:1px solid #d7deea;border-radius:12px;background:#fff;padding:10px 7px;font-family:inherit;font-size:12px;font-weight:750;color:#24334d;text-decoration:none;cursor:pointer;text-align:center}
.referral-share-options>a:hover,.referral-share-options>button:hover{background:#eef3fb}
.referral-share-feedback{display:block;min-height:0;color:#475569;font-size:12px}
@media(max-width:380px){.referral-share-options{grid-template-columns:1fr}.referral-share-preview{font-size:12px;padding:12px}}

/* V1.9.10 · sellos personalizados, con regalos siempre destacados. */
.stamp-dot .stamp-glyph{display:grid;place-items:center;width:100%;height:100%;font-size:19px;line-height:1;overflow:hidden}
.stamp-dot .stamp-icon-image{display:block;width:24px;height:24px;object-fit:contain;border-radius:4px}
.stamp-dot:not(.filled):not(.reward-slot) .stamp-glyph{opacity:.35;filter:grayscale(1)}
.stamp-dot.filled:not(.reward-slot) .stamp-glyph{filter:none;opacity:1}
.stamp-dot.reward-slot .stamp-glyph{opacity:1;filter:none;font-size:20px}
.stamp-editor-preview{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:16px;margin:12px 0}
.stamp-editor-preview b,.stamp-editor-preview small{display:block}
.stamp-editor-preview small{color:#667085;font-size:12px;margin-top:3px}
.stamp-editor-preview .stamp-row{gap:9px;margin-top:15px}
.stamp-image-editor{padding:12px;border:1px dashed #d0d5dd;border-radius:14px}
.stamp-image-editor label{display:block;margin-bottom:9px}
[data-stamp-mode][hidden]{display:none!important}
@media(max-width:480px){.stamp-editor-preview{padding:12px}.stamp-row{gap:6px}}
.qr-stamp-form{margin-top:17px;padding-top:16px;border-top:1px solid #edf0f4}.qr-stamp-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.qr-stamp-heading strong{font-size:14px}.qr-stamp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.qr-stamp-choice{min-height:44px;border:1px solid #dce2ea;border-radius:12px;background:#fff;color:#111827;font-weight:850;cursor:pointer}.qr-stamp-choice:hover{border-color:#9aa5b4}.qr-stamp-choice.active{background:var(--tenant,#111827);border-color:var(--tenant,#111827);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--tenant,#111827) 18%,transparent)}.qr-stamp-help{font-size:12px;line-height:1.5;margin:12px 0 14px}.qr-award-summary{display:grid;gap:3px;background:#f8fafc;border:1px solid #e4e9ef;border-radius:15px;padding:13px 15px;margin-top:15px;text-align:center}.qr-award-summary span,.qr-award-summary small{color:#6b7280}.qr-award-summary span{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.qr-award-summary strong{font-size:22px}.qr-award-summary small{font-size:11px}.qr-active-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.qr-active-actions .btn{min-width:130px}
@media(max-width:420px){.qr-stamp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qr-active-actions{flex-direction:column}.qr-active-actions .btn{width:100%}}
