/* PWPM frontend theme bridge. All rules are scoped to PWPM components. */
.pwpm-register,
.pwpm-account,
.pwpm-auth-card {
    --pwpm-primary: var(--wp--preset--color--primary, var(--theme-palette-color-1, var(--ast-global-color-0, #2563eb)));
    --pwpm-primary-hover: var(--wp--preset--color--secondary, var(--theme-palette-color-2, var(--ast-global-color-1, #1d4ed8)));
    --pwpm-text: var(--wp--preset--color--contrast, var(--theme-palette-color-3, var(--ast-global-color-3, #0f172a)));
    --pwpm-muted: var(--wp--preset--color--secondary, var(--theme-palette-color-4, var(--ast-global-color-4, #64748b)));
    --pwpm-border: var(--wp--preset--color--tertiary, var(--theme-palette-color-6, #e2e8f0));
    --pwpm-surface: var(--wp--preset--color--base, var(--theme-palette-color-8, #ffffff));
    --pwpm-surface-soft: color-mix(in srgb, var(--pwpm-surface) 92%, var(--pwpm-primary));
    --pwpm-radius: var(--wp--custom--border--radius, 14px);
    --pwpm-button-radius: calc(var(--pwpm-radius) - 5px);
    --pwpm-shadow: 0 14px 36px rgb(15 23 42 / 7%);
    box-sizing: border-box;
    width: min(100% - 32px, 1120px);
    margin: clamp(20px, 4vw, 48px) auto;
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid var(--pwpm-border);
    border-radius: var(--pwpm-radius);
    background: var(--pwpm-surface);
    color: var(--pwpm-text);
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.55;
    box-shadow: var(--pwpm-shadow);
}

.pwpm-auth-card {
    max-width: 560px;
}

.pwpm-register *,
.pwpm-account *,
.pwpm-auth-card * {
    box-sizing: border-box;
}

.pwpm-register-header {
    margin-bottom: clamp(20px, 3vw, 30px);
}

.pwpm-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--pwpm-primary);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.pwpm-register h2,
.pwpm-account h2,
.pwpm-auth-card h2 {
    margin: 0 0 8px;
    color: var(--pwpm-text);
    font-family: inherit;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 700;
    line-height: 1.15;
}

.pwpm-register-header p {
    margin: 0;
    color: var(--pwpm-muted);
}

.pwpm-level-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
    gap: 16px;
}

.pwpm-level-card {
    padding: clamp(17px, 3vw, 24px);
    border: 1px solid var(--pwpm-border);
    border-radius: var(--pwpm-radius);
    background: var(--pwpm-surface-soft);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.pwpm-level-card:hover {
    border-color: color-mix(in srgb, var(--pwpm-primary) 45%, var(--pwpm-border));
    box-shadow: 0 8px 20px rgb(15 23 42 / 6%);
    transform: translateY(-1px);
}

.pwpm-level-card:has(input:checked) {
    border-color: var(--pwpm-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pwpm-primary) 15%, transparent);
}

.pwpm-level-card > label {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--pwpm-text);
    font-weight: 700;
}

.pwpm-card-name {
    font-size: 1.1rem;
}

.pwpm-card-description {
    margin: 14px 0 0;
    color: var(--pwpm-muted);
    font-size: .9rem;
}

.pwpm-card-description p:last-child {
    margin-bottom: 0;
}

.pwpm-card-price {
    margin-top: 18px;
    color: var(--pwpm-primary);
    font-size: 1.25rem;
    font-weight: 800;
}

.pwpm-duration-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
    margin-top: 18px;
}

.pwpm-duration-option {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-height: 76px;
    padding: 10px;
    border: 1px solid var(--pwpm-border);
    border-radius: calc(var(--pwpm-radius) - 4px);
    background: var(--pwpm-surface);
    color: var(--pwpm-muted);
    cursor: pointer;
    font-size: .82rem;
    transition: border-color .2s ease, background-color .2s ease;
}

.pwpm-duration-option:has(input:checked) {
    border-color: var(--pwpm-primary);
    background: color-mix(in srgb, var(--pwpm-primary) 8%, var(--pwpm-surface));
    color: var(--pwpm-text);
}

.pwpm-duration-option input {
    margin: 0 0 4px;
    accent-color: var(--pwpm-primary);
}

.pwpm-duration-option strong {
    color: var(--pwpm-text);
    font-weight: 700;
}

.pwpm-register-fields,
.pwpm-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}

.pwpm-register-fields label,
.pwpm-auth-form label {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: var(--pwpm-text);
    font-size: .9rem;
    font-weight: 600;
}

.pwpm-register input[type=email],
.pwpm-register input[type=password],
.pwpm-register input[type=text],
.pwpm-register input[type=url],
.pwpm-register input[type=number],
.pwpm-register input[type=date],
.pwpm-register input[type=tel],
.pwpm-register input[type=range],
.pwpm-register select,
.pwpm-register textarea,
.pwpm-auth-form input,
.pwpm-auth-form select,
.pwpm-auth-form textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--pwpm-border);
    border-radius: var(--pwpm-button-radius);
    background: var(--pwpm-surface);
    color: var(--pwpm-text);
    font: inherit;
    line-height: 1.4;
}

.pwpm-register input::placeholder,
.pwpm-register textarea::placeholder,
.pwpm-auth-form input::placeholder,
.pwpm-auth-form textarea::placeholder {
    color: var(--pwpm-muted);
    opacity: .8;
}

.pwpm-register input:focus,
.pwpm-register select:focus,
.pwpm-register textarea:focus,
.pwpm-auth-form input:focus,
.pwpm-auth-form select:focus,
.pwpm-auth-form textarea:focus {
    border-color: var(--pwpm-primary);
    outline: 3px solid color-mix(in srgb, var(--pwpm-primary) 18%, transparent);
    outline-offset: 0;
}

.pwpm-button,
.pwpm-register .pwpm-button,
.pwpm-account .pwpm-button,
.pwpm-auth-card .pwpm-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-top: 24px;
    padding: 11px 20px;
    border: 1px solid var(--pwpm-primary);
    border-radius: var(--pwpm-button-radius);
    background: var(--pwpm-primary);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.pwpm-button:hover,
.pwpm-button:focus-visible,
.pwpm-register .pwpm-button:hover,
.pwpm-auth-card .pwpm-button:hover {
    border-color: var(--pwpm-primary-hover);
    background: var(--pwpm-primary-hover);
    color: #fff;
    transform: translateY(-1px);
}

.pwpm-button:focus-visible,
.pwpm-auth-link:focus-visible,
.pwpm-auth-links a:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--pwpm-primary) 35%, transparent);
    outline-offset: 3px;
}

.pwpm-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: var(--pwpm-button-radius);
}

.pwpm-error {
    border-color: color-mix(in srgb, #b91c1c 20%, transparent);
    background: color-mix(in srgb, #b91c1c 8%, var(--pwpm-surface));
    color: #b91c1c;
}

.pwpm-success {
    border-color: color-mix(in srgb, #047857 20%, transparent);
    background: color-mix(in srgb, #047857 8%, var(--pwpm-surface));
    color: #047857;
}

.pwpm-auth-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pwpm-auth-form .pwpm-checkbox-label {
    display: block;
    color: var(--pwpm-muted);
    font-weight: 500;
}

.pwpm-auth-form .pwpm-checkbox-label input {
    width: auto;
    min-height: auto;
    margin: 0 6px 0 0;
    accent-color: var(--pwpm-primary);
}

.pwpm-auth-links,
.pwpm-auth-hint {
    margin: 18px 0 0;
    color: var(--pwpm-muted);
    font-size: .875rem;
}

.pwpm-auth-links a,
.pwpm-auth-link {
    color: var(--pwpm-primary);
    text-decoration: underline;
    text-decoration-thickness: .08em;
    text-underline-offset: .16em;
}

.pwpm-auth-links a:hover,
.pwpm-auth-link:hover {
    color: var(--pwpm-primary-hover);
}

.pwpm-account-table {
    overflow-x: auto;
    border: 1px solid var(--pwpm-border);
    border-radius: calc(var(--pwpm-radius) - 2px);
}

.pwpm-account-row {
    display: grid;
    grid-template-columns: 1.3fr .8fr 1fr .8fr;
    gap: 12px;
    min-width: 620px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--pwpm-border);
    color: var(--pwpm-text);
    font-size: .9rem;
}

.pwpm-account-row:last-child {
    border-bottom: 0;
}

.pwpm-account-head {
    background: var(--pwpm-surface-soft);
    color: var(--pwpm-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.pwpm-status {
    font-weight: 700;
}

.pwpm-status.is-active {
    color: #047857;
}

.pwpm-status.is-expired {
    color: #b45309;
}

.pwpm-account-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 22px;
}

.pwpm-account-actions .pwpm-button {
    margin-top: 0;
}

.pwpm-account-actions .pwpm-auth-link {
    font-weight: 600;
}

@media (max-width: 700px) {
    .pwpm-register,
    .pwpm-account,
    .pwpm-auth-card {
        width: min(100% - 20px, 560px);
        margin-block: 18px;
        padding: 20px;
    }

    .pwpm-register-fields,
    .pwpm-form-grid {
        grid-template-columns: 1fr;
    }

    .pwpm-account-row {
        min-width: 540px;
        grid-template-columns: 1.1fr .75fr .95fr .75fr;
        gap: 8px;
        padding-inline: 12px;
        font-size: .82rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pwpm-level-card,
    .pwpm-duration-option,
    .pwpm-button {
        transition: none;
    }
}

.pwpm-field-section{grid-column:1 / -1;margin-top:8px}.pwpm-field-section h3{margin:0;padding-bottom:8px;border-bottom:1px solid var(--pwpm-border);color:var(--pwpm-text);font-size:1.05rem}.pwpm-field-html{grid-column:1 / -1;padding:12px;border-radius:var(--pwpm-button-radius);background:var(--pwpm-surface-soft);color:var(--pwpm-muted)}.pwpm-custom-checkbox{display:flex!important;flex-direction:row!important;align-items:center}.pwpm-custom-checkbox input{width:auto!important;min-height:auto!important;margin-right:6px;accent-color:var(--pwpm-primary)}.pwpm-custom-fieldset{grid-column:1 / -1;margin:0;padding:12px;border:1px solid var(--pwpm-border);border-radius:var(--pwpm-button-radius)}.pwpm-custom-fieldset legend{padding:0 6px;color:var(--pwpm-text);font-weight:600}.pwpm-choice{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px;margin:5px 14px 5px 0!important}.pwpm-choice input{width:auto!important;min-height:auto!important;accent-color:var(--pwpm-primary)}.pwpm-account-section{margin-top:28px}.pwpm-account-section h3{margin:0 0 12px;color:var(--pwpm-text);font-size:1.15rem}.pwpm-orders-table .pwpm-account-row{grid-template-columns:.7fr 1.2fr 1fr 1fr}.pwpm-orders-table .pwpm-account-head{min-width:540px}
