.brm-panel {
    max-width: 720px;
    margin: 24px auto;
    padding: 24px;
    border: 1px solid #ded7ca;
    border-radius: 8px;
    background: #fff;
    color: #29251f;
}

.brm-panel h2 {
    margin-top: 0;
    margin-bottom: 18px;
    font-size: 1.5rem;
    line-height: 1.25;
}

.brm-form {
    display: grid;
    gap: 16px;
}

.brm-form label {
    display: grid;
    gap: 6px;
    font-size: 18px;
    font-weight: 400;
}

.brm-form input[type="text"],
.brm-form input[type="email"],
.brm-form input[type="password"],
.brm-form input[type="url"] {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #bdb5a8;
    border-radius: 6px;
    font: inherit;
    font-size: 16px;
}

.brm-password-field {
    position: relative;
    display: block;
    width: 100%;
}

.brm-password-field input[type="password"],
.brm-password-field input[type="text"] {
    padding-right: 48px;
}

.brm-password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #4f463c;
    cursor: pointer;
    transform: translateY(-50%);
}

.brm-password-toggle:hover,
.brm-password-toggle:focus {
    background: #f4efe8;
}

.brm-password-toggle:focus {
    outline: 2px solid #2d5f8f;
    outline-offset: 1px;
}

.brm-password-toggle.is-visible {
    color: #2d5f8f;
}

.brm-password-toggle svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
}

.brm-turnstile {
    min-height: 65px;
}

.brm-turnstile .cf-turnstile {
    max-width: 100%;
}

.brm-check {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 10px;
}

.brm-button,
.brm-link-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border: 0;
    border-radius: 6px;
    background: #6f3f28;
    color: #fff;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

.brm-link-button {
    background: #3f5f67;
}

.brm-button:hover,
.brm-button:focus {
    background: #ff7443;
    color: #fff;
}

.brm-link-button:hover,
.brm-link-button:focus {
    color: #fff;
    filter: brightness(0.94);
}

.brm-small {
    margin: 0;
    font-size: 0.95rem;
}

.brm-magic-login h2 {
    margin: 0 0 8px;
    font-size: 1.2rem;
    line-height: 1.3;
}

.brm-magic-login > .brm-small {
    margin-bottom: 16px;
}


.brm-notice {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 6px;
    background: #eef5f7;
    color: #18343b;
    font-size: 24px;
    line-height: 1.25;
}

.brm-notice-error {
    background: #faeeee;
    color: #732626;
}

.brm-notice-success {
    background: #eef7f0;
    color: #275b34;
}

.brm-plan-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.brm-plan-list li {
    display: grid;
    gap: 4px;
    padding: 14px;
    border: 1px solid #ded7ca;
    border-radius: 6px;
}

@media (max-width: 640px) {
    .brm-panel {
        margin: 16px 0;
        padding: 18px;
    }
}

.brm-auth-choices { display:grid; gap:12px; margin:12px 0; }
.brm-auth-choice { display:grid; gap:6px; width:100%; padding:16px; text-align:left; background:#fff; border:1px solid #c8d3d5; border-radius:8px; color:#18343b; cursor:pointer; font:inherit; }
.brm-auth-choice strong { font-size:18px; }
.brm-auth-choice span { font-size:15px; line-height:1.4; }
.brm-auth-choice:hover,.brm-auth-choice:focus { border-color:#3f5f67; background:#eef5f7; }
.brm-auth-dismiss { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.brm-auth-dismiss button,.brm-auth-text-button { background:transparent; border:0; color:#3f5f67; text-decoration:underline; cursor:pointer; padding:10px 0; font:inherit; }
.brm-auth-qr { display:block; max-width:100%; height:auto; margin:16px auto; }
.brm-auth-key { display:block; overflow-wrap:anywhere; padding:12px 0; }
.brm-recovery-codes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:20px 0; }
.brm-recovery-codes code { padding:10px; background:#eef5f7; text-align:center; }
.brm-remember-note { margin-top:18px; }
.brm-sign-in-options h2 { font-size:26px; line-height:1.2; }
.brm-sign-in-options p { font-size:16px; line-height:1.5; }
/* Keep the site's large login text style out of preference controls. */
.brm-auth-dismiss button,.brm-auth-text-button { font-size:16px; line-height:1.4; font-weight:500; }
.brm-auth-choice span,.brm-sign-in-options p { font-weight:400; }

/* Shared sign-in layout, independent of Divi text-module typography. */
.brm-panel.brm-login-panel {
    box-sizing:border-box;
    max-width:560px;
    padding:28px;
    font-size:16px;
    line-height:1.5;
    font-weight:400;
}
.brm-login-panel h2 { font-size:24px; line-height:1.3; font-weight:600; margin:0 0 20px; }
.brm-login-panel p { font-size:16px; line-height:1.5; font-weight:400; padding-bottom:0; }
.brm-login-panel .brm-login-intro { margin:0 0 22px; color:#565d63; }
.brm-login-panel .brm-form label { font-size:18px; line-height:1.4; font-weight:500; }
.brm-login-panel .brm-form input { box-sizing:border-box; font-size:16px; font-weight:400; }
.brm-login-panel .brm-button,.brm-login-panel .brm-link-button { font-size:16px; line-height:1.4; font-weight:600; min-height:46px; }
.brm-login-panel .brm-small { font-size:14px; line-height:1.5; font-weight:400; }
.brm-login-panel .brm-remember-note { border-top:1px solid #e7e4df; padding-top:18px; margin:22px 0 12px; color:#646464; text-align:center; }
.brm-login-panel .brm-login-switch { display:flex; justify-content:center; margin:18px 0 0; padding:0; text-align:center; }
.brm-login-panel .brm-login-switch .brm-link-button { display:inline-flex; align-items:center; justify-content:center; width:100%; max-width:280px; box-sizing:border-box; min-height:44px; padding:11px 18px; border:1px solid #e2bb45; border-radius:6px; background:#ffd34e; color:#344d76; text-decoration:none; }
.brm-login-panel .brm-login-switch .brm-link-button:hover,.brm-login-panel .brm-login-switch .brm-link-button:focus { border-color:#344d76; background:#344d76; color:#fff; text-decoration:none; }
.brm-login-panel .brm-notice { font-size:16px; line-height:1.5; font-weight:400; }
@media(max-width:640px) { .brm-panel.brm-login-panel { padding:20px; } }
.brm-panel.brm-email-sent { text-align:center; padding:32px 28px; }
.brm-email-icon { display:flex; align-items:center; justify-content:center; width:56px; height:56px; margin:0 auto 18px; border-radius:50%; background:#eef5f2; color:#3f6757; }
.brm-email-sent h2 { margin-bottom:14px; }
.brm-email-sent .brm-email-message { margin:0 auto 16px; max-width:400px; color:#454b50; }
.brm-email-sent .brm-email-help { margin:0 0 24px; color:#737373; }
.brm-email-sent .brm-email-resend { display:block; width:100%; box-sizing:border-box; text-align:center; text-decoration:none; }
.brm-email-sent .brm-email-back { margin-top:18px; }

.brm-profile-panel { font-size:16px; line-height:1.5; font-weight:400; }
.brm-profile-panel p { font-size:16px; line-height:1.5; font-weight:400; padding-bottom:0; }
.brm-profile-panel .brm-profile-intro { margin:0 0 24px; color:#646464; }
.brm-profile-panel .brm-form label { font-size:18px; line-height:1.4; font-weight:500; }
.brm-profile-panel input { box-sizing:border-box; }
.brm-profile-email { border-top:1px solid #e7e4df; margin-top:22px; padding-top:20px; }
.brm-profile-email .brm-small { margin:0 0 12px; color:#646464; }
.brm-email-confirm { margin:16px 0 18px; padding:16px; border:1px solid #e7e4df; border-radius:6px; background:#fbfaf7; }
.brm-email-confirm .brm-link-button { margin-top:4px; width:auto; }
.brm-profile-security { border-top:1px solid #e7e4df; margin-top:28px; padding-top:24px; }
.brm-profile-security h3 { font-size:20px; line-height:1.4; margin:0 0 12px; }
.brm-profile-security p { margin:0 0 12px; }
.brm-profile-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.brm-profile-panel .brm-button,.brm-profile-panel .brm-link-button { font-size:16px; line-height:1.4; font-weight:600; text-align:center; }
@media(max-width:640px) { .brm-profile-actions { display:grid; } }

.brm-auth-choice .brm-choice-heading { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.brm-auth-choice .brm-choice-badge { display:inline-block; border-radius:20px; padding:4px 10px; font-size:12px; line-height:1.4; font-weight:600; white-space:normal; }
.brm-choice-magic { background:#f4ecd9; color:#705118; }
.brm-choice-email { background:#e8f3eb; color:#285438; }
.brm-choice-totp { background:#e9eef8; color:#314d78; }
.brm-choice-current { background:#e7eff1; color:#315862; }
