/* Account uses the same Outfit / Manrope typography and cool palette as the site. */
.account-shell { background:#eef2f6; min-height:100vh; }
.account-shell .account-accent { color:var(--color-accent); }
.account-shell #account-content { scroll-margin-top:110px; }
.account-access { max-width:1440px; margin:0 auto; padding-block:var(--section-space);  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); align-items:start; gap:clamp(36px,6vw,96px); }
.account-introduction { padding-top:6px; min-width:0; }
.account-back { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:13px; font-weight:550; color:#526878 !important; }
.account-introduction > .eyebrow { display:block; color:var(--color-accent); margin-top:48px; }
.account-brand-title { font-family:var(--font-display); font-size:clamp(56px,6.3vw,90px); font-weight:850; letter-spacing:-.055em; line-height:.98; margin-top:24px !important; }
.account-brand-title > span { font-weight:250; }
.account-introduction-copy { font-size:clamp(18px,1.6vw,22px); line-height:1.6; color:#536371; margin-top:28px !important; }
.account-house-mark { width:100%; max-width:340px; height:auto; margin-top:38px; stroke:#7b9bb2; stroke-width:1.15; }
.account-house-detail { stroke:#c2d1dd; }
.account-introduction-links { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:24px; }
.account-introduction-links a { display:inline-flex; align-items:center; gap:16px; min-height:44px; font-size:13px; border-bottom:1px solid #c2ced9; }
.account-card { min-width:0; border:1px solid #d2dce5; background:#fbfcfe; padding:clamp(24px,3.5vw,48px); }
.account-shell .account-page-heading { margin-bottom:28px; }
.account-shell .account-page-heading :is(h1,h2) { font-size:clamp(30px,3vw,42px); font-weight:750; letter-spacing:-.045em; line-height:1.12; color:#171b20; overflow-wrap:break-word; }
.account-shell .account-page-heading p { margin-top:12px; color:#576776; line-height:1.7; font-size:15px; }
.account-shell .account-card :is(h3,h4) { font-family:var(--font-display); font-size:23px; letter-spacing:-.025em; line-height:1.2; margin:26px 0 14px; }
.account-shell .account-card p + p { margin-top:12px; }
.account-shell .account-card > p { color:#526371; margin:14px 0; }
.account-shell .account-card strong { font-weight:700; }
.account-shell .account-card a:not([class*="account-button"]) { color:var(--color-accent); text-decoration:underline; text-decoration-color:#9eb1c2; text-underline-offset:5px; }
.account-shell .account-card a:not([class*="account-button"]):hover { color:var(--color-accent-hover); text-decoration-color:currentColor; }
.account-form { display:flex; flex-direction:column; gap:20px; }
.account-form > div:empty { display:none; }
.account-field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.account-field > label { font-size:13px; font-weight:700; color:#314251; line-height:1.5; }
.account-shell .account-input { display:block; width:100%; min-width:0; min-height:52px; margin:0; padding:12px 15px; border:1px solid #bdcad6; border-radius:0; background:#fff; color:#171b20; font-family:var(--font-text); font-size:16px; line-height:1.5; transition:border-color .15s,box-shadow .15s; }
.account-shell .account-input::placeholder { color:#778696; opacity:1; font-size:14px; }
.account-shell .account-input:disabled { color:#637381; background:#edf1f5; border-color:#d4dde5; cursor:not-allowed; opacity:1; }
.account-shell .account-input:focus-visible { outline:2px solid var(--color-focus); outline-offset:2px; border-color:var(--color-focus); }
.account-shell .account-input.valid.modified { outline:none; border-color:#7695a9; }
.account-shell .account-input.invalid { outline:1px solid #a44353; border-color:#a44353; }
.account-shell .account-input.invalid:focus-visible { outline-width:2px; outline-offset:2px; }
.account-check { display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.6; cursor:pointer; }
.account-check label { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.account-check input[type="checkbox"] { flex:0 0 auto; width:18px; height:18px; margin:3px 0 0; accent-color:var(--color-accent); }
.account-check input:focus-visible { outline:2px solid var(--color-focus); outline-offset:3px; }
.account-shell :is(.account-button,.account-button-secondary,.account-button-danger) { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; max-width:100%; border:1px solid transparent; padding:12px 22px; border-radius:0; font-family:var(--font-text); font-size:14px; line-height:1.5; font-weight:650; text-align:center; text-decoration:none; cursor:pointer; transition:background .15s,border-color .15s,color .15s; }
.account-shell .account-button { background:#233c50; color:#fff; border-color:#233c50; }
.account-shell .account-button:hover { background:#171f28; border-color:#171f28; }
.account-shell .account-button-secondary { background:transparent; color:#294f6d; border-color:#9db1c3; }
.account-shell .account-button-secondary:hover { background:#e7eef5; border-color:#527b99; }
.account-shell .account-button-danger { background:#87384a; color:#fff; border-color:#87384a; }
.account-shell .account-button-danger:hover { background:#6f2b3a; border-color:#6f2b3a; }
.account-shell :is(.account-button,.account-button-secondary,.account-button-danger):disabled { opacity:.5; cursor:not-allowed; }
.account-shell :is(.account-button,.account-button-secondary,.account-button-danger):focus-visible { outline:3px solid var(--color-focus); outline-offset:4px; }
.account-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:8px; }
.account-actions > form { margin:0; }
.account-links { display:flex; flex-wrap:wrap; gap:10px 22px; font-size:13px; line-height:1.8; margin-top:22px; }
.account-links > p { margin:0 !important; }
.account-divider { display:flex; align-items:center; gap:16px; color:#647583; font-size:11px; line-height:1.6; text-transform:uppercase; letter-spacing:.08em; margin:6px 0; }
.account-divider::before,.account-divider::after { content:""; flex:1; height:1px; background:#d4dde5; }
.account-alternate { margin-top:28px; }
.account-alternate .account-actions { margin-top:18px; }
.account-shell :is(.account-note,.account-note-warning,.account-note-danger,.account-status) { padding:17px 20px; border:1px solid #d6e0e9; border-left:3px solid #6e94b1; background:#eaf0f6; color:#344f65; font-size:14px; line-height:1.75; margin:20px 0; overflow-wrap:anywhere; }
.account-shell :is(.account-note,.account-note-warning,.account-note-danger,.account-status):first-child { margin-top:0; }
.account-shell :is(.account-note-warning,.account-note-danger,.account-status-error) { background:#f5eef1; color:#783549; border-color:#e4d0d7; border-left-color:#a05267; }
.account-shell .account-note-warning { background:#edf0f6; color:#3f4c68; border-color:#d2d9e5; border-left-color:#6a7c9a; }
.account-shell :is(.account-validation,.validation-message) { color:#943b50; font-size:13px; line-height:1.6; }
.account-shell ul.account-validation { padding:14px 16px 14px 32px; background:#f7eef2; border-left:3px solid #a05267; margin:0; }
.account-shell ul.account-validation:empty { display:none; }
.account-shell .account-validation ul { margin:0; padding-left:20px; list-style:disc; }
.account-stack { display:flex; flex-direction:column; gap:20px; }
.account-stack > p { margin:0 !important; }
.account-shell .account-code { display:block; width:100%; padding:16px; background:#edf2f6; border:1px solid #d1dce5; color:#294c66; font-family:Consolas,monospace; font-size:16px; letter-spacing:.04em; overflow-wrap:anywhere; white-space:normal; user-select:all; }
.account-card :is(ol,ul):not([class]) { list-style:revert; padding-left:23px; }
.account-card :is(ol,ul):not([class]) li + li { margin-top:10px; }
.account-table-scroll { width:100%; overflow-x:auto; margin:20px 0; }
.account-table-scroll:focus-visible { outline:2px solid var(--color-focus); outline-offset:3px; }
.account-table { border-collapse:collapse; width:100%; font-size:14px; text-align:left; }
.account-table th { font-weight:700; color:#3c5365; background:#eef3f7; }
.account-table :is(th,td) { padding:14px; border-bottom:1px solid #d5dfe7; overflow-wrap:anywhere; vertical-align:middle; }
.account-table td:last-child { text-align:right; }
.account-table .account-actions { justify-content:flex-end; }
.account-table .account-button-secondary,.account-table .account-button-danger { min-height:44px; padding:9px 14px; font-size:13px; }
.account-recovery-codes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; gap:12px; padding:0; margin:22px 0; }
.account-recovery-codes li { min-width:0; padding:14px; border:1px solid #cad6e0; background:#edf2f6; text-align:center; }
.account-recovery-codes code { font-family:Consolas,monospace; font-size:17px; letter-spacing:.04em; color:#294c66; user-select:all; overflow-wrap:anywhere; }
.account-management { max-width:1600px; padding-block:var(--section-space);  margin:0 auto; }
.account-management-heading { margin-bottom:36px; }
.account-management-heading > .eyebrow { color:var(--color-accent); }
.account-management-heading h1 { font-size:clamp(38px,4.5vw,68px); line-height:1.04; font-weight:850; letter-spacing:-.05em; margin-top:18px !important; }
.account-management-heading p { color:#526371; font-size:17px; margin-top:16px !important; }
.account-management-grid { display:grid; grid-template-columns:minmax(220px,280px) minmax(0,1fr); align-items:start; gap:clamp(24px,3.5vw,56px); }
.account-sidebar { min-width:0; }
.account-navigation ul { list-style:none; padding:0; margin:0; border-top:1px solid #c8d4df; }
.account-navigation li { border-bottom:1px solid #c8d4df; }
.account-navigation a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 14px; min-height:54px; border-left:3px solid transparent; color:#4c6071; font-size:14px; line-height:1.5; font-weight:550; }
.account-navigation a > span:last-child { color:#6f90a9; font-size:18px; }
.account-navigation a:hover { color:#203b50; background:#e3ebf2; }
.account-navigation a.active { background:#dde8f0; border-left-color:#376180; color:#214866; font-weight:750; }
.account-sidebar-help { margin:30px 0 18px; padding:20px 16px; border:1px solid #cbd7e1; }
.account-sidebar-help .eyebrow { font-size:9px; color:#56718a; }
.account-sidebar-help p { font-size:13px; line-height:1.8; color:#5a6c7b; margin:12px 0 !important; }
.account-sidebar-help a { font-size:13px; font-weight:650; color:var(--color-accent); }
.account-settings-card { min-height:400px; }
.account-settings-card .account-form { max-width:680px; }
.account-settings-card > .account-form > :is(.account-button,.account-button-secondary,.account-button-danger) { align-self:flex-start; min-width:160px; }
.account-shell .account-card small { font-size:13px; color:#5b6c7c; }
.account-shell .account-card hr { border:0; height:1px; background:#d3dee7; margin:24px 0; }
@media (min-width:1600px) { .account-access.page-pad,.account-management.page-pad { padding-left:64px; padding-right:64px; } }
@media (max-width:1023px) {
    .account-access { gap:32px; grid-template-columns:minmax(0,.8fr) minmax(0,1fr);   }
    .account-brand-title { font-size:clamp(50px,7vw,74px); }
    .account-card { padding:28px; }
    .account-management-grid { grid-template-columns:220px minmax(0,1fr); gap:24px; }
    .account-navigation a { padding-left:10px; padding-right:10px; font-size:13px; }
}
@media (max-width:767px) {
    .account-access { display:block;   }
    .account-introduction { padding:0; margin-bottom:24px; }
    .account-introduction > .eyebrow { margin-top:16px; font-size:9px; }
    .account-brand-title { font-size:clamp(40px,8vw,58px); margin-top:12px !important; }
    .account-brand-title br { display:none; }
    .account-brand-title > span::before { content:" "; }
    .account-introduction-copy,.account-house-mark,.account-introduction-links { display:none; }
    .account-card { padding:26px 22px; }
    .account-shell .account-page-heading { margin-bottom:24px; }
    .account-shell .account-page-heading :is(h1,h2) { font-size:32px; }
    .account-management-heading { margin-bottom:24px; }
    .account-management-heading h1 { font-size:clamp(34px,7vw,52px); }
    .account-management-heading p { font-size:15px; }
    .account-management-grid { display:block; }
    .account-navigation ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:24px; }
    .account-navigation li:nth-child(odd) { border-right:1px solid #c8d4df; }
    .account-navigation a { height:100%; min-height:58px; padding:12px 10px; }
    .account-sidebar-help,.account-sidebar > .account-back { display:none; }
    .account-settings-card { min-height:0; }
    .account-table :is(th,td) { padding:10px 8px; }
    .account-table .account-actions { min-width:120px; }
    .account-recovery-codes { gap:8px; }
    .account-recovery-codes li { padding:12px 8px; }
}
@media (max-width:379px) {
    .account-card { padding:24px 18px; }
    .account-shell .account-page-heading :is(h1,h2) { font-size:29px; }
    .account-recovery-codes { grid-template-columns:1fr; }
    .account-actions > :is(a,button,form) { width:100%; }
    .account-actions > form > button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { .account-shell * { transition:none !important; } }

.account-shell .account-field-help { font-size:13px; line-height:1.7; color:#5b6e7d; margin:10px 0 20px; }
.account-field > .account-field-help { margin:0; }
.account-steps { counter-reset:account-step; list-style:none; padding:0; margin:24px 0 0; }
.account-steps > li { counter-increment:account-step; padding:24px 0; border-top:1px solid #d3dee7; }
.account-steps > li::before { content:"0" counter(account-step) " /"; display:block; font-size:11px; letter-spacing:.1em; font-weight:650; color:#557997; }
.account-shell .account-steps h3 { margin:12px 0; }
.account-steps p { color:#536777; }
.account-steps .account-code,.account-steps .account-form { margin-top:20px; }password-strength { display:grid; gap:6px; color:#495e6e; font-size:14px; line-height:1.5; }
password-strength div:not([hidden]) { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; }
password-strength meter { width:8rem; height:1rem; }
