/* =========================================================
   ESTAVO UI CONSISTENCY PASS v2
   Visual-only layer. No application logic or data changes.
   ========================================================= */
:root {
  --estavo-navy: #111a33;
  --estavo-ink: #12203a;
  --estavo-gold: #c8a43f;
  --estavo-muted: #6f7b90;
  --estavo-line: #dfe5ee;
  --estavo-soft: #f7f9fc;
  --estavo-card: #ffffff;
  --estavo-radius-sm: 11px;
  --estavo-radius-md: 14px;
  --estavo-radius-lg: 18px;
  --estavo-shadow-card: 0 9px 25px rgba(17, 26, 51, .05);
  --estavo-shadow-hover: 0 12px 28px rgba(17, 26, 51, .075);
}

/* ---------- Shared page hierarchy ---------- */
.page-header,
.client-account-header,
.business-finance-header {
  color: var(--estavo-ink);
}

.page-header h1,
.client-account-header h1,
.business-finance-header h1,
.compliance-page-header h2,
.properties > h2 {
  color: var(--estavo-ink) !important;
  letter-spacing: -.025em;
}

.page-header > div > p:last-child,
.client-account-header > div > p:last-child,
.business-finance-header > div > p:last-child,
.compliance-page-header p {
  color: var(--estavo-muted) !important;
  line-height: 1.55;
}

.eyebrow,
.finance-eyebrow,
.reports-eyebrow,
.settings-panel .eyebrow {
  color: #9a7722 !important;
  font-weight: 800;
  letter-spacing: .11em;
}

/* ---------- List-page shells ---------- */
.dashboard > .properties,
.compliance-page,
.inventory-table-wrap,
.settings-panel,
.client-card,
.finance-card,
.report-card {
  border-color: var(--estavo-line) !important;
  border-radius: var(--estavo-radius-lg) !important;
  box-shadow: var(--estavo-shadow-card) !important;
}

.dashboard > .properties {
  padding: 30px 32px;
}

.dashboard > .properties > h2 {
  margin-bottom: 20px;
}

/* ---------- Buttons: one visual system ---------- */
.properties-toolbar > button,
.page-header > button,
.page-header .primary-action,
.primary-action,
#addPropertyBtn,
#addLandlordBtn,
#addTenantBtn,
#addApplicantBtn,
#addInventoryBtn,
#newMaintenanceBtn,
#addTaskBtn {
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--estavo-navy) !important;
  border-radius: var(--estavo-radius-sm) !important;
  background: var(--estavo-navy) !important;
  color: #fff !important;
  box-shadow: 0 7px 16px rgba(17, 26, 51, .12) !important;
  font-weight: 800;
}

.properties-toolbar > button:hover,
.page-header > button:hover,
.page-header .primary-action:hover,
.primary-action:hover,
#addPropertyBtn:hover,
#addLandlordBtn:hover,
#addTenantBtn:hover,
#addApplicantBtn:hover,
#addInventoryBtn:hover,
#newMaintenanceBtn:hover,
#addTaskBtn:hover {
  border-color: #263554 !important;
  background: #263554 !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(17, 26, 51, .15) !important;
  transform: translateY(-1px);
}

.edit-btn,
.view-btn,
.secondary-action,
.btn-ghost,
.receipt-action,
.statement-action {
  border-radius: 10px !important;
}

.edit-btn,
.view-btn {
  min-height: 38px;
  padding: 0 15px;
  border: 1px solid #d8dee8 !important;
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: none !important;
}

.edit-btn:hover,
.view-btn:hover {
  border-color: #b8c1cf !important;
  background: #f6f8fb !important;
  color: var(--estavo-ink) !important;
}

.secondary-action,
.btn-ghost {
  border: 1px solid #d9e0eb !important;
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: 0 4px 12px rgba(17, 26, 51, .045) !important;
}

.secondary-action:hover,
.btn-ghost:hover {
  border-color: #c6cfdb !important;
  background: #f7f9fc !important;
  color: var(--estavo-ink) !important;
}

/* ---------- Filters and controls ---------- */
.properties-toolbar,
.property-filter-bar,
.inventory-toolbar,
.maintenance-toolbar,
.compliance-toolbar,
.reports-toolbar,
.users-toolbar {
  gap: 12px;
}

.properties-toolbar input,
.properties-toolbar select,
.property-filter-bar input,
.property-filter-bar select,
.inventory-toolbar input,
.inventory-toolbar select,
.maintenance-toolbar input,
.maintenance-toolbar select,
.compliance-toolbar select,
.reports-toolbar input,
.reports-toolbar select,
.search-field input {
  min-height: 46px;
  border: 1px solid #d9e0eb !important;
  border-radius: var(--estavo-radius-sm) !important;
  background: #fff !important;
  color: var(--estavo-ink);
  box-shadow: none !important;
}

.properties-toolbar input:focus,
.properties-toolbar select:focus,
.property-filter-bar input:focus,
.property-filter-bar select:focus,
.inventory-toolbar input:focus,
.inventory-toolbar select:focus,
.maintenance-toolbar input:focus,
.maintenance-toolbar select:focus,
.compliance-toolbar select:focus,
.reports-toolbar input:focus,
.reports-toolbar select:focus,
.search-field input:focus {
  border-color: rgba(200, 164, 63, .8) !important;
  outline: 3px solid rgba(200, 164, 63, .11) !important;
}

/* ---------- KPI / summary cards ---------- */
.maintenance-summary,
.inventory-summary,
.compliance-page-summary,
.client-summary-grid,
.finance-kpi-grid,
.reports-kpi-grid {
  gap: 16px !important;
}

.maintenance-stat,
.inventory-stat,
.compliance-page-summary .stat-card,
.client-summary-card,
.finance-kpi-grid article,
.report-kpi {
  min-height: 116px !important;
  padding: 18px 20px !important;
  border: 1px solid var(--estavo-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: var(--estavo-shadow-card) !important;
  transform: none !important;
}

.maintenance-stat span,
.inventory-stat span,
.client-summary-card span,
.finance-kpi-grid span,
.report-kpi-label,
.compliance-page-summary .stat-card h3 {
  color: #657086 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .065em !important;
  text-transform: uppercase !important;
}

.maintenance-stat strong,
.inventory-stat strong,
.client-summary-card strong,
.finance-kpi-grid strong,
.report-kpi strong,
.compliance-page-summary .stat-card p {
  color: var(--estavo-ink) !important;
  font-size: 29px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}

.maintenance-stat small,
.inventory-stat small,
.client-summary-card small,
.finance-kpi-grid small,
.report-kpi small {
  color: #7b879a !important;
  font-size: 12px !important;
}

/* Clickable summary cards remain light. Selection is indicated by gold only. */
.maintenance-stat:hover,
.inventory-stat:hover,
.report-kpi:hover {
  border-color: #c9d0dc !important;
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: var(--estavo-shadow-hover) !important;
  transform: translateY(-1px) !important;
}

.maintenance-stat.active,
.inventory-stat.active,
.report-kpi:focus-visible {
  border-color: #b99445 !important;
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: 0 0 0 2px rgba(185, 148, 69, .12), var(--estavo-shadow-card) !important;
}

.inventory-stat.active span,
.inventory-stat.active strong,
.inventory-stat.active small {
  color: inherit !important;
}
.inventory-stat.active span { color: #657086 !important; }
.inventory-stat.active small { color: #7b879a !important; }
.inventory-stat-danger strong,
.maintenance-stat-danger strong { color: #a13b32 !important; }

/* Meaningful accents stay as thin rails instead of filled cards. */
.client-summary-card.success { border-left: 4px solid #5c9670 !important; }
.client-summary-card.warning { border-left: 4px solid #caa640 !important; }
.client-summary-card.danger  { border-left: 4px solid #c45b57 !important; }

/* ---------- Tables ---------- */
.table-wrapper,
.properties-table-wrap,
.client-table-wrap,
.table-wrap {
  border-radius: 14px;
}

table thead th,
.client-table th,
.statement-items-table th {
  background: #f5f7fa !important;
  color: #59647a !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}

table tbody td,
.client-table td {
  border-bottom-color: #e7ebf1 !important;
}

table tbody tr:hover,
.client-table tbody tr:hover {
  background: #fbfcfe;
}

/* ---------- Empty states ---------- */
.maintenance-empty,
.client-empty,
.finance-empty,
.inventory-table-wrap tbody tr:only-child td[colspan],
.compliance-table tbody tr:only-child td[colspan] {
  color: #788397 !important;
}

.maintenance-empty,
.client-empty,
.finance-empty {
  border-color: #ccd4df !important;
  border-radius: 15px !important;
  background: #fff !important;
}

/* ---------- Diary ---------- */
.calendar-header {
  border-radius: var(--estavo-radius-lg);
}
.calendar-header-actions button,
.calendar-header-actions .btn {
  border-radius: var(--estavo-radius-sm) !important;
}
#calendarTimeline {
  border-radius: var(--estavo-radius-lg);
}

/* ---------- Settings ---------- */
.settings-nav,
.settings-panel {
  border-color: var(--estavo-line) !important;
  border-radius: var(--estavo-radius-lg) !important;
  box-shadow: var(--estavo-shadow-card) !important;
}
.settings-nav-item {
  border-radius: 12px !important;
}
.settings-nav-item.active {
  background: #f2f4fb !important;
  color: var(--estavo-ink) !important;
}
.settings-info-card,
.subscription-card,
.subscription-meta > div {
  border-color: var(--estavo-line) !important;
  border-radius: 15px !important;
}

/* ---------- Finance modules: preserve their hierarchy, align surfaces ---------- */
.client-account-tabs,
.finance-tabs {
  border-radius: 15px !important;
  background: #f0f2f6 !important;
}
.client-account-tab,
.finance-tab {
  border-radius: 10px !important;
}
.client-account-tab.active,
.finance-tab.active {
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: 0 5px 15px rgba(17, 26, 51, .07) !important;
}

.client-account-tab:hover,
.finance-tab:hover {
  background: rgba(255,255,255,.72) !important;
  color: var(--estavo-ink) !important;
}
.client-account-tab.active:hover,
.finance-tab.active:hover,
.client-account-tab.active:focus,
.finance-tab.active:focus,
.client-account-tab.active:focus-visible,
.finance-tab.active:focus-visible {
  background: #fff !important;
  color: var(--estavo-ink) !important;
  box-shadow: 0 5px 15px rgba(17, 26, 51, .07) !important;
  outline: none !important;
}
.client-account-badge,
.business-account-badge {
  border-color: var(--estavo-line) !important;
  border-radius: 13px !important;
  background: #fff !important;
  box-shadow: 0 5px 15px rgba(17, 26, 51, .04);
}

/* Reports keeps its executive hero; only shared cards are aligned. */
.reports-hero {
  border-radius: 18px !important;
}
.report-card {
  border: 1px solid var(--estavo-line) !important;
}

/* ---------- Responsive polish ---------- */
@media (max-width: 900px) {
  .dashboard > .properties { padding: 24px 20px; }
  .maintenance-summary,
  .inventory-summary,
  .compliance-page-summary,
  .client-summary-grid,
  .finance-kpi-grid,
  .reports-kpi-grid { gap: 12px !important; }
}
