/* Buyer property research workspace — layered into the recovered production shell. */
.research-workspace {
  width: min(100%, 112rem);
  margin: 0 auto;
  padding: clamp(1.25rem, 2.5vw, 2.5rem);
  color: var(--ink-900, #172237);
  font-family: var(--interface-font, Inter, ui-sans-serif, sans-serif);
}

.research-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  overflow: hidden;
  min-height: 12rem;
  padding: clamp(1.5rem, 3vw, 2.75rem);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 16px;
  color: #f7fbff;
  background:
    radial-gradient(circle at 86% 12%, rgb(88 209 199 / 24%), transparent 20rem),
    linear-gradient(118deg, #111f36 0%, #172f4e 58%, #0f626b 145%);
  box-shadow: var(--shadow-panel, 0 18px 50px rgb(20 40 69 / 10%));
}

.research-hero::after {
  position: absolute;
  right: -2.5rem;
  bottom: -5rem;
  width: 17rem;
  height: 17rem;
  border: 1px solid rgb(143 240 231 / 17%);
  border-radius: 50%;
  box-shadow:
    0 0 0 2.2rem rgb(143 240 231 / 5%),
    0 0 0 5rem rgb(143 240 231 / 3%);
  content: "";
  pointer-events: none;
}

.research-eyebrow,
.research-panel-kicker {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--copper-600, #167f82);
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.research-hero .research-eyebrow { color: #8ff0e7; }
.research-hero h1 { margin: 0; color: #fff; font: 700 clamp(2rem, 4vw, 3.4rem)/1 var(--display-font, sans-serif); letter-spacing: -0.04em; }
.research-hero p { max-width: 52rem; margin: 0.9rem 0 0; color: rgb(235 246 252 / 72%); font-size: 0.95rem; line-height: 1.65; }

.research-hero-metrics { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(6rem, 1fr)); gap: 0.65rem; }
.research-hero-metrics div { min-width: 6.75rem; padding: 1rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: 11px; background: rgb(7 23 39 / 30%); backdrop-filter: blur(10px); }
.research-hero-metrics strong { display: block; color: #fff; font-size: 1.45rem; }
.research-hero-metrics span { color: rgb(226 243 249 / 64%); font-size: 0.65rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }

.research-status { min-height: 1.85rem; padding: 0.55rem 0.25rem 0; color: var(--ink-600, #62738a); font-size: 0.78rem; font-weight: 700; text-align: right; }
.research-status[data-tone="success"] { color: #167f82; }
.research-status[data-tone="error"] { color: var(--error-700, #b6404e); }
.research-status[data-tone="pending"] { color: #8b6c1e; }

.research-layout { display: grid; grid-template-columns: 18.5rem minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.research-buyer-rail { position: sticky; top: 1rem; overflow: hidden; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 13px; background: rgb(255 255 255 / 86%); box-shadow: 0 10px 32px rgb(20 40 69 / 7%); }
.research-rail-heading { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1rem 0.8rem; border-bottom: 1px solid var(--warm-200, #d9e3ed); color: var(--ink-600, #62738a); font-size: 0.68rem; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.research-rail-heading b { min-width: 1.45rem; padding: 0.15rem 0.4rem; border-radius: 999px; color: #fff; background: var(--copper-600, #167f82); text-align: center; }
.research-buyer-list { display: grid; max-height: calc(100vh - 10rem); overflow-y: auto; padding: 0.45rem; }
.research-buyer-card { width: 100%; display: grid; grid-template-columns: 2.35rem minmax(0, 1fr) auto; gap: 0.65rem; align-items: center; padding: 0.68rem; border: 0; border-radius: 9px; color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; transition: background 150ms ease, transform 150ms ease; }
.research-buyer-card:hover { background: var(--warm-100, #eaf0f6); transform: translateX(2px); }
.research-buyer-card.is-active { color: #fff; background: linear-gradient(118deg, #172b49, #176d73); box-shadow: 0 8px 22px rgb(23 43 73 / 16%); }
.research-avatar { width: 2.35rem; height: 2.35rem; display: grid; place-items: center; border-radius: 9px; color: #126f75; background: #dff5f3; font-size: 0.72rem; font-weight: 850; letter-spacing: 0.04em; }
.research-buyer-card.is-active .research-avatar { color: #efffff; background: rgb(255 255 255 / 13%); }
.research-buyer-card > span:nth-child(2) { min-width: 0; }
.research-buyer-card strong,
.research-buyer-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.research-buyer-card strong { font-size: 0.79rem; }
.research-buyer-card small { margin-top: 0.1rem; color: var(--ink-500, #75859a); font-size: 0.66rem; }
.research-buyer-card.is-active small { color: rgb(230 246 250 / 62%); }
.research-buyer-card > b { min-width: 1.5rem; padding: 0.14rem 0.35rem; border-radius: 999px; color: var(--ink-600, #62738a); background: var(--warm-100, #eaf0f6); font-size: 0.64rem; text-align: center; }
.research-buyer-card.is-active > b { color: #fff; background: rgb(255 255 255 / 13%); }

.research-content { min-width: 0; display: grid; gap: 1rem; }
.research-client-banner { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.1rem 1.25rem; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 12px; background: linear-gradient(100deg, rgb(223 245 243 / 70%), rgb(255 255 255 / 88%)); }
.research-client-banner span { color: var(--copper-600, #167f82); font-size: 0.63rem; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.research-client-banner h2 { margin: 0.12rem 0 0; font-size: 1.25rem; }
.research-client-banner p { margin: 0.12rem 0 0; color: var(--ink-600, #62738a); font-size: 0.75rem; }

.research-panel { min-width: 0; padding: clamp(1rem, 2vw, 1.45rem); border: 1px solid var(--warm-200, #d9e3ed); border-radius: 13px; background: rgb(255 255 255 / 90%); box-shadow: 0 10px 34px rgb(20 40 69 / 6%); }
.research-panel-header { margin-bottom: 1rem; }
.research-panel-header--split { display: flex; justify-content: space-between; gap: 1.25rem; align-items: start; }
.research-panel h2 { margin: 0; color: var(--ink-900, #172237); font: 700 1.12rem/1.25 var(--display-font, sans-serif); }
.research-panel-header p,
.research-panel--empty p { margin: 0.35rem 0 0; color: var(--ink-600, #62738a); font-size: 0.78rem; }
.research-panel--empty { padding: 2.25rem; text-align: center; }

.research-requirements-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; }
.research-requirement { min-width: 0; padding: 0.75rem; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 9px; background: linear-gradient(145deg, #fff, #f5f8fb); }
.research-requirement span,
.research-preferences > span { display: block; color: var(--ink-600, #62738a); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.research-requirement strong { display: block; margin-top: 0.25rem; overflow: hidden; color: var(--ink-800, #24334b); font-size: 0.79rem; text-overflow: ellipsis; }
.research-preferences { margin-top: 0.7rem; padding: 0.85rem 1rem; border-radius: 9px; background: var(--warm-50, #f4f7fb); }
.research-preferences p { margin: 0.3rem 0 0; color: var(--ink-500, #75859a); font-size: 0.75rem; }
.research-preferences ul { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.45rem 0 0; padding: 0; list-style: none; }
.research-preferences li { padding: 0.25rem 0.55rem; border: 1px solid #c8e8e5; border-radius: 999px; color: #126f75; background: #edf9f8; font-size: 0.7rem; font-weight: 700; }

.research-search-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.55rem; }
.research-search-card { position: relative; min-height: 6.5rem; display: flex; flex-direction: column; justify-content: end; padding: 0.8rem; overflow: hidden; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 10px; color: var(--ink-800, #24334b); background: linear-gradient(155deg, #fff 40%, #eaf5f7); text-decoration: none; transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease; }
.research-search-card:hover { border-color: #74c8c3; transform: translateY(-2px); box-shadow: 0 10px 24px rgb(20 40 69 / 10%); }
.research-search-card span { font-size: 0.78rem; font-weight: 800; }
.research-search-card small { margin-top: 0.18rem; color: var(--ink-600, #62738a); font-size: 0.64rem; line-height: 1.35; }
.research-search-card b { position: absolute; top: 0.6rem; right: 0.7rem; color: var(--copper-600, #167f82); font-size: 0.9rem; }
.research-saved-links { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--warm-200, #d9e3ed); }
.research-subhead { display: flex; align-items: center; gap: 0.45rem; }
.research-subhead h3 { margin: 0; font-size: 0.82rem; }
.research-subhead span { min-width: 1.4rem; padding: 0.12rem 0.35rem; border-radius: 999px; color: #126f75; background: #dff5f3; font-size: 0.64rem; font-weight: 800; text-align: center; }
.research-saved-links ul { display: grid; gap: 0.4rem; margin: 0.65rem 0; padding: 0; list-style: none; }
.research-link-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.7rem; align-items: center; padding: 0.55rem 0.65rem; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 8px; }
.research-link-row a { min-width: 0; color: inherit; text-decoration: none; }
.research-link-row strong,
.research-link-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.research-link-row strong { color: #126f75; font-size: 0.75rem; }
.research-link-row small { color: var(--ink-600, #62738a); font-size: 0.65rem; }
.research-link-row button,
.research-comp-table button { width: 1.75rem; height: 1.75rem; border: 0; border-radius: 6px; color: var(--ink-500, #75859a); background: transparent; cursor: pointer; }
.research-link-row button:hover,
.research-comp-table button:hover { color: #fff; background: var(--error-700, #b6404e); }
.research-empty-row { padding: 0.8rem; border: 1px dashed var(--warm-300, #bbcbd9); border-radius: 8px; color: var(--ink-500, #75859a); font-size: 0.72rem; text-align: center; }

.research-inline-form { display: grid; grid-template-columns: 0.75fr 1.15fr 1.4fr auto; gap: 0.55rem; align-items: end; margin-top: 0.7rem; }
.research-field { min-width: 0; display: grid; gap: 0.28rem; color: var(--ink-700, #50627a); font-size: 0.64rem; font-weight: 800; letter-spacing: 0.04em; }
.research-field > span { text-transform: uppercase; }
.research-field input,
.research-field textarea,
.research-property-controls select { width: 100%; border: 1px solid var(--warm-300, #bbcbd9); border-radius: 8px; color: var(--ink-900, #172237); background: #fff; font: 500 0.76rem/1.35 var(--interface-font, sans-serif); outline: none; }
.research-field input { min-height: 2.45rem; padding: 0 0.7rem; }
.research-field textarea { padding: 0.65rem 0.7rem; resize: vertical; }
.research-field input:focus,
.research-field textarea:focus,
.research-property-controls select:focus { border-color: var(--focus, #4aa8ff); box-shadow: 0 0 0 3px rgb(74 168 255 / 18%); }
.research-field--grow { min-width: 8rem; }
.research-button { min-height: 2.45rem; display: inline-flex; align-items: center; justify-content: center; padding: 0.55rem 0.85rem; border: 1px solid #167f82; border-radius: 8px; color: #fff; background: linear-gradient(145deg, #1c9c99, #126f75); box-shadow: 0 6px 16px rgb(22 127 130 / 14%); font: 750 0.72rem/1 var(--interface-font, sans-serif); text-decoration: none; cursor: pointer; }
.research-button:hover { color: #fff; background: #126f75; transform: translateY(-1px); }
.research-button--quiet { border-color: var(--warm-300, #bbcbd9); color: var(--ink-800, #24334b); background: #fff; box-shadow: none; }
.research-button--quiet:hover { color: #126f75; background: #f3fbfa; }
.research-button--secondary { border-color: #274b6c; background: #274b6c; }
.research-button:focus-visible,
.research-buyer-card:focus-visible,
.research-property-open:focus-visible,
.research-search-card:focus-visible { outline: 3px solid rgb(74 168 255 / 45%); outline-offset: 2px; }

.research-add-property { position: relative; }
.research-add-property > summary { list-style: none; }
.research-add-property > summary::-webkit-details-marker { display: none; }
.research-property-form { position: absolute; z-index: 20; top: calc(100% + 0.5rem); right: 0; width: min(42rem, 80vw); padding: 1rem; border: 1px solid var(--warm-250, #cbd8e4); border-radius: 11px; background: #fff; box-shadow: var(--shadow-float, 0 24px 70px rgb(10 25 48 / 20%)); }
.research-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; }
.research-field--wide { grid-column: span 2; }
.research-form-actions { display: flex; justify-content: flex-end; align-items: end; gap: 0.5rem; grid-column: 1 / -1; }
.research-property-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.research-property-card { min-width: 0; overflow: hidden; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 10px; background: #fff; transition: border-color 150ms ease, box-shadow 150ms ease; }
.research-property-card.is-selected { border-color: #5cbcb7; box-shadow: 0 0 0 2px rgb(92 188 183 / 12%); }
.research-property-open { width: 100%; min-width: 0; display: grid; gap: 0.18rem; padding: 0.85rem; border: 0; color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.research-property-open:hover { background: #f5fbfb; }
.research-property-address { overflow: hidden; font-size: 0.8rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.research-property-open strong { color: #126f75; font-size: 0.92rem; }
.research-property-open small { color: var(--ink-600, #62738a); font-size: 0.67rem; }
.research-property-controls { display: flex; gap: 0.45rem; align-items: center; padding: 0.55rem 0.75rem; border-top: 1px solid var(--warm-200, #d9e3ed); background: var(--warm-50, #f4f7fb); }
.research-property-controls label { margin-right: auto; }
.research-property-controls select { min-height: 1.85rem; padding: 0 1.65rem 0 0.45rem; font-size: 0.67rem; }
.research-property-controls a,
.research-property-controls button { border: 0; color: var(--ink-600, #62738a); background: transparent; font: 700 0.65rem/1 var(--interface-font, sans-serif); text-decoration: none; cursor: pointer; }
.research-property-controls a:hover { color: #126f75; }
.research-property-controls button:hover { color: var(--error-700, #b6404e); }
.research-empty-card { grid-column: 1 / -1; display: grid; gap: 0.25rem; padding: 1.5rem; border: 1px dashed var(--warm-300, #bbcbd9); border-radius: 10px; color: var(--ink-600, #62738a); text-align: center; }
.research-empty-card strong { color: var(--ink-800, #24334b); font-size: 0.82rem; }
.research-empty-card span { font-size: 0.72rem; }

.research-comparable-lab { border-top: 4px solid var(--copper-500, #1c9c99); }
.research-header-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: flex-end; }
.research-comp-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.55rem; margin-bottom: 0.8rem; }
.research-comp-metrics div { padding: 0.75rem; border-radius: 9px; background: linear-gradient(145deg, #eff8f8, #f7fafc); }
.research-comp-metrics span { display: block; color: var(--ink-600, #62738a); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
.research-comp-metrics strong { display: block; margin-top: 0.2rem; font-size: 0.95rem; }
.research-table-wrap { overflow-x: auto; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 9px; }
.research-comp-table { width: 100%; border-collapse: collapse; font-size: 0.7rem; }
.research-comp-table th,
.research-comp-table td { padding: 0.65rem; border-bottom: 1px solid var(--warm-200, #d9e3ed); text-align: left; vertical-align: top; }
.research-comp-table th { color: var(--ink-600, #62738a); background: var(--warm-50, #f4f7fb); font-size: 0.59rem; letter-spacing: 0.07em; text-transform: uppercase; }
.research-comp-table tbody tr:last-child td { border-bottom: 0; }
.research-comp-table td:first-child { min-width: 13rem; }
.research-comp-table td:first-child a,
.research-comp-table td:first-child strong { display: block; color: #126f75; text-decoration: none; }
.research-comp-table td:first-child small { display: block; margin-top: 0.14rem; color: var(--ink-500, #75859a); }
.research-disclosure { margin-top: 0.75rem; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 9px; }
.research-disclosure summary { padding: 0.75rem; color: #126f75; font-size: 0.74rem; font-weight: 800; cursor: pointer; }
.research-disclosure[open] summary { border-bottom: 1px solid var(--warm-200, #d9e3ed); }
.research-form--comp { padding: 0.85rem; }
.research-analysis { display: grid; gap: 0.65rem; margin-top: 0.8rem; padding: 0.9rem; border-radius: 9px; background: var(--warm-50, #f4f7fb); }
.research-analysis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }

.research-workspace--empty,
.research-loading { max-width: 44rem; margin: 10vh auto; padding: 2.5rem; border: 1px solid var(--warm-200, #d9e3ed); border-radius: 14px; background: #fff; text-align: center; box-shadow: var(--shadow-panel, 0 18px 50px rgb(20 40 69 / 10%)); }
.research-workspace--empty h1,
.research-loading h1 { margin: 0.3rem 0; font-size: 1.7rem; }
.research-workspace--empty p { color: var(--ink-600, #62738a); }
.research-loading-bar { height: 0.3rem; margin-top: 1.5rem; overflow: hidden; border-radius: 999px; background: var(--warm-100, #eaf0f6); }
.research-loading-bar i { display: block; width: 35%; height: 100%; border-radius: inherit; background: var(--copper-500, #1c9c99); animation: research-load 1s ease-in-out infinite alternate; }
@keyframes research-load { to { transform: translateX(185%); } }

.research-workspace .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 1180px) {
  .research-layout { grid-template-columns: 15.5rem minmax(0, 1fr); }
  .research-requirements-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .research-search-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .research-inline-form { grid-template-columns: 1fr 1fr; }
  .research-inline-form .research-button { align-self: end; }
}

@media (max-width: 900px) {
  .research-workspace { padding: 1rem; }
  .research-hero { grid-template-columns: 1fr; }
  .research-layout { grid-template-columns: 1fr; }
  .research-buyer-rail { position: static; }
  .research-buyer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; }
  .research-requirements-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-property-form { position: fixed; top: 5vh; right: 5vw; width: 90vw; max-height: 90vh; overflow: auto; }
}

@media (max-width: 640px) {
  .research-hero { padding: 1.3rem; }
  .research-hero-metrics { grid-template-columns: repeat(3, 1fr); }
  .research-hero-metrics div { min-width: 0; padding: 0.7rem; }
  .research-client-banner,
  .research-panel-header--split { align-items: stretch; flex-direction: column; }
  .research-buyer-list,
  .research-requirements-grid,
  .research-search-grid,
  .research-property-grid,
  .research-comp-metrics,
  .research-analysis-grid,
  .research-inline-form { grid-template-columns: 1fr; }
  .research-form { grid-template-columns: 1fr 1fr; }
  .research-field--wide { grid-column: 1 / -1; }
  .research-header-actions { justify-content: stretch; }
  .research-header-actions > * { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .research-buyer-card,
  .research-search-card,
  .research-button { transition: none; }
  .research-loading-bar i { animation: none; width: 100%; }
}
