@font-face {
  font-family: 'Geist';
  src: url('/assets/fonts/geist/Geist-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
}

/* Tenant overview parking context */
.tenant-parking-context {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.tenant-parking-context__item {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.tenant-parking-context__spot {
  width: fit-content;
  max-width: 100%;
  color: var(--bs-primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
}

.tenant-parking-context__spot:hover {
  text-decoration: underline;
}

.tenant-parking-context__owner {
  min-width: 0;
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  white-space: normal;
}

.tenant-parking-context__owner a {
  color: inherit;
  text-decoration: none;
}

.tenant-parking-context__owner a:hover {
  color: var(--bs-primary);
  text-decoration: underline;
}

.tenant-parking-context__more {
  min-width: 0;
}

.tenant-parking-context__more summary {
  width: fit-content;
  color: var(--bs-primary);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  list-style: none;
}

.tenant-parking-context__more summary::-webkit-details-marker {
  display: none;
}

.tenant-parking-context__more-list {
  display: grid;
  gap: 8px;
  margin-top: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 8px;
  background: #f8fafc;
}

.tenant-card-parking {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.tenant-parking-context--compact {
  gap: 6px;
}

.tenant-identity {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.tenant-identity .identity-block {
  max-width: 100%;
}

.tenant-identity .identity-block strong,
.tenant-identity .identity-block span {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  overflow-wrap: anywhere;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tenant-overview-table {
  width: 100%;
}

[data-tenant-view-panel="table"] {
  padding: 18px;
}

.tenant-overview-table th,
.tenant-overview-table td {
  min-width: 0;
  vertical-align: middle;
}

.tenant-overview-table .status-badge,
.tenant-card-list .status-badge {
  max-width: 100%;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}

.tenant-overview-table--full th:nth-child(1),
.tenant-overview-table--full td:nth-child(1) {
  min-width: 160px;
}

.tenant-overview-table--full th:nth-child(3),
.tenant-overview-table--full td:nth-child(3) {
  min-width: 220px;
}

.tenant-overview-table--full th:nth-child(4),
.tenant-overview-table--full td:nth-child(4) {
  min-width: 150px;
}

.tenant-overview-table--full th:nth-child(7),
.tenant-overview-table--full td:nth-child(7) {
  min-width: 180px;
}

.tenant-overview-table--full th:last-child,
.tenant-overview-table--full td:last-child,
.tenant-overview-table--compact th:last-child,
.tenant-overview-table--compact td:last-child {
  min-width: 90px;
  white-space: nowrap;
}

.tenant-overview-table--compact th:nth-child(1),
.tenant-overview-table--compact td:nth-child(1) {
  min-width: 180px;
  width: 21%;
}

.tenant-overview-table--compact th:nth-child(2),
.tenant-overview-table--compact td:nth-child(2) {
  min-width: 210px;
  width: 25%;
}

.tenant-overview-table--compact th:nth-child(3),
.tenant-overview-table--compact td:nth-child(3) {
  min-width: 155px;
  width: 18%;
}

.tenant-overview-table--compact th:nth-child(4),
.tenant-overview-table--compact td:nth-child(4) {
  min-width: 165px;
  width: 19%;
}

.tenant-table-stack {
  display: grid;
  gap: 7px;
  min-width: 0;
  justify-items: start;
}

.tenant-card-list .owner-card-title,
.tenant-card-list .tenant-card-parking {
  min-width: 0;
  width: 100%;
}

@media (min-width: 1400px) {
  .tenant-compact-table-wrap {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 1399.98px) {
  .tenant-full-table-wrap {
    display: none;
  }

  .tenant-compact-table-wrap {
    display: block;
  }
}

@media (max-width: 767.98px) {
  .tenant-full-table-wrap,
  .tenant-compact-table-wrap {
    display: none;
  }

  [data-tenant-view-button="table"] {
    display: none;
  }

  [data-tenant-view-button="cards"] {
    border-radius: 8px !important;
  }

  .tenant-card-parking {
    width: 100%;
  }

  .tenant-parking-context__spot {
    font-size: 15px;
  }

  .tenant-card-list .owner-card {
    padding: 20px;
  }

  .tenant-card-list .owner-card-header {
    align-items: flex-start;
    flex-direction: row;
    gap: 12px;
  }

  .tenant-card-list .owner-card-body {
    grid-template-columns: 1fr;
  }

  .tenant-card-list .owner-card-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
  }

  .tenant-card-list .owner-card-footer .btn {
    justify-content: center;
    min-width: 0;
    width: 100%;
  }
}

@font-face {
  font-family: 'Geist';
  src: url('/assets/fonts/geist/Geist-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: optional;
}

@font-face {
  font-family: 'Geist';
  src: url('/assets/fonts/geist/Geist-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: optional;
}

@font-face {
  font-family: 'Geist';
  src: url('/assets/fonts/geist/Geist-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: optional;
}

:root {
  --admin-font-family: 'Geist', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --vma-bg: #f5f8fc;
  --vma-surface: #ffffff;
  --vma-text: #152033;
  --vma-muted: #667085;
  --vma-border: #d9e2ef;
  --vma-primary: #244f9e;
  --vma-primary-soft: #eaf1ff;
  --vma-success: #147a52;
  --vma-success-soft: #e7f6ef;
  --vma-warning: #a15c00;
  --vma-warning-soft: #fff4df;
  --vma-danger: #b42318;
  --vma-danger-soft: #feecec;
  --vma-info: #036b8e;
  --vma-info-soft: #e6f6fb;
  --vma-shadow: 0 10px 24px rgba(16, 24, 40, .055);
  --vma-sidebar-width: 280px;
  --vma-content-padding-x: clamp(1rem, 2vw, 2rem);
  --vma-content-padding-y: 2rem;
  --vma-section-gap: 1.5rem;
  --vma-card-gap: 16px;
  --vma-filter-gap: 16px;
  --vma-table-cell-gap: 14px;
  --vma-toolbar-gap: 16px;
  --vma-action-min-height: 42px;
  --vma-touch-target: 44px;
  --vma-sidebar: var(--vma-sidebar-width);
  --sidebar-padding-y: 1.25rem;
  --sidebar-padding-x: 1rem;
  --sidebar-header-height: 52px;
  --sidebar-header-menu-gap: 24px;
  --sidebar-brand-gap: 12px;
  --sidebar-menu-gap: 4px;
  --sidebar-item-height: 48px;
  --sidebar-item-padding-y: 6px;
  --sidebar-item-padding-x: 10px;
  --sidebar-item-gap: 12px;
  --sidebar-item-radius: 12px;
  --sidebar-icon-size: 36px;
  --sidebar-icon-radius: 10px;
  --page-padding-x: var(--vma-content-padding-x);
  --section-gap: var(--vma-section-gap);
  --card-padding: 1.25rem;
  --card-radius: 14px;
}

body {
  background: var(--vma-bg);
  color: var(--vma-text);
  font-family: var(--admin-font-family);
  font-size: 15px;
  line-height: 1.5;
}

button,
input,
select,
textarea {
  font-family: var(--admin-font-family);
}

*, *::before, *::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-width: 0;
  width: 100%;
}

a {
  color: inherit;
}

h1,
.admin-page-title,
.page-title {
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 700;
  letter-spacing: -0.03em;
}

h2,
.card-title,
.card-title-sm {
  font-weight: 650;
  letter-spacing: -0.02em;
}

.btn,
label,
.form-label,
.table th,
.table thead th,
.admin-table th,
.contracts-table th,
.category-table th,
.badge {
  font-weight: 600;
}

.admin-kpi-grid,
.admin-stats-grid,
.dashboard-stats-grid,
.category-kpi-grid,
.audit-kpi-grid,
.category-kpi-grid.audit-kpi-grid,
.finance-kpi-grid,
.admin-overview-kpi-grid,
.vma-kpi-grid,
.contracts-kpi-grid,
.contract-kpi-grid,
.documents-kpi-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-kpi-grid > *,
.admin-stats-grid > *,
.dashboard-stats-grid > *,
.category-kpi-grid > *,
.audit-kpi-grid > *,
.finance-kpi-grid > *,
.admin-overview-kpi-grid > *,
.vma-kpi-grid > *,
.contracts-kpi-grid > *,
.contract-kpi-grid > *,
.documents-kpi-grid > * {
  min-width: 0;
}

.admin-kpi-card,
.admin-stat-card,
.dashboard-stat-card,
.category-kpi-card,
.audit-kpi-card,
.finance-kpi-card {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: space-between;
  min-height: 120px;
  min-width: 0;
  overflow: hidden;
  padding: 18px 20px;
}

.admin-kpi-value,
.admin-stat-value,
.dashboard-stat-value,
.category-kpi-value,
.audit-kpi-value,
.finance-kpi-value,
.admin-kpi-card .kpi-value,
.admin-stat-card .kpi-value,
.dashboard-stat-card .kpi-value,
.category-kpi-card .kpi-value,
.audit-kpi-card .kpi-value,
.finance-kpi-card .kpi-value {
  font-size: clamp(24px, 2.2vw, 36px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.audit-kpi-value.is-date,
.audit-kpi-value[data-type="date"] {
  font-size: clamp(20px, 1.8vw, 30px);
}

.admin-kpi-label,
.admin-stat-label,
.dashboard-stat-label,
.category-kpi-label,
.audit-kpi-label,
.finance-kpi-label,
.admin-kpi-card .kpi-label,
.admin-stat-card .kpi-label,
.dashboard-stat-card .kpi-label,
.category-kpi-card .kpi-label,
.audit-kpi-card .kpi-label,
.finance-kpi-card .kpi-label {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: normal;
}

@media (min-width: 1200px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .category-kpi-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .category-kpi-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 359.98px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .category-kpi-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: 1fr;
  }
}

/* Operational admin dashboard */
.admin-dashboard {
  display: grid;
  gap: 28px;
  min-width: 0;
}

.dashboard-section,
.dashboard-side-column {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.dashboard-section-heading {
  align-items: flex-end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dashboard-section-link {
  color: var(--bs-primary);
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}

.dashboard-section-link:hover,
.dashboard-section-link:focus-visible {
  text-decoration: underline;
}

.dashboard-operation-kpi-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-width: 0;
}

.dashboard-operation-kpi {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  color: inherit;
  display: flex;
  flex-direction: column;
  min-height: 154px;
  min-width: 0;
  padding: 18px;
  text-decoration: none;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.dashboard-operation-kpi:hover,
.dashboard-operation-kpi:focus-visible {
  border-color: rgba(var(--bs-primary-rgb), .3);
  box-shadow: 0 14px 32px rgba(15, 23, 42, .1);
  color: inherit;
  transform: translateY(-2px);
}

.dashboard-attention-card:hover,
.dashboard-attention-card:focus-visible {
  box-shadow: 0 14px 32px rgba(15, 23, 42, .1);
  color: inherit;
  transform: translateY(-2px);
}

.dashboard-operation-kpi:focus-visible,
.dashboard-attention-card:focus-visible,
.dashboard-activity-item:focus-visible,
.dashboard-link-row:focus-visible,
.dashboard-health-item:focus-visible {
  outline: 3px solid rgba(var(--bs-primary-rgb), .2);
  outline-offset: 2px;
}

.dashboard-operation-kpi__heading {
  align-items: center;
  color: var(--admin-muted, #64748b);
  display: flex;
  font-size: 13px;
  font-weight: 650;
  gap: 9px;
  min-width: 0;
}

.dashboard-widget-icon,
.dashboard-link-row__icon {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .08);
  border-radius: 8px;
  color: var(--bs-primary);
  display: inline-flex;
  flex: 0 0 32px;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.dashboard-operation-kpi > strong {
  font-size: clamp(26px, 2.2vw, 34px);
  font-weight: 750;
  letter-spacing: -0.04em;
  line-height: 1;
  margin-top: auto;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding-top: 18px;
}

.dashboard-operation-kpi__trend {
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  line-height: 1.3;
  margin-top: 8px;
}

.dashboard-attention-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.dashboard-attention-card {
  --attention-color: 37, 99, 235;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--vma-border);
  border-left: none;
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  color: inherit;
  display: flex;
  gap: 14px;
  min-height: 132px;
  min-width: 0;
  padding: 18px;
  text-decoration: none;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.dashboard-attention-card.is-danger { --attention-color: 220, 38, 38; }
.dashboard-attention-card.is-warning { --attention-color: 217, 119, 6; }
.dashboard-attention-card.is-info { --attention-color: 37, 99, 235; }
.dashboard-attention-card.is-success { --attention-color: 22, 163, 74; }

.dashboard-attention-card__icon {
  align-items: center;
  background: rgba(var(--attention-color), .09);
  border-radius: 8px;
  color: rgb(var(--attention-color));
  display: inline-flex;
  flex: 0 0 38px;
  font-size: 17px;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.dashboard-attention-card__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.dashboard-attention-card__count {
  color: rgb(var(--attention-color));
  font-size: 26px;
  letter-spacing: -0.04em;
  line-height: 1;
}

.dashboard-attention-card__title {
  color: #0f172a;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  margin-top: 8px;
}

.dashboard-attention-card__description {
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  line-height: 1.4;
  margin-top: 4px;
}

.dashboard-card-arrow {
  color: #94a3b8;
  flex: 0 0 auto;
}

.dashboard-workspace-grid {
  align-items: start;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr);
  min-width: 0;
}

.dashboard-activity-card,
.dashboard-quick-actions,
.dashboard-health-card {
  min-width: 0;
  padding: 22px;
}

.dashboard-activity-list,
.dashboard-link-list,
.dashboard-health-list {
  display: grid;
  margin-top: 16px;
}

.dashboard-activity-item,
.dashboard-link-row,
.dashboard-health-item {
  align-items: center;
  border-top: 1px solid rgba(148, 163, 184, .18);
  color: inherit;
  display: flex;
  gap: 12px;
  min-height: 58px;
  min-width: 0;
  padding: 10px 8px;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease;
}

.dashboard-activity-item:first-child,
.dashboard-link-row:first-child,
.dashboard-health-item:first-child {
  border-top: 0;
}

.dashboard-activity-item:hover,
.dashboard-activity-item:focus-visible,
.dashboard-link-row:hover,
.dashboard-link-row:focus-visible,
.dashboard-health-item:hover,
.dashboard-health-item:focus-visible {
  background: rgba(var(--bs-primary-rgb), .045);
  color: inherit;
}

.dashboard-activity-item__icon {
  align-items: center;
  background: #f1f5f9;
  border-radius: 8px;
  color: #475569;
  display: inline-flex;
  flex: 0 0 36px;
  height: 36px;
  justify-content: center;
  width: 36px;
}

.dashboard-activity-item__content,
.dashboard-health-item__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.dashboard-activity-item__content strong,
.dashboard-health-item__content strong {
  color: #0f172a;
  font-size: 13px;
  line-height: 1.35;
}

.dashboard-activity-item__content span,
.dashboard-health-item__content span {
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  line-height: 1.35;
  margin-top: 2px;
}

.dashboard-link-row {
  min-height: 54px;
}

.dashboard-link-row strong {
  flex: 1 1 auto;
  font-size: 13px;
}

.dashboard-health-item__state {
  align-items: center;
  background: #f1f5f9;
  border-radius: 999px;
  color: #64748b;
  display: inline-flex;
  flex: 0 0 28px;
  height: 28px;
  justify-content: center;
  width: 28px;
}

.dashboard-health-item.is-ok .dashboard-health-item__state { background: #dcfce7; color: #15803d; }
.dashboard-health-item.is-warning .dashboard-health-item__state { background: #ffedd5; color: #c2410c; }
.dashboard-health-item.is-danger .dashboard-health-item__state { background: #fee2e2; color: #b91c1c; }

.dashboard-empty-state {
  align-items: center;
  color: var(--admin-muted, #64748b);
  display: flex;
  gap: 10px;
  justify-content: center;
  min-height: 220px;
  text-align: center;
}

@media (max-width: 1199.98px) {
  .dashboard-operation-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dashboard-workspace-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
  }
}

@media (max-width: 991.98px) {
  .admin-dashboard {
    gap: 24px;
  }

  .dashboard-workspace-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-side-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .dashboard-operation-kpi-grid,
  .dashboard-attention-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-side-column {
    grid-template-columns: 1fr;
  }

  .dashboard-operation-kpi {
    min-height: 142px;
    padding: 16px;
  }

  .dashboard-attention-card {
    min-height: 154px;
  }
}

.admin-form-section-heading {
  align-items: center;
  display: flex;
  gap: 12px;
  margin: 4px 0 20px;
}

.admin-form-section-heading__number {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .1);
  border-radius: 10px;
  color: var(--bs-primary);
  display: inline-flex;
  flex: 0 0 36px;
  font-weight: 700;
  height: 36px;
  justify-content: center;
}

.related-parking-bulk {
  border-top: 1px solid rgba(15, 23, 42, .1);
  margin-top: 8px;
  padding-top: 28px;
}

.related-parking-bulk__table {
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: 12px;
  overflow: hidden;
}

.related-parking-bulk__header,
.related-parking-bulk__row {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(105px, .8fr) 80px minmax(145px, 1fr) minmax(150px, 1.2fr) minmax(135px, 1fr) 90px minmax(90px, .7fr) 118px;
  min-width: 0;
  padding: 12px 14px;
}

.related-parking-bulk__header {
  background: #f8fafc;
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.related-parking-bulk__row {
  border-top: 1px solid rgba(15, 23, 42, .08);
  transition: background-color .18s ease, box-shadow .18s ease;
}

.related-parking-bulk__row.is-changed {
  background: rgba(var(--bs-primary-rgb), .055);
  box-shadow: inset 3px 0 0 var(--bs-primary);
}

.related-parking-bulk__identity {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.related-parking-bulk__mobile-label {
  display: none;
}

.related-parking-bulk__notes summary {
  color: var(--bs-primary);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}

.related-parking-bulk__more {
  white-space: nowrap;
}

@media (max-width: 1199.98px) {
  .related-parking-bulk__table {
    border: 0;
    display: grid;
    gap: 14px;
    overflow: visible;
  }

  .related-parking-bulk__header {
    display: none;
  }

  .related-parking-bulk__row {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 16px;
  }

  .related-parking-bulk__mobile-label {
    color: var(--admin-muted, #64748b);
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 5px;
  }

  .related-parking-bulk__identity,
  .related-parking-bulk__notes,
  .related-parking-bulk__more {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px) {
  .related-parking-bulk__row {
    grid-template-columns: 1fr;
  }

  .related-parking-bulk__identity,
  .related-parking-bulk__notes,
  .related-parking-bulk__more {
    grid-column: auto;
  }

  .related-parking-bulk__more,
  [data-related-parking-bulk-form] .form-actions .btn {
    width: 100%;
  }

  [data-related-parking-bulk-form] .form-actions {
    background: rgba(255, 255, 255, .97);
    bottom: 0;
    box-shadow: 0 -10px 24px rgba(15, 23, 42, .08);
    margin-inline: -24px;
    padding: 12px 24px;
    position: sticky;
    z-index: 20;
  }
}

@media (max-width: 430px) {
  .dashboard-attention-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-attention-card {
    min-height: 0;
  }

  .dashboard-section-heading {
    align-items: flex-start;
  }
}

@media (max-width: 359.98px) {
  .dashboard-operation-kpi-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1200px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .category-kpi-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.admin-kpi-grid,
.admin-stats-grid,
.dashboard-stats-grid,
.category-kpi-grid,
.audit-kpi-grid,
.category-kpi-grid.audit-kpi-grid,
.finance-kpi-grid,
.admin-overview-kpi-grid,
.vma-kpi-grid,
.contracts-kpi-grid,
.contract-kpi-grid,
.documents-kpi-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-kpi-grid > *,
.admin-stats-grid > *,
.dashboard-stats-grid > *,
.category-kpi-grid > *,
.audit-kpi-grid > *,
.finance-kpi-grid > *,
.admin-overview-kpi-grid > *,
.vma-kpi-grid > *,
.contracts-kpi-grid > *,
.contract-kpi-grid > *,
.documents-kpi-grid > * {
  min-width: 0;
}

.admin-kpi-card,
.admin-stat-card,
.dashboard-stat-card,
.category-kpi-card,
.audit-kpi-card,
.finance-kpi-card {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: space-between;
  min-height: 120px;
  min-width: 0;
  overflow: hidden;
  padding: 18px 20px;
}

.admin-kpi-value,
.admin-stat-value,
.dashboard-stat-value,
.category-kpi-value,
.audit-kpi-value,
.finance-kpi-value,
.admin-kpi-card .kpi-value,
.admin-stat-card .kpi-value,
.dashboard-stat-card .kpi-value,
.category-kpi-card .kpi-value,
.audit-kpi-card .kpi-value,
.finance-kpi-card .kpi-value {
  font-size: clamp(24px, 2.2vw, 36px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.audit-kpi-value.is-date,
.audit-kpi-value[data-type="date"] {
  font-size: clamp(20px, 1.8vw, 30px);
}

.admin-kpi-label,
.admin-stat-label,
.dashboard-stat-label,
.category-kpi-label,
.audit-kpi-label,
.finance-kpi-label,
.admin-kpi-card .kpi-label,
.admin-stat-card .kpi-label,
.dashboard-stat-card .kpi-label,
.category-kpi-card .kpi-label,
.audit-kpi-card .kpi-label,
.finance-kpi-card .kpi-label {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: normal;
}

@media (min-width: 1200px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .category-kpi-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }
}

@media (max-width: 991.98px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .category-kpi-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 359.98px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: 1fr;
  }
}

.table th,
.table thead th,
.admin-table th,
.contracts-table th,
.category-table th {
  font-weight: 600 !important;
}

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

.app-sidebar {
  background: var(--vma-surface);
  border-right: 1px solid var(--vma-border);
  bottom: 0;
  left: 0;
  overflow-y: auto;
  padding: var(--sidebar-padding-y) var(--sidebar-padding-x);
  position: fixed;
  top: 0;
  transform: translateX(-100%);
  transition: transform .24s ease, visibility 0s linear .24s;
  visibility: hidden;
  width: var(--vma-sidebar);
  z-index: 1060;
}

.admin-mobile-topbar {
  display: none;
}

.admin-mobile-menu-btn {
  align-items: center;
  background: var(--vma-primary);
  border: 0;
  border-radius: 12px;
  box-shadow: 0 10px 22px rgba(36, 79, 158, .22);
  color: #fff;
  display: inline-flex;
  height: 42px;
  justify-content: center;
  padding: 0;
  width: 42px;
}

.admin-mobile-topbar-actions {
  align-items: center;
  display: inline-flex;
  gap: 10px;
}

.admin-mobile-search-btn {
  align-items: center;
  background: #f3f6fb;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 12px;
  color: var(--vma-primary);
  display: inline-flex;
  height: 42px;
  justify-content: center;
  padding: 0;
  transition: all .18s ease;
  width: 42px;
}

.admin-mobile-search-btn:hover {
  background: var(--vma-primary-soft);
}

.admin-mobile-search-btn:active {
  transform: scale(.98);
}

.admin-mobile-menu-btn:focus-visible,
.admin-mobile-search-btn:focus-visible,
.admin-sidebar-close:focus-visible {
  outline: 3px solid rgba(36, 79, 158, .25);
  outline-offset: 2px;
}

.admin-mobile-menu-bars,
.admin-mobile-menu-bars::before,
.admin-mobile-menu-bars::after {
  background: currentColor;
  border-radius: 999px;
  display: block;
  height: 2px;
  width: 18px;
}

.admin-mobile-menu-bars {
  position: relative;
}

.admin-mobile-menu-bars::before,
.admin-mobile-menu-bars::after {
  content: "";
  left: 0;
  position: absolute;
}

.admin-mobile-menu-bars::before {
  top: -6px;
}

.admin-mobile-menu-bars::after {
  top: 6px;
}

.admin-sidebar-close {
  align-items: center;
  background: #f3f6fb;
  border: 1px solid var(--vma-border);
  border-radius: 10px;
  color: var(--vma-text);
  display: inline-flex;
  height: 34px;
  justify-content: center;
  padding: 0;
  position: absolute;
  right: .85rem;
  top: .85rem;
  width: 34px;
}

.admin-sidebar-backdrop {
  background: rgba(15, 23, 42, .48);
  bottom: 0;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1050;
}

body.admin-sidebar-open {
  overflow: hidden;
}

body.admin-sidebar-open .app-sidebar {
  transform: translateX(0);
  transition-delay: 0s;
  visibility: visible;
}

.admin-quick-actions {
  position: fixed;
  right: var(--page-padding-x);
  top: .9rem;
  z-index: 1035;
}

.topbar .admin-quick-actions {
  flex: 0 0 auto;
  margin-left: auto;
  position: static;
}

.admin-quick-actions .btn {
  align-items: center;
  display: inline-flex;
  font-weight: 750;
  gap: .35rem;
  min-height: 2.35rem;
  padding-inline: .8rem;
  white-space: nowrap;
}

.admin-quick-actions-menu {
  border: 1px solid var(--vma-border);
  border-radius: .8rem;
  max-height: min(72vh, 32rem);
  min-width: 17rem;
  overflow-y: auto;
  padding: .45rem;
}

.admin-quick-actions-menu .dropdown-header {
  color: var(--vma-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  padding: .45rem .7rem .25rem;
  text-transform: uppercase;
}

.admin-quick-actions-menu .dropdown-item {
  border-radius: .55rem;
  font-size: .9rem;
  padding: .5rem .7rem;
}

.admin-quick-actions-menu .dropdown-item:focus,
.admin-quick-actions-menu .dropdown-item:hover {
  background: var(--vma-primary-soft);
  color: var(--vma-primary);
}

.admin-global-topbar {
  align-items: center;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  display: none;
  height: 64px;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1030;
}

.admin-global-topbar__inner {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  padding: 0 var(--page-padding-x);
  width: 100%;
}

.admin-global-search {
  flex: 0 1 420px;
  max-width: min(420px, 38vw);
  min-width: 280px;
  position: relative;
  width: 100%;
}

.admin-global-search-box {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 16px;
  display: flex;
  gap: 10px;
  min-height: 44px;
  padding: 0 14px;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.admin-global-search-box:focus-within {
  border-color: rgba(36, 79, 158, .42);
  box-shadow: 0 12px 28px rgba(36, 79, 158, .12);
}

.admin-global-search-box > i {
  color: var(--vma-primary);
  flex: 0 0 auto;
}

.admin-global-search-box input {
  background: transparent;
  border: 0;
  color: var(--vma-text);
  flex: 1 1 auto;
  font-size: 14px;
  min-width: 0;
  outline: 0;
}

.admin-global-search-box input::placeholder {
  color: #8a97ab;
}

.admin-global-search-spinner {
  border: 2px solid rgba(36, 79, 158, .16);
  border-top-color: var(--vma-primary);
  border-radius: 999px;
  display: none;
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

.admin-global-search.is-loading .admin-global-search-spinner {
  animation: vma-spin .72s linear infinite;
  display: inline-block;
}

.admin-global-search-menu {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 18px;
  box-shadow: 0 22px 55px rgba(15, 23, 42, .16);
  left: 0;
  margin-top: 8px;
  max-height: min(70vh, 520px);
  overflow-y: auto;
  padding: 12px;
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 1040;
}

.admin-global-search-group + .admin-global-search-group {
  margin-top: 10px;
}

.admin-global-search-group-title {
  color: var(--vma-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  padding: 7px 8px 5px;
  text-transform: uppercase;
}

.admin-global-search-result {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 14px;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  padding: 10px;
  text-align: left;
  text-decoration: none;
  transition: background-color .18s ease;
  width: 100%;
}

.admin-global-search-result:hover,
.admin-global-search-result.is-active {
  background: var(--vma-primary-soft);
}

.admin-global-search-result-icon {
  align-items: center;
  background: var(--vma-primary-soft);
  border-radius: 12px;
  color: var(--vma-primary);
  display: inline-flex;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.admin-global-search-result-title {
  color: var(--vma-text);
  display: block;
  font-size: 14px;
  font-weight: 750;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-global-search-result-meta {
  color: var(--vma-muted);
  display: block;
  font-size: 12px;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-global-search-result-badge {
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 999px;
  color: #526174;
  font-size: 11px;
  font-weight: 750;
  padding: 5px 8px;
  white-space: nowrap;
}

.admin-global-search-state {
  color: var(--vma-muted);
  font-size: 14px;
  padding: 16px;
  text-align: center;
}

.admin-global-search-state strong {
  color: var(--vma-text);
  display: block;
  font-size: 14px;
  margin-bottom: 3px;
}

.admin-global-search-overlay {
  background: #fff;
  bottom: 0;
  left: 0;
  overflow-y: auto;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1070;
}

.admin-global-search-overlay[hidden] {
  display: none;
}

body.admin-global-search-open {
  overflow: hidden;
}

.admin-global-search-overlay-panel {
  max-width: 720px;
  min-width: 0;
  padding: 16px;
  width: 100%;
}

.admin-global-search-overlay-header {
  align-items: center;
  display: flex;
  gap: 10px;
  position: sticky;
  top: 0;
  z-index: 1;
}

.admin-global-search-overlay-header .admin-global-search-box {
  flex: 1 1 auto;
}

.admin-global-search-close {
  align-items: center;
  background: #f3f6fb;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 12px;
  color: var(--vma-text);
  display: inline-flex;
  flex: 0 0 42px;
  height: 42px;
  justify-content: center;
  padding: 0;
  width: 42px;
}

.admin-global-search-mobile-results {
  border: 0;
  box-shadow: none;
  left: auto;
  margin-top: 16px;
  max-height: none;
  padding: 0;
  position: static;
  right: auto;
}

@keyframes vma-spin {
  to {
    transform: rotate(360deg);
  }
}

.app-main {
  flex: 1 1 auto;
  min-height: 100vh;
  min-width: 0;
  width: 100%;
}

.admin-main,
.admin-content,
.page-content,
.content-wrapper {
  min-width: 0;
  width: 100%;
}

@media (min-width: 992px) {
  .app-shell {
    display: grid;
    grid-template-columns: var(--vma-sidebar-width) minmax(0, 1fr);
  }

  .app-sidebar {
    transform: none;
    transition: none;
    visibility: visible;
    z-index: 1020;
  }

  .app-main {
    grid-column: 2;
    margin-left: 0;
    max-width: none;
    padding-top: 64px;
  }

  .admin-global-topbar {
    display: flex;
    left: var(--vma-sidebar);
  }

  .admin-mobile-topbar,
  .admin-global-search-overlay,
  .admin-sidebar-close,
  .admin-sidebar-backdrop {
    display: none;
  }
}

.brand-mark {
  align-items: center;
  background: var(--vma-primary);
  border-radius: .65rem;
  color: #fff;
  display: inline-flex;
  font-weight: 800;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.topbar {
  align-items: flex-start;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--vma-border);
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-height: 74px;
  padding: .9rem var(--page-padding-x);
  position: relative;
  z-index: 1010;
}

.admin-page-header {
  align-items: flex-start;
  gap: 24px;
  justify-content: space-between;
  padding: 24px var(--page-padding-x);
}

body.portal-layout .portal-page-header,
body.portal-layout .topbar {
  gap: 6px;
  min-height: 66px;
  padding-bottom: 13px;
  padding-top: 13px;
}

.admin-page-header__context {
  min-width: 0;
}

.admin-page-header__title-row {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.admin-page-header__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.admin-page-header__actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.admin-page-action-dropdown .dropdown-menu {
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
  padding: 8px;
}

.admin-page-action-dropdown .dropdown-item {
  border-radius: 10px;
  font-size: 14px;
  font-weight: 650;
  padding: 10px 12px;
}

.admin-page-action-dropdown .dropdown-item:hover,
.admin-page-action-dropdown .dropdown-item:focus {
  background: var(--vma-primary-soft);
  color: var(--vma-primary);
}

.admin-page-action-dropdown .dropdown-item.text-danger:hover,
.admin-page-action-dropdown .dropdown-item.text-danger:focus {
  background: rgba(220, 38, 38, .08);
  color: #b91c1c !important;
}

.admin-subnav-tabs {
  background: rgba(255, 255, 255, .94);
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  margin-bottom: 0;
  overflow-x: auto;
  padding-bottom: 1px;
  scrollbar-width: thin;
}

.admin-subnav-tabs__nav {
  flex-wrap: nowrap;
  gap: 8px;
  min-width: max-content;
}

.admin-subnav-tabs__nav .nav-link {
  border-radius: 12px;
  color: #475569;
  font-weight: 700;
  padding: 10px 14px;
  white-space: nowrap;
}

.admin-subnav-tabs__nav .nav-link:hover {
  background: #f4f7ff;
  color: var(--vma-primary);
}

.admin-subnav-tabs__nav .nav-link.active {
  background: var(--vma-primary-soft);
  color: var(--vma-primary);
}

.topbar-actions {
  display: grid;
  gap: .6rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

.topbar-actions .btn {
  min-height: 2.45rem;
}

.page-wrap {
  min-width: 0;
  padding: 1rem var(--vma-content-padding-x);
  width: 100%;
}

@media (min-width: 992px) {
  .topbar {
    align-items: center;
    flex-direction: row;
    padding-left: var(--page-padding-x);
    position: relative;
    top: auto;
  }

  .topbar-actions {
    display: flex;
    justify-content: flex-end;
    width: auto;
  }

  .topbar .admin-quick-actions + * {
    margin-left: 0;
  }

  .page-wrap {
    padding: var(--vma-content-padding-y) var(--vma-content-padding-x) 2.5rem;
  }

  body.portal-layout .app-main {
    padding-top: 0;
  }
}

@media (max-width: 991.98px) {
  :root {
    --page-padding-x: 20px;
  }

  .admin-mobile-topbar {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
    display: flex;
    height: 64px;
    justify-content: space-between;
    left: 0;
    padding: 0 var(--page-padding-x);
    position: fixed;
    right: 0;
    top: 0;
    transition:
      height .25s ease,
      box-shadow .25s ease,
      background-color .25s ease,
      backdrop-filter .25s ease;
    width: 100%;
    z-index: 1030;
  }

  .admin-global-search-desktop {
    display: none;
  }

  .admin-page-header {
    padding: 22px var(--page-padding-x);
  }

  .admin-page-header__actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .admin-page-header__actions .btn,
  .admin-page-header__actions .dropdown,
  .admin-page-header__actions .dropdown-toggle {
    width: 100%;
  }

  .admin-page-header__badges {
    margin-top: 12px;
  }

  .admin-mobile-topbar.is-scrolled {
    backdrop-filter: blur(12px);
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 30px rgba(15, 23, 42, .12);
    height: 56px;
  }

  body.admin-sidebar-open .admin-mobile-topbar {
    z-index: 1020;
  }

  .admin-sidebar-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    min-height: 64px;
    padding: 0 4px;
  }

  .admin-sidebar-header-title,
  .admin-sidebar-header-subtitle {
    display: none;
  }

  .admin-sidebar-brand {
    margin: 0 !important;
    padding-bottom: 0 !important;
  }

  .admin-sidebar-close {
    flex: 0 0 44px;
    height: 44px;
    order: 2;
    position: static;
    width: 44px;
  }

  .app-shell {
    padding-top: 64px;
  }

  body.portal-layout .app-shell {
    padding-top: 0;
  }

  .app-main,
  .page-wrap,
  .content-section,
  .vma-filter-card,
  .vma-data-card {
    max-width: 100%;
    min-width: 0;
  }

  .admin-mobile-topbar-title {
    display: none;
  }

  .admin-mobile-brand {
    align-items: center;
    background: var(--vma-primary);
    border-radius: 12px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 42px;
    height: 42px;
    font-weight: 800;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.2;
    position: relative;
    text-decoration: none;
    transition: all .2s ease;
    width: 42px;
  }

  .admin-mobile-brand::after {
    content: "";
    inset: 0;
    position: absolute;
  }

  .admin-mobile-brand:hover {
    color: #fff;
    filter: brightness(1.05);
  }

  .admin-mobile-brand:active {
    transform: scale(.98);
  }

  .admin-mobile-brand:focus,
  .admin-mobile-brand:focus-visible {
    outline: 3px solid rgba(36, 79, 158, .25);
    outline-offset: 3px !important;
  }

  .admin-mobile-menu-btn {
    flex: 0 0 44px;
    height: 44px;
    min-height: 44px;
    min-width: 44px;
    width: 44px;
  }

  .btn,
  .btn-sm,
  button,
  input,
  select,
  textarea,
  .form-control,
  .form-select,
  [role="button"],
  .dropdown-toggle,
  .sidebar-link,
  .sidebar-group-toggle,
  .sidebar-sublink {
    min-height: 44px;
  }

  .btn,
  .btn-sm {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    line-height: 1.2;
  }

  input,
  select,
  textarea,
  .form-control,
  .form-select,
  .admin-quick-actions .btn {
    min-height: 44px;
  }

  .page-subtitle,
  .card-title-sm,
  .status-badge,
  .vma-status-badge {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .topbar .btn,
  .page-header-actions .btn,
  .vma-filter-card .btn,
  .vma-data-card .btn {
    white-space: normal;
  }

  .btn-group.view-toggle,
  .page-header-actions,
  .topbar > .d-flex,
  .vma-filter-card .d-flex,
  .vma-data-card .d-flex.flex-wrap {
    max-width: 100%;
    min-width: 0;
  }

  .btn-group.view-toggle {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    width: 100%;
  }

  .btn-group.view-toggle > .btn {
    border-radius: 12px !important;
    width: 100%;
  }

  .dropdown-menu.show {
    max-width: calc(100vw - 40px);
    overflow-x: hidden;
  }

  .table thead th {
    position: static;
  }

  .topbar {
    padding-left: var(--page-padding-x);
  }

  .topbar .page-title {
    display: none;
  }

  body.portal-layout .portal-page-header,
  body.portal-layout .topbar {
    gap: 4px;
    min-height: 0;
    padding: 11px var(--page-padding-x) 12px;
  }

  body.portal-layout .portal-page-header .page-title,
  body.portal-layout .topbar .page-title {
    display: block;
    font-size: 24px;
  }

  body.portal-layout .portal-page-header .page-subtitle,
  body.portal-layout .topbar .page-subtitle {
    margin-bottom: 0;
  }

  .dashboard-stats-grid,
  .admin-stats-grid,
  .kpi-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-stats-grid {
    margin-left: 0;
    margin-right: 0;
  }

  .dashboard-stats-grid > *,
  .admin-stats-grid > *,
  .kpi-grid > * {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    width: auto;
  }

  .dashboard-stat-card,
  .admin-stat-card,
  .kpi-card {
    min-height: 112px;
    padding: 18px 14px;
  }

  .topbar .admin-quick-actions {
    margin-left: 0;
    width: 100%;
  }

  .topbar .admin-quick-actions .btn {
    justify-content: center;
    width: 100%;
  }

  .admin-quick-actions-menu {
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
    left: 20px !important;
    max-height: calc(100vh - 170px);
    max-width: 420px;
    min-width: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 14px;
    position: fixed !important;
    right: 20px !important;
    transform: none !important;
    width: calc(100vw - 40px);
  }

  .admin-quick-actions-menu .dropdown-item {
    border-radius: 12px;
    font-size: 15px;
    padding: 12px 14px;
  }

  .admin-quick-actions-menu .dropdown-item:active,
  .admin-quick-actions-menu .dropdown-item:focus,
  .admin-quick-actions-menu .dropdown-item:hover {
    background: rgba(37, 99, 235, .08);
    color: inherit;
  }

  .admin-quick-actions-menu .dropdown-header {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    margin-top: 8px;
    padding: 8px 14px;
    text-transform: uppercase;
  }
}

@media (max-width: 359.98px) {
  .dashboard-stats-grid,
  .admin-stats-grid,
  .kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: 1fr;
  }
}

.page-title {
  line-height: 1.2;
  margin: 0;
}

.page-subtitle {
  color: var(--vma-muted);
  margin: .25rem 0 0;
}

.nav-section-label {
  color: var(--vma-muted);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  margin: 1.25rem .75rem .5rem;
  text-transform: uppercase;
}

.sidebar-link {
  align-items: center;
  border-radius: var(--sidebar-item-radius);
  color: #344054;
  display: flex;
  font-size: .9375rem;
  font-weight: 500;
  gap: var(--sidebar-item-gap);
  min-height: var(--sidebar-item-height);
  padding: var(--sidebar-item-padding-y) var(--sidebar-item-padding-x);
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.sidebar-accordion {
  display: grid;
  gap: var(--sidebar-menu-gap);
  padding-bottom: 1rem;
}

.sidebar-header {
  align-items: center;
  display: flex;
  min-height: var(--sidebar-header-height);
  margin-bottom: var(--sidebar-header-menu-gap);
}

.sidebar-brand {
  align-items: center;
  display: flex;
  gap: var(--sidebar-brand-gap);
  margin: 0;
  min-width: 0;
  padding: 0;
}

.sidebar-brand-copy {
  min-width: 0;
}

.sidebar-brand-title {
  color: var(--vma-text);
  display: block;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.sidebar-brand-subtitle {
  color: var(--vma-muted);
  font-size: .8125rem;
  line-height: 1.35;
  margin-top: 2px;
}

.sidebar-root-link {
  font-weight: 500;
}

.sidebar-link:hover {
  background: #f3f6fb;
  color: var(--vma-primary);
  transform: translateX(1px);
}

.sidebar-link.active {
  background: rgba(51, 94, 234, .08);
  color: #335eea;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(51, 94, 234, .04);
}

.sidebar-link i {
  font-size: 1rem;
  text-align: center;
  width: 1.25rem;
}

.sidebar-group {
  min-width: 0;
}

.sidebar-group-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--sidebar-item-radius);
  color: #344054;
  display: flex;
  font-size: .9375rem;
  font-weight: 500;
  gap: var(--sidebar-item-gap);
  min-height: var(--sidebar-item-height);
  padding: var(--sidebar-item-padding-y) var(--sidebar-item-padding-x);
  text-align: left;
  transition: background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
  width: 100%;
}

.sidebar-group-toggle:hover {
  background: #f3f6fb;
  color: var(--vma-primary);
  transform: translateX(1px);
}

.sidebar-group-toggle.active,
.sidebar-group-toggle:not(.collapsed) {
  background: #f7f9fd;
  color: #344054;
  font-weight: 500;
}

.sidebar-icon {
  align-items: center;
  background: #f3f6fb;
  border-radius: var(--sidebar-icon-radius);
  color: #335eea;
  display: inline-flex;
  flex-shrink: 0;
  height: var(--sidebar-icon-size);
  justify-content: center;
  line-height: 1;
  width: var(--sidebar-icon-size);
}

.sidebar-icon i {
  font-size: 1rem;
  text-align: center;
  width: auto;
}

.sidebar-link.active .sidebar-icon,
.sidebar-item.active .sidebar-icon {
  background: rgba(51, 94, 234, .15);
  color: #335eea;
}

.sidebar-group-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-unread-badge {
  align-items: center;
  background: #2563eb;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  justify-content: center;
  line-height: 1;
  min-height: 22px;
  min-width: 22px;
  padding: 4px 7px;
}

.portal-message-unread {
  border-color: rgba(37, 99, 235, .28);
  box-shadow: 0 10px 28px rgba(37, 99, 235, .08);
}

.portal-message-preview {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.vma-list-view {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .09);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.vma-list-header,
.vma-list-row {
  align-items: center;
  display: grid;
  min-width: 0;
}

.vma-list-view--tickets .vma-list-header,
.vma-list-view--tickets .vma-list-row,
.vma-list-view--messages .vma-list-header,
.vma-list-view--messages .vma-list-row {
  grid-template-columns: 170px minmax(0, 1fr) 130px 155px 100px;
}

.vma-list-header {
  background: #f8fafc;
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  min-height: 44px;
  text-transform: uppercase;
}

.vma-list-row {
  color: #172033;
  min-height: 72px;
  text-decoration: none;
  transition: background-color .18s ease, box-shadow .18s ease;
}

.vma-list-row + .vma-list-row {
  border-top: 1px solid rgba(15, 23, 42, .07);
}

.vma-list-row:hover {
  background: #f7faff;
  color: #172033;
}

.vma-list-row:focus-visible {
  box-shadow: inset 0 0 0 3px rgba(37, 99, 235, .22);
  outline: none;
}

.vma-list-cell {
  min-width: 0;
  padding: 12px 16px;
}

.vma-list-cell--primary {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.vma-list-title {
  color: #172033;
  font-size: 15px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vma-list-preview {
  color: #64748b;
  font-size: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vma-list-cell--date,
.vma-list-cell--state,
.vma-list-cell--action {
  text-align: right;
}

.vma-list-cell--action {
  align-items: center;
  color: #2558ae;
  display: inline-flex;
  font-size: 14px;
  font-weight: 600;
  gap: 7px;
  justify-content: flex-end;
}

.vma-list-cell--indicator {
  display: flex;
  justify-content: center;
  padding-left: 16px;
  padding-right: 4px;
}

.vma-list-unread-dot,
.vma-list-status-dot {
  background: #2563eb;
  border-radius: 50%;
  display: inline-block;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.vma-list-status-dot.is-placeholder {
  visibility: hidden;
}

.vma-list-cell--status {
  align-items: center;
  display: flex;
  gap: 9px;
}

.vma-list-row.is-unread {
  background: rgba(37, 99, 235, .035);
}

.vma-list-row.is-unread .vma-list-title {
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .vma-list-view {
    border-radius: 8px;
  }

  .vma-list-header {
    display: none;
  }

  .vma-list-view--tickets .vma-list-row,
  .vma-list-view--messages .vma-list-row {
    min-height: 0;
    padding: 16px;
  }

  .vma-list-view--tickets .vma-list-row,
  .vma-list-view--messages .vma-list-row {
    grid-template-areas:
      "title title"
      "date status"
      "priority action";
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 10px;
  }

  .vma-list-view--tickets .vma-list-cell--primary { grid-area: title; }
  .vma-list-view--tickets .vma-list-cell--status { grid-area: status; }
  .vma-list-view--tickets .vma-list-cell--priority { grid-area: priority; }
  .vma-list-view--tickets .vma-list-cell--date { grid-area: date; }
  .vma-list-view--tickets .vma-list-cell--action { grid-area: action; }
  .vma-list-view--messages .vma-list-cell--primary { grid-area: title; }
  .vma-list-view--messages .vma-list-cell--status { grid-area: status; }
  .vma-list-view--messages .vma-list-cell--sender { grid-area: sender; }
  .vma-list-view--messages .vma-list-cell--date { grid-area: date; }
  .vma-list-view--messages .vma-list-cell--action { grid-area: action; }

  .vma-list-cell {
    padding: 0;
  }

  .vma-list-cell--date,
  .vma-list-cell--state {
    text-align: left;
  }

  .vma-list-cell--sender,
  .vma-list-cell--date,
  .vma-list-cell--priority {
    color: #64748b;
    font-size: 13px;
  }

  .vma-list-view--messages .vma-list-cell--sender {
    align-self: center;
    grid-column: 1;
    grid-row: 3;
  }

  .vma-list-view--messages .vma-list-cell--action {
    grid-column: 2;
    grid-row: 3;
  }

  .vma-list-cell--indicator {
    align-self: start;
    padding-top: 6px;
  }

  .vma-list-cell--action span {
    display: none;
  }
}

.portal-latest-message {
  background: #fff;
  color: inherit;
  cursor: pointer;
  overflow: hidden;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.portal-latest-message.is-unread {
  background: #f7faff;
  border-color: rgba(37, 99, 235, .22);
}

.portal-latest-message:hover {
  background: #f8fbff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .10);
  color: inherit;
  transform: translateY(-2px);
}

.portal-latest-message:focus-visible {
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .22), 0 14px 34px rgba(15, 23, 42, .10);
  outline: none;
}

.portal-latest-message__header,
.portal-latest-message__heading {
  align-items: center;
  display: flex;
}

.portal-latest-message__header {
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.portal-latest-message__heading {
  gap: 11px;
  min-width: 0;
}

.portal-latest-message__heading h2 {
  font-size: 15px;
  font-weight: 700;
  margin: 0;
}

.portal-latest-message__icon {
  align-items: center;
  background: rgba(37, 99, 235, .10);
  border-radius: 10px;
  color: #2563eb;
  display: inline-flex;
  flex: 0 0 auto;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.portal-latest-message__subject {
  color: #172033;
  display: -webkit-box;
  font-size: 20px;
  font-weight: 650;
  line-height: 1.3;
  margin-bottom: 7px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.portal-latest-message__meta {
  align-items: center;
  color: #64748b;
  display: flex;
  flex-wrap: wrap;
  font-size: 13px;
  gap: 6px;
  margin: 0 0 14px;
}

.portal-latest-message__preview {
  color: #475569;
  display: -webkit-box;
  line-height: 1.55;
  margin: 0 0 16px;
  max-width: 760px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.portal-latest-message__cta {
  align-items: center;
  color: #2558ae;
  display: flex;
  font-size: 14px;
  font-weight: 650;
  gap: 7px;
  justify-content: flex-end;
}

.portal-latest-message__empty {
  align-items: center;
  display: flex;
  gap: 14px;
}

.portal-latest-message__empty strong {
  display: block;
  font-weight: 650;
  margin-bottom: 4px;
}

.portal-latest-message__empty p {
  color: #64748b;
  margin: 0;
}

@media (max-width: 575.98px) {
  .portal-latest-message__header {
    margin-bottom: 14px;
  }

  .portal-latest-message__subject {
    font-size: 18px;
  }

  .portal-latest-message__preview {
    -webkit-line-clamp: 1;
  }

  .portal-latest-message__meta {
    margin-bottom: 10px;
  }
}

/* Batch 2C: shared identity and action-confirmation presentation. */
.action-confirmation-summary {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--vma-border, #dbe3ef);
  border-radius: 12px;
  background: #f8fafc;
}

.action-confirmation-summary__title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

.action-confirmation-summary__description {
  margin: 0 0 18px;
  color: var(--admin-muted, #64748b);
  line-height: 1.5;
}

.action-confirmation-summary__rows {
  display: grid;
  gap: 0;
  margin: 0;
}

.action-confirmation-summary__row {
  display: grid;
  grid-template-columns: minmax(140px, 0.42fr) minmax(0, 1fr);
  gap: 16px;
  padding: 11px 0;
  border-bottom: 1px solid #e5eaf1;
}

.action-confirmation-summary__row:first-child {
  padding-top: 0;
}

.action-confirmation-summary__row:last-child {
  border-bottom: 0;
}

.action-confirmation-summary__row dt {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  font-weight: 600;
}

.action-confirmation-summary__row dd {
  min-width: 0;
  margin: 0;
  color: var(--admin-text, #172033);
  font-weight: 600;
  overflow-wrap: anywhere;
}

.action-confirmation-summary__impact {
  margin: 16px 0 0;
  color: var(--admin-muted, #64748b);
  line-height: 1.5;
}

.modal .action-confirmation-summary {
  padding: 0;
  border: 0;
  background: transparent;
}

[data-owner-identity-summary] {
  margin-top: 8px;
}

[data-document-confirmation] {
  min-width: 0;
}

@media (max-width: 575.98px) {
  .action-confirmation-summary {
    padding: 16px;
  }

  .action-confirmation-summary__row {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  [data-document-confirmation] .document-wizard-actions,
  .modal-footer {
    align-items: stretch;
  }

  [data-document-confirmation] .document-wizard-actions .btn,
  .modal-footer .btn {
    width: 100%;
  }
}

.portal-ticket-preview {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 8px;
  color: inherit;
  cursor: pointer;
  display: block;
  padding: 16px;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.portal-ticket-preview + .portal-ticket-preview {
  margin-top: 10px;
}

.portal-ticket-preview:hover {
  background: #f8fbff;
  border-color: rgba(37, 99, 235, .18);
  box-shadow: 0 8px 22px rgba(15, 23, 42, .07);
  color: inherit;
  transform: translateY(-1px);
}

.portal-ticket-preview:focus-visible {
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .20);
  outline: none;
}

.portal-ticket-preview__header {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 10px;
}

.portal-ticket-preview__header strong {
  display: -webkit-box;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.35;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.portal-ticket-preview__summary {
  color: #64748b;
  display: flex;
  flex-wrap: wrap;
  font-size: 13px;
  gap: 8px 14px;
}

.portal-ticket-preview__summary span {
  align-items: center;
  display: inline-flex;
  gap: 5px;
}

.portal-ticket-preview__summary i {
  color: #6b86b5;
}

.portal-ticket-preview__reply {
  border-top: 1px solid rgba(15, 23, 42, .07);
  display: grid;
  gap: 3px;
  margin-top: 12px;
  padding-top: 10px;
}

.portal-ticket-preview__reply span {
  color: #64748b;
  font-size: 12px;
  font-weight: 600;
}

.portal-ticket-preview__reply strong {
  font-size: 13px;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-widget-all-link {
  align-items: center;
  color: #2558ae;
  display: flex;
  font-size: 14px;
  font-weight: 650;
  gap: 7px;
  justify-content: flex-end;
  margin-top: 14px;
  text-decoration: none;
}

.portal-widget-all-link:hover {
  color: #17458f;
}

@media (max-width: 575.98px) {
  .portal-ticket-preview {
    padding: 14px;
  }

  .portal-ticket-preview__summary {
    display: grid;
    gap: 7px;
    grid-template-columns: 1fr;
  }
}

.sidebar-chevron {
  align-items: center;
  display: inline-flex;
  flex: 0 0 .55rem;
  height: .55rem;
  justify-content: center;
  opacity: .62;
  transform: rotate(0deg);
  transition: transform .2s ease;
  width: .55rem;
}

.sidebar-chevron::before {
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  height: .45rem;
  transform: rotate(45deg) translate(-1px, -1px);
  width: .45rem;
}

.sidebar-group.show .sidebar-chevron,
.sidebar-group-toggle:not(.collapsed) .sidebar-chevron {
  transform: rotate(180deg);
}

.sidebar-subnav {
  display: grid;
  gap: 2px;
  margin: 4px 0 8px 12px;
  padding: 2px 0 2px 10px;
}

.sidebar-sublink {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: .6rem;
  color: #475467;
  display: flex;
  font-size: .88rem;
  min-height: 2.1rem;
  padding: .42rem .65rem .42rem .75rem;
  text-align: left;
  text-decoration: none;
  transition: background .18s ease, color .18s ease;
  width: 100%;
}

.sidebar-sublink:hover {
  background: #f7f9fd;
  color: var(--vma-primary);
}

.sidebar-sublink.active {
  background: rgba(51, 94, 234, .08);
  color: var(--vma-primary);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(51, 94, 234, .04);
}

.sidebar-logout {
  color: #b42318;
}

.sidebar-logout:hover {
  background: var(--vma-danger-soft);
  color: #9f1b13;
}

.entity-chip {
  align-items: center;
  background: #eef4ff;
  border-radius: 999px;
  color: #1d4ed8;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 700;
  gap: .35rem;
  padding: .25rem .55rem;
  text-decoration: none;
}

.entity-chip:hover {
  background: #dbeafe;
  color: #163ea8;
}

.entity-chip-muted {
  background: #eef2f7;
  color: #475467;
}

.entity-chip-muted:hover {
  background: #e4e7ec;
  color: #344054;
}

.identity-block {
  color: inherit;
  display: inline-grid;
  gap: .12rem;
  min-width: 0;
  text-decoration: none;
}

.identity-block strong {
  color: var(--vma-text);
  font-weight: 800;
  line-height: 1.2;
}

.identity-block span {
  color: var(--vma-muted);
  font-size: .84rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.identity-block:hover strong {
  color: var(--vma-primary);
}

.min-w-0 {
  min-width: 0;
}

.parking-chip {
  align-items: center;
  background: #eef4ff;
  border-radius: 999px;
  color: #1d4ed8;
  display: inline-flex;
  font-weight: 800;
  gap: .4rem;
  padding: .35rem .65rem;
  text-decoration: none;
}

.parking-chip span {
  align-items: center;
  background: #dbeafe;
  border-radius: 999px;
  display: inline-flex;
  font-size: .72rem;
  height: 1.25rem;
  justify-content: center;
  width: 1.25rem;
}

.parking-chip:hover {
  background: #dbeafe;
  color: #163ea8;
}

.contract-chip {
  background: #eef4ff;
  border-radius: 999px;
  color: #1d4ed8;
  display: inline-flex;
  font-weight: 700;
  padding: .35rem .7rem;
  text-decoration: none;
}

.contract-chip:hover {
  background: #dbeafe;
  color: #163ea8;
}

.document-chip {
  align-items: center;
  background: #eef4ff;
  border-radius: 999px;
  color: #1d4ed8;
  display: inline-flex;
  font-weight: 700;
  gap: .4rem;
  padding: .35rem .7rem;
  text-decoration: none;
}

.document-chip:hover {
  background: #dbeafe;
  color: #163ea8;
}

.version-badge {
  background: #f2f4f7;
  border-radius: 999px;
  color: #344054;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 750;
  padding: .25rem .55rem;
  text-decoration: none;
}

.version-badge:hover {
  background: #e4e7ec;
  color: #1d2939;
}

.recent-doc-list {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.recent-doc-item {
  align-items: center;
  border-radius: 12px;
  color: inherit;
  display: flex;
  gap: .75rem;
  overflow: hidden;
  padding: .75rem;
  text-decoration: none;
  width: 100%;
}

.recent-doc-item:hover {
  background: #f3f6fb;
  color: inherit;
}

.recent-doc-icon {
  align-items: center;
  background: #eef4ff;
  border-radius: 10px;
  color: #1d4ed8;
  display: inline-flex;
  flex: 0 0 36px;
  height: 36px;
  justify-content: center;
  width: 36px;
}

.recent-doc-content {
  flex: 1 1 auto;
  min-width: 0;
}

.recent-doc-title {
  display: block;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recent-doc-meta {
  color: #64748b;
  display: block;
  font-size: .8rem;
}

.recent-doc-date {
  color: #0f172a;
  flex: 0 0 auto;
  font-size: .85rem;
  white-space: nowrap;
}

.documents-dashboard-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr);
  margin-bottom: 24px;
}

.document-status-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}

.document-status-tab {
  align-items: center;
  background: #fff;
  border: 1px solid var(--vma-border);
  border-radius: 999px;
  color: var(--vma-muted);
  display: inline-flex;
  font-size: 14px;
  font-weight: 600;
  min-height: 38px;
  padding: 0 16px;
  text-decoration: none;
}

.document-status-tab:hover,
.document-status-tab.active {
  background: #eef4ff;
  border-color: #b8d4ff;
  color: var(--vma-primary);
}

.documents-kpi-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

.documents-dashboard-main {
  min-width: 0;
}

.documents-recent-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.documents-recent-card .recent-doc-list {
  flex: 1 1 auto;
}

.documents-alerts {
  display: grid;
  gap: .75rem;
  margin-top: 1rem;
}

.documents-alerts .alert {
  margin-bottom: 0;
}

.documents-filter-card .row {
  flex-wrap: wrap;
}

.documents-filter-card .form-control,
.documents-filter-card .form-select {
  min-width: 0;
}

@media (min-width: 576px) {
  .documents-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .documents-dashboard-grid {
    align-items: stretch;
    grid-template-columns: minmax(0, 2fr) 420px;
  }

  .documents-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .documents-filter-card .btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .recent-doc-item {
    align-items: flex-start;
  }

  .recent-doc-date {
    font-size: .8rem;
    margin-left: auto;
  }
}

.contract-kpi-card {
  color: inherit;
  text-decoration: none;
}

.contract-kpi-card:hover {
  border-color: #c8d8f5;
  box-shadow: 0 12px 28px rgba(36, 79, 158, .09);
  color: inherit;
}

.parking-kpi-card {
  color: inherit;
  cursor: pointer;
}

.parking-kpi-card strong {
  display: block;
}

.status-purple {
  background: #f3e8ff;
  color: #6d28d9;
}

.status-muted {
  background: #eef2f7;
  color: #475467;
}

.text-muted-small {
  color: #7a8699;
  font-size: .85rem;
}

.vma-card {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
}

.vma-card-body {
  padding: 1rem;
}

@media (min-width: 992px) {
  .vma-card-body {
    padding: var(--card-padding);
  }
}

.metric-card {
  height: 100%;
}

.metric-card .vma-card-body {
  display: flex;
  flex-direction: column;
  min-height: 154px;
  padding-top: 1rem;
}

.metric-top {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: .85rem;
}

.metric-icon {
  align-items: center;
  border-radius: .7rem;
  display: inline-flex;
  font-size: 1.1rem;
  height: 2.3rem;
  justify-content: center;
  width: 2.3rem;
}

.metric-label {
  color: #344054;
  font-size: .86rem;
  font-weight: 760;
  margin-bottom: .25rem;
}

.metric-value {
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1;
}

.metric-note {
  color: var(--vma-muted);
  font-size: .78rem;
  margin-top: auto;
}

.card-title-sm {
  font-size: 1rem;
  font-weight: 800;
  margin: 0;
}

.table {
  margin-bottom: 0;
}

.table-responsive {
  border-radius: calc(var(--card-radius) - 4px);
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
}

.admin-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

.admin-table {
  min-width: 1280px;
}

.bankimport-transactions-card {
  max-width: 100%;
  width: 100%;
}

.bankimport-transactions-card .admin-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  width: 100%;
}

.bankimport-transactions-card table {
  min-width: 1100px;
  width: 100%;
}

.bankimport-status-monitor {
  max-width: 100%;
  width: 100%;
}

.bankimport-progress {
  height: 18px;
  overflow: hidden;
}

.bankimport-progress-summary {
  align-items: center;
  color: #64748b;
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 10px 18px;
}

.bankimport-progress-summary strong {
  color: var(--bs-heading-color);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
}

.bankimport-status-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bankimport-status-card {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 18px 20px;
}

.bankimport-status-card strong {
  color: var(--bs-heading-color);
  display: block;
  font-size: 28px;
  font-weight: 650;
  line-height: 1;
}

.bankimport-status-card span {
  color: #64748b;
  display: block;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}

.bankimport-status-actions {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.bankimport-status-actions > .btn,
.bankimport-status-actions > form {
  flex: 0 0 auto;
}

.bankimport-status-timeline {
  border-left: 2px solid var(--bs-border-color);
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-left: 8px;
  padding-left: 18px;
}

.bankimport-status-timeline__item {
  align-items: baseline;
  color: #475569;
  display: flex;
  gap: 12px;
  position: relative;
}

.bankimport-status-timeline__item::before {
  background: #2f5aae;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 1px var(--bs-border-color);
  content: "";
  height: 12px;
  left: -25px;
  position: absolute;
  top: 5px;
  width: 12px;
}

.bankimport-status-timeline__item.is-error::before {
  background: #dc3545;
}

.bankimport-status-timeline__item time {
  color: #64748b;
  flex: 0 0 48px;
  font-size: 13px;
  font-weight: 700;
}

.bankimport-status-timeline__item span {
  font-size: 14px;
}

@media (max-width: 992px) {
  .bankimport-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 576px) {
  .bankimport-status-grid {
    grid-template-columns: 1fr;
  }

  .bankimport-progress-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .bankimport-status-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .bankimport-status-actions .btn,
  .bankimport-status-actions form,
  .bankimport-status-actions button {
    width: 100%;
  }

  .bankimport-status-timeline__item {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }
}

.contracts-table {
  width: 100%;
  min-width: 1280px;
}

.contracts-page,
.contracts-kpi-grid,
.contracts-filter-card,
.contracts-results,
.contracts-table-card {
  max-width: 100%;
  min-width: 0;
}

.contracts-table-card {
  align-self: stretch;
  margin-left: 0;
  margin-right: 0;
  max-width: 100% !important;
  overflow: hidden;
  width: 100%;
}

.contracts-table-card .admin-table-scroll {
  overflow-x: auto;
}

.admin-table th:first-child,
.admin-table td:first-child,
.contracts-table th:first-child,
.contracts-table td:first-child {
  background: #fff;
  left: 0;
  position: sticky;
  z-index: 2;
}

.admin-table th:last-child,
.admin-table td:last-child,
.contracts-table th:last-child,
.contracts-table td:last-child {
  background: #fff;
  position: sticky;
  right: 0;
  z-index: 2;
}

.admin-table thead th:first-child,
.admin-table thead th:last-child,
.contracts-table thead th:first-child,
.contracts-table thead th:last-child {
  z-index: 3;
}

.contracts-table th,
.contracts-table td {
  white-space: nowrap;
}

.contracts-table td:nth-child(5) {
  min-width: 190px;
  white-space: normal;
}

.contracts-table th:nth-child(8),
.contracts-table td:nth-child(8),
.contracts-table th:nth-child(9),
.contracts-table td:nth-child(9),
.contracts-table th:nth-child(10),
.contracts-table td:nth-child(10),
.contracts-table th:nth-child(11),
.contracts-table td:nth-child(11) {
  width: 118px;
}

.contract-review-inline {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.contract-review-trigger {
  height: 30px;
  min-height: 30px;
  padding: 0 10px;
}

.contracts-kpi-grid,
.contract-kpi-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.contracts-kpi-grid > *,
.contract-kpi-grid > * {
  min-width: 0;
}

.contracts-filter-grid,
.contract-filter-grid {
  align-items: end;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(240px, 2fr) repeat(4, minmax(150px, 1fr)) auto auto;
  max-width: 100%;
  min-width: 0;
}

.contracts-filter-grid > *,
.contract-filter-grid > * {
  min-width: 0;
}

.contract-filter-card .form-control,
.contract-filter-card .form-select {
  min-width: 0;
}

.contracts-filter-actions,
.contract-filter-actions {
  display: flex;
  gap: .75rem;
  justify-content: flex-end;
}

.result-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  max-width: 100%;
  min-width: 0;
}

.result-toolbar .view-toggle {
  flex: 0 0 auto;
}

@media (max-width: 1399.98px) {
  .contracts-filter-grid,
  .contract-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .contracts-filter-grid,
  .contract-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .contracts-filter-grid,
  .contract-filter-grid {
    grid-template-columns: 1fr;
  }

  .contracts-filter-actions,
  .contract-filter-actions {
    flex-direction: column;
  }

  .contracts-filter-actions .btn,
  .contract-filter-actions .btn {
    width: 100%;
  }

  .result-toolbar {
    align-items: flex-start;
  }
}

.vma-data-card:has(.admin-actions-menu),
.admin-table-card,
.admin-table-wrapper {
  overflow: visible;
}

.table .dropdown-menu,
.admin-actions-menu {
  z-index: 1080;
}

.admin-actions-menu {
  border: 1px solid var(--vma-border);
  border-radius: .8rem;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .14);
  min-width: 220px;
  padding: .4rem;
}

.admin-actions-menu--portalled {
  inset: auto auto auto auto !important;
  position: fixed !important;
  transform: none !important;
}

.admin-actions-menu .dropdown-item {
  align-items: center;
  border-radius: .55rem;
  display: flex;
  min-height: 44px;
  padding: .6rem .75rem;
}

.admin-actions-menu .dropdown-item:focus,
.admin-actions-menu .dropdown-item:hover {
  background: var(--vma-primary-soft);
  color: var(--vma-primary);
}

.table > :not(caption) > * > * {
  padding: .95rem .9rem;
}

.table thead th {
  background: var(--vma-surface);
  color: var(--vma-muted);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .04em;
  position: sticky;
  top: 0;
  text-transform: uppercase;
  z-index: 2;
}

.table tbody td {
  vertical-align: middle;
}

.table-hover tbody tr,
.table tbody tr {
  transition: background .16s ease;
}

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

.table th:last-child,
.table td:last-child {
  text-align: right;
}

.status-badge {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .76rem;
  font-weight: 750;
  height: auto;
  justify-content: center;
  line-height: 1;
  min-height: 1.55rem;
  padding: .4rem .62rem;
  align-self: flex-start;
  width: auto;
  white-space: nowrap;
}

.status-badge-success {
  background: var(--vma-success-soft);
  color: var(--vma-success);
}

.status-paid,
.status-active,
.status-free,
.status-resolved {
  background: var(--vma-success-soft);
  color: var(--vma-success);
}

.status-open,
.status-pending,
.status-progress {
  background: var(--vma-warning-soft);
  color: var(--vma-warning);
}

.status-late,
.status-danger {
  background: var(--vma-danger-soft);
  color: var(--vma-danger);
}

.status-info,
.status-rented,
.status-waiting {
  background: var(--vma-info-soft);
  color: var(--vma-info);
}

.filters-panel {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  padding: 1rem;
}

.form-control,
.form-select {
  border-color: var(--vma-border);
  font-size: .92rem;
}

.form-label {
  color: #344054;
  font-size: .86rem;
  font-weight: 760;
  margin-bottom: .4rem;
}

.form-label.required::after,
.required > .form-label::after {
  color: var(--vma-danger);
  content: " *";
  font-weight: 800;
}

.form-control:disabled,
.form-select:disabled {
  background: #f2f5f9;
  color: #7a8699;
}

.form-control.is-valid,
.form-select.is-valid {
  border-color: #8fd3b3;
}

.btn {
  border-radius: .7rem;
  font-weight: 700;
}

.btn-primary {
  background: var(--vma-primary);
  border-color: var(--vma-primary);
}

.btn-outline-primary {
  border-color: #adc2ea;
  color: var(--vma-primary);
}

.nav-tabs {
  border-bottom-color: var(--vma-border);
}

.nav-tabs .nav-link {
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--vma-muted);
  font-weight: 750;
}

.nav-tabs .nav-link.active {
  background: transparent;
  border-bottom-color: var(--vma-primary);
  color: var(--vma-primary);
}

.mobile-card-list {
  display: grid;
  gap: .75rem;
}

.stacked-item {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  padding: 1rem;
}

.stacked-title {
  align-items: flex-start;
  display: flex;
  gap: .75rem;
  justify-content: space-between;
}

.stacked-meta {
  color: var(--vma-muted);
  display: grid;
  gap: .25rem;
  margin-top: .65rem;
}

.parking-code {
  align-items: center;
  background: #eef4ff;
  border: 1px solid #c7d8f6;
  border-radius: .5rem;
  color: var(--vma-primary);
  display: inline-flex;
  font-weight: 800;
  gap: .35rem;
  line-height: 1;
  padding: .42rem .55rem;
}

.content-section {
  display: grid;
  gap: 1rem;
  min-width: 0;
  padding-bottom: var(--section-gap);
  width: 100%;
}

@media (min-width: 992px) {
  .content-section {
    gap: 1.5rem;
  }
}

.vma-breadcrumbs {
  background: rgba(255, 255, 255, .84);
  border-bottom: 1px solid var(--vma-border);
  color: var(--vma-muted);
  font-size: .82rem;
  padding: .65rem var(--page-padding-x);
  padding-left: 4.75rem;
}

.vma-breadcrumbs ol {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.vma-breadcrumbs li {
  align-items: center;
  display: inline-flex;
  gap: .35rem;
}

.vma-breadcrumbs li:not(:last-child)::after {
  color: #a6b4c7;
  content: ">";
}

.vma-breadcrumbs a {
  color: var(--vma-muted);
  font-weight: 700;
  text-decoration: none;
}

.vma-breadcrumbs a:hover {
  color: var(--vma-primary);
}

.vma-breadcrumbs [aria-current="page"] {
  color: var(--vma-text);
  font-weight: 800;
}

@media (min-width: 992px) {
  .vma-breadcrumbs {
    padding-left: var(--page-padding-x);
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .admin-global-search {
    flex-basis: 360px;
    max-width: 360px;
    min-width: 280px;
  }
}

@media (max-width: 991.98px) {
  .vma-breadcrumbs {
    margin-left: 0;
    padding-left: var(--page-padding-x);
    padding-right: var(--page-padding-x);
    text-align: left;
  }

  .vma-breadcrumbs ol {
    justify-content: flex-start;
    margin-bottom: 0;
  }
}

.vma-page-header,
.vma-detail-header {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: var(--section-gap);
}

@media (min-width: 992px) {
  .vma-page-header,
  .vma-detail-header {
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
  }
}

.vma-kpi-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: var(--section-gap);
}

@media (min-width: 768px) {
  .vma-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .vma-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.vma-kpi-card {
  align-items: stretch;
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  display: flex;
  flex-direction: column;
  gap: 18px;
  height: 100%;
  justify-content: space-between;
  min-height: 132px;
  min-width: 0;
  overflow: hidden;
  padding: 22px;
  text-decoration: none;
  transition: box-shadow .16s ease, transform .16s ease, border-color .16s ease;
}

.vma-kpi-card:hover {
  border-color: #c8d8f5;
  box-shadow: 0 10px 24px rgba(36, 79, 158, .09);
  color: inherit;
  transform: translateY(-1px);
}

.kpi-heading {
  align-items: center;
  display: flex;
  gap: 9px;
  min-width: 0;
}

.kpi-icon {
  align-items: center;
  background: #f4f7ff;
  border-radius: 10px;
  color: #2454b8;
  display: flex;
  flex: 0 0 30px;
  height: 30px;
  justify-content: center;
  width: 30px;
}

.kpi-icon i,
.kpi-icon svg {
  font-size: 15px;
  height: 15px;
  width: 15px;
}

.kpi-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.kpi-value,
.vma-kpi-card > strong,
.vma-kpi-card .metric-value {
  color: var(--bs-heading-color);
  font-size: clamp(34px, 2.8vw, 42px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: normal;
  white-space: nowrap;
}

.kpi-label,
.vma-kpi-card .metric-label {
  color: var(--bs-secondary);
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.2;
  margin: 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vma-kpi-card.is-zero .kpi-value,
.vma-kpi-card.is-zero .metric-value,
.vma-kpi-card.is-zero > strong {
  color: #94a3b8;
}

.vma-kpi-card.is-zero .kpi-icon {
  color: #6b7d9d;
}

.vma-kpi-card:not(:has(.kpi-icon)) {
  justify-content: center;
}

.vma-kpi-card:not(.admin-kpi-card) {
  align-items: center;
  flex-direction: row;
  gap: 14px;
  justify-content: flex-start;
  min-height: 88px;
  overflow: visible;
  padding: 18px 20px;
}

.vma-kpi-card:not(.admin-kpi-card) .kpi-icon {
  border-radius: 12px;
  flex: 0 0 42px;
  height: 42px;
  width: 42px;
}

.vma-kpi-card:not(.admin-kpi-card) .kpi-icon i,
.vma-kpi-card:not(.admin-kpi-card) .kpi-icon svg {
  font-size: 18px;
  height: 18px;
  width: 18px;
}

.vma-kpi-card:not(.admin-kpi-card) .kpi-value {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0;
  overflow-wrap: normal;
  white-space: normal;
}

.vma-kpi-card:not(.admin-kpi-card) .kpi-label {
  color: #64748b;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.25;
  margin-top: 6px;
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.portal-kpi-grid {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  max-width: 100%;
}

.portal-kpi-grid > * {
  min-width: 0;
}

.portal-kpi-card.vma-kpi-card {
  align-items: stretch;
  flex-direction: column;
  gap: 18px;
  height: auto !important;
  justify-content: space-between;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  padding: 18px 20px;
}

.portal-kpi-card .kpi-heading {
  align-items: center;
  display: flex;
  gap: 9px;
  min-width: 0;
}

.portal-kpi-card .kpi-icon {
  border-radius: 10px;
  flex: 0 0 30px;
  height: 30px;
  width: 30px;
}

.portal-kpi-card .kpi-icon i,
.portal-kpi-card .kpi-icon svg {
  font-size: 15px;
  height: 15px;
  width: 15px;
}

.portal-kpi-card .kpi-content {
  min-width: 0;
}

.portal-kpi-card .kpi-label {
  color: var(--bs-secondary);
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.2;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-kpi-card .kpi-value {
  font-size: clamp(34px, 2.8vw, 42px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.portal-kpi-card.is-text-value .kpi-value {
  font-size: clamp(20px, 2vw, 28px);
  letter-spacing: -0.02em;
  line-height: 1.12;
  overflow-wrap: normal;
}

.portal-dashboard-widget-grid {
  align-items: flex-start;
}

.portal-dashboard-widget-grid > [class*="col-"] {
  align-self: flex-start;
}

.portal-dashboard-widget {
  height: auto;
  min-height: 0;
}

.portal-dashboard-empty.vma-empty-state {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 0;
  justify-content: center;
  justify-items: center;
  min-height: 0;
  padding: 28px 24px;
  text-align: center;
}

.portal-dashboard-empty .vma-empty-icon {
  margin-bottom: 12px;
}

.portal-dashboard-empty .vma-empty-title {
  color: var(--vma-text);
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 6px;
}

.portal-dashboard-empty .vma-empty-text {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--vma-muted);
  display: -webkit-box;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  max-width: 320px;
  overflow: hidden;
}

.portal-account-center {
  gap: 18px;
}

.portal-account-header {
  align-items: center;
  display: flex;
  gap: 18px;
  padding: 22px 24px;
}

.portal-account-avatar {
  align-items: center;
  background: var(--vma-primary);
  border-radius: 16px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 56px;
  font-size: 24px;
  font-weight: 800;
  height: 56px;
  justify-content: center;
  width: 56px;
}

.portal-account-header__main {
  min-width: 0;
}

.portal-account-header__main h2 {
  font-size: clamp(24px, 2.5vw, 34px);
  font-weight: 750;
  letter-spacing: -.035em;
  line-height: 1.05;
  margin: 0 0 8px;
}

.portal-account-header__meta {
  align-items: center;
  color: var(--vma-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 8px;
  min-width: 0;
}

.portal-account-tabs-wrap {
  margin: 0 -4px;
  max-width: 100%;
  overflow-x: auto;
  padding: 0 4px 2px;
}

.portal-account-tabs {
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 14px;
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: max-content;
  padding: 5px;
}

.portal-account-tabs .nav-link {
  border-radius: 10px;
  color: var(--vma-muted);
  font-size: 14px;
  font-weight: 750;
  padding: 10px 14px;
  white-space: nowrap;
}

.portal-account-tabs .nav-link.active {
  background: var(--vma-primary);
  color: #fff;
}

.portal-preference-card {
  align-items: center;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 14px;
  cursor: pointer;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 16px 18px;
  transition: background-color .18s ease, border-color .18s ease;
}

.portal-preference-card:hover {
  background: rgba(37, 99, 235, .04);
  border-color: rgba(37, 99, 235, .18);
}

.portal-preference-card strong,
.portal-preference-card small {
  display: block;
}

.portal-preference-card small {
  color: var(--vma-muted);
  line-height: 1.35;
  margin-top: 3px;
}

.portal-security-card {
  display: flex;
  flex-direction: column;
}

.portal-activity-timeline {
  display: grid;
  gap: 12px;
}

.portal-activity-item {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.portal-activity-icon {
  align-items: center;
  border-radius: 12px;
  display: inline-flex;
  flex: 0 0 38px;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.portal-activity-item strong,
.portal-activity-item small {
  display: block;
}

.portal-activity-item small {
  color: var(--vma-muted);
  margin-top: 2px;
}

.portal-parking-grid {
  max-width: 100%;
  min-width: 0;
}

.portal-parking-card {
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, .07);
  min-width: 0;
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

.portal-parking-grid.has-multiple .portal-parking-card:hover {
  border-color: rgba(37, 99, 235, .18);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .11);
  transform: translateY(-3px);
}

.portal-parking-card .card-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 24px;
}

.portal-parking-card-header {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  min-width: 0;
}

.portal-parking-heading {
  min-width: 0;
}

.portal-parking-title {
  color: var(--vma-text);
  font-size: clamp(30px, 2.35vw, 36px);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.05;
  margin: 0;
}

.portal-parking-status {
  flex: 0 0 auto;
  white-space: nowrap;
}

.portal-parking-info-grid {
  display: grid;
  gap: 14px 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 22px;
  min-width: 0;
}

.portal-parking-info-item {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.portal-parking-info-icon {
  align-items: center;
  background: rgba(37, 99, 235, .08);
  border-radius: 12px;
  color: var(--vma-primary);
  display: inline-flex;
  flex: 0 0 40px;
  height: 40px;
  justify-content: center;
  width: 40px;
}

.portal-parking-info-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.portal-parking-info-label {
  color: var(--vma-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .01em;
  line-height: 1.2;
}

.portal-parking-info-value {
  color: var(--vma-text);
  font-size: 16px;
  font-weight: 750;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
}

.portal-parking-summary {
  align-items: center;
  background: rgba(15, 23, 42, .035);
  border: 1px solid rgba(15, 23, 42, .06);
  border-radius: 14px;
  color: var(--vma-muted);
  display: flex;
  font-size: 14px;
  font-weight: 700;
  gap: 8px;
  margin-top: 20px;
  padding: 12px 14px;
}

.portal-parking-summary-icon {
  color: #15803d;
  font-size: 16px;
  line-height: 1;
}

.portal-parking-summary.has-warning {
  background: var(--vma-warning-soft);
  border-color: rgba(217, 119, 6, .18);
  color: var(--vma-warning);
}

.portal-parking-summary.has-warning .portal-parking-summary-icon {
  color: var(--vma-warning);
}

.portal-parking-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 20px;
}

.portal-parking-actions .btn {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
  min-height: 42px;
  white-space: nowrap;
}

@media (min-width: 1200px) {
  .portal-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .portal-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}

@media (max-width: 767.98px) {
  .portal-account-header {
    align-items: flex-start;
    padding: 20px;
  }

  .portal-account-avatar {
    flex-basis: 48px;
    height: 48px;
    width: 48px;
  }

  .portal-preference-card {
    align-items: flex-start;
    padding: 15px;
  }

  .portal-account-center .btn-primary {
    width: 100%;
  }

  .portal-parking-card .card-body {
    padding: 24px;
  }

  .portal-parking-info-grid {
    grid-template-columns: 1fr;
  }

  .portal-parking-actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  .portal-parking-actions .btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .owner-card-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .owner-card-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .owner-card-footer .btn,
  .owner-card-footer .dropdown,
  .owner-card-footer .dropdown-toggle {
    width: 100%;
  }

  .portal-parking-card-header {
    flex-direction: column;
    gap: 12px;
  }

  .portal-parking-status {
    align-self: flex-start;
  }
}

@media (max-width: 359.98px) {
  .portal-kpi-grid {
    grid-template-columns: 1fr;
  }

  .portal-parking-card .card-body {
    padding: 20px;
  }
}

.finance-report-filters,
.finance-report-chart-grid,
.finance-report-chart-grid > *,
.finance-report-chart-card,
.finance-report-table-wrap,
.finance-report-header-actions,
.finance-report-table-actions {
  max-width: 100%;
  min-width: 0;
}

.finance-report-page,
.finance-report-page > *,
.finance-report-page .row,
.finance-report-page .vma-data-card {
  max-width: 100%;
  min-width: 0;
}

.finance-report-page {
  overflow: hidden;
}

.finance-report-page .row {
  margin-left: 0;
  margin-right: 0;
}

.finance-report-filters,
.finance-report-chart-card,
.finance-report-table-wrap {
  overflow: hidden;
}

.finance-report-filters .row {
  max-width: 100%;
  min-width: 0;
}

.finance-report-filters .form-control,
.finance-report-filters .form-select,
.finance-report-filters .btn {
  width: 100%;
}

.finance-report-header-actions,
.finance-report-table-actions {
  align-items: center;
}

.finance-report-chart {
  display: block;
  height: auto;
  max-width: 100%;
  width: 100% !important;
}

.finance-report-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
  .finance-report-header-actions,
  .finance-report-table-actions {
    gap: 8px;
    justify-content: flex-start;
    width: 100%;
  }

  .finance-report-header-actions .btn,
  .finance-report-table-actions .btn {
    flex: 0 1 auto;
    min-width: 0;
  }

  .finance-report-filters .row {
    gap: 16px 0;
  }
}

@media (max-width: 767.98px) {
  .finance-report-chart-grid > [class*="col-"] {
    width: 100%;
  }
}

.finance-kpi-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.finance-kpi-card {
  min-width: 0;
}

@media (min-width: 1400px) {
  .finance-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 1199.98px) {
  .finance-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .finance-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 359.98px) {
  .finance-kpi-grid {
    grid-template-columns: 1fr;
  }
}

.dashboard-stats-grid,
.admin-overview-kpi-grid,
.contracts-kpi-grid,
.contract-kpi-grid,
.documents-kpi-grid,
.finance-kpi-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.dashboard-stats-grid > *,
.admin-overview-kpi-grid > *,
.contracts-kpi-grid > *,
.contract-kpi-grid > *,
.documents-kpi-grid > *,
.finance-kpi-grid > * {
  min-width: 0;
}

@media (min-width: 768px) {
  .dashboard-stats-grid,
  .admin-overview-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid,
  .finance-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .dashboard-stats-grid,
  .admin-overview-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid,
  .finance-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .vma-kpi-card {
    gap: 16px;
    min-height: 118px;
    padding: 18px 14px;
  }

  .kpi-value,
  .vma-kpi-card > strong,
  .vma-kpi-card .metric-value {
    font-size: clamp(28px, 7.4vw, 34px);
  }
}

@media (max-width: 359.98px) {
  .dashboard-stats-grid,
  .admin-overview-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid,
  .finance-kpi-grid,
  .vma-kpi-grid {
    grid-template-columns: 1fr;
  }
}

.vma-filter-card,
.vma-data-card {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  padding: 1rem;
  position: relative;
}

.owner-profile-card {
  border-radius: 20px;
  padding: 28px;
}

.owner-profile-heading {
  align-items: center;
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 22px;
}

.owner-avatar {
  align-items: center;
  background: #eef4ff;
  border: 1px solid #dbeafe;
  border-radius: 18px;
  color: #1d4ed8;
  display: inline-flex;
  flex: 0 0 56px;
  font-size: 1.05rem;
  font-weight: 800;
  height: 56px;
  justify-content: center;
  width: 56px;
}

.owner-avatar--company {
  background: #f4f7ff;
  color: #334155;
}

.owner-profile-name {
  color: #0f172a;
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  font-weight: 750;
}

.owner-profile-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
}

.profile-kv {
  display: grid;
  gap: 12px;
}

.profile-kv > div {
  align-items: start;
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(120px, .45fr) minmax(0, 1fr);
  padding-bottom: 10px;
}

.profile-kv span {
  color: #64748b;
  font-size: .84rem;
  font-weight: 700;
}

.profile-kv strong {
  color: #0f172a;
  font-size: .95rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.profile-kv--stats > div {
  align-items: center;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 14px;
  gap: 10px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  padding: 12px;
}

.profile-kv--stats i {
  align-items: center;
  background: #eef4ff;
  border-radius: 12px;
  color: #1d4ed8;
  display: inline-flex;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.summary-kpi {
  align-items: flex-start;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 14px;
  display: flex;
  gap: 14px;
  height: 100%;
  min-width: 0;
  padding: 14px;
}

.summary-kpi__icon {
  align-items: center;
  background: #eef4ff;
  border-radius: 12px;
  color: #1d4ed8;
  display: inline-flex;
  flex: 0 0 42px;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.summary-kpi__icon i,
.summary-kpi__icon svg {
  font-size: 18px;
  height: 18px;
  width: 18px;
}

.summary-kpi__content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.summary-kpi__title {
  color: #64748b;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}

.summary-kpi__value {
  color: var(--bs-heading-color, #0f172a);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.owner-tabs {
  margin-top: 24px;
}

.owner-tabs__nav {
  border-radius: 16px;
  padding: 8px 0;
}

.owner-tabs__nav .admin-subnav-tabs__nav .nav-link {
  color: #475569;
  font-weight: 600;
  padding: .75rem 1rem;
  white-space: nowrap;
}

.owner-tabs__nav .admin-subnav-tabs__nav .nav-link:hover {
  background: #f4f7ff;
  color: #1d4ed8;
}

.owner-tabs__nav .admin-subnav-tabs__nav .nav-link.active {
  background: #eef4ff;
  color: #1d4ed8;
  font-weight: 700;
}

.owner-tabs__content {
  padding-top: 24px;
}

.owner-overview-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
}

.owner-action-grid {
  display: grid;
  gap: 10px;
}

.owner-action-grid .btn {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
}

.owner-timeline {
  display: grid;
  gap: 16px;
}

.owner-timeline__item {
  display: grid;
  gap: 12px;
  grid-template-columns: 32px minmax(0, 1fr);
}

.owner-timeline__marker {
  align-items: center;
  background: #dcfce7;
  border-radius: 999px;
  color: #047857;
  display: inline-flex;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.owner-timeline__time {
  color: #64748b;
  font-size: .8rem;
  font-weight: 700;
}

.owner-timeline__text {
  color: #0f172a;
  font-size: .95rem;
  font-weight: 700;
}

.owner-detail-parking-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.related-parking {
  min-width: 0;
}

.related-parking-card {
  max-width: 100%;
  padding-left: 12px;
  padding-right: 12px;
  width: 100%;
}

.related-parking__panel,
.related-parking-list {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.related-parking__toolbar {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.related-parking__filters {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 1.5fr) repeat(4, minmax(130px, 1fr));
  margin-bottom: 18px;
  max-width: 100%;
}

.related-parking__panel[hidden] {
  display: none !important;
}

.related-parking-list .vma-list-header,
.related-parking-list .vma-list-row {
  grid-template-columns:
    minmax(110px, .8fr)
    minmax(90px, .58fr)
    minmax(150px, .95fr)
    minmax(170px, 1.12fr)
    minmax(170px, 1.12fr)
    minmax(140px, .9fr)
    minmax(120px, .72fr);
}

.related-parking-list .vma-list-cell {
  min-width: 0;
  overflow: hidden;
  overflow-wrap: anywhere;
  padding-left: 12px;
  padding-right: 12px;
}

.related-parking-list__primary-floor {
  color: #64748b;
  display: none;
  font-size: 12px;
  line-height: 1.35;
  margin-top: 3px;
}

.parking-status-badge {
  align-items: center;
  display: inline-flex;
  font-size: .76rem;
  line-height: 1.2;
  max-height: calc(2.4em + .8rem);
  max-width: 100%;
  overflow: hidden;
  overflow-wrap: anywhere;
  padding: .4rem .62rem;
  text-align: center;
  white-space: normal;
}

.related-parking-list__row {
  cursor: default;
}

.related-parking-list__row .btn {
  min-height: 36px;
  min-width: 96px;
  white-space: nowrap;
}

.related-parking-list .vma-list-cell--action {
  min-width: 120px;
  padding-right: 12px;
}

[data-parking-editor-modal] .modal-content {
  border: 0;
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .18);
}

[data-parking-editor-modal] .modal-body {
  padding: 24px;
}

.related-parking-mobile-label {
  display: none;
}

.related-parking__no-results {
  margin-top: 16px;
}

.owner-detail-parking-card {
  background: #fff;
  border: 1px solid var(--vma-border);
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  transition: box-shadow .18s ease, transform .18s ease;
}

.owner-detail-parking-card:hover {
  box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
  transform: translateY(-2px);
}

.owner-detail-parking-card__number {
  color: #1d4ed8;
  display: inline-block;
  font-size: 1.1rem;
  font-weight: 800;
  text-decoration: none;
}

.owner-detail-parking-card__number:hover {
  color: #163ea8;
}

.owner-detail-parking-card__meta {
  display: grid;
  gap: 8px;
}

.owner-detail-parking-card__meta div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.owner-detail-parking-card__meta span {
  color: #64748b;
  font-size: .82rem;
  font-weight: 700;
}

.owner-detail-parking-card__meta strong {
  color: #0f172a;
  font-size: .88rem;
  text-align: right;
}

@media (max-width: 1399.98px) {
  .related-parking__filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .related-parking__filters > :first-child {
    grid-column: 1 / -1;
  }

  .related-parking-list .vma-list-header {
    display: none;
  }

  .related-parking-list .vma-list-row {
    column-gap: 16px;
    grid-template-areas:
      "primary status tenant action"
      "contract contract charger action";
    grid-template-columns: minmax(110px, 1fr) minmax(150px, .85fr) minmax(150px, 1fr) 120px;
    padding: 14px 16px;
    row-gap: 10px;
  }

  .related-parking-list .vma-list-cell {
    padding: 0;
  }

  .related-parking-list .vma-list-cell--primary { grid-area: primary; }
  .related-parking-list__floor { display: none; }
  .related-parking-list__primary-floor { display: block; }
  .related-parking-list__status { grid-area: status; }
  .related-parking-list__tenant { grid-area: tenant; }
  .related-parking-list__contract { grid-area: contract; }
  .related-parking-list__charger { grid-area: charger; }
  .related-parking-list .vma-list-cell--action {
    grid-area: action;
    min-width: 120px;
  }
}

@media (max-width: 767.98px) {
  .related-parking__toolbar {
    align-items: flex-start;
  }

  .related-parking__toolbar .view-toggle .btn {
    font-size: 0;
    min-width: 40px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .related-parking__toolbar .view-toggle .btn i {
    font-size: 15px;
    margin: 0;
  }

  .related-parking__filters {
    grid-template-columns: 1fr;
  }

  .related-parking__filters > :first-child {
    grid-column: auto;
  }

  .related-parking-list .vma-list-row {
    grid-template-areas:
      "primary status"
      "tenant tenant"
      "contract contract"
      "charger action";
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .related-parking-mobile-label {
    color: #64748b;
    display: block;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 3px;
  }

  .related-parking-list__tenant,
  .related-parking-list__contract,
  .related-parking-list__charger {
    font-size: 13px;
  }

  .related-parking-list .vma-list-cell--action span {
    display: inline;
  }
}

.entity-search__input-wrap {
  position: relative;
}

.entity-search {
  position: relative;
}

.entity-search__input {
  padding-right: 42px;
}

.entity-search__input::-webkit-search-cancel-button,
.entity-search__input::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.entity-search__clear {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: #94a3b8;
  cursor: pointer;
  display: none;
  height: 22px;
  justify-content: center;
  position: absolute;
  right: 10px;
  top: 50%;
  transition: all .15s ease;
  transform: translateY(-50%);
  width: 22px;
}

.entity-search__clear:hover {
  background: #f1f5f9;
  color: #334155;
}

.entity-search__clear.is-visible {
  display: flex;
}

.entity-search__clear i,
.entity-search__clear svg {
  font-size: 12px;
  height: 12px;
  line-height: 1;
  width: 12px;
}

.entity-search__results {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
  margin-top: 8px;
  overflow: hidden;
}

.entity-search__result {
  align-items: center;
  background: #fff;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  text-align: left;
  width: 100%;
}

.entity-search__result:last-child {
  border-bottom: 0;
}

.entity-search__result:hover,
.entity-search__result.active {
  background: #f4f7ff;
}

.entity-search__result-title {
  color: #0f172a;
  font-weight: 700;
}

.entity-search__result-subtitle {
  color: #64748b;
  display: block;
  font-size: 13px;
  margin-top: 2px;
}

.entity-search__badge {
  background: #eef4ff;
  border-radius: 999px;
  color: #2454b8;
  flex: 0 0 auto;
  font-size: 12px;
  padding: 4px 8px;
}

.entity-search__selected {
  background: #eef6ff;
  border: 1px solid #b8d4ff;
  border-radius: 14px;
  margin-top: 10px;
  padding: 12px 14px;
}

.entity-search__state {
  color: #64748b;
  font-size: 14px;
  padding: 12px 14px;
}

.admin-form-card:not(.related-parking-card),
.vma-data-card:has(form[method="post"]):not(.vma-filter-card):not(.bankimport-transactions-card):not(.contract-signed-review-card):not(.contracts-table-card):not(.related-parking-card) {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: 18px;
  box-shadow: var(--vma-shadow);
  margin-left: auto;
  margin-right: auto;
  max-width: 920px !important;
  padding: 28px;
  width: 100%;
}

.vma-data-card.bankimport-transactions-card,
.vma-data-card.bankimport-transactions-card:has(form[method="post"]) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  width: 100%;
}

.form-grid {
  display: grid;
  gap: 20px 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.row.form-grid {
  margin-left: 0;
  margin-right: 0;
}

.row.form-grid > [class*="col-"] {
  padding-left: 0;
  padding-right: 0;
  width: auto;
}

.form-grid .full-width {
  grid-column: 1 / -1;
}

.admin-form-card form > .row.g-3,
.vma-data-card:has(form[method="post"]) form > .row.g-3 {
  display: grid;
  gap: 20px 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-left: 0;
  margin-right: 0;
}

.admin-form-card form > .row.g-3 > [class*="col-"],
.vma-data-card:has(form[method="post"]) form > .row.g-3 > [class*="col-"] {
  grid-column: auto;
  padding-left: 0;
  padding-right: 0;
  width: auto;
}

.admin-form-card form > .row.g-3 > .col-12,
.vma-data-card:has(form[method="post"]) form > .row.g-3 > .col-12 {
  grid-column: 1 / -1;
}

.form-actions {
  border-top: 1px solid var(--bs-border-color, var(--vma-border));
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 24px;
  padding-top: 24px;
}

[data-company-field] {
  display: none;
}

.company-fields-visible [data-company-field] {
  display: block;
}

.owner-parking-selector {
  background: #f8fbff;
  border: 1px solid var(--vma-border);
  border-radius: 16px;
  padding: 1rem;
}

.owner-parking-selector.is-invalid {
  border-color: #dc3545;
  box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .08);
}

.owner-parking-list {
  display: grid;
  gap: .75rem;
  max-height: 320px;
  overflow: auto;
  padding-right: .25rem;
}

.owner-parking-card {
  align-items: flex-start;
  background: #fff;
  border: 1px solid #dbe4f0;
  border-radius: 14px;
  cursor: pointer;
  display: flex;
  gap: .85rem;
  margin: 0;
  padding: .9rem;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.owner-parking-card:hover {
  background: #f4f7ff;
  border-color: #b8ccff;
}

.owner-parking-card.is-selected {
  background: #eef6ff;
  border-color: #8db8ff;
  box-shadow: 0 10px 24px rgba(29, 78, 216, .08);
}

.owner-parking-card .form-check-input {
  flex: 0 0 auto;
  margin-top: .2rem;
}

.owner-parking-card__body {
  display: block;
  min-width: 0;
}

.owner-parking-card__title {
  color: #1d4ed8;
  display: block;
  font-weight: 800;
  line-height: 1.25;
}

.owner-parking-card__meta {
  color: #64748b;
  display: block;
  font-size: .86rem;
  line-height: 1.45;
  margin-top: .2rem;
}

.balance-category-modal .modal-dialog {
  max-width: 520px;
}

.balance-category-modal .modal-content,
.balance-category-modal__content {
  background-clip: padding-box;
  background-color: #fff;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .22);
  color: #0f172a;
  display: flex;
  flex-direction: column;
  opacity: 1;
  outline: 0;
  pointer-events: auto;
  position: relative;
  width: 100%;
}

.balance-category-modal .modal-header,
.balance-category-modal .modal-body,
.balance-category-modal .modal-footer {
  background: #fff;
  position: static;
}

.balance-category-modal .modal-header {
  border-bottom: 1px solid #e5e7eb;
  padding: 1rem 1.25rem;
}

.balance-category-modal .modal-body {
  padding: 1.25rem;
}

.balance-category-modal .modal-footer {
  border-top: 1px solid #e5e7eb;
  gap: .75rem;
  padding: 1rem 1.25rem;
}

@media (max-width: 768px) {
  .owner-profile-card {
    padding: 20px;
  }

  .owner-profile-heading {
    align-items: flex-start;
    gap: 12px;
  }

  .owner-avatar {
    flex-basis: 48px;
    height: 48px;
    width: 48px;
  }

  .owner-profile-grid {
    grid-template-columns: 1fr;
  }

  .profile-kv > div {
    gap: 4px;
    grid-template-columns: 1fr;
  }

  .profile-kv--stats > div {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .profile-kv--stats strong {
    grid-column: 2;
  }

  .owner-overview-grid {
    grid-template-columns: 1fr;
  }

  .owner-tabs__content {
    padding-top: 16px;
  }

  .admin-form-card:not(.related-parking-card),
  .vma-data-card:has(form[method="post"]):not(.vma-filter-card):not(.bankimport-transactions-card):not(.contract-signed-review-card):not(.contracts-table-card):not(.related-parking-card) {
    padding: 20px 16px;
  }

  .form-grid,
  .admin-form-card form > .row.g-3,
  .vma-data-card:has(form[method="post"]) form > .row.g-3 {
    gap: 16px;
    grid-template-columns: 1fr;
  }

  .admin-form-card form > .row.g-3 > [class*="col-"],
  .vma-data-card:has(form[method="post"]) form > .row.g-3 > [class*="col-"] {
    grid-column: 1 / -1;
  }

  .form-actions {
    flex-direction: column-reverse;
  }

  .form-actions .btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .balance-category-modal .modal-dialog {
    margin: .75rem;
  }

  .balance-category-modal .modal-footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .balance-category-modal .modal-footer .btn {
    width: 100%;
  }
}

.workflow-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  color: inherit;
  display: block;
  height: 100%;
  padding: 1rem;
  text-decoration: none;
}

.workflow-card:hover,
.workflow-card:focus {
  background: #f8fbff;
  border-color: #dbeafe;
  color: inherit;
}

.workflow-card-header {
  align-items: center;
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  margin-bottom: .5rem;
}

.workflow-card h6 {
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
}

.workflow-card .badge {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (min-width: 992px) {
  .vma-filter-card,
  .vma-data-card {
    padding: var(--card-padding);
  }
}

.vma-status-badge {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-size: .76rem;
  font-weight: 750;
  justify-content: center;
  line-height: 1;
  min-height: 1.55rem;
  padding: .4rem .62rem;
  white-space: nowrap;
}

.vma-mobile-list {
  display: grid;
  gap: 1rem;
}

@media (min-width: 768px) {
  .vma-mobile-list {
    display: none;
  }
}

.vma-detail-tabs .nav-tabs {
  overflow-x: auto;
  overflow-y: hidden;
  flex-wrap: nowrap;
}

.vma-detail-tabs .nav-link {
  white-space: nowrap;
}

.vma-empty-state {
  align-items: center;
  background: #f8fbff;
  border: 1px dashed #bfd0ea;
  border-radius: var(--card-radius);
  color: var(--vma-muted);
  display: grid;
  gap: .75rem;
  justify-items: center;
  min-height: 140px;
  padding: 1.25rem;
  text-align: center;
}

.vma-empty-icon {
  align-items: center;
  background: var(--vma-primary-soft);
  border-radius: 999px;
  color: var(--vma-primary);
  display: inline-flex;
  font-size: 1.4rem;
  height: 3rem;
  justify-content: center;
  width: 3rem;
}

.vma-empty-title {
  color: var(--vma-text);
  font-size: 1rem;
  font-weight: 800;
  margin: 0;
}

.vma-empty-text {
  color: var(--vma-muted);
  margin: 0;
  max-width: 34rem;
}

.vma-empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
}

.vma-upload-box {
  background: #f8fbff;
  border: 1px dashed #b8c8e2;
  border-radius: var(--card-radius);
  padding: 1rem;
}

.field-help {
  color: var(--vma-muted);
  font-size: .8rem;
  margin-top: .25rem;
}

.invalid-feedback[data-visible="true"] {
  display: block;
}

.vma-stepper {
  display: grid;
  gap: .75rem;
  grid-template-columns: 1fr;
  margin-bottom: var(--section-gap);
}

@media (min-width: 768px) {
  .vma-stepper {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.vma-step {
  align-items: center;
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  color: var(--vma-muted);
  display: flex;
  font-weight: 750;
  gap: .65rem;
  padding: .8rem;
}

.vma-step::before {
  align-items: center;
  background: #eef4ff;
  border-radius: 999px;
  color: var(--vma-primary);
  content: attr(data-step);
  display: inline-flex;
  flex: 0 0 1.6rem;
  height: 1.6rem;
  justify-content: center;
  width: 1.6rem;
}

.vma-step-active {
  border-color: #adc2ea;
  box-shadow: var(--vma-shadow);
  color: var(--vma-primary);
}

.vma-upload-dropzone {
  align-items: center;
  background: #f8fbff;
  border: 1px dashed #adc2ea;
  border-radius: var(--card-radius);
  display: grid;
  gap: .75rem;
  justify-items: center;
  padding: 1.5rem;
  text-align: center;
}

.incoming-upload-form {
  max-width: 1180px !important;
}

.incoming-upload-grid {
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
}

.incoming-upload-main,
.incoming-upload-side {
  min-width: 0;
}

.incoming-upload-side {
  background: #f8fbff;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 18px;
  padding: 18px;
}

.incoming-link-info {
  align-items: center;
  background: #eef6ff;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  color: #1d4ed8;
  display: flex;
  gap: .65rem;
  padding: .85rem 1rem;
}

.document-dropzone {
  align-items: center;
  background: #fff;
  border: 1px dashed #adc2ea;
  border-radius: 18px;
  color: #334155;
  cursor: pointer;
  display: grid;
  gap: .45rem;
  justify-items: center;
  min-height: 220px;
  padding: 1.5rem;
  text-align: center;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.document-dropzone:hover,
.document-dropzone.is-dragover {
  background: #f4f7ff;
  border-color: #7aa2f7;
  box-shadow: 0 16px 34px rgba(36, 79, 158, .09);
}

.document-dropzone.is-invalid {
  border-color: #dc3545;
}

.document-dropzone__icon {
  align-items: center;
  background: #eef4ff;
  border-radius: 16px;
  color: #1d4ed8;
  display: inline-flex;
  font-size: 1.35rem;
  height: 54px;
  justify-content: center;
  width: 54px;
}

.document-dropzone small {
  color: #64748b;
  line-height: 1.45;
}

.document-upload-error {
  background: var(--vma-danger-soft);
  border: 1px solid #f4b8b2;
  border-radius: 12px;
  color: var(--vma-danger);
  font-size: .85rem;
  margin-top: .75rem;
  padding: .75rem;
}

.document-file-preview {
  align-items: center;
  background: #eef6ff;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-top: .85rem;
  padding: .85rem;
}

.document-file-preview span {
  color: #64748b;
  display: block;
  font-size: .82rem;
  margin-top: .15rem;
}

.incoming-upload-rules {
  color: #64748b;
  font-size: .86rem;
  margin-top: 1rem;
}

.incoming-upload-rules ul {
  margin: .5rem 0 0;
  padding-left: 1.1rem;
}

@media (max-width: 991.98px) {
  .incoming-upload-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .document-file-preview {
    align-items: stretch;
    flex-direction: column;
  }

  .document-file-preview .btn {
    width: 100%;
  }
}

.vma-document-card,
.vma-contract-summary {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  padding: 1rem;
}

.contract-profile-page,
.contract-profile-page > * {
  max-width: 100%;
  min-width: 0;
}

.contract-summary-card a {
  color: #1d4ed8;
  text-decoration: none;
}

.contract-summary-card a:hover {
  color: #163ea8;
  text-decoration: underline;
}

.page-header-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.page-header-actions form {
  flex: 0 0 auto;
  width: auto;
}

.page-header-actions .btn {
  align-items: center;
  display: inline-flex;
  height: 42px;
  justify-content: center;
  min-width: 0;
  padding: 0 16px;
  white-space: nowrap;
  width: auto;
}

.contract-signed-review-card {
  align-items: center;
  border-color: #bfdbfe;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  margin-top: 24px;
}

.contract-signed-review-card__body {
  align-items: flex-start;
  display: flex;
  gap: 14px;
  min-width: 0;
}

.contract-signed-review-card__icon {
  align-items: center;
  background: #eef4ff;
  border-radius: 14px;
  color: #2454b8;
  display: inline-flex;
  flex: 0 0 44px;
  height: 44px;
  justify-content: center;
  width: 44px;
}

.contract-signed-review-card__meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  color: #475569;
  font-size: 14px;
}

.review-actions,
.contract-signed-review-card__actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.review-actions .btn,
.contract-signed-review-card__actions .btn {
  align-items: center;
  display: inline-flex;
  height: 40px;
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-height: 40px;
  padding: 0 18px;
  vertical-align: middle;
  white-space: nowrap;
}

.review-actions form,
.contract-signed-review-card__actions form {
  align-items: center;
  display: inline-flex;
  margin: 0;
  min-height: 40px;
  width: auto;
}

@media (max-width: 575.98px) {
  .topbar .page-header-actions {
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 2px;
    width: 100%;
  }

  .topbar .page-header-actions .btn,
  .topbar .page-header-actions form {
    flex: 0 0 auto;
    width: auto;
  }

  .contract-signed-review-card {
    align-items: stretch;
    flex-direction: column;
  }

  .review-actions,
  .contract-signed-review-card__actions {
    justify-content: flex-start;
  }

  .review-actions .btn,
  .review-actions form,
  .contract-signed-review-card__actions .btn,
  .contract-signed-review-card__actions form {
    flex: 0 0 auto;
    width: auto;
  }
}

.contract-workflow-line {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.contract-workflow-step {
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 16px;
  display: grid;
  gap: 8px;
  padding: 16px;
}

.contract-workflow-step__number {
  align-items: center;
  background: #e2e8f0;
  border-radius: 999px;
  color: #475569;
  display: inline-flex;
  font-size: .82rem;
  font-weight: 800;
  height: 30px;
  justify-content: center;
  width: 30px;
}

.contract-workflow-step strong {
  color: #0f172a;
  font-size: .95rem;
}

.contract-workflow-step > span:last-child {
  color: #64748b;
  font-size: .82rem;
  font-weight: 700;
}

.contract-workflow-step--done {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

.contract-workflow-step--done .contract-workflow-step__number {
  background: #dcfce7;
  color: #047857;
}

.contract-workflow-step--open {
  background: #fff7ed;
  border-color: #fed7aa;
}

.contract-workflow-step--open .contract-workflow-step__number {
  background: #ffedd5;
  color: #c2410c;
}

.contract-workflow {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.contract-workflow__step {
  align-items: center;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 14px;
  color: #64748b;
  display: flex;
  font-size: 14px;
  font-weight: 700;
  gap: 10px;
  min-width: 0;
  padding: 12px 14px;
}

.contract-workflow__step.is-done {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
}

.contract-workflow__dot {
  align-items: center;
  background: #e2e8f0;
  border-radius: 999px;
  color: #475569;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  height: 24px;
  justify-content: center;
  width: 24px;
}

.contract-workflow__step.is-done .contract-workflow__dot {
  background: #dbeafe;
  color: #1d4ed8;
}

.vma-finance-tabs .nav-tabs {
  overflow-x: auto;
  overflow-y: hidden;
  flex-wrap: nowrap;
}

.vma-finance-tabs .nav-link {
  white-space: nowrap;
}

.vma-action-menu {
  display: inline-flex;
  gap: .4rem;
  justify-content: flex-end;
}

.vma-inline-meta {
  color: var(--vma-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .84rem;
  gap: .4rem .75rem;
}

.vma-inline-meta span:not(:last-child)::after {
  color: #b0bdcd;
  content: "/";
  margin-left: .75rem;
}

.step-panel {
  display: none;
}

.step-panel.active {
  display: block;
}

.vma-communication-layout {
  display: grid;
  gap: var(--section-gap);
}

@media (min-width: 1200px) {
  .vma-communication-layout {
    grid-template-columns: minmax(0, 1fr) 360px;
  }
}

.vma-message-preview,
.vma-template-card,
.vma-security-card {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  padding: 1rem;
}

.vma-template-card {
  display: flex;
  flex-direction: column;
  gap: .8rem;
  height: 100%;
}

.vma-permission-matrix {
  min-width: 760px;
}

.vma-permission-matrix th,
.vma-permission-matrix td {
  text-align: center;
}

.vma-permission-matrix th:first-child,
.vma-permission-matrix td:first-child {
  text-align: left;
}

.vma-user-avatar {
  align-items: center;
  background: var(--vma-primary-soft);
  border-radius: 999px;
  color: var(--vma-primary);
  display: inline-flex;
  font-weight: 800;
  height: 2.35rem;
  justify-content: center;
  width: 2.35rem;
}

.settings-page {
  max-width: 1480px;
}

.settings-layout {
  align-items: start;
  display: grid;
  gap: 32px;
  grid-template-columns: 240px minmax(0, 1fr);
}

.settings-nav {
  position: sticky;
  top: 1rem;
}

.settings-nav .nav {
  background: #fff;
  border: 1px solid var(--vma-border);
  border-radius: 18px;
  gap: .25rem;
  padding: .5rem;
}

.settings-nav .nav-link {
  align-items: center;
  border-radius: 12px;
  color: #334155;
  display: flex;
  font-weight: 600;
  gap: .75rem;
  justify-content: flex-start;
  min-height: 44px;
  text-align: left;
}

.settings-nav .nav-link.active {
  background: var(--vma-primary-soft);
  color: var(--vma-primary);
}

.settings-content {
  min-width: 0;
}

.settings-tab-form {
  display: grid;
  gap: 32px;
}

.settings-card-grid {
  display: grid;
  align-items: stretch;
  gap: 32px;
}

.settings-card {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: 24px;
  height: 100%;
  justify-content: flex-start;
  padding: 24px;
}

.settings-card-email {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.settings-card-email .settings-fields {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 820px;
  width: 100%;
}

.settings-card-header {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.settings-card-header h2 {
  font-size: 1.05rem;
  font-weight: 800;
  margin: 0;
}

.settings-field {
  min-width: 0;
}

.settings-switch-list {
  display: grid;
  gap: 20px;
}

.settings-switch-row {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  min-height: 56px;
  padding: .85rem 1rem;
}

.settings-switch-row .form-check-input {
  cursor: pointer;
  height: 1.25rem;
  width: 2.35rem;
}

.settings-save-bar {
  align-items: center;
  background: rgba(248, 250, 252, .92);
  border: 1px solid var(--vma-border);
  border-radius: 16px;
  display: flex;
  justify-content: flex-end;
  padding: .9rem;
}

.settings-integration-actions,
.settings-link-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

@media (min-width: 1200px) {
  .settings-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .settings-card-grid > .settings-card:only-child {
    max-width: 920px;
  }
}

@media (max-width: 991.98px) {
  .settings-layout {
    grid-template-columns: 1fr;
  }

  .settings-nav {
    position: static;
  }

  .settings-nav .nav {
    flex-direction: row !important;
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .settings-nav .nav-link {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

@media (max-width: 575.98px) {
  .settings-save-bar,
  .settings-integration-actions .btn,
  .settings-link-grid .btn {
    width: 100%;
  }

  .settings-save-bar .btn {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .settings-card-email .settings-fields {
    grid-template-columns: 1fr;
  }
}

.category-kpi-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.category-kpi-card {
  min-width: 0;
}

.category-table-card {
  max-width: 100%;
  overflow: hidden;
  width: 100%;
}

.category-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

.category-create-modal .modal-content {
  border: 0;
  border-radius: 18px;
  overflow: hidden;
}

.category-create-modal .modal-body {
  padding: 1.25rem;
}

.category-create-form-grid {
  display: grid;
  gap: 16px;
}

@media (min-width: 768px) {
  .category-create-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .category-create-form-grid > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 575.98px) {
  .category-create-modal .modal-content {
    border-radius: 0;
    min-height: 100%;
  }

  .category-create-modal .modal-footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .category-create-modal .modal-footer .btn,
  .vma-filter-card .btn {
    width: 100%;
  }
}

.category-table {
  margin-bottom: 0;
  min-width: 820px;
  table-layout: fixed;
}

.category-table th,
.category-table td {
  vertical-align: middle;
}

.category-table .category-col-name {
  min-width: 220px;
  width: auto;
}

.category-table .category-col-type {
  width: 160px;
}

.category-table .category-col-status {
  width: 120px;
}

.category-table .category-col-balance {
  width: 100px;
}

.category-table .category-col-order {
  width: 100px;
}

.category-table .category-col-actions {
  width: 120px;
}

.category-row {
  cursor: pointer;
}

.category-row:hover td {
  background: #f8fbff;
}

.category-type-badge {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 800;
  gap: .35rem;
  padding: .35rem .6rem;
  white-space: nowrap;
}

.category-type-badge--document {
  background: #eef4ff;
  color: #1d4ed8;
}

.category-type-badge--income {
  background: #ecfdf5;
  color: #047857;
}

.category-type-badge--expense {
  background: #fef2f2;
  color: #b91c1c;
}

.category-type-badge--general {
  background: #fef9c3;
  color: #854d0e;
}

.category-type-badge--reporting {
  background: #f3e8ff;
  color: #7e22ce;
}

.category-card-list {
  display: grid;
  gap: .85rem;
}

.category-mobile-card {
  background: #fff;
  border: 1px solid var(--vma-border);
  border-radius: 16px;
  display: grid;
  gap: .85rem;
  padding: 1rem;
}

.category-mobile-card h3 {
  font-size: 1rem;
  font-weight: 800;
  margin: 0 0 .45rem;
}

.category-mobile-meta {
  color: #64748b;
  display: flex;
  flex-wrap: wrap;
  font-size: .85rem;
  gap: .75rem;
}

.category-edit-panel {
  width: min(480px, 100vw);
}

.category-edit-panel .offcanvas-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.category-edit-panel .offcanvas-body {
  overflow-y: auto;
}

.category-edit-panel .offcanvas-footer {
  align-items: center;
  border-top: 1px solid var(--vma-border);
  display: flex;
  gap: .75rem;
  justify-content: flex-end;
  padding: 1rem;
}

@media (max-width: 575.98px) {
  .category-edit-panel .offcanvas-footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .category-edit-panel .offcanvas-footer .btn {
    width: 100%;
  }
}

.vma-toggle-row {
  align-items: center;
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .9rem 1rem;
}

.vma-skeleton {
  animation: vmaPulse 1.3s ease-in-out infinite;
  background: linear-gradient(90deg, #eef3fa 25%, #f8fbff 37%, #eef3fa 63%);
  background-size: 400% 100%;
  border-radius: .55rem;
  min-height: 1rem;
}

.vma-skeleton-row {
  height: 2.85rem;
  margin-bottom: .65rem;
}

.vma-loading-card {
  background: var(--vma-surface);
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  box-shadow: var(--vma-shadow);
  padding: 1rem;
}

.vma-loading-inline {
  display: grid;
  gap: .65rem;
}

.vma-page-loading .vma-loadable {
  min-height: 8rem;
}

.vma-page-loading .vma-loadable::after {
  animation: vmaPulse 1.3s ease-in-out infinite;
  background: linear-gradient(90deg, #eef3fa 25%, #f8fbff 37%, #eef3fa 63%);
  background-size: 400% 100%;
  border-radius: calc(var(--card-radius) - 4px);
  content: "";
  inset: 1rem;
  opacity: .86;
  pointer-events: none;
  position: absolute;
  z-index: 4;
}

.vma-page-ready .vma-loading-card[data-loading-state] {
  display: none;
}

.vma-toast {
  border: 1px solid var(--vma-border);
  border-radius: 14px;
  box-shadow: var(--vma-shadow);
  overflow: hidden;
}

.vma-toast .toast-header {
  border-bottom-color: var(--vma-border);
}

.vma-toast-dot {
  background: var(--vma-success);
  border-radius: 999px;
  display: inline-flex;
  height: .65rem;
  margin-right: .55rem;
  width: .65rem;
}

.vma-toast.toast-warning .vma-toast-dot {
  background: var(--vma-warning);
}

.vma-toast.toast-danger .vma-toast-dot {
  background: var(--vma-danger);
}

.vma-toast.toast-info .vma-toast-dot {
  background: var(--vma-info);
}

@keyframes vmaPulse {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}

.vma-btn-loading {
  pointer-events: none;
  position: relative;
}

.vma-btn-loading::before {
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 1rem;
  margin-right: .5rem;
  vertical-align: -.15rem;
  width: 1rem;
  animation: vmaSpin .75s linear infinite;
}

@keyframes vmaSpin {
  to { transform: rotate(360deg); }
}

.vma-alert {
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  padding: .9rem 1rem;
}

.vma-alert-danger {
  background: var(--vma-danger-soft);
  border-color: #f4b8b2;
  color: var(--vma-danger);
}

.vma-alert-warning {
  background: var(--vma-warning-soft);
  border-color: #f2d19b;
  color: var(--vma-warning);
}

.vma-field-error {
  color: var(--vma-danger);
  display: block;
  font-size: .8rem;
  margin-top: .3rem;
}

.vma-permission-error {
  background: #f8fbff;
  border: 1px dashed #b8c8e2;
  border-radius: var(--card-radius);
  color: var(--vma-muted);
  padding: .85rem 1rem;
}

.vma-audit-card {
  background: #fbfdff;
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  display: grid;
  gap: .75rem;
  margin-top: var(--section-gap);
  padding: 1rem;
}

@media (min-width: 768px) {
  .vma-audit-card {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.vma-audit-item {
  min-width: 0;
}

.vma-audit-item span {
  color: var(--vma-muted);
  display: block;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.vma-audit-item strong {
  display: block;
  margin-top: .15rem;
}

[data-permission][aria-disabled="true"],
[data-permission][disabled] {
  cursor: not-allowed;
  opacity: .58;
}

.kv-grid {
  display: grid;
  gap: .75rem;
}

@media (min-width: 768px) {
  .kv-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.kv-item {
  border: 1px solid var(--vma-border);
  border-radius: var(--card-radius);
  padding: .85rem;
}

.kv-label {
  color: var(--vma-muted);
  font-size: .78rem;
  font-weight: 750;
  margin-bottom: .18rem;
}

.kv-value {
  font-weight: 750;
}

.timeline {
  border-left: 2px solid var(--vma-border);
  margin-left: .35rem;
  padding-left: 1rem;
}

.timeline-item {
  margin-bottom: 1rem;
  position: relative;
}

.timeline-item::before {
  background: var(--vma-primary);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--vma-border);
  content: "";
  height: .8rem;
  left: -1.48rem;
  position: absolute;
  top: .2rem;
  width: .8rem;
}

.upload-progress {
  height: .5rem;
}

.role-chip {
  background: #eef2f7;
  border-radius: 999px;
  color: #344054;
  display: inline-flex;
  font-size: .76rem;
  font-weight: 750;
  padding: .35rem .55rem;
}

@media (max-width: 991.98px) {
  :root {
    --section-gap: 1rem;
  }

  .mobile-full {
    width: 100%;
  }

  .desktop-table {
    display: none;
  }

  .table-responsive:not(.desktop-table) {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  .metric-card .vma-card-body {
    min-height: 138px;
  }

  .topbar .btn {
    width: 100%;
  }

  .topbar .finance-report-header-actions .btn {
    width: auto;
  }

  .admin-actions-menu--portalled {
    max-width: calc(100vw - 16px);
    min-width: min(220px, calc(100vw - 16px));
  }
}

@media (min-width: 768px) {
  .mobile-card-list {
    display: none;
  }
}

.table-actions-template {
  display: none !important;
}

.communication-wizard {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 380px;
  max-width: 1480px;
}

.communication-wizard__main {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.communication-step {
  padding: 24px;
}

.communication-step__header {
  align-items: flex-start;
  display: flex;
  gap: 14px;
  margin-bottom: 18px;
}

.communication-step__number {
  align-items: center;
  background: #eef4ff;
  border-radius: 999px;
  color: var(--vma-primary);
  display: inline-flex;
  flex: 0 0 34px;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.communication-choice-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.communication-choice-card,
.communication-topic-pill {
  cursor: pointer;
  margin: 0;
}

.communication-choice-card input,
.communication-topic-pill input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.communication-choice-card {
  align-items: center;
  border: 1px solid var(--vma-border);
  border-radius: 16px;
  display: flex;
  gap: 12px;
  min-height: 72px;
  padding: 14px;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.communication-choice-card__icon {
  align-items: center;
  background: #f4f7ff;
  border-radius: 12px;
  color: var(--vma-primary);
  display: inline-flex;
  flex: 0 0 38px;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.communication-choice-card:hover,
.communication-topic-pill:hover {
  background: #f8fbff;
  border-color: #b8d4ff;
}

.communication-choice-card:has(input:checked),
.communication-topic-pill:has(input:checked) {
  background: #eef6ff;
  border-color: #9fc5ff;
  box-shadow: 0 12px 28px rgba(37, 99, 235, .08);
  color: var(--vma-primary);
  font-weight: 700;
}

.communication-context-field {
  display: none;
}

.communication-context-field.is-visible {
  display: block;
}

.communication-topic-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.communication-topic-pill {
  border: 1px solid var(--vma-border);
  border-radius: 999px;
  padding: 10px 14px;
  transition: background .15s ease, border-color .15s ease;
}

.communication-editor-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.communication-editor {
  line-height: 1.55;
  min-height: 260px;
}

.communication-sms-editor {
  display: none;
}

.communication-sms-editor.is-visible {
  display: block;
}

.communication-sms-counter {
  background: #f1f5f9;
  border-radius: 999px;
  color: var(--vma-muted);
  font-size: .82rem;
  font-weight: 750;
  padding: .25rem .55rem;
}

.communication-sms-counter.is-warning,
.communication-warning {
  color: #b45309 !important;
}

.communication-channel-options {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
}

.communication-send-panel {
  align-items: center;
  background: #f8fbff;
  border: 1px solid #dbeafe;
  border-radius: 16px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 18px;
}

.communication-preview {
  position: sticky;
  top: 24px;
}

.communication-preview__summary {
  align-items: baseline;
  background: #eef6ff;
  border: 1px solid #cfe3ff;
  border-radius: 16px;
  color: var(--vma-primary);
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  padding: 16px;
}

.communication-preview__count {
  color: var(--vma-text);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.communication-channel-summary {
  color: var(--vma-muted);
  display: grid;
  flex-basis: 100%;
  font-size: .88rem;
  gap: 4px;
  margin-top: 8px;
}

.communication-preview__checks {
  color: var(--vma-muted);
  display: grid;
  font-size: .9rem;
  gap: 8px;
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
}

.communication-preview__checks i {
  color: #16a34a;
  margin-right: 6px;
}

.communication-preview__list {
  display: grid;
  gap: 10px;
  max-height: 460px;
  overflow: auto;
  padding-right: 4px;
}

.communication-recipient-row {
  align-items: center;
  border: 1px solid var(--vma-border);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px;
}

.communication-recipient-row span {
  color: var(--vma-muted);
  display: block;
  font-size: .84rem;
}

.communication-recipient-row__meta {
  text-align: right;
}

.communication-recipient-row__channels {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
  margin-top: 4px;
}

.communication-valid {
  color: #15803d !important;
}

.communication-preview__loading {
  color: var(--vma-muted);
  padding: 12px;
}

.communication-preview__total {
  border-top: 1px solid var(--vma-border);
  font-weight: 800;
  margin-top: 16px;
  padding-top: 14px;
}

@media (max-width: 1199.98px) {
  .communication-wizard {
    grid-template-columns: 1fr;
  }

  .communication-preview {
    position: static;
  }
}

@media (max-width: 575.98px) {
  .communication-step,
  .communication-preview {
    padding: 18px;
  }

  .communication-choice-grid {
    grid-template-columns: 1fr;
  }

  .communication-send-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .communication-send-panel .btn {
    width: 100%;
  }
}

.table-actions-floating {
  position: fixed;
  z-index: 3000;
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--bs-border-color, var(--vma-border));
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
  padding: 8px;
}

.table-actions-floating ul,
.table-actions-floating li {
  list-style: none;
  margin: 0;
  padding: 0;
}

.table-actions-floating .dropdown-item {
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
}

.table-actions-floating .dropdown-item:hover,
.table-actions-floating .dropdown-item:focus {
  background: #f4f7ff;
  color: var(--vma-primary);
}

.contract-landlord-panel {
  min-height: 46px;
  border: 1px solid var(--bs-border-color, var(--vma-border));
  border-radius: 14px;
  background: #f8fbff;
  padding: 12px 14px;
}

.contract-landlord-panel strong {
  color: var(--bs-heading-color, #0f172a);
}

.parking-tenant-selector {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--admin-border, #dbe4f0);
  border-radius: 16px;
  background: #f8fbff;
}

.parking-tenant-selector.is-invalid {
  border-color: var(--bs-danger);
}

.parking-tenant-selector__list {
  display: grid;
  gap: 10px;
  max-height: 390px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
}

.parking-tenant-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--admin-border, #dbe4f0);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.parking-tenant-option:hover,
.parking-tenant-option.is-selected {
  border-color: rgba(var(--bs-primary-rgb), .42);
  background: rgba(var(--bs-primary-rgb), .04);
  box-shadow: 0 6px 18px rgba(15, 23, 42, .06);
}

.parking-tenant-option.is-unavailable {
  cursor: not-allowed;
  opacity: .72;
  background: #f8fafc;
}

.parking-tenant-option .form-check-input {
  flex: 0 0 auto;
  margin-top: 4px;
}

.parking-tenant-option__body {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.parking-tenant-option__title {
  color: var(--admin-text, #0f172a);
  font-weight: 700;
  line-height: 1.3;
}

.parking-tenant-option__meta,
.parking-tenant-option__availability {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
  line-height: 1.4;
}

.parking-tenant-selector__summary {
  padding: 14px 16px;
  border: 1px solid rgba(var(--bs-primary-rgb), .18);
  border-radius: 12px;
  background: #fff;
}

.parking-tenant-selector__summary-label {
  display: block;
  margin-bottom: 8px;
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  font-weight: 700;
}

.parking-tenant-selector__summary-item {
  display: grid;
  grid-template-columns: minmax(100px, .7fr) minmax(180px, 1.4fr) minmax(100px, .8fr);
  gap: 8px 16px;
  padding: 8px 0;
}

.parking-tenant-selector__summary-item + .parking-tenant-selector__summary-item {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.parking-context-selector {
  min-width: 0;
  max-width: 100%;
  padding: 18px;
  border: 1px solid var(--admin-border, #dbe3ef);
  border-radius: 12px;
  background: #f8fafc;
}

.parking-context-selector.is-invalid {
  border-color: var(--bs-danger);
}

.parking-context-selector__search-wrap {
  position: relative;
}

.parking-context-selector__spinner {
  position: absolute;
  top: 50%;
  right: 14px;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  border: 2px solid #cbd5e1;
  border-top-color: var(--bs-primary);
  border-radius: 50%;
  animation: parking-context-spin .7s linear infinite;
}

@keyframes parking-context-spin {
  to { transform: rotate(360deg); }
}

.parking-context-selector__results {
  max-height: min(440px, 52vh);
  margin-top: 10px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--admin-border, #dbe3ef);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .1);
}

.parking-context-selector__result {
  display: flex;
  width: 100%;
  min-height: 72px;
  padding: 12px 14px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  border: 0;
  border-bottom: 1px solid #e8edf4;
  background: #fff;
  color: inherit;
  text-align: left;
  transition: background-color .18s ease;
}

.parking-context-selector__result:last-child {
  border-bottom: 0;
}

.parking-context-selector__result:hover,
.parking-context-selector__result.active {
  background: #eff6ff;
}

.parking-context-selector__result:disabled {
  cursor: not-allowed;
  opacity: .72;
  background: #f8fafc;
}

.parking-context-selector__result-main,
.parking-context-selector__selected-content {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 3px;
}

.parking-context-selector__result-main strong,
.parking-context-selector__selected-content strong {
  color: var(--admin-heading, #14213d);
  font-size: 15px;
}

.parking-context-selector__result-main span,
.parking-context-selector__selected-content span {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.parking-context-selector__result-status {
  display: flex;
  max-width: 180px;
  flex: 0 0 auto;
  align-items: flex-end;
  flex-direction: column;
  gap: 6px;
}

.parking-context-selector__reason {
  color: var(--bs-danger);
  font-size: 12px;
  line-height: 1.3;
  text-align: right;
}

.parking-context-selector__availability-help {
  max-width: 180px;
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  line-height: 1.35;
  text-align: right;
  overflow-wrap: anywhere;
}

.parking-context-selector__state {
  padding: 16px;
  color: var(--admin-muted, #64748b);
  text-align: center;
}

.parking-context-selector__selected {
  margin-top: 16px;
}

.parking-context-selector__selected-label {
  display: block;
  margin-bottom: 8px;
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.parking-context-selector__selected-card {
  display: flex;
  min-width: 0;
  padding: 14px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: #fff;
}

.parking-context-selector__selected-card + .parking-context-selector__selected-card {
  margin-top: 8px;
}

@media (max-width: 575.98px) {
  .parking-context-selector {
    padding: 16px;
  }

  .parking-context-selector__result,
  .parking-context-selector__selected-card {
    min-height: 44px;
    flex-direction: column;
    align-items: stretch;
  }

  .parking-context-selector__result-status {
    max-width: none;
    align-items: flex-start;
  }

  .parking-context-selector__reason {
    text-align: left;
  }

  .parking-context-selector__availability-help {
    max-width: none;
    text-align: left;
  }

  .parking-context-selector__selected-card .btn {
    width: 100%;
    min-height: 44px;
  }
}

@media (max-width: 767.98px) {
  .parking-tenant-selector {
    padding: 14px;
  }

  .parking-tenant-option {
    min-height: 44px;
    padding: 14px;
  }

  .parking-tenant-selector__summary-item {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

@media (max-width: 576px) {
  .table-actions-floating {
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;
    top: auto !important;
    width: auto;
  }
}

body,
button,
input,
select,
textarea {
  font-family: var(--admin-font-family);
}

h1,
.admin-page-title,
.page-title {
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 700;
  letter-spacing: -0.03em;
}

h2,
.card-title,
.card-title-sm {
  font-weight: 650;
  letter-spacing: -0.02em;
}

.btn,
label,
.form-label,
.table th,
.badge {
  font-weight: 600;
}

/* Final admin KPI responsive guard: keep legacy module-specific rules from forcing narrow cards. */
.admin-kpi-grid,
.admin-stats-grid,
.dashboard-stats-grid,
.audit-kpi-grid,
.category-kpi-grid.audit-kpi-grid,
.finance-kpi-grid,
.admin-overview-kpi-grid,
.vma-kpi-grid,
.contracts-kpi-grid,
.contract-kpi-grid,
.documents-kpi-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-kpi-grid > *,
.admin-stats-grid > *,
.dashboard-stats-grid > *,
.audit-kpi-grid > *,
.finance-kpi-grid > *,
.admin-overview-kpi-grid > *,
.vma-kpi-grid > *,
.contracts-kpi-grid > *,
.contract-kpi-grid > *,
.documents-kpi-grid > * {
  min-width: 0;
}

.admin-kpi-card,
.admin-stat-card,
.dashboard-stat-card,
.audit-kpi-card,
.finance-kpi-card {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: space-between;
  min-height: 120px;
  min-width: 0;
  overflow: hidden;
  padding: 18px 20px;
}

.admin-kpi-value,
.admin-stat-value,
.dashboard-stat-value,
.audit-kpi-value,
.finance-kpi-value,
.admin-kpi-card .kpi-value,
.admin-stat-card .kpi-value,
.dashboard-stat-card .kpi-value,
.audit-kpi-card .kpi-value,
.finance-kpi-card .kpi-value {
  font-size: clamp(24px, 2.2vw, 36px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.audit-kpi-value.is-date,
.audit-kpi-value[data-type="date"] {
  font-size: clamp(20px, 1.8vw, 30px);
}

.admin-kpi-label,
.admin-stat-label,
.dashboard-stat-label,
.audit-kpi-label,
.finance-kpi-label,
.admin-kpi-card .kpi-label,
.admin-stat-card .kpi-label,
.dashboard-stat-card .kpi-label,
.audit-kpi-card .kpi-label,
.finance-kpi-card .kpi-label {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: normal;
}

@media (min-width: 1200px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 359.98px) {
  .admin-kpi-grid,
  .admin-stats-grid,
  .dashboard-stats-grid,
  .audit-kpi-grid,
  .category-kpi-grid.audit-kpi-grid,
  .finance-kpi-grid,
  .admin-overview-kpi-grid,
  .vma-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid {
    grid-template-columns: 1fr;
  }
}

/* Settings categories: full-width layout and KPI parity with admin overview cards. */
.category-kpi-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.category-kpi-grid > *,
.category-kpi-card {
  min-width: 0;
}

.category-kpi-card {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: space-between;
  min-height: 120px;
  overflow: hidden;
  padding: 18px 20px;
}

.category-kpi-card .kpi-value {
  font-size: clamp(24px, 2.2vw, 36px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.category-kpi-card .kpi-label {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: normal;
}

@media (min-width: 1200px) {
  .category-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .category-kpi-grid {
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 359.98px) {
  .category-kpi-grid {
    grid-template-columns: 1fr;
  }
}

.document-upload-card {
  max-width: 980px;
}

.document-upload-wizard {
  padding: 28px;
}

.document-wizard-section + .document-wizard-section {
  border-top: 1px solid rgba(15, 23, 42, .08);
  margin-top: 28px;
  padding-top: 28px;
}

.document-wizard-section + .document-wizard-details {
  margin-top: 28px;
}

.document-wizard-heading {
  align-items: flex-start;
  display: flex;
  gap: 14px;
  margin-bottom: 20px;
}

.document-wizard-heading h2 {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 4px;
}

.document-wizard-heading p {
  color: var(--admin-muted, #64748b);
  font-size: 14px;
  margin: 0;
}

.document-wizard-step {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .1);
  border-radius: 10px;
  color: var(--bs-primary);
  display: inline-flex;
  flex: 0 0 36px;
  font-size: 14px;
  font-weight: 800;
  height: 36px;
  justify-content: center;
}

.document-wizard-dropzone {
  align-items: center;
  background: #f8fafc;
  border: 2px dashed rgba(var(--bs-primary-rgb), .28);
  border-radius: 16px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 220px;
  padding: 32px 20px;
  text-align: center;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.document-wizard-dropzone:hover,
.document-wizard-dropzone.is-dragover {
  background: rgba(var(--bs-primary-rgb), .05);
  border-color: var(--bs-primary);
  transform: translateY(-2px);
}

.document-wizard-dropzone.is-invalid {
  border-color: var(--bs-danger);
}

.document-wizard-dropzone strong {
  font-size: 17px;
  margin-bottom: 4px;
}

.document-wizard-dropzone > span:not(.document-wizard-upload-icon) {
  color: var(--admin-muted, #64748b);
  font-size: 14px;
}

.document-wizard-upload-icon {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .1);
  border-radius: 14px;
  color: var(--bs-primary);
  display: inline-flex;
  font-size: 28px;
  height: 56px;
  justify-content: center;
  margin-bottom: 14px;
  width: 56px;
}

.document-file-summary {
  align-items: center;
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  margin-top: 14px;
  min-width: 0;
  padding: 12px 14px;
}

.document-file-icon {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .08);
  border-radius: 10px;
  color: var(--bs-primary);
  display: inline-flex;
  flex: 0 0 42px;
  font-size: 20px;
  height: 42px;
  justify-content: center;
}

.document-file-copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.document-file-copy strong,
.document-file-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.document-file-copy small {
  color: var(--admin-muted, #64748b);
}

.document-upload-info {
  color: var(--admin-muted, #64748b);
  display: flex;
  flex-wrap: wrap;
  font-size: 13px;
  gap: 8px 20px;
  margin-top: 14px;
}

.document-upload-info i {
  color: #15803d;
  margin-right: 4px;
}

.document-link-card-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.document-link-card {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 14px;
  color: var(--vma-text);
  display: flex;
  flex-direction: column;
  font-size: 14px;
  font-weight: 650;
  gap: 9px;
  justify-content: center;
  min-height: 104px;
  padding: 14px 10px;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.document-link-card:hover,
.document-link-card:focus-visible {
  border-color: rgba(var(--bs-primary-rgb), .45);
  box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
  outline: 0;
  transform: translateY(-2px);
}

.document-link-card.is-selected {
  background: rgba(var(--bs-primary-rgb), .06);
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), .1);
  color: var(--bs-primary);
}

.document-link-card-icon {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .09);
  border-radius: 11px;
  color: var(--bs-primary);
  display: inline-flex;
  flex: 0 0 42px;
  font-size: 20px;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.document-context-lock {
  align-items: center;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  padding: 14px;
}

.document-context-lock > span:nth-child(2) {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.document-context-lock small {
  color: var(--admin-muted, #64748b);
}

.document-notes-disclosure {
  border-top: 1px solid rgba(15, 23, 42, .08);
  margin-top: 28px;
  padding-top: 22px;
}

.document-notes-disclosure summary {
  color: var(--vma-text);
  cursor: pointer;
  font-size: 14px;
  font-weight: 650;
  list-style: none;
}

.document-notes-disclosure summary::-webkit-details-marker {
  display: none;
}

.document-notes-disclosure summary i {
  color: var(--bs-primary);
  margin-right: 8px;
}

.document-wizard-actions {
  align-items: center;
  border-top: 1px solid rgba(15, 23, 42, .08);
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 28px;
  padding-top: 22px;
}

.document-link-combobox {
  position: relative;
}

.owner-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.owner-card-header {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 16px;
  min-width: 0;
}

.owner-card-title {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.owner-card-title .identity-block {
  max-width: 100%;
  width: 100%;
}

.owner-card-title .entity-chip,
.owner-card-title a,
.owner-card-title h3 {
  color: var(--vma-text);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.owner-card-title .text-muted-small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.owner-card > .status-badge,
.owner-card-header > .status-badge {
  align-self: flex-start;
  flex: 0 0 auto;
  height: auto;
  min-height: 28px;
  padding: 6px 12px;
  width: auto;
}

.owner-card-body {
  flex: 1 1 auto;
}

.owner-card-footer {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  margin-top: auto;
  padding-top: 4px;
}

@media (max-width: 575.98px) {
  .owner-card-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .owner-card-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .owner-card-footer .btn,
  .owner-card-footer .dropdown,
  .owner-card-footer .dropdown-toggle {
    width: 100%;
  }
}

.document-link-results {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
  display: none;
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 8px;
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 1040;
}

.document-link-results.is-open {
  display: grid;
  gap: 4px;
}

.document-link-result {
  background: transparent;
  border: 0;
  border-radius: 10px;
  color: inherit;
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  text-align: left;
  width: 100%;
}

.document-link-result:hover,
.document-link-result:focus {
  background: rgba(37, 99, 235, .08);
  outline: 0;
}

.document-link-result span {
  font-weight: 650;
}

.document-link-result small {
  color: var(--admin-muted, #64748b);
  font-size: 12px;
  line-height: 1.25;
}

.document-link-result.is-empty {
  color: var(--admin-muted, #64748b);
  cursor: default;
}

.document-detail-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.document-detail-actions .btn {
  align-items: center;
  border-radius: 12px;
  display: inline-flex;
  font-size: 14px;
  font-weight: 600;
  gap: 8px;
  height: 42px;
  justify-content: center;
  line-height: 1;
  padding: 0 18px;
  transition: all .18s ease;
  white-space: nowrap;
}

.topbar .document-detail-actions .btn {
  max-height: 42px;
  min-height: 42px;
}

.document-detail-actions .btn:focus-visible {
  box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .22);
  outline: 0;
}

@media (max-width: 767.98px) {
  .document-upload-wizard {
    padding: 20px;
  }

  .document-wizard-dropzone {
    min-height: 190px;
  }

  .document-link-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .document-context-lock,
  .document-file-summary {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .document-wizard-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .document-wizard-actions .btn {
    width: 100%;
  }

  .document-link-results {
    max-height: 240px;
  }

  .document-detail-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
    width: 100%;
  }

  .document-detail-actions .btn {
    height: 42px;
    max-height: 42px;
    min-height: 42px;
    min-width: 0;
    padding: 0 12px;
    width: 100%;
  }

  .document-detail-actions .btn-primary {
    grid-column: 1 / -1;
  }
}

.bankimport-page-actions,
.bankimport-form-actions,
.bankimport-filter-actions,
.bankimport-preview-actions,
.bankimport-status-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.bankimport-card-header {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  min-width: 0;
}

.bankimport-transactions-card,
.bankimport-transactions-card .admin-table-scroll,
.bankimport-transactions-card .table-responsive {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
}

.bank-import-preview-table,
.bank-import-processing-table {
  min-width: 920px;
}

@media (max-width: 767.98px) {
  .bankimport-page-actions,
  .bankimport-form-actions,
  .bankimport-filter-actions,
  .bankimport-preview-actions,
  .bankimport-status-actions {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
    justify-content: stretch;
    width: 100%;
  }

  .bankimport-page-actions .btn,
  .bankimport-form-actions .btn,
  .bankimport-filter-actions .btn,
  .bankimport-preview-actions .btn,
  .bankimport-status-actions .btn {
    width: 100%;
  }

  .bankimport-card-header {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .bankimport-transactions-card {
    overflow: hidden;
  }
}

/* Responsive admin framework */
.admin-content-shell,
.admin-content-section,
.admin-page-toolbar,
.admin-result-toolbar,
.page-wrap,
.content-section,
.vma-data-card,
.vma-filter-card,
.settings-content,
.settings-tab-form,
.settings-card,
.settings-card-grid,
.documents-dashboard-grid,
.documents-dashboard-main {
  min-width: 0;
  width: 100%;
}

.admin-content-shell > *,
.admin-content-section > *,
.page-wrap > *,
.content-section > * {
  max-width: 100%;
  min-width: 0;
}

.admin-page-toolbar,
.admin-result-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--vma-toolbar-gap);
  justify-content: space-between;
}

.admin-kpi-grid,
.admin-overview-kpi-grid,
.contracts-kpi-grid,
.contract-kpi-grid,
.documents-kpi-grid,
.finance-kpi-grid {
  display: grid;
  gap: var(--vma-card-gap);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-kpi-grid > *,
.admin-overview-kpi-grid > *,
.contracts-kpi-grid > *,
.contract-kpi-grid > *,
.documents-kpi-grid > *,
.finance-kpi-grid > * {
  min-width: 0;
}

.admin-kpi-grid .admin-kpi-card,
.admin-overview-kpi-grid .admin-kpi-card,
.contracts-kpi-grid .admin-kpi-card,
.contract-kpi-grid .admin-kpi-card,
.documents-kpi-grid .admin-kpi-card,
.finance-kpi-grid .admin-kpi-card {
  height: auto !important;
  min-width: 0;
}

.admin-kpi-card .kpi-label,
.admin-kpi-card .kpi-value {
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.admin-filterbar,
.vma-filter-card {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-filterbar__grid,
.admin-filterbar > .row,
.vma-filter-card > .row,
.contracts-filter-grid,
.contract-filter-grid {
  align-items: end;
  display: grid;
  gap: var(--vma-filter-gap);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  margin: 0;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-filterbar__grid > *,
.admin-filterbar > .row > *,
.vma-filter-card > .row > *,
.contracts-filter-grid > *,
.contract-filter-grid > * {
  grid-column: auto;
  margin: 0;
  max-width: none;
  min-width: 0;
  padding-left: 0;
  padding-right: 0;
  width: auto;
}

.admin-filterbar__field,
.admin-filterbar__field--wide {
  min-width: 0;
}

.admin-filterbar__field--wide {
  grid-column: span 2;
}

.admin-filterbar__actions,
.contracts-filter-actions,
.contract-filter-actions {
  align-items: stretch;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.admin-filterbar :is(input, select, textarea, .form-control, .form-select),
.vma-filter-card :is(input, select, textarea, .form-control, .form-select) {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.admin-table-region,
.table-responsive,
.admin-table-scroll {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  width: 100%;
  -webkit-overflow-scrolling: touch;
}

.admin-table-region > table,
.admin-table-region .admin-table,
.admin-table-region .table {
  margin-bottom: 0;
  width: 100%;
}

.admin-table--fluid {
  min-width: 0;
}

.admin-table--wide {
  min-width: var(--admin-table-min-width, 960px);
}

.admin-table th,
.admin-table td,
.admin-table-region th,
.admin-table-region td {
  padding-left: var(--vma-table-cell-gap);
  padding-right: var(--vma-table-cell-gap);
}

.admin-table-actions,
.admin-table-region th:last-child,
.admin-table-region td:last-child {
  min-width: 96px;
  text-align: end;
  white-space: nowrap;
}

.vma-data-card:has(> .admin-table-region),
.vma-data-card:has(> .table-responsive),
.admin-table-card,
.admin-table-wrapper,
.contracts-table-card {
  overflow: visible;
}

.admin-view-toggle,
.view-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  max-width: 100%;
  width: auto;
}

.admin-view-toggle .btn,
.view-toggle .btn {
  min-height: var(--vma-action-min-height);
  white-space: nowrap;
}

.admin-scroll-tabs,
.settings-nav,
.portal-account-tabs-wrap {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: 12px;
  scrollbar-width: thin;
}

.admin-scroll-tabs__nav,
.settings-nav > .nav,
.portal-account-tabs {
  min-width: 100%;
  width: max-content;
}

@media (max-width: 1399.98px) {
  .admin-kpi-grid,
  .admin-overview-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid,
  .finance-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1199.98px) {
  .admin-kpi-grid,
  .admin-overview-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid,
  .finance-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-table-region > table > thead > tr > :last-child,
  .admin-table-region > table > tbody > tr > :last-child,
  .table-responsive > table > thead > tr > :last-child,
  .table-responsive > table > tbody > tr > :last-child {
    background: var(--vma-surface);
    box-shadow: -8px 0 12px rgba(15, 23, 42, .04);
    position: sticky;
    right: 0;
    z-index: 2;
  }
}

@media (max-width: 767.98px) {
  :root {
    --vma-content-padding-x: 16px;
    --vma-content-padding-y: 20px;
    --vma-section-gap: 16px;
    --vma-card-gap: 14px;
    --vma-filter-gap: 16px;
    --vma-toolbar-gap: 12px;
  }

  .admin-table--stackable,
  .admin-table--stackable tbody,
  .admin-table--stackable tr,
  .admin-table--stackable td {
    display: block;
    min-width: 0 !important;
    width: 100%;
  }

  .admin-table--stackable thead {
    display: none;
  }

  .admin-table--stackable tbody {
    display: grid;
    gap: var(--vma-table-gap);
    padding: var(--vma-table-gap);
  }

  .admin-table--stackable tbody tr {
    overflow: hidden;
    border: 1px solid var(--vma-border);
    border-radius: var(--vma-radius);
    background: var(--vma-surface);
  }

  .admin-table--stackable tbody td {
    min-width: 0;
    padding: 10px 14px;
    border: 0;
    overflow-wrap: anywhere;
  }

  .admin-table--stackable tbody td :is(a, button, .status-badge) {
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .admin-table--stackable tbody td + td {
    border-top: 1px solid var(--vma-border-soft);
  }

  .admin-table--stackable tbody td:last-child,
  .admin-table--stackable .admin-table-actions {
    position: static;
    width: 100%;
    min-width: 0;
    text-align: start !important;
    background: var(--vma-surface);
  }

  .admin-table--stackable tbody td:last-child .btn,
  .admin-table--stackable tbody td:last-child .dropdown,
  .admin-table--stackable .admin-table-actions .btn,
  .admin-table--stackable .admin-table-actions .dropdown {
    width: 100%;
  }

  .parking-spots-overview-table tbody td::before {
    color: var(--vma-muted);
    content: attr(data-label);
    display: block;
    font-size: .75rem;
    font-weight: 700;
    margin-bottom: 4px;
  }

  .admin-filterbar__grid,
  .admin-filterbar > .row,
  .vma-filter-card > .row,
  .contracts-filter-grid,
  .contract-filter-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-filterbar__field--wide {
    grid-column: auto;
  }

  .admin-filterbar__actions,
  .contracts-filter-actions,
  .contract-filter-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .admin-filterbar__actions .btn,
  .contracts-filter-actions .btn,
  .contract-filter-actions .btn {
    width: 100%;
  }

  .admin-page-toolbar,
  .admin-result-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-view-toggle,
  .view-toggle {
    display: inline-flex;
    width: 100%;
  }

  .admin-view-toggle .btn,
  .view-toggle .btn {
    flex: 1 1 0;
    min-width: 0;
  }

  .admin-table-region > table > thead > tr > :last-child,
  .admin-table-region > table > tbody > tr > :last-child,
  .table-responsive > table > thead > tr > :last-child,
  .table-responsive > table > tbody > tr > :last-child {
    box-shadow: none;
    position: static;
  }

  .settings-card-grid,
  .settings-card .form-grid,
  .settings-fields {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 575.98px) {
  .admin-kpi-grid,
  .admin-overview-kpi-grid,
  .contracts-kpi-grid,
  .contract-kpi-grid,
  .documents-kpi-grid,
  .finance-kpi-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Batch 3A: owner parking workspace. */
.owner-parking-workspace {
  min-width: 0;
  overflow: visible;
}

.owner-parking-workspace__header,
.owner-parking-workspace__selector,
.owner-parking-workspace__filters,
.owner-parking-workspace__pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.owner-parking-workspace__header {
  margin-bottom: 24px;
}

.owner-parking-workspace__selector {
  padding: 16px;
  margin-bottom: 20px;
  border: 1px solid var(--vma-border, #dbe3ef);
  border-radius: 12px;
  background: #f8fafc;
}

.owner-parking-workspace__search {
  position: relative;
  width: min(100%, 420px);
}

.owner-parking-workspace__search .spinner-border {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
}

.owner-parking-workspace__results {
  position: absolute;
  z-index: 1080;
  top: calc(100% + 6px);
  right: 0;
  left: 0;
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--vma-border, #dbe3ef);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, .14);
}

.owner-parking-workspace__result {
  display: flex;
  width: 100%;
  min-height: 60px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid #e8edf4;
  background: #fff;
  color: #172033;
  text-align: left;
}

.owner-parking-workspace__result:last-child {
  border-bottom: 0;
}

.owner-parking-workspace__result:hover,
.owner-parking-workspace__result.active {
  background: #eef4ff;
}

.owner-parking-workspace__result:disabled {
  cursor: not-allowed;
  color: #64748b;
  background: #f8fafc;
}

.owner-parking-workspace__result span:first-child,
.owner-parking-workspace__staged-card > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.owner-parking-workspace__result small,
.owner-parking-workspace__staged-card span {
  color: #64748b;
}

.owner-parking-workspace__search-state {
  padding: 18px;
  color: #64748b;
  text-align: center;
}

.owner-parking-workspace__staged-additions {
  margin-bottom: 20px;
}

.owner-parking-workspace__staged-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.owner-parking-workspace__staged-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid #bfd2f5;
  border-radius: 10px;
  background: #f4f8ff;
}

.owner-parking-workspace__filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, 240px) auto auto;
  justify-content: stretch;
  margin-bottom: 16px;
}

.owner-parking-workspace__table {
  min-width: 0;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  overflow: hidden;
}

.owner-parking-workspace__table-head,
.owner-parking-workspace__row {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) minmax(160px, .8fr) minmax(200px, 1.25fr) minmax(150px, .9fr) minmax(140px, .75fr);
  gap: 14px;
  align-items: center;
}

.owner-parking-workspace__table-head {
  padding: 11px 14px;
  background: #f7f9fc;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.owner-parking-workspace__row {
  min-width: 0;
  padding: 14px;
  border-top: 1px solid #e6ebf2;
  transition: background-color .18s ease;
}

.owner-parking-workspace__row.is-changed {
  background: #f2f7ff;
}

.owner-parking-workspace__row.is-detaching {
  background: #fff7f7;
}

.owner-parking-workspace__row > * {
  min-width: 0;
}

.owner-parking-workspace__identity,
.owner-parking-workspace__context,
.owner-parking-workspace__impact,
.owner-parking-workspace__action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.owner-parking-workspace__context span,
.owner-parking-workspace__impact span {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.owner-parking-workspace__identity > span:not(.status-badge),
.owner-parking-workspace__context,
.owner-parking-workspace__impact {
  color: #64748b;
  font-size: 13px;
}

.owner-parking-workspace__blocked {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #9f1239;
  font-size: 12px;
  line-height: 1.3;
}

.owner-parking-workspace__mobile-label {
  display: none;
  margin-bottom: 6px;
  color: #64748b;
  font-size: 12px;
  font-weight: 600;
}

.owner-parking-workspace__pagination {
  margin-top: 16px;
}

.owner-parking-review__group + .owner-parking-review__group {
  margin-top: 18px;
}

.owner-parking-review__group h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 8px 12px;
  border-radius: 8px 8px 0 0;
  background: #eef4ff;
  font-size: 14px;
}

.owner-parking-review__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-top: 0;
}

.owner-parking-review__row.is-blocked {
  background: #fff1f2;
}

@media (max-width: 1199.98px) {
  .owner-parking-workspace__table-head,
  .owner-parking-workspace__row {
    grid-template-columns: minmax(120px, .8fr) minmax(150px, .8fr) minmax(190px, 1.2fr) minmax(130px, .8fr) minmax(130px, .7fr);
  }

  .owner-parking-workspace__staged-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .owner-parking-workspace__header,
  .owner-parking-workspace__selector {
    align-items: stretch;
    flex-direction: column;
  }

  .owner-parking-workspace__search {
    width: 100%;
  }

  .owner-parking-workspace__table-head {
    display: none;
  }

  .owner-parking-workspace__table {
    border: 0;
    overflow: visible;
  }

  .owner-parking-workspace__row {
    grid-template-columns: minmax(0, 1fr) minmax(170px, .8fr);
    grid-template-areas:
      "identity status"
      "context impact"
      "action action";
    margin-bottom: 12px;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
  }

  .owner-parking-workspace__identity { grid-area: identity; }
  .owner-parking-workspace__row > :nth-child(2) { grid-area: status; }
  .owner-parking-workspace__context { grid-area: context; }
  .owner-parking-workspace__impact { grid-area: impact; }
  .owner-parking-workspace__action { grid-area: action; }
  .owner-parking-workspace__mobile-label { display: block; }
}

@media (max-width: 767.98px) {
  .owner-parking-workspace {
    padding: 18px;
  }

  .owner-parking-workspace__header .btn,
  .owner-parking-workspace__filters .btn {
    width: 100%;
  }

  .owner-parking-workspace__filters {
    grid-template-columns: 1fr;
  }

  .owner-parking-workspace__row {
    grid-template-columns: 1fr;
    grid-template-areas:
      "identity"
      "status"
      "context"
      "impact"
      "action";
  }

  .owner-parking-workspace__staged-card {
    grid-template-columns: 1fr;
  }

  .owner-parking-workspace__staged-card .btn,
  .owner-parking-workspace__action .btn {
    width: 100%;
    min-height: 44px;
  }

  .owner-parking-workspace__pagination {
    align-items: stretch;
    flex-direction: column;
    text-align: center;
  }

  .owner-parking-review__row {
    flex-direction: column;
    gap: 4px;
  }
}

/* Batch 3B1: read-only tenant parking workspace. */
.tenant-parking-workspace {
  min-width: 0;
  max-width: 100%;
  overflow: visible;
}

.tenant-parking-workspace__header,
.tenant-parking-workspace__selector,
.tenant-parking-workspace__pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.tenant-parking-workspace__header {
  margin-bottom: 20px;
}

.tenant-parking-workspace__view-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 8px;
}

.tenant-parking-workspace__summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.tenant-parking-workspace__summary > div {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 2px 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background: #f8fafc;
}

.tenant-parking-workspace__summary i {
  display: inline-flex;
  grid-row: 1 / 3;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #2457b2;
  background: #eaf1ff;
}

.tenant-parking-workspace__summary span {
  min-width: 0;
  color: #64748b;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.tenant-parking-workspace__summary strong {
  font-size: 20px;
  line-height: 1.1;
}

.tenant-parking-workspace__selector {
  padding: 16px;
  margin-bottom: 20px;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  background: #f8fafc;
}

.tenant-parking-workspace__search {
  position: relative;
  width: min(100%, 440px);
}

.tenant-parking-workspace__search .spinner-border {
  position: absolute;
  top: 14px;
  right: 14px;
}

.tenant-parking-workspace__results {
  position: absolute;
  z-index: 1080;
  top: calc(100% + 6px);
  right: 0;
  left: 0;
  max-height: 340px;
  overflow-y: auto;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, .14);
}

.tenant-parking-workspace__result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 12px;
  width: 100%;
  min-height: 64px;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid #e8edf4;
  background: #fff;
  color: #172033;
  text-align: left;
}

.tenant-parking-workspace__result:hover,
.tenant-parking-workspace__result.active {
  background: #eef4ff;
}

.tenant-parking-workspace__result:disabled {
  cursor: not-allowed;
  color: #64748b;
  background: #f8fafc;
}

.tenant-parking-workspace__result > span:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.tenant-parking-workspace__result small {
  color: #64748b;
  overflow-wrap: anywhere;
}

.tenant-parking-workspace__result-reason {
  grid-column: 1 / -1;
}

.tenant-parking-workspace__search-state {
  padding: 18px;
  color: #64748b;
  text-align: center;
}

.tenant-parking-workspace__preview {
  margin-bottom: 20px;
}

.tenant-parking-workspace__preview-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.tenant-parking-workspace__preview-item {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid #bfd2f5;
  border-radius: 9px;
  background: #fff;
}

.tenant-parking-workspace__preview-item > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.tenant-parking-workspace__preview-item span {
  color: #64748b;
  font-size: 12px;
}

.tenant-parking-workspace__preview-item.is-blocked,
.tenant-parking-review__group > div.is-blocked {
  border-color: #fecaca;
  background: #fff7f7;
}

.tenant-parking-workspace__filters {
  display: grid;
  grid-template-columns: minmax(180px, 1.3fr) repeat(5, minmax(130px, .8fr)) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 18px;
}

.tenant-parking-workspace__filter-actions {
  display: flex;
  gap: 8px;
}

.tenant-parking-workspace__table {
  min-width: 0;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  overflow: hidden;
}

.tenant-parking-workspace__table-head,
.tenant-parking-workspace__row {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(150px, .85fr) minmax(175px, 1fr) minmax(145px, .75fr) minmax(190px, 1.1fr);
  gap: 14px;
  align-items: center;
}

.tenant-parking-workspace__row.is-changed {
  background: #f5f9ff;
  box-shadow: inset 3px 0 0 #2563eb;
}

.tenant-parking-workspace__table-head {
  padding: 11px 14px;
  color: #64748b;
  background: #f7f9fc;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.tenant-parking-workspace__row {
  min-width: 0;
  padding: 14px;
  border-top: 1px solid #e6ebf2;
}

.tenant-parking-workspace__row > * {
  min-width: 0;
  overflow-wrap: anywhere;
}

.tenant-parking-workspace__identity,
.tenant-parking-workspace__impact,
.tenant-parking-workspace__attention {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.tenant-parking-workspace__identity span,
.tenant-parking-workspace__impact {
  color: #64748b;
  font-size: 13px;
}

.tenant-parking-workspace__attention small {
  color: #64748b;
  line-height: 1.35;
}

.tenant-parking-workspace__attention .btn {
  min-height: 44px;
  margin-top: 4px;
  white-space: normal;
}

.tenant-parking-workspace__table.is-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  border: 0;
  overflow: visible;
}

.tenant-parking-workspace__table.is-cards .tenant-parking-workspace__table-head {
  display: none;
}

.tenant-parking-workspace__table.is-cards .tenant-parking-workspace__row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
}

.tenant-parking-workspace__pagination {
  margin-top: 16px;
}

.tenant-parking-review__group {
  margin-bottom: 18px;
}

.tenant-parking-review__group h3 {
  display: flex;
  justify-content: space-between;
  padding: 9px 12px;
  margin: 0;
  border-radius: 8px 8px 0 0;
  background: #eef4ff;
  font-size: 14px;
}

.tenant-parking-review__group > div {
  padding: 11px 12px;
  border: 1px solid #e2e8f0;
  border-top: 0;
}

.tenant-parking-review__group p {
  margin: 5px 0 0;
  color: #64748b;
}

@media (max-width: 1199.98px) {
  .tenant-parking-workspace__summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tenant-parking-workspace__filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tenant-parking-workspace__filter-actions {
    grid-column: span 3;
    justify-content: flex-end;
  }
}

@media (max-width: 991.98px) {
  .tenant-parking-workspace__header,
  .tenant-parking-workspace__selector {
    align-items: stretch;
    flex-direction: column;
  }

  .tenant-parking-workspace__search {
    width: 100%;
  }

  .tenant-parking-workspace__table-head {
    display: none;
  }

  .tenant-parking-workspace__table,
  .tenant-parking-workspace__table.is-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    border: 0;
    overflow: visible;
  }

  .tenant-parking-workspace__row,
  .tenant-parking-workspace__table.is-cards .tenant-parking-workspace__row {
    grid-template-columns: 1fr;
    align-items: start;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
  }
}

@media (max-width: 767.98px) {
  .tenant-parking-workspace {
    padding: 18px;
  }

  .tenant-parking-workspace__summary,
  .tenant-parking-workspace__filters,
  .tenant-parking-workspace__table,
  .tenant-parking-workspace__table.is-cards,
  .tenant-parking-workspace__preview-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .tenant-parking-workspace__filter-actions {
    grid-column: auto;
  }

  .tenant-parking-workspace__filter-actions .btn,
  .tenant-parking-workspace__view-toggle .btn,
  .tenant-parking-workspace__preview .btn,
  .tenant-parking-workspace__preview-item .btn {
    min-height: 44px;
  }

  .tenant-parking-workspace__filter-actions .btn {
    flex: 1 1 0;
  }

  .tenant-parking-workspace__preview-item,
  .tenant-parking-workspace__pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .tenant-parking-workspace__pagination {
    text-align: center;
  }
}

/* Tenant-parking legacy review workspace */
.legacy-review-workspace,
.legacy-review-detail,
.legacy-review-workspace *,
.legacy-review-detail * {
  min-width: 0;
}

.legacy-review-table-card {
  overflow: hidden;
}

.legacy-review-context-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 24px;
  margin: 0;
}

.legacy-review-context-grid > div {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--vma-border, #e2e8f0);
}

.legacy-review-context-grid dt,
.legacy-review-action-card dt {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

.legacy-review-context-grid dd,
.legacy-review-action-card dd {
  margin: 5px 0 0;
  overflow-wrap: anywhere;
}

.legacy-review-expectation {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.legacy-review-expectation > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--vma-border, #e2e8f0);
  border-radius: 8px;
  background: #f8fafc;
}

.legacy-review-expectation span {
  color: var(--admin-muted, #64748b);
  font-size: 13px;
}

.legacy-review-evidence {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 0;
  border-top: 1px solid var(--vma-border, #e2e8f0);
}

.legacy-review-evidence.is-invalidated {
  opacity: .65;
}

.legacy-review-timeline {
  display: grid;
  gap: 16px;
}

.legacy-review-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
}

.legacy-review-timeline__dot {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border-radius: 50%;
  background: #2563eb;
  box-shadow: 0 0 0 4px #dbeafe;
}

.legacy-review-action-card {
  position: sticky;
  top: 84px;
}

@media (max-width: 1199.98px) {
  .legacy-review-action-card {
    position: static;
  }
}

@media (max-width: 991.98px) {
  .legacy-review-workspace > .alert form,
  .legacy-review-workspace > .alert form .btn {
    max-width: 100%;
    width: 100%;
  }

  .legacy-review-workspace > .alert form .btn {
    white-space: normal !important;
  }
}

@media (max-width: 767.98px) {
  .legacy-review-context-grid,
  .legacy-review-expectation {
    grid-template-columns: minmax(0, 1fr);
  }

  .legacy-review-evidence {
    align-items: stretch;
    flex-direction: column;
  }

  .legacy-review-workspace .admin-filterbar__actions .btn,
  .legacy-review-detail form .btn {
    width: 100%;
  }
}
/* E-mailtemplatebeheer */
.email-editor-toolbar{display:flex;gap:8px;padding:10px;border:1px solid #dbe4f0;border-bottom:0;border-radius:8px 8px 0 0;background:#f8fafc}.email-body-editor{min-height:320px;padding:18px;border:1px solid #dbe4f0;border-radius:0 0 8px 8px;background:#fff;overflow-wrap:anywhere}.email-body-editor:focus{outline:2px solid #93b4ff;outline-offset:1px}.email-preview-frame{max-height:420px;overflow:auto;padding:16px;border:1px solid #dbe4f0;border-radius:8px;background:#fff}.email-version-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e8edf5}.email-version-row:last-of-type{border-bottom:0}.email-history-preview{max-height:240px;overflow:auto;padding:12px;border:1px solid #dbe4f0;border-radius:8px;background:#fff;font-size:14px}@media(max-width:767.98px){.email-template-editor-page .vma-data-card{padding:18px!important}.email-body-editor{min-height:260px}.email-version-row{flex-direction:column}.email-version-row .btn{width:100%}}
/* Existing tenant documents inside the rental contract workflow. */
.contract-existing-documents,
.contract-create-confirmation {
  border: 1px solid var(--border-color, #dce4ef);
  border-radius: 8px;
  padding: 24px;
  background: #f9fbfe;
  min-width: 0;
}

.contract-form-section {
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--border-color, #dce4ef);
  border-radius: 8px;
  background: #fff;
}

.contract-form-section__header {
  display: flex;
  min-width: 0;
  margin-bottom: 20px;
  align-items: flex-start;
  gap: 12px;
}

.contract-form-section__step {
  display: inline-flex;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e8f0ff;
  color: #2455a6;
  font-size: 13px;
  font-weight: 700;
}

.contract-form-section__header > div,
.contract-existing-documents__header > div {
  min-width: 0;
}

.contract-existing-documents__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.contract-existing-documents__header .status-badge {
  max-width: 100%;
  white-space: normal;
  text-align: center;
}

.contract-existing-documents__filters {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr);
  gap: 16px;
  margin-top: 20px;
}

.contract-existing-documents__results {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  max-height: 360px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.contract-existing-documents__state {
  padding: 20px;
  border: 1px dashed #cbd7e6;
  border-radius: 8px;
  color: #66758d;
  text-align: center;
  background: #fff;
}

.contract-existing-document-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #dce4ef;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
  min-width: 0;
}

.contract-existing-document-option > .form-check-input {
  flex: 0 0 auto;
  margin-top: 3px;
}

.contract-existing-document-option:hover,
.contract-existing-document-option:has(input:checked) {
  border-color: #85a9e8;
  box-shadow: 0 4px 12px rgba(37, 83, 164, .08);
}

.contract-existing-document-option__body {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.contract-existing-document-option__body strong,
.contract-existing-document-option__body span {
  overflow-wrap: anywhere;
}

.contract-existing-document-option__body span {
  color: #66758d;
  font-size: 13px;
  line-height: 1.4;
}

.contract-existing-documents__selection {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 8px;
  background: #eef5ff;
}

@media (max-width: 767.98px) {
  .contract-form-section {
    padding: 18px;
  }

  .contract-existing-documents,
  .contract-create-confirmation {
    padding: 18px;
  }

  .contract-existing-documents__header,
  .contract-existing-documents__filters {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .contract-existing-documents__header .status-badge {
    align-self: flex-start;
  }
}

@media (max-width: 575.98px) {
  .contract-form-section,
  .contract-existing-documents,
  .contract-create-confirmation {
    padding: 16px;
  }

  .contract-create-card form > .row > .col-12:last-child .btn {
    width: 100%;
  }
}

/* Calm, single-container presentation for rental contract creation. */
.contract-create-card--calm {
  max-width: 1020px !important;
  padding: 32px;
}

.contract-create-card--calm .contract-create-flow > .col-12 + .col-12 {
  border-top: 1px solid rgba(148, 163, 184, .22);
}

.contract-create-card--calm .contract-form-section,
.contract-create-card--calm .contract-existing-documents,
.contract-create-card--calm .contract-create-confirmation {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 32px 0;
}

.contract-create-card--calm .contract-create-flow > .col-12:first-child .contract-form-section {
  padding-top: 0;
}

.contract-create-card--calm .contract-form-section__header,
.contract-create-card--calm .contract-existing-documents__header {
  align-items: flex-start;
  margin-bottom: 24px;
}

.contract-create-card--calm .contract-existing-documents__header {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
}

.contract-create-card--calm .contract-form-section__header h2,
.contract-create-card--calm .contract-existing-documents__header h2 {
  font-size: 18px;
  line-height: 1.35;
}

.contract-create-card--calm .contract-form-section__header p,
.contract-create-card--calm .contract-existing-documents__header p {
  font-size: 14px;
  line-height: 1.45;
}

.contract-create-card--calm .contract-form-section__step {
  background: #eef2f7;
  color: #475569;
}

.contract-create-card--calm .row.g-3 {
  --bs-gutter-x: 24px;
  --bs-gutter-y: 20px;
}

.contract-create-card--calm .form-label {
  margin-bottom: 10px;
}

.contract-create-card--calm .contract-tenant-summary {
  align-items: center;
  background: #f8fafc;
  border: 0;
  border-radius: 8px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 10px 12px;
}

.contract-tenant-summary__body {
  min-width: 0;
}

.contract-create-card--calm .parking-context-selector--contract {
  background: transparent;
  border: 0;
  padding: 0;
}

.parking-context-selector--contract .parking-context-selector__selected-label {
  margin-bottom: 6px;
}

.parking-context-selector--contract .parking-context-selector__selected-card {
  background: #f8fafc;
  border: 0;
  padding: 12px;
}

.parking-context-selector__selected-heading {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.parking-context-selector--contract .parking-context-selector__availability-context {
  color: #2563eb;
  font-size: 12px;
  font-weight: 700;
}

.contract-create-card--calm .contract-landlord-panel {
  align-items: center;
  background: transparent;
  border: 0;
  display: grid;
  gap: 4px 14px;
  grid-template-columns: minmax(120px, auto) minmax(0, 1fr) auto;
  min-height: 0;
  padding: 0;
}

.contract-landlord-panel__label {
  color: #64748b;
  font-size: 13px;
  font-weight: 700;
}

.contract-create-card--calm .contract-existing-documents__header .status-badge {
  align-self: center;
  margin-left: auto;
}

.contract-create-card--calm .contract-existing-documents__filters {
  margin-top: 0;
}

.contract-create-card--calm .contract-existing-documents__results {
  gap: 0;
  margin-top: 14px;
}

.contract-create-card--calm .contract-existing-document-option {
  border: 0;
  border-bottom: 1px solid rgba(148, 163, 184, .22);
  border-radius: 0;
  padding: 12px 4px;
}

.contract-create-card--calm .contract-existing-document-option:hover,
.contract-create-card--calm .contract-existing-document-option:has(input:checked) {
  background: #f8fafc;
  border-color: rgba(148, 163, 184, .22);
  box-shadow: none;
}

.contract-create-card--calm .contract-existing-documents__selection {
  background: transparent;
  border-left: 3px solid #bfdbfe;
  margin-top: 12px;
  padding: 6px 10px;
}

.contract-create-card--calm .contract-create-confirmation .profile-kv {
  gap: 0;
}

.contract-create-card--calm .contract-create-confirmation .profile-kv > div {
  gap: 20px;
  grid-template-columns: minmax(150px, .35fr) minmax(0, 1fr);
  padding: 9px 0;
}

.contract-create-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding-top: 24px;
}

@media (max-width: 767.98px) {
  .contract-create-card--calm {
    padding: 24px;
  }

  .contract-create-card--calm .contract-form-section,
  .contract-create-card--calm .contract-existing-documents,
  .contract-create-card--calm .contract-create-confirmation {
    padding: 28px 0;
  }

  .contract-create-card--calm .contract-existing-documents__header {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .contract-create-card--calm .contract-existing-documents__header .status-badge {
    grid-column: 2;
    justify-self: start;
    margin: 4px 0 0;
  }

  .contract-create-card--calm .contract-landlord-panel {
    align-items: start;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .contract-create-card--calm {
    padding: 18px;
  }

  .contract-create-card--calm .contract-tenant-summary,
  .parking-context-selector--contract .parking-context-selector__selected-card {
    align-items: stretch;
    flex-direction: column;
  }

  .contract-create-card--calm .contract-tenant-summary .btn,
  .parking-context-selector--contract .parking-context-selector__selected-card .btn,
  .contract-create-actions .btn {
    width: 100%;
  }

  .contract-create-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }
}
