/**
 * CLINIDOK - PMS Register Optimizer
 * Scoped visual layer for [pms-register].
 * v0.1.3
 */

.clinidok-pms-register-shell {
    --cdok-pms-primary: #1f4f75;
    --cdok-pms-primary-dark: #123652;
    --cdok-pms-accent: #0f9f9a;
    --cdok-pms-ink: #17202a;
    --cdok-pms-muted: #64748b;
    --cdok-pms-soft: #f8fafc;
    --cdok-pms-soft-2: #f1f5f9;
    --cdok-pms-border: #d9e2ec;
    --cdok-pms-danger: #b42318;
    --cdok-pms-success: #027a48;
    --cdok-pms-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);

    width: 100%;
    max-width: 1120px;
    margin: 0 auto 28px;
    color: var(--cdok-pms-ink);
}

.clinidok-pms-register-shell,
.clinidok-pms-register-shell * {
    box-sizing: border-box;
}

.clinidok-pms-register-panel {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 24px;
    border: 1px solid var(--cdok-pms-border);
    border-radius: 9px;
    background: #ffffff;
    box-shadow: var(--cdok-pms-shadow);
}

.clinidok-pms-register-panel::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, var(--cdok-pms-primary), var(--cdok-pms-accent));
    pointer-events: none;
}

.clinidok-pms-register-shell form#pms_register-form.clinidok-pms-register-form,
.clinidok-pms-register-form {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
}

.clinidok-pms-register-form ul,
.clinidok-pms-register-form li {
    margin-left: 0 !important;
    padding-left: 0 !important;
    list-style: none !important;
}

.clinidok-pms-register-form .pms-form-fields-wrapper {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-basis: auto !important;
}

.clinidok-pms-register-form .pms-account-section-wrapper,
.clinidok-pms-register-form .pms-billing-details,
.clinidok-pms-register-form .pms-credit-card-information {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 14px 16px;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.clinidok-pms-register-form .pms-account-section-wrapper {
    align-items: start;
}

.clinidok-pms-register-form .pms-account-section-wrapper {
    padding: 18px !important;
    border: 1px solid var(--cdok-pms-border) !important;
    border-radius: 9px !important;
    background: #ffffff !important;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04) !important;
}

.clinidok-pms-register-form .pms-billing-details,
.clinidok-pms-register-form .pms-credit-card-information,
.clinidok-pms-register-form #pms-paygates-wrapper,
.clinidok-pms-register-form #pms-stripe-connect,
.clinidok-pms-register-form .pms-payment-gateways-wrapper,
.clinidok-pms-register-form .pms-payment-gateways,
.clinidok-pms-register-form .pms-payment-methods-wrapper {
    margin-top: 18px !important;
    padding-top: 18px !important;
    border-top: 1px solid var(--cdok-pms-border) !important;
}

.clinidok-pms-register-form .pms-field,
.clinidok-pms-register-form .pms-billing-details .pms-field,
.clinidok-pms-register-form .pms-credit-card-information .pms-field {
    position: relative;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* PMS Pro Form Designs uses floating/absolute labels. This addon resets them only inside the optimized register form. */
.clinidok-pms-register-shell form#pms_register-form.clinidok-pms-register-form.pms-form-design-wrapper .pms-account-section-wrapper .pms-field:not(.pms-field-subscriptions) > label,
.clinidok-pms-register-shell form#pms_register-form.clinidok-pms-register-form.pms-form-design-wrapper .pms-billing-details .pms-field:not(.pms-field-subscriptions) > label,
.clinidok-pms-register-shell form#pms_register-form.clinidok-pms-register-form.pms-form-design-wrapper .pms-credit-card-information .pms-field:not(.pms-field-subscriptions) > label,
.clinidok-pms-register-form .pms-account-section-wrapper .pms-field > label,
.clinidok-pms-register-form .pms-billing-details .pms-field > label,
.clinidok-pms-register-form .pms-credit-card-information .pms-field > label {
    position: static !important;
    inset: auto !important;
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    color: #334155 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    text-indent: 0 !important;
    pointer-events: auto !important;
    transform: none !important;
    white-space: normal !important;
}

.clinidok-pms-register-form h3,
.clinidok-pms-register-form h4,
.clinidok-pms-register-form .pms-account-details-title,
.clinidok-pms-register-form .pms-subscriptions-list-title {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: var(--cdok-pms-primary-dark) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.18 !important;
    letter-spacing: -0.02em !important;
}

.clinidok-pms-register-form .pms-field-type-heading,
.clinidok-pms-register-form .pms-gdpr-field,
.clinidok-pms-register-form .pms-email-marketing-field,
.clinidok-pms-register-form .pms-field-subscriptions,
.clinidok-pms-register-form .pms-field-card-number,
.clinidok-pms-register-form .pms-field-billing-address,
.clinidok-pms-register-form .pms-field-description,
.clinidok-pms-register-form #pms-recaptcha-login-wrapper,
.clinidok-pms-register-form #pms-recaptcha-register-wrapper,
.clinidok-pms-register-form .beehive,
.clinidok-pms-register-form .pms-field-errors-wrapper,
.clinidok-pms-register-form .pms_field-errors-wrapper,
.clinidok-pms-register-form .pms-form-errors-wrapper,
.clinidok-pms-register-form .pms_success-messages-wrapper,
.clinidok-pms-register-form h3,
.clinidok-pms-register-form h4 {
    grid-column: 1 / -1;
}

.clinidok-pms-register-form input[type="text"],
.clinidok-pms-register-form input[type="email"],
.clinidok-pms-register-form input[type="password"],
.clinidok-pms-register-form input[type="tel"],
.clinidok-pms-register-form input[type="url"],
.clinidok-pms-register-form input[type="number"],
.clinidok-pms-register-form input[type="search"],
.clinidok-pms-register-form textarea,
.clinidok-pms-register-form select,
.clinidok-pms-register-form #pms-stripe-credit-card-details {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid var(--cdok-pms-border) !important;
    border-radius: 9px !important;
    background-color: #ffffff !important;
    color: var(--cdok-pms-ink) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease !important;
}

.clinidok-pms-register-form textarea {
    min-height: 86px !important;
    resize: vertical;
}

.clinidok-pms-register-form select {
    appearance: auto;
}

.clinidok-pms-register-form input:focus,
.clinidok-pms-register-form textarea:focus,
.clinidok-pms-register-form select:focus,
.clinidok-pms-register-form #pms-stripe-credit-card-details.StripeElement--focus {
    border-color: rgba(15, 159, 154, 0.72) !important;
    background-color: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(15, 159, 154, 0.12) !important;
}

.clinidok-pms-register-form .pms-field-error input,
.clinidok-pms-register-form .pms-field-error textarea,
.clinidok-pms-register-form .pms-field-error select {
    border-color: rgba(180, 35, 24, 0.75) !important;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08) !important;
}

.clinidok-pms-register-form .pms-field-description,
.clinidok-pms-register-form #pms-pass-strength-result,
.clinidok-pms-register-form .pms-pass1-field > small,
.clinidok-pms-register-form .pms-pass1-field > p {
    display: block !important;
    width: 100% !important;
    margin: 6px 0 0 !important;
    padding: 0 !important;
    color: var(--cdok-pms-muted) !important;
    font-size: 12px !important;
    font-style: normal !important;
    line-height: 1.45 !important;
    white-space: normal !important;
}

.clinidok-pms-register-form #pms-pass-strength-result {
    padding: 8px 10px !important;
    border-radius: 9px !important;
}

.clinidok-pms-register-form .pms-field-subscriptions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100% !important;
    min-width: 0 !important;
    margin: 18px 0 0 !important;
    padding: 18px !important;
    border: 1px solid var(--cdok-pms-border) !important;
    border-radius: 9px !important;
    background: #ffffff !important;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04) !important;
}

.clinidok-pms-register-shell--plans-top .clinidok-pms-register-form .pms-field-subscriptions {
    margin: 0 0 18px !important;
}

.clinidok-pms-register-form .pms-field-subscriptions .pms-subscriptions-list-title,
.clinidok-pms-register-form .pms-field-subscriptions .pms_field-errors-wrapper,
.clinidok-pms-register-form .pms-field-subscriptions .pms-field-errors-wrapper {
    grid-column: 1 / -1;
}

.clinidok-pms-register-form .pms-subscription-plan,
.clinidok-pms-register-form .pms-field-subscriptions > .pms-subscription-plan,
.clinidok-pms-register-form .pms-field-subscriptions > .pms-subscription-plan.pms-hidden {
    position: relative;
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 13px 14px !important;
    border: 1px solid var(--cdok-pms-border) !important;
    border-radius: 9px !important;
    background: #ffffff !important;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, background-color 160ms ease !important;
}

.clinidok-pms-register-form .pms-subscription-plan:hover,
.clinidok-pms-register-form .pms-subscription-plan.is-selected,
.clinidok-pms-register-form .pms-subscription-plan:has(input[type="radio"]:checked) {
    border-color: rgba(31, 79, 117, 0.88) !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(31, 79, 117, 0.08), 0 10px 24px rgba(15, 23, 42, 0.06) !important;
}

.clinidok-pms-register-form .pms-subscription-plan label {
    position: static !important;
    display: grid !important;
    grid-template-columns: auto 1fr;
    gap: 6px 8px;
    align-items: start;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.28 !important;
    cursor: pointer;
    pointer-events: auto !important;
}

.clinidok-pms-register-form .pms-subscription-plan input[type="radio"] {
    width: 16px !important;
    height: 16px !important;
    min-height: 0 !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    accent-color: var(--cdok-pms-accent);
}

.clinidok-pms-register-form .pms-subscription-plan-name {
    color: var(--cdok-pms-primary-dark) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.28 !important;
}

.clinidok-pms-register-form .pms-subscription-plan-price,
.clinidok-pms-register-form .pms-subscription-plan-trial,
.clinidok-pms-register-form .pms-subscription-plan-sign-up-fee {
    grid-column: 2;
    color: var(--cdok-pms-muted) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.clinidok-pms-register-form .pms-subscription-plan-price-value {
    color: var(--cdok-pms-primary) !important;
    font-size: 18px !important;
    font-weight: 850 !important;
}

.clinidok-pms-register-form .pms-subscription-plan-description {
    margin: 9px 0 0 24px !important;
    color: #5b6b7c !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
}

.clinidok-pms-register-form .pms-divider {
    opacity: 0.55;
}

.clinidok-pms-register-form .pms-credit-card-information .pms-field-card-expiration {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    gap: 6px;
    align-items: end;
}

.clinidok-pms-register-form .pms-credit-card-information .pms-field-card-expiration label,
.clinidok-pms-register-form .pms-credit-card-information .pms-field-card-expiration .pms_field-errors-wrapper,
.clinidok-pms-register-form .pms-credit-card-information .pms-field-card-expiration .pms-field-errors-wrapper {
    grid-column: 1 / -1;
}

.clinidok-pms-register-form .pms_expiration_date_separator {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    color: var(--cdok-pms-muted);
}

.clinidok-pms-register-form .pms-billing-toggle,
.clinidok-pms-register-form .pms-gdpr-field,
.clinidok-pms-register-form .pms-email-marketing-field {
    padding: 11px 12px !important;
    border: 1px solid var(--cdok-pms-border) !important;
    border-radius: 9px !important;
    background: #ffffff !important;
}

.clinidok-pms-register-form .pms-billing-toggle label,
.clinidok-pms-register-form .pms-gdpr-field label,
.clinidok-pms-register-form .pms-email-marketing-field label,
.clinidok-pms-register-form .pms-field-type-checkbox label,
.clinidok-pms-register-form .pms-field-type-radio label {
    position: static !important;
    display: inline-flex !important;
    gap: 8px;
    align-items: flex-start;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    pointer-events: auto !important;
}

.clinidok-pms-register-form input[type="checkbox"],
.clinidok-pms-register-form input[type="radio"] {
    accent-color: var(--cdok-pms-accent);
}

.clinidok-pms-register-form .pms_field-errors-wrapper,
.clinidok-pms-register-form .pms-field-errors-wrapper,
.clinidok-pms-register-form .pms-form-errors-wrapper {
    display: block !important;
    width: 100% !important;
    margin: 7px 0 0 !important;
    padding: 9px 11px !important;
    border: 1px solid rgba(180, 35, 24, 0.24) !important;
    border-radius: 9px !important;
    background: rgba(254, 243, 242, 0.95) !important;
    color: var(--cdok-pms-danger) !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

.clinidok-pms-register-form .pms_field-errors-wrapper p,
.clinidok-pms-register-form .pms-field-errors-wrapper p,
.clinidok-pms-register-form .pms-form-errors-wrapper p {
    margin: 0 !important;
    color: var(--cdok-pms-danger) !important;
}

.clinidok-pms-register-shell .pms_success-messages-wrapper p,
.clinidok-pms-register-shell .pms_success-messages-wrapper {
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(2, 122, 72, 0.22) !important;
    border-radius: 9px !important;
    background: rgba(236, 253, 243, 0.96) !important;
    color: var(--cdok-pms-success) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

.clinidok-pms-register-form > input[type="submit"],
.clinidok-pms-register-form .pms-form-submit,
.clinidok-pms-register-form input[name="pms_register"],
.clinidok-pms-register-form input[type="submit"] {
    display: block !important;
    width: auto !important;
    min-width: 150px;
    min-height: 42px !important;
    margin: 18px 0 0 auto !important;
    padding: 10px 18px !important;
    border: 1px solid var(--cdok-pms-primary) !important;
    border-radius: 9px !important;
    background: var(--cdok-pms-primary) !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.01em !important;
    cursor: pointer;
    box-shadow: 0 6px 14px rgba(31, 79, 117, 0.16) !important;
    transition: transform 150ms ease, box-shadow 150ms ease, filter 150ms ease !important;
}

.clinidok-pms-register-form > input[type="submit"]:hover,
.clinidok-pms-register-form .pms-form-submit:hover,
.clinidok-pms-register-form input[name="pms_register"]:hover,
.clinidok-pms-register-form input[type="submit"]:hover {
    filter: brightness(1.03);
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(31, 79, 117, 0.18) !important;
}

.clinidok-pms-register-form .pms-submit-disabled,
.clinidok-pms-register-form input[type="submit"]:disabled {
    opacity: 0.72;
    cursor: wait !important;
    transform: none;
}

.clinidok-pms-register-form .pms-loading,
.clinidok-pms-register-form .pms-spinner__holder {
    border-radius: 9px !important;
    background: var(--cdok-pms-soft) !important;
}

/* Width-aware layout. JS adds these classes based on the real rendered container, not viewport width. */
.clinidok-pms-register-shell.cdok-pms-is-medium .clinidok-pms-register-form .pms-account-section-wrapper,
.clinidok-pms-register-shell.cdok-pms-is-medium .clinidok-pms-register-form .pms-billing-details,
.clinidok-pms-register-shell.cdok-pms-is-medium .clinidok-pms-register-form .pms-credit-card-information {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.clinidok-pms-register-shell.cdok-pms-is-medium .clinidok-pms-register-form .pms-field-subscriptions.cdok-pms-has-multiple-plans {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form > .pms-form-fields-wrapper {
    display: grid !important;
    grid-template-columns: minmax(430px, 1fr) minmax(320px, 0.78fr);
    gap: 24px;
    align-items: start;
}

.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form .pms-account-section-wrapper {
    grid-column: 1;
}

.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form .pms-field-subscriptions {
    grid-column: 2;
    margin: 0 !important;
    grid-template-columns: 1fr;
}

.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form .pms-billing-details,
.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form .pms-credit-card-information,
.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form #pms-paygates-wrapper,
.clinidok-pms-register-shell.cdok-pms-is-wide.clinidok-pms-register-shell--plans-bottom .clinidok-pms-register-form #pms-stripe-connect {
    grid-column: 1 / -1;
}

@media (max-width: 781px) {
    .clinidok-pms-register-panel {
        padding: 18px;
    }

    .clinidok-pms-register-form > input[type="submit"],
    .clinidok-pms-register-form .pms-form-submit,
    .clinidok-pms-register-form input[name="pms_register"],
    .clinidok-pms-register-form input[type="submit"] {
        width: 100% !important;
    }
}

/* v0.1.3 - PMS Pro selected/hover plan label override requested for CLINIDOK register form only. */
.clinidok-pms-register-shell .pms-form-design-wrapper .pms-subscription-plan label.selected,
.clinidok-pms-register-shell .pms-form-design-wrapper .pms-subscription-plan label:hover,
.clinidok-pms-register-shell .pms-form-design-wrapper .pms-subscription-plan.is-selected label {
    /* border-color: #1079F3; */
    padding: 12px !important;
    background-color: aliceblue !important;
    border-radius: 9px !important;
}
