/* Client portal (assets/client-deal.js). Designed in Figma, page
   "Client: Transaction", on the same tokens as the agent workspace
   (money.css): gray ground, white cards, navy ink, amber for "now". */
.cx-theme {
  --cx-bg: #f5f6f8; --cx-surface: #ffffff; --cx-surface-2: #f0f2f4; --cx-line: #e4e7ea; --cx-line-soft: #eef0f2;
  --cx-ink: #171b21; --cx-muted: #5c6672; --cx-faint: #8d97a2;
  --cx-navy: var(--brand, #1d2733); --cx-navy-2: var(--brand-ink, #0d131b);
  --cx-amber: #d97706; --cx-amber-soft: #fef3c7; --cx-amber-ink: #b45309; --cx-amber-bright: #f59e0b;
  --cx-pos: #16a34a; --cx-pos-soft: #dcfce7; --cx-neg: #e11d48; --cx-neg-soft: #ffe4e9;
  /* the older client screens read these */
  --paper: var(--cx-bg); --card: var(--cx-surface); --line: var(--cx-line); --hair: var(--cx-line-soft);
  --ink: var(--cx-ink); --muted: var(--cx-muted); --faint: var(--cx-faint);
  --accent: var(--cx-navy); --accent-ink: var(--cx-navy-2); --accent-soft: var(--brand-soft, #e3e8ef);
  --done: var(--cx-pos); --done-soft: var(--cx-pos-soft); --warn: var(--cx-amber); --warn-soft: var(--cx-amber-soft);
  --serif: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
  font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
  background: var(--cx-bg); color: var(--cx-ink); min-height: 100vh; -webkit-font-smoothing: antialiased;
}
body:has(.cx-theme) { background: #f5f6f8; }
.cx-theme .heading, .cx-theme .greeting, .cx-theme .card-title, .cx-theme .c1-card-title { font-family: inherit; font-style: normal; font-weight: 600; letter-spacing: -0.01em; }
.cx-main { padding: 28px clamp(16px, 4vw, 48px) 80px; }
.cx-page { max-width: 1160px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.cx-i { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -2px; }

/* ---- top bar extras ---- */
.cx-bar .ag-tabs { overflow-x: auto; scrollbar-width: none; }
.cx-bar .ag-tabs::-webkit-scrollbar { display: none; }
.cx-bar .ag-right { gap: 12px; }
.cx-site { font-size: 13px; color: var(--cx-muted); white-space: nowrap; }
.cx-site:hover { color: var(--cx-ink); }
.cx-dealpick { font: inherit; font-size: 12.5px; padding: 6px 8px; border: 1px solid var(--cx-line); border-radius: 8px; background: #fff; color: var(--cx-ink); max-width: 220px; }
@media (max-width: 900px) { .cx-site, .cx-dealpick { display: none; } }
/* Phones: the menu is a second row under the bar that scrolls sideways (the
   agent's bottom tab bar is not drawn for clients or partners). The bar
   scrolls away with the page, so a Perks tool's chips stick at the very top. */
@media (max-width: 700px) {
  .ag-bar.cx-bar { position: static; flex-wrap: wrap; padding-right: 16px; }
  .ag-bar.cx-bar .ag-right { margin-left: auto; gap: 10px; }
  .ag-bar.cx-bar .ag-tabs { display: flex; order: 5; flex: 0 0 calc(100% + 32px); margin: 0 -16px; padding: 4px 16px 10px; gap: 6px; border-top: 1px solid var(--cx-line-soft); }
  .ag-bar.cx-bar .ag-tab { flex-shrink: 0; min-height: 34px; padding: 7px 14px; border-radius: 999px; background: var(--cx-surface-2); }
  .ag-bar.cx-bar .ag-tab.active { background: var(--cx-navy); color: #fff; }
  .ag-bar.cx-bar.cx-intool .ag-tabs { display: none; }
  .cx-theme .m-side { top: 0; }
  .cx-theme .money-app { min-height: calc(100vh - 104px); }
}

/* ---- type ---- */
.cx-h1 { font-size: 28px; font-weight: 700; letter-spacing: -0.02em; margin: 4px 0 0; }
.cx-lede { margin: -12px 0 4px; color: var(--cx-muted); font-size: 14px; line-height: 1.5; }
.cx-faint { color: var(--cx-faint); }
.cx-h2 { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; margin: 2px 0 0; }
.cx-h2.sm { font-size: 16px; margin-bottom: 4px; }
.cx-eyebrow { font-size: 10.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cx-faint); }
.cx-eyebrow.accent { color: var(--cx-amber); }
.cx-eyebrow.on-dark { color: rgba(255,255,255,.6); }
.cx-row-title { font-size: 14.5px; font-weight: 600; line-height: 1.35; }
.cx-row-sub { font-size: 13px; color: var(--cx-muted); line-height: 1.45; margin-top: 2px; }
.cx-row-sub .neg { color: var(--cx-neg); font-weight: 600; }
.cx-row-sub .warn { color: var(--cx-amber-ink); font-weight: 600; }
.cx-grow { flex: 1; min-width: 0; }
.cx-empty { color: var(--cx-muted); font-size: 13.5px; padding: 8px 0; line-height: 1.5; }
.cx-subhead { font-size: 13px; font-weight: 600; color: var(--cx-muted); margin: 8px 0 -8px; }
.cx-pill { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: var(--cx-amber-soft); color: var(--cx-amber-ink); vertical-align: 1px; margin-left: 4px; }
.cx-ok { color: var(--cx-pos); font-weight: 600; margin-top: 12px; }
.cx-sample { display: inline-block; font-size: 12px; font-weight: 600; color: var(--cx-amber-ink); background: var(--cx-amber-soft); padding: 5px 10px; border-radius: 999px; margin-bottom: 14px; }

/* ---- buttons and links ---- */
.cx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex-shrink: 0; font: inherit; font-size: 13px; font-weight: 600; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--cx-line); background: #fff; color: var(--cx-ink); cursor: pointer; white-space: nowrap; }
.cx-btn:hover { background: var(--cx-surface-2); }
.cx-btn.primary { background: var(--cx-navy); border-color: var(--cx-navy); color: #fff; }
.cx-btn.primary:hover { background: var(--cx-navy-2); }
.cx-btn.gold { background: #fff; border-color: #fff; color: var(--cx-navy); }
.cx-btn.sm { padding: 6px 12px; font-size: 12px; }
.cx-btn[disabled] { opacity: .5; cursor: default; }
.cx-link { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; font-weight: 600; color: var(--cx-navy); cursor: pointer; white-space: nowrap; }
.cx-link:hover { text-decoration: underline; }
.cx-link.on-dark { color: #fff; }
.cx-back { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: var(--cx-muted); cursor: pointer; }
.cx-back:hover { color: var(--cx-ink); }
.cx-toprow { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-bottom: -6px; }
.cx-switch { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--cx-surface-2); max-width: 100%; overflow-x: auto; }
.cx-switch button { font: inherit; font-size: 12.5px; font-weight: 500; border: 0; background: none; color: var(--cx-muted); padding: 7px 14px; border-radius: 999px; cursor: pointer; }
.cx-switch button.on { background: var(--cx-navy); color: #fff; }

/* ---- cards ---- */
.cx-card { background: var(--cx-surface); border: 1px solid var(--cx-line); border-radius: 14px; padding: 22px 24px; box-shadow: 0 1px 2px rgba(29,39,51,.04); }
.cx-card-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 8px; }
.cx-chip { width: 44px; height: 48px; flex-shrink: 0; border-radius: 10px; background: var(--cx-surface-2); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.cx-chip .m { font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cx-amber); }
.cx-chip .d { font-size: 18px; font-weight: 700; margin-top: 3px; }
.cx-chip.dark { background: var(--cx-navy); color: #fff; }
.cx-chip.dark .m { color: rgba(255,255,255,.65); }

/* ---- 1. hero ---- */
.cx-hero { background: var(--cx-navy); color: #fff; border-radius: 18px; padding: 34px 36px 30px; display: flex; flex-direction: column; gap: 30px; }
.cx-hero-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.cx-hero-main { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.cx-address { font-size: clamp(30px, 4vw, 42px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; margin: 4px 0 0; }
.cx-hero-meta { font-size: 14px; color: rgba(255,255,255,.7); }
.cx-hero-meta span { margin: 0 4px; opacity: .6; }
.cx-hero-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.cx-hchip { font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px; }
.cx-hchip.stage { background: var(--cx-amber-soft); color: var(--cx-amber-ink); }
.cx-hchip.ghost { border: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.85); font-weight: 500; }
.cx-count { text-align: right; }
.cx-count .num { font-size: clamp(56px, 7vw, 76px); font-weight: 700; letter-spacing: -0.04em; line-height: .95; }
.cx-count .lbl { font-size: 15px; font-weight: 600; margin-top: 4px; }
.cx-count .date { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 2px; }
.cx-progress-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.cx-progress-head .cx-link { letter-spacing: 0; text-transform: none; }
.cx-steps { display: flex; gap: 6px; }
.cx-step { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 9px; }
.cx-step .bar { height: 4px; border-radius: 2px; background: rgba(255,255,255,.15); }
.cx-step.done .bar { background: rgba(255,255,255,.9); }
.cx-step.current .bar { background: var(--cx-amber-bright); }
.cx-step .lbl { font-size: 11.5px; color: rgba(255,255,255,.4); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-step.done .lbl { color: rgba(255,255,255,.65); }
.cx-step.current .lbl { color: #fff; font-weight: 600; }
.cx-steps-now { display: none; font-size: 13px; font-weight: 600; margin-top: 10px; }
@media (max-width: 760px) {
  .cx-hero { padding: 24px 22px 22px; gap: 22px; }
  .cx-hero-top { align-items: flex-start; }
  .cx-count { text-align: left; display: flex; align-items: center; gap: 12px; }
  .cx-count .num { font-size: 52px; }
  .cx-step .lbl { display: none; }
  .cx-steps { gap: 4px; }
  .cx-steps-now { display: block; }
  .cx-progress-head > span { display: none; }
}

/* ---- 2. waiting on you ---- */
.cx-wait .cx-h2 { margin-bottom: 14px; }
.cx-wait-list { display: flex; flex-direction: column; gap: 8px; }
.cx-wait-row { display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 18px; border-radius: 12px; background: var(--cx-bg); }
.cx-dot { width: 8px; height: 8px; border-radius: 999px; flex-shrink: 0; background: var(--cx-navy); }
.cx-dot.warn { background: var(--cx-amber); }
.cx-dot.neg { background: var(--cx-neg); }
@media (max-width: 560px) { .cx-wait-row { flex-wrap: wrap; } .cx-wait-row .cx-btn { margin-left: 22px; } }

/* ---- 3 + 4. next steps, team, calendar ---- */
.cx-two { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.cx-two > * { min-width: 0; }
/* Names, addresses and titles typed as one long word wrap instead of widening the page. */
.cx-eyebrow, .cx-row-title, .cx-row-sub, .cx-hero-meta { overflow-wrap: anywhere; }
.cx-side { display: flex; flex-direction: column; gap: 20px; }
@media (max-width: 960px) { .cx-two { grid-template-columns: minmax(0, 1fr); } }
.cx-next-row { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--cx-line-soft); }
.cx-next-row:last-child { border-bottom: 0; padding-bottom: 2px; }
.cx-person { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.cx-avatar { width: 40px; height: 40px; border-radius: 999px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: var(--cx-surface-2); font-size: 12px; font-weight: 700; }
.cx-avatar.me { background: var(--cx-navy); color: #fff; }

/* ---- 5. tiles ---- */
.cx-more { display: flex; flex-direction: column; gap: 14px; margin-top: 6px; }
.cx-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.cx-tile { display: flex; flex-direction: column; gap: 6px; text-align: left; font: inherit; color: inherit; background: var(--cx-surface); border: 1px solid var(--cx-line); border-radius: 14px; padding: 18px 20px; cursor: pointer; transition: border-color .12s, box-shadow .12s; }
.cx-tile:hover { border-color: #cfd5db; box-shadow: 0 4px 14px rgba(29,39,51,.06); }
.cx-tile-top { display: flex; justify-content: space-between; align-items: center; min-height: 24px; }
.cx-tile-big { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cx-tile .cx-row-sub { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.cx-tile-go { width: 26px; height: 26px; border-radius: 999px; border: 1px solid var(--cx-line); display: inline-flex; align-items: center; justify-content: center; color: var(--cx-muted); }
.cx-badge { font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--cx-amber-soft); color: var(--cx-amber-ink); }

/* ---- showings & feedback ---- */
.cx-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cx-chipbtn { font: inherit; font-size: 13px; font-weight: 500; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--cx-line); background: #fff; color: var(--cx-ink); cursor: pointer; }
.cx-chipbtn.on { background: var(--cx-navy); border-color: var(--cx-navy); color: #fff; }
.cx-show { padding: 16px 20px; }
.cx-show + .cx-show { margin-top: -8px; }
.cx-show-head { display: flex; align-items: center; gap: 14px; }
.cx-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--cx-surface-2); color: var(--cx-muted); }
.cx-status.pos { background: var(--cx-pos-soft); color: #15803d; }
.cx-status.warn { background: var(--cx-amber-soft); color: var(--cx-amber-ink); }
.cx-feedback { margin: 14px 0 0 58px; padding: 12px 14px; background: var(--cx-bg); border-radius: 10px; font-size: 14px; line-height: 1.5; }
@media (max-width: 560px) { .cx-feedback { margin-left: 0; } }

/* ---- home value ---- */
.cx-hv-form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.cx-hv-form label { display: flex; flex-direction: column; gap: 6px; flex: 2 1 240px; font-size: 12px; font-weight: 600; color: var(--cx-muted); }
.cx-hv-form label + label { flex: 1 1 160px; }
.cx-hv-form input { font: inherit; font-size: 15px; padding: 11px 12px; border: 1px solid var(--cx-line); border-radius: 10px; color: var(--cx-ink); background: #fff; }
.cx-hv-form input:focus { outline: none; border-color: var(--cx-navy); box-shadow: 0 0 0 3px #e3e8ef; }
.cx-hv-form .cx-btn { padding: 12px 20px; }
.cx-hv-result:not(.cx-card) { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; }
@media (max-width: 860px) { .cx-hv-result:not(.cx-card) { grid-template-columns: 1fr; } }
.cx-hv-result .cx-btn { margin-top: 14px; }
.cx-hv-main { background: var(--cx-surface); border: 1px solid var(--cx-line); border-radius: 14px; padding: 26px 28px; }
.cx-hv-num { font-size: clamp(44px, 6vw, 64px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.05; margin: 6px 0 6px; }
.cx-range { margin: 22px 0 14px; }
.cx-range-track { position: relative; height: 6px; border-radius: 3px; background: linear-gradient(90deg, #e3e8ef, var(--cx-navy), #e3e8ef); }
.cx-range-dot { position: absolute; top: 50%; width: 16px; height: 16px; margin-left: -8px; margin-top: -8px; border-radius: 999px; background: #fff; border: 3px solid var(--cx-amber-bright); }
.cx-range-labels { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: var(--cx-muted); margin-top: 10px; }
.cx-range-labels span:nth-child(2) { font-weight: 600; color: var(--cx-ink); }
.cx-hv-side { background: var(--cx-navy); color: #fff; border-radius: 14px; padding: 26px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.cx-hv-side-t { font-size: 18px; font-weight: 600; line-height: 1.35; }

/* ---- the older client screens, inside the new shell ---- */
.cx-theme .card, .cx-theme .c1-card { background: var(--cx-surface); border: 1px solid var(--cx-line); border-radius: 14px; box-shadow: 0 1px 2px rgba(29,39,51,.04); margin-bottom: 0; }
.cx-sub .card + .card, .cx-sub .c1-card + .c1-card, .cx-sub .card + .c1-card, .cx-sub .c1-card + .card { margin-top: 0; }
.cx-theme .empty-note, .cx-theme .c1-empty { color: var(--cx-muted); }
.cx-theme .showing-form button, .cx-theme .request-form button, .cx-theme .update-form button, .cx-theme .c1-cma-view-btn { background: var(--cx-navy); color: #fff; border-radius: 999px; }
.cx-theme .showing-form input, .cx-theme .request-form input, .cx-theme .update-form input { border: 1px solid var(--cx-line); border-radius: 10px; }
.cx-theme .pill.Confirmed, .cx-theme .pill.Toured { background: var(--cx-pos-soft); color: #15803d; }
.cx-tools #calc-root { min-height: 60vh; }
.cx-chat .card { padding: 0; overflow: hidden; }
.cx-chat .card-title-row { padding: 16px 20px; border-bottom: 1px solid var(--cx-line); }
.cx-chat .card > div[style] { padding: 0 20px; }
.cx-chat .update-mini { background: var(--cx-bg); border-radius: 12px; padding: 10px 14px; margin: 10px 0; border: 0; }
.cx-chat .showing-form { padding: 14px 20px; border-top: 1px solid var(--cx-line); margin: 12px 0 0; }
.cx-theme .prop-tile { background: var(--cx-surface); border-color: var(--cx-line); }

/* ---- seller stats + value card ---- */
.cx-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.cx-stat { display: flex; flex-direction: column; gap: 2px; background: var(--cx-surface); border: 1px solid var(--cx-line); border-radius: 14px; padding: 16px 20px; color: inherit; }
.cx-stat:hover { border-color: #cfd5db; }
.cx-stat b { font-size: 28px; font-weight: 700; letter-spacing: -0.02em; }
.cx-stat span { font-size: 13px; color: var(--cx-muted); }
.cx-valuecard { display: flex; flex-direction: column; gap: 6px; background: var(--cx-navy); color: #fff; border-radius: 14px; padding: 22px 24px; }
.cx-valuecard-num { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.cx-valuecard-sub { font-size: 13px; color: rgba(255,255,255,.65); margin-bottom: 6px; }
/* the menu's deal picker replaces the pill switch on wide screens */
@media (min-width: 901px) { .cx-theme:has(.cx-dealpick) .cx-toprow { display: none; } }
@media (max-width: 560px) {
  .cx-tiles { grid-template-columns: 1fr 1fr; gap: 10px; }
  .cx-tile { padding: 14px; }
  .cx-tile-big { font-size: 16px; white-space: normal; }
  .cx-tile .cx-row-sub { display: none; }
  .cx-stats { grid-template-columns: 1fr 1fr; }
}
/* older screens: swap the brown accents for the portal's navy and amber */
.cx-theme .tl-bar.done { background: var(--cx-navy); }
.cx-theme .tl-bar.current { background: var(--cx-amber-bright); }
.cx-theme .tl-bar.todo { background: var(--cx-line); }
.cx-theme .tl-res-link { color: var(--cx-navy); }
.cx-theme .todo-due { color: var(--cx-amber-ink); }
.cx-theme .doc-flat-action { color: var(--cx-navy); }
.cx-theme .day-strip-btn { background: var(--cx-surface-2); color: var(--cx-ink); }

/* ---- home value: grid + report ---- */
.cx-hv-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.cx-hv-actions { display: flex; gap: 8px; }
.cx-form-err { flex-basis: 100%; color: var(--cx-neg); font-size: 13px; font-weight: 600; }
.cx-hv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.cx-hv-card { display: flex; flex-direction: column; gap: 4px; text-align: left; font: inherit; color: inherit; background: var(--cx-surface); border: 1px solid var(--cx-line); border-radius: 14px; padding: 18px 20px; cursor: pointer; min-height: 170px; transition: border-color .12s, box-shadow .12s; }
.cx-hv-card:hover { border-color: #cfd5db; box-shadow: 0 4px 14px rgba(29,39,51,.06); }
.cx-hv-card-top { display: flex; justify-content: space-between; align-items: center; min-height: 22px; }
.cx-hv-card-addr { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }
.cx-hv-card-num { font-size: 28px; font-weight: 700; letter-spacing: -0.03em; margin-top: 8px; }
.cx-hv-card-state { margin-top: 8px; }
.cx-hv-card-foot { margin-top: auto; padding-top: 12px; display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: var(--cx-muted); border-top: 1px solid var(--cx-line-soft); }
.cx-hv-add { border-style: dashed; background: transparent; justify-content: center; }
.cx-hv-emptycard { text-align: left; }
.cx-hv-form input:disabled { background: var(--cx-surface-2); }
.cx-flush { padding: 0; overflow: hidden; }
.cx-card-pad-h { padding: 20px 24px 12px; }
.cx-table-wrap { overflow-x: auto; }
.cx-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.cx-table th { text-align: left; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--cx-faint); padding: 10px 14px; border-top: 1px solid var(--cx-line); border-bottom: 1px solid var(--cx-line); background: var(--cx-bg); white-space: nowrap; }
.cx-table td { padding: 12px 14px; border-bottom: 1px solid var(--cx-line-soft); vertical-align: top; white-space: nowrap; }
.cx-table td:first-child, .cx-table th:first-child { padding-left: 24px; white-space: normal; min-width: 180px; }
.cx-table tr:last-child td { border-bottom: 0; }
.cx-table .num { text-align: right; }
.cx-attr { font-size: 11.5px; color: var(--cx-faint); line-height: 1.5; }
.cx-tel { color: inherit; }
.cx-tel:hover { text-decoration: underline; }
.cx-sub > .cx-back, .cx-hv > .cx-back { margin-bottom: -8px; }

/* ---- buyer: the next tour in place of the countdown ---- */
.cx-herotour { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; max-width: 300px; }
.cx-herotour-t { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.cx-herotour-s { font-size: 13px; color: rgba(255,255,255,.65); }
.cx-herotour .cx-btn { margin-top: 8px; }
@media (max-width: 760px) { .cx-herotour { max-width: none; } }

/* Home Value only (scope "homevalue"): the locked Search tab and its page. */
.cx-tab-locked { opacity: 0.6; }
.cx-tab-ask { margin-left: 6px; font-size: 10px; font-weight: 700; color: #1d2733; background: #fff; border-radius: 999px; padding: 2px 7px; }
.cx-locked { max-width: 680px; }
.cx-locked-card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 32px; }
.cx-locked-ic { width: 44px; height: 44px; border-radius: 12px; background: var(--cx-amber-soft); color: var(--cx-amber-ink); display: inline-flex; align-items: center; justify-content: center; }
.cx-locked-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cx-locked-chips span { font-size: 12px; font-weight: 500; background: var(--cx-surface-2); border-radius: 999px; padding: 6px 12px; }
.cx-locked .cx-btn.gold { background: var(--cx-amber-bright); border-color: var(--cx-amber-bright); color: var(--cx-navy); }
.cx-hvtabs { display: none; }
@media (max-width: 700px) {
  .cx-hvtabs { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: #fff; border-top: 1px solid var(--cx-line); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); }
  .cx-hvtabs a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 44px; justify-content: center; font-size: 10px; font-weight: 500; color: var(--cx-faint); text-decoration: none; }
  .cx-hvtabs a.on { color: var(--cx-navy); font-weight: 600; }
  .cx-hvtabs svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .cx-theme:has(.cx-hvtabs) .client-bleed, .cx-theme:has(.cx-hvtabs) .cx-main { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}
/* The approved Home Value only design carries a navy bar. */
.cx-bar.cx-bar-navy { background: var(--cx-navy); border-bottom-color: var(--cx-navy); }
.cx-bar.cx-bar-navy .ag-brand b, .cx-bar.cx-bar-navy .ag-tab, .cx-bar.cx-bar-navy .ag-right a { color: rgba(255,255,255,0.8); }
.cx-bar.cx-bar-navy .ag-brand b { color: #fff; }
.cx-bar.cx-bar-navy .tp-brand-mark { background: var(--cx-amber-bright); color: var(--cx-navy); }
.cx-bar.cx-bar-navy .ag-tab.active { background: rgba(255,255,255,0.12); color: #fff; }
.cx-bar.cx-bar-navy .ag-tab:hover { color: #fff; }
.cx-bar.cx-bar-navy .ag-avatar { background: var(--cx-amber-bright); color: var(--cx-navy); border-color: transparent; }
.cx-bar.cx-bar-navy .tp-count { background: var(--cx-amber-bright); color: var(--cx-navy); }
.cx-bar.cx-bar-navy .ag-right { margin-left: auto; }
/* On a phone the Home Value only menu is the bottom bar, so the pill strip the
   other client bars show under the header is dropped for it. */
@media (max-width: 700px) { .ag-bar.cx-bar.cx-bar-navy .ag-tabs { display: none; } }

/* =====================================================================
   CLEAN SHELL, 2026-09-21 (Figma "Client: Clean v1", file 9IgmWlUSsYf2IHz1LPqPnW).
   Scoped to .cx-clean, which only the full client portal sets: the partner
   portal and the Home Value only sign-in keep their own bars. Navy top bar
   with the apps, a white rail with the homes and this deal's pages, a white
   page; the deal page loses its dark hero for a header, one progress track
   and a line of figures between hairlines. Gold means "needs you".
   ===================================================================== */
.cx-clean {
  --cx-bg: #ffffff; --cx-surface-2: #f7f9fb; --cx-line: #e7ebef; --cx-line-soft: #f1f4f7;
  --cx-ink: #1d2733; --cx-muted: #7a8794; --cx-faint: #a7b1bb; --cx-body: #46525e;
  --cx-gold: #b8813a; --cx-gold-soft: #fbf4ea; --cx-good: #2e7d5b; --cx-late: #c24b3f;
  --cx-amber: var(--cx-gold); --cx-amber-ink: var(--cx-gold); --cx-amber-soft: var(--cx-gold-soft); --cx-amber-bright: var(--cx-gold);
  background: #fff;
}
body:has(.cx-clean) { background: #fff; }

/* ---- top bar ---- */
.cx-clean .ag-bar.cx-clean-bar { background: var(--brand, #1d2733); border-bottom: 0; gap: 28px; padding: 0 24px; }
.cx-clean .cx-clean-bar .ag-brand, .cx-clean .cx-clean-bar .ag-brand b { color: #fff; }
.cx-clean .cx-clean-bar .ag-brand .tp-brand-mark { background: #fff; color: var(--brand, #1d2733); }
.cx-clean .cx-clean-bar .ag-tabs { flex: 1; gap: 4px; }
.cx-clean .cx-clean-bar .ag-tab { color: #93a1b0; font-weight: 500; padding: 7px 12px; border-radius: 7px; }
.cx-clean .cx-clean-bar .ag-tab:hover { background: rgba(255,255,255,.08); color: #fff; }
.cx-clean .cx-clean-bar .ag-tab.active { background: rgba(255,255,255,.13); color: #fff; font-weight: 600; }
.cx-clean .cx-clean-bar .ag-right { gap: 18px; }
.cx-clean .cx-clean-bar .ag-right a, .cx-clean .cx-clean-bar .cx-site { color: #93a1b0; font-size: 13px; font-weight: 500; }
.cx-clean .cx-clean-bar .ag-right a:hover { color: #fff; }
.cx-clean .cx-clean-bar .ag-avatar { background: var(--cx-gold); border: 0; color: #fff !important; font-weight: 700; }
.cx-clean .cx-phonepick, .cx-clean .cx-bnav, .cx-clean .cx-sheet, .cx-clean .cx-sheet-scrim { display: none; }

/* ---- rail + page ---- */
.cx-shell { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: calc(100vh - 56px); }
.cx-rail { position: sticky; top: 56px; align-self: start; height: calc(100vh - 56px); overflow-y: auto; display: flex; flex-direction: column; gap: 2px; padding: 24px 16px; border-right: 1px solid var(--cx-line); background: #fff; }
.cx-rail-h { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cx-muted); padding: 0 12px 6px; }
.cx-rail-h:not(:first-child) { margin-top: 18px; }
.cx-rail-deal { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px; border-radius: 10px; border: 1px solid transparent; color: var(--cx-ink); }
.cx-rail-deal:hover { background: var(--cx-surface-2); text-decoration: none; }
.cx-rail-deal .k { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--cx-muted); }
.cx-rail-deal .a { font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-rail-deal.on { background: var(--cx-surface-2); border-color: var(--cx-line); }
.cx-rail-deal.on .k { color: var(--cx-gold); }
.cx-rail-nav { display: flex; flex-direction: column; gap: 2px; }
.cx-rail-nav a { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 8px; font-size: 13.5px; font-weight: 500; color: var(--cx-body); }
.cx-rail-nav a span { flex: 1; min-width: 0; }
.cx-rail-nav a:hover { background: var(--cx-surface-2); color: var(--cx-ink); text-decoration: none; }
.cx-rail-nav a.on { background: var(--brand, #1d2733); color: #fff; font-weight: 600; }
.cx-rail-n { font-size: 11px; font-weight: 700; line-height: 1; padding: 3px 7px; border-radius: 999px; background: var(--cx-gold); color: #fff; }
.cx-rail-me { margin-top: auto; padding: 12px 12px 0; border-top: 1px solid var(--cx-line); display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--cx-muted); }
.cx-rail-me b { font-size: 13px; color: var(--cx-ink); }
.cx-rail-me a { color: var(--cx-muted); cursor: pointer; }
.cx-rail-me a:hover { color: var(--cx-ink); }
.cx-clean .cx-main { padding: 36px 48px 64px; }
.cx-clean .cx-shell .cx-page { max-width: 1100px; margin: 0; gap: 28px; }
/* The rail already lists the homes and the pages, so the in-page switcher
   and the "back to dashboard" link are the phone's, not the desktop's. */
.cx-clean .cx-shell .cx-toprow, .cx-clean .cx-shell .cx-back { display: none; }

/* ---- cards, type, buttons ---- */
.cx-clean .cx-card { border-radius: 12px; box-shadow: none; padding: 20px 22px; }
.cx-clean .cx-h1 { font-size: 30px; font-weight: 600; letter-spacing: -0.02em; }
.cx-clean .cx-h2 { font-size: 17px; font-weight: 600; }
.cx-clean .cx-eyebrow { color: var(--cx-muted); letter-spacing: .08em; font-size: 11px; }
.cx-clean .cx-eyebrow.accent { color: var(--cx-gold); }
.cx-clean .cx-btn { border-radius: 8px; }
.cx-clean .cx-link { color: var(--cx-gold); }
.cx-clean .cx-chip { background: var(--cx-surface-2); border-radius: 8px; }
.cx-clean .cx-chip .m { color: var(--cx-muted); }

/* ---- the deal header (was the dark hero) ---- */
.cx-clean .cx-hero { background: none; color: var(--cx-ink); border-radius: 0; padding: 0; gap: 22px; }
.cx-clean .cx-hero .cx-eyebrow.on-dark { color: var(--cx-muted); }
.cx-clean .cx-address { font-size: 34px; font-weight: 600; letter-spacing: -0.02em; }
.cx-clean .cx-hero-meta { color: var(--cx-muted); }
.cx-clean .cx-hchip.stage { background: var(--cx-gold-soft); color: var(--cx-gold); font-weight: 500; }
.cx-clean .cx-hchip.ghost { border: 0; background: var(--cx-line-soft); color: var(--cx-body); }
.cx-clean .cx-count .num { font-size: 44px; font-weight: 600; color: var(--cx-ink); }
.cx-clean .cx-count .lbl { color: var(--cx-ink); font-size: 13.5px; }
.cx-clean .cx-count .date { color: var(--cx-muted); }
.cx-clean .cx-herotour .cx-eyebrow.on-dark { color: var(--cx-muted); }
.cx-clean .cx-herotour .cx-btn.gold { background: var(--brand, #1d2733); border-color: var(--brand, #1d2733); color: #fff; }
.cx-clean .cx-progress-head { color: var(--cx-ink); letter-spacing: 0; text-transform: none; font-size: 13px; margin-bottom: 10px; }
.cx-clean .cx-link.on-dark { color: var(--cx-gold); }
.cx-clean .cx-steps { gap: 4px; }
.cx-clean .cx-step .bar { background: var(--cx-line); }
.cx-clean .cx-step.done .bar { background: var(--brand, #1d2733); }
.cx-clean .cx-step.current .bar { background: var(--cx-gold); }
.cx-clean .cx-step .lbl { color: var(--cx-faint); }
.cx-clean .cx-step.done .lbl { color: var(--cx-muted); }
.cx-clean .cx-step.current .lbl { color: var(--cx-ink); }

/* ---- figures between hairlines (was a row of stat cards) ---- */
.cx-clean .cx-stats { display: flex; gap: 0; border-top: 1px solid var(--cx-line); border-bottom: 1px solid var(--cx-line); padding: 16px 0; }
.cx-clean .cx-stat { flex: 1; min-width: 0; background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0 24px; border-left: 1px solid var(--cx-line); }
.cx-clean .cx-stat:first-child { border-left: 0; padding-left: 0; }
.cx-clean a.cx-stat:hover b { color: var(--cx-gold); }
.cx-clean .cx-stat b { font-size: 22px; font-weight: 600; color: var(--cx-ink); }
.cx-clean .cx-stat span { font-size: 12.5px; color: var(--cx-muted); }

/* ---- needs you ---- */
.cx-clean .cx-wait { background: var(--cx-gold-soft); border: 0; }
.cx-clean .cx-wait .cx-h2 { font-size: 16px; }
.cx-clean .cx-wait-row { background: #fff; border-radius: 10px; }
.cx-clean .cx-dot { background: var(--cx-gold); }

/* ---- value card: white, not a second dark block ---- */
.cx-clean .cx-valuecard { background: #fff; color: var(--cx-ink); border: 1px solid var(--cx-line); border-radius: 12px; }
.cx-clean .cx-valuecard .cx-eyebrow.on-dark { color: var(--cx-muted); }
.cx-clean .cx-valuecard-num { color: var(--cx-ink); font-weight: 600; }
.cx-clean .cx-valuecard-sub { color: var(--cx-muted); }
.cx-clean .cx-valuecard .cx-link.on-dark { color: var(--cx-gold); }
.cx-clean .cx-avatar.me { background: var(--brand, #1d2733); }

/* ---- everything else: one hairline grid instead of floating cards ---- */
.cx-clean .cx-tiles { gap: 0; border: 1px solid var(--cx-line); border-radius: 12px; overflow: hidden; }
.cx-clean .cx-tile { border: 0; border-radius: 0; background: #fff; box-shadow: 1px 0 0 var(--cx-line), 0 1px 0 var(--cx-line); }
.cx-clean .cx-tile:hover { background: var(--cx-surface-2); transform: none; }
.cx-clean .cx-tile-big { font-size: 15px; font-weight: 600; }
.cx-clean .cx-badge { background: var(--cx-gold); color: #fff; }

/* ---- phone: bar with the home picker, bottom tabs, a More sheet ---- */
@media (max-width: 700px) {
  .cx-clean .ag-bar.cx-clean-bar { position: sticky; top: 0; flex-wrap: nowrap; gap: 10px; padding: env(safe-area-inset-top) 14px 0 16px; min-height: 56px; }
  .cx-clean .ag-bar.cx-clean-bar .ag-tabs, .cx-clean .cx-clean-bar .cx-site, .cx-clean .cx-clean-bar .cx-out { display: none; }
  .cx-clean .cx-clean-bar .ag-mtitle { color: #fff; }
  .cx-clean .cx-clean-bar .ag-mback { color: #fff; }
  .cx-clean .cx-phonepick { display: flex; flex: 1; min-width: 0; }
  .cx-clean .cx-phonepick .cx-dealpick { display: block; width: 100%; max-width: none; background: transparent; border: 0; color: #fff; font-weight: 600; padding: 6px 0; }
  .cx-clean .cx-phonepick .cx-dealpick option { color: #1d2733; }
  .cx-clean .cx-dealname { display: flex; flex-direction: column; color: #fff; font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cx-clean .cx-dealname small { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--cx-gold); }
  .cx-clean .cx-clean-bar .ag-avatar { display: flex; }
  .cx-shell { display: block; }
  .cx-rail { display: none; }
  .cx-clean .cx-main { padding: 20px 16px calc(96px + env(safe-area-inset-bottom)); }
  .cx-clean .cx-shell .cx-back { display: inline-flex; }
  .cx-clean .cx-address { font-size: 26px; }
  .cx-clean .cx-stats { padding: 12px 0; flex-wrap: nowrap; }
  .cx-clean .cx-stat { padding: 0 12px; }
  .cx-clean .cx-stat b { font-size: 18px; }
  .cx-clean .cx-bnav { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #fff; border-top: 1px solid var(--cx-line); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); }
  .cx-clean .cx-bnav a, .cx-clean .cx-bnav button { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; min-height: 48px; padding: 4px 0; border: 0; background: none; font: inherit; font-size: 10.5px; font-weight: 500; color: var(--cx-muted); cursor: pointer; text-decoration: none; }
  .cx-clean .cx-bnav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .cx-clean .cx-bnav .on { color: var(--brand, #1d2733); font-weight: 600; }
  .cx-clean .cx-bnav b { position: absolute; top: 0; left: calc(50% + 6px); font-size: 9.5px; line-height: 1; padding: 2px 5px; border-radius: 999px; background: var(--cx-gold); color: #fff; }
  .cx-clean .cx-sheet-scrim { display: block; position: fixed; inset: 0; z-index: 58; background: rgba(29, 39, 51, .45); }
  .cx-clean .cx-sheet { display: flex; flex-direction: column; position: fixed; left: 0; right: 0; bottom: calc(61px + env(safe-area-inset-bottom)); z-index: 59; max-height: calc(100vh - 140px); overflow-y: auto; background: #fff; border-radius: 16px 16px 0 0; padding: 10px 16px 16px; box-shadow: 0 -10px 30px rgba(13,17,23,.18); }
  .cx-clean .cx-sheet-h { font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cx-muted); padding: 14px 4px 4px; }
  .cx-clean .cx-sheet a { display: block; padding: 12px 4px; border-bottom: 1px solid var(--cx-line-soft); font-size: 15px; font-weight: 500; color: var(--cx-ink); cursor: pointer; }
  .cx-clean .cx-sheet a.on { color: var(--cx-gold); font-weight: 600; }
  /* The hero's step labels crowd a phone; the one-line "step 4 of 10" below the bars stands in. */
  .cx-clean .cx-step .lbl { display: none; }
  .cx-clean .cx-wait-row { flex-wrap: wrap; }
  .cx-clean .cx-wait-row .cx-grow { flex-basis: calc(100% - 30px); }
  .cx-clean .cx-wait-row .cx-btn { margin-left: 22px; }
}
