[hidden] { display: none !important; }
/* ============================================================
   Spencero — design tokens
   ============================================================ */
:root {
  --forest: #16332F;
  --forest-soft: #2C4A43;
  --cream: #F7F6F2;
  --terracotta: #D78362;
  --terracotta-soft: rgba(215, 131, 98, 0.15);
  --mist: #E4E4DE;
  --line: rgba(22, 51, 47, 0.14);
  --ink: #16332F;
  --white: #FFFFFF;
  --danger: #C0533E;

  --radius-sm: 5px;
  --radius-md: 8px;
  --radius-lg: 14px;

  --font: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
}

#app { min-height: 100vh; }

a { color: inherit; text-decoration: none; }
button { font-family: var(--font); cursor: pointer; }

/* ============================================================
   Logo
   ============================================================ */
.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--forest);
}
.logo.on-dark { color: var(--cream); }
.logo svg { display: block; flex-shrink: 0; }
.logo-word { line-height: 1; }

/* ============================================================
   Auth (login) layout
   ============================================================ */
.auth-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.auth-card {
  width: 100%;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.auth-card .logo { font-size: 28px; margin-bottom: 8px; }
/* Stacked lockup (sign-in screens): larger mark centred above the wordmark */
.logo-stacked { flex-direction: column; gap: 14px; }
.logo-stacked .logo-word { letter-spacing: 0.02em; }
.field { width: 100%; margin-bottom: 16px; text-align: left; }
.field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--forest-soft);
  margin-bottom: 6px;
}
.field input {
  width: 100%;
  height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--white);
  font-family: var(--font);
  font-size: 14px;
  color: var(--ink);
}
.field input:focus {
  outline: none;
  border-color: var(--terracotta);
  box-shadow: 0 0 0 3px var(--terracotta-soft);
}
.field select,
.field textarea {
  width: 100%;
  height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--white);
  font-family: var(--font);
  font-size: 14px;
  color: var(--ink);
}
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--terracotta);
  box-shadow: 0 0 0 3px var(--terracotta-soft);
}
.field .hint { font-size: 12px; color: var(--forest-soft); margin-top: 6px; }
.field textarea.tall { height: auto; min-height: 120px; padding: 10px 14px; resize: vertical; line-height: 1.5; }

/* ============================================================
   Longer forms (Create Property and similar) — sectioned panels,
   not the centered auth-card layout.
   ============================================================ */
.form-section { max-width: 720px; }
.form-section .field { margin-bottom: 18px; }
.form-section-title { font-size: 15px; font-weight: 800; color: var(--forest); margin: 0 0 18px; }
.form-row { display: flex; gap: 16px; }
.form-row .field { flex: 1; }
.checkbox-field { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.checkbox-field label { font-size: 13px; font-weight: 600; color: var(--forest); }
.search-with-btn { display: flex; gap: 8px; }
.search-with-btn input { flex: 1; }
.search-with-btn button {
  flex-shrink: 0;
  width: 42px; height: 42px;
  border: none;
  border-radius: var(--radius-sm);
  background: var(--forest);
  color: var(--cream);
  display: flex; align-items: center; justify-content: center;
}
.unit-input { display: flex; gap: 8px; }
.unit-input input { flex: 1; }
.unit-toggle { display: flex; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.unit-toggle button {
  border: none;
  width: 38px; height: 42px;
  font-size: 12px;
  font-weight: 700;
  background: var(--mist);
  color: var(--forest-soft);
}
.unit-toggle button.active { background: var(--forest); color: var(--cream); }
.add-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--terracotta);
}
.add-link:hover { opacity: 0.8; }
.link-inline { color: var(--terracotta); font-weight: 600; font-size: 13px; }
.link-btn {
  background: none; border: none; padding: 0; font: inherit; cursor: pointer;
  color: var(--terracotta); font-weight: 700; font-size: 13px;
}
.link-btn:hover { opacity: 0.8; }

/* Room list — appears on the Basics step when a property is marked as
   an HMO, letting rooms be added/renamed/removed before the property
   is created. */
.room-list { margin: 10px 0 14px; }
.room-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.room-row input {
  flex: 1; padding: 9px 12px; border: 1.5px solid var(--mist); border-radius: var(--radius-sm);
  font: inherit; font-size: 14px; color: var(--forest); background: var(--cream);
}
.room-row input:focus { outline: none; border-color: var(--terracotta); box-shadow: 0 0 0 3px var(--terracotta-soft); }
.room-remove-btn {
  background: none; border: 1.5px solid var(--mist); border-radius: var(--radius-sm);
  width: 34px; height: 34px; flex-shrink: 0; cursor: pointer; color: var(--forest-soft);
  font-size: 16px; line-height: 1;
}
.room-remove-btn:hover { border-color: var(--terracotta); color: var(--terracotta); }
.room-remove-btn:disabled { opacity: 0.35; cursor: not-allowed; }

/* ============================================================
   Create Property wizard — deliberately a step-by-step flow rather
   than one long form, with its own copy throughout (see
   createProperty.js for why).
   ============================================================ */
.wizard-steps {
  display: flex;
  align-items: flex-start;
  max-width: 560px;
  margin-bottom: 32px;
}
.wizard-step-item { display: flex; flex-direction: column; align-items: center; flex: 1; position: relative; }
.wizard-step-circle {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--mist);
  color: var(--forest-soft);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-weight: 700;
  z-index: 1;
}
.wizard-step-item.done .wizard-step-circle { background: var(--forest); color: var(--cream); }
.wizard-step-item.current .wizard-step-circle { background: var(--terracotta); color: var(--cream); }
.wizard-step-label { font-size: 11px; font-weight: 700; color: var(--forest-soft); margin-top: 8px; text-transform: uppercase; letter-spacing: 0.03em; }
.wizard-step-item.done .wizard-step-label,
.wizard-step-item.current .wizard-step-label { color: var(--forest); }
.wizard-step-connector {
  position: absolute;
  top: 15px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--line);
  z-index: 0;
}
.wizard-step-item.done .wizard-step-connector { background: var(--forest); }
.wizard-step-item:last-child .wizard-step-connector { display: none; }

.wizard-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; max-width: 560px; }
.wizard-summary-row { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.wizard-summary-row:last-child { border-bottom: none; }
.wizard-summary-row .k { color: var(--forest-soft); }
.wizard-summary-row .v { color: var(--forest); font-weight: 700; text-align: right; }
.wizard-suggestion { font-size: 12px; color: var(--forest-soft); margin-top: 6px; }
.wizard-suggestion strong { color: var(--forest); }

.address-suggestions {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 20px rgba(22, 51, 47, 0.12);
  max-height: 260px;
  overflow-y: auto;
  z-index: 5;
}
.address-suggestions.open { display: block; }
.address-suggestion-item { padding: 10px 14px; cursor: pointer; border-bottom: 1px solid var(--line); }
.address-suggestion-item:last-child { border-bottom: none; }
.address-suggestion-item:hover { background: var(--mist); }
.address-suggestion-item .addr-line1 { font-size: 13px; font-weight: 700; color: var(--forest); }
.address-suggestion-item .addr-line2 { font-size: 12px; color: var(--forest-soft); margin-top: 1px; }

.market-check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
}
.market-check-icon { font-size: 15px; flex-shrink: 0; margin-top: 1px; }
.market-check-title { font-size: 13px; font-weight: 700; color: var(--forest); }
.market-check-body { font-size: 12px; color: var(--forest-soft); margin-top: 2px; line-height: 1.5; }
.market-check-ok { background: rgba(22, 51, 47, 0.05); }
.market-check-warn { background: var(--terracotta-soft); border-color: var(--terracotta); }
.market-check-warn .market-check-title { color: var(--danger); }

/* ============================================================
   Reporting — simple horizontal-bar breakdowns
   ============================================================ */
.source-row { padding: 12px 0; border-bottom: 1px solid var(--line); }
.source-row:last-child { border-bottom: none; }
.source-row-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; gap: 12px; }
.source-label { font-size: 13px; font-weight: 600; color: var(--forest); }
.source-value { font-size: 13px; font-weight: 700; color: var(--forest); flex-shrink: 0; }
.source-pct { font-weight: 600; color: var(--forest-soft); }
.source-bar-track { height: 8px; border-radius: 999px; background: var(--mist); overflow: hidden; }
.source-bar-fill { height: 100%; background: var(--terracotta); border-radius: 999px; }

/* ============================================================
   Onboarding workflow — timeline of outstanding steps for a
   property between "Create Property" and it going live.
   ============================================================ */
.onboard-progress { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.onboard-progress-bar { flex: 1; height: 6px; border-radius: 999px; background: var(--mist); overflow: hidden; }
.onboard-progress-fill { height: 100%; background: var(--terracotta); border-radius: 999px; }
.onboard-progress-label { font-size: 12px; font-weight: 700; color: var(--forest-soft); flex-shrink: 0; }

.onboard-step {
  display: flex;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.onboard-step:last-child { border-bottom: none; }
.onboard-marker {
  width: 26px; height: 26px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-weight: 700;
  margin-top: 2px;
}
.onboard-step.complete .onboard-marker { background: var(--forest); color: var(--cream); }
.onboard-step.outstanding .onboard-marker { background: var(--terracotta); color: var(--cream); }
.onboard-step.not-started .onboard-marker { background: var(--mist); color: var(--forest-soft); }
.onboard-body { flex: 1; min-width: 0; }
.onboard-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.onboard-title { font-size: 14px; font-weight: 700; color: var(--forest); }
.onboard-desc { font-size: 13px; color: var(--forest-soft); margin-top: 3px; line-height: 1.5; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 42px;
  border: none;
  border-radius: var(--radius-sm);
  background: var(--terracotta);
  color: var(--cream);
  font-weight: 700;
  font-size: 14px;
  font-family: var(--font);
  margin-top: 6px;
  transition: opacity 0.15s ease;
}
.btn:hover { opacity: 0.9; }
.btn-secondary {
  background: transparent;
  color: var(--forest);
  border: 1px solid var(--line);
}
.btn-sm {
  width: auto;
  height: 36px;
  padding: 0 14px;
  margin-top: 0;
  font-size: 13px;
}
.auth-fine {
  font-size: 12px;
  color: var(--forest-soft);
  opacity: 0.7;
  margin-top: 20px;
}
.auth-error {
  width: 100%;
  text-align: left;
  font-size: 12px;
  color: var(--danger);
  margin: -6px 0 12px;
  min-height: 16px;
}

/* ============================================================
   App shell (authenticated layout)
   ============================================================ */
.shell {
  display: flex;
  min-height: 100vh;
}
.sidebar {
  width: 244px;
  flex-shrink: 0;
  background: var(--forest);
  color: var(--cream);
  display: flex;
  flex-direction: column;
  padding: 24px 16px;
  max-height: 100vh;
  overflow-y: auto;
}
.sidebar .logo { font-size: 18px; padding: 0 10px; margin-bottom: 24px; }
.sidebar .logo svg { width: 24px; height: 24px; }
.nav-group { margin-bottom: 4px; }
.nav-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(247, 246, 242, 0.4);
  padding: 0 10px;
  margin-bottom: 6px;
}

/* Collapsible nav sections (Lettings, Property Management, Finance, ...) */
.nav-section { margin-bottom: 6px; }
.nav-section-label {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(247, 246, 242, 0.45);
  padding: 10px 10px 6px;
  user-select: none;
}
.nav-section-label::-webkit-details-marker { display: none; }
.nav-section-label::after {
  content: '';
  width: 6px; height: 6px;
  border-right: 1.5px solid rgba(247, 246, 242, 0.4);
  border-bottom: 1.5px solid rgba(247, 246, 242, 0.4);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  flex-shrink: 0;
}
.nav-section[open] > .nav-section-label::after { transform: rotate(-135deg); }
.nav-section:not(:first-child) { border-top: 1px solid rgba(247, 246, 242, 0.08); padding-top: 4px; }

.nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 500;
  color: rgba(247, 246, 242, 0.75);
  margin-bottom: 2px;
}
.nav-link:hover { background: rgba(247, 246, 242, 0.06); color: var(--cream); }
.nav-link.active { background: rgba(247, 246, 242, 0.12); color: var(--cream); font-weight: 700; }
.nav-link .dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--terracotta); margin-left: auto; flex-shrink: 0;
}
.sidebar-footer { margin-top: auto; }
.sidebar-user {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: var(--radius-sm);
  font-size: 13px;
}
.sidebar-user .avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--terracotta);
  color: var(--forest);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12px; flex-shrink: 0;
}
.sidebar-user .who { line-height: 1.3; }
.sidebar-user .name { font-weight: 600; color: var(--cream); }
.sidebar-user .org { font-size: 11px; color: rgba(247, 246, 242, 0.55); }
.signout-link {
  display: block;
  font-size: 12px;
  color: rgba(247, 246, 242, 0.5);
  padding: 10px 10px 0;
}
.signout-link:hover { color: var(--cream); }

.main {
  flex: 1;
  min-width: 0;
  padding: 40px 48px 64px;
}
.main-inner { max-width: 1040px; }

/* Top bar — Create new / Notifications / Settings / profile, right
   aligned above the page content. */
.topbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-bottom: 28px;
}
.topbar-spacer { flex: 1; }
.topbar-actions { display: flex; align-items: center; gap: 8px; }

.topbar-dropdown { position: relative; }
.topbar-icon-btn {
  display: flex; align-items: center; gap: 6px;
  background: var(--surface, #fff);
  border: 1.5px solid var(--mist);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  font-size: 13px; font-weight: 700; color: var(--forest);
  cursor: pointer; position: relative;
}
.topbar-icon-btn:hover { border-color: var(--terracotta); }
.topbar-icon-only { padding: 8px 10px; font-size: 15px; }
.topbar-create-plus { color: var(--terracotta); font-weight: 800; font-size: 15px; }

.topbar-badge {
  position: absolute; top: -5px; right: -5px;
  background: var(--terracotta); color: var(--cream);
  font-size: 10px; font-weight: 800; line-height: 1;
  min-width: 16px; height: 16px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 3px;
}

.topbar-menu {
  display: none;
  position: absolute; top: calc(100% + 8px); right: 0;
  background: #fff; border: 1px solid var(--mist); border-radius: var(--radius-md);
  box-shadow: 0 12px 28px rgba(22, 51, 47, 0.14);
  min-width: 220px; padding: 8px; z-index: 20;
}
.topbar-dropdown.open .topbar-menu { display: block; }
.topbar-menu-wide { min-width: 340px; padding: 0; }
.topbar-menu-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--forest-soft); padding: 6px 8px 4px;
}
.topbar-menu-item {
  display: block; padding: 9px 8px; border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 600; color: var(--forest);
}
.topbar-menu-item:hover { background: var(--cream); }
.topbar-menu-divider { height: 1px; background: var(--mist); margin: 6px 2px; }

.topbar-menu-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px; border-bottom: 1px solid var(--mist);
  font-size: 13px; font-weight: 800; color: var(--forest);
}
.topbar-notif-item {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 12px 14px; border-bottom: 1px solid var(--mist);
}
.topbar-notif-item:last-child { border-bottom: none; }
.topbar-notif-item:hover { background: var(--cream); }
.topbar-notif-item.unread { background: rgba(215, 131, 98, 0.06); }
.topbar-notif-icon { font-size: 15px; flex-shrink: 0; margin-top: 1px; }
.topbar-notif-title { font-size: 13px; font-weight: 700; color: var(--forest); }
.topbar-notif-item.unread .topbar-notif-title::after {
  content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--terracotta); margin-left: 7px; vertical-align: middle;
}
.topbar-notif-sub { font-size: 12px; color: var(--forest-soft); margin-top: 2px; line-height: 1.4; }
.topbar-notif-when { font-size: 11px; color: var(--forest-soft); opacity: 0.7; margin-top: 4px; }

.topbar-profile {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px 6px 6px; border-radius: 999px;
  border: 1.5px solid var(--mist);
}
.topbar-profile:hover { border-color: var(--terracotta); }
.topbar-avatar {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  background: var(--forest); color: var(--cream);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
}
.topbar-profile-name { font-size: 13px; font-weight: 700; color: var(--forest); }

@media (max-width: 760px) {
  .topbar-profile-name { display: none; }
  .topbar-create-btn span:last-child { display: none; }
}

/* ============================================================
   Typography helpers
   ============================================================ */
.eyebrow { font-size: 13px; color: var(--forest-soft); margin: 0 0 4px; }
.page-title { font-size: 26px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 6px; }
.page-sub { font-size: 14px; color: var(--forest-soft); margin: 0 0 32px; }

/* ============================================================
   Stat cards
   ============================================================ */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 36px;
}
.stat-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 18px;
}
.stat-card .value { font-size: 26px; font-weight: 800; color: var(--forest); line-height: 1; }
.stat-card .label { font-size: 12px; color: var(--forest-soft); margin-top: 8px; }
.stat-card .flag { font-size: 11px; font-weight: 700; color: var(--terracotta); margin-top: 6px; }

/* ============================================================
   Cards / panels
   ============================================================ */
.panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 22px;
}
.panel + .panel { margin-top: 16px; }
.panel-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--forest);
  margin: 0 0 16px;
}
.two-col {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 16px;
  align-items: start;
}

/* ============================================================
   Activity feed
   ============================================================ */
.activity-item {
  display: flex;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.activity-item:first-child { border-top: none; padding-top: 0; }
.activity-time {
  width: 56px;
  flex-shrink: 0;
  font-size: 12px;
  color: var(--forest-soft);
  font-variant-numeric: tabular-nums;
  padding-top: 1px;
}
.activity-body .title { font-size: 13px; font-weight: 600; color: var(--forest); }
.activity-body .sub { font-size: 12px; color: var(--forest-soft); margin-top: 2px; }

/* ============================================================
   Tables / lists
   ============================================================ */
.list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}
.search-input {
  height: 38px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0 14px;
  font-family: var(--font);
  font-size: 13px;
  background: var(--white);
  width: 260px;
}
.search-input:focus { outline: none; border-color: var(--terracotta); }

.prop-table { width: 100%; border-collapse: collapse; }
.prop-table th {
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--forest-soft);
  padding: 0 14px 10px;
  border-bottom: 1px solid var(--line);
}
.prop-table td {
  padding: 14px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  vertical-align: middle;
}
.prop-table tr:last-child td { border-bottom: none; }
.prop-table tr.clickable { cursor: pointer; transition: background 0.1s ease; }
.prop-table tr.clickable:hover { background: var(--cream); }
.prop-thumb {
  width: 36px; height: 36px; border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--forest), var(--forest-soft));
  flex-shrink: 0;
}
.prop-cell-main { display: flex; align-items: center; gap: 12px; }
.prop-addr { font-weight: 700; color: var(--forest); }
.prop-addr-sub { font-size: 12px; color: var(--forest-soft); margin-top: 2px; }

/* ============================================================
   Pills / badges
   ============================================================ */
.pill {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
}
.pill-ok { background: rgba(22, 51, 47, 0.08); color: var(--forest); }
.pill-warn { background: var(--terracotta-soft); color: #A85D3E; }
.pill-neutral { background: var(--mist); color: var(--forest-soft); }
.pill-forest { background: rgba(22, 51, 47, 0.08); color: var(--forest); }

/* ============================================================
   Property detail
   ============================================================ */
.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--forest-soft);
  margin-bottom: 20px;
}
.back-link:hover { color: var(--forest); }
.prop-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 24px;
}
.prop-header h1 { font-size: 24px; font-weight: 800; margin: 0 0 4px; }
.prop-header .meta { font-size: 14px; color: var(--forest-soft); }
.prop-status-row { display: flex; gap: 8px; margin-top: 12px; }
.key-chip {
  flex-shrink: 0;
  align-self: flex-start;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--forest);
  background: var(--mist);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm, 8px);
  padding: 7px 12px;
  white-space: nowrap;
}
.key-number { font-family: 'Manrope', monospace; letter-spacing: 0.03em; }

.tab-bar {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
}
.tab {
  padding: 10px 4px;
  margin-right: 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--forest-soft);
  border-bottom: 2px solid transparent;
}
.tab.active { color: var(--forest); border-bottom-color: var(--terracotta); }

.action-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 0;
  border-top: 1px solid var(--line);
  font-size: 13px;
}
.action-item:first-child { border-top: none; padding-top: 0; }
.action-item .icon { font-size: 15px; width: 20px; text-align: center; flex-shrink: 0; }
.action-item .txt { flex: 1; color: var(--forest); }
.action-item .when { font-size: 11px; color: var(--forest-soft); }

.timeline-item {
  display: flex;
  gap: 14px;
  padding-bottom: 20px;
  position: relative;
}
.timeline-item:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 16px;
  bottom: 0;
  width: 1px;
  background: var(--line);
}
.timeline-dot {
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--cream); border: 2px solid var(--terracotta);
  flex-shrink: 0; margin-top: 3px;
}
.timeline-body .when { font-size: 11px; color: var(--forest-soft); margin-bottom: 2px; }
.timeline-body .txt { font-size: 13px; color: var(--forest); }

.empty-tab {
  padding: 48px 0;
  text-align: center;
  color: var(--forest-soft);
  font-size: 13px;
}

/* ============================================================
   Enquiry Centre — Rightmove / Zoopla / website enquiries, one inbox
   ============================================================ */
.enquiry-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.enquiry-stats { display: flex; gap: 10px; flex-shrink: 0; }
.enquiry-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 72px;
  padding: 10px 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
}
.enquiry-stat strong { font-size: 18px; font-weight: 800; color: var(--forest); line-height: 1.2; }
.enquiry-stat span { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--forest-soft); margin-top: 2px; }
.enquiry-stat.unread { border-color: var(--terracotta); }
.enquiry-stat.unread strong { color: var(--terracotta); }
.enquiry-centre {
  display: flex;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  min-height: 560px;
  background: var(--white);
}
.enquiry-list {
  width: 300px;
  flex-shrink: 0;
  border-right: 1px solid var(--line);
  overflow-y: auto;
  max-height: 640px;
}
.enquiry-row {
  display: flex;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.enquiry-row:hover { background: var(--mist); }
.enquiry-row.active { background: rgba(22, 51, 47, 0.06); }
.enquiry-check { margin-top: 3px; flex-shrink: 0; }
.enquiry-row-body { flex: 1; min-width: 0; }
.enquiry-row-top { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }
.enquiry-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--terracotta); flex-shrink: 0; opacity: 0;
}
.enquiry-row.unread .enquiry-dot { opacity: 1; }
.enquiry-row.unread .enquiry-name { font-weight: 700; }
.enquiry-name { font-size: 13px; color: var(--forest); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.enquiry-date { font-size: 11px; color: var(--forest-soft); flex-shrink: 0; }
.enquiry-address { font-size: 12px; color: var(--forest-soft); margin-bottom: 8px; line-height: 1.4; }
.enquiry-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.enquiry-source { display: inline-flex; align-items: center; gap: 4px; }
.enquiry-panel {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
}
.enquiry-empty { text-align: center; color: var(--forest-soft); }
.enquiry-empty-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--mist);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
  margin: 0 auto 16px;
}
.enquiry-empty-title { font-size: 15px; font-weight: 700; color: var(--forest); margin: 0 0 4px; }
.enquiry-empty-sub { font-size: 13px; margin: 0; }
.enquiry-detail { width: 100%; align-self: flex-start; }
.enquiry-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.enquiry-detail-header h2 { font-size: 20px; font-weight: 800; margin: 0 0 4px; }
.enquiry-detail-meta { font-size: 13px; color: var(--forest-soft); }
.enquiry-message { font-size: 14px; color: var(--forest); line-height: 1.6; margin: 0; }
.enquiry-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }

/* ============================================================
   Left sub-nav layout — standard pattern for hub-style pages with
   several report-like sub-sections (Compliance, and future ones like
   Finance). Deliberately not top tabs, to read differently from the
   top-tab pattern in the current CRM.
   ============================================================ */
.subnav-layout {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.subnav {
  width: 220px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--white);
}
.subnav-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--forest);
  border-left: 2px solid transparent;
}
.subnav-item:hover { background: var(--mist); }
.subnav-item.active {
  background: rgba(22, 51, 47, 0.06);
  border-left-color: var(--terracotta);
  font-weight: 700;
}
.subnav-count {
  font-size: 11px;
  font-weight: 700;
  color: var(--forest-soft);
  background: var(--mist);
  border-radius: 999px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.subnav-item.active .subnav-count { background: var(--terracotta); color: var(--cream); }
.subnav-panel { flex: 1; min-width: 0; margin-top: 0; }

@media (max-width: 760px) {
  .subnav-layout { flex-direction: column; }
  .subnav { width: 100%; flex-direction: row; overflow-x: auto; }
  .subnav-item { flex-shrink: 0; border-left: none; border-bottom: 2px solid transparent; }
  .subnav-item.active { border-left: none; border-bottom-color: var(--terracotta); }
}

/* Valuations pipeline list, reuses .subnav-panel as its container */
.valuation-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.valuation-row:last-child { border-bottom: none; }
.valuation-main { min-width: 0; }
.valuation-address { font-size: 14px; font-weight: 700; color: var(--forest); }
.valuation-address a { color: inherit; }
.valuation-address a:hover { color: var(--terracotta); }
.valuation-meta { font-size: 12px; color: var(--forest-soft); margin-top: 2px; }
.valuation-price { font-size: 14px; font-weight: 700; color: var(--forest); flex-shrink: 0; white-space: nowrap; }
.viewing-feedback {
  font-size: 12px;
  color: var(--forest);
  background: var(--mist);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  margin-top: 8px;
  line-height: 1.5;
}

/* ============================================================
   Placeholder page (nav items not built yet)
   ============================================================ */
.placeholder {
  border: 1px dashed var(--line);
  border-radius: var(--radius-md);
  padding: 64px 24px;
  text-align: center;
  color: var(--forest-soft);
  font-size: 14px;
}
.placeholder strong { display: block; color: var(--forest); font-size: 16px; margin-bottom: 6px; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .two-col { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .shell { flex-direction: column; }
  .sidebar {
    width: 100%;
    flex-direction: row;
    align-items: center;
    padding: 12px 16px;
    overflow-x: auto;
  }
  .sidebar .logo { margin-bottom: 0; margin-right: 16px; }
  .nav-group, .nav-section, .quick-access-block, .sidebar-footer, .signout-link, .sidebar-actions { display: none; }
  .main { padding: 24px 20px 48px; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .prop-header { flex-direction: column; }
  .enquiry-centre { flex-direction: column; }
  .enquiry-list { width: 100%; max-height: 320px; border-right: none; border-bottom: 1px solid var(--line); }
}

/* ============================================================
   Quick Access — draggable pinned shortcuts
   ============================================================ */
.quick-access-zone {
  min-height: 46px;
  border-radius: var(--radius-sm);
  border: 1.5px dashed transparent;
  padding: 2px;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.quick-access-zone.drag-over {
  border-color: var(--terracotta);
  background: rgba(215, 131, 98, 0.08);
}
.nav-link[draggable="true"] { cursor: grab; }
.nav-link[draggable="true"]:active { cursor: grabbing; }
.quick-item { position: relative; padding-right: 28px; }
.quick-remove {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: rgba(247, 246, 242, 0.4);
  font-size: 14px;
  line-height: 1;
  display: none;
  align-items: center;
  justify-content: center;
}
.quick-item:hover .quick-remove { display: flex; }
.quick-remove:hover { background: rgba(247, 246, 242, 0.12); color: var(--cream); }
.quick-empty {
  font-size: 12px;
  color: rgba(247, 246, 242, 0.35);
  padding: 10px 10px;
  border: 1px dashed rgba(247, 246, 242, 0.15);
  border-radius: var(--radius-sm);
  text-align: center;
}

/* ============================================================
   Settings — module toggles
   ============================================================ */
.module-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
}
.module-row:first-child { border-top: none; padding-top: 0; }
.module-row-label { font-size: 14px; font-weight: 700; color: var(--forest); margin-bottom: 4px; }
.module-row-desc { font-size: 12px; color: var(--forest-soft); max-width: 440px; line-height: 1.5; }

.toggle {
  position: relative;
  width: 42px;
  height: 24px;
  flex-shrink: 0;
  border: none;
  border-radius: 20px;
  background: var(--mist);
  padding: 0;
  transition: background 0.15s ease;
}
.toggle .toggle-knob {
  position: absolute;
  top: 3px; left: 3px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 1px 2px rgba(22, 51, 47, 0.2);
  transition: transform 0.15s ease;
}
.toggle.on { background: var(--terracotta); }
.toggle.on .toggle-knob { transform: translateX(18px); }

/* ============================================================
   Sign-in extras: password toggle, forgot password, welcome back
   ============================================================ */
.auth-error.is-info { color: var(--forest-soft); }

/* Label row with a link on the right (e.g. "Forgot password?") */
.field-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.field-link {
  font-size: 12px;
  font-weight: 600;
  color: var(--forest);
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-underline-offset: 3px;
}
.field-link:hover { text-decoration-color: var(--terracotta); }

/* Password input with show/hide button inside it */
.input-with-action { position: relative; }
.input-with-action input { padding-right: 44px; }
.input-action {
  position: absolute;
  top: 0; right: 0;
  width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center;
  border: none;
  background: transparent;
  color: var(--forest-soft);
  opacity: 0.7;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.input-action:hover { opacity: 1; }
.input-action:focus-visible { outline: 2px solid var(--terracotta); outline-offset: -2px; opacity: 1; }

/* "or" divider + single sign-on button */
.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0 14px;
  font-size: 12px;
  color: var(--forest-soft);
  opacity: 0.8;
}
.auth-divider::before, .auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line);
}
.btn-sso { gap: 10px; margin-top: 0; background: var(--white); }
.btn-sso:hover { opacity: 1; border-color: var(--forest-soft); }

/* Headings and copy used on the secondary auth screens */
.auth-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--forest);
  margin: 0 0 6px;
  text-align: left;
}
.auth-sub {
  font-size: 13px;
  line-height: 1.55;
  color: var(--forest-soft);
  margin: 0 0 20px;
  text-align: left;
}
.auth-back {
  display: inline-block;
  margin-top: 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--forest-soft);
}
.auth-back:hover { color: var(--forest); }
.auth-icon {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--terracotta-soft);
  color: var(--terracotta);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  margin-bottom: 16px;
}
a.btn { text-decoration: none; }
.auth-legal {
  font-size: 11px;
  line-height: 1.6;
  color: var(--forest-soft);
  opacity: 0.8;
  margin: 28px 0 0;
}
.auth-legal a { text-decoration: underline; text-underline-offset: 2px; }

/* Welcome-back (session expired) screen */
.auth-user {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  text-align: left;
}
.avatar-lg {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--terracotta);
  color: var(--forest);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px; flex-shrink: 0;
}
.auth-user .auth-title { margin: 0; }
.auth-user-email { margin: 2px 0 0; font-size: 13px; color: var(--forest-soft); }
.auth-switch {
  font-size: 13px;
  color: var(--forest-soft);
  margin: 20px 0 0;
}

/* Sidebar: Sign out + Lock side by side */
.sidebar-actions { display: flex; gap: 4px; }
.auth-legal a { white-space: nowrap; }

/* Divider between Quick access and the rest of the nav, matching the
   lines between the other sidebar sections. */
.quick-access-block {
  border-bottom: 1px solid rgba(247, 246, 242, 0.08);
  padding-bottom: 8px;
  margin-bottom: 12px;
}
/* Quick access can't be collapsed, so it shouldn't show the arrow. */
.quick-access-block .nav-section-label::after { display: none; }

/* Applicants: add-applicant form checkboxes, confirmation banner, table scroll */
.check-row { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.check-row label { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--forest); cursor: pointer; }
.check-row input { accent-color: var(--forest); width: 16px; height: 16px; }
.notice-ok {
  background: rgba(22, 51, 47, 0.08);
  color: var(--forest);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 16px;
}
.table-scroll { overflow-x: auto; }
@media (max-width: 760px) {
  .form-row { flex-direction: column; gap: 0; }
}

/* List toolbar: export + add buttons grouped on the right */
.toolbar-actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; }
.btn-export { display: inline-flex; align-items: center; gap: 6px; background: var(--white); }
.btn-export:hover { border-color: var(--forest-soft); }
.btn-export:disabled { opacity: 0.6; cursor: default; }
.export-status { font-size: 12px; color: var(--forest-soft); margin: -8px 0 12px; min-height: 0; }
.export-status:empty { display: none; }

/* ============================================================
   Property page (header, contacts, overview)
   ============================================================ */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pill-danger { background: rgba(192, 83, 62, 0.14); color: var(--danger); }

.pd-head { display: flex; gap: 22px; align-items: stretch; margin-bottom: 16px; }
.pd-photo {
  position: relative; flex: 0 0 220px; min-height: 170px;
  border-radius: var(--radius-md); overflow: hidden;
  background: linear-gradient(145deg, var(--forest) 0%, var(--forest-soft) 100%);
}
.pd-photo img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
.pd-photo-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(247, 246, 242, 0.45); }
.pd-photo-btn {
  position: absolute; left: 10px; bottom: 10px;
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(15, 33, 30, 0.72); color: var(--cream);
  font-size: 12px; font-weight: 600; padding: 6px 10px; border-radius: 999px; cursor: pointer;
}
.pd-photo-btn:hover { background: rgba(15, 33, 30, 0.9); }
.pd-photo-btn:focus-within { outline: 2px solid var(--terracotta); outline-offset: 2px; }

.pd-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.pd-title-row { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.pd-address { font-size: 26px; font-weight: 800; color: var(--forest); margin: 0; line-height: 1.15; text-wrap: balance; }
.pd-area { font-size: 14px; color: var(--forest-soft); margin-top: 4px; }
.pd-rent-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pd-rent { font-size: 20px; font-weight: 800; color: var(--forest); font-variant-numeric: tabular-nums; }
.pd-mgmt select {
  appearance: none; -webkit-appearance: none;
  font: 700 12px var(--font); color: var(--forest);
  background: rgba(22, 51, 47, 0.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2316332F' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 9px center;
  border: none; border-radius: 999px; padding: 4px 26px 4px 11px; cursor: pointer;
}
.pd-mgmt select:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.pd-facts { display: flex; flex-wrap: wrap; gap: 6px; }
.pd-fact { font-size: 12px; font-weight: 600; color: var(--forest-soft); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 4px 9px; }
.pd-assigned { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--forest-soft); margin-top: auto; }
.pd-assigned strong { color: var(--forest); }

.pd-avatar {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--terracotta-soft); color: #A85D3E; font-weight: 700; font-size: 12px;
}
.pd-avatar.is-company { border-radius: var(--radius-sm); background: rgba(22, 51, 47, 0.08); color: var(--forest); }
.pd-avatar-sm { width: 24px; height: 24px; font-size: 10px; }

.pd-contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.pd-contacts .panel + .panel { margin-top: 0; }
.pd-contact-panel { display: flex; flex-direction: column; gap: 14px; }
.pd-panel-label { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest-soft); margin: 0; }
.pd-contact { display: flex; gap: 12px; align-items: flex-start; }
.pd-contact-body { min-width: 0; }
.pd-contact-name { font-size: 14px; font-weight: 700; color: var(--forest); margin-bottom: 3px; }
.pd-contact-line { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--forest-soft); min-width: 0; }
.pd-contact-line span { overflow-wrap: anywhere; }
.pd-tag { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 0.03em; color: var(--forest-soft); background: var(--mist); border-radius: 4px; padding: 1px 6px; vertical-align: 1px; }
.pd-copy {
  border: none; background: transparent; color: var(--forest-soft); opacity: 0.55;
  padding: 3px; border-radius: 4px; display: inline-flex; flex-shrink: 0;
}
.pd-copy:hover, .pd-copy:focus-visible { opacity: 1; background: var(--mist); }
.pd-copy.copied { opacity: 1; color: var(--forest); background: rgba(22, 51, 47, 0.1); }
.pd-empty { font-size: 13px; color: var(--forest-soft); margin: 0; }
.pd-muted { color: var(--forest-soft); opacity: 0.7; }
.pd-hint { font-size: 12px; color: var(--forest-soft); }

.pd-overview { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.pd-col-main, .pd-col-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.pd-col-main .panel + .panel, .pd-col-side .panel + .panel { margin-top: 0; }

.seg { display: inline-flex; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 3px; margin-bottom: 14px; }
.seg-btn { border: none; background: transparent; font-size: 13px; font-weight: 600; color: var(--forest-soft); padding: 6px 16px; border-radius: 4px; }
.seg-btn.active { background: var(--white); color: var(--forest); box-shadow: 0 1px 2px rgba(22, 51, 47, 0.12); }
.seg-btn:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.pd-composer-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pd-cmp-status { margin: 8px 0 0; }
.pd-cmp-status:empty { display: none; }

.pd-log-controls { display: flex; flex-direction: column; gap: 10px; margin: 4px 0 8px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { border: 1px solid var(--line); background: var(--white); color: var(--forest-soft); font-size: 12px; font-weight: 600; padding: 5px 11px; border-radius: 999px; }
.chip:hover { border-color: var(--forest-soft); }
.chip.active { background: var(--forest); border-color: var(--forest); color: var(--cream); }
.chip:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.pd-log-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pd-log-filters select { height: 38px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); font: 13px var(--font); color: var(--ink); padding: 0 10px; }
.pd-log-filters .search-input { flex: 1; min-width: 160px; width: auto; }
.pd-check { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--forest-soft); cursor: pointer; }
.pd-check input { accent-color: var(--forest); }

.pd-log-item { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.pd-log-icon {
  width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 13px;
  background: var(--mist); color: var(--forest);
}
.pd-log-icon.type-maintenance { background: var(--terracotta-soft); }
.pd-log-icon.type-email, .pd-log-icon.type-sms { background: rgba(22, 51, 47, 0.08); }
.pd-log-body { flex: 1; min-width: 0; }
.pd-log-top { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.pd-log-subject { font-size: 13px; font-weight: 700; color: var(--forest); }
.pd-log-when { font-size: 11px; color: var(--forest-soft); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pd-log-who { font-size: 12px; color: var(--forest-soft); margin-top: 2px; }
.pd-log-text { font-size: 13px; line-height: 1.5; color: var(--ink); margin-top: 6px; background: var(--cream); border-radius: var(--radius-sm); padding: 8px 10px; }

.pd-side-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; }
.pd-side-head .panel-title { margin: 0; }
.pd-big { font-size: 15px; font-weight: 700; color: var(--forest); margin: 0 0 10px; }
.pd-kv { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; padding: 7px 0; border-top: 1px solid var(--line); }
.pd-kv span:first-child { color: var(--forest-soft); flex-shrink: 0; }
.pd-kv span:last-child { color: var(--forest); font-weight: 600; text-align: right; }
.pd-cert { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.pd-cert-name { font-size: 13px; font-weight: 700; color: var(--forest); }
.pd-link { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--forest); }
.pd-link:hover { color: var(--terracotta); }

@media (max-width: 1100px) {
  .pd-overview { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .pd-head { flex-direction: column; }
  .pd-photo { flex-basis: auto; min-height: 180px; }
  .pd-contacts { grid-template-columns: 1fr; }
  .pd-address { font-size: 22px; }
  .tab-bar { overflow-x: auto; }
}

/* Property page: header people links + tab layouts */
.pd-people { display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 13px; }
.pd-people-label { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest-soft); margin-right: 6px; }
.pd-people-link {
  border: none; background: none; padding: 0; font: 700 13px var(--font); color: var(--forest); cursor: pointer;
  text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px;
}
.pd-people-link:hover { text-decoration-color: var(--terracotta); }
.pd-people-link:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 2px; border-radius: 2px; }

.pd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.pd-grid .panel + .panel { margin-top: 0; }
.pd-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--line); }
.pd-row-title { font-size: 13px; font-weight: 700; color: var(--forest); }
.pd-row-link { color: inherit; }
.pd-row-link:hover .pd-row-title { color: var(--terracotta); }
.pd-doc { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pd-doc .pd-row-title { overflow-wrap: anywhere; }
.pd-doc-icon { width: 30px; height: 30px; border-radius: var(--radius-sm); background: var(--mist); color: var(--forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pd-upload { cursor: pointer; }
.pd-upload:focus-within { outline: 2px solid var(--terracotta); outline-offset: 2px; }
.pd-kv span:last-child .pill { vertical-align: 1px; }

/* Property page: photo/map switch, onboarding badge, Tasks tab */
.pd-media-toggle {
  position: absolute; top: 10px; right: 10px; display: inline-flex;
  background: rgba(15, 33, 30, 0.72); border-radius: 999px; padding: 3px;
}
.pd-media-toggle button {
  border: none; background: transparent; color: rgba(247, 246, 242, 0.8);
  font: 600 11px var(--font); padding: 4px 10px; border-radius: 999px;
}
.pd-media-toggle button.active { background: var(--cream); color: var(--forest); }
.pd-media-toggle button:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.pd-photo.is-map { background: #E9E6DC; }
.pd-map-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pd-map-foot {
  position: absolute; left: 0; right: 0; bottom: 0;
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
  padding: 7px 10px; font-size: 11px; color: var(--forest-soft);
  background: rgba(247, 246, 242, 0.92);
}
.pd-map-foot a { font-weight: 700; color: var(--forest); white-space: nowrap; }
.pd-map-foot a:hover { color: var(--terracotta); }

.pd-pill-btn { border: none; cursor: pointer; font-family: var(--font); }
.pd-pill-btn:hover { filter: brightness(0.96); }
.pd-pill-btn:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 2px; }

.tab-count {
  display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px;
  font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
  color: var(--cream); background: var(--terracotta); border-radius: 999px; vertical-align: 1px;
}
.tab-count:empty { display: none; }

.pd-task-add { display: flex; flex-direction: column; gap: 8px; margin-bottom: 6px; }
.pd-task-add input[type="text"], .pd-task-add input[type="date"], .pd-task-add select, .pd-task-add-row select {
  height: 38px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white);
  font: 13px var(--font); color: var(--ink); padding: 0 10px; min-width: 0;
}
.pd-task-add input[type="text"] { width: 100%; }
.pd-task-add input:focus, .pd-task-add select:focus, .pd-task-add-row select:focus { outline: none; border-color: var(--terracotta); box-shadow: 0 0 0 3px var(--terracotta-soft); }
.pd-task-add-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pd-task-add-row select { flex: 1; min-width: 130px; }
.pd-task-add .auth-error:empty { display: none; }
.pd-task { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--line); }
.pd-task-check input, .pd-check-item input { width: 16px; height: 16px; accent-color: var(--forest); cursor: pointer; }
.pd-task-body { flex: 1; min-width: 0; }
.pd-task.is-done .pd-row-title { text-decoration: line-through; color: var(--forest-soft); font-weight: 600; }
.pd-tag-follow { background: var(--terracotta-soft); color: #A85D3E; }
.pd-done { margin-top: 8px; }
.pd-done summary { cursor: pointer; font-size: 12px; font-weight: 700; color: var(--forest-soft); padding: 8px 0; }

.pd-progress { height: 6px; border-radius: 999px; background: var(--mist); overflow: hidden; margin-bottom: 8px; }
.pd-progress div { height: 100%; background: var(--forest); border-radius: 999px; }
.pd-check-item { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; color: var(--forest); padding: 6px 0; cursor: pointer; }
.pd-check-item input { margin-top: 1px; flex-shrink: 0; }
.pd-check-item.is-done span { color: var(--forest-soft); text-decoration: line-through; }
.pd-checklist + .pd-checklist { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.pd-checklist-meta { display: inline-flex; align-items: center; gap: 6px; }
.pd-remove { border: none; background: none; color: var(--forest-soft); font-size: 16px; line-height: 1; padding: 2px 6px; border-radius: 4px; cursor: pointer; }
.pd-remove:hover { background: var(--mist); color: var(--danger); }
.tab { white-space: nowrap; }

/* "Looked after by" name doubles as a dropdown to reassign the property */
.pd-negotiator select {
  appearance: none; -webkit-appearance: none;
  font: 700 13px var(--font); color: var(--forest);
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2316332F' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 4px center;
  border: none; border-bottom: 1px dashed var(--line); border-radius: 0;
  padding: 1px 18px 1px 0; cursor: pointer;
}
.pd-negotiator select:hover { border-bottom-color: var(--terracotta); }
.pd-negotiator select:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 2px; }
.pd-assigned { flex-wrap: wrap; gap: 6px; }

/* Properties list: search + "Looked after by" filter, staff column */
.toolbar-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.filter-select { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; color: var(--forest-soft); }
.filter-select select { height: 38px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); font: 13px var(--font); color: var(--ink); padding: 0 10px; }
.filter-select select:focus { outline: none; border-color: var(--terracotta); box-shadow: 0 0 0 3px var(--terracotta-soft); }
.staff-cell { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.staff-name { font-size: 13px; }
@media (max-width: 1100px) { .staff-name { display: none; } }
@media (max-width: 760px) { .list-toolbar { flex-wrap: wrap; } }
.filter-select span { white-space: nowrap; }
@media (max-width: 760px) {
  .list-toolbar { flex-direction: column; align-items: stretch; }
  .toolbar-filters, .toolbar-actions { width: 100%; }
  .toolbar-filters .search-input { flex: 1 1 100%; width: 100%; }
  .filter-select { flex: 1; }
  .filter-select select { flex: 1; }
  .toolbar-actions > * { flex: 1; justify-content: center; }
  .table-scroll .prop-table { min-width: 680px; }
}
@media (max-width: 760px) { .list-toolbar > .search-input { width: 100%; } }

/* Property header actions: + Add menu and ⋯ admin menu */
.pd-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.pd-actions .key-chip { align-self: center; }
.pd-dd { position: relative; }
.pd-dd-btn { margin-top: 0; }
.pd-more-btn { font-size: 18px; line-height: 1; padding: 0 12px; background: var(--white); letter-spacing: 1px; }
.pd-more-btn:hover { border-color: var(--forest-soft); }
.pd-menu {
  display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 40;
  min-width: 230px; padding: 6px; background: var(--white);
  border: 1px solid var(--line); border-radius: var(--radius-md);
  box-shadow: 0 10px 30px rgba(22, 51, 47, 0.14);
}
.pd-dd.open .pd-menu { display: block; }
.pd-menu-label { font-size: 10px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--forest-soft); padding: 8px 10px 4px; }
.pd-menu-item {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%;
  border: none; background: none; text-align: left; font: 500 13px var(--font); color: var(--forest);
  padding: 8px 10px; border-radius: var(--radius-sm); cursor: pointer;
}
.pd-menu-item:hover:not([disabled]), .pd-menu-item:focus-visible { background: var(--cream); outline: none; }
.pd-menu-item[disabled] { color: var(--forest-soft); opacity: 0.6; cursor: default; }
.pd-soon { font-size: 10px; font-weight: 700; background: var(--mist); color: var(--forest-soft); border-radius: 4px; padding: 1px 6px; }
.pd-menu-divider { height: 1px; background: var(--line); margin: 6px 4px; }
.pd-menu-danger { color: var(--danger); font-weight: 600; }
.pd-menu-danger:hover { background: rgba(192, 83, 62, 0.08) !important; }

.pd-archived {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
  background: var(--mist); border-radius: var(--radius-md); padding: 10px 14px; margin-bottom: 16px;
  font-size: 13px; color: var(--forest);
}

/* Pop-up form (modal) */
.modal-backdrop {
  position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center;
  padding: 16px; background: rgba(15, 33, 30, 0.45);
}
.modal {
  width: 100%; max-width: 520px; max-height: calc(100% - 32px); overflow-y: auto;
  background: var(--white); border-radius: var(--radius-lg); padding: 22px 22px 18px;
  box-shadow: 0 24px 60px rgba(15, 33, 30, 0.3);
}
.modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.modal-head h2 { margin: 0; font-size: 18px; font-weight: 800; color: var(--forest); text-wrap: balance; }
.modal-close { border: none; background: none; font-size: 22px; line-height: 1; color: var(--forest-soft); cursor: pointer; padding: 0 4px; border-radius: 4px; }
.modal-close:hover { background: var(--mist); }
.modal-intro { font-size: 13px; line-height: 1.5; color: var(--forest-soft); margin: 6px 0 0; }
.modal-body { margin-top: 18px; }
.modal-body .pd-check { margin-top: 2px; }
.modal-error { margin: 8px 0 0; min-height: 0; }
.modal-error:empty { display: none; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.btn-danger { background: var(--danger); }

/* Confirmation message */
.toast {
  position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 120;
  transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
  max-width: calc(100% - 32px); background: var(--forest); color: var(--cream);
  font-size: 13px; font-weight: 600; padding: 10px 16px; border-radius: var(--radius-md);
  box-shadow: 0 10px 30px rgba(15, 33, 30, 0.25); transition: opacity 0.2s ease, transform 0.2s ease;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }

@media (max-width: 760px) {
  .pd-title-row { flex-wrap: wrap; }
  .pd-actions { width: 100%; }
  .pd-menu { left: 0; right: auto; }
  .pd-menu-right { left: auto; right: 0; }
  .modal .form-row { flex-direction: column; gap: 0; }
}

/* Property Money tab */
.money-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.money-grid .panel + .panel { margin-top: 0; }
.money-grid > .panel:last-child { grid-column: 1 / -1; }
.money-val { font-variant-numeric: tabular-nums; font-size: 22px; }
.money-val.is-arrears, td.is-arrears { color: var(--danger); }
.flag-ok { color: var(--forest-soft) !important; }
.money-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.money-inline { font-size: 13px; font-weight: 700; color: var(--forest); font-variant-numeric: tabular-nums; margin-left: auto; }
.ledger { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ledger th { text-align: left; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest-soft); padding: 8px 8px 8px 0; border-bottom: 1px solid var(--line); white-space: nowrap; }
.ledger td { padding: 8px 8px 8px 0; border-bottom: 1px solid var(--line); color: var(--forest); vertical-align: top; }
.ledger tr:last-child td { border-bottom: none; }
.ledger .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ledger td.is-out { color: var(--forest-soft); }
.ledger-wrap { max-height: 420px; overflow-y: auto; }

/* Property Marketing tab */
.mk-note { font-size: 13px; color: var(--forest); background: var(--cream); border-radius: var(--radius-sm); padding: 9px 12px; margin: 0 0 14px; }
.chip-check { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.chip-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip-check.active::before { content: '\2713'; font-size: 11px; }
.chip-check:focus-within { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.mk-public { margin: 4px 0 0; }
.mk-textarea { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 12px; font: 13px/1.5 var(--font); color: var(--ink); resize: vertical; }
.mk-textarea:focus { outline: none; border-color: var(--terracotta); box-shadow: 0 0 0 3px var(--terracotta-soft); }
.mk-faq { padding: 10px 0; border-top: 1px solid var(--line); }
.mk-section-title { font-size: 16px; font-weight: 800; color: var(--forest); margin: 28px 0 14px; }
.mk-preview { font-size: 13px; color: var(--ink); }
.mk-preview-photo { height: 180px; border-radius: var(--radius-md); overflow: hidden; background: linear-gradient(145deg, var(--forest), var(--forest-soft)); display: flex; align-items: center; justify-content: center; color: rgba(247, 246, 242, 0.7); font-size: 12px; margin-bottom: 14px; }
.mk-preview-photo img { width: 100%; height: 100%; object-fit: cover; }
.mk-preview-rent { font-size: 20px; font-weight: 800; color: var(--forest); margin: 0; }
.mk-preview h3 { font-size: 16px; color: var(--forest); margin: 4px 0; text-wrap: balance; }
.mk-preview ul { margin: 10px 0; padding-left: 18px; color: var(--forest); }
.mk-preview-desc { line-height: 1.6; }

@media (max-width: 1100px) {
  .money-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Onboarding (page + property Tasks tab)
   ============================================================ */
.ob-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ob-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 12px; }
.ob-legend-chip { pointer-events: none; }
.ob-list { padding: 0; }
.ob-row { padding: 18px 22px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.ob-row:first-child { border-top: none; }
.ob-row.is-new { background: rgba(215, 131, 98, 0.07); box-shadow: inset 3px 0 0 var(--terracotta); }
.ob-row.is-muted { opacity: 0.72; }
.ob-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.ob-where { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.ob-where .pd-hint { flex-basis: 100%; }
.ob-address {
  border: none; background: none; padding: 0; cursor: pointer;
  font: 800 15px var(--font); color: var(--forest); text-align: left;
  text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px;
}
.ob-address:hover { text-decoration-color: var(--terracotta); }
.ob-address:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 2px; border-radius: 2px; }
.ob-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ob-meta strong { color: var(--forest); }
.ob-progress-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ob-bar { width: 180px; max-width: 100%; height: 8px; border-radius: 999px; background: var(--mist); overflow: hidden; }
.ob-bar div { height: 100%; background: var(--forest); border-radius: 999px; }
.ob-count { font-size: 12px; font-weight: 700; color: var(--forest); font-variant-numeric: tabular-nums; }
.ob-next { font-size: 12px; color: var(--forest-soft); }
.ob-next strong { color: var(--forest); }
.ob-groups { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); gap: 10px 22px; justify-content: start; }
.ob-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ob-group-stacked { margin-top: 10px; }
.ob-group-label { font-size: 10px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--forest-soft); }
.ob-steps { display: flex; flex-wrap: wrap; gap: 6px; }
.ob-step {
  display: inline-flex; align-items: center; gap: 6px;
  font: 600 12px var(--font); padding: 5px 10px 5px 6px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--line); background: var(--white); color: var(--forest-soft);
}
.ob-step:hover { border-color: var(--forest-soft); }
.ob-step:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.ob-step-icon {
  width: 16px; height: 16px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; font-size: 10px; line-height: 1;
  border: 1.5px dashed rgba(22, 51, 47, 0.3);
}
.ob-step.is-pending { background: var(--terracotta-soft); border-color: transparent; color: #8F4E33; }
.ob-step.is-pending .ob-step-icon { border: none; background: var(--terracotta); color: var(--white); }
.ob-step.is-done { background: rgba(22, 51, 47, 0.07); border-color: transparent; color: var(--forest); }
.ob-step.is-done .ob-step-icon { border: none; background: var(--forest); color: var(--cream); }
.ob-step.is-auto { cursor: help; }
.ob-step.is-auto::after { content: 'auto'; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.55; }
@media (max-width: 1100px) {
  .ob-groups { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ob-stats { grid-template-columns: 1fr 1fr 1fr; }
  .ob-row { padding: 16px; }
  .ob-bar { width: 120px; }
}

/* ============================================================
   Offers (list + single offer)
   ============================================================ */
.of-status-chips { margin-bottom: 16px; }
.of-group { padding: 0; overflow: hidden; }
.of-group + .of-group { margin-top: 14px; }
.of-group-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; background: var(--cream); border-bottom: 1px solid var(--line); }
.of-compete { color: #A85D3E; }
.of-row {
  display: grid; grid-template-columns: minmax(200px, 2.2fr) minmax(130px, 1.2fr) minmax(120px, 1fr) minmax(170px, 1.5fr) 40px;
  gap: 12px; align-items: center; padding: 12px 18px; border-top: 1px solid var(--line); color: inherit;
}
.of-group-head + .of-row { border-top: none; }
.of-row:first-child { border-top: none; }
.of-row:hover { background: rgba(247, 246, 242, 0.7); }
.of-row:hover .pd-row-title { color: var(--terracotta); }
.of-row:focus-visible { outline: 2px solid var(--terracotta); outline-offset: -2px; }
.of-cell { min-width: 0; font-size: 13px; color: var(--forest); }
.of-applicant { display: flex; align-items: center; gap: 10px; }
.of-money .pd-row-title { font-variant-numeric: tabular-nums; }
.of-status { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.of-who { justify-self: end; }
.of-diff { font-size: 11px; font-weight: 700; }
.of-diff.is-under { color: #A85D3E; }
.of-diff.is-over, .of-diff.is-even { color: var(--forest-soft); }
.of-wait { font-size: 11px; font-weight: 700; color: var(--forest-soft); background: var(--mist); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.of-wait.is-late { color: var(--danger); background: rgba(192, 83, 62, 0.12); }

.of-title-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.of-next { display: flex; flex-direction: column; gap: 16px; margin-bottom: 16px; }
.of-stepper { display: flex; list-style: none; margin: 0; padding: 0; gap: 0; overflow-x: auto; }
.of-stepper li { flex: 1; min-width: 96px; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--forest-soft); position: relative; text-align: center; }
.of-stepper li::before { content: ''; position: absolute; top: 13px; left: -50%; width: 100%; height: 2px; background: var(--mist); z-index: 0; }
.of-stepper li:first-child::before { display: none; }
.of-stepper li.is-done::before, .of-stepper li.is-current::before { background: var(--forest); }
.of-dot { position: relative; z-index: 1; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--white); border: 2px solid var(--mist); font-size: 12px; font-weight: 700; }
.of-stepper li.is-done .of-dot { background: var(--forest); border-color: var(--forest); color: var(--cream); }
.of-stepper li.is-current .of-dot { border-color: var(--terracotta); color: var(--terracotta); box-shadow: 0 0 0 4px var(--terracotta-soft); }
.of-stepper li.is-current { color: var(--forest); }
.of-closed-note { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--forest-soft); }
.of-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.of-cards { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 16px; margin-bottom: 16px; align-items: stretch; }
.of-cards .panel + .panel { margin-top: 0; }
.of-prop { display: flex; gap: 12px; align-items: flex-start; }
.of-thumb { width: 64px; height: 64px; border-radius: var(--radius-sm); flex-shrink: 0; overflow: hidden; background: linear-gradient(145deg, var(--forest), var(--forest-soft)); }
.of-thumb img { width: 100%; height: 100%; object-fit: cover; }
.of-prop-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.of-warn { color: var(--danger) !important; }
.of-check { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.of-check-icon { width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; }
.of-check.is-ok .of-check-icon { background: var(--forest); color: var(--cream); }
.of-check.is-bad .of-check-icon { background: var(--terracotta); color: var(--white); }
.of-check-body { flex: 1; min-width: 0; }

@media (max-width: 1100px) {
  .of-cards { grid-template-columns: 1fr; }
  .of-row { grid-template-columns: minmax(180px, 2fr) minmax(120px, 1fr) minmax(150px, 1.4fr) 36px; }
  .of-terms { display: none; }
}
@media (max-width: 760px) {
  .of-row { grid-template-columns: 1fr auto; row-gap: 6px; }
  .of-money { text-align: right; }
  .of-status { grid-column: 1 / -1; }
  .of-who { display: none; }
  .of-stepper li { min-width: 72px; font-size: 11px; }
}
.seg-btn, .btn-export span { white-space: nowrap; }

/* ============================================================
   Applications (list + single application)
   ============================================================ */
.ob-step.is-attention { background: rgba(192, 83, 62, 0.12); border-color: transparent; color: var(--danger); }
.ob-step.is-attention .ob-step-icon { border: none; background: var(--danger); color: var(--white); font-weight: 800; }
a.ob-step { text-decoration: none; }
.ap-groups { grid-template-columns: repeat(4, minmax(0, auto)); }
.ap-when { font-size: 12px; font-weight: 700; color: var(--forest); }
.ap-when.is-risk, .ap-risk-text { color: var(--danger); }
a.ob-address { display: inline-block; }

.ap-header { display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 20px; }
.ap-thumb { width: 84px; height: 84px; }
.ap-header-main { flex: 1; min-width: 240px; }
.ap-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.ap-header-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }

.ap-steps { padding-bottom: 18px; }
.ap-group-label { margin: 16px 0 8px; }
.ap-group-label:first-of-type { margin-top: 4px; }
.ap-step { border: 1px solid var(--line); border-radius: var(--radius-md); margin-bottom: 8px; background: var(--white); }
.ap-step.is-open { border-color: rgba(22, 51, 47, 0.28); }
.ap-step-head {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px;
  border: none; background: none; cursor: pointer; text-align: left; font-family: var(--font);
}
.ap-step-head:focus-visible { outline: 2px solid var(--terracotta); outline-offset: -2px; border-radius: var(--radius-md); }
.ap-step-title { flex: 1; font-size: 14px; font-weight: 700; color: var(--forest); }
.ap-state-icon.is-done { border: none; background: var(--forest); color: var(--cream); }
.ap-state-icon.is-pending { border: none; background: var(--terracotta); color: var(--white); }
.ap-state-icon.is-attention { border: none; background: var(--danger); color: var(--white); font-weight: 800; }
.ap-chev { width: 8px; height: 8px; border-right: 1.5px solid var(--forest-soft); border-bottom: 1.5px solid var(--forest-soft); transform: rotate(45deg); margin: -4px 4px 0 6px; transition: transform 0.15s ease; }
.ap-step.is-open .ap-chev { transform: rotate(-135deg); margin-top: 4px; }
.ap-step-body { padding: 0 14px 14px 44px; font-size: 13px; color: var(--ink); }
.ap-step-body > p { margin: 0 0 10px; line-height: 1.5; }
.ap-step-body .of-actions { margin-top: 10px; }
.ap-subs { display: flex; flex-direction: column; }
.ap-total span { font-weight: 800 !important; color: var(--forest) !important; }
.ap-complete { margin-top: 14px; }

.ap-progress { display: flex; align-items: center; gap: 16px; }
.ap-ring { width: 84px; height: 84px; flex-shrink: 0; }
.ap-banner { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; border-color: rgba(215, 131, 98, 0.45); background: rgba(215, 131, 98, 0.06); }

@media (max-width: 1100px) {
  .ap-groups { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .ap-groups { grid-template-columns: 1fr; }
  .ap-header-side { align-items: flex-start; width: 100%; }
  .ap-step-body { padding-left: 14px; }
}
@media (prefers-reduced-motion: reduce) { .ap-chev { transition: none; } }

/* Application page: countdown header, timeline, board, side panel */
.ap-hero {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; align-items: center;
  background: var(--forest); color: var(--cream); border-radius: var(--radius-lg); padding: 22px 26px; margin-bottom: 16px;
}
.ap-hero .eyebrow { color: rgba(247, 246, 242, 0.7); }
.ap-hero .pd-hint { color: rgba(247, 246, 242, 0.72); }
.ap-hero .pd-hint strong { color: var(--cream); }
.ap-hero .ob-address { color: var(--cream); text-decoration-color: rgba(247, 246, 242, 0.35); }
.ap-hero .ob-address:hover { text-decoration-color: var(--terracotta); }
.ap-hero .filter-select span { color: rgba(247, 246, 242, 0.75); }
.ap-hero .filter-select select { background: rgba(247, 246, 242, 0.1); color: var(--cream); border-color: rgba(247, 246, 242, 0.25); }
.ap-hero .filter-select select option { color: var(--ink); }
.ap-hero .btn-secondary { background: transparent; color: var(--cream); border-color: rgba(247, 246, 242, 0.35); }
.ap-hero .btn-secondary:hover { border-color: var(--cream); }
.ap-hero.is-risk { box-shadow: inset 4px 0 0 var(--terracotta); }
.ap-hero .ap-risk-text { color: #F2B39A; }
.ap-count {
  display: flex; flex-direction: column; justify-content: center; min-width: 150px; padding-right: 24px;
  border-right: 1px solid rgba(247, 246, 242, 0.18);
}
.ap-count-num { font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ap-count-sub { font-size: 12px; color: rgba(247, 246, 242, 0.72); margin-top: 6px; }
.ap-hero-main { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ap-hero-name { font-size: 24px; font-weight: 800; margin: 0; line-height: 1.15; text-wrap: balance; }
.ap-hero-prop { display: inline-flex; align-items: center; gap: 8px; }
.ap-mini-thumb { width: 24px; height: 24px; border-radius: 5px; }
.ap-segments { display: flex; gap: 4px; max-width: 420px; margin-top: 4px; }
.ap-seg { flex: 1; height: 8px; border-radius: 3px; background: rgba(247, 246, 242, 0.18); }
.ap-seg.is-done { background: #9FC2B4; }
.ap-seg.is-pending { background: var(--terracotta); }
.ap-seg.is-attention { background: #F07A61; box-shadow: 0 0 0 2px rgba(240, 122, 97, 0.35); }
.ap-hero-side { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.ap-hero-buttons { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

.ap-timeline { margin-bottom: 16px; padding-bottom: 12px; }
.apt-track { position: relative; height: 128px; margin: 4px 0 0; }
.apt-line { position: absolute; left: 3%; right: 3%; top: 63px; height: 2px; background: var(--mist); }
.apt-progress { position: absolute; left: 3%; top: 63px; height: 2px; background: var(--forest); }
.apt-today { position: absolute; top: 40px; bottom: 40px; width: 0; border-left: 2px dashed var(--terracotta); }
.apt-today span { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--terracotta); white-space: nowrap; }
.apt-mark { position: absolute; top: 57px; width: 0; }
.apt-dot { position: absolute; left: -7px; top: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--white); border: 2px solid var(--forest-soft); }
.apt-mark.is-done .apt-dot { background: var(--forest); border-color: var(--forest); }
.apt-mark.is-deadline .apt-dot { border-radius: 3px; transform: rotate(45deg); border-color: var(--terracotta); }
.apt-mark.is-late .apt-dot { background: var(--danger); border-color: var(--danger); }
.apt-mark.is-movein .apt-dot { width: 20px; height: 20px; left: -10px; top: -3px; background: var(--terracotta); border-color: var(--terracotta); }
.apt-mark.is-movein.is-done .apt-dot { background: var(--forest); border-color: var(--forest); }
.apt-label { position: absolute; left: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 11px; color: var(--forest-soft); white-space: nowrap; }
.apt-label strong { font-size: 11px; color: var(--forest); }
.apt-mark.is-above .apt-label { bottom: 22px; }
.apt-mark.is-below .apt-label { top: 22px; }
.apt-mark.is-late .apt-label strong { color: var(--danger); }
.apt-mark:first-of-type .apt-label { transform: none; left: -8px; align-items: flex-start; text-align: left; }

.ap-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; align-items: start; }
.ap-col { background: rgba(22, 51, 47, 0.04); border-radius: var(--radius-md); padding: 10px; display: flex; flex-direction: column; gap: 8px; min-height: 120px; }
.ap-col-head { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; color: var(--forest); padding: 2px 4px 4px; }
.ap-col-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--forest-soft); }
.ap-col.is-attention .ap-col-dot { background: var(--danger); }
.ap-col.is-pending .ap-col-dot { background: var(--terracotta); }
.ap-col.is-todo .ap-col-dot { background: transparent; border: 1.5px dashed var(--forest-soft); }
.ap-col.is-done .ap-col-dot { background: var(--forest); }
.ap-col-count { margin-left: auto; font-size: 11px; color: var(--forest-soft); background: var(--white); border-radius: 999px; padding: 1px 8px; }
.ap-col.is-attention { background: rgba(192, 83, 62, 0.07); }
.ap-col-empty { font-size: 12px; color: var(--forest-soft); margin: 4px; opacity: 0.8; }
.ap-card {
  display: flex; flex-direction: column; gap: 3px; text-align: left; width: 100%;
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 12px;
  font-family: var(--font); cursor: pointer; transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.ap-card:hover { border-color: var(--forest-soft); }
.ap-card:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; }
.ap-card.is-selected { border-color: var(--forest); box-shadow: 0 0 0 2px rgba(22, 51, 47, 0.15); }
.ap-col.is-attention .ap-card { border-left: 3px solid var(--danger); }
.ap-col.is-done .ap-card { opacity: 0.78; }
.ap-card-group { font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest-soft); }
.ap-card-title { font-size: 13px; font-weight: 800; color: var(--forest); }
.ap-card-sum { font-size: 12px; color: var(--forest-soft); line-height: 1.4; }
.ap-col.is-attention .ap-card-sum { color: var(--danger); }

.ap-lower { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ap-lower .panel + .panel { margin-top: 0; }

.ap-drawer-backdrop { position: fixed; inset: 0; z-index: 60; background: rgba(15, 33, 30, 0.18); }
.ap-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 61; width: min(420px, 100%);
  background: var(--white); box-shadow: -12px 0 40px rgba(15, 33, 30, 0.2);
  padding: calc(22px + env(safe-area-inset-top, 0px)) 22px calc(22px + env(safe-area-inset-bottom, 0px));
  overflow-y: auto; display: flex; flex-direction: column; gap: 10px;
}
.ap-drawer-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.ap-drawer-head h2 { margin: 0; font-size: 20px; font-weight: 800; color: var(--forest); }
.ap-drawer .pill { align-self: flex-start; }
.ap-drawer-body { font-size: 13px; color: var(--ink); margin-top: 6px; }
.ap-drawer-body > p { margin: 0 0 10px; line-height: 1.55; }
.ap-drawer-body .of-actions { margin-top: 12px; }

@media (max-width: 1100px) {
  .ap-hero { grid-template-columns: auto minmax(0, 1fr); }
  .ap-hero-side { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: wrap; }
  .ap-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-lower { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ap-hero { grid-template-columns: 1fr; padding: 18px; }
  .ap-count { border-right: none; border-bottom: 1px solid rgba(247, 246, 242, 0.18); padding: 0 0 14px; }
  .ap-count-num { font-size: 34px; }
  .ap-hero-side { flex-direction: column; align-items: flex-start; }
  .ap-board { grid-template-columns: 1fr; }
  .ap-timeline .apt-track { overflow-x: auto; }
  .apt-track { min-width: 560px; }
  .ap-timeline { overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) { .ap-card { transition: none; } }
/* Timeline spacing: "Today" gets its own row; end labels pinned to the edges */
.apt-track { height: 150px; }
.apt-line, .apt-progress { top: 79px; }
.apt-mark { top: 73px; }
.apt-today { top: 18px; bottom: 44px; }
.apt-today span { top: -18px; }
.apt-mark:first-of-type .apt-label { transform: translateX(-50%); left: 0; align-items: center; text-align: center; }
.apt-mark.is-first .apt-label { transform: none; left: -8px; align-items: flex-start; text-align: left; }
.apt-mark.is-last .apt-label { transform: translateX(-100%); left: 8px; align-items: flex-end; text-align: right; }
@media (max-width: 760px) { .apt-track { min-width: 620px; } }

/* ---- Add a property: "Is anyone living there?" ---- */
.req { color: var(--terracotta); font-weight: 700; }
.occ-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.occ-choice { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 14px 44px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); cursor: pointer; }
.occ-choice input { position: absolute; left: 16px; top: 16px; accent-color: var(--forest); width: 16px; height: 16px; margin: 0; }
.occ-choice.is-on { border-color: var(--forest); box-shadow: 0 0 0 1px var(--forest); background: var(--cream); }
.occ-choice:focus-within { outline: 2px solid var(--terracotta); outline-offset: 2px; }
.occ-title { font-weight: 700; color: var(--forest); font-size: 14px; }
.occ-body { font-size: 12.5px; color: var(--forest-soft); line-height: 1.45; }
#wiz-deposit-warning .market-check, .wizard-summary-row + .market-check { margin-top: 12px; }
@media (max-width: 640px) { .occ-choices { grid-template-columns: 1fr; } }

/* Onboarding route switch and pill */
.ob-route { display: inline-flex; margin: 0 0 12px; }
.ob-route .seg-btn { padding: 5px 12px; font-size: 12px; }
.pill-route { background: #E4ECF4; color: #2C4A66; }

/* ---- Overview: Numbers ---- */
.nb-page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.nb-show { flex-shrink: 0; margin-top: 18px; }
.nb { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); }
.nb-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.nb-title { font-size: 20px; font-weight: 800; color: var(--forest); margin: 0; letter-spacing: -0.01em; }
.nb-title:focus { outline: none; }
.nb-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nb-seg { margin: 0; }
.nb-scope { margin: 0; }
.nb-hide { background: none; border: none; color: var(--forest-soft); font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; padding: 6px 4px; cursor: pointer; }
.nb-hide:hover { color: var(--forest); }

.nb-funnel { display: flex; align-items: stretch; background: var(--forest); border-radius: var(--radius-lg); padding: 14px 16px; margin-bottom: 18px; overflow-x: auto; }
.nb-funnel-step { flex: 1; min-width: 78px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; background: transparent; border: none; color: var(--cream); padding: 6px 10px; border-radius: var(--radius-sm); cursor: pointer; text-align: left; }
.nb-funnel-step:hover, .nb-funnel-step:focus-visible { background: rgba(247, 246, 242, 0.08); outline: none; }
.nb-funnel-num { font-size: 24px; font-weight: 800; line-height: 1.1; }
.nb-funnel-label { font-size: 12px; opacity: 0.75; white-space: nowrap; }
.nb-funnel-joint { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; padding: 0 4px; color: #9FC2B4; min-width: 40px; }
.nb-funnel-joint.is-break { min-width: 22px; border-left: 1px dashed rgba(247, 246, 242, 0.25); margin: 4px 8px; }
.nb-funnel-joint.is-break .nb-chev { display: none; }
.nb-rate { font-size: 12px; font-weight: 800; color: var(--terracotta); }
.nb-chev { font-size: 14px; opacity: 0.8; }

.nb-group { margin-bottom: 16px; }
.nb-group-label { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--forest-soft); margin: 0 0 8px; }
.nb-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 10px; }
.nb-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; background: var(--white); border: 1px solid var(--line); border-left: 3px solid var(--forest); border-radius: var(--radius-md); padding: 12px 14px; text-align: left; cursor: pointer; font-family: inherit; color: var(--forest); transition: border-color .15s, box-shadow .15s; }
.nb-tile:hover { box-shadow: 0 2px 8px rgba(22, 51, 47, 0.08); border-left-color: var(--terracotta); }
.nb-tile:focus-visible { outline: 2px solid var(--terracotta); outline-offset: 2px; }
.nb-tile-label { font-size: 12.5px; font-weight: 600; color: var(--forest-soft); }
.nb-tile-value { font-size: 28px; font-weight: 800; line-height: 1.05; }
.nb-delta { font-size: 11.5px; font-weight: 700; }
.nb-delta.is-good { color: #2F7A5C; }
.nb-delta.is-bad { color: var(--danger); }
.nb-delta.is-flat { color: var(--forest-soft); font-weight: 600; opacity: 0.8; }

.nb-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; }
.nb-lists.is-single { grid-template-columns: 1fr; }
.nb-lists .panel + .panel { margin-top: 0; }
.nb-list-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.nb-overdue { color: var(--danger); }
.nb-day { font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--terracotta); margin: 12px 0 4px; }
.nb-day:first-of-type { margin-top: 4px; }
.nb-row { display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px 6px; border: none; border-radius: var(--radius-sm); background: transparent; text-align: left; text-decoration: none; color: var(--forest); font-family: inherit; cursor: pointer; border-bottom: 1px solid var(--line); }
.nb-row:last-child { border-bottom: none; }
.nb-row:hover, .nb-row:focus-visible { background: var(--cream); outline: none; }
.nb-time { flex: 0 0 74px; font-size: 12px; font-weight: 700; color: var(--forest-soft); }
.nb-time.is-overdue { color: var(--danger); }
.nb-row-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nb-row-title { font-size: 13.5px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nb-row-sub { font-size: 12px; color: var(--forest-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nb-drill { max-height: 50vh; overflow-y: auto; margin: 0 -6px; }

/* Customise */
.modal.modal-wide { max-width: 860px; width: calc(100vw - 32px); }
.cz-label { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--forest-soft); margin: 0 0 8px; }
.cz-sets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 18px; }
.cz-set { display: flex; flex-direction: column; gap: 3px; text-align: left; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); font-family: inherit; color: var(--forest); cursor: pointer; }
.cz-set strong { font-size: 13px; }
.cz-set span { font-size: 11.5px; color: var(--forest-soft); line-height: 1.4; }
.cz-set.is-on { border-color: var(--forest); box-shadow: 0 0 0 1px var(--forest); background: var(--cream); }
.cz-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cz-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 3px 0; }
.cz-row .pd-check { font-size: 13px; margin: 0; }
.cz-move { display: inline-flex; gap: 2px; flex-shrink: 0; }
.cz-btn { width: 24px; height: 24px; border: 1px solid var(--line); border-radius: 4px; background: var(--white); color: var(--forest); font-size: 12px; cursor: pointer; padding: 0; }
.cz-btn:hover { background: var(--cream); }
.cz-panel { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 10px; font-size: 13px; }
.cz-panel .pd-hint { display: block; font-size: 11.5px; margin-top: 1px; }

@media (max-width: 900px) {
  .cz-cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .nb-page-head { flex-direction: column; gap: 0; }
  .nb-show { margin: 0 0 14px; }
  .nb-controls { width: 100%; }
  .nb-seg { width: 100%; }
  .nb-seg .seg-btn { flex: 1; padding: 6px 8px; }
  .nb-tiles { grid-template-columns: 1fr 1fr; }
  .nb-tile-value { font-size: 24px; }
  .nb-lists { grid-template-columns: 1fr; }
  .cz-sets, .cz-cols { grid-template-columns: 1fr; }
  .nb-time { flex-basis: 64px; }
}
.nb { min-width: 0; max-width: 100%; }
.nb-funnel { max-width: 100%; box-sizing: border-box; }
@media (max-width: 640px) {
  .nb-funnel { flex-wrap: wrap; row-gap: 10px; padding: 12px; overflow: visible; }
  .nb-funnel-step { flex: 0 0 auto; min-width: 0; padding: 4px 6px; }
  .nb-funnel-num { font-size: 20px; }
  .nb-funnel-joint { flex: 1; min-width: 0; }
  .nb-funnel-joint.is-break { flex: 0 0 100%; height: 0; min-width: 0; margin: 0; border: none; border-top: 1px dashed rgba(247, 246, 242, 0.2); padding: 0; }
}
.nb-lists { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.nb-lists.is-single { grid-template-columns: minmax(0, 1fr); }
.nb-list { min-width: 0; }
@media (max-width: 640px) { .nb-lists { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 641px) {
  .nb-funnel-step { flex: 0 0 auto; min-width: 88px; }
  .nb-funnel-joint { flex: 1; flex-direction: row; gap: 8px; }
  .nb-funnel-joint.is-break { flex: 0 0 auto; margin: 4px 18px; }
}
.cz-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cz-panels { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.cz-panels .cz-label { grid-column: 1 / -1; }
.cz-row .pd-check { align-items: flex-start; line-height: 1.3; }
.cz-row .pd-check input { margin-top: 2px; }
.cz-now { display: block; font-size: 10.5px; font-weight: 700; color: var(--terracotta); text-transform: uppercase; letter-spacing: 0.05em; }
@media (max-width: 900px) { .cz-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cz-panels { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .cz-cols, .cz-panels { grid-template-columns: minmax(0, 1fr); } }

/* ============================================================
   My Settings sub-tabs — backup codes, AI tone picker, templates
   ============================================================ */
.code-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.code-chip {
  font-family: 'Manrope', monospace; letter-spacing: 0.03em; font-size: 13px; font-weight: 700;
  color: var(--forest); background: var(--cream); border: 1.5px solid var(--mist);
  border-radius: var(--radius-sm); padding: 7px 12px;
}

.tone-options { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.tone-option {
  display: flex; align-items: flex-start; gap: 10px; cursor: pointer;
  border: 1.5px solid var(--mist); border-radius: var(--radius-md); padding: 12px 14px;
}
.tone-option:hover { border-color: var(--terracotta); }
.tone-option.active { border-color: var(--terracotta); background: rgba(215, 131, 98, 0.06); }
.tone-option input { margin-top: 3px; accent-color: var(--terracotta); flex-shrink: 0; }
.tone-option-label { font-size: 13px; font-weight: 700; color: var(--forest); }
.tone-option-desc { font-size: 12px; color: var(--forest-soft); margin-top: 2px; line-height: 1.5; }
.tone-preview {
  background: var(--cream); border: 1px solid var(--mist); border-radius: var(--radius-md);
  padding: 14px 16px; font-size: 13px; color: var(--forest); line-height: 1.6; white-space: pre-wrap;
}

.settings-list-row {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 14px 0; border-top: 1px solid var(--mist);
}
.settings-list-row:first-child { border-top: none; padding-top: 0; }
.settings-list-row-title { font-size: 14px; font-weight: 700; color: var(--forest); }
.settings-list-row-sub { font-size: 12px; color: var(--forest-soft); margin-top: 3px; line-height: 1.5; }
.settings-list-row-meta { font-size: 11px; color: var(--forest-soft); opacity: 0.7; margin-top: 4px; }
.signature-preview {
  background: var(--cream); border: 1px solid var(--mist); border-radius: var(--radius-md);
  padding: 14px 16px; font-size: 13px; color: var(--forest); line-height: 1.6; white-space: pre-wrap;
}

/* ============================================================
   Branch Settings — grouped nested sub-nav (18 sub-areas), sitting
   inside the Settings hub's own left sub-nav. Deliberately lighter
   weight than .subnav (no box/border) so two nav levels read as
   "section, then sub-area" rather than a doubled-up sidebar.
   ============================================================ */
.branch-settings-layout { display: flex; gap: 28px; align-items: flex-start; }
.nested-subnav { width: 190px; flex-shrink: 0; display: flex; flex-direction: column; gap: 16px; }
.nested-subnav-group { display: flex; flex-direction: column; gap: 1px; }
.nested-subnav-heading {
  font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--forest-soft); opacity: 0.75; padding: 0 10px 6px;
}
.nested-subnav-item {
  padding: 8px 10px; font-size: 13px; font-weight: 500; color: var(--forest);
  border-radius: var(--radius-sm); border-left: 2px solid transparent; cursor: pointer;
}
.nested-subnav-item:hover { background: var(--mist); }
.nested-subnav-item.active { background: rgba(22, 51, 47, 0.06); border-left-color: var(--terracotta); font-weight: 700; }
.branch-settings-body { flex: 1; min-width: 0; }

.mini-remove-btn {
  background: none; border: 1.5px solid var(--mist); border-radius: var(--radius-sm);
  width: 30px; height: 30px; flex-shrink: 0; cursor: pointer; color: var(--forest-soft);
  font-size: 15px; line-height: 1;
}
.mini-remove-btn:hover { border-color: var(--terracotta); color: var(--terracotta); }

.crud-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 0; border-top: 1px solid var(--mist);
}
.crud-row:first-child { border-top: none; padding-top: 0; }
.crud-row-fields { display: flex; align-items: center; gap: 10px; flex: 1; flex-wrap: wrap; }
.crud-row-fields input, .crud-row-fields select {
  padding: 7px 10px; border: 1.5px solid var(--mist); border-radius: var(--radius-sm);
  font: inherit; font-size: 13px; color: var(--forest); background: var(--cream);
}
.crud-row-fields input:focus, .crud-row-fields select:focus { outline: none; border-color: var(--terracotta); }

.checklist-block { border-top: 1px solid var(--mist); padding: 14px 0; }
.checklist-block:first-child { border-top: none; padding-top: 0; }
.checklist-name-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.checklist-name-row input { font-size: 14px; font-weight: 700; color: var(--forest); border: none; background: none; padding: 2px 0; }
.checklist-name-row input:focus { outline: none; border-bottom: 1.5px solid var(--terracotta); }
.checklist-items { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.checklist-item-row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--forest); }
.checklist-item-row span { flex: 1; }
.checklist-add-row { display: flex; gap: 8px; }
.checklist-add-row input {
  flex: 1; padding: 7px 10px; border: 1.5px solid var(--mist); border-radius: var(--radius-sm);
  font: inherit; font-size: 13px; background: var(--cream); color: var(--forest);
}
.checklist-add-row input:focus { outline: none; border-color: var(--terracotta); }

.sync-pill-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 16px; }
.sync-pill { font-size: 12px; font-weight: 600; color: var(--forest); background: var(--mist); border-radius: 999px; padding: 5px 12px; }

/* ============================================================
   Rent Reviews
   ============================================================ */
.rr-chips { margin: 0 0 18px; }
.rr-manage { width: 100%; justify-content: center; }
#rr-search { flex: 1 1 100%; width: 100%; }
.rr-chips .chip strong { margin-left: 4px; }
.rr-item { border-top: 1px solid var(--line); }
.rr-item:first-child { border-top: none; }
.rr-row {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1.2fr) 84px;
  gap: 14px; align-items: center; padding: 14px 0;
}
.rr-address { font-weight: 700; color: var(--forest); font-size: 14px; }
.rr-address:hover { color: var(--terracotta); }
.rr-sub { font-size: 12px; color: var(--forest-soft); margin-top: 2px; }
.rr-tag { display: inline-block; font-size: 10.5px; font-weight: 700; background: var(--mist); border-radius: 999px; padding: 1px 7px; margin-left: 4px; }
.rr-val { font-size: 13px; font-weight: 700; color: var(--forest); }
.rr-val-sm { font-weight: 600; font-size: 12.5px; }
.rr-unit { font-weight: 500; color: var(--forest-soft); font-size: 11.5px; }
.rr-rel { font-size: 12px; color: var(--forest-soft); margin-top: 3px; }
.rr-over { color: var(--danger); font-weight: 600; }
.rr-soon { color: #A85D3E; font-weight: 600; }
.rr-detail { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 18px; margin: 0 0 16px; }
.rr-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px 20px; margin-bottom: 18px; }
.rr-fact-k { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); }
.rr-fact-v { font-size: 13px; font-weight: 600; color: var(--forest); margin-top: 2px; }
.rr-stage { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px; margin-bottom: 16px; }
.rr-stage-title { font-size: 13px; font-weight: 800; color: var(--forest); margin: 0 0 10px; }
.rr-actions, .rr-datebox { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.rr-datebox { padding-top: 12px; border-top: 1px solid var(--line); font-size: 12px; font-weight: 600; color: var(--forest-soft); }
.rr-datebox input[type=text], .rr-datebox input[type=date], .rr-add-rem input, .rr-add-rem select {
  height: 34px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white);
  font: 13px var(--font); color: var(--ink); padding: 0 10px;
}
.rr-datebox input[type=text] { flex: 1; min-width: 180px; }
.rr-preview { margin: 4px 0 0; }
.rr-two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rr-block { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px; }
.rr-rem { display: flex; align-items: baseline; gap: 8px; padding: 6px 0; font-size: 13px; cursor: pointer; }
.rr-rem input { accent-color: var(--forest); }
.rr-rem-note { flex: 1; color: var(--forest); font-weight: 600; }
.rr-rem.done .rr-rem-note { text-decoration: line-through; opacity: 0.55; }
.rr-rem-meta { font-size: 11.5px; color: var(--forest-soft); white-space: nowrap; }
.rr-add-rem { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.rr-add-rem .rr-rem-note-in { flex: 1; min-width: 140px; }
.rr-hist { display: flex; gap: 10px; font-size: 12.5px; padding: 6px 0; border-top: 1px solid var(--line); color: var(--forest); }
.rr-hist:first-of-type { border-top: none; }
.rr-hist-when { color: var(--forest-soft); white-space: nowrap; min-width: 84px; }
.rr-stage .btn[disabled] { opacity: 0.5; cursor: not-allowed; }
@media (max-width: 1100px) {
  .rr-row { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) 84px; }
  .rr-row > .rr-cell:nth-of-type(4), .rr-row > .rr-cell:nth-of-type(5) { grid-column: span 2; }
}
@media (max-width: 760px) {
  .rr-row { grid-template-columns: 1fr 1fr; }
  .rr-two { grid-template-columns: 1fr; }
}

/* ---------- Contractors ---------- */
.ct-head, .ct-row {
  display: grid; align-items: center; column-gap: 14px;
  grid-template-columns: 28px minmax(0, 1.7fr) minmax(0, 1.5fr) 70px minmax(0, 1fr) minmax(0, 1fr) 196px;
}
.ct-head { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 6px; }
.ct-item { border-top: 1px solid var(--line); }
.ct-item:first-child { border-top: none; }
.ct-row { padding: 12px 0; }
.ct-pick { display: flex; justify-content: center; cursor: pointer; }
.ct-pick input { accent-color: var(--forest); width: 15px; height: 15px; }
.ct-name { background: none; border: none; padding: 0; font: inherit; font-weight: 700; font-size: 14px; color: var(--forest); text-align: left; cursor: pointer; }
.ct-name:hover { color: var(--terracotta); }
.ct-sub { font-size: 12px; color: var(--forest-soft); margin-top: 2px; }
.ct-muted { color: var(--forest-soft); font-size: 12.5px; }
.ct-cell { font-size: 12.5px; color: var(--forest); font-weight: 600; min-width: 0; }
.ct-trade { display: inline-block; background: var(--mist); border-radius: 999px; font-size: 11.5px; font-weight: 600; padding: 2px 9px; margin: 0 4px 4px 0; }
.ct-more { background: var(--cream); border: 1px solid var(--line); }
.ct-jobs { font-weight: 800; font-size: 15px; }
.ct-zero { color: var(--forest-soft); font-weight: 600; }
.ct-actions { display: flex; gap: 6px; justify-content: flex-end; }
.ct-actions .btn { width: auto; padding-left: 10px; padding-right: 10px; }
.ct-actions .btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.ct-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 10px 14px; margin: 0 0 10px; font-size: 13px; }
.ct-bulk .btn { width: auto; }
.ct-detail { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 18px; margin: 0 0 16px; }
.ct-two { display: grid; grid-template-columns: 1.1fr 1fr; gap: 16px; align-items: start; }
.ct-trade-pick { display: flex; flex-wrap: wrap; gap: 6px; }
.ct-cert { display: grid; grid-template-columns: 1fr auto auto auto; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); }
.ct-cert:first-of-type { border-top: none; }
.ct-cert-type { font-size: 13px; font-weight: 700; color: var(--forest); margin-bottom: 3px; }
.ct-cert-add { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.ct-cert input[type=date], .ct-cert-add input, .ct-cert-add select, .ct-reassign {
  height: 34px; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 0 8px; font: inherit; font-size: 12.5px; background: var(--white); color: var(--forest);
}
.ct-cert-add select { flex: 1; min-width: 160px; }
.ct-cert .btn, .ct-cert-add .btn { width: auto; }
.ct-job { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13px; }
.ct-job:first-of-type { border-top: none; }
.ct-urgent { color: var(--danger); font-weight: 700; }
.ct-err:empty { display: none; }
@media (max-width: 1150px) {
  .ct-head { display: none; }
  .ct-row { grid-template-columns: 28px minmax(0, 1.4fr) minmax(0, 1fr) 60px; row-gap: 8px; }
  .ct-row > .ct-cell:nth-of-type(4), .ct-row > .ct-cell:nth-of-type(5), .ct-row > .ct-actions { grid-column: 2 / -1; }
  .ct-actions { justify-content: flex-start; }
  .ct-two { grid-template-columns: 1fr; }
}
#ct-search { flex: 1 1 100%; width: 100%; }
.ct-prev-list { display: flex; flex-direction: column; gap: 14px; max-height: 52vh; overflow: auto; }
.ct-prev { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 12px 14px; background: var(--cream); }
.ct-prev-head { margin: 0 0 8px; font-size: 13px; color: var(--forest); }
.ct-msg { margin-top: 8px; }
.ct-msg-k { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); margin-bottom: 4px; }
.ct-chars { text-transform: none; letter-spacing: 0; font-weight: 600; margin-left: 6px; }
.ct-msg-subj { font-weight: 700; font-size: 13px; color: var(--forest); margin-bottom: 4px; }
.ct-msg-body { margin: 0; white-space: pre-wrap; font: inherit; font-size: 12.5px; line-height: 1.5; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 12px; color: var(--forest); }
.ct-sms { background: var(--forest); color: var(--cream); font-size: 12.5px; line-height: 1.45; border-radius: 14px 14px 14px 4px; padding: 9px 13px; max-width: 340px; }
.ct-blocked { margin: 12px 0 0; font-size: 12.5px; color: var(--danger); }
.ct-warn { background: #FBF1EC; border: 1px solid #EBC9BB; border-radius: var(--radius-sm); padding: 8px 12px; margin: 0 0 12px; font-size: 12.5px; color: #8A4A33; }
.ct-warn p { margin: 4px 0; }
.ct-shoot { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13px; }
.ct-shoot:first-of-type { border-top: none; }
.ct-shoot-btns { display: flex; gap: 6px; }
.ct-shoot-btns .btn { width: auto; }
.ct-warn-bad { background: #FBEAE6; border-color: #E4A99A; color: #9B2F1C; }

/* ---------- Tenancy Endings ---------- */
.te-row { display: grid; align-items: start; column-gap: 14px; padding: 14px 0; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1.5fr) minmax(0, 1.3fr) 84px; }
.te-plain { color: var(--forest); cursor: default; }
.te-plain:hover { color: var(--forest); }
.te-stages { display: flex; flex-wrap: wrap; gap: 5px; }
.te-stage { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; border-radius: 999px; padding: 3px 9px; border: 1px solid var(--line); background: var(--white); color: var(--forest-soft); white-space: nowrap; }
.te-stage b { font-weight: 800; }
.te-stage.is-done { background: #E7F1EA; border-color: #BFD8C6; color: #2E6B43; }
.te-stage.is-partial { background: #FBF3E3; border-color: #EBD7A6; color: #8A6417; }
.te-group { margin-bottom: 10px; }
.te-group-title { font-size: 12px; font-weight: 800; color: var(--forest); text-transform: uppercase; letter-spacing: 0.03em; display: flex; justify-content: space-between; margin-bottom: 2px; }
.te-group-state { font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--forest-soft); }
.te-group-state.is-done { color: #2E6B43; }
.te-item .rr-rem.done .rr-rem-note { text-decoration: line-through; opacity: 0.55; }
@media (max-width: 1100px) {
  .te-row { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) 84px; row-gap: 10px; }
  .te-row > .rr-cell:nth-of-type(4), .te-row > .rr-cell:nth-of-type(5) { grid-column: span 2; }
}
@media (max-width: 760px) { .te-row { grid-template-columns: 1fr 1fr; } }
#te-search { flex: 1 1 100%; width: 100%; }

/* ---------- Landlords ---------- */
.ll-head, .ll-row {
  display: grid; align-items: center; column-gap: 14px;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.6fr) minmax(0, 1.5fr) minmax(0, 0.8fr) minmax(0, 0.7fr) 168px;
}
.ll-head { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 6px; }
.ll-row { padding: 12px 0; }
.ll-contact { overflow-wrap: anywhere; font-weight: 500; }
.ll-prop { color: var(--forest); font-weight: 600; text-decoration: none; }
.ll-prop:hover { color: var(--terracotta); }
.ll-propline { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13px; color: var(--forest); text-decoration: none; }
.ll-propline:first-of-type { border-top: none; }
.ll-propline:hover strong { color: var(--terracotta); }
.ll-link { text-decoration: none; display: inline-flex; align-items: center; width: auto; }
.ll-pager { display: flex; align-items: center; justify-content: center; gap: 12px; padding-top: 14px; }
.ll-pager .btn { width: auto; }
.ll-pager .btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.ll-row .ct-sub .pill { margin-right: 4px; }
@media (max-width: 900px) {
  .ll-head { display: none; }
  .ll-row { grid-template-columns: 1fr; row-gap: 8px; }
  .ll-row .ct-actions { justify-content: flex-start; }
}
.pd-owner-link { font-size: 12.5px; font-weight: 700; color: var(--forest); text-decoration: none; display: inline-block; margin-top: 10px; }
.pd-owner-link:hover { color: var(--terracotta); }

/* ---------- Portfolios ---------- */
.pf-head, .pf-row {
  display: grid; align-items: center; column-gap: 14px;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 100px 110px minmax(0, 0.9fr) minmax(0, 1fr) 176px;
}
.pf-head { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 6px; }
.pf-row { padding: 12px 0; }
.pf-toggle { background: none; border: none; padding: 0; cursor: pointer; font: inherit; }
.pf-flag { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 3px 11px; border: 1px solid var(--line); }
.pf-flag.on { background: #E7F1EA; border-color: #BFD8C6; color: #2E6B43; }
.pf-flag.off { background: var(--white); color: var(--forest-soft); }
.pf-toggle:hover .pf-flag { box-shadow: 0 0 0 3px var(--terracotta-soft); }
.pf-note { margin: 10px 0 0; font-size: 13px; color: var(--forest); }
.pf-stmt { max-height: 50vh; overflow: auto; }
.pf-sec-title { font-weight: 800; font-size: 13px; color: var(--forest); margin: 14px 0 6px; }
.pf-sec-title:first-child { margin-top: 0; }
.pf-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.pf-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--forest-soft); padding: 4px 6px; border-bottom: 1px solid var(--line); }
.pf-table td { padding: 6px; border-bottom: 1px solid var(--line); }
.pf-table .num { text-align: right; white-space: nowrap; }
.pf-table .neg { color: var(--danger); }
.pf-sum { font-size: 12.5px; margin: 6px 0 0; color: var(--forest-soft); }
.pf-total { font-size: 13px; margin: 14px 0 0; padding-top: 10px; border-top: 2px solid var(--line); }
@media (max-width: 900px) {
  .pf-head { display: none; }
  .pf-row { grid-template-columns: 1fr; row-gap: 8px; }
  .pf-row .ct-actions { justify-content: flex-start; }
}
.ct-bank .pd-kv { padding: 5px 0; }
.ct-mono { font-variant-numeric: tabular-nums; letter-spacing: 0.04em; font-weight: 700; }

/* ---------- Move out page ---------- */
.mo-back { display: inline-block; font-size: 12.5px; font-weight: 700; color: var(--forest-soft); text-decoration: none; margin-bottom: 10px; }
.mo-back:hover { color: var(--terracotta); }
.mo-head { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 18px; flex-wrap: wrap; }
.mo-photo { width: 76px; height: 76px; border-radius: var(--radius-md); background: var(--mist); display: flex; align-items: center; justify-content: center; font-size: 34px; color: var(--forest-soft); overflow: hidden; flex-shrink: 0; }
.mo-photo img { width: 100%; height: 100%; object-fit: cover; }
.mo-head-main { flex: 1; min-width: 240px; }
.mo-title-link { color: inherit; text-decoration: none; }
.mo-title-link:hover { color: var(--terracotta); }
.mo-meta { margin: 4px 0 0; font-size: 13px; color: var(--forest-soft); }
.mo-next { margin: 8px 0 0; display: inline-block; background: var(--cream); border: 1px solid var(--line); border-radius: 999px; font-size: 12.5px; font-weight: 700; color: var(--forest); padding: 4px 12px; }
.mo-assign { align-self: flex-start; }
.mo-panel { min-width: 0; }
.mo-tools { display: flex; gap: 8px; margin: 14px 0; flex-wrap: wrap; }
.mo-tools .btn { width: auto; }
.mo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; margin-bottom: 14px; }
.mo-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px 18px; margin-bottom: 14px; }
.mo-grid .mo-card { margin-bottom: 0; }
.mo-card.is-done { border-color: #BFD8C6; }
.mo-card-title { font-weight: 800; font-size: 14px; color: var(--forest); margin: 0 0 8px; }
.mo-card-head { display: flex; align-items: center; gap: 10px; width: 100%; background: none; border: none; padding: 0; cursor: pointer; font: inherit; text-align: left; }
.mo-card-head .mo-card-title { margin: 0; flex: 1; }
.mo-chev { color: var(--forest-soft); font-size: 12px; }
.mo-card-body { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.mo-fact { font-size: 13px; margin: 0 0 8px; color: var(--forest); }
.mo-inline { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0 10px; }
.mo-inline input, .mo-inline select, .mo-meters input { height: 36px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); font: 13px var(--font); color: var(--ink); padding: 0 10px; }
.mo-inline .btn { width: auto; }
.mo-inline input[type=text] { flex: 1; min-width: 120px; }
.mo-inline input[type=number] { width: 70px; }
.mo-money { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; }
.mo-money input { width: 90px; }
.mo-meters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.mo-meters label { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; font-weight: 700; color: var(--forest-soft); }
.mo-meters input { width: 100%; }
.mo-note { padding: 10px 0; border-top: 1px solid var(--line); font-size: 13.5px; white-space: pre-wrap; }
.mo-card textarea { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm); font: 13.5px var(--font); padding: 10px; box-sizing: border-box; }
@media (max-width: 760px) { .mo-grid { grid-template-columns: 1fr; } }

/* ---------- Landlord page ---------- */
.ld-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--forest); color: var(--cream); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 20px; flex-shrink: 0; }
.ld-head-actions { display: flex; gap: 8px; flex-wrap: wrap; align-self: flex-start; }
.ld-head-actions .btn { width: auto; }
.ld-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.ld-cols .mo-card { margin-bottom: 14px; }
.ld-person { font-size: 14px; margin-bottom: 6px; }
.ld-notes { margin: 10px 0 0; padding: 8px 10px; background: var(--cream); border-radius: var(--radius-sm); font-size: 13px; white-space: pre-wrap; }
.ld-tabs { display: flex; gap: 4px; margin-bottom: 10px; }
.ld-tab { border: 1px solid var(--line); background: var(--white); border-radius: 999px; padding: 5px 14px; font: 600 13px var(--font); color: var(--forest-soft); cursor: pointer; }
.ld-tab.active { background: var(--forest); color: var(--cream); border-color: var(--forest); }
.ld-err:empty { display: none; }
.ld-act { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 13px; }
.ld-act:first-of-type { border-top: none; }
.ld-act-icon { width: 26px; height: 26px; border-radius: 50%; background: var(--mist); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 13px; }
.ld-act-main { min-width: 0; flex: 1; }
.ld-body summary { cursor: pointer; font-size: 12px; font-weight: 700; color: var(--forest-soft); margin-top: 4px; }
.ld-body div { white-space: pre-wrap; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 8px 10px; margin-top: 6px; font-size: 12.5px; }
.ld-act-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
@media (max-width: 900px) { .ld-cols { grid-template-columns: 1fr; } }
.ll-name { text-decoration: none; display: inline-block; }

/* ---------- finance overview ---------- */
.fo-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.fo-head .page-sub { max-width: 62ch; }
.fo-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.fo-grid2 { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 16px; margin-bottom: 16px; }
.fo-card { display: block; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; min-width: 0; }
.fo-card > header { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.fo-card > header > div { flex: 1; min-width: 0; }
.fo-card h2 { font-size: 14px; font-weight: 800; margin: 0; }
.fo-card header p { font-size: 12px; color: var(--forest-soft); margin: 2px 0 0; }
.fo-ico { width: 30px; height: 30px; flex: none; border-radius: 8px; background: var(--terracotta-soft); color: var(--forest); display: grid; place-items: center; font-weight: 800; font-size: 14px; }
.fo-link { font-size: 12px; font-weight: 700; color: var(--forest-soft); white-space: nowrap; }
.fo-link:hover { color: var(--forest); text-decoration: underline; }
.fo-body { padding: 8px 12px 12px; }
.fo-row { width: 100%; display: flex; align-items: center; gap: 10px; background: none; border: 0; border-radius: var(--radius-md); padding: 9px 6px; text-align: left; color: var(--ink); font-size: 13px; }
.fo-row:hover:not(:disabled) { background: var(--cream); }
.fo-row.empty { color: var(--forest-soft); cursor: default; }
.fo-row-label { flex: 1; min-width: 0; font-weight: 600; }
.fo-row-amt { font-weight: 800; font-variant-numeric: tabular-nums; }
.fo-count { min-width: 22px; text-align: center; font-size: 11px; font-weight: 700; background: var(--cream); border-radius: 99px; padding: 2px 6px; color: var(--forest-soft); }
.fo-bar { flex: 0 0 64px; height: 6px; background: var(--cream); border-radius: 99px; overflow: hidden; }
.fo-bar-fill { display: block; height: 100%; border-radius: 99px; }
.tone-a { background: #7FA39B; } .tone-b { background: #5E8A80; } .tone-c { background: var(--terracotta); } .tone-d { background: #C86A4A; } .tone-e { background: var(--danger); }
.fo-items { list-style: none; margin: 0 0 6px 6px; padding: 4px 0 4px 12px; border-left: 2px solid var(--line); }
.fo-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 10px; padding: 6px 0; font-size: 12.5px; }
.fo-items li > span { grid-column: 1; color: var(--forest-soft); font-size: 11.5px; }
.fo-items li > b { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-variant-numeric: tabular-nums; }
.fo-items li > a, .fo-i-name { font-weight: 700; }
.fo-items li > a:hover { text-decoration: underline; }
.fo-items.flat { margin: 0; padding: 0; border: 0; }
.fo-items.flat li { grid-template-columns: 84px minmax(0, 1fr) auto; padding: 8px 4px; border-bottom: 1px solid var(--line); }
.fo-items.flat li > b { grid-row: auto; grid-column: auto; }
.fo-items.flat li:last-child { border-bottom: 0; }
.fo-date { color: var(--forest-soft); font-size: 12px; }
.fo-scroll { max-height: 290px; overflow-y: auto; }
.fo-note { font-size: 12px; color: var(--forest-soft); margin: 8px 6px 0; }
.fo-chart { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; align-items: end; padding: 8px 4px 0; }
.fo-col { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; }
.fo-col-val { font-size: 11px; font-weight: 700; color: var(--forest-soft); white-space: nowrap; }
.fo-col.now .fo-col-val { color: var(--forest); }
.fo-col-track { position: relative; width: 100%; height: 190px; background: var(--cream); border-radius: 6px; overflow: hidden; display: flex; align-items: flex-end; }
.fo-col-bar { width: 100%; background: #9DB8B1; border-radius: 6px 6px 0 0; }
.fo-col.now .fo-col-bar { background: var(--forest-soft); }
.fo-col-due { position: absolute; left: 0; right: 0; border-top: 2px dashed var(--terracotta); z-index: 1; }
.fo-col-lab { font-size: 12px; font-weight: 600; color: var(--forest-soft); }
.fo-col.now .fo-col-lab { color: var(--forest); font-weight: 800; }
.fo-kpi { text-align: center; padding: 18px 16px 18px; }
.fo-big { font-size: 28px; font-weight: 800; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; margin-bottom: 8px; }
.fo-delta { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 99px; }
.fo-delta.up { background: rgba(60, 130, 90, 0.14); color: #2F6B4B; }
.fo-delta.down { background: rgba(192, 83, 62, 0.13); color: var(--danger); }
.fo-delta.flat { background: var(--cream); color: var(--forest-soft); }
.fo-prog { height: 8px; background: var(--cream); border-radius: 99px; overflow: hidden; margin: 18px 0 6px; }
.fo-prog span { display: block; height: 100%; background: var(--forest-soft); border-radius: 99px; }
.fo-prog-lab { display: flex; justify-content: space-between; font-size: 11.5px; color: var(--forest-soft); }
.fo-chip { display: inline-block; font-size: 11.5px; font-weight: 700; background: var(--cream); color: var(--forest-soft); border-radius: 99px; padding: 3px 10px; }
a.fo-inv:hover { border-color: var(--forest-soft); }
@media (max-width: 1100px) { .fo-grid3 { grid-template-columns: 1fr 1fr; } .fo-grid2 { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .fo-grid3 { grid-template-columns: 1fr; } .fo-col-track { height: 130px; } .fo-chart { gap: 5px; } .fo-col-val { font-size: 9.5px; } .fo-big { font-size: 24px; } }

/* ---------- bank accounts ---------- */
.bk-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.bk-head .page-sub { max-width: 62ch; }
.bk-head-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.bk-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); margin-bottom: 18px; overflow: hidden; }
.bk-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bk-card-head h2 { margin: 0; font-size: 15px; font-weight: 800; }
.bk-card-head p { margin: 2px 0 0; font-size: 12px; color: var(--forest-soft); }
.bk-head-actions { display: flex; gap: 8px; }
.bk-top { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 16px; padding: 18px; }
.bk-tile { background: linear-gradient(135deg, var(--forest) 0%, #2C5A4F 100%); color: #fff; border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; justify-content: space-between; min-height: 130px; position: relative; }
.bk-bank { font-weight: 800; font-size: 15px; letter-spacing: 0.01em; }
.bk-nums { display: flex; gap: 22px; margin-top: 14px; }
.bk-nums small { display: block; font-size: 10.5px; opacity: 0.75; }
.bk-nums b { font-size: 14px; font-variant-numeric: tabular-nums; letter-spacing: 0.03em; }
.bk-reveal { position: absolute; top: 12px; right: 12px; background: rgba(255,255,255,0.14); border: 0; color: #fff; font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: 99px; }
.bk-reveal:hover { background: rgba(255,255,255,0.24); }
.bk-bals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bk-bal { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 12px 14px; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; }
.bk-bal small { font-size: 12px; color: var(--forest-soft); }
.bk-bal b { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.bk-bal.ok { background: rgba(60,130,90,0.08); } .bk-bal.ok b { color: #2F6B4B; font-size: 15px; }
.bk-bal.warn { background: var(--terracotta-soft); }
.bk-pill { display: inline-block; font-size: 10.5px; font-weight: 700; background: var(--cream); border-radius: 99px; padding: 2px 8px; margin-left: 4px; }
.bk-hint { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; background: var(--cream); font-size: 10px; font-weight: 700; cursor: help; margin-left: 3px; }
.bk-import { margin: 0 18px 16px; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 14px 16px; }
.bk-import h3 { margin: 0 0 2px; font-size: 13.5px; }
.bk-import p { margin: 0; font-size: 12px; color: var(--forest-soft); }
.bk-import-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.bk-import-actions input[type=file] { font-size: 12px; max-width: 100%; }
.bk-link { background: none; border: 0; color: var(--forest-soft); font-size: 12px; font-weight: 700; text-decoration: underline; padding: 0; }
.bk-msg { min-height: 0; margin-top: 8px !important; font-size: 12.5px !important; color: var(--forest) !important; font-weight: 600; }
.bk-msg:empty { display: none; }
.bk-tabs { display: flex; align-items: center; gap: 4px; padding: 0 18px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bk-tab { background: none; border: 0; border-bottom: 2px solid transparent; padding: 10px 12px; font-size: 13px; font-weight: 700; color: var(--forest-soft); margin-bottom: -1px; }
.bk-tab span { background: var(--cream); border-radius: 99px; padding: 1px 7px; font-size: 11px; margin-left: 4px; }
.bk-tab.on { color: var(--forest); border-bottom-color: var(--forest); }
.bk-tab-note { margin-left: auto; font-size: 12px; color: var(--forest-soft); font-weight: 600; }
.bk-lines { padding: 4px 18px 10px; }
.bk-line { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.bk-line:last-child { border-bottom: 0; }
.bk-date { font-size: 12px; color: var(--forest-soft); }
.bk-desc b { display: block; font-size: 13px; overflow-wrap: anywhere; }
.bk-sub { display: block; font-size: 11.5px; color: var(--forest-soft); margin-top: 2px; }
.bk-sub.sug { color: #8A4A2F; font-weight: 600; }
.bk-amt { font-weight: 800; font-variant-numeric: tabular-nums; font-size: 13.5px; text-align: right; min-width: 84px; }
.bk-amt.in { color: #2F6B4B; } .bk-amt.out { color: var(--danger); }
.bk-actions { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.bk-empty { margin: 16px 0; font-size: 13px; color: var(--forest-soft); }
@media (max-width: 900px) { .bk-top { grid-template-columns: 1fr; } .bk-bals { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .bk-line { grid-template-columns: minmax(0, 1fr) auto; } .bk-date { grid-column: 1 / -1; } .bk-actions { grid-column: 1 / -1; justify-content: flex-start; } }

/* ---------- arrears ---------- */
.ar-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) minmax(0, 1.3fr); gap: 10px; margin-bottom: 18px; }
.ar-tile { text-align: left; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; color: var(--ink); font-family: var(--font); }
button.ar-tile:hover { border-color: var(--forest-soft); }
.ar-tile.on { border-color: var(--forest); box-shadow: inset 0 0 0 1px var(--forest); background: var(--cream); }
.ar-tile small { font-size: 12px; color: var(--forest-soft); }
.ar-tile b { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.ar-tile span { font-size: 12px; color: var(--forest-soft); font-weight: 600; }
.ar-tile.total { background: var(--forest); color: #fff; border-color: var(--forest); }
.ar-tile.total small, .ar-tile.total span { color: rgba(255,255,255,0.78); }
.ar-head, .ar-row { display: grid; grid-template-columns: 26px minmax(150px, 1.5fr) minmax(110px, 1fr) minmax(90px, 0.8fr) minmax(110px, 1fr) minmax(110px, 1fr) minmax(150px, 1.3fr) minmax(80px, 0.7fr) auto; gap: 12px; align-items: center; }
.ar-head { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 6px; }
.ar-row { padding: 12px 0; font-size: 13px; }
.ar-pick { display: flex; align-items: center; justify-content: center; }
.ar-money { display: flex; flex-direction: column; }
.owe { color: var(--danger); font-variant-numeric: tabular-nums; }
.ar-next { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.ar-due { font-size: 11.5px; font-weight: 700; color: var(--forest-soft); }
.ar-due.late { color: var(--danger); }
.ar-mini { background: none; border: 0; padding: 0 8px 0 0; color: var(--forest-soft); font-size: 12px; font-weight: 700; }
.ar-mini:hover { color: var(--forest); text-decoration: underline; }
.ar-btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.ar-bulk { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 10px 14px; margin-top: 10px; font-size: 13px; }
.ar-bulk[hidden] { display: none; }
.ar-detail { margin-top: 0; }
.ar-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.ar-mini-table { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-bottom: 4px; }
.ar-mini-table td { padding: 5px 6px 5px 0; border-bottom: 1px solid var(--line); }
.ar-mini-table td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ar-inline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ar-inline input[type=text] { flex: 1; min-width: 160px; }
.ar-inline .btn { width: auto; }
.ar-task.done { text-decoration: line-through; opacity: 0.65; }
.ar-hist { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; max-height: 180px; overflow-y: auto; }
.ar-bulk-list { margin: 0; padding-left: 18px; font-size: 13px; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 1250px) {
  .ar-head { display: none; }
  .ar-row { grid-template-columns: 26px minmax(0, 1fr) minmax(0, 1fr); }
  .ar-row > .ar-btns { grid-column: 2 / -1; justify-content: flex-start; }
  .ar-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) { .ar-cols { grid-template-columns: 1fr; } .ar-row { grid-template-columns: 26px minmax(0, 1fr); } .ar-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ar-btns .btn { white-space: nowrap; }

/* ---------- transactions due ---------- */
.td-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.td-head, .td-row { display: grid; grid-template-columns: minmax(150px, 1.5fr) minmax(110px, 0.9fr) minmax(200px, 2fr) minmax(90px, 0.7fr) minmax(100px, 0.8fr) 70px; gap: 12px; align-items: center; }
.td-head { font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--forest-soft); padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 6px; }
.td-sort { background: none; border: 0; padding: 0; text-align: left; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
.td-sort:hover, .td-sort.on { color: var(--forest); }
.td-row { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.td-row:last-child { border-bottom: 0; }
.td-num { text-align: right; font-variant-numeric: tabular-nums; }
.td-head > :nth-child(4), .td-head > :nth-child(5) { text-align: right; }
.td-num.part b { color: var(--danger); }
.td-when { font-size: 11.5px; font-weight: 700; color: var(--forest-soft); }
.td-when.late { color: var(--danger); } .td-when.today { color: #8A4A2F; }
.td-act { text-align: right; }
.td-dates { display: contents; }
.td-dates[hidden] { display: none; }
@media (max-width: 900px) {
  .td-tiles { grid-template-columns: 1fr; }
  .td-head { display: none; }
  .td-row { grid-template-columns: minmax(0, 1fr) auto; }
  .td-row > :nth-child(3) { grid-column: 1 / -1; }
  .td-num { text-align: left; }
}

/* ---------- arrears page ---------- */
.ad-links { display: flex; gap: 14px; flex-wrap: wrap; }
.ad-links a { font-weight: 700; color: var(--forest-soft); text-decoration: underline; }
.ad-contact { margin: 10px 0 0; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.ad-ledger-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.ad-ledger th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--forest-soft); padding: 6px 6px 6px 0; border-bottom: 1px solid var(--line); }
.ad-ledger th.num { text-align: right; }
.ld-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ld-filters .search-input { flex: 1; min-width: 150px; }
.ld-filters select { max-width: 180px; }

/* ---- Finance quick-switch strip ---- */
.fs-wrap { max-width: 1040px; }
.fs-strip { display: flex; gap: 6px; overflow-x: auto; padding: 6px; margin: 0 0 20px; background: var(--surface, #fff); border: 1px solid var(--border, #e3e0d8); border-radius: 14px; scrollbar-width: thin; }
.fs-pill { flex: 0 0 auto; display: flex; flex-direction: column; justify-content: center; gap: 1px; min-height: 40px; padding: 6px 12px; border-radius: 10px; color: inherit; text-decoration: none; white-space: nowrap; }
.fs-pill:hover { background: rgba(0, 40, 84, 0.06); }
.fs-pill.active { background: #002854; color: #fff; }
.fs-name { font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.fs-n { font-size: 11px; font-weight: 700; min-width: 18px; padding: 1px 6px; border-radius: 999px; text-align: center; background: rgba(0, 40, 84, 0.12); }
.fs-pill.active .fs-n { background: rgba(255, 255, 255, 0.22); }
.fs-sub { font-size: 11px; opacity: 0.7; }
@media (max-width: 720px) { .fs-strip { margin-bottom: 14px; } }

/* ---- Allocate funds ---- */
.af-toolbar { padding: 12px 18px; border-bottom: 1px solid var(--line); }
.af-body { padding: 4px 18px 16px; }
.af-empty { padding: 20px 0; }
.af-head, .af-row { display: grid; gap: 12px; align-items: center; padding: 10px 0; }
.af-head { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--forest-soft); border-bottom: 1px solid var(--line); }
.af-row { border-bottom: 1px solid var(--line); font-size: 14px; }
.af-owner { grid-template-columns: 28px minmax(180px, 2fr) repeat(4, minmax(80px, 1fr)) minmax(90px, 1fr) 100px; }
.af-ten { grid-template-columns: minmax(180px, 2fr) 1fr 1fr 1.4fr 200px; }
.af-rc { grid-template-columns: minmax(150px, 1.6fr) 90px 120px minmax(200px, 2fr) 130px; }
.af-row-wrap .af-row { border-bottom: 0; }
.af-row-wrap { border-bottom: 1px solid var(--line); }
.af-pay { color: #0a6b3d; }
.af-name { text-align: left; font-weight: 700; font-size: 14px; }
.af-detail { background: var(--cream); border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; }
.af-line { display: grid; grid-template-columns: 1.2fr 3fr 90px; gap: 10px; padding: 4px 0; font-size: 13px; }
.af-line b { text-align: right; }
.af-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.af-btns .btn, .af-row .btn { white-space: nowrap; width: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 860px) {
  .af-head { display: none; }
  .af-owner, .af-ten, .af-rc { grid-template-columns: 1fr 1fr; }
  .af-owner > :nth-child(2), .af-ten > :first-child, .af-rc > :first-child { grid-column: 1 / -1; }
  [data-l]::before { content: attr(data-l); display: block; font-size: 11px; color: var(--forest-soft); font-weight: 600; }
  .af-line { grid-template-columns: 1fr; }
  .af-line b { text-align: left; }
}

.af-chk { display: flex; align-items: center; justify-content: center; margin: 0; }
.af-bulk { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 10px 14px; margin: 10px 0 2px; background: var(--cream); border-radius: 10px; }
.af-bulk .btn { width: auto; }
.af-bulk-list { list-style: none; margin: 0 0 14px; padding: 0; border: 1px solid var(--line); border-radius: 10px; }
.af-bulk-list li { display: flex; justify-content: space-between; padding: 8px 12px; border-bottom: 1px solid var(--line); }
.af-bulk-list li:last-child { border-bottom: 0; }

/* ---- Payouts ---- */
.px-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.px-tile { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; display: flex; flex-direction: column; gap: 2px; }
.px-tile small { color: var(--forest-soft); font-weight: 600; }
.px-tile b { font-size: 22px; }
.px-tile span { font-size: 12px; color: var(--forest-soft); }
.px-tile.main { border-color: #002854; }
.px-toolbar { padding: 8px 0 12px; }
.px-head, .px-row, .px-file { display: grid; gap: 12px; align-items: center; padding: 10px 0; }
.px-head, .px-row { grid-template-columns: 28px minmax(160px, 1.6fr) minmax(160px, 1.8fr) 90px repeat(3, minmax(80px, 1fr)); }
.px-head { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--forest-soft); border-bottom: 1px solid var(--line); }
.px-wrap { border-bottom: 1px solid var(--line); }
.px-row { font-size: 14px; }
.r { text-align: right; }
.px-line { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 13px; }
.px-empty { padding: 20px 0; }
.px-bar { position: sticky; bottom: 0; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 16px; padding: 12px 14px; background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 -6px 16px rgba(0, 0, 0, .06); }
.px-bar .btn { width: auto; margin-left: auto; }
.px-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.px-chip { font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 99px; background: var(--cream); }
.px-chip.in { background: #e3f3ea; color: #0a6b3d; } .px-chip.out { background: #fbe6e3; color: #a3281d; } .px-chip.net { background: #002854; color: #fff; }
.px-file { grid-template-columns: minmax(200px, 2fr) 1fr 1fr auto; }
.px-files-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
@media (max-width: 860px) {
  .px-tiles { grid-template-columns: 1fr; }
  .px-head { display: none; }
  .px-row { grid-template-columns: 28px 1fr 1fr 1fr; }
  .px-row > :nth-child(2) { grid-column: 2 / -1; }
  .px-row > :nth-child(3), .px-row > :nth-child(4) { grid-column: 2 / -1; }
  .px-file { grid-template-columns: 1fr 1fr; }
  .px-bar .btn { margin-left: 0; }
}

/* ---- Payouts, single list with a payment-run panel ---- */
.pz-titlerow { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pz-toggle { display: inline-flex; background: var(--cream); border-radius: 99px; padding: 3px; }
.pz-toggle button { border: 0; background: none; padding: 7px 16px; border-radius: 99px; font-weight: 700; font-size: 13px; color: var(--forest-soft); }
.pz-toggle button.on { background: #002854; color: #fff; }
.pz-toggle span { opacity: .75; margin-left: 4px; }
.pz-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.pz-top { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; margin-bottom: 14px; }
.pz-top small { display: block; color: var(--forest-soft); font-weight: 600; }
.pz-grand { font-size: 28px; margin-right: 8px; }
.pz-seg { display: flex; height: 10px; border-radius: 99px; overflow: hidden; margin: 12px 0; gap: 2px; background: var(--cream); }
.pz-seg i { display: block; min-width: 6px; }
.pz-seg i.empty { background: var(--cream); }
.tone-a { background: #2f6f8f; } .tone-b { background: #c7783b; } .tone-c { background: #6b5aa6; } .tone-d { background: #3f9a72; } .tone-e { background: #b0486a; }
.pz-legend { display: flex; gap: 6px; flex-wrap: wrap; }
.pz-key { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: none; border-radius: 99px; padding: 5px 12px; font-size: 13px; font-weight: 600; }
.pz-key b { background: var(--cream); border-radius: 99px; padding: 0 7px; font-size: 11px; }
.pz-key span { color: var(--forest-soft); font-weight: 500; }
.pz-key.on { background: #002854; color: #fff; border-color: #002854; }
.pz-key.on b { background: rgba(255, 255, 255, .22); } .pz-key.on span { color: rgba(255, 255, 255, .8); }
.pz-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; margin-right: 6px; }
.pz-key .pz-dot { margin-right: 0; }
.pz-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.pz-item { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 12px; padding: 4px 14px; margin-bottom: 8px; }
.pz-item.on { border-color: #002854; box-shadow: 0 0 0 1px #002854; }
.pz-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; }
.pz-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pz-kind { color: #fff; font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 99px; text-transform: capitalize; }
.pz-more { font-size: 12px; }
.pz-money { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: 16px; }
.pz-run { position: sticky; top: 16px; background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; }
.pz-run h2 { margin: 0 0 10px; font-size: 16px; }
.pz-run-list { list-style: none; margin: 0 0 8px; padding: 0; font-size: 13px; }
.pz-run-list li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; }
.pz-run-list li.grp { font-weight: 700; border-top: 1px solid var(--line); margin-top: 4px; padding-top: 6px; }
.pz-run-list li.grp:first-child { border-top: 0; margin-top: 0; }
.pz-x { border: 0; background: none; font-size: 16px; line-height: 1; color: var(--forest-soft); }
.pz-total { display: flex; justify-content: space-between; align-items: baseline; font-size: 18px; border-top: 2px solid #002854; padding-top: 8px; margin-bottom: 4px; }
.pz-note { margin: 4px 0 10px; }
.pz-warn { background: #fdf0e1; border-radius: 8px; padding: 8px 10px; font-size: 13px; margin: 0 0 10px; }
.pz-run .btn { width: 100%; margin-bottom: 6px; }
.pz-day { margin: 18px 0 8px; font-size: 13px; color: var(--forest-soft); text-transform: uppercase; letter-spacing: .04em; }
.pz-file { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 12px; padding: 4px 14px; margin-bottom: 8px; }
.pz-file-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 10px 0; }
.pz-file-head > :first-child { flex: 1; min-width: 200px; }
@media (max-width: 900px) { .pz-layout { grid-template-columns: 1fr; } .pz-run { position: static; } }

/* ---- Money held, cards ---- */
.mh-sec { margin: 22px 0; }
.mh-sec h2 { font-size: 16px; margin: 0 0 2px; }
.mh-sec h2 span { background: var(--cream); border-radius: 99px; padding: 1px 9px; font-size: 12px; margin-left: 6px; }
.mh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; margin-top: 10px; }
.mh-none { padding: 10px 0; }
.mh-card { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.mh-card.on { border-color: #002854; box-shadow: 0 0 0 1px #002854; }
.mh-card header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.mh-card header:not(:has(.af-chk)) { grid-template-columns: minmax(0, 1fr) auto; }
.mh-who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mh-amt { text-align: right; } .mh-amt small { display: block; color: var(--forest-soft); font-size: 11px; } .mh-amt b { font-size: 20px; }
.mh-tag { align-self: flex-start; font-size: 11px; font-weight: 700; color: #fff; padding: 1px 9px; border-radius: 99px; }
.mh-t-owner { background: #2f6f8f; } .mh-t-tenant { background: #3f9a72; } .mh-t-rcpt { background: #b0486a; }
.mh-recd { margin: 0; }
.mh-split { display: flex; height: 8px; border-radius: 99px; overflow: hidden; gap: 2px; background: var(--cream); }
.mh-split i { display: block; min-width: 4px; }
.mh-key { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--forest-soft); }
.mh-key i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; }
.mh-pay { background: #0a8a52; } .mh-fee { background: #6b5aa6; } .mh-cost { background: #c7783b; } .mh-flt { background: #9aa5b1; }
.mh-s-owners { background: #2f6f8f; } .mh-s-tenants { background: #3f9a72; } .mh-s-receipts { background: #b0486a; }
.mh-card footer { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: auto; }
.mh-card footer .btn { width: auto; }

/* ---- Coming due, by day ---- */
.cd-runway { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 14px; background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; margin-bottom: 14px; }
.cd-od { border: 0; background: #fbe6e3; border-radius: 12px; padding: 10px 12px; text-align: left; display: flex; flex-direction: column; gap: 2px; color: #a3281d; }
.cd-od small { font-weight: 700; } .cd-od b { font-size: 22px; } .cd-od span { font-size: 12px; }
.cd-od:disabled { background: var(--cream); color: var(--forest-soft); } .cd-od.on { box-shadow: 0 0 0 2px #a3281d; }
.cd-bars { display: flex; align-items: flex-end; gap: 3px; height: 96px; padding-bottom: 16px; }
.cd-bar { flex: 1; min-width: 0; height: 100%; border: 0; background: none; padding: 0; position: relative; display: flex; align-items: flex-end; }
.cd-bar i { display: block; width: 100%; background: #2f6f8f; border-radius: 4px 4px 0 0; }
.cd-bar.none i { background: var(--cream); } .cd-bar.we i { opacity: .7; }
.cd-bar.on i { background: #002854; box-shadow: 0 0 0 2px #002854; }
.cd-bar span { position: absolute; bottom: -16px; left: 0; font-size: 10px; color: var(--forest-soft); white-space: nowrap; }
.cd-h { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--forest-soft); margin: 18px 0 8px; } .cd-h.late { color: #a3281d; }
.cd-day { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 12px; padding: 2px 14px 4px; margin-bottom: 8px; }
.cd-day.late { border-left: 4px solid #a3281d; }
.cd-day header { display: flex; align-items: baseline; gap: 10px; padding: 10px 0 6px; border-bottom: 1px solid var(--line); }
.cd-tot { margin-left: auto; font-weight: 700; }
.cd-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 70px; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.cd-item:last-child { border-bottom: 0; }
.cd-amt { text-align: right; display: flex; flex-direction: column; }
@media (max-width: 700px) { .cd-runway { grid-template-columns: 1fr; } .cd-item { grid-template-columns: minmax(0, 1fr) auto; } .cd-item .pill { display: none; } }

/* ---- Arrears, chase queue ---- */
.aq-hist { display: flex; align-items: flex-end; gap: 8px; height: 110px; margin-top: 12px; padding-top: 16px; }
.aq-col { flex: 1; height: 100%; border: 0; background: none; padding: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 3px; }
.aq-col i { display: block; background: #c7783b; border-radius: 6px 6px 0 0; }
.aq-col:nth-child(n+4) i { background: #a3281d; }
.aq-col.none i { background: var(--cream); } .aq-col.on i { box-shadow: 0 0 0 2px #002854; }
.aq-val { font-size: 11px; font-weight: 700; min-height: 14px; text-align: center; } .aq-lab { font-size: 11px; color: var(--forest-soft); text-align: center; }
.aq-sec { margin: 22px 0; }
.aq-sec h2 { font-size: 16px; margin: 0 0 2px; display: flex; align-items: baseline; gap: 8px; }
.aq-sec h2 span { background: var(--cream); border-radius: 99px; padding: 1px 9px; font-size: 12px; }
.aq-sec h2 em { font-style: normal; font-size: 13px; color: var(--forest-soft); font-weight: 600; }
.aq-sec h2 .bk-link { margin-left: auto; font-size: 13px; }
.aq-card { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 14px; align-items: start; background: var(--surface, #fff); border: 1px solid var(--line); border-left: 5px solid #c7783b; border-radius: 12px; padding: 12px 16px; margin-top: 8px; }
.aq-card.band-21-29, .aq-card.band-30-89, .aq-card.band-90\+ { border-left-color: #a3281d; }
.aq-card.band-1-6 { border-left-color: #e0b04a; }
.aq-card.on { box-shadow: 0 0 0 1px #002854; border-color: #002854; }
.aq-next { margin: 6px 0 4px; background: #eef3f8; border-radius: 8px; padding: 6px 10px; font-size: 13px; font-weight: 600; }
.aq-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--forest-soft); align-items: center; }
.aq-side { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.aq-side > b { font-size: 20px; } .aq-days { font-size: 12px; color: var(--forest-soft); }
.aq-btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; margin-top: 8px; }
.aq-btns .btn { width: auto; white-space: nowrap; text-decoration: none; }
@media (max-width: 700px) { .aq-card { grid-template-columns: 28px minmax(0, 1fr); } .aq-side { grid-column: 2; align-items: flex-start; } .aq-btns { justify-content: flex-start; } }

/* ---- Arrears conversation page ---- */
.th-next{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff7e6;border:1px solid #f1d9a5;border-radius:12px;padding:12px 16px;margin:0 0 14px}
.th-next.ok{background:#eef7f0;border-color:#cfe6d4;display:block}
.th-next-k{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#8a6a1f;margin-bottom:2px}
.th-card{padding:0;overflow:hidden}
.th-card>.ld-filters{padding:12px 14px 0}
.th-more{padding:6px 14px 0;font-size:13px}
.th-more summary{cursor:pointer;color:var(--muted,#6b6b66)}
.th-feed{display:flex;flex-direction:column;gap:10px;padding:14px;max-height:460px;overflow-y:auto;background:#f6f5f0;margin-top:10px;border-top:1px solid #ebe9e1;border-bottom:1px solid #ebe9e1}
.th-meta{display:block;font-size:11.5px;color:#7a7a72;margin:2px 0}
.th-msg{display:flex;justify-content:flex-end}
.th-bubble{max-width:82%;background:#e5f0ff;border-radius:14px 14px 4px 14px;padding:8px 12px;font-size:13.5px}
.th-msg.auto .th-bubble{background:#ececf1}
.th-note{align-self:flex-start;max-width:82%;background:#fff3b8;border-radius:4px 10px 10px 10px;padding:8px 12px;font-size:13.5px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.th-call{align-self:flex-start;display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #e3e1d8;border-radius:10px;padding:8px 12px;font-size:13.5px}
.th-ico{font-size:18px}
.th-event{text-align:center;font-size:12px;color:#7a7a72}
.th-event span{background:#e9e7df;border-radius:999px;padding:2px 10px}
.th-compose{padding:12px 14px 14px}
.ad-person{padding:8px 0;border-bottom:1px solid #eeece5}
.ad-person:last-of-type{border-bottom:0}
.ad-person-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}

/* ---- Bank accounts: switcher and reconcile panel ---- */
.bkx-switch{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.bkx-pick{flex:1 1 220px;max-width:340px;text-align:left;background:#fff;border:1px solid #e3e1d8;border-radius:14px;padding:12px 16px;display:flex;flex-direction:column;gap:2px;cursor:pointer;font:inherit;color:inherit}
.bkx-pick.on{border-color:#1b3a34;box-shadow:0 0 0 2px #1b3a34 inset}
.bkx-pick-kind{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#7a7a72}
.bkx-pick-name{font-weight:600}
.bkx-pick b{font-size:22px}
.bkx-flag{font-size:12px;border-radius:999px;padding:2px 10px;align-self:flex-start}
.bkx-flag.ok{background:#e4f3e8;color:#1f6b3a}
.bkx-flag.warn{background:#fff0d6;color:#8a5a00}
.bkx-card{padding:0;overflow:hidden}
.bkx-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 18px 6px}
.bkx-head h2{margin:0;font-size:20px}
.bkx-details{margin:4px 0 0;color:#6b6b66;font-size:13px}
.bkx-rec{margin:8px 18px 14px;padding:14px 16px;background:#fff7e6;border-radius:12px}
.bkx-rec.ok{background:#eef7f0}
.bkx-eq{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.bkx-eq small{display:block;font-size:12px;color:#6b6b66}
.bkx-eq b{font-size:22px}
.bkx-eq .warn b{color:#a35a00}
.bkx-eq .faint b{color:#9a9a92}
.bkx-op{font-size:20px;color:#9a9a92;padding-bottom:2px}
.bkx-bar{height:8px;border-radius:99px;background:#e6e3d8;margin-top:12px;overflow:hidden}
.bkx-bar span{display:block;height:100%;background:#2f7d4f}
.bkx-barnote{margin:6px 0 0;font-size:12.5px;color:#6b6b66}
.bkx-drop{margin:0 18px 14px;padding:14px 16px;border:2px dashed #d3d0c4;border-radius:12px;display:flex;flex-direction:column;gap:8px}
.bkx-drop.over{border-color:#1b3a34;background:#f1f6f4}
.bkx-drop span{display:block;font-size:13px;color:#6b6b66}
.bkx-card .bk-tabs{padding:0 18px}.bkx-card .bk-lines{padding:0 18px 14px}

/* ---- Landlord cards ---- */
.lc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 14px}
.lc-stat{background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:12px 16px}
.lc-stat b{display:block;font-size:22px}.lc-stat span{font-size:12.5px;color:#6b6b66}
.lc-stat.warn{background:#fff7e6;border-color:#f1d9a5}
.lc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:10px}
.lc-card{background:#fff;border:1px solid #e3e1d8;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.lc-card.open{grid-column:1/-1;border-color:#1b3a34}
.lc-top{display:flex;gap:12px;align-items:center}
.lc-ava{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:#1b3a34;flex:none}
.lc-ava.joint{background:#b3702a}.lc-ava.company{background:#3b5f9e}
.lc-who{flex:1;min-width:0}.lc-who .ct-name{display:block}
.lc-roll{text-align:right;line-height:1.2}.lc-roll b{display:block;font-size:17px}.lc-roll span{font-size:12px;color:#6b6b66}
.lc-props{list-style:none;margin:0;padding:0;font-size:13.5px;display:flex;flex-direction:column;gap:2px}
.lc-contact{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:#55554f;word-break:break-all}
.lc-flags{display:flex;gap:6px;flex-wrap:wrap}
.lc-flag{font-size:11.5px;border-radius:999px;padding:2px 9px;background:#fff0d6;color:#8a5a00}
.lc-flag.bad{background:#fde4e1;color:#a3281b}.lc-flag.soft{background:#eceae2;color:#6b6b66}
.lc-actions{display:flex;gap:8px;margin-top:auto}
.lc-card .ct-detail{border-top:1px solid #eeece5;padding-top:12px}

/* ---- Portfolio cards ---- */
.pf-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.pf-card{gap:12px}
.pf-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.pf-bal{text-align:right;line-height:1.2}.pf-bal b{display:block;font-size:20px}.pf-bal span{font-size:12px;color:#6b6b66}
.pf-bal.owe b{color:#a3281b}.pf-bal.held b{color:#1f6b3a}
.pf-props{list-style:none;margin:0;padding:8px 0;border-top:1px solid #eeece5;border-bottom:1px solid #eeece5;font-size:13px;display:flex;flex-direction:column;gap:4px}
.pf-props li{display:flex;justify-content:space-between;gap:10px}.pf-props em{font-style:normal;color:#55554f}.pf-props em.owe{color:#a3281b}
.pf-switches{display:flex;flex-direction:column;gap:8px}
.pf-switch{display:flex;gap:10px;align-items:center;text-align:left;background:#f6f5f0;border:1px solid #e3e1d8;border-radius:10px;padding:8px 12px;cursor:pointer;font:inherit;color:inherit}
.pf-knob{width:34px;height:20px;border-radius:99px;background:#c9c6ba;position:relative;flex:none;transition:background .15s}
.pf-knob::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.pf-switch.on .pf-knob{background:#2f7d4f}.pf-switch.on .pf-knob::after{transform:translateX(14px)}
.pf-sw-text b{display:block;font-size:13.5px}.pf-sw-text small{font-size:12px;color:#6b6b66}
.pf-meta{margin:0;font-size:12.5px;color:#55554f}

/* ---- Move Outs: stage pipeline and cards ---- */
.te-wrap{display:block}
.te-pipe{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.te-step{display:flex;flex-direction:column;align-items:flex-start;min-width:120px;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:10px 16px;text-decoration:none;color:inherit}
.te-step.active{background:#1b3a34;color:#fff;border-color:#1b3a34}
.te-step-n{font-size:22px;font-weight:700}.te-step-l{font-size:12.5px}
.te-arrow{align-self:center;color:#b0ad9f;font-size:22px}
.te-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.te-card{gap:10px}
.te-card.open{grid-column:1/-1}
.te-card-top{display:flex;gap:14px;align-items:center}
.te-count{flex:none;width:92px;text-align:center;background:#eef3f1;border-radius:12px;padding:8px 6px;line-height:1.15}
.te-count b{display:block;font-size:24px}.te-count span{font-size:11.5px;color:#55554f}
.te-count.soon{background:#fff0d6}.te-count.over{background:#fde4e1}.te-count.done{background:#e4f3e8}
.te-who{min-width:0}
.te-line{margin:0;font-size:12.5px;color:#55554f}
.te-progress{height:6px;border-radius:99px;background:#e6e3d8;overflow:hidden}.te-progress span{display:block;height:100%;background:#2f7d4f}
.te-card .te-stages{display:flex;gap:6px;flex-wrap:wrap}
.te-next{font-size:13px;background:#f6f5f0;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.te-next.idle{color:#7a7a72}
.te-next span{font-size:12px;color:#6b6b66}.te-next span.rr-over{color:#a3281b}
.te-card .rr-detail{border-top:1px solid #eeece5;padding-top:12px}
.lc-actions .rr-manage,.lc-actions .btn{width:auto;flex:none}
.te-card .rr-address{font-weight:600}

/* ---- Property gallery ---- */
.pg-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.pg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.pg-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e3e1d8;border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s}
.pg-card:hover{box-shadow:0 6px 18px rgba(20,20,19,.1);transform:translateY(-2px)}
.pg-photo{position:relative;height:130px;display:grid;place-items:center;font-size:44px;color:rgba(255,255,255,.85);background:linear-gradient(135deg,#2c5249,#1b3a34)}
.pg-photo.tone-warn{background:linear-gradient(135deg,#b3702a,#8a5a1f)}.pg-photo.tone-neutral{background:linear-gradient(135deg,#7d8a86,#55625e)}
.pg-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pg-status{position:absolute;left:10px;bottom:10px}.pg-hmo{position:absolute;right:10px;top:10px}
.pg-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:2px}
.pg-rent{font-size:18px;font-weight:700}
.pg-people{margin-top:8px;font-size:13px;display:flex;flex-direction:column}
.pg-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.pg-open{font-size:12px;background:#fff0d6;color:#8a5a00;border-radius:999px;padding:2px 9px}

/* ---- Tenancy runway, viewings board, inspections ---- */
.tr-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.tr-group{margin:0 0 20px}.tr-group header h2{margin:0;font-size:16px}.tr-group header h2 span{background:#e9e7df;border-radius:999px;font-size:12px;padding:1px 8px;margin-left:6px}.tr-group header p{margin:2px 0 8px;font-size:12.5px;color:#6b6b66}
.tr-card{display:flex;justify-content:space-between;gap:14px;background:#fff;border:1px solid #e3e1d8;border-left:5px solid #cfd8d4;border-radius:12px;padding:12px 16px;margin-bottom:8px}
.tr-card.urgent{border-left-color:#c8402f}.tr-card.soon{border-left-color:#d79a2b}.tr-card.renew{border-left-color:#3b5f9e}
.tr-main{flex:1;min-width:0}.tr-addr{font-weight:600;color:inherit}
.tr-note{margin-top:6px;font-size:12.5px;background:#f3f1ea;border-radius:6px;padding:4px 8px;display:inline-block}
.tr-bar{height:5px;border-radius:99px;background:#e6e3d8;margin-top:10px;overflow:hidden}.tr-bar span{display:block;height:100%;background:#1b3a34}
.tr-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.tr-side span{font-size:12.5px;color:#6b6b66}
.vb-board{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.vb-col{flex:0 0 250px;background:#efede5;border-radius:14px;padding:10px}
.vb-col header h2{margin:0;font-size:14px}.vb-col header h2 span{background:#fff;border-radius:999px;font-size:12px;padding:1px 8px;margin-left:4px}.vb-col header p{margin:2px 0 8px;font-size:12px;color:#6b6b66;min-height:16px}
.vb-card{background:#fff;border-radius:10px;padding:10px 12px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.vb-top{display:flex;gap:10px;align-items:center}.vb-ava{width:30px;height:30px;border-radius:50%;background:#1b3a34;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.vb-prop{margin:6px 0;font-size:13px}.vb-quote{margin:6px 0;padding:6px 8px;background:#f6f5f0;border-radius:6px;font-size:12.5px}
.vb-actions{display:flex;gap:6px;flex-wrap:wrap}.vb-empty{color:#9a9a92;font-size:12.5px;text-align:center;margin:10px 0}
.in-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}
.in-h{font-size:16px;margin:0 0 8px}
.in-card{display:flex;justify-content:space-between;gap:12px;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:12px 16px;margin-bottom:8px}
.in-card.bad{border-left:5px solid #c8402f}.in-card.ok{border-left:5px solid #2f7d4f}.in-card.soft{border-left:5px solid #cfd8d4}
.in-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.in-tag{font-size:11.5px;border-radius:999px;padding:2px 9px;background:#eceae2}.in-tag.bad{background:#fde4e1;color:#a3281b}.in-tag.ok{background:#e4f3e8;color:#1f6b3a}
.pg-status,.pg-hmo{background:#fff!important;color:#1b3a34!important;box-shadow:0 1px 3px rgba(0,0,0,.2)}

/* ---- Applicant cards ---- */
.ap-col{flex-basis:290px}
.ap-card{background:#fff;border-radius:10px;padding:12px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:8px}
.ap-want{display:flex;flex-direction:column;font-size:13.5px}.ap-want span{font-size:12.5px;color:#6b6b66}
.ap-when{font-size:12.5px;color:#55554f}.ap-when.hot b{color:#a35a00}
.ap-fit{font-size:12.5px;background:#f6f5f0;border-radius:8px;padding:6px 8px;color:#6b6b66}.ap-fit.yes{background:#e8f3ec;color:#1f5a35}

/* ---- Contractor cards ---- */
.ct-card-top{display:flex;gap:10px;align-items:center}
.ct-card-top .ct-main{flex:1;min-width:0}
.ct-jobbadge{text-align:center;background:#fff0d6;border-radius:10px;padding:4px 12px;line-height:1.1}
.ct-jobbadge.idle{background:#eceae2}.ct-jobbadge .ct-jobs{display:block;font-size:20px;font-weight:700}.ct-jobbadge small{font-size:11px;color:#6b6b66}
.ct-card .ct-trades{display:flex;gap:6px;flex-wrap:wrap}
.ct-health{border-left:4px solid #cfe6d4;padding-left:10px}.ct-health.bad{border-color:#c8402f}.ct-health.warn{border-color:#d79a2b}.ct-health.soft{border-color:#cfd8d4}
.ct-selbar{margin:8px 0 0;font-size:13px}

/* ---- Rent review cards ---- */
.rr-card{gap:10px}.rr-card.open{grid-column:1/-1}
.rr-money{display:flex;align-items:flex-end;gap:12px;background:#f6f5f0;border-radius:10px;padding:8px 12px}
.rr-money small{display:block;font-size:11.5px;color:#6b6b66}.rr-money b{font-size:18px}
.rr-money .up b{color:#1f6b3a}.rr-money i{font-style:normal;font-size:12px;background:#e4f3e8;color:#1f6b3a;border-radius:999px;padding:1px 8px;margin-left:6px}
.rr-arrow{font-size:20px;color:#9a9a92;padding-bottom:2px}.rr-hint{font-size:12.5px;color:#6b6b66;align-self:center}
.rr-card .rr-detail{border-top:1px solid #eeece5;padding-top:12px}

/* ---- Rent review page ---- */
.rv-steps{list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:0}
.rv-steps li{flex:1 1 150px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:10px 14px;font-size:13.5px;color:#7a7a72}
.rv-steps li span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eceae2;font-weight:700;flex:none}
.rv-steps li.done{color:#1f6b3a}.rv-steps li.done span{background:#2f7d4f;color:#fff}
.rv-steps li.now{border-color:#1b3a34;color:#141413;font-weight:600;box-shadow:0 0 0 2px #1b3a34 inset}.rv-steps li.now span{background:#1b3a34;color:#fff}
.rv-main{border-color:#1b3a34}
.rv-calc{font-size:13px;color:#55554f;margin:0 0 8px}
.rv-date{margin-left:auto;font-size:13px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.rv-decide{margin-top:14px;padding-top:12px;border-top:1px solid #eeece5}
.rv-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid #f0eee7;font-size:13.5px}.rv-row:last-child{border-bottom:0}.rv-row span{color:#6b6b66}

/* Maintenance desk */
.mt-panel{min-width:0}
.mt-h{font-size:15px;margin:18px 0 8px;display:flex;gap:8px;align-items:center}.mt-h:first-child{margin-top:0}.mt-h span{background:#eceae2;border-radius:999px;font-size:12px;padding:1px 9px;font-weight:600}
.mt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mt-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:10px 14px}
.mt-row>i{flex:none;width:10px;height:10px;border-radius:50%;background:#c9c6ba}.mt-row.bad>i{background:#c0533e}.mt-row.warn>i{background:#e0a030}
.mt-row>div{flex:1;min-width:0;display:flex;flex-direction:column}.mt-row b{font-size:14px}.mt-row span{font-size:13px;color:#55554f}
.mt-row .btn{width:auto;flex:none}
.mt-clear,.mt-sum{color:#6b6b66;margin:6px 0}
.mt-card.urgent{border-color:#d9a79c}
.mt-addr{font-size:12.5px;color:#6b6b66;text-decoration:none}.mt-addr:hover{text-decoration:underline}
.mt-issue{margin:2px 0 0;font-size:16px}
.mt-track{list-style:none;display:flex;margin:0;padding:0}
.mt-track li{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;font-size:10.5px;color:#8a8a82;text-align:center;line-height:1.15}
.mt-track li i{width:12px;height:12px;border-radius:50%;background:#e1ded3;position:relative;z-index:1}
.mt-track li:not(:first-child)::before{content:"";position:absolute;top:5px;left:-50%;width:100%;height:2px;background:#e1ded3}
.mt-track li.on i,.mt-track li.on:not(:first-child)::before,.mt-track li.now:not(:first-child)::before{background:#2f7d4f}
.mt-track li.on{color:#2f7d4f}.mt-track li.now{color:#141413;font-weight:700}.mt-track li.now i{background:#fff;border:3px solid #1b3a34;width:14px;height:14px;margin:-1px 0}
.mt-meta{display:flex;justify-content:space-between;gap:8px;font-size:13px;flex-wrap:wrap}.mt-none{color:#a3281b}
.mt-warn{margin:0;font-size:12.5px;color:#8a5a00;background:#fff7e6;border-radius:8px;padding:6px 10px}
.mt-actions{flex-wrap:wrap}.mt-actions .btn{width:auto;flex:none}
.mt-count{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mt-count b{font-size:30px}.mt-count span{font-size:13px;color:#6b6b66}.mt-count em{font-size:12.5px;color:#6b6b66;margin-left:auto;font-style:normal}
.mt-count.bad b{color:#a3281b}.mt-count.soft b{color:#2f7d4f}
.mt-det{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.mt-det .btn{width:auto}
.mt-lh{margin:12px 0 6px;font-size:13px}.mt-log{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto}
.mt-log li{font-size:13px;padding:6px 0;border-top:1px solid #eeece5}.mt-log li span{display:inline-block;min-width:92px;color:#8a8a82;margin-right:8px}
@media(max-width:700px){.mt-row{flex-wrap:wrap}.mt-row .btn{width:100%}}

/* Compliance health check */
.mt-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.mt-btns .btn{width:auto}
.cp-badges{display:flex;gap:6px;flex-wrap:wrap}
.cp-b{display:inline-flex;align-items:center;gap:6px;border:1px solid #e3e1d8;background:#fff;border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer;color:#141413}
.cp-b i{width:9px;height:9px;border-radius:50%;background:#2f7d4f}.cp-b.warn i{background:#e0a030}.cp-b.bad{border-color:#e6b4ab;background:#fdf1ef}.cp-b.bad i{background:#c0533e}.cp-b.soft i{background:#b9b6aa}
.cp-rate{flex:none;width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:700;background:#cfe8d6;color:#1c5b34}
.cp-rate.rA,.cp-rate.rB{background:#2fbf71;color:#fff}.cp-rate.rD{background:#f6e3a5;color:#7a5a00}.cp-rate.rE{background:#f4cf9a;color:#7a4200}.cp-rate.rF,.cp-rate.rG{background:#f2b3a8;color:#8a1f10}
@media(max-width:700px){.mt-btns{justify-content:flex-start;width:100%}.mt-btns .btn,.mt-row .mt-btns .btn{width:auto}}

/* Unpaid invoices */
.uv-amt{flex:none;font-size:15px;min-width:84px;text-align:right}
@media(max-width:700px){.uv-amt{text-align:left}}
.mt-row>.mt-btns{flex:none;flex-direction:row;max-width:52%;align-items:center}
.mt-row>div:first-of-type{flex:1 1 220px}
@media(max-width:700px){.mt-row>.mt-btns{max-width:100%;width:100%}}
.am-d{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#6b6b66}
.am-bal{display:block;font-weight:500;font-size:11px;color:#6b6b66}
.dp-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:18px;align-items:start;margin-top:14px}
.dp-side{display:flex;flex-direction:column;gap:14px}
.dp-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;font-size:13px}.dp-dl dt{color:#6b6b66}.dp-dl dd{margin:0;text-align:right;word-break:break-word}
.dp-warn{border-color:#c0533e}
@media(max-width:820px){.dp-grid{grid-template-columns:1fr}}
.nrl-alert{background:#e8f0f8;border:1px solid #c9d9ea;border-radius:10px;padding:10px 14px;margin:0 0 10px;font-size:13px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.nrl-alert.bad{background:#fbe9e5;border-color:#efc4ba;color:#8a2f1d}
.nrl-sub{margin:6px 0 0;padding-left:16px;font-size:12px;color:#6b6b66}
.nrl-close{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
#nrl-q{max-width:100%;min-width:0}.tr-tools .am-d{max-width:100%;flex-wrap:wrap}
.tr-tools select,.tr-tools input[type=date],.tr-tools .am-d{font:13px var(--font);color:var(--ink)}
.tr-tools select,.tr-tools input[type=date]{height:38px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);padding:0 10px}
.tr-tools .am-d{font-size:12px;font-weight:600;color:var(--forest-soft)}
#nrl-q{font-weight:500;font-size:13px}
.cal-bar{display:flex;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;align-items:center;margin:0 0 12px}
.cal-nav,.cal-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cal-title{font-size:16px;margin-left:6px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--white)}.seg button{border:0;background:none;padding:8px 12px;font:600 12.5px var(--font);color:var(--forest-soft);cursor:pointer}.seg button.on{background:var(--forest);color:#fff}
.cal-wrap{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start}
.cal-rail{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13px}
.cal-mini-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.cal-mini-h button{border:0;background:none;font-size:18px;cursor:pointer;padding:2px 8px}
.cal-mini-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.cal-mini-g i{font-style:normal;font-size:11px;color:#8a8a84}
.cal-mini-g button{position:relative;border:0;background:none;font:12px var(--font);padding:6px 0;border-radius:6px;cursor:pointer;color:var(--ink)}.cal-mini-g button.off{color:#b5b5ae}.cal-mini-g button.sel{background:#e9efe9}.cal-mini-g button.today{background:var(--forest);color:#fff}
.cal-mini-g u{position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--terracotta)}
.cal-find{display:block;margin:12px 0 0}.cal-find span{display:block;font-size:12px;font-weight:700;margin-bottom:4px}.cal-find input{width:100%;box-sizing:border-box;height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font:13px var(--font)}
.cal-h{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6b6b66;margin:14px 0 6px}
.cal-chk{display:flex;align-items:center;gap:7px;padding:3px 0;cursor:pointer}.cal-chk i{width:10px;height:10px;border-radius:3px;flex:none}
.cal-main{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cal-gh{display:grid;border-bottom:1px solid var(--line)}.cal-dh{border:0;background:none;padding:8px 4px;font:600 12px var(--font);color:var(--forest-soft);cursor:pointer;border-left:1px solid #eeece5}.cal-dh b{font-size:15px;color:var(--ink)}.cal-dh.today b{background:var(--forest);color:#fff;border-radius:50%;display:inline-block;min-width:26px;line-height:26px}
.cal-body{max-height:620px;overflow:auto}.cal-bi{display:grid;position:relative;min-width:640px}
.cal-hours{position:relative}.cal-hours span{position:absolute;right:6px;font-size:11px;color:#8a8a84;transform:translateY(-7px)}
.cal-col{position:relative;border-left:1px solid #eeece5;background-image:repeating-linear-gradient(to bottom,#eeece5 0,#eeece5 1px,transparent 1px,transparent 48px);cursor:cell}.cal-col.today{background-color:#f7f6f2}
.cal-now{position:absolute;left:0;right:0;border-top:2px solid #d64545;z-index:3;pointer-events:none}
.cal-ev{position:absolute;box-sizing:border-box;border:0;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 16%,#fff);border-radius:6px;padding:3px 6px;text-align:left;font:12px var(--font);color:var(--ink);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;gap:1px;z-index:2}
.cal-ev:hover{box-shadow:0 2px 8px rgba(0,0,0,.18)}.cal-ev-t{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev-s{font-size:11px;color:#55554f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-ev.linked{border-style:dashed;border-left-style:solid}.cal-ev.canc,.cal-chip.canc{opacity:.55;text-decoration:line-through}
.cal-mh{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.cal-mh span{padding:8px;font:600 12px var(--font);color:var(--forest-soft);text-align:center}
.cal-mg{display:grid;grid-template-columns:repeat(7,1fr)}.cal-cell{min-height:104px;border-left:1px solid #eeece5;border-top:1px solid #eeece5;padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0}.cal-cell.off{background:#faf9f5;color:#aaa}.cal-cell.today{background:#f1f6f1}
.cal-cn{border:0;background:none;font:700 12px var(--font);text-align:left;cursor:pointer;padding:2px 4px;align-self:flex-start}
.cal-chip{border:0;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 16%,#fff);border-radius:4px;font:11px var(--font);text-align:left;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--ink)}
.cal-more{border:0;background:none;font:600 11px var(--font);color:var(--forest-soft);text-align:left;cursor:pointer;padding:0 4px}
@media(max-width:820px){.cal-wrap{grid-template-columns:1fr}.cal-cell{min-height:70px}.cal-chip{font-size:10px}}
.cal-bar select{font:13px var(--font);color:var(--ink);height:36px;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:0 8px}
.cal-ev.short{flex-direction:row;align-items:center;gap:6px;padding:1px 6px}.cal-ev.short .cal-ev-s{display:none}
.cal-ev.short .cal-ev-t{font-size:11px}
.cb-top{display:flex;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;align-items:center;margin:0 0 12px}
.cb-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cb-title{font-size:17px;min-width:150px;text-align:center}
#cb-jump{height:36px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font:13px var(--font);background:var(--white);color:var(--ink)}
.cb-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px}.cb-filters .search-input{max-width:320px}
.cb-chips,.cb-ppl{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.cb-chip{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:5px 11px 5px 8px;font:600 12px var(--font);color:#8a8a84;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.cb-chip i{width:9px;height:9px;border-radius:50%;background:var(--c,#999);opacity:.35}.cb-chip.on{color:var(--ink);border-color:var(--c,#999);background:color-mix(in srgb,var(--c,#999) 10%,#fff)}.cb-chip.on i{opacity:1}
.cb-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:12px 0}
.cb-day{position:relative;border:1px solid var(--line);background:var(--white);border-radius:12px;padding:10px 6px 12px;text-align:center;cursor:pointer;font:inherit;overflow:hidden;display:flex;flex-direction:column;gap:2px}
.cb-day span{font-size:11px;font-weight:700;color:#8a8a84;text-transform:uppercase}.cb-day b{font-size:20px}.cb-day em{font-style:normal;font-size:11px;color:#6b6b66}
.cb-day u{position:absolute;left:0;bottom:0;height:4px;background:var(--terracotta)}.cb-day.today b{color:var(--terracotta)}.cb-day.on{background:var(--forest);border-color:var(--forest)}.cb-day.on *{color:#fff!important}
.cb-board{border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden}.cb-scroll{overflow-x:auto}
.cb-row{display:flex;border-bottom:1px solid #eeece5;min-width:max-content}.cb-row:last-child{border-bottom:0}
.cb-who{width:130px;flex:none;position:sticky;left:0;background:var(--white);z-index:4;display:flex;gap:8px;align-items:center;padding:8px 10px;border-right:1px solid var(--line);font-size:13px;font-weight:700;box-sizing:border-box}
.cb-who i{width:10px;height:10px;border-radius:50%;flex:none}.cb-who small{display:block;font-weight:500;font-size:11px;color:#8a8a84}
.cb-head{background:#faf9f5}.cb-hrs{position:relative;height:30px}.cb-hrs span{position:absolute;top:8px;font-size:11px;color:#8a8a84;padding-left:4px;border-left:1px solid #e3e1d9;height:22px}
.cb-lane{position:relative;cursor:cell;background-image:linear-gradient(to right,#eeece5 1px,transparent 1px)}.cb-lane.today{background-color:#fbfaf6}
.cb-now{position:absolute;top:0;bottom:0;border-left:2px solid #d64545;z-index:3;pointer-events:none}
.cb-ev{position:absolute;height:38px;box-sizing:border-box;border:0;border-top:3px solid var(--c);background:color-mix(in srgb,var(--c) 15%,#fff);border-radius:6px;padding:2px 6px;text-align:left;font:12px var(--font);color:var(--ink);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;z-index:2}
.cb-ev b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.cb-ev span{font-size:10.5px;color:#55554f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cb-ev:hover{box-shadow:0 2px 8px rgba(0,0,0,.2)}.cb-ev.linked{border-top-style:dashed}.cb-ev.canc,.cb-ag li.canc{opacity:.55}.cb-ev.canc b{text-decoration:line-through}
.cb-ag{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}
.cb-ag li{display:flex;gap:12px;align-items:center;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:10px;padding:8px 12px}
.cb-ag time{width:58px;flex:none;font-weight:700;font-size:13px}.cb-ag time small{display:block;font-weight:500;color:#8a8a84;font-size:11px}
.cb-ag li>div{flex:1;min-width:0}.cb-ag b{display:block;font-size:13.5px}.cb-ag span{font-size:12px;color:#6b6b66}
.cb-tag{font-style:normal;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--ink);border-radius:5px;padding:1px 6px;font-size:11px;font-weight:600;margin-right:4px}
.cb-warn{color:#c0533e;font-size:11px;font-weight:700;margin-left:6px}
.cb-wd{margin:0 0 6px}.cb-wdh{display:flex;gap:10px;align-items:center;margin:14px 0 6px}.cb-wdh h3{margin:0;font-size:14px}.cb-wdh em{font-style:normal;color:var(--terracotta);font-size:12px}.cb-wdh span{flex:1;font-size:12px;color:#8a8a84}
.cb-wd.today .cb-wdh h3{color:var(--terracotta)}
.cb-mh,.cb-mg{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cb-mh span{font:700 11px var(--font);color:#8a8a84;text-align:center;padding:4px 0;text-transform:uppercase}
.cb-mc{border:1px solid var(--line);border-radius:10px;background:var(--white);min-height:78px;padding:6px 8px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;font:inherit}.cb-mc b{font-size:13px}.cb-mc em{font-style:normal;font-size:20px;font-weight:800;color:var(--forest)}
.cb-mc.off{opacity:.45}.cb-mc.today{outline:2px solid var(--terracotta)}.cb-mc.lvl1{background:#eef4ee}.cb-mc.lvl2{background:#dbe9dc}.cb-mc.lvl3{background:#c3dcc6}.cb-mc.lvl4{background:#a9cdae}
.cb-mc span{display:flex;gap:3px}.cb-mc span i{width:7px;height:7px;border-radius:50%}
@media(max-width:700px){.cb-strip{gap:4px}.cb-day em{display:none}.cb-day b{font-size:16px}.cb-mc{min-height:56px;padding:4px}.cb-mc em{font-size:15px}.cb-who{width:96px}}
.bc-card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:16px;margin:0 0 14px}
.bc-count{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:14px}.bc-count b{font-size:24px;color:var(--forest)}
.bc-who{list-style:none;margin:10px 0 0;padding:0;max-height:240px;overflow:auto;font-size:13px;border:1px solid #eeece5;border-radius:8px}
.bc-who li{padding:6px 10px;border-bottom:1px solid #f1efe8}.bc-who li:last-child{border:0}.bc-who span{color:#6b6b66;font-size:12px}.bc-who li.skip{background:#fbf3f0}
.bc-prev{background:#faf9f5;border:1px dashed #d9d6cb;border-radius:10px;padding:12px 14px;margin-top:6px}.bc-prev small{display:block;color:#8a8a84;margin-bottom:4px}.bc-prev p{margin:6px 0 0;font-size:13.5px;line-height:1.5}
.field textarea{font-family:var(--font)}
.bc-card{box-sizing:border-box;min-width:0}.bc-card input,.bc-card select,.bc-card textarea{max-width:100%;box-sizing:border-box}.bc-count{min-width:0}
.bc-card .lc-actions{display:flex;flex-wrap:wrap;gap:8px}.bc-card .btn{white-space:normal}
.tm-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tm-rows li a{display:flex;justify-content:space-between;gap:10px;padding:7px 4px;border-bottom:1px solid #f1efe8;text-decoration:none;color:var(--ink);font-size:13px}.tm-rows li:last-child a{border:0}
.tm-rows li a:hover{background:#faf9f5}.tm-rows li.none{opacity:.5}.tm-rows li.bad b{color:#c0533e}.tm-rows li.warn b{color:#b8860b}
.tm-tick{width:24px;height:24px;border-radius:50%;border:2px solid #b5b5ae;background:#fff;color:#fff;font-size:14px;line-height:1;cursor:pointer;flex:none;padding:0}.tm-tick.on{background:var(--forest);border-color:var(--forest)}.tm-tick:hover{border-color:var(--forest)}
.rr-bars{display:flex;align-items:flex-end;gap:6px;height:130px;margin:0 0 14px;padding:8px 4px 0;border-bottom:1px solid var(--line,#e5e2d8)}
.rr-bars>div{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.rr-bars i{display:block;width:100%;max-width:34px;background:#2f7d6d;border-radius:4px 4px 0 0;min-height:2px}
.rr-bars span{font-size:11px;color:#6b6a63}
#main-content .table-wrap{max-width:100%;overflow-x:auto}
.rf-prompt{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1px solid #cfe3dd;background:#eef7f4;border-radius:10px}
.rf-prompt>div{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}.rf-prompt span{font-size:12.5px;color:#4f5a56}.rf-prompt a{font-size:12.5px;font-weight:700;color:var(--forest-soft,#2f7d6d);text-decoration:none}
.rf-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;border:1px dashed #b9b5a6;background:#faf6e8;border-radius:10px}
.rf-banner span{flex:1;min-width:200px;font-size:12.5px;color:#5c5a50}.rf-banner select{max-width:100%}
input[type=file]{font-family:var(--font);font-size:12.5px;color:var(--ink,#141413);max-width:100%}
input[type=file]::file-selector-button{font-family:var(--font);font-size:12.5px;font-weight:700;padding:6px 12px;margin-right:10px;border:1px solid #cfcabb;border-radius:8px;background:#fff;color:inherit;cursor:pointer}
input[type=file]::file-selector-button:hover{background:#f3f1e8}
/* Every form control uses the app font, whatever page or window it appears in. */
input,select,textarea,button,optgroup{font-family:var(--font)}
.dx-pulse{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 14px}
.dx-pulse a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--line,#e5e2d8);text-decoration:none;color:inherit}
.dx-pulse a b{font-size:24px;line-height:1.1}.dx-pulse a span{font-size:12px;color:#6b6a63}.dx-pulse a.warn{border-color:#e3b9a5;background:#fdf5f0}.dx-pulse a:hover{border-color:#2f7d6d}
.dx-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.dx-timeline{list-style:none;margin:0;padding:0}.dx-timeline li{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid #efece2}.dx-timeline li:first-child{border-top:0}
.dx-time{width:62px;flex:none;font-size:12.5px;font-weight:700;color:#4f5a56;padding-top:1px}.dx-timeline i{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none}
.dx-timeline div{min-width:0;display:flex;flex-direction:column}.dx-timeline span{font-size:12.5px;color:#6b6a63}
.dx-more{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--forest-soft,#2f7d6d);text-decoration:none}
.dx-need{list-style:none;margin:0;padding:0}.dx-need a{display:flex;align-items:center;gap:10px;padding:8px 2px;border-top:1px solid #efece2;text-decoration:none;color:inherit}.dx-need li:first-child a{border-top:0}
.dx-need i{width:9px;height:9px;border-radius:50%;flex:none;background:#d9a441}.dx-need i.bad{background:#c4553d}
.dx-need span{flex:1;min-width:0;display:flex;flex-direction:column}.dx-need small{font-size:11.5px;color:#7a786e}.dx-need b{font-size:14px}
.dx-empty{color:#7a786e;font-size:13px;margin:8px 0}
@media (max-width:700px){.dx-pulse{grid-template-columns:repeat(2,1fr)}}
.rp-funnel{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;margin:0 0 6px}
.rp-step{flex:1;min-width:96px;padding:12px;border:1px solid var(--line,#e5e2d8);border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:2px}
.rp-step b{font-size:26px;line-height:1.1}.rp-step span{font-size:12.5px;font-weight:700}.rp-step small{font-size:11.5px;color:#7a786e}
.rp-arrow{align-self:center;color:#b9b5a6;font-style:normal}
.rp-pair>div{align-items:center}.rp-bars{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center}.rp-bars i{display:block;width:44%;max-width:22px;background:#2f7d6d;border-radius:4px 4px 0 0;min-height:2px}
.rp-key{display:inline-block;width:10px;height:10px;border-radius:3px;background:#2f7d6d;vertical-align:middle}
.subnav-layout>.subnav-panel{min-width:0}
@media (max-width:760px){.subnav-layout{align-items:stretch}}
.en-open{margin:6px 0 4px;padding:10px 12px;border-radius:10px;background:#faf9f4;border:1px solid #efece2}.en-msg{margin:0 0 8px;font-size:13.5px;line-height:1.5}
.en-row small{font-weight:600;color:#7a786e}

.ob-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;align-items:start}
.ob-col{background:#f3f1ea;border-radius:14px;padding:10px;min-width:0}
.ob-col h3{display:flex;justify-content:space-between;align-items:center;margin:2px 4px 10px;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--forest)}
.ob-col h3 b{background:#fff;border-radius:999px;padding:1px 9px;font-size:12px}
.ob-card{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid #e3e1d8;border-radius:11px;padding:11px 12px;margin-bottom:8px;text-decoration:none;color:inherit}
.ob-card:hover{border-color:var(--forest)}
.ob-card-top{display:flex;align-items:center;gap:8px;min-width:0}.ob-card-top strong{overflow-wrap:anywhere}
.ob-card-money{font-size:13.5px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.ob-card-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.ob-card-foot .pd-avatar{margin-left:auto}
.ob-rival{font-size:11.5px;font-weight:700;background:#fff7e6;border:1px solid #f1d9a5;color:#8A6417;border-radius:999px;padding:2px 8px}
.ob-rival.is-best{background:#E7F1EA;border-color:#BFD8C6;color:#2E6B43}
.ob-none{margin:6px 4px;font-size:12.5px;color:#8a8a84}

.te-step.warn{background:#fff7e6;border-color:#f1d9a5}
.ap-list{display:flex;flex-direction:column;gap:10px}
.ap-list .ap-card{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid #e3e1d8;border-radius:14px;padding:14px 16px}
.ap-list .ap-card.is-risk{border-color:#e3a79b;background:#fff8f6}.ap-list .ap-card.is-muted{opacity:.75}
.ap-count{text-align:center;background:#f3f1ea;border-radius:12px;padding:10px 6px}
.ap-count b{display:block;font-size:28px;line-height:1.1;color:var(--forest)}.ap-count span{font-size:11.5px;color:#6b6b66}
.ap-card.is-risk .ap-count{background:#fbe4de}
.ap-dots{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0 4px}
.ap-dot{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid #cfcdc3;background:#fff;box-sizing:border-box;vertical-align:middle;margin-right:2px}
a.ap-dot:hover{transform:scale(1.2)}
.ap-dot.is-done{background:var(--forest);border-color:var(--forest)}
.ap-dot.is-pending{background:linear-gradient(90deg,#d98a63 50%,#fff 50%);border-color:#d98a63}
.ap-dot.is-attention{background:#c0392b;border-color:#c0392b}
.ap-key{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ap-key .ap-dot{width:12px;height:12px;margin-left:8px}
.ap-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
@media (max-width:700px){.ap-list .ap-card{grid-template-columns:72px minmax(0,1fr)}.ap-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
.ap-drawer{width:min(640px,100%)!important}
.sa{display:flex;flex-direction:column}
.sa-row{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid #ece9df;position:relative}
.sa-row:first-child{border-top:0}
.sa-dot{width:22px;height:22px;border-radius:50%;border:2px solid #cfcdc3;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;box-sizing:border-box;margin-top:1px}
.sa-row.is-done .sa-dot{background:var(--forest);border-color:var(--forest)}
.sa-row.is-open .sa-dot{border-color:#3b6ea5;background:#e6eefa}
.sa-row.is-skipped .sa-dot{background:#cfcdc3;border-color:#cfcdc3}
.sa-row.is-blocked{opacity:.6}
.sa-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sa-tools{margin-left:auto;display:flex;gap:10px;align-items:center}
.sa-skip{font-size:12px;color:#6b6b66;display:flex;align-items:center;gap:4px;cursor:pointer}
.sa-body{margin-top:8px;font-size:13px}
.sa-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 14px;background:#f7f5ee;border-radius:10px;padding:10px 12px;margin:6px 0}
.sa-kv span{display:block;font-size:11.5px;color:#7a7a74}.sa-kv b{font-weight:600;overflow-wrap:anywhere}
.sa-people{display:flex;flex-direction:column;gap:12px}
.sa-person{border:1px solid #e3e1d8;border-radius:12px;padding:10px 12px}.sa-person.is-done{border-color:#bfd8c6}
.sa-more summary{cursor:pointer;font-size:12.5px;color:var(--forest);margin:4px 0}
.sa-lines{border:1px solid #e3e1d8;border-radius:10px;overflow:hidden}
.sa-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;align-items:center;padding:9px 12px;border-top:1px solid #ece9df}.sa-line:first-child{border-top:0}
.sa-dep{padding:10px 12px;border-top:1px solid #ece9df}.sa-dep:first-child{border-top:0}
.sa-sum{margin-top:14px;padding-top:10px;border-top:2px solid #ece9df}
.sa-contacts{display:flex;flex-direction:column;gap:8px}
.sa-contact{display:flex;gap:12px;flex-wrap:wrap;background:#f7f5ee;border-radius:10px;padding:8px 12px}.sa-contact span{color:#6b6b66}
.sa-notes{margin-top:18px;padding-top:12px;border-top:1px solid #e3e1d8}
.sa-notes textarea{width:100%;box-sizing:border-box;border:1px solid #d9d6cb;border-radius:10px;padding:8px 10px;resize:vertical}
.sa-note{background:#f7f5ee;border-radius:10px;padding:8px 12px;margin-top:8px}.sa-note p{margin:2px 0 0}

/* Edit workflow */
.wf-group{margin:0 0 14px}.wf-group h4,.wf-add h4{margin:0 0 6px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#6b6a63)}
.wf-step{border:1px solid var(--border,#e5e2d8);border-radius:10px;padding:8px 10px;margin-bottom:6px;background:#fff}
.wf-step.is-off{opacity:.6}
.wf-line{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wf-tools{display:flex;gap:10px;align-items:center;flex:none}
.wf-tools .link-btn[disabled]{opacity:.3;cursor:default}
.wf-subs{display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 0 24px}
.wf-fixed{opacity:.6}
.wf-add{border-top:1px solid var(--border,#e5e2d8);padding-top:12px;margin:8px 0 12px}

/* Step cards on a single application: undo the list-page card grid that shares the class name */
.ap-board .ap-card{display:flex;flex-direction:column;align-items:stretch;grid-template-columns:none;gap:6px;text-align:left;width:100%;margin-bottom:8px;padding:12px;border:1px solid #e3e1d8;border-radius:10px}
.ap-board .ap-card>span{display:block;min-width:0;overflow-wrap:anywhere}

/* Plain data tables (referral reports, monthly figures) */
.data-table{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;border:1px solid #e3e1d8;border-radius:12px;overflow:hidden}
.data-table th{text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b6b66;background:#f6f5f0;padding:10px 12px;white-space:nowrap}
.data-table td{padding:10px 12px;border-top:1px solid #eeece4;vertical-align:top}
.data-table tbody tr:hover td{background:#faf9f5}
.table-wrap{margin:0 0 8px}

/* Single viewing */
.vb-link{color:inherit;text-decoration:none}.vb-link:hover{text-decoration:underline}
.vd-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:8px 0 16px;flex-wrap:wrap}
.vd-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.vd-main,.vd-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.vd-note{border-top:1px solid #eeece4;margin-top:10px;padding-top:8px}.vd-note p{margin:4px 0 0}
.vd-seg{display:flex;gap:6px}.vd-side .pd-check{display:flex;margin:6px 0}
@media (max-width:900px){.vd-grid{grid-template-columns:minmax(0,1fr)}}

/* Onboarding: release to market */
.ob-release{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.ob-release.is-done{display:block;background:#eef6f0;border-color:#cfe3d5}
.aml-person{margin-bottom:10px}
.ob-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media (max-width:900px){.ob-layout{grid-template-columns:minmax(0,1fr)}}

/* Landlord questionnaire page */
.piq-page{min-height:100vh;background:#faf9f5;padding:24px 16px;display:flex;justify-content:center}
.piq-card{width:100%;max-width:620px;background:#fff;border:1px solid #e3e1d8;border-radius:16px;padding:24px 22px;align-self:flex-start}
.piq-card h1{margin:0 0 8px;font-size:24px}.piq-brand{font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:12px;color:#6b6b66;margin:0 0 14px}
.piq-opt{font-weight:400;color:#8a8a84}
.piq-card .field{margin-bottom:12px}.piq-card input,.piq-card select,.piq-card textarea{width:100%;box-sizing:border-box}

/* Landlord's listing approval page */
.lap-ad { border: 1px solid var(--line, #e3e1dc); border-radius: 10px; padding: 14px 16px; margin: 14px 0 18px; background: #fbfaf8; }
.lap-ad h2 { font-size: 18px; margin: 4px 0 6px; }
.lap-ad ul { margin: 8px 0 0; padding-left: 18px; }
.lap-rent { font-weight: 700; margin: 0; }
.lap-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.lap-actions .btn { width: auto; }

/* Bank statement import: three steps */
.bi-steps { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 16px; flex-wrap: wrap; }
.bi-steps li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #7a7a70; padding: 6px 12px 6px 6px; border-radius: 999px; background: #f1efe8; }
.bi-steps li span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; background: #d9d6c9; color: #333; }
.bi-steps li.on { background: #1b3a34; color: #fff; }
.bi-steps li.on span { background: #fff; color: #1b3a34; }
.bi-steps li.done span { background: #1b3a34; color: #fff; }
.bi-card { background: #fff; border: 1px solid #e3e1da; border-radius: 12px; padding: 18px; max-width: 980px; }
.bi-card h2 { margin: 0 0 6px; font-size: 18px; }
.bi-drop { margin: 14px 0; padding: 24px; border: 2px dashed #d3d0c4; border-radius: 12px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.bi-drop.over { border-color: #1b3a34; background: #f1f6f4; }
.bi-actions { display: flex; gap: 12px; align-items: center; margin-top: 16px; flex-wrap: wrap; }
.bi-err { color: #a1301f; font-size: 13px; margin: 10px 0 0; }
.bi-prev th { white-space: nowrap; vertical-align: top; }
.bi-prev td { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-head td { font-weight: 600; background: #f7f6f1; }
.bi-tag { display: inline-block; margin-top: 2px; padding: 1px 8px; border-radius: 999px; background: #e4efe9; color: #1b3a34; font-size: 11px; font-weight: 600; }
.bi-mode { border: 0; padding: 0; margin: 12px 0; display: flex; flex-direction: column; gap: 4px; }
.bi-mode legend { font-weight: 600; font-size: 13px; padding: 0; margin-bottom: 4px; }
.bi-fields .field { min-width: 160px; }
.bi-sum { display: flex; gap: 10px; flex-wrap: wrap; margin: 12px 0; }
.bi-sum > div { background: #f7f6f1; border-radius: 10px; padding: 10px 14px; display: flex; flex-direction: column; min-width: 110px; }
.bi-sum b { font-size: 17px; }
.bi-sum span { font-size: 12px; color: #6b6b60; }
.bi-ok { color: #1f6a3d; font-size: 13px; }
.bi-bad { color: #a1301f; font-size: 13px; font-weight: 600; }
.bi-note { font-size: 12px; color: #8a6d1f; }
.bi-dup td { color: #8a8a80; }
.bi-problems { margin: 8px 0 12px; font-size: 13px; }
.bi-lines td.neg { color: #a1301f; }
.bi-lines .num, .bi-lines th.num { text-align: right; }
@media (max-width: 640px) { .bi-card { padding: 14px; } .bi-steps li { font-size: 12px; } }

.bi-warn { background: #fbf3dc; color: #6b5314; border-radius: 8px; padding: 9px 12px; font-size: 13px; margin: 8px 0; }
.bi-pill { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.bi-pill.ok { background: #e4efe9; color: #1b3a34; } .bi-pill.dup { background: #fbf3dc; color: #8a6d1f; } .bi-pill.rep { background: #e9e6f3; color: #4a3f7a; }
.bi-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 8px 0; font-size: 13px; }
.bi-tools select { width: auto; }
.bi-pager { display: flex; gap: 12px; align-items: center; justify-content: center; margin: 12px 0 0; font-size: 13px; }

.aq-todo { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; font-size: 12px; margin-top: 6px; color: var(--forest-soft); }
.aq-todo .late { color: #a3281d; font-weight: 600; }
.pz-tools { flex-wrap: wrap; }

.ws-h { font-size: 14px; margin: 14px 0 6px; display: flex; justify-content: space-between; } .ws-h span { font-weight: 600; color: var(--forest-soft); font-size: 13px; }
.ws-tbl { font-size: 13px; } .ws-tbl .num { text-align: right; } .ws-in { width: 90px; text-align: right; }
.ws-sum { display: flex; flex-direction: column; gap: 4px; background: var(--cream); border-radius: 10px; padding: 10px 14px; margin-top: 8px; }
.ws-sum > div { display: flex; justify-content: space-between; font-size: 13px; } .ws-sum .ws-pay { border-top: 1px solid var(--line); padding-top: 6px; margin-top: 2px; font-size: 15px; } .ws-sum .ws-pay.bad b { color: #a3281d; }

.pz-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 10px 0; }
.pz-tiles > div { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; display: flex; flex-direction: column; }
.pz-tiles small { color: var(--forest-soft); font-size: 12px; } .pz-tiles b { font-size: 18px; }
@media (max-width: 640px) { .pz-tiles { grid-template-columns: 1fr; } }

.nav-section-label > span { flex: 1; }
.nav-pin { background: none; border: 0; color: rgba(247, 246, 242, 0.3); cursor: pointer; font-size: 14px; line-height: 1; padding: 2px 6px; margin-right: 4px; border-radius: 6px; opacity: 0; transition: opacity 0.12s; }
.nav-section-label:hover .nav-pin, .nav-pin:focus-visible, .nav-pin.on { opacity: 1; }
.nav-pin:hover { color: #fff; background: rgba(247, 246, 242, 0.12); }
.nav-pin.on { color: #f5c76a; }
@media (hover: none) { .nav-pin { opacity: 0.7; } .nav-pin.on { opacity: 1; } }
.dp-sort{background:none;border:0;font:inherit;color:inherit;font-weight:600;cursor:pointer;padding:0}.dp-row{cursor:pointer}.dp-row:hover{background:var(--mist)}.data-table small{color:var(--forest-soft)}
.fo-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}@media(max-width:1100px){.fo-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.fo-grid4{grid-template-columns:1fr}}.fo-huge{font-size:56px}
.tp-head{display:flex;gap:16px;align-items:flex-start;margin:6px 0 14px;flex-wrap:wrap}.tp-head-main{flex:1;min-width:240px}.tp-menus{display:flex;gap:8px}
.tp-link{background:none;border:0;color:var(--forest);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.tp-menu{position:relative}.tp-menu summary{list-style:none;cursor:pointer;width:auto}.tp-menu summary::-webkit-details-marker{display:none}
.tp-pop{position:absolute;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid var(--mist);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:200px;padding:6px;z-index:20;display:flex;flex-direction:column}
.tp-pop a,.tp-pop button{padding:8px 10px;text-align:left;background:none;border:0;font:inherit;color:inherit;text-decoration:none;border-radius:6px;cursor:pointer}.tp-pop a:hover,.tp-pop button:hover{background:var(--cream)}
.tp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}@media(max-width:800px){.tp-grid{grid-template-columns:1fr}}
.tp-dl dd{overflow-wrap:anywhere}.tp-addbox{margin-top:16px}
.tp-ov{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}@media(max-width:1000px){.tp-ov{grid-template-columns:1fr}}
.tp-comp{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.tp-comp textarea{width:100%;font:inherit;padding:10px;border:1px solid var(--mist);border-radius:8px;resize:vertical}.tp-comp-foot{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tp-feedhead{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--mist);gap:8px;flex-wrap:wrap}.tp-feedtools{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--mist);flex-wrap:wrap}.tp-feedtools .search-input{flex:1;min-width:160px}
.tp-ev{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid var(--mist)}.tp-ev:last-child{border-bottom:0}.tp-ev-i{width:22px;text-align:center;color:var(--forest-soft)}.tp-ev-b{flex:1;min-width:0}.tp-ev-t{display:flex;justify-content:space-between;gap:10px;font-size:14px}.tp-ev-t time{color:var(--forest-soft);font-size:12px;white-space:nowrap}.tp-ev-s{font-size:13px;margin-top:4px}.tp-ev-body{font-size:13px;margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}.tp-ev-body.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tp-sec{background:#fff;border:1px solid var(--mist);border-radius:12px;margin-bottom:12px}.tp-sec summary{padding:12px 14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}.tp-sec summary::-webkit-details-marker{display:none}.tp-sec summary::before{content:'▾';color:var(--forest-soft)}.tp-sec:not([open]) summary::before{content:'▸'}.tp-sec-b{padding:4px 14px 14px;border-top:1px solid var(--mist);font-size:13px}
.tp-empty{text-align:center;color:var(--forest-soft);margin:14px 0}.tp-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--mist)}.tp-row:last-of-type{border-bottom:0}.tp-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.tp-mini{display:flex;gap:14px;margin:8px 0}.tp-mini button{background:none;border:0;border-bottom:2px solid transparent;font:inherit;cursor:pointer;padding:4px 0}.tp-mini button.on{border-color:var(--forest);font-weight:600}.tp-person{padding:6px 0}.tp-bank{margin-top:12px;padding-top:10px;border-top:1px solid var(--mist)}.tp-cert{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--mist)}.tp-cert .pill{align-self:flex-start}
.tab-bar#tp-tabs{overflow-x:auto;white-space:nowrap;max-width:100%;display:flex}.tab-bar#tp-tabs .tab{flex:0 0 auto}
.tp-ov>*,.tp-ov-main,.tp-ov-side,.tp-head-main{min-width:0}#main-content{min-width:0}
.tp-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}@media(max-width:900px){.tp-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tp-tile{background:#fff;border:1px solid var(--mist);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.tp-tile b{font-size:20px;font-family:var(--font-display,inherit)}.tp-tile span{font-size:12px;color:var(--forest-soft)}.tp-tile.warn{border-color:var(--terracotta);background:var(--terracotta-soft)}
.tp-attn{border-left:4px solid var(--terracotta);background:#fff;border-radius:10px;padding:12px 16px;margin-bottom:18px;border-top:1px solid var(--mist);border-right:1px solid var(--mist);border-bottom:1px solid var(--mist)}.tp-attn.clear{border-left-color:var(--forest)}.tp-attn h3{margin:0 0 6px;font-size:15px}.tp-attn-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;font-size:13px;border-top:1px solid var(--mist)}.tp-attn-row.bad span::before{content:'● ';color:var(--danger)}.tp-attn-row.warn span::before{content:'● ';color:#C98A2B}
.tp-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}@media(max-width:1100px){.tp-three{grid-template-columns:1fr}}.tp-col{min-width:0}.tp-h{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--forest-soft);margin:0 0 8px}
.tp-pan{background:#fff;border:1px solid var(--mist);border-radius:12px;padding:12px 14px;margin-bottom:12px}.tp-pan h3{margin:0 0 6px;font-size:14px;display:flex;align-items:center;gap:8px}.tp-pan-b{font-size:13px}
.tp-tl .tp-ev{border-left:2px solid var(--mist);margin-left:22px;padding-left:22px;position:relative;border-bottom:0}.tp-tl .tp-ev-i{position:absolute;left:-14px;top:10px;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--mist);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--forest)}
.tp-tl{background:#fff;border:1px solid var(--mist);border-radius:12px;margin-top:12px}
.tp-pan>summary{list-style:none;cursor:pointer;margin:0;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}.tp-pan>summary::-webkit-details-marker{display:none}
.tp-tri{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--forest-soft);transition:transform .15s}.tp-pan:not([open])>summary .tp-tri{transform:rotate(-90deg)}
.tp-pan[open]>summary{margin-bottom:8px}.tp-pan>summary:hover .tp-tri{border-top-color:var(--forest)}
.tp-formcols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}@media(max-width:1000px){.tp-formcols{grid-template-columns:1fr}}
.tp-card{background:#fff;border:1px solid var(--mist);border-radius:12px;padding:14px 16px;margin-bottom:14px}.tp-card h3{margin:0 0 10px;font-size:15px;display:flex;gap:8px;align-items:center}.tp-ico{width:26px;height:26px;border-radius:8px;background:var(--cream);display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.tp-people{list-style:none;margin:0 0 10px;padding:0}.tp-people li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--mist)}.tp-pname{flex:1;min-width:0;display:flex;flex-direction:column}.tp-pname small{color:var(--forest-soft);overflow-wrap:anywhere}.tp-star{background:none;border:0;font-size:18px;cursor:pointer;color:var(--forest-soft)}.tp-star.on{color:#C98A2B}.tp-rm{background:none;border:0;color:var(--danger);cursor:pointer;font:inherit}
.tp-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:560px){.tp-grid2{grid-template-columns:1fr}}.tp-f{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.tp-f label{font-size:12px;color:var(--forest-soft)}.tp-f small{color:var(--forest-soft);font-size:11px}.tp-f input,.tp-f select{width:100%}
.tp-check{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;margin:8px 0}.tp-check small{flex-basis:100%;margin-left:24px;color:var(--forest-soft)}.tp-quick{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--forest-soft);margin:2px 0 8px}
.tp-feerow{display:flex;gap:6px}.tp-feerow input{flex:1}.tp-feerow select{width:auto}
.tp-rt{border:1px solid var(--mist);border-radius:8px;overflow:hidden}.tp-rt-bar{display:flex;gap:4px;padding:6px;border-bottom:1px solid var(--mist);background:var(--cream)}.tp-rt-bar button{border:1px solid var(--mist);background:#fff;border-radius:6px;padding:4px 10px;cursor:pointer;font:inherit}.tp-rt-body{min-height:110px;padding:10px;outline:none;font-size:13px}
.tp-savebar{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:12px 16px;background:#fff;border:1px solid var(--mist);border-radius:12px;box-shadow:0 -4px 16px rgba(0,0,0,.06);opacity:.6;transition:opacity .15s}.tp-savebar.show{opacity:1;border-color:var(--terracotta)}.tp-savebar span{margin-right:auto;font-size:13px}
.ico{vertical-align:-3px;flex:none}.tp-ev-i .ico{vertical-align:middle}.tp-ico .ico{vertical-align:middle}.pd-log-icon .ico,.topbar-notif-icon .ico{vertical-align:middle}.topbar-menu-item .ico{vertical-align:-2px;margin-right:4px}.tp-star{display:inline-flex;align-items:center}

/* Tenancy documents shelf */
.td{position:relative}.td.over::after{content:"Drop to add";position:absolute;inset:0;background:rgba(0,40,84,.08);border:2px dashed var(--navy,#002854);border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--navy,#002854);z-index:5;pointer-events:none}
.td-top{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-bottom:14px}
.td-drop{flex:1;min-width:260px;display:flex;gap:14px;align-items:center;border:2px dashed var(--mist);border-radius:14px;padding:14px 18px;cursor:pointer;background:#fff}.td-drop:hover{border-color:var(--navy,#002854)}
.td-drop small{display:block;color:var(--muted,#6b7280);font-size:12px;margin-top:2px}.td-drop-i{width:44px;height:44px;border-radius:12px;background:var(--cream);display:flex;align-items:center;justify-content:center;flex:none}
.td-create{align-self:center}.td-create summary{display:inline-block;width:auto}
.td-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.td-chip{border:1px solid var(--mist);background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}.td-chip span{font-size:11px;background:var(--cream);border-radius:999px;padding:1px 7px}
.td-chip.on{background:var(--navy,#002854);color:#fff;border-color:var(--navy,#002854)}.td-chip.on span{background:rgba(255,255,255,.2)}
.td-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.td-tools input[type=search]{flex:1;min-width:200px}.td-tools label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted,#6b7280)}
.td-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:var(--cream);border-radius:12px;padding:12px;margin-bottom:12px}.td-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted,#6b7280)}
.td-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.td-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--mist);border-radius:14px;padding:12px;position:relative}
.td-ft{width:52px;flex:none;border-radius:10px;padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--cream);color:var(--navy,#002854)}.td-ft small{font-size:10px;font-weight:700;letter-spacing:.02em}
.td-ft-PDF{background:#fdecea;color:#b3261e}.td-ft-Image{background:#e8f3ee;color:#1d6b45}.td-ft-Word,.td-ft-Document{background:#e8eef8;color:#244a8f}.td-ft-Spreadsheet{background:#eaf5ef;color:#1d6b45}
.td-body{flex:1;min-width:0}.td-name{font-weight:600;overflow-wrap:anywhere}.td-name a{color:inherit}.td-desc{font-size:13px;color:var(--muted,#6b7280);margin:2px 0 6px}
.td-meta{display:flex;gap:6px 10px;flex-wrap:wrap;font-size:12px;color:var(--muted,#6b7280);align-items:center}
.td-menu summary{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px}.td-menu summary:hover{background:var(--cream)}
.td-dots{display:flex;flex-direction:column;gap:3px}.td-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;display:block}
.td-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:13px;color:var(--muted,#6b7280);flex-wrap:wrap;gap:8px}
.td-pgs{display:flex;gap:4px}.td-pg{min-width:30px;height:30px;border:1px solid var(--mist);background:#fff;border-radius:8px;font:inherit;cursor:pointer}.td-pg.on{background:var(--navy,#002854);color:#fff;border-color:var(--navy,#002854)}
.td-card,.td-body{text-align:left}.td-name a,.td-name .link-btn{color:var(--navy,#002854);text-decoration:none;text-align:left;font-weight:600;padding:0}.td-name a:hover{text-decoration:underline}
.td-create summary{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px}

/* Inspections: tenancy tab and inspection page */
.pill-info{background:#e5eefb;color:#244a8f}
.ip-tabhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.ip-tabhead h2{margin:0 0 4px;font-size:20px}.ip-tabhead p{margin:0;color:var(--muted,#6b7280);font-size:14px}
.ip-list{display:flex;flex-direction:column;gap:10px}
.ip-row{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--mist);border-radius:14px;padding:12px 16px;text-decoration:none;color:inherit}.ip-row:hover{border-color:var(--navy,#002854);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.ip-date{width:74px;flex:none;text-align:center;background:var(--cream);border-radius:10px;padding:8px 4px}.ip-date b{display:block;font-size:26px;line-height:1}.ip-date span{font-size:11px;color:var(--muted,#6b7280)}
.ip-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.ip-sub{font-size:13px;color:var(--muted,#6b7280);margin-left:6px}
.ip-chips{display:flex;gap:8px;flex-wrap:wrap}.ip-chip{display:inline-flex;gap:5px;align-items:center;font-size:12px;border:1px solid var(--mist);border-radius:999px;padding:3px 10px;color:var(--muted,#6b7280)}.ip-chip.ok{color:#1d6b45;border-color:#bfe0cf;background:#f0f8f4}
.ip-go{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--navy,#002854);font-weight:600}.ip-ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ip-top{align-self:flex-start;flex-wrap:wrap}.ip-top .btn{white-space:nowrap}
.ip-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}@media(max-width:900px){.ip-cols{grid-template-columns:1fr}}
.ip-main,.ip-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.ip-steps{list-style:none;margin:6px 0 14px;padding:0;display:flex;gap:6px;flex-wrap:wrap}.ip-steps li{flex:1;min-width:120px;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--cream)}.ip-steps li.ok{background:#f0f8f4}.ip-steps small{color:var(--muted,#6b7280);font-size:12px}
.ip-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--mist);display:flex;align-items:center;justify-content:center;margin-bottom:4px;background:#fff}.ip-steps li.ok .ip-dot{background:#1d6b45;border-color:#1d6b45;color:#fff}
.ip-dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0 0 12px;font-size:14px}.ip-dl dt{color:var(--muted,#6b7280)}.ip-dl dd{margin:0;font-weight:600}
.ip-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.ip-rephead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.ip-rephead .tp-menu summary{display:inline-flex;width:auto}
.ip-rep{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px}.ip-rep li:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;background:#d98a1c}.ip-rep li.ok:before{background:#1d6b45}
.ip-file{display:flex;gap:12px;align-items:center;border:1px solid var(--mist);border-radius:12px;padding:10px 12px}.ip-file>div{flex:1;min-width:0;overflow-wrap:anywhere}.ip-file small{display:block;color:var(--muted,#6b7280)}

/* Tenancy settings */
.tp-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.tp-opt{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--mist);border-radius:14px;padding:14px;cursor:pointer;background:#fff}.tp-opt.on{border-color:var(--navy,#002854);background:#f4f7fb}
.tp-opt input{margin-top:3px;accent-color:var(--navy,#002854)}.tp-opt small{display:block;color:var(--muted,#6b7280);font-size:12.5px;margin-top:3px;line-height:1.4}
.tp-set{display:flex;flex-direction:column;gap:14px}

/* Tenancy accounting */
.ac-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.ac-tile{background:#fff;border:1px solid var(--mist);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;border-left:4px solid var(--mist)}.ac-tile.bad{border-left-color:#c0533e}.ac-tile.ok{border-left-color:#1d6b45}
.ac-tile span{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7280)}.ac-tile b{font-size:26px}.ac-tile small{color:var(--muted,#6b7280);font-size:12.5px}
.ac-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.ac-head .tp-menu summary{display:inline-flex;width:auto}.ac-seg{margin:0}
.ac-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.ac-tools .search-input{flex:1;min-width:200px}.ac-tools label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted,#6b7280)}
.ac-table td,.ac-table th{white-space:nowrap}.ac-table td:nth-child(3){white-space:normal}.ac-void td{color:var(--muted,#6b7280);text-decoration:line-through}.ac-void td .pill{text-decoration:none}

/* Tenancy deposits */
.dt-tab{display:flex;flex-direction:column;gap:14px}
.dt-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.dt-amt{font-size:28px;font-weight:700}.dt-sub{color:var(--muted,#6b7280);font-size:14px;margin-top:2px}
.dt-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dt-btns .tp-menu summary{display:inline-flex;width:auto}
.dt-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 28px}.dt-refund{background:var(--cream);border-radius:12px;padding:10px 14px}.dt-h{font-weight:700;color:inherit!important}

/* Tenancy history */
.hs-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.hs-nav button{border:1px solid var(--mist);background:#fff;border-radius:999px;padding:6px 16px;font:inherit;font-size:13.5px;cursor:pointer}.hs-nav button.on{background:var(--navy,#002854);color:#fff;border-color:var(--navy,#002854)}
.hs-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.hs-h{margin:18px 0 6px}

/* Tenancy tasks */
.tk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tk-row{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--mist);border-radius:12px;padding:10px 12px;background:#fff}.tk-row.done .tk-main b{text-decoration:line-through;color:var(--muted,#6b7280)}
.tk-tick{width:24px;height:24px;border-radius:50%;border:2px solid var(--mist);background:#fff;cursor:pointer;flex:none;color:#fff;font-size:13px;line-height:1;margin-top:1px}.tk-tick.on{background:#1d6b45;border-color:#1d6b45}
.tk-main{flex:1;min-width:0}.tk-meta{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted,#6b7280);margin-top:4px;align-items:center}
.tk-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 12px;text-align:center}.tk-empty small{color:var(--muted,#6b7280)}

/* Tenancy pages on phones */
@media (max-width:640px){
  .tp-head{gap:10px}.tp-head .mo-photo{width:56px;height:56px;flex:none}
  .tp-head-main{flex:1 1 calc(100% - 70px);min-width:0}.tp-head-main .page-title{font-size:24px}
  .tp-menus{flex:1 1 100%;margin-left:0;flex-wrap:wrap}.tp-menus .tp-menu{flex:1}.tp-menus .tp-menu summary{width:100%;text-align:center}
  .ip-top{flex:1 1 100%}.ip-top .btn{flex:1}
  .tp-comp .seg{display:flex;max-width:100%;overflow-x:auto}.tp-comp .seg-btn{flex:1 0 auto}
  .ip-row{flex-wrap:wrap}.ip-go{display:none}.ac-head .tp-menu,.dt-btns{width:100%}
}

/* Inspection journey */
.jr-top{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin:6px 0 18px}
.jr-addr{color:var(--ink);text-decoration:none}.jr-addr:hover{text-decoration:underline}
.jr-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.jr-tools .tp-menu{position:relative}.jr-tools .tp-pop{right:0;left:auto}
.jr{list-style:none;margin:0;padding:0;max-width:760px}
.jr-step{position:relative;display:flex;gap:14px;padding-bottom:16px}
.jr-step::before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--line)}
.jr-step:last-child::before{display:none}
.jr-dot{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--white);border:2px solid var(--line);color:var(--forest-soft);z-index:1}
.jr-step.done .jr-dot{background:var(--forest);border-color:var(--forest);color:#fff}
.jr-step.done::before{background:var(--forest)}
.jr-step.now .jr-dot{border-color:var(--terracotta);color:var(--terracotta);box-shadow:0 0 0 4px var(--terracotta-soft)}
.jr-card{flex:1;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.jr-step.now .jr-card{border-color:var(--terracotta)}
.jr-step.wait .jr-card{background:transparent;border-style:dashed;opacity:.75}
.jr-head{display:flex;flex-direction:column;gap:2px}.jr-head b{font-size:15px}
.jr-sum{color:var(--forest-soft);font-size:13px}
.jr-body{margin-top:12px;display:flex;flex-direction:column;gap:10px;text-align:left}
.jr-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--terracotta-soft);border:1px solid var(--terracotta);border-radius:10px;padding:12px 16px;margin-bottom:16px;max-width:760px}
.jr-whos{display:flex;gap:8px;flex-wrap:wrap}
.jr-who{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px}.jr-who.ok{border-color:var(--forest);background:rgba(22,51,47,.05)}
.ip-scrim{position:fixed;inset:0;background:rgba(22,51,47,.35);z-index:60}
.ip-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--cream);z-index:61;display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.18);text-align:left}
.ip-drawer-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--white)}
.ip-dtabs{padding:10px 16px 0}
.ip-drawer-body{flex:1;overflow-y:auto;padding:14px 16px}
@media (max-width:640px){.jr-step{gap:10px}.jr-card{padding:10px 12px}.jr-tools{width:100%}.jr-tools>*{flex:1}.jr-tools .btn{width:100%!important}}
.jr-who>b{margin-right:4px}.jr-who>span:first-child{margin-right:2px}

/* History timeline */
.hs-btns{display:flex;gap:8px;flex-wrap:wrap}
.hs-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.hs-chips button{border:0;background:transparent;border-bottom:2px solid transparent;padding:4px 2px;margin-right:12px;font:inherit;font-size:13.5px;color:var(--forest-soft);cursor:pointer}.hs-chips button.on{color:var(--ink);font-weight:700;border-color:var(--terracotta)}.hs-chips small{opacity:.7}
.hs-line{list-style:none;margin:0 0 10px;padding:0}
.hs-ev{position:relative;display:grid;grid-template-columns:110px 1fr;gap:6px 18px;padding-bottom:14px}
.hs-ev::before{content:"";position:absolute;left:123px;top:14px;bottom:-4px;width:2px;background:var(--line)}.hs-ev:last-child::before{display:none}
.hs-node{position:absolute;left:118px;top:7px;width:12px;height:12px;border-radius:50%;background:var(--white);border:3px solid var(--forest);z-index:1}
.hs-ev.review .hs-node{border-color:var(--terracotta)}.hs-ev.notice .hs-node{border-color:var(--danger)}.hs-ev.renewal .hs-node{border-color:#4a7fa8}.hs-ev.future .hs-node{border-style:dashed}
.hs-when{text-align:right;font-size:13px;font-weight:600;padding-top:3px;padding-right:20px}.hs-when small{display:block;font-weight:400;color:var(--terracotta)}
.hs-card{grid-column:2;margin-left:20px;border:1px solid var(--line);border-radius:10px;background:var(--white);text-align:left}
.hs-card summary{list-style:none;cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 14px}.hs-card summary::-webkit-details-marker{display:none}
.hs-card summary::after{content:"▸";margin-left:auto;font-size:11px;color:var(--forest-soft)}.hs-card[open] summary::after{content:"▾"}
.hs-det{padding:0 14px 12px;border-top:1px solid var(--line);padding-top:10px}
.hs-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 16px;margin:0 0 6px}.hs-kv dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--forest-soft)}.hs-kv dd{margin:1px 0 0;font-weight:600}
.hs-link{display:inline-block;margin-top:4px;font-size:13.5px}
.hs-sub{margin:8px 0 0;padding:0;list-style:none;font-size:13px}.hs-sub li{padding:3px 0;border-top:1px dashed var(--line)}.hs-sub span{display:block;color:var(--forest-soft);font-size:12px}
@media (max-width:640px){.hs-ev{grid-template-columns:1fr;padding-left:22px}.hs-ev::before{left:5px}.hs-node{left:0}.hs-when{text-align:left;padding:0 0 0 0}.hs-card{grid-column:1;margin-left:0}}

/* Statement-style ledger and receipt setting */
.ac-sort{display:flex;justify-content:flex-end;margin:4px 0}
.ac-stmt{display:flex;flex-direction:column;gap:14px;text-align:left}
.ac-mon{border:1px solid var(--line);border-radius:10px;background:var(--white);overflow:hidden}
.ac-mon>header{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;padding:9px 14px;background:rgba(22,51,47,.05);font-size:13px}.ac-mon>header b{margin-right:auto;font-size:14px}.ac-mon>header em{font-style:normal;font-weight:700}
.ac-row{display:grid;grid-template-columns:62px 1fr auto 130px 28px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);border-left:4px solid transparent}
.ac-row.dr{border-left-color:var(--terracotta)}.ac-row.cr{border-left-color:var(--forest)}.ac-row.void{opacity:.55;border-left-color:var(--line)}.ac-row.void .ac-what b{text-decoration:line-through}
.ac-day{font-size:13px;font-weight:600}.ac-what small,.ac-amt small{display:block;color:var(--forest-soft);font-size:12px}.ac-amt{text-align:right}.ac-amt b{font-size:15px}.ac-amt small.is-arrears{color:var(--danger)}
.ac-row .ip-chip{justify-self:start}
.rc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.rc-seg{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--white)}.rc-seg button{flex:1;border:0;background:transparent;padding:11px 8px;font:inherit;font-weight:600;cursor:pointer;border-right:1px solid var(--line)}.rc-seg button:last-of-type{border-right:0}.rc-seg button.on{background:var(--forest);color:#fff}
.rc-seg p{flex:1 1 100%;margin:0;padding:10px 12px;font-size:13px;color:var(--forest-soft);border-top:1px solid var(--line)}
.rc-mail{border:1px dashed var(--line);border-radius:10px;padding:10px 14px;background:var(--white)}.rc-mail small{color:var(--forest-soft)}.rc-mail p{margin:4px 0 0;font-size:13px}.rc-mail.off{opacity:.55}.rc-mail.off div{display:none}
@media (max-width:760px){.rc-grid{grid-template-columns:1fr}.ac-row{grid-template-columns:1fr auto 28px;grid-template-areas:"w a m" "d c c"}.ac-row .ac-day{grid-area:d}.ac-row .ac-what{grid-area:w}.ac-row .ac-amt{grid-area:a}.ac-row .ip-chip,.ac-row>span:not(.ac-day){grid-area:c}.ac-row .td-menu{grid-area:m}}

/* Arrears chase flow */
.ad-hbtns{display:flex;align-items:flex-start}
.ad-flow{display:flex;flex-direction:column;gap:14px;max-width:860px}
.ad-ladder{list-style:none;margin:0;padding:0;display:flex;gap:0;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ad-ladder li{flex:1;min-width:0;padding:10px 12px;border-right:1px solid var(--line);display:grid;grid-template-columns:24px 1fr;column-gap:8px;align-items:center;text-align:left}.ad-ladder li:last-child{border-right:0}
.ad-ladder li span{grid-row:span 2;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:2px solid var(--line);color:var(--forest-soft)}
.ad-ladder li b{font-size:13px;line-height:1.2}.ad-ladder li small{color:var(--forest-soft);font-size:11.5px}
.ad-ladder li.done span{background:var(--forest);border-color:var(--forest);color:#fff}.ad-ladder li.now{background:var(--terracotta-soft)}.ad-ladder li.now span{border-color:var(--terracotta);color:var(--terracotta)}
.ad-last{margin:0 0 12px;font-size:13px;text-align:left}.ad-last span{font-weight:700;margin-right:6px}.ad-last em{font-style:normal;color:var(--forest-soft)}
.ad-trio{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media (max-width:760px){.ad-ladder{flex-direction:column}.ad-ladder li{border-right:0;border-bottom:1px solid var(--line)}.ad-trio{grid-template-columns:1fr}}
.nrl-table tfoot th{border-top:2px solid var(--ink);background:rgba(22,51,47,.05)}.nrl-btns{white-space:nowrap}.nrl-btns .btn{margin-left:6px;width:auto}.nrl-sub-row td{background:rgba(22,51,47,.03)}

/* Dashboard: scoreboard rows and side panels */
.bd{margin-top:22px}
.bd-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:16px}
.bd-tabs{display:flex;gap:2px;flex-wrap:wrap}.bd-tabs button{border:0;background:transparent;font:inherit;font-weight:600;padding:9px 14px;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--forest-soft);cursor:pointer}.bd-tabs button.on{color:var(--ink);border-color:var(--terracotta)}.bd-tabs .bd-plus{font-weight:500;font-size:13px}
.bd-acts{display:flex;gap:8px;padding-bottom:8px;align-items:center}.bd-acts .tp-pop,.bd-menu .tp-pop{right:0;left:auto;min-width:160px}
.bd-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:20px;align-items:start}
.bd-score{display:flex;flex-direction:column;gap:12px;text-align:left}
.bd-grp{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.bd-grp>summary{list-style:none;cursor:pointer;padding:10px 16px;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--forest-soft);display:flex;gap:8px;align-items:center;background:rgba(22,51,47,.04)}.bd-grp>summary::-webkit-details-marker{display:none}
.bd-grp>summary::before{content:"▸";font-size:10px}.bd-grp[open]>summary::before{content:"▾"}.bd-grp>summary span{font-weight:500;opacity:.7}
.bd-rows{list-style:none;margin:0;padding:0}
.bd-row{display:grid;grid-template-columns:minmax(0,1.3fr) 64px minmax(0,1fr) 28px;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--line)}
.bd-lab b{display:block;font-size:14px}.bd-lab small{color:var(--forest-soft);font-size:12px}
.bd-val{border:0;background:transparent;font:inherit;font-size:28px;font-weight:700;letter-spacing:-.02em;text-align:right;cursor:pointer;padding:0 4px;border-radius:6px}.bd-val:hover{background:var(--terracotta-soft)}
.bd-mid{display:flex;flex-direction:column;gap:3px;font-size:12px;min-width:0}
.bd-goal{display:flex;align-items:center;gap:6px;color:var(--forest-soft)}.bd-goal-bar{flex:1;max-width:90px;height:5px;border-radius:99px;background:var(--mist);overflow:hidden}.bd-goal-bar i{display:block;height:100%;background:var(--terracotta)}
.bd-goalbtn{align-self:flex-start;border:0;background:transparent;color:var(--terracotta);font:inherit;font-size:12px;font-weight:600;padding:0;cursor:pointer}
.bd-side{display:flex;flex-direction:column;gap:14px}
.bd-panel{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:0;text-align:left}.bd-side .bd-panel+.bd-panel{margin-top:0}
.bd-panel>header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}.bd-panel>header b{display:block}.bd-panel>header small{color:var(--forest-soft);font-size:12px}
.bd-panel .panel{border:0;padding:0;box-shadow:none;margin:0;background:transparent}.bd-panel .nb-list-head{display:none}.bd-pbody{max-height:300px;overflow-y:auto}
.bd>.bd-panel{margin-bottom:16px}
@media (max-width:860px){.bd-layout{grid-template-columns:minmax(0,1fr)}.bd-row{grid-template-columns:minmax(0,1fr) 52px 28px}.bd-mid{grid-column:1/3;grid-row:2}}
.bd-score,.bd-side,.bd-grp,.bd-lab{min-width:0}.bd-lab b{overflow-wrap:anywhere}

/* Needs you: a horizontal strip */
.dx-needs{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 14px;text-align:left}
.dx-needs-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.dx-needrow{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.dx-needrow a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);border-left:4px solid #d9a441;text-decoration:none;color:inherit;background:var(--cream)}
.dx-needrow a.bad{border-left-color:var(--danger)}.dx-needrow a:hover{background:var(--terracotta-soft)}
.dx-needrow b{font-size:22px;line-height:1;min-width:26px;text-align:center}.dx-needrow span{display:flex;flex-direction:column;min-width:0;font-size:13px;font-weight:600}.dx-needrow small{font-weight:400;font-size:11.5px;color:var(--forest-soft)}
.dx-taskrow{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.dx-taskrow a{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--cream);text-decoration:none;color:inherit}.dx-taskrow a:hover{background:var(--terracotta-soft)}
.dx-taskrow i{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none;background:#d9a441}.dx-taskrow a.bad i{background:var(--danger)}
.dx-taskrow span{display:flex;flex-direction:column;min-width:0;font-size:13px;font-weight:600}.dx-taskrow small{font-weight:400;font-size:11.5px;color:var(--forest-soft)}
.dx-todaywide{margin:0 0 14px}.dx-todaywide .dx-timeline{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 18px}.dx-todaywide .dx-timeline li{border-top:0;border-bottom:1px solid #efece2}

/* Enquiry Centre: open enquiry */
.enx-n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e4f1ee;color:#1f6b5c;font:700 11px/1 Manrope,sans-serif;font-style:normal;vertical-align:middle}
.enx-av{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#f3e6f3;color:#8b2f86;font:700 10px/1 Manrope,sans-serif;margin-left:6px;vertical-align:middle}
.enx-sel{flex:none;width:16px;height:16px;margin:0}
.enx-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;font-size:13px;color:#55554f;min-height:34px}.enx-bulk label{display:flex;align-items:center;gap:8px}.enx-bulk.on{background:#eef5f3;border-radius:10px;padding:4px 10px}.enx-bulk select{width:auto;font-size:13px;padding:6px 8px}.enx-bulk .btn{width:auto}
.enx{margin-top:10px;border-top:1px solid #ecebe3;padding-top:12px;min-width:0}
.enx-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.enx-head h2{margin:0;font-size:20px}.enx-head p{margin:4px 0 0;display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:#55554f}.enx-head p span{display:inline-flex;gap:5px;align-items:center}
.enx-del{background:none;border:0;color:#a8392c;font-size:13px;font-weight:600;cursor:pointer;padding:4px}
.enx-tabs{display:flex;gap:18px;border-bottom:1px solid #e3e1d8;margin:12px 0 0;flex-wrap:wrap}.enx-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 0;font-size:13px;color:#55554f;cursor:pointer;margin-bottom:-1px}.enx-tabs button.on{color:#1f6b5c;border-color:#1f6b5c;font-weight:600}
.enx-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#2e9e6a;margin-left:5px}
.enx-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 0}.enx-bar select{width:auto;min-width:140px;font-size:13px;padding:7px 9px}.enx-bar .btn{width:auto}.enx-sp{flex:1}
.enx-ban{display:flex;gap:16px;align-items:center;border-radius:12px;padding:16px 18px;margin-bottom:14px;border:1px solid}.enx-ban>div:first-of-type,.enx-ban>div:nth-of-type(1){flex:1;min-width:0}.enx-ban b{display:block;font-size:15px}.enx-ban span{font-size:13px}
.enx-ban.ok{background:#eaf6ef;border-color:#a8d8bb;color:#1d6b43}.enx-ban.warn{background:#fdf3e3;border-color:#efcf97;color:#9a5a0c}.enx-ban.plain{background:#f6f5ef;border-color:#e3e1d8;color:#3d3d38}.enx-ban.closed{background:#f3f0f0;border-color:#ddd;color:#555;justify-content:space-between}
.enx-bico{flex:none;display:flex}.enx-bbtn{display:flex;flex-direction:column;gap:6px}.enx-bbtn .btn{width:auto}
.enx-when{margin-top:10px;background:#fff;border-radius:10px;padding:10px 14px;color:#141413}.enx-when small{display:block;font-size:11px;color:#6b6b63}.enx-when strong{font-size:16px}.enx-when small:last-child{display:inline}
.enx-card{background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:14px 16px;margin-bottom:14px}
.enx-ctop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.enx-ctop b{display:flex;align-items:center;gap:7px;font-size:14px}.enx-ctop small{color:#6b6b63}
.enx-prop{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}.enx-prop>div:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.enx-prop span{font-size:13px;color:#55554f}.enx-prop a{font-size:13px;color:#1f6b5c;font-weight:600;margin-top:4px}
.enx-ph{flex:none;width:120px;height:78px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff}.enx-ph.tone0{background:#6aa89a}.enx-ph.tone1{background:#8fa6c4}.enx-ph.tone2{background:#c4a07a}.enx-ph.tone3{background:#a18fb8}
.enx-kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px 16px;margin:0;font-size:13px;border-top:1px solid #ecebe3;padding-top:12px}.enx-kv dt{color:#6b6b63}.enx-kv dd{margin:0;min-width:0}
.enx-quote{font-style:italic;line-height:1.5}
.enx-chip{display:inline-block;background:#f0efe8;border-radius:6px;padding:3px 8px;font-size:12px}.enx-chip.teal{background:#e4f1ee;color:#1f6b5c}
.enx-pqc{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.enx-pqc>div:first-child{flex:1 1 220px}.enx-pqc p{font-size:13px;color:#55554f;margin:4px 0 10px}.enx-pqc .btn{width:auto}
.enx-pqs{flex:1 1 240px;border:1px solid #e3e1d8;border-radius:10px;padding:10px 12px;font-size:12px;color:#55554f;display:flex;flex-direction:column;gap:6px}.enx-pqs>div,.enx-pqs p{display:flex;justify-content:space-between;gap:8px;margin:0}.enx-pqs em{font-style:normal;font-weight:600;color:#6b6b63;background:#f0efe8;border-radius:10px;padding:1px 8px}.enx-pqs em.ok{background:#e4f6ea;color:#1d7a47}
.enx-oth{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.enx-oth li button,.enx-oth li>div{width:100%;text-align:left;background:#faf9f5;border:1px solid #ecebe3;border-radius:10px;padding:9px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;font:inherit}.enx-oth li>div{cursor:default}.enx-oth b{font-size:13px}.enx-oth span{font-size:12px;color:#55554f}
.enx-seg{display:inline-flex;border:1px solid #e3e1d8;border-radius:10px;padding:3px;gap:2px;margin-bottom:10px}.enx-seg button{display:inline-flex;gap:6px;align-items:center;background:none;border:0;border-radius:8px;padding:6px 12px;font-size:13px;color:#55554f;cursor:pointer}.enx-seg button.on{background:#f0efe8;color:#141413;font-weight:600}
.enx-comp textarea{width:100%;min-height:76px;box-sizing:border-box}.enx-comp input[name=subj]{width:100%;margin-bottom:8px;box-sizing:border-box}.enx-crow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}.enx-crow .btn{width:auto}.enx-hint,.enx-none{font-size:12px;color:#6b6b63;margin:6px 0 0}
.enx-ltop{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.enx-ltop nav{display:flex;gap:4px;flex-wrap:wrap}.enx-ltop nav button{background:none;border:0;border-radius:8px;padding:6px 10px;font-size:13px;color:#55554f;cursor:pointer}.enx-ltop nav button.on{background:#f0efe8;color:#141413;font-weight:600}.enx-ltop .btn{width:auto}
.enx-lbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid #ecebe3;padding:10px 0}.enx-lbar select{width:auto;font-size:13px;padding:6px 8px}.enx-lbar input[type=text],.enx-lbar input:not([type]){flex:1 1 180px;min-width:0;font-size:13px}.enx-lbar label{display:flex;gap:6px;align-items:center;font-size:13px}
.enx-logs{list-style:none;margin:0;padding:0}.enx-log{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid #f1f0ea;font-size:13px}.enx-log:first-child{border-top:0}.enx-lico{flex:none;color:#6b6b63;margin-top:1px}.enx-log>div{flex:1;min-width:0}.enx-log p{margin:4px 0 0;color:#55554f;background:#faf9f5;border-radius:8px;padding:8px 10px;white-space:normal;overflow-wrap:anywhere}.enx-log time{flex:none;font-size:12px;color:#6b6b63}
@media(max-width:700px){.enx-kv{grid-template-columns:1fr;gap:4px}.enx-kv dd{margin-bottom:8px}.enx-ban{flex-direction:column;align-items:flex-start}.enx-bbtn{flex-direction:row}.enx-log{flex-wrap:wrap}.enx-log time{width:100%;padding-left:25px}.enx-sp{display:none}.enx-prop{flex-direction:column}}
.enx select,.enx input:not([type=checkbox]),.enx textarea,.enx-bulk select{font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;background:#fff;color:#141413;padding:8px 10px}
.enx textarea{resize:vertical}
/* Enquiry filter drawer */
.enx-fbtn{width:auto;display:inline-flex;gap:6px;align-items:center}.enx-lnk{background:none;border:0;color:#1f6b5c;font-weight:600;cursor:pointer;padding:0;font:inherit}
.fd .ip-drawer-body{display:flex;flex-direction:column;gap:14px}.fd-field>label{display:block;font-size:12px;font-weight:600;margin-bottom:5px;color:#3d3d38}
.fd input:not([type=checkbox]),.fd input[type=date]{width:100%;box-sizing:border-box;font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;background:#fff;padding:8px 10px}
.fd-combo{position:relative}.fd-chips{display:flex;flex-wrap:wrap;gap:5px;border:1px solid #d9d7cc;border-radius:8px;background:#fff;padding:5px}.fd-chips input{flex:1 1 90px;min-width:0;border:0!important;padding:4px 5px!important}
.fd-chip{display:inline-flex;gap:4px;align-items:center;background:#e4f1ee;color:#1f6b5c;border-radius:6px;padding:2px 4px 2px 8px;font-size:12px}.fd-chip button{background:none;border:0;cursor:pointer;color:inherit;font-size:14px;line-height:1}
.fd-list{list-style:none;margin:2px 0 0;padding:4px;position:absolute;left:0;right:0;z-index:5;background:#fff;border:1px solid #d9d7cc;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);max-height:200px;overflow:auto}.fd-list button{width:100%;text-align:left;background:none;border:0;padding:7px 9px;font-size:13px;border-radius:6px;cursor:pointer}.fd-list button:hover{background:#f0efe8}.fd-none{padding:7px 9px;font-size:12px;color:#6b6b63}
.fd-seg{display:flex;gap:6px}.fd-seg.wrap{flex-wrap:wrap}.fd-seg button{border:1px solid #d9d7cc;background:#fff;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer}.fd-seg button.on{background:#e4f1ee;border-color:#1f6b5c;color:#1f6b5c;font-weight:600}
.fd-more{background:none;border:0;color:#1f6b5c;font-weight:600;font-size:13px;cursor:pointer;align-self:center}.fd-more .up{display:inline-block;transform:rotate(180deg)}.fd-moreb{display:flex;flex-direction:column;gap:12px}
.fd-dates{display:flex;gap:8px;align-items:center;font-size:12px;color:#6b6b63}.fd-check{display:flex;gap:8px;align-items:center;font-size:13px}
.fd-views{display:flex;gap:6px;flex-wrap:wrap}.fd-view{display:inline-flex;border:1px solid #d9d7cc;border-radius:16px;background:#fff;overflow:hidden}.fd-view button{background:none;border:0;padding:5px 10px;font-size:12px;cursor:pointer}.fd-view button+button{padding:5px 8px;color:#6b6b63;border-left:1px solid #ecebe3}
.fd-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid #e3e1d8;background:#fff;font-size:12px;color:#6b6b63}.fd-foot .btn{width:auto}
.enx-bulk .btn:disabled,.enx-bulk select:disabled{opacity:.45;cursor:not-allowed}
/* Task management */
.tmx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.tmx-act{position:relative;flex:none}.tmx-act .btn{width:auto}.tmx-act .up{display:inline-block;transform:rotate(180deg)}
.tmx-menu{list-style:none;margin:4px 0 0;padding:4px;position:absolute;z-index:20;min-width:210px;background:#fff;border:1px solid #d9d7cc;border-radius:10px;box-shadow:0 8px 22px rgba(0,0,0,.14)}.tmx-menu.right{right:0}.tmx-menu button{width:100%;text-align:left;background:none;border:0;padding:8px 10px;font-size:13px;border-radius:7px;cursor:pointer}.tmx-menu button:hover{background:#f0efe8}
.tmx-tabs{display:flex;gap:4px;border-bottom:1px solid #e3e1d8;margin:14px 0 16px;flex-wrap:wrap}.tmx-tabs a{display:inline-flex;gap:8px;align-items:center;padding:9px 14px;font-size:14px;color:#55554f;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tmx-tabs a.on{color:#1f6b5c;border-color:#1f6b5c;font-weight:700}.tmx-tabs a span{background:#ecebe3;border-radius:10px;padding:1px 8px;font-size:11px;color:#3d3d38}.tmx-tabs a.on span{background:#e4f1ee;color:#1f6b5c}
.tmx-panel{min-width:0}
.tmx-add{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:10px;margin-bottom:12px}.tmx-add input:first-child{flex:1 1 240px;min-width:0}.tmx-add input,.tmx-add select{font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;padding:8px 10px;background:#fff}.tmx-add .btn{width:auto}
.tmx-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:6px}.tmx-chips>button:not(.btn){border:1px solid #d9d7cc;background:#fff;border-radius:16px;padding:6px 13px;font-size:13px;cursor:pointer}.tmx-chips>button.on{background:#1f6b5c;border-color:#1f6b5c;color:#fff;font-weight:600}.tmx-chips input[type=search]{font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;padding:6px 10px;min-width:160px}.tmx-sp{flex:1}.tmx-chips .btn{width:auto}
.tmx-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}
.tmx-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #e3e1d8;border-left:4px solid #c9c6ba;border-radius:12px;padding:9px 12px}.tmx-row.bad{border-left-color:#c0533e}.tmx-row.warn{border-left-color:#e0a030}.tmx-main{flex:1 1 220px;min-width:0;display:flex;flex-direction:column}.tmx-main b{font-size:14px}.tmx-main span{font-size:12px;color:#55554f}.tmx-main a{color:#1f6b5c}
.tmx-row .btn{width:auto}.tmx-f{position:relative;display:inline-flex}.tmx-f input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.tmx-due{font-style:normal;font-size:12px;font-weight:600;border:1px solid #d9d7cc;border-radius:8px;padding:6px 10px;background:#fff}.tmx-due.overdue{color:#c0533e;border-color:#e6b9b0}.tmx-due.today{color:#b8860b;border-color:#e8d29b}
.tmx-who{font:12px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;padding:6px 8px;background:#fff;max-width:140px}.tmx-snz{position:relative}
.tmx-first{background:#fff;border:1px solid #e6b9b0;border-radius:14px;padding:14px 16px;margin-bottom:16px}.tmx-first h2{margin:0 0 10px;font-size:16px}.tmx-first h2 span{font-size:12px;font-weight:500;color:#9a3d2e;margin-left:8px}
.tmx-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.tmx-strip a{display:flex;flex-direction:column;gap:2px;border-radius:10px;padding:10px 12px;background:#fbefec;text-decoration:none;color:#141413}.tmx-strip b{font-size:22px;color:#c0533e;line-height:1}.tmx-strip span{font-size:13px;font-weight:600}.tmx-strip small{font-size:11px;color:#6b6b63}
.tmx-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px}.tmx-grp{background:#fff;border:1px solid #e3e1d8;border-radius:14px;padding:14px 16px}.tmx-grp h3{margin:0 0 6px;font-size:14px}.tmx-grp ul{list-style:none;margin:0;padding:0}.tmx-grp li a{display:flex;align-items:center;gap:10px;padding:8px 2px;border-top:1px solid #f1efe8;text-decoration:none;color:#141413;font-size:13px}.tmx-grp li:first-child a{border-top:0}.tmx-grp li a span{flex:1;display:flex;flex-direction:column}.tmx-grp li a small{font-size:11px;color:#6b6b63}.tmx-grp li b{font-size:15px}.tmx-grp li.bad b{color:#c0533e}.tmx-grp li.warn b{color:#b8860b}.tmx-grp li.none{opacity:.5}.tmx-grp li i{color:#9b9a90;font-style:normal;font-size:18px}.tmx-grp li a:hover{background:#faf9f5}.tmx-clear{font-size:13px;color:#6b6b63;margin:6px 0 0}
@media(max-width:700px){.tmx-row{align-items:flex-start}.tmx-who{max-width:none}}
.tmx-sum{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:13px;color:#55554f}.tmx-sum select{font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;padding:7px 9px;background:#fff;color:#141413}.tmx-sum span,.tmx-ov{padding-left:12px;border-left:1px solid #e3e1d8}.tmx-sum span:first-of-type{border-left:0;padding-left:4px}.tmx-sum b{color:#141413}.tmx-ov{background:none;border-top:0;border-right:0;border-bottom:0;font:inherit;color:inherit;cursor:pointer}.tmx-ov b{color:#c0533e}
/* Keys */
.te-step.ky-bad .te-step-n{color:#c0533e}
.ky-head,.ky-main{display:grid;grid-template-columns:20px 52px minmax(0,2.4fr) 1fr minmax(0,1.2fr) .9fr 250px;gap:12px;align-items:center}
.ky-head{padding:0 15px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6b6b63;margin:4px 0}
.ky-list{list-style:none;margin:0;padding:0 0 70px;display:flex;flex-direction:column;gap:8px}
.ky-row{background:#fff;border:1px solid #e3e1d8;border-radius:14px;padding:10px 14px}.ky-row.late{border-color:#e6b9b0;background:#fffafa}.ky-row.lost{opacity:.85;background:#faf6f6}
.ky-sel{width:16px;height:16px;margin:0}.ky-tag{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;border-radius:50%;background:#f1e5c8;border:2px solid #c9a24a;color:#6b4e12;font:800 14px Manrope,sans-serif;padding:0 4px;box-sizing:border-box}
.ky-row.out .ky-tag{background:#fbeac4;border-color:#e0a030}.ky-row.lost .ky-tag{background:#eee;border-color:#b5b5ae;color:#777}
.ky-who{display:flex;flex-direction:column;min-width:0}.ky-who b{font-size:14px}.ky-who a{color:#141413;text-decoration:none}.ky-who a:hover{text-decoration:underline}.ky-who span{font-size:12px;color:#55554f}
.ky-held{display:flex;flex-direction:column;min-width:0}.ky-held b{font-size:13px}.ky-held span{font-size:12px;color:#55554f}.ky-dash{color:#b5b5ae}.ky-due b{font-size:13px}.ky-due b.late{color:#c0533e}
.ky-act{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.ky-act .btn{width:auto}
.ky-more{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;border-top:1px solid #ecebe3;margin-top:10px;padding-top:10px}.ky-hist h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6b6b63}.ky-hist ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ky-hist li{display:flex;gap:12px;font-size:13px}.ky-hist time{flex:none;width:92px;color:#6b6b63;font-size:12px}.ky-hist li div{display:flex;flex-direction:column}.ky-hist span{color:#55554f}.ky-hist small{color:#8a8a82}
.ky-tools{display:flex;flex-direction:column;gap:6px}.ky-tools .btn{width:auto}
@media(max-width:900px){.ky-head{display:none}.ky-main{grid-template-columns:20px 52px minmax(0,1fr);row-gap:8px}.ky-st,.ky-held,.ky-due{grid-column:3}.ky-act{grid-column:1/-1;justify-content:flex-start}.ky-more{grid-template-columns:1fr}.ky-tools{flex-direction:row;flex-wrap:wrap}}
.ky-menuw{position:relative}.ky-dots{background:#fff;border:1px solid #d9d7cc;border-radius:8px;width:36px;height:32px;cursor:pointer;color:#55554f;font-size:11px;letter-spacing:1px}.ky-menuw .tmx-menu button{display:flex;gap:8px;align-items:center}
.ky-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:8px;align-items:center;padding:10px 24px;background:#fff;border-top:1px solid #e3e1d8;box-shadow:0 -4px 14px rgba(0,0,0,.08)}.ky-barn{background:#f0efe8;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600}.ky-bar .btn{width:auto}.ky-del{color:#a8392c}
.ky-row:has(.ky-sel:checked){background:#eaf5f2;border-color:#bcdcd3}
/* Viewings list */
.vl-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.vl-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vl-top select{font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;padding:7px 10px;background:#fff}.vl-top .enx-seg{margin:0}
.vl-tabs{margin-top:14px}
.vl-wrap{background:#fff;border:1px solid #e3e1d8;border-radius:14px;overflow-x:auto}.vl-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1100px}.vl-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6b6b63;padding:12px 12px;border-bottom:1px solid #e3e1d8;white-space:nowrap}.vl-table td:nth-child(3){white-space:nowrap}.vl-table td:first-child{min-width:190px}.vl-table td{padding:11px 12px;border-bottom:1px solid #f1efe8;vertical-align:middle}.vl-table tr:last-child td{border-bottom:0}.vl-table td a{color:#1f6b5c;font-weight:600;text-decoration:none}.vl-table td a:hover{text-decoration:underline}.vl-table tbody tr:hover{background:#faf9f5}
.vl-sort{background:none;border:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;padding:0}.vl-none{color:#9b9a90}.vl-type{display:inline-block;background:#e8ecf8;color:#3b4f9a;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700;text-transform:uppercase}.vl-act{text-align:right;white-space:nowrap}.vl-act .btn{width:auto}.vl-empty{text-align:center;color:#6b6b63;padding:28px!important}
.vl-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:#6b6b63}.vl-pg{display:inline-flex;gap:8px;align-items:center}.vl-pg .btn{width:auto}.vl-pg b{background:#1f6b5c;color:#fff;border-radius:6px;padding:3px 10px;font-size:12px}
.vl-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:#f0efe8;border-radius:12px;padding:12px 14px;margin-bottom:12px}.vl-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#3d3d38}.vl-filters select,.vl-filters input[type=date]{font:13px Manrope,sans-serif;border:1px solid #d9d7cc;border-radius:8px;padding:7px 9px;background:#fff;min-width:150px}.vl-filters .pd-check{flex-direction:row;font-weight:400;padding-bottom:6px}
/* Viewings agenda */
.vs-track{display:flex;gap:0;margin:16px 0 14px;overflow-x:auto;padding-bottom:2px}
.vs-step{flex:1 1 0;min-width:120px;display:flex;flex-direction:column;gap:2px;padding:10px 18px 10px 22px;background:#ecebe3;color:#55554f;text-decoration:none;position:relative;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,14px 50%);margin-left:-8px}
.vs-step:first-child{margin-left:0;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);padding-left:16px}
.vs-step.end{border-radius:0}.vs-n{font:800 20px/1 Manrope,sans-serif;color:#141413}.vs-l{font-size:12px;font-weight:600}
.vs-step.on{background:#1f6b5c;color:#e4f1ee}.vs-step.on .vs-n{color:#fff}.vs-step:hover:not(.on){background:#e2e0d5}
.vs-who{display:inline-flex;align-items:center;gap:4px}.vs-who small{font-size:12px;color:#6b6b63;margin-right:4px}.vs-who button{border:1px solid #d9d7cc;background:#fff;border-radius:16px;min-width:32px;height:30px;padding:0 9px;font-size:12px;font-weight:700;cursor:pointer}.vs-who button.on{background:#1f6b5c;border-color:#1f6b5c;color:#fff}
.va-day{margin-bottom:18px}.va-day h2{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#6b6b63;display:flex;align-items:center;gap:8px}.va-day h2 span{background:#ecebe3;border-radius:10px;padding:1px 8px;font-size:11px;color:#3d3d38}.va-day ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.va-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:16px;background:#fff;border:1px solid #e3e1d8;border-radius:16px;padding:14px 16px;align-items:center}
.va-card.unconfirmed{border-left:4px solid #e0a030}.va-card.upcoming{border-left:4px solid #2e9e6a}.va-card.cancelled{opacity:.7}
.va-time{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f1f6f4;border-radius:12px;padding:10px 4px;text-align:center}.va-time b{font:800 20px/1 Manrope,sans-serif;color:#1f4b42}.va-time span{font-size:11px;color:#6b6b63;margin-top:4px}
.va-who{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.va-who a{font-size:16px;font-weight:700;color:#141413;text-decoration:none}.va-who a:hover{text-decoration:underline}
.va-prop{margin:4px 0 8px;font-size:13px;color:#55554f;display:flex;gap:6px;align-items:center}
.va-people{display:flex;gap:6px 18px;flex-wrap:wrap}.va-people span{display:inline-flex;align-items:center;gap:6px;font-size:12px}.va-people small{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8a8a82;min-width:0}.va-people i{color:#b5b5ae;font-style:normal}
.va-ava{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#e4f1ee;color:#1f6b5c;font:700 9px/1 Manrope,sans-serif}.va-ava.off{background:#f0efe8;color:#b5b5ae}
.va-fb{margin:8px 0 0;font-size:12px;font-style:italic;color:#55554f;background:#faf9f5;border-radius:8px;padding:6px 10px}
.va-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.va-btns{display:flex;gap:10px;align-items:center}.va-btns .btn{width:auto}.va-open{font-size:12px;font-weight:700;color:#1f6b5c;text-decoration:none;white-space:nowrap}
@media(max-width:760px){.va-card{grid-template-columns:60px minmax(0,1fr)}.va-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}.vs-step{min-width:104px}}
.rv-menus{display:flex;gap:8px;margin:8px 0}.rv-menus .btn{width:auto}.rv-cl{margin-bottom:12px}.link-btn{background:none;border:0;color:#1f5f52;cursor:pointer;font-size:12px;text-decoration:underline;margin-left:8px}
.cd-crumbs{font-size:13px;color:#6b6b63;margin-bottom:8px}.cd-crumbs a{color:#1f5f52}
.cd-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px}.cd-badge{width:56px;height:56px;border-radius:14px;background:#1f5f52;color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px}
.cd-head-main{flex:1;min-width:240px}.cd-head-actions{display:flex;gap:8px;align-items:center}.cd-head-actions .btn{width:auto}
.cd-people{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}.cd-person{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #e3e1d6;border-radius:12px;padding:12px 14px;min-width:260px}.cd-person.sel{border-color:#1f5f52;box-shadow:0 0 0 2px #1f5f5226}
.cd-av{width:36px;height:36px;border-radius:50%;border:0;background:#e7efe9;color:#1f5f52;font-weight:700;cursor:pointer}.cd-add{background:none;border:1.5px dashed #b9b7aa;border-radius:12px;padding:12px 18px;color:#1f5f52;font-weight:600;cursor:pointer}
.cd-infos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:14px}.cd-k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b6b63;margin:0 0 8px}
.cd-line{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:13px}.cd-line span{color:#6b6b63}.cd-line i{color:#9a988c;font-weight:400}
.cd-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}.cd-kpi{background:#fff;border:1px solid #e3e1d6;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column}.cd-kpi span{font-size:12px;color:#6b6b63}.cd-kpi b{font-size:22px}.cd-kpi i{font-size:12px;color:#6b6b63;font-style:normal}
.cd-job{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #eeece3}.cd-job:first-of-type{border-top:0}.cd-pref{margin-bottom:10px}.cd-trades{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:2px 12px;max-height:320px;overflow:auto}
.cd-pre{white-space:pre-wrap;background:#f4f3ec;border-radius:8px;padding:10px;font:12px/1.5 inherit;max-height:240px;overflow:auto}
.cd-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:16px;align-items:start}.cd-cols>div{min-width:0}.cd-tabs{flex-wrap:wrap}.cd-infos{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.subnav-panel .data-table{display:block;overflow-x:auto}
@media(max-width:1180px){.cd-cols{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.cd-person{min-width:0;width:100%}.cd-head-actions{width:100%}}
.cd-line b{min-width:0;overflow-wrap:anywhere;text-align:right}.cd-info{min-width:0}
.cd-details{margin-bottom:14px}.cd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px;margin-top:14px}
.cd-grid section{min-width:0}.cd-grid h3{margin:0 0 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b6b63;font-weight:700;border-bottom:1px solid #eeece3;padding-bottom:6px}
.cd-kv{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}.cd-kv span{font-size:12px;color:#6b6b63}.cd-kv b{font-size:14px;font-weight:600;overflow-wrap:anywhere}.cd-kv i{font-weight:400;color:#9a988c}
.cd-lbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.cd-lbar .btn{width:auto}.cd-lbar-r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cd-search{min-width:200px;padding:7px 10px;border:1px solid #d9d7cc;border-radius:8px}
.cd-f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#6b6b63}.cd-f.inline{flex-direction:row;align-items:center;gap:6px}.cd-f select,.cd-f input{padding:6px 8px;border:1px solid #d9d7cc;border-radius:8px;font-size:13px;background:#fff}
.cd-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;background:#f4f3ec;border-radius:10px;padding:12px;margin-bottom:12px}
.cd-scroll{overflow-x:auto}.cd-table{width:100%;min-width:640px}.cd-table th{font-size:12px;color:#6b6b63;text-align:left}.cd-table td{vertical-align:top}
.cd-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;color:#6b6b63}.cd-pager{display:flex;gap:6px;align-items:center}.cd-pager button{width:30px;height:28px;border:1px solid #d9d7cc;background:#fff;border-radius:6px;cursor:pointer}.cd-pager button:disabled{opacity:.4;cursor:default}.cd-pager b{background:#1f5f52;color:#fff;border-radius:6px;padding:4px 9px}
/* contractor page tabs */
.cx-wrap{display:flex;flex-direction:column;gap:14px}.cx-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.cx-head h2{margin:0;font-size:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cx-head-r{display:flex;gap:10px;align-items:center}.cx-head-r .btn{width:auto}
.cx-search{min-width:220px;padding:9px 14px;border:1px solid #d9d7cc;border-radius:999px;background:#fff;font-size:13px}
.cx-chips{display:flex;gap:8px;flex-wrap:wrap}.cx-chip{border:1px solid #d9d7cc;background:#fff;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;color:#33332e}.cx-chip b{background:#efede4;border-radius:999px;padding:1px 7px;margin-left:4px;font-size:11px}.cx-chip.on{background:#16332f;border-color:#16332f;color:#fff}.cx-chip.on b{background:#ffffff26;color:#fff}
.cx-empty{background:#fff;border:1px dashed #cfcdbf;border-radius:14px;padding:28px;text-align:center;color:#6b6b63}.cx-more{text-align:center}.cx-more .btn{width:auto}.cx-when{font-size:12px;color:#7a7a70;margin:2px 0}.cx-none{font-size:13px;color:#9a988c;margin:6px 2px}
.cx-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.cx-cols.two{grid-template-columns:repeat(2,minmax(0,1fr))}.cx-col{background:#eeece3;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}.cx-col h3{margin:0;font-size:13px;display:flex;justify-content:space-between;color:#44443d}.cx-col h3 span{background:#fff;border-radius:999px;padding:0 9px}
.cx-job{background:#fff;border-radius:10px;padding:12px;border-left:4px solid #cfcdbf}.cx-job.urgent{border-left-color:#c8553d}.cx-job p{margin:2px 0;font-size:13px;color:#55554f}.cx-job-top{display:flex;justify-content:space-between;font-size:11px;color:#7a7a70;margin-bottom:4px}.cx-job-top em{font-style:normal;color:#c8553d;font-weight:700}.cx-job-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.cx-job-act .btn{width:auto}
.cx-hero{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;background:linear-gradient(135deg,#16332f,#1f5f52);color:#fff;border-radius:16px;padding:22px 26px}.cx-hero span{display:block;font-size:12px;opacity:.8}.cx-hero b{display:block;font-size:34px;line-height:1.1;margin-top:2px}.cx-hero i{font-style:normal;font-size:12px;opacity:.8}.cx-hero-side{display:flex;gap:30px}.cx-hero-side b{font-size:22px}
.cx-feed{background:#fff;border:1px solid #e3e1d6;border-radius:14px;padding:6px 16px}.cx-month{margin:14px 0 4px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#7a7a70}.cx-ev{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #f0eee6}.cx-month+.cx-ev{border-top:0}
.cx-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;flex:none}.cx-ev.invoice .cx-dot{background:#fbe9e3;color:#c8553d}.cx-ev.payment .cx-dot{background:#e0f0e6;color:#1f7a4d}.cx-ev-main{flex:1;min-width:0;display:flex;flex-direction:column}.cx-ev-main span,.cx-ev-amt span{font-size:12px;color:#7a7a70}.cx-ev-amt{text-align:right;display:flex;flex-direction:column}.cx-ev.payment .cx-ev-amt b{color:#1f7a4d}
.cx-inv-list{display:flex;flex-direction:column;gap:10px}.cx-inv{display:flex;justify-content:space-between;gap:16px;background:#fff;border:1px solid #e3e1d6;border-radius:14px;padding:14px 16px;flex-wrap:wrap}.cx-inv.late{border-color:#e7b3a6}.cx-inv-main{flex:1;min-width:240px}.cx-inv-main p{margin:2px 0;font-size:13px;color:#55554f}.cx-inv-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.cx-inv-side>b{font-size:20px}.cx-inv-side .btn{width:auto}
.cx-steps{display:flex;gap:4px;list-style:none;margin:10px 0 0;padding:0}.cx-steps li{flex:1;font-size:11px;color:#9a988c;border-top:3px solid #e3e1d6;padding-top:4px}.cx-steps li.done{border-top-color:#1f7a4d;color:#1f7a4d;font-weight:600}
.cx-state{font-size:11px;font-weight:700;border-radius:999px;padding:2px 10px;background:#efede4;color:#55554f}.cx-state.paid{background:#e0f0e6;color:#1f7a4d}.cx-state.overdue{background:#fbe0d9;color:#b23a22}.cx-state.approved{background:#fbf0d4;color:#8a6410}
.cx-papers{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.cx-paper{background:#fff;border:1px solid #e3e1d6;border-radius:6px 6px 14px 14px;padding:16px;position:relative;box-shadow:0 2px 0 #e3e1d6,0 5px 0 -1px #f3f1e8}.cx-paper-no{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7a7a70}.cx-paper-total{font-size:26px;display:block;margin:4px 0}.cx-paper p{margin:2px 0;font-size:13px}.cx-paper-act{display:flex;gap:6px;align-items:center;margin-top:12px;flex-wrap:wrap}.cx-paper-act .btn{width:auto}
.cx-certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.cx-cert{background:#fff;border:1px solid #e3e1d6;border-top:4px solid #1f7a4d;border-radius:12px;padding:14px}.cx-cert.expiring{border-top-color:#d9a21b}.cx-cert.expired{border-top-color:#c8553d}.cx-cert-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.cx-cert-d{margin:8px 0 2px;font-size:14px;font-weight:600}
.cx-bar2{height:6px;background:#eeece3;border-radius:6px;margin-top:10px;overflow:hidden}.cx-bar2 i{display:block;height:100%;background:#1f7a4d;border-radius:6px}.cx-cert.expiring .cx-bar2 i{background:#d9a21b}.cx-cert.expired .cx-bar2 i{background:#c8553d}
@media(max-width:900px){.cx-cols,.cx-cols.two{grid-template-columns:minmax(0,1fr)}.cx-hero-side{gap:20px}.cx-search{min-width:0;width:100%}}
/* rent review + contractor overview redesign */
.rx-tabs{margin:4px 0 16px}.rx-body{display:flex;flex-direction:column;gap:14px}.rx-body>.rv-steps{margin:0}
.rxb{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));background:#16332f;color:#fff;border-radius:16px;overflow:hidden}.rxb-c{padding:16px 20px;display:flex;flex-direction:column;border-right:1px solid #ffffff1f}.rxb-c:last-child{border-right:0}.rxb-c span{font-size:12px;opacity:.75}.rxb-c b{font-size:24px;line-height:1.2}.rxb-c b small{font-size:12px;font-weight:500;opacity:.75}.rxb-c i{font-style:normal;font-size:12px;opacity:.75}
.rxps{display:flex;gap:10px;flex-wrap:wrap}.rxp{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #e3e1d6;border-radius:999px;padding:6px 8px 6px 8px}.rxp.ghost{background:transparent;border-style:dashed;padding:6px 16px}.rxp-av{width:34px;height:34px;border-radius:50%;background:#e7efe9;color:#1f5f52;font-weight:700;display:grid;place-items:center;font-size:12px}.rxp-t{display:flex;flex-direction:column;line-height:1.2;padding-right:4px}.rxp-t span{font-size:11px;color:#7a7a70}.rxp-b .btn{width:auto}
.rx-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-items:start}
.rx-more{display:flex;flex-direction:column;gap:8px}.rx-acc{background:#fff;border:1px solid #e3e1d6;border-radius:12px}.rx-acc summary{display:flex;justify-content:space-between;gap:10px;padding:14px 16px;cursor:pointer;list-style:none}.rx-acc summary::-webkit-details-marker{display:none}.rx-acc summary::after{content:'+';font-weight:700;color:#1f5f52;margin-left:8px}.rx-acc[open] summary::after{content:'–'}.rx-acc summary span{margin-left:auto;font-size:12px;color:#7a7a70}.rx-acc-b{padding:0 16px 14px}.rx-bare{padding:0}
.rx-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.rx-tile{text-align:left;background:#fff;border:1px solid #e3e1d6;border-radius:14px;padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.rx-tile:hover{border-color:#1f5f52}.rx-tile span{font-size:12px;color:#7a7a70}.rx-tile b{font-size:22px}.rx-tile i{font-style:normal;font-size:12px;color:#7a7a70}.rx-tile.warn{border-top:3px solid #d9a21b}.rx-tile.bad{border-top:3px solid #c8553d}
.rx-attn{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center;background:#fdf3e1;border:1px solid #f0d9a6;border-radius:12px;padding:10px 16px}.rx-attn.ok{background:#e8f3ec;border-color:#bfdcca}.rx-attn-i{font-size:13px}.rx-attn .link-btn{margin-left:2px}
.rx-people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;align-items:start}.rx-pcard{background:#fff;border:1px solid #e3e1d6;border-radius:14px;padding:14px}.rx-pcard.main{border-color:#1f5f52;box-shadow:0 0 0 2px #1f5f5214}.rx-pcard-top{display:flex;gap:10px;align-items:center;margin-bottom:8px}.rx-line{margin:2px 0;font-size:13px;color:#55554f;overflow-wrap:anywhere}
/* keys rack */
.kx-chips{margin:14px 0}.cx-chip.bad{border-color:#c8553d;color:#b23a22}.cx-chip.bad.on{background:#c8553d;color:#fff}
.kx-sec{margin-top:22px}.kx-sec h2{font-size:16px;margin:0 0 12px;display:flex;gap:10px;align-items:baseline}.kx-sec h2 span{font-size:12px;font-weight:500;color:#7a7a70}
.kx-holder{background:#eeece3;border-radius:16px;padding:12px;margin-bottom:12px}.kx-holder-h{display:flex;gap:10px;align-items:center;margin-bottom:10px}.kx-holder-h small{display:block;color:#7a7a70;font-size:12px}.kx-holder-h .link-btn{margin-left:auto}
.kx-av{width:36px;height:36px;border-radius:50%;background:#16332f;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.kx-av.late{background:#c8553d}
.kx-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.kx-card{position:relative;background:#fff;border:1px solid #e3e1d6;border-radius:14px;padding:12px 12px 12px 12px;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:start}.kx-card.late{border-color:#e0a091;box-shadow:inset 3px 0 0 #c8553d}.kx-card.lost{background:#f6f2f2;opacity:.9}.kx-card.picked{background:#eaf5f2;border-color:#8cc4b6}
.kx-tag{width:54px;height:54px;border-radius:12px 12px 12px 12px;background:#e7efe9;border:2px solid #1f5f52;display:grid;place-items:center;position:relative;font-size:15px;color:#16332f}.kx-tag i{position:absolute;top:5px;left:50%;margin-left:-4px;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid #1f5f52}.kx-tag b{margin-top:10px}
.kx-card.out .kx-tag{background:#fbeac4;border-color:#e0a030}.kx-card.lost .kx-tag{background:#eee;border-color:#b5b5ae;color:#777}.kx-card.late .kx-tag{background:#fbe0d9;border-color:#c8553d}
.kx-chk{position:absolute;top:8px;right:10px}.kx-body{display:flex;flex-direction:column;gap:2px;min-width:0;padding-right:22px}.kx-body span{font-size:12px;color:#7a7a70}.kx-state{margin-top:2px}.kx-state em{font-style:normal;color:#b23a22;font-weight:700}
.kx-act{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.kx-act .btn{width:auto}.kx-card .ky-more{grid-column:1/-1}
.ky-bar{left:50%;right:auto;transform:translateX(-50%);bottom:18px;border:1px solid #d9d7cc;border-radius:999px;padding:8px 14px;box-shadow:0 10px 30px rgba(0,0,0,.18);width:max-content;max-width:calc(100vw - 24px);flex-wrap:wrap}
/* task management board */
.tx-tabs{margin:14px 0}.tx-hero{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:linear-gradient(135deg,#f3e9d6,#f8f3e6);border:1px solid #e8dcc0;border-radius:16px;padding:16px 20px;margin-bottom:12px}.tx-hero>div:first-child span{display:block;font-size:12px;color:#7a6a3f}.tx-hero b{font-size:24px;display:block}.tx-hero i{font-style:normal;font-size:12px;color:#7a6a3f}.tx-prog{flex:1;min-width:140px;height:10px;background:#fff;border-radius:10px;overflow:hidden}.tx-prog i{display:block;height:100%;background:#1f7a4d;border-radius:10px}.tx-hero select{padding:8px 10px;border:1px solid #d9d7cc;border-radius:8px;background:#fff}
.tx-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;align-items:start;margin-top:12px}.tx-col{background:#eeece3;border-radius:14px;padding:10px;min-width:0}.tx-col h3{margin:0 0 8px;font-size:13px;display:flex;justify-content:space-between;color:#44443d}.tx-col h3 span{background:#fff;border-radius:999px;padding:0 9px}.tx-col.bad h3{color:#b23a22}.tx-col.warn h3{color:#8a6410}
.tx-col ul,.tx-donelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tx-donelist{margin-top:12px}.tx-none{font-size:13px;color:#9a988c;padding:6px}
.tx-card{background:#fff;border-radius:10px;padding:10px 12px;border-left:4px solid #cfcdbf}.tx-card.overdue{border-left-color:#c8553d}.tx-card.today{border-left-color:#d9a21b}.tx-card.done{opacity:.85}
.tx-top{display:flex;gap:8px;align-items:flex-start}.tx-top b{flex:1;font-size:14px}.tx-hi{font-style:normal;font-size:11px;font-weight:700;color:#b23a22}.tx-where{margin:4px 0 0 30px;font-size:12px;color:#7a7a70}
.tx-meta{display:flex;gap:8px;align-items:center;margin:8px 0 0 30px;flex-wrap:wrap}.tx-av{width:24px;height:24px;border-radius:50%;background:#e7efe9;color:#1f5f52;font-size:10px;font-weight:700;display:grid;place-items:center}.tx-who{max-width:110px;font-size:12px;padding:3px 6px;border:1px solid #e3e1d6;border-radius:6px;background:#fff}.tx-act{display:flex;gap:6px;margin:4px 0 0 30px;position:relative}
.tx-av{display:none}.tx-who{max-width:120px}
.cx-drop{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:2px dashed #c7c5b6;border-radius:14px;padding:16px 18px;background:#faf9f3}.cx-drop.over{border-color:#1f5f52;background:#e8f3ec}.cx-drop b{display:block}.cx-drop span{font-size:12px;color:#7a7a70}.cx-drop-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cx-drop-r .btn{width:auto}.cx-drop-r select{padding:7px 8px;border:1px solid #d9d7cc;border-radius:8px}
.cx-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cx-file{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e3e1d6;border-radius:12px;padding:12px}.cx-ext{width:46px;height:56px;border-radius:6px;background:#e7efe9;color:#1f5f52;font-weight:800;font-size:12px;display:grid;place-items:center;border-top-right-radius:16px;flex:none}.cx-file-main{flex:1;min-width:0}.cx-file-main a{font-weight:600;display:block;overflow-wrap:anywhere}.cx-tagk{display:inline-block;margin-top:3px;font-size:11px;background:#efede4;border-radius:999px;padding:1px 9px;color:#55554f}
.tz-first h2{font-size:15px;margin:14px 0 8px}.tz-strip{display:flex;gap:10px;flex-wrap:wrap}.tz-strip a{display:flex;flex-direction:column;min-width:130px;padding:12px 16px;border-radius:14px;background:#7a2a1d;color:#fff;text-decoration:none}.tz-strip b{font-size:28px;line-height:1}.tz-strip span{font-weight:600;margin-top:4px}.tz-strip small{opacity:.75;font-size:11px}
.tz-ok{padding:14px 16px;background:#e8f3ec;color:#1f5f52;border-radius:12px;font-weight:600}.tz-tog{display:flex;gap:8px;align-items:center;margin:14px 0 8px;font-size:13px;color:#55554f}
.tz-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.tz-area{background:#fff;border:1px solid #e3e1d6;border-radius:16px;padding:14px 16px}.tz-area header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tz-area h3{margin:0;font-size:15px}.tz-n{min-width:34px;height:34px;border-radius:999px;background:#1f3d36;color:#fff;display:grid;place-items:center;font-weight:700;padding:0 8px}.tz-n.zero{background:#e8f3ec;color:#1f5f52}
.tz-chips{display:flex;flex-wrap:wrap;gap:8px}.tz-r{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:#f3f1e8;text-decoration:none;color:inherit;font-size:13px}.tz-r b{min-width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:#d9d7cc;font-size:12px}.tz-r.bad b{background:#7a2a1d;color:#fff}.tz-r.warn b{background:#e8b04a}.tz-r small{display:block;font-size:10px;color:#7a7a70}.tz-r:hover{background:#e7e5da}.tz-clear{margin:0;color:#7a7a70;font-size:13px}
.tz-asec{margin-bottom:22px}.tz-asec h3{margin:0 0 2px;font-size:16px}.tz-asec h3 em{font-style:normal;font-size:12px;background:#efede4;border-radius:999px;padding:1px 9px;margin-left:6px}.tz-asec>p{margin:0 0 10px;color:#7a7a70;font-size:13px}
.tz-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.tz-appr{background:#fff;border:1px solid #e3e1d6;border-top:4px solid #d9d7cc;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px}.tz-appr.warn{border-top-color:#e8b04a}.tz-appr.bad{border-top-color:#7a2a1d}.tz-appr h4{margin:0;font-size:14px}.tz-appr p{margin:0;font-size:12.5px;color:#55554f}.tz-tag{align-self:flex-start;font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:#efede4;border-radius:999px;padding:1px 8px;color:#55554f}.tz-amt{font-size:24px;font-weight:800}.tz-bt{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:6px}.tz-bt .btn{width:auto;text-decoration:none}
.dz-ready:is(.field,.mo-inline,.bk-import-actions){border:1.5px dashed #c7c5b6;border-radius:12px;padding:10px 12px;background:#faf9f3}.dz-ready:is(.field,.mo-inline)::after{content:"or drag a file here";display:block;font-size:11px;color:#7a7a70;margin-top:4px;flex-basis:100%}
.dz-over{outline:2px solid #1f5f52;outline-offset:2px;background:#e8f3ec!important;border-radius:12px}
.cr-box{display:flex;gap:8px;align-items:flex-start;margin:-4px 0 12px;padding:10px 12px;border-radius:10px;font-size:12.5px;line-height:1.45;background:#f3f1e8;color:#3d3d38}.cr-box>svg{flex:none;margin-top:1px}.cr-box em{display:block;font-style:normal;margin-top:4px;font-weight:600}.cr-ok{background:#e8f3ec;color:#1f4d41}.cr-warn{background:#fdf1d8;color:#6b4a07}.cr-soft{background:#f3f1e8}.cr-spin{width:12px;height:12px;border:2px solid #c7c5b6;border-top-color:#1f5f52;border-radius:50%;display:inline-block;animation:crs .7s linear infinite;margin-top:3px}@keyframes crs{to{transform:rotate(360deg)}}
.topbar-spacer{display:none}.topbar{position:relative;z-index:30}.gs{position:relative;flex:1;max-width:560px;min-width:0;margin:0 auto 0 0}
.gs-field{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #d9d7cc;border-radius:999px;padding:0 12px;height:40px;transition:border-color .15s,box-shadow .15s;margin:0}.gs-field:focus-within{border-color:#1f5f52;box-shadow:0 0 0 4px rgba(31,95,82,.12)}.gs-ico{color:#7a7a70;display:grid}.gs-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:14px;height:100%;padding:0;box-shadow:none;-webkit-appearance:none}.gs-field input::-webkit-search-cancel-button{display:none}.gs-kbd{font:600 11px/1 inherit;color:#7a7a70;border:1px solid #d9d7cc;border-radius:6px;padding:3px 7px;background:#faf9f3}.gs-field:focus-within .gs-kbd{display:none}.gs-x{border:0;background:#efede4;border-radius:50%;width:22px;height:22px;cursor:pointer;line-height:1;color:#55554f}
.gs-panel{position:absolute;left:0;right:0;top:46px;background:#fff;border:1px solid #e3e1d6;border-radius:16px;box-shadow:0 18px 44px rgba(20,30,25,.18);padding:10px;max-height:min(70vh,560px);overflow:auto;min-width:min(520px,92vw)}
.gs-chips{display:flex;gap:6px;flex-wrap:wrap;padding:2px 2px 8px;border-bottom:1px solid #efede4;margin-bottom:6px;position:sticky;top:-10px;background:#fff;padding-top:10px;margin-top:-10px;z-index:1}.gs-chips button{border:1px solid #e3e1d6;background:#faf9f3;border-radius:999px;padding:4px 11px;font:inherit;font-size:12.5px;cursor:pointer}.gs-chips button b{margin-left:4px;color:#7a7a70;font-weight:600}.gs-chips button.on{background:#1f3d36;color:#fff;border-color:#1f3d36}.gs-chips button.on b{color:#bfd6cd}
.gs-lab{margin:10px 6px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#7a7a70;display:flex;justify-content:space-between;align-items:center}.gs-more{border:0;background:none;color:#1f5f52;font:inherit;font-size:11.5px;text-transform:none;letter-spacing:0;cursor:pointer;text-decoration:underline}
.gs-r{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;text-decoration:none;color:inherit}.gs-r.on{background:#e8f3ec}.gs-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;background:#efede4;color:#3d3d38}.t-property{background:#e7efe9;color:#1f5f52}.t-landlord{background:#efe8f5;color:#5b3a7a}.t-tenant{background:#e6eef7;color:#254f7a}.t-applicant{background:#fbefdc;color:#7a5410}.t-contractor{background:#f7e6e1;color:#7a2a1d}.t-enquiry{background:#e3f1f1;color:#1d5f5f}
.gs-t{flex:1;min-width:0;display:flex;flex-direction:column}.gs-t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-t small{color:#7a7a70;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-t mark{background:#fde9a8;color:inherit;border-radius:3px;padding:0 1px}.gs-tag{font-style:normal;font-size:11px;color:#55554f;background:#efede4;border-radius:999px;padding:2px 9px;flex:none}
.gs-none{padding:22px 10px;text-align:center;font-weight:600}.gs-none small{display:block;font-weight:400;color:#7a7a70;margin-top:4px}.gs-start{padding:2px 4px 6px}.gs-recent,.gs-hints{display:flex;flex-wrap:wrap;gap:6px;padding:0 4px}.gs-recent button{border:1px solid #e3e1d6;background:#faf9f3;border-radius:999px;padding:4px 11px;cursor:pointer;font:inherit;font-size:12.5px}.gs-hints span{display:inline-flex;gap:5px;align-items:center;font-size:12.5px;color:#55554f;background:#f3f1e8;border-radius:999px;padding:4px 10px}.gs-tip{margin:12px 6px 4px;font-size:12px;color:#7a7a70}
@media (max-width:760px){.topbar{flex-wrap:wrap}.gs{order:3;flex-basis:100%;max-width:none}.gs-panel{min-width:0}.topbar-profile-name{display:none}}
.topbar{display:grid;grid-template-columns:1fr minmax(260px,560px) 1fr;align-items:center;gap:14px}.topbar-spacer{display:block;grid-column:1;grid-row:1}.gs{grid-column:2;grid-row:1;margin:0;max-width:none;width:100%}.topbar-actions{grid-column:3;grid-row:1;justify-self:end}
.topbar-create-btn{background:#1f3d36!important;color:#fff!important;border-color:#1f3d36!important;border-radius:999px!important;font-weight:700}.topbar-create-btn .topbar-create-plus{color:#f2b49a!important}
.t-action{background:#fde9dd;color:#a2461f}
@media (max-width:760px){.topbar{grid-template-columns:1fr auto}.topbar-spacer{display:none}.gs{grid-column:1/-1;grid-row:2}.topbar-actions{grid-column:1/-1;grid-row:1;justify-self:end}}
.topbar-create-btn,.topbar-profile{white-space:nowrap}.topbar-actions{flex-wrap:nowrap}
.ll-ban{display:flex;gap:10px;align-items:flex-start;background:#f1ecfa;color:#3f2a63;border-radius:10px;padding:8px 10px;font-size:12.5px;line-height:1.4;margin:6px 0}.ll-ban.due{background:#fdf1d8;color:#6b4a07}.ll-ban b{display:block}.ll-ban span{display:block}.ll-dot{width:9px;height:9px;border-radius:50%;background:#7a55c7;margin-top:5px;flex:none}.ll-ban.due .ll-dot{background:#d9922b}.ll-hist{margin:8px 0 0;padding:0;list-style:none;font-size:12px;color:#55554f}.ll-hist li{padding:3px 0;border-top:1px solid #efede4}

.fp{margin-top:18px}.fp-lvl{font-size:13px;color:#5b5b52;display:flex;align-items:center;gap:8px}.fp-lvl select,.fp-add select,.fp-add input{border:1px solid #d9d7cc;border-radius:8px;padding:8px 10px;font:inherit;background:#fff;min-width:0}
.fp-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.fp-h{font-weight:700;margin:0 0 2px;font-size:14px}.fp-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid #ece9df;font-size:13px}.fp-x{border:0;background:none;color:#8a2c2c;cursor:pointer;font:inherit;font-size:12px;padding:0}
.fp-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #ece9df}.fp-add input{flex:1 1 160px}.fp-err{color:#8a2c2c;font-size:13px;margin:8px 0 0}
@media(max-width:640px){.fp-cols{grid-template-columns:1fr}}
.mx-media{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 2px}.mx-thumb{width:64px;height:64px;border-radius:10px;border:1px solid #d9d7cc;background:#f3f1e8;padding:0;overflow:hidden;cursor:pointer}.mx-thumb img{width:100%;height:100%;object-fit:cover;display:block}.mx-vid{display:flex;height:100%;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#16332f}
.mx-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.sl-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sl-badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}.sl-badge.ok{background:#e1f0e4;color:#1e5a2e}.sl-badge.warn{background:#fbefd2;color:#7a5200}.sl-badge.bad{background:#f7dcdc;color:#8a2c2c}
.sl-list{list-style:none;margin:10px 0 0;padding:0}.sl-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #ece9df;font-size:13px}.sl-row i{width:9px;height:9px;border-radius:50%;flex:none;background:#c9c6b8}.sl-row.ok i{background:#3b8f55}.sl-row.warn i{background:#d9a21c}.sl-row.bad i{background:#c24444}.sl-row>div{flex:1;min-width:0}.sl-row b{display:block;font-weight:600}.sl-row span{color:#6b6a60;font-size:12px}.sl-row em{font-style:normal;font-size:11px;color:#6b6a60;font-weight:500}
.ip-kind{border:1px solid #d9d7cc;border-radius:8px;padding:2px 6px;font:inherit;background:#fff}.ip-prob{margin-top:18px}
.lx-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid #ece9df;font-size:13px}.lx-star{border:0;background:none;font-size:20px;line-height:1;cursor:pointer;color:#b9b6a8;padding:0}.lx-star.on{color:#c9871c}.lx-copy{display:flex;gap:6px;align-items:center;font-size:12px;color:#5b5b52;margin-top:4px}
.lx-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}.lx-table th{text-align:right;font-weight:600;color:#6b6a60;font-size:12px;padding:6px 8px;border-bottom:1px solid #d9d7cc}.lx-table td{text-align:right;padding:8px;border-bottom:1px solid #ece9df}.lx-table th:first-child,.lx-table td:first-child{text-align:left}.lx-total td{font-weight:700;border-top:2px solid #d9d7cc}
@media(max-width:700px){.lx-table{display:block;overflow-x:auto}}

/* compliance: grouped side menu */
.subnav-group { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft, #6b7280); padding: 12px 12px 4px; }
.subnav-group:first-child { padding-top: 0; }
@media (max-width: 760px) { .subnav-group { display: none; } }

/* viewing reminders */
.vr-auto { display: flex; align-items: flex-start; gap: 8px; white-space: normal; overflow-wrap: anywhere; }
.vr-auto input { margin-top: 3px; flex-shrink: 0; }

/* detail pages: let rows wrap on narrow screens */
.vd-main .pd-kv, .vd-side .pd-kv { flex-wrap: wrap; gap: 4px 12px; }
.vd-main .pd-kv, .vd-side .pd-kv { white-space: normal; }
.vd-main .pd-kv > span, .vd-side .pd-kv > span { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.vd-main .pd-kv span:first-child, .vd-side .pd-kv span:first-child { flex-shrink: 1; }

/* automatic links to properties and people */
a.auto-link { color: inherit; text-decoration: underline; text-decoration-color: rgba(22, 51, 47, 0.3); text-underline-offset: 2px; }
a.auto-link:hover { text-decoration-color: currentColor; color: var(--forest); }

/* board company instructions */
.bd-block { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bd-block .pd-hint { flex: 1 1 200px; }

/* sm-*: the small pin map on the Boards page */
.sm-map{position:relative;height:460px;border:1px solid var(--border,#d9dde5);border-radius:12px;overflow:hidden;background:#eef1f5;background-image:linear-gradient(#e2e6ec 1px,transparent 1px),linear-gradient(90deg,#e2e6ec 1px,transparent 1px);background-size:48px 48px;touch-action:none;cursor:grab;user-select:none}
.sm-map.sm-picking{cursor:crosshair;outline:2px solid #244a8f}
.sm-tiles,.sm-pins{position:absolute;inset:0}.sm-tiles img{position:absolute;width:256px;height:256px;max-width:none}
.sm-pin{position:absolute;width:26px;height:26px;margin:-26px 0 0 -13px;padding:0;border:0;background:none;cursor:pointer}
.sm-pin span{display:block;width:22px;height:22px;margin:2px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);background:#d9822b}
.sm-pin.sm-ok span{background:#1f7a4d}.sm-pin.sm-info span{background:#244a8f}.sm-pin.sm-neutral span{background:#6b7280}
.sm-ctl{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:4px}.sm-ctl button{width:34px;height:34px;border:1px solid #cfd4dc;border-radius:8px;background:#fff;font-size:18px;cursor:pointer}
.sm-hint{position:absolute;top:10px;left:10px;background:#244a8f;color:#fff;padding:6px 10px;border-radius:8px;font-size:13px}
.sm-credit{position:absolute;right:6px;bottom:4px;font-size:10px;background:rgba(255,255,255,.8);padding:1px 4px;border-radius:4px;color:#444}
.sm-pop{position:absolute;z-index:5;left:12px;bottom:12px;max-width:min(320px,calc(100% - 24px));background:#fff;border:1px solid #cfd4dc;border-radius:10px;padding:10px 12px;box-shadow:0 4px 14px rgba(0,0,0,.2);font-size:13px}
.sm-legend{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0;font-size:12px}.sm-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
@media (max-width:640px){.sm-map{height:360px}}
.vd-seg{flex-wrap:wrap}.vd-seg button.on{background:#244a8f;color:#fff;border-color:#244a8f}

/* f4-*: the Form 4A editor */
.f4-ov{position:fixed;inset:0;z-index:300;background:#f5f4f0;display:flex;flex-direction:column}
.f4-top{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid #d9dde5;background:#fff}.f4-top h2{margin:0;font-size:18px}.f4-top p{margin:2px 0 0;font-size:13px;opacity:.75}.f4-btns{display:flex;gap:8px;flex-wrap:wrap}.f4-btns .btn{width:auto}
.f4-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:12px;padding:12px 16px}
.f4-form{overflow:auto;padding-right:4px}.f4-prev{min-height:0;border:1px solid #d9dde5;border-radius:10px;overflow:hidden;background:#eef0f2}.f4-prev iframe{width:100%;height:100%;border:0}
.f4-sec{background:#fff;border:1px solid #d9dde5;border-radius:10px;margin-bottom:10px}.f4-sec summary{cursor:pointer;font-weight:700;padding:10px 12px}.f4-sec>div{padding:0 12px 12px}.f4-q{font-weight:700;font-size:13px;margin:10px 0 4px}
.f4-tabs{display:none;gap:6px;padding:8px 16px 0}.f4-tabs button{border:1px solid #cfd4dc;background:#fff;border-radius:8px;padding:6px 14px}.f4-tabs button.on{background:#244a8f;color:#fff;border-color:#244a8f}
@media (max-width:860px){.f4-tabs{display:flex}.f4-body{grid-template-columns:1fr}.f4-body[data-show=form] .f4-prev{display:none}.f4-body[data-show=prev] .f4-form{display:none}}
.n4-doc{border:1px solid #d9dde5;border-radius:10px;padding:10px 12px;margin:8px 0;background:#fff}.n4-doc .of-actions{margin-top:8px}

/* Import from Street */
.si-slots { display: grid; gap: 10px; }
.si-slot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--border, #e2e5ea); border-radius: 10px; }
.si-slot.si-ok { border-color: #2f9e6b; } .si-slot.si-bad { border-color: #d64545; }
.si-state { font-size: 13px; margin-top: 2px; }
.si-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.si-tile { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--border, #e2e5ea); border-radius: 10px; }
.si-tile b { font-size: 20px; } .si-tile span { font-size: 12px; opacity: .75; }
.si-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.si-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.si-list li > span { width: 20px; flex: none; text-align: center; font-weight: 700; }
.si-yes > span { color: #2f9e6b; } .si-no > span { color: #d64545; } .si-info > span { color: #4a6fd1; }
.si-wrap { overflow-x: auto; } .si-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.si-table th, .si-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--border, #e2e5ea); vertical-align: top; }
.si-h { font-size: 14px; margin: 14px 0 6px; }
