/* WEALTH OS v23 · единый клиентский интерфейс.
   Телефон, планшет и desktop используют один DOM и разные композиции. */

/* Палитра не должна возвращать светлый фон поверх тёмной темы. */
html[data-color-mode="dark"] body[data-view-role="client"] {
  --bg: #17171A; --surface: #222226; --surface-2: #2B2B30;
  --ink: #F3F1F5; --ink-2: #D0CDD5; --ink-3: #AAA6B1;
  --line: #46434B; --line-soft: #35333A; --control-line: #7B7584;
  --accent: #A995F0; --accent-2: #C1B3FA; --accent-soft: #352C55;
  --on-accent: #17151B; --warm: #B8B0A5; --alert: #E89170;
}

html[data-color-mode="dark"][data-theme-palette="sage"] body[data-view-role="client"] {
  --accent: #79BCA4; --accent-2: #A7D6C5; --accent-soft: #263E36;
}
html[data-color-mode="dark"][data-theme-palette="mineral"] body[data-view-role="client"] {
  --accent: #82AAD9; --accent-2: #B1CBE8; --accent-soft: #26364A;
}
html[data-color-mode="dark"][data-theme-palette="clay"] body[data-view-role="client"] {
  --accent: #D08D75; --accent-2: #E6B29F; --accent-soft: #4A3028;
}

@media (prefers-color-scheme: dark) {
  html:not([data-color-mode]) body[data-view-role="client"] {
    --bg: #17171A; --surface: #222226; --surface-2: #2B2B30;
    --ink: #F3F1F5; --ink-2: #D0CDD5; --ink-3: #AAA6B1;
    --line: #46434B; --line-soft: #35333A; --control-line: #7B7584;
    --accent: #A995F0; --accent-2: #C1B3FA; --accent-soft: #352C55;
    --on-accent: #17151B; --warm: #B8B0A5; --alert: #E89170;
  }
  html:not([data-color-mode])[data-theme-palette="sage"] body[data-view-role="client"] {
    --accent: #79BCA4; --accent-2: #A7D6C5; --accent-soft: #263E36;
  }
  html:not([data-color-mode])[data-theme-palette="mineral"] body[data-view-role="client"] {
    --accent: #82AAD9; --accent-2: #B1CBE8; --accent-soft: #26364A;
  }
  html:not([data-color-mode])[data-theme-palette="clay"] body[data-view-role="client"] {
    --accent: #D08D75; --accent-2: #E6B29F; --accent-soft: #4A3028;
  }
}

body[data-view-role="client"] {
  --client-radius: 24px;
  --client-radius-small: 18px;
  --client-type-caption: .75rem;
  --client-type-meta: .8125rem;
  --client-type-body: .875rem;
  --client-type-ui: .9375rem;
  --client-type-section: 1.25rem;
  --client-type-title: 1.875rem;
  --client-type-brief: clamp(1.875rem, 3.2vw, 2.625rem);
}

body[data-view-role="client"] .client-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

body[data-view-role="client"] .client-section-head p,
body[data-view-role="client"] .client-side-card > p,
body[data-view-role="client"] .client-side-card header p,
body[data-view-role="client"] .client-family-transition header p,
body[data-view-role="client"] .client-access-card header p {
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .11em;
  line-height: 1.35;
  text-transform: uppercase;
}

body[data-view-role="client"] .client-section-head h2,
body[data-view-role="client"] .client-side-card h2,
body[data-view-role="client"] .client-family-transition h2,
body[data-view-role="client"] .client-access-card h2 {
  margin-top: 6px;
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.2;
}

body[data-view-role="client"] .client-section-head > span {
  max-width: 32ch;
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.4;
  text-align: right;
}

body[data-view-role="client"] .client-empty-line {
  padding: 18px 0;
  color: var(--ink-3);
  font-size: 13px;
}

body[data-view-role="client"] .capital-profile-copy {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
body[data-view-role="client"] .capital-profile-name { min-width: 0; font-size: 14px; font-weight: 500; line-height: 1.35; }
body[data-view-role="client"] .capital-profile-value {
  flex: none;
  color: var(--ink-2);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
  white-space: nowrap;
}

body[data-view-role="client"] .client-capital-register {
  margin-top: 18px;
  border-block: 1px solid var(--line-soft);
}

body[data-view-role="client"] .client-capital-register > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 58px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  list-style: none;
}

body[data-view-role="client"] .client-capital-register > summary::-webkit-details-marker { display: none; }
body[data-view-role="client"] .client-capital-register > summary::after {
  content: "+";
  color: var(--ink-3);
  font-size: 20px;
  font-weight: 400;
}
body[data-view-role="client"] .client-capital-register[open] > summary::after { content: "−"; }
body[data-view-role="client"] .client-capital-register > summary span {
  margin-inline-start: auto;
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 400;
}

body[data-view-role="client"] .client-tax-list { margin-top: 14px; }
body[data-view-role="client"] .client-tax-list button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 16px;
  gap: 8px 12px;
  align-items: center;
  width: 100%;
  min-height: 72px;
  padding: 12px 0;
  border: 0;
  border-top: 1px solid var(--line-soft);
  background: none;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
body[data-view-role="client"] .client-tax-list button > span:first-child,
body[data-view-role="client"] .client-tax-list button b,
body[data-view-role="client"] .client-tax-list button small { display: block; min-width: 0; }
body[data-view-role="client"] .client-tax-list button b { font-size: 13px; font-weight: 600; line-height: 1.35; }
body[data-view-role="client"] .client-tax-list button small { margin-top: 3px; color: var(--ink-3); font-size: 10px; line-height: 1.35; }
body[data-view-role="client"] .client-tax-date { text-align: right; font-variant-numeric: tabular-nums; }
body[data-view-role="client"] .client-tax-date time { font-size: 13px; white-space: nowrap; }
body[data-view-role="client"] .client-tax-list svg { width: 15px; color: var(--ink-3); }

body[data-view-role="client"] .client-side-card,
body[data-view-role="client"] .client-family-transition,
body[data-view-role="client"] .client-access-card {
  border: 1px solid var(--line-soft);
  border-radius: var(--client-radius);
  background: var(--surface);
}

body[data-view-role="client"] .client-scenario-card > span {
  display: block;
  margin-top: 12px;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.5;
}
body[data-view-role="client"] .client-scenario-card > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  margin-top: 18px;
  border-top: 1px solid var(--line-soft);
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 600;
}
body[data-view-role="client"] .client-scenario-card > a svg { width: 15px; }

body[data-view-role="client"] .client-family-transition dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 20px;
  border-block: 1px solid var(--line-soft);
}
body[data-view-role="client"] .client-family-transition dl > div { min-width: 0; padding: 15px 0; }
body[data-view-role="client"] .client-family-transition dl > div + div { padding-inline-start: 18px; border-inline-start: 1px solid var(--line-soft); }
body[data-view-role="client"] .client-family-transition dt { color: var(--ink-3); font-size: 11px; }
body[data-view-role="client"] .client-family-transition dd { margin-top: 5px; font-size: 19px; font-weight: 600; }
body[data-view-role="client"] .client-family-transition > p {
  margin-top: 16px;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.5;
}
body[data-view-role="client"] .client-family-actions { margin-top: 16px; border-top: 1px solid var(--line-soft); }
body[data-view-role="client"] .client-family-actions button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  background: none;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font-size: 13px;
}
body[data-view-role="client"] .client-family-actions svg { width: 15px; color: var(--ink-3); }
body[data-view-role="client"] .client-access-intro,
body[data-view-role="client"] .client-access-note {
  color: var(--ink-2);
  font-size: 12px;
  line-height: 1.5;
}
body[data-view-role="client"] .client-access-intro { margin-top: 12px; }
body[data-view-role="client"] .client-access-note { margin-top: 12px; color: var(--ink-3); }

body[data-view-role="client"] .mobile-sync-status {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 32px; padding: 0 10px; border: 1px solid var(--line);
  border-radius: 999px; background: var(--surface-2); color: var(--ink-2);
  cursor: pointer; font-size: var(--client-type-caption); font-weight: 500;
  letter-spacing: 0; line-height: 1; text-transform: none;
}
body[data-view-role="client"] .mobile-brief-syncing > .mobile-brief-lead {
  color: var(--ink); font-size: 1.5625rem; font-weight: 600;
  letter-spacing: -.028em; line-height: 1.13; text-wrap: balance;
}
body[data-view-role="client"] .client-capital-arithmetic {
  margin-top: 14px; border-block: 1px solid var(--line-soft);
}
body[data-view-role="client"] .client-capital-arithmetic > div {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  min-height: 48px; padding: 13px 0;
}
body[data-view-role="client"] .client-capital-arithmetic > div + div { border-top: 1px solid var(--line-soft); }
body[data-view-role="client"] .client-capital-arithmetic dt { color: var(--ink-3); font-size: var(--client-type-meta); }
body[data-view-role="client"] .client-capital-arithmetic dd { font-size: var(--client-type-ui); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
body[data-view-role="client"] .client-capital-arithmetic .is-total { color: var(--ink); }
body[data-view-role="client"] .client-capital-arithmetic .is-liability button {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 44px; margin: -10px 0; padding: 0;
  border: 0; background: none; color: inherit; cursor: pointer;
  font: inherit; font-variant-numeric: inherit; white-space: nowrap;
}
body[data-view-role="client"] .client-capital-arithmetic .is-liability button[aria-pressed="true"] { color: var(--accent-2); }
body[data-view-role="client"] .client-capital-arithmetic .is-liability svg { width: 14px; color: var(--ink-3); }

@media (max-width: 719px) {
  body[data-view-role="client"] .client-context-strip { display: none; }
  body[data-view-role="client"] .client-future-grid { margin-top: 42px; }
  body[data-view-role="client"] .client-section-head { display: block; }
  body[data-view-role="client"] .client-section-head > span { display: block; margin-top: 6px; text-align: left; }
  body[data-view-role="client"] .client-timeline .horizon:first-of-type { margin-top: 22px; }
  body[data-view-role="client"] .client-future-aside { display: grid; gap: 12px; margin-top: 38px; }
  body[data-view-role="client"] .client-side-card,
  body[data-view-role="client"] .client-family-transition,
  body[data-view-role="client"] .client-access-card { padding: 20px; }
  body[data-view-role="client"] .client-family-grid { display: grid; gap: 12px; margin-top: 36px; }
  body[data-view-role="client"] .client-capital-register .mobile-capital-details { padding-bottom: 8px; }
  body[data-view-role="client"] .client-access-card .access-check { min-height: 44px; }
}

@media (min-width: 720px) {
  body[data-view-role="client"] {
    --nav-w: 84px;
    --pad: 28px;
  }

  body[data-view-role="client"] .shell { grid-template-columns: var(--nav-w) minmax(0, 1fr); }
  body[data-view-role="client"] .side { display: flex; }
  body[data-view-role="client"] .side-top { padding: 24px 10px 20px; text-align: center; }
  body[data-view-role="client"] .brand { font-size: 0; letter-spacing: 0; }
  body[data-view-role="client"] .brand::after { content: "W·OS"; font-size: 11px; font-weight: 700; letter-spacing: .12em; }
  body[data-view-role="client"] .brand-sub { display: none; }
  body[data-view-role="client"] .side-nav { padding: 0 8px 16px; }
  body[data-view-role="client"] .nav-item {
    position: relative;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    min-height: 62px;
    padding: 8px 4px;
    border-radius: 16px;
    font-size: 9px;
    line-height: 1.1;
    text-align: center;
  }
  body[data-view-role="client"] .nav-item svg { width: 19px; height: 19px; }
  body[data-view-role="client"] .nav-badge { position: absolute; top: 5px; right: 5px; }
  body[data-view-role="client"] .side-foot { padding: 14px 10px 18px; }
  body[data-view-role="client"] .side-profile {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 48px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
  }
  body[data-view-role="client"] .side-avatar {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--surface-2);
    font-size: 10px;
    font-weight: 700;
  }
  body[data-view-role="client"] .side-profile-copy,
  body[data-view-role="client"] .side-profile > svg,
  body[data-view-role="client"] .side-palette,
  body[data-view-role="client"] .role-switch-label,
  body[data-view-role="client"] .role-switch,
  body[data-view-role="client"] .side-logout { display: none; }

  body[data-view-role="client"] .top {
    min-height: 72px;
    padding: 14px var(--pad);
    border-bottom-color: var(--line-soft);
  }
  body[data-view-role="client"] .top-context { display: flex; align-items: baseline; gap: 18px; min-width: 0; }
  body[data-view-role="client"] .crumb-desktop { display: inline; }
  body[data-view-role="client"] .crumb-desktop b { font-size: 15px; font-weight: 600; }
  body[data-view-role="client"] .crumb-mobile { display: none; }
  body[data-view-role="client"] .top-sync {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    min-height: 36px;
    padding: 0 12px;
    border: 0;
    border-radius: 18px;
    background: none;
    color: var(--ink-3);
    cursor: pointer;
    font-size: var(--client-type-meta);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  body[data-view-role="client"] .top-sync:hover { background: var(--surface-2); color: var(--ink-2); }
  body[data-view-role="client"] .top-acts { display: flex; }
  body[data-view-role="client"] #btn-export,
  body[data-view-role="client"] #btn-sync { display: none; }
  body[data-view-role="client"] .top-acts .icon-btn { width: 42px; height: 42px; border-radius: 50%; }
  body[data-view-role="client"] .network-state { top: 72px; padding-inline: var(--pad); }
  body[data-view-role="client"] .main {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding: 36px var(--pad) 80px;
  }
  body[data-view-role="client"] .mnav { display: none; }
  body[data-view-role="client"] .mobile-today-app,
  body[data-view-role="client"] .mobile-screen-summary,
  body[data-view-role="client"] .mobile-capital-selection { display: block; }
  body[data-view-role="client"] .today-desktop,
  body[data-view-role="client"] .capital-desktop-content { display: none; }
  body[data-view-role="client"] .client-tax-list button {
    grid-template-columns: minmax(0, 1fr) 16px;
    gap: 8px 12px;
  }
  body[data-view-role="client"] .client-tax-date {
    grid-column: 1;
    grid-row: 2;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    text-align: left;
  }
  body[data-view-role="client"] .client-tax-list button > svg {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
  }
  body[data-view-role="client"] .mobile-demo-note {
    color: var(--ink-3);
    font-size: 10px;
    text-align: center;
  }
  body[data-view-role="client"] .mobile-overline,
  body[data-view-role="client"] .mobile-brief-kicker,
  body[data-view-role="client"] .mobile-capital-profile-overline,
  body[data-view-role="client"] .mobile-capital-profile-label {
    color: var(--ink-3);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .11em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  /* Сегодня */
  body[data-view-role="client"] .client-today-page {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 20px;
  }
  body[data-view-role="client"] .mobile-today-hero { grid-column: 1 / -1; min-width: 0; }
  body[data-view-role="client"] .mobile-brief {
    display: flex;
    flex-direction: column;
    min-height: 300px;
    padding: 30px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius);
    background: var(--surface);
  }
  body[data-view-role="client"] .mobile-brief-decision,
  body[data-view-role="client"] .mobile-brief-source { background: var(--accent-soft); }
  body[data-view-role="client"] .mobile-brief-kicker { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; justify-content: start; gap: 10px; min-height: 32px; }
  body[data-view-role="client"] .mobile-brief-kicker-label { color: var(--accent-2); }
  body[data-view-role="client"] .mobile-brief-kicker time { color: var(--ink-3); font-weight: 400; letter-spacing: 0; text-transform: none; }
  body[data-view-role="client"] .mobile-brief-kicker time { justify-self: end; }
  body[data-view-role="client"] .mobile-sync-status {
    display: inline-flex; align-items: center; min-height: 32px; padding: 0 10px;
    border: 1px solid var(--line); border-radius: 999px; background: var(--surface-2);
    color: var(--ink-2); cursor: pointer; font-size: var(--client-type-caption);
    font-weight: 500; letter-spacing: 0; line-height: 1; text-transform: none;
  }
  body[data-view-role="client"] .mobile-brief h1 {
    max-width: 15ch;
    margin-top: 22px;
    font-size: var(--client-type-brief);
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.04;
    text-wrap: balance;
  }
  body[data-view-role="client"] .mobile-brief-lead {
    max-width: 48ch;
    margin-top: 14px;
    color: var(--ink-2);
    font-size: var(--client-type-ui);
    line-height: 1.48;
  }
  body[data-view-role="client"] .mobile-brief-calm > .mobile-brief-lead,
  body[data-view-role="client"] .mobile-brief-syncing > .mobile-brief-lead {
    max-width: 27ch; margin-top: 8px; color: var(--ink);
    font-size: var(--client-type-brief); font-weight: 600;
    letter-spacing: -.035em; line-height: 1.08; text-wrap: balance;
  }
  body[data-view-role="client"] .mobile-brief-change {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    min-height: 44px;
    margin-top: auto;
    padding: 18px 0 0;
    border: 0;
    background: none;
    color: var(--ink-2);
    cursor: pointer;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
  }
  body[data-view-role="client"] .mobile-info {
    display: inline-grid;
    place-items: center;
    width: 17px;
    height: 17px;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--ink-3);
    font-size: 10px;
  }
  body[data-view-role="client"] .mobile-brief-action,
  body[data-view-role="client"] .mobile-brief-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: fit-content;
    min-height: 44px;
    margin-top: 14px;
    padding: 0 16px;
    border-radius: 12px;
    color: var(--accent-2);
    font-size: 13px;
    font-weight: 600;
  }
  body[data-view-role="client"] .mobile-brief-action { background: var(--accent); color: var(--on-accent); }
  body[data-view-role="client"] .mobile-brief-link { justify-content: flex-start; padding-inline: 0; }
  body[data-view-role="client"] .mobile-brief-action svg,
  body[data-view-role="client"] .mobile-brief-link svg { width: 15px; }

  body[data-view-role="client"] .mobile-section { min-width: 0; }
  body[data-view-role="client"] .mobile-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
  }
  body[data-view-role="client"] .mobile-section-head h2 { font-size: 18px; font-weight: 600; letter-spacing: -.015em; }
  body[data-view-role="client"] .mobile-section-head a { color: var(--accent-2); font-size: 12px; }
  body[data-view-role="client"] .client-nearest { grid-column: span 5; }
  body[data-view-role="client"] .mobile-action-list {
    overflow: hidden;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius-small);
    background: var(--surface);
  }
  body[data-view-role="client"] .mobile-action-list li + li { border-top: 1px solid var(--line-soft); }
  body[data-view-role="client"] .mobile-action-list a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18px;
    gap: 3px 12px;
    min-height: 94px;
    padding: 15px 17px;
  }
  body[data-view-role="client"] .mobile-action-date { color: var(--accent-2); font-size: 11px; font-weight: 600; }
  body[data-view-role="client"] .mobile-action-list b { font-size: 14px; font-weight: 600; line-height: 1.35; }
  body[data-view-role="client"] .mobile-action-list small { color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .mobile-action-list svg { grid-column: 2; grid-row: 1 / span 3; align-self: center; width: 15px; color: var(--ink-3); }
  body[data-view-role="client"] .mobile-empty { padding: 18px; border-radius: var(--client-radius-small); background: var(--surface); color: var(--ink-3); }
  body[data-view-role="client"] .client-context-strip {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-block: 1px solid var(--line-soft);
  }
  body[data-view-role="client"] .client-context-strip > div { min-width: 0; padding: 16px 18px; }
  body[data-view-role="client"] .client-context-strip > div:first-child { padding-inline-start: 0; }
  body[data-view-role="client"] .client-context-strip > div + div { border-inline-start: 1px solid var(--line-soft); }
  body[data-view-role="client"] .client-context-strip dt { color: var(--ink-3); font-size: 11px; }
  body[data-view-role="client"] .client-context-strip dd { margin-top: 5px; font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; }
  body[data-view-role="client"] .client-context-strip p { margin-top: 3px; color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .mobile-services { grid-column: span 5; }
  body[data-view-role="client"] .mobile-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body[data-view-role="client"] .mobile-service {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    min-height: 132px;
    padding: 17px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius-small);
    background: var(--surface);
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .mobile-service.is-featured { background: var(--accent-soft); }
  body[data-view-role="client"] .mobile-service > svg { width: 20px; color: var(--ink-2); }
  body[data-view-role="client"] .mobile-service span { display: grid; gap: 4px; margin-top: auto; }
  body[data-view-role="client"] .mobile-service b { font-size: 14px; font-weight: 600; }
  body[data-view-role="client"] .mobile-service small { color: var(--ink-3); font-size: 10px; line-height: 1.35; }
  body[data-view-role="client"] .client-advisor { grid-column: span 3; }
  body[data-view-role="client"] .mobile-advisor-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    width: 100%;
    min-height: 132px;
    padding: 18px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius-small);
    background: var(--surface);
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .mobile-advisor-avatar,
  body[data-view-role="client"] .mobile-person-avatar {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--bg);
    font-size: 10px;
    font-weight: 700;
  }
  body[data-view-role="client"] .mobile-advisor-card > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
  body[data-view-role="client"] .mobile-advisor-card b { font-size: 14px; font-weight: 600; }
  body[data-view-role="client"] .mobile-advisor-card small { color: var(--ink-3); font-size: 10px; line-height: 1.35; }
  body[data-view-role="client"] .mobile-advisor-link { grid-column: 1 / -1; color: var(--accent-2); font-size: 11px; }
  body[data-view-role="client"] .client-today-page > .mobile-demo-note { grid-column: 1 / -1; margin-top: 14px; }

  /* Капитал */
  body[data-view-role="client"] .client-capital-summary {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0 20px;
  }
  body[data-view-role="client"] .client-capital-summary > .mobile-overline { grid-column: 1 / 4; }
  body[data-view-role="client"] .mobile-summary-value-row { grid-column: 1 / 5; display: flex; align-items: center; gap: 10px; margin-top: 8px; }
  body[data-view-role="client"] .mobile-summary-value {
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
    font-size: clamp(34px, 5vw, 48px);
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.04;
    text-align: left;
    white-space: nowrap;
  }
  body[data-view-role="client"] .mobile-currency {
    min-height: 42px;
    padding: 0 13px;
    border: 0;
    border-radius: 21px;
    background: var(--surface-2);
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
  }
  body[data-view-role="client"] .mobile-currency svg { width: 12px; }
  body[data-view-role="client"] .mobile-summary-facts {
    grid-column: 5 / -1;
    grid-row: 1 / span 2;
    align-self: end;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-block: 1px solid var(--line-soft);
  }
  body[data-view-role="client"] .mobile-summary-facts > div { min-width: 0; padding: 14px 16px; }
  body[data-view-role="client"] .mobile-summary-facts > div + div { border-inline-start: 1px solid var(--line-soft); }
  body[data-view-role="client"] .mobile-summary-facts dt { color: var(--ink-3); font-size: 11px; }
  body[data-view-role="client"] .mobile-summary-facts dd { margin-top: 5px; font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }
  body[data-view-role="client"] .mobile-summary-facts small { display: block; margin-top: 4px; color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .mobile-capital-rail {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 32px;
  }
  body[data-view-role="client"] .mobile-capital-rail > li { display: flex; min-width: 0; }
  body[data-view-role="client"] .mobile-capital-rail .mobile-capital-card { height: 100%; }
  body[data-view-role="client"] .mobile-capital-rail > li:nth-child(5):nth-last-child(2) { grid-column: 2; }
  body[data-view-role="client"] .mobile-capital-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 148px;
    padding: 17px;
    border: 1px solid transparent;
    border-radius: var(--client-radius-small);
    background: var(--surface);
    color: inherit;
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .mobile-capital-card.is-selected { border-color: var(--accent); background: var(--accent-soft); }
  body[data-view-role="client"] .mobile-card-label { color: var(--ink-2); font-size: 13px; }
  body[data-view-role="client"] .mobile-capital-card b { margin-top: 10px; font-size: 21px; font-weight: 600; letter-spacing: -.025em; }
  body[data-view-role="client"] .mobile-capital-card small { margin-top: auto; padding-top: 12px; color: var(--ink-3); font-size: 10px; line-height: 1.35; }
  body[data-view-role="client"] .client-capital-arithmetic {
    grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 14px; border-block: 1px solid var(--line-soft);
  }
  body[data-view-role="client"] .client-capital-arithmetic > div { display: block; min-width: 0; padding: 16px 18px; }
  body[data-view-role="client"] .client-capital-arithmetic > div:first-child { padding-inline-start: 0; }
  body[data-view-role="client"] .client-capital-arithmetic > div + div { border-top: 0; border-inline-start: 1px solid var(--line-soft); }
  body[data-view-role="client"] .client-capital-arithmetic dt { color: var(--ink-3); font-size: var(--client-type-meta); }
  body[data-view-role="client"] .client-capital-arithmetic dd { margin-top: 5px; font-size: 1.125rem; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
  body[data-view-role="client"] .client-capital-arithmetic .is-total dd { color: var(--ink); }
  body[data-view-role="client"] .mobile-capital-selection { margin-top: 28px; }
  body[data-view-role="client"] .mobile-capital-profile {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 28px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius);
    background: var(--surface);
  }
  body[data-view-role="client"] .mobile-capital-profile::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: -62px;
    right: -62px;
    width: 150px;
    height: 150px;
    opacity: .8;
    background: repeating-radial-gradient(circle at center, transparent 0 11px, var(--line-soft) 12px 13px);
    pointer-events: none;
  }
  body[data-view-role="client"] .mobile-capital-profile h2 {
    max-width: 18ch;
    margin-top: 10px;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -.03em;
    line-height: 1.12;
  }
  body[data-view-role="client"] .mobile-capital-profile-body { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
  body[data-view-role="client"] .capital-profile-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 28px; margin-top: 20px; }
  body[data-view-role="client"] .capital-profile-metric + .capital-profile-metric { margin-top: 0; }
  body[data-view-role="client"] .capital-profile-name { font-size: 13px; font-weight: 500; }
  body[data-view-role="client"] .capital-profile-value { font-size: 11px; }
  body[data-view-role="client"] .capital-profile-scale {
    --profile-position: 50%;
    position: relative;
    height: 18px;
    margin-top: 5px;
    background-image: linear-gradient(to right, var(--control-line) 0 1px, transparent 1px);
    background-position: left center;
    background-repeat: repeat-x;
    background-size: 25% 8px;
  }
  body[data-view-role="client"] .capital-profile-scale::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 1px; background: var(--control-line); }
  body[data-view-role="client"] .capital-profile-scale::after {
    content: "";
    position: absolute;
    top: 3px;
    left: calc(var(--profile-position) - 6px);
    width: 12px;
    height: 12px;
    border: 2px solid var(--surface);
    border-radius: 50%;
    background: var(--accent);
    outline: 1px solid var(--accent);
  }
  body[data-view-role="client"] .mobile-capital-profile-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 54px;
    margin-top: 18px;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--line);
    background: none;
    color: inherit;
    cursor: pointer;
    font-size: 13px;
    text-align: left;
  }
  body[data-view-role="client"] .mobile-capital-profile-link svg { width: 15px; color: var(--ink-3); }
  body[data-view-role="client"] .mobile-capital-profile-date { margin: 10px 4px 0; color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .client-capital-selection {
    padding: 26px 28px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius);
    background: var(--surface);
  }
  body[data-view-role="client"] .mobile-capital-back {
    min-height: 44px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--accent-2);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
  }
  body[data-view-role="client"] .mobile-capital-selection-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 10px 0 18px; }
  body[data-view-role="client"] .mobile-capital-selection-head p { color: var(--ink-3); font-size: 11px; }
  body[data-view-role="client"] .mobile-capital-selection-head h2 { margin-top: 5px; font-size: 28px; font-weight: 600; letter-spacing: -.025em; }
  body[data-view-role="client"] .mobile-capital-selection-head > b { font-size: 23px; font-weight: 600; white-space: nowrap; }
  body[data-view-role="client"] .mobile-capital-finding { max-width: 70ch; margin-bottom: 14px; color: var(--ink-2); font-size: 13px; }
  body[data-view-role="client"] .mobile-capital-details { border-top: 1px solid var(--line-soft); }
  body[data-view-role="client"] .mobile-capital-details li + li { border-top: 1px solid var(--line-soft); }
  body[data-view-role="client"] .mobile-capital-details button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 16px;
    gap: 10px;
    align-items: center;
    width: 100%;
    min-height: 66px;
    padding: 12px 0;
    border: 0;
    background: none;
    color: inherit;
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .mobile-capital-details button span,
  body[data-view-role="client"] .mobile-capital-details button b,
  body[data-view-role="client"] .mobile-capital-details button small { display: block; min-width: 0; }
  body[data-view-role="client"] .mobile-capital-details button b { font-size: 14px; font-weight: 600; }
  body[data-view-role="client"] .mobile-capital-details button small { margin-top: 3px; color: var(--ink-3); font-size: 11px; }
  body[data-view-role="client"] .mobile-capital-details button strong { font-size: 14px; font-weight: 600; white-space: nowrap; }
  body[data-view-role="client"] .mobile-capital-details button strong small { display: none; }
  body[data-view-role="client"] .mobile-capital-details button svg { width: 15px; color: var(--ink-3); }
  body[data-view-role="client"] .client-capital-page > .mobile-demo-note { margin-top: 28px; }

  /* Будущее */
  body[data-view-role="client"] .client-future-summary {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0 20px;
    padding: 28px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius);
    background: var(--surface);
  }
  body[data-view-role="client"] .client-future-summary > .mobile-overline,
  body[data-view-role="client"] .mobile-future-date,
  body[data-view-role="client"] .client-future-summary > h2,
  body[data-view-role="client"] .client-future-summary > p:not(.mobile-overline) { grid-column: 1 / 4; }
  body[data-view-role="client"] .mobile-future-date { display: block; margin-top: 8px; font-size: 31px; font-weight: 600; letter-spacing: -.035em; line-height: 1.08; }
  body[data-view-role="client"] .client-future-summary > h2 { margin-top: 8px; font-size: 17px; font-weight: 600; line-height: 1.35; }
  body[data-view-role="client"] .client-future-summary > p:not(.mobile-overline) { margin-top: 4px; color: var(--ink-3); font-size: 11px; }
  body[data-view-role="client"] .client-future-summary .mobile-summary-facts { grid-column: 1 / 4; grid-row: auto; align-self: auto; margin-top: 20px; }
  body[data-view-role="client"] .mobile-goal-heading { grid-column: 4 / -1; grid-row: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  body[data-view-role="client"] .mobile-goal-label { font-size: 18px; font-weight: 600; }
  body[data-view-role="client"] .goal-edit-trigger { min-height: 44px; }
  body[data-view-role="client"] .mobile-goal-rail {
    grid-column: 4 / -1;
    grid-row: 2 / span 4;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
  }
  body[data-view-role="client"] .mobile-goal-rail button {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 126px;
    padding: 15px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius-small);
    background: var(--bg);
    color: inherit;
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .mobile-goal-rail span { color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .mobile-goal-rail b { margin-top: 10px; font-size: 13px; font-weight: 600; line-height: 1.35; }
  body[data-view-role="client"] .mobile-goal-rail small { margin-top: auto; padding-top: 10px; color: var(--ink-2); font-size: 10px; }
  body[data-view-role="client"] .client-future-grid { display: grid; gap: 22px; margin-top: 28px; }
  body[data-view-role="client"] .client-timeline,
  body[data-view-role="client"] .client-future-aside { min-width: 0; }
  body[data-view-role="client"] .client-timeline { padding: 26px 28px; border: 1px solid var(--line-soft); border-radius: var(--client-radius); background: var(--surface); }
  body[data-view-role="client"] .horizon { margin-top: 32px; }
  body[data-view-role="client"] .horizon:first-of-type { margin-top: 24px; }
  body[data-view-role="client"] .horizon-head { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--line-soft); }
  body[data-view-role="client"] .horizon-head h3 { font-size: 15px; font-weight: 600; }
  body[data-view-role="client"] .horizon-head span { color: var(--ink-3); font-size: 11px; }
  body[data-view-role="client"] .tl-row {
    position: relative;
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr) auto 16px;
    gap: 14px;
    align-items: center;
    width: 100%;
    min-height: 74px;
    padding: 12px 12px 12px 30px;
    border: 0;
    border-bottom: 1px solid var(--line-soft);
    background: none;
    color: inherit;
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .tl-row::before { content: ""; position: absolute; left: 10px; top: 0; bottom: 0; width: 1px; background: var(--line); }
  body[data-view-role="client"] .tl-row::after { content: ""; position: absolute; left: 6px; top: calc(50% - 4px); width: 9px; height: 9px; border: 1px solid var(--ink-3); border-radius: 50%; background: var(--surface); }
  body[data-view-role="client"] .tl-row.is-nearest { border-radius: 14px; background: var(--accent-soft); }
  body[data-view-role="client"] .tl-row.is-nearest::after { border-color: var(--accent); background: var(--accent); }
  body[data-view-role="client"] .tl-date { color: var(--ink-3); font-size: 11px; font-variant-numeric: tabular-nums; }
  body[data-view-role="client"] .tl-copy { min-width: 0; }
  body[data-view-role="client"] .tl-copy b,
  body[data-view-role="client"] .tl-copy small { display: block; min-width: 0; }
  body[data-view-role="client"] .tl-copy b { font-size: 13px; font-weight: 600; line-height: 1.35; }
  body[data-view-role="client"] .tl-copy small { margin-top: 3px; color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .tl-amt { font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
  body[data-view-role="client"] .tl-row .row-chev svg { width: 15px; color: var(--ink-3); }
  body[data-view-role="client"] .client-future-aside { display: grid; grid-auto-rows: max-content; align-items: start; gap: 12px; }
  body[data-view-role="client"] .client-side-card { padding: 22px; }
  body[data-view-role="client"] .client-future-page > .mobile-demo-note { margin-top: 28px; }

  /* Семья */
  body[data-view-role="client"] .client-family-summary { padding: 28px; border: 1px solid var(--line-soft); border-radius: var(--client-radius); background: var(--surface); }
  body[data-view-role="client"] .client-family-summary > h2 { margin-top: 8px; font-size: 30px; font-weight: 600; letter-spacing: -.03em; line-height: 1.12; }
  body[data-view-role="client"] .client-family-summary > p:not(.mobile-overline) { max-width: 56ch; margin-top: 10px; color: var(--ink-2); font-size: 14px; }
  body[data-view-role="client"] .mobile-family-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 24px; }
  body[data-view-role="client"] .mobile-family-rail li { min-width: 0; }
  body[data-view-role="client"] .mobile-family-rail button {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 16px;
    gap: 2px 11px;
    align-items: center;
    width: 100%;
    min-height: 78px;
    padding: 12px;
    border: 1px solid var(--line-soft);
    border-radius: var(--client-radius-small);
    background: var(--bg);
    color: inherit;
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .mobile-family-rail .mobile-person-avatar { grid-row: 1 / span 2; }
  body[data-view-role="client"] .mobile-family-rail b { grid-column: 2; align-self: end; font-size: 13px; font-weight: 600; line-height: 1.25; }
  body[data-view-role="client"] .mobile-family-rail small { grid-column: 2; align-self: start; color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .mobile-family-rail svg { grid-column: 3; grid-row: 1 / span 2; width: 15px; color: var(--ink-3); }
  body[data-view-role="client"] .client-family-grid { display: grid; gap: 20px; margin-top: 22px; }
  body[data-view-role="client"] .client-family-transition,
  body[data-view-role="client"] .client-access-card { padding: 26px 28px; min-width: 0; }
  body[data-view-role="client"] .access-controls { display: grid; margin-top: 14px; border-top: 1px solid var(--line); }
  body[data-view-role="client"] .access-permission { padding-bottom: 10px; }
  body[data-view-role="client"] .access-toggle {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 38px;
    gap: 10px;
    align-items: center;
    width: 100%;
    min-height: 70px;
    padding: 12px 0 6px;
    border: 0;
    background: none;
    color: inherit;
    text-align: left;
    cursor: pointer;
  }
  body[data-view-role="client"] .access-toggle > span:first-child { display: grid; gap: 3px; min-width: 0; }
  body[data-view-role="client"] .access-toggle b { font-size: 13px; font-weight: 600; }
  body[data-view-role="client"] .access-toggle small { color: var(--ink-3); font-size: 10px; line-height: 1.35; }
  body[data-view-role="client"] .access-toggle-state { color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .access-toggle-track { position: relative; width: 38px; height: 22px; border-radius: 20px; background: var(--control-line); transition: background var(--motion-fast) var(--ease-standard); }
  body[data-view-role="client"] .access-toggle-track i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--surface); transition: transform var(--motion-fast) var(--ease-standard); }
  body[data-view-role="client"] .access-toggle[aria-pressed="true"] .access-toggle-track { background: var(--accent); }
  body[data-view-role="client"] .access-toggle[aria-pressed="true"] .access-toggle-track i { transform: translateX(16px); }
  body[data-view-role="client"] .access-check { min-height: 44px; padding: 0; border: 0; background: none; color: var(--accent-2); cursor: pointer; font-size: 11px; }
  body[data-view-role="client"] .access-check svg { width: 14px; }
  body[data-view-role="client"] .client-family-page > .mobile-demo-note { margin-top: 28px; }

  body[data-view-role="client"] .panel { width: min(440px, calc(100vw - var(--nav-w))); }
}

@media (min-width: 900px) and (max-width: 1199px) {
  body[data-view-role="client"] { --nav-w: 88px; --pad: 32px; }
  body[data-view-role="client"] .client-today-page { gap: 22px; }
  body[data-view-role="client"] .mobile-today-hero { grid-column: 1 / 6; }
  body[data-view-role="client"] .client-nearest { grid-column: 6 / -1; }
  body[data-view-role="client"] .mobile-services { grid-column: 1 / 6; }
  body[data-view-role="client"] .client-advisor { grid-column: 6 / -1; }
  body[data-view-role="client"] .mobile-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-view-role="client"] .mobile-capital-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body[data-view-role="client"] .mobile-capital-profile { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 5fr); gap: 0 34px; }
  body[data-view-role="client"] .mobile-capital-profile-body { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; padding: 0; border-top: 0; }
  body[data-view-role="client"] .mobile-capital-profile-link { grid-column: 1; align-self: end; }
  body[data-view-role="client"] .capital-profile-metrics { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  body[data-view-role="client"] .client-future-grid { grid-template-columns: minmax(0, 5fr) minmax(280px, 3fr); }
  body[data-view-role="client"] .client-future-aside { align-self: start; position: sticky; top: 94px; }
}

@media (min-width: 900px) and (max-width: 1099px) {
  body[data-view-role="client"] .client-family-grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  body[data-view-role="client"] .client-access-card { position: static; }
}

@media (min-width: 1100px) and (max-width: 1199px) {
  body[data-view-role="client"] .client-family-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 3fr); align-items: start; }
  body[data-view-role="client"] .client-access-card { position: sticky; top: 94px; }
}

@media (min-width: 1200px) {
  body[data-view-role="client"] { --nav-w: 216px; --pad: 40px; }
  body[data-view-role="client"] .side-top { padding: 28px 24px 20px; text-align: left; }
  body[data-view-role="client"] .brand { font-size: 13px; letter-spacing: .24em; }
  body[data-view-role="client"] .brand::after { content: none; }
  body[data-view-role="client"] .brand-sub { display: block; }
  body[data-view-role="client"] .side-nav { padding: 0 12px 18px; }
  body[data-view-role="client"] .nav-item {
    flex-direction: row;
    justify-content: flex-start;
    gap: 12px;
    min-height: 46px;
    padding: 9px 12px;
    border-radius: 14px;
    font-size: 14px;
    text-align: left;
  }
  body[data-view-role="client"] .side-foot { padding: 18px 24px 24px; }
  body[data-view-role="client"] .side-profile {
    grid-template-columns: 40px minmax(0, 1fr) 14px;
    gap: 10px;
    min-height: 54px;
    text-align: left;
  }
  body[data-view-role="client"] .side-profile-copy { display: grid; gap: 2px; min-width: 0; }
  body[data-view-role="client"] .side-profile-copy b { font-size: 13px; font-weight: 600; }
  body[data-view-role="client"] .side-profile-copy small { color: var(--ink-3); font-size: 10px; }
  body[data-view-role="client"] .side-profile > svg { display: block; width: 14px; color: var(--ink-3); }
  body[data-view-role="client"] .side-palette { display: grid; }
  body[data-view-role="client"] .role-switch-label,
  body[data-view-role="client"] .role-switch,
  body[data-view-role="client"] .side-logout { display: block; }
  body[data-view-role="client"] .main { padding-top: 42px; }
  body[data-view-role="client"] .panel { width: min(520px, calc(100vw - var(--nav-w))); }

  body[data-view-role="client"] .client-today-page {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px;
  }
  body[data-view-role="client"] .mobile-today-hero { grid-column: 1 / 9; }
  body[data-view-role="client"] .client-nearest { grid-column: 9 / -1; }
  body[data-view-role="client"] .mobile-services { grid-column: 1 / 9; }
  body[data-view-role="client"] .client-advisor { grid-column: 9 / -1; }
  body[data-view-role="client"] .mobile-service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body[data-view-role="client"] .mobile-brief { min-height: 326px; padding: 38px; }
  body[data-view-role="client"] .mobile-brief h1 { font-size: clamp(40px, 3.4vw, 52px); }

  body[data-view-role="client"] .client-capital-summary { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; }
  body[data-view-role="client"] .client-capital-summary > .mobile-overline { grid-column: 1 / 7; }
  body[data-view-role="client"] .mobile-summary-value-row { grid-column: 1 / 7; }
  body[data-view-role="client"] .mobile-summary-facts { grid-column: 7 / -1; }
  body[data-view-role="client"] .mobile-capital-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  body[data-view-role="client"] .mobile-capital-profile { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); padding: 34px 38px; }

  body[data-view-role="client"] .client-future-summary { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; padding: 32px 36px; }
  body[data-view-role="client"] .client-future-summary > .mobile-overline,
  body[data-view-role="client"] .mobile-future-date,
  body[data-view-role="client"] .client-future-summary > h2,
  body[data-view-role="client"] .client-future-summary > p:not(.mobile-overline),
  body[data-view-role="client"] .client-future-summary .mobile-summary-facts { grid-column: 1 / 5; }
  body[data-view-role="client"] .mobile-goal-heading,
  body[data-view-role="client"] .mobile-goal-rail { grid-column: 5 / -1; }
  body[data-view-role="client"] .mobile-goal-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body[data-view-role="client"] .client-future-grid { grid-template-columns: minmax(0, 8fr) minmax(300px, 4fr); gap: 24px; }
  body[data-view-role="client"] .client-timeline { padding: 30px 34px; }
  body[data-view-role="client"] .client-future-aside { position: sticky; top: 96px; align-self: start; }
  body[data-view-role="client"] .client-side-card { padding: 24px; }

  body[data-view-role="client"] .client-family-summary { padding: 32px 36px; }
  body[data-view-role="client"] .client-family-grid { grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr); gap: 24px; align-items: start; }
  body[data-view-role="client"] .client-family-transition,
  body[data-view-role="client"] .client-access-card { padding: 30px 34px; }
  body[data-view-role="client"] .client-access-card { position: sticky; top: 96px; }
}

@media (min-width: 720px) and (max-width: 899px) {
  body[data-view-role="client"] .client-nearest { grid-column: 1 / -1; }
  body[data-view-role="client"] .mobile-services { grid-column: 1 / 6; }
  body[data-view-role="client"] .client-advisor { grid-column: 6 / -1; }
  body[data-view-role="client"] .client-capital-summary > .mobile-overline,
  body[data-view-role="client"] .mobile-summary-value-row,
  body[data-view-role="client"] .client-capital-summary .mobile-summary-facts {
    grid-column: 1 / -1;
  }
  body[data-view-role="client"] .client-capital-summary .mobile-summary-facts {
    grid-row: auto;
    align-self: auto;
    margin-top: 20px;
  }
  body[data-view-role="client"] .client-future-aside { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 980px) and (min-width: 720px) {
  body[data-view-role="client"] .tl-row { grid-template-columns: minmax(0, 1fr) auto 16px; gap: 5px 12px; padding-block: 14px; }
  body[data-view-role="client"] .tl-date { grid-column: 1; }
  body[data-view-role="client"] .tl-copy { grid-column: 1; }
  body[data-view-role="client"] .tl-amt { grid-column: 2; grid-row: 1 / span 2; }
  body[data-view-role="client"] .tl-row .row-chev { grid-column: 3; grid-row: 1 / span 2; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-view-role="client"] * { scroll-behavior: auto !important; }
}

/* v23 · типографическая нормализация. Важные сведения об источнике, дате,
   статусе и области доступа больше не становятся мельче 13 px. */
body[data-view-role="client"] :is(
  .client-section-head p,
  .client-side-card > p,
  .client-side-card header p,
  .client-family-transition header p,
  .client-access-card header p,
  .mobile-overline,
  .mobile-brief-kicker,
  .mobile-capital-profile-overline,
  .mobile-capital-profile-label
) { font-size: var(--client-type-caption); }

body[data-view-role="client"] :is(
  .client-section-head > span,
  .capital-profile-value,
  .client-capital-register > summary span,
  .client-tax-list button small,
  .client-family-transition dt,
  .mobile-action-date,
  .mobile-action-list small,
  .client-context-strip dt,
  .client-context-strip p,
  .mobile-service small,
  .mobile-advisor-card small,
  .mobile-advisor-link,
  .mobile-summary-facts dt,
  .mobile-summary-facts small,
  .mobile-capital-card small,
  .mobile-capital-profile-date,
  .mobile-capital-selection-head p,
  .mobile-capital-details button small,
  .mobile-goal-rail span,
  .mobile-goal-rail small,
  .horizon-head span,
  .tl-date,
  .tl-copy small,
  .tl-amt,
  .mobile-family-rail small,
  .access-toggle small,
  .access-toggle-state,
  .client-access-note,
  .side-profile-copy small
) { font-size: var(--client-type-meta); line-height: 1.4; }

body[data-view-role="client"] :is(
  .client-empty-line,
  .client-scenario-card > span,
  .client-family-transition > p,
  .client-family-actions button,
  .client-access-intro,
  .mobile-card-label,
  .mobile-capital-finding,
  .client-tax-list button b,
  .tl-copy b,
  .mobile-family-rail b,
  .access-toggle b
) { font-size: var(--client-type-body); }

body[data-view-role="client"] :is(
  .capital-profile-name,
  .client-capital-register > summary,
  .client-tax-date time,
  .mobile-action-list b,
  .mobile-service b,
  .mobile-advisor-card b,
  .mobile-capital-details button b,
  .mobile-capital-details button strong,
  .mobile-capital-profile-link
) { font-size: var(--client-type-ui); }

body[data-view-role="client"] :is(
  .client-section-head h2,
  .client-side-card h2,
  .client-family-transition h2,
  .client-access-card h2,
  .mobile-section-head h2,
  .mobile-goal-label
) { font-size: var(--client-type-section); }

body[data-view-role="client"] .mobile-demo-note { font-size: var(--client-type-caption); line-height: 1.45; }

@media (min-width: 720px) and (max-width: 1199px) {
  body[data-view-role="client"] .nav-item { font-size: var(--client-type-caption); }
}
