/* =========================================
   1. INLINE DARK GATEKEEPER (STEP 1)
   ========================================= */
#msrf-gatekeeper-wrapper {
    background-color: #121212 !important; 
    padding: 35px !important; border-radius: 16px !important;
    color: #ffffff !important; max-width: 450px !important;
    width: 100% !important; margin: 0 auto !important;
    font-family: 'Poppins', 'Inter', sans-serif !important;
    box-shadow: 0 15px 40px rgba(0,0,0,0.6) !important;
    border: 1px solid #333 !important; box-sizing: border-box !important;
}
#msrf-gatekeeper-wrapper h3 { color: #ffffff !important; font-size: 20px !important; margin-bottom: 25px !important; font-weight: 600 !important; letter-spacing: 0.5px !important; }
#msrf-gatekeeper-wrapper .msrf-field { margin-bottom: 18px !important; }
#msrf-gatekeeper-wrapper .msrf-field label { display: block !important; font-size: 14px !important; margin-bottom: 8px !important; color: #ffffff !important; font-weight: 500 !important; }
#msrf-gatekeeper-wrapper .msrf-field label::after { content: " *" !important; color: #ef4444 !important; }
#msrf-gatekeeper-wrapper .msrf-field input {
    width: 100% !important; background-color: #1e1e1e !important; border: 1px solid #3f3f46 !important;
    padding: 14px !important; border-radius: 8px !important; color: #ffffff !important; outline: none !important;
    font-size: 15px !important; transition: border-color 0.2s !important; box-sizing: border-box !important;
}
#msrf-gatekeeper-wrapper .msrf-field input:focus { border-color: #f59e0b !important; }
#msrf-gatekeeper-wrapper .msrf-field input::placeholder { color: #71717a !important; }
#msrf-gatekeeper-wrapper .msrf-terms { font-size: 12px !important; color: #a1a1aa !important; margin: 20px 0 !important; line-height: 1.5 !important; }

/* Buttons */
.msrf-gold-btn {
    width: 100% !important; display: block; background-color: #f59e0b !important; color: #111111 !important;
    border: none !important; padding: 16px !important; border-radius: 8px !important; cursor: pointer !important;
    font-size: 16px !important; font-weight: 700 !important; margin-top: 10px !important; box-shadow: none !important;
}
.msrf-gold-btn:hover { background-color: #d97706 !important; }

/* Mobile Override */
@media (max-width: 768px) {
    #msrf-gatekeeper-wrapper { background-color: #ffffff !important; color: #111111 !important; border: 1px solid #e5e7eb !important; padding: 25px !important; width: 95% !important; }
    #msrf-gatekeeper-wrapper h3 { color: #111111 !important; }
    #msrf-gatekeeper-wrapper .msrf-field label { color: #1f2937 !important; }
    #msrf-gatekeeper-wrapper .msrf-field input { background-color: #ffffff !important; border: 1px solid #d1d5db !important; color: #111111 !important; }
}

/* =========================================
   2. POPUP CONTAINER & OVERLAY (STEPS 2-4)
   ========================================= */
.msrf-popup-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.8); z-index: 99999;
    display: flex; align-items: center; justify-content: center;
    padding: 20px; backdrop-filter: blur(5px);
}
.msrf-popup-container {
    background: #ffffff !important; border-radius: 20px !important; padding: 30px 24px !important;
    max-width: 550px !important; width: 100% !important; margin: 0 auto !important;
    font-family: 'Poppins', sans-serif !important; box-shadow: 0 20px 60px rgba(0,0,0,0.3) !important;
    color: #111 !important; max-height: 90vh; overflow-y: auto; position: relative;
}
.msrf-popup-container * { box-sizing: border-box !important; }

/* Header & Progress */
.msrf-header { display: flex !important; align-items: center !important; justify-content: space-between !important; margin-bottom: 25px !important; }
.msrf-back, .msrf-close { background: transparent !important; border: none !important; font-size: 26px !important; cursor: pointer !important; color: #888 !important; width: 36px !important; height: 36px !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; transition: 0.2s !important; padding: 0 !important; margin: 0 !important; }
.msrf-back:hover, .msrf-close:hover { background: #f5f5f5 !important; color: #111 !important; }
.msrf-progress { flex-grow: 1 !important; height: 8px !important; background: #f0f0f0 !important; margin: 0 15px !important; border-radius: 10px !important; overflow: hidden !important; }
.msrf-progress-bar { height: 100% !important; background: #390a87 !important; width: 0%; transition: width 0.3s ease !important; }

/* Typography & Steps */
.msrf-step { display: none !important; animation: fadeIn 0.3s ease-out !important; }
.msrf-step.active { display: block !important; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.msrf-popup-container h2 { font-size: 20px !important; font-weight: 700 !important; margin: 0 0 5px 0 !important; color: #111 !important; line-height: 1.3 !important; }
.msrf-popup-container p { color: #666 !important; font-size: 14px !important; margin: 0 0 20px 0 !important; font-weight: 500 !important;}

/* Forms inside Popup */
.msrf-input-group { margin-bottom: 15px !important; }
.msrf-input-group label { display: block !important; font-size: 13px !important; font-weight: 600 !important; margin-bottom: 6px !important; color: #444 !important; }
.msrf-input-group input { width: 100% !important; padding: 14px 16px !important; border: 1px solid #d1d5db !important; border-radius: 8px !important; font-size: 15px !important; background: #fff !important; color: #111 !important; }
.msrf-input-group input:focus { border-color: #390a87 !important; }

/* Cards & Lists */
.msrf-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 12px !important; margin-bottom: 20px !important; }
@media (max-width: 480px) { .msrf-grid { grid-template-columns: repeat(2, 1fr) !important; } }
.msrf-radio-card { background: #fff !important; border: 1px solid #e5e7eb !important; border-radius: 10px !important; cursor: pointer !important; text-align: center !important; position: relative !important; display: block !important; padding:0 !important; margin:0 !important; }
.msrf-radio-card input { display: none !important; }
.msrf-radio-card .card-content { padding: 15px 10px !important; font-size: 13px !important; font-weight: 600 !important; color: #444 !important; border-radius: 10px !important; }
.msrf-radio-card input:checked + .card-content { border: 2px solid #390a87 !important; background: #faf5ff !important; margin: -1px !important; color: #390a87 !important; }

.msrf-list-group { display: flex !important; flex-direction: column !important; gap: 10px !important; margin-bottom: 20px !important; }
.msrf-list-item { border: 1px solid #e5e7eb !important; border-radius: 8px !important; padding: 14px 16px !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: space-between !important; background: #fff !important; font-weight: 600 !important; font-size: 14px !important; margin:0 !important; }
.msrf-list-item span { order: 1 !important; }
.msrf-list-item input { order: 2 !important; width: 18px !important; height: 18px !important; accent-color: #390a87 !important; margin:0 !important; }

/* Popup Buttons */
.msrf-btn { width: 100% !important; display: block !important; padding: 16px !important; background: #390a87 !important; color: #ffffff !important; border: none !important; border-radius: 8px !important; font-size: 16px !important; cursor: pointer !important; font-weight: 700 !important; margin-top: 15px !important; }
.msrf-btn:disabled, .msrf-btn.msrf-disabled { background: #e0e0e0 !important; color: #999 !important; pointer-events: none !important; }

/* Success Msg */
.msrf-success-msg { text-align: center !important; padding: 40px 0 !important; animation: fadeIn 0.5s ease-out !important; }


/* MSRF Custom Logo & Multi-Select CSS */
.msrf-list-item.msrf-checkbox-item { display: flex !important; justify-content: space-between !important; align-items: center !important; }
.msrf-uni-info { display: flex !important; align-items: center !important; gap: 12px !important; }
.msrf-uni-logo { width: 35px !important; height: 35px !important; object-fit: contain !important; background: #f8f9fa !important; border-radius: 4px !important; padding: 2px !important; border: 1px solid #eee !important; margin: 0 !important; }
.msrf-checkbox-item input[type="checkbox"] { width: 18px !important; height: 18px !important; margin: 0 !important; accent-color: #390a87 !important; cursor: pointer !important; }