@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&display=swap');

.blf-vitrine-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 25px;
    margin: 30px 0;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* Card Vitrine */
.blf-card {
    background: #ffffff;
    border-radius: 18px;
    border: 2px solid #e2e8f0;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.blf-card:hover {
    transform: translateY(-4px);
    border-color: #0284c7;
}

.blf-card-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 16px;
    background: #0f172a;
}

.blf-badge-cat {
    font-size: 11px;
    font-weight: 800;
    color: #fff;
    padding: 4px 10px;
    border-radius: 20px;
    letter-spacing: 0.5px;
}

.blf-cat-bronze { background: #b45309; }
.blf-cat-prata  { background: #475569; }
.blf-cat-ouro   { background: #d97706; }
.blf-cat-vip    { background: #6b21a8; }

.blf-pulse-date {
    font-size: 11px;
    font-weight: 700;
    color: #fef08a;
    background: rgba(250, 204, 21, 0.15);
    border: 1px solid rgba(250, 204, 21, 0.4);
    padding: 3px 8px;
    border-radius: 20px;
    animation: blfPulse 1.8s infinite;
}

@keyframes blfPulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.65; transform: scale(0.97); }
    100% { opacity: 1; transform: scale(1); }
}

/* Destaque Concurso */
.blf-concurso-highlight {
    background: linear-gradient(135deg, #0284c7, #0369a1);
    color: #ffffff;
    text-align: center;
    padding: 14px 10px;
    border-bottom: 2px solid #0284c7;
}

.blf-concurso-highlight small {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    opacity: 0.85;
}

.blf-concurso-numero {
    font-size: 24px;
    font-weight: 900;
    letter-spacing: 1px;
    margin-top: 2px;
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.blf-card-body {
    padding: 18px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.blf-card-title {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 800;
    color: #0f172a;
    text-align: center;
}

.blf-strategy-box {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 14px;
}

.blf-price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #f1f5f9;
    padding: 10px 14px;
    border-radius: 10px;
    margin-bottom: 16px;
}

.blf-price-label { font-size: 12px; color: #64748b; font-weight: 600; }
.blf-price-value { font-size: 20px; font-weight: 800; color: #0f172a; }

.blf-progress-wrapper { margin-bottom: 18px; }
.blf-progress-info { display: flex; justify-content: space-between; font-size: 12px; color: #475569; font-weight: 700; margin-bottom: 5px; }
.blf-progress-track { background: #e2e8f0; height: 10px; border-radius: 10px; overflow: hidden; }
.blf-progress-fill { height: 100%; background: linear-gradient(90deg, #16a34a, #22c55e); border-radius: 10px; }
.blf-progress-sub { display: block; font-size: 11px; color: #94a3b8; text-align: center; margin-top: 5px; }

.blf-card-footer { margin-top: auto; }
.blf-btn-primary {
    display: block; text-align: center; width: 100%;
    background: linear-gradient(135deg, #16a34a, #15803d);
    color: #ffffff !important; text-decoration: none !important;
    font-weight: 800; font-size: 14px; padding: 13px; border-radius: 10px;
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
}
.blf-btn-primary:hover { background: linear-gradient(135deg, #15803d, #166534); }
.blf-btn-disabled { display: block; text-align: center; background: #cbd5e1; color: #64748b !important; text-decoration: none !important; font-weight: 700; font-size: 13px; padding: 13px; border-radius: 10px; cursor: not-allowed; }

/* Página do Bolão Single */
.blf-single-container { font-family: 'Inter', system-ui, sans-serif; background: #fff; padding: 25px; border-radius: 16px; border: 1px solid #e2e8f0; }
.blf-concurso-badge-lg { display: inline-block; background: #0284c7; color: #fff; font-weight: 900; padding: 6px 16px; border-radius: 20px; font-size: 14px; margin-bottom: 10px; }
.blf-pulse-date-lg { display: inline-block; background: #fef08a; color: #854d0e; font-weight: 700; padding: 6px 14px; border-radius: 20px; font-size: 13px; margin-top: 5px; }
.blf-single-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-top: 20px; }
.blf-info-card, .blf-form-card { background: #f8fafc; padding: 20px; border-radius: 12px; border: 1px solid #e2e8f0; }
.blf-info-list { list-style: none; padding: 0; margin: 0; }
.blf-info-list li { padding: 8px 0; border-bottom: 1px solid #e2e8f0; font-size: 14px; }
.blf-input-group { margin-bottom: 15px; }
.blf-input-group label { display: block; font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 5px; }
.blf-input { width: 100%; padding: 12px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 14px; box-sizing: border-box; }
.blf-btn-block { width: 100%; border: none; cursor: pointer; }
.blf-num { display: inline-block; padding: 4px 8px; background: #e2e8f0; border-radius: 4px; margin: 2px; font-size: 13px; }
.blf-num-hit { display: inline-block; padding: 4px 8px; background: #16a34a; color: #fff; font-weight: bold; border-radius: 4px; margin: 2px; font-size: 13px; }
.blf-hit-count { font-weight: bold; color: #16a34a; }

/* Modal PIX */
.blf-modal-overlay { position: fixed; top:0; left:0; width:100%; height:100%; background:rgba(15, 23, 42, 0.85); display:flex; align-items:center; justify-content:center; z-index:999999; }
.blf-modal-content { background:#fff; padding:30px; border-radius:16px; max-width:400px; width:90%; text-align:center; font-family: 'Inter', sans-serif; }
.blf-qrcode { max-width:180px; margin:15px auto; display:block; border-radius: 8px; }
.blf-input-pix { width:100%; padding:10px; text-align:center; margin-top:10px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 13px; box-sizing: border-box; }
.blf-btn-copy, .blf-btn-close { width:100%; padding:12px; border:none; border-radius:8px; margin-top:10px; font-weight:bold; cursor:pointer; font-size: 14px; }
.blf-btn-copy { background:#0284c7; color:#fff; }
.blf-btn-close { background:#16a34a; color:#fff; }

/* Dashboard / Perfil / Carteira */
.blf-user-dashboard { font-family: 'Inter', sans-serif; margin: 20px 0; }
.blf-wallet-card {
    background: linear-gradient(135deg, #0f172a, #1e293b);
    color: #fff;
    padding: 24px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
}
.blf-wallet-card small { opacity: 0.8; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.blf-wallet-card h2 { margin: 5px 0 0 0; font-size: 32px; color: #4ade80; }
.blf-btn-saque {
    background: #22c55e;
    color: #fff;
    border: none;
    padding: 12px 20px;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
}
.blf-btn-saque:disabled { background: #475569; cursor: not-allowed; opacity: 0.6; }

.blf-table-dashboard { width: 100%; border-collapse: collapse; margin-top: 15px; }
.blf-table-dashboard th, .blf-table-dashboard td { padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: left; font-size: 14px; }
.blf-table-dashboard th { background: #f8fafc; font-weight: 700; color: #475569; }

.blf-status-badge { padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.status-aprovado { background: #dcfce7; color: #166534; }
.status-pendente { background: #fef9c3; color: #854d0e; }
.status-cancelado { background: #fee2e2; color: #991b1b; }
.blf-alert-info { background: #e0f2fe; color: #0369a1; padding: 15px; border-radius: 10px; font-weight: 600; text-align: center; }