/* Keep the public registration form in the same full-viewport shell as login.
   This file is loaded after the shared theme stylesheet because the latter
   still contains legacy standalone-registration padding rules. */
.pp-registration-shell {
    background: var(--bg, #f8fafc) !important;
    display: grid !important;
    grid-template-columns: 45% 55% !important;
    min-height: 100vh !important;
    padding: 0 !important;
}

.pp-registration-story { min-height: 100vh; }

/* The registration form is taller than the login form.  Do not let that
   height distribute the story content across the full column. */
.pp-registration-story .pp-login-story-content {
    height: 100%;
    justify-content: flex-start;
    min-height: 100vh;
}

.pp-registration-story .pp-login-story-copy { margin: 50px 0 0; }

.pp-registration-story .pp-login-trust { margin-top: auto; }

.pp-registration-panel {
    align-items: center !important;
    min-height: 100vh;
    padding: 48px 28px !important;
}

.pp-registration-panel .pp-registration-card {
    border-radius: 18px !important;
    margin-inline: auto;
    max-width: 30rem !important;
    padding: clamp(2rem, 3vw, 2.375rem) !important;
}

.pp-registration-progress {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 0 22px;
}

.pp-registration-progress span {
    align-items: center;
    border-bottom: 2px solid #e2e8f0;
    color: #94a3b8;
    display: flex;
    font-size: 12px;
    font-weight: 700;
    gap: 7px;
    padding-bottom: 9px;
}

.pp-registration-progress b {
    align-items: center;
    background: #e2e8f0;
    border-radius: 50%;
    color: #64748b;
    display: inline-flex;
    font-size: 11px;
    height: 22px;
    justify-content: center;
    width: 22px;
}

.pp-registration-progress .is-active,
.pp-registration-progress .is-complete { border-color: #2563eb; color: #2563eb; }
.pp-registration-progress .is-active b,
.pp-registration-progress .is-complete b { background: #2563eb; color: #fff; }

.pp-registration-actions { align-items: center; display: flex; gap: 10px; margin-top: 22px; }
.pp-registration-actions .pp-registration-submit { margin-top: 0; }
.pp-registration-actions[data-registration-step-actions="1"] { display: block; }
.pp-registration-actions[data-registration-step-actions="2"] .pp-registration-submit { flex: 1; }

.pp-registration-previous {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 11px;
    color: #475569;
    font-size: 14px;
    font-weight: 700;
    height: 45px;
    min-width: 92px;
}

.pp-registration-previous:hover { background: #f8fafc; border-color: #94a3b8; color: #1e293b; }
.pp-registration-actions[hidden],
.pp-registration-section[hidden],
.pp-registration-cta-context[hidden],
.pp-registration-signin[hidden] { display: none !important; }

.pp-registration-modal .modal-dialog {
    /* The active registration step is deliberately compact. A viewport-sized
       dialog leaves an empty white panel below it on large and rotated
       displays, so always let the dialog follow its content. */
    height: auto !important;
    margin: 1rem auto !important;
    max-width: 56rem;
    min-height: 0 !important;
    width: min(94vw, 56rem);
}

.pp-registration-modal .modal-content {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}
.pp-registration-modal .modal-header { align-items: center; padding: 1rem 1.25rem; }
.pp-registration-modal-brand { align-items: center; display: flex; gap: 9px; }
.pp-registration-modal-brand img { height: 32px; object-fit: contain; width: 32px; }
.pp-registration-modal-brand .modal-title { color: #1e293b; font-size: 20px; font-weight: 800; }
.pp-registration-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: visible !important;
}
.pp-registration-modal-copy { display: none; }
.pp-registration-modal-copy h3 { color: #1e293b; font-size: 16px; font-weight: 800; margin: 0 0 3px; }
.pp-registration-modal-copy p { color: #64748b; font-size: 14px; margin: 0; }
.pp-registration-modal .pp-registration-intro { display: none !important; }
.pp-registration-modal .pp-registration-modal-card { max-width: none !important; padding: .8rem 1.25rem 1rem !important; width: 100%; }
.pp-registration-modal .pp-registration-section .col-md-6,
.pp-registration-modal .pp-registration-section:first-of-type .col-md-6 { width: 50% !important; }
.pp-registration-modal .pp-registration-progress { margin-bottom: .65rem; }
.pp-registration-modal .pp-registration-section { margin-top: 0 !important; padding-top: 0 !important; }
.pp-registration-modal .pp-registration-section .row { --bs-gutter-x: .8rem; --bs-gutter-y: .5rem; }
.pp-registration-modal .pp-registration-section-title { margin-bottom: .55rem; }
.pp-registration-modal .pp-registration-section-title > span { height: 28px; width: 28px; }
.pp-registration-modal .pp-registration-section-title h2 { font-size: 14px; }
.pp-registration-modal .pp-registration-section-title p { font-size: 10px; }
.pp-registration-modal .pp-registration-card .form-label { font-size: 11px; margin-bottom: 3px; }
.pp-registration-modal .pp-registration-card .form-control { font-size: 13px; height: 38px; padding: 0 10px; }
.pp-registration-modal .pp-registration-card .tf-password-toggle { min-width: 38px; }
.pp-registration-modal .pp-registration-password-meta { display: none; }
.pp-registration-modal .pp-registration-actions { margin-top: .8rem; }
.pp-registration-modal .pp-registration-submit { height: 40px; margin-top: 0; }
.pp-registration-modal .pp-registration-signin { font-size: 12px; margin: 8px 0 0; }
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="1"]:not([hidden]) {
    align-items: center;
    display: flex !important;
    flex-direction: column;
    margin-top: .7rem;
}
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="1"]:not([hidden]) .pp-registration-submit {
    flex: 0 0 40px;
    max-width: 22rem;
    width: min(100%, 22rem) !important;
}
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="1"]:not([hidden]) .pp-registration-signin {
    display: block !important;
    text-align: center;
    width: 100%;
}
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="1"][hidden] {
    display: none !important;
}
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="2"]:not([hidden]) {
    justify-content: center;
    margin-top: .65rem;
}
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="2"]:not([hidden]) .pp-registration-previous {
    flex: 0 0 92px;
}
.pp-registration-modal .pp-registration-actions[data-registration-step-actions="2"]:not([hidden]) .pp-registration-submit {
    flex: 0 1 22rem;
    max-width: 22rem;
    width: min(100%, 22rem);
}
.pp-registration-modal .pp-registration-cta-context {
    font-size: 11px;
    margin: .35rem 0 0;
}
.pp-registration-modal .pp-registration-signin[data-registration-step-actions="2"] {
    margin-top: .35rem;
}

@media (max-width: 991.98px) {
    .pp-registration-shell { grid-template-columns: 1fr !important; }
    .pp-registration-panel { padding: 32px 20px !important; }
}

@media (max-width: 575.98px) {
    .pp-registration-panel { padding: 20px 16px !important; }
    .pp-registration-panel .pp-registration-card { padding: 1.75rem 1.4rem !important; }
    .pp-registration-progress { margin-bottom: 18px; }
    .pp-registration-modal .modal-dialog { height: auto !important; margin: .5rem auto !important; width: 97vw; }
    .pp-registration-modal .modal-content { max-height: none !important; }
    .pp-registration-modal .pp-registration-section .col-md-6,
    .pp-registration-modal .pp-registration-section:first-of-type .col-md-6 { width: 100% !important; }
}
