/* ============================================================
   Vallalkozoi Regisztracios Modal — Design System alapu
   ============================================================ */

#mszv-reg-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(44,62,80,.65);
    backdrop-filter: blur(4px);
    z-index: 999999;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.mszv-reg-dialog {
    background: #fff;
    border-radius: 16px;
    max-width: 580px;
    width: 100%;
    max-height: 92vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 24px 64px rgba(44,62,80,.18);
}

.mszv-reg-dialog-head {
    padding: 24px 28px 0;
    border-bottom: 1px solid var(--border, #e4e8ec);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 10;
    border-radius: 16px 16px 0 0;
}

.mszv-reg-close {
    position: absolute;
    top: 18px;
    right: 20px;
    width: 36px;
    height: 36px;
    border-radius: 9999px;
    border: 1.5px solid var(--border, #e4e8ec);
    background: #fff;
    color: var(--text-muted, #5b6b7a);
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 150ms;
}
.mszv-reg-close:hover {
    background: var(--bg-soft, #f7f8fa);
    color: var(--text, #2c3e50);
}

.mszv-reg-title {
    font: 700 20px/1.2 var(--font-display, 'Plus Jakarta Sans', sans-serif);
    color: var(--text, #2c3e50);
    margin: 0 0 16px;
    padding-right: 40px;
}

/* Progress steps */
.mszv-reg-steps {
    display: flex;
    gap: 6px;
    padding-bottom: 18px;
}
.mszv-reg-step-bar {
    height: 3px;
    border-radius: 9999px;
    background: var(--border, #e4e8ec);
    flex: 1;
    transition: background 250ms;
}
.mszv-reg-step-bar.done { background: var(--vip-red, #c0392b); }

.mszv-reg-body { padding: 24px 28px 28px; }

/* Form grid */
.mszv-reg-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 20px;
}
.mszv-reg-grid .full { grid-column: 1 / -1; }

.mszv-reg-label {
    display: block;
    font: 600 12px/1.2 var(--font-body, 'DM Sans', sans-serif);
    color: var(--text-muted, #5b6b7a);
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 5px;
}
.mszv-reg-req { color: var(--vip-red, #c0392b); }

.mszv-reg-input, .mszv-reg-select {
    width: 100%;
    padding: 10px 13px;
    border: 1.5px solid var(--border, #e4e8ec);
    border-radius: 10px;
    font: 400 14px/1.4 var(--font-body, 'DM Sans', sans-serif);
    color: var(--text, #2c3e50);
    background: #fff;
    transition: border-color 150ms;
    box-sizing: border-box;
}
.mszv-reg-input:focus, .mszv-reg-select:focus {
    border-color: var(--pro-blue, #3498db);
    outline: none;
    box-shadow: 0 0 0 3px rgba(52,152,219,.12);
}

/* Summary box */
.mszv-reg-summary-box {
    background: var(--bg-soft, #f7f8fa);
    border: 1px solid var(--border, #e4e8ec);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 20px;
}
.mszv-reg-summary-row {
    display: flex;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px solid var(--border, #e4e8ec);
    font: 400 14px/1.4 var(--font-body, 'DM Sans', sans-serif);
}
.mszv-reg-summary-row:last-child { border-bottom: none; }
.mszv-reg-sum-label { color: var(--text-muted, #5b6b7a); width: 140px; flex-shrink: 0; }
.mszv-reg-sum-val { color: var(--text, #2c3e50); font-weight: 500; }

/* Tier badge in summary */
.mszv-sum-tier-vip { color: var(--gold-dark, #a8801d); font-weight: 700; }
.mszv-sum-tier-pro { color: var(--pro-blue, #3498db); font-weight: 700; }
.mszv-sum-tier-alap { color: var(--text-muted, #5b6b7a); font-weight: 600; }
.mszv-sum-tier-free { color: var(--text-soft, #8a98a6); font-weight: 500; }

/* Payment summary box */
.mszv-pay-box {
    background: var(--pro-blue-soft, #eaf4fb);
    border: 1.5px solid var(--pro-blue, #3498db);
    border-radius: 12px;
    padding: 16px 20px;
    margin-bottom: 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.mszv-pay-box.vip-pay {
    background: var(--vip-red-soft, #fdecea);
    border-color: var(--vip-red, #c0392b);
}
.mszv-pay-label { font: 600 14px/1.3 var(--font-body, 'DM Sans', sans-serif); color: var(--text, #2c3e50); }
.mszv-pay-amount { font: 800 22px/1 var(--font-display, 'Plus Jakarta Sans', sans-serif); color: var(--text, #2c3e50); }
.mszv-pay-vat { font: 400 12px/1.2 var(--font-body, 'DM Sans', sans-serif); color: var(--text-soft, #8a98a6); }

/* Buttons row */
.mszv-reg-btns {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}
.mszv-reg-btns .btn { flex: 1; justify-content: center; }
.mszv-reg-btns .btn-back { flex: 0 0 auto; padding: 11px 18px; }

/* Error */
.mszv-reg-err {
    color: var(--vip-red, #c0392b);
    font: 500 13px/1.4 var(--font-body, 'DM Sans', sans-serif);
    margin-top: 10px;
    display: none;
    padding: 10px 14px;
    background: var(--vip-red-soft, #fdecea);
    border-radius: 8px;
    border: 1px solid rgba(192,57,43,.2);
}

/* Stripe element wrapper */
#mszv-reg-stripe-el {
    border: 1.5px solid var(--border, #e4e8ec);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
}

/* Loading spinner */
.mszv-reg-loading {
    text-align: center;
    padding: 28px;
}
.mszv-reg-spinner {
    width: 36px; height: 36px;
    border: 3px solid var(--border, #e4e8ec);
    border-top-color: var(--pro-blue, #3498db);
    border-radius: 50%;
    animation: mszv-reg-spin 0.7s linear infinite;
    margin: 0 auto 12px;
}
@keyframes mszv-reg-spin { to { transform: rotate(360deg); } }

/* SSL note */
.mszv-reg-ssl {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font: 400 11px/1.3 var(--font-body, 'DM Sans', sans-serif);
    color: var(--text-soft, #8a98a6);
    margin-top: 12px;
}

/* Radio group */
.mszv-radio-group {
    display: flex;
    gap: 12px;
}
.mszv-radio-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font: 500 14px/1.3 var(--font-body, 'DM Sans', sans-serif);
    color: var(--text, #2c3e50);
    cursor: pointer;
}

/* Consent checkbox */
.mszv-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font: 400 13px/1.5 var(--font-body, 'DM Sans', sans-serif);
    color: var(--text-muted, #5b6b7a);
    margin-top: 4px;
}
.mszv-consent a { color: var(--pro-blue, #3498db); }

/* Success toast */
.mszv-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--text, #2c3e50);
    color: #fff;
    padding: 14px 24px;
    border-radius: 12px;
    font: 600 15px/1.2 var(--font-body, 'DM Sans', sans-serif);
    z-index: 9999999;
    box-shadow: 0 8px 24px rgba(44,62,80,.2);
    animation: mszv-toast-in .3s var(--ease, cubic-bezier(.2,.7,.2,1));
}
.mszv-toast.success { background: #1a7f4e; }
.mszv-toast.error { background: var(--vip-red, #c0392b); }
@keyframes mszv-toast-in {
    from { opacity:0; transform:translateX(-50%) translateY(12px); }
    to   { opacity:1; transform:translateX(-50%) translateY(0); }
}

/* Responsive */
@media (max-width: 640px) {
    .mszv-reg-dialog { border-radius: 14px 14px 0 0; max-height: 96vh; margin-top: auto; }
    .mszv-reg-grid { grid-template-columns: 1fr; }
    .mszv-reg-body { padding: 20px 18px 22px; }
    .mszv-reg-dialog-head { padding: 18px 18px 0; }
}
