﻿:root {
  color-scheme: light;
  --ink: #151515;
  --muted: #6f7378;
  --line: #e4e0da;
  --paper: #fbfaf7;
  --panel: #ffffff;
  --charcoal: #23201d;
  --amber: #f1a51f;
  --gold: #f7c948;
  --ember: #c8291e;
  --ember-soft: #fff2e2;
  --green: #14795b;
  --red: #b8262b;
  --status-green: #0f8f6d;
  --status-yellow: #f3c45f;
  --status-red: #ec9187;
  --status-track: #e8dfd2;
  --shadow: 0 18px 50px rgba(26, 22, 18, 0.08);
  --radius: 8px;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

body {
  min-width: 320px;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;
  letter-spacing: 0;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  display: grid;
  grid-template-columns: 272px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: 28px;
  height: 100vh;
  padding: 28px 20px;
  background: var(--charcoal);
  color: #fff;
}

.brand {
  display: flex;
  align-items: center;
  min-height: 72px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.brand img {
  width: min(100%, 210px);
  max-height: 82px;
  height: auto;
  object-fit: contain;
}

.nav-list {
  display: grid;
  gap: 6px;
}

.nav-item {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  text-align: left;
}

.nav-item:hover,
.nav-item.active {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.advisor-mode .nav-item[data-client-hidden] {
  color: #f7d36a;
}

.advisor-firm-mode .nav-item[data-section="overview"],
.advisor-firm-mode .nav-item[data-section="overview"].active {
  color: #f7d36a;
}

.advisor-client-mode .nav-item[data-section="households"] {
  color: #f7d36a;
}

.platform-mode .nav-item[data-platform-only] {
  color: #f7d36a;
}

.advisor-mode .nav-item[data-client-hidden]:hover,
.advisor-mode .nav-item[data-client-hidden].active {
  border-color: rgba(247, 201, 72, 0.28);
  background: rgba(247, 201, 72, 0.12);
  color: #fff7d6;
}

.platform-mode .nav-item[data-platform-only]:hover,
.platform-mode .nav-item[data-platform-only].active {
  border-color: rgba(247, 201, 72, 0.28);
  background: rgba(247, 201, 72, 0.12);
  color: #fff7d6;
}

.security-card {
  display: grid;
  grid-template-columns: 12px 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.07);
}

.sidebar-footer {
  display: grid;
  gap: 8px;
  margin-top: auto;
}

.sidebar-footer .client-referral-button,
.sidebar-footer .advisor-sidebar-button {
  width: 100%;
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.86rem;
  line-height: 1;
}

.sidebar-footer .client-referral-button,
.sidebar-footer .advisor-referral-button {
  border-color: rgba(247, 201, 72, 0.42);
  background: rgba(247, 201, 72, 0.16);
  color: #fff;
}

.security-card strong,
.security-card span {
  display: block;
}

.security-card span {
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.82rem;
  line-height: 1.4;
}

.status-dot {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border-radius: 999px;
  background: #43d18e;
  box-shadow: 0 0 0 4px rgba(67, 209, 142, 0.16);
}

.workspace {
  position: relative;
  min-width: 0;
  padding: 30px;
}

.topbar,
.section-heading,
.panel-header,
.top-actions,
.button-group,
.note-actions {
  display: flex;
  align-items: center;
}

.topbar {
  position: relative;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
  padding-right: 340px;
}

.top-actions {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 20;
  gap: 12px;
}

.account-menu {
  position: relative;
  flex: 0 0 auto;
}

.notification-bell {
  position: relative;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(35, 32, 29, 0.16);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 10px 24px rgba(26, 22, 18, 0.08);
}

.notification-bell svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.notification-bell:hover,
.notification-bell[aria-expanded="true"] {
  border-color: rgba(247, 201, 72, 0.5);
  background: #fffaf0;
}

.notification-bell span {
  position: absolute;
  top: -3px;
  right: -3px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--red);
  color: #fff;
  padding: 0 4px;
  font-size: 0.68rem;
  line-height: 1;
}

.account-menu-toggle {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(35, 32, 29, 0.16);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 10px 24px rgba(26, 22, 18, 0.08);
  font: inherit;
  font-weight: 650;
}

.account-menu-toggle:hover,
.account-menu-toggle[aria-expanded="true"] {
  border-color: rgba(247, 201, 72, 0.5);
  background: #fffaf0;
}

.account-menu-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 30;
  display: grid;
  gap: 8px;
  width: 230px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 18px 48px rgba(26, 22, 18, 0.16);
}

.account-menu-summary {
  display: grid;
  gap: 2px;
  padding: 8px 8px 10px;
  border-bottom: 1px solid var(--line);
}

.account-menu-summary strong {
  color: var(--ink);
  font-weight: 500;
}

.account-menu-summary span {
  color: var(--muted);
  font-size: 0.78rem;
}

.account-menu-item {
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: transparent;
  color: var(--ink);
  padding: 0 10px;
  text-align: left;
  font: inherit;
  font-weight: 500;
}

.account-menu-item:hover {
  border-color: var(--line);
  background: #fbfaf7;
}

.notification-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 80;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: min(470px, 100vw);
  height: 100vh;
  background: #050505;
  color: #fff;
  box-shadow: -24px 0 70px rgba(0, 0, 0, 0.32);
}

.notification-drawer-header,
.notification-drawer-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 26px;
}

.notification-drawer-header {
  min-height: 82px;
}

.notification-drawer-header h2 {
  font-size: 1.35rem;
}

.notification-drawer-header button,
.notification-drawer-controls button,
.notification-settings-back {
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
}

.notification-drawer-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  color: #fff;
}

.notification-drawer-icon:hover,
.notification-drawer-controls button:hover {
  background: rgba(255, 255, 255, 0.08);
}

.notification-drawer-controls {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-block: 14px;
}

.notification-filter-select {
  min-height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: #111;
  color: #fff;
  padding: 0 14px;
  font: inherit;
}

.notification-mark-read {
  min-height: 38px;
  border-radius: 999px !important;
  padding: 0 12px;
}

.notification-list {
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 18px 26px 30px;
}

.notification-card {
  display: grid;
  gap: 14px;
  border-radius: 5px;
  background: #4a4a4a;
  color: #e9e9e9;
  padding: 18px 20px;
}

.notification-card.read {
  opacity: 0.72;
}

.notification-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.notification-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #f5f5f5;
  font-weight: 600;
}

.notification-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #4463ff;
}

.notification-card.read .notification-dot {
  background: #777;
}

.notification-card p {
  margin: 0;
  color: #d6d6d6;
  line-height: 1.45;
}

.notification-card small {
  color: #d6d6d6;
  white-space: nowrap;
}

.notification-empty {
  border: 1px dashed rgba(255, 255, 255, 0.18);
  border-radius: var(--radius);
  color: rgba(255, 255, 255, 0.72);
  padding: 26px;
  text-align: center;
}

.notification-settings {
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 0;
  padding: 18px 26px 34px;
}

.notification-settings h2 {
  margin: 34px 0 28px;
  font-size: 1.55rem;
}

.notification-settings-section,
.notification-setting-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  padding: 18px 0;
}

.notification-settings-section {
  color: #fff;
  font-weight: 600;
}

.notification-setting-row strong {
  display: block;
  margin-bottom: 6px;
  color: #f6f6f6;
  font-weight: 600;
}

.notification-setting-row small {
  color: rgba(255, 255, 255, 0.62);
  line-height: 1.45;
}

.notification-setting-row input {
  width: 18px;
  height: 18px;
  accent-color: #fff;
}

.topbar-title {
  display: grid;
  flex: 1 1 auto;
  gap: 8px;
  min-width: 0;
}

.page-title-row {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.page-title-avatar {
  display: none;
  place-items: center;
  flex: 0 0 auto;
  width: clamp(54px, 6vw, 72px);
  height: clamp(54px, 6vw, 72px);
  overflow: hidden;
  border: 1px solid rgba(20, 121, 91, 0.28);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(20, 121, 91, 0.1), rgba(247, 201, 72, 0.12));
  color: #0f5e46;
  font-size: 1rem;
  font-weight: 600;
  box-shadow: 0 12px 28px rgba(26, 22, 18, 0.08);
}

.page-title-avatar.visible {
  display: grid;
}

.page-title-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
}

.page-subtitle {
  margin: -2px 0 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.onboarding-active .mode-switch {
  display: none;
}

.onboarding-active .nav-list {
  opacity: 0.46;
}

.onboarding-active .nav-item {
  cursor: not-allowed;
}

.onboarding-active .nav-item.active {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.05);
}

.onboarding-panel {
  display: grid;
  gap: 16px;
  margin: -4px 0 24px;
  padding: 18px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(20, 121, 91, 0.1), rgba(255, 255, 255, 0.96) 48%),
    #fff;
  box-shadow: var(--shadow);
}

.onboarding-main,
.onboarding-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.onboarding-main h2 {
  margin-bottom: 6px;
  font-size: 1.2rem;
}

.onboarding-main p:last-child,
.onboarding-note {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.onboarding-step-count {
  flex: 0 0 auto;
  border: 1px solid rgba(21, 21, 21, 0.08);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 8px 12px;
  font-size: 0.84rem;
}

.onboarding-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.onboarding-step {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.74);
  color: var(--muted);
  padding: 0 10px;
  text-align: left;
}

.onboarding-step span {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #f2eee7;
  color: var(--muted);
  font-size: 0.76rem;
}

.onboarding-step.active {
  border-color: rgba(20, 121, 91, 0.26);
  background: #edf8f4;
  color: var(--ink);
}

.onboarding-step.locked {
  cursor: not-allowed;
  opacity: 0.55;
}

.onboarding-step.complete span {
  background: rgba(20, 121, 91, 0.12);
  color: var(--green);
}

.onboarding-detail {
  display: grid;
  gap: 12px;
}

.onboarding-profile-card,
.onboarding-goal-picker {
  display: grid;
  gap: 12px;
}

.onboarding-profile-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(21, 21, 21, 0.08);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.onboarding-profile-summary span,
.onboarding-profile-summary small,
.onboarding-checklist small {
  color: var(--muted);
  font-size: 0.78rem;
}

.onboarding-profile-summary small {
  display: block;
  margin-top: 4px;
  line-height: 1.35;
}

.onboarding-profile-summary strong,
.onboarding-checklist strong {
  display: block;
  color: var(--ink);
  font-weight: 500;
}

.onboarding-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.onboarding-checklist button,
.onboarding-goal-picker label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
  font-size: 0.88rem;
  text-align: left;
}

.onboarding-checklist i {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border: 1px solid #d8d1c8;
  border-radius: 999px;
  color: var(--green);
  font-style: normal;
  font-size: 0.72rem;
}

.onboarding-checklist button:hover {
  border-color: rgba(200, 41, 30, 0.18);
  background: #fffaf4;
}

.onboarding-checklist button.complete {
  border-color: rgba(20, 121, 91, 0.2);
  background: #f4fbf8;
}

.onboarding-checklist button.complete i {
  border-color: rgba(20, 121, 91, 0.28);
  background: rgba(20, 121, 91, 0.1);
}

.onboarding-checklist button.missing {
  border-color: rgba(184, 38, 43, 0.24);
  background: #fff8f6;
}

.onboarding-checklist button.missing i {
  border-color: rgba(184, 38, 43, 0.26);
  background: rgba(184, 38, 43, 0.08);
  color: var(--red);
}

.onboarding-checklist button.waived {
  border-color: rgba(35, 32, 29, 0.1);
  background: #fff;
  color: var(--muted);
}

.onboarding-checklist button.waived i {
  border-color: rgba(35, 32, 29, 0.12);
  background: #f6f4ef;
  color: var(--muted);
}

.advisor-onboarding-controls {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(247, 201, 72, 0.26);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.08), rgba(255, 255, 255, 0.92) 52%),
    #fff;
  padding: 14px;
}

.advisor-onboarding-controls-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.advisor-onboarding-controls-header span {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.advisor-onboarding-controls-header strong {
  display: block;
  margin-top: 2px;
  color: var(--ink);
  font-weight: 500;
}

.advisor-onboarding-controls-header small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}

.advisor-onboarding-shortcuts {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
}

.advisor-requirement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.advisor-requirement-toggle {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 10px;
}

.advisor-requirement-toggle.current {
  border-color: rgba(20, 121, 91, 0.26);
}

.advisor-requirement-toggle input {
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.advisor-requirement-toggle strong {
  display: block;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 500;
}

.advisor-requirement-toggle small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.3;
}

.advisor-requirement-toggle em {
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  padding: 4px 8px;
  font-size: 0.7rem;
  font-style: normal;
  white-space: nowrap;
}

.advisor-requirement-toggle.waived em {
  background: #f3f0eb;
  color: var(--muted);
}

.onboarding-goal-picker input {
  accent-color: var(--ember);
}

.onboarding-goal-picker label {
  align-items: flex-start;
}

.onboarding-goal-picker label.selected {
  border-color: rgba(20, 121, 91, 0.28);
  background: #f4fbf8;
}

.onboarding-goal-picker label > span {
  display: grid;
  gap: 3px;
}

.onboarding-goal-picker strong {
  color: var(--ink);
  font-weight: 500;
}

.onboarding-goal-picker small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 400;
  line-height: 1.35;
}

.onboarding-guidance-card {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.onboarding-guidance-card span {
  color: var(--muted);
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.onboarding-guidance-card strong {
  color: var(--ink);
  font-weight: 500;
}

.onboarding-guidance-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.onboarding-actions > div {
  display: flex;
  gap: 10px;
}

.onboarding-actions.required-step {
  justify-content: flex-end;
}

.onboarding-field-missing input,
.risk-tolerance-row.onboarding-field-missing {
  border-color: rgba(184, 38, 43, 0.72);
  box-shadow: 0 0 0 3px rgba(184, 38, 43, 0.08);
}

.primary-button:disabled,
.secondary-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.advisor-client-search {
  display: flex;
  align-items: center;
  width: min(760px, 100%);
  margin: 0 0 4px;
  padding: 4px;
  border: 1px solid rgba(35, 32, 29, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 10px 28px rgba(26, 22, 18, 0.06);
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    background 160ms ease;
}

.advisor-client-search:focus-within {
  border-color: rgba(247, 201, 72, 0.52);
  background: #fff;
  box-shadow: 0 14px 34px rgba(26, 22, 18, 0.1);
}

.advisor-search-field {
  position: relative;
  flex: 1;
  min-width: 0;
}

.advisor-search-field::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 12px;
  height: 12px;
  border: 2px solid #8b8278;
  border-radius: 999px;
  transform: translateY(-58%);
  pointer-events: none;
}

.advisor-search-field::after {
  content: "";
  position: absolute;
  left: 27px;
  top: 50%;
  width: 7px;
  height: 2px;
  border-radius: 999px;
  background: #8b8278;
  transform: translateY(4px) rotate(45deg);
  transform-origin: left center;
  pointer-events: none;
}

.advisor-client-search input {
  min-height: 40px;
  width: 100%;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  padding: 0 12px 0 42px;
  font: inherit;
  outline: 0;
}

.advisor-client-search input::placeholder {
  color: #7d766f;
}

.advisor-search-submit {
  flex: 0 0 auto;
  min-height: 38px;
  border-color: var(--charcoal);
  border-radius: 8px;
  background: var(--charcoal);
  color: #fff;
  padding: 0 16px;
  box-shadow: none;
}

.advisor-search-submit:hover {
  background: #151515;
  color: #fff;
}

.eyebrow {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  font-size: clamp(1.7rem, 3vw, 2.55rem);
  line-height: 1.08;
}

h2 {
  margin-bottom: 0;
  font-size: 1.05rem;
  line-height: 1.2;
}

h3 {
  margin-bottom: 4px;
  font-size: 0.95rem;
}

.top-actions,
.button-group,
.note-actions {
  gap: 10px;
}

.mode-switch {
  display: grid;
  grid-template-columns: repeat(var(--mode-switch-count, 3), 1fr);
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.mode-button {
  min-width: 82px;
  min-height: 36px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
}

.mode-button.active {
  background: var(--charcoal);
  color: #fff;
}

.primary-button,
.secondary-button,
.text-button,
.icon-button {
  min-height: 40px;
  border-radius: var(--radius);
  font-weight: 760;
}

.primary-button {
  border: 1px solid var(--charcoal);
  background: var(--charcoal);
  color: #fff;
  padding: 0 16px;
}

.primary-button:hover {
  background: #080706;
}

.secondary-button {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  padding: 0 14px;
}

.text-button {
  border: 0;
  background: transparent;
  color: var(--ember);
  padding: 0;
}

.icon-button {
  width: 40px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ember);
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.client-mode .overview-main-grid,
.client-mode .client-overview-secondary {
  grid-template-columns: minmax(0, 1fr);
}

.client-mode .overview-main-grid {
  display: none;
}

.client-overview-hero {
  display: block;
}

.client-mode .client-overview-hero {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) minmax(380px, 0.92fr);
  gap: 16px;
  align-items: start;
  margin-bottom: 16px;
  min-height: 0;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}

.client-mode .metric-grid {
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  margin-bottom: 0;
  align-content: start;
}

.client-mode .metric-grid.miller-off {
  grid-template-rows: auto;
}

.client-mode .metric-card {
  display: grid;
  align-content: start;
}

.client-mode .net-worth-overview-card,
.client-mode .goal-overview-card,
.client-mode .flames-value-card,
.client-mode .client-brand-promo-card {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #fff 0%, #fff 56%, #fbfaf7 100%);
}

.client-mode .net-worth-overview-card::before,
.client-mode .goal-overview-card::before,
.client-mode .flames-value-card::before,
.client-mode .client-brand-promo-card::before {
  content: none;
}

.client-mode .net-worth-overview-card::before {
  background: none;
}

.client-mode .goal-overview-card::before {
  background: none;
}

.client-mode .flames-value-card::before {
  background: none;
}

.advisor-client-mode .client-overview-hero {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) minmax(380px, 0.92fr);
  gap: 16px;
  align-items: start;
  margin-bottom: 16px;
  min-height: 0;
}

.advisor-client-mode .metric-grid {
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  margin-bottom: 0;
  align-content: start;
}

.advisor-client-mode .metric-grid.miller-off {
  grid-template-rows: auto;
}

.client-mode .overview-side-stack.miller-off .goal-overview-card,
.advisor-client-mode .overview-side-stack.miller-off .goal-overview-card {
  display: grid;
  align-content: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #fff 0%, #fbfaf7 100%);
}

.advisor-client-mode .metric-card {
  display: grid;
  align-content: center;
}

.advisor-client-mode .net-worth-overview-card,
.advisor-client-mode .goal-overview-card,
.advisor-client-mode .flames-value-card,
.advisor-client-mode .client-brand-promo-card {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #fff 0%, #fff 56%, #fbfaf7 100%);
}

.advisor-client-mode .net-worth-overview-card::before,
.advisor-client-mode .goal-overview-card::before,
.advisor-client-mode .flames-value-card::before,
.advisor-client-mode .client-brand-promo-card::before {
  content: none;
}

.advisor-client-mode .net-worth-overview-card::before {
  background: none;
}

.advisor-client-mode .goal-overview-card::before {
  background: none;
}

.advisor-client-mode .flames-value-card::before {
  background: none;
}

.overview-card-topline {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.overview-card-topline .metric-delta {
  margin-top: 0;
}

.overview-side-stack {
  display: grid;
  gap: 16px;
  min-height: 100%;
}

.overview-side-stack[hidden] {
  display: none !important;
}

.overview-side-stack.miller-on {
  display: grid;
  grid-template-rows: auto minmax(420px, 1fr);
  align-content: start;
}

.overview-side-stack.miller-off {
  grid-template-rows: auto auto;
}

.overview-side-bottom-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  min-height: 0;
}

.overview-side-value-card {
  align-content: start;
  min-height: 0;
  overflow: auto;
}

.overview-advisor-card,
.overview-client-task-card {
  min-height: 0;
}

.overview-advisor-card {
  display: grid;
  gap: 14px;
  align-content: start;
  background: #fff;
}

.overview-advisor-card.has-headshot {
  grid-template-columns: 1fr;
}

.advisor-card-content {
  display: grid;
  gap: 14px;
  align-content: start;
}

.advisor-card-top {
  display: flex;
  align-items: center;
  gap: 16px;
}

.advisor-card-intro {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.overview-advisor-card h2 {
  margin: 2px 0 0;
  font-size: clamp(1.2rem, 1.5vw, 1.55rem);
  font-weight: 500;
}

.advisor-card-photo {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: clamp(66px, 6vw, 84px);
  height: clamp(66px, 6vw, 84px);
  flex: 0 0 clamp(66px, 6vw, 84px);
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: 999px;
  background: rgba(237, 248, 244, 0.82);
  color: #0f766e;
  font-size: 1rem;
  font-weight: 600;
  box-shadow: 0 14px 28px rgba(26, 21, 15, 0.08);
}

.advisor-card-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
  transform-origin: center;
}

.advisor-card-message {
  max-width: 62ch;
  margin: 2px 0 0;
}

.overview-client-task-card {
  display: grid;
  align-content: start;
  gap: 14px;
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.12), rgba(255, 255, 255, 0.96) 62%),
    #fff;
}

.overview-client-task-card h2 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: clamp(1.05rem, 1.25vw, 1.35rem);
  font-weight: 500;
}

.overview-client-task-list {
  display: grid;
  gap: 10px;
}

.overview-client-task-row {
  display: grid;
  gap: 12px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.overview-client-task-row .task-complete-toggle {
  justify-self: start;
}

.overview-client-task-row div {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.overview-client-task-row strong {
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 500;
}

.overview-client-task-row small,
.overview-client-task-empty small {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.overview-client-task-empty {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  border: 1px solid rgba(20, 121, 91, 0.14);
  border-radius: var(--radius);
  background: rgba(237, 248, 244, 0.62);
  padding: 14px;
}

.overview-client-task-empty > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #fff;
  color: var(--green);
  font-weight: 500;
}

.overview-client-task-empty div {
  display: grid;
  gap: 4px;
}

.overview-client-task-empty strong {
  color: var(--ink);
  font-weight: 500;
}

.client-brand-promo-card {
  display: grid;
  gap: 14px;
  min-height: 0;
  align-content: start;
  border-color: rgba(35, 32, 29, 0.12);
  background: #fff;
  box-shadow: 0 18px 42px rgba(26, 22, 18, 0.055);
}

.client-mode .client-brand-promo-card,
.advisor-client-mode .client-brand-promo-card {
  background: #fff;
}

.client-brand-feature {
  display: block;
}

.client-brand-feature-content {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.client-brand-kicker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

.client-brand-kicker p:not(.eyebrow) {
  margin: 0;
  color: #3a342f;
  font-size: 0.96rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
}

.client-brand-kicker .eyebrow,
.client-mode #overview .client-brand-kicker .eyebrow,
.advisor-client-mode #overview .client-brand-kicker .eyebrow {
  margin: 0;
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.client-brand-promo-stack {
  display: grid;
  gap: 0;
}

.client-brand-promo-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  column-gap: 16px;
  row-gap: 8px;
  align-items: center;
  border-bottom: 1px solid rgba(35, 32, 29, 0.08);
  padding: 0 0 15px;
}

.client-brand-promo-item + .client-brand-promo-item {
  padding-top: 15px;
}

.client-brand-promo-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.client-brand-promo-copy {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.brand-promo-icon {
  display: grid;
  place-items: center;
  align-self: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: #f3f1ef;
  color: #625b54;
}

.brand-promo-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.brand-promo-icon.blog {
  background: #edf8f4;
  color: #0f766e;
}

.brand-promo-icon.youtube {
  background: #fff3e8;
  color: #b45309;
}

.brand-promo-icon.event {
  background: #fff8df;
  color: #8a5f00;
}

.brand-promo-icon.webinar {
  background: #eff6ff;
  color: #2563eb;
}

.brand-promo-icon.guide {
  background: #f6efe4;
  color: #7c5d2f;
}

.brand-promo-icon.newsletter {
  background: #f4f0ff;
  color: #6d4cc2;
}

.brand-promo-icon.referral {
  background: #ecfeff;
  color: #0e7490;
}

.client-brand-promo-card h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.08rem, 1.18vw, 1.34rem);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.18;
}

.client-brand-promo-card .client-brand-description {
  max-width: 68ch;
  margin: 0;
  color: #37322d;
  font-size: 0.92rem;
  line-height: 1.5;
}

.client-brand-source {
  margin: -4px 0 0;
  color: #625b54;
  font-size: 0.76rem;
  line-height: 1.3;
}

.brand-promo-type {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 26px;
  border-radius: 999px;
  background: #f3f1ef;
  color: #625b54;
  padding: 0 9px;
  font-size: 0.72rem;
}

.client-brand-promo-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.client-brand-read-link {
  display: inline-flex;
  align-items: center;
  align-self: center;
  justify-content: center;
  gap: 8px;
  min-height: 34px;
  border: 1px solid rgba(35, 32, 29, 0.1);
  border-radius: var(--radius);
  background: #f4f2ef;
  color: var(--ink);
  padding: 0 13px;
  font-size: 0.84rem;
  font-weight: 500;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(26, 22, 18, 0.06);
  transition:
    background 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.client-brand-read-link:hover {
  background: #ece8e2;
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(26, 22, 18, 0.09);
}

.client-brand-read-link span {
  color: inherit;
  font-size: 0.9rem;
}

.client-brand-promo-actions small {
  margin-top: 0;
  color: var(--muted);
  font-size: 0.78rem;
}

.client-brand-promo-list {
  display: grid;
  gap: 8px;
  border-top: 1px solid rgba(35, 32, 29, 0.08);
  padding-top: 12px;
}

.client-brand-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.client-brand-list-heading span {
  color: var(--muted);
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.client-brand-promo-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 44px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  padding: 10px 12px;
  text-decoration: none;
  font-size: 0.84rem;
}

.client-brand-promo-list a:last-child {
  border-bottom: 1px solid rgba(35, 32, 29, 0.08);
}

.client-brand-promo-list a:hover {
  background: transparent;
  transform: translateY(-1px);
}

.client-brand-promo-list span {
  width: fit-content;
  color: #625b54;
  font-size: 0.68rem;
  text-transform: uppercase;
}

.client-brand-promo-list strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: normal;
}

.client-brand-promo-list em {
  color: #625b54;
  font-size: 0.9rem;
  font-style: normal;
}

.task-complete-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 30px;
  border: 1px solid rgba(20, 121, 91, 0.22);
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  padding: 0 11px;
  font: inherit;
  font-size: 0.78rem;
}

.task-complete-toggle span {
  width: 13px;
  height: 13px;
  border: 1.5px solid currentColor;
  border-radius: 4px;
  background: #fff;
}

.advisor-contact-list {
  display: grid;
  gap: 8px;
  margin-top: 2px;
}

.advisor-contact-row {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 40px;
  width: 100%;
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 9px 12px;
  text-decoration: none;
}

.advisor-contact-row small {
  display: block;
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.advisor-contact-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 0.94rem;
  font-weight: 500;
}

.advisor-headshot-customization {
  display: grid;
  gap: 10px;
}

.advisor-headshot-toggle span {
  display: grid;
  gap: 3px;
}

.advisor-headshot-toggle strong {
  font-weight: 500;
}

.advisor-headshot-toggle small {
  color: var(--muted);
  font-size: 0.76rem;
}

.advisor-headshot-upload {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 10px;
}

.advisor-headshot-preview {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: 999px;
  background: rgba(237, 248, 244, 0.82);
  color: #0f766e;
  font-size: 0.85rem;
  font-weight: 500;
}

.advisor-headshot-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
}

.advisor-headshot-upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
}

.advisor-headshot-focus-controls {
  flex: 1 1 100%;
}

.advisor-contact-empty {
  color: var(--muted);
  font-size: 0.9rem;
}

.metric-card,
.panel,
.folder-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: var(--shadow);
}

.metric-card {
  padding: 18px;
}

.advisor-firm-card {
  min-height: 150px;
  background: #fff;
}

.advisor-empty-card {
  background:
    linear-gradient(135deg, rgba(35, 32, 29, 0.04), rgba(255, 255, 255, 0.92)),
    #fff;
}

.advisor-attention-card {
  background:
    linear-gradient(135deg, rgba(200, 41, 30, 0.1), rgba(255, 255, 255, 0.94) 58%),
    #fff;
}

.firm-dashboard {
  display: grid;
  gap: 16px;
}

.firm-dashboard[hidden] {
  display: none;
}

.firm-command-layout {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(460px, 1.05fr) minmax(420px, 0.95fr);
  gap: 16px;
  align-items: stretch;
}

.firm-command-layout.miller-disabled {
  grid-template-columns: minmax(0, 1fr);
}

.firm-snapshot-panel,
.firm-command-miller-card {
  min-height: 320px;
}

.firm-snapshot-panel {
  display: grid;
  align-content: start;
  gap: 16px;
  background: #fff;
}

.firm-snapshot-metric-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.firm-snapshot-metric {
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 92px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 12px;
}

.firm-snapshot-metric span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.firm-snapshot-metric strong {
  color: var(--ink);
  font-size: clamp(1.2rem, 1.5vw, 1.55rem);
  font-weight: 500;
}

.firm-snapshot-metric small {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.35;
}

.firm-snapshot-attention {
  display: grid;
  gap: 10px;
  margin-top: 2px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.firm-snapshot-attention h3 {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 500;
}

.firm-snapshot-signal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.firm-snapshot-signal-grid.work-only {
  grid-template-columns: minmax(0, 1fr);
}

.firm-snapshot-signal-grid article {
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 70px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 10px 12px;
}

.firm-snapshot-signal-grid article.wide {
  grid-column: 1 / -1;
  min-height: auto;
}

.firm-snapshot-signal-grid strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.2;
}

.firm-snapshot-signal-grid span {
  color: var(--muted);
  font-size: 0.83rem;
  line-height: 1.25;
}

.firm-snapshot-signal-grid small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.25;
}

.firm-miller-internal-panel {
  background: #fff;
}

.firm-command-miller-card {
  min-height: 420px;
}

.firm-miller-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.firm-miller-internal-pill {
  min-width: auto;
  min-height: 34px;
  padding: 0 13px;
  white-space: nowrap;
  font-size: 0.82rem;
}

.firm-miller-history-panel {
  margin-top: 0;
}

.firm-miller-assistant-form {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
  padding: 12px;
}

.firm-miller-input-form {
  margin-top: 14px;
}

.firm-miller-assistant-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.78rem;
}

.firm-miller-assistant-form textarea {
  width: 100%;
  min-height: 82px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
  font: inherit;
  font-weight: 400;
  resize: vertical;
}

.firm-miller-assistant-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.firm-miller-assistant-actions span,
.firm-miller-internal-response p {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.firm-miller-chat-empty {
  display: grid;
  gap: 5px;
  border: 1px dashed rgba(35, 32, 29, 0.16);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 18px;
  color: var(--muted);
}

.firm-miller-chat-empty strong {
  color: var(--ink);
  font-weight: 500;
}

.firm-miller-chat-thread {
  flex: 1;
  min-height: 260px;
  max-height: 420px;
  border: 0;
}

.firm-miller-answer-title {
  display: block;
  margin-bottom: 4px;
  color: var(--ink);
  font-weight: 500;
}

.firm-miller-internal-response {
  display: grid;
  gap: 10px;
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: var(--radius);
  background: #f6fbf8;
  padding: 12px;
}

.firm-miller-internal-response h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.05rem;
}

.firm-miller-source-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.firm-miller-source-grid span {
  border: 1px solid rgba(20, 121, 91, 0.14);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  padding: 5px 9px;
  font-size: 0.76rem;
}

.firm-dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.75fr);
  gap: 16px;
}

.migration-center-panel {
  display: grid;
  gap: 16px;
  background: #fff;
}

.migration-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.migration-summary-grid span {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.76);
  color: var(--muted);
  padding: 10px 12px;
  font-size: 0.84rem;
}

.migration-summary-grid strong {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  font-size: 0.78rem;
  font-weight: 500;
}

.migration-import-form {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(20, 121, 91, 0.14);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.74);
  padding: 14px;
}

.migration-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.75fr);
  gap: 12px;
}

.migration-import-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.76rem;
}

.migration-import-form select,
.migration-import-form input,
.migration-import-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
  font: inherit;
  font-weight: 400;
}

.migration-import-form select,
.migration-import-form input {
  min-height: 40px;
}

.migration-import-form textarea {
  min-height: 132px;
  resize: vertical;
}

.migration-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.migration-import-notice {
  margin: 0;
  border: 1px solid rgba(247, 201, 72, 0.24);
  border-radius: var(--radius);
  background: #fffaf0;
  color: var(--ink);
  padding: 10px 12px;
  font-size: 0.88rem;
}

.migration-preview-list {
  display: grid;
  gap: 8px;
}

.migration-preview-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.88);
  padding: 12px;
}

.migration-preview-row div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.migration-preview-row strong {
  color: var(--ink);
  font-weight: 500;
}

.migration-preview-row small {
  color: var(--muted);
  font-size: 0.78rem;
}

.migration-preview-row span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #f3f1ef;
  color: var(--muted);
  padding: 4px 9px;
  font-size: 0.76rem;
  white-space: nowrap;
}

.advisor-roster-panel {
  display: grid;
  gap: 16px;
  background:
    linear-gradient(135deg, rgba(237, 248, 244, 0.82), rgba(255, 255, 255, 0.96) 48%, rgba(255, 246, 223, 0.68)),
    #fff;
}

.advisor-roster-list {
  display: grid;
  gap: 10px;
}

.advisor-roster-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.advisor-roster-row span {
  color: var(--ink);
  font-size: 0.95rem;
}

.advisor-roster-row strong {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 500;
}

.advisor-roster-row small {
  color: var(--muted);
  font-size: 0.78rem;
}

.firm-team-panel {
  display: grid;
  gap: 16px;
  background: #fff;
}

.firm-team-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.firm-team-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.firm-team-summary span {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  padding: 10px 12px;
  font-size: 0.86rem;
}

.firm-team-summary strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ink);
  font-size: 1.15rem;
  font-weight: 500;
}

.firm-member-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  border: 1px solid rgba(241, 165, 31, 0.28);
  border-radius: var(--radius);
  background: #fffaf0;
  padding: 14px;
}

.firm-member-form label,
.firm-team-row label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.76rem;
}

.firm-member-form input,
.firm-member-form select,
.firm-team-row input,
.firm-team-row select {
  min-height: 38px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font: inherit;
  font-weight: 400;
}

.firm-member-form-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.firm-member-address-field {
  grid-column: span 2;
}

.firm-team-list {
  display: grid;
  gap: 10px;
}

.firm-team-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) repeat(4, minmax(130px, 1fr));
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.88);
  padding: 12px;
}

.firm-owner-row {
  border-color: rgba(241, 165, 31, 0.34);
  background: #fffaf0;
}

.firm-team-identity {
  display: grid;
  gap: 4px;
  align-self: center;
  min-width: 0;
}

.firm-team-identity span {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.firm-team-identity strong {
  color: var(--ink);
  font-weight: 500;
}

.firm-team-identity small {
  color: var(--muted);
  font-size: 0.78rem;
}

.firm-team-identity .firm-member-needs-details {
  color: #9a6a00;
}

.firm-owner-pill,
.firm-member-status {
  display: inline-flex;
  width: max-content;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 0 9px;
  font-size: 0.72rem;
  font-style: normal;
}

.firm-member-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 6px;
}

.firm-owner-pill {
  background: #fff1bd;
  color: #7b5a06;
}

.firm-member-status {
  background: #f3f1ef;
  color: var(--muted);
}

.firm-member-status.active {
  background: #e8f7f1;
  color: var(--green);
}

.firm-member-status.pending-invite {
  background: #fff8dc;
  color: #7b5a06;
}

.firm-member-status.needs-details {
  background: #fff4dd;
  color: #9a6a00;
}

.firm-member-status.inactive {
  background: #fff0ec;
  color: var(--ember);
}

.firm-member-remove {
  width: 28px;
  height: 28px;
  min-height: 28px;
  margin-left: auto;
  font-size: 0.85rem;
}

.firm-member-remove:disabled,
.firm-team-row select:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

.firm-miller-command-panel {
  display: grid;
  gap: 18px;
  background: #fff;
}

.firm-miller-command-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 16px;
}

.firm-miller-main,
.firm-miller-insights {
  display: grid;
  align-content: start;
  gap: 14px;
}

.firm-miller-insights section {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
  box-shadow: 0 12px 28px rgba(26, 22, 18, 0.04);
}

.firm-miller-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.firm-miller-status-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 88px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
  box-shadow: 0 12px 26px rgba(26, 22, 18, 0.035);
}

.firm-miller-status-card div {
  display: grid;
  gap: 4px;
}

.firm-miller-status-card small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.25;
}

.firm-miller-status-card span,
.firm-topic-list span,
.firm-miller-roadmap span,
.firm-miller-priority-list article > div > span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.firm-miller-status-card strong {
  color: var(--ink);
  font-size: 1.45rem;
  font-weight: 500;
}

.firm-miller-status-card.needs-response {
  border-color: rgba(200, 41, 30, 0.2);
  background: #fff;
  box-shadow: inset 4px 0 0 rgba(200, 41, 30, 0.52), 0 12px 26px rgba(26, 22, 18, 0.035);
}

.firm-miller-status-card.advisor-review {
  border-color: rgba(247, 201, 72, 0.34);
  background: #fff;
  box-shadow: inset 4px 0 0 rgba(247, 201, 72, 0.72), 0 12px 26px rgba(26, 22, 18, 0.035);
}

.firm-miller-status-card.monitor {
  border-color: rgba(35, 32, 29, 0.12);
  background: #fff;
  box-shadow: inset 4px 0 0 rgba(35, 32, 29, 0.42), 0 12px 26px rgba(26, 22, 18, 0.035);
}

.firm-miller-status-card.referral {
  border-color: rgba(20, 121, 91, 0.22);
  background: #fff;
  box-shadow: inset 4px 0 0 rgba(20, 121, 91, 0.58), 0 12px 26px rgba(26, 22, 18, 0.035);
}

.firm-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.firm-panel {
  min-width: 0;
}

.firm-panel-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  min-height: 30px;
  border-radius: 999px;
  background: #f5f1ea;
  color: var(--ink);
  font-size: 0.84rem;
}

.task-header-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
}

.task-header-actions .secondary-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.86rem;
  font-weight: 650;
}

.task-header-actions .secondary-button.active {
  border-color: rgba(241, 165, 31, 0.44);
  background: #fff6df;
  color: var(--ink);
}

.firm-action-list,
.firm-miller-list,
.firm-compact-list,
.firm-focus-list {
  display: grid;
  gap: 10px;
}

.firm-action-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

button.firm-action-item {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

button.firm-action-item:hover {
  border-color: rgba(35, 32, 29, 0.18);
  background: #fffaf3;
}

.firm-action-item.red {
  border-left-color: var(--red);
}

.firm-action-item.green {
  border-left-color: var(--green);
}

.firm-action-item.charcoal {
  border-left-color: var(--charcoal);
}

.firm-action-item span,
.firm-focus-list span,
.firm-health-grid span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.firm-action-item strong,
.firm-miller-list strong,
.firm-compact-list span,
.firm-focus-list strong,
.firm-health-grid strong {
  color: var(--ink);
  font-weight: 500;
}

.firm-action-item p,
.firm-miller-list p,
.firm-focus-list small,
.firm-compact-list small {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.opportunity-command-panel {
  gap: 18px;
}

.opportunity-toggle {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
}

.opportunity-toggle button {
  min-height: 36px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  padding: 0 14px;
}

.opportunity-toggle button.active {
  background: var(--charcoal);
  color: #fff;
}

.opportunity-metric-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.opportunity-metric-grid article {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.opportunity-metric-grid span,
.opportunity-list-heading span,
.opportunity-card-top span,
.opportunity-signal-grid span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.opportunity-metric-grid strong {
  display: block;
  margin-top: 8px;
  color: var(--ink);
  font-size: 1.22rem;
  font-weight: 500;
}

.opportunity-metric-grid small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.35;
}

.opportunity-command-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.36fr);
  gap: 16px;
  align-items: start;
}

.opportunity-list {
  display: grid;
  gap: 12px;
}

.opportunity-list-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  padding: 0 2px 2px;
}

.opportunity-list-heading h3 {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 500;
}

.opportunity-list-heading p {
  margin: 4px 0 0;
  color: var(--muted);
  line-height: 1.4;
}

.opportunity-list-heading span {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  padding: 6px 10px;
  white-space: nowrap;
}

.opportunity-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 0.24fr);
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-top: 3px solid #f1a51f;
  border-radius: var(--radius);
  background: #fff;
}

.opportunity-card.green {
  border-top-color: var(--green);
}

.opportunity-card.red {
  border-top-color: var(--red);
}

.opportunity-card.charcoal {
  border-top-color: var(--charcoal);
}

.opportunity-card-main {
  display: grid;
  gap: 11px;
}

.opportunity-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.opportunity-card-top em {
  flex: 0 0 auto;
  border-radius: 999px;
  background: #f5f1ea;
  color: var(--ink);
  padding: 6px 9px;
  font-size: 0.76rem;
  font-style: normal;
}

.opportunity-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 500;
}

.opportunity-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.46;
}

.opportunity-signal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.opportunity-signal-grid div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: #fff;
}

.opportunity-signal-grid strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-weight: 400;
  line-height: 1.35;
}

.opportunity-card-side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-left: 16px;
  border-left: 1px solid var(--line);
}

.opportunity-card-side strong {
  color: var(--ink);
  font-weight: 500;
}

.opportunity-card-side small {
  color: var(--muted);
  line-height: 1.4;
}

.opportunity-route-pill {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  padding: 6px 9px;
  font-size: 0.76rem;
}

.opportunity-card-side .secondary-button {
  width: 100%;
  justify-content: center;
}

.opportunity-card-actions {
  display: grid;
  width: 100%;
  gap: 8px;
}

.opportunity-ignore-button {
  color: var(--muted);
  background: #fff;
}

.opportunity-ignore-menu {
  display: grid;
  width: 100%;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.danger-soft-button {
  border-color: rgba(184, 38, 43, 0.18);
  background: #fff4f2;
  color: var(--red);
}

.opportunity-insight-panel {
  display: grid;
  gap: 12px;
}

.opportunity-insight-panel section {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.opportunity-insight-panel h3 {
  margin: 4px 0 8px;
  font-size: 1.02rem;
  font-weight: 500;
}

.opportunity-insight-panel p,
.opportunity-insight-panel li {
  color: var(--muted);
  line-height: 1.45;
}

.opportunity-insight-panel ul {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.opportunity-insight-panel li::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 4px;
  margin-right: 8px;
  border-left: 2px solid var(--green);
  border-bottom: 2px solid var(--green);
  transform: rotate(-45deg) translate(1px, -2px);
}

.opportunity-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.opportunity-chip-list span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 6px 9px;
  font-size: 0.78rem;
}

.opportunity-next-step {
  background: #fff !important;
}

.opportunity-next-step span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.opportunity-next-step strong {
  display: block;
  margin-top: 6px;
  color: var(--ink);
  font-weight: 500;
  line-height: 1.4;
}

.task-workflow-panel {
  gap: 18px;
}

.task-workflow-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.1fr) minmax(220px, 1fr) 220px;
  gap: 12px;
  margin-bottom: 10px;
}

.task-window-panel {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(420px, 1.35fr);
  align-items: center;
  gap: 16px;
  margin: 4px 0 16px;
  padding: 14px 16px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(237, 248, 244, 0.98), rgba(249, 246, 239, 0.96) 74%),
    #f4faf7;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 10px 28px rgba(20, 121, 91, 0.05);
}

.task-window-panel h3 {
  margin: 3px 0 4px;
  font-size: 1rem;
  font-weight: 500;
}

.task-window-panel .panel-copy {
  margin: 0;
  font-size: 0.84rem;
}

.task-window-default-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.task-window-default-row small {
  color: var(--muted);
  font-size: 0.76rem;
}

.task-window-default-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.78rem;
}

.task-window-default-button.saved {
  border-color: rgba(20, 121, 91, 0.28);
  background: #edf8f4;
  color: #0f6f55;
}

.task-window-controls {
  display: grid;
  grid-template-columns: minmax(180px, 1.1fr) minmax(140px, 0.8fr) minmax(140px, 0.8fr);
  gap: 10px;
}

.task-window-controls label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.78rem;
}

.task-window-controls select,
.task-window-controls input {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
}

.task-window-controls input:disabled {
  background: #f4f1ec;
  color: var(--muted);
  cursor: not-allowed;
}

.task-workflow-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.task-workflow-context span {
  color: var(--muted);
  font-size: 0.78rem;
  text-transform: uppercase;
}

.task-workflow-context strong {
  font-weight: 500;
}

.task-workflow-list {
  display: grid;
  gap: 10px;
}

.task-workflow-row {
  display: grid;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  transition:
    border-color 160ms ease,
    background 160ms ease,
    box-shadow 160ms ease;
}

.task-workflow-row:hover {
  border-color: rgba(26, 21, 15, 0.14);
  background: #fffdf9;
  box-shadow: 0 10px 26px rgba(26, 21, 15, 0.04);
}

.task-workflow-row.editing {
  background: linear-gradient(135deg, rgba(255, 246, 223, 0.42), #fff 62%);
}

.task-workflow-row.red {
  border-color: var(--line);
}

.task-workflow-row.green {
  border-color: var(--line);
}

.task-workflow-row.charcoal {
  border-color: var(--line);
}

.task-row-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.task-row-top span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.task-row-top strong {
  display: block;
  margin-top: 3px;
  color: var(--ink);
  font-weight: 500;
}

.task-row-top p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.task-detail-copy {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.task-detail-copy p {
  margin: 0;
  white-space: pre-line;
}

.task-detail-list {
  margin: 4px 0 0;
  padding-left: 1.25rem;
}

.task-detail-list li + li {
  margin-top: 2px;
}

.task-row-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.task-row-meta small {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border: 1px solid rgba(26, 21, 15, 0.08);
  border-radius: 999px;
  background: #fbfaf7;
  color: var(--muted);
  padding: 0 8px;
  font-size: 0.76rem;
}

.task-client-complete-notice {
  display: grid;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  margin-top: 10px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #edf8f4;
  padding: 9px 11px;
}

.task-client-complete-notice span {
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 500;
  text-transform: none;
}

.task-client-complete-notice small {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.task-row-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-self: center;
  justify-content: flex-end;
  gap: 6px;
}

.task-row-actions .secondary-button {
  min-height: 34px;
  min-width: auto;
  padding: 0 11px;
  border-radius: 7px;
  font-size: 0.82rem;
  font-weight: 650;
}

.task-row-actions [data-edit-task] {
  padding-inline: 10px;
}

.task-row-actions [data-firm-open-household] {
  background: #fbfaf7;
}

.task-row-actions [data-complete-task] {
  border-color: rgba(20, 121, 91, 0.2);
  background: #edf8f4;
  color: var(--green);
}

.task-row-actions [data-complete-task]:hover {
  border-color: rgba(20, 121, 91, 0.34);
  background: #e2f4ed;
}

.task-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  padding: 0 11px;
  font-size: 0.76rem;
}

.task-assignment-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  align-items: end;
  gap: 12px;
}

.task-edit-title {
  grid-column: span 2;
}

.task-edit-detail {
  grid-column: 1 / -1;
}

.task-detail-heading {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}

.task-detail-heading > span:first-child {
  color: var(--muted);
}

.task-detail-tools {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.task-format-button {
  min-height: 28px;
  border: 1px solid rgba(26, 21, 15, 0.1);
  border-radius: 999px;
  background: #fbfaf7;
  color: var(--ink);
  padding: 0 10px;
  font-size: 0.74rem;
  font-weight: 500;
}

.task-format-button:hover {
  border-color: rgba(20, 121, 91, 0.22);
  background: #edf8f4;
  color: var(--green);
}

.task-edit-due {
  min-width: 190px;
}

.task-edit-repeat {
  min-width: 170px;
}

.task-edit-repeat-preview {
  grid-column: 1 / -1;
}

.task-create-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.task-assignment-grid label,
.task-create-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.task-workflow-toolbar select,
.task-assignment-grid select,
.task-assignment-grid input,
.task-assignment-grid textarea,
.task-create-form input,
.task-create-form select,
.task-create-form textarea {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
}

.task-assignment-grid textarea {
  min-height: 76px;
  padding: 10px 12px;
  resize: vertical;
}

.task-date-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px;
  gap: 6px;
}

.task-date-control input[type="date"] {
  min-width: 42px;
  padding: 0;
  color: transparent;
  cursor: pointer;
}

.task-date-control input[type="date"]::-webkit-calendar-picker-indicator {
  width: 20px;
  height: 20px;
  margin: auto;
  cursor: pointer;
  opacity: 0.72;
}

.task-date-control input[type="date"]:hover::-webkit-calendar-picker-indicator {
  opacity: 1;
}

.task-save-cell {
  display: grid;
  align-content: end;
  gap: 5px;
}

.task-save-cell small {
  color: var(--green);
  font-size: 0.74rem;
  text-align: center;
}

.task-save-button {
  min-height: 40px;
  min-width: 118px;
}

.task-save-button.task-save-ready {
  border-color: rgba(20, 121, 91, 0.28);
  background: #edf8f4;
  color: var(--green);
}

.task-save-button:disabled {
  cursor: default;
  opacity: 0.62;
}

.task-create-form {
  display: grid;
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.task-bulk-panel {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(241, 165, 31, 0.24);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(255, 246, 223, 0.62), rgba(255, 255, 255, 0.94) 56%),
    #fff;
}

.task-bulk-parse-form {
  display: grid;
  gap: 12px;
}

.task-bulk-textarea,
.task-bulk-draft-row label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.task-create-form textarea {
  min-height: 96px;
  padding: 10px 12px;
  resize: vertical;
}

.task-bulk-parse-form textarea {
  width: 100%;
  min-height: 118px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 12px;
  font: inherit;
  resize: vertical;
}

.task-create-detail {
  grid-column: span 2;
}

.task-repeat-preview {
  grid-column: 1 / -1;
  border: 1px solid rgba(241, 165, 31, 0.22);
  border-radius: var(--radius);
  background: #fff8e8;
  color: var(--charcoal);
  padding: 10px 12px;
  font-size: 0.84rem;
  line-height: 1.45;
}

.task-bulk-empty {
  border: 1px dashed rgba(26, 21, 15, 0.18);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.66);
  color: var(--muted);
  padding: 13px 14px;
  font-size: 0.86rem;
}

.task-bulk-empty span {
  display: block;
  color: var(--ink);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0;
  margin-bottom: 6px;
}

.task-bulk-empty p {
  margin: 0;
  line-height: 1.55;
}

.task-bulk-create-form {
  display: grid;
  gap: 12px;
}

.task-bulk-draft-list {
  display: grid;
  gap: 10px;
}

.task-bulk-draft-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.1fr) minmax(140px, 0.75fr) minmax(150px, 0.85fr) minmax(190px, 1fr) minmax(150px, 0.75fr) minmax(240px, 1.1fr) 34px;
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.88);
  padding: 12px;
}

.task-bulk-draft-row.client-context {
  grid-template-columns: minmax(220px, 1.15fr) minmax(150px, 0.75fr) minmax(190px, 1fr) minmax(150px, 0.75fr) minmax(240px, 1.1fr) 34px;
}

.task-bulk-draft-row label {
  min-width: 0;
}

.task-bulk-draft-row input,
.task-bulk-draft-row select,
.task-bulk-draft-row textarea {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font: inherit;
}

.task-bulk-draft-row textarea {
  min-height: 72px;
  padding: 9px 10px;
  resize: vertical;
}

.task-bulk-title input {
  color: var(--ink);
}

.task-bulk-remove {
  align-self: end;
  width: 34px;
  height: 34px;
}

.task-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.task-empty-state {
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  color: var(--muted);
}

.task-repeat-pill {
  border-color: rgba(241, 165, 31, 0.22) !important;
  background: #fff6df !important;
  color: var(--ember) !important;
}

.task-scheduled-panel {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.task-scheduled-panel.collapsed {
  gap: 0;
}

.task-scheduled-panel .task-workflow-context small {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.35;
}

.task-scheduled-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.task-scheduled-list {
  display: grid;
  gap: 10px;
}

.task-scheduled-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border: 1px dashed rgba(26, 21, 15, 0.16);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.task-scheduled-row span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.task-scheduled-row strong {
  display: block;
  margin-top: 3px;
  font-weight: 500;
}

.task-scheduled-row small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.8rem;
}

.firm-miller-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(26, 22, 18, 0.035);
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.firm-miller-list article:hover {
  border-color: rgba(35, 32, 29, 0.16);
  box-shadow: 0 16px 34px rgba(26, 22, 18, 0.06);
  transform: translateY(-1px);
}

.firm-miller-list-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 0;
}

.firm-miller-list-header h3 {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 500;
}

.firm-miller-list-header span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f5f1ea;
  color: var(--muted);
  font-size: 0.78rem;
}

.firm-miller-conversation-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
}

.firm-miller-conversation-meta span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.firm-miller-conversation-meta small {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: #f5f1ea;
  color: var(--muted);
  font-size: 0.72rem;
}

.firm-miller-list article > span {
  border-radius: 999px;
  background: #fff6df;
  color: var(--ember);
  padding: 5px 9px;
  font-size: 0.74rem;
  white-space: nowrap;
}

.firm-miller-actions {
  display: grid;
  justify-items: end;
  gap: 10px;
}

.firm-miller-action-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.firm-miller-actions .secondary-button,
.firm-miller-ignore-button {
  min-height: 34px;
  padding: 0 14px;
}

.firm-miller-ignore-button {
  color: var(--muted);
}

.firm-miller-ignore-button.confirming {
  border-color: rgba(200, 41, 30, 0.24);
  background: var(--ember-soft);
  color: var(--ember);
}

.firm-miller-actions em {
  border-radius: 999px;
  background: #f5f1ea;
  color: var(--ink);
  padding: 5px 9px;
  font-size: 0.74rem;
  font-style: normal;
  white-space: nowrap;
}

.firm-miller-actions em.needs-response {
  background: #fff0ed;
  color: var(--red);
}

.firm-miller-actions em.advisor-review {
  background: #fff6df;
  color: var(--ember);
}

.firm-miller-actions em.referral {
  background: #edf8f4;
  color: var(--green);
}

.panel-header.compact {
  margin-bottom: 10px;
}

.panel-header.compact h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 400;
}

.firm-topic-list,
.firm-miller-roadmap {
  display: grid;
  gap: 8px;
}

.firm-topic-list div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.firm-topic-list strong {
  color: var(--ink);
  font-weight: 500;
}

.firm-miller-roadmap span {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 10px;
  line-height: 1.3;
  text-transform: none;
  letter-spacing: 0;
}

.firm-health-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.firm-health-grid div,
.firm-focus-list div {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.firm-health-grid strong,
.firm-focus-list strong {
  display: block;
  margin-top: 6px;
  font-size: 1.12rem;
}

.firm-compact-list button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 11px 12px;
  text-align: left;
}

.firm-compact-list button:hover {
  border-color: rgba(200, 41, 30, 0.22);
  background: #fffaf4;
}

.tax-dashboard {
  display: grid;
  gap: 16px;
}

.tax-estimates-card {
  display: grid;
  gap: 16px;
}

.tax-rate-form {
  display: flex;
  align-items: end;
  gap: 8px;
  margin-left: auto;
}

.tax-rate-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.78rem;
}

.tax-rate-form input {
  width: 86px;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
}

.tax-estimate-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.tax-estimate-summary div,
.tax-quarter-row {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.tax-estimate-summary div {
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.12), rgba(255, 255, 255, 0.95) 58%),
    #fff;
  padding: 14px;
}

.tax-estimate-summary span,
.tax-quarter-main span,
.tax-quarter-main small,
.tax-quarter-fields label {
  color: var(--muted);
  font-size: 0.78rem;
}

.tax-estimate-summary strong,
.tax-quarter-main strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-weight: 500;
}

.tax-quarterly-list {
  display: grid;
  gap: 10px;
}

.tax-quarter-row {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.tax-quarter-row.complete {
  border-color: rgba(20, 121, 91, 0.22);
  background:
    linear-gradient(135deg, rgba(20, 121, 91, 0.08), rgba(255, 255, 255, 0.96) 52%),
    #fff;
}

.tax-quarter-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.tax-made-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
}

.tax-made-toggle input {
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.tax-quarter-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: end;
}

.tax-quarter-fields label {
  display: grid;
  gap: 6px;
}

.tax-quarter-fields .tax-made-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: end;
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  white-space: nowrap;
}

.tax-quarter-fields .tax-made-toggle input {
  flex: 0 0 auto;
  margin: 0;
}

.tax-quarter-row.complete .tax-made-toggle {
  border-color: rgba(20, 121, 91, 0.2);
  background: #edf8f4;
}

.tax-quarter-fields input:not([type="checkbox"]) {
  min-height: 40px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 11px;
}

.tax-quarter-fields input[readonly] {
  background: #fbfaf7;
  color: var(--ink);
}

.household-list-panel {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.household-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.household-list-toolbar .search-input {
  width: min(420px, 100%);
}

.household-list-toolbar select {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
}

.household-list-toolbar span {
  color: var(--muted);
  font-size: 0.84rem;
}

.household-scroll-list {
  display: grid;
  gap: 8px;
  max-height: calc(100vh - 270px);
  overflow: auto;
  padding-right: 4px;
}

.household-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) minmax(106px, 0.6fr) minmax(116px, 0.7fr) minmax(90px, 0.5fr) minmax(118px, 0.7fr) minmax(150px, 0.85fr);
  gap: 14px;
  align-items: center;
  min-height: 84px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 14px 16px;
  text-align: left;
}

.household-row:hover {
  border-color: rgba(200, 41, 30, 0.22);
  background: #fffaf4;
}

.household-row span {
  display: grid;
  gap: 5px;
}

.household-row strong {
  font-size: 0.92rem;
  font-weight: 500;
}

.household-row small {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.entity-id-line {
  display: inline-flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px !important;
  color: var(--muted);
  line-height: 1.25;
  margin-top: 1px;
}

.copy-id-pill {
  display: inline-flex;
  width: max-content;
  align-items: center;
  justify-content: center;
  min-height: 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: #59636c;
  padding: 0 6px;
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.15;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease;
}

.copy-id-pill:hover,
.copy-id-pill:focus-visible {
  border-color: #c9c1b5;
  background: #fbfaf7;
  color: var(--ink);
  outline: none;
}

.copy-id-pill.copied {
  border-color: rgba(20, 121, 91, 0.22);
  background: #edf8f4;
  color: var(--green);
}

.household-invite-detail {
  color: var(--ember-soft);
}

.relationship-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-style: normal;
  text-transform: capitalize;
}

.relationship-status-pill.active {
  background: #edf8f4;
  color: var(--green);
}

.relationship-status-pill.inactive {
  background: #f5f1ea;
  color: #6f7378;
}

.crm-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.crm-snapshot-card {
  min-height: 118px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.1), rgba(255, 255, 255, 0.95) 58%),
    #fff;
  box-shadow: var(--shadow);
}

.crm-snapshot-card.warning {
  background:
    linear-gradient(135deg, rgba(200, 41, 30, 0.1), rgba(255, 255, 255, 0.95) 62%),
    #fff;
}

.relationship-card {
  display: grid;
  align-content: start;
}

.relationship-card.inactive {
  background:
    linear-gradient(135deg, rgba(35, 32, 29, 0.06), rgba(255, 255, 255, 0.95) 62%),
    #fff;
}

.relationship-toggle {
  width: max-content;
  min-height: 32px;
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font-size: 0.78rem;
}

.relationship-toggle:hover {
  border-color: rgba(200, 41, 30, 0.24);
  background: #fffaf4;
}

.customize-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: 16px;
  margin-top: 16px;
}

.customize-card {
  display: grid;
  align-content: start;
  gap: 16px;
}

.extra-tab-options {
  display: grid;
  gap: 10px;
}

.extra-tab-option {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.extra-tab-option input {
  width: 18px;
  height: 18px;
  accent-color: var(--ember);
}

.extra-tab-option span {
  display: grid;
  gap: 4px;
}

.extra-tab-option strong {
  font-size: 0.94rem;
  font-weight: 500;
}

.extra-tab-option small,
.customize-household-name {
  color: var(--muted);
  font-size: 0.82rem;
}

.business-structure-card {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.12), rgba(255, 255, 255, 0.96) 58%),
    #fff;
  padding: 14px;
}

.business-structure-card span,
.business-structure-card small {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.35;
}

.business-structure-card strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.35;
}

.business-structure-field {
  display: grid;
  gap: 8px;
  color: #4f555c;
  font-size: 0.82rem;
}

.business-structure-field select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
}

.equity-dashboard {
  display: grid;
  grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.35fr);
  gap: 16px;
}

.equity-profile-panel,
.equity-grants-panel,
.equity-planning-panel {
  display: grid;
  gap: 16px;
}

.equity-planning-panel {
  grid-column: 1 / -1;
}

.equity-profile-grid {
  display: grid;
  gap: 10px;
}

.equity-profile-card,
.equity-profile-input {
  display: grid;
  gap: 7px;
  min-height: 72px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.equity-profile-card {
  background:
    linear-gradient(135deg, rgba(20, 121, 91, 0.08), rgba(255, 255, 255, 0.96) 66%),
    #fff;
}

.equity-profile-card span,
.equity-profile-input span,
.equity-grant-card-header span,
.equity-grant-grid label {
  color: var(--muted);
  font-size: 0.78rem;
}

.equity-profile-card strong {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 400;
}

.equity-profile-input input,
.equity-grant-grid input,
.equity-grant-grid select,
.equity-grant-grid textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
  font-weight: 400;
}

.equity-profile-input input,
.equity-grant-grid input,
.equity-grant-grid select {
  min-height: 40px;
}

.equity-grant-list {
  display: grid;
  gap: 12px;
}

.equity-grant-card {
  display: grid;
  gap: 14px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--green);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.equity-grant-card.collapsed {
  gap: 0;
  border-top-color: rgba(20, 121, 91, 0.42);
  background: #fbfaf7;
}

.equity-grant-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.equity-grant-card-header > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.equity-grant-card-header strong {
  color: var(--ink);
  font-weight: 500;
}

.equity-grant-card-header small {
  color: var(--muted);
  font-size: 0.78rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.equity-grant-card-header .equity-delete-confirm {
  color: var(--red);
  font-size: 0.75rem;
}

.equity-grant-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.equity-grant-toggle {
  min-height: 32px;
  padding: 0 10px;
  font-size: 0.8rem;
}

.equity-grant-delete-button.pending {
  border-color: rgba(200, 41, 30, 0.34);
  background: #fff1ed;
  color: var(--red);
}

.equity-grant-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.equity-grant-grid label {
  display: grid;
  gap: 7px;
}

.equity-grant-notes {
  grid-column: 1 / -1;
}

.equity-grant-grid textarea {
  min-height: 82px;
  padding-top: 10px;
  resize: vertical;
}

.equity-watchlist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.equity-watchlist span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fbfaf7;
  color: var(--ink);
  padding: 0 10px;
  font-size: 0.82rem;
}

.equity-type-options {
  display: grid;
  gap: 10px;
  max-height: 360px;
  overflow: auto;
  padding-right: 4px;
}

.value-customization-option small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.76rem;
}

.value-customization-card {
  min-height: 0;
}

.value-customization-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.13), rgba(255, 255, 255, 0.94) 62%),
    #fff;
  padding: 12px;
}

.value-customization-summary span {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 500;
}

.value-customization-summary small {
  color: var(--muted);
  font-size: 0.82rem;
}

.value-customization-list {
  display: grid;
  gap: 10px;
  max-height: min(520px, calc(100vh - 360px));
  overflow: auto;
  padding-right: 4px;
}

.advisor-contact-options {
  display: grid;
  gap: 10px;
  max-height: 260px;
  overflow: auto;
  padding-right: 4px;
}

.advisor-card-copy-field {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.82rem;
}

.advisor-card-copy-field textarea {
  width: 100%;
  min-height: 86px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
  font: inherit;
  line-height: 1.45;
  resize: vertical;
}

.value-customization-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 11px 12px;
}

.value-customization-option.checked {
  border-color: rgba(20, 121, 91, 0.24);
  background: #f4fbf8;
}

.value-customization-option input {
  width: 17px;
  height: 17px;
  margin-top: 1px;
  accent-color: var(--green);
}

.value-customization-option span {
  color: var(--ink);
  font-size: 0.86rem;
  line-height: 1.35;
}

.crm-snapshot-card span,
.crm-snapshot-card small {
  color: var(--muted);
  font-size: 0.78rem;
}

.crm-snapshot-card strong {
  display: block;
  margin: 8px 0 4px;
  font-size: 1.35rem;
  font-weight: 500;
}

.crm-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 16px;
}

.crm-work-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
  gap: 16px;
  margin-top: 16px;
}

.crm-note-form {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.crm-note-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.86rem;
}

.crm-note-form input,
.crm-note-form select,
.crm-note-form textarea,
#crm-activity-filter {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
}

.crm-note-form input,
.crm-note-form select,
#crm-activity-filter {
  min-height: 40px;
  padding: 0 12px;
}

.crm-note-form textarea {
  min-height: 190px;
}

.crm-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.crm-follow-up-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.crm-follow-up-row {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.crm-follow-up-row small,
.crm-activity-item span,
.crm-activity-item p {
  color: var(--muted);
  font-size: 0.84rem;
}

.crm-follow-up-row strong,
.crm-activity-item strong {
  color: var(--ink);
  font-weight: 500;
}

.crm-follow-up-row {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.crm-follow-up-row em {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--ember-soft);
  color: var(--ember);
  font-size: 0.76rem;
  font-style: normal;
}

.crm-follow-up-row.complete em {
  background: #edf8f4;
  color: var(--green);
}

.crm-activity-item {
  grid-template-columns: 112px 1fr;
}

.crm-activity-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.crm-edit-record-button {
  min-height: 30px;
  padding: 0 12px;
  font-size: 0.78rem;
}

.crm-activity-item p {
  margin: 6px 0;
  line-height: 1.45;
}

.crm-record-edit-form {
  display: grid;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(241, 165, 31, 0.28);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.08), rgba(255, 255, 255, 0.98) 72%),
    #fff;
}

.crm-record-edit-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.84rem;
}

.crm-record-edit-form input,
.crm-record-edit-form select,
.crm-record-edit-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font: inherit;
}

.crm-record-edit-form input,
.crm-record-edit-form select {
  min-height: 40px;
  padding: 0 12px;
}

.crm-record-edit-form textarea {
  min-height: 120px;
  padding: 12px;
  resize: vertical;
}

.crm-record-edit-actions {
  justify-content: flex-end;
}

.crm-pill {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 23px;
  margin-top: 8px;
  padding: 0 8px;
  border-radius: 999px;
  background: #f5f1ea;
  color: var(--muted);
  font-size: 0.72rem;
}

.crm-pill.high {
  background: var(--ember-soft);
  color: var(--ember);
}

.crm-pill.watch {
  background: #fff8dc;
  color: #7b5a06;
}

.crm-pill.normal {
  background: #edf8f4;
  color: var(--green);
}

.metric-card strong {
  display: block;
  margin: 6px 0;
  font-size: clamp(1.08rem, 1.6vw, 1.35rem);
  font-weight: 500;
  line-height: 1.1;
}

.metric-card span {
  color: var(--muted);
  font-size: 0.88rem;
}

.metric-card small {
  display: block;
  margin-top: 8px;
  color: var(--ink);
  font-size: 0.8rem;
  font-weight: 400;
}

.net-worth-equation {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.net-worth-equation span {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: var(--radius);
  background: #f5f1ea;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 800;
}

.value-checklist {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.value-check-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  color: var(--ink);
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.74);
  padding: 11px 12px;
  font-size: 0.82rem;
  line-height: 1.25;
}

.value-check-row span {
  display: grid;
  place-items: center;
  align-self: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  font-size: 0.62rem;
  font-weight: 900;
}

.value-check-row div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.value-check-row small {
  margin: 0;
  color: var(--muted);
  font-size: 0.68rem;
  text-transform: uppercase;
}

.value-check-row strong {
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 450;
  line-height: 1.35;
}

.value-check-row input {
  margin: 0;
  accent-color: var(--ember);
}

.overview-balance-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 16px;
}

.overview-balance-row div {
  padding: 10px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
}

.overview-balance-row span,
.overview-balance-row b {
  display: block;
}

.overview-balance-row span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.overview-balance-row b {
  margin-top: 4px;
  font-size: 0.98rem;
  font-weight: 500;
}

.stacked-bar {
  display: flex;
  height: 10px;
  overflow: hidden;
  margin-top: 14px;
  border-radius: 999px;
  background: var(--status-track);
}

.stacked-bar span {
  height: 100%;
}

.stacked-bar-assets {
  background: linear-gradient(90deg, var(--status-green), #17a77e);
}

.stacked-bar-liabilities {
  background: linear-gradient(90deg, var(--status-red), #df6258);
}

.active-goal-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.active-goal-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 8px 18px rgba(26, 21, 15, 0.035);
}

.active-goal-dot {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.active-goal-dot.off {
  background: #ffaaa2;
  box-shadow: 0 0 0 4px rgba(240, 82, 67, 0.1);
}

.active-goal-dot.watch {
  background: var(--status-yellow);
  box-shadow: 0 0 0 4px rgba(243, 196, 95, 0.16);
}

.active-goal-dot.good {
  background: #75ddba;
  box-shadow: 0 0 0 4px rgba(19, 164, 118, 0.12);
}

.active-goal-main {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.active-goal-title-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.active-goal-row span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.active-goal-row em,
.active-goal-row b {
  color: var(--ink);
  font-size: 0.86rem;
  font-style: normal;
  font-weight: 450;
}

.active-goal-row em {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.active-goal-row b {
  padding-top: 2px;
  font-weight: 500;
}

.active-goal-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 22px;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 0.68rem;
  font-weight: 450;
}

.active-goal-status.off {
  background: #ffe8e5;
  color: #b9342d;
  box-shadow: inset 0 0 0 1px rgba(236, 145, 135, 0.24);
}

.active-goal-status.watch {
  background: #fff5df;
  color: #9b680f;
}

.active-goal-status.good {
  background: #eaf8f3;
  color: #047d61;
}

.active-goal-meter {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--status-track);
}

.active-goal-meter i {
  display: block;
  height: 100%;
  min-width: 6px;
  border-radius: inherit;
}

.active-goal-meter i.off {
  background: var(--status-red);
}

.active-goal-meter i.watch {
  background: var(--status-yellow);
}

.active-goal-meter i.good {
  background: var(--status-green);
}

.active-goal-type {
  justify-self: start;
  min-height: 20px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  padding: 2px 7px;
  font-size: 0.68rem;
  font-weight: 400;
}

.goal-count-pill {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  border: 1px solid rgba(200, 41, 30, 0.16);
  border-radius: 999px;
  background: #fff7ed;
  color: var(--ink);
  padding: 0 7px;
  font-size: 0.72rem;
  font-weight: 500;
}

.metric-delta {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin-top: 14px;
  padding: 0 8px;
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 800;
}

.client-mode #overview .eyebrow,
.client-mode #overview .metric-delta,
.client-mode #overview .overview-balance-row span,
.client-mode #overview .active-goal-row span,
.client-mode #overview .active-goal-row em,
.client-mode #overview .active-goal-row b,
.client-mode #overview .panel-copy,
.client-mode #overview .chat-message p,
.client-mode #overview .value-check-row strong {
  color: var(--ink);
  font-weight: 400;
}

.advisor-client-mode #overview .eyebrow,
.advisor-client-mode #overview .metric-delta,
.advisor-client-mode #overview .overview-balance-row span,
.advisor-client-mode #overview .active-goal-row span,
.advisor-client-mode #overview .active-goal-row em,
.advisor-client-mode #overview .active-goal-row b,
.advisor-client-mode #overview .panel-copy,
.advisor-client-mode #overview .chat-message p,
.advisor-client-mode #overview .value-check-row strong {
  color: var(--ink);
  font-weight: 400;
}

.client-mode #overview .metric-delta {
  background: #f5f1ea;
}

.advisor-client-mode #overview .metric-delta {
  background: #f5f1ea;
}

.client-mode #overview .active-goal-status.off,
.advisor-client-mode #overview .active-goal-status.off {
  background: #ffe8e5;
  color: #b9342d;
  box-shadow: inset 0 0 0 1px rgba(236, 145, 135, 0.24);
  font-weight: 450;
}

.client-mode #overview .active-goal-status.watch,
.advisor-client-mode #overview .active-goal-status.watch {
  background: #fff4dc;
  color: #946610;
  font-weight: 450;
}

.client-mode #overview .active-goal-status.good,
.advisor-client-mode #overview .active-goal-status.good {
  background: #eaf8f3;
  color: #047d61;
  font-weight: 450;
}

.client-mode #overview .active-goal-meter,
.advisor-client-mode #overview .active-goal-meter {
  background: #e8dfd2;
}

.client-mode #overview .active-goal-meter i.off,
.advisor-client-mode #overview .active-goal-meter i.off {
  background: #ec9187;
}

.client-mode #overview .active-goal-meter i.watch,
.advisor-client-mode #overview .active-goal-meter i.watch {
  background: var(--status-yellow);
}

.client-mode #overview .active-goal-meter i.good,
.advisor-client-mode #overview .active-goal-meter i.good {
  background: #0f8f6d;
}

.client-mode #overview .active-goal-type,
.advisor-client-mode #overview .active-goal-type {
  color: var(--muted);
}

.content-grid,
.account-layout,
.vault-layout,
.goals-layout,
.budgeting-layout,
.schedule-layout,
.notes-layout {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}

.two-col {
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.8fr);
}

.three-col {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.panel {
  min-width: 0;
  padding: 18px;
}

.panel-header,
.section-heading {
  justify-content: space-between;
  gap: 16px;
}

.section-heading {
  margin-bottom: 16px;
}

select,
.search-input,
.chat-form input,
.goal-form input,
.goal-form select,
.net-worth-add-form input,
.net-worth-add-form select,
.net-worth-edit-form input,
.net-worth-edit-form select,
.budget-input-grid input,
.profile-form input,
.address-grid input,
textarea {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
}

select {
  height: 38px;
  padding: 0 10px;
}

.chart {
  display: flex;
  align-items: end;
  gap: 10px;
  height: 280px;
  margin-top: 22px;
  padding: 16px 12px 0;
  border-radius: var(--radius);
  background:
    linear-gradient(to top, rgba(35, 32, 29, 0.08) 1px, transparent 1px) 0 0 /
      100% 25%,
    #fffaf2;
}

.chart-bar {
  position: relative;
  flex: 1;
  min-width: 16px;
  border-radius: 6px 6px 0 0;
  background: linear-gradient(180deg, var(--gold), var(--amber) 45%, var(--ember));
}

.chart-bar span {
  position: absolute;
  bottom: -28px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--muted);
  font-size: 0.75rem;
}

.task-list,
.document-list,
.account-list,
.goal-list,
.timeline,
.budget-bars,
.control-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.goal-coverage-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.goal-dashboard-panel {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top left, rgba(20, 121, 91, 0.08), transparent 38%),
    radial-gradient(circle at top right, rgba(241, 165, 31, 0.09), transparent 32%),
    #fff;
}

.goal-dashboard-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: var(--ink);
  font-size: 0.82rem;
}

.task-item,
.doc-row,
.account-row,
.goal-row,
.timeline-item,
.budget-row {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.task-item {
  grid-template-columns: 22px 1fr auto;
  align-items: start;
}

.task-item input {
  margin-top: 2px;
  accent-color: var(--ember);
}

.task-item small,
.doc-row small,
.account-row small,
.timeline-item small,
.panel-copy,
.calendar-chip span {
  color: var(--muted);
  line-height: 1.5;
}

.doc-row {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.document-table .doc-row {
  grid-template-columns: 1fr 140px 110px auto;
}

.progress-ring {
  display: grid;
  place-items: center;
  width: 132px;
  height: 132px;
  margin: 20px auto 18px;
  border-radius: 50%;
  background:
    radial-gradient(closest-side, #fff 72%, transparent 73%),
    conic-gradient(var(--ember) 0 74%, #eee6dc 74% 100%);
}

.progress-ring span {
  font-size: 1.65rem;
  font-weight: 900;
}

.calendar-chip {
  display: grid;
  gap: 4px;
  margin: 18px 0;
  padding: 14px;
  border-left: 4px solid var(--ember);
  border-radius: var(--radius);
  background: var(--ember-soft);
}

.compact-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.86rem;
}

.crm-record-customizer {
  display: grid;
  gap: 14px;
  margin: 14px 0 16px;
  padding: 14px;
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: var(--radius);
  background: #fbfdfc;
}

.crm-record-customizer[hidden] {
  display: none;
}

.crm-record-customizer-header {
  display: flex;
  gap: 14px;
  justify-content: space-between;
  align-items: start;
}

.crm-record-customizer-header h3 {
  margin: 2px 0 3px;
  font-size: 1rem;
  font-weight: 400;
}

.crm-record-type-list {
  display: grid;
  gap: 10px;
}

.crm-record-type-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.36fr) minmax(0, 1fr) 38px;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.crm-record-type-row label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.74rem;
}

.crm-record-type-row input,
.crm-record-type-row textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 10px;
  font: inherit;
}

.crm-record-type-row textarea {
  min-height: 86px;
  resize: vertical;
}

.crm-record-type-delete {
  width: 36px;
  height: 36px;
}

.full-width {
  width: 100%;
}

.account-layout,
.goals-layout,
.budgeting-layout,
.schedule-layout,
.notes-layout {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

#goals .goals-layout {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.net-worth-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.net-worth-column {
  display: grid;
  gap: 18px;
  align-content: start;
}

.net-worth-group {
  display: grid;
  gap: 12px;
}

.net-worth-group + .net-worth-group {
  margin-top: 8px;
}

.net-worth-group-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #5d6468;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.net-worth-group-heading::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(35, 32, 29, 0.12);
}

.net-worth-section {
  display: grid;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--nw-border, rgba(35, 32, 29, 0.1));
  border-radius: var(--radius);
  background:
    linear-gradient(145deg, var(--nw-soft, #fbfaf7) 0%, #fff 42%, #fff 100%);
  box-shadow:
    0 12px 34px rgba(26, 22, 18, 0.045),
    0 0 28px var(--nw-glow, rgba(26, 22, 18, 0.04));
}

.net-worth-section::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: color-mix(in srgb, var(--nw-accent, #5d6468) 66%, #ffffff);
}

.net-worth-section-header {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  align-items: center;
  min-height: 66px;
  padding: 12px 14px 12px 16px;
  overflow: hidden;
  border-bottom: 1px solid var(--nw-border, rgba(35, 32, 29, 0.12));
  background:
    linear-gradient(135deg, var(--nw-header, #f3f5f5) 0%, #fff 100%);
}

.net-worth-summary-grid {
  margin-bottom: 16px;
}

.net-worth-summary-card {
  max-width: none;
}

.net-worth-summary-main {
  display: grid;
  gap: 14px;
}

#net-worth .eyebrow,
#net-worth .metric-delta,
#net-worth .overview-balance-row span {
  font-weight: 400;
}

.net-worth-bank {
  --nw-accent: #2f8f68;
  --nw-border: rgba(47, 143, 104, 0.18);
  --nw-glow: rgba(47, 143, 104, 0.14);
  --nw-header: #edf8f1;
  --nw-soft: #f5fbf7;
}

.net-worth-properties {
  --nw-accent: #2f8f68;
  --nw-border: rgba(47, 143, 104, 0.18);
  --nw-glow: rgba(47, 143, 104, 0.14);
  --nw-header: #edf8f1;
  --nw-soft: #f5fbf7;
}

.net-worth-insurance {
  --nw-accent: #b78222;
  --nw-border: rgba(183, 130, 34, 0.2);
  --nw-glow: rgba(183, 130, 34, 0.13);
  --nw-header: #fff6e6;
  --nw-soft: #fffbf2;
}

.net-worth-other {
  --nw-accent: #2f8f68;
  --nw-border: rgba(47, 143, 104, 0.18);
  --nw-glow: rgba(47, 143, 104, 0.14);
  --nw-header: #edf8f1;
  --nw-soft: #f5fbf7;
}

.net-worth-investments {
  --nw-accent: #2f8f68;
  --nw-border: rgba(47, 143, 104, 0.18);
  --nw-glow: rgba(47, 143, 104, 0.14);
  --nw-header: #edf8f1;
  --nw-soft: #f5fbf7;
}

.net-worth-loans,
.net-worth-credit-cards {
  --nw-accent: #c65a4e;
  --nw-border: rgba(198, 90, 78, 0.2);
  --nw-glow: rgba(198, 90, 78, 0.14);
  --nw-header: #fff0ee;
  --nw-soft: #fff7f6;
}

.net-worth-business {
  --nw-accent: #2f8f68;
  --nw-border: rgba(47, 143, 104, 0.18);
  --nw-glow: rgba(47, 143, 104, 0.14);
  --nw-header: #edf8f1;
  --nw-soft: #f5fbf7;
}

.net-worth-estate-planning {
  --nw-accent: #b78222;
  --nw-border: rgba(183, 130, 34, 0.2);
  --nw-glow: rgba(183, 130, 34, 0.13);
  --nw-header: #fff6e6;
  --nw-soft: #fffbf2;
}

.net-worth-title-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 32px;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  text-align: left;
  font-weight: 500;
}

.net-worth-title-button.static {
  cursor: default;
}

.net-worth-category-dot {
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--nw-accent, var(--gold));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--nw-accent, var(--gold)) 14%, transparent);
}

.net-worth-title-text {
  display: block;
  color: #1f1c19;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.1;
}

.net-worth-category-meta {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0;
}

.net-worth-section-total {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
  white-space: nowrap;
}

.add-mini-button {
  display: grid;
  place-items: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 0;
  font-size: 1.05rem;
  font-weight: 400;
}

.add-mini-button:hover {
  border-color: color-mix(in srgb, var(--nw-accent, var(--gold)) 44%, var(--line));
  background: color-mix(in srgb, var(--nw-accent, var(--gold)) 8%, #fff);
}

.account-count {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.net-worth-item-list {
  display: grid;
  gap: 8px;
  padding: 14px;
  background: #f8f8f6;
}

.net-worth-item-row {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  gap: 10px;
  align-items: center;
  min-height: 62px;
  padding: 10px 10px 10px 12px;
  border: 1px solid rgba(35, 32, 29, 0.07);
  border-radius: 7px;
  background: #fff;
}

.net-worth-item-row:hover {
  border-color: rgba(35, 32, 29, 0.14);
  background: #fff;
}

.net-worth-item-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
}

.net-worth-item-chips small {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 400;
}

.net-worth-item-name,
.net-worth-item-amount {
  font-weight: 500;
}

.remove-icon-button {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 900;
}

.remove-icon-button:hover {
  border-color: rgba(184, 38, 43, 0.35);
  color: var(--red);
}

.edit-icon-button {
  min-height: 28px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font-size: 0.76rem;
  font-weight: 400;
}

.edit-icon-button:hover {
  border-color: rgba(221, 75, 47, 0.3);
  background: #fff6e6;
}

.estate-planning-list {
  display: grid;
  gap: 8px;
  padding: 14px;
  background: #f8f8f6;
}

.estate-add-document-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.82rem;
}

.estate-planning-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0 14px 14px;
  background: #f8f8f6;
}

.estate-planning-summary span {
  display: grid;
  gap: 2px;
  padding: 10px;
  border: 1px solid rgba(35, 32, 29, 0.07);
  border-radius: 7px;
  background: #fff;
}

.estate-planning-summary strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 500;
}

.estate-planning-summary small {
  color: var(--muted);
  font-size: 0.78rem;
}

.estate-planning-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 0.9fr) auto;
  align-items: end;
  gap: 10px;
  min-height: 66px;
  padding: 11px;
  border: 1px solid rgba(35, 32, 29, 0.07);
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 400;
}

.estate-document-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  font-size: 0.8rem;
}

.estate-document-check::before {
  content: "";
  width: 8px;
  height: 4px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg) translate(1px, -1px);
}

.estate-planning-row label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 400;
}

.estate-planning-row select,
.estate-planning-row input {
  min-width: 0;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font: inherit;
}

.estate-planning-row input::placeholder {
  color: var(--muted);
}

.estate-empty-state {
  padding: 14px;
  border: 1px dashed rgba(35, 32, 29, 0.14);
  border-radius: 7px;
  background: #fff;
}

.empty-state {
  padding: 18px 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.empty-state.estate-empty-state {
  padding: 14px;
}

.net-worth-add-form,
.net-worth-edit-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  padding: 14px;
  border-bottom: 1px solid var(--line);
  background: #fbfaf7;
}

.net-worth-edit-form {
  margin: 8px 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.net-worth-add-form label,
.net-worth-edit-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 400;
}

.net-worth-add-form input,
.net-worth-add-form select,
.net-worth-edit-form input,
.net-worth-edit-form select {
  min-height: 42px;
  min-width: 0;
  padding: 0 12px;
  color: var(--ink);
  font-weight: 500;
}

.net-worth-add-form button,
.net-worth-edit-form button {
  align-self: end;
}

.net-worth-edit-actions {
  display: flex;
  gap: 8px;
  align-items: end;
}

.asset-fill,
.liability-fill,
.budget-fill {
  height: 8px;
  border-radius: 999px;
}

.bar-track {
  overflow: hidden;
  margin-top: 8px;
  border-radius: 999px;
  background: #eee8df;
}

.asset-fill {
  background: linear-gradient(90deg, var(--amber), var(--green));
}

.liability-fill {
  background: linear-gradient(90deg, var(--ember), var(--amber));
}

.budget-fill {
  background: linear-gradient(90deg, var(--charcoal), var(--amber));
}

.amount-positive {
  color: var(--green);
  font-weight: 900;
}

.amount-negative {
  color: var(--red);
  font-weight: 900;
}

.vault-layout {
  grid-template-columns: 220px minmax(0, 1fr);
}

.folder-panel {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 10px;
}

.folder-item {
  min-height: 42px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  text-align: left;
  padding: 0 12px;
}

.folder-item.active,
.folder-item:hover {
  background: var(--ember-soft);
  color: var(--ink);
}

.search-input {
  min-width: 220px;
  height: 40px;
  padding: 0 12px;
}

.confidence-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  font-size: 0.78rem;
  font-weight: 900;
}

.goal-form {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.goal-form label,
.budget-input-grid label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 800;
}

.goal-form input,
.goal-form select,
.budget-input-grid input {
  min-height: 42px;
  padding: 0 12px;
  color: var(--ink);
  font-weight: 500;
}

.goal-category-description {
  display: grid;
  gap: 3px;
  margin: -2px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(247, 201, 72, 0.34);
  border-radius: var(--radius);
  background: linear-gradient(135deg, #fffaf0 0%, #ffffff 100%);
  color: #59616a;
  font-size: 0.82rem;
  line-height: 1.35;
}

.goal-category-description:empty {
  display: none;
}

.goal-category-description strong {
  color: var(--ink);
  font-weight: 500;
}

.budget-input-grid {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.budget-input-grid small {
  color: #4f555c;
  font-size: 0.76rem;
  line-height: 1.35;
}

.split-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 10px;
}

.planner-step .retirement-lump-sum-inputs {
  grid-template-columns: minmax(120px, 1fr) 64px;
}

.planner-step .retirement-social-security-inputs {
  grid-template-columns: minmax(120px, 1fr) 64px;
}

.planner-step .retirement-assumption-inputs {
  grid-template-columns: minmax(0, 1fr) 64px;
}

.input-with-suffix {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.input-with-suffix input {
  border: 0;
}

.input-with-suffix span {
  color: var(--muted);
  font-weight: 900;
  text-align: center;
}

.waterfall-chart {
  display: grid;
  grid-template-columns: repeat(7, minmax(92px, 1fr));
  gap: 10px;
  align-items: end;
  min-height: 360px;
  margin-top: 18px;
  padding: 14px;
  overflow-x: auto;
  border-radius: var(--radius);
  background: #fffaf2;
}

.waterfall-step {
  display: grid;
  align-content: end;
  gap: 8px;
  min-width: 92px;
  height: 100%;
}

.waterfall-bar-wrap {
  display: flex;
  align-items: end;
  min-height: 250px;
}

.waterfall-bar {
  width: 100%;
  min-height: 8px;
  border-radius: 6px 6px 0 0;
  background: var(--charcoal);
}

.waterfall-bar.positive {
  background: linear-gradient(180deg, var(--green), #5ab994);
}

.waterfall-bar.negative {
  background: linear-gradient(180deg, var(--ember), var(--amber));
}

.waterfall-bar.burn {
  background: linear-gradient(180deg, var(--charcoal), #766f67);
}

.waterfall-label {
  display: grid;
  gap: 3px;
  align-content: start;
  min-height: 70px;
}

.waterfall-label strong {
  min-height: 34px;
  font-size: 0.78rem;
  line-height: 1.25;
}

.waterfall-label span {
  color: var(--muted);
  font-size: 0.78rem;
}

.budget-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.budget-summary-item {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.budget-summary-item span {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.budget-summary-item strong {
  display: block;
  margin-top: 5px;
}

#budgeting h2,
#budgeting strong,
#budgeting label,
#budgeting input,
#budgeting .confidence-pill,
#budgeting .input-with-suffix span,
#budgeting .budget-summary-item span {
  font-weight: 400;
}

.goal-row {
  grid-template-columns: 1fr;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(26, 22, 18, 0.035);
}

.goal-row.dragging {
  opacity: 0.62;
}

.goal-row.drag-over .goal-row-main {
  background: #fffaf0;
}

.goal-row.inactive {
  border-color: #ddd7cf;
  background: #faf8f5;
}

.goal-row.inactive .goal-row-main {
  opacity: 0.76;
}

.goal-row-main {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  cursor: pointer;
}

.goal-status-rail {
  display: flex;
  align-items: stretch;
  align-self: stretch;
  width: 10px;
}

.goal-status-rail span {
  width: 4px;
  min-height: 58px;
  border-radius: 999px;
  background: #ddd7cf;
}

.goal-status-good .goal-status-rail span {
  background: linear-gradient(180deg, #48b58b, var(--green));
}

.goal-status-watch .goal-status-rail span {
  background: linear-gradient(180deg, #f7d989, #f3c45f);
}

.goal-status-off .goal-status-rail span {
  background: linear-gradient(180deg, #e99b93, #bf3f2f);
}

.goal-row.inactive .goal-status-rail span {
  background: #d9d3cb;
}

.goal-card-content {
  min-width: 0;
}

.goal-title-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.goal-title-edit-form {
  display: grid;
  grid-template-columns: minmax(180px, 320px) auto auto;
  gap: 8px;
  align-items: center;
}

.goal-title-edit-form input {
  min-height: 34px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font-weight: 400;
}

.goal-title-edit-button {
  min-height: 24px;
  padding: 0 9px;
  font-size: 0.72rem;
}

.goal-duplicate-button {
  min-height: 28px;
  padding: 0 10px;
  font-size: 0.74rem;
}

.goal-title {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 400;
}

.goal-category-chip {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid #e2ded8;
  border-radius: 999px;
  background: #f7f5f1;
  color: #4f555c;
  font-size: 0.72rem;
  font-weight: 400;
}

.goal-row-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  max-width: 430px;
}

.goal-status-indicator {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 0.76rem;
}

.goal-status-indicator i {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #c65a4e;
  box-shadow: 0 0 0 4px rgba(198, 90, 78, 0.13);
}

.goal-status-indicator.good i {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(20, 121, 91, 0.13);
}

.goal-status-indicator.watch i {
  background: var(--status-yellow);
  box-shadow: 0 0 0 4px rgba(243, 196, 95, 0.16);
}

.goal-status-indicator.inactive i {
  background: #9aa0a6;
  box-shadow: 0 0 0 4px rgba(154, 160, 166, 0.14);
}

.goal-status-toggle {
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(20, 121, 91, 0.24);
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  font-size: 0.75rem;
}

.goal-status-toggle.inactive {
  border-color: #dad4cc;
  background: #f4f1eb;
  color: #646b73;
}

.goal-progress-compact {
  display: grid;
  grid-template-columns: auto;
  gap: 0;
  align-items: center;
  min-width: 0;
}

.goal-row-delete-button {
  width: 26px;
  height: 26px;
}

.goal-row-delete-button.pending {
  border-color: rgba(200, 41, 30, 0.34);
  background: #fff1ed;
  color: var(--red);
}

.goal-delete-confirm {
  color: var(--red);
  font-size: 0.78rem;
}

.goal-progress-compact span {
  min-width: 46px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 9px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 400;
  text-align: center;
}

.goal-mini-meter {
  display: none;
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8e4de;
}

.goal-mini-meter i {
  display: block;
  width: var(--progress);
  height: 100%;
  border-radius: inherit;
  background: var(--progress-color);
}

.goal-drag-handle {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  cursor: grab;
}

.goal-drag-handle::before {
  content: "";
  width: 14px;
  height: 10px;
  background: repeating-linear-gradient(to bottom, #69717c 0 1px, transparent 1px 4px);
}

.goal-drag-handle:active {
  cursor: grabbing;
}

.goal-drag-handle:hover {
  border-color: rgba(221, 75, 47, 0.3);
  background: #fff6e6;
}

.goal-row-progress-bar {
  height: 5px;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8e4de;
}

.goal-row-progress-bar i {
  display: block;
  width: var(--progress);
  height: 100%;
  border-radius: inherit;
  background: var(--progress-color);
}

.danger-link {
  color: var(--red);
}

.danger-button {
  color: var(--red);
}

.delete-confirm-note {
  margin: -4px 0 12px;
  color: var(--red);
  font-size: 0.82rem;
}

.goal-detail-panel {
  padding: 0;
  border-top: 1px solid var(--line);
  background: #f3f1ef;
}

#goals strong,
#goals b,
#goals h2,
#goals h3,
#goals button {
  font-weight: 400;
}

#goals .goal-form label,
#goals .goal-form input,
#goals .goal-form select {
  font-weight: 400;
}

.goal-planner-shell {
  display: grid;
  grid-template-columns: minmax(290px, 0.46fr) minmax(0, 1fr);
  gap: 16px;
  padding: 16px;
}

.goal-planner-main {
  display: grid;
  gap: 14px;
}

.goal-calculator-card,
.goal-tool-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 10px 28px rgba(26, 22, 18, 0.05);
}

.goal-calculator-card {
  align-self: start;
  padding: 16px;
}

.goal-planner-heading {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.goal-planner-title {
  display: flex;
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.goal-planner-heading h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
}

.goal-math-button {
  min-height: 32px;
  padding: 0 12px;
  font-size: 0.78rem;
  white-space: nowrap;
}

.planner-step-list {
  display: grid;
}

.planner-step {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) minmax(110px, 0.58fr);
  gap: 10px;
  align-items: center;
  min-height: 54px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}

.planner-step:has(.retirement-lump-sum-inputs),
.planner-step:has(.retirement-social-security-inputs) {
  grid-template-columns: 24px minmax(0, 1fr) minmax(190px, 0.72fr);
}

.planner-step:last-child {
  border-bottom: 0;
}

.planner-step-number {
  display: grid;
  place-items: center;
  align-self: center;
  width: 20px;
  height: 20px;
  color: #2d333a;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.planner-step span,
.planner-step small {
  display: block;
}

.planner-step .planner-step-number {
  display: grid;
  place-items: center;
}

.planner-step span {
  font-size: 0.82rem;
}

.planner-step small {
  margin-top: 3px;
  color: #4f555c;
  font-size: 0.72rem;
  line-height: 1.35;
}

.planner-step input,
.planner-step select,
.planner-progress-values input {
  min-width: 0;
  min-height: 34px;
  border: 1px solid #d8dce1;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font-weight: 400;
}

.education-step-list .planner-step {
  grid-template-columns: 24px minmax(0, 1fr) minmax(130px, 0.52fr);
}

.fixed-output-step strong {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 400;
  text-align: right;
}

.goal-progress-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.payoff-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.planner-progress-card {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 10px 28px rgba(26, 22, 18, 0.05);
}

.planning-target-cards {
  align-items: stretch;
}

.goal-story-cards {
  grid-template-columns: minmax(0, 1fr);
}

.planning-path-card {
  gap: 16px;
  padding: 18px 20px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(248, 249, 247, 0.86)),
    #fff;
}

.planning-path-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.planning-path-header h3 {
  margin: 6px 0 6px;
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 400;
}

.planning-path-header p,
.planning-path-header p {
  margin: 0;
  max-width: 850px;
  color: #424a54;
  line-height: 1.5;
}

.planning-path-status {
  display: inline-grid;
  place-items: center;
  min-width: 48px;
  min-height: 30px;
  border: 1px solid rgba(21, 150, 109, 0.14);
  border-radius: 999px;
  background: rgba(21, 150, 109, 0.08);
  color: #087a58;
  font-size: 0.82rem;
}

.planning-path-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.planning-path-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(130px, 0.38fr);
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid #e1ded7;
  border-radius: 8px;
  background: #fff;
}

.planning-path-option.cash-flow-option {
  border-color: rgba(21, 150, 109, 0.2);
}

.planning-path-option.balance-option {
  border-color: rgba(230, 171, 46, 0.24);
}

.planning-path-option span,
.planning-path-option small {
  display: block;
}

.planning-path-option > div:first-child > span {
  color: #404852;
  font-size: 0.76rem;
  text-transform: uppercase;
}

.planning-path-option strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-size: 1.1rem;
  font-weight: 400;
}

.planning-path-card small,
.planning-path-option small {
  justify-self: auto;
  color: #5d6570;
  font-size: 0.74rem;
  line-height: 1.35;
}

.planning-path-option > div:first-child small {
  margin-top: 5px;
}

.planning-path-target {
  display: grid;
  gap: 4px;
  min-height: 64px;
  padding: 9px 10px;
  border: 1px solid #e3e0d9;
  border-radius: 8px;
  background: #fbfaf7;
  text-align: right;
}

.planning-path-target span,
.planning-path-target input {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  text-align: right;
}

.planning-path-target input {
  min-height: 22px;
}

.planning-path-target .planning-path-left {
  color: #69717c;
  font-size: 0.72rem;
}

.planning-path-option .planner-meter,
.planning-path-footer {
  grid-column: 1 / -1;
}

.planning-path-footer {
  justify-self: end !important;
}

.planning-pulse-card {
  position: relative;
  overflow: hidden;
  gap: 14px;
  min-height: 164px;
  padding: 18px 18px 16px 20px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(250, 249, 246, 0.9)),
    #fff;
}

.planning-pulse-card::before {
  position: absolute;
  top: 16px;
  bottom: 16px;
  left: 0;
  width: 4px;
  border-radius: 0 999px 999px 0;
  content: "";
}

.cash-flow-card::before {
  background: #15966d;
}

.balance-goal-card::before {
  background: #f0b84d;
}

.planning-pulse-top,
.planning-pulse-main {
  display: flex;
  gap: 14px;
  justify-content: space-between;
  align-items: flex-start;
}

.planning-pulse-kicker {
  color: #404852;
  font-size: 0.74rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.planning-pulse-chip {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  min-height: 28px;
  border: 1px solid rgba(21, 150, 109, 0.16);
  border-radius: 999px;
  background: rgba(21, 150, 109, 0.08);
  color: #087a58;
  font-size: 0.78rem;
}

.planning-pulse-main {
  align-items: stretch;
}

.planning-pulse-main > div:first-child {
  display: grid;
  align-content: center;
  gap: 5px;
  min-width: 0;
}

.planning-pulse-main strong {
  color: var(--ink);
  font-size: 1.32rem;
  font-weight: 400;
  line-height: 1.15;
}

.planning-pulse-card small {
  justify-self: auto;
  color: #5d6570;
  line-height: 1.35;
}

.planning-pulse-target {
  display: grid;
  align-content: center;
  gap: 5px;
  min-width: 150px;
  padding: 10px 12px;
  border: 1px solid #e3e0d9;
  border-radius: 8px;
  background: #fff;
  text-align: right;
}

.planning-pulse-target span {
  color: var(--ink);
  font-size: 1rem;
}

.planning-pulse-target input {
  width: 100%;
  min-width: 0;
  min-height: 30px;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  text-align: right;
}

.planning-pulse-card .progress-card-note {
  justify-self: start;
  margin-top: -2px;
}

.planning-pulse-footer {
  justify-self: end !important;
}

.payoff-snapshot-card {
  align-content: start;
  min-height: 136px;
  background: #fff;
}

.payoff-snapshot-card.complete {
  border-color: rgba(20, 121, 91, 0.18);
  background: #edf8f4;
}

.payoff-snapshot-card.warning {
  border-color: rgba(221, 75, 47, 0.2);
  background: #fff3ef;
}

.payoff-snapshot-card strong {
  display: block;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 400;
}

.planner-progress-card > span,
.goal-tool-header span,
.analysis-card > span {
  color: #404852;
  font-size: 0.78rem;
  text-transform: uppercase;
}

.planner-progress-values {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, 0.64fr);
  gap: 10px;
  align-items: center;
}

.planner-progress-values > span {
  font-size: 0.98rem;
}

.fixed-goal-value {
  display: grid;
  place-items: center end;
  min-height: 34px;
  border: 1px solid #d8dce1;
  border-radius: 6px;
  background: #f6f7f9;
  color: var(--ink);
  padding: 0 10px;
  text-align: right;
}

.planner-meter {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5e8ec;
}

.planner-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
}

.planner-meter.cash-flow span {
  background: var(--green);
}

.planner-progress-card small {
  justify-self: end;
  color: #4f555c;
  font-size: 0.74rem;
}

.planner-progress-card .progress-card-note {
  justify-self: start;
  min-height: 16px;
}

.retirement-redirect-note {
  justify-self: start !important;
  padding: 8px 10px;
  border: 1px solid rgba(20, 121, 91, 0.14);
  border-radius: 8px;
  background: #edf8f4;
  color: var(--green) !important;
  line-height: 1.35;
}

.goal-tool-card {
  padding: 16px;
}

.goal-tool-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}

.planner-settings-form,
.planner-assignment-form {
  display: grid;
  gap: 10px;
}

.planner-settings-form {
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
}

.goal-form-note {
  align-self: end;
  min-height: 38px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  color: #4f555c;
  font-size: 0.78rem;
}

.planner-assignment-forms {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.planner-assignment-form {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.85fr) minmax(0, 0.8fr) auto;
  align-items: end;
}

.planner-account-list {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.planner-account-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  gap: 12px;
  align-items: center;
  min-height: 50px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: #f1f3f5;
}

.planner-account-row:last-child {
  border-bottom: 0;
}

.planner-account-row.savings-row {
  background: #fff;
}

.planner-account-row span,
.planner-account-row small {
  display: block;
}

.planner-account-row small {
  margin-top: 3px;
  color: #4f555c;
  font-size: 0.72rem;
}

.emergency-funding-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.emergency-assignment-card {
  display: grid;
  gap: 14px;
  overflow: hidden;
  background: #fff;
}

.emergency-assignment-card.balance-card {
  border-top-color: var(--line);
}

.emergency-assignment-card.savings-card {
  border-top-color: var(--line);
}

.emergency-assignment-card.retirement-balance-card {
  border-top-color: var(--line);
}

.emergency-assignment-card.retirement-savings-card {
  border-top-color: var(--line);
}

.emergency-assignment-card.education-balance-card {
  border-top-color: var(--line);
  background: #fff;
}

.emergency-assignment-card.education-savings-card {
  border-top-color: var(--line);
  background: #fff;
}

.emergency-assignment-card.other-balance-card {
  border-top-color: var(--line);
  background: #fff;
}

.emergency-assignment-card.other-savings-card {
  border-top-color: var(--line);
  background: #fff;
}

.emergency-assignment-header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: start;
}

.emergency-assignment-header span,
.emergency-assignment-total span {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
}

.emergency-assignment-header p,
.emergency-assignment-total small {
  margin: 4px 0 0;
  color: #4f555c;
  font-size: 0.74rem;
  line-height: 1.35;
}

.emergency-assignment-total {
  flex: 0 0 auto;
  min-width: 112px;
  text-align: right;
}

.emergency-assignment-list {
  display: grid;
  gap: 8px;
}

.emergency-assignment-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  gap: 10px;
  align-items: center;
  min-height: 48px;
  padding: 9px 10px;
  border: 1px solid #e4e0db;
  border-radius: 8px;
  background: #fff;
}

.emergency-assignment-row.savings-row {
  background: #fff;
}

.emergency-assignment-row span,
.emergency-assignment-row small {
  display: block;
}

.emergency-assignment-row small {
  margin-top: 3px;
  color: #606872;
  font-size: 0.72rem;
}

.emergency-assignment-form {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr) minmax(0, 0.8fr) auto;
  gap: 10px;
  align-items: end;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.emergency-assignment-form label {
  display: grid;
  gap: 6px;
  color: #4f555c;
  font-size: 0.74rem;
}

.emergency-assignment-form input,
.emergency-assignment-form select {
  min-width: 0;
  min-height: 36px;
  border: 1px solid #d8dce1;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
}

.retirement-add-balance-button {
  justify-self: start;
  margin-top: 2px;
}

.retirement-add-balance-button:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.goal-assignment-edit-form {
  margin-top: 8px;
  border-top: 0;
  padding: 10px;
  border: 1px solid #e4e0db;
  border-radius: 8px;
  background: #fff;
}

.assignment-edit-actions {
  display: flex;
  gap: 8px;
  align-items: end;
}

.retirement-funding-layout {
  display: grid;
  gap: 14px;
}

.retirement-wide-card,
.retirement-savings-card {
  min-width: 0;
}

.retirement-savings-card {
  display: grid;
  gap: 16px;
  overflow: hidden;
  background: #fff;
}

.retirement-savings-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.retirement-savings-header span,
.retirement-savings-total span {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
}

.retirement-savings-header p,
.retirement-savings-total small {
  margin: 4px 0 0;
  color: #4f555c;
  font-size: 0.74rem;
  line-height: 1.35;
}

.retirement-savings-total {
  min-width: 150px;
  text-align: right;
}

.retirement-savings-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.emergency-savings-wide-card {
  border-top-color: var(--line);
}

.emergency-savings-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.retirement-contribution-buckets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.retirement-savings-stats > div,
.retirement-contribution-buckets > div {
  padding: 10px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
}

.retirement-savings-stats > div.complete {
  border-color: rgba(20, 121, 91, 0.18);
  background: #edf8f4;
}

.retirement-savings-stats > div.warning {
  border-color: rgba(221, 75, 47, 0.2);
  background: #fff3ef;
}

.retirement-savings-stats span,
.retirement-contribution-buckets span {
  display: block;
  color: #4f555c;
  font-size: 0.72rem;
}

.retirement-savings-stats strong,
.retirement-contribution-buckets strong {
  display: block;
  margin-top: 0;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 400;
}

.retirement-contribution-list {
  display: grid;
  gap: 8px;
}

.retirement-contribution-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.2fr) minmax(120px, 0.7fr) minmax(110px, 0.65fr) minmax(100px, 0.55fr) minmax(110px, 0.6fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid #e4e0db;
  border-radius: 8px;
  background: #fff;
}

.retirement-contribution-row select,
.retirement-contribution-row input,
.retirement-contribution-form select,
.retirement-contribution-form input {
  min-width: 0;
  min-height: 36px;
  border: 1px solid #d8dce1;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
}

.retirement-contribution-row > span,
.retirement-contribution-row > strong {
  color: #4f555c;
  font-size: 0.78rem;
  font-weight: 400;
}

.retirement-contribution-row > strong {
  color: var(--ink);
  text-align: right;
}

.retirement-contribution-buckets > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.retirement-contribution-buckets span {
  font-size: 0.78rem;
}

.retirement-contribution-buckets strong {
  text-align: right;
  white-space: nowrap;
}

.retirement-contribution-form {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.7fr) minmax(0, 0.8fr) auto;
  gap: 10px;
  align-items: end;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.retirement-contribution-form label {
  display: grid;
  gap: 6px;
  color: #4f555c;
  font-size: 0.74rem;
}

.retirement-withdrawal-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  background: #fff;
}

.retirement-withdrawal-card span,
.retirement-withdrawal-card strong {
  display: block;
}

.retirement-withdrawal-card span {
  color: #404852;
  font-size: 0.78rem;
  text-transform: uppercase;
}

.retirement-withdrawal-card strong {
  margin-top: 6px;
  color: var(--ink);
  font-size: 1.35rem;
}

.retirement-withdrawal-card p {
  max-width: 330px;
  margin: 0;
  color: #4f555c;
  font-size: 0.78rem;
  line-height: 1.45;
  text-align: right;
}

.retirement-income-snapshot {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.income-snapshot-card,
.income-funding-card,
.retirement-income-plan-card,
.income-bucket-card,
.ltc-needs-card,
.withdrawal-strategy-card {
  background: #fff;
}

.income-snapshot-card {
  align-content: start;
  min-height: 136px;
}

.income-snapshot-card.complete,
.income-funding-card.complete,
.income-plan-stats > div.complete {
  border-color: rgba(20, 121, 91, 0.18);
  background: #edf8f4;
}

.income-snapshot-card.warning,
.income-funding-card.warning,
.income-plan-stats > div.warning {
  border-color: rgba(221, 75, 47, 0.2);
  background: #fff3ef;
}

.income-snapshot-card strong,
.income-funding-line strong,
.income-plan-stats strong,
.income-bucket-grid strong {
  display: block;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 400;
}

.income-snapshot-card small {
  justify-self: start;
  line-height: 1.35;
}

.income-funding-card {
  min-height: 136px;
}

.income-funding-line {
  display: grid;
  gap: 4px;
}

.income-funding-line small {
  justify-self: start;
}

.retirement-income-plan-card {
  display: grid;
  gap: 16px;
}

.payoff-plan-card,
.payoff-account-card,
.payoff-strategy-card {
  display: grid;
  gap: 14px;
  background: #fff;
}

.payoff-plan-card {
  border-top-color: var(--line);
}

.payoff-account-card {
  border-top-color: var(--line);
}

.payoff-strategy-card {
  border-top-color: var(--line);
}

.income-plan-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.income-plan-header span:not(.income-status-pill) {
  display: block;
  color: #404852;
  font-size: 0.78rem;
  text-transform: uppercase;
}

.income-plan-header h3 {
  margin: 5px 0 0;
  color: var(--ink);
  font-size: 1.35rem;
}

.income-plan-header p {
  max-width: 640px;
  margin: 8px 0 0;
  color: #4f555c;
  font-size: 0.82rem;
  line-height: 1.45;
}

.income-status-pill {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  color: var(--ink);
  font-size: 0.76rem;
  background: #f3f1ef;
}

.income-status-pill.complete {
  background: #dff3ec;
}

.income-status-pill.warning {
  background: #ffe2d8;
}

.income-plan-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.payoff-plan-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.income-plan-stats > div,
.payoff-plan-stats > div,
.payoff-mini-grid > div {
  padding: 11px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: #fff;
}

.income-plan-stats span,
.payoff-plan-stats span,
.payoff-mini-grid span,
.income-bucket-grid span {
  display: block;
  color: #4f555c;
  font-size: 0.72rem;
}

.income-plan-stats strong,
.payoff-plan-stats strong,
.payoff-account-row strong,
.payoff-mini-grid strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 400;
}

.payoff-plan-stats > div.complete {
  border-color: rgba(20, 121, 91, 0.18);
  background: #edf8f4;
}

.payoff-plan-stats > div.warning {
  border-color: rgba(221, 75, 47, 0.2);
  background: #fff3ef;
}

.payoff-account-list {
  display: grid;
  gap: 8px;
}

.payoff-account-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: #fff;
}

.payoff-account-row span {
  display: block;
  color: var(--ink);
  font-size: 0.84rem;
}

.payoff-account-row small {
  display: block;
  margin-top: 3px;
  color: #4f555c;
  font-size: 0.72rem;
}

.payoff-account-row strong {
  text-align: right;
}

.payoff-strategy-card p {
  margin: 0;
  color: #4f555c;
  font-size: 0.82rem;
  line-height: 1.45;
}

.payoff-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.income-lifecycle {
  display: grid;
  gap: 8px;
}

.income-lifecycle-labels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  color: #4f555c;
  font-size: 0.74rem;
}

.income-lifecycle-labels span:nth-child(2) {
  text-align: center;
}

.income-lifecycle-labels span:last-child {
  text-align: right;
}

.income-lifecycle-bar {
  display: flex;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5e8ec;
}

.income-lifecycle-bar i,
.income-lifecycle-bar b {
  display: block;
  height: 100%;
}

.income-lifecycle-bar i {
  background: #d6dadf;
}

.income-lifecycle-bar b {
  background: linear-gradient(90deg, var(--green), var(--amber));
}

.income-bucket-card {
  display: grid;
  gap: 14px;
}

.ltc-needs-card {
  display: grid;
  gap: 14px;
}

.ltc-header-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.ltc-toggle {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: 999px;
  background: #edf8f4;
  color: var(--green);
  padding: 5px 10px;
  font-size: 0.72rem;
}

.ltc-toggle input {
  accent-color: var(--green);
}

.ltc-philosophy {
  margin: 0;
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: 8px;
  background: #edf8f4;
  color: #2d333a;
  padding: 11px 12px;
  font-size: 0.8rem;
  line-height: 1.5;
}

.ltc-status-note {
  margin: 0;
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: 8px;
  background: #edf8f4;
  color: #245b49;
  padding: 10px 12px;
  font-size: 0.78rem;
  line-height: 1.4;
}

.ltc-status-note.warning {
  border-color: rgba(221, 75, 47, 0.18);
  background: #fff3ef;
  color: #8c271c;
}

.ltc-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.ltc-control-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 160px;
  gap: 10px;
}

.ltc-shock-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);
  gap: 10px;
}

.ltc-summary-grid > div,
.ltc-start-field,
.ltc-stage-row,
.ltc-shock-detail > div {
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: #fff;
}

.ltc-summary-grid > div,
.ltc-shock-detail > div {
  padding: 10px;
}

.ltc-summary-grid span,
.ltc-start-field span,
.ltc-stage-row label,
.ltc-shock-detail span {
  color: #4f555c;
  font-size: 0.72rem;
}

.ltc-summary-grid strong,
.ltc-start-field strong,
.ltc-stage-row strong,
.ltc-shock-detail strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 400;
}

.ltc-summary-grid small,
.ltc-stage-row small,
.ltc-shock-detail small {
  display: block;
  margin-top: 3px;
  color: #4f555c;
  font-size: 0.72rem;
  line-height: 1.35;
}

.ltc-start-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 10px;
  align-items: center;
  padding: 10px;
}

.ltc-control-grid .ltc-start-field {
  grid-template-columns: 1fr;
  align-content: start;
}

.ltc-start-field input,
.ltc-start-field select,
.ltc-stage-row input {
  width: 100%;
  min-height: 34px;
  border: 1px solid #d8dce1;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px;
  font-weight: 400;
}

.ltc-stage-list {
  display: grid;
  gap: 8px;
}

.ltc-stage-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px 76px 94px 110px;
  gap: 10px;
  align-items: center;
  padding: 10px;
}

.ltc-stage-row > div > span {
  display: block;
  color: var(--ink);
  font-size: 0.84rem;
}

.ltc-stage-row label {
  display: grid;
  gap: 5px;
}

.ltc-stage-row strong {
  text-align: right;
}

.withdrawal-strategy-card {
  display: grid;
  gap: 14px;
}

.strategy-selector {
  display: grid;
  gap: 6px;
  min-width: 250px;
}

.goal-tool-header .strategy-selector span {
  color: #4f555c;
  font-size: 0.72rem;
  letter-spacing: 0;
  text-transform: none;
}

.strategy-selector select {
  min-height: 38px;
  border: 1px solid rgba(35, 32, 29, 0.14);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  padding: 0 34px 0 10px;
}

.withdrawal-strategy-summary {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.4fr);
  gap: 10px;
}

.withdrawal-strategy-summary > div,
.withdrawal-bucket-row,
.withdrawal-account-row {
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: #fff;
}

.withdrawal-strategy-summary > div {
  padding: 10px;
}

.withdrawal-strategy-summary span,
.withdrawal-account-heading span,
.withdrawal-bucket-row span {
  color: #4f555c;
  font-size: 0.72rem;
}

.withdrawal-strategy-summary strong,
.withdrawal-bucket-row strong,
.withdrawal-bucket-row em,
.withdrawal-account-row strong {
  display: block;
  color: var(--ink);
  font-size: 0.88rem;
  font-style: normal;
  font-weight: 400;
}

.withdrawal-strategy-summary strong {
  margin-top: 5px;
  line-height: 1.35;
}

.withdrawal-strategy-summary small {
  display: block;
  margin-top: 5px;
  color: #4f555c;
  font-size: 0.72rem;
  line-height: 1.35;
}

.withdrawal-bucket-list,
.withdrawal-account-list {
  display: grid;
  gap: 8px;
}

.withdrawal-bucket-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 120px 42px;
  gap: 10px;
  align-items: center;
  padding: 10px;
}

.withdrawal-bucket-row span {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--ink);
  font-size: 0.82rem;
}

.withdrawal-bucket-row i {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.withdrawal-bucket-row small,
.withdrawal-account-heading small,
.withdrawal-account-row small,
.withdrawal-shortfall {
  color: #4f555c;
  font-size: 0.74rem;
  line-height: 1.35;
}

.withdrawal-bucket-row strong,
.withdrawal-bucket-row em,
.withdrawal-account-row strong {
  text-align: right;
}

.withdrawal-account-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  padding-top: 2px;
}

.withdrawal-account-heading span {
  color: var(--ink);
  font-size: 0.82rem;
}

.withdrawal-account-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 10px;
  align-items: center;
  padding: 10px;
}

.withdrawal-account-row span {
  display: block;
  color: var(--ink);
  font-size: 0.84rem;
}

.withdrawal-account-row small {
  display: block;
  margin-top: 3px;
}

.withdrawal-shortfall {
  margin: 2px 0 0;
  border: 1px solid rgba(221, 75, 47, 0.18);
  border-radius: 8px;
  background: #fff3ef;
  padding: 9px 10px;
}

.income-bucket-strip {
  display: flex;
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5e8ec;
}

.income-bucket-strip i {
  display: block;
  min-width: 4px;
  height: 100%;
}

.income-bucket-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.income-bucket-grid > div {
  padding: 10px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: #fff;
}

.income-bucket-grid span {
  display: flex;
  gap: 8px;
  align-items: center;
}

.income-bucket-grid i {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.income-bucket-grid strong {
  margin-top: 5px;
  font-size: 0.92rem;
}

.retirement-tax-bucket-card {
  display: grid;
  gap: 18px;
  background: #fff;
}

.retirement-tax-bucket-card .goal-tool-header small {
  color: #4f555c;
  font-size: 0.76rem;
}

.tax-bucket-compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.tax-bucket-panel {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: #fff;
}

.tax-bucket-panel-heading {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.tax-bucket-panel-heading span {
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 400;
}

.tax-bucket-panel-heading small {
  color: #69717c;
  font-size: 0.74rem;
  text-align: right;
}

.tax-bucket-layout {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
}

.tax-bucket-panel .tax-bucket-layout {
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 16px;
}

.tax-bucket-pie {
  width: 170px;
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(closest-side, #fff 60%, transparent 61%),
    conic-gradient(var(--bucket-gradient));
  box-shadow: inset 0 0 0 1px rgba(35, 32, 29, 0.06);
}

.tax-bucket-panel .tax-bucket-pie {
  width: 132px;
}

.tax-bucket-legend {
  display: grid;
  gap: 8px;
}

.tax-bucket-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 56px 110px;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.72);
}

.tax-bucket-row span {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
  color: var(--ink);
  font-size: 0.84rem;
}

.tax-bucket-row i {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.tax-bucket-row strong,
.tax-bucket-row small {
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 400;
  text-align: right;
}

.goal-analysis-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.analysis-card {
  display: grid;
  gap: 18px;
  min-height: 190px;
}

.donut-row {
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

.planner-donut {
  width: 126px;
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(closest-side, #fff 60%, transparent 61%),
    conic-gradient(var(--green) 0 100%);
}

.planner-donut.tax-donut {
  background:
    radial-gradient(closest-side, #fff 60%, transparent 61%),
    conic-gradient(#ffb35c 0 100%);
}

.donut-row span,
.donut-row small {
  display: block;
}

.donut-row small {
  margin-top: 5px;
  color: #4f555c;
}

.goal-assignment-layout {
  display: grid;
  gap: 12px;
}

.goal-assignment-form {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) minmax(0, 0.8fr) auto;
  gap: 10px;
  align-items: end;
}

.goal-edit-form,
.goal-savings-assignment-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: end;
}

.goal-assignment-form label,
.goal-edit-form label,
.goal-savings-assignment-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 500;
}

.goal-assignment-form select,
.goal-assignment-form input,
.goal-edit-form select,
.goal-edit-form input,
.goal-savings-assignment-form select,
.goal-savings-assignment-form input {
  min-height: 38px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 10px;
  font-weight: 400;
}

.planner-settings-form {
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
}

.planner-assignment-form,
.goal-savings-assignment-form.planner-assignment-form {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.85fr) minmax(0, 0.8fr) auto;
}

.assignment-list {
  display: grid;
  gap: 8px;
}

.assignment-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.assignment-row strong {
  font-weight: 400;
}

.coverage-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 68px;
  padding: 12px;
  border: 1px solid rgba(35, 32, 29, 0.11);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.82);
}

.coverage-card.complete {
  border-color: rgba(20, 121, 91, 0.18);
  background: #edf8f4;
}

.coverage-card > i {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #d89a24;
  box-shadow: 0 0 0 5px rgba(216, 154, 36, 0.13);
}

.coverage-card.complete > i {
  background: var(--green);
  box-shadow: 0 0 0 5px rgba(20, 121, 91, 0.13);
}

.coverage-card span {
  display: block;
  color: var(--ink);
  font-size: 0.74rem;
  font-weight: 400;
  text-transform: uppercase;
}

.coverage-card strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-weight: 400;
}

.goal-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  color: #3d4248;
  font-size: 0.86rem;
}

.budget-row {
  grid-template-columns: 1fr 80px;
  align-items: center;
}

.budget-row .bar-track {
  grid-column: 1 / -1;
  margin-top: 0;
}

.month-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.month-strip button,
.time-grid button,
.schedule-static-control {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.schedule-static-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  color: var(--muted);
}

.schedule-static-action {
  color: var(--ink);
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.calendar-day {
  display: grid;
  place-items: center;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--muted);
}

.calendar-day.active {
  border-color: var(--ember);
  background: var(--ember-soft);
  color: var(--ink);
  font-weight: 900;
}

.time-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

textarea {
  width: 100%;
  min-height: 190px;
  padding: 14px;
  resize: vertical;
}

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

.profile-section {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.profile-security-section {
  display: grid;
  gap: 14px;
  border: 1px solid rgba(35, 32, 29, 0.1);
  border-radius: var(--radius);
  background: linear-gradient(135deg, #fff 0%, #fbfaf7 100%);
  padding: 16px;
}

.profile-security-section h2 {
  margin: 0 0 4px;
  font-size: 1.05rem;
  font-weight: 500;
}

.profile-security-section .panel-copy {
  margin: 0;
}

.profile-security-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.profile-security-item {
  display: grid;
  gap: 5px;
  min-height: 96px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
  padding: 12px;
}

.profile-security-item span {
  color: var(--muted);
  font-size: 0.76rem;
}

.profile-security-item strong {
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 500;
  line-height: 1.25;
}

.profile-security-item small {
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.profile-security-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.profile-section-header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
}

.profile-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.profile-photo-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(20, 121, 91, 0.12);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.profile-photo-preview {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 64px;
  height: 64px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: 999px;
  background: rgba(237, 248, 244, 0.82);
  color: var(--green);
  font-size: 0.92rem;
  font-weight: 500;
}

.profile-photo-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transform-origin: center;
}

.profile-photo-card span {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
}

.profile-photo-card small {
  display: block;
  margin-top: 3px;
}

.profile-photo-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.profile-photo-upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
}

.photo-focus-controls {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-top: 1px solid var(--line);
  padding-top: 4px;
}

.photo-focus-controls[hidden] {
  display: none;
}

.photo-focus-controls span {
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.photo-focus-controls div {
  display: grid;
  gap: 2px;
}

.photo-focus-controls small {
  margin: 0;
}

.photo-focus-controls label {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.78rem;
}

.photo-focus-controls input[type="range"] {
  width: 100%;
  accent-color: var(--green);
}

.spouse-relationship-toggle {
  display: inline-flex;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  padding: 4px;
}

.spouse-relationship-toggle button {
  min-height: 30px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  padding: 0 12px;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 500;
}

.spouse-relationship-toggle button.active {
  background: var(--charcoal);
  color: #fff;
}

.profile-delete-button {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(184, 38, 43, 0.18);
  border-radius: var(--radius);
  background: #fff;
  color: var(--red);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 500;
}

.profile-delete-button:hover,
.profile-delete-button.pending {
  border-color: rgba(184, 38, 43, 0.36);
  background: #fff1ef;
}

.profile-delete-confirm {
  color: var(--red);
  font-size: 0.78rem;
}

.profile-grid,
.kid-grid,
.address-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.profile-grid label,
.kid-grid label,
.address-grid label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 400;
}

.profile-grid input,
.kid-grid input,
.address-grid input {
  min-height: 42px;
  min-width: 0;
  padding: 0 12px;
  color: var(--ink);
  font-weight: 400;
}

.dob-age-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 94px;
  gap: 8px;
}

.age-output {
  display: grid;
  place-items: center;
  min-height: 42px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #edf8f4;
  color: var(--green);
  font-size: 0.82rem;
  font-weight: 400;
}

#profile .eyebrow,
#profile small,
#profile label,
#profile input {
  font-weight: 400;
}

.kids-list {
  display: grid;
  gap: 12px;
}

.kid-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.kid-card.delete-pending {
  border-color: rgba(184, 38, 43, 0.24);
  background: #fffafa;
}

.kid-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.kid-card-header span {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 500;
}

.add-row-button {
  min-height: 44px;
  border: 1px dashed rgba(200, 41, 30, 0.42);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ember);
  font-weight: 400;
  text-align: left;
  padding: 0 14px;
}

.profile-section-actions {
  display: flex;
  justify-content: flex-end;
}

.risk-tolerance-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(221, 75, 47, 0.18);
  border-radius: var(--radius);
  background: linear-gradient(180deg, #fff 0%, #fff8f4 100%);
}

.risk-tolerance-row span,
.risk-tolerance-row small {
  display: block;
}

.risk-tolerance-row span {
  color: var(--ink);
  font-size: 0.9rem;
}

.risk-tolerance-row small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
}

.advisor-access-section {
  border-color: rgba(247, 201, 72, 0.55);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.2), rgba(255, 255, 255, 0.92) 58%),
    #fffdf4;
  box-shadow: 0 12px 34px rgba(122, 83, 8, 0.08);
}

.advisor-access-section .eyebrow {
  color: #7b5a06;
}

.advisor-access-section .panel-copy {
  max-width: 460px;
  margin-top: 4px;
  color: #6f5b22;
}

.advisor-only-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(247, 201, 72, 0.62);
  border-radius: 999px;
  background: rgba(255, 248, 220, 0.9);
  color: #6e5209;
  font-size: 0.76rem;
}

.access-list {
  display: grid;
  gap: 10px;
}

.access-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 0.7fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.advisor-access-row {
  border-color: rgba(247, 201, 72, 0.42);
  background: rgba(255, 255, 255, 0.86);
}

.access-row span,
.access-row small {
  display: block;
}

.access-row span {
  font-size: 0.9rem;
}

.access-row small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.8rem;
}

.access-manage-menu {
  position: relative;
  justify-self: end;
}

.access-manage-menu summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(122, 83, 8, 0.24);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font-size: 0.86rem;
  list-style: none;
  cursor: pointer;
}

.access-manage-menu summary::-webkit-details-marker {
  display: none;
}

.access-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 30;
  display: grid;
  gap: 6px;
  min-width: 230px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}

.access-menu-panel button {
  min-height: 36px;
  border: 0;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  padding: 0 10px;
}

.access-menu-panel button:hover {
  background: #fff8dc;
}

.wide-field {
  grid-column: 1 / -1;
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.note-actions {
  justify-content: flex-end;
  margin-top: 12px;
}

.timeline-item {
  grid-template-columns: 110px 1fr;
}

.chat-window {
  display: grid;
  gap: 12px;
  max-height: 520px;
  overflow: auto;
  margin-top: 16px;
  padding: 16px;
  border-radius: var(--radius);
  background: #f5f1ea;
}

.overview-chat-window {
  flex: 1;
  min-height: 260px;
  max-height: 420px;
  margin-top: 10px;
  background:
    linear-gradient(135deg, rgba(35, 32, 29, 0.035), rgba(255, 255, 255, 0.96) 60%),
    #fbfaf7;
}

.overview-assistant-panel {
  display: flex;
  flex-direction: column;
  min-height: 420px;
  background: #fff;
}

.overview-chat-history-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 8px 22px rgba(26, 22, 18, 0.05);
}

.overview-chat-history-button:hover {
  border-color: rgba(35, 32, 29, 0.22);
  background: #fbfaf7;
}

.overview-chat-history-button svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.overview-chat-history-panel {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.overview-chat-history-panel div {
  display: grid;
  gap: 2px;
  padding: 9px 10px;
  border: 1px solid rgba(35, 32, 29, 0.06);
  border-radius: var(--radius);
  background: #fff;
}

.overview-chat-history-panel span {
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 500;
}

.overview-chat-history-panel small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.vault-layout-single {
  grid-template-columns: minmax(0, 1fr);
}

.vault-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.vault-summary-card {
  display: grid;
  gap: 6px;
  min-height: 92px;
  padding: 15px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 12px 30px rgba(26, 22, 18, 0.04);
}

.vault-summary-primary {
  background: linear-gradient(135deg, #fff7ed 0%, #fff 68%);
}

.vault-summary-latest {
  grid-column: span 2;
  background: linear-gradient(135deg, #f6faf8 0%, #fff 68%);
}

.vault-summary-card span {
  color: #4f555c;
  font-size: 0.72rem;
  text-transform: uppercase;
}

.vault-summary-card strong {
  align-self: end;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 400;
}

.vault-summary-card small {
  color: var(--muted);
  font-size: 0.78rem;
}

.vault-summary-latest strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vault-browser-panel {
  padding: 0;
  overflow: hidden;
}

.vault-browser-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 18px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #fff 0%, #fbfaf7 100%);
}

.vault-browser-heading h2,
.vault-document-heading h2 {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 400;
}

.folder-create-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin: 14px 18px 0;
}

.folder-create-row input {
  min-height: 42px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 12px;
}

.vault-folder-grid {
  display: grid;
  gap: 6px;
}

.vault-main-files-button {
  display: grid;
  gap: 3px;
  width: 100%;
  min-height: 54px;
  margin-bottom: 4px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
  text-align: left;
  box-shadow: 0 8px 18px rgba(26, 22, 18, 0.03);
}

.vault-main-files-button:hover,
.vault-main-files-button.active,
.vault-main-files-button.drag-over {
  border-color: rgba(20, 121, 91, 0.28);
  background: #edf8f4;
}

.vault-main-files-button span,
.vault-main-files-button small {
  display: block;
}

.vault-main-files-button span {
  font-size: 0.9rem;
}

.vault-main-files-button small {
  color: var(--muted);
  font-size: 0.74rem;
}

.vault-root-drop {
  display: grid;
  gap: 3px;
  min-height: 52px;
  margin-bottom: 4px;
  border: 1px dashed rgba(35, 32, 29, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.68);
  color: var(--ink);
  padding: 9px 10px;
}

.vault-root-drop span,
.vault-root-drop small {
  display: block;
}

.vault-root-drop span {
  font-size: 0.84rem;
}

.vault-root-drop small {
  color: #4f555c;
  font-size: 0.72rem;
  line-height: 1.35;
}

.vault-root-drop.drag-over {
  border-color: rgba(20, 121, 91, 0.46);
  background: #edf8f4;
}

.vault-workspace {
  display: grid;
  grid-template-columns: minmax(220px, 0.34fr) minmax(0, 1fr);
  gap: 0;
  min-height: 560px;
}

.vault-folder-panel {
  padding: 14px;
  border-right: 1px solid var(--line);
  background: #f7f4ee;
}

.vault-document-panel {
  min-width: 0;
  padding: 18px;
  background: #fff;
}

.vault-document-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 14px;
}

#vault-folder-meta {
  min-height: 24px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 999px;
  background: #f7f4ee;
  color: #4f555c;
  padding: 4px 9px;
  font-size: 0.74rem;
}

.vault-folder-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  min-height: 48px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 0 10px 0 var(--indent, 12px);
  text-align: left;
  box-shadow: 0 8px 18px rgba(26, 22, 18, 0.03);
  cursor: grab;
}

.vault-folder-row:hover,
.vault-folder-row.active,
.vault-folder-row.drag-over {
  border-color: rgba(247, 201, 72, 0.42);
  background: #fffaf0;
}

.vault-folder-row.delete-pending {
  border-color: rgba(184, 38, 43, 0.22);
  background: #fffafa;
}

.vault-folder-row.active {
  border-color: rgba(35, 32, 29, 0.16);
  background: #fff;
  box-shadow: 0 10px 22px rgba(26, 22, 18, 0.05);
}

.vault-folder-row.dragging {
  opacity: 0.48;
}

.vault-folder-row.child-folder {
  background: #fefdfb;
}

.vault-folder-row span,
.vault-folder-row small {
  display: block;
}

.vault-folder-row span {
  color: var(--ink);
}

.vault-folder-select {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
  height: 100%;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  text-align: left;
}

.vault-folder-row .folder-toggle-icon {
  display: inline-grid;
  place-items: center;
  place-content: center;
  align-self: center;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: 6px;
  background: #fff;
  color: #4f555c;
  font-size: 0.78rem;
  line-height: 1;
  padding: 0;
  text-align: center;
}

.folder-toggle-icon.empty {
  border-color: transparent;
  background: transparent;
  color: transparent;
}

.vault-folder-name {
  display: flex;
  gap: 0;
  align-items: center;
  min-width: 0;
}

.folder-marker {
  flex: 0 0 0;
  width: 0;
  height: 0;
}

.vault-folder-row small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 400;
}

.vault-folder-count {
  text-align: right;
}

.vault-folder-delete {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid rgba(184, 38, 43, 0.14);
  border-radius: 999px;
  background: #fff;
  color: var(--red);
  font-size: 0.78rem;
  line-height: 1;
}

.vault-folder-delete:hover,
.vault-folder-delete.pending {
  border-color: rgba(184, 38, 43, 0.34);
  background: #fff1ef;
}

.vault-folder-delete-confirm {
  grid-column: 1 / -1;
  color: var(--red);
  font-size: 0.75rem;
}

.document-table {
  display: grid;
  gap: 8px;
}

.document-table .doc-row {
  grid-template-columns: minmax(0, 1fr) 120px auto;
  gap: 12px;
  min-height: 62px;
  border-color: rgba(35, 32, 29, 0.08);
  box-shadow: 0 8px 18px rgba(26, 22, 18, 0.03);
}

.doc-file-cell {
  display: flex;
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.doc-file-cell strong {
  display: block;
  overflow: hidden;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.doc-type-badge {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  min-height: 34px;
  border-radius: 7px;
  background: #23201d;
  color: #fff;
  font-size: 0.66rem;
  font-style: normal;
}


.doc-row[draggable="true"] {
  cursor: grab;
}

.doc-row[draggable="true"]:active {
  cursor: grabbing;
}

.chat-message {
  max-width: 78%;
  padding: 12px;
  border-radius: var(--radius);
  background: #fff;
}

.chat-message p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.55;
}

.chat-message.user {
  justify-self: end;
  background: var(--charcoal);
  color: #fff;
}

.chat-message.user p {
  color: rgba(255, 255, 255, 0.74);
}

.chat-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 14px;
}

.chat-form input {
  min-width: 0;
  height: 44px;
  padding: 0 14px;
}

.control-list label {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 38px;
}

.control-list input {
  accent-color: var(--ember);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(21, 21, 21, 0.42);
}

.feedback-modal {
  width: min(560px, 100%);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 26px 80px rgba(12, 10, 8, 0.24);
  padding: 20px;
}

.feedback-form {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.feedback-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 800;
}

.feedback-form input,
.feedback-form select,
.feedback-form textarea {
  color: var(--ink);
  font-weight: 500;
}

.feedback-form input:not([type="radio"]):not([type="checkbox"]) {
  min-height: 42px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 0 12px;
  font: inherit;
}

.client-invite-modal {
  width: min(720px, 100%);
}

.client-referral-modal,
.advisor-referral-modal,
.roadmap-modal,
.security-action-modal {
  width: min(680px, 100%);
}

.folder-delete-modal {
  width: min(640px, 100%);
}

.photo-adjust-modal {
  width: min(720px, 100%);
}

.photo-adjust-body {
  display: grid;
  justify-items: center;
  gap: 14px;
  margin-top: 18px;
}

.photo-adjust-frame {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: min(380px, 76vw);
  aspect-ratio: 1;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: 999px;
  background: #f7f5ef;
  box-shadow: 0 22px 60px rgba(26, 22, 18, 0.16);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.photo-adjust-frame.dragging {
  cursor: grabbing;
}

.photo-adjust-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  transform-origin: center;
  will-change: transform;
  user-select: none;
}

.photo-adjust-actions {
  grid-template-columns: repeat(3, minmax(0, auto));
}

.security-action-body {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.folder-delete-body {
  display: grid;
  gap: 14px;
}

.folder-delete-body p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.folder-delete-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.folder-delete-options .danger-button {
  border-color: rgba(184, 38, 43, 0.24);
  background: #fff1ef;
  color: var(--red);
}

.security-action-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 12px;
}

.security-action-row strong,
.security-action-row span {
  display: block;
}

.security-action-row strong {
  color: var(--ink);
  font-weight: 500;
}

.security-action-row span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.client-referral-form label,
.advisor-referral-form label {
  font-weight: 400;
}

.roadmap-list {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}

.roadmap-list article {
  display: grid;
  gap: 5px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(135deg, #fffaf0 0%, #fff 76%);
}

.roadmap-list span {
  color: #986d0e;
  font-size: 0.72rem;
  text-transform: uppercase;
}

.roadmap-list strong {
  color: var(--ink);
  font-weight: 500;
}

.roadmap-list p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.client-invite-form label {
  font-weight: 400;
}

.client-invite-mode-grid,
.client-invite-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.client-invite-mode-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 10px;
  min-height: 108px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  font-weight: 400;
}

.client-invite-mode-card:has(input:checked) {
  border-color: rgba(200, 41, 30, 0.26);
  background: linear-gradient(135deg, #fff8ed, #fff);
}

.client-invite-mode-card strong {
  display: block;
  margin-bottom: 5px;
  color: var(--ink);
  font-weight: 500;
}

.client-invite-mode-card small,
.client-invite-note {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.client-invite-email {
  grid-column: 1 / -1;
}

.risk-modal {
  width: min(680px, 100%);
}

.risk-form {
  max-height: min(72vh, 720px);
  overflow: auto;
  padding-right: 4px;
}

.risk-form-intro {
  margin: 0;
  color: #4f555c;
  font-size: 0.88rem;
  line-height: 1.5;
}

.risk-question {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.risk-question > span {
  color: var(--ink);
  font-size: 0.9rem;
}

.risk-question label {
  display: flex;
  gap: 8px;
  align-items: center;
  color: #4f555c;
  font-size: 0.84rem;
  font-weight: 400;
}

.risk-question input {
  accent-color: var(--ember);
}

.risk-advisor-notes {
  font-weight: 400;
}

.risk-advisor-notes select,
.risk-advisor-notes textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-weight: 400;
}

.risk-advisor-notes select {
  min-height: 42px;
  padding: 0 12px;
}

.risk-advisor-notes textarea {
  min-height: 88px;
  padding: 12px;
  resize: vertical;
}

.platform-console {
  display: grid;
  gap: 16px;
}

.platform-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.platform-metric-card {
  min-height: 132px;
}

.data-dashboard {
  display: grid;
  gap: 16px;
}

.data-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.data-metric-card {
  min-height: 126px;
  background: #fff;
}

.data-metric-card.green {
  border-color: rgba(20, 121, 91, 0.22);
  box-shadow: 0 18px 44px rgba(20, 121, 91, 0.08);
}

.data-metric-card.gold {
  border-color: rgba(247, 201, 72, 0.36);
  box-shadow: 0 18px 44px rgba(247, 201, 72, 0.08);
}

.data-metric-card.red {
  border-color: rgba(184, 38, 43, 0.22);
  box-shadow: 0 18px 44px rgba(184, 38, 43, 0.08);
}

.data-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.8fr);
  gap: 16px;
  align-items: start;
}

.data-card {
  display: grid;
  gap: 16px;
  background: #fff;
}

.data-quality-list,
.data-event-list,
.data-source-grid,
.data-boundary-grid {
  display: grid;
  gap: 10px;
}

.data-source-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.data-quality-row,
.data-source-card,
.data-event-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.data-quality-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
}

.data-quality-row h3,
.data-source-card h3,
.data-event-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 500;
}

.data-quality-row p,
.data-source-card p,
.data-event-card p,
.data-governance-card p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.data-pill,
.data-source-card span,
.data-event-card > span,
.data-event-card time {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 28px;
  border-radius: 999px;
  background: #f4f1ec;
  color: var(--ink);
  padding: 0 10px;
  font-size: 0.78rem;
  font-weight: 400;
  white-space: nowrap;
}

.data-source-card {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.data-event-card {
  display: grid;
  grid-template-columns: minmax(120px, 0.28fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px;
}

.data-governance-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr);
  gap: 16px;
  align-items: center;
  background: #fff;
}

.data-boundary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.data-boundary-grid span {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  color: var(--ink);
  padding: 12px;
  font-size: 0.88rem;
}

.firm-intelligence-dashboard .data-metric-card {
  min-height: 138px;
}

.firm-intelligence-dashboard .data-metric-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.firm-data-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.firm-data-mini-select {
  width: auto;
  min-height: 34px;
  border-radius: 999px;
  padding: 0 34px 0 12px;
  background-color: #fff;
  color: var(--ink);
  font-size: 0.82rem;
}

.firm-data-overview-layout {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.firm-intelligence-dashboard .firm-data-secondary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.firm-data-compact-card {
  align-content: start;
  min-height: 138px;
}

.firm-data-compact-card small {
  margin-top: 2px;
  color: var(--muted);
}

.firm-data-structure,
.firm-data-rank-list,
.firm-data-task-grid {
  display: grid;
  gap: 10px;
}

.firm-data-bar-row {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.firm-data-bar-row > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.firm-data-bar-row strong,
.firm-data-task-grid h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 500;
}

.firm-data-bar-row span {
  color: var(--muted);
  font-size: 0.86rem;
}

.firm-data-bar-track {
  width: 100%;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #eee8df;
}

.firm-data-bar-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(20, 121, 91, 0.74), rgba(20, 121, 91, 0.42));
}

.firm-data-bar-row.single .firm-data-bar-track span {
  background: linear-gradient(90deg, rgba(247, 201, 72, 0.72), rgba(247, 201, 72, 0.38));
}

.firm-data-streak-card {
  display: grid;
  gap: 8px;
  min-height: 150px;
  align-content: center;
  border: 1px solid rgba(184, 38, 43, 0.2);
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(255, 245, 242, 0.9), #fff);
  padding: 18px;
}

.firm-data-streak-card span,
.firm-data-rank-row p {
  color: var(--muted);
  font-size: 0.84rem;
}

.firm-data-streak-card strong {
  color: var(--ink);
  font-size: 1.35rem;
  font-weight: 500;
}

.firm-data-streak-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.firm-data-rank-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.firm-data-rank-row > span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #f4f1ec;
  color: var(--ink);
  font-size: 0.82rem;
}

.firm-data-rank-row h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 500;
}

.firm-data-rank-row p {
  margin: 3px 0 0;
}

.firm-data-rank-row strong {
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 500;
  white-space: nowrap;
}

.firm-data-task-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.data-empty-state {
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  padding: 16px;
}

.platform-data-table {
  display: grid;
  gap: 8px;
  max-height: 430px;
  overflow: auto;
}

.platform-data-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.1fr) repeat(5, minmax(110px, 0.45fr));
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
  color: var(--ink);
  font-size: 0.88rem;
}

.platform-data-row.header {
  position: sticky;
  top: 0;
  z-index: 1;
  border-style: dashed;
  background: #fbfaf7;
  color: var(--muted);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.platform-data-row strong,
.platform-data-row small {
  display: block;
}

.platform-data-row strong {
  font-weight: 500;
}

.platform-data-row small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
}

.platform-owner-data-dashboard {
  gap: 18px;
}

.platform-owner-metric-grid .data-metric-card strong {
  font-size: 1.42rem;
  line-height: 1.2;
}

.platform-data-section-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.95fr) repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.platform-data-section-grid > .data-card {
  align-content: start;
  min-height: 100%;
}

.platform-summary-card,
.platform-promotions-card {
  grid-column: span 2;
}

.platform-breakdown-list {
  display: grid;
  gap: 10px;
}

.platform-breakdown-row {
  display: grid;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.platform-breakdown-row > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.platform-breakdown-row span,
.platform-insight-grid span,
.platform-category-pill span {
  color: var(--muted);
  font-size: 0.82rem;
}

.platform-breakdown-row strong,
.platform-insight-grid strong,
.platform-category-pill strong {
  color: var(--ink);
  font-weight: 500;
}

.platform-breakdown-row small {
  color: var(--muted);
  font-size: 0.78rem;
}

.platform-breakdown-track {
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #ede7df;
}

.platform-breakdown-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(20, 121, 91, 0.82), rgba(247, 201, 72, 0.64));
}

.platform-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.platform-insight-grid article,
.platform-category-pill {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.platform-insight-grid strong {
  font-size: 1.28rem;
}

.platform-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.platform-category-pill {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.platform-owner-table {
  max-height: 540px;
}

.platform-data-row.platform-business-row {
  grid-template-columns:
    minmax(230px, 1.35fr)
    minmax(90px, 0.55fr)
    minmax(145px, 0.8fr)
    minmax(110px, 0.62fr)
    minmax(105px, 0.62fr)
    minmax(105px, 0.62fr)
    minmax(70px, 0.42fr)
    minmax(90px, 0.5fr)
    minmax(90px, 0.5fr);
}

.platform-data-row.platform-business-row span {
  min-width: 0;
}

.platform-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.25fr);
  gap: 16px;
  align-items: start;
}

.platform-add-firm-panel,
.platform-directory-panel,
.platform-firm-detail-panel {
  display: grid;
  gap: 16px;
}

.platform-directory-panel {
  grid-column: 1 / -1;
}

.platform-firm-detail-panel {
  grid-column: 2;
  grid-row: 1;
}

.platform-add-firm-form,
.platform-checklist {
  display: grid;
  gap: 12px;
}

.platform-roadmap-panel {
  display: grid;
  gap: 18px;
}

.platform-roadmap-add-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) auto;
  align-items: end;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(20, 121, 91, 0.06), #fff 72%);
}

.platform-roadmap-description-field {
  grid-column: 1 / -1;
}

.platform-roadmap-add-form textarea,
.platform-roadmap-editor-card textarea {
  min-height: 86px;
  padding-block: 10px;
  resize: vertical;
}

.platform-roadmap-editor-list {
  display: grid;
  gap: 12px;
}

.platform-roadmap-editor-card {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 14px 36px rgba(26, 22, 18, 0.04);
}

.platform-roadmap-editor-card.hidden-item {
  background: #fbfaf7;
  opacity: 0.82;
}

.platform-roadmap-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
}

.platform-roadmap-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.platform-roadmap-card-actions .secondary-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.82rem;
}

.platform-roadmap-card-actions .secondary-button:disabled {
  cursor: default;
  opacity: 0.45;
}

.platform-roadmap-card-head h3 {
  margin: 4px 0 0;
  font-size: 1rem;
  font-weight: 500;
}

.platform-roadmap-card-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(150px, 220px);
  gap: 12px;
}

.platform-roadmap-visible-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 400;
}

.platform-roadmap-visible-toggle input {
  width: 16px !important;
  min-height: 16px !important;
  accent-color: var(--green);
}

.platform-add-firm-form label,
.platform-detail-grid label,
.platform-roadmap-add-form label,
.platform-roadmap-card-grid label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.platform-add-firm-form input,
.platform-add-firm-form select,
.platform-detail-grid input,
.platform-detail-grid select,
.platform-directory-toolbar input,
.platform-directory-toolbar select,
.platform-roadmap-add-form input,
.platform-roadmap-add-form select,
.platform-roadmap-add-form textarea,
.platform-roadmap-card-grid input,
.platform-roadmap-card-grid select,
.platform-roadmap-card-grid textarea {
  min-height: 40px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
  font-weight: 400;
}

.platform-addon-toggle {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink) !important;
}

.platform-addon-toggle input {
  width: 16px !important;
  min-height: 16px !important;
  margin-top: 2px;
  accent-color: var(--green);
}

.platform-addon-toggle span {
  display: grid;
  gap: 3px;
  font-size: 0.9rem;
  line-height: 1.25;
}

.platform-addon-toggle small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.platform-addon-toggle-detail {
  min-height: 76px;
}

.platform-form-grid,
.platform-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.platform-readonly-field {
  display: grid;
  gap: 5px;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  color: var(--muted);
  padding: 10px 12px;
  font-size: 0.82rem;
}

.platform-readonly-field strong {
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 500;
}

.platform-readonly-field small {
  color: var(--muted);
  font-size: 0.76rem;
}

.platform-invite-preview,
.platform-invite-notice {
  display: grid;
  gap: 5px;
  border: 1px solid rgba(241, 165, 31, 0.2);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.12), rgba(255, 255, 255, 0.96) 70%),
    #fff;
  padding: 12px;
}

.platform-invite-preview span {
  color: var(--ink);
  font-size: 0.82rem;
}

.platform-invite-preview p,
.platform-invite-notice {
  margin: 0;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.45;
}

.platform-invite-notice {
  border-color: rgba(20, 121, 91, 0.22);
  background: #edf8f4;
  color: var(--green);
}

.platform-directory-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  gap: 10px;
}

.platform-firm-list {
  display: grid;
  gap: 10px;
  max-height: 430px;
  overflow: auto;
  padding-right: 4px;
}

.platform-firm-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  min-height: 86px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  text-align: left;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.platform-firm-row:hover,
.platform-firm-row.active {
  border-color: rgba(241, 165, 31, 0.45);
  box-shadow: 0 10px 28px rgba(26, 22, 18, 0.08);
  transform: translateY(-1px);
}

.platform-firm-row span,
.platform-firm-main {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.platform-firm-summary {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  max-width: 620px;
}

.platform-firm-summary small {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8f5ef;
  white-space: nowrap;
}

.platform-firm-row strong {
  color: var(--ink);
  font-weight: 500;
}

.platform-firm-row small {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.platform-status-pill {
  display: inline-flex;
  width: max-content;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f3f1ef;
  color: var(--muted);
  font-size: 0.76rem;
  font-style: normal;
}

.platform-billing-pill {
  display: inline-flex;
  width: max-content;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f3f1ef;
  color: var(--muted);
  font-size: 0.76rem;
  font-style: normal;
  white-space: nowrap;
}

.platform-billing-pill[class*="free-trial"] {
  background: #fff8dc;
  color: #7b5a06;
}

.platform-billing-pill[class*="unlimited-access-free"] {
  background: #edf8f4;
  color: var(--green);
}

.platform-billing-pill[class*="paid-access-monthly"],
.platform-billing-pill[class*="paid-access-yearly"] {
  background: #eef2ff;
  color: #274690;
}

.platform-status-pill.active {
  background: #e8f7f1;
  color: var(--green);
}

.platform-status-pill.free-trial {
  background: #fff8dc;
  color: #7b5a06;
}

.platform-status-pill.inactive {
  background: #fff0ec;
  color: var(--ember);
}

.platform-status-pill.implementation {
  background: #fff8dc;
  color: #7b5a06;
}

.platform-status-pill.trial {
  background: #edf2ff;
  color: #274690;
}

.platform-status-pill.paused {
  background: #fff0ec;
  color: var(--ember);
}

.platform-support-access-card,
.software-owner-access-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
  border: 1px solid rgba(241, 165, 31, 0.28);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.14), rgba(255, 255, 255, 0.96) 72%),
    #fff;
}

.platform-support-access-card h3,
.software-owner-access-panel h2 {
  margin: 2px 0 4px;
  font-size: 1rem;
  font-weight: 500;
}

.platform-support-access-card p,
.software-owner-access-panel p {
  margin: 0;
  max-width: 620px;
}

.software-owner-access-panel {
  border-color: rgba(21, 21, 21, 0.14);
  background:
    linear-gradient(135deg, rgba(21, 21, 21, 0.08), rgba(255, 255, 255, 0.98) 70%),
    #fff;
}

.platform-setup-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
}

.platform-checklist {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.platform-checklist label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 400;
}

.platform-checklist label.complete {
  border-color: rgba(20, 121, 91, 0.28);
  background: #edf8f4;
}

.platform-checklist input {
  accent-color: var(--green);
}

.platform-open-onboarding-button {
  justify-self: start;
}

.platform-owner-onboarding-panel {
  display: grid;
  gap: 18px;
  overflow: hidden;
  border-color: rgba(20, 121, 91, 0.18);
  background:
    radial-gradient(circle at top left, rgba(247, 201, 72, 0.16), transparent 34%),
    linear-gradient(135deg, rgba(20, 121, 91, 0.1), rgba(255, 255, 255, 0.96) 42%),
    #fff;
}

.platform-owner-onboarding-hero {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.platform-owner-onboarding-hero h2 {
  margin: 4px 0 8px;
  font-size: clamp(1.55rem, 2vw, 2.2rem);
  letter-spacing: 0;
}

.platform-owner-onboarding-hero p {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.platform-owner-onboarding-body {
  display: grid;
  grid-template-columns: minmax(220px, 0.32fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.platform-owner-steps,
.platform-owner-onboarding-form,
.platform-onboarding-section {
  display: grid;
  gap: 12px;
}

.platform-owner-steps {
  position: sticky;
  top: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
  padding: 12px;
}

.platform-owner-steps-header {
  display: grid;
  gap: 3px;
  padding: 4px 4px 10px;
  border-bottom: 1px solid var(--line);
}

.platform-owner-steps-header strong {
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 500;
}

.platform-owner-steps-header small {
  color: var(--muted);
  font-size: 0.76rem;
}

.platform-owner-steps span {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 42px;
  color: var(--muted);
  font-size: 0.86rem;
}

.platform-owner-steps i {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-style: normal;
  font-size: 0.78rem;
}

.platform-owner-steps span.complete {
  color: var(--ink);
}

.platform-owner-steps span.complete i {
  border-color: rgba(20, 121, 91, 0.24);
  background: #edf8f4;
  color: var(--green);
}

.platform-onboarding-section {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.88);
  padding: 16px;
}

.platform-onboarding-section h3 {
  margin: 3px 0 4px;
  font-size: 1rem;
  font-weight: 400;
}

.platform-onboarding-section p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.platform-owner-grid {
  display: grid;
  gap: 12px;
}

.platform-owner-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.platform-owner-onboarding-form label,
.firm-branding-form label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.platform-owner-onboarding-form input,
.platform-owner-onboarding-form select,
.firm-branding-form input {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
  font-weight: 400;
}

.platform-logo-upload-card {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  margin-top: 2px;
}

.platform-logo-preview,
.firm-brand-preview-logo {
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, #1f1c19, #3a3025),
    #23201d;
  color: #fff;
  font-size: 1.3rem;
  letter-spacing: 0;
  box-shadow: 0 18px 40px rgba(26, 22, 18, 0.14);
}

.platform-logo-preview img,
.firm-brand-preview-logo img {
  width: 100%;
  max-width: 78px;
  max-height: 72px;
  object-fit: contain;
}

.platform-logo-upload-card small,
.firm-branding-form small {
  color: var(--muted);
  font-size: 0.76rem;
}

.platform-client-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.platform-client-path-grid label {
  min-height: 96px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
  cursor: pointer;
}

.platform-client-path-grid label.selected {
  border-color: rgba(20, 121, 91, 0.28);
  background: #edf8f4;
}

.platform-client-path-grid input {
  width: auto;
  min-height: auto;
  accent-color: var(--green);
}

.platform-client-path-grid span,
.platform-client-path-grid small {
  display: block;
}

.platform-client-path-grid span {
  color: var(--ink);
  font-size: 0.86rem;
}

.platform-client-path-grid small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.platform-team-detail-card {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #fbfdfc;
  padding: 14px;
}

.platform-team-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.platform-team-choice-grid label {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
  cursor: pointer;
}

.platform-team-choice-grid label.selected {
  border-color: rgba(20, 121, 91, 0.28);
  background: #edf8f4;
}

.platform-team-choice-grid input {
  width: auto;
  min-height: auto;
  margin-top: 2px;
  accent-color: var(--green);
}

.platform-team-choice-grid span,
.platform-team-choice-grid small {
  display: block;
}

.platform-team-choice-grid span {
  color: var(--ink);
  font-size: 0.86rem;
}

.platform-team-choice-grid small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.platform-team-draft-list {
  display: grid;
  gap: 10px;
}

.platform-team-draft-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.55fr) repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 12px;
}

.platform-team-draft-row strong {
  align-self: center;
  font-weight: 500;
}

.platform-team-later-note {
  display: grid;
  gap: 3px;
  border: 1px dashed rgba(154, 106, 0, 0.28);
  border-radius: var(--radius);
  background: #fffdf7;
  padding: 12px;
  color: var(--muted);
  font-size: 0.82rem;
}

.platform-team-later-note strong {
  color: var(--ink);
  font-weight: 500;
}

.platform-crm-source-field {
  margin-top: 2px;
}

.platform-crm-source-card {
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #fbfdfc;
  padding: 12px;
}

.platform-owner-onboarding-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.firm-branding-panel {
  display: grid;
  gap: 14px;
}

.firm-branding-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.firm-branding-summary span {
  display: grid;
  gap: 3px;
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  color: var(--muted);
  font-size: 0.76rem;
  padding: 10px 12px;
}

.firm-branding-summary strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.firm-branding-form {
  display: grid;
  grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.firm-brand-preview {
  display: flex;
  gap: 14px;
  align-items: center;
  min-height: 122px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.firm-brand-preview strong,
.firm-brand-preview small {
  display: block;
}

.firm-brand-preview strong {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 400;
}

.firm-brand-preview small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
}

.firm-brand-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 12px;
  align-items: end;
}

.firm-brand-logo-field {
  grid-column: 1 / -2;
}

.firm-brand-building-toggle {
  grid-column: 1 / -2;
  display: flex !important;
  grid-template-columns: none !important;
  align-items: flex-start;
  gap: 10px !important;
  min-height: 52px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #edf8f4;
  padding: 10px 12px;
}

.firm-brand-building-toggle input {
  width: 17px;
  min-height: 17px;
  margin-top: 2px;
  accent-color: var(--green);
}

.firm-brand-building-toggle span,
.firm-brand-building-toggle small {
  display: block;
}

.firm-brand-building-toggle span {
  color: var(--ink);
  font-size: 0.86rem;
}

.firm-brand-building-toggle small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.brand-building-panel {
  display: grid;
  gap: 16px;
  background:
    radial-gradient(circle at top right, rgba(247, 201, 72, 0.13), transparent 34%),
    #fff;
}

.brand-building-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.brand-building-summary-grid article {
  display: grid;
  gap: 5px;
  min-height: 98px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 12px;
}

.brand-building-summary-grid span,
.brand-building-summary-grid small {
  color: var(--muted);
  font-size: 0.78rem;
}

.brand-building-summary-grid strong {
  color: var(--ink);
  font-size: 1.2rem;
  font-weight: 500;
}

.brand-summary-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.brand-summary-card-top span {
  max-width: 260px;
  line-height: 1.35;
}

.brand-analytics-period-select {
  width: auto;
  min-width: 108px;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  padding: 0 28px 0 12px;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 400;
}

.brand-building-layout {
  display: grid;
  grid-template-columns: minmax(290px, 0.36fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.brand-promotion-form,
.brand-promotion-list,
.brand-promotion-row,
.brand-promotion-edit-grid {
  display: grid;
  gap: 12px;
}

.brand-promotion-form {
  position: sticky;
  top: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(247, 201, 72, 0.12), rgba(255, 255, 255, 0.96) 68%),
    #fff;
  padding: 14px;
}

.brand-promotion-form label,
.brand-promotion-row label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.82rem;
}

.brand-promotion-form input,
.brand-promotion-form select,
.brand-promotion-form textarea,
.brand-promotion-row input,
.brand-promotion-row select,
.brand-promotion-row textarea {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
  font-weight: 400;
}

.brand-promotion-form textarea,
.brand-promotion-row textarea {
  min-height: 94px;
  padding-top: 10px;
  resize: vertical;
}

.brand-promotion-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 10px;
}

.brand-promotion-toggle {
  display: flex !important;
  align-items: center;
  gap: 9px !important;
}

.brand-promotion-toggle input,
.brand-promotion-row-header input {
  width: 16px;
  min-height: 16px;
  accent-color: var(--green);
}

.brand-promotion-row {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.brand-promotion-row.live {
  border-color: rgba(20, 121, 91, 0.22);
  background:
    linear-gradient(135deg, rgba(237, 248, 244, 0.84), rgba(255, 255, 255, 0.96) 60%),
    #fff;
}

.brand-promotion-row-header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.brand-promotion-row-header label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
}

.brand-promotion-edit-grid {
  grid-template-columns: minmax(0, 1.2fr) minmax(120px, 0.4fr) minmax(120px, 0.4fr) minmax(0, 1fr);
}

.brand-promotion-description-field {
  grid-column: 1 / -1;
}

.brand-promotion-analytics-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.brand-analytics-card {
  position: relative;
  display: grid;
  gap: 3px;
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 9px 10px;
  color: var(--muted);
  font-size: 0.78rem;
}

.brand-analytics-card strong {
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 500;
}

.brand-analytics-card em {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: calc(100% + 8px);
  z-index: 8;
  display: block;
  max-height: 140px;
  overflow: auto;
  border: 1px solid rgba(35, 32, 29, 0.12);
  border-radius: var(--radius);
  background: #23201d;
  color: #fff;
  padding: 9px 10px;
  font-size: 0.76rem;
  font-style: normal;
  line-height: 1.4;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 0.14s ease, transform 0.14s ease;
  box-shadow: 0 16px 36px rgba(26, 22, 18, 0.18);
}

.brand-analytics-card:hover em,
.brand-analytics-card:focus-visible em {
  opacity: 1;
  transform: translateY(0);
}

.brand-promotion-delete {
  width: 34px;
  height: 34px;
  color: var(--red);
}

.brand-building-disabled {
  display: grid;
  gap: 8px;
  border: 1px dashed rgba(35, 32, 29, 0.18);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 18px;
}

.brand-building-disabled span {
  color: var(--ink);
  font-size: 1rem;
}

.brand-building-disabled p {
  max-width: 72ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.miller-settings-panel {
  display: grid;
  gap: 16px;
  background:
    radial-gradient(circle at top right, rgba(20, 121, 91, 0.08), transparent 32%),
    linear-gradient(135deg, rgba(255, 250, 240, 0.7), rgba(255, 255, 255, 0.98) 44%),
    #fff;
}

.miller-settings-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
}

.miller-settings-summary-grid article {
  display: grid;
  gap: 6px;
  min-height: 112px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.8);
  padding: 14px;
}

.miller-settings-summary-grid span,
.miller-settings-summary-grid small,
.miller-ruleset-form label,
.miller-test-card label {
  color: var(--muted);
  font-size: 0.78rem;
}

.miller-settings-summary-grid strong {
  color: var(--ink);
  font-size: 1.32rem;
  font-weight: 500;
}

.miller-settings-notice {
  margin: 0;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #edf8f4;
  color: var(--green);
  padding: 10px 12px;
  font-size: 0.88rem;
}

.miller-settings-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.miller-settings-main,
.miller-settings-side,
.miller-ruleset-form,
.miller-escalation-list,
.miller-knowledge-list {
  display: grid;
  gap: 12px;
}

.miller-settings-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 14px;
}

.miller-step-card {
  border-color: rgba(247, 201, 72, 0.28);
}

.miller-step-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.miller-step-heading > div {
  min-width: 0;
}

.miller-step-number {
  display: grid;
  width: 30px;
  min-width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 999px;
  background: #fff6df;
  color: #8a5c00;
  font-size: 0.82rem;
}

.miller-card-copy {
  margin-top: 4px;
  max-width: 720px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.miller-toggle-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.miller-switch-card,
.miller-escalation-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  min-height: 74px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 12px;
}

.miller-switch-card.active,
.miller-escalation-row:has(input:checked) {
  border-color: rgba(20, 121, 91, 0.2);
  background: #edf8f4;
}

.miller-switch-card.disabled {
  background: #fbfaf7;
  opacity: 0.68;
}

.miller-switch-card.disabled span,
.miller-switch-card.disabled small {
  color: var(--muted);
}

.miller-switch-card input,
.miller-escalation-row input {
  width: 17px;
  min-height: 17px;
  margin-top: 2px;
  accent-color: var(--green);
}

.miller-switch-card span,
.miller-switch-card small,
.miller-escalation-row span,
.miller-escalation-row small {
  display: block;
}

.miller-switch-card span,
.miller-escalation-row strong {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 500;
}

.miller-switch-card small,
.miller-escalation-row small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.miller-availability-note {
  margin: 0;
  border: 1px solid rgba(35, 32, 29, 0.08);
  border-radius: var(--radius);
  background: #fff;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
  padding: 10px 12px;
}

.miller-ruleset-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.miller-ruleset-grid label,
.miller-test-card label {
  display: grid;
  gap: 7px;
}

.miller-ruleset-form textarea,
.miller-test-card textarea,
.miller-knowledge-content textarea,
.miller-knowledge-row input,
.miller-knowledge-row select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-weight: 400;
}

.miller-ruleset-form textarea,
.miller-test-card textarea,
.miller-knowledge-content textarea {
  min-height: 110px;
  padding: 10px 12px;
  resize: vertical;
}

.miller-ruleset-wide {
  grid-column: 1 / -1;
}

.miller-settings-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.miller-settings-actions span {
  color: var(--muted);
  font-size: 0.82rem;
}

.miller-knowledge-section {
  display: grid;
  gap: 12px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.miller-knowledge-section h4 {
  margin: 0;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 500;
}

.miller-context-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.miller-context-grid span {
  border: 1px solid rgba(20, 121, 91, 0.14);
  border-radius: var(--radius);
  background: #f6fbf8;
  color: var(--ink);
  padding: 10px 12px;
  font-size: 0.84rem;
  line-height: 1.35;
}

.miller-hierarchy-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: miller-hierarchy;
}

.miller-hierarchy-list li {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  column-gap: 12px;
  row-gap: 3px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 12px;
  counter-increment: miller-hierarchy;
}

.miller-hierarchy-list li::before {
  content: counter(miller-hierarchy);
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  grid-row: 1 / span 2;
  grid-column: 1;
  border-radius: 999px;
  background: #fff6df;
  color: #8a5c00;
  font-size: 0.78rem;
}

.miller-hierarchy-list strong,
.miller-hierarchy-list span {
  display: block;
}

.miller-hierarchy-list strong {
  grid-column: 2;
  color: var(--ink);
  font-weight: 500;
  line-height: 1.2;
}

.miller-hierarchy-list span {
  grid-column: 2;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.miller-guardrail-list {
  display: grid;
  gap: 8px;
}

.miller-guardrail-list span {
  border: 1px solid rgba(200, 41, 30, 0.12);
  border-radius: var(--radius);
  background: #fff5f2;
  color: var(--ink);
  padding: 9px 10px;
  font-size: 0.82rem;
  line-height: 1.35;
}

.miller-knowledge-row {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fbfaf7;
  padding: 10px;
}

.miller-knowledge-row input,
.miller-knowledge-row select {
  min-height: 36px;
  padding: 0 10px;
}

.miller-knowledge-row > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 34px;
  gap: 8px;
}

.miller-knowledge-content {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.miller-knowledge-content textarea {
  min-height: 96px;
  color: var(--ink);
  font-size: 0.86rem;
}

.miller-knowledge-row small,
.miller-test-response small {
  color: var(--muted);
  font-size: 0.76rem;
}

.miller-test-response {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(20, 121, 91, 0.18);
  border-radius: var(--radius);
  background: #edf8f4;
  padding: 12px;
}

.miller-test-response h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
}

.miller-test-response p {
  margin: 0;
  color: var(--ink);
  font-size: 0.86rem;
  line-height: 1.45;
}

.miller-test-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.miller-test-tags span {
  border: 1px solid rgba(20, 121, 91, 0.16);
  border-radius: 999px;
  background: #fff;
  color: var(--green);
  padding: 5px 9px;
  font-size: 0.74rem;
}

.platform-submissions-panel {
  display: grid;
  gap: 14px;
}

.platform-submission-list {
  display: grid;
  gap: 10px;
}

.platform-submission-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 0.22fr);
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  border-radius: var(--radius);
  background: #fff;
}

.platform-submission-card.feedback {
  border-left-color: var(--green);
}

.platform-submission-card.referral,
.platform-submission-card.advisor-referral,
.platform-submission-card.client-referral {
  border-left-color: var(--gold);
}

.platform-submission-card.reviewed {
  opacity: 0.72;
}

.platform-submission-main {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.platform-submission-heading,
.platform-submission-meta,
.platform-submission-details,
.platform-submission-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.platform-submission-heading {
  justify-content: space-between;
}

.platform-submission-heading span,
.platform-submission-heading small {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.platform-submission-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 500;
}

.platform-submission-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.platform-submission-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fbfaf7;
  color: var(--muted);
  padding: 0 9px;
  font-size: 0.76rem;
}

.platform-submission-details {
  margin-top: 2px;
}

.platform-submission-details span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  border: 1px solid rgba(20, 121, 91, 0.14);
  border-radius: 999px;
  background: #edf8f4;
  color: #315f51;
  padding: 0 9px;
  font-size: 0.76rem;
}

.platform-submission-actions {
  justify-content: flex-end;
}

.platform-submission-actions em {
  width: 100%;
  color: var(--muted);
  font-size: 0.76rem;
  font-style: normal;
  text-align: right;
}

.toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 30;
  max-width: min(360px, calc(100vw - 44px));
  padding: 14px 16px;
  border: 1px solid rgba(20, 121, 91, 0.22);
  border-radius: var(--radius);
  background: #edf8f4;
  color: var(--green);
  box-shadow: var(--shadow);
  font-weight: 800;
}

@media (max-width: 1120px) {
  .metric-grid,
  .firm-dashboard-grid,
  .opportunity-metric-grid,
  .firm-miller-command-layout,
  .firm-team-summary,
  .firm-branding-summary,
  .platform-metric-grid,
  .platform-checklist,
  .crm-snapshot-grid,
  .three-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .firm-dashboard-layout,
  .firm-command-layout,
  .opportunity-command-layout,
  .platform-layout,
  .platform-data-section-grid,
  .data-layout,
  .firm-data-overview-layout,
  .firm-data-task-grid,
  .data-governance-card,
  .platform-owner-onboarding-body,
  .firm-branding-form,
  .brand-building-layout {
    grid-template-columns: 1fr;
  }

  .platform-firm-detail-panel {
    grid-column: auto;
    grid-row: auto;
  }

  .firm-miller-command-layout {
    grid-template-columns: 1fr;
  }

  .platform-summary-card,
  .platform-promotions-card {
    grid-column: auto;
  }

  .client-mode .metric-grid {
    grid-template-columns: 1fr;
  }

  .two-col {
    grid-template-columns: 1fr;
  }

  .platform-client-path-grid,
  .firm-brand-fields,
  .brand-building-summary-grid,
  .brand-promotion-edit-grid,
  .brand-promotion-analytics-row,
  .advisor-requirement-grid {
    grid-template-columns: 1fr;
  }

  .firm-brand-logo-field {
    grid-column: auto;
  }
}

@media (max-width: 860px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: relative;
    height: auto;
    padding: 18px;
  }

  .brand {
    min-height: 54px;
  }

  .brand img {
    width: 190px;
  }

  .nav-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nav-item {
    gap: 2px;
    justify-items: start;
    min-height: 54px;
  }

  .security-card {
    display: none;
  }

  .workspace {
    padding: 18px;
  }

  .topbar,
  .section-heading,
  .tax-estimates-card .panel-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .topbar {
    padding-right: 0;
  }

  .onboarding-main,
  .onboarding-actions,
  .advisor-onboarding-controls-header {
    align-items: stretch;
    flex-direction: column;
  }

  .platform-owner-grid.two,
  .platform-logo-upload-card,
  .platform-roadmap-add-form,
  .platform-roadmap-card-grid {
    grid-template-columns: 1fr;
  }

  .platform-owner-onboarding-hero {
    flex-direction: column;
  }

  .platform-owner-steps {
    position: static;
  }

  .brand-promotion-form {
    position: static;
  }

  .brand-promotion-form-grid {
    grid-template-columns: 1fr;
  }

  .onboarding-profile-summary,
  .onboarding-progress,
  .onboarding-checklist,
  .onboarding-goal-picker {
    grid-template-columns: 1fr;
  }

  .onboarding-profile-summary {
    align-items: stretch;
    flex-direction: column;
  }

  .onboarding-actions > div,
  .onboarding-actions button {
    width: 100%;
  }

  .top-actions,
  .button-group {
    position: static;
    width: 100%;
  }

  .platform-support-access-card,
  .software-owner-access-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .advisor-client-search {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .mode-switch {
    flex: 1;
    width: 100%;
  }

  .tax-rate-form {
    width: 100%;
    margin-left: 0;
  }

  .metric-grid,
  .platform-metric-grid,
  .platform-owner-metric-grid,
  .platform-layout,
  .platform-form-grid,
  .platform-detail-grid,
  .platform-directory-toolbar,
  .task-workflow-toolbar,
  .task-window-panel,
  .task-window-controls,
  .task-row-top,
  .task-assignment-grid,
  .task-create-grid,
  .task-scheduled-row,
  .task-bulk-draft-row,
  .opportunity-card,
  .opportunity-signal-grid,
  .firm-member-form,
  .firm-team-row,
  .platform-submission-card,
  .platform-checklist,
  .client-invite-mode-grid,
  .client-invite-grid,
  .account-layout,
  .net-worth-card-grid,
  .household-row,
  .firm-dashboard-layout,
  .firm-dashboard-grid,
  .tax-estimate-summary,
  .tax-quarter-fields,
  .equity-dashboard,
  .equity-grant-grid,
  .crm-snapshot-grid,
  .crm-layout,
  .crm-work-grid,
  .crm-form-grid,
  .goal-planner-shell,
  .goal-progress-cards,
  .planning-path-options,
  .payoff-snapshot-grid,
  .retirement-income-snapshot,
  .emergency-funding-grid,
  .goal-analysis-grid,
  .income-plan-stats,
  .payoff-plan-stats,
  .payoff-mini-grid,
  .income-bucket-grid,
  .ltc-summary-grid,
  .ltc-control-grid,
  .ltc-shock-detail,
  .withdrawal-strategy-summary,
  .goals-layout,
  .budgeting-layout,
  .schedule-layout,
  .notes-layout,
  .vault-layout,
  .vault-summary-grid,
  .vault-workspace,
  .client-mode .client-overview-hero,
  .advisor-client-mode .client-overview-hero,
  .overview-side-bottom-grid,
  .overview-advisor-card.has-headshot,
  .customize-layout {
    grid-template-columns: 1fr;
  }

  .task-create-detail {
    grid-column: auto;
  }

  .planning-path-header {
    flex-direction: column;
  }

  .task-row-actions {
    justify-content: flex-start;
  }

  .opportunity-card-side {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-top: 14px;
  }

  .platform-firm-row {
    grid-template-columns: 1fr;
  }

  .firm-team-actions,
  .firm-member-badges,
  .firm-member-form-actions,
  .equity-grant-actions,
  .platform-submission-actions {
    justify-content: flex-start;
  }

  .platform-submission-actions em {
    text-align: left;
  }

  .document-table .doc-row {
    grid-template-columns: 1fr;
  }

  .search-input {
    width: 100%;
    min-width: 0;
  }

  .vault-folder-panel {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .vault-summary-latest {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  .nav-list,
  .metric-grid,
  .platform-metric-grid,
  .data-metric-grid,
  .data-source-grid,
  .firm-data-overview-layout,
  .firm-data-task-grid,
  .data-boundary-grid,
  .firm-dashboard-grid,
  .opportunity-metric-grid,
  .firm-miller-status-grid,
  .firm-team-summary,
  .firm-branding-summary,
  .firm-snapshot-metric-list,
  .firm-snapshot-signal-grid,
  .tax-estimate-summary,
  .three-col,
  .time-grid {
    grid-template-columns: 1fr;
  }

  .firm-intelligence-dashboard .firm-data-secondary-grid {
    grid-template-columns: 1fr;
  }

  .panel-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .vault-browser-heading,
  .vault-document-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .timeline-item,
  .crm-activity-item,
  .goal-row,
  .account-row,
  .goal-row-main,
  .goal-title-edit-form,
  .planner-step,
  .goal-assignment-edit-form,
  .assignment-edit-actions,
  .planner-settings-form,
  .planner-assignment-form,
  .planner-progress-values,
  .planner-account-row,
  .emergency-assignment-row,
  .emergency-assignment-form,
  .retirement-savings-header,
  .retirement-savings-stats,
  .retirement-contribution-buckets,
  .retirement-contribution-row,
  .retirement-contribution-form,
  .retirement-income-snapshot,
  .income-plan-header,
  .income-plan-stats,
  .payoff-plan-stats,
  .payoff-account-row,
  .payoff-mini-grid,
  .income-lifecycle-labels,
  .income-bucket-grid,
  .ltc-summary-grid,
  .ltc-control-grid,
  .ltc-shock-detail,
  .ltc-start-field,
  .ltc-stage-row,
  .withdrawal-strategy-summary,
  .withdrawal-bucket-row,
  .withdrawal-account-heading,
  .withdrawal-account-row,
  .tax-bucket-compare-grid,
  .tax-bucket-panel .tax-bucket-layout,
  .tax-bucket-layout,
  .tax-bucket-row,
  .risk-tolerance-row,
  .donut-row,
  .access-row,
  .goal-assignment-form,
  .goal-edit-form,
  .goal-savings-assignment-form,
  .goal-coverage-summary,
  .net-worth-item-row,
  .estate-planning-summary,
  .estate-planning-row,
  .net-worth-add-form,
  .net-worth-edit-form,
  .net-worth-edit-actions,
  .folder-create-row,
  .budget-row,
  .budget-summary,
  .split-input,
  .profile-grid,
  .kid-grid,
  .address-grid,
  .dob-age-field,
  .profile-security-grid {
    grid-template-columns: 1fr;
  }

  .profile-security-section .profile-section-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .profile-photo-card {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .profile-photo-actions {
    justify-content: flex-start;
  }

  .retirement-withdrawal-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .retirement-withdrawal-card p {
    text-align: left;
  }

  .retirement-savings-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .ltc-header-actions {
    flex-wrap: wrap;
  }

  .retirement-savings-total {
    min-width: 0;
    text-align: left;
  }

  .client-brand-feature {
    grid-template-columns: 1fr;
  }

  .client-brand-promo-item {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .client-brand-read-link {
    grid-column: 2;
    width: max-content;
    max-width: 100%;
  }

  .client-brand-promo-list a {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .client-brand-promo-list a span {
    grid-column: 1 / -1;
  }

  .goal-row-actions {
    justify-content: space-between;
    width: 100%;
  }

  .strategy-selector {
    width: 100%;
    min-width: 0;
  }

  .goal-progress-compact {
    flex: 1;
    grid-template-columns: auto minmax(72px, 1fr);
    min-width: 0;
  }

  .chat-message {
    max-width: 100%;
  }
}

