:root {
  --portal-bg: #0a0e14;
  --portal-surface: #121821;
  --portal-surface-2: #171f2b;
  --portal-line: #2a3546;
  --portal-text: #f4f6f9;
  --portal-dim: #98a4b8;
  --portal-lime: #c9f13b;
  --portal-ok: #7cd992;
  --portal-warning: #ffb347;
  --portal-danger: #ff6675;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--portal-bg); color: var(--portal-text); }
body { font-family: Inter, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
.commerce-skip-link { position: fixed; left: 12px; top: 12px; z-index: 100; transform: translateY(-180%); background: var(--portal-lime); color: #0a0e14; padding: 10px 14px; font-weight: 700; }
.commerce-skip-link:focus { transform: none; }
.commerce-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
:focus-visible { outline: 3px solid var(--portal-lime); outline-offset: 3px; }

.client-portal-shell { min-height: 100vh; background: var(--portal-bg); }
.client-portal-header { min-height: 72px; padding: 0 clamp(20px, 4vw, 64px); border-bottom: 1px solid var(--portal-line); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.client-portal-brand { display: inline-flex; align-items: baseline; gap: 4px; font-family: "Space Grotesk", sans-serif; font-size: 19px; font-weight: 700; letter-spacing: -.04em; white-space: nowrap; }
.client-portal-brand strong { color: var(--portal-lime); }
.client-portal-brand i { width: 8px; height: 8px; background: var(--portal-lime); border-radius: 2px; transform: rotate(45deg); }
.client-portal-account { display: flex; align-items: center; gap: 18px; }
.client-portal-account > span { display: grid; text-align: right; }
.client-portal-account strong { font-size: 13px; }
.client-portal-account small { color: var(--portal-dim); font-size: 11px; }
.client-portal-account a, .client-portal-account button { min-height: 44px; padding: 0 14px; border: 1px solid var(--portal-line); border-radius: 999px; background: transparent; display: inline-flex; align-items: center; cursor: pointer; font-size: 12px; font-weight: 600; }
.client-portal-account form { margin: 0; }
.client-portal-back { min-height: 44px; display: inline-flex; align-items: center; color: var(--portal-dim); font-size: 13px; font-weight: 600; }

.client-portal-nav { min-height: 54px; padding: 0 clamp(20px, 4vw, 64px); border-bottom: 1px solid var(--portal-line); display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.client-portal-nav::-webkit-scrollbar { display: none; }
.client-portal-nav a { position: relative; min-height: 54px; padding: 0 18px; display: inline-flex; align-items: center; gap: 7px; color: var(--portal-dim); font-size: 13px; font-weight: 600; white-space: nowrap; }
.client-portal-nav a:first-child { padding-left: 0; }
.client-portal-nav a[aria-current="page"] { color: var(--portal-text); }
.client-portal-nav a[aria-current="page"]::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 2px; background: var(--portal-lime); }
.client-portal-nav a:first-child[aria-current="page"]::after { left: 0; }
.client-portal-nav small { min-width: 20px; height: 20px; padding: 0 6px; border: 1px solid var(--portal-line); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: var(--portal-dim); font: 10px "JetBrains Mono", monospace; }

.client-portal-main { width: min(1180px, 100%); margin: 0 auto; padding: 40px clamp(20px, 4vw, 64px) 80px; }
.client-portal-pagehead { margin-bottom: 28px; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.client-portal-kicker { margin: 0 0 8px; color: var(--portal-lime); font: 700 10px "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; }
.client-portal-pagehead h1, .client-portal-auth h1 { margin: 0; font-family: "Space Grotesk", sans-serif; font-size: clamp(30px, 4vw, 48px); letter-spacing: -.045em; line-height: 1; }
.client-portal-button { min-height: 46px; padding: 0 18px; border: 1px solid var(--portal-lime); border-radius: 10px; background: var(--portal-lime); color: #0a0e14; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; }
.client-portal-button--quiet { border-color: var(--portal-line); background: transparent; color: var(--portal-text); }

.client-portal-next { min-height: 250px; padding: clamp(24px, 4vw, 46px); border: 1px solid #3f4b2a; border-radius: 18px; background: linear-gradient(135deg, rgba(201, 241, 59, .11), transparent 58%), var(--portal-surface); display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 28px; align-items: center; }
.client-portal-next__trace { align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: space-between; }
.client-portal-next__trace span { width: 14px; height: 14px; border-radius: 50%; background: var(--portal-lime); box-shadow: 0 0 0 8px rgba(201, 241, 59, .12); }
.client-portal-next__trace i { width: 1px; flex: 1; margin: 7px 0; background: linear-gradient(var(--portal-lime), var(--portal-line)); }
.client-portal-next h2 { max-width: 650px; margin: 0; font: 700 clamp(27px, 4vw, 46px)/1.05 "Space Grotesk", sans-serif; letter-spacing: -.04em; }
.client-portal-next p:not(.client-portal-kicker) { max-width: 620px; margin: 14px 0 0; color: var(--portal-dim); line-height: 1.6; }
.client-portal-next dl { margin: 0; align-self: stretch; min-width: 170px; border-left: 1px solid var(--portal-line); padding-left: 24px; display: grid; align-content: center; gap: 20px; }
.client-portal-next dl div { display: grid; gap: 5px; }
.client-portal-next dt { color: var(--portal-dim); font: 10px "JetBrains Mono", monospace; text-transform: uppercase; letter-spacing: .1em; }
.client-portal-next dd { margin: 0; font-size: 13px; font-weight: 600; }
.client-portal-next > .client-portal-button { grid-column: 2; justify-self: start; }
.client-portal-next--clear { border-color: var(--portal-line); }

.client-portal-section { margin-top: 42px; }
.client-portal-section__head { min-height: 42px; border-bottom: 1px solid var(--portal-line); display: flex; align-items: flex-start; justify-content: space-between; }
.client-portal-section__head h2 { margin: 0; font: 700 19px "Space Grotesk", sans-serif; }
.client-portal-section__head span { color: var(--portal-dim); font: 11px "JetBrains Mono", monospace; }
.client-portal-action-list a, .client-portal-records > a { min-height: 78px; border-bottom: 1px solid var(--portal-line); display: grid; grid-template-columns: 16px minmax(0, 1fr) auto 18px; gap: 16px; align-items: center; }
.client-portal-action-list a:hover, .client-portal-records > a:hover, .client-portal-practice__main:hover { background: rgba(255, 255, 255, .025); }
.client-portal-action-list__marker { width: 9px; height: 9px; border-radius: 50%; background: var(--portal-warning); }
.client-portal-action-list span:nth-child(2), .client-portal-records span { display: grid; gap: 5px; }
.client-portal-action-list strong, .client-portal-records strong { font-size: 14px; }
.client-portal-action-list small, .client-portal-records small { color: var(--portal-dim); font: 10px "JetBrains Mono", monospace; }
.client-portal-action-list time, .client-portal-records em { color: var(--portal-dim); font-size: 11px; font-style: normal; }
.client-portal-action-list b, .client-portal-records b, .client-portal-practice__main > b { color: var(--portal-lime); font-weight: 400; }

.client-portal-practices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--portal-line); border: 1px solid var(--portal-line); border-radius: 14px; overflow: hidden; }
.client-portal-practices article { background: var(--portal-surface); }
.client-portal-practice__main { min-height: 138px; padding: 22px; display: grid; grid-template-columns: 10px minmax(0, 1fr) 18px; gap: 15px; align-items: start; }
.client-portal-practice__status { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--portal-dim); }
.client-portal-practice__status.is-ok { background: var(--portal-ok); }
.client-portal-practice__status.is-warning { background: var(--portal-warning); }
.client-portal-practice__status.is-danger { background: var(--portal-danger); }
.client-portal-practice__status.is-info { background: #70b7ff; }
.client-portal-practice__main > span:nth-child(2) { display: grid; gap: 8px; }
.client-portal-practice__main small { color: var(--portal-dim); font: 10px "JetBrains Mono", monospace; text-transform: uppercase; letter-spacing: .04em; }
.client-portal-practice__main strong { font: 700 19px/1.2 "Space Grotesk", sans-serif; }
.client-portal-practice__main em { color: var(--portal-dim); font-size: 12px; font-style: normal; }
.client-portal-practice__next, .client-portal-practice__approval, .client-portal-practice__support { min-height: 70px; padding: 15px 22px; border-top: 1px solid var(--portal-line); display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.client-portal-practice__next span, .client-portal-practice__approval span, .client-portal-practice__support span { color: var(--portal-dim); font: 9px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-practice__next strong, .client-portal-practice__approval strong, .client-portal-practice__support strong { font-size: 12px; }
.client-portal-practice__approval em { color: var(--portal-warning); font-size: 11px; font-style: normal; }
.client-portal-practice__support { grid-template-columns: auto 1fr; }
.client-portal-practice__support p { grid-column: 2; margin: 0; color: var(--portal-dim); font-size: 12px; }
.client-portal-records > a { grid-template-columns: minmax(0, 1fr) auto 18px; }

.client-portal-empty { padding: 34px; border: 1px solid var(--portal-line); border-radius: 12px; background: var(--portal-surface); }
.client-portal-empty h3, .client-portal-empty h1 { margin: 0 0 8px; font-family: "Space Grotesk", sans-serif; }
.client-portal-empty p { margin: 0; color: var(--portal-dim); line-height: 1.6; }
.client-portal-empty--error { max-width: 700px; margin: 80px auto; }
.client-portal-empty--error .client-portal-button { margin-top: 22px; }

.client-portal-detail__head { margin-bottom: 30px; display: flex; justify-content: space-between; gap: 30px; align-items: flex-start; }
.client-portal-detail__head h1 { max-width: 850px; margin: 0; font: 700 clamp(34px, 5vw, 62px)/1 "Space Grotesk", sans-serif; letter-spacing: -.05em; }
.client-portal-detail__head p:not(.client-portal-kicker) { margin: 12px 0 0; color: var(--portal-dim); }
.client-portal-status { padding: 9px 12px; border: 1px solid var(--portal-line); border-radius: 999px; font: 10px "JetBrains Mono", monospace; white-space: nowrap; }
.client-portal-status.is-ok { border-color: var(--portal-ok); color: var(--portal-ok); }
.client-portal-status.is-warning { border-color: var(--portal-warning); color: var(--portal-warning); }
.client-portal-status.is-danger { border-color: var(--portal-danger); color: var(--portal-danger); }
.client-portal-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.client-portal-timeline { margin: 0; padding: 22px 0 0; list-style: none; }
.client-portal-timeline li { position: relative; min-height: 76px; padding: 0 0 26px 30px; border-left: 1px solid var(--portal-line); display: grid; }
.client-portal-timeline li:last-child { border-left-color: transparent; }
.client-portal-timeline li > span { position: absolute; left: -6px; top: 1px; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--portal-line); background: var(--portal-bg); }
.client-portal-timeline li.is-done > span { border-color: var(--portal-ok); background: var(--portal-ok); }
.client-portal-timeline li.is-current > span { border-color: var(--portal-lime); box-shadow: 0 0 0 5px rgba(201, 241, 59, .12); }
.client-portal-timeline strong { font-size: 13px; }
.client-portal-timeline p { margin: 6px 0; color: var(--portal-dim); font-size: 12px; line-height: 1.5; }
.client-portal-timeline time { color: var(--portal-dim); font: 9px "JetBrains Mono", monospace; }
.client-portal-responsibilities { padding-top: 14px; }
.client-portal-responsibilities > div { min-height: 66px; border-bottom: 1px solid var(--portal-line); display: grid; grid-template-columns: 54px 1fr auto; gap: 12px; align-items: center; }
.client-portal-responsibilities span, .client-portal-responsibilities em { color: var(--portal-dim); font: 9px "JetBrains Mono", monospace; text-transform: uppercase; font-style: normal; }
.client-portal-responsibilities strong { font-size: 12px; }
.client-portal-responsibilities > p { color: var(--portal-dim); }
.client-portal-compact-list a { min-height: 68px; border-bottom: 1px solid var(--portal-line); display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.client-portal-compact-list span { display: grid; gap: 5px; }
.client-portal-compact-list small { color: var(--portal-dim); font: 9px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-compact-list strong { font-size: 12px; }
.client-portal-compact-list em { color: var(--portal-dim); font-size: 11px; font-style: normal; }
.client-portal-facts { margin: 14px 0 0; }
.client-portal-facts div { min-height: 58px; border-bottom: 1px solid var(--portal-line); display: grid; grid-template-columns: 95px 1fr; gap: 16px; align-items: center; }
.client-portal-facts dt { color: var(--portal-dim); font: 9px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-facts dd { margin: 0; font-size: 12px; }
.client-portal-messages { padding-top: 14px; }
.client-portal-messages article { padding: 16px 0; border-bottom: 1px solid var(--portal-line); }
.client-portal-messages article > div { display: flex; align-items: center; gap: 8px; }
.client-portal-messages strong { font-size: 12px; }
.client-portal-messages span { padding: 3px 6px; border-radius: 999px; background: var(--portal-lime); color: #0a0e14; font: 8px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-messages p { margin: 8px 0 0; color: var(--portal-dim); font-size: 12px; line-height: 1.55; }
.client-portal-support { padding: 22px 0; display: grid; gap: 8px; }
.client-portal-support strong { font: 700 20px "Space Grotesk", sans-serif; }
.client-portal-support span, .client-portal-support p { margin: 0; color: var(--portal-dim); font-size: 12px; }
.client-portal-support a { min-height: 44px; margin-top: 8px; padding: 0 12px; border: 1px solid var(--portal-line); border-radius: 8px; display: flex; align-items: center; font-size: 12px; }
.client-portal-standalone-copy { padding: 22px 0; }
.client-portal-standalone-copy strong { font-size: 13px; }
.client-portal-standalone-copy p { margin: 8px 0 0; color: var(--portal-dim); font-size: 12px; line-height: 1.55; }
.client-portal-detail__footer { margin-top: 42px; padding-top: 24px; border-top: 1px solid var(--portal-line); display: flex; justify-content: flex-end; }

.client-portal-auth { min-height: 100vh; padding: 30px clamp(20px, 5vw, 70px); background: radial-gradient(circle at 70% 20%, rgba(201, 241, 59, .12), transparent 34rem), var(--portal-bg); display: grid; grid-template-rows: auto 1fr; }
.client-portal-auth__panel { width: min(520px, 100%); margin: auto; padding: clamp(26px, 5vw, 48px); border: 1px solid var(--portal-line); border-radius: 18px; background: var(--portal-surface); }
.client-portal-auth__panel > p:not(.client-portal-kicker) { margin: 18px 0 26px; color: var(--portal-dim); line-height: 1.6; }

.client-portal-profile-main { width: min(1120px, 100%); }
.client-portal-profile-head { align-items: flex-start; }
.client-portal-profile-head > div > p:last-child { max-width: 620px; margin: 14px 0 0; color: var(--portal-dim); line-height: 1.6; }
.client-portal-profile-grid { display: grid; grid-template-columns: 1fr; gap: 18px; align-items: start; }
.client-portal-profile-card { border: 1px solid var(--portal-line); border-radius: 16px; background: var(--portal-surface); overflow: hidden; }
.client-portal-profile-card__head { min-height: 126px; padding: 26px; border-bottom: 1px solid var(--portal-line); display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .7fr); gap: 28px; align-items: start; }
.client-portal-profile-card__head h2 { margin: 0; font: 700 24px/1.1 "Space Grotesk", sans-serif; letter-spacing: -.03em; }
.client-portal-profile-card__head > p { margin: 0; color: var(--portal-dim); font-size: 12px; line-height: 1.55; }
.client-portal-profile-form { padding: 26px; display: grid; gap: 20px; }
.client-portal-profile-form > label, .client-portal-field-grid > label { display: grid; gap: 8px; }
.client-portal-profile-form label > span { color: var(--portal-dim); font-size: 11px; font-weight: 600; }
.client-portal-profile-form label > span > small { font-weight: 500; }
.client-portal-profile-form input, .client-portal-profile-form select { width: 100%; height: 46px; padding: 0 13px; border: 1px solid var(--portal-line); border-radius: 9px; background: var(--portal-bg); color: var(--portal-text); font: 500 14px Inter, sans-serif; }
.client-portal-profile-form input[type="file"] { height: auto; }
.client-portal-profile-form input:hover, .client-portal-profile-form select:hover { border-color: #46546a; }
.client-portal-profile-form input:focus, .client-portal-profile-form select:focus { border-color: var(--portal-lime); outline: 0; }
.client-portal-profile-form input:disabled, .client-portal-profile-form select:disabled, .client-portal-form-submit:disabled { opacity: .5; cursor: not-allowed; }
.client-portal-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.client-portal-avatar-row { padding-bottom: 22px; border-bottom: 1px solid var(--portal-line); display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 18px; align-items: center; }
.client-portal-avatar { width: 88px; height: 88px; border: 1px solid #46546a; border-radius: 50%; background: var(--portal-surface-2); overflow: hidden; display: grid; place-items: center; }
.client-portal-avatar img { width: 100%; height: 100%; object-fit: cover; }
.client-portal-avatar span { color: var(--portal-lime); font: 700 25px "Space Grotesk", sans-serif; letter-spacing: -.03em; }
.client-portal-avatar-row strong { font-size: 14px; }
.client-portal-avatar-row p { margin: 6px 0 12px; color: var(--portal-dim); font-size: 11px; }
.client-portal-avatar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.client-portal-upload, .client-portal-text-button { min-height: 38px; padding: 0 12px; border: 1px solid var(--portal-line); border-radius: 8px; background: transparent; color: var(--portal-text); display: inline-flex; align-items: center; cursor: pointer; font-size: 11px; font-weight: 700; }
.client-portal-upload:hover, .client-portal-text-button:hover { border-color: var(--portal-lime); }
.client-portal-text-button { color: var(--portal-dim); }
.client-portal-profile-company { min-height: 54px; padding: 0 14px; border: 1px solid var(--portal-line); border-radius: 9px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.client-portal-profile-company span { color: var(--portal-dim); font: 10px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-profile-company strong { font-size: 12px; text-align: right; }
.client-portal-field-status { margin-left: 6px; color: var(--portal-warning); font: 700 9px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-field-status.is-valid { color: var(--portal-ok); }
.client-portal-form-submit { min-height: 46px; padding: 0 18px; border: 1px solid var(--portal-lime); border-radius: 9px; background: var(--portal-lime); color: #0a0e14; justify-self: start; cursor: pointer; font-size: 12px; font-weight: 800; }
.client-portal-form-submit:not(:disabled):hover { background: transparent; color: var(--portal-lime); }
.client-portal-password-form { border-bottom: 1px solid var(--portal-line); }
.client-portal-password-form h3, .client-portal-mfa h3 { margin: 0; font: 700 17px "Space Grotesk", sans-serif; }
.client-portal-field-hint { margin: -8px 0 0; color: var(--portal-dim); font-size: 10px; line-height: 1.55; }
.client-portal-billing-identities { padding: 26px 26px 0; display: grid; gap: 9px; }
.client-portal-billing-identity { min-height: 66px; padding: 12px 14px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-bg); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.client-portal-billing-identity.is-active { border-color: rgba(201, 241, 59, .48); background: rgba(201, 241, 59, .035); }
.client-portal-billing-identity strong { font-size: 13px; }
.client-portal-billing-identity p { margin: 5px 0 0; color: var(--portal-dim); font-size: 10px; }
.client-portal-billing-active { color: var(--portal-lime); font: 700 8px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-billing-edit-form { padding-bottom: 18px; }
.client-portal-billing-delete-form { padding: 0 26px 26px; }
.client-portal-private-identity { margin: 18px 26px 24px; padding: 14px; border: 1px solid var(--portal-line); border-radius: 9px; color: var(--portal-dim); font-size: 11px; line-height: 1.55; }
.client-portal-billing-new { margin: 0 26px 26px; border: 1px solid var(--portal-line); border-radius: 11px; overflow: hidden; }
.client-portal-billing-new .client-portal-profile-form { padding: 18px 16px 20px; border-top: 1px solid var(--portal-line); }
.client-portal-mfa { padding: 26px; }
.client-portal-mfa > p { margin: 8px 0 18px; color: var(--portal-dim); font-size: 11px; line-height: 1.55; }
.client-portal-mfa > div { min-height: 50px; border-top: 1px solid var(--portal-line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.client-portal-mfa > div span { font-size: 12px; font-weight: 600; }
.client-portal-mfa > div strong { color: var(--portal-dim); font: 700 9px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-mfa > div strong.is-valid { color: var(--portal-ok); }
.client-portal-notice { margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-surface); font-size: 12px; line-height: 1.55; }
.client-portal-notice.is-success { border-color: rgba(124, 217, 146, .5); color: var(--portal-ok); }
.client-portal-notice.is-error { border-color: rgba(255, 102, 117, .5); color: #ff9ca6; }
.client-portal-notice ul { margin: 0; padding-left: 18px; }
.client-portal-subhead { padding: 26px 26px 18px; border-top: 1px solid var(--portal-line); }
.client-portal-subhead h3, .client-portal-addresses h3 { margin: 0; font: 700 17px "Space Grotesk", sans-serif; }
.client-portal-subhead p { margin: 7px 0 0; color: var(--portal-dim); font-size: 11px; line-height: 1.55; }
.client-portal-addresses { padding-bottom: 26px; }
.client-portal-address-card, .client-portal-address-new, .client-portal-empty-state { margin: 0 26px 12px; }
.client-portal-address-card { border: 1px solid var(--portal-line); border-radius: 11px; background: var(--portal-bg); overflow: hidden; }
.client-portal-address-card__summary { min-height: 78px; padding: 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.client-portal-address-card__summary strong { font-size: 13px; }
.client-portal-address-card__summary p { margin: 6px 0 0; color: var(--portal-dim); font-size: 11px; line-height: 1.5; }
.client-portal-address-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.client-portal-address-badges span { padding: 5px 7px; border: 1px solid rgba(201, 241, 59, .35); border-radius: 999px; color: var(--portal-lime); font: 700 8px "JetBrains Mono", monospace; text-transform: uppercase; white-space: nowrap; }
.client-portal-empty-state { padding: 18px; border: 1px dashed var(--portal-line); border-radius: 10px; color: var(--portal-dim); font-size: 11px; }
.client-portal-disclosure { border-top: 1px solid var(--portal-line); }
.client-portal-address-new { border: 1px solid var(--portal-line); border-radius: 11px; overflow: hidden; }
.client-portal-disclosure > summary { min-height: 44px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; color: var(--portal-dim); font-size: 11px; font-weight: 700; list-style: none; }
.client-portal-disclosure > summary::-webkit-details-marker { display: none; }
.client-portal-disclosure > summary::after { content: "+"; color: var(--portal-lime); font: 700 15px "JetBrains Mono", monospace; }
.client-portal-disclosure[open] > summary::after { content: "−"; }
.client-portal-disclosure.is-danger > summary { color: #ff9ca6; }
.client-portal-address-form { padding: 18px 16px 20px; border-top: 1px solid var(--portal-line); }
.client-portal-field-grid--address { grid-template-columns: .6fr 1fr 1fr; }
.client-portal-check-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.client-portal-check-grid label { min-height: 42px; padding: 0 12px; border: 1px solid var(--portal-line); border-radius: 8px; display: inline-flex; align-items: center; gap: 9px; color: var(--portal-dim); font-size: 11px; cursor: pointer; }
.client-portal-check-grid input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--portal-lime); }
.client-portal-delete-form { padding: 0 16px 18px; }
.client-portal-danger-button { min-height: 42px; padding: 0 14px; border: 1px solid rgba(255, 102, 117, .65); border-radius: 8px; background: transparent; color: #ff9ca6; cursor: pointer; font-size: 11px; font-weight: 800; }
.client-portal-danger-button:hover { background: rgba(255, 102, 117, .09); }
.client-portal-mfa-manage { border-top: 1px solid var(--portal-line); }
.client-portal-mfa-method { margin-top: 14px; border: 1px solid var(--portal-line); border-radius: 11px; background: var(--portal-bg); overflow: hidden; }
.client-portal-mfa-method__head { min-height: 58px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.client-portal-mfa-method__head span { font-size: 12px; font-weight: 700; }
.client-portal-mfa-method__head strong { color: var(--portal-dim); font: 700 9px "JetBrains Mono", monospace; text-transform: uppercase; }
.client-portal-mfa-method__head strong.is-valid { color: var(--portal-ok); }
.client-portal-inline-form { padding: 16px; border-top: 1px solid var(--portal-line); display: grid; grid-template-columns: minmax(180px, 1fr) minmax(160px, auto); gap: 12px; align-items: end; }
.client-portal-inline-form label { display: grid; gap: 7px; }
.client-portal-inline-form label span { color: var(--portal-dim); font-size: 10px; font-weight: 600; }
.client-portal-inline-form input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--portal-line); border-radius: 8px; background: var(--portal-surface); color: var(--portal-text); font: 500 13px Inter, sans-serif; }
.client-portal-inline-form .client-portal-form-submit, .client-portal-inline-form .client-portal-danger-button { justify-self: stretch; }
.client-portal-mfa-setup { padding: 18px 16px; border-top: 1px solid var(--portal-line); display: grid; grid-template-columns: 142px minmax(0, 1fr); gap: 20px; align-items: center; background: rgba(201, 241, 59, .04); }
.client-portal-mfa-qr { width: 142px; min-height: 142px; padding: 8px; border-radius: 8px; background: #fff; display: grid; place-items: center; color: #000; overflow: hidden; }
.client-portal-mfa-qr img, .client-portal-mfa-qr svg { max-width: 100%; height: auto; }
.client-portal-mfa-setup h4, .client-portal-recovery h4 { margin: 0; font: 700 15px "Space Grotesk", sans-serif; }
.client-portal-mfa-setup p, .client-portal-recovery p { margin: 7px 0; color: var(--portal-dim); font-size: 10px; line-height: 1.5; }
.client-portal-mfa-setup code { display: inline-block; max-width: 100%; padding: 7px 9px; border: 1px solid var(--portal-line); border-radius: 6px; color: var(--portal-lime); font: 10px "JetBrains Mono", monospace; overflow-wrap: anywhere; }
.client-portal-recovery { padding: 18px 16px; border-top: 1px solid rgba(255, 179, 71, .4); background: rgba(255, 179, 71, .05); }
.client-portal-recovery > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.client-portal-recovery code { padding: 7px 9px; border: 1px solid var(--portal-line); border-radius: 6px; font: 10px "JetBrains Mono", monospace; text-align: center; }
.client-portal-mfa-method > .client-portal-disclosure > .client-portal-field-hint { margin: 0; padding: 0 16px 12px; }

@media (max-width: 760px) {
  .client-portal-header { min-height: 64px; }
  .client-portal-account > span, .client-portal-account > a { display: none; }
  .client-portal-account { gap: 8px; }
  .client-portal-nav { padding-right: 0; }
  .client-portal-main { padding-top: 28px; }
  .client-portal-pagehead { align-items: center; }
  .client-portal-pagehead h1 { font-size: 34px; }
  .client-portal-button--quiet { padding: 0 13px; }
  .client-portal-next { grid-template-columns: 22px minmax(0, 1fr); gap: 18px; }
  .client-portal-next dl { grid-column: 2; min-width: 0; padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--portal-line); grid-template-columns: repeat(2, 1fr); }
  .client-portal-next > .client-portal-button { grid-column: 2; width: 100%; }
  .client-portal-practices { grid-template-columns: 1fr; }
  .client-portal-action-list a { grid-template-columns: 14px minmax(0, 1fr) 16px; padding: 12px 0; }
  .client-portal-action-list time { grid-column: 2; }
  .client-portal-action-list b { grid-column: 3; grid-row: 1 / 3; }
  .client-portal-records > a { padding: 12px 0; }
  .client-portal-detail__head { display: grid; gap: 18px; }
  .client-portal-detail-grid { grid-template-columns: 1fr; gap: 0; }
  .client-portal-profile-grid { grid-template-columns: 1fr; }
  .client-portal-profile-card__head { min-height: 0; grid-template-columns: 1fr; gap: 12px; }
  .client-portal-field-grid { grid-template-columns: 1fr; }
  .client-portal-field-grid--address { grid-template-columns: 1fr; }
  .client-portal-avatar-row { grid-template-columns: 72px minmax(0, 1fr); }
  .client-portal-avatar { width: 72px; height: 72px; }
  .client-portal-form-submit { width: 100%; }
  .client-portal-address-card__summary { align-items: flex-start; flex-direction: column; }
  .client-portal-billing-identity { align-items: flex-start; flex-direction: column; }
  .client-portal-address-badges { justify-content: flex-start; }
  .client-portal-inline-form { grid-template-columns: 1fr; }
  .client-portal-mfa-setup { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
