:root {
  --bg: #f5f6f4;
  --surface: #ffffff;
  --surface-muted: #f0f2ef;
  --text: #202421;
  --text-soft: #626962;
  --line: #d8ddd8;
  --line-strong: #afb7af;
  --brand: #176b4d;
  --brand-dark: #10513a;
  --brand-soft: #e4f2eb;
  --warning: #8a5a0a;
  --warning-soft: #fff2d6;
  --danger: #a33a3a;
  --danger-soft: #fbe8e8;
  --info: #315d85;
  --info-soft: #e7f0f8;
  --shadow: 0 1px 2px rgba(20, 30, 24, 0.06), 0 6px 18px rgba(20, 30, 24, 0.05);
  --radius: 6px;
  --content: 1180px;
}

/* Single-column account workspace */
.profile-v4 {
  width: min(1080px, calc(100% - 32px));
  max-width: 1080px;
  padding-bottom: 56px;
}
.profile-v4 .profile-masthead {
  border-top-width: 3px;
}
.profile-stack {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}
.profile-v4 .profile-panel {
  width: 100%;
  margin: 0;
}
.profile-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.profile-heading-actions .btn b {
  min-width: 19px;
  height: 19px;
  display: inline-grid;
  place-items: center;
  margin-left: 2px;
  padding: 0 5px;
  color: var(--brand-dark);
  background: var(--brand-soft);
  border-radius: 10px;
  font-size: 11px;
}
.profile-security-grid,
.profile-settings-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.profile-security-grid .profile-identity-row {
  border-bottom: 1px solid var(--line);
}
.profile-security-grid .profile-identity-row:last-child {
  border-bottom: 0;
}
.profile-settings-grid > div + div {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.profile-v4 .profile-signout-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 16px 20px;
}
.profile-v4 .profile-signout-row span {
  color: var(--text-soft);
  font-size: 13px;
}
.message-list-full {
  width: 100%;
}
.following-modal-list {
  display: grid;
}
.following-modal-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.following-modal-row:last-child {
  border-bottom: 0;
}
.following-modal-row .page-actions {
  flex-wrap: nowrap;
}
.modal-empty-state {
  min-height: 220px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  color: var(--text-soft);
  text-align: center;
}
.modal-empty-state > .icon {
  width: 30px;
  height: 30px;
  color: var(--brand);
}
.modal-empty-state strong {
  color: var(--text);
  font-size: 16px;
}
.login-submit {
  width: 100%;
  min-height: 48px;
  justify-content: center;
  margin-top: 4px;
  font-size: 16px;
}
.login-inline-message {
  display: flex;
  align-items: center;
  min-height: 36px;
  margin-top: 8px;
  padding: 8px 10px;
  color: #9f2f2b;
  background: #fff2f1;
  border-left: 3px solid var(--danger);
  font-size: 13px;
}
.login-inline-message.hidden {
  display: none;
}

@media (max-width: 720px) {
  .profile-v4 {
    width: 100%;
  }
  .profile-v4 .profile-masthead {
    padding: 18px 14px;
  }
  .profile-v4 .profile-panel-heading {
    align-items: flex-start;
  }
  .profile-heading-actions {
    width: 100%;
    justify-content: stretch;
  }
  .profile-heading-actions .btn {
    flex: 1 1 0;
    justify-content: center;
  }
  .profile-v4 .profile-signout-row {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }
  .following-modal-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .following-modal-row .page-actions .btn:first-child {
    flex: 1 1 auto;
  }
}

* { box-sizing: border-box; }

html { background: var(--bg); }

body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: Inter, "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  letter-spacing: 0;
}

.site-footer {
  padding: 18px 20px 88px;
  border-top: 1px solid var(--line);
  color: var(--text-soft);
  text-align: center;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
@media (min-width: 761px) {
  .site-footer { padding-bottom: 18px; }
}

button, input, select, textarea { font: inherit; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  height: 58px;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid var(--line);
}

.topbar-inner {
  max-width: var(--content);
  height: 100%;
  margin: 0 auto;
  padding: 0 22px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 132px;
  font-size: 17px;
  font-weight: 750;
}

.brand em { padding: 2px 6px; color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #c0dacf; border-radius: 3px; font-size: 10px; font-style: normal; white-space: nowrap; }
.workspace-switch { min-height: 34px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #b8d9ca; border-radius: 5px; font: inherit; font-weight: 650; white-space: nowrap; }
.landlord-shell { --brand: #276476; --brand-dark: #1b4d5c; --brand-soft: #e5f1f4; }

.brand-mark {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: white;
  background: var(--brand);
  border-radius: 5px;
}

.main-nav { display: flex; align-items: stretch; height: 100%; gap: 4px; }

.nav-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  color: var(--text-soft);
  border: 0;
  background: transparent;
  text-decoration: none;
  white-space: nowrap;
}

.nav-item:hover { color: var(--text); background: var(--surface-muted); }
.nav-item.active { color: var(--brand); font-weight: 650; }
.nav-item.active::after {
  position: absolute;
  content: "";
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 3px;
  background: var(--brand);
}

.nav-count {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: var(--surface-muted);
  color: var(--text-soft);
  font-size: 12px;
  font-weight: 700;
}
.nav-unread-count {
  color: #fff;
  background: var(--danger);
}

.topbar-actions { margin-left: auto; display: flex; gap: 8px; }

.page {
  max-width: var(--content);
  margin: 0 auto;
  padding: 28px 22px 70px;
}

.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.page-header h1 { margin: 0 0 5px; font-size: 24px; line-height: 1.3; }
.page-header p { margin: 0; color: var(--text-soft); max-width: 680px; }
.page-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; justify-content: flex-end; }

.btn {
  min-height: 36px;
  padding: 7px 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  color: var(--text);
  background: var(--surface);
  text-decoration: none;
  font-weight: 620;
}

.btn:hover { border-color: #7d877e; background: #f8f9f7; }
.btn:disabled { cursor: not-allowed; opacity: 0.48; }
.btn-primary { color: white; background: var(--brand); border-color: var(--brand); }
.btn-primary:hover { color: white; background: var(--brand-dark); border-color: var(--brand-dark); }
.btn-soft { color: var(--brand-dark); background: var(--brand-soft); border-color: #b8d9ca; }
.btn-soft:hover { color: var(--brand-dark); background: #d9ece3; border-color: #8fbaa7; }
.btn-quiet { border-color: transparent; background: transparent; color: var(--text-soft); }
.btn-quiet:hover { background: var(--surface-muted); border-color: transparent; color: var(--text); }
.btn-danger { color: var(--danger); border-color: #dcbaba; background: var(--surface); }
.btn-sm { min-height: 32px; padding: 5px 10px; font-size: 13px; }
.btn-icon { width: 36px; padding: 0; }
.icon { width: 17px; height: 17px; stroke-width: 2; flex: 0 0 auto; }

.band {
  margin-bottom: 20px;
  padding: 18px 20px;
  background: var(--surface);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.band-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 13px; }
.band-title { margin: 0; font-size: 16px; }
.muted { color: var(--text-soft); }
.small { font-size: 12px; }

.demand-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric { min-width: 0; }
.metric-label { display: block; color: var(--text-soft); font-size: 12px; margin-bottom: 3px; }
.metric-value { display: block; font-weight: 680; overflow-wrap: anywhere; }

.toolbar {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 22px 0 12px;
}

.filters { display: flex; gap: 7px; max-width: 100%; overflow-x: auto; }
.filter {
  min-height: 32px;
  padding: 4px 11px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: transparent;
  color: var(--text-soft);
  white-space: nowrap;
}
.filter.active { color: var(--brand); border-color: #8fbaa7; background: var(--brand-soft); font-weight: 650; }

.list { display: grid; gap: 10px; }

.property-card {
  display: grid;
  grid-template-columns: minmax(280px, 1.35fr) minmax(210px, 0.65fr);
  align-items: center;
  gap: 14px 24px;
  padding: 17px 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.property-card > .card-actions {
  grid-column: 1 / -1;
  justify-content: flex-start;
  padding-top: 13px;
  border-top: 1px solid var(--line);
}

.property-card:hover { border-color: #b7c0b8; }
.property-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.property-title { margin: 0; font-size: 16px; }
.property-meta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 7px; color: var(--text-soft); }
.property-meta span { display: inline-flex; align-items: center; gap: 5px; }

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 2px 8px;
  border-radius: 12px;
  border: 1px solid var(--line);
  color: var(--text-soft);
  background: var(--surface-muted);
  font-size: 12px;
  font-weight: 680;
  white-space: nowrap;
}
.badge-brand { color: var(--brand); background: var(--brand-soft); border-color: #b8d9ca; }
.badge-warning { color: var(--warning); background: var(--warning-soft); border-color: #ead29c; }
.badge-danger { color: var(--danger); background: var(--danger-soft); border-color: #e6bcbc; }
.badge-info { color: var(--info); background: var(--info-soft); border-color: #bdd0df; }

.task-summary { display: grid; gap: 7px; min-width: 0; }
.task-line { display: flex; justify-content: space-between; gap: 14px; padding: 3px 0; }
.task-line strong { text-align: right; }
.card-actions { display: flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }

.notice {
  margin-bottom: 16px;
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid #c7d8e6;
  border-radius: var(--radius);
  background: var(--info-soft);
  color: #274e70;
}
.notice-warning { border-color: #ead29c; background: var(--warning-soft); color: #704a0b; }
.notice-success { border-color: #b8d9ca; background: var(--brand-soft); color: var(--brand-dark); }

.compare-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 17px 18px;
  margin-bottom: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.compare-set { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 9px; }
.comparison-table { position: relative; border-color: var(--line-strong); }
.comparison-table table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; }
.comparison-table th, .comparison-table td { height: 68px; border-bottom: 1px solid var(--line); }
.comparison-table th { vertical-align: middle; }
.comparison-table .dimension-head, .comparison-table .dimension-cell { position: sticky; left: 0; z-index: 2; min-width: 140px; max-width: 140px; background: #f7f8f6; border-right: 1px solid var(--line-strong); }
.comparison-table .dimension-head { z-index: 4; }
.comparison-table .demand-head, .comparison-table .demand-cell { min-width: 188px; max-width: 188px; background: var(--brand-soft); color: var(--brand-dark); border-right: 2px solid #9fc5b3; }
.comparison-table .demand-head small { display: block; margin-top: 4px; color: var(--text-soft); font-weight: 500; }
.comparison-table .property-head, .comparison-table .property-cell { min-width: 170px; max-width: 190px; border-left: 2px solid #d7ddd8; }
.comparison-table .property-head { border-top: 3px solid var(--line-strong); color: var(--text); }
.comparison-table .property-head > span:first-child { display: block; min-height: 36px; margin-bottom: 7px; line-height: 1.45; overflow-wrap: normal; word-break: keep-all; }
.comparison-table .property-tone-0 { background: #fbfcfb; }
.comparison-table .property-tone-1 { background: #f7fafb; }
.comparison-table .property-tone-2 { background: #fcfaf7; }
.comparison-table tbody tr:hover .property-cell { box-shadow: inset 0 0 0 999px rgba(22, 109, 78, 0.025); }
.comparison-value { min-width: 0; display: grid; justify-items: start; align-content: start; gap: 8px; line-height: 1.45; }
.comparison-value > span:first-child { min-height: 21px; overflow-wrap: anywhere; }
.comparison-scope-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 11px 13px;
  color: var(--text-soft);
  background: var(--surface-muted);
  border: 1px solid var(--line);
  border-top: 0;
  font-size: 12px;
}
.compare-property-actions { display: grid; gap: 10px; margin-top: 18px; }
.compare-action-row {
  display: grid;
  grid-template-columns: 42px minmax(180px, 1fr) minmax(360px, auto);
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1px 2px rgba(25, 40, 31, 0.04);
}
.compare-action-row h3, .compare-action-row p { margin: 0; }
.compare-action-row h3 { font-size: 15px; }
.compare-action-row p { margin-top: 4px; color: var(--text-soft); font-size: 12px; }
.compare-action-index { display: grid; place-items: center; width: 34px; height: 34px; color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #b8d9ca; border-radius: 50%; font-size: 12px; font-weight: 750; }
.compare-action-copy { min-width: 0; }
.compare-action-buttons { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

.analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px; }
.analysis-card {
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.analysis-card h2 { margin: 0; font-size: 17px; }
.agent-label { margin: 14px 0 10px; display: flex; align-items: center; gap: 7px; font-weight: 720; }
.evidence { margin: 0; padding-left: 19px; color: var(--text-soft); min-height: 48px; }
.evidence li + li { margin-top: 4px; }
.analysis-actions { margin-top: 17px; display: flex; gap: 8px; flex-wrap: wrap; }
.analysis-update-hint { display: flex; align-items: center; gap: 7px; margin-top: 14px; color: #865b12; font-size: 12px; }
.analysis-current-hint { margin-top: 12px; color: var(--text-soft); font-size: 12px; }
.match-scope-note { margin-top: 10px; }
.match-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 12px 0 2px;
  border: 1px solid var(--line);
  background: var(--surface-muted);
}
.match-summary > div { display: grid; gap: 2px; padding: 10px; border-right: 1px solid var(--line); }
.match-summary > div:last-child { border-right: 0; }
.match-summary strong { color: var(--brand-dark); font-size: 17px; }
.match-summary span { color: var(--text-soft); font-size: 11px; }
.analysis-section-heading { margin-top: 26px; }
.demand-cell { background: var(--brand-soft); color: var(--brand-dark); font-weight: 650; }

.section-title { margin: 26px 0 12px; font-size: 17px; }

.record-section {
  margin-top: 16px;
  padding: 20px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.section-heading h2 { margin: 0 0 4px; font-size: 17px; }
.section-heading p { margin: 0; color: var(--text-soft); font-size: 13px; }

.archive-list { display: grid; gap: 10px; }
.archive-card {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(250px, 0.75fr) auto;
  align-items: center;
  gap: 20px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.archive-card h2 { margin: 0; font-size: 17px; }
.archive-ready { border-left: 3px solid var(--brand); }
.ready-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 0; border-top: 1px solid var(--line); }
.ready-row:first-of-type { border-top: 0; }

.eligibility-help { margin-top: 16px; padding: 14px 16px; border: 1px solid var(--line); background: var(--surface); }
.eligibility-help summary { cursor: pointer; font-weight: 680; }
.eligibility-help div { margin-top: 10px; color: var(--text-soft); }

.source-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.metric.wide { grid-column: span 2; }
.archive-content-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 18px; }
.archive-content-list span { display: flex; align-items: center; gap: 8px; padding: 9px 0; font-weight: 620; }
.agent-summary { display: grid; gap: 12px; }
.inspection-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); border: 1px solid var(--line); }
.inspection-summary div { display: grid; gap: 3px; padding: 15px; border-right: 1px solid var(--line); }
.inspection-summary div:last-child { border-right: 0; }
.inspection-summary strong { font-size: 22px; }
.inspection-summary span { color: var(--text-soft); font-size: 12px; }
.contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.contract-grid div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.contract-grid div:nth-child(odd) { padding-right: 20px; }
.contract-grid div:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--line); }
.contract-grid span { color: var(--text-soft); }
.contract-grid strong { overflow-wrap: anywhere; }
.inline-save { display: flex; justify-content: flex-end; margin-top: 10px; }
.archive-note-section { display: grid; gap: 14px; }
.archive-note-section .section-heading { margin-bottom: 0; }
.archive-note-assist { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 14px; background: var(--brand-soft); border: 1px solid #b8d9ca; }
.archive-note-assist > div:first-child { display: grid; gap: 3px; }
.archive-note-assist span { color: var(--text-soft); font-size: 12px; }
.archive-note-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.inline-empty { display: flex; align-items: center; gap: 8px; padding: 14px; color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #b8d9ca; }
.archive-disclaimer { margin: 18px 0 0; color: var(--text-soft); font-size: 12px; text-align: center; }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); background: var(--surface); }
table { width: 100%; border-collapse: collapse; min-width: 720px; }
th, td { padding: 11px 13px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: var(--surface-muted); font-size: 12px; color: var(--text-soft); }
tr:last-child td { border-bottom: 0; }

.form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; align-items: start; }
.form-main { background: var(--surface); border: 1px solid var(--line); padding: 20px; }
.form-aside { position: sticky; top: 80px; display: grid; gap: 12px; }
.aside-panel { padding: 16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.aside-panel h3 { margin: 0 0 8px; font-size: 14px; }

.listing-link-import { display: grid; gap: 15px; margin-bottom: 18px; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--brand); box-shadow: var(--shadow); }
.listing-link-import.is-imported { background: #fbfefc; }
.listing-link-head { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.listing-link-head h2, .listing-link-head p { margin: 0; }
.listing-link-head h2 { font-size: 17px; }
.listing-link-head p { margin-top: 2px; color: var(--text-soft); font-size: 13px; }
.listing-platform-mark { width: 42px; height: 42px; display: grid; place-items: center; color: white; background: #d85b2a; border-radius: 5px; font-size: 19px; font-weight: 800; }
.listing-link-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.listing-link-row .btn { min-height: 40px; }
.listing-link-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--text-soft); font-size: 12px; }
.listing-link-foot > span { display: flex; align-items: center; gap: 6px; }
.listing-link-foot-actions { display: flex; align-items: center; gap: 14px; }
.listing-imported-summary { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 14px; color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #b8d9ca; }
.listing-imported-summary > span { display: grid; }
.listing-imported-summary small { color: var(--text-soft); }
.listing-read-progress { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 14px; padding: 15px; background: var(--brand-soft); border: 1px solid #b8d9ca; }
.listing-read-progress p { margin: 3px 0 0; color: var(--text-soft); }
.loading-ring { width: 32px; height: 32px; border: 3px solid #b8d9ca; border-top-color: var(--brand); border-radius: 50%; animation: listing-spin 0.8s linear infinite; }
@keyframes listing-spin { to { transform: rotate(360deg); } }
.read-steps { display: grid; gap: 9px; margin: 16px 0 0; padding: 0; list-style: none; counter-reset: read-step; }
.read-steps li { display: flex; align-items: center; gap: 9px; color: var(--text-soft); }
.read-steps li::before { counter-increment: read-step; content: counter(read-step); width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; font-size: 11px; }
.read-steps li.done, .read-steps li.active { color: var(--brand-dark); font-weight: 650; }
.read-steps li.done::before { content: "✓"; color: white; background: var(--brand); border-color: var(--brand); }
.read-steps li.active::before { border-color: var(--brand); }
.external-review-modal .modal-body { max-height: min(72vh, 720px); overflow-y: auto; }
.external-source-strip { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 9px; margin-bottom: 14px; padding: 11px 12px; background: var(--info-soft); border: 1px solid #bfd3e4; }
.external-source-strip span { min-width: 0; display: grid; }
.external-source-strip small { overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.external-extraction-row { padding: 15px 0; border-top: 1px solid var(--line); }
.external-extraction-row:first-child { border-top: 0; }
.external-extraction-row .field { margin-top: 9px; }
.blocked-source-url { display: grid; gap: 4px; margin-top: 14px; padding: 11px 12px; background: var(--surface-muted); border: 1px solid var(--line); }
.blocked-source-url span { color: var(--text-soft); font-size: 12px; }
.blocked-source-url strong { overflow-wrap: anywhere; font-size: 12px; }
.fallback-flow { display: grid; gap: 0; margin-top: 14px; border: 1px solid var(--line); }
.fallback-flow div { display: grid; gap: 2px; padding: 12px; border-bottom: 1px solid var(--line); }
.fallback-flow div:last-child { border-bottom: 0; }
.fallback-flow span { color: var(--text-soft); font-size: 12px; }
.external-source-record { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-bottom: 16px; padding: 14px 16px; background: var(--info-soft); border: 1px solid #bfd3e4; }
.external-source-record > div { min-width: 0; display: grid; gap: 2px; }
.external-source-record small { color: var(--text-soft); }
.external-source-record > div > span { overflow: hidden; color: var(--text-soft); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

.form-section + .form-section { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.form-section h2 { margin: 0 0 14px; font-size: 17px; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 15px; }
.field { display: grid; align-content: start; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 13px; font-weight: 650; }
.field-hint { color: var(--text-soft); font-size: 12px; }
.custom-property-row {
  display: grid;
  grid-template-columns: minmax(170px, 0.75fr) minmax(260px, 1.25fr) 38px;
  align-items: end;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.custom-property-row:first-of-type { border-top: 1px solid var(--line); }
.custom-property-actions { display: flex; align-items: center; gap: 8px; padding-bottom: 1px; }
.custom-property-create {
  display: grid;
  grid-template-columns: minmax(160px, 0.8fr) minmax(220px, 1.2fr) auto;
  align-items: end;
  gap: 12px;
  margin-top: 14px;
}
.voice-assist {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
  border: 1px solid #b8d9ca;
  background: var(--brand-soft);
}
.voice-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.voice-timer {
  min-width: 92px;
  padding: 6px 8px;
  color: var(--text-soft);
  background: white;
  border: 1px solid var(--line);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  text-align: center;
}
.btn.is-recording {
  color: white;
  background: var(--danger);
  border-color: var(--danger);
}
.modal.modal-wide { width: min(820px, calc(100vw - 32px)); }
.assistant-reference { padding: 16px; border: 1px solid var(--line); background: #fbfcfb; }
.assistant-reference-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.assistant-reference-title > div:first-child { display: grid; gap: 3px; }
.assistant-reference-title span { color: var(--text-soft); font-size: 12px; }
.assistant-reference-actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.assistant-selected-count { min-width: 66px; padding-right: 9px; border-right: 1px solid var(--line); text-align: right; font-variant-numeric: tabular-nums; }
.assistant-field-groups { display: grid; border-top: 1px solid var(--line); }
.assistant-field-group { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.assistant-field-group:last-child { border-bottom: 0; padding-bottom: 0; }
.assistant-field-group-title { display: flex; flex-direction: column; gap: 2px; padding-top: 7px; color: var(--text); font-size: 12px; font-weight: 700; }
.assistant-field-group-title span { color: var(--text-soft); font-size: 11px; font-weight: 400; }
.assistant-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.assistant-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.assistant-mode-grid.property-assistant-modes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.assistant-mode-card {
  min-height: 126px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  padding: 16px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  text-align: left;
  cursor: pointer;
}
.assistant-mode-card:hover { border-color: var(--brand); background: var(--brand-soft); }
.assistant-mode-card strong, .assistant-mode-card small { display: block; }
.assistant-mode-card small { margin-top: 5px; color: var(--text-soft); line-height: 1.45; }
.assistant-mode-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: var(--brand-dark);
  background: var(--brand-soft);
  border: 1px solid #b8d9ca;
}
.image-assistant-panel { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; padding: 15px; border: 1px solid var(--line); background: var(--surface-muted); }
.image-assistant-panel .field { grid-column: 1 / -1; }
.image-assistant-panel p { margin: 4px 0 0; }
.assistant-processing-summary { padding: 12px 14px; background: var(--brand-soft); border-left: 3px solid var(--brand); }
.assistant-processing-summary p { margin: 5px 0 0; line-height: 1.55; overflow-wrap: anywhere; }
.extraction-review-list { display: grid; gap: 10px; }
.demand-extraction-review-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.extraction-review-row { display: grid; gap: 10px; padding: 13px; border: 1px solid var(--line); background: var(--surface); }
.extraction-review-head { display: flex; align-items: center; gap: 9px; }
.extraction-review-head input { width: 18px; height: 18px; min-height: 0; }
.extraction-review-head .badge { margin-left: auto; }
.extraction-value-compare { display: grid; grid-template-columns: minmax(180px, .85fr) minmax(0, 1.5fr); gap: 12px; align-items: end; }
.extraction-value-compare .field { margin: 0; }
.extraction-current { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 8px 10px; background: var(--surface-muted); }
.extraction-choice { display: flex; flex-wrap: wrap; gap: 14px; }
.extraction-choice label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.extraction-choice input { width: 16px; height: 16px; min-height: 0; }
.reference-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.reference-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 0; background: white; color: inherit; font: inherit; font-size: 12px; text-align: left; }
.reference-chip small { color: var(--text-soft); }
.reference-chip.is-empty { border-color: #9bcab6; background: var(--brand-soft); color: var(--brand-dark); }
.reference-chip.has-value { cursor: pointer; }
.reference-chip.has-value:hover { border-color: var(--brand); background: #f6fbf8; }
.reference-chip.has-value:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.reference-chip.has-value .icon { width: 13px; height: 13px; color: var(--brand); }
.reference-selectable {
  min-width: 0;
  min-height: 44px;
  display: flex;
  align-items: stretch;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: white;
  overflow: hidden;
}
.reference-selectable:hover { border-color: #91b9a7; }
.reference-selectable:has(input:checked) { border-color: #65a589; background: #eef8f3; }
.reference-selectable.is-empty { background: #f7f8f7; }
.reference-selectable > label { min-width: 0; flex: 1; display: inline-flex; align-items: center; gap: 7px; padding: 7px 8px; cursor: pointer; }
.reference-selectable input { width: 16px; min-height: 16px; margin: 0; accent-color: var(--brand); }
.reference-selectable label > span { min-width: 0; display: grid; gap: 1px; }
.reference-selectable strong { overflow: hidden; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.reference-selectable small { color: var(--text-soft); font-size: 11px; }
.reference-selectable:has(input:checked) small { color: var(--brand-dark); }
.reference-chip-view {
  width: 31px;
  min-height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--line);
  color: var(--brand);
  background: transparent;
  cursor: pointer;
}
.reference-chip-view:hover { background: var(--brand-soft); }
.reference-chip-view:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.reference-chip-view .icon { width: 14px; height: 14px; }
.reference-value-backdrop { z-index: 1200; padding: 20px; }
.reference-value-modal { width: min(560px, 100%); }
.reference-value-content { max-height: min(48vh, 360px); overflow: auto; padding: 16px; border: 1px solid var(--line); background: #f7f9f8; color: var(--text); line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.recording-continues { display: flex; align-items: center; gap: 8px; margin-top: 12px; color: var(--brand-dark); font-size: 13px; }
.recording-continues .icon { width: 16px; height: 16px; }
.contract-samples { margin-top: 18px; padding: 18px; border: 1px solid var(--line); background: #fff; }
.contract-sample-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0 10px; }
.contract-sample-list > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 86px; padding: 14px; border: 1px solid var(--line); color: var(--text); text-decoration: none; }
.contract-sample-list > a:hover { border-color: var(--brand); background: #f6fbf8; }
.contract-sample-list > a > span { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 8px; min-width: 0; }
.contract-sample-list strong { font-size: 14px; }
.contract-sample-list small { grid-column: 2; color: var(--text-soft); line-height: 1.5; }
.contract-sample-list .icon { width: 17px; height: 17px; color: var(--brand); }
@media (max-width: 760px) {
  .contract-sample-list { grid-template-columns: 1fr; }
}
.voice-format-guide { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 3px 12px; margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; }
.voice-format-guide strong { grid-row: 1 / span 2; }
.voice-format-guide span { color: var(--text-soft); }
.compact-notice { padding: 10px 12px; font-size: 12px; }
.extraction-review-row.is-unrecognized { gap: 6px; background: var(--surface-muted); }
.extraction-review-row.is-unrecognized p { margin: 0 0 0 27px; }
.field-label-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.custom-field-draft-list { display: grid; gap: 10px; }
.custom-field-draft { display: grid; grid-template-columns: 24px minmax(150px, 0.8fr) minmax(220px, 1.2fr); align-items: end; gap: 10px; padding: 12px; border: 1px solid var(--line); }
.custom-field-draft > input { align-self: center; width: 18px; min-height: 18px; }
.match-detail-list { display: grid; margin-top: 12px; border-top: 1px solid var(--line); }
.match-details { margin-top: 12px; border-top: 1px solid var(--line); }
.match-details summary {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 0;
  color: var(--brand-dark);
  cursor: pointer;
  font-size: 13px;
  font-weight: 680;
  list-style: none;
}
.match-details summary::-webkit-details-marker { display: none; }
.match-details summary .icon { transition: transform 140ms ease; }
.match-details[open] summary .icon { transform: rotate(180deg); }
.match-details .match-detail-list { margin-top: 0; }
.match-detail-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.match-detail-row span:first-child { display: grid; gap: 2px; min-width: 0; }
.match-detail-row small { color: var(--text-soft); overflow-wrap: anywhere; }
.analysis-time { margin-top: 9px; }
.agent-new-inspection { grid-column: 1 / -1; }
input, select, textarea {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  color: var(--text);
  background: white;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  outline: none;
}
.field > input:not([type="file"]), .field > select { height: 38px; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(23, 107, 77, 0.13); }
textarea { min-height: 88px; resize: vertical; }

.sticky-actions {
  margin: 28px -22px -70px;
  padding: 12px max(22px, calc((100vw - var(--content)) / 2 + 22px));
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  background: rgba(255, 255, 255, 0.98);
  border-top: 1px solid var(--line);
}

.empty {
  min-height: 300px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 42px 20px;
  background: var(--surface);
  border: 1px dashed var(--line-strong);
}
.empty-icon { width: 42px; height: 42px; color: #849087; margin-bottom: 11px; }
.empty h2 { margin: 0 0 7px; font-size: 18px; }
.empty p { margin: 0 0 17px; color: var(--text-soft); }

.modal-backdrop {
  position: fixed;
  z-index: 80;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(26, 31, 28, 0.48);
}
.modal {
  width: min(620px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  background: var(--surface);
  border-radius: var(--radius);
  box-shadow: 0 18px 48px rgba(20, 28, 23, 0.22);
}
.action-modal { width: min(520px, 100%); }
.modal-header, .modal-footer { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.modal-header { border-bottom: 1px solid var(--line); }
.modal-header h2 { margin: 0; font-size: 18px; }
.modal-body { padding: 18px; }
.modal-footer { border-top: 1px solid var(--line); justify-content: flex-end; }

.choice-list { display: grid; gap: 8px; }
.choice-row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 5px;
}
.choice-row.disabled { opacity: 0.55; background: var(--surface-muted); }
.choice-row input { width: 18px; height: 18px; min-height: 0; }

.action-list { display: grid; padding: 0; }
.action-row {
  width: 100%;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.action-row:last-child { border-bottom: 0; }
.action-row:hover { background: var(--surface-soft); }
.action-row span { min-width: 0; }
.action-row small { display: block; margin-top: 3px; color: var(--muted); line-height: 1.45; }
.danger-row, .danger-row small { color: var(--danger); }

.toast {
  position: fixed;
  z-index: 100;
  right: 22px;
  bottom: 22px;
  max-width: 380px;
  padding: 11px 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: white;
  background: #26352e;
  border-radius: 5px;
  box-shadow: 0 10px 30px rgba(20, 28, 23, 0.25);
}

.import-zone {
  min-height: 140px;
  padding: 24px;
  display: grid;
  place-items: center;
  text-align: center;
  border: 1px dashed var(--line-strong);
  background: var(--surface-muted);
}
.import-zone.compact { min-height: 180px; }
.assist-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 18px;
  margin-bottom: 14px;
  border: 1px solid #c7d8e6;
  border-radius: var(--radius);
  background: var(--info-soft);
}
.assist-bar p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.mock-files { margin-top: 12px; display: grid; gap: 8px; }
.mock-file { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 12px; border: 1px solid var(--line); background: white; }

.checklist { display: grid; gap: 8px; }
.check-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.check-item:last-child { border-bottom: 0; }
.check-name { font-weight: 650; }
.check-desc { color: var(--text-soft); font-size: 12px; margin-top: 2px; }
.check-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.check-controls select { min-width: 170px; }
.custom-add { display: grid; gap: 14px; padding-top: 22px; border-top: 1px solid var(--line); }
.custom-add .section-heading { margin-bottom: 0; }
.custom-add .btn { justify-self: start; }
.modal-field { margin-top: 16px; }
.agent-files { margin-top: 14px; justify-content: flex-start; }

.hidden { display: none !important; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.checklist-groups { display: grid; gap: 24px; }
.check-group + .check-group { padding-top: 22px; border-top: 1px solid var(--line); }
.amenity-inspection-group { padding: 16px; background: #f7faf8; border: 1px solid #cbdad3; }
.amenity-inspection-heading, .amenity-inspection-actions > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.amenity-inspection-panel { display: grid; gap: 12px; }
.amenity-inspection-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 12px; background: var(--surface); border: 1px solid var(--line); }
.amenity-inspection-actions > div:first-child { display: grid; gap: 2px; }
.amenity-inspection-actions span { color: var(--text-soft); font-size: 12px; }
.check-item-wrap { border-bottom: 1px solid var(--line); }
.check-item-wrap:last-child { border-bottom: 0; }
.check-item-wrap .check-item { border-bottom: 0; }
.issue-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(240px, 0.8fr);
  gap: 16px;
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid #ead29c;
  background: var(--warning-soft);
}

.page-return { display: flex; justify-content: flex-start; margin-top: 20px; }
.compact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.inspection-group { padding-top: 8px; padding-bottom: 8px; }
.inspection-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 18px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.inspection-row:first-of-type { border-top: 0; }
.issue-note { margin: 8px 0 0; padding: 9px 11px; color: #704a0b; background: var(--warning-soft); }
.file-tags { display: flex; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }

.contract-upload {
  min-height: 330px;
  display: grid;
  place-items: center;
  padding: 36px 20px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--line-strong);
}
.contract-upload h2 { margin: 0 0 5px; }
.contract-upload p { margin: 0 0 18px; color: var(--text-soft); }
.contract-upload .btn + .btn { margin-left: 8px; }
.compact-empty { min-height: 250px; }
.contract-file-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.contract-file-bar > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.contract-file-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.contract-preview-modal { width: min(1120px, calc(100vw - 32px)); height: min(860px, calc(100vh - 32px)); }
.contract-preview-modal .modal-body { min-height: 0; padding: 0; overflow: hidden; background: #e9eeeb; }
.contract-original-frame { display: block; width: 100%; height: 100%; min-height: 640px; border: 0; background: white; }
.contract-original-image { height: 100%; min-height: 620px; overflow: auto; padding: 18px; text-align: center; }
.contract-original-image img { display: block; max-width: 100%; height: auto; margin: 0 auto; box-shadow: 0 8px 28px rgba(17, 45, 34, 0.16); }
.contract-review { background: var(--surface); border: 1px solid var(--line); }
.contract-review-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
  border-bottom: 1px solid var(--line);
}
.contract-review-head h2 { margin: 0 0 4px; font-size: 18px; }
.contract-review-head p { margin: 0; color: var(--text-soft); }
.contract-scan-warning { margin: 14px 18px 0; }
.contract-scan-warning ul { margin: 8px 0; padding-left: 20px; }
.contract-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.contract-review-row {
  display: grid;
  grid-template-columns: 145px minmax(150px, 0.7fr) minmax(190px, 0.9fr) minmax(260px, 1.2fr);
  align-items: center;
  gap: 18px;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
}
.contract-review-row:last-child { border-bottom: 0; }
.contract-field-name, .property-contract-value, .agent-value { display: grid; align-items: start; gap: 6px; min-width: 0; }
.agent-value strong, .property-contract-value strong { overflow-wrap: anywhere; }
.contract-review-row.has-mismatch { box-shadow: inset 3px 0 0 #d7a138; }
.inline-links { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.text-button {
  width: fit-content;
  padding: 0;
  border: 0;
  color: var(--info);
  background: transparent;
  font-size: 12px;
  text-decoration: underline;
}
.text-button.text-danger { color: var(--danger); }
.contract-evidence { display: grid; gap: 7px; margin-top: 5px; padding-top: 9px; border-top: 1px solid var(--line); }
.contract-evidence-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.contract-evidence-head .text-button { display: inline-flex; align-items: center; gap: 4px; text-decoration: none; }
.contract-evidence-list { display: flex; flex-wrap: wrap; gap: 6px; }
.evidence-tag { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; color: var(--info); background: var(--info-soft); border: 1px solid #bdd0df; font-size: 11px; }
.arrival-record-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.source-return-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
  padding: 10px 12px;
  color: var(--text-soft);
  background: var(--surface);
  border: 1px solid var(--line);
  font-size: 12px;
}
.raw-input-preview { display: grid; gap: 5px; padding: 12px; color: var(--text-soft); background: var(--surface-muted); border: 1px solid var(--line); }
.raw-input-preview strong { color: var(--text); overflow-wrap: anywhere; }
.skip-control { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.skip-control input, .toggle { width: 18px; height: 18px; min-height: 0; }
.contract-custom-add { display: grid; gap: 14px; padding: 20px 18px; background: var(--surface-muted); }
.contract-custom-add .section-heading { margin-bottom: 0; }
.contract-custom-add .btn { justify-self: start; }
.contract-command-example {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 5px 12px;
  padding: 12px 14px;
  border-left: 3px solid var(--brand);
  background: var(--brand-soft);
}
.contract-command-example code { overflow-wrap: anywhere; color: var(--brand-dark); font-family: inherit; }
.contract-command-example span { grid-column: 2; color: var(--text-soft); font-size: 12px; }
.source-preview { padding: 16px; border: 1px solid var(--line); background: var(--surface-muted); }
.source-preview p { margin: 14px 0 0; }
.contract-complete-modal { width: min(620px, calc(100vw - 28px)); }
.contract-complete-intro { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px; background: var(--brand-soft); border: 1px solid #b8d9ca; }
.contract-complete-intro p { margin: 5px 0 0; color: var(--text-soft); }
.contract-complete-icon { display: grid; place-items: center; width: 40px; height: 40px; color: white; background: var(--brand); border-radius: 6px; }
.contract-complete-icon .icon { width: 20px; height: 20px; }
.contract-complete-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 14px 0; border: 1px solid var(--line); }
.contract-complete-summary > div { display: grid; grid-template-columns: 1fr auto auto; align-items: baseline; gap: 5px; padding: 14px 16px; }
.contract-complete-summary > div + div { border-left: 1px solid var(--line); }
.contract-complete-summary span { color: var(--text-soft); font-size: 12px; }
.contract-complete-summary strong { color: var(--brand-dark); font-size: 24px; }
.contract-complete-summary small { color: var(--text-soft); }
.contract-confirm-check { display: flex; align-items: flex-start; gap: 9px; padding: 12px 14px; border: 1px solid var(--line-strong); background: var(--surface); font-weight: 620; }
.contract-confirm-check input { width: 18px; height: 18px; min-height: 0; margin-top: 1px; }

.profile-page { max-width: 900px; }
.profile-identity {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 20px;
  margin-bottom: 14px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.profile-identity h2, .profile-identity p { margin: 0; }
.profile-identity p { color: var(--text-soft); }
.profile-identity-copy { display: grid; gap: 4px; }
.avatar {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  color: white;
  background: var(--brand);
  border-radius: 50%;
  font-size: 22px;
  font-weight: 750;
}
.avatar-large { width: 64px; height: 64px; }
.avatar-uploaded { color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #9bcab6; }
.profile-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin-bottom: 14px; border: 1px solid var(--line); background: var(--surface); }
.profile-overview > div { display: grid; gap: 3px; padding: 14px 18px; border-right: 1px solid var(--line); }
.profile-overview > div:last-child { border-right: 0; }
.profile-overview span { color: var(--text-soft); font-size: 12px; }
.profile-overview strong { color: var(--brand-dark); font-size: 21px; }
.profile-editor-head { display: flex; align-items: center; gap: 13px; padding: 12px; background: var(--surface-muted); border: 1px solid var(--line); }
.settings-section { margin-top: 14px; padding: 18px 20px; background: var(--surface); border: 1px solid var(--line); }
.schedule-list { display: grid; gap: 12px; }
.schedule-card {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--surface-muted);
}
.schedule-date, .schedule-content { display: grid; gap: 3px; min-width: 0; }
.schedule-date { align-content: center; align-self: stretch; padding-right: 16px; border-right: 1px solid var(--line); }
.schedule-date strong { color: var(--brand-dark); font-size: 22px; line-height: 1.1; }
.schedule-month { font-size: 12px; font-weight: 700; }
.schedule-date span, .schedule-content p, .schedule-content small { color: var(--text-soft); }
.schedule-content h3, .schedule-content p { margin: 0; }
.schedule-content h3 { font-size: 15px; }
.schedule-content small { overflow-wrap: anywhere; }
.schedule-meta, .schedule-note { display: flex; align-items: flex-start; gap: 6px; color: var(--text-soft); font-size: 13px; }
.schedule-meta .icon, .schedule-note .icon { flex: 0 0 auto; margin-top: 1px; }
.schedule-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.settings-row {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 0;
  border-top: 1px solid var(--line);
}
.settings-row > span { display: grid; }
.settings-row small { color: var(--text-soft); font-weight: 400; }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.danger-zone h2, .danger-zone p { margin: 0; }
.danger-zone p { color: var(--text-soft); }

.plaza-trust-band { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 16px; background: var(--surface); border: 1px solid var(--line); }
.plaza-trust-band > div { display: flex; align-items: flex-start; gap: 10px; padding: 15px 16px; border-right: 1px solid var(--line); }
.plaza-trust-band > div:last-child { border-right: 0; }
.plaza-trust-band .icon { flex: 0 0 auto; color: var(--brand); }
.plaza-trust-band span { display: grid; gap: 3px; }
.plaza-trust-band small { color: var(--text-soft); line-height: 1.45; }
.plaza-filter-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 14px; background: var(--surface-muted); border: 1px solid var(--line); }
.plaza-filter-panel .field { min-width: 0; }
.plaza-filter-panel select { background: var(--surface); }
.plaza-keyword-filter { min-width: 0; }
.inline-input-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.plaza-search-button { min-width: 78px; }
.plaza-filter-hint { grid-column: 1 / -1; color: var(--text-soft); font-size: 12px; }
.plaza-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 12px 0; }
.plaza-toolbar > div:first-child { display: grid; gap: 3px; }
.plaza-feed { display: grid; gap: 12px; }
.plaza-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 18px; align-items: start; padding: 18px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 2px 8px rgba(19, 46, 35, 0.04); cursor: pointer; }
.plaza-card:hover { border-color: #b8c5bc; box-shadow: 0 5px 16px rgba(19, 46, 35, 0.07); }
.plaza-card:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.plaza-card a, .plaza-card button { cursor: pointer; }
.plaza-card-author { display: grid; justify-items: center; gap: 5px; padding: 4px 8px; text-align: center; }
.plaza-card-author span:last-child { color: var(--text-soft); font-size: 12px; }
.plaza-author-link, .forum-author-identity, .comment-author-link { color: inherit; text-decoration: none; }
.plaza-card-author .plaza-author-link { width: 100%; display: grid; justify-items: center; gap: 5px; }
.plaza-card-author .plaza-author-link strong { white-space: nowrap; }
.plaza-author-link:hover strong, .forum-author-identity:hover strong, .plaza-comment header a:hover { color: var(--brand); }
.plaza-avatar { width: 48px; height: 48px; display: inline-grid; place-items: center; flex: 0 0 auto; color: white; background: #3a7663; border-radius: 50%; font-weight: 760; font-size: 17px; }
.plaza-avatar-sm { width: 34px; height: 34px; font-size: 13px; }
.plaza-card-media { display: grid; place-items: center; align-content: center; gap: 8px; min-height: 138px; color: var(--brand-dark); background: #e5f0eb; border: 1px solid #c4ddd2; }
.plaza-card-wanted .plaza-card-media { color: #29536d; background: #eaf2f6; border-color: #c5d8e3; }
.plaza-card-media .icon { width: 30px; height: 30px; }
.plaza-card-media small { font-weight: 700; }
.plaza-card-body { min-width: 0; }
.plaza-card h2, .plaza-card p { margin: 0; }
.plaza-card h2 { font-size: 17px; }
.plaza-card-kicker { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 7px; color: var(--text-soft); font-size: 12px; }
.plaza-card-title { display: inline-block; color: var(--text); font-size: 18px; font-weight: 740; line-height: 1.4; text-decoration: none; }
.plaza-card-title:hover { color: var(--brand); }
.plaza-location, .plaza-source-line { display: flex; align-items: center; gap: 6px; color: var(--text-soft); font-size: 12px; }
.plaza-location { margin-top: 6px !important; }
.plaza-price { display: flex; align-items: baseline; gap: 12px; margin-top: 12px; }
.plaza-price strong { color: var(--brand-dark); font-size: 20px; }
.plaza-price span { color: var(--text-soft); font-size: 13px; }
.plaza-description { display: -webkit-box; margin-top: 9px !important; overflow: hidden; color: var(--text-soft); line-height: 1.65; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.plaza-brief-facts { display: flex; align-items: center; gap: 0; flex-wrap: wrap; margin-top: 11px; }
.plaza-brief-facts > * { padding: 0 10px; border-left: 1px solid var(--line); }
.plaza-brief-facts > *:first-child { padding-left: 0; border-left: 0; color: var(--brand-dark); }
.tag-list { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.plaza-card .tag-list { margin-top: 10px; }
.plaza-source-line { margin-top: 11px; }
.plaza-source-line .icon { color: var(--brand); }
.plaza-card-footer { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 13px; padding-top: 12px; color: var(--text-soft); border-top: 1px solid var(--line); font-size: 12px; }
.plaza-card-footer > span { display: inline-flex; align-items: center; gap: 5px; }
.plaza-card-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.property-media-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.property-media-item { position: relative; min-height: 94px; display: grid; place-items: center; align-content: center; gap: 5px; padding: 12px; overflow: hidden; color: #315d52; background: #e8f0ec; border: 1px solid #c9d8d0; }
.property-media-item:nth-child(2n) { color: #38566a; background: #edf2f5; border-color: #d0dbe1; }
.property-media-item small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.property-media-item b { position: absolute; top: 6px; left: 6px; padding: 2px 6px; color: white; background: var(--brand); font-size: 10px; }
.property-media-item.has-preview { min-height: 132px; align-content: end; padding: 0; background: #edf2ef; }
.property-media-item.has-preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.property-media-item.has-preview small { position: relative; z-index: 1; width: 100%; padding: 24px 8px 7px; color: white; background: linear-gradient(transparent, rgb(0 0 0 / 72%)); }
.property-media-retry { display: none; position: relative; z-index: 4; align-items: center; gap: 5px; padding: 7px 10px; color: var(--brand-strong); background: white; border: 1px solid var(--brand); font: inherit; font-size: 12px; cursor: pointer; }
.property-media-item.image-load-failed { align-content: center; padding: 12px; }
.property-media-item.image-load-failed img { display: none; }
.property-media-item.image-load-failed small { width: auto; padding: 0; color: var(--ink); background: transparent; }
.property-media-item.image-load-failed .property-media-retry { display: inline-flex; }
.media-empty { min-height: 82px; display: grid; place-items: center; align-content: center; gap: 5px; margin: 12px 0; color: var(--text-soft); background: var(--surface-muted); border: 1px dashed var(--line-strong); }
.plaza-card .property-media-grid { grid-template-columns: repeat(3, minmax(0, 118px)); margin: 10px 0; }
.plaza-card .property-media-item { min-height: 72px; }
.amenity-check-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.amenity-check-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.amenity-heading-actions, .amenity-review-actions, .amenity-review-actions > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.amenity-review-actions { justify-content: space-between; margin-bottom: 9px; }
.amenity-check { position: relative; min-width: 0; cursor: pointer; }
.amenity-check input { position: absolute; opacity: 0; pointer-events: none; }
.amenity-check span { min-height: 40px; display: flex; align-items: center; gap: 7px; padding: 9px 10px; color: var(--text-soft); background: var(--surface); border: 1px solid var(--line-strong); }
.amenity-check span svg { width: 15px; height: 15px; color: transparent; }
.amenity-check input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }
.amenity-check input:checked + span { color: var(--brand-dark); background: var(--brand-soft); border-color: #9bcab7; font-weight: 650; }
.amenity-check input:checked + span svg { color: var(--brand); }
.amenity-display-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.amenity-display-grid.compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.amenity-display-grid > span { display: flex; align-items: center; gap: 6px; min-height: 38px; padding: 8px 10px; color: var(--brand-dark); background: var(--brand-soft); border: 1px solid #b8d9ca; }
.amenity-display-grid svg, .amenity-preview svg { width: 14px; height: 14px; }
.plaza-amenity-preview { display: grid; gap: 8px; margin-top: 12px; padding: 12px; background: #f7faf8; border: 1px solid var(--line); }
.plaza-amenity-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.plaza-amenity-preview-head span, .plaza-amenity-empty { color: var(--text-soft); font-size: 12px; }
.plaza-amenity-empty { display: flex; align-items: center; gap: 7px; margin-top: 12px; padding: 11px 12px; background: var(--surface-muted); border: 1px dashed var(--line-strong); }
.amenity-more { color: var(--text-soft) !important; background: var(--surface) !important; border-style: dashed !important; }
.public-amenity-section .inline-empty { margin: 0; }
.listing-import-strip { display: grid; gap: 12px; margin-bottom: 14px; padding: 14px; background: #edf5f1; border: 1px solid #b9d4c8; }
.listing-import-strip strong { display: flex; align-items: center; gap: 7px; }
.listing-import-strip p { margin: 4px 0 0; color: var(--text-soft); font-size: 12px; }
.listing-import-actions { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto; gap: 8px; }
.message-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}
.message-return { min-width: 150px; justify-self: end; }
.plaza-compose .source-return-banner { color: var(--brand-dark); background: var(--brand-soft); border-color: #9fcab8; }
.plaza-compose .source-return-banner .btn { color: white; background: var(--brand); border-color: var(--brand); }
.listing-image-review { margin-bottom: 10px; padding: 14px; background: var(--surface-muted); border: 1px solid var(--line); }
.listing-image-review .privacy-confirm { padding: 7px 10px; background: var(--surface); }
.plaza-origin-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 14px; border: 1px solid var(--line); background: var(--surface); }
.plaza-origin-tabs a { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 7px; color: var(--text-soft); text-decoration: none; border-right: 1px solid var(--line); }
.plaza-origin-tabs a:last-child { border-right: 0; }
.plaza-origin-tabs a.active { color: var(--brand-dark); background: var(--brand-soft); box-shadow: inset 0 -3px 0 var(--brand); font-weight: 700; }
.plaza-inspection-editor { display: grid; border: 1px solid var(--line); }
.plaza-inspection-edit-row { display: grid; grid-template-columns: minmax(190px, 1fr) 150px minmax(180px, 1fr); gap: 10px; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.plaza-inspection-edit-row:last-child { border-bottom: 0; }
.plaza-inspection-edit-row > div { display: grid; gap: 2px; }
.plaza-inspection-edit-row span { color: var(--text-soft); font-size: 12px; }
.inspection-bulk-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.public-inspection-list { display: grid; border: 1px solid var(--line); }
.public-inspection-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px; border-bottom: 1px solid var(--line); }
.public-inspection-row:last-child { border-bottom: 0; }
.public-inspection-row > div { display: grid; gap: 3px; }

.inspection-result-group { padding: 0; overflow: hidden; }
.inspection-result-group > summary { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; cursor: pointer; list-style: none; }
.inspection-result-group > summary::-webkit-details-marker { display: none; }
.inspection-result-group > summary > div { display: grid; gap: 3px; }
.inspection-result-group > summary h2, .inspection-result-group > summary p { margin: 0; }
.inspection-result-group > summary p { color: var(--text-soft); font-size: 13px; }
.inspection-result-issue > summary { background: #fff6f5; border-left: 4px solid var(--danger); }
.inspection-result-normal > summary { background: var(--brand-soft); border-left: 4px solid var(--brand); }
.inspection-result-content { padding: 0 20px 8px; border-top: 1px solid var(--line); }
.inspection-fold-label { display: inline-flex; align-items: center; gap: 6px; color: var(--text-soft); font-size: 12px; white-space: nowrap; }
.inspection-fold-label .icon { transition: transform 160ms ease; }
.inspection-result-group[open] .inspection-fold-label .icon { transform: rotate(180deg); }
.inspection-empty-result { display: flex; align-items: center; gap: 8px; padding: 18px 0 10px; color: var(--text-soft); }
.public-inspection-row span, .public-inspection-row p { margin: 0; color: var(--text-soft); font-size: 12px; }
.sync-property-section { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-color: #bdd8cd; background: var(--brand-soft); }
.sync-property-section p { margin: 3px 0 0; color: var(--text-soft); }
.toggle-row { display: flex; align-items: center; gap: 8px; white-space: nowrap; font-weight: 700; }

.landlord-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 16px; background: var(--surface); border: 1px solid var(--line); }
.landlord-kpis > div { display: grid; gap: 2px; padding: 17px; border-right: 1px solid var(--line); }
.landlord-kpis > div:last-child { border-right: 0; }
.landlord-kpis span, .landlord-kpis small { color: var(--text-soft); }
.landlord-kpis strong { color: var(--brand-dark); font-size: 25px; }
.landlord-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); gap: 16px; align-items: start; }
.landlord-quick-panel { display: grid; background: var(--surface); border: 1px solid var(--line); }
.landlord-quick-panel h2 { margin: 0; padding: 15px; font-size: 16px; border-bottom: 1px solid var(--line); }
.landlord-quick-panel a { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 8px; padding: 13px 15px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--line); }
.landlord-quick-panel a:last-child { border-bottom: 0; }
.landlord-quick-panel a:hover { background: var(--surface-muted); }
.landlord-appointment-list { display: grid; }
.landlord-appointment-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.landlord-appointment-row:last-child { border-bottom: 0; }
.landlord-appointment-row > div:nth-child(2) { display: grid; gap: 3px; }
.landlord-appointment-row span { color: var(--text-soft); }
.appointment-date { display: grid; padding-right: 12px; border-right: 1px solid var(--line); }
.landlord-property-list { display: grid; gap: 12px; }
.landlord-property-card { display: grid; grid-template-columns: 180px minmax(0, 1fr); min-width: 0; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.landlord-property-media { display: grid; place-items: center; align-content: center; gap: 5px; min-height: 175px; padding: 15px; color: var(--brand-dark); background: var(--brand-soft); border-right: 1px solid var(--line); text-align: center; }
.landlord-property-media span { max-width: 100%; overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.landlord-property-main { min-width: 0; padding: 16px 18px; }
.landlord-property-main h2, .landlord-property-main p { margin: 0; }
.landlord-property-main > p { margin-top: 7px; }
.landlord-property-main .card-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.landlord-page .schedule-list { display: grid; gap: 10px; }
.landlord-page .schedule-card { display: grid; grid-template-columns: 135px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 17px; background: var(--surface); border: 1px solid var(--line); }
.landlord-page .schedule-card h2, .landlord-page .schedule-card p { margin: 0; }
.schedule-time { display: grid; padding-right: 15px; border-right: 1px solid var(--line); }
.schedule-time strong { font-size: 17px; }
.chat-agent-entry { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 14px 0 4px; padding: 13px 14px; background: var(--brand-soft); border: 1px solid #b9d8cc; }
.chat-agent-entry > div { display: flex; align-items: center; gap: 9px; }
.chat-agent-entry span { display: grid; gap: 2px; }
.chat-agent-entry small { color: var(--text-soft); }
.workspace-rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); }
.workspace-rule-grid > div { display: grid; gap: 6px; padding: 16px; border-right: 1px solid var(--line); }
.workspace-rule-grid > div:last-child { border-right: 0; }
.workspace-rule-grid .icon { color: var(--brand); }
.workspace-rule-grid span { color: var(--text-soft); }
.workspace-choice-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.workspace-choice { min-height: 110px; display: grid; grid-template-columns: 28px 1fr 18px; align-items: center; gap: 10px; padding: 16px; color: var(--text); background: var(--surface); border: 1px solid var(--line-strong); text-align: left; }
.workspace-choice.active { color: var(--brand-dark); background: var(--brand-soft); border-color: var(--brand); }
.workspace-choice span { display: grid; gap: 4px; }
.workspace-choice small { color: var(--text-soft); }
.login-panel-wide { width: min(560px, calc(100vw - 32px)); }
.login-workspace-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.login-workspace-grid button { min-height: 86px; display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 10px; padding: 14px; color: var(--text); background: var(--surface); border: 1px solid var(--line-strong); text-align: left; }
.login-workspace-grid button:hover { border-color: var(--brand); background: var(--brand-soft); }
.login-workspace-grid span { display: grid; gap: 3px; }
.login-workspace-grid small { color: var(--text-soft); }
.plaza-detail-hero { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 20px; align-items: center; padding: 22px; background: var(--brand-soft); border: 1px solid #badacb; }
.plaza-detail-symbol { display: grid; place-items: center; width: 88px; height: 88px; color: var(--brand-dark); background: white; border: 1px solid #badacb; }
.plaza-detail-symbol .icon { width: 34px; height: 34px; }
.plaza-detail-hero > div:last-child { display: grid; gap: 6px; }
.plaza-detail-hero strong { color: var(--brand-dark); font-size: 25px; }
.plaza-detail-hero p { margin: 0; color: var(--text-soft); }
.plaza-detail-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr); gap: 16px; align-items: start; margin-top: 16px; }
.plaza-fact-panel { padding: 18px; background: var(--surface); border: 1px solid var(--line); }
.plaza-fact-panel h2 { margin-top: 0; }
.plaza-fact-panel ul { display: grid; gap: 10px; padding: 0; list-style: none; }
.plaza-fact-panel li { display: flex; align-items: flex-start; gap: 8px; }
.plaza-fact-panel li .icon { flex: 0 0 auto; color: var(--brand); margin-top: 2px; }
.long-copy { line-height: 1.8; }
.plaza-compose-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.plaza-compose-layout.plaza-compose-single-column { grid-template-columns: minmax(0, 1fr); }
.plaza-compose-layout .form-aside { position: sticky; top: 84px; }
.plaza-compose-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 16px; border: 1px solid var(--line); background: var(--surface); }
.plaza-compose-modes a { display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 14px 16px; color: var(--text); text-decoration: none; border-right: 1px solid var(--line); }
.plaza-compose-modes a:last-child { border-right: 0; }
.plaza-compose-modes a.active { color: var(--brand-dark); background: var(--brand-soft); box-shadow: inset 0 -3px 0 var(--brand); }
.plaza-compose-modes a > span { display: grid; gap: 3px; }
.plaza-compose-modes small { color: var(--text-soft); }
.plaza-compose-modes .icon { flex: 0 0 auto; }
.plaza-source-picker { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); gap: 24px; align-items: end; }
.plaza-source-picker h2, .plaza-source-picker p { margin: 0; }
.plaza-source-picker p { margin-top: 4px; color: var(--text-soft); }
.public-fact-list { display: grid; gap: 8px; margin-top: 12px; }
.public-fact-list label, .privacy-confirm { display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px; background: var(--surface-muted); border: 1px solid var(--line); }
.public-fact-list input, .privacy-confirm input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; }
.plaza-publish-footer { display: grid; gap: 0; padding: 14px 20px; }
.publish-confirm-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 8px; }
.publish-confirm-summary strong { font-size: 15px; }
.publish-confirm-summary span { color: var(--text-soft); font-size: 12px; }
.plaza-publish-footer .aside-panel { display: grid; grid-template-columns: minmax(100px, 0.24fr) minmax(0, 1fr); gap: 8px 16px; align-items: start; padding: 9px 0; border: 0; border-top: 1px solid var(--line); background: transparent; }
.plaza-publish-footer .aside-panel h3 { margin: 0; font-size: 13px; }
.plaza-publish-footer .aside-panel p { margin: 0; font-size: 13px; line-height: 1.55; }
.plaza-publish-footer .delivery-scope-panel { display: grid; grid-template-columns: minmax(130px, 0.35fr) minmax(0, 1fr); gap: 8px 18px; }
.plaza-publish-footer .delivery-scope-panel small { grid-column: 2; color: var(--text-soft); }
.plaza-publish-footer .privacy-confirm { margin: 0; padding: 9px 12px; background: var(--brand-soft); border-color: #a9d2c0; font-size: 13px; }
.plaza-contact-grid > .field-hint.full { grid-column: 1 / -1; }
.plain-fact-list { display: grid; gap: 8px; padding: 0; list-style: none; }
.plain-fact-list li { display: flex; align-items: flex-start; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.plain-fact-list li:last-child { border-bottom: 0; }
.plain-fact-list .icon { flex: 0 0 auto; color: var(--brand); margin-top: 2px; }
.my-post-list { display: grid; gap: 10px; }
.my-post-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 14px; background: var(--surface-muted); border: 1px solid var(--line); }
.my-post-list h3, .my-post-list p { margin: 0; }
.my-post-list h3 { font-size: 15px; }
.my-post-list p { margin-top: 5px; color: var(--text-soft); font-size: 12px; }
.profile-message-list { display: grid; border: 1px solid var(--line); }
.profile-message-list a { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 11px 12px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--line); }
.profile-message-list a:last-child { border-bottom: 0; }
.profile-message-list a:hover { background: var(--surface-muted); }
.profile-message-list span { display: grid; min-width: 0; }
.profile-message-list small { overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.profile-message-list b, .unread-count { min-width: 21px; height: 21px; display: inline-grid; place-items: center; padding: 0 6px; color: white; background: var(--danger); border-radius: 11px; font-size: 11px; }

.plaza-thread-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.plaza-thread { display: grid; gap: 16px; min-width: 0; }
.forum-post, .plaza-comments, .plaza-thread-aside > section { background: var(--surface); border: 1px solid var(--line); }
.forum-author-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 15px 18px; background: var(--surface-muted); border-bottom: 1px solid var(--line); }
.forum-author-identity { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 12px; }
.forum-author-identity > div { min-width: 0; display: grid; gap: 2px; }
.forum-author-identity span { overflow-wrap: anywhere; }
.forum-author-bar span { color: var(--text-soft); font-size: 12px; }
.forum-author-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.forum-post-content { padding: 22px; }
.forum-post-content h1 { margin: 0; font-size: 25px; line-height: 1.35; }
.forum-body { margin: 20px 0; white-space: pre-wrap; line-height: 1.9; font-size: 15px; }
.plaza-detail-summary { display: flex; align-items: center; flex-wrap: wrap; margin: 0 0 16px; padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.plaza-detail-summary > * { padding: 0 13px; border-left: 1px solid var(--line); }
.plaza-detail-summary > *:first-child { padding-left: 0; border-left: 0; color: var(--brand-dark); font-size: 20px; }
.thread-fact-section { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.thread-fact-section h2 { margin: 0 0 8px; font-size: 16px; }
.forum-post-actions { display: flex; align-items: center; gap: 8px; padding: 11px 18px; background: var(--surface-muted); border-top: 1px solid var(--line); }
.forum-post-actions > span { margin-left: auto; color: var(--text-soft); font-size: 12px; }
.plaza-thread-aside { position: sticky; top: 74px; display: grid; gap: 12px; }
.plaza-thread-aside > section { padding: 16px; }
.plaza-thread-aside h2 { margin: 0 0 10px; font-size: 16px; }
.plaza-thread-aside ul { display: grid; gap: 8px; padding: 0; list-style: none; }
.plaza-thread-aside li { display: flex; align-items: flex-start; gap: 7px; }
.aside-action-stack { display: grid; gap: 8px; margin-top: 12px; }
.plaza-comments > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 17px 18px; border-bottom: 1px solid var(--line); }
.plaza-comments h2, .plaza-comments p { margin: 0; }
.plaza-comments p { color: var(--text-soft); font-size: 12px; }
.comment-composer { display: grid; gap: 9px; padding: 16px 18px; background: var(--surface-muted); border-bottom: 1px solid var(--line); }
.comment-composer > div:last-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.replying-banner { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--brand-dark); }
.comment-list { padding: 0 18px; }
.plaza-comment { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 11px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.plaza-comment:last-child { border-bottom: 0; }
.plaza-comment header { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.plaza-comment time { margin-left: auto; color: var(--text-soft); font-size: 12px; }
.plaza-comment p { margin: 6px 0; line-height: 1.7; }
.comment-reply-target { color: var(--info); font-size: 12px; }
.contact-reveal { display: grid; gap: 5px; padding: 18px; background: var(--brand-soft); border: 1px solid #b8d9ca; }
.contact-reveal span { color: var(--text-soft); font-size: 12px; }
.contact-reveal strong { color: var(--brand-dark); font-size: 22px; }

.message-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; align-items: start; }
.message-list-panel, .follow-panel { padding: 18px; background: var(--surface); border: 1px solid var(--line); }
.message-notification-panel { margin-bottom: 16px; padding: 18px; background: var(--surface); border: 1px solid var(--line); }
.message-notification-panel .section-heading { margin-bottom: 4px; }
.notification-row.is-unread { margin-inline: -10px; padding-inline: 10px; background: var(--brand-soft); }
.conversation-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 0; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--line); }
.conversation-row:last-child { border-bottom: 0; }
.conversation-row > div { min-width: 0; }
.conversation-row > div > div { display: flex; align-items: center; gap: 7px; }
.conversation-row time { margin-left: auto; color: var(--text-soft); font-size: 12px; }
.conversation-row p { margin: 4px 0 0; overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.follow-panel { display: block; padding: 0; }
.follow-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 18px; cursor: pointer; list-style: none; }
.follow-disclosure > summary::-webkit-details-marker { display: none; }
.follow-disclosure > summary > span { display: flex; align-items: center; gap: 7px; }
.follow-disclosure > summary > span:last-child { color: var(--text-soft); font-size: 12px; }
.follow-disclosure > summary .icon { width: 18px; height: 18px; }
.follow-disclosure > summary > span:last-child .icon { transition: transform 160ms ease; }
.follow-disclosure[open] > summary > span:last-child .icon { transform: rotate(180deg); }
.follow-disclosure-content { display: grid; gap: 10px; padding: 0 18px 18px; border-top: 1px solid var(--line); }
.follow-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.follow-person { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; color: var(--text); text-decoration: none; }
.follow-person span { display: grid; min-width: 0; }
.follow-person strong, .follow-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.follow-person small { color: var(--text-soft); }
.follow-person:hover strong { color: var(--brand); }
.message-action { position: relative; }
.unread-badge { min-width: 19px; height: 19px; display: inline-grid; place-items: center; padding: 0 5px; color: #fff; background: var(--danger); border: 2px solid var(--surface); border-radius: 10px; font-size: 11px; font-weight: 750; }

.plaza-public-profile { display: grid; gap: 14px; }
.public-profile-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px; background: var(--surface); border: 1px solid var(--line); }
.public-profile-identity { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 14px; }
.public-profile-identity .plaza-avatar { width: 56px; height: 56px; }
.public-profile-identity h1, .public-profile-identity p { margin: 0; }
.public-profile-identity p { margin-top: 5px; color: var(--text-soft); }
.public-profile-eyebrow { display: block; margin-bottom: 3px; color: var(--brand); font-size: 12px; font-weight: 700; }
.public-profile-contact { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; color: var(--text-soft); font-size: 12px; }
.public-profile-contact .icon { width: 15px; height: 15px; color: var(--brand); }
.public-profile-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--surface); border: 1px solid var(--line); }
.public-profile-stats > div { display: grid; gap: 2px; padding: 16px 18px; border-right: 1px solid var(--line); }
.public-profile-stats > div:last-child { border-right: 0; }
.public-profile-stats strong { color: var(--brand-dark); font-size: 22px; }
.public-profile-stats span { color: var(--text-soft); font-size: 12px; }
.public-profile-posts-heading { margin: 8px 0 0; }
.profile-public-summary { display: grid; gap: 4px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.profile-public-summary span { color: var(--text-soft); line-height: 1.55; }
.profile-public-summary small { display: flex; align-items: center; gap: 6px; color: var(--brand-dark); }
.profile-public-summary .icon { width: 14px; height: 14px; }
.conversation-page { max-width: 860px; }
.conversation-header { display: grid; grid-template-columns: 36px 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); }
.conversation-header h1 { margin: 0; font-size: 17px; }
.conversation-header span { color: var(--text-soft); font-size: 12px; }
.chat-post-reference { display: grid; grid-template-columns: 22px minmax(0, 1fr) 18px; align-items: center; gap: 9px; margin-top: 10px; padding: 11px 14px; color: var(--text); background: var(--info-soft); border: 1px solid #bdd0df; text-decoration: none; }
.chat-post-reference span { display: grid; }
.chat-post-reference small { color: var(--text-soft); }
.chat-history { min-height: 380px; display: flex; flex-direction: column; gap: 12px; margin-top: 10px; padding: 22px; background: var(--surface-muted); border: 1px solid var(--line); }
.chat-message { max-width: 72%; display: grid; gap: 4px; align-self: flex-start; }
.chat-message.mine { align-self: flex-end; }
.chat-message > div { padding: 10px 12px; background: var(--surface); border: 1px solid var(--line); }
.chat-message.mine > div { background: var(--brand-soft); border-color: #b8d9ca; }
.chat-message time { color: var(--text-soft); font-size: 11px; }
.chat-message.mine time { text-align: right; }
.chat-composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; padding: 12px; background: var(--surface); border: 1px solid var(--line); border-top: 0; }
.chat-composer-main { min-width: 0; display: grid; gap: 8px; }
.chat-compose-tools { position: relative; display: flex; align-items: center; gap: 6px; color: var(--text-soft); font-size: 12px; }
.chat-compose-tools label { display: inline-flex; cursor: pointer; }
.chat-compose-tools input[type="file"] { display: none; }
.chat-emoji-picker { position: absolute; z-index: 4; left: 0; bottom: 44px; display: grid; grid-template-columns: repeat(5, 36px); gap: 3px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 5px; box-shadow: var(--shadow-hover); }
.chat-emoji-picker button { width: 36px; height: 36px; padding: 0; font-size: 18px; background: transparent; border: 0; border-radius: 3px; cursor: pointer; }
.chat-emoji-picker button:hover { background: var(--brand-soft); }
.chat-attachment-preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 104px)); gap: 8px; }
.chat-attachment-preview > div { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 4px; }
.chat-attachment-preview img { width: 100%; height: 100%; object-fit: cover; }
.chat-attachment-preview .btn { position: absolute; top: 4px; right: 4px; min-width: 28px; min-height: 28px; width: 28px; height: 28px; color: #fff; background: rgba(14, 29, 23, .72); border-color: transparent; }
.chat-message-bubble > p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-message-images { display: grid; grid-template-columns: repeat(2, minmax(0, 180px)); gap: 6px; margin-top: 7px; }
.chat-message-images a { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface-muted); border-radius: 4px; }
.chat-message-images img { width: 100%; height: 100%; object-fit: cover; }
.agent-tool-trace { margin: 14px 0; padding: 13px 15px; background: #f7faf8; border: 1px solid var(--line); border-radius: 5px; }
.agent-tool-trace summary { display: flex; align-items: center; gap: 8px; font-weight: 720; cursor: pointer; }
.agent-tool-trace ol { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.agent-tool-trace li { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 8px; }
.agent-tool-trace li div { display: grid; gap: 2px; }
.agent-tool-trace small { color: var(--text-soft); }
.agent-tool-status { color: var(--brand); }
.agent-evidence-line { display: flex; align-items: flex-start; gap: 6px; margin-top: 8px; color: var(--text-soft); font-size: 12px; line-height: 1.55; }

.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--surface-muted); }
.login-panel {
  width: min(420px, 100%);
  display: grid;
  gap: 20px;
  padding: 30px;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.login-panel h1, .login-panel p { margin: 0; }
.login-panel p { color: var(--text-soft); }
.login-brand { margin-bottom: 4px; }
.code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.login-submit { width: 100%; }

.mobile-nav { display: none; }

@media (max-width: 1024px) {
  .topbar { position: static; }
  .topbar-inner { padding: 0 16px; }
  .main-nav { display: none; }
  .topbar-actions { margin-left: auto; }
  .page { padding: 20px 14px 88px; }
  .page-header { align-items: stretch; flex-direction: column; gap: 14px; }
  .page-actions { justify-content: flex-start; }
  .demand-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .property-card { grid-template-columns: 1fr; gap: 12px; }
  .archive-card { grid-template-columns: 1fr; gap: 12px; }
  .card-actions { justify-content: flex-start; }
  .analysis-grid { grid-template-columns: 1fr; }
  .compare-action-row { grid-template-columns: 42px minmax(0, 1fr); align-items: start; }
  .compare-action-buttons { grid-column: 2; justify-content: flex-start; }
  .form-layout { grid-template-columns: 1fr; }
  .plaza-card { grid-template-columns: 92px minmax(0, 1fr); }
  .plaza-filter-panel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .plaza-card-actions { flex-direction: row; justify-content: flex-start; flex-wrap: wrap; margin-left: 0; }
  .plaza-compose-layout, .plaza-detail-grid, .plaza-thread-layout, .message-layout { grid-template-columns: 1fr; }
  .plaza-thread-aside { position: static; }
  .plaza-compose-layout .form-aside { position: static; grid-row: 1; }
  .plaza-source-picker { grid-template-columns: 1fr; gap: 12px; }
  .profile-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-overview > div:nth-child(even) { border-right: 0; }
  .profile-overview > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contract-review-row { grid-template-columns: 140px minmax(180px, 0.8fr); align-items: start; }
  .archive-content-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-aside { position: static; grid-row: 1; }
  .sticky-actions { margin: 24px -14px -88px; padding: 11px 14px 76px; }
  .mobile-nav {
    position: fixed;
    z-index: 60;
    left: 0;
    right: 0;
    bottom: 0;
    height: 64px;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: rgba(255, 255, 255, 0.98);
    border-top: 1px solid var(--line);
  }
  .landlord-shell .mobile-nav { grid-template-columns: repeat(5, 1fr); }
  .landlord-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landlord-kpis > div:nth-child(2) { border-right: 0; }
  .landlord-dashboard-grid { grid-template-columns: 1fr; }
  .landlord-property-card { grid-template-columns: 150px minmax(0, 1fr); }
  .workspace-rule-grid { grid-template-columns: 1fr; }
  .workspace-rule-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .workspace-rule-grid > div:last-child { border-bottom: 0; }
  .mobile-nav .nav-item { min-width: 0; padding: 7px 2px 5px; flex-direction: column; justify-content: center; gap: 2px; font-size: 11px; }
  .mobile-nav .nav-item.active::after { top: 0; bottom: auto; left: 25%; right: 25%; height: 3px; }
  .mobile-nav .nav-count { display: none; }
}

@media (max-width: 600px) {
  .brand { min-width: 0; }
  .brand span:last-child { display: none; }
  .page-header h1 { font-size: 21px; }
  .demand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .band { margin-left: -14px; margin-right: -14px; padding: 16px 14px; }
  .toolbar { width: 100%; align-items: flex-start; flex-direction: column; }
  .filters { width: 100%; }
  .compare-head { grid-template-columns: 1fr; }
  .compare-action-row { grid-template-columns: 34px minmax(0, 1fr); padding: 13px 12px; }
  .compare-action-index { width: 30px; height: 30px; }
  .compare-action-buttons { grid-column: 1 / -1; }
  .compare-action-buttons .btn { flex: 1 1 145px; }
  .field-grid { grid-template-columns: 1fr; }
  .custom-property-row, .custom-property-create { grid-template-columns: 1fr; }
  .listing-link-head { grid-template-columns: 42px minmax(0, 1fr); align-items: start; }
  .listing-link-head .badge { grid-column: 2; justify-self: start; }
  .listing-link-row { grid-template-columns: 1fr; }
  .listing-link-row .btn { justify-content: center; }
  .listing-link-foot { align-items: flex-start; flex-direction: column; }
  .listing-imported-summary, .external-source-strip { grid-template-columns: 20px minmax(0, 1fr); align-items: start; }
  .listing-imported-summary .btn, .external-source-strip .text-button { grid-column: 2; justify-self: start; }
  .external-source-record { grid-template-columns: 42px minmax(0, 1fr); align-items: start; }
  .external-source-record .btn { grid-column: 2; justify-self: start; }
  .assistant-mode-grid, .assistant-mode-grid.property-assistant-modes { grid-template-columns: 1fr; }
  .assistant-mode-card { min-height: 104px; }
  .extraction-value-compare { grid-template-columns: 1fr; }
  .demand-extraction-review-list { grid-template-columns: 1fr; }
  .extraction-current { grid-template-columns: 1fr; gap: 3px; }
  .custom-field-draft { grid-template-columns: 24px minmax(0, 1fr); align-items: start; }
  .custom-field-draft .field { grid-column: 2; }
  .custom-property-actions { justify-content: flex-end; }
  .assistant-reference { padding: 13px; }
  .assistant-reference-title { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .assistant-reference-actions { align-items: flex-end; flex-direction: column; gap: 2px; }
  .assistant-selected-count { min-width: 0; padding: 0 0 2px; border: 0; }
  .assistant-field-group { grid-template-columns: 1fr; gap: 6px; padding: 9px 0; }
  .assistant-field-group-title { flex-direction: row; gap: 5px; padding-top: 0; }
  .assistant-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .reference-selectable { min-height: 48px; }
  .reference-selectable > label { padding: 6px 7px; }
  .reference-selectable strong { overflow: visible; white-space: normal; text-overflow: clip; }
  .voice-format-guide { grid-template-columns: 1fr; }
  .voice-format-guide strong { grid-row: auto; }
  .voice-assist { align-items: stretch; flex-direction: column; }
  .voice-controls { justify-content: flex-start; }
  .field.full { grid-column: auto; }
  .source-grid, .archive-content-list, .inspection-summary, .contract-grid { grid-template-columns: 1fr; }
  .metric.wide { grid-column: auto; }
  .inspection-summary div { border-right: 0; border-bottom: 1px solid var(--line); }
  .inspection-summary div:last-child { border-bottom: 0; }
  .contract-grid div:nth-child(odd), .contract-grid div:nth-child(even) { padding-left: 0; padding-right: 0; border-left: 0; }
  .ready-row { align-items: flex-start; flex-direction: column; }
  .check-item { grid-template-columns: 1fr; gap: 7px; }
  .check-controls { justify-content: stretch; }
  .check-controls select { min-width: 0; }
  .issue-fields, .contract-review-row, .compact-grid { grid-template-columns: 1fr; }
  .inspection-row { grid-template-columns: 1fr; }
  .file-tags { justify-content: flex-start; }
  .contract-review-head, .contract-file-bar, .danger-zone { align-items: flex-start; flex-direction: column; }
  .contract-file-actions { justify-content: flex-start; }
  .contract-preview-modal { width: calc(100vw - 16px); height: calc(100vh - 16px); }
  .contract-original-frame, .contract-original-image { min-height: 0; height: calc(100vh - 190px); }
  .plaza-publish-footer .delivery-scope-panel { grid-template-columns: 1fr; }
  .plaza-publish-footer .delivery-scope-panel small { grid-column: 1; }
  .publish-confirm-summary { align-items: flex-start; flex-direction: column; gap: 2px; }
  .plaza-publish-footer .aside-panel { grid-template-columns: 1fr; gap: 4px; }
  .contract-complete-summary { grid-template-columns: 1fr; }
  .contract-complete-summary > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .contract-head-actions { width: 100%; justify-content: flex-start; }
  .profile-identity { grid-template-columns: 48px minmax(0, 1fr); }
  .profile-identity .btn { grid-column: 1 / -1; justify-self: stretch; }
  .profile-overview { grid-template-columns: 1fr; }
  .profile-overview > div { grid-template-columns: 1fr auto; align-items: center; border-right: 0; border-bottom: 1px solid var(--line); }
  .profile-overview > div:last-child { border-bottom: 0; }
  .schedule-card { grid-template-columns: 1fr; align-items: start; }
  .schedule-date { padding: 0 0 10px; border-right: 0; border-bottom: 1px solid var(--line); }
  .schedule-actions { justify-content: flex-start; }
  .schedule-actions .btn { width: 100%; justify-content: center; }
  .plaza-trust-band { grid-template-columns: 1fr; }
  .plaza-trust-band > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .plaza-trust-band > div:last-child { border-bottom: 0; }
  .plaza-toolbar { align-items: flex-start; flex-direction: column; }
  .plaza-filter-panel, .plaza-compose-modes { grid-template-columns: 1fr; }
  .plaza-origin-tabs, .property-media-grid, .login-workspace-grid, .workspace-choice-list { grid-template-columns: 1fr; }
  .amenity-check-grid, .amenity-check-grid.compact, .amenity-display-grid, .amenity-display-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .amenity-heading-actions, .amenity-inspection-actions { align-items: stretch; flex-direction: column; }
  .amenity-inspection-actions > div { width: 100%; }
  .listing-import-actions { grid-template-columns: 1fr; }
  .plaza-origin-tabs a { border-right: 0; border-bottom: 1px solid var(--line); }
  .plaza-origin-tabs a:last-child { border-bottom: 0; }
  .plaza-inspection-edit-row { grid-template-columns: 1fr; }
  .sync-property-section { align-items: flex-start; flex-direction: column; }
  .plaza-compose-modes a { border-right: 0; border-bottom: 1px solid var(--line); }
  .plaza-compose-modes a:last-child { border-bottom: 0; }
  .plaza-card { grid-template-columns: 1fr; }
  .plaza-card-author { grid-template-columns: auto auto; justify-content: start; justify-items: start; align-items: center; gap: 10px; text-align: left; padding: 0; }
  .plaza-card-author .plaza-author-link { width: auto; grid-template-columns: 48px auto; align-items: center; justify-items: start; }
  .plaza-card-footer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .plaza-card-actions { width: 100%; }
  .plaza-card-media { min-height: 92px; }
  .plaza-card-actions .btn { flex: 1 1 135px; }
  .plaza-detail-hero { grid-template-columns: 70px minmax(0, 1fr); padding: 16px; }
  .plaza-detail-symbol { width: 64px; height: 64px; }
  .my-post-list article { grid-template-columns: 1fr; }
  .forum-author-bar { grid-template-columns: 1fr; }
  .forum-author-identity { grid-template-columns: 42px minmax(0, 1fr); }
  .forum-author-actions { grid-column: 1; }
  .forum-post-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forum-post-actions .btn { width: 100%; min-width: 0; justify-content: center; }
  .forum-post-actions > span { grid-column: 1 / -1; margin-left: 0; }
  .forum-post-content { padding: 17px 14px; }
  .forum-post-content h1 { font-size: 21px; }
  .plaza-detail-summary > * { margin: 4px 0; }
  .plaza-comment time { width: 100%; margin-left: 0; }
  .comment-composer > div:last-child { align-items: stretch; flex-direction: column; }
  .conversation-header { grid-template-columns: 36px 34px minmax(0, 1fr); }
  .conversation-header > .btn:last-child { grid-column: 1 / -1; }
  .chat-message { max-width: 88%; }
  .chat-composer { grid-template-columns: 1fr; }
  .chat-message-images { grid-template-columns: repeat(2, minmax(0, 130px)); }
  .arrival-record-control { grid-template-columns: 1fr; }
  .source-return-banner { align-items: flex-start; flex-direction: column; }
  .archive-note-assist { align-items: stretch; flex-direction: column; }
  .archive-note-actions .btn { flex: 1 1 150px; }
  .contract-command-example { grid-template-columns: 1fr; }
  .contract-command-example span { grid-column: 1; }
  .avatar { width: 48px; height: 48px; }
  .code-row { grid-template-columns: 1fr; }
  .landlord-kpis { grid-template-columns: 1fr; }
  .landlord-kpis > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .landlord-kpis > div:last-child { border-bottom: 0; }
  .landlord-property-card { grid-template-columns: 1fr; }
  .landlord-property-media { min-height: 110px; border-right: 0; border-bottom: 1px solid var(--line); }
  .landlord-page .schedule-card, .landlord-appointment-row { grid-template-columns: 1fr; }
  .schedule-time, .appointment-date { padding: 0 0 9px; border-right: 0; border-bottom: 1px solid var(--line); }
  .workspace-switch { width: 36px; overflow: hidden; padding: 0 9px; color: transparent; gap: 12px; }
  .workspace-switch .icon { color: var(--brand-dark); }
  .assist-bar { align-items: flex-start; flex-direction: column; }
  .toast { left: 14px; right: 14px; bottom: 76px; }
}

@media (min-width: 761px) and (max-width: 1024px) {
  .topbar { position: sticky; }
  .topbar-inner { gap: 8px; padding: 0 10px; }
  .brand { min-width: 112px; gap: 6px; font-size: 14px; }
  .brand em { display: none; }
  .main-nav { display: flex; flex: 1 1 auto; min-width: 0; gap: 1px; }
  .nav-item { gap: 4px; padding: 0 6px; font-size: 12px; }
  .nav-item .icon { width: 16px; height: 16px; }
  .nav-count { display: none; }
  .topbar-actions { flex: 0 0 auto; }
  .page { padding-bottom: 20px; }
  .sticky-actions { margin-bottom: -20px; padding-bottom: 11px; }
  .mobile-nav { display: none; }
}

@media (max-width: 760px) {
  .topbar { position: static; }
  .main-nav { display: none; }
  .page { padding-bottom: 88px; }
  .sticky-actions { margin-bottom: -88px; padding-bottom: 76px; }
  .mobile-nav { display: grid; }
}

.nav-item .nav-unread-count { display: inline-grid; }

@media (max-width: 760px) {
  .mobile-nav .nav-item { position: relative; }
  .mobile-nav .nav-unread-count {
    position: absolute;
    top: 4px;
    left: calc(50% + 7px);
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid #fff;
    font-size: 10px;
  }
  .public-profile-header { align-items: flex-start; flex-direction: column; padding: 17px 14px; }
  .public-profile-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-profile-stats > div:nth-child(2) { border-right: 0; }
  .public-profile-stats > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .inspection-bulk-actions { width: 100%; justify-content: flex-start; }
  .inspection-result-group > summary { align-items: flex-start; padding: 14px; }
  .inspection-result-content { padding: 0 14px 6px; }
}

/* Production visual layer */
:root {
  --bg: #f3f6f5;
  --surface: #ffffff;
  --surface-muted: #f7f9f8;
  --text: #17231d;
  --text-soft: #657169;
  --line: #dde5e0;
  --line-strong: #b7c5bd;
  --brand: #087552;
  --brand-dark: #07563e;
  --brand-soft: #e5f3ed;
  --warning: #95610b;
  --warning-soft: #fff5dd;
  --danger: #bd493d;
  --danger-soft: #fcecea;
  --info: #326b84;
  --info-soft: #eaf3f7;
  --accent: #db6549;
  --shadow: 0 1px 2px rgba(24, 45, 35, .04), 0 10px 28px rgba(24, 45, 35, .07);
  --shadow-hover: 0 14px 36px rgba(20, 52, 38, .11);
  --radius: 8px;
  --content: 1240px;
}

html { color-scheme: light; }

body {
  background: var(--bg);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

::selection { color: #fff; background: var(--brand); }

.landlord-shell {
  --brand: #176d78;
  --brand-dark: #104f58;
  --brand-soft: #e4f2f3;
}

.topbar {
  height: 66px;
  background: rgba(255, 255, 255, .96);
  border-bottom-color: rgba(19, 50, 36, .09);
  box-shadow: 0 5px 18px rgba(30, 57, 45, .05);
  backdrop-filter: blur(14px);
}

.topbar-inner { padding: 0 28px; gap: 24px; }

.brand {
  min-width: 154px;
  gap: 10px;
  color: #14241c;
  font-size: 18px;
  font-weight: 800;
}

.brand-mark {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #123e32;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14);
}

.brand-mark .icon { width: 19px; height: 19px; }

.brand em {
  padding: 3px 7px;
  color: var(--brand-dark);
  background: var(--brand-soft);
  border-color: #bfdcd0;
  border-radius: 5px;
  font-size: 10px;
}

.main-nav { gap: 2px; }

.nav-item {
  min-height: 40px;
  margin: 8px 0;
  padding: 0 12px;
  border-radius: 7px;
  font-weight: 590;
  transition: color 150ms ease, background 150ms ease;
}

.nav-item:hover { color: var(--text); background: #f0f5f2; }
.nav-item.active { color: var(--brand-dark); background: var(--brand-soft); font-weight: 720; }
.nav-item.active::after { left: 11px; right: 11px; bottom: -8px; height: 3px; border-radius: 3px 3px 0 0; }

.nav-unread-count,
.unread-badge,
.profile-message-list b,
.unread-count { background: var(--accent); }

.topbar-actions .btn { color: #66736b; }

.page { padding: 34px 28px 82px; }

.page-header {
  align-items: center;
  margin-bottom: 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.page-header h1 {
  margin-bottom: 4px;
  color: #122019;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.25;
}

.page-header p { color: #6c7871; font-size: 14px; }

.btn {
  min-height: 38px;
  padding: 8px 14px;
  border-color: #b8c5bd;
  border-radius: 8px;
  background: #fff;
  font-weight: 680;
  box-shadow: 0 1px 1px rgba(20, 48, 34, .03);
  transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.btn:hover {
  border-color: #8da096;
  background: #fbfcfb;
  box-shadow: 0 4px 12px rgba(23, 55, 40, .07);
  transform: translateY(-1px);
}

.btn:active { transform: translateY(0); }
.btn:focus-visible, .filter:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(8, 117, 82, .18); outline-offset: 1px; }
.btn-primary { color: #fff; background: var(--brand); border-color: var(--brand); box-shadow: 0 5px 14px rgba(8, 117, 82, .18); }
.btn-primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); box-shadow: 0 7px 18px rgba(8, 86, 62, .22); }
.btn-soft { border-color: #b6d8cb; }
.btn-quiet { box-shadow: none; }
.btn-sm { min-height: 34px; }

.band {
  margin-bottom: 24px;
  padding: 20px 0;
  background: transparent;
  border-color: var(--line);
}

.band-header { margin-bottom: 16px; }
.band-title, .section-heading h2 { color: #18271f; font-size: 17px; font-weight: 760; }

.demand-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.demand-grid .metric { min-height: 76px; padding: 14px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.demand-grid .metric:nth-child(6n) { border-right: 0; }
.demand-grid .metric:nth-last-child(-n + 6) { border-bottom: 0; }
.metric-label { color: #738078; font-size: 12px; }
.metric-value { color: #19271f; font-size: 15px; }

.toolbar { margin: 24px 0 14px; }
.filters { gap: 8px; padding-bottom: 2px; }
.filter { min-height: 35px; padding: 5px 13px; border-radius: 7px; background: #fff; }
.filter.active { color: #fff; background: var(--brand); border-color: var(--brand); }

.list, .plaza-feed, .archive-list { gap: 14px; }

.property-card,
.archive-card,
.analysis-card {
  padding: 20px 22px;
  border-color: #dce5df;
  box-shadow: 0 5px 18px rgba(23, 50, 37, .055);
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.property-card { box-shadow: inset 3px 0 0 var(--brand), 0 5px 18px rgba(23, 50, 37, .055); }
.property-card:hover, .archive-card:hover, .analysis-card:hover { border-color: #b8c9bf; box-shadow: var(--shadow-hover); transform: translateY(-1px); }
.property-title { color: #132219; font-size: 18px; font-weight: 780; }
.property-meta { margin-top: 9px; }
.property-meta span:first-child .icon { color: var(--brand); }
.task-line { padding: 5px 0; }
.card-actions { gap: 9px; }

.badge { min-height: 24px; border-radius: 6px; font-weight: 690; }
.badge-brand { color: #086044; border-color: #b4d7c9; }
.badge-warning { border-color: #ecd39a; }
.badge-danger { border-color: #e8bfba; }

.record-section,
.form-section,
.settings-section,
.message-list-panel,
.message-notification-panel,
.follow-panel,
.forum-post,
.plaza-comments,
.plaza-thread-aside > section,
.contract-review,
.contract-file-bar {
  border-color: #dce5df;
  border-radius: 8px;
  box-shadow: 0 5px 20px rgba(25, 55, 40, .05);
}

.record-section, .form-section, .settings-section { padding: 22px 24px; }
.section-heading { margin-bottom: 16px; }

input, select, textarea {
  min-height: 42px;
  border-color: #b9c6be;
  border-radius: 7px;
  background: #fff;
  color: var(--text);
  transition: border-color 130ms ease, box-shadow 130ms ease;
}

input:hover, select:hover, textarea:hover { border-color: #8fa097; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(8, 117, 82, .1); }
.field label { color: #29372f; font-weight: 690; }
.field-hint { color: #738078; }

.notice { border-radius: 8px; }
.notice-warning { border-color: #e8cc8d; }

.modal-backdrop { background: rgba(12, 25, 19, .48); backdrop-filter: blur(5px); }
.modal { border-radius: 8px; border: 0; box-shadow: 0 24px 70px rgba(10, 30, 20, .25); }
.modal-header { padding: 20px 22px; }
.modal-body { padding: 20px 22px; }
.modal-footer { padding: 14px 22px; background: #f8faf9; }

.amenity-check span { min-height: 44px; border-radius: 7px; }
.amenity-check input:checked + span { border-color: #8cc5ad; box-shadow: inset 3px 0 0 var(--brand); }
.amenity-display-grid > span { border-radius: 7px; }

.plaza-trust-band {
  gap: 12px;
  background: transparent;
  border: 0;
}

.plaza-trust-band > div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(25, 53, 40, .04);
}

.plaza-filter-panel { padding: 18px; border-radius: 8px; background: #eef3f0; }

.plaza-card {
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 20px;
  padding: 22px;
  border-color: #dce5df;
  border-radius: 8px;
  box-shadow: 0 6px 22px rgba(22, 53, 37, .06);
}

.plaza-card:hover { border-color: #aec2b7; box-shadow: var(--shadow-hover); transform: translateY(-1px); }
.plaza-avatar { background: #1b6f57; box-shadow: 0 0 0 4px #edf5f1; }
.plaza-card-title { color: #132119; font-size: 20px; }
.plaza-price strong { color: var(--brand-dark); font-size: 22px; }
.plaza-card-footer { gap: 18px; }
.plaza-amenity-preview { border-radius: 8px; background: #f8faf9; }

.property-media-grid { gap: 10px; }
.property-media-item { border-radius: 8px; }
.property-media-item.has-preview { min-height: 150px; }
.property-media-item.has-preview::after { position: absolute; inset: auto 0 0; height: 52px; content: ""; background: rgba(10, 24, 17, .58); }
.property-media-item.has-preview small { z-index: 2; background: transparent; }
.property-media-item b { z-index: 3; top: 8px; left: 8px; border-radius: 5px; }
.media-empty { min-height: 116px; border-radius: 8px; background: #f5f8f6; }

.profile-identity,
.public-profile-header {
  border: 0;
  border-radius: 8px;
  background: #153d31;
  color: #fff;
  box-shadow: var(--shadow);
}

.profile-identity p, .profile-identity .muted, .public-profile-header p, .public-profile-contact { color: #d9e8e1; }
.profile-identity .btn { color: #173c31; border-color: #fff; background: #fff; }
.profile-overview, .public-profile-stats { gap: 10px; border: 0; background: transparent; }
.profile-overview > div, .public-profile-stats > div { border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 4px 14px rgba(25, 53, 40, .04); }
.profile-overview strong, .public-profile-stats strong { color: var(--brand-dark); font-size: 24px; }

.landlord-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  border: 0;
  background: transparent;
}

.landlord-kpis > div {
  min-height: 122px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(23, 50, 37, .05);
}

.landlord-kpis strong { margin: 4px 0; color: var(--brand-dark); font-size: 30px; line-height: 1; }
.landlord-dashboard-grid { gap: 18px; }
.landlord-quick-panel { border-radius: 8px; overflow: hidden; box-shadow: 0 5px 18px rgba(23, 50, 37, .05); }
.landlord-quick-panel h2 { background: #f7f9f8; }
.landlord-quick-panel a:hover { color: var(--brand-dark); background: var(--brand-soft); }

.landlord-property-card {
  border-color: #dce5df;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 7px 24px rgba(21, 53, 39, .07);
}

.landlord-property-media { position: relative; min-height: 188px; overflow: hidden; }
.landlord-property-media.has-cover { padding: 0; border: 0; background: #dfe9e4; }
.landlord-property-media.has-cover img { width: 100%; height: 100%; min-height: 188px; display: block; object-fit: cover; }
.property-image-count { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; color: #fff; background: rgba(12, 31, 22, .76); border-radius: 6px; font-size: 12px; font-weight: 700; }
.property-image-count .icon { width: 14px; height: 14px; }
.landlord-property-main { padding: 22px; }

.schedule-card, .landlord-appointment-row { border-radius: 8px; background: #f8faf9; }
.schedule-date strong { color: var(--brand-dark); }

.conversation-header, .chat-history, .chat-composer { border-color: #dce5df; }
.conversation-header { border-radius: 8px 8px 0 0; }
.chat-history { margin-top: 0; background: #eef3f0; }
.chat-composer { border-radius: 0 0 8px 8px; }
.chat-message > div { border-radius: 8px; box-shadow: 0 2px 8px rgba(23, 52, 38, .05); }
.chat-message.mine > div { color: #073e2d; }

.login-shell {
  position: relative;
  grid-template-columns: minmax(320px, 1fr) minmax(430px, .8fr);
  gap: 0;
  padding: 0;
  background: #edf2ef;
}

.login-shell::before { display: none; }

.login-visual { min-width: 0; min-height: 100vh; overflow: hidden; background: #173d31; }
.login-visual img { width: 100%; height: 100vh; display: block; object-fit: cover; }

.login-panel {
  width: min(500px, calc(100% - 64px));
  margin: auto;
  padding: 36px;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(18, 48, 34, .13);
}

.login-panel h1 { font-size: 28px; }
.login-workspace-grid button { border-radius: 8px; transition: border-color 140ms ease, background 140ms ease, transform 140ms ease; }
.login-workspace-grid button:hover { border-color: var(--brand); background: var(--brand-soft); transform: translateY(-1px); }

.empty { border-radius: 8px; background: #fff; }
.empty-icon { color: var(--brand); background: var(--brand-soft); border-radius: 8px; }
.toast { border-radius: 8px; box-shadow: 0 12px 40px rgba(14, 38, 27, .22); }

@media (max-width: 1100px) {
  .demand-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .demand-grid .metric:nth-child(3n) { border-right: 0; }
  .demand-grid .metric:nth-last-child(-n + 6) { border-bottom: 1px solid var(--line); }
  .demand-grid .metric:nth-last-child(-n + 3) { border-bottom: 0; }
}

@media (max-width: 1024px) {
  .topbar-inner { padding: 0 18px; }
  .page { padding: 26px 18px 92px; }
  .landlord-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .topbar { height: 58px; background: #fff; box-shadow: 0 3px 12px rgba(24, 50, 38, .06); }
  .topbar-inner { padding: 0 14px; }
  .brand { font-size: 16px; }
  .brand-mark { width: 32px; height: 32px; }
  .page { padding: 22px 14px 88px; }
  .page-header { align-items: stretch; padding-bottom: 18px; }
  .page-header h1 { font-size: 24px; }
  .page-actions .btn { flex: 1 1 auto; }
  .mobile-nav { height: 68px; padding: 0 4px env(safe-area-inset-bottom); background: rgba(255, 255, 255, .98); box-shadow: 0 -5px 18px rgba(23, 48, 36, .08); backdrop-filter: blur(12px); }
  .mobile-nav .nav-item { min-height: 62px; margin: 0; border-radius: 0; font-size: 10px; }
  .mobile-nav .nav-item.active { background: transparent; }
  .mobile-nav .nav-item.active::after { top: 0; left: 22%; right: 22%; }
  .plaza-card { padding: 17px 14px; }
  .plaza-card-title { font-size: 18px; }
  .profile-identity { padding: 18px; }
  .login-shell { display: grid; grid-template-columns: 1fr; padding: 20px; background: #edf2ef; }
  .login-visual { display: none; }
  .login-panel { width: min(500px, 100%); padding: 26px 22px; }
}

@media (max-width: 600px) {
  .demand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .demand-grid .metric:nth-child(3n) { border-right: 1px solid var(--line); }
  .demand-grid .metric:nth-child(2n) { border-right: 0; }
  .demand-grid .metric:nth-last-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .demand-grid .metric:nth-last-child(-n + 2) { border-bottom: 0; }
  .property-card, .archive-card, .analysis-card { padding: 18px 15px; }
  .record-section, .form-section, .settings-section { padding: 18px 15px; }
  .landlord-kpis { grid-template-columns: 1fr; }
  .landlord-kpis > div { min-height: 96px; }
  .landlord-property-media, .landlord-property-media.has-cover img { min-height: 180px; }
  .landlord-property-main { padding: 18px 15px; }
  .property-media-item.has-preview { min-height: 118px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* RentTrust studio direction: rental dossier, not generic SaaS chrome */
:root {
  --bg: #eef2f0;
  --surface: #ffffff;
  --surface-muted: #f5f7f6;
  --text: #17211d;
  --text-soft: #68746e;
  --line: #d6ded9;
  --line-strong: #aebbb4;
  --brand: #087254;
  --brand-dark: #064b3a;
  --brand-soft: #e1f0ea;
  --accent: #dd5d42;
  --warning: #99610b;
  --warning-soft: #fff4d9;
  --danger: #b9463f;
  --danger-soft: #fbecea;
  --info: #28647c;
  --info-soft: #e8f1f4;
  --radius: 5px;
  --shadow: 0 3px 12px rgba(20, 43, 33, .055);
  --shadow-hover: 0 7px 20px rgba(20, 43, 33, .085);
  --content: 1260px;
}

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 14px;
  background: var(--bg);
}

.landlord-shell {
  --brand: #176f7a;
  --brand-dark: #104d57;
  --brand-soft: #e2eff1;
}

.topbar {
  height: 64px;
  background: #14261f;
  border-bottom: 0;
  box-shadow: none;
  backdrop-filter: none;
}

.landlord-shell .topbar { background: #15262a; }
.topbar-inner { padding: 0 24px; gap: 22px; }
.topbar .brand { min-width: 166px; color: #fff; }
.topbar .brand-mark { color: #10241c; background: #8ed8ba; box-shadow: none; }
.landlord-shell .topbar .brand-mark { color: #102126; background: #9bd3da; }
.topbar .brand em { color: #d7ebe2; background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); }
.main-nav { gap: 3px; }
.topbar .nav-item { min-height: 38px; margin: 0; padding: 0 11px; color: #bdcbc5; border-radius: 4px; }
.topbar .nav-item:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.topbar .nav-item.active { color: #fff; background: rgba(255, 255, 255, .13); }
.topbar .nav-item.active::after { display: none; }
.topbar .topbar-actions .btn { color: #c7d3ce; border-color: rgba(255, 255, 255, .18); background: transparent; }
.topbar .topbar-actions .btn:hover { color: #fff; background: rgba(255, 255, 255, .1); }

.page { padding: 38px 24px 86px; }
.page-header { position: relative; align-items: center; margin-bottom: 28px; padding: 0 0 24px 18px; border-bottom: 1px solid var(--line); }
.page-header::before { position: absolute; top: 4px; bottom: 28px; left: 0; width: 4px; content: ""; background: var(--brand); }
.page-header h1 { margin-bottom: 5px; color: #102019; font-size: 30px; font-weight: 790; line-height: 1.16; }
.page-header p { max-width: 740px; color: var(--text-soft); }

.btn { min-height: 38px; border-radius: 4px; box-shadow: none; }
.btn:hover { box-shadow: none; transform: none; }
.btn-primary, .btn-primary:hover { box-shadow: none; }
.badge { border-radius: 999px; }
.notice { border-radius: 5px; }

.band { margin-bottom: 26px; padding: 0; border: 0; }
.band-header { margin-bottom: 12px; padding: 0 2px; }
.demand-grid { border-radius: 5px; box-shadow: 0 2px 8px rgba(20, 43, 33, .035); }
.demand-grid .metric { position: relative; min-height: 82px; padding: 15px 17px; }
.demand-grid .metric::after { position: absolute; right: 12px; bottom: 10px; width: 18px; height: 2px; content: ""; background: var(--brand-soft); }
.metric-value { color: #12231b; font-size: 15px; font-weight: 720; }

.toolbar { margin-top: 26px; }
.filters { gap: 0; padding: 3px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.filter { min-height: 33px; border: 0; border-radius: 3px; background: transparent; }
.filter.active { color: #fff; background: var(--brand); }

.property-card {
  gap: 16px 26px;
  padding: 21px 23px 17px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 5px;
  box-shadow: var(--shadow);
}
.property-card:hover { border-color: #aebdb5; border-left-color: var(--brand); box-shadow: var(--shadow-hover); transform: none; }
.property-title { font-size: 19px; font-weight: 780; }
.property-meta { gap: 16px; margin-top: 10px; }
.task-summary { padding: 12px 14px; border-left: 1px solid #bdd5ca; background: #edf5f1; }
.task-line + .task-line { border-top: 1px solid #d2e2da; }
.property-card > .card-actions { padding-top: 15px; }

.record-section,
.form-section,
.settings-section,
.message-list-panel,
.message-notification-panel,
.follow-panel,
.forum-post,
.plaza-comments,
.plaza-thread-aside > section,
.contract-review,
.contract-file-bar { border-radius: 5px; box-shadow: var(--shadow); }

input, select, textarea { border-radius: 4px; }
.modal { border-radius: 6px; }
.modal-footer { background: #f3f6f4; }

.plaza-trust-band { gap: 0; border: 1px solid var(--line); border-radius: 5px; background: #fff; overflow: hidden; }
.plaza-trust-band > div { border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.plaza-trust-band > div:last-child { border-right: 0; }
.plaza-filter-panel { position: relative; padding: 22px 18px 18px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.plaza-filter-panel::before { position: absolute; inset: 0 0 auto; height: 4px; content: ""; background: var(--brand); }
.plaza-card { padding: 23px; border-radius: 5px; border-left: 4px solid #c5d4cd; box-shadow: var(--shadow); }
.plaza-card:hover { border-color: #aebdb5; border-left-color: var(--brand); box-shadow: var(--shadow-hover); transform: none; }
.plaza-avatar { background: var(--brand); box-shadow: none; }
.plaza-card-media { min-height: 76px; color: #69776f; background: #f4f6f5; border-style: dashed; }
.plaza-card-media .icon { width: 23px; height: 23px; }
.plaza-card-title { font-size: 21px; }
.plaza-amenity-preview { border-radius: 4px; }

.landlord-kpis { gap: 0; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; background: #fff; }
.landlord-kpis > div { min-height: 116px; border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.landlord-kpis > div:last-child { border-right: 0; }
.landlord-kpis strong { color: var(--brand-dark); }
.landlord-property-card { grid-template-columns: 220px minmax(0, 1fr); border-radius: 5px; box-shadow: var(--shadow); }
.landlord-property-card:hover { border-color: #aebdb5; box-shadow: var(--shadow-hover); }
.landlord-property-main { padding: 24px; }
.landlord-quick-panel { border-radius: 5px; box-shadow: var(--shadow); }

.profile-identity,
.public-profile-header { border-radius: 5px; background: #173e31; box-shadow: none; }
.profile-overview, .public-profile-stats { gap: 0; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; background: #fff; }
.profile-overview > div, .public-profile-stats > div { border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.profile-overview > div:last-child, .public-profile-stats > div:last-child { border-right: 0; }

.login-shell { grid-template-columns: minmax(460px, 1.15fr) minmax(460px, .85fr); min-height: 100vh; background: #fff; }
.login-visual { position: relative; min-height: 100vh; background: #173d31; }
.login-visual::after { position: absolute; inset: 0; content: ""; background: rgba(8, 26, 19, .18); pointer-events: none; }
.login-visual img { height: 100vh; filter: saturate(.88) contrast(1.03); }
.login-visual-copy { position: absolute; z-index: 2; left: clamp(28px, 6vw, 88px); right: clamp(28px, 8vw, 120px); bottom: 68px; display: grid; gap: 13px; color: #fff; text-shadow: 0 2px 14px rgba(5, 22, 15, .38); }
.login-visual-brand { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 760; }
.login-visual-brand .brand-mark { color: #10241c; background: #98dfc2; box-shadow: none; }
.login-visual-copy > strong { max-width: 650px; font-size: clamp(30px, 3.6vw, 54px); line-height: 1.18; font-weight: 760; }
.login-visual-copy > span { max-width: 600px; color: #e5efea; font-size: 16px; line-height: 1.75; }
.login-panel { width: min(480px, calc(100% - 72px)); margin: auto; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.login-form-heading { display: grid; gap: 6px; margin-bottom: 4px; }
.login-form-heading > span { color: var(--brand); font-weight: 720; }
.login-panel h1 { margin: 0; font-size: 30px; line-height: 1.25; }
.login-panel p { margin: 0; color: var(--text-soft); }
.login-workspace-grid { gap: 10px; }
.login-workspace-grid button { min-height: 94px; border-radius: 4px; }
.login-workspace-grid button:hover { transform: none; }

@media (max-width: 1024px) {
  .topbar-inner { padding: 0 16px; gap: 12px; }
  .topbar .brand { min-width: 150px; }
  .topbar .nav-item { padding: 0 8px; }
  .landlord-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landlord-kpis > div:nth-child(2) { border-right: 0; }
  .landlord-kpis > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .topbar, .landlord-shell .topbar { height: 58px; background: #14261f; box-shadow: none; }
  .landlord-shell .topbar { background: #15262a; }
  .topbar .brand { color: #fff; }
  .page { padding: 24px 14px 90px; }
  .page-header { padding: 0 0 18px 14px; }
  .page-header::before { bottom: 22px; }
  .page-header h1 { font-size: 25px; }
  .message-page-header { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .message-page-header p { max-width: 42ch; }
  .message-page-header .message-return { min-width: 0; white-space: nowrap; }
  .property-card { padding: 18px 15px 15px; }
  .task-summary { border-top: 1px solid #c9ddd3; border-left: 0; }
  .plaza-trust-band { display: none; }
  .plaza-card { padding: 17px 14px; }
  .landlord-property-card { grid-template-columns: 160px minmax(0, 1fr); }
  .login-shell { display: grid; grid-template-columns: 1fr; padding: 0; background: #fff; }
  .login-visual { display: block; min-height: 210px; height: 210px; }
  .login-visual img { height: 210px; }
  .login-visual-copy { left: 22px; right: 22px; bottom: 22px; gap: 6px; }
  .login-visual-copy > strong { font-size: 25px; }
  .login-visual-copy > span { display: none; }
  .login-panel { width: 100%; padding: 26px 20px 34px; }
  .login-panel h1 { font-size: 25px; }
}

@media (max-width: 600px) {
  .landlord-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landlord-kpis > div { min-height: 92px; padding: 15px; }
  .landlord-property-card { grid-template-columns: 1fr; }
  .profile-overview, .public-profile-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-overview > div:nth-child(2), .public-profile-stats > div:nth-child(2) { border-right: 0; }
}

/* Agent targeting, full-page landlord editing, and document/media review */
.landlord-property-editor { max-width: 1180px; }
.landlord-property-editor .property-editor-form { display: grid; gap: 18px; margin-top: 18px; }
.landlord-property-editor .form-section { border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); }

.property-media-preview,
.landlord-cover-button { appearance: none; border: 0; padding: 0; color: inherit; background: transparent; cursor: zoom-in; }
.property-media-preview { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; }
.property-media-preview > span,
.cover-view-hint { position: absolute; z-index: 4; top: 9px; right: 9px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; color: #fff !important; background: rgba(15, 38, 29, .82); border-radius: 4px; font-size: 12px; opacity: 0; transition: opacity .16s ease; }
.property-media-preview:hover > span,
.property-media-preview:focus-visible > span,
.landlord-cover-button:hover .cover-view-hint,
.landlord-cover-button:focus-visible .cover-view-hint { opacity: 1; }
.property-media-item.has-preview small { pointer-events: none; }
.property-media-item.has-preview .property-media-retry { z-index: 5; }
.landlord-cover-button { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; }
.landlord-cover-button img { transition: transform .2s ease; }
.landlord-cover-button:hover img { transform: scale(1.015); }

.media-viewer-backdrop { padding: 18px; }
.media-viewer { width: min(1120px, 96vw); max-height: 94vh; }
.media-viewer-stage { min-height: 280px; max-height: calc(94vh - 150px); display: grid; place-items: center; padding: 12px; overflow: auto; background: #12251e; }
.media-viewer-stage img { display: block; max-width: 100%; max-height: calc(94vh - 180px); object-fit: contain; }

.assistant-target-panel { display: grid; gap: 12px; padding: 16px; border: 1px solid #b9d7ca; background: #f1f7f4; }
.assistant-target-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.assistant-target-head > div:first-child { display: grid; gap: 4px; }
.assistant-target-head span { color: var(--text-soft); font-size: 13px; }
.assistant-target-head > div:last-child { display: flex; gap: 12px; }
.assistant-target-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.assistant-target-option { min-width: 0; display: flex; align-items: center; gap: 9px; min-height: 58px; padding: 9px 10px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.assistant-target-option:has(input:checked) { border-color: var(--brand); background: #e7f4ee; }
.assistant-target-option input { width: 17px; min-height: 17px; flex: 0 0 auto; }
.assistant-target-option span { min-width: 0; display: grid; gap: 2px; }
.assistant-target-option strong,
.assistant-target-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assistant-target-option small { color: var(--text-soft); font-size: 11px; }
.extraction-review-row.is-unrecognized { background: #faf8f2; }
.unrecognized-check { width: 18px; height: 18px; display: inline-grid; place-items: center; color: #8a6422; border: 1px solid #d4ba80; }
.extraction-unrecognized-copy { padding: 2px 0 0 29px; color: var(--text-soft); font-size: 13px; }

.contract-batch-confirm-list,
.contract-batch-result-list { display: grid; gap: 10px; }
.contract-batch-confirm-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); background: #fff; }
.contract-batch-confirm-row > input { width: 18px; min-height: 18px; }
.contract-batch-confirm-row .field { margin: 0; }
.contract-batch-confirm-row.is-duplicate { background: #fff9ec; }
.contract-batch-result { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--line); background: #fff; }
.contract-batch-result.is-found { border-left: 3px solid var(--brand); }
.contract-batch-result.is-missing { border-left: 3px solid #c79a3d; background: #fffdf8; }

@media (max-width: 900px) {
  .assistant-target-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .assistant-target-head { display: grid; }
  .assistant-target-grid { grid-template-columns: 1fr; }
  .contract-batch-confirm-row { grid-template-columns: 22px minmax(0, 1fr); }
  .contract-batch-confirm-row .badge { grid-column: 2; justify-self: start; }
  .media-viewer-backdrop { padding: 0; }
  .media-viewer { width: 100vw; max-height: 100vh; }
}

/* Native selection controls must not inherit full-width text field sizing. */
input[type="checkbox"],
input[type="radio"] {
  width: 18px;
  height: 18px;
  min-height: 0;
  padding: 0;
  flex: 0 0 18px;
  border-radius: 3px;
  box-shadow: none;
  accent-color: var(--brand);
}
input[type="checkbox"]:focus,
input[type="radio"]:focus { box-shadow: none; }

/* Account gateway */
.login-shell { grid-template-columns: minmax(480px, 1.08fr) minmax(500px, .92fr); }
.login-visual::after { background: rgba(8, 29, 21, .46); }
.login-visual-copy { left: 64px; right: 64px; bottom: 56px; max-width: 680px; }
.login-visual-copy > strong { font-size: 44px; line-height: 1.16; letter-spacing: 0; }
.login-panel { width: min(520px, calc(100% - 64px)); }
.login-panel-inner { display: grid; gap: 20px; }
.login-form-heading { gap: 8px; margin-bottom: 0; }
.login-account-tag { justify-self: start; padding: 5px 9px; color: var(--brand-dark); background: #e6f3ed; border: 1px solid #b8d8c9; border-radius: 4px; font-size: 12px; font-weight: 740; }
.login-panel h1 { font-size: 32px; }
.login-form-heading p { max-width: 460px; line-height: 1.7; }
.login-demo-note { display: flex; align-items: center; gap: 8px; padding: 10px 12px; color: #5f4b21; background: #fff8e8; border-left: 3px solid #d2a64b; font-size: 13px; }
.login-demo-note .icon { width: 17px; height: 17px; flex: 0 0 auto; }
.login-fields { display: grid; gap: 14px; }
.login-fields .field { gap: 7px; }
.login-workspace-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-top: 2px; border-top: 1px solid var(--line); }
.login-workspace-heading strong { padding-top: 18px; font-size: 15px; }
.login-workspace-heading span { color: var(--text-soft); font-size: 12px; }
.login-workspace-grid { display: grid; grid-template-columns: 1fr; gap: 9px; }
.login-workspace-grid button { display: grid; grid-template-columns: 42px minmax(0, 1fr) 20px; align-items: center; gap: 12px; min-height: 78px; padding: 13px 14px; text-align: left; color: var(--text); background: #fff; border: 1px solid #b9c6be; border-radius: 5px; cursor: pointer; }
.login-workspace-grid button:hover { color: var(--brand-dark); border-color: var(--brand); background: #f5faf7; }
.login-workspace-grid button:focus-visible { outline: 3px solid rgba(8, 117, 82, .18); outline-offset: 1px; }
.login-workspace-grid button > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.login-workspace-grid button strong { font-size: 15px; }
.login-workspace-grid button small { color: var(--text-soft); line-height: 1.45; }
.login-workspace-grid button > .icon:last-child { width: 18px; color: #6d7c73; }
.login-role-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 5px; }
.login-role-icon.tenant-role { color: #075c3e; background: #dff2e9; }
.login-role-icon.landlord-role { color: #185d68; background: #e1f0f2; }
.login-terms { max-width: 480px; padding-top: 2px; font-size: 12px; line-height: 1.65; }

@media (max-width: 760px) {
  .login-shell { grid-template-columns: minmax(0, 1fr); place-items: stretch; }
  .login-visual { width: 100%; min-height: 176px; height: 176px; }
  .login-visual img { height: 176px; }
  .login-visual-copy { left: 20px; right: 20px; bottom: 18px; }
  .login-visual-copy > strong { font-size: 27px; }
  .login-panel { width: 100%; margin: 0; padding: 24px 18px 32px; }
  .login-panel h1 { font-size: 27px; }
  .login-panel-inner { gap: 17px; }
}

@media (min-width: 761px) and (max-width: 1080px) {
  .login-shell { grid-template-columns: 1fr; place-items: stretch; min-height: 100vh; }
  .login-visual { width: 100%; min-height: 240px; height: 240px; }
  .login-visual img { width: 100%; height: 240px; object-fit: cover; }
  .login-visual-copy { left: 28px; right: 28px; bottom: 24px; }
  .login-visual-copy > strong { max-width: 720px; font-size: 34px; }
  .login-panel { width: min(620px, calc(100% - 40px)); padding: 30px 0 40px; }
}

@media (max-width: 420px) {
  .login-workspace-heading { display: grid; gap: 2px; }
  .login-workspace-heading strong { padding-top: 16px; }
  .code-row { grid-template-columns: minmax(0, 1fr) auto; }
}

/* Verified account access */
.auth-channel-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 3px;
  background: #edf2ef;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.auth-channel-switch button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--text-soft);
  background: transparent;
  border: 0;
  border-radius: 4px;
  font-weight: 700;
  cursor: pointer;
}
.auth-channel-switch button.active { color: var(--brand-dark); background: #fff; box-shadow: 0 1px 4px rgba(23, 52, 39, .12); }
.auth-channel-switch .icon { width: 17px; height: 17px; }
.login-service-status {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-left: 3px solid;
  font-size: 13px;
}
.login-service-status.is-ready { color: #174d3b; background: #eef8f3; border-color: #4c9b7a; }
.login-service-status.is-unavailable { color: #745318; background: #fff8e8; border-color: #d2a64b; }
.login-service-status .icon { width: 17px; height: 17px; flex: 0 0 auto; }
.code-row .btn:disabled { color: #7b8780; background: #edf0ee; border-color: #d3dad6; cursor: not-allowed; }

/* Unified tenant source */
.unified-source-picker { position: relative; border-left: 4px solid var(--brand); }
.unified-source-picker .field-hint { display: flex; align-items: center; gap: 6px; color: var(--brand-dark); }
.unified-source-picker .field-hint .icon { width: 15px; height: 15px; }
.extraction-review-row.is-dependency { border-left: 3px solid #3b8d73; background: #f3f9f6; }

/* Personal work hub */
.profile-hub { max-width: 1240px; }
.profile-page-header { align-items: end; }
.profile-identity-modern {
  grid-template-columns: 76px minmax(0, 1fr) minmax(280px, .7fr);
  gap: 20px;
  align-items: center;
  padding: 24px 26px;
}
.profile-name-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.profile-name-line h2 { margin: 0; }
.profile-identity-modern .profile-identity-copy > p { max-width: 680px; margin: 7px 0 10px; line-height: 1.6; }
.avatar-uploaded { overflow: hidden; }
.avatar-uploaded img { width: 100%; height: 100%; display: block; object-fit: cover; }
.verified-identities { display: flex; gap: 8px; flex-wrap: wrap; }
.verified-identity {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  color: #e7f3ed;
  border: 1px solid rgba(222, 240, 231, .35);
  border-radius: 4px;
  font-size: 12px;
}
.verified-identity .icon { width: 14px; height: 14px; }
.verified-identity .icon:last-child { color: #8de0bd; }
.verified-identity.is-empty { color: #f5dba6; }
.profile-next-action {
  min-width: 0;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  color: #173c31;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 5px;
  text-decoration: none;
}
.profile-next-action > span { width: 36px; height: 36px; display: grid; place-items: center; color: var(--brand-dark); background: #dff2e9; border-radius: 4px; }
.profile-next-action > div { min-width: 0; display: grid; gap: 2px; }
.profile-next-action small { color: #607269; }
.profile-next-action strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-next-action > .icon { width: 17px; color: #718078; }
.profile-quick-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 14px;
  border: 1px solid var(--line);
  background: #fff;
}
.profile-quick-actions > a {
  min-width: 0;
  min-height: 72px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  color: var(--text);
  border-right: 1px solid var(--line);
  text-decoration: none;
}
.profile-quick-actions > a:last-child { border-right: 0; }
.profile-quick-actions > a:hover { color: var(--brand-dark); background: #f3f8f5; }
.profile-quick-actions > a > .icon { color: var(--brand); }
.profile-quick-actions span { min-width: 0; display: grid; gap: 2px; }
.profile-quick-actions small { overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.profile-overview-modern { margin-top: 14px; }
.profile-content-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .72fr); gap: 18px; align-items: start; margin-top: 18px; }
.profile-main-column, .profile-side-column { display: grid; gap: 16px; }
.profile-section, .profile-side-column .settings-section { margin: 0; }
.account-security-panel { border-top: 4px solid var(--brand); }
.account-id-row, .profile-data-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.account-id-row span, .profile-data-row span { color: var(--text-soft); }
.identity-manage-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.identity-manage-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--brand-dark); background: var(--brand-soft); border-radius: 4px; }
.identity-manage-row > div { min-width: 0; display: grid; gap: 2px; }
.identity-manage-row small { overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.account-security-note { display: flex; align-items: flex-start; gap: 8px; padding-top: 13px; color: var(--text-soft); font-size: 12px; line-height: 1.55; }
.account-security-note .icon { width: 16px; height: 16px; flex: 0 0 auto; color: var(--brand); }
.profile-account-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 16px 18px; border: 1px solid #e5c8c5; background: #fffafa; }
.profile-account-footer > div { display: grid; gap: 3px; }
.profile-account-footer span { color: var(--text-soft); font-size: 13px; }
.profile-compact-list { display: grid; border-top: 1px solid var(--line); }
.profile-compact-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 0; color: var(--text); border-bottom: 1px solid var(--line); text-decoration: none; }
.profile-compact-row > .icon { color: var(--brand); }
.profile-compact-row > div { min-width: 0; display: grid; gap: 3px; }
.profile-compact-row small { color: var(--text-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 980px) {
  .profile-identity-modern { grid-template-columns: 68px minmax(0, 1fr); }
  .profile-next-action { grid-column: 1 / -1; }
  .profile-content-layout { grid-template-columns: 1fr; }
  .profile-side-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-data-summary { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .profile-page-header { align-items: flex-start; }
  .profile-identity-modern { grid-template-columns: 58px minmax(0, 1fr); padding: 18px 16px; }
  .profile-identity-modern .avatar-large { width: 58px; height: 58px; }
  .profile-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-quick-actions > a:nth-child(2) { border-right: 0; }
  .profile-quick-actions > a:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .profile-side-column { grid-template-columns: 1fr; }
  .profile-data-summary { grid-column: auto; }
  .profile-account-footer { align-items: stretch; flex-direction: column; }
  .profile-account-footer .btn { width: 100%; }
}

/* Compact personal work hub */
.profile-v3 { max-width: 1180px; padding-top: 26px; }
.profile-masthead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  padding: 22px 24px;
  border-top: 4px solid var(--brand);
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.profile-person { min-width: 0; display: grid; grid-template-columns: 66px minmax(0, 1fr); align-items: center; gap: 16px; }
.profile-person .avatar-large { width: 66px; height: 66px; font-size: 25px; }
.profile-person h1 { margin: 2px 0 3px; color: #102019; font-size: 25px; line-height: 1.2; }
.profile-person p { max-width: 650px; margin: 0; color: var(--text-soft); line-height: 1.55; }
.profile-workspace-label { color: var(--brand); font-size: 12px; font-weight: 750; }
.profile-verified-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.profile-verified-list > span { display: inline-flex; align-items: center; gap: 5px; color: #315d4d; font-size: 12px; }
.profile-verified-list .icon { width: 14px; height: 14px; }
.profile-verified-list .icon:last-child { color: var(--brand); }
.profile-verified-list .is-empty { color: var(--warning); }
.profile-masthead-control { display: grid; justify-items: end; gap: 10px; }
.profile-account-caption { color: var(--text-soft); font-size: 12px; }

.profile-action-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-top: 0;
  background: #fff;
}
.profile-action-strip > a {
  min-width: 0;
  min-height: 70px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 10px;
  padding: 12px 15px;
  color: var(--text);
  border-right: 1px solid var(--line);
  text-decoration: none;
}
.profile-action-strip > a:last-child { border-right: 0; }
.profile-action-strip > a:hover { color: var(--brand-dark); background: #f4f8f6; }
.profile-action-strip > a > span:nth-child(2) { min-width: 0; display: grid; gap: 1px; }
.profile-action-strip small { overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.profile-action-strip > a > .icon { width: 15px; color: #7b8881; }
.profile-action-icon { width: 34px; height: 34px; display: grid; place-items: center; color: var(--brand-dark); background: var(--brand-soft); border-radius: 4px; }
.profile-action-icon .icon { width: 17px; height: 17px; }

.profile-work-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .78fr); gap: 16px; align-items: start; margin-top: 16px; }
.profile-activity-column { display: grid; gap: 16px; }
.profile-panel { padding: 19px 20px; border: 1px solid var(--line); background: #fff; box-shadow: 0 2px 8px rgba(20, 43, 33, .035); }
.profile-panel-heading { min-height: 42px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.profile-panel-heading > div { display: grid; gap: 1px; }
.profile-panel-heading span { color: var(--text-soft); font-size: 12px; }
.profile-panel-heading h2 { margin: 0; font-size: 18px; }
.profile-panel-heading > a { display: inline-flex; align-items: center; gap: 4px; color: var(--brand); font-size: 13px; font-weight: 680; text-decoration: none; }
.profile-panel-heading > a .icon { width: 14px; height: 14px; }
.profile-panel-heading > .icon { color: var(--brand); }

.profile-focus-item { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 18px 0 2px; }
.profile-focus-date { min-height: 68px; display: grid; align-content: center; padding-right: 18px; border-right: 1px solid var(--line); }
.profile-focus-date span { color: var(--text-soft); font-size: 12px; }
.profile-focus-date strong { color: var(--brand-dark); font-size: 22px; }
.profile-focus-copy { min-width: 0; display: grid; gap: 4px; }
.profile-focus-copy h3 { margin: 0; font-size: 17px; }
.profile-focus-copy p, .profile-focus-copy small { margin: 0; color: var(--text-soft); }
.profile-focus-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-focus-empty { min-height: 92px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding-top: 12px; }
.profile-focus-empty > .icon { width: 24px; height: 24px; color: var(--brand); }
.profile-focus-empty > div { display: grid; gap: 3px; }
.profile-focus-empty span { color: var(--text-soft); }
.profile-message-list-compact { border: 0; }
.profile-message-list-compact a { padding: 12px 0; }
.profile-list-empty { min-height: 82px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--text-soft); }

.profile-account-panel { padding-bottom: 14px; }
.profile-identity-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.profile-row-icon { width: 34px; height: 34px; display: grid; place-items: center; color: var(--brand-dark); background: var(--brand-soft); border-radius: 4px; }
.profile-row-icon .icon { width: 16px; height: 16px; }
.profile-identity-row > div { min-width: 0; display: grid; gap: 1px; }
.profile-identity-row small { overflow: hidden; color: var(--text-soft); text-overflow: ellipsis; white-space: nowrap; }
.profile-privacy-note { display: flex; align-items: flex-start; gap: 7px; margin: 11px 0 16px; color: var(--text-soft); font-size: 12px; line-height: 1.5; }
.profile-privacy-note .icon { width: 15px; height: 15px; margin-top: 1px; color: var(--brand); }
.profile-panel-subhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0 7px; border-top: 1px solid var(--line); }
.profile-panel-subhead span { color: var(--text-soft); font-size: 12px; }
.profile-reminder-list label { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; }
.profile-reminder-list label > span { display: grid; gap: 1px; }
.profile-reminder-list small { color: var(--text-soft); }
.profile-data-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 4px 0 14px; border: 1px solid var(--line); }
.profile-data-strip > div { display: grid; gap: 1px; padding: 9px 10px; border-right: 1px solid var(--line); }
.profile-data-strip > div:last-child { border-right: 0; }
.profile-data-strip span { color: var(--text-soft); font-size: 11px; }
.profile-data-strip strong { color: var(--brand-dark); }
.profile-signout-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.profile-signout-row > span { color: var(--text-soft); font-size: 12px; }

@media (max-width: 900px) {
  .profile-masthead { grid-template-columns: 1fr; gap: 18px; }
  .profile-masthead-control { justify-items: start; }
  .profile-work-grid { grid-template-columns: 1fr; }
  .profile-account-panel { display: grid; grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .profile-v3 { padding-top: 14px; }
  .profile-masthead { padding: 17px 15px; }
  .profile-person { grid-template-columns: 52px minmax(0, 1fr); align-items: start; }
  .profile-person .avatar-large { width: 52px; height: 52px; font-size: 20px; }
  .profile-person h1 { font-size: 22px; }
  .profile-masthead-control, .profile-masthead-control .page-actions { width: 100%; }
  .profile-masthead-control .page-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
  .profile-masthead-control .page-actions .btn { width: 100%; }
  .profile-masthead-control .page-actions .btn { padding-inline: 7px; font-size: 12px; }
  .profile-person p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .profile-action-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-action-strip > a:nth-child(2) { border-right: 0; }
  .profile-action-strip > a:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .profile-panel { padding: 16px 14px; }
  .profile-focus-item { grid-template-columns: 1fr; gap: 11px; }
  .profile-focus-date { min-height: 0; grid-template-columns: auto auto; justify-content: start; align-items: baseline; gap: 8px; padding: 0 0 10px; border-right: 0; border-bottom: 1px solid var(--line); }
  .profile-focus-date strong { font-size: 18px; }
  .profile-focus-item > .page-actions, .profile-focus-item > .btn { justify-self: stretch; }
  .profile-focus-item > .page-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-focus-item > .page-actions .btn, .profile-focus-item > .btn { width: 100%; }
  .profile-focus-empty { grid-template-columns: 28px minmax(0, 1fr); }
  .profile-focus-empty .btn { grid-column: 1 / -1; width: 100%; }
  .profile-signout-row { align-items: stretch; flex-direction: column; }
  .profile-signout-row .btn { width: 100%; }
}

/* Keep profile heading commands together instead of inheriting the heading grid. */
.profile-v4 .profile-panel-heading > .profile-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

@media (max-width: 720px) {
  .profile-v4 .profile-panel-heading > .profile-heading-actions {
    width: 100%;
    justify-content: stretch;
  }
  .profile-v4 .profile-messages-panel .profile-panel-heading {
    flex-direction: column;
  }
}

/* Keep first-level workspace headings consistent across ordinary desktop windows. */
@media (min-width: 761px) {
  .page-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px 28px;
    text-align: left;
  }

  .page-header > :first-child { min-width: 0; }

  .page-header > .page-actions,
  .page-header > .btn,
  .page-header > .message-return {
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }

  .page-header > .page-actions { justify-content: flex-end; }
}

@media (max-width: 760px) {
  .page-header,
  .message-page-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    text-align: left;
  }

  .page-header > .page-actions,
  .page-header > .btn,
  .page-header > .message-return {
    width: 100%;
    grid-column: 1;
    justify-self: stretch;
  }

  .page-header > .page-actions { justify-content: flex-start; }
}

/* The inherited body line-height clipped underscores against the old fixed input height. */
.login-fields input {
  height: 44px;
  min-height: 44px;
  padding-top: 9px;
  padding-bottom: 9px;
  line-height: 1.25;
}
