.sidebar{overflow-y:auto;overscroll-behavior:contain}.nav{flex:0 0 auto}.sidebar-foot{flex:0 0 auto}.button.compact{min-height:36px;padding:.5rem .7rem;font-size:.76rem}.danger-button{border:1px solid rgba(255,93,102,.35);background:rgba(255,93,102,.08);color:var(--red);border-radius:10px;padding:.55rem .7rem;font-weight:800;cursor:pointer}.card-actions,.campaign-actions{width:100%;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.card-actions form,.campaign-actions form{margin:0}.campaign-stack article{flex-wrap:wrap}.campaign-stack .grow{min-width:180px}.campaign-art{object-fit:cover;flex:0 0 auto}.campaign-actions{justify-content:flex-end}.preview-brand img{background:#fff;border-radius:10px;padding:3px}.stamp-entry{display:grid;justify-items:end;background:var(--company-primary);color:#111;border-radius:12px;padding:.45rem .7rem;line-height:1.15}.stamp-entry strong{font-size:.76rem}.stamp-entry small{font-size:.62rem;color:#111;opacity:.72}.greeting p{font-size:.68rem;letter-spacing:.16em;font-weight:850}.greeting h1{font-size:clamp(2rem,9vw,3.25rem);margin:.2rem 0 0}.stamp-grid .stamp-slot{aspect-ratio:1;border-radius:50%;background:var(--company-empty);color:#ffffff29;display:grid;place-items:center;font-size:1.2rem;border:1px solid #ffffff0b}.stamp-grid .stamp-slot.earned{background:var(--company-stamp);color:#111;box-shadow:0 5px 18px color-mix(in srgb,var(--company-stamp) 25%,transparent);animation:pop .4s ease}.promo-carousel{scroll-behavior:smooth}.promo-carousel article{min-width:calc(100% - 1.25rem);padding:0 0 1rem;overflow:hidden}.promo-carousel article>img{display:block;width:100%;height:210px;object-fit:cover;background:#222}.promo-carousel article h3,.promo-carousel article p,.promo-carousel article>a{margin-left:1rem;margin-right:1rem}.carousel-controls{display:flex;gap:.4rem}.carousel-controls button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:1.5rem;display:grid;place-items:center;cursor:pointer}.carousel-dots{display:flex;justify-content:center;gap:.4rem}.carousel-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#ffffff35}.carousel-dots button.active{width:22px;border-radius:8px;background:var(--company-primary)}.platform-notice{display:flex;gap:.8rem;align-items:flex-start;margin:0 0 1rem;background:linear-gradient(135deg,rgba(255,207,13,.14),rgba(242,91,41,.08));border:1px solid rgba(255,207,13,.3);border-radius:16px;padding:1rem}.platform-notice p{margin:0;color:#d5d5da}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.detail-list div{background:#1b1b1f;border-radius:12px;padding:.8rem}.detail-list small,.detail-list strong{display:block}.reset-link-box{padding:1rem;border:1px solid rgba(64,217,140,.3);background:rgba(64,217,140,.08);border-radius:14px;overflow-wrap:anywhere}.wallet-button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:780px){.sidebar{padding-bottom:calc(1.35rem + env(safe-area-inset-bottom));max-height:100dvh}.campaign-stack article{align-items:flex-start}.campaign-actions{justify-content:flex-start}.detail-list{grid-template-columns:1fr}}
.wallet-page,.program-wallet,.loyalty-card{max-width:100%;min-width:0;overflow-x:hidden}.stamp-grid{width:100%;max-width:100%;grid-template-columns:repeat(5,minmax(0,1fr))}.stamp-grid .stamp-slot{width:100%;min-width:0;max-width:100%;overflow:hidden}.promo-section{width:100%;max-width:100%;overflow:hidden}.promo-carousel{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;cursor:grab;touch-action:pan-y;overscroll-behavior-inline:contain}.promo-carousel:active{cursor:grabbing}.promo-carousel article{flex:0 0 calc(100% - 1.25rem);max-width:calc(100% - 1.25rem)}.install-help{width:min(430px,82vw);display:grid;gap:.7rem}.install-help h2,.install-help p{margin:0}
@media(max-width:430px){.wallet-page{padding-left:.75rem;padding-right:.75rem}.loyalty-card{padding:.85rem}.stamp-grid{gap:.35rem}.stamp-grid .stamp-slot{font-size:1rem}.wallet-head{gap:.55rem}.mobile-brand{min-width:0}.mobile-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stamp-entry{flex:0 0 auto}}
@media(max-width:780px){html,body{max-width:100%;overflow-x:hidden}.wallet-page>*{max-width:100%}}
.stamp-grid img,.stamp-preview img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.stamp-grid .stamp-slot.earned{padding:4px}.stamp-preview .filled{padding:3px;overflow:hidden}.personal-qr{margin-top:2rem;padding:1.25rem;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:24px}.personal-qr h2{margin-bottom:1rem}.personal-qr>strong{display:block;margin-top:.8rem}.personal-qr>p.muted{font-size:.78rem;margin:.25rem 0 1rem}.qr-with-logo{width:min(310px,88%);aspect-ratio:1;position:relative;margin:auto;background:#fff;padding:12px;border-radius:22px;box-shadow:0 18px 45px rgba(0,0,0,.3)}.qr-code{width:100%;height:100%;display:block}.qr-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:20%;height:20%;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;object-fit:contain}.download-card-button{background:var(--company-primary);color:#111}.live-stamp-toast{position:fixed;z-index:1000;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom));transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#17171b;color:#fff;border:1px solid rgba(255,207,13,.45);border-radius:999px;padding:.85rem 1.15rem;font-weight:850;box-shadow:0 18px 55px rgba(0,0,0,.5);transition:.25s;white-space:nowrap}.live-stamp-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:430px){.personal-qr{padding:1rem}.qr-with-logo{width:min(280px,94%)}.live-stamp-toast{max-width:calc(100vw - 1.5rem);white-space:normal;text-align:center}}
.customer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.customer-actions .button{width:100%;padding:.72rem .55rem;font-size:.78rem}@media(max-width:520px){.customer-actions{grid-template-columns:1fr}}
.history-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;margin-bottom:1rem}.usage-programs{display:grid;gap:.8rem}.usage-programs article{background:#1b1b1f;border-radius:14px;padding:.9rem}.usage-programs .panel-head{margin-bottom:.65rem}.usage-programs strong,.usage-programs small{display:block}.usage-section{margin-top:1rem}.usage-status{font-size:clamp(1.2rem,3vw,1.8rem)!important;text-transform:capitalize}@media(max-width:900px){.history-grid{grid-template-columns:1fr}}

/* Actualización visual de marca y Super Administrador */
.stamp-grid .stamp-slot.earned,.stamp-preview .filled{padding:0;overflow:hidden}.stamp-grid .stamp-slot.earned img,.stamp-preview .filled img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.stamp-entry{width:78px;min-width:78px;padding:0;background:transparent;gap:.2rem;justify-items:center}.stamp-entry img{display:block;width:72px;height:72px;object-fit:contain}.stamp-entry small{display:block;max-width:90px;text-align:center;color:var(--company-muted);font-size:.58rem;white-space:nowrap}
.winfido-pin-logo{width:100px;height:100px;padding:12px;background:#fff}.winfido-pin-logo img{width:100%;height:100%;object-fit:contain}
.brand{display:flex;justify-content:center}.brand img{width:100px;height:100px}.nav{margin-top:1.2rem}
.company-logo-100{width:100px;height:100px;object-fit:contain;background:#fff;border-radius:18px;padding:8px;flex:0 0 auto}.company-cell{display:flex;align-items:center;gap:.8rem;min-width:240px}.company-cell strong,.company-cell small{display:block}.superadmin-hero{align-items:center}.superadmin-hero>div:first-child{display:flex;align-items:center;gap:1.2rem}.superadmin-hero-image{width:110px;height:110px;object-fit:contain;flex:0 0 auto}
.company-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:1rem}.company-detail-heading{align-items:center}.company-detail-title{display:flex;align-items:center;gap:1rem;min-width:0}.company-detail-title h1{overflow-wrap:anywhere}.company-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-wrap:wrap}.company-detail-actions form{margin:0}.company-detail-stats{grid-template-columns:repeat(5,minmax(150px,1fr))}.detail-list strong{overflow-wrap:anywhere}.danger-button.button{background:rgba(255,93,102,.12);color:#ff8f96;border-color:rgba(255,93,102,.4)}
.company-preview-shell{max-width:640px;margin:0 auto}.preview-wallet{background:var(--preview-bg);color:var(--preview-text);padding:1.25rem;border-radius:28px;border:1px solid #ffffff20;box-shadow:var(--shadow)}.preview-wallet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.preview-wallet-brand{display:flex;align-items:center;gap:.7rem;min-width:0}.preview-wallet-brand img{width:54px;height:54px;object-fit:contain;background:#fff;border-radius:13px;padding:4px}.preview-promo{display:flex;overflow:auto;gap:.8rem;scroll-snap-type:x mandatory}.preview-promo article{flex:0 0 88%;scroll-snap-align:start;background:#111114;border:1px solid #ffffff18;border-radius:18px;overflow:hidden}.preview-promo img{width:100%;height:190px;object-fit:cover}.preview-promo h3,.preview-promo p{margin:.8rem 1rem}.preview-promo p{color:#aaa}
@media(max-width:1000px){.company-detail-grid{grid-template-columns:1fr}.company-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.superadmin-hero{align-items:flex-start}}
@media(max-width:700px){.company-detail-heading{align-items:stretch}.company-detail-title{align-items:flex-start}.company-detail-actions{justify-content:stretch}.company-detail-actions>*{flex:1 1 100%}.company-detail-actions .button{width:100%}.detail-list{grid-template-columns:1fr}.superadmin-hero>div:first-child{align-items:flex-start}.superadmin-hero-image{width:82px;height:82px}.company-logo-100{width:76px;height:76px}.stamp-entry{width:66px;min-width:66px}.stamp-entry img{width:60px;height:60px}}

/* Dashboard sin desplazamiento horizontal */
html,body,.app-shell,.main,.content-wrap{max-width:100%;overflow-x:hidden}.content-wrap>*{min-width:0}
.winfido-pin-logo{width:70px;height:70px;border-radius:50%;padding:0;background:transparent;overflow:hidden}.winfido-pin-logo img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.company-detail-grid>*{min-width:0}.company-report-filter{width:100%;min-width:0;overflow:hidden}.report-filter-form{display:grid;gap:1rem;width:100%;min-width:0}.report-filter-form label,.report-filter-form input{width:100%;min-width:0}.report-filter-form p{margin:0}
.company-batches-panel,.selected-batch-panel{margin-bottom:1rem}.batch-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.batch-actions form{margin:0}.batch-actions .danger-button:disabled{opacity:.42;cursor:not-allowed}.selected-batch-row td{background:rgba(255,207,13,.06)}
.superadmin-business-panel{margin-bottom:1rem}.business-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.business-overview-card{display:grid;gap:.85rem;min-width:0;padding:1rem;background:#1b1b1f;border:1px solid #28282e;border-radius:18px;color:inherit!important}.business-overview-card header{display:flex;align-items:center;gap:.7rem;min-width:0}.business-overview-card header img{width:54px;height:54px;object-fit:contain;background:#fff;padding:4px;border-radius:13px;flex:0 0 auto}.business-overview-card header strong,.business-overview-card header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-overview-card>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.business-overview-card>div span{min-width:0;padding:.6rem;background:#121215;border-radius:11px}.business-overview-card>div small,.business-overview-card>div strong{display:block}.business-overview-card>div small{font-size:.58rem;letter-spacing:.08em}.business-overview-card>div strong{font-size:1.15rem}.superadmin-live-section{margin-top:1rem}.superadmin-live-section .activity-panel{width:100%}.superadmin-live-section .timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.superadmin-live-section .timeline article{min-width:0;background:#1b1b1f;border:0;border-radius:14px;padding:.8rem}.superadmin-live-section .timeline article div{min-width:0}.superadmin-live-section .timeline p,.superadmin-live-section .timeline strong{overflow-wrap:anywhere}
.companies-dashboard{min-width:0}.company-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.company-dashboard-card{display:grid;gap:1rem;min-width:0;background:#1b1b1f;border:1px solid #2a2a30;border-radius:20px;padding:1rem}.company-dashboard-card>header{display:flex;align-items:center;gap:.8rem;min-width:0}.company-dashboard-card>header .grow{min-width:0}.company-dashboard-card h2,.company-dashboard-card p{margin:0}.company-dashboard-card h2,.company-dashboard-card header small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-contact-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.company-contact-summary span{min-width:0;background:#121215;border-radius:11px;padding:.65rem}.company-contact-summary .wide{grid-column:1/-1}.company-contact-summary small,.company-contact-summary strong{display:block}.company-contact-summary strong{font-size:.8rem;overflow-wrap:anywhere}.company-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.company-metric-grid span{min-width:0;background:#121215;border-radius:12px;padding:.7rem}.company-metric-grid small,.company-metric-grid strong,.company-metric-grid em{display:block}.company-metric-grid small{font-size:.58rem;letter-spacing:.08em}.company-metric-grid strong{font-size:1.35rem}.company-metric-grid em{font-size:.64rem;color:var(--muted);font-style:normal}.company-dashboard-card>footer{display:flex;justify-content:space-between;align-items:end;gap:.7rem;flex-wrap:wrap;border-top:1px solid #2a2a30;padding-top:.85rem}.company-primary-actions,.company-manage-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.company-manage-actions form{margin:0}.company-manage-actions select{min-width:125px;padding:.55rem .7rem}
@media(max-width:1150px){.business-overview-grid,.company-dashboard-grid{grid-template-columns:1fr}.superadmin-live-section .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.business-overview-card>div,.company-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.superadmin-live-section .timeline{grid-template-columns:1fr}.company-dashboard-card>header{align-items:flex-start}.company-dashboard-card>header .pill{margin-left:auto}.company-dashboard-card>footer,.company-primary-actions,.company-manage-actions{align-items:stretch;width:100%}.company-primary-actions>*{flex:1}.company-manage-actions>*{flex:1 1 100%}.company-manage-actions select,.company-manage-actions .button{width:100%}.company-contact-summary{grid-template-columns:1fr}.company-contact-summary .wide{grid-column:auto}.companies-dashboard .panel-head{align-items:stretch;flex-direction:column}}
.company-contact-dialog{width:min(760px,calc(100vw - 2rem));max-width:760px}.company-contact-form{width:100%;min-width:0}.company-contact-form .form-grid{min-width:0}.company-contact-form input{min-width:0}
@media(max-width:600px){.company-contact-dialog{width:calc(100vw - 1rem);padding:1rem}.company-contact-form .form-grid{grid-template-columns:1fr}.company-contact-form .span-2{grid-column:auto}}
.company-action-menu{position:relative;margin-left:auto}.company-action-menu summary{list-style:none;min-height:38px;padding:.55rem .8rem;border:1px solid var(--line);border-radius:11px;background:#242429;color:#fff;font-weight:800;font-size:.78rem;cursor:pointer;display:flex;align-items:center}.company-action-menu summary::-webkit-details-marker{display:none}.company-action-menu[open] summary{border-color:var(--yellow)}.company-action-menu>div{position:absolute;z-index:30;right:0;bottom:calc(100% + .45rem);width:220px;padding:.45rem;background:#101013;border:1px solid #33333a;border-radius:14px;box-shadow:0 20px 55px rgba(0,0,0,.55);display:grid}.company-action-menu a,.company-action-menu button{width:100%;min-height:38px;border:0;border-radius:9px;padding:.55rem .7rem;background:transparent;color:#e8e8eb;text-align:left;font:inherit;font-size:.78rem;font-weight:750;cursor:pointer}.company-action-menu a:hover,.company-action-menu button:hover{background:#27272c}.company-action-menu button.current{color:var(--green)}.company-action-menu button.delete{color:#ff8f96}.company-action-menu form{margin:0}.company-notification-dialog{width:min(600px,calc(100vw - 2rem));max-width:600px}.company-notification-dialog textarea{resize:vertical}.company-notification-dialog .form-grid{min-width:0}
@media(max-width:650px){.company-action-menu{width:100%;margin-left:0}.company-action-menu summary{justify-content:center;width:100%}.company-action-menu>div{position:fixed;left:1rem;right:1rem;bottom:1rem;width:auto}.company-notification-dialog{width:calc(100vw - 1rem);padding:1rem}.company-notification-dialog .form-grid{grid-template-columns:1fr}}

/* Línea gráfica WinFido 2026 · basada en la presentación oficial */
.app-body .alert.success{background:#e4f5e8;border:1px solid #9bcfaa;color:#185c39;font-weight:800;box-shadow:0 8px 22px rgba(24,92,57,.08)}
.app-body .alert.success::before{content:'✓';display:inline-grid;place-items:center;width:22px;height:22px;margin-right:.45rem;border-radius:50%;background:#23834d;color:#fff;font-size:.78rem;vertical-align:-2px}
.wallet-page .alert.success,.staff-page .alert.success{background:#e4f5e8;border-color:#9bcfaa;color:#185c39;font-weight:800}
.app-body{
    --bg:#f7efe1;
    --surface:#fffaf1;
    --surface-2:#efe5d6;
    --line:#e4d5c2;
    --text:#38261a;
    --muted:#7d6b5d;
    --yellow:#ffca0a;
    --orange:#ff582f;
    --green:#148b5c;
    --red:#d9434c;
    --radius:26px;
    --shadow:0 22px 60px rgba(78,48,27,.12);
    color-scheme:light;
    background:var(--bg);
    color:var(--text)
}
.app-body .app-shell,.app-body .main{background:var(--bg)}
.app-body h1,.app-body h2,.app-body h3{color:var(--text);font-weight:900}
.app-body h1{font-size:clamp(2.25rem,4vw,4.25rem);line-height:.98;letter-spacing:-.055em}
.app-body .eyebrow{color:var(--orange);letter-spacing:.12em}
.app-body .muted,.app-body small{color:var(--muted)}
.app-body input,.app-body textarea,.app-body select{background:#fffdf8;color:var(--text);border-color:var(--line);border-radius:15px}
.app-body input:focus,.app-body textarea:focus,.app-body select:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgba(255,88,47,.12)}
.app-body label{color:#5c4839}
.app-body .button{border-radius:999px;background:var(--orange);color:#fff;box-shadow:0 9px 22px rgba(255,88,47,.18)}
.app-body .button:hover{filter:brightness(1.03);box-shadow:0 13px 28px rgba(255,88,47,.24)}
.app-body .button.secondary{background:#fffaf2;color:var(--text);border-color:var(--line);box-shadow:none}
.app-body .danger-button{border-radius:999px;background:#fff0ef;color:var(--red);border-color:#f1c6c5}

.app-body .sidebar{width:264px;padding:1.15rem;background:#2d1e15;border:0;color:#fff;box-shadow:12px 0 35px rgba(45,30,21,.12)}
.app-body .brand{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;padding:.25rem .35rem;color:#fff}
.app-body .brand img{width:58px;height:58px;flex:0 0 auto;filter:drop-shadow(0 8px 16px rgba(0,0,0,.2))}
.app-body .brand span,.auth-brand span{display:grid;line-height:1}
.app-body .brand strong,.auth-brand strong{font-size:1.34rem;letter-spacing:-.04em}
.app-body .brand small,.auth-brand small{font-size:.53rem;letter-spacing:.16em;margin-top:.4rem;color:#ffd25b;font-weight:850}
.app-body .nav{gap:.28rem;margin-top:1.25rem}
.app-body .nav a{min-height:48px;padding:.55rem .68rem;border-radius:15px;color:#d7c9bf;font-weight:780}
.app-body .nav a span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.07)}
.app-body .nav a span img{width:29px;height:29px;object-fit:contain}
.app-body .nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.app-body .nav a.active{background:var(--yellow);color:#302016;box-shadow:0 10px 28px rgba(255,202,10,.18)}
.app-body .nav a.active span{background:rgba(255,255,255,.42)}
.app-body .sidebar-foot{border-color:rgba(255,255,255,.12)}
.app-body .sidebar-motto{display:flex;align-items:center;gap:.55rem;margin:0 0 .8rem;padding:.6rem;border-radius:18px;background:rgba(255,255,255,.07);overflow:hidden}
.app-body .sidebar-motto img{width:52px;height:58px;object-fit:contain;align-self:end}
.app-body .sidebar-motto span{display:grid;min-width:0}
.app-body .sidebar-motto strong{font-size:.72rem;color:#fff}
.app-body .sidebar-motto small{font-size:.58rem;line-height:1.35;color:#cbb9ad}
.app-body .user-chip strong{color:#fff;font-size:.8rem}
.app-body .user-chip small,.app-body .link-button{color:#cbb9ad}
.app-body .avatar{background:linear-gradient(145deg,var(--yellow),#ffae19);color:#392515}
.app-body .main{margin-left:264px}
.app-body .topbar{height:80px;padding:0 2.15rem;background:rgba(247,239,225,.88);border-color:var(--line);backdrop-filter:blur(18px)}
.app-body .topbar .icon-button{margin-left:auto}
.app-body .topbar .icon-button,.app-body .icon-button{background:#fff9ef;border-color:var(--line);border-radius:50%;color:var(--text)}
.app-body .topbar .icon-button img{width:28px;height:28px;object-fit:contain}
.app-body .content-wrap{padding:2.25rem;max-width:1540px}
.app-body .page-heading{position:relative;margin-bottom:1.7rem;padding:1.15rem 0 1.15rem 1.15rem;border-left:7px solid var(--yellow)}
.app-body .page-heading>div:first-child{min-width:0}
.app-body .page-heading p:last-child{color:var(--muted)}
.app-body .page-heading .superadmin-hero-image{width:112px;height:112px;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(75,45,23,.15))}
.app-body .superadmin-hero{min-height:196px;padding:1.25rem 1.5rem;border:0;border-radius:32px;background:linear-gradient(112deg,#ffca0a 0 68%,#ffb915 68%);overflow:hidden}
.app-body .superadmin-hero::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-70px;top:-115px;background:rgba(255,88,47,.88)}
.app-body .superadmin-hero>*{position:relative;z-index:1}
.app-body .superadmin-hero .eyebrow{color:#a43b21}
.app-body .superadmin-hero p:last-child{color:#5e411f}

.app-body .stat{position:relative;min-height:154px;padding:1.3rem 1.4rem;background:#fffaf1;border-color:var(--line);border-radius:24px;box-shadow:0 12px 38px rgba(75,45,23,.06);overflow:hidden}
.app-body .stat::after{content:"";position:absolute;width:58px;height:58px;border-radius:50%;right:-22px;bottom:-22px;background:rgba(255,202,10,.45)}
.app-body .stat:nth-child(3n)::after{background:rgba(255,88,47,.35)}
.app-body .stat.accent{background:var(--yellow);color:var(--text);border-color:transparent}
.app-body .stat span{color:#8a735f}
.app-body .stat strong{font-size:2.45rem;color:var(--text)}
.app-body .panel,.app-body .customer-card,.app-body .program-card,.app-body .member-card{background:#fffaf1;border-color:var(--line);border-radius:var(--radius);box-shadow:0 13px 38px rgba(75,45,23,.06)}
.app-body .panel-head a,.app-body .table-scroll a{color:#d84624}
.app-body .table-scroll th{color:#8a735f;border-color:var(--line)}
.app-body .table-scroll td{border-color:#eee3d4}
.app-body .table-scroll tbody tr:hover{background:#fff4df}
.app-body .search{background:#fffdf8;border-color:var(--line);border-radius:999px}
.app-body .filter-pills a{background:#fffaf1;border-color:var(--line);border-radius:999px}
.app-body .filter-pills a.active{background:var(--yellow);color:var(--text);border-color:var(--yellow)}
.app-body .pill{background:#eee3d4;color:#6d5848}
.app-body .pill.active,.app-body .pill.available{background:#e2f3e8;color:#167149}
.app-body .pill.suspended,.app-body .pill.lost{background:#ffe5e2;color:#b92f3b}
.app-body .timeline article,.app-body .customer-row,.app-body .campaign-stack article,.app-body .notice-stack article{border-color:var(--line)}
.app-body .timeline-icon{background:#fff0d3;color:#a73d22}
.app-body .customer-metrics span,.app-body .permission,.app-body .color-grid label,.app-body .usage-programs article{background:#f3e9da}
.app-body .reward-box{background:#fff0c0;border-color:#f2d56e}
.app-body .reward-box small{color:#ad4a26}
.app-body .program-foot{border-color:var(--line)}
.app-body .campaign-art{background:linear-gradient(145deg,var(--yellow),var(--orange))}
.app-body .notice-stats span{background:#f1e6d7}
.app-body .platform-notice{background:#fff0bc;border-color:#f1cb48;color:var(--text)}
.app-body .platform-notice>img{width:42px;height:42px;object-fit:contain}
.app-body .platform-notice p{color:#67513f}
.app-body .detail-list div,.app-body .business-overview-card,.app-body .company-dashboard-card{background:#fff8ed;border-color:var(--line)}
.app-body .business-overview-card>div span,.app-body .company-contact-summary span,.app-body .company-metric-grid span,.app-body .superadmin-live-section .timeline article{background:#f2e7d7}
.app-body .business-overview-card header img,.app-body .company-dashboard-card>header img{background:#fff;border:1px solid var(--line)}
.app-body .company-dashboard-card>footer{border-color:var(--line)}
.app-body .company-action-menu summary{background:#fffaf2;color:var(--text);border-color:var(--line);border-radius:999px}
.app-body .company-action-menu>div{background:#fffaf2;border-color:var(--line);box-shadow:0 20px 55px rgba(75,45,23,.2)}
.app-body .company-action-menu a,.app-body .company-action-menu button{color:var(--text)}
.app-body .company-action-menu a:hover,.app-body .company-action-menu button:hover{background:#f3e6d5}
.app-body .company-action-menu button.delete{color:var(--red)}
.card-reset-button{white-space:nowrap;font-size:.7rem!important;min-height:36px!important;padding:.5rem .7rem!important;color:#a43b21!important;border-color:#efc4b4!important;background:#fff1e9!important;box-shadow:none!important}
.card-reset-button:hover{background:#ffe1d4!important}
.app-body dialog{background:#fffaf1;color:var(--text);border-color:var(--line)}
.app-body dialog::backdrop{background:rgba(45,30,21,.66)}
.app-body .modal-close{background:#efe3d4;color:var(--text)}
.app-body .loyalty-preview{box-shadow:0 22px 55px rgba(75,45,23,.17)}
.app-body .reset-link-box{background:#e8f4eb;color:#235f43;border-color:#b7ddc3}

/* Acceso */
.auth-page{background:#f8f0e2;color:#38261a}
.auth-panel{position:relative;min-height:100vh;padding:2.5rem 5.5vw;overflow:hidden;background:#ff582f;color:#fff}
.auth-panel::before{content:"";position:absolute;width:min(48vw,640px);aspect-ratio:1;border-radius:50%;right:-12%;bottom:-22%;background:#ffca0a}
.auth-brand{position:relative;z-index:2;display:flex;align-items:center;gap:.7rem;width:max-content;color:#fff}
.auth-brand .auth-logo{width:100px;height:100px;filter:drop-shadow(0 14px 18px rgba(93,35,12,.2))}
.auth-brand-logo-only{line-height:0}
.auth-brand small{color:#ffdc75}
.auth-copy{position:relative;z-index:2;max-width:620px;margin:4vh 0 0}
.auth-copy .eyebrow{color:#ffe078}
.auth-copy h1{font-size:clamp(3.3rem,6vw,6.6rem);line-height:.88;max-width:780px;color:#fff;text-wrap:balance}
.auth-copy>p:last-child{max-width:560px;color:#fff;font-size:1.08rem}
.auth-character{position:absolute;z-index:1;right:2%;bottom:-3%;width:min(38vw,500px);height:min(58vh,620px);display:grid;place-items:end center}
.auth-character img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 24px 25px rgba(88,34,10,.22))}
.auth-form-wrap{background:#f8f0e2;padding:2.5rem}
.auth-form{width:min(440px,100%);gap:1.15rem}
.auth-form-heading{display:flex;align-items:center;gap:1rem;margin-bottom:.4rem}
.auth-form-heading>img{width:88px;height:88px;object-fit:contain;filter:drop-shadow(0 12px 15px rgba(75,45,23,.14))}
.auth-form-heading h2{font-size:2.35rem;color:#38261a}
.auth-form .eyebrow{color:#ff582f}
.auth-form label{color:#5f4b3b}
.auth-form input{background:#fffaf2;color:#38261a;border-color:#e4d5c2;border-radius:16px;min-height:52px}
.auth-form input:focus{border-color:#ff582f;box-shadow:0 0 0 4px rgba(255,88,47,.12)}
.auth-form .button{background:#ff582f;color:#fff;border-radius:999px;box-shadow:0 12px 26px rgba(255,88,47,.2)}
.auth-form .muted,.auth-form .form-note{color:#7d6b5d}
.auth-form .password-wrap button{color:#795f4c}

/* Experiencia pública de tarjeta */
.public-body{background:#211710}
.wallet-page{position:relative;background:radial-gradient(circle at 50% -5%,color-mix(in srgb,var(--company-primary) 24%,transparent),transparent 27%),#171719}
.wallet-head{padding-top:.25rem}
.wallet-head .mobile-brand img{background:#fff;border-radius:15px;padding:4px;width:52px;height:52px}
.wallet-head .mobile-brand strong{font-size:1.05rem}
.greeting{margin:2.2rem 0 1.1rem}
.loyalty-card{border-radius:32px;padding:1.4rem;box-shadow:0 26px 70px rgba(0,0,0,.34)}
.program-tabs button{border-radius:999px}
.stamp-grid .stamp-slot{box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.reward-box{border-radius:18px}
.promo-carousel article{border-radius:26px}
.personal-qr{position:relative;overflow:hidden;background:#fff6e7;color:#38261a;border:0;border-radius:32px;box-shadow:0 24px 65px rgba(0,0,0,.26)}
.personal-qr::before{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-55px;top:-55px;background:var(--company-primary);opacity:.22}
.personal-qr .eyebrow{color:#dd4d28}
.personal-qr .muted{color:#7d6b5d}
.qr-with-logo{border-radius:28px;box-shadow:0 16px 40px rgba(72,45,24,.14)}
.download-card-button{border-radius:999px}
.stamp-entry img{filter:drop-shadow(0 10px 14px rgba(0,0,0,.25))}
.mobile-page{background:#f8f0e2;color:#38261a}
.mobile-page .mobile-brand{color:#38261a}
.mobile-page .mobile-brand img{background:#fff;border-radius:14px;padding:4px}
.activation-card{position:relative;margin-top:3vh;padding:1.5rem;background:#fffaf1;color:#38261a;border-color:#eadbc8;box-shadow:0 22px 60px rgba(75,45,23,.11);overflow:hidden}
.activation-fido{position:relative;width:150px;height:128px;margin:0 auto .6rem;display:grid;place-items:center}
.activation-fido span{position:absolute;width:116px;height:116px;border-radius:50%;background:#ffca0a}
.activation-fido img{position:relative;width:142px;height:142px;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(75,45,23,.14))}
.activation-card .eyebrow{color:#ff582f}
.activation-card .muted,.mobile-page footer{color:#7d6b5d}
.activation-card label{color:#5f4b3b}
.activation-card input{background:#fff;color:#38261a;border-color:#e4d5c2}
.activation-card .button{background:#ff582f;color:#fff;border-radius:999px}

@media(max-height:820px) and (min-width:781px){.app-body .sidebar-motto{display:none}.app-body .nav{margin-top:.75rem}.app-body .nav a{min-height:43px}}
@media(max-width:1100px){.auth-character{opacity:.72;right:-6%}.auth-copy{margin-bottom:22vh}.app-body .superadmin-hero::after{right:-125px}}
@media(max-width:780px){
    .app-body .sidebar{width:min(286px,88vw);padding-bottom:calc(1rem + env(safe-area-inset-bottom))}
    .app-body .main{margin-left:0}
    .app-body .topbar{height:72px;padding:0 1rem}
    .app-body .menu-toggle{background:#fff8ed;color:var(--text);border-color:var(--line);border-radius:50%}
    .app-body .content-wrap{padding:1rem}
    .app-body .page-heading{padding:.7rem 0 .7rem .85rem;border-left-width:5px}
    .app-body .page-heading .superadmin-hero-image{width:82px;height:82px}
    .app-body .superadmin-hero{padding:1.1rem;border-left:0;min-height:auto}
    .app-body .superadmin-hero::after{width:170px;height:170px;right:-95px;top:-95px}
    .auth-page{display:block}
    .auth-panel{min-height:44vh;padding:1.25rem 1.3rem}
    .auth-panel::before{width:320px;right:-110px;bottom:-180px}
    .auth-brand .auth-logo{width:82px;height:82px}
    .auth-copy{margin:3vh 0 1rem;max-width:74%}
    .auth-copy h1{font-size:clamp(2.55rem,12vw,4rem)}
    .auth-copy>p:last-child{font-size:.9rem}
    .auth-character{width:42vw;height:30vh;right:-1%;bottom:-1%;opacity:1}
    .auth-form-wrap{padding:1.6rem 1.15rem 2.5rem}
    .auth-form-heading>img{width:72px;height:72px}
}
@media(max-width:520px){
    .app-body h1{font-size:2.3rem}
    .app-body .stat{min-height:126px;padding:1rem}
    .app-body .stat strong{font-size:1.9rem}
    .app-body .page-heading>div:first-child{align-items:flex-start}
    .app-body .page-heading .superadmin-hero-image{width:66px;height:66px}
    .auth-panel{min-height:42vh}
    .auth-copy{max-width:72%;margin-top:2.5vh}
    .auth-copy h1{font-size:2.55rem}
    .auth-copy>p:last-child{display:none}
    .auth-character{width:46vw;height:26vh;right:-5%}
    .auth-form-heading h2{font-size:2rem}
    .loyalty-card{padding:1rem;border-radius:26px}
    .personal-qr{padding:1rem;border-radius:26px}
}

/* Tarjeta del cliente · experiencia gráfica juguetona */
.wallet-page{
    --fido-cream:#fff6e7;
    --fido-brown:#38261a;
    --fido-yellow:#ffca0a;
    --fido-orange:#ff582f;
    background:
        radial-gradient(circle at 8% 10%,rgba(255,202,10,.13) 0 3px,transparent 4px),
        radial-gradient(circle at 92% 18%,rgba(255,88,47,.12) 0 4px,transparent 5px),
        radial-gradient(circle at 50% -5%,color-mix(in srgb,var(--company-primary) 24%,transparent),transparent 27%),
        #171719;
    background-size:44px 44px,58px 58px,auto,auto
}
.wallet-head{position:relative;z-index:2;padding:.55rem .65rem;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(18,18,20,.72);backdrop-filter:blur(14px)}
.wallet-head .mobile-brand strong{color:#fff}
.wallet-hero{position:relative;min-height:210px;margin:1rem 0 1.2rem;padding:1.35rem 1.45rem;display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;border-radius:32px;overflow:hidden;background:linear-gradient(125deg,var(--fido-orange) 0 64%,#ff6b35 64%);box-shadow:0 24px 60px rgba(0,0,0,.28)}
.wallet-hero::before{content:"";position:absolute;left:0;top:0;width:8px;height:100%;background:var(--company-primary)}
.wallet-hero::after{content:"";position:absolute;width:86px;height:86px;border-radius:50%;left:44%;bottom:-54px;background:rgba(255,202,10,.88)}
.wallet-hero-copy{position:relative;z-index:2;min-width:0}
.wallet-hero-copy p{margin:0;color:#ffe8a3;font-size:.68rem;letter-spacing:.14em;font-weight:900}
.wallet-hero-copy h1{max-width:100%;margin:.3rem 0 .55rem;color:#fff;font-size:clamp(2.25rem,9vw,4rem);line-height:.9;overflow-wrap:anywhere;text-wrap:balance}
.wallet-hero-copy span{display:block;max-width:270px;color:#fff1e9;font-size:.83rem;font-weight:700}
.wallet-hero-art{position:relative;align-self:stretch;display:grid;place-items:center;z-index:1}
.wallet-hero-art i{position:absolute;width:178px;height:178px;border-radius:50%;background:var(--fido-yellow)}
.wallet-hero-art img{position:relative;z-index:1;width:185px;height:185px;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(105,39,10,.24));transform:rotate(2deg)}
.program-tabs{gap:.55rem;margin-bottom:.15rem}
.program-tabs button{min-height:42px;background:#242428;border-color:#34343a;color:#cbcbd1;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.program-tabs button.active{background:var(--fido-yellow);border-color:var(--fido-yellow);color:var(--fido-brown);box-shadow:0 9px 22px rgba(255,202,10,.18)}
.loyalty-card{position:relative;isolation:isolate;overflow:hidden;border-top:6px solid var(--company-primary);box-shadow:0 28px 75px rgba(0,0,0,.38)}
.loyalty-card::before{content:"";position:absolute;z-index:-1;width:190px;height:190px;right:-115px;top:-115px;border-radius:50%;background:color-mix(in srgb,var(--company-primary) 24%,transparent)}
.loyalty-top h2{font-size:clamp(1.45rem,5vw,2rem)}
.loyalty-top>strong{min-width:66px;padding:.45rem .65rem;text-align:center;border-radius:16px;background:rgba(255,255,255,.1)}
.stamp-grid{gap:.55rem}
.stamp-grid .stamp-slot{border:2px dashed rgba(255,255,255,.13);background:color-mix(in srgb,var(--company-empty) 82%,#29292d);transition:transform .18s,box-shadow .18s}
.stamp-grid .stamp-slot:active{transform:scale(.94)}
.stamp-grid .stamp-slot.earned{border:3px solid rgba(255,255,255,.72);box-shadow:0 9px 22px color-mix(in srgb,var(--company-stamp) 32%,rgba(0,0,0,.24))}
.progress-track{height:11px;border:2px solid rgba(255,255,255,.06);background:rgba(255,255,255,.09)}
.progress-track i{background:linear-gradient(90deg,var(--company-progress),var(--fido-yellow));box-shadow:0 0 18px color-mix(in srgb,var(--company-progress) 50%,transparent)}
.progress-message{font-size:.86rem}
.playful-reward{position:relative;display:flex;align-items:center;gap:.85rem;padding:.75rem .9rem;background:linear-gradient(120deg,var(--fido-yellow),#ffd956);border:0;color:var(--fido-brown);box-shadow:0 12px 28px rgba(255,202,10,.15);overflow:hidden}
.playful-reward::after{content:"";position:absolute;width:70px;height:70px;right:-28px;bottom:-36px;border-radius:50%;background:rgba(255,88,47,.35)}
.playful-reward>img{position:relative;z-index:1;width:52px;height:52px;object-fit:contain;flex:0 0 auto}
.playful-reward>span{position:relative;z-index:1;display:grid;text-align:left}
.playful-reward small{color:#9f3d22!important;font-weight:900;letter-spacing:.13em}
.playful-reward strong{font-size:1rem;color:var(--fido-brown)}
.playful-section-title{min-height:98px;padding:.6rem .75rem .6rem .25rem;border-radius:25px;background:#282017;overflow:hidden}
.section-fido{display:flex;align-items:center;gap:.35rem;min-width:0}
.section-fido>img{width:92px;height:92px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 12px 14px rgba(0,0,0,.25))}
.section-fido h2{color:#fff;margin:0}
.section-fido .eyebrow{color:#ffca0a;margin-bottom:.25rem}
.carousel-controls{position:relative;z-index:2;flex:0 0 auto}
.carousel-controls button{background:var(--fido-orange);border:0;color:#fff;box-shadow:0 8px 18px rgba(255,88,47,.25)}
.promo-carousel{padding-top:.75rem}
.promo-carousel article{background:var(--fido-cream);color:var(--fido-brown);border:0;box-shadow:0 18px 40px rgba(0,0,0,.22)}
.promo-carousel article>img{height:235px}
.promo-carousel article h3{color:var(--fido-brown);font-size:1.25rem}
.promo-carousel article p{color:#7d6b5d}
.promo-carousel article>a{display:inline-flex;margin-top:.4rem;padding:.55rem .8rem;border-radius:999px;background:var(--fido-orange);color:#fff;font-size:.74rem}
.carousel-dots button{height:8px;background:#ffffff46}
.carousel-dots button.active{background:var(--fido-yellow)}
.qr-heading{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:.5rem;margin:0 auto .8rem;text-align:left}
.qr-heading>img{width:92px;height:92px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 11px 13px rgba(75,45,23,.15))}
.qr-heading p,.qr-heading h2{margin:0}
.qr-heading h2{max-width:260px;color:var(--fido-brown);font-size:1.45rem;line-height:1.05}
.personal-qr>strong{color:var(--fido-brown);font-size:1.1rem}
.wallet-actions .button,.download-card-button{border-radius:999px;box-shadow:0 11px 26px rgba(0,0,0,.14)}
.social-nav a{padding:.45rem .7rem;border-radius:999px;background:#242428}
.wallet-page>footer{padding:1rem;border-top:1px solid rgba(255,255,255,.08)}

@media(max-width:520px){
    .wallet-head{padding:.45rem .55rem;border-radius:19px}
    .wallet-hero{min-height:176px;grid-template-columns:minmax(0,1fr) 126px;padding:1.1rem 1rem 1.1rem 1.15rem;border-radius:27px}
    .wallet-hero-copy h1{font-size:clamp(2rem,10.5vw,3rem)}
    .wallet-hero-copy span{font-size:.72rem;max-width:205px}
    .wallet-hero-art i{width:130px;height:130px}
    .wallet-hero-art img{width:140px;height:140px}
    .stamp-grid{gap:.38rem}
    .stamp-grid .stamp-slot.earned{border-width:2px}
    .playful-section-title{min-height:84px;padding-right:.55rem}
    .section-fido>img{width:74px;height:74px}
    .section-fido h2{font-size:1.35rem}
    .carousel-controls button{width:33px;height:33px}
    .promo-carousel article>img{height:190px}
    .qr-heading{gap:.15rem}
    .qr-heading>img{width:78px;height:78px}
    .qr-heading h2{font-size:1.2rem}
}
@media(max-width:370px){
    .wallet-hero{grid-template-columns:minmax(0,1fr) 104px}
    .wallet-hero-art i{width:112px;height:112px}
    .wallet-hero-art img{width:122px;height:122px}
    .wallet-hero-copy h1{font-size:1.9rem}
    .section-fido>img{width:62px;height:62px}
}

/* Sellado del equipo dentro de la tarjeta del cliente */
.team-mode-chip{min-width:112px;max-width:150px;padding:.55rem .75rem;border-radius:15px;background:var(--fido-yellow);color:var(--fido-brown);text-align:right;box-shadow:0 10px 24px rgba(255,202,10,.18)}
.team-mode-chip strong,.team-mode-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-mode-chip strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.team-mode-chip small{color:#7b3d25;font-size:.65rem}
.team-card-hint{display:flex;align-items:center;gap:.8rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid rgba(255,202,10,.34);border-radius:20px;background:linear-gradient(135deg,rgba(255,202,10,.17),rgba(255,88,47,.1));color:#fff}
.team-card-hint img{width:52px;height:52px;object-fit:contain;flex:0 0 auto}
.team-card-hint strong{display:block;color:var(--fido-yellow)}
.team-card-hint p{margin:.15rem 0 0;color:#eee0d7;font-size:.78rem;line-height:1.35}
.wallet-page[data-team-mode="1"] .loyalty-card{border-color:color-mix(in srgb,var(--company-primary) 72%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--company-primary) 13%,transparent),0 28px 75px rgba(0,0,0,.38)}
.stamp-grid button.stamp-slot{appearance:none;padding:0;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.stamp-grid .team-stamp.tap-armed{transform:scale(.9);box-shadow:0 0 0 4px color-mix(in srgb,var(--company-primary) 38%,transparent)}
.stamp-grid .team-stamp.is-processing{opacity:.5;pointer-events:none}
.team-reward-action[hidden]{display:none}
.team-reward-action form{margin:0}
.team-reward-action .reward-button{margin-top:.8rem}
.live-stamp-toast.error{border-color:rgba(255,93,102,.65);background:#35191c}
@media(max-width:430px){
    .team-mode-chip{min-width:96px;max-width:116px;padding:.48rem .58rem}
    .team-card-hint{align-items:flex-start;padding:.75rem .8rem}
    .team-card-hint img{width:42px;height:42px}
    .team-card-hint p{font-size:.72rem}
}
