/* Auour View — namespaced (.av-). Shared buttons, cards, fields, tabs and
   dialogs come from portal-ui.css. */

.view-view {
  position: fixed;
  inset: 0;
  z-index: 6;
  overflow: auto;
  min-height: var(--app-height, 100vh);
}

.view-view *, .view-view *::before, .view-view *::after { box-sizing: border-box; }

.av-main {
  flex: 1;
  padding: 32px 24px 64px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.av-main-wide {
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  width: 100%;
}

.av-home {
  width: min(880px, 100%);
  margin: 0 auto;
}

.av-household-page {
  width: min(1440px, 100%);
  margin: 0 auto;
}

.av-tagline {
  margin: 6px 0 0;
  color: var(--ink-2);
  font-size: var(--fs-lg);
  line-height: 1.5;
}

.av-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.av-toolbar h1 { margin: 0; }
.av-toolbar h2 { margin: 0; }
.av-toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.av-counts {
  margin: 4px 0 0;
  font-size: var(--fs-sm);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

.av-empty { margin: 0; font-size: var(--fs-sm); }

.av-empty-block {
  padding: 48px 24px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--hairline-strong);
  border-radius: var(--r-lg);
  font-size: var(--fs-md);
}

.av-error {
  width: min(1440px, 100%);
  margin: 0 auto 16px;
}

.av-search {
  display: block;
  width: 100%;
  min-height: 40px;
  margin: 0 0 16px;
  padding: 0 14px;
  border: 0;
  border-radius: var(--r-md);
  background: rgba(13, 26, 43, 0.06);
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: var(--fs-md);
  transition: background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.av-search::placeholder { color: var(--ink-3); }

.av-search:focus {
  outline: none;
  background: var(--surface);
  box-shadow: 0 0 0 3px rgba(22, 40, 63, 0.12), var(--shadow-1);
}

/* Household list: a grouped card of rows. */
.av-households {
  list-style: none;
  margin: 0;
  padding: 4px;
  display: grid;
  gap: 0;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-1);
}

.av-households > li { position: relative; }

.av-households > li + li::before {
  content: '';
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 1px;
  background: var(--hairline);
}

.av-household {
  width: 100%;
  text-align: left;
  appearance: none;
  border: 0;
  background: transparent;
  border-radius: var(--r-md);
  padding: 14px 40px 14px 16px;
  font: inherit;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
  transition: background var(--dur) var(--ease);
}

.av-household::after {
  content: '\203A';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-3);
  font-size: 22px;
  line-height: 1;
}

.av-household strong { font-weight: 600; }
.av-household .av-counts { margin: 0; }
.av-household:hover { background: var(--fill); }

/* Records grid */
.av-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  align-items: start;
  gap: 16px;
}

.av-card { padding: 18px 18px 14px; }

.av-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.av-card h3 { margin: 0; font-size: var(--fs-md); }

.av-list {
  list-style: none;
  margin: 0 -8px;
  padding: 0;
  display: grid;
  gap: 1px;
}

.av-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
  padding-right: 8px;
  border-radius: var(--r-sm);
  transition: background var(--dur) var(--ease);
}

.av-list li:hover { background: var(--fill); }

.av-row {
  width: 100%;
  text-align: left;
  appearance: none;
  border: 0;
  background: transparent;
  border-radius: var(--r-sm);
  padding: 8px;
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--ink);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.av-row strong { font-weight: 500; }

.av-row-static {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
}

.av-row.is-selected,
.av-row-static.is-selected {
  background: var(--info-tint);
  box-shadow: inset 0 0 0 1px var(--accent);
}

.av-rel {
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.av-rel-arrow { color: var(--ink-3); }

/* Actions appear on hover; always visible on touch. */
.av-row-actions {
  display: flex;
  gap: 10px;
  opacity: 0;
  transition: opacity var(--dur) var(--ease);
}

.av-list li:hover .av-row-actions,
.av-row-actions:focus-within { opacity: 1; }

.av-row-actions .av-link { font-size: var(--fs-xs); }

@media (hover: none) {
  .av-row-actions { opacity: 1; }
}

/* Workspace: content + inspector sheet */
.av-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 16px;
  min-height: min(68vh, 640px);
}

.av-workspace-main {
  min-width: 0;
  overflow: auto;
}

.av-workspace-main-flush {
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-1);
}

.av-side {
  align-self: start;
  position: sticky;
  top: calc(var(--top-h) + 16px);
  max-height: calc(var(--app-height, 100vh) - var(--top-h) - 32px);
  overflow: auto;
  padding: 20px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-2);
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: var(--fs-sm);
  line-height: 1.55;
}

.av-side h3 {
  margin: 0;
  font-family: var(--font-title);
  font-weight: 500;
  font-size: var(--fs-xl);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.av-kicker {
  margin: 0;
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--ink-3);
}

.av-side-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.av-side-rels {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 6px;
}

.av-side-rels .av-link { vertical-align: top; }

/* Map */
.av-map {
  min-height: 620px;
  display: flex;
  flex-direction: column;
}

.av-map-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 16px 20px 8px;
}

.av-map-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.av-map-picker select {
  width: 220px;
  max-width: 100%;
  min-height: 32px;
  padding: 4px 10px;
  font-size: var(--fs-sm);
}

.av-plan-totals {
  margin: 0;
  padding: 4px 20px 0;
  font-size: 15px;
  font-weight: 600;
  color: #16283F;
  font-variant-numeric: tabular-nums;
}

.av-plan-totals[hidden] { display: none; }

.av-map-note {
  margin: 0;
  padding: 0 20px 14px;
  border-bottom: 1px solid var(--hairline);
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--ink-3);
}

.av-workspace-map {
  grid-template-columns: minmax(0, 1fr);
}

.av-map-card.av-side {
  position: absolute;
  z-index: 3;
  top: 16px;
  left: 16px;
  width: min(380px, calc(100% - 24px));
  max-height: calc(100% - 24px);
}

.av-map-card h3 { padding-right: 36px; }

.av-map-stage {
  position: relative;
  flex: 1 0 auto;
  min-height: 460px;
  height: clamp(520px, calc(100vh - 380px), 800px);
  overflow: hidden;
}

.av-region-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.av-region {
  position: absolute;
  box-sizing: border-box;
  border: 1px dashed rgba(22, 40, 63, 0.28);
  border-radius: 16px;
}

.av-region-outside {
  border-color: rgba(138, 106, 63, 0.7);
}

.av-region-label {
  position: absolute;
  top: 0;
  left: 0;
  right: 16px;
  height: 22px;
  padding: 4px 12px 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #4F5866;
  cursor: grab;
  pointer-events: auto;
  user-select: none;
}

.av-region-label:active { cursor: grabbing; }

.av-region-label:focus-visible,
.av-region-handle:focus-visible {
  outline: 2px solid #16283F;
  outline-offset: 1px;
}

.av-region-outside .av-region-label { color: #8A6A3F; }

.av-region-edge {
  position: absolute;
  pointer-events: auto;
  cursor: grab;
}

.av-region-edge-w { top: 22px; bottom: 16px; left: 0; width: 12px; }
.av-region-edge-e { top: 22px; bottom: 16px; right: 0; width: 12px; }
.av-region-edge-s { left: 12px; right: 16px; bottom: 0; height: 12px; }

.av-region-handle {
  position: absolute;
  right: 1px;
  bottom: 1px;
  z-index: 1;
  width: 16px;
  height: 16px;
  pointer-events: auto;
  cursor: nwse-resize;
  border-right: 2px solid rgba(22, 40, 63, 0.55);
  border-bottom: 2px solid rgba(22, 40, 63, 0.55);
}

.av-region-outside .av-region-handle {
  border-right-color: rgba(138, 106, 63, 0.85);
  border-bottom-color: rgba(138, 106, 63, 0.85);
}

.av-graph {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 1px 1px, rgba(13, 26, 43, 0.09) 1px, transparent 0) 0 0 / 22px 22px,
    var(--bg);
}

.av-graph-missing {
  padding: 32px;
  color: var(--neg);
}

.av-map-tools {
  position: absolute;
  z-index: 4;
  left: 16px;
  bottom: 16px;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-2);
}

.av-map-tools .av-btn {
  min-width: 32px;
  min-height: 32px;
  background: transparent;
  font-size: var(--fs-xs);
}

.av-map-tools .av-btn:hover { background: var(--fill); }

.av-map-tools .av-btn[aria-pressed="true"] { background: var(--fill-active); }

.av-map-tools output {
  width: 44px;
  text-align: center;
  font-size: 11px;
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

.av-map-toggles {
  position: absolute;
  z-index: 4;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.av-role-toggle {
  min-height: 40px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--hairline);
  box-shadow: var(--shadow-2);
}

.av-role-toggle[aria-pressed="true"] {
  background: var(--info-tint);
  color: var(--info);
}

.av-map-empty {
  position: absolute;
  top: 45%;
  left: 15%;
  right: 15%;
  text-align: center;
  color: var(--ink-3);
  pointer-events: none;
}

.av-map-empty[hidden], .av-role-toggle[hidden] { display: none; }

.av-map-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 20px;
  border-top: 1px solid var(--hairline);
  font-size: 11px;
  color: var(--ink-3);
}

.av-legend {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-size: 11px;
  color: var(--ink-2);
}

.av-legend li {
  display: flex;
  align-items: center;
  gap: 5px;
}

.av-map-status {
  margin: 0;
  font-size: var(--fs-xs);
  color: var(--warn);
}

.av-map-status:not(:empty) { padding: 10px 20px; }

/* Dialog + inspector forms */
.av-trust-card {
  position: relative;
  width: min(640px, 100%);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.av-trust-card h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-right: 36px;
}

.av-label-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.av-help {
  appearance: none;
  flex: none;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid var(--hairline);
  border-radius: 50%;
  background: var(--fill);
  color: var(--ink-3);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  cursor: pointer;
}

.av-help[aria-expanded="true"] {
  background: var(--info-tint);
  color: var(--info);
}

.av-help-text {
  display: block;
  margin: 2px 0 6px;
  font-size: var(--fs-xs);
  font-weight: 400;
  line-height: 1.45;
  color: var(--ink-3);
}

.av-help-text[hidden] { display: none; }

.av-inspect-dl .av-help-text,
.av-role-read .av-help-text { grid-column: 1 / -1; margin: 0 0 4px; }

.av-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}

.av-trust-card-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--fill);
  color: var(--ink-2);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.av-trust-card-close:hover { background: var(--fill-active); color: var(--ink); }

.av-dialog h2 {
  margin: 0 0 16px;
  font-family: var(--font-title);
  font-weight: 500;
  font-size: var(--fs-xl);
}

.av-dialog form,
.av-dialog label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.av-dialog label {
  margin-bottom: 14px;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--ink-2);
}

.av-inspect-form,
.av-inspect-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.av-inspect-form label {
  margin-bottom: 8px;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--ink-2);
}

.av-inspect-form input,
.av-inspect-form select,
.av-inspect-form textarea {
  font-size: var(--fs-sm);
  min-height: 34px;
  padding: 6px 10px;
}

.av-check {
  flex-direction: row !important;
  align-items: center;
  gap: 8px !important;
}

.av-check input { min-height: 0; }

.av-inspect-section {
  border-top: 1px solid var(--hairline);
  padding: 10px 0 4px;
}

.av-inspect-section summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: var(--fs-sm);
  font-weight: 600;
  list-style: none;
}

.av-inspect-section summary::-webkit-details-marker { display: none; }

.av-inspect-dl {
  margin: 8px 0 4px;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 6px 12px;
  font-size: var(--fs-sm);
}

.av-inspect-dl dt { color: var(--ink-3); }
.av-inspect-dl dd { margin: 0; }

.av-holding-form {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.av-forecast {
  padding: 4px 4px 28px;
}

.av-forecast-table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
  font-size: var(--fs-sm);
}

.av-forecast-table th,
.av-forecast-table td {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid var(--hairline);
}

.av-forecast-table td {
  font-variant-numeric: tabular-nums;
}

.av-forecast-events,
.av-forecast-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0;
}

.av-forecast-events .is-selected {
  outline: 2px solid var(--ink, currentColor);
}

.av-forecast-banner {
  font-weight: 600;
}

.av-forecast-card {
  flex: 1 1 280px;
  border: 1px solid var(--hairline);
  padding: 12px;
}

.av-forecast-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
}

.av-forecast-card-head h3 {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}

.av-forecast-person-icon {
  flex: 0 0 auto;
  display: inline-flex;
  color: #3F6E8C;
}

.av-forecast-person-icon svg {
  display: block;
}

.av-forecast-wealth {
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0 0 8px;
}

.av-forecast-wealth-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  opacity: 0.75;
}

.av-forecast-headline {
  font-size: 1.1rem;
  font-weight: 600;
}

.av-forecast-section h4 {
  margin: 12px 0 6px;
}

.av-forecast-row {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 1fr 0.8fr 0.8fr 0.6fr;
  gap: 8px;
  width: 100%;
  text-align: left;
  margin: 0 0 6px;
  padding: 8px;
  border: 1px solid var(--hairline);
  background: transparent;
  color: inherit;
  font: inherit;
}

.av-forecast-dialog {
  max-width: 40rem;
  border: 1px solid var(--hairline);
  padding: 16px;
}

.av-forecast-dialog::backdrop {
  background: rgba(0, 0, 0, 0.35);
}

.av-forecast-card.is-flow-selected {
  outline: 2px solid var(--ink, currentColor);
}

.av-forecast-flow-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
  margin: 12px 0;
}

.av-forecast-flow {
  min-height: 280px;
  border: 1px solid var(--hairline);
  overflow-x: auto;
}

.av-forecast-flow-canvas {
  min-width: 100%;
  min-height: 420px;
}

.av-forecast-flow-totals {
  margin: 8px 0 0;
  padding-left: 1.2rem;
}

.av-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.av-forecast-coverage {
  font-weight: 600;
  margin: 8px 0;
}

.av-forecast-outcomes th[scope="row"] {
  font-weight: 600;
  vertical-align: top;
}

.av-forecast-outcomes td {
  vertical-align: top;
}

.av-forecast-asset,
.av-forecast-person,
.av-forecast-conditions {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.av-forecast-asset[aria-pressed="true"],
.av-forecast-person[aria-pressed="true"] {
  outline: 2px solid var(--ink, currentColor);
  outline-offset: 2px;
}

.av-forecast-paths-toggle {
  display: block;
  margin-top: 6px;
}

.av-forecast-outcome-row.is-selected > th,
.av-forecast-outcome-row.is-selected > td {
  background: rgba(47, 109, 181, 0.12);
  box-shadow: inset 3px 0 0 #2f6db5;
}

.av-forecast-outcome-row.is-person > th,
.av-forecast-outcome-row.is-person > td {
  background: rgba(47, 109, 181, 0.08);
  box-shadow: inset 3px 0 0 #0b3d91;
}

.av-forecast-path-row td {
  border-bottom-style: dashed;
  padding-top: 4px;
  padding-bottom: 4px;
}

.av-forecast-path {
  display: grid;
  gap: 2px;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 1px dashed var(--hairline);
  border-left-width: 3px;
  padding: 6px 8px;
  color: inherit;
  font: inherit;
  font-size: var(--fs-sm);
  cursor: pointer;
}

.av-forecast-path-row.is-supported .av-forecast-path {
  border-left-color: #2f6db5;
  border-left-style: dashed;
}

.av-forecast-path-row.is-conditional .av-forecast-path {
  border-left-color: #9a4b7a;
  border-left-style: dotted;
}

.av-forecast-path-row.is-unresolved .av-forecast-path {
  border-left-color: #b3261e;
  border-left-style: dotted;
}

.av-forecast-path-step {
  display: block;
}

.av-forecast-path-step.av-depth-1 { padding-left: 1.2rem; }
.av-forecast-path-step.av-depth-2 { padding-left: 2.4rem; }
.av-forecast-path-step.av-depth-3 { padding-left: 3.6rem; }
.av-forecast-path-step.av-depth-4 { padding-left: 4.8rem; }
.av-forecast-path-step.av-depth-5 { padding-left: 6rem; }
.av-forecast-path-step.av-depth-6 { padding-left: 7.2rem; }

.av-forecast-path-end {
  display: block;
  margin-top: 2px;
  font-style: italic;
}

.av-forecast-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  list-style: none;
  margin: 6px 0;
  padding: 0;
  font-size: var(--fs-sm);
}

.av-forecast-legend li {
  display: flex;
  align-items: center;
  gap: 6px;
}

.av-legend-line {
  display: inline-block;
  width: 28px;
  border-top: 2px solid #333333;
}

.av-legend-line.is-retained {
  border-top-color: #8a8a8a;
  border-top-width: 1px;
}

.av-legend-line.is-beneficial {
  border-top-style: dashed;
  border-top-color: #2f6db5;
}

.av-legend-line.is-conditional {
  border-top-style: dotted;
  border-top-color: #9a4b7a;
}
.av-age {
  margin: 10px 0 4px;
  font-size: var(--fs-sm);
}

.av-age label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.av-section-note {
  margin: 8px 0 4px;
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--ink-3);
}

.av-value-hero {
  margin: 10px 0 8px;
  padding: 12px 14px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  background: transparent;
}

.av-value-adviser {
  background: var(--surface);
  border-color: var(--hairline-strong);
  box-shadow: var(--shadow-1);
}

.av-value-external_estimate,
.av-value-public_record {
  border-style: dashed;
}

.av-value-kicker {
  margin: 0;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.av-value-amount {
  margin: 2px 0 0;
  font-family: var(--font-title);
  font-size: var(--fs-xl);
  font-weight: 500;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.av-value-caption,
.av-value-range {
  margin: 2px 0 0;
  font-size: var(--fs-xs);
  color: var(--ink-2);
}

.av-record-list {
  margin: 8px 0 4px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.av-record-list li {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.av-record {
  margin: 8px 0;
  padding-top: 8px;
  border-top: 1px solid var(--hairline);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.av-role-read {
  margin: 8px 0 4px;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 6px 12px;
  align-items: start;
  font-size: var(--fs-sm);
}

.av-role-label { color: var(--ink-3); }
.av-role-read-solo { grid-template-columns: 1fr; }

.av-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.av-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: var(--r-pill);
  background: var(--fill);
  font-size: var(--fs-xs);
  color: var(--ink);
}

.av-chip button {
  appearance: none;
  border: 0;
  background: none;
  color: var(--ink-3);
  padding: 0;
  cursor: pointer;
  font: inherit;
}

.av-chip button:hover { color: var(--neg); }

.av-role-picker {
  margin: 8px 0;
  padding: 12px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
}

.av-role-picker legend {
  padding: 0 4px;
  font-size: var(--fs-sm);
  font-weight: 600;
}

.av-role-picker > input[type="search"] {
  width: 100%;
  margin-top: 8px;
}

.av-role-options {
  display: grid;
  gap: 2px;
  max-height: 160px;
  overflow: auto;
  margin: 6px 0;
}

.av-role-option {
  appearance: none;
  border: 0;
  border-radius: var(--r-xs);
  background: transparent;
  color: var(--ink);
  padding: 6px 8px;
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-size: var(--fs-sm);
}

.av-role-option:hover { background: var(--fill); }
.av-role-option span { color: var(--ink-3); font-size: var(--fs-xs); }
.av-role-attribute { margin-top: 8px; }

.av-rel-form .av-rel-arrow-block {
  margin: -6px 0 6px;
  color: var(--ink-3);
  text-align: center;
  font-size: var(--fs-lg);
}

.av-rel-chain-read {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  margin: 0;
}

.av-form-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

@media (max-width: 1100px) {
  .av-workspace { grid-template-columns: minmax(0, 1fr); }
  .av-side { position: static; max-height: none; }
  .av-map-stage { min-height: 460px; height: 58vh; }
}

@media (max-width: 800px) {
  .av-main { padding: 20px 12px 48px; }
  .av-list li { grid-template-columns: 1fr; }
  .av-row-actions { opacity: 1; padding: 0 8px 8px; }
  .av-map-header { padding: 14px; }
  .av-map-note { padding: 0 14px 12px; }
  .av-map-footer { padding: 12px 14px; }
  .av-map-stage { min-height: 420px; height: 52vh; }
  .av-lenses button, .av-map-tools .av-btn { min-height: 40px; }
  .av-enrich-actions { flex-direction: column; }
  .av-enrich-actions .av-btn,
  .av-lookup .av-form-actions .av-btn,
  .av-reviews .av-btn { width: 100%; }
  .av-estimate-columns { grid-template-columns: 1fr; }
  .av-lookup-address { grid-template-columns: 1fr 1fr; }
}

.av-enrich-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
}

.av-estimate-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.av-reviews {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--fill);
  min-width: 0;
}

.av-review-item + .av-review-item {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.av-review-item h4 {
  margin: 0 0 4px;
  font-size: var(--fs-sm);
}

.av-review-item p { margin: 0 0 6px; }

.av-review-label {
  margin: 8px 0 2px;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.av-review-list {
  margin: 0 0 6px;
  padding-left: 18px;
}

.av-review-note {
  display: block;
  margin-top: 8px;
}

.av-review-note input { width: 100%; }

.av-review-status { font-size: var(--fs-sm); }

.av-review-count {
  display: block;
  color: var(--ink-3);
  font-size: var(--fs-xs);
  font-weight: 400;
}

.av-coverage-panel {
  grid-column: 1 / -1;
}

.av-coverage-panel .av-review-item {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.av-coverage-panel .av-card-head {
  align-items: baseline;
  gap: 12px;
}

.av-doc-gaps {
  margin: 0 0 10px;
}

.av-doc-gaps .av-review-item {
  margin: 0 0 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--fill);
}

.av-side-rels .av-muted {
  display: block;
  font-size: var(--fs-xs);
}

.av-classify {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--fill);
}

.av-classify label {
  display: block;
  margin: 8px 0;
}

.av-classify select {
  width: 100%;
}

.av-extract {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--fill);
}

.av-extract-item + .av-extract-item {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.av-extract-item h4 {
  margin: 0 0 4px;
  font-size: var(--fs-sm);
}

.av-retrieval-history {
  margin: 12px 0;
  font-size: var(--fs-sm);
}

.av-history {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.av-history li {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.av-stale {
  color: var(--ink-2);
  font-size: var(--fs-xs);
}

.av-lookup {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--fill);
}

.av-lookup-address {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(3.25rem, 0.5fr) minmax(6.25rem, 0.75fr);
  gap: 8px 10px;
  margin-bottom: 10px;
}

.av-lookup-street { grid-column: 1 / -1; }

.av-dialog .av-lookup-address label,
.av-lookup-address label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  min-width: 0;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--ink-2);
}

.av-lookup-address input {
  width: 100%;
  min-width: 0;
}

.av-lookup-note {
  margin: 8px 0;
  font-size: var(--fs-sm);
}

.av-lookup-candidate,
.av-lookup-group {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin: 8px 0 4px;
}

.av-lookup-fields {
  margin: 0 0 8px 24px;
  padding: 0;
  font-size: var(--fs-sm);
}

.av-lookup-current {
  display: block;
  color: var(--ink-3);
}

.av-owner-routes {
  margin: 8px 0 4px 24px;
}

.av-owner-routes .av-btn { margin: 4px 0; }

@media (max-width: 520px) {
  .av-map-toggles { top: 12px; bottom: auto; right: 8px; }
  .av-map-tools { left: 8px; right: 8px; justify-content: center; }
  .av-map-tools .av-btn { padding-left: 7px; padding-right: 7px; }
}

/* Detail-card simplification: progressive disclosure and readable summaries. */
.av-section-heading { display: flex; flex-direction: column; gap: 2px; }
.av-inspect-section summary small { color: var(--ink-3); font-weight: 400; font-size: var(--fs-xs); }
.av-inspect-section > summary::before { content: '›'; flex: none; width: 16px; font-size: 20px; line-height: 1; color: var(--ink-3); }
.av-inspect-section[open] > summary::before { transform: rotate(90deg); }
.av-inspect-section > summary { min-height: 42px; justify-content: flex-start; }
.av-inspect-section > summary > button { margin-left: auto; }
.av-help { width: 26px; height: 26px; line-height: 24px; }
.av-preview-value { display: flex; flex-direction: column; gap: 4px; padding: 12px 0; }
.av-preview-value strong { font-size: var(--fs-xl); font-variant-numeric: tabular-nums; }
.av-more { margin-left: auto; }
.av-more summary { cursor: pointer; padding: 8px; list-style: none; }
.av-more summary::-webkit-details-marker { display: none; }
.av-map-card p { margin: 4px 0; }
.av-map-card-bar {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: -4px 0 4px;
  padding-bottom: 6px;
  background: var(--surface);
}
.av-map-card-bar .av-trust-card-close {
  position: static;
  order: 1;
  margin-left: auto;
}
@media (min-width: 1101px) { .av-workspace:not(.av-workspace-map) { grid-template-columns: minmax(0, 1fr) 460px; } }
.av-map-card.is-expanded { width: min(480px, calc(100% - 24px)); }
@media (max-width: 520px) { .av-inspect-dl { grid-template-columns: 1fr; gap: 3px; } .av-inspect-dl dd { margin-bottom: 10px; }
  .av-map-card.is-expanded { position: fixed; top: 144px !important; left: 12px !important; bottom: 12px; width: calc(100vw - 24px); max-height: calc(100dvh - 156px) !important; z-index: 30; }
}

/* Current / scenario context, scenarios, comparison, adviser, history */
.av-workspace-wide { grid-template-columns: minmax(0, 1fr) !important; }
.av-context {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: -8px 0 20px;
  padding: 12px 16px;
  border-radius: var(--r-lg);
  border: 1px solid var(--hairline);
  background: var(--surface);
}
.av-context-current { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 12px; }
.av-context-scenario { border-color: var(--gold); background: var(--gold-tint); }
.av-context-head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.av-context-name { font-size: var(--fs-lg); }
.av-context-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-left: auto; }
.av-context-note { margin: 0; font-size: var(--fs-sm); }
.av-context-label {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  background: var(--accent);
  color: #fff;
}
.av-context-scenario .av-context-label, .av-context-label-scenario { background: var(--gold); color: var(--ink); }
.av-context-changes summary { cursor: pointer; font-weight: 500; font-size: var(--fs-sm); }
.av-context-changes summary small { color: var(--ink-3); font-weight: 400; margin-left: 4px; }
.av-changes { margin: 8px 0 0; padding-left: 18px; font-size: var(--fs-sm); line-height: 1.5; }
.av-changes li + li { margin-top: 4px; }
.av-blocking li { color: var(--neg); }
.av-not-modeled { color: var(--ink-2); }

.av-mark {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  vertical-align: middle;
  background: var(--fill);
  color: var(--ink-2);
}
.av-row .av-mark { width: max-content; justify-self: start; align-self: start; margin-left: 0; }
.av-mark-proposed { background: var(--gold-tint); color: var(--warn); }
.av-mark-changed { background: var(--info-tint); color: var(--info); }

/* Scenario-only: Current-only tools are hidden rather than failing */
.av-in-scenario [data-av-add-document], .av-in-scenario [data-av-rename-household], .av-in-scenario [data-av-archive="household"],
.av-in-scenario [data-av-add-member="document"], .av-in-scenario [data-av-edit-member="document"], .av-in-scenario [data-av-archive="document"],
.av-in-scenario [data-av-lookup], .av-in-scenario [data-av-refresh-property], .av-in-scenario [data-av-market-estimate], .av-in-scenario [data-av-estimate-save],
.av-in-scenario [data-av-classify-run], .av-in-scenario [data-av-extract-run], .av-in-scenario [data-av-review-ack] { display: none !important; }

.av-scenarios h2, .av-adviser h2 { margin: 0; }
.av-scenario-list { margin: 8px 0 0; }
.av-scenario-list li { align-items: start; padding: 10px 8px; }
.av-compare-setup form { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.av-compare-setup form label { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-sm); }
.av-compare-setup form input[name="ages"] { width: 120px; }
.av-scenario-row.is-open { background: var(--gold-tint); }
.av-scenario-row .av-row-actions { opacity: 1; flex-wrap: wrap; align-items: center; }
.av-scenario-meta { margin: 4px 0 0; font-size: var(--fs-xs); }
.av-compare-setup { margin-top: 20px; }
.av-compare { margin-top: 20px; }
.av-compare-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  align-items: start;
}
.av-compare-column {
  padding: 14px 16px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  background: var(--surface);
  min-width: 0;
}
.av-compare-column h4 { margin: 0 0 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.av-compare-column h5, .av-compare h5 { margin: 14px 0 4px; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-3); }
.av-compare-scenario { border-color: var(--gold); }
.av-compare-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); margin-top: 6px; }
.av-compare-table th, .av-compare-table td { text-align: left; padding: 6px 8px; border-top: 1px solid var(--hairline); vertical-align: top; }
.av-compare-table th { color: var(--ink-3); font-weight: 500; border-top: 0; }
.av-compare-table td div { white-space: nowrap; }
.av-compare-table td div .av-muted { display: inline-block; min-width: 76px; }
.av-review-dialog { max-width: 640px; }
.av-review-dialog h3 { margin: 16px 0 4px; font-size: var(--fs-md); }

.av-adviser-nav { margin-bottom: 16px; }
.av-notes li, .av-tasks li { align-items: start; padding: 10px 8px; }
.av-notes .av-row-actions, .av-tasks .av-row-actions { opacity: 1; }
.av-note-text { margin: 4px 0; white-space: pre-wrap; line-height: 1.5; }
.av-note-meta { margin: 2px 0 0; font-size: var(--fs-xs); }
.av-task.is-done strong { text-decoration: line-through; color: var(--ink-3); }
.av-history { list-style: none; margin: 0; padding: 0; }
.av-history-event { padding: 10px 0; border-top: 1px solid var(--hairline); }
.av-history-event:first-child { border-top: 0; }
.av-history-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.av-history-changes { margin: 6px 0 0; padding-left: 18px; font-size: var(--fs-sm); line-height: 1.5; }
.av-history-changes li, .av-changes li { display: list-item; }
.av-history-changes .av-muted { display: inline-block; min-width: 140px; }

@media (max-width: 800px) {
  .av-context-actions { margin-left: 0; width: 100%; }
  .av-context-actions .av-btn { flex: 1 1 auto; }
  .av-compare-columns { grid-template-columns: 1fr; }
  .av-scenario-list li, .av-notes li, .av-tasks li { grid-template-columns: 1fr; }
  .av-history-changes .av-muted { display: block; min-width: 0; }
}

@media (max-width: 480px) {
  /* Five household tabs fit a phone width without the hidden horizontal scroll. */
  .av-tabs .av-tab { padding: 0 8px; font-size: var(--fs-xs); }
}
