/* ============================================
   Bingo Lysto — Premium Design System - style.css
   ============================================ */
:root {
    --primary-color: #6366f1;
    --secondary-color: #8b5cf6;
    --success-color: #10b981;
    --danger-color: #ef4444;   
    --warning-color: #f59e0b;
    --dark-color: #1f2937;
    --light-color: #f3f4f6;

    /* Extended palette */
    --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --success-gradient: linear-gradient(135deg, #10b981 0%, #059669 50%, #047857 100%);
    --warning-gradient: linear-gradient(135deg, #f59e0b 0%, #d97706 50%, #b45309 100%);
    --info-gradient: linear-gradient(135deg, #06b6d4 0%, #0891b2 50%, #0e7490 100%);
    --danger-gradient: linear-gradient(135deg, #ef4444 0%, #dc2626 50%, #b91c1c 100%);

    /* Glass */
    --glass-bg: rgba(255, 255, 255, 0.08);
    --glass-border: rgba(255, 255, 255, 0.15);
    --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
    --glass-blur: blur(16px);

    /* Transitions */
    --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-smooth: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-bounce: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ---------- Base ---------- */
body {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem !important;
    background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
    background-attachment: fixed;
    color: #e2e8f0;

    /* ✅ Footer siempre al fondo */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1 0 auto; /* ✅ Se estira para empujar el footer */
}

/* Animated background pattern */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(102, 126, 234, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 20%, rgba(118, 75, 162, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 80%, rgba(16, 185, 129, 0.08) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}

/* ── Dropdown z-index fix ─────────────────────────────────────────────── */
.navbar {
    position: relative;
    z-index: 1030; /* Bootstrap navbar default */
}

.navbar .dropdown {
    position: relative;
}

.navbar .dropdown-menu {
    /* Tu estilo actual + fixes */
    background: rgba(30, 41, 59, 0.95);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    padding: 0.5rem;

    /* ── FIXES CRÍTICOS ─────────────────────────────────────── */
    z-index: 1031 !important;   /* Mayor que el navbar */
    position: absolute !important;
    pointer-events: all !important;
}

/* Fix para desktop */
@media (min-width: 992px) {
    .navbar-expand-lg .navbar-nav .dropdown-menu {
        position: absolute !important;
        z-index: 1031 !important;
        margin-top: 0.5rem;
    }
}

.dropdown-item {
    color: #cbd5e1;
    border-radius: 8px;
    padding: 0.5rem 0.85rem;
    transition: all 0.15s ease;
    /* ── FIX ── */
    pointer-events: all !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center;
    width: 100%;
    background: transparent;
    border: none;
    text-align: left;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(99, 102, 241, 0.15) !important;
    color: #fff !important;
    text-decoration: none;
}

.dropdown-item:active {
    background: rgba(99, 102, 241, 0.25) !important;
    color: #fff !important;
}

/* ── Fix para button dentro de dropdown ──────────────────────────────── */
button.dropdown-item {
    appearance: none;
    -webkit-appearance: none;
}

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: rgba(255,255,255,0.03); }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #667eea, #764ba2);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #818cf8, #a78bfa); }

/* ---------- Animations ---------- */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes shimmer {
    0%   { background-position: -200% center; }
    100% { background-position: 200% center; }
}
@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 5px rgba(99,102,241,0.4); }
    50%      { box-shadow: 0 0 20px rgba(99,102,241,0.7); }
}
@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}
@keyframes badge-pop {
    0%   { transform: scale(0.5); opacity: 0; }
    60%  { transform: scale(1.15); }
    100% { transform: scale(1); opacity: 1; }
}

.animate-in {
    animation: fadeInUp 0.5s var(--transition-smooth) both;
}
.animate-in-delay-1 { animation-delay: 0.1s; }
.animate-in-delay-2 { animation-delay: 0.2s; }
.animate-in-delay-3 { animation-delay: 0.3s; }

/* ---------- Navbar (Glassmorphism) ---------- */
.navbar-glass {
    background: rgba(15, 23, 42, 0.75) !important;
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
    transition: background var(--transition-smooth);
}
.navbar-glass .navbar-brand {
    font-weight: 700;
    font-size: 1.5rem;
    background: linear-gradient(135deg, #818cf8, #c084fc);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.navbar-glass .nav-link {
    color: rgba(255, 255, 255, 0.75) !important;
    font-weight: 500;
    transition: all var(--transition-fast);
    border-radius: 8px;
    padding: 0.5rem 0.85rem !important;
    position: relative;
}
.navbar-glass .nav-link:hover,
.navbar-glass .nav-link.active {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.08);
}
.navbar-glass .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 60%;
    height: 2px;
    background: linear-gradient(90deg, #818cf8, #c084fc);
    border-radius: 1px;
    transition: transform var(--transition-smooth);
}
.navbar-glass .nav-link:hover::after { transform: translateX(-50%) scaleX(1); }

/* ---------- Cards — Glass ---------- */
.card {
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    background: rgba(30, 41, 59, 0.6);
    /*backdrop-filter: var(--glass-blur);*/
    -webkit-backdrop-filter: var(--glass-blur);
    box-shadow: var(--glass-shadow);
    transition: transform var(--transition-bounce), box-shadow var(--transition-smooth);
    animation: fadeInUp 0.5s var(--transition-smooth) both;
    color: #e2e8f0;
}
.card-header {
    border-bottom: 1px solid rgba(255,255,255,0.08);
    background: transparent !important;
    padding: 1rem 1.25rem;
}
.card-body { padding: 1.25rem; }

/* Card Glass helper (fully transparent look) */
.card-glass {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border);
}

/* ---------- Gradient Cards (Saldo, etc.) ---------- */
.card-gradient-primary {
    background: linear-gradient(135deg, #6366f1 0%, #818cf8 40%, #a78bfa 100%) !important;
    border: 1px solid rgba(129, 140, 248, 0.3);
    color: #fff !important;
}
.card-gradient-primary .card-body * { color: #fff !important; }
.card-gradient-primary:hover {
    box-shadow: 0 8px 30px rgba(99, 102, 241, 0.45);
}

.card-gradient-success {
    background: linear-gradient(135deg, #059669 0%, #10b981 40%, #34d399 100%) !important;
    border: 1px solid rgba(16, 185, 129, 0.3);
    color: #fff !important;
}
.card-gradient-success .card-body * { color: #fff !important; }
.card-gradient-success:hover {
    box-shadow: 0 8px 30px rgba(16, 185, 129, 0.45);
}

.card-gradient-warning {
    background: linear-gradient(135deg, #d97706 0%, #f59e0b 40%, #fbbf24 100%) !important;
    border: 1px solid rgba(245, 158, 11, 0.3);
    color: #fff !important;
}
.card-gradient-warning .card-body * { color: #fff !important; }
.card-gradient-warning:hover {
    box-shadow: 0 8px 30px rgba(245, 158, 11, 0.45);
}

.card-gradient-info {
    background: linear-gradient(135deg, #0891b2 0%, #06b6d4 40%, #22d3ee 100%) !important;
    border: 1px solid rgba(6, 182, 212, 0.3);
    color: #fff !important;
}
.card-gradient-info .card-body * { color: #fff !important; }
.card-gradient-info:hover {
    box-shadow: 0 8px 30px rgba(6, 182, 212, 0.45);
}

.card-gradient-danger {
    background: linear-gradient(135deg, #dc2626 0%, #ef4444 40%, #f87171 100%) !important;
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #fff !important;
}
.card-gradient-danger .card-body * { color: #fff !important; }
.card-gradient-danger:hover {
    box-shadow: 0 8px 30px rgba(239, 68, 68, 0.45);
}

/* Floating icon inside gradient cards */
.card-gradient-primary .fa-3x,
.card-gradient-success .fa-3x,
.card-gradient-warning .fa-3x,
.card-gradient-info .fa-3x {
    animation: float 3s ease-in-out infinite;
    opacity: 0.35 !important;
}

/* ---------- Cards Header Gradients ---------- */
.card-header-gradient-info {
    background: var(--info-gradient) !important;
    color: #fff;
    border-radius: 16px 16px 0 0 !important;
}
.card-header-gradient-success {
    background: var(--success-gradient) !important;
    color: #fff;
    border-radius: 16px 16px 0 0 !important;
}
.card-header-gradient-warning {
    background: var(--warning-gradient) !important;
    color: #fff;
    border-radius: 16px 16px 0 0 !important;
}
.card-header-gradient-primary {
    background: var(--primary-gradient) !important;
    color: #fff;
    border-radius: 16px 16px 0 0 !important;
}

/* ---------- Buttons ---------- */
.btn {
    border-radius: 10px;
    font-weight: 600;
    transition: all var(--transition-smooth);
    position: relative;
    overflow: hidden;
}

/* PRIMARY */
.btn-primary {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: none;
}
.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4);
}

/* SUCCESS */
.btn-success {
    background: var(--success-gradient);
    border: none;
    color: #fff;
}
.btn-success:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(16, 185, 129, 0.4);
}

/* WARNING */
.btn-warning {
    background: var(--warning-gradient);
    border: none;
    color: #fff;
}
.btn-warning:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(245, 158, 11, 0.4);
    color: #fff;
}

/* INFO */
.btn-info {
    background: var(--info-gradient);
    border: none;
    color: #fff;
}
.btn-info:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(6, 182, 212, 0.4);
    color: #fff;
}

/* SECONDARY */
.btn-secondary {
    background: linear-gradient(135deg, #475569 0%, #64748b 100%);
    border: none;
    color: #fff;
}
.btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(100, 116, 139, 0.4);
}

/* DANGER */
.btn-danger {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    border: none;
    color: #fff;
}
.btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(239, 68, 68, 0.4);
}

/* DARK */
.btn-dark {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    border: none;
    color: #fff;
}
.btn-dark:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(15, 23, 42, 0.4);
}

/* LIGHT */
.btn-light {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #1e293b;
}
.btn-light:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

/* OUTLINE BUTTONS */
.btn-outline-primary {
    border: 2px solid #667eea;
    color: #667eea;
    background: transparent;
}
.btn-outline-primary:hover {
    background: #667eea;
    color: #fff;
}

.btn-outline-success {
    border: 2px solid #10b981;
    color: #10b981;
}
.btn-outline-success:hover {
    background: #10b981;
    color: #fff;
}

.btn-outline-danger {
    border: 2px solid #ef4444;
    color: #ef4444;
}
.btn-outline-danger:hover {
    background: #ef4444;
    color: #fff;
}

.btn-outline-warning {
    border: 2px solid #f59e0b;
    color: #f59e0b;
}
.btn-outline-warning:hover {
    background: #f59e0b;
    color: #fff;
}

.btn-outline-info {
    border: 2px solid #06b6d4;
    color: #06b6d4;
}
.btn-outline-info:hover {
    background: #06b6d4;
    color: #fff;
}

/* LINK */
.btn-link {
    color: #667eea;
    font-weight: 600;
}
.btn-link:hover {
    text-decoration: underline;
    color: #764ba2;
}

/* Glow shimmer button */
.btn-glow {
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.btn:active {
    transform: scale(0.97);
}

.btn-glow::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 200%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255,255,255,0.15) 50%,
        transparent 100%
    );
    animation: shimmer 2.5s infinite;
    z-index: -1;
}

.btn-outline-primary {
    color: #818cf8;
    border-color: rgba(129, 140, 248, 0.4);
    background: transparent;
}
.btn-outline-primary:hover {
    background: rgba(99, 102, 241, 0.15);
    color: #a5b4fc;
    border-color: #818cf8;
    transform: translateY(-1px);
}

/* ---------- Forms ---------- */
.form-control, .form-select {
    border-radius: 10px;
    padding: 12px;
    background: rgba(30, 41, 59, 0.7);
    border: 2px solid rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
    transition: all var(--transition-smooth);
}
.form-control::placeholder { color: rgba(148, 163, 184, 0.6); }
.form-control:focus, .form-select:focus {
    background: rgba(30, 41, 59, 0.9);
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(99, 102, 241, 0.25), 0 0 20px rgba(99, 102, 241, 0.1);
    color: #f1f5f9;
}
.form-label {
    color: #cbd5e1;
    font-weight: 500;
    font-size: 0.9rem;
}
select.form-control option,
.form-select option {
    background: #1e293b;
    color: #e2e8f0;
}
.form-control:disabled {
    background: rgba(88, 104, 130, 0.7);
    border: 2px solid rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
    opacity: 1;
}

/* ---------- Tables ---------- */
.table {
    color: #e2e8f0 !important;
    --bs-table-bg: transparent;
    --bs-table-hover-bg: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.06);
}
.table thead th {
    border-bottom: 2px solid rgba(255, 255, 255, 0.1);
    color: #94a3b8 !important;
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0.85rem;
}
.table tbody tr {
    transition: all var(--transition-fast);
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.table tbody tr:hover {
    background: rgba(99, 102, 241, 0.08) !important;
    box-shadow: inset 3px 0 0 #6366f1;
}
.table tbody td, .table td {
    color: #e2e8f0 !important;
    padding: 0.85rem;
    vertical-align: middle;
}

/* ---------- Badges ---------- */
.badge {
    font-weight: 600;
    padding: 0.45em 0.85em;
    border-radius: 8px;
    font-size: 0.78rem;
    letter-spacing: 0.3px;
    animation: badge-pop 0.3s ease both;
}
.badge.bg-success { background: linear-gradient(135deg, #059669, #10b981) !important; }
.badge.bg-danger  { background: linear-gradient(135deg, #dc2626, #ef4444) !important; }
.badge.bg-warning { background: linear-gradient(135deg, #d97706, #f59e0b) !important; color: #fff !important; }
.badge.bg-primary { background: linear-gradient(135deg, #4f46e5, #6366f1) !important; }
.badge.bg-info    { background: linear-gradient(135deg, #0891b2, #06b6d4) !important; }

/* ---------- Alerts ---------- */
.alert {
    border-radius: 12px;
    border: none;
    backdrop-filter: blur(8px);
}
.alert-success {
    background: rgba(16, 185, 129, 0.15);
    color: #6ee7b7;
    border: 1px solid rgba(16, 185, 129, 0.25);
}
.alert-danger {
    background: rgba(239, 68, 68, 0.15);
    color: #fca5a5;
    border: 1px solid rgba(239, 68, 68, 0.25);
}
.alert-warning {
    background: rgba(245, 158, 11, 0.15);
    color: #fcd34d;
    border: 1px solid rgba(245, 158, 11, 0.25);
}
.alert-info {
    background: rgba(6, 182, 212, 0.15);
    color: #67e8f9;
    border: 1px solid rgba(6, 182, 212, 0.25);
}

/* ---------- Breadcrumbs ---------- */
.breadcrumb {
    background: transparent;
    padding: 0;
    margin-bottom: 0.5rem;
}
.breadcrumb-item a {
    color: #a5b4fc !important;
    text-decoration: none;
    transition: color var(--transition-fast);
}
.breadcrumb-item a:hover { color: #c7d2fe !important; }
.breadcrumb-item.active { color: rgba(255,255,255,0.6) !important; }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,0.3); }

/* ---------- List Groups ---------- */
.list-group-item {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.06);
    color: #e2e8f0;
    transition: all var(--transition-fast);
}
.list-group-item-action:hover {
    background: rgba(99, 102, 241, 0.1);
    color: #f1f5f9;
    border-color: rgba(99, 102, 241, 0.2);
}

/* ---------- Btn Group (Pill filter) ---------- */
.btn-group-pills {
    gap: 0.35rem;
}
.btn-group-pills .btn {
    border-radius: 50px !important;
    padding: 0.4rem 1rem;
    font-size: 0.875rem;
}

/* ---------- Page Headings ---------- */
.page-heading {
    color: #fff;
}
.page-heading .text-white-50,
.text-white-50 {
    color: rgba(203, 213, 225, 0.6) !important;
}
h1.text-white, h2.text-white, h3.text-white,
.h1.text-white, .h2.text-white, .h3.text-white {
    text-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

/* ---------- Footer ---------- */
.footer {
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    color: rgba(203, 213, 225, 0.7);
    padding: 20px 0;
    margin-top: auto;
}

/* ---------- Bingo Balls ---------- */
/*.bingo-ball {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 1.5rem;
    color: white;
    margin: 5px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3), inset 0 -3px 8px rgba(0,0,0,0.2);
    transition: transform var(--transition-bounce);
}
.bingo-ball:hover { transform: scale(1.15) rotate(10deg); }
.ball-b { background: linear-gradient(135deg, #ef4444, #f87171); }
.ball-i { background: linear-gradient(135deg, #3b82f6, #60a5fa); }
.ball-n { background: linear-gradient(135deg, #10b981, #34d399); }
.ball-g { background: linear-gradient(135deg, #f59e0b, #fbbf24); }
.ball-o { background: linear-gradient(135deg, #8b5cf6, #a78bfa); }*/

/* ---------- Stat Numbers ---------- */
.stat-number {
    font-size: 1.75rem;
    font-weight: 700;
    background: linear-gradient(135deg, #818cf8, #c084fc);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ---------- Modals ---------- */
.modal-content {
    background: rgba(30, 41, 59, 0.95);
    backdrop-filter: blur(20px);
    border: 0px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    color: #e2e8f0;
}
.modal-header {
    border-bottom: 1px solid rgba(255,255,255,0.08);
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
}
.modal-footer {
    border-top: 1px solid rgba(255,255,255,0.08);
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
}
.stat-number-success {
    background: linear-gradient(135deg, #34d399, #10b981);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.stat-number-warning {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ---------- Empty States ---------- */
.empty-state {
    padding: 3rem 1rem;
    text-align: center;
}
.empty-state i {
    color: rgba(148, 163, 184, 0.3);
    margin-bottom: 1rem;
    display: block;
}
.empty-state h4, .empty-state p {
    color: #64748b;
}

/* ---------- Text utilities ---------- */
.text-muted { color: #64748b !important; }
.text-success { color: #34d399 !important; }
.text-danger  { color: #f87171 !important; }
.text-warning { color: #fbbf24 !important; }
.text-info    { color: #22d3ee !important; }
.text-primary { color: #818cf8 !important; }

/* ---------- Toast notification styles ---------- */
#toast-container {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    pointer-events: none;
}
.toast-custom {
    min-width: 250px;
    margin-bottom: 0.5rem;
    pointer-events: auto;
}
.toast {
    border-radius: 12px !important;
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.1);
}
.toast-success { background-color: var(--success-color); color: #fff; }
.toast-info    { background-color: #0dcaf0; color: #000; }
.toast-warning { background-color: var(--warning-color); color: #000; }
.toast-danger  { background-color: var(--danger-color); color: #fff; }

/* ============================================
   LIGHT THEME
   ============================================ */
[data-theme="light"] {
    --glass-bg: rgba(255, 255, 255, 0.7);
    --glass-border: rgba(0, 0, 0, 0.08);
    --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

html[data-theme="light"] body::before {
    background:
        radial-gradient(ellipse at 20% 50%, rgba(102, 126, 234, 0.08) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 20%, rgba(118, 75, 162, 0.06) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 80%, rgba(16, 185, 129, 0.05) 0%, transparent 50%);
}

/* Scrollbar light */
html[data-theme="light"] ::-webkit-scrollbar-track { background: rgba(0,0,0,0.03); }
html[data-theme="light"] ::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #a5b4fc, #c4b5fd);
}

/* Navbar light */
html[data-theme="light"] .navbar-glass {
    background: rgba(255, 255, 255, 0.8) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
}
html[data-theme="light"] .navbar-glass .navbar-brand {
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
html[data-theme="light"] .navbar-glass .nav-link {
    color: #475569 !important;
}
html[data-theme="light"] .navbar-glass .nav-link:hover,
html[data-theme="light"] .navbar-glass .nav-link.active {
    color: #1e293b !important;
    background: rgba(0, 0, 0, 0.05);
}
html[data-theme="light"] .navbar-toggler-icon {
    filter: invert(1) grayscale(100%) brightness(0.5);
}

/* Cards light */
html[data-theme="light"] .card {
    background: rgba(255, 255, 255, 0.75);
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
    color: #1e293b;
}
html[data-theme="light"] .card-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
html[data-theme="light"] .card-glass {
    background: rgba(255, 255, 255, 0.5) !important;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

/* Forms light */
html[data-theme="light"] .form-control,
html[data-theme="light"] .form-select {
    background: rgba(255, 255, 255, 0.9);
    border: 2px solid #e2e8f0;
    color: #1e293b;
}
html[data-theme="light"] .form-control::placeholder { color: #94a3b8; }
html[data-theme="light"] .form-control:focus,
html[data-theme="light"] .form-select:focus {
    background: #fff;
    border-color: var(--primary-color);
    color: #0f172a;
}
html[data-theme="light"] .form-label { color: #475569; }
html[data-theme="light"] select.form-control option,
html[data-theme="light"] .form-select option {
    background: #fff;
    color: #1e293b;
}

/* Tables light */
html[data-theme="light"] .table {
    color: #1e293b !important;
}
html[data-theme="light"] .table thead th {
    color: #475569 !important;
    border-bottom-color: #e2e8f0;
}
html[data-theme="light"] .table tbody td,
html[data-theme="light"] .table td {
    color: #1e293b !important;
}
html[data-theme="light"] .table tbody tr {
    border-bottom-color: #f1f5f9;
}
html[data-theme="light"] .table tbody tr:hover {
    background: rgba(99, 102, 241, 0.06) !important;
}

html[data-theme="light"] .carton-card .table thead th {
    color: #e2e8f0 !important;
    border-bottom-color: #e2e8f0 !important;
    font-size: 1rem !important;
    font-weight: border !important;
}

html[data-theme="dark"] .carton-card .table thead th {
    color: #e2e8f0 !important;
    border-bottom-color: #e2e8f0 !important;
    font-size: 1rem !important;
    font-weight: border !important;
}

.carton-card .table tbody td, .table td {
    color: #e2e8f0 !important;
    font-size: 0.8rem !important;
    font-weight: bold !important;
}

/* Alerts light */
html[data-theme="light"] .alert-success {
    background: rgba(16, 185, 129, 0.1);
    color: #065f46;
    border-color: rgba(16, 185, 129, 0.2);
}
html[data-theme="light"] .alert-danger {
    background: rgba(239, 68, 68, 0.1);
    color: #991b1b;
    border-color: rgba(239, 68, 68, 0.2);
}
html[data-theme="light"] .alert-warning {
    background: rgba(245, 158, 11, 0.1);
    color: #92400e;
    border-color: rgba(245, 158, 11, 0.2);
}
html[data-theme="light"] .alert-info {
    background: rgba(6, 182, 212, 0.1);
    color: #155e75;
    border-color: rgba(6, 182, 212, 0.2);
}

/* Dropdowns light */
html[data-theme="light"] .dropdown-menu {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}
html[data-theme="light"] .dropdown-item { color: #334155; }
html[data-theme="light"] .dropdown-item:hover {
    background: rgba(99, 102, 241, 0.08);
    color: #1e293b;
}
html[data-theme="light"] .dropdown-item-text { color: #475569; }

/* List groups light */
html[data-theme="light"] .list-group-item {
    color: #1e293b;
    border-color: rgba(0, 0, 0, 0.06);
}
html[data-theme="light"] .list-group-item-action:hover {
    background: rgba(99, 102, 241, 0.06);
    color: #0f172a;
}

/* Footer light */
html[data-theme="light"] .footer {
    background: rgba(255, 255, 255, 0.6);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    color: #64748b;
}

/* Page headings light */
html[data-theme="light"] h1.text-white,
html[data-theme="light"] h2.text-white,
html[data-theme="light"] h3.text-white,
html[data-theme="light"] .h1.text-white,
html[data-theme="light"] .h2.text-white,
html[data-theme="light"] .h3.text-white {
    color: #1e293b !important;
    text-shadow: none;
}
html[data-theme="light"] .text-white-50 {
    color: #64748b !important;
}

/* Breadcrumb light */
html[data-theme="light"] .breadcrumb-item a { color: #4f46e5 !important; }
html[data-theme="light"] .breadcrumb-item a:hover { color: #3730a3 !important; }
html[data-theme="light"] .breadcrumb-item.active { color: #64748b !important; }
html[data-theme="light"] .breadcrumb-item + .breadcrumb-item::before { color: #94a3b8; }

/* Text utilities light */
html[data-theme="light"] .text-muted { color: #94a3b8 !important; }

/* Stat numbers light — keep gradient text */
html[data-theme="light"] .stat-number {
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    -webkit-background-clip: text; background-clip: text;
}

/* Toast light */
html[data-theme="light"] .toast {
    border: 1px solid rgba(0,0,0,0.08);
}

/* Modals light */
html[data-theme="light"] .modal-content {
    background: #ffffff;
    color: #1e293b;
    border: 0px solid rgba(0,0,0,0.1);
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}
html[data-theme="light"] .modal-header,
html[data-theme="light"] .modal-footer {
    border-color: rgba(0,0,0,0.08);
}

/* Btn close light */
html[data-theme="light"] .btn-close { filter: none; }

/* ============================================
   THEME TOGGLE BUTTON
   ============================================ */
.theme-toggle {
    background: none;
    border: 2px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-smooth);
    color: rgba(255,255,255,0.8);
    font-size: 1rem;
    padding: 0;
}
.theme-toggle:hover {
    border-color: rgba(255,255,255,0.5);
    transform: rotate(30deg) scale(1.1);
    color: #fff;
}
html[data-theme="light"] .theme-toggle {
    border-color: rgba(0,0,0,0.15);
    color: #f59e0b;
}
html[data-theme="light"] .theme-toggle:hover {
    border-color: rgba(0,0,0,0.3);
    color: #d97706;
}

/* ============================================
   BOTTOM NAV BAR
   ============================================ */
.bottom-nav-game {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1050;
    background: rgba(15, 23, 42, 0.85);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 -4px 30px rgba(0, 0, 0, 0.3);
    display: flex;
    justify-content: space-around;
    align-items: stretch;
    padding: 0rem 0 calc(0rem + env(safe-area-inset-bottom, 0px));
}

html[data-theme="light"] .bottom-nav-game {
    background: rgba(255, 255, 255, 0.9);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.06);
}

.bottom-nav-game-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.68rem;
    font-weight: 500;
    padding: 0.4rem 0.5rem;
    border-radius: 10px;
    transition: all var(--transition-fast);
    position: relative;
    min-width: 20%;
}
.bottom-nav-game-item i {
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
    margin-top: 0.5rem;
    transition: transform var(--transition-bounce);
}
.bottom-nav-game-item:hover,
.bottom-nav-game-item.active {
    color: #a5b4fc;
}
.bottom-nav-game-item.active {
    color: #818cf8;
}
.bottom-nav-game-item.active i {
    transform: translateY(-2px) scale(1.15);
}
.bottom-nav-game-item.active::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #818cf8, #c084fc);
}

/* Bottom nav light */
html[data-theme="light"] .bottom-nav-game-item {
    color: #94a3b8;
}
html[data-theme="light"] .bottom-nav-game-item:hover,
html[data-theme="light"] .bottom-nav-game-item.active {
    color: #4f46e5;
}


/* Hide bottom nav on desktop */
@media (min-width: 769px) {
    .bottom-nav-game { display: none; }
}

/* ============================================
   MOBILE SIDEBAR
   ============================================ */
.sidebar-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    z-index: 1090;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-smooth);
}
.sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
}

.mobile-sidebar {
    position: fixed;
    top: 0;
    right: -300px;
    width: 280px;
    height: 100vh;
    background: rgba(15, 23, 42, 0.97);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    z-index: 1100;
    transition: right var(--transition-smooth);
    display: flex;
    flex-direction: column;
    box-shadow: -5px 0 30px rgba(0, 0, 0, 0.4);
    overflow-y: auto;
}
.mobile-sidebar.active {
    right: 0;
}

html[data-theme="light"] .mobile-sidebar {
    background: rgba(255, 255, 255, 0.97);
    box-shadow: -5px 0 30px rgba(0, 0, 0, 0.1);
}

/* Sidebar header - logo */
.sidebar-header {
    padding: .7rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    text-align: center;
}
html[data-theme="light"] .sidebar-header {
    border-bottom-color: rgba(0,0,0,0.06);
}
.sidebar-header .sidebar-brand {
    font-size: 1.5rem;
    font-weight: 700;
    background: linear-gradient(135deg, #818cf8, #c084fc);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-decoration: none;
}
.sidebar-close {
    position: fixed;
    top: 0.1rem;
    right: 0.4rem;
    background: none;
    border: none;
    color: rgba(255,255,255,0.5);
    font-size: 1rem;
    cursor: pointer;
    transition: all var(--transition-fast);
    padding: 0.3rem;
}
.sidebar-close:hover { color: #fff; transform: scale(1.2); }
html[data-theme="light"] .sidebar-close { color: #94a3b8; }
html[data-theme="light"] .sidebar-close:hover { color: #1e293b; }

/* Sidebar nav links */
.sidebar-nav {
    flex: 1;
    padding: 1rem 0.75rem;
    list-style: none;
    margin: 0;
}
.sidebar-nav-item {
    margin-bottom: 0.25rem;
}
.sidebar-nav-link {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1rem;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    border-radius: 12px;
    transition: all var(--transition-fast);
}
.sidebar-nav-link:hover {
    background: rgba(255,255,255,0.06);
    color: #fff;
}
.sidebar-nav-link.active {
    background: rgba(99, 102, 241, 0.15);
    color: #a5b4fc;
}
.sidebar-nav-link i {
    width: 24px;
    text-align: center;
    font-size: 1.1rem;
}

html[data-theme="light"] .sidebar-nav-link { color: #475569; }
html[data-theme="light"] .sidebar-nav-link:hover { background: rgba(0,0,0,0.04); color: #1e293b; }
html[data-theme="light"] .sidebar-nav-link.active { background: rgba(99,102,241,0.1); color: #4f46e5; }

/* Sidebar footer - user info + actions */
.sidebar-footer {
    padding: 1rem 1.25rem;
    border-top: 1px solid rgba(255,255,255,0.06);
}
html[data-theme="light"] .sidebar-footer { border-top-color: rgba(0,0,0,0.06); }

.sidebar-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
    background: rgba(255,255,255,0.04);
    border-radius: 12px;
    text-decoration: none;
}
html[data-theme="light"] .sidebar-user { background: rgba(0,0,0,0.03); }

.avatar-wrapper {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto;
    cursor: pointer;
}

.profile-avatar {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: linear-gradient(135deg, #6366f1, #a78bfa);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    font-size: 2.8rem;
    overflow: hidden;
    border: 3px solid rgba(99,102,241,0.4);
    transition: border-color 0.2s;
}

.avatar-wrapper:hover .profile-avatar {
    border-color: rgba(99,102,241,0.8);
}

.profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.avatar-verified-badge {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    pointer-events: auto;
    cursor: default;
    box-shadow: 0 2px 8px rgba(16,185,129,0.4);
    animation: badgePop 0.5s cubic-bezier(0.34,1.56,0.64,1) both;
}

@keyframes badgePop {
    0%   { transform: scale(0) rotate(-30deg); opacity: 0; }
    60%  { transform: scale(1.2) rotate(5deg); }
    100% { transform: scale(1)   rotate(0deg); opacity: 1; }
}

/* ── Tooltip ── */
.avatar-verified-badge::after {
    content: 'Cuenta verificada';
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.95);
    color: #f1f5f9;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
    padding: 5px 10px;
    border-radius: 8px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s, transform 0.2s;
    font-family: 'Poppins', sans-serif;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    transform: translateX(-50%) translateY(4px);
}
.avatar-verified-badge:hover::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.avatar-verified-badge:hover::before {
    opacity: 1;
}
.avatar-trash-btn {
    position: absolute;
    bottom: 4px;
    left: 8px;           /* ← izquierda para no chocar con la cámara */
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    cursor: pointer;
    transition: transform 0.2s;
}
.avatar-trash-btn:hover {
    transform: scale(1.15);
}
.avatar-trash-btn i {
    font-size: 1rem;
    color: #acacac;
    pointer-events: none; /* ← importante */
}

/* ── Overlay oscuro al hover ── */
.avatar-overlay {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0,0,0,0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.25s;
    z-index: 5;
    pointer-events: none;
}
.avatar-wrapper:hover .avatar-overlay {
    opacity: 1;
}
.avatar-overlay i {
    color: #fff;
    font-size: 1.6rem;
}

/* ── Spinner ── */
.avatar-loading {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0,0,0,0.55);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 20;
}
.avatar-loading.active {
    display: flex;
}

/* ── Botones de acción ── */
.avatar-actions {
    display: flex;
    gap: 0.4rem;
    justify-content: center;
    margin-top: 0.75rem;
    flex-wrap: wrap;
    min-height: 36px;
}

/* ── Hint texto ── */
.avatar-hint {
    font-size: 0.72rem;
    color: rgba(148,163,184,0.7);
    margin-top: 0.35rem;
    text-align: center;
}
.sidebar-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, #6366f1, #a78bfa);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    font-size: 0.9rem;
    flex-shrink: 0;
}
.sidebar-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}
.sidebar-avatar img:hover {
    transform: scale(1.05);
    transition: 0.2s ease;
}
.sidebar-user-name {
    font-weight: 600;
    color: #e2e8f0;
    font-size: 0.9rem;
}
html[data-theme="light"] .sidebar-user-name { color: #1e293b; }

.sidebar-user-role {
    font-size: 0.75rem;
    color: #818cf8;
}

.sidebar-actions {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}
.sidebar-action-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.85rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: rgba(255,255,255,0.6);
    background: none;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
    flex: 1;
    justify-content: center;
}
.sidebar-action-btn:hover {
    border-color: rgba(255,255,255,0.2);
    color: #fff;
}
html[data-theme="light"] .sidebar-action-btn {
    color: #64748b;
    border-color: rgba(0,0,0,0.1);
}
html[data-theme="light"] .sidebar-action-btn:hover {
    border-color: rgba(0,0,0,0.2);
    color: #1e293b;
}

/* Mobile header bar - hamburger button */
.mobile-menu-btn {
    background: none;
    border: none;
    color: rgba(255,255,255,0.8);
    font-size: 1.25rem;
    cursor: pointer;
    padding: 0.4rem;
    transition: all var(--transition-fast);
}
.mobile-menu-btn:hover { color: #fff; }
html[data-theme="light"] .mobile-menu-btn { color: #475569; }
html[data-theme="light"] .mobile-menu-btn:hover { color: #1e293b; }

/* ============================================
   TEXT COLOR FIXES (both themes)
   ============================================ */
/* Dark mode text fixes */
.card-title { color: #e2e8f0; }
.card-body strong { color: #f1f5f9; }
.card-body small { color: rgba(255,255,255,0.65); }
.card-header h5 { color: #f1f5f9; }

/* Light mode text fixes */
html[data-theme="light"] .card-title { color: #1e293b; }
html[data-theme="light"] .card-body strong { color: #0f172a; }
html[data-theme="light"] .card-body small { color: #64748b; }
html[data-theme="light"] .card-header h5 { color: #1e293b; }
html[data-theme="light"] .table tbody td strong { color: #0f172a; }
html[data-theme="light"] .badge.bg-warning { color: #fff !important; }

/* Gradient card headers keep white in both modes */
.card-header-gradient-info h5,
.card-header-gradient-success h5,
.card-header-gradient-warning h5,
.card-header-gradient-primary h5 {
    color: #fff !important;
}

/* Fix btn-close visibility in dark mode */
.btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: 0.5;
}
.btn-close:hover { opacity: 0.8; }
html[data-theme="light"] .btn-close {
    filter: none;
    opacity: 0.5;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .card { border-radius: 12px; }
    .card-title { font-size: 1.1rem; }
    .card-body { font-size: 0.9rem; }
    .card-body h2.stat-number { font-size: 1.8rem; }
    .btn { font-size: 0.85rem; padding: 0.4rem 0.8rem; }
    .btn-glow::before { display: none; }
    body { font-size: 0.9rem; }
}

@media (max-width: 991px) {
    .navbar-glass .navbar-collapse { display: none !important; }
    .navbar-glass .navbar-toggler { display: none; }
}

.hidden {
    display: none !important;
}

/* Modal Bottom Sheet (Global Mobile) */
@media (max-width: 768px) {
    .modal-bottom-sheet .modal-dialog {
        position: fixed;
        margin: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        max-width: 100%;
        bottom: 0;
        align-items: flex-end;
        display: flex;
    }
    .modal-bottom-sheet .modal-content {
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        border-top-left-radius: 24px !important;
        border-top-right-radius: 24px !important;
        max-height: 85vh;
        overflow-y: auto;
    }
}

/* Desktop (derecha arriba) */
#toast-container{
    top:20px;
    right:20px;
}

/* Mobile */
@media (max-width:576px){

    #toast-container{
        top:20px;
        left:50%;
        right:auto;
        transform:translateX(-50%);
        width:90%;
    }

    #toast-container .toast{
        width:100%;
    }

}

/* Floating Circular Deposit Button */
.bottom-nav-game-item.deposit-btn-float {
    position: relative;
    top: -20px;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: #fff !important;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-shadow: 0 8px 20px rgba(16, 185, 129, 0.4);
    border: 4px solid var(--card-bg); /* Match the background of the bottom nav */
    z-index: 1000;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.bottom-nav-game-item.deposit-btn-float i {
    margin-bottom: 2px;
    font-size: 1.4rem;
}

.bottom-nav-game-item.deposit-btn-float span {
    font-size: 0.65rem;
    font-weight: 600;
}

.bottom-nav-game-item.deposit-btn-float:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(16, 185, 129, 0.6);
}

.bottom-nav-game-item.deposit-btn-float:active {
    transform: translateY(2px);
    box-shadow: 0 5px 10px rgba(16, 185, 129, 0.4);
}

.form-control.is-invalid, .was-validated .form-control:invalid {
    background-image: none !important;
    padding-right: .75rem;
}

/* Wrapper de bolas */
.bolas-wrapper {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 2.5px;
    transition: all 0.5s ease;
}

/* Contenedor de cada bola */
.bola-container {
    position: relative;
    width: 150px;
    height: 150px;
    perspective: 1000px;
}

/* Tamaños específicos (1 pulgada = 96px en pantalla) */
.size-1 .bola-container {
    width: 96px;
    height: 96px;
}

.size-2 .bola-container {
    width: 120px;
    height: 120px;
}

.size-3 .bola-container {
    width: 144px;
    height: 144px;
}

.size-4 .bola-container {
    width: 168px;
    height: 168px;
}

.size-5 .bola-container {
    width: 192px;
    height: 192px;
}

.size-6 .bola-container {
    width: 216px;
    height: 216px;
}

.size-7 .bola-container {
    width: 240px;
    height: 240px;
}

.size-8 .bola-container {
    width: 264px;
    height: 264px;
}

.size-9 .bola-container {
    width: 288px;
    height: 288px;
}

.size-10 .bola-container {
    width: 312px;
    height: 312px;
}

/* Bola principal 3D */
.bola {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    cursor: pointer;
    overflow: hidden;
}

/* Efecto hover - bola se eleva y escala */
.size-15 .bola:hover {
    transform: translateY(-2px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 1.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-25 .bola:hover {
    transform: translateY(-2px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 1.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-35 .bola:hover {
    transform: translateY(-4px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 2.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-45 .bola:hover {
    transform: translateY(-4px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 2.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-55 .bola:hover {
    transform: translateY(-4px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 2.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-65 .bola:hover {
    transform: translateY(-6px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 3.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-75 .bola:hover {
    transform: translateY(-6px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 3.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-85 .bola:hover {
    transform: translateY(-6px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 3.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-95 .bola:hover {
    transform: translateY(-8px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 4.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-105 .bola:hover {
    transform: translateY(-8px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 4.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-115 .bola:hover {
    transform: translateY(-8px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 4.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-125 .bola:hover {
    transform: translateY(-10px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 5.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-135 .bola:hover {
    transform: translateY(-10px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 5.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-145 .bola:hover {
    transform: translateY(-10px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 5.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-155 .bola:hover {
    transform: translateY(-12px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 6.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-165 .bola:hover {
    transform: translateY(-12px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 6.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-175 .bola:hover {
    transform: translateY(-12px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 6.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-185 .bola:hover {
    transform: translateY(-14px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 7.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-195 .bola:hover {
    transform: translateY(-14px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 7.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-205 .bola:hover {
    transform: translateY(-14px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 7.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-215 .bola:hover {
    transform: translateY(-16px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 8.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-225 .bola:hover {
    transform: translateY(-16px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 8.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-235 .bola:hover {
    transform: translateY(-16px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 8.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-245 .bola:hover {
    transform: translateY(-18px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 9.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-255 .bola:hover {
    transform: translateY(-18px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 9.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-265 .bola:hover {
    transform: translateY(-18px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 9.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-275 .bola:hover {
    transform: translateY(-20px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 10.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-285 .bola:hover {
    transform: translateY(-20px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 10.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-295 .bola:hover {
    transform: translateY(-20px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 10.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}
.size-300 .bola:hover {
    transform: translateY(-20px) scale(1.1);
    box-shadow: 
        0 40px 60px rgba(0, 0, 0, 0.5),
        0 0 0 10.5px rgba(255, 255, 255, 0.4),
        inset -25px -25px 50px rgba(0, 0, 0, 0.3),
        inset 15px 15px 40px rgba(255, 255, 255, 0.5);
}

/* Brillo principal */
.bola::before {
    content: '';
    position: absolute;
    top: 10%;
    left: 15%;
    width: 35%;
    height: 25%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.1) 100%);
    border-radius: 50%;
    transform: rotate(-30deg);
    filter: blur(3px);
    transition: all 0.4s ease;
}

.bola:hover::before {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.2) 100%);
    width: 40%;
    height: 30%;
    filter: blur(2px);
}

/* Segundo brillo */
.bola::after {
    content: '';
    position: absolute;
    bottom: 15%;
    right: 10%;
    width: 20%;
    height: 15%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.4) 0%, transparent 70%);
    border-radius: 50%;
    filter: blur(5px);
    transition: all 0.4s ease;
}

.bola:hover::after {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.6) 0%, transparent 70%);
    width: 25%;
    height: 20%;
}

/* Círculo central blanco */
.circulo-central {
    position: relative;
    border-radius: 50%;
    background: linear-gradient(145deg, #ffffff, #f0f0f0);
    box-shadow: 
        0 5px 15px rgba(0, 0, 0, 0.3),
        inset -3px -3px 10px rgba(0, 0, 0, 0.1),
        inset 2px 2px 5px rgba(255, 255, 255, 0.8);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 2;
    transition: all 0.4s ease;
}

.size-1 .circulo-central { width: 45px; height: 45px; }
.size-2 .circulo-central { width: 56px; height: 56px; }
.size-3 .circulo-central { width: 67px; height: 67px; }
.size-4 .circulo-central { width: 78px; height: 78px; }
.size-5 .circulo-central { width: 90px; height: 90px; }
.size-6 .circulo-central { width: 101px; height: 101px; }
.size-7 .circulo-central { width: 112px; height: 112px; }
.size-8 .circulo-central { width: 123px; height: 123px; }
.size-9 .circulo-central { width: 134px; height: 134px; }
.size-10 .circulo-central { width: 145px; height: 145px; }

.bola:hover .circulo-central {
    transform: scale(1.1);
    box-shadow: 
        0 8px 20px rgba(0, 0, 0, 0.4),
        inset -4px -4px 10px rgba(0, 0, 0, 0.1),
        inset 3px 3px 7px rgba(255, 255, 255, 0.9);
}

/* Letra superior */
.letra {
    font-size: 14px;
    font-weight: bold;
    color: #333;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
    transition: all 0.4s ease;
}

.size-1 .letra { font-size: 10px; }
.size-2 .letra { font-size: 12px; }
.size-3 .letra { font-size: 14px; }
.size-4 .letra { font-size: 16px; }
.size-5 .letra { font-size: 18px; }
.size-6 .letra { font-size: 20px; }
.size-7 .letra { font-size: 22px; }
.size-8 .letra { font-size: 24px; }
.size-9 .letra { font-size: 26px; }
.size-10 .letra { font-size: 28px; }

.bola:hover .letra {
    color: #000;
    transform: translateY(-2px);
}

/* Número central - Tamaños dinámicos */
.numero {
    font-weight: 900;
    color: #333;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
    transition: all 0.4s ease;
    line-height: 1;
}

.size-1 .numero { font-size: 18px; }
.size-2 .numero { font-size: 22px; }
.size-3 .numero { font-size: 26px; }
.size-4 .numero { font-size: 30px; }
.size-5 .numero { font-size: 34px; }
.size-6 .numero { font-size: 38px; }
.size-7 .numero { font-size: 42px; }
.size-8 .numero { font-size: 46px; }
.size-9 .numero { font-size: 50px; }
.size-10 .numero { font-size: 54px; }

.bola:hover .numero {
    color: #000;
    transform: scale(1.1);
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.3);
}

/* Anillos decorativos - Tamaños dinámicos */
.anillo-externo {
    position: absolute;
    border-radius: 50%;
    box-shadow: 
        0 0 10px rgba(255, 255, 255, 0.2),
        inset 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 1;
    transition: all 0.4s ease;
}

.size-1 .anillo-externo { width: 56px; height: 56px; }
.size-2 .anillo-externo { width: 70px; height: 70px; }
.size-3 .anillo-externo { width: 84px; height: 84px; }
.size-4 .anillo-externo { width: 98px; height: 98px; }
.size-5 .anillo-externo { width: 112px; height: 112px; }
.size-6 .anillo-externo { width: 126px; height: 126px; }
.size-7 .anillo-externo { width: 140px; height: 140px; }
.size-8 .anillo-externo { width: 154px; height: 154px; }
.size-9 .anillo-externo { width: 168px; height: 168px; }
.size-10 .anillo-externo { width: 182px; height: 182px; }

.bola:hover .anillo-externo {
    border-color: rgba(255, 255, 255);
    box-shadow: 
        0 0 15px rgba(255, 255, 255),
        inset 0 0 15px rgba(0, 0, 0, 0.1);
    transform: scale(1.05);
}

.anillo-interno {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 
        0 0 5px rgba(255, 255, 255, 0.1),
        inset 0 0 5px rgba(0, 0, 0, 0.05);
    z-index: 3;
    transition: all 0.4s ease;
}

.size-1 .anillo-interno { width: 34px; height: 34px; }
.size-2 .anillo-interno { width: 42px; height: 42px; }
.size-3 .anillo-interno { width: 50px; height: 50px; }
.size-4 .anillo-interno { width: 59px; height: 59px; }
.size-5 .anillo-interno { width: 67px; height: 67px; }
.size-6 .anillo-interno { width: 76px; height: 76px; }
.size-7 .anillo-interno { width: 84px; height: 84px; }
.size-8 .anillo-interno { width: 92px; height: 92px; }
.size-9 .anillo-interno { width: 101px; height: 101px; }
.size-10 .anillo-interno { width: 109px; height: 109px; }

.bola:hover .anillo-interno {
    border-color: rgba(255, 255, 255, 0.5);
    box-shadow: 
        0 0 8px rgba(255, 255, 255, 0.3),
        inset 0 0 8px rgba(0, 0, 0, 0.05);
    transform: scale(1.2);
}

/* Colores de las bolas */
.bola-roja {
    background: linear-gradient(145deg, #ff4444, #cc0000, #990000);
}

.bola-azul {
    background: linear-gradient(145deg, #4488ff, #0066cc, #004499);
}

.bola-verde {
    background: linear-gradient(145deg, #44cc44, #00aa00, #007700);
}

.bola-amarilla {
    background: linear-gradient(145deg, #ffcc00, #ff9900, #cc6600);
}

.bola-morada {
    background: linear-gradient(145deg, #9966ff, #6633cc, #440099);
}

/* Animación de rotación sutil */
@keyframes rotacion {
    0%, 100% {
        transform: translateY(0) rotateY(0deg);
    }
    50% {
        transform: translateY(-5px) rotateY(5deg);
    }
}

.bola-animation {
    animation: rotacion 3s ease-in-out infinite;
}

.bola-animation:hover {
    animation: none;
}

/* Animación de brillo pulsante */
@keyframes brillo {
    0%, 100% {
        opacity: 0.8;
    }
    50% {
        opacity: 1;
    }
}

.bola::before {
    animation: brillo 2s ease-in-out infinite;
}

/* Responsive */
@media (max-width: 768px) {
    .size-selector {
        gap: 5px;
        padding: 15px;
    }
    
    .size-btn {
        padding: 8px 15px;
        font-size: 14px;
    }
    
    .bolas-wrapper {
        gap: 15px;
    }
    
    /* Reducir tamaños en móviles */
    .size-7 .bola-container,
    .size-8 .bola-container,
    .size-9 .bola-container,
    .size-10 .bola-container {
        width: 150px;
        height: 150px;
    }

    .has-bottom-nav-game {
        padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px));
    }
}

@media (max-width: 480px) {
    h2 {
        font-size: 18px;
    }
    
    .size-btn {
        padding: 6px 12px;
        font-size: 12px;
    }

    .has-bottom-nav-game {
        padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px));
    }
}

/* Responsive */
@media (max-width: 768px) {
    .contenedor {
        gap: 20px;
    }
    
    .bola-container {
        width: 120px;
        height: 120px;
    }
    
    .circulo-central {
        width: 55px;
        height: 55px;
    }
    
    .anillo-externo {
        width: 68px;
        height: 68px;
    }
    
    .anillo-interno {
        width: 42px;
        height: 42px;
    }
    
    .letra {
        font-size: 12px;
    }
    
    .numero {
        font-size: 22px;
    }
}

@media (max-width: 480px) {
    .bola-container {
        width: 100px;
        height: 100px;
    }
    
    .circulo-central {
        width: 45px;
        height: 45px;
    }
    
    .anillo-externo {
        width: 55px;
        height: 55px;
    }
    
    .anillo-interno {
        width: 35px;
        height: 35px;
    }
    
    .letra {
        font-size: 10px;
    }
    
    .numero {
        font-size: 18px;
    }
}

/* Tamaños de bolas de 15px a 300px (de 10 en 10) */

/* ============================================
   CONTENEDORES DE BOLAS
   ============================================ */
.size-15 .bola-container { width: 15px; height: 15px; }
.size-25 .bola-container { width: 25px; height: 25px; }
.size-35 .bola-container { width: 35px; height: 35px; }
.size-45 .bola-container { width: 45px; height: 45px; }
.size-55 .bola-container { width: 55px; height: 55px; }
.size-65 .bola-container { width: 65px; height: 65px; }
.size-75 .bola-container { width: 75px; height: 75px; }
.size-85 .bola-container { width: 85px; height: 85px; }
.size-95 .bola-container { width: 95px; height: 95px; }
.size-105 .bola-container { width: 105px; height: 105px; }
.size-115 .bola-container { width: 115px; height: 115px; }
.size-125 .bola-container { width: 125px; height: 125px; }
.size-135 .bola-container { width: 135px; height: 135px; }
.size-145 .bola-container { width: 145px; height: 145px; }
.size-155 .bola-container { width: 155px; height: 155px; }
.size-165 .bola-container { width: 165px; height: 165px; }
.size-175 .bola-container { width: 175px; height: 175px; }
.size-185 .bola-container { width: 185px; height: 185px; }
.size-195 .bola-container { width: 195px; height: 195px; }
.size-205 .bola-container { width: 205px; height: 205px; }
.size-215 .bola-container { width: 215px; height: 215px; }
.size-225 .bola-container { width: 225px; height: 225px; }
.size-235 .bola-container { width: 235px; height: 235px; }
.size-245 .bola-container { width: 245px; height: 245px; }
.size-255 .bola-container { width: 255px; height: 255px; }
.size-265 .bola-container { width: 265px; height: 265px; }
.size-275 .bola-container { width: 275px; height: 275px; }
.size-285 .bola-container { width: 285px; height: 285px; }
.size-295 .bola-container { width: 295px; height: 295px; }
.size-300 .bola-container { width: 300px; height: 300px; }

/* ============================================
   CÍRCULOS CENTRALES (60% del contenedor)
   ============================================ */
.size-15 .circulo-central { width: 9px; height: 9px; }    /* 60% */
.size-25 .circulo-central { width: 15px; height: 15px; }    /* 60% */
.size-35 .circulo-central { width: 21px; height: 21px; }    /* 60% */
.size-45 .circulo-central { width: 27px; height: 27px; }    /* 60% */
.size-55 .circulo-central { width: 32px; height: 32px; }    /* 60% */
.size-65 .circulo-central { width: 39px; height: 39px; }    /* 60% */
.size-75 .circulo-central { width: 45px; height: 45px; }    /* 60% */
.size-85 .circulo-central { width: 51px; height: 51px; }    /* 60% */
.size-95 .circulo-central { width: 57px; height: 57px; }    /* 60% */
.size-105 .circulo-central { width: 63px; height: 63px; }   /* 60% */
.size-115 .circulo-central { width: 69px; height: 69px; }   /* 60% */
.size-125 .circulo-central { width: 75px; height: 75px; }   /* 60% */
.size-135 .circulo-central { width: 81px; height: 81px; }   /* 60% */
.size-145 .circulo-central { width: 87px; height: 87px; }   /* 60% */
.size-155 .circulo-central { width: 93px; height: 93px; }   /* 60% */
.size-165 .circulo-central { width: 99px; height: 99px; }   /* 60% */
.size-175 .circulo-central { width: 105px; height: 105px; } /* 60% */
.size-185 .circulo-central { width: 111px; height: 111px; } /* 60% */
.size-195 .circulo-central { width: 117px; height: 117px; } /* 60% */
.size-205 .circulo-central { width: 123px; height: 123px; } /* 60% */
.size-215 .circulo-central { width: 129px; height: 129px; } /* 60% */
.size-225 .circulo-central { width: 135px; height: 135px; } /* 60% */
.size-235 .circulo-central { width: 141px; height: 141px; } /* 60% */
.size-245 .circulo-central { width: 147px; height: 147px; } /* 60% */
.size-255 .circulo-central { width: 153px; height: 153px; } /* 60% */
.size-265 .circulo-central { width: 159px; height: 159px; } /* 60% */
.size-275 .circulo-central { width: 165px; height: 165px; } /* 60% */
.size-285 .circulo-central { width: 171px; height: 171px; } /* 60% */
.size-295 .circulo-central { width: 177px; height: 177px; } /* 60% */
.size-300 .circulo-central { width: 180px; height: 180px; } /* 60% */

/* ============================================
   ANILLOS EXTERNOS (75% del contenedor)
   ============================================ */
.size-15 .anillo-externo { width: 11.5px; height: 11.5px; }     /* 75% */
.size-25 .anillo-externo { width: 19px; height: 19px; }     /* 75% */
.size-35 .anillo-externo { width: 25px; height: 25px; }     /* 75% */
.size-45 .anillo-externo { width: 35px; height: 35px; }     /* 75% */
.size-55 .anillo-externo { width: 42px; height: 42px; }     /* 75% */
.size-65 .anillo-externo { width: 49px; height: 49px; }     /* 75% */
.size-75 .anillo-externo { width: 56px; height: 56px; }     /* 75% */
.size-85 .anillo-externo { width: 64px; height: 64px; }     /* 75% */
.size-95 .anillo-externo { width: 71px; height: 71px; }     /* 75% */
.size-105 .anillo-externo { width: 79px; height: 79px; }    /* 75% */
.size-115 .anillo-externo { width: 86px; height: 86px; }    /* 75% */
.size-125 .anillo-externo { width: 94px; height: 94px; }    /* 75% */
.size-135 .anillo-externo { width: 101px; height: 101px; }  /* 75% */
.size-145 .anillo-externo { width: 109px; height: 109px; }  /* 75% */
.size-155 .anillo-externo { width: 116px; height: 116px; }  /* 75% */
.size-165 .anillo-externo { width: 124px; height: 124px; }  /* 75% */
.size-175 .anillo-externo { width: 131px; height: 131px; }  /* 75% */
.size-185 .anillo-externo { width: 139px; height: 139px; }  /* 75% */
.size-195 .anillo-externo { width: 146px; height: 146px; }  /* 75% */
.size-205 .anillo-externo { width: 154px; height: 154px; }  /* 75% */
.size-215 .anillo-externo { width: 161px; height: 161px; }  /* 75% */
.size-225 .anillo-externo { width: 169px; height: 169px; }  /* 75% */
.size-235 .anillo-externo { width: 176px; height: 176px; }  /* 75% */
.size-245 .anillo-externo { width: 184px; height: 184px; }  /* 75% */
.size-255 .anillo-externo { width: 191px; height: 191px; }  /* 75% */
.size-265 .anillo-externo { width: 199px; height: 199px; }  /* 75% */
.size-275 .anillo-externo { width: 206px; height: 206px; }  /* 75% */
.size-285 .anillo-externo { width: 214px; height: 214px; }  /* 75% */
.size-295 .anillo-externo { width: 221px; height: 221px; }  /* 75% */
.size-300 .anillo-externo { width: 225px; height: 225px; }  /* 75% */

/* ============================================
   ANILLOS INTERNOS (55% del contenedor)
   ============================================ */
.size-15 .anillo-interno { width: 7px; height: 7px; }     /* 55% */
.size-25 .anillo-interno { width: 14px; height: 14px; }     /* 55% */
.size-35 .anillo-interno { width: 19px; height: 19px; }     /* 55% */
.size-45 .anillo-interno { width: 25px; height: 25px; }     /* 55% */
.size-55 .anillo-interno { width: 30px; height: 30px; }     /* 55% */
.size-65 .anillo-interno { width: 36px; height: 36px; }     /* 55% */
.size-75 .anillo-interno { width: 41px; height: 41px; }     /* 55% */
.size-85 .anillo-interno { width: 47px; height: 47px; }     /* 55% */
.size-95 .anillo-interno { width: 52px; height: 52px; }     /* 55% */
.size-105 .anillo-interno { width: 58px; height: 58px; }    /* 55% */
.size-115 .anillo-interno { width: 63px; height: 63px; }    /* 55% */
.size-125 .anillo-interno { width: 69px; height: 69px; }    /* 55% */
.size-135 .anillo-interno { width: 74px; height: 74px; }    /* 55% */
.size-145 .anillo-interno { width: 80px; height: 80px; }    /* 55% */
.size-155 .anillo-interno { width: 85px; height: 85px; }    /* 55% */
.size-165 .anillo-interno { width: 91px; height: 91px; }    /* 55% */
.size-175 .anillo-interno { width: 96px; height: 96px; }    /* 55% */
.size-185 .anillo-interno { width: 102px; height: 102px; }  /* 55% */
.size-195 .anillo-interno { width: 107px; height: 107px; }  /* 55% */
.size-205 .anillo-interno { width: 113px; height: 113px; }  /* 55% */
.size-215 .anillo-interno { width: 118px; height: 118px; }  /* 55% */
.size-225 .anillo-interno { width: 124px; height: 124px; }  /* 55% */
.size-235 .anillo-interno { width: 129px; height: 129px; }  /* 55% */
.size-245 .anillo-interno { width: 135px; height: 135px; }  /* 55% */
.size-255 .anillo-interno { width: 140px; height: 140px; }  /* 55% */
.size-265 .anillo-interno { width: 146px; height: 146px; }  /* 55% */
.size-275 .anillo-interno { width: 151px; height: 151px; }  /* 55% */
.size-285 .anillo-interno { width: 157px; height: 157px; }  /* 55% */
.size-295 .anillo-interno { width: 162px; height: 162px; }  /* 55% */
.size-300 .anillo-interno { width: 165px; height: 165px; }  /* 55% */

/* ============================================
   TAMAÑOS DE LETRA (Máximo 30px)
   Progresión proporcional de 3px a 32px
   ============================================ */
.size-15 .letra { font-size: 2px; margin-bottom: 1px; }
.size-25 .letra { font-size: 4px; margin-bottom: 1px; }
.size-35 .letra { font-size: 5px; }
.size-45 .letra { font-size: 6px; margin-bottom: 1px; }
.size-55 .letra { font-size: 7px; margin-bottom: 1px; }
.size-65 .letra { font-size: 8px; margin-bottom: 1px; }
.size-75 .letra { font-size: 9px; margin-bottom: 1px; }
.size-85 .letra { font-size: 10px; margin-bottom: 1px; }
.size-95 .letra { font-size: 11px; margin-bottom: 1px; }
.size-105 .letra { font-size: 12px; margin-bottom: 1px; }
.size-115 .letra { font-size: 13px; margin-bottom: 1px; }
.size-125 .letra { font-size: 14px; margin-bottom: 1px; }
.size-135 .letra { font-size: 15px; margin-bottom: 1px; }
.size-145 .letra { font-size: 16px; }
.size-155 .letra { font-size: 17px; }
.size-165 .letra { font-size: 18px; }
.size-175 .letra { font-size: 19px; }
.size-185 .letra { font-size: 20px; }
.size-195 .letra { font-size: 21px; }
.size-205 .letra { font-size: 22px; }
.size-215 .letra { font-size: 23px; }
.size-225 .letra { font-size: 24px; }
.size-235 .letra { font-size: 25px; }
.size-245 .letra { font-size: 26px; }
.size-255 .letra { font-size: 27px; }
.size-265 .letra { font-size: 28px; }
.size-275 .letra { font-size: 29px; }
.size-285 .letra { font-size: 30px; }
.size-295 .letra { font-size: 31px; }
.size-300 .letra { font-size: 32px; }

/* ============================================
   TAMAÑOS DE NÚMERO (Progresión proporcional)
   Escala de 3px a 90px
   ============================================ */
.size-15 .numero { font-size: 3px; }  
.size-25 .numero { font-size: 6px; }    
.size-35 .numero { font-size: 9px; }    
.size-45 .numero { font-size: 12px; }   
.size-55 .numero { font-size: 15px; }   
.size-65 .numero { font-size: 18px; }   
.size-75 .numero { font-size: 21px; }   
.size-85 .numero { font-size: 24px; }   
.size-95 .numero { font-size: 27px; }   
.size-105 .numero { font-size: 30px; }  
.size-115 .numero { font-size: 33px; }  
.size-125 .numero { font-size: 36px; }  
.size-135 .numero { font-size: 39px; }  
.size-145 .numero { font-size: 42px; }  
.size-155 .numero { font-size: 45px; }  
.size-165 .numero { font-size: 48px; }  
.size-175 .numero { font-size: 51px; }  
.size-185 .numero { font-size: 54px; }  
.size-195 .numero { font-size: 57px; }  
.size-205 .numero { font-size: 60px; }  
.size-215 .numero { font-size: 63px; }  
.size-225 .numero { font-size: 66px; }  
.size-235 .numero { font-size: 69px; }  
.size-245 .numero { font-size: 72px; }  
.size-255 .numero { font-size: 75px; }  
.size-265 .numero { font-size: 78px; }  
.size-275 .numero { font-size: 81px; }  
.size-285 .numero { font-size: 84px; }  
.size-295 .numero { font-size: 87px; }  
.size-300 .numero { font-size: 90px; }

/* ============================================
   TAMAÑOS DE NÚMERO DEFECTO (Progresión proporcional)
   Escala de 3px a 90px
   ============================================ */
.size-15 .bola-default .numero { font-size: 3px; }  
.size-25 .bola-default .numero { font-size: 6px; }    
.size-35 .bola-default .numero { font-size: 9px; }    
.size-45 .bola-default .numero { font-size: 12px; }   
.size-55 .bola-default .numero { font-size: 15px; }   
.size-65 .bola-default .numero { font-size: 18px; }   
.size-75 .bola-default .numero { font-size: 21px; }   
.size-85 .bola-default .numero { font-size: 24px; }   
.size-95 .bola-default .numero { font-size: 27px; }

.size-105 .bola-default .numero { font-size: 15px; }  
.size-115 .bola-default .numero { font-size: 18px; }  
.size-125 .bola-default .numero { font-size: 21px; } 
.size-135 .bola-default .numero { font-size: 24px; }  
.size-145 .bola-default .numero { font-size: 27px; }  
.size-155 .bola-default .numero { font-size: 30px; }  
.size-165 .bola-default .numero { font-size: 33px; }  
.size-175 .bola-default .numero { font-size: 36px; }  
.size-185 .bola-default .numero { font-size: 39px; }  
.size-195 .bola-default .numero { font-size: 42px; }

.size-205 .bola-default .numero { font-size: 60px; }  
.size-215 .bola-default .numero { font-size: 63px; }  
.size-225 .bola-default .numero { font-size: 66px; }  
.size-235 .bola-default .numero { font-size: 69px; }  
.size-245 .bola-default .numero { font-size: 72px; }  
.size-255 .bola-default .numero { font-size: 75px; }  
.size-265 .bola-default .numero { font-size: 78px; }  
.size-275 .bola-default .numero { font-size: 81px; }  
.size-285 .bola-default .numero { font-size: 84px; }  
.size-295 .bola-default .numero { font-size: 87px; }  
.size-300 .bola-default .numero { font-size: 90px; }

/* ============================================
   BORDES DE ANILLOS EXTERNOS
   Progresión proporcional de 1px a 10px
   ============================================ */
.size-15 .anillo-externo { border: 0.7px solid rgba(255, 255, 255); }
.size-25 .anillo-externo { border: 1px solid rgba(255, 255, 255); }
.size-35 .anillo-externo { border: 1.5px solid rgba(255, 255, 255); }
.size-45 .anillo-externo { border: 1.5px solid rgba(255, 255, 255); }
.size-55 .anillo-externo { border: 2px solid rgba(255, 255, 255); }
.size-65 .anillo-externo { border: 2px solid rgba(255, 255, 255); }
.size-75 .anillo-externo { border: 3px solid rgba(255, 255, 255); }
.size-85 .anillo-externo { border: 3px solid rgba(255, 255, 255); }
.size-95 .anillo-externo { border: 4px solid rgba(255, 255, 255); }
.size-105 .anillo-externo { border: 4px solid rgba(255, 255, 255); }
.size-115 .anillo-externo { border: 4px solid rgba(255, 255, 255); }
.size-125 .anillo-externo { border: 5px solid rgba(255, 255, 255); }
.size-135 .anillo-externo { border: 5px solid rgba(255, 255, 255); }
.size-145 .anillo-externo { border: 5px solid rgba(255, 255, 255); }
.size-155 .anillo-externo { border: 6px solid rgba(255, 255, 255); }
.size-165 .anillo-externo { border: 6px solid rgba(255, 255, 255); }
.size-175 .anillo-externo { border: 6px solid rgba(255, 255, 255); }
.size-185 .anillo-externo { border: 7px solid rgba(255, 255, 255); }
.size-195 .anillo-externo { border: 7px solid rgba(255, 255, 255); }
.size-205 .anillo-externo { border: 7px solid rgba(255, 255, 255); }
.size-215 .anillo-externo { border: 8px solid rgba(255, 255, 255); }
.size-225 .anillo-externo { border: 8px solid rgba(255, 255, 255); }
.size-235 .anillo-externo { border: 8px solid rgba(255, 255, 255); }
.size-245 .anillo-externo { border: 9px solid rgba(255, 255, 255); }
.size-255 .anillo-externo { border: 9px solid rgba(255, 255, 255); }
.size-265 .anillo-externo { border: 9px solid rgba(255, 255, 255); }
.size-275 .anillo-externo { border: 10px solid rgba(255, 255, 255); }
.size-285 .anillo-externo { border: 10px solid rgba(255, 255, 255); }
.size-295 .anillo-externo { border: 10px solid rgba(255, 255, 255); }
.size-300 .anillo-externo { border: 10px solid rgba(255, 255, 255); }

.size-15 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-25 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-35 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 2px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-45 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 2px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-55 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 2px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-65 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-75 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-85 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-95 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 4px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-105 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 4px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-155 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 4px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-125 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 5px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-135 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 5px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-145 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 5px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-155 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 6px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-165 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 6px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-175 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 6px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-185 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 7px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-195 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 7px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-205 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 7px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-215 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 8px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-225 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 8px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-235 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 8px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-245 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 9px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-255 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 9px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-265 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 9px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-275 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 10px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-285 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 10px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-295 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 10px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }
.size-300 .bola { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 10px rgba(255, 255, 255, 0.3), inset -20px -20px 40px rgba(0, 0, 0, 0.3), inset 10px 10px 30px rgba(255, 255, 255, 0.4); }

.table th,
.table td {
    white-space: nowrap;
}

/* ============================================================
   DESKTOP SIDEBAR PROFESIONAL
   Responsive + Collapse + Align Perfecto
   ============================================================ */
:root {
    --ds-width-collapsed : 64px;
    --ds-width-expanded  : 230px;
    --ds-transition      : 0.22s cubic-bezier(.4,0,.2,1);
    --navbar-height      : 70px;
    --ds-item-height     : 42px;
}

/* ─────────────────────────────────────────────
   SIDEBAR BASE
───────────────────────────────────────────── */
#desktopSidebar {
    display: none;
}

.navbar.navbar-glass {
    position: relative !important;
    top: 0;
    left: 0;
    width: 100% !important;
    z-index: 1030;
    transition: left var(--ds-transition),
                width var(--ds-transition);
}

main {
    padding-top: var(--navbar-height) !important;
    transition: margin-left var(--ds-transition);
}

/* ─────────────────────────────────────────────
   DESKTOP
───────────────────────────────────────────── */
@media (min-width: 992px) {

    #desktopSidebar {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        width: var(--ds-width-collapsed);
        background: var(--sidebar-bg, #1e1b4b);
        transition: width var(--ds-transition);
        overflow: hidden;
        z-index: 1045;
        border-right: 1px solid rgba(255,255,255,0.06);
        box-shadow: 2px 0 16px rgba(0,0,0,0.25);
    }

    #desktopSidebar:hover,
    #desktopSidebar.pinned {
        width: var(--ds-width-expanded);
    }

    .navbar.navbar-glass {
        left: var(--ds-width-collapsed) !important;
        width: calc(100% - var(--ds-width-collapsed)) !important;
    }

    body.sidebar-pinned .navbar.navbar-glass {
        left: var(--ds-width-expanded) !important;
        width: calc(100% - var(--ds-width-expanded)) !important;
    }

    main {
        margin-left: var(--ds-width-collapsed) !important;
    }

    body.sidebar-pinned main {
        margin-left: var(--ds-width-expanded) !important;
    }
}

/* ─────────────────────────────────────────────
   BRAND
───────────────────────────────────────────── */
.ds-brand {
    display       : flex;
    align-items   : center;
    gap           : 10px;
    padding       : 14px 13px 12px;
    min-height    : var(--navbar-height);
    overflow      : hidden;
    border-bottom : 1px solid rgba(255, 255, 255, 0.07);
    flex-shrink   : 0;
    white-space   : nowrap;
}

.ds-brand img {
    width       : 38px;
    height      : 38px;
    object-fit  : contain;
    flex-shrink : 0;
}

.ds-brand-text {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    opacity: 0;
    transition: var(--ds-transition);
}

#desktopSidebar:hover .ds-brand-text,
#desktopSidebar.pinned .ds-brand-text {
    opacity: 1;
}

/* ─────────────────────────────────────────────
   NAV
───────────────────────────────────────────── */
.ds-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    overflow-y: auto;
}

.ds-nav::-webkit-scrollbar {
    display: none;
}

.ds-nav-item {
    width: 100%;
}

/* ─────────────────────────────────────────────
   LINK
───────────────────────────────────────────── */
.ds-nav-link {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: var(--ds-item-height);
    width: 100%;
    padding: 0 16px;
    gap: 14px;
    text-decoration: none;
    color: rgba(255,255,255,0.72);
    transition:
        background var(--ds-transition),
        color var(--ds-transition);
    position: relative;
}

/* Hover */

.ds-nav-link:hover {
    background: rgba(99,102,241,0.18);
}

/* Active */
.ds-nav-link.active {
    background: rgba(99,102,241,0.18);
    border-left: 4px solid #6366f1;
}

/* ─────────────────────────────────────────────
   ICON
───────────────────────────────────────────── */
.ds-nav-link i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: 1.05rem;
    flex-shrink: 0;
}

/* ─────────────────────────────────────────────
   LABEL
───────────────────────────────────────────── */
.ds-label {
    font-size: 0.88rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0;
    transition: var(--ds-transition);
}

/* Mostrar label cuando expandido */
#desktopSidebar:hover .ds-label,
#desktopSidebar.pinned .ds-label {
    opacity: 1;
}

/* ─────────────────────────────────────────────
   CENTRAR ICONO CUANDO COLLAPSE
───────────────────────────────────────────── */
#desktopSidebar:not(:hover):not(.pinned)
.ds-nav-link {
    justify-content: center;
}

#desktopSidebar:not(:hover):not(.pinned)
.ds-label {
    display: none;
}

/* ─────────────────────────────────────────────
   DIVIDER
───────────────────────────────────────────── */
.ds-divider {
    height: 1px;
    margin: 8px 10px;
    background: rgba(255,255,255,0.07);
}

/* ─────────────────────────────────────────────
   FOOTER
───────────────────────────────────────────── */
.ds-footer {
    border-top: 1px solid rgba(255,255,255,0.07);
}

/* ─────────────────────────────────────────────
   PIN BUTTON
───────────────────────────────────────────── */
.ds-pin-btn {
    display: flex;
    align-items: center;
    height: var(--ds-item-height);
    gap: 14px;
    padding: 0 16px;
    border-radius: 10px;
    background: transparent;
    border: none;
    color: rgba(255,255,255,0.45);
    cursor: pointer;
    transition: var(--ds-transition);
}

.ds-pin-btn:hover {
    background: rgba(255,255,255,0.07);
    color: rgba(255,255,255,0.85);
}

.ds-pin-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: .9rem;
}

.ds-pin-label {
    font-size: .85rem;
    font-weight: 500;
    opacity: 0;
    transition: var(--ds-transition);
}

#desktopSidebar:hover .ds-pin-label,
#desktopSidebar.pinned .ds-pin-label {
    opacity: 1;
}

/* ─────────────────────────────────────────────
   TOOLTIP
───────────────────────────────────────────── */
.ds-nav-link[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(var(--ds-width-collapsed) + 6px);
    top: 50%;
    transform: translateY(-50%);
    background: rgba(15,23,42,0.95);
    color: #fff;
    font-size: .78rem;
    padding: 4px 10px;
    border-radius: 6px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s;
}

#desktopSidebar:not(:hover):not(.pinned)
.ds-nav-link:hover::after {
    opacity: 1;
}

/* ─────────────────────────────────────────────
   LIGHT THEME
───────────────────────────────────────────── */
html[data-theme="light"] #desktopSidebar {
    background: #ffffff;
    border-right: 1px solid rgba(0,0,0,0.08);
}

html[data-theme="light"] .ds-nav-link {
    color: #475569;
}

html[data-theme="light"] .ds-nav-link.active {
    background: rgba(99,102,241,0.12);
    border-left: 3px solid #4f46e5;
}

html[data-theme="light"] .ds-brand-text {
    color: #1e293b;
}

html[data-theme="light"] .ds-brand {
    border-bottom-color: rgba(0, 0, 0, 0.07);
}

html[data-theme="light"] .ds-footer {
    border-top-color: rgba(0, 0, 0, 0.07);
}

html[data-theme="light"] .ds-divider {
    background: rgba(0, 0, 0, 0.07);
}

html[data-theme="light"] .ds-pin-btn {
    color: #64748b;
}

html[data-theme="light"] .ds-pin-btn:hover {
    background: rgba(0, 0, 0, 0.04);
    color     : #1e293b;
}

html[data-theme="light"] .ds-pin-btn.is-pinned {
    color: #4f46e5;
}

html[data-theme="light"] .ds-pin-btn.is-pinned .ds-pin-icon {
    color: #4f46e5;
}

html[data-theme="light"] #desktopSidebar.pinned #desktopSidebarPin {
    background  : rgba(99, 102, 241, 0.12);
    color       : #4f46e5;
    border-color: rgba(99, 102, 241, 0.35);
}

/* ═══════════════════════════════════════════════════════
   PUSH BANNER - BASE
═══════════════════════════════════════════════════════ */

@keyframes pushSlideIn {
    from { opacity:0; transform:translateY(20px); }
    to   { opacity:1; transform:translateY(0); }
}

@keyframes pushSlideInMobile {
    from { opacity:0; transform:translateX(-50%) translateY(20px); }
    to   { opacity:1; transform:translateX(-50%) translateY(0); }
}

#push-banner-inner {
    position: fixed;
    z-index: 9999;
    border-radius: 16px;
    padding: 1.1rem 1.25rem;
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    font-family: 'Poppins', sans-serif;
    max-width: 360px;
    width: calc(100% - 2rem);

    transition:
        background .3s,
        border-color .3s,
        box-shadow .3s,
        color .3s;
}

/* Desktop */
@media (min-width:769px) {
    #push-banner-inner {
        bottom: 1.5rem;
        right: 1.5rem;
        animation: pushSlideIn .4s cubic-bezier(.34,1.56,.64,1) both;
    }
}

/* Mobile */
@media (max-width:768px) {
    #push-banner-inner {
        bottom: 80px;
        left: 50%;
        transform: translateX(-50%);
        animation: pushSlideInMobile .4s cubic-bezier(.34,1.56,.64,1) both;
        max-width: 420px;
        width: 92%;
    }
}

/* Textos */

.push-title {
    font-weight: 700;
    font-size: .92rem;
    margin-bottom: .25rem;
    line-height: 1.3;
}

.push-desc {
    font-size: .8rem;
    line-height: 1.45;
    margin-bottom: .8rem;
}

/* Botones */

#push-accept {
    background: linear-gradient(135deg,#667eea,#764ba2);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: .45rem 1rem;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    flex: 1;
    transition: transform .2s, box-shadow .2s;
}

#push-accept:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(102,126,234,.4);
}

#push-dismiss {
    background: transparent;
    border-radius: 8px;
    padding: .45rem 1rem;
    font-size: .82rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s;
}

#push-dismiss:hover {
    background: rgba(128,128,128,.1);
}

#push-close {
    background: none;
    border: none;
    font-size: 1rem;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 2px;
    transition: opacity .2s, transform .2s;
}

#push-close:hover {
    transform: scale(1.2);
}

/* ═══════════════════════════════════════════════════════
   DARK MODE
═══════════════════════════════════════════════════════ */

html[data-theme="dark"] #push-banner-inner {

    background: rgba(17,24,39,.92);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 20px 40px rgba(0,0,0,.55);

    color: #e5e7eb;
}

html[data-theme="dark"] .push-title {
    color: #f9fafb;
}

html[data-theme="dark"] .push-desc {
    color: #cbd5f5;
}

html[data-theme="dark"] #push-dismiss {
    color: #cbd5f5;
    border: 1px solid rgba(255,255,255,.15);
}

html[data-theme="dark"] #push-close {
    color: #cbd5f5;
}

/* ═══════════════════════════════════════════════════════
   LIGHT MODE
═══════════════════════════════════════════════════════ */

html[data-theme="light"] #push-banner-inner {

    background: rgba(255,255,255,.97);
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 20px 40px rgba(0,0,0,.18);

    color: #334155;
}

html[data-theme="light"] .push-title {
    color: #0f172a;
}

html[data-theme="light"] .push-desc {
    color: #475569;
}

html[data-theme="light"] #push-dismiss {
    color: #475569;
    border: 1px solid rgba(0,0,0,.12);
}

html[data-theme="light"] #push-close {
    color: #475569;
}

@media (min-width: 1200px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 98%;
    }
}
@media (min-width: 992px) {
    .container, .container-lg, .container-md, .container-sm {
        max-width: 98%;
    }
}
@media (min-width: 768px) {
    .container, .container-md, .container-sm {
        max-width: 98%;
    }
}
@media (min-width: 576px) {
    .container, .container-sm
    {
        max-width: 98%
    }

    /* Spacer for bottom nav so content doesn't hide behind it */
    .has-bottom-nav-game main {
        padding-bottom: 60px;
    }
}

/* ════════════════════════════════════════════════════════════════
   MODAL HEADERS — Compactos, atractivos y responsive
   ════════════════════════════════════════════════════════════════ */

.modal-header-bingo {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 50%, #764ba2 100%);
    border-bottom: none;
    border-radius: 0;
    padding: .5rem .85rem;
    position: relative;
    overflow: hidden;
    min-height: unset;
}

/* Brillo decorativo de fondo */
.modal-header-bingo::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -10%;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
    pointer-events: none;
}
.modal-header-bingo::after {
    content: '';
    position: absolute;
    bottom: -60%;
    left: 5%;
    width: 120px;
    height: 120px;
    background: radial-gradient(circle, rgba(255,255,255,.07) 0%, transparent 70%);
    pointer-events: none;
}

.modal-header-bingo .modal-title-wrap {
    display: flex;
    align-items: center;
    gap: .45rem;
    position: relative;
    z-index: 1;
}

.modal-header-bingo .modal-icon-wrap {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    backdrop-filter: blur(4px);
}
.modal-header-bingo .modal-icon-wrap i {
    font-size: .72rem;
    color: #fff;
}

.modal-header-bingo .modal-title-text {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.modal-header-bingo .modal-title-main {
    font-size: .82rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    letter-spacing: .01em;
}
.modal-header-bingo .modal-title-sub {
    font-size: .6rem;
    color: rgba(255,255,255,.55);
    line-height: 1.2;
}

.modal-header-bingo .btn-close-bingo {
    position: relative;
    z-index: 1;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s, transform .15s;
    flex-shrink: 0;
    font-size: .7rem;
    line-height: 1;
    padding: 0;
    margin-left: auto;
}
.modal-header-bingo .btn-close-bingo:hover {
    background: rgba(255,255,255,.25);
    transform: scale(1.08);
}
.modal-header-bingo .btn-close-bingo:active {
    transform: scale(.95);
}

/* Variantes de color por tipo de modal */
.modal-header-bingo.verde {
    background: linear-gradient(135deg, #059669 0%, #10b981 50%, #34d399 100%);
}
.modal-header-bingo.amarillo {
    background: linear-gradient(135deg, #d97706 0%, #f59e0b 50%, #fbbf24 100%);
}
.modal-header-bingo.rojo {
    background: linear-gradient(135deg, #dc2626 0%, #ef4444 50%, #f87171 100%);
}
.modal-header-bingo.oscuro {
    background: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #4338ca 100%);
}

/* Light theme */
html[data-theme="light"] .modal-header-bingo {
    box-shadow: 0 2px 8px rgba(99,102,241,.2);
}
html[data-theme="light"] .modal-header-bingo .modal-icon-wrap {
    background: rgba(255,255,255,.25);
    border-color: rgba(255,255,255,.3);
}

/* Responsive */
@media (max-width: 575px) {
    .modal-header-bingo { padding: .4rem .7rem; }
    .modal-header-bingo .modal-icon-wrap { width: 24px; height: 24px; border-radius: 6px; }
    .modal-header-bingo .modal-icon-wrap i { font-size: .65rem; }
    .modal-header-bingo .modal-title-main { font-size: .78rem; }
    .modal-header-bingo .modal-title-sub  { font-size: .56rem; }
    .modal-header-bingo .btn-close-bingo   { width: 24px; height: 24px; border-radius: 6px; }
}

.btn-bingo {
    border: none;
    border-radius: 50px;
    padding: .55rem 1.2rem;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: .03em;
    transition: transform .15s, box-shadow .15s, opacity .15s;
    width: 100%;
    margin-top: .2rem;
}
.btn-bingo:hover  { transform: translateY(-2px); opacity: .92; }
.btn-bingo:active { transform: scale(.96); }

.btn-bingo-1 { background: linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; box-shadow:0 4px 14px rgba(99,102,241,.4); }
.btn-bingo-2 { background: linear-gradient(135deg,#ec4899,#f43f5e); color:#fff; box-shadow:0 4px 14px rgba(236,72,153,.4); }
.btn-bingo-3 { background: linear-gradient(135deg,#10b981,#059669); color:#fff; box-shadow:0 4px 14px rgba(16,185,129,.4); }
.btn-bingo-4 { background: linear-gradient(135deg,#f59e0b,#ef4444); color:#fff; box-shadow:0 4px 14px rgba(245,158,11,.4); }
.btn-bingo-5 { background: linear-gradient(135deg,#06b6d4,#3b82f6); color:#fff; box-shadow:0 4px 14px rgba(6,182,212,.4); }
.btn-bingo-6 { background: linear-gradient(135deg,#fbbf24,#f97316); color:#fff; box-shadow:0 4px 14px rgba(251,191,36,.4); }
.btn-bingo-7 { background: linear-gradient(135deg,#a78bfa,#ec4899); color:#fff; box-shadow:0 4px 14px rgba(167,139,250,.4); }
.btn-bingo-8 { background: linear-gradient(135deg,#34d399,#06b6d4); color:#fff; box-shadow:0 4px 14px rgba(52,211,153,.4); }
.btn-bingo-9 { background: linear-gradient(135deg,#f43f5e,#f97316); color:#fff; box-shadow:0 4px 14px rgba(244,63,94,.4); }

/* ════════════════════════════════════════════════════════════
   PUSH BANNER — Variables dark/light
════════════════════════════════════════════════════════════ */
:root,
html[data-theme="dark"] {
    --push-bg            : rgba(30,41,59,0.97);
    --push-border        : rgba(129,140,248,0.3);
    --push-shadow        : 0 10px 40px rgba(0,0,0,0.4);
    --push-title         : #f1f5f9;
    --push-desc          : rgba(203,213,225,0.8);
    --push-dismiss-color : rgba(203,213,225,0.6);
    --push-dismiss-border: rgba(255,255,255,0.1);
    --push-close-color   : rgba(255,255,255,0.4);
}

html[data-theme="light"] {
    --push-bg            : rgba(255,255,255,0.97);
    --push-border        : rgba(99,102,241,0.25);
    --push-shadow        : 0 10px 40px rgba(0,0,0,0.12);
    --push-title         : #1e293b;
    --push-desc          : #64748b;
    --push-dismiss-color : #64748b;
    --push-dismiss-border: rgba(0,0,0,0.12);
    --push-close-color   : #94a3b8;
}

/* ════════════════════════════════════════════════════════════
   PWA INSTALL BANNER
════════════════════════════════════════════════════════════ */

/* ── Animaciones ── */
@keyframes pwaSlideIn {
    from { opacity:0; transform:translateY(20px); }
    to   { opacity:1; transform:translateY(0); }
}
@keyframes pwaSlideInMobile {
    from { opacity:0; transform:translateX(-50%) translateY(20px); }
    to   { opacity:1; transform:translateX(-50%) translateY(0); }
}
@keyframes pwaSlideOut {
    from { opacity:1; transform:translateY(0); }
    to   { opacity:0; transform:translateY(20px); }
}
@keyframes pwaSlideOutMobile {
    from { opacity:1; transform:translateX(-50%) translateY(0); }
    to   { opacity:0; transform:translateX(-50%) translateY(20px); }
}

/* ── Banner wrapper ── */
#pwa-banner-inner {
    position              : fixed;
    z-index               : 9998; /* Un nivel debajo del push */
    border-radius         : 16px;
    padding               : 1rem 1.15rem;
    display               : flex;
    align-items           : flex-start;
    gap                   : .8rem;
    backdrop-filter       : blur(20px);
    -webkit-backdrop-filter: blur(20px);
    font-family           : 'Poppins', sans-serif;
    max-width             : 360px;
    width                 : calc(100% - 2rem);
    background            : var(--push-bg);
    border                : 1px solid var(--push-border);
    box-shadow            : var(--push-shadow);
    transition            : background .3s ease,
                            border-color .3s ease,
                            box-shadow .3s ease;
}

/* Desktop */
@media (min-width: 769px) {
    #pwa-banner-inner {
        bottom    : 1.5rem;
        right     : 1.5rem;
        left      : auto;
        transform : none;
        animation : pwaSlideIn .4s cubic-bezier(.34,1.56,.64,1) both;
    }
    /* Si el push banner también está visible → subir el PWA */
    #push-banner-inner ~ #pwa-banner-inner,
    body.push-banner-visible #pwa-banner-inner {
        bottom: 9rem;
    }
}

/* Mobile */
@media (max-width: 768px) {
    #pwa-banner-inner {
        bottom    : 80px;
        left      : 50%;
        right     : auto;
        transform : translateX(-50%);
        animation : pwaSlideInMobile .4s cubic-bezier(.34,1.56,.64,1) both;
        max-width : 420px;
        width     : 92%;
    }
    /* Si push banner visible → subir */
    body.push-banner-visible #pwa-banner-inner {
        bottom: 160px;
    }

    .sidebar-nav-link {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.5rem .7rem;
        color: rgba(255,255,255,0.7);
        text-decoration: none;
        font-weight: 500;
        font-size: 0.85rem;
        border-radius: 12px;
        transition: all var(--transition-fast);
    }
}

/* ── Icono app ── */
.pwa-icon {
    width        : 44px;
    height       : 44px;
    border-radius: 12px;
    flex-shrink  : 0;
    object-fit   : cover;
    /* Fallback si no hay imagen */
    background   : linear-gradient(135deg, #667eea, #764ba2);
    display      : flex;
    align-items  : center;
    justify-content: center;
    font-size    : 1.4rem;
    line-height  : 1;
}
.pwa-icon img {
    width        : 44px;
    height       : 44px;
    border-radius: 12px;
    object-fit   : cover;
    display      : block;
}

/* ── Contenido ── */
.pwa-content {
    flex     : 1;
    min-width: 0;
}

/* ── Título ── */
.pwa-title {
    font-weight  : 700;
    color        : var(--push-title);
    font-size    : .9rem;
    margin-bottom: .2rem;
    line-height  : 1.3;
    transition   : color .3s;
}

/* ── Descripción ── */
.pwa-desc {
    color        : var(--push-desc);
    font-size    : .76rem;
    line-height  : 1.45;
    margin-bottom: .75rem;
    transition   : color .3s;
}

/* ── Plataforma hint (iOS instrucciones) ── */
.pwa-ios-hint {
    display      : flex;
    align-items  : center;
    gap          : .4rem;
    font-size    : .7rem;
    color        : var(--push-desc);
    margin-bottom: .65rem;
    padding      : .45rem .6rem;
    border-radius: 8px;
    background   : rgba(255,255,255,.05);
    border       : 1px solid rgba(255,255,255,.08);
    line-height  : 1.4;
}
.pwa-ios-hint i { color: #818cf8; flex-shrink: 0; }

/* ── Botones ── */
.pwa-btns {
    display: flex;
    gap    : .5rem;
}

#pwa-install {
    background   : linear-gradient(135deg, #667eea, #764ba2);
    color        : #fff;
    border       : none;
    border-radius: 8px;
    padding      : .42rem .95rem;
    font-size    : .8rem;
    font-weight  : 600;
    cursor       : pointer;
    flex         : 1;
    font-family  : 'Poppins', sans-serif;
    transition   : transform .2s, box-shadow .2s;
    display      : flex;
    align-items  : center;
    justify-content: center;
    gap          : .35rem;
}
#pwa-install:hover {
    transform : translateY(-1px);
    box-shadow: 0 4px 15px rgba(102,126,234,.4);
}
#pwa-install:active { transform: scale(.97); }

#pwa-dismiss {
    background   : transparent;
    border-radius: 8px;
    padding      : .42rem .95rem;
    font-size    : .8rem;
    cursor       : pointer;
    font-family  : 'Poppins', sans-serif;
    white-space  : nowrap;
    transition   : background .2s, color .3s, border-color .3s;
    color        : var(--push-dismiss-color);
    border       : 1px solid var(--push-dismiss-border);
}
#pwa-dismiss:hover { background: rgba(128,128,128,.1); }

#pwa-close {
    background : none;
    border     : none;
    font-size  : .9rem;
    cursor     : pointer;
    padding    : 0;
    flex-shrink: 0;
    line-height: 1;
    margin-top : 2px;
    transition : opacity .2s, transform .2s, color .3s;
    color      : var(--push-close-color);
}
#pwa-close:hover {
    opacity  : 1 !important;
    transform: scale(1.2);
}

/* ── Animación salida ── */
#pwa-banner-inner.hiding {
    animation: pwaSlideOut .3s ease forwards;
}
@media (max-width: 768px) {
    #pwa-banner-inner.hiding {
        animation: pwaSlideOutMobile .3s ease forwards;
    }
}

/* Salida push banner */
@keyframes pushSlideOut {
    from { opacity:1; transform:translateY(0); }
    to   { opacity:0; transform:translateY(20px); }
}
@keyframes pushSlideOutMobile {
    from { opacity:1; transform:translateX(-50%) translateY(0); }
    to   { opacity:0; transform:translateX(-50%) translateY(20px); }
}

@media (min-width: 769px) {
    #push-banner-inner.hiding {
        animation: pushSlideOut .3s ease forwards;
    }
}
@media (max-width: 768px) {
    #push-banner-inner.hiding {
        animation: pushSlideOutMobile .3s ease forwards;
    }
}
