/* Brand tokens mirror lib/core/theme/app_theme.dart. MemberArea only. */
.member-toasts { position: fixed; right: 24px; bottom: 24px; z-index: 1090; max-width: calc(100vw - 32px); }
.member-toasts .toast { width: 380px; max-width: 100%; border: 1px solid #d5cdec; border-radius: 14px; background: #fff; box-shadow: 0 8px 30px #1d2b4426; overflow: hidden; }
.member-toasts .toast-header { color: #6554c0; background: #f0eef8; padding: 12px 16px; }
.member-toasts .toast-body { padding: 16px; color: #1d2b44; overflow-wrap: anywhere; }
.member-toasts .btn-close { min-width: 24px; min-height: 24px; }
@media (max-width: 480px) { .member-toasts { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); } }
.brand-name { display: flex; flex-direction: column; line-height: 1.3; }
.brand-name small { font-size: .76rem; font-weight: 400; letter-spacing: 0; margin-top: 3px; color: var(--member-muted); }
.account-navigation { display: flex; flex-direction: column; gap: 6px; padding: 20px 12px; background: #f5f6fa; border: 1px solid #d4dae5; border-radius: 20px; }
.account-navigation .eyebrow { padding: 0 14px 14px; }
.account-navigation a, .account-navigation button { display: block; padding: 12px 14px; border-radius: 10px; text-decoration: none; text-align: left; font-size: .9rem; font-weight: 600; }
.account-navigation a[aria-current] { background: #e9e4fa; box-shadow: inset 3px 0 #7867d8; }
.submission-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.submission-count { background: #f0eef8; color: #6554c0; border-radius: 20px; padding: 6px 12px; font-size: .85rem; font-weight: 650; white-space: nowrap; }
.submission-empty { text-align: center; padding: 38px 20px; background: #f7f6fb; border: 1px dashed #d5cdec; border-radius: 16px; margin-top: 22px; }
.submission-empty h3 { font-size: 1.1rem; font-weight: 650; }
.submission-empty p { margin-bottom: 0; }
.submission-list { display: grid; gap: 10px; list-style: none; padding: 0; margin: 20px 0 0; }
.submission-list li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid #e1e5ec; border-radius: 12px; background: #fcfcfe; }
.submission-list li span { flex-shrink: 0; color: var(--member-muted); font-size: .82rem; }
.account-navigation a:hover { background: #f0eef8; }
.account-navigation form { border-top: 1px solid #c7cfdc; padding-top: 12px; margin-top: 18px; }
.account-navigation button { border: 0; background: transparent; color: var(--member-muted); width: 100%; cursor: pointer; }
@media (max-width: 850px) {
  .account-navigation { display: grid; grid-template-columns: 1fr 1fr; }
  .account-navigation .eyebrow { grid-column: 1 / -1; padding-bottom: 4px; }
  .account-navigation form { margin: 0; padding: 0; border: 0; }
  .member-header .brand-name small { max-width: 155px; }
}
.member-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.member-actions form { margin: 0; }
.language-menu { position: relative; margin-left: auto; font-size: .85rem; }
.language-menu summary { cursor: pointer; padding: 8px 12px; border: 1px solid #bac3d2; border-radius: 10px; }
.language-options { position: absolute; right: 0; top: 48px; z-index: 5; background: white; border: 1px solid #d5dbe5; box-shadow: 0 8px 24px #1d2b4415; border-radius: 14px; padding: 6px; width: 200px; }
.language-options a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 16px; padding: 10px 12px; border-radius: 8px; text-decoration: none; }
.language-options a:hover, .language-options a[aria-current] { background: #f0eef8; }
.language-check { visibility: hidden; }
.language-options a[aria-current] .language-check { visibility: visible; }
.member-header > span { display: none; }
.password-feedback { background: #f5f3fb; border: 1px solid #e7e2f4; border-radius: 12px; padding: 14px; margin: -6px 0 20px; font-size: .76rem; }
.password-summary { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.password-feedback meter { width: 100%; height: 18px; display: block; margin: 6px 0 10px; }
.password-rules { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; color: #526078; }
.password-rules li::before { content: '○'; display: inline-block; width: 17px; }
.password-rules li[data-met="true"] { color: #236348; }
.password-rules li[data-met="true"]::before { content: '✓'; }
.content-card .password-feedback p { margin: 12px 0 0; font-size: .73rem; }
.password-match-slot { display: grid; margin: -10px 0 18px; }
.content-card .password-match-slot p { grid-area: 1 / 1; font-size: .78rem; line-height: 1.6; margin: 0; }
/* Reserve the actual translated text height, including wrapping and zoom. */
.password-match-reserve { visibility: hidden; pointer-events: none; }
.content-card .password-match { color: #a12c3a; }
.content-card .password-match[data-matches="true"] { color: #236348; }
@media (max-width: 420px) { .password-rules { grid-template-columns: 1fr; } }
:root {
  --member-ink: #1d2b44;
  --member-ground: #e2e6ec;
  --member-violet: #7867d8;
  --member-action: #6554c0;
  --member-rose: #d95d9b;
  --member-muted: #526078;
}
* { box-sizing: border-box; }
body.member-page { margin: 0; color: var(--member-ink); background: var(--member-ground); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; line-height: 1.6; }
.member-page a { color: var(--member-action); text-underline-offset: 3px; }
.member-page a:hover { color: #483895; }
.member-page :focus-visible { outline: 3px solid var(--member-violet); outline-offset: 4px; }
.skip-link { position: absolute; left: 20px; top: -80px; padding: 10px; background: white; z-index: 2; }
.skip-link:focus { top: 10px; }
.member-header { max-width: 1280px; margin: auto; padding: 28px 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.member-header > span { font-size: .85rem; color: var(--member-muted); }
.member-header .brand { display: flex; gap: 10px; align-items: center; color: var(--member-ink); text-decoration: none; font-size: 1.2rem; font-weight: 750; letter-spacing: -.5px; }
.brand img { border-radius: 50%; }
.member-layout { max-width: 1140px; margin: 26px auto 64px; padding: 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 74px; align-items: start; }
.brand-panel { text-align: center; padding-top: 48px; }
.brand-wheel { width: min(100%, 300px); height: auto; border-radius: 50%; filter: drop-shadow(0 18px 22px #1d2b4418); }
.brand-panel h1 { font-size: 3.25rem; font-weight: 800; letter-spacing: -2px; margin: 28px 0 2px; }
.brand-slogan { color: var(--member-muted); font-size: 1.3rem; margin: 0; }
.brand-colours { display: flex; justify-content: center; gap: 8px; margin-top: 28px; }
.brand-colours i { width: 24px; height: 6px; border-radius: 3px; background: #a996d8; }
.brand-colours i:nth-child(2) { background: #54c1c7; }
.brand-colours i:nth-child(3) { background: #e4b84f; }
.brand-colours i:nth-child(4) { background: #e7837f; }
.brand-colours i:nth-child(5) { background: #7e95d1; }
.account-content { min-width: 0; }
.content-card { background: white; border: 1px solid #ffffff; border-radius: 24px; padding: 36px; box-shadow: 0 12px 40px #1d2b4407; }
.content-card + .content-card { margin-top: 20px; }
.content-card h2 { font-size: 1.7rem; letter-spacing: -.7px; font-weight: 750; margin: 8px 0 12px; }
.content-card p { color: var(--member-muted); font-size: .92rem; }
.eyebrow { display: block; font-size: .73rem; font-weight: 750; color: var(--member-action); letter-spacing: 1.2px; text-transform: uppercase; }
.auth-nav { display: flex; padding: 5px; gap: 4px; background: #f0eef8; border-radius: 12px; margin-bottom: 32px; }
.auth-nav a { flex: 1; text-align: center; text-decoration: none; padding: 10px 12px; border-radius: 8px; color: var(--member-muted); font-weight: 650; font-size: .9rem; }
.auth-nav a[aria-current] { color: var(--member-action); background: white; box-shadow: 0 2px 6px #1d2b440b; }
.form-intro { margin-bottom: 26px; }
.member-page label { display: block; font-size: .86rem; font-weight: 600; margin-bottom: 18px; }
.content-card form > .input { margin-bottom: 18px; }
.content-card form > .input > label { margin-bottom: 0; }
.member-page label small { display: block; font-weight: 400; color: var(--member-muted); font-size: .76rem; margin-top: 5px; }
.member-page .form-control { display: block; width: 100%; min-height: 48px; padding: 11px 13px; margin-top: 7px; border: 1px solid #cdd3df; border-radius: 10px; color: var(--member-ink); font-size: 1rem; background-color: #fcfcfe; }
.member-page .form-control:focus { border-color: var(--member-violet); box-shadow: 0 0 0 3px #7867d81a; background: white; }
.member-page .form-control::placeholder { color: #747e90; }
.form-links { text-align: right; font-size: .83rem; margin: -4px 0 24px; }
.member-page .btn { border-radius: 10px; min-height: 46px; padding: 10px 18px; font-weight: 650; font-size: .9rem; }
.member-page .btn-primary { background: var(--member-action); border-color: var(--member-action); }
.member-page .btn-primary:hover { background: #5141a6; border-color: #5141a6; }
.member-page .btn-outline-primary { color: var(--member-action); border-color: var(--member-action); }
.member-page .btn-outline-primary:hover { background: var(--member-action); color: white; }
.auth-card form > .btn { width: 100%; }
.content-card .auth-note { margin: 24px 0 0; text-align: center; font-size: .8rem; line-height: 1.7; }
.member-page .check-label { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; font-size: .8rem; }
.member-page input[type=checkbox] { accent-color: var(--member-action); width: 17px; height: 17px; flex-shrink: 0; margin-top: 4px; }
.password-wrap { display: flex; width: 100%; position: relative; align-items: center; }
.password-wrap .form-control { padding-right: 54px; }
.password-toggle { position: absolute; right: 3px; top: 9px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: var(--member-action); padding: 10px; border-radius: 8px; cursor: pointer; }
.password-toggle:hover { background: #7867d812; }
.password-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .password-eye-slash { display: none; }
.password-toggle[aria-pressed="true"] .password-eye-slash { display: block; }
.password-wrap input::-ms-reveal { display: none; }
.member-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 20px; padding: 24px 8px; font-size: .75rem; color: var(--member-muted); }
.member-footer a { color: var(--member-muted); }
.member-layout-profile { grid-template-columns: 260px 1fr; }
.member-layout-profile .brand-wheel { width: 180px; }
.member-layout-profile .brand-panel h1 { font-size: 2.2rem; }
.member-layout-profile .brand-slogan { font-size: 1rem; }
.member-page .alert { border-radius: 14px; overflow-wrap: anywhere; }
@media (max-width: 850px) {
  .member-header { padding: 20px 24px; }
  .member-layout, .member-layout-profile { grid-template-columns: 1fr; gap: 28px; max-width: 550px; padding: 0 20px; margin: 8px auto 24px; }
  .brand-panel { padding: 0; }
  .brand-wheel, .member-layout-profile .brand-wheel { width: 96px; }
  .brand-panel h1, .member-layout-profile .brand-panel h1 { font-size: 2rem; letter-spacing: -1px; margin: 12px 0 0; }
  .brand-slogan { font-size: 1rem; }
  .brand-colours { display: none; }
  .content-card { padding: 26px 22px; border-radius: 20px; }
  .content-card h2 { font-size: 1.55rem; }
  .auth-nav { margin-bottom: 26px; }
}
