:root{--bg:#101315;--card:#191e20;--line:#303737;--green:#79d900;--yellow:#f4c400;--text:#fff;--muted:#aab3ad;--danger:#d62828}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
.app-shell{max-width:560px;margin:0 auto;padding:22px 18px 60px}.brand-card{display:flex;gap:12px;align-items:center;justify-content:center;margin:18px 0 28px}.brand-img{width:78px;height:78px;object-fit:cover;border-radius:50%;border:2px solid var(--green)}.brand-title,.brand-accent{font-size:1.65rem;font-weight:900;letter-spacing:.05em;line-height:1.05}.brand-accent{color:var(--green)}
h1{font-size:1.75rem;margin:0 0 20px;text-align:center}.lead{color:var(--muted);margin:-8px 0 22px;text-align:center}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:16px}.field{margin-bottom:14px}label{display:block;color:var(--green);font-weight:800;font-size:.88rem;margin-bottom:7px}input,select,textarea{width:100%;background:#121718;color:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 13px;font-size:1rem}textarea{min-height:90px;resize:vertical}.btn{width:100%;border:0;border-radius:12px;padding:15px 14px;font-size:1rem;font-weight:900;margin:7px 0;cursor:pointer;background:var(--green);color:#0b100c}.btn.yellow{background:var(--yellow)}.btn.ghost{background:transparent;color:var(--green);border:1px solid var(--green)}.btn.danger{background:var(--danger);color:white}.small{font-size:.86rem;color:var(--muted);text-align:center}.status{padding:12px;border-radius:12px;background:#121718;border:1px solid var(--line);margin:10px 0}.status strong{color:var(--yellow)}.back{display:inline-block;color:var(--green);font-weight:800;margin:0 0 16px;cursor:pointer}.grid{display:grid;gap:10px}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.receipt-preview{width:100%;max-height:320px;object-fit:contain;background:#fff;border-radius:12px;margin:12px 0}.success{border-color:var(--green)}.warning{border-color:var(--yellow)}.install-tip{font-size:.86rem;color:var(--muted);line-height:1.5;margin-top:22px;padding:14px;border:1px dashed var(--line);border-radius:12px}@media(max-width:480px){.row{grid-template-columns:1fr}.brand-title,.brand-accent{font-size:1.35rem}}

/* Admin + sesiones v2 */
button.back{background:transparent;border:0;padding:0;color:var(--green);font:inherit;font-weight:800;margin:0 0 16px;cursor:pointer}
.admin-note{font-size:.86rem;color:var(--muted);line-height:1.5;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#14191a}
.admin-note strong{color:var(--yellow)}
.admin-badge{display:table;margin:0 auto 12px;background:var(--yellow);color:#111;padding:7px 12px;border-radius:999px;font-size:.76rem;font-weight:900;letter-spacing:.06em}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 20px}
.stat-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px;text-align:center}.stat-card span{display:block;font-size:1.8rem;font-weight:900;color:var(--green)}.stat-card small{color:var(--muted)}
.status-summary{padding:12px 14px;border:1px solid var(--yellow);border-radius:12px;margin:0 0 16px;color:var(--text);background:#1a1912}.status-summary strong{color:var(--yellow)}
.section-title{font-size:1.05rem;color:var(--green);margin:22px 0 10px}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.card-top h3{margin-top:0}
.status-pill{display:inline-block;padding:6px 9px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.03em}.status-pill.pending{background:#3a3211;color:#ffe078}.status-pill.approved{background:#163317;color:#94f58e}.status-pill.rejected{background:#3c1717;color:#ff9898}
.card.pending{border-color:#6b5a14}.card.approved{border-color:#2d7930}.card.rejected{border-color:#8a2b2b}
.row-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.btn.compact{padding:11px 8px;font-size:.8rem;margin:0}.small.left{text-align:left}.field input[readonly]{opacity:.72;cursor:not-allowed}
@media(max-width:420px){.row-actions{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}}

/* Cloud + Face ID v3 */
.btn.disabled,.btn:disabled{opacity:.55;cursor:wait}.biometric-lock{text-align:center;padding:26px 0}.face-icon{font-size:4.8rem;margin:20px 0 12px}.card.warning{border-color:var(--yellow)}

.form-message{min-height:1.3em;margin:6px 2px 8px;font-size:.9rem;text-align:center}.form-message.info{color:var(--yellow)}.form-message.error{color:#ff7d7d;font-weight:700}.form-message.success{color:var(--green);font-weight:700}


/* v16 QR + Profesores + listas */
.app-credit{margin-top:22px;text-align:center;color:var(--yellow);font-weight:900;letter-spacing:.02em;padding:13px;border-top:1px solid var(--line)}
.professor-badge{display:table;margin:0 auto 12px;background:var(--green);color:#0b100c;padding:7px 12px;border-radius:999px;font-size:.76rem;font-weight:900;letter-spacing:.06em}
.qr-success-title{text-align:center;color:var(--yellow);font-size:1.25rem;font-weight:900;margin:4px 0 16px}.qr-card{text-align:center}.qr-card h2{margin:0 0 8px}.qr-code{width:294px;max-width:100%;min-height:294px;margin:18px auto;background:#fff;border-radius:16px;padding:12px;display:flex;align-items:center;justify-content:center}.qr-code img,.qr-code canvas{max-width:100%;height:auto!important}
.attendance-date-card{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:1px solid var(--line);color:#fff;border-radius:14px;padding:17px 15px;margin:10px 0;text-align:left;cursor:pointer}.attendance-date-card strong{color:var(--green);font-size:1rem}.attendance-date-card span{color:var(--muted);font-size:.85rem}.attendance-player{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.attendance-player h3{margin:0 0 5px}.attendance-player p{margin:4px 0}.attendance-number{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--green);color:#0b100c;font-weight:900}
.scanner-card{text-align:center}.qr-video{width:100%;aspect-ratio:3/4;max-height:520px;object-fit:cover;background:#050707;border-radius:14px;border:2px solid var(--green)}.scanner-status{margin:12px 0;padding:11px;border-radius:10px;background:#121718;color:var(--muted)}.scanner-status.info{color:var(--yellow)}.scanner-status.success{color:var(--green);font-weight:900;border:1px solid var(--green)}.scanner-status.warning{color:var(--yellow);border:1px solid var(--yellow)}.scanner-status.error{color:#ff7d7d;border:1px solid #8a2b2b}
.welcome-animation{position:fixed;inset:0;z-index:2147483647;background:rgba(5,8,8,.94);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .38s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.welcome-animation.show{opacity:1}.welcome-animation-inner{position:relative;text-align:center;transform:translateY(18px) scale(.78);opacity:.2;transition:transform .62s cubic-bezier(.2,.9,.2,1.18),opacity .45s ease;padding:36px 28px}.welcome-animation.show .welcome-animation-inner{transform:translateY(0) scale(1);opacity:1}.welcome-glow{position:absolute;left:50%;top:42%;width:190px;height:190px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(121,255,92,.22),rgba(121,255,92,0) 68%);animation:bbaPulse 1.15s ease-in-out infinite alternate}.welcome-logo{position:relative;width:116px;height:116px;object-fit:contain;background:#fff;border-radius:22px;padding:5px;animation:bbaBounce .58s ease-in-out infinite alternate;filter:drop-shadow(0 10px 18px rgba(0,0,0,.45))}.welcome-text{position:relative;font-size:2rem;font-weight:1000;color:#fff;margin-top:16px;letter-spacing:-.02em}.welcome-sub{position:relative;color:var(--green);font-weight:900;letter-spacing:.09em;margin-top:9px;font-size:.82rem}@keyframes bbaBounce{from{transform:translateY(0) rotate(-7deg)}to{transform:translateY(-18px) rotate(7deg)}}@keyframes bbaPulse{from{transform:translate(-50%,-50%) scale(.88);opacity:.55}to{transform:translate(-50%,-50%) scale(1.12);opacity:1}}
@media(max-width:420px){.qr-code{width:270px;min-height:270px}.welcome-text{font-size:1.65rem}}

/* v20 · Credenciales Padres solo para administradores */
.status-pill.overdue{background:#4b1515;color:#ffb0b0;border:1px solid #8a2b2b}.card.overdue{border-color:#b52f2f;background:linear-gradient(180deg,#241617,#191e20)}.monthly-alert{display:flex;flex-direction:column;gap:5px;padding:14px 15px;border:1px solid #d64040;border-radius:14px;margin:0 0 16px;background:#2b1517;color:#fff}.monthly-alert strong{color:#ff7777;font-size:1rem}.monthly-alert span{font-weight:800}.monthly-alert small{color:#ffc4c4}.monthly-overdue-text{color:#ff9b9b;font-weight:700;line-height:1.45}

/* v21 · Recuperación de contraseña administrada */
.parent-credential-card .field{margin-top:14px}.credential-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.password-result{margin-top:10px;line-height:1.55}.password-result code{display:inline-block;background:#0e1213;border:1px solid var(--line);border-radius:8px;padding:4px 7px;color:var(--yellow);font-size:.9rem;word-break:break-all}@media(max-width:420px){.credential-actions{grid-template-columns:1fr}}

.global-credit{margin:18px 0 8px;text-align:center;opacity:.82;font-size:.82rem;letter-spacing:.02em;}


/* v25 · identidad BUFALOBILL + patrocinadores + reportes */
.brand-img.main-logo{object-fit:contain;background:#fff;border-radius:18px;padding:4px;border:2px solid var(--green)}
.brand-img.legacy-logo{object-fit:cover;border-radius:50%;padding:0;background:transparent}
.global-footer{margin-top:42px;padding-top:20px;border-top:1px solid var(--line)}
.sponsors-title{text-align:center;color:var(--muted);font-size:.67rem;font-weight:900;letter-spacing:.18em;margin-bottom:11px}
.sponsors-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;align-items:center;justify-items:center;padding:6px 0}
.sponsors-grid img{display:block;width:100%;max-width:220px;height:92px;object-fit:contain;opacity:1;filter:drop-shadow(0 0 1px rgba(255,255,255,.95)) drop-shadow(0 0 3px rgba(255,255,255,.30));image-rendering:auto;}
.global-credit{margin-top:15px;text-align:center;color:var(--muted);font-size:.72rem}
.monthly-total-card{margin:22px 0 10px;border:1px solid var(--green);background:rgba(121,255,92,.06);border-radius:16px;padding:17px;text-align:center;display:flex;flex-direction:column;gap:5px}
.monthly-total-card span{font-size:.9rem;color:var(--muted);font-weight:800}.monthly-total-card strong{font-size:1.55rem;color:var(--green)}.monthly-total-card small{color:var(--muted);font-size:.76rem}
@media(max-width:480px){.sponsors-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px}.sponsors-grid img{max-width:158px;height:76px}.welcome-logo{width:104px;height:104px}.brand-title{font-size:1.2rem}.brand-accent{font-size:1rem}}

/* v31 WEB · Cuenta exclusiva de Contabilidad y descargas */
.accounting-badge{display:table;margin:0 auto 12px;background:var(--yellow);color:#111;padding:7px 12px;border-radius:999px;font-size:.74rem;font-weight:900;letter-spacing:.05em;text-align:center}
.accounting-master-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:18px}.accounting-grid{display:grid;grid-template-columns:1fr;gap:12px}.accounting-download-card{border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--card)}.accounting-section-title{background:#111718;color:#fff;border:1px solid var(--line);cursor:default;opacity:1!important}.accounting-download-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.accounting-download-actions .btn{margin:0}.accounting-master-actions .btn{margin:0}@media(max-width:420px){.accounting-download-actions{grid-template-columns:1fr}}
