/* BalanceHelm's shared visual system. Legacy feature styles remain underneath. */
:root {
  --bh-ink: #172f38;
  --bh-muted: #596d73;
  --bh-accent: #176f65;
  --bh-accent-dark: #11544c;
  --bh-mint: #dcefe7;
  --bh-sidebar: #f0f3ee;
  --bh-canvas: #f8f9f5;
  --bh-line: #dde4de;
  --bh-white: #fff;
  --bh-radius: 14px;
  --ui-border: var(--bh-line);
  --ui-border-strong: #cbd7cf;
  --ui-text-soft: var(--bh-muted);
  --ui-bg-soft: #f3f7ef;
  --ui-primary: var(--bh-accent);
  --ui-primary-dark: var(--bh-accent-dark);
  --ui-shadow-soft: 0 3px 10px rgb(23 47 56 / 2%);
  --ui-shadow-card: var(--ui-shadow-soft);
}
.app-body {
  color: var(--bh-ink);
  background: var(--bh-canvas);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.app-body :focus-visible { outline: 3px solid var(--bh-accent); outline-offset: 3px; }
.app-shell { grid-template-columns: 232px minmax(0, 1fr); }
.app-sidebar {
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  padding: 28px 16px 16px;
  background: var(--bh-sidebar);
  color: var(--bh-ink);
  border-right: 1px solid var(--bh-line);
  box-shadow: none;
}
.sidebar-heading { flex-shrink: 0; }
.app-body .mobile-menu-toggle { display: none; }
.brand-block { display: flex; gap: 10px; margin: 0 4px 32px; color: var(--bh-ink); text-decoration: none; }
.brand-mark {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 42px;
  border-radius: 12px 12px 12px 3px;
  background: var(--bh-featured, #172f38);
  color: #eff8ef;
  font-size: 25px;
  font-family: Georgia, serif;
  font-weight: 500;
}
.brand-bearing { position: absolute; top: -3px; right: -3px; width: 10px; height: 10px; border: 2px solid var(--bh-sidebar); border-radius: 50%; background: var(--theme-fill, #75bdaa); }
.brand-title { display: block; font-size: 19px; font-weight: 750; letter-spacing: -.7px; }
.brand-subtitle { display: block; color: var(--bh-muted); font-size: 11px; letter-spacing: .6px; }
.sidebar-nav { display: flex; flex: 1; flex-direction: column; gap: 28px; min-height: 0; }
.nav-primary, .nav-utilities { display: grid; gap: 5px; }
.nav-utilities { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--bh-line); }
.nav-section-title { margin: 0 12px 10px; color: var(--bh-muted); font-size: 10px; letter-spacing: 1.7px; font-weight: 700; }
.nav-link { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 12px; border: 1px solid transparent; border-radius: 9px; color: var(--theme-ink, #496169); font-size: 14px; font-weight: 550; }
.nav-link:hover { background: var(--theme-soft, #e6ece5); color: var(--bh-ink); }
.nav-link.active { background: var(--bh-featured, #172f38); color: #f6fcf9; border-color: var(--bh-ink); box-shadow: 0 3px 6px rgb(23 47 56 / 7%); }
.nav-link.active .ui-icon { color: var(--theme-success-text, #a5deca); }
.ui-icon { width: 20px; height: 20px; flex: 0 0 20px; }
.sidebar-beta { display: flex; align-items: center; gap: 8px; padding: 10px 12px 0; color: var(--bh-muted); font-size: 11px; }
.sidebar-beta > span { width: 6px; height: 6px; border-radius: 50%; background: var(--bh-accent); }
.workspace-header { position: static; align-items: center; min-height: 78px; padding: 16px 32px; border-bottom: 1px solid var(--bh-line); background: var(--bh-canvas); gap: 16px; }
.workspace-intro { display: flex; align-items: center; gap: 13px; }
.workspace-kicker { margin: 0; color: var(--bh-muted); font-size: 11px; text-transform: none; letter-spacing: .2px; }
.workspace-title { margin: 0; padding-left: 13px; border-left: 1px solid var(--theme-line, #cad5ce); color: var(--bh-ink); font-size: 14px; font-weight: 650; }
.workspace-actions { gap: 14px; align-items: center; }
.icon-link { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; border: 1px solid var(--bh-line); border-radius: 50%; color: var(--bh-ink); background: var(--bh-white); }
.profile-menu { position: relative; }
.profile-menu > summary { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 7px 12px; list-style: none; cursor: pointer; color: var(--bh-ink); font-size: 13px; font-weight: 600; }
.profile-menu > summary::-webkit-details-marker { display: none; }
.profile-menu-items { position: absolute; right: 0; top: calc(100% + 7px); width: 220px; padding: 6px; border: 1px solid var(--bh-line); background: var(--theme-surface, #fff); border-radius: 12px; box-shadow: 0 14px 30px rgb(23 47 56 / 13%); z-index: 70; }
.profile-menu-items a { display: flex; align-items: center; min-height: 44px; padding: 9px 12px; border-radius: 7px; color: var(--bh-ink); text-decoration: none; font-size: 14px; }
.profile-menu-items a:hover { background: var(--bh-sidebar); }
.section-tabs { display: flex; gap: 5px; padding: 0 28px; min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; border-bottom: 1px solid var(--bh-line); background: var(--bh-canvas); scrollbar-width: thin; scrollbar-color: #b1c8bc transparent; }
.section-tabs a { flex: 0 0 auto; display: flex; align-items: center; min-height: 50px; padding: 10px 12px; border-bottom: 2px solid transparent; color: var(--bh-muted); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.section-tabs a:hover { color: var(--bh-accent); background: var(--theme-soft, #edf3eb); }
.section-tabs a.active { color: var(--bh-accent-dark); border-color: var(--bh-accent); }
.workspace-content { width: 100%; max-width: 1440px; margin: 0 auto; padding: 28px 32px 36px; background: transparent; border-radius: 0; box-shadow: none; }
.workspace-content h1, .workspace-content .page-section-title { color: var(--bh-ink); font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size: 34px; font-weight: 500; line-height: 1.18; letter-spacing: -.6px; margin: 0 0 10px; }
.workspace-content h2 { color: var(--bh-ink); font-size: 18px; font-weight: 650; line-height: 1.35; }
.workspace-content h3 { color: var(--bh-ink); font-size: 17px; line-height: 1.4; }
.muted, .section-card-note, .widget-subtitle, .page-section-subtitle { color: var(--bh-muted); line-height: 1.6; }
.page-section-hero { padding: 0; margin: 0 0 24px; border: 0; background: transparent; box-shadow: none; }
.page-section-eyebrow, .section-kicker, .panel-topline, .widget-kicker, .hero-eyebrow, .investments-kicker { color: var(--bh-accent); font-size: 10px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; }
.page-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-heading-row .muted { margin: 0; max-width: 660px; font-size: 14px; }
.page-heading-row > .action-link { flex-shrink: 0; }
.page-heading-row .page-section-eyebrow { margin-bottom: 8px; }
.dashboard-panel, .surface-card, .hero-summary-card, .summary-card, .account-record-v2, .placeholder-card-v2 { min-width: 0; border: 1px solid var(--bh-line); border-radius: var(--bh-radius); background: var(--theme-surface, #fff); box-shadow: 0 3px 10px rgb(23 47 56 / 2%); }
.dashboard-panel, .surface-card { padding: 22px; }
.surface-card { margin-bottom: 20px; }
.dashboard-grid { gap: 18px; }
.dashboard-panel > p, .surface-card > p { font-size: 14px; }
.app-body button, .action-link, .header-link, .compact-primary, .compact-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 10px 16px; border: 1px solid var(--bh-accent); border-radius: 8px; background: var(--bh-accent); color: var(--bh-action-text, #fff); font: inherit; font-size: 13px; font-weight: 650; line-height: 1.35; text-decoration: none; cursor: pointer; box-shadow: none; }
.app-body button:hover, .action-link:hover, .compact-primary:hover { background: var(--bh-accent-dark); color: var(--bh-action-text, #fff); }
.app-body .secondary-button, .secondary-link, .compact-secondary, .header-link { border: 1px solid var(--bh-line); background: var(--theme-surface, #fff); color: var(--bh-ink); }
.app-body .secondary-button:hover, .secondary-link:hover, .compact-secondary:hover, .header-link:hover { border-color: var(--theme-line, #aac5b8); background: var(--bh-sidebar); color: var(--bh-ink); }
.app-body .danger-button { color: var(--theme-muted, #a32f39); border-color: var(--theme-line, #efcdd0); background: var(--theme-surface, #fff); }
.app-body .danger-button:hover { color: var(--theme-muted, #8d2630); background: var(--theme-soft, #fff0f1); }
.action-link.active-link { border-color: var(--bh-ink); background: var(--bh-featured, #172f38); color: #fff; }
.tiny-link { background: var(--theme-surface, #fff); border: 1px solid var(--bh-line); border-radius: 7px; display: inline-flex; align-items: center; min-height: 40px; padding: 7px 10px; color: var(--bh-accent); font-size: 13px; text-decoration: underline; }
.app-body input, .app-body select, .app-body textarea { padding: 10px 12px; border: 1px solid var(--theme-line, #cbd7cf); border-radius: 8px; color: var(--bh-ink); background: var(--theme-surface, #fff); font-family: inherit; font-size: 14px; line-height: 1.45; }
.workspace-content a:not([class]) { color: var(--bh-accent); }
.account-counts { margin: 0 0 18px; font-size: 12px; color: var(--bh-muted); }
.app-body input::placeholder, .app-body textarea::placeholder { color: var(--theme-muted, #657a80); opacity: 1; }
.app-body input[type="checkbox"], .app-body input[type="radio"] { accent-color: var(--bh-accent); }
.field-stack label, .surface-form label { color: var(--bh-ink); font-size: 12px; font-weight: 600; }
.hero-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 24px; }
.hero-summary-card { padding: 22px 20px; border-top: 3px solid var(--theme-line, #b1d8c9); }
.hero-summary-card:first-child { color: #f5fbf6; background: var(--bh-featured, #172f38); border-color: var(--bh-ink); border-top-color: #8ed6bc; }
.hero-summary-label { margin-bottom: 13px; color: var(--bh-muted); font-size: 10px; font-weight: 650; letter-spacing: 1.2px; }
.hero-summary-number { color: var(--bh-ink); margin-bottom: 9px; font-size: clamp(22px, 2.1vw, 34px); font-weight: 650; line-height: 1.15; letter-spacing: -.8px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.hero-summary-card .muted { font-size: 12px; }
.hero-summary-card:first-child .hero-summary-number { color: #fff; }
.hero-summary-card:first-child .hero-summary-label, .hero-summary-card:first-child .muted { color: var(--theme-muted, #c1dcd2); }
.dashboard-heading { margin-bottom: 22px; }
.dashboard-heading .dashboard-top-right-actions { justify-content: flex-end; gap: 8px; }
.dashboard-heading .dashboard-top-right-actions > * { flex: 0 0 auto; }
.setup-nudge { display: flex; align-items: center; gap: 24px; margin-bottom: 24px; padding: 18px 22px; border: 1px solid var(--bh-line); border-radius: var(--bh-radius); background: var(--theme-surface, #fff); }
.setup-nudge-copy { flex: 1; min-width: 0; }
.setup-nudge-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; }
.setup-nudge-heading h2 { margin: 0; font-size: 15px; }
.setup-nudge-heading > span { font-size: 12px; color: var(--bh-muted); }
.setup-nudge p { margin: 4px 0 10px; color: var(--bh-muted); font-size: 13px; }
.setup-progress { height: 5px; overflow: hidden; border-radius: 5px; background: var(--theme-soft, #e8eee8); }
.setup-progress > span { display: block; height: 100%; border-radius: inherit; background: var(--theme-fill, #76baa1); }
.setup-nudge > .action-link { flex-shrink: 0; }
.dashboard-widget-form { max-width: none; }
.dashboard-customization-options { margin-bottom: 20px; }
.widget-editor-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.widget-editor-card { min-width: 0; overflow-wrap: anywhere; }
.widget-editor-header { flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.widget-editor-header > span { flex: 0 0 auto; max-width: 100%; font-size: 11px; }
.widget-editor-card h3 { margin: 0 0 6px; font-size: 15px; }
.widget-editor-card > .muted { margin: 0; font-size: 13px; }
.widget-editor-card, .preset-card, .density-card { border-color: var(--bh-line); }
.preset-card-active, .density-card-active { border-color: var(--theme-line, #83b4a3); background: var(--theme-soft, #f1f8f2); }
.toolbar-dropdown > summary { min-height: 42px; display: flex; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid var(--bh-line); border-radius: 8px; background: var(--theme-surface, #fff); color: var(--bh-ink); font-size: 12px; }
.toolbar-dropdown-menu { border-color: var(--bh-line); }
.toolbar-dropdown-menu a { display: block; padding: 10px 12px; color: var(--bh-accent); font-size: 13px; }
.widget-group-header { margin: 24px 0 12px; }
.widget-group-kicker { color: var(--bh-muted); font-size: 11px; letter-spacing: 1.3px; }
.widget-card .page-actions { gap: 8px; }
.widget-card .widget-primary-action { width: auto; flex: 0 1 auto; }
.widget-card .next-action-text { font-size: 20px; line-height: 1.45; color: var(--bh-ink); }
.widget-category { display: none; }
.dashboard-suggestions-status { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 20px; padding: 12px 0; margin-top: 20px; border-top: 1px solid var(--bh-line); color: var(--bh-muted); font-size: 13px; }
.dashboard-suggestions-status > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; }
.dashboard-suggestions-status strong { color: var(--bh-ink); font-weight: 600; }
/* One screen canvas lets cards share rows across category boundaries. */
@media screen {
  #dashboardCanvas { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 18px; margin-top: 24px; }
  #dashboardCanvas .widget-group-section, #dashboardCanvas .modular-dashboard { display: contents; }
  #dashboardCanvas .widget-group-header { display: none; }
  #dashboardCanvas .widget-card { flex: 1 1 100%; min-width: 0; padding: 18px; }
  #dashboardCanvas .widget-category { display: block; margin-bottom: 6px; color: var(--bh-muted); font-size: 11px; line-height: 1.3; letter-spacing: 1px; text-transform: uppercase; }
  #dashboardCanvas .widget-card .metric-grid { margin: 10px 0; }
  #dashboardCanvas .widget-card .widget-hero-number { margin-bottom: 6px; }
  #dashboardCanvas .widget-card > .page-actions:last-child { margin: 14px 0 0; padding: 0; }
}
/* The service resolves saved sizes and density once; CSS uses that result. */
@media screen and (min-width: 981px) {
  #dashboardCanvas .widget-card { flex-basis: var(--widget-basis, calc(50% - 9px)); flex-grow: var(--widget-grow, 3); min-width: min(100%, 280px); }
  .modular-dashboard .widget-size-small { --widget-basis: calc(33.333% - 12px); --widget-grow: 2; }
  .modular-dashboard .widget-size-medium { --widget-basis: calc(50% - 9px); --widget-grow: 3; }
  .modular-dashboard .widget-size-large { --widget-basis: 100%; --widget-grow: 6; }
}
.suggestion-card, .empty-state-box, .empty-state-panel, .hero-side-card { border: 1px solid var(--bh-line); border-radius: 10px; background: var(--theme-soft, #f7faf6); box-shadow: none; }
.suggestion-warning, .warning-box { border-color: var(--theme-line, #dccb9b); background: var(--theme-warning-bg, #fffaf0); color: var(--theme-warning-text, #6b511d); }
.goal-progress-fill { background: var(--theme-fill, #76baa1); }
.success-box { border-color: var(--theme-line, #bfdccf); color: var(--bh-accent-dark); background: var(--theme-success-bg, #edf7ef); }
.summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.summary-card { min-width: 0; padding: 18px; }
.summary-label { font-size: 11px; color: var(--bh-muted); }
.summary-value { font-size: 27px; font-weight: 650; font-variant-numeric: tabular-nums; color: var(--bh-ink); overflow-wrap: anywhere; }
.release-panel { margin-top: 26px; padding: 16px 20px; border: 1px solid var(--bh-line); border-radius: 10px; background: var(--theme-soft, #f0f4ed); }
.release-panel summary { min-height: 44px; cursor: pointer; font-size: 13px; color: var(--bh-muted); }
.release-panel summary strong { color: var(--bh-ink); margin-right: 12px; }
.release-panel .simple-list { margin-top: 16px; }
.transaction-filters { display: grid; grid-template-columns: minmax(180px, 2fr) repeat(3, minmax(110px, 1fr)) auto; align-items: end; gap: 12px; max-width: none; margin: 0; padding: 18px; border: 0; border-radius: 12px; background: var(--theme-surface, #fff); }
.transaction-filters label { display: grid; gap: 6px; font-size: 11px; font-weight: 650; }
.transaction-filters input, .transaction-filters select { width: 100%; }
.filter-actions { display: flex; gap: 8px; align-items: center; }
.table-scroll { border-radius: 12px; }
.subs-table { width: 100%; margin: 0; background: var(--theme-surface, #fff); border-collapse: collapse; font-size: 13px; }
.subs-table thead th { padding: 14px; border-bottom: 1px solid var(--bh-line); background: var(--theme-soft, #eff4ee); color: var(--bh-muted); font-size: 10px; letter-spacing: .8px; text-transform: uppercase; font-weight: 700; }
.subs-table tbody td { padding: 14px; border-bottom: 1px solid var(--theme-line, #e8ede7); color: var(--bh-ink); vertical-align: middle; }
.subs-table tbody tr:hover { background: var(--theme-soft, #f5f9f3); }
.subs-table .amount-cell { text-align: right; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.transaction-description { max-width: 340px; white-space: normal; overflow-wrap: anywhere; }
.transaction-description small { display: block; margin-top: 4px; color: var(--bh-muted); font-size: 11px; }
.category-label { display: inline-block; padding: 4px 8px; border-radius: 5px; background: var(--theme-soft, #edf3eb); color: var(--theme-ink, #496357); font-size: 11px; }
.table-hint { display: none; }
.account-hub-v2-grid { grid-template-columns: minmax(0, 1fr); }
.account-form-shell-v2 > summary { min-height: 44px; cursor: pointer; font-weight: 650; color: var(--bh-ink); }
.account-form-shell-v2[open] > summary { margin-bottom: 12px; }
.account-form-shell-head { padding: 0; }
.account-record-v2-actions { min-width: 0; }
.account-quick-edit-panel-v2 { position: static; width: 100%; min-width: 0; margin-top: 10px; border-color: var(--bh-line); box-shadow: none; }
.account-record-v2-actions > .text-action { display: flex; justify-content: center; }
.account-record-v2-title { color: var(--bh-ink); }
.account-record-v2-sub { color: var(--bh-muted); }
.account-hub-note-v2, .account-data-note { background: var(--theme-soft, #edf4eb); border: 1px solid var(--bh-line); color: var(--bh-muted); border-radius: 10px; padding: 14px 18px; font-size: 13px; }
.account-data-note { margin: 0 0 20px; }
.account-record-v2 { background: var(--theme-surface, #fff); }
.account-metric-tile-v2 { background: var(--theme-soft, #f3f7ef); border-color: var(--bh-line); }
.account-metric-tile-value { font-variant-numeric: tabular-nums; }
.source-badge, .freshness-badge { border-radius: 5px; font-size: 10px; }
.source-manual, .freshness-manual { color: var(--bh-accent-dark); background: var(--bh-mint); }
.summary-card-featured { background: var(--bh-featured, #172f38); border-color: var(--bh-ink); }
.summary-card-featured .summary-label { color: var(--theme-success-text, #bce0d4); }
.summary-card-featured .summary-value { color: #fff; }
.review-notice { margin-bottom: 22px; }
.import-steps { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 0; margin: 0 0 22px; list-style: none; font-size: 13px; color: var(--bh-muted); }
.import-steps li { display: flex; align-items: center; gap: 8px; }
.import-steps li > span { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--bh-line); border-radius: 50%; }
.import-steps [aria-current] { color: var(--bh-accent-dark); font-weight: 650; }
.import-steps [aria-current] > span { background: var(--bh-accent); border-color: var(--bh-accent); color: #fff; }

/* Keep import decisions close to the records, with optional mapping details. */
.import-summary .import-file { display: grid; gap: 6px; margin: 0 0 16px; overflow-wrap: anywhere; }
.import-summary .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; gap: 12px; }
.import-summary .metric-grid > .metric:last-child:nth-child(odd) { grid-column: auto; }
.import-summary .metric dd { font-size: clamp(20px, 3vw, 28px); }
.import-column-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 16px 24px; margin: 16px 0 0; }
.import-column-grid > div { min-width: 0; }
.import-column-grid dt { color: var(--bh-muted); font-size: 12px; margin-bottom: 4px; }
.import-column-grid dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.import-columns { margin-top: 18px; }
.import-columns > summary { display: flex; align-items: center; gap: 10px; min-height: 44px; list-style: none; }
.import-columns > summary::-webkit-details-marker { display: none; }
.import-columns > summary::before { content: ''; width: 6px; height: 6px; flex: 0 0 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.import-columns[open] > summary::before { transform: rotate(45deg); }
.import-skipped { margin-top: 18px; border-left: 3px solid var(--theme-line, #a47935); }
.import-clean-note { margin: 18px 0; color: var(--bh-muted); font-size: 13px; }
.import-history-ledger .ledger-date small { display: block; margin-top: 4px; color: var(--bh-muted); font-size: 12px; overflow-wrap: anywhere; }
.import-start-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.import-guidance { background: var(--theme-soft, #f2f6f0); }
.upload-file-form { max-width: none; }
.upload-file-form > label { display: block; margin-bottom: 8px; font-weight: 600; font-size: 13px; }
.upload-file-form input[type="file"] { width: 100%; padding: 12px; background: var(--theme-surface, #fff); }
.upload-file-form .page-actions { margin-top: 16px; }
.merchant-toolbar { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: flex-end; justify-content: space-between; }
.merchant-search { flex: 1 1 320px; max-width: 680px; margin: 0; }
.merchant-search label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.merchant-toolbar > form { margin-bottom: 0; }
.merchant-activity small { display: block; margin-top: 4px; color: var(--bh-muted); font-size: 11px; }
.merchant-rule-form { flex-wrap: wrap; }
.merchant-rule-form select { min-width: 0; max-width: 220px; }
@media (max-width: 980px) { .import-start-grid { grid-template-columns: minmax(0, 1fr); } }
@media screen and (max-width: 600px) {
  .import-steps { gap: 8px 16px; font-size: 12px; }
  .merchant-search { flex-basis: 100%; }
  .phone-ledger.merchant-rules-table tbody tr { grid-template-areas: 'description description' 'date category' 'actions actions' 'clear clear'; }
  .merchant-rules-table .merchant-clear { grid-area: clear; }
  .merchant-rule-form { display: flex; width: 100%; }
  .merchant-rule-form select { flex: 1 1 140px; width: 140px; max-width: none; }
}
.support-contact { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 20px; margin: auto 32px 16px; border-color: var(--bh-line); font-size: 11px; color: var(--bh-muted); }
.support-contact a { color: var(--bh-accent); font-size: 12px; }
.footer-brand { color: var(--bh-muted); font-size: 11px; }
.footer-brand > span { margin: 0 10px; color: var(--theme-muted, #98a99c); }
.guest-shell .app-shell { display: block; max-width: 1100px; margin: 0 auto; }
.guest-shell .app-sidebar { position: static; height: auto; padding: 26px 32px 10px; background: transparent; border: 0; }
.guest-shell .brand-block { margin: 0; }
.guest-shell .brand-bearing { border-color: var(--bh-canvas); }
.guest-shell .workspace-header { min-height: 70px; background: transparent; border: 0; }
.guest-shell .workspace-content { padding-top: 14px; }
.guest-shell .dashboard-grid { align-items: start; }
@media (max-width: 1200px) and (min-width: 981px) {
  .workspace-content { padding: 24px; }
  .transaction-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-heading { flex-wrap: wrap; }
  .hero-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .app-shell { display: block; }
  .app-sidebar { display: block; height: auto; padding: 12px max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left)); border-right: 0; border-bottom: 1px solid var(--bh-line); background: var(--bh-sidebar); }
  .sidebar-heading { display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
  .brand-block { margin: 0; }
  .brand-title { font-size: 18px; }
  .brand-mark { flex-basis: 32px; width: 32px; height: 36px; font-size: 22px; }
  .brand-subtitle { display: none; }
  .app-body .mobile-menu-toggle:not([hidden]) { display: inline-flex; min-height: 44px; border-color: var(--theme-line, #c6d4c9); background: transparent; color: var(--bh-ink); font-size: 13px; }
  .sidebar-nav { gap: 16px; max-height: calc(100vh - 92px); max-height: calc(100dvh - 92px); margin-top: 12px; padding: 0 0 12px; overflow-y: auto; }
  .nav-section-title { margin: 6px 12px 8px; }
  .nav-utilities { margin-top: 0; padding-top: 12px; }
  .nav-link { min-height: 44px; }
  .workspace-header { min-height: 56px; padding: 6px 16px; }
  .workspace-actions { margin-left: auto; gap: 6px; }
  .app-body:not(.guest-shell) .workspace-intro { position: static; width: auto; height: auto; overflow: visible; clip-path: none; min-width: 0; }
  .workspace-kicker { display: none; }
  .workspace-title { border: 0; padding: 0; font-size: 12px; }
  .profile-menu > summary { font-size: 12px; padding: 7px 8px; }
  .section-tabs { padding: 0 12px; }
  .section-tabs a { min-height: 44px; padding: 9px 12px; font-size: 12px; }
  .workspace-content { padding: 22px 18px 28px; margin: 0 auto; scroll-margin-top: 90px; }
  .support-contact { margin: auto 18px max(16px, env(safe-area-inset-bottom)); }
  .hero-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transaction-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guest-shell .app-sidebar { padding: 20px 18px 8px; }
}
@media (max-width: 600px) {
  .workspace-content { padding: 16px; }
  .workspace-content h1, .workspace-content .page-section-title { font-size: 29px; }
  .workspace-content h2 { font-size: 18px; }
  .dashboard-panel, .surface-card { padding: 18px; border-radius: 12px; }
  .dashboard-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .page-heading-row { align-items: flex-start; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
  .page-heading-row .muted { font-size: 13px; }
  .dashboard-heading .dashboard-top-right-actions { width: 100%; justify-content: flex-start; }
  .dashboard-heading { gap: 10px; margin-bottom: 16px; }
  .dashboard-heading h1 { font-size: 27px; margin-bottom: 0; }
  .dashboard-heading > div > .muted { display: none; }
  .dashboard-heading .toolbar-dropdown > summary { min-height: 44px; }
  .setup-nudge { flex-wrap: wrap; gap: 12px; padding: 16px; margin-bottom: 18px; border-radius: 12px; }
  .setup-nudge-copy { flex-basis: 100%; }
  .setup-nudge-heading h2 { font-size: 15px; }
  .setup-nudge > .action-link { width: 100%; }
  .hero-summary-grid { gap: 10px; }
  .hero-summary-card { padding: 17px 14px; border-radius: 11px; }
  .hero-summary-label { font-size: 11px; letter-spacing: .3px; margin-bottom: 12px; }
  .hero-summary-number { font-size: 23px; letter-spacing: -.5px; }
  .hero-summary-card .muted { font-size: 12px; line-height: 1.45; }
  .summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .summary-card { padding: 14px; }
  .summary-value { font-size: clamp(18px, 5vw, 23px); letter-spacing: -.3px; }
  .transaction-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px; gap: 12px; }
  .transaction-filters > label:first-child, .transaction-filters > label:nth-child(4), .filter-actions { grid-column: 1 / -1; }
  .transaction-filters > * { width: auto; }
  .app-body input, .app-body select, .app-body textarea { font-size: 16px; }
  .app-body button, .action-link, .compact-primary, .compact-secondary, .tiny-link { min-height: 44px; }
  .widget-card .page-actions .action-link { flex: 1 1 140px; }
  .table-hint { display: block; color: var(--bh-muted); font-size: 11px; margin: 0 0 10px; }
  .subs-table tbody td, .subs-table thead th { padding: 12px; }
  .release-panel { padding: 12px 16px; }
  .support-contact { display: block; }
  .guest-shell .workspace-header { padding: 8px 18px; }
}
@media (max-width: 359px) {
  .workspace-content { padding-right: 12px; padding-left: 12px; }
  .brand-title { font-size: 16px; }
  .hero-summary-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-summary-number { font-size: 28px; }
  .profile-menu > summary > span:not([aria-hidden]) { display: none; }
}
@media print {
  @page { margin: 12mm; }
  .app-body { background: var(--theme-surface, #fff); }
  .app-body .app-sidebar, .workspace-header, .section-tabs, .support-contact,
  .skip-link, .release-panel, .toolbar-dropdown-menu { display: none; }
  .app-shell, .app-main { display: block; min-height: 0; }
  .workspace-content { max-width: none; margin: 0; padding: 0; }
  .hero-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .hero-summary-card { padding: 12px; }
  .hero-summary-number { font-size: 21px; }
  .dashboard-heading > div:first-child { flex: 1; }
  .dashboard-heading .dashboard-top-right-actions { flex: 0 0 auto; width: auto; }
  /* Flow across category boundaries in saved reading order. Each printed card
     carries its category and stays atomic instead of leaving a half-empty row. */
  /* Permit a single card row at either page edge; text-line widow/orphan
     defaults would otherwise push several intact card rows to a new sheet. */
  #dashboardCanvas { margin: 20px 0 0; font-size: 0; orphans: 1; widows: 1; }
  #dashboardCanvas .widget-group-section, #dashboardCanvas .modular-dashboard { display: contents; }
  #dashboardCanvas .widget-group-header { display: none; }
  #dashboardCanvas .widget-card { display: inline-block; vertical-align: top; width: calc(50% - 14px); margin: 0 7px 14px; padding: 14px; font-size: 13px; grid-column: auto; }
  #dashboardCanvas .widget-category { display: block; color: var(--bh-muted); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px; }
  #dashboardCanvas .widget-card h2 { font-size: 17px; }
  #dashboardCanvas .next-action-text { font-size: 18px; }
  .dashboard-suggestions-status { break-inside: avoid; page-break-inside: avoid; margin-top: 4px; }
  /* Atomic inline cards keep each editor's controls together across page breaks. */
  .widget-editor-grid { display: block; font-size: 0; }
  .widget-editor-card { display: inline-block; vertical-align: top; width: calc(50% - 7px); margin: 0 14px 14px 0; font-size: 15px; }
  .widget-editor-card:nth-child(2n) { margin-right: 0; }
  .widget-editor-card .control-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .widget-editor-card .widget-control:first-child { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; }
  .widget-editor-card input[type="checkbox"] { width: auto; }
  .widget-card, .widget-editor-card, .preset-card, .density-card,
  .hero-summary-card, .setup-nudge { break-inside: avoid; page-break-inside: avoid; box-shadow: none; }
  h1, h2, h3, .widget-group-header { break-after: avoid; page-break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
}
@media print and (min-width: 1100px) {
  .widget-editor-card { width: calc(33.333% - 10px); }
  .widget-editor-card:nth-child(2n) { margin-right: 14px; }
  .widget-editor-card:nth-child(3n) { margin-right: 0; }
}

.transaction-filter-panel { margin: 0 0 20px; border: 1px solid var(--bh-line); border-radius: 12px; background: var(--theme-surface, #fff); }
.transaction-filter-panel > summary { min-height: 44px; padding: 12px 16px; color: var(--bh-ink); font-size: 13px; font-weight: 650; cursor: pointer; }
@media (min-width: 601px) { .transaction-filter-panel.filters-ready > summary { display: none; } }

/* Content patterns shared by the overview, planning and review pages. */
.workspace-content > .summary-cards { margin: 0 0 22px; }
.workspace-content > .dashboard-panel { margin-bottom: 20px; }
.workspace-content > .dashboard-grid { margin-bottom: 20px; }
.workspace-content > .page-actions { margin: 0 0 20px; }
.surface-card > .page-actions:not(:last-child), .dashboard-panel > .page-actions:not(:last-child) { margin-bottom: 16px; }
.workspace-content .compact-note { margin: 8px 0 0; font-size: 12px; }
.text-action { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--bh-accent); font-size: 13px; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.text-action:hover { color: var(--bh-accent-dark); }
.metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 14px 0; }
/* Choose metric columns from the card's width, including custom widget sizes. */
.widget-card, .metric-panel, .goal-record { container-type: inline-size; }
.metric-grid > .metric:last-child:nth-child(odd) { grid-column: 1 / -1; }
@container (min-width: 760px) {
  .metric-grid { grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); }
  .metric-grid > .metric:last-child:nth-child(odd) { grid-column: auto; }
}
.plan-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.performance-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.summary-date { font-size: 20px; line-height: 1.4; overflow-wrap: normal; }
.metric { min-width: 0; padding: 4px 0 4px 14px; border-left: 2px solid var(--theme-line, #c7e0d4); }
.metric dt { color: var(--bh-muted); font-size: 12px; line-height: 1.45; margin-bottom: 6px; }
.metric dd { margin: 0; color: var(--bh-ink); font-size: 23px; font-weight: 650; line-height: 1.3; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.metric-note { display: block; margin-top: 6px; color: var(--bh-muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
/* A sentence describes the trend; compact rows keep the report near the height
   of its neighboring account and action cards, even at narrower desktop widths. */
.monthly-change-trend p { margin: 0; font-size: 14px; line-height: 1.5; }
.monthly-change-trend .monthly-change-period { margin-top: 4px; color: var(--bh-muted); font-size: 12px; }
.widget-card .monthly-change-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.monthly-change-metrics > .metric { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 0; border: 0; }
.monthly-change-metrics > .metric:first-child { grid-column: 1 / -1; flex-wrap: wrap; padding-bottom: 10px; border-bottom: 1px solid var(--bh-line); }
.monthly-change-metrics > .metric:last-child:nth-child(odd) { grid-column: auto; }
.monthly-change-metrics .metric dt { margin: 0; }
.monthly-change-metrics .metric dd { flex: 0 0 auto; max-width: 100%; font-size: 18px; }
.monthly-change-metrics .metric:first-child dd { font-size: 22px; }
.widget-card h2 { margin-bottom: 8px; }
.widget-card .next-action-text { margin: 8px 0 14px; font-size: 21px; max-width: 42ch; }
.widget-card .page-actions { margin-top: 14px; align-items: center; }
.widget-card .widget-hero-number { font-size: 30px; margin: 4px 0 10px; font-variant-numeric: tabular-nums; }
.widget-card .suggestion-stack { gap: 10px; }
.widget-card .suggestion-card { padding: 14px 16px; }
.widget-card .suggestion-card p { margin: 6px 0 4px; font-size: 13px; }
.suggestion-high { border-left: 3px solid var(--theme-line, #a34536); }
.suggestion-medium { border-left: 3px solid var(--theme-line, #b58134); }
.suggestion-positive { border-left: 3px solid var(--bh-accent); }
.activity-list, .balance-list { list-style: none; margin: 10px 0 0; padding: 0; }
.activity-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--bh-line); font-size: 14px; }
.activity-row:last-child, .balance-list > li:last-child { border-bottom: 0; }
.activity-date { font-size: 12px; color: var(--bh-muted); }
.activity-description { min-width: 0; overflow-wrap: anywhere; }
.activity-description > .muted, .balance-list > li > div > .muted { display: block; font-size: 12px; margin-top: 3px; }
.activity-amount { text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.balance-list > li, .balance-list-line { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; }
.balance-list > li { padding: 12px 0; border-bottom: 1px solid var(--bh-line); font-size: 14px; }
.balance-list > li > div { min-width: 0; overflow-wrap: anywhere; }
.balance-list > li > strong { font-variant-numeric: tabular-nums; }
.goal-summary-list > li { display: block; }
.goal-summary-list .goal-mini-bar { margin: 9px 0 6px; }
.goal-mini-fill, .bar-fill { background: var(--theme-fill, #76baa1); }
.urgency-panel { background: var(--theme-soft, #f2f7ef); border-color: var(--bh-line); }
.urgency-chip { color: var(--bh-accent-dark); background: var(--theme-success-bg, #dcefe7); }
.goal-summary-list > li > .muted { font-size: 12px; }
.card-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.card-heading h2 { margin: 4px 0 0; overflow-wrap: anywhere; }
.status-tag { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 5px; color: var(--bh-accent-dark); background: var(--theme-soft, #edf4ed); font-size: 11px; }
.goal-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 18px; margin-bottom: 22px; }
.goal-board .goal-record { margin: 0; }
.goal-record .goal-progress { margin: 16px 0 8px; }
.goal-progress-caption { font-size: 13px; }
.goal-record .goal-update { margin-top: 16px; border-top: 1px solid var(--bh-line); }
.goal-update summary, .form-disclosure > summary { cursor: pointer; min-height: 44px; padding: 12px 0; color: var(--bh-ink); font-size: 14px; font-weight: 650; }
.form-disclosure > summary { padding: 0; display: list-item; }
.form-disclosure[open] > summary { margin-bottom: 12px; }
.goal-progress-form { margin: 0 0 12px; max-width: none; }
.goal-progress-form label { display: block; margin-bottom: 6px; font-size: 13px; }
.field-action { display: flex; flex-wrap: wrap; gap: 10px; }
.field-action input { flex: 1 1 120px; width: 120px; min-width: 0; }
.field-action button { flex: 0 1 auto; }
.goal-archive { margin: 6px 0 0; }
.goal-archive button { font-size: 12px; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: none; margin: 18px 0 0; }
.field-grid > .field-stack { display: grid; gap: 7px; align-content: start; font-size: 13px; font-weight: 600; }
.field-grid input, .field-grid select { width: 100%; }
.form-submit { grid-column: 1 / -1; }
.segmented-control { display: flex; flex-wrap: wrap; gap: 5px; padding: 5px; margin-bottom: 14px; border: 1px solid var(--bh-line); border-radius: 10px; width: fit-content; background: var(--theme-soft, #edf2eb); }
.segmented-control a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; color: var(--bh-muted); font-size: 13px; text-decoration: none; border-radius: 6px; }
.segmented-control a[aria-current] { color: var(--bh-ink); background: var(--theme-surface, #fff); box-shadow: 0 1px 4px rgb(23 47 56 / 8%); font-weight: 650; }
.reading-note { padding: 14px 18px; background: var(--theme-soft, #edf3eb); border-left: 3px solid var(--theme-line, #b1d8c9); border-radius: 0 8px 8px 0; font-size: 13px; line-height: 1.6; margin: 0 0 22px; }
.secondary-details > summary { min-height: 44px; cursor: pointer; font-size: 13px; font-weight: 600; }
.secondary-details[open] > summary { margin-bottom: 12px; }
.investment-meta { display: flex; gap: 8px 24px; flex-wrap: wrap; margin: 14px 0; font-size: 13px; color: var(--bh-muted); }
.investment-meta > span { min-width: 0; overflow-wrap: anywhere; }
/* Secondary pages use the same spacing, surfaces and controls as the overview. */
.workspace-content > h1 { margin-bottom: 24px; }
.workspace-content > h1:has(+ p.muted) { margin-bottom: 10px; }
.workspace-content > h1 + p.muted { margin: 0 0 24px; max-width: 72ch; font-size: 14px; }
.page-section-eyebrow { margin-bottom: 8px; }
.page-section-subtitle { margin: 0; max-width: 72ch; font-size: 14px; }
.section-card-title { margin: 0 0 8px; }
.section-card-note { margin: 0 0 16px; font-size: 13px; }
.section-kicker { margin-bottom: 6px; }
.dashboard-panel > :last-child, .surface-card > :last-child { margin-bottom: 0; }
.dashboard-grid, .page-grid-2, .page-grid-3 { align-items: start; }
.page-grid-2, .page-grid-3, .page-stack, .page-tight-stack { gap: 18px; }
.workspace-content > :is(.page-grid-2, .page-grid-3, .page-stack, .page-tight-stack, .profile-grid) { margin-bottom: 20px; }
.page-grid-2 > .surface-card, .page-grid-3 > .surface-card, .page-stack > .surface-card { margin-bottom: 0; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.profile-grid > .surface-card { margin: 0; }
.profile-grid p { overflow-wrap: anywhere; }
.table-shell { border-color: var(--bh-line); border-radius: var(--bh-radius); box-shadow: var(--ui-shadow-soft); }
.table-shell-header { padding: 18px; background: var(--theme-surface, #fff); border-color: var(--bh-line); }
.table-shell-kicker { color: var(--bh-accent); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 6px; }
.table-shell-subtitle, .table-muted, .table-compact-note, .inline-helper-text { color: var(--bh-muted); }
.surface-table { font-size: 13px; }
.surface-table th { color: var(--bh-muted); background: var(--theme-soft, #eff4ee); font-size: 10px; letter-spacing: .8px; }
.surface-table th, .surface-table td { padding: 14px; border-bottom-color: var(--bh-line); }
.surface-table tbody tr:hover td { background: var(--theme-soft, #f5f9f3); }
.money-value { color: var(--bh-ink); font-variant-numeric: tabular-nums; }
.stat-tile::after { display: none; }
.doc-card, .help-card, .dense-panel, .panel-note, .surface-card-tight { background: var(--theme-soft, #f7faf6); border-color: var(--bh-line); border-radius: 10px; box-shadow: none; }
.notification-item-v2, .history-row-card { border-color: var(--bh-line); border-radius: 10px; }
.notification-item-v2.notification-unread-v2 { background: var(--theme-soft, #f2f8f4); border-color: var(--theme-line, #b1d8c9); }
.notification-unread-pill-v2, .ui-pill-info { background: var(--bh-mint); color: var(--bh-accent-dark); }
.notification-header-v2 { flex-wrap: wrap; gap: 12px 24px; }
.notification-header-v2 > :first-child { flex: 1 0 160px; }
.notification-header-v2 .button-row { flex-wrap: wrap; justify-content: flex-start; }
.support-queue-table { min-width: 1400px; }
.support-queue-table .note-form { display: grid; min-width: 220px; }
.support-queue-table .note-form textarea { width: 100%; }
.doc-card { padding: 18px; }
.doc-card h3 { margin: 0 0 10px; }
.doc-list { display: grid; gap: 14px; }
.app-body input:focus, .app-body select:focus, .app-body textarea:focus { border-color: var(--bh-accent); box-shadow: 0 0 0 3px rgb(23 111 101 / 10%); }
.edit-form > label, .filter-form > label { color: var(--bh-ink); font-size: 13px; font-weight: 600; }
.edit-form > label:not(:first-child) { margin-top: 6px; }
.edit-form > label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; }
.form-card { max-width: 760px; }
.form-card .edit-form { max-width: none; }
.workspace-content :is(input, select, textarea) { max-width: 100%; }
.workspace-content :is(h2, h3, strong, .table-compact-note) { overflow-wrap: anywhere; }
/* Keep dates, descriptions and amounts together even in a featured card. */
@media screen {
  .widget-card[data-widget-key="calendar"] .activity-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 10px 24px; }
  .widget-card[data-widget-key="calendar"] .activity-row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 12px 14px; border: 1px solid var(--bh-line); border-radius: 8px; background: var(--theme-soft, #f7faf6); }
  .widget-card[data-widget-key="calendar"] .activity-date { grid-column: 1 / -1; }
  .widget-card[data-widget-key="calendar"] .activity-amount { max-width: 100%; }
}
@media (max-width: 980px) {
  .profile-grid { grid-template-columns: minmax(0, 1fr); }
  .performance-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .page-section-hero { margin-bottom: 20px; }
  .summary-cards > .summary-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .page-section-subtitle { font-size: 13px; }
  .summary-date { font-size: 16px; }
  .table-shell-header, .doc-card { padding: 16px; }
  .surface-table th, .surface-table td { padding: 12px; }
  .widget-card[data-widget-key="calendar"] .activity-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 12px; }
}
@media (max-width: 359px) {
  .summary-date { font-size: 15px; }
}
@media screen and (min-width: 981px) {
  .sidebar-nav { overflow-y: auto; overscroll-behavior-y: contain; }
  .nav-primary, .nav-utilities { flex-shrink: 0; }
}
@media (max-width: 600px) {
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .metric { padding-left: 10px; }
  .metric dd { font-size: 21px; }
  .activity-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px 12px; }
  .activity-date { grid-column: 1 / -1; }
  .activity-amount { align-self: start; }
  .field-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .segmented-control { width: 100%; }
  .segmented-control a { justify-content: center; flex: 1 1 auto; min-height: 44px; padding: 8px 10px; }
  .widget-card .page-actions .text-action { flex: 0 1 auto; }
}
/* Keep real table headings and roles while reflowing the two everyday ledgers. */
@media screen and (max-width: 600px) {
  .phone-ledger, .phone-ledger.wide-data-table { display: block; width: 100%; min-width: 0; background: transparent; }
  .phone-ledger thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .phone-ledger tbody { display: grid; gap: 12px; }
  .phone-ledger tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: 'date amount' 'description description' 'category category' 'actions actions'; gap: 10px; padding: 16px; border: 1px solid var(--bh-line); border-radius: 12px; background: var(--theme-surface, #fff); }
  .phone-ledger tbody td { display: block; min-width: 0; width: auto; padding: 0; border: 0; white-space: normal; overflow-wrap: anywhere; }
  .phone-ledger .ledger-date { grid-area: date; color: var(--bh-muted); font-size: 12px; }
  .phone-ledger .ledger-amount { grid-area: amount; text-align: right; font-size: 16px; font-weight: 650; font-variant-numeric: tabular-nums; }
  .phone-ledger .ledger-description { grid-area: description; max-width: none; font-size: 14px; font-weight: 600; }
  .phone-ledger .transaction-description small { font-weight: 400; }
  .phone-ledger .ledger-category { grid-area: category; }
  .phone-ledger .ledger-actions { grid-area: actions; padding-top: 10px; border-top: 1px solid var(--bh-line); }
  .phone-ledger .row-actions { justify-content: flex-end; }
  .phone-ledger.import-history-ledger tbody tr { grid-template-areas: 'description description' 'date category'; }
  .import-history-ledger .ledger-category { text-align: right; }
  .recurring-ledger tbody tr { grid-template-areas: none; }
  .recurring-ledger .ledger-description, .recurring-ledger .ledger-actions { grid-area: auto; grid-column: 1 / -1; }
  .recurring-ledger .ledger-category, .recurring-ledger .ledger-amount, .recurring-ledger .ledger-date { grid-area: auto; text-align: left; font-size: 13px; }
  .recurring-ledger td:not(.ledger-description):not(.ledger-actions)::before { content: attr(data-label); display: block; margin-bottom: 3px; color: var(--bh-muted); font-size: 11px; font-weight: 400; }
}
@media print {
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .metric dd { font-size: 19px; }
  .activity-row { grid-template-columns: 85px minmax(0, 1fr) auto; font-size: 12px; }
  .activity-date { grid-column: auto; font-size: 10px; }
  .widget-card, .goal-record { break-inside: avoid; }
}

@media screen and (max-width: 600px) {
  .position-ledger tbody tr { grid-template-areas: 'ticker amount' 'description description' 'quantity quantity'; padding: 12px; }
  .position-ledger .ledger-ticker { grid-area: ticker; align-self: center; font-size: 17px; }
  .position-ledger .ledger-quantity { grid-area: quantity; font-size: 12px; color: var(--bh-muted); }
  .position-ledger .ledger-quantity::before { content: 'Quantity: '; }
  .position-ledger .ledger-amount::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 400; color: var(--bh-muted); }
  .position-ledger .ledger-description { font-weight: 400; }
  .plan-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Recurring decisions and investment workflows share the core form rhythm. */
.estimate-date { display: grid; gap: 4px; font-size: 12px; }
.review-label { color: var(--theme-warning-text, #785319); }
.subscription-group { margin-bottom: 22px; }
.subscription-group > h2 { font-size: 17px; margin: 0 0 12px; }
.subscription-review-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; align-items: start; }
.subscription-record { margin: 0; min-width: 0; container-type: inline-size; }
.subscription-record h3 { margin: 0; font-size: 17px; overflow-wrap: anywhere; }
.subscription-record .metric-grid { margin: 16px 0; }
.subscription-record .page-actions { margin: 16px 0 4px; }
.subscription-downgrade > summary { padding-top: 12px; }
.subscription-downgrade .field-grid { margin-top: 0; }
.field-grid > label.field-stack { display: grid; align-content: start; gap: 7px; font-size: 13px; font-weight: 600; }
.form-disclosure[open] > summary { margin-bottom: 0; }
.form-disclosure > p.muted { margin-top: 8px; }
.holdings-panel { margin-top: 20px; }
.holding-price-form { min-width: 210px; max-width: none; margin: 0 0 8px; }
.holding-price-form label { display: block; margin-bottom: 6px; font-size: 12px; }
.holding-price-form .field-action { display: grid; align-items: center; grid-template-columns: minmax(76px, 1fr) auto; gap: 8px; }
.holding-price-form .field-action input { width: 100%; }
.holdings-ledger .ledger-actions { min-width: 230px; }
.holdings-ledger .action-chip-row { gap: 8px; }
.holdings-ledger .ledger-description { max-width: 260px; }
.account-form-title { margin-top: 22px; }
.ledger-filter-form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr) auto; gap: 14px; align-items: end; max-width: none; }
.ledger-filter-form .field-stack { display: grid; gap: 7px; font-size: 13px; font-weight: 600; }
.ledger-filter-form input, .ledger-filter-form select { width: 100%; }
.ledger-filter-form .page-actions { margin: 0; }
.investment-history-ledger .ledger-description { max-width: 360px; }
.investment-breakdown .dashboard-grid { margin-top: 12px; margin-bottom: 0; }
@media screen and (max-width: 980px) {
  .ledger-filter-form { grid-template-columns: minmax(0, 1fr); }
}
@media screen and (max-width: 600px) {
  .phone-ledger.holdings-ledger tbody tr { grid-template-areas: 'description amount' 'account account' 'quantity basis' 'pricing pricing' 'actions actions'; }
  .holdings-ledger .holding-account { grid-area: account; }
  .holdings-ledger .holding-quantity { grid-area: quantity; }
  .holdings-ledger .holding-basis { grid-area: basis; }
  .holdings-ledger .holding-price { grid-area: pricing; }
  .holdings-ledger .ledger-actions, .holding-price-form { min-width: 0; }
  .holdings-ledger .ledger-description { max-width: none; }
  .holdings-ledger .ledger-amount { font-size: 14px; }
  .holdings-ledger td:not(.ledger-description):not(.ledger-actions)::before,
  .investment-history-ledger .ledger-meta::before,
  .investment-history-ledger .ledger-import::before { content: attr(data-label); display: block; margin-bottom: 3px; color: var(--bh-muted); font-size: 11px; font-weight: 400; }
  .phone-ledger.investment-history-ledger tbody tr { grid-template-areas: 'date amount' 'description description' 'category trade' 'import import'; }
  .investment-history-ledger .ledger-meta { grid-area: trade; font-size: 12px; }
  .investment-history-ledger .ledger-import { grid-area: import; font-size: 12px; }
  .investment-history-ledger .ledger-description { max-width: none; }
}

/* Keep the source and age of estimates close to the totals they describe. */
.activity-coverage { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 14px 18px; margin: 0 0 20px; border: 1px solid var(--bh-border, var(--theme-line, #dce4df)); border-radius: 12px; background: var(--bh-surface-soft, var(--theme-soft, #f0f4ef)); color: var(--bh-ink, var(--theme-ink, #19313a)); }
.activity-coverage > div { min-width: 0; }
.activity-coverage p { margin: 0; font-size: 14px; line-height: 1.5; }
.activity-coverage > div > strong { display: block; margin-bottom: 4px; font-size: 14px; }
.activity-coverage-review { border-left: 3px solid var(--theme-line, #a47935); background: var(--theme-warning-bg, #fbfaf3); }
.activity-coverage .text-action { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; }
@media screen and (max-width: 600px) { .activity-coverage { align-items: flex-start; flex-direction: column; gap: 4px; padding: 12px 14px; } }
@media print { .activity-coverage { break-inside: avoid; } .activity-coverage .text-action { display: none; } }

/* Edit the dashboard in place. Read mode keeps the familiar calm canvas. */
[hidden] { display: none !important; }
.widget-edit-controls { display: none; }
.dashboard-edit-entry { white-space: nowrap; }
.editor-status:empty { display: none; }
.editor-status { color: var(--bh-muted); font-size: 13px; margin: 14px 0; }
.dashboard-editor { margin-top: 24px; scroll-margin-top: 100px; border: 1px solid var(--theme-line, #a8c8bf); border-radius: 14px; background: var(--theme-soft, #edf5f0); padding: 18px; }
.editor-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.editor-toolbar-copy { flex: 1 1 220px; }
.editor-toolbar-copy > strong { color: var(--bh-ink); font-size: 20px; }
.editor-toolbar-copy p { margin: 5px 0 0; color: var(--bh-muted); font-size: 13px; max-width: 48ch; }
.editor-toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.editor-toolbar button, .widget-picker button, .dashboard-empty button { min-height: 44px; padding: 10px 16px; border-radius: 9px; }
.editor-toolbar-actions [data-save-layout] { background: var(--theme-featured, #176f65); color: white; }
.editor-options { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--theme-line, #d2e1d8); font-size: 12px; color: var(--bh-muted); }
.editor-starting-layout summary { cursor: pointer; font-weight: 600; color: var(--bh-ink); min-height: 28px; }
.editor-starting-layout p { margin: 0 0 12px; }
.editor-starting-layout button { margin: 0 4px 6px 0; min-height: 44px; }
.dashboard-editing .dashboard-top-right-actions .toolbar-dropdown,
.dashboard-editing .setup-nudge { display: none; }
.dashboard-editing #dashboardCanvas { border-radius: 14px; background-image: radial-gradient(#cbdad1 1px, transparent 1px); background-size: 16px 16px; padding: 12px; margin-top: 12px; outline: 1px dashed var(--theme-line, #bbd2c9); }
.dashboard-editing #dashboardCanvas .widget-card { border: 1px solid var(--theme-line, #a8c8bf); box-shadow: 0 3px 10px #193c3010; }
.dashboard-editing .widget-edit-controls { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 5px; margin: -4px -4px 16px; padding: 0 0 12px; border: 0; border-bottom: 1px solid var(--bh-line); border-radius: 0; background: transparent; }
.widget-edit-controls button { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; padding: 0; border: 1px solid var(--bh-line); border-radius: 8px; background: var(--theme-soft, #f5f8f4); color: var(--bh-ink); font-size: 20px; box-shadow: none; }
.widget-edit-controls .widget-drag-handle { cursor: grab; font-size: 28px; touch-action: none; user-select: none; }
.editor-touch-hint { display: none; }
@media (pointer: coarse) {
  .widget-edit-controls .widget-drag-handle, .editor-pointer-hint { display: none; }
  .editor-touch-hint { display: inline; }
}
.widget-position { flex: 1; min-width: 38px; font-size: 11px; color: var(--bh-muted); }
.widget-size-control { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex: 1 1 100%; margin: 4px 0 0; font-size: 12px; color: var(--bh-muted); }
.widget-size-control select { width: auto; min-width: 140px; min-height: 44px; margin: 0; padding: 8px 30px 8px 12px; border: 1px solid var(--bh-line); border-radius: 8px; background-color: var(--theme-surface, white); color: var(--bh-ink); font-size: 14px; }
.dashboard-editing .widget-card a[aria-disabled] { cursor: default; }
.dashboard-editing #dashboardCanvas .is-dragging { opacity: .5; }
.dashboard-editing #dashboardCanvas .drop-before { box-shadow: 0 -4px 0 #176f65; }
.dashboard-editing #dashboardCanvas .drop-after { box-shadow: 0 4px 0 #176f65; }
.widget-waiting-note { font-size: 12px; border-top: 1px dashed var(--bh-line); padding-top: 12px; color: var(--bh-muted); }
.widget-picker { width: min(640px, calc(100vw - 28px)); max-height: min(85dvh, 820px); box-sizing: border-box; margin: auto; padding: 24px; border: 1px solid var(--bh-line); border-radius: 18px; background: var(--theme-soft, #fafbf8); color: var(--bh-ink); box-shadow: 0 24px 80px #122e3840; overscroll-behavior: contain; }
.widget-picker::backdrop { background: #172f3870; }
.widget-picker-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.widget-picker h2 { margin: 0; font-size: 24px; }
.widget-picker p { font-size: 13px; color: var(--bh-muted); margin: 8px 0 18px; }
.widget-picker-list { display: grid; gap: 8px; }
.widget-picker-item { display: flex; align-items: flex-start; gap: 14px; border: 1px solid var(--bh-line); border-radius: 10px; background: var(--theme-surface, white); padding: 14px; cursor: pointer; }
.widget-picker-item:has(input:checked) { border-color: var(--theme-line, #84b4a7); background: var(--theme-soft, #f1f7f2); }
.widget-picker-item input { flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0; accent-color: #176f65; }
.widget-picker-item > span { display: grid; gap: 4px; }
.widget-picker-item strong { font-size: 15px; }
.widget-picker-item span span, .widget-picker-item small { font-size: 12px; line-height: 1.5; color: var(--bh-muted); }
.widget-picker-footer { display: flex; align-items: center; gap: 16px; position: sticky; bottom: -24px; padding: 16px 0; background: var(--theme-soft, #fafbf8); font-size: 12px; color: var(--bh-muted); }
.dashboard-empty { text-align: center; padding: 34px 20px; margin: 16px 0; border: 1px dashed var(--bh-line); border-radius: 12px; }
.setup-complete-mark { display: flex; align-items: center; gap: 12px; margin: 12px 0; }
.setup-complete-mark > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--theme-soft, #e6f2e9); color: var(--theme-ink, #176f65); font-size: 22px; }
.setup-complete-mark p { margin: 3px 0 0; font-size: 13px; }
@media (max-width: 600px) {
  .dashboard-editor { padding: 14px; scroll-margin-top: 85px; }
  .editor-toolbar-actions { width: 100%; }
  .editor-toolbar-actions button { flex: 1; padding-inline: 10px; font-size: 13px; }
  .editor-options { font-size: 12px; }
  .widget-picker { padding: 18px; }
  .widget-picker h2 { font-size: 20px; }
  .widget-picker-footer { bottom: -18px; }
  .dashboard-editing #dashboardCanvas { padding: 8px; }
}
@media print {
  .dashboard-editor, .editor-status, #dashboardEditorError, .widget-edit-controls,
  .widget-picker, .dashboard-empty, .dashboard-edit-entry { display: none !important; }
  .dashboard-editing #dashboardCanvas { background: none; outline: 0; padding: 0; }
}
@media screen and (max-width: 980px) {
  .dashboard-editing .workspace-content { padding-bottom: 110px; }
  .dashboard-editing .editor-toolbar-actions { position: fixed; z-index: 40; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); width: auto; padding: 10px; background: var(--theme-success-bg, #f8fbf6); border: 1px solid var(--theme-line, #b9d1c7); border-radius: 12px; box-shadow: 0 4px 24px #172f3829; }
  .dashboard-editing .editor-toolbar-actions button { flex: 1; }
}

/* Shared workspace surfaces, guided by the recovered Money Check-In concept. */
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding-bottom: 14px; border-bottom: 1px solid var(--bh-line); }
.panel-heading > div { min-width: 0; flex: 1 1 180px; }
.workspace-content .panel-heading h2 { margin: 0; font-size: 16px; line-height: 1.4; }
.panel-heading p { margin: 5px 0 0; color: var(--bh-muted); font-size: 12px; line-height: 1.5; }
.panel-heading > .text-action { min-height: 32px; padding: 4px 0; font-size: 12px; }
.panel-empty { padding: 18px 0 2px; font-size: 14px; }
.panel-empty > strong { font-weight: 600; }
.panel-empty p { margin: 5px 0 0; color: var(--bh-muted); font-size: 13px; }
.panel-empty > .text-action { margin-top: 5px; }

/* Filters, result context and the ledger belong to one readable surface. */
.ledger-surface { padding: 0; }
.ledger-surface > .panel-heading { padding: 18px 20px; }
.ledger-surface .transaction-filter-panel { margin: 0; border: 0; border-bottom: 1px solid var(--bh-line); border-radius: 0; background: transparent; }
.ledger-surface .transaction-filters { padding: 16px 20px; }
.ledger-surface .table-scroll { border-radius: 0 0 var(--bh-radius) var(--bh-radius); }
.ledger-surface .subs-table thead th { background: var(--theme-soft, #f6f8f5); }
.ledger-surface .subs-table tbody tr:last-child td { border-bottom: 0; }
.ledger-empty { padding: 22px 20px; }
.ledger-empty h2 { margin-top: 0; }
.ledger-empty .page-actions { margin-bottom: 0; }
.filter-summary { display: flex; flex-wrap: wrap; gap: 6px 8px; list-style: none; margin: 0; padding: 12px 20px; border-bottom: 1px solid var(--bh-line); }
.filter-summary li { max-width: 100%; padding: 4px 8px; border-radius: 5px; background: var(--theme-soft, #edf3eb); color: var(--bh-muted); font-size: 12px; overflow-wrap: anywhere; }
.filter-summary strong { color: var(--bh-ink); font-weight: 600; }

/* Account balances stay together; editors expand in the document flow. */
.account-workspace .account-record-list-v2 { gap: 0; }
.account-workspace .account-record-v2 { grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr); gap: 12px 24px; padding: 20px 0; border: 0; border-bottom: 1px solid var(--bh-line); border-radius: 0; box-shadow: none; }
.account-workspace .account-record-v2:last-child { padding-bottom: 0; border-bottom: 0; }
.account-workspace .account-record-v2-main { min-width: 0; overflow-wrap: anywhere; }
.account-workspace .account-record-v2-title { font-weight: 650; }
.account-workspace .account-record-v2-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.account-workspace .account-metric-tile-v2 { min-width: 0; border: 0; border-left: 2px solid var(--theme-line, #c7e0d4); border-radius: 0; padding: 0 0 0 12px; background: none; }
.account-workspace .account-metric-tile-label { color: var(--bh-muted); font-size: 10px; }
.account-workspace .account-metric-tile-value { color: var(--bh-ink); font-size: 20px; font-weight: 650; overflow-wrap: anywhere; }
.account-workspace .account-record-v2-actions { grid-column: 1 / -1; justify-self: stretch; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 8px 16px; }
.account-workspace .account-record-v2-actions > .text-action { justify-self: start; }
.account-workspace .account-quick-edit-v2 > summary { margin-left: auto; width: fit-content; }
.account-workspace .account-record-v2-actions:has(details[open]) { grid-template-columns: minmax(0, 1fr); }
.account-workspace .account-record-v2-actions:has(details[open]) > .text-action { order: 2; }
.account-workspace .account-quick-edit-panel-v2 { padding: 16px; background: var(--theme-soft, #f6f9f5); border-radius: 10px; }
.account-workspace .account-quick-edit-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.account-workspace .account-quick-edit-panel-v2 .surface-form { max-width: none; }

/* One outlook, with its input amounts alongside it, replaces six equal tiles. */
.plan-overview { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); padding: 0; overflow: hidden; }
.plan-outlook { padding: 24px; background: var(--bh-featured, #172f38); color: #fff; }
.workspace-content .plan-outlook h2 { margin: 0; max-width: 28ch; color: var(--theme-muted, #c1dcd2); font-size: 13px; font-weight: 550; line-height: 1.5; }
.plan-outlook-value { margin: 10px 0 16px; font-size: clamp(30px, 3vw, 42px); line-height: 1.15; font-weight: 650; letter-spacing: -1px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.plan-outlook p { margin: 0; color: #d5e5df; font-size: 12px; line-height: 1.6; }
.plan-outlook .plan-outlook-caution { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--theme-line, #416069); }
.plan-calculation { min-width: 0; padding: 22px 24px 14px; }
.workspace-content .plan-calculation h2 { margin: 0 0 8px; font-size: 16px; }
.plan-equation { margin: 0; }
.plan-equation > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bh-line); }
.plan-equation dt { color: var(--bh-muted); font-size: 12px; }
.plan-equation dd { flex-shrink: 0; max-width: 55%; margin: 0; color: var(--bh-ink); font-size: 18px; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.plan-intermediate { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 12px 0 4px; color: var(--bh-muted); font-size: 11px; }
.plan-intermediate strong { flex-shrink: 0; max-width: 55%; color: var(--bh-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.plan-explanation > summary { width: fit-content; min-height: 44px; padding: 12px 0; color: var(--bh-accent); font-size: 12px; cursor: pointer; }
.plan-explanation > p { margin: 0 0 8px; color: var(--bh-muted); font-size: 12px; line-height: 1.6; }
.plan-workspace .dashboard-panel { padding: 18px 20px; }
.plan-workspace .metric-grid { margin-bottom: 0; }
.plan-savings { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; margin-top: 16px; font-size: 12px; color: var(--bh-muted); }
.plan-savings strong { color: var(--bh-accent-dark); font-size: 24px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.plan-goals { list-style: none; padding: 0; margin: 0; }
.plan-goals > li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 12px 24px; padding: 16px 0; border-bottom: 1px solid var(--bh-line); font-size: 13px; }
.plan-goals > li:last-child { padding-bottom: 0; border-bottom: 0; }
.plan-goal-name, .plan-goal-amount { min-width: 0; overflow-wrap: anywhere; }
.plan-goal-name > span, .plan-goal-amount > span { display: block; margin-top: 4px; color: var(--bh-muted); font-size: 11px; }
.plan-goal-progress { display: flex; align-items: center; gap: 10px; color: var(--bh-muted); font-size: 11px; }
.plan-goal-progress .goal-progress { flex: 1; margin: 0; height: 6px; min-width: 0; }
.plan-goal-progress .goal-progress-fill { background: var(--theme-fill, #76baa1); }
.plan-goal-amount { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) and (min-width: 981px) {
  .plan-overview { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .plan-outlook, .plan-calculation { padding: 18px; }
}
@media (max-width: 600px) {
  .panel-heading > .text-action { min-height: 44px; }
  .ledger-surface > .panel-heading { padding: 16px; }
  .ledger-surface .transaction-filters { padding: 14px 16px; }
  .ledger-surface .phone-ledger tbody { gap: 0; }
  .ledger-surface .phone-ledger tbody tr { border: 0; border-radius: 0; border-bottom: 1px solid var(--bh-line); padding: 16px; }
  .ledger-surface .phone-ledger tbody tr:last-child { border-bottom: 0; }
  .filter-summary { padding: 12px 16px; }
  .account-workspace .account-record-v2 { grid-template-columns: minmax(0, 1fr); padding-top: 16px; gap: 12px; }
  .account-workspace .account-metric-tile-value { font-size: 19px; }
  .account-workspace .account-quick-edit-grid-v2 { grid-template-columns: minmax(0, 1fr); }
  .account-workspace .account-quick-edit-panel-v2 { padding: 12px; }
  .account-workspace .account-quick-edit-v2 > summary { min-height: 44px; }
  .plan-overview { grid-template-columns: minmax(0, 1fr); }
  .plan-outlook { padding: 20px; }
  .plan-outlook-value { font-size: 34px; margin-bottom: 12px; }
  .plan-outlook .plan-outlook-caution { margin-top: 12px; padding-top: 10px; }
  .plan-calculation { padding: 18px 20px 10px; }
  .plan-workspace .dashboard-panel { padding: 16px; }
  .plan-goals > li { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .plan-goal-amount { text-align: left; }
}

/* Consistent summaries, section headings and records throughout the workspace. */
.page-heading-row .page-section-hero { margin: 0; }
.summary-cards.summary-ribbon { gap: 1px; overflow: hidden; border: 1px solid var(--bh-line); border-radius: var(--bh-radius); background: var(--bh-line); }
.summary-ribbon > .summary-card { margin: 0; padding: 16px 20px; border: 0; border-radius: 0; box-shadow: none; background: var(--theme-surface, #fff); }
.summary-ribbon .summary-label { margin-bottom: 7px; color: var(--bh-muted); font-size: 11px; line-height: 1.5; letter-spacing: .2px; }
.summary-ribbon .summary-value { font-size: 25px; line-height: 1.25; font-variant-numeric: tabular-nums; }
.summary-ribbon .summary-date { font-size: 18px; }
.summary-ribbon .summary-copy { font-size: 16px; line-height: 1.45; }
.summary-ribbon > .summary-card-featured { background: var(--bh-featured, #172f38); }
.summary-ribbon .summary-card-featured .summary-label { color: var(--theme-muted, #c1dcd2); }
.summary-ribbon .summary-card-featured .summary-value { color: #fff; }
.panel-heading + :is(.simple-list, .steps-list, .balance-list, .doc-list, .surface-form, .edit-form) { margin-top: 16px; }
.panel-heading + .table-scroll { margin-top: 16px; }
.ledger-surface > .table-scroll { margin: 0; }
.ledger-toolbar { padding: 14px 20px; border-bottom: 1px solid var(--bh-line); }
.ledger-toolbar .segmented-control { margin: 0; }
.ledger-notice { margin: 0; padding: 14px 20px; border-bottom: 1px solid var(--bh-line); background: var(--theme-warning-bg, #fbfaf3); color: var(--bh-muted); font-size: 12px; line-height: 1.6; }
.ledger-notice strong { color: var(--theme-warning-text, #785319); }
.workspace-section-label { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; margin: 0 0 12px; color: var(--bh-ink); font-size: 14px; font-weight: 650; }
.workspace-section-label > span { color: var(--bh-muted); font-size: 12px; font-weight: 400; }
.goal-record .card-heading { padding-bottom: 14px; border-bottom: 1px solid var(--bh-line); }
.goal-record .card-heading h2 { font-size: 16px; }
.goal-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 16px; margin-top: 14px; padding-top: 8px; border-top: 1px solid var(--bh-line); }
.goal-record .goal-actions .goal-update { margin: 0; border: 0; }
.goal-actions .goal-archive { margin: 0; padding-top: 2px; }
.goal-actions:has(details[open]) { grid-template-columns: minmax(0, 1fr); }
.goal-actions:has(details[open]) .goal-archive { justify-self: end; }
.subscription-group > .panel-heading { margin-bottom: 16px; }
.subscription-record .card-heading { gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--bh-line); }
.subscription-record h3 { font-size: 16px; }
.subscription-record .metric dd { font-size: 21px; }
.review-records { list-style: none; margin: 0; padding: 0; }
.review-records > li { display: flex; justify-content: space-between; align-items: start; gap: 12px 20px; padding: 15px 0; border-bottom: 1px solid var(--bh-line); font-size: 13px; }
.review-records > li:last-child { border-bottom: 0; padding-bottom: 0; }
.review-records > li > div { min-width: 0; }
.review-records span { display: block; margin-top: 4px; color: var(--bh-muted); font-size: 12px; }
.review-record-amount { text-align: right; font-variant-numeric: tabular-nums; }
.help-topic { padding: 4px 0; border-bottom: 1px solid var(--bh-line); }
.help-topic:last-child { border: 0; padding-bottom: 0; }
.help-topic > summary { min-height: 48px; padding: 14px 0; color: var(--bh-ink); font-size: 14px; font-weight: 600; cursor: pointer; }
.help-topic > ul { margin: 0 0 16px; font-size: 14px; line-height: 1.65; }
.utility-guide { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 20px; padding: 16px 20px; border: 1px solid var(--bh-line); border-radius: var(--bh-radius); background: var(--theme-soft, #f0f4ef); }
.utility-guide > div:first-child { flex: 1 1 340px; min-width: 0; }
.utility-guide .section-card-title { margin: 0 0 5px; font-size: 15px; }
.utility-guide .section-card-note { margin: 0; font-size: 13px; }
.utility-guide .button-row { margin: 0; flex-wrap: wrap; }
.product-form-card .dense-panel { padding: 0; border: 0; background: none; }
.support-shell-refined .help-card { padding: 12px 0; border: 0; border-bottom: 1px solid var(--bh-line); border-radius: 0; background: none; }
.support-shell-refined .help-card:last-child { border: 0; }
.download-row { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 20px 0; border-bottom: 1px solid var(--bh-line); }
.download-row:last-child { padding-bottom: 0; border-bottom: 0; }
.download-row > div { min-width: 0; }
.workspace-content .download-row h3 { margin: 0 0 5px; font-size: 15px; }
.download-row p { margin: 0; color: var(--bh-muted); font-size: 13px; }
.download-row .action-link { flex-shrink: 0; }
.watchlist-ledger .ledger-notes { max-width: 340px; overflow-wrap: anywhere; }
.watchlist-ledger .watch-action-row { display: flex; flex-wrap: wrap; gap: 8px; }
.watchlist-ledger .status-tag { white-space: normal; }

/* Everyday check-in: reuse the existing surfaces and saved appearance tokens. */
.dashboard-top-right-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.dashboard-plan-link { margin: 10px 0 16px; }
.source-freshness, .forecast-explanation { margin: 16px 0; }
.source-freshness > summary, .forecast-explanation > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }
.source-freshness-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 16px 0; }
.source-freshness-grid dt { font-weight: 600; margin-bottom: 8px; }
.source-freshness-grid dd { margin: 6px 0; color: var(--bh-muted); overflow-wrap: anywhere; }
.check-in-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.check-in-steps h2 { margin-top: 10px; }
.check-in-steps p { line-height: 1.65; }
.forecast-equations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.category-correction { margin-top: 8px; min-width: 0; max-width: 340px; white-space: normal; }
.category-correction summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--bh-accent); }
.category-correction form { display: grid; gap: 10px; padding: 12px 0; min-width: 0; }
.category-correction label, .category-correction p { overflow-wrap: anywhere; white-space: normal; }
.category-correction select { width: 100%; min-width: 0; }
.category-correction .category-remember { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; }
.category-remember input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 3px; }
@media (max-width: 760px) {
  .source-freshness-grid, .forecast-equations, .check-in-steps { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .phone-ledger .ledger-category:has(.category-correction[open]) { grid-column: 1 / -1; }
  .category-correction { max-width: none; }
  .dashboard-top-right-actions .action-link { padding: 10px 12px; }
}
@media print {
  .category-correction, #install-balancehelm { display: none; }
  .dashboard-top-right-actions, .dashboard-plan-link, .source-freshness:not([open]) { display: none; }
  .check-in-steps > li { break-inside: avoid; }
}
@media (min-width: 601px) and (max-width: 1199px) {
  .summary-ribbon:has(> .summary-card:nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .summary-ribbon:has(> .summary-card:nth-child(5):last-child) > .summary-card { grid-column: span 2; }
  .summary-ribbon:has(> .summary-card:nth-child(5):last-child) > .summary-card:nth-child(n+4) { grid-column: span 3; }
}
@media (max-width: 600px) {
  .summary-ribbon { gap: 1px; }
  .summary-ribbon > .summary-card { padding: 14px 12px; }
  .summary-ribbon .summary-value { font-size: 20px; }
  .summary-ribbon .summary-date { font-size: 15px; }
  .summary-ribbon .summary-copy { font-size: 15px; }
  .ledger-toolbar, .ledger-notice { padding: 12px 16px; }
  .utility-guide { padding: 14px 16px; }
  .utility-guide > div:first-child { flex-basis: 100%; }
  .utility-guide .button-row { gap: 8px 14px; }
  .download-row { align-items: flex-start; flex-direction: column; padding: 16px 0; }
  .phone-ledger.detail-ledger tbody tr { grid-template-areas: none; }
  .phone-ledger.detail-ledger tbody td { grid-area: auto; text-align: left; font-size: 13px; }
  .phone-ledger.detail-ledger td::before { content: attr(data-label); display: block; margin-bottom: 4px; color: var(--bh-muted); font-size: 11px; font-weight: 400; }
  .phone-ledger.detail-ledger .ledger-description { grid-column: 1 / -1; font-size: 14px; }
  .phone-ledger.detail-ledger td:has(form), .phone-ledger.detail-ledger td:has(.estimate-date) { grid-column: 1 / -1; }
  .phone-ledger.watchlist-ledger tbody tr { grid-template-areas: 'description amount' 'category category' 'notes notes' 'actions actions'; }
  .watchlist-ledger .ledger-notes { grid-area: notes; max-width: none; font-size: 13px; }
  .watchlist-ledger .ledger-amount { font-size: 16px; }
  .watchlist-ledger .ledger-amount::before { content: 'Target price'; display: block; margin-bottom: 4px; color: var(--bh-muted); font-size: 11px; font-weight: 400; }
}

/* Support replies use the existing appearance tokens and native forms. */
.support-conversation { margin-top: 20px; padding: 24px; min-width: 0; }
.support-message-list { list-style: none; padding: 0; margin: 20px 0; }
.support-message { padding: 16px; margin-bottom: 12px; border: 1px solid var(--bh-line); border-radius: 12px; }
.support-team-message { border-left: 4px solid var(--bh-accent); }
.support-message-body { white-space: pre-wrap; overflow-wrap: anywhere; }
.support-conversation h2, .support-conversation .table-muted { overflow-wrap: anywhere; }
.support-conversation button { min-height: 44px; }
.support-conversation textarea { width: 100%; box-sizing: border-box; min-height: 110px; resize: vertical; }
@media (max-width: 600px) { .support-conversation { padding: 16px; } }
@media print { .support-conversation form { display: none; } }
