body { font-family: system-ui, Segoe UI, Arial, sans-serif; margin: 0; background: #f8fafc; color: #0f172a; }
.shell { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.nav { background: #0f172a; color: white; padding: 1rem; }
.nav h2 { margin-top: 0; font-size: 1.15rem; }
.nav a { color: #dbeafe; display: block; padding: .65rem .5rem; text-decoration: none; border-radius: .4rem; }
.nav a:hover, .nav a.active { background: #1e293b; }
.content { padding: 1.25rem; }
.card { background: white; border: 1px solid #e2e8f0; border-radius: .9rem; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
table { border-collapse: collapse; width: 100%; background: white; }
th, td { padding: .65rem; border-bottom: 1px solid #e2e8f0; text-align: left; }
.status { padding: .2rem .5rem; border-radius: 999px; background: #e0f2fe; display: inline-block; }
.dashboard-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.dashboard-title-row h1 { margin: 0; }
.dashboard-title-row p { margin: .35rem 0 0; color: #64748b; }
.as-of { background: #e0f2fe; color: #075985; border-radius: 999px; padding: .4rem .7rem; white-space: nowrap; font-size: .85rem; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.kpi-card { background: white; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1rem; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.kpi-card.accent { background: linear-gradient(135deg, #0f172a, #1d4ed8); color: white; }
.kpi-card span { display: block; color: #64748b; font-size: .85rem; }
.kpi-card.accent span, .kpi-card.accent small { color: #dbeafe; }
.kpi-card strong { display: block; font-size: 1.75rem; line-height: 1.2; margin: .35rem 0; }
.kpi-card small { color: #64748b; }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.chart-card { min-height: 285px; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-heading h2 { margin: 0; font-size: 1.05rem; }
.section-heading span { color: #64748b; font-size: .85rem; }
.status-chart, .payment-list { display: grid; gap: .9rem; }
.status-row, .payment-row { display: grid; gap: .4rem; }
.status-row-label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .92rem; }
.status-row-label span { color: #334155; }
.progress-track { height: .75rem; border-radius: 999px; background: #e2e8f0; overflow: hidden; }
.progress-track.slim { height: .55rem; }
.progress-fill { height: 100%; border-radius: 999px; min-width: .3rem; }
.progress-fill.available { background: #10b981; }
.progress-fill.booked { background: #f59e0b; }
.progress-fill.occupied { background: #2563eb; }
.progress-fill.maintenance { background: #ef4444; }
.progress-fill.cash { background: #0f766e; }
.progress-fill.neutral { background: #64748b; }
.bar-chart { display: flex; align-items: end; gap: .75rem; min-height: 210px; padding-top: .5rem; overflow-x: auto; }
.bar-item { display: grid; grid-template-rows: 1fr auto auto; align-items: end; justify-items: center; min-width: 72px; height: 210px; gap: .35rem; }
.bar-wrap { height: 145px; width: 100%; display: flex; align-items: end; justify-content: center; background: #f1f5f9; border-radius: .75rem; padding: .25rem; }
.bar-fill { width: 70%; background: linear-gradient(180deg, #2563eb, #0f766e); border-radius: .6rem .6rem .25rem .25rem; }
.bar-item span { font-size: .78rem; color: #334155; }
.bar-item small { color: #64748b; font-size: .75rem; }
.snapshot-list { display: grid; gap: .75rem; }
.snapshot-list div { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e2e8f0; padding-bottom: .75rem; }
.snapshot-list div:last-child { border-bottom: 0; }
.snapshot-list span { color: #475569; }
.snapshot-list strong { font-size: 1.15rem; }
@media (max-width: 980px) { .dashboard-grid { grid-template-columns: 1fr; } }
@media (max-width: 800px) { .shell { grid-template-columns: 1fr; } .nav { position: static; } .dashboard-title-row { display: block; } .as-of { display: inline-block; margin-top: .75rem; } .content { padding: .85rem; } }
.form-grid { display: grid; gap: .85rem; }
.form-grid > *, .two-column-form > * { min-width: 0; }
.form-grid label { display: grid; gap: .35rem; color: #334155; font-size: .9rem; min-width: 0; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: .55rem; padding: .65rem .75rem; font: inherit; }
.primary-button { border: 0; border-radius: .65rem; background: #0f172a; color: white; padding: .75rem 1rem; font-weight: 700; cursor: pointer; }
.primary-button:hover { background: #1d4ed8; }
.notice { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; border-radius: .7rem; padding: .75rem; }
.status.active { background: #dcfce7; color: #166534; }
.status.pending { background: #fef3c7; color: #92400e; }
.status.suspended, .status.retired { background: #fee2e2; color: #991b1b; }
.card small { color: #64748b; }

.error-card {
    border-left: 4px solid #b42318;
    background: #fff7f6;
}

.error-card h2 {
    color: #8f1d16;
    margin-top: 0;
}

.empty-state {
    padding: 1.25rem;
    text-align: center;
    color: #667085;
}

.secondary-button {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #1f2937;
    border-radius: 0.5rem;
    padding: 0.65rem 1rem;
    cursor: pointer;
}

/* Property portfolio module */
.page-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.page-title-row h1 { margin: 0; }
.page-title-row p { margin: .35rem 0 0; color: #64748b; }
.portfolio-kpis { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.portfolio-form-grid, .portfolio-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.two-column-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.unit-form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.span-two { grid-column: span 2; }
.check-label { display: flex !important; grid-template-columns: auto 1fr !important; align-items: center; gap: .55rem !important; padding: .65rem .75rem; border: 1px solid #e2e8f0; border-radius: .55rem; background: #f8fafc; }
.check-label input { width: 1rem; height: 1rem; }
.success-notice { background: #ecfdf5; color: #166534; border: 1px solid #bbf7d0; border-radius: .7rem; padding: .75rem 1rem; margin-bottom: 1rem; }
.link-button, .table-action { border: 0; background: transparent; color: #1d4ed8; padding: .25rem .4rem; cursor: pointer; font-weight: 600; }
.link-button:hover, .table-action:hover { text-decoration: underline; }
.table-scroll { overflow-x: auto; }
.filter-row { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(160px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.filter-row input, .filter-row select { border: 1px solid #cbd5e1; border-radius: .55rem; padding: .65rem .75rem; font: inherit; }
.status.available { background: #dcfce7; color: #166534; }
.status.booked { background: #fef3c7; color: #92400e; }
.status.occupied { background: #dbeafe; color: #1e40af; }
.status.undermaintenance, .status.blocked { background: #fee2e2; color: #991b1b; }
.inactive-label { display: block; color: #991b1b; margin-top: .3rem; }
.service-tags { color: #475569; font-size: .85rem; }
@media (max-width: 1100px) { .unit-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 850px) { .portfolio-form-grid, .portfolio-data-grid { grid-template-columns: 1fr; } .filter-row { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .two-column-form, .unit-form-grid { grid-template-columns: 1fr; } .span-two { grid-column: span 1; } .page-title-row { display: block; } .page-title-row .secondary-button { margin-top: .75rem; } }

/* Rental units workspace */
.page-actions { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.nav-button { display: inline-flex; align-items: center; text-decoration: none; }
.table-subtext { display: block; margin-top: .2rem; color: #64748b; }
.section-intro { margin-top: -.4rem; color: #64748b; }
.service-editor, .unit-editor-card { border-top: 4px solid #2563eb; }
.service-catalog-grid { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(320px, 1.2fr); gap: 1.25rem; }
.service-catalog-list { display: grid; align-content: start; gap: .65rem; }
.service-catalog-item { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 1px solid #e2e8f0; border-radius: .7rem; padding: .75rem; background: #f8fafc; }
.service-catalog-item small { display: block; margin-top: .2rem; }
.charge-options { margin: 1rem 0; padding-top: 1rem; border-top: 1px solid #e2e8f0; }
.charge-options h3 { margin: 0 0 .75rem; font-size: 1rem; }
.charge-option-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .7rem; }
.charge-option { display: flex; align-items: flex-start; gap: .65rem; padding: .8rem; border: 1px solid #cbd5e1; border-radius: .7rem; background: #f8fafc; cursor: pointer; }
.charge-option input { margin-top: .2rem; width: 1rem; height: 1rem; }
.charge-option span, .charge-option small { display: block; }
.rental-filter-row { grid-template-columns: minmax(260px, 2fr) repeat(2, minmax(170px, 1fr)); }
.unit-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 1rem; }
.unit-work-card { border: 1px solid #dbe3ee; border-radius: 1rem; padding: 1rem; background: #fff; cursor: pointer; box-shadow: 0 4px 14px rgba(15, 23, 42, .05); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.unit-work-card:hover { transform: translateY(-2px); border-color: #93c5fd; box-shadow: 0 10px 24px rgba(15, 23, 42, .1); }
.unit-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.unit-card-top h3 { margin: .2rem 0 .4rem; font-size: 1.08rem; }
.unit-code { font-size: .76rem; font-weight: 800; letter-spacing: .06em; color: #2563eb; }
.unit-location { color: #64748b; font-size: .88rem; min-height: 2.6em; }
.unit-financial-row { display: flex; justify-content: space-between; gap: 1rem; margin: .8rem 0; padding: .65rem 0; border-top: 1px solid #eef2f7; border-bottom: 1px solid #eef2f7; }
.unit-financial-row span { color: #64748b; }
.tenant-snapshot { min-height: 52px; display: flex; justify-content: space-between; gap: 1rem; align-items: flex-end; }
.tenant-snapshot small, .tenant-snapshot strong { display: block; }
.balance-label { text-align: right; }
.balance-label strong { color: #b42318; }
.muted { color: #64748b; }
.unit-service-tags, .service-pill-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.unit-service-tags span, .service-pill-list > span { display: inline-flex; gap: .35rem; align-items: center; background: #eff6ff; color: #1e40af; border-radius: 999px; padding: .3rem .55rem; font-size: .75rem; }
.unit-card-footer { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid #eef2f7; color: #64748b; font-size: .8rem; }
.modal-backdrop { position: fixed; inset: 0; z-index: 1000; background: rgba(15, 23, 42, .58); display: grid; place-items: center; padding: 1rem; }
.unit-action-modal { width: min(1080px, 96vw); max-height: 92vh; overflow: hidden; background: #fff; border-radius: 1rem; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.modal-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.2rem; border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
.modal-header span { color: #2563eb; font-size: .8rem; font-weight: 800; letter-spacing: .05em; }
.modal-header h2 { margin: .2rem 0 0; font-size: 1.25rem; }
.modal-close { border: 0; background: #e2e8f0; width: 2.2rem; height: 2.2rem; border-radius: 999px; font-size: 1.45rem; cursor: pointer; }
.modal-loading { padding: 3rem; text-align: center; color: #64748b; }

/* Rental unit workspace: keep long forms scrollable and actions reachable. */
.rental-workspace-modal {
  display: flex;
  flex-direction: column;
  height: min(900px, calc(100vh - 2rem));
  height: min(900px, calc(100dvh - 2rem));
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  min-height: 0;
}
.rental-workspace-modal .modal-header,
.rental-workspace-modal .modal-notice { flex: 0 0 auto; }
.rental-workspace-modal .modal-loading { flex: 1 1 auto; overflow-y: auto; }
.rental-workspace-modal .unit-modal-layout {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
}
.rental-workspace-modal .unit-action-menu { min-height: 0; overflow-y: auto; }
.rental-workspace-modal .unit-action-content {
  min-height: 0;
  min-width: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 5rem;
}
.rental-workspace-modal .unit-action-content > .primary-button {
  position: sticky;
  bottom: .2rem;
  z-index: 5;
  margin-top: 1rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .24);
}
.unit-modal-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr); min-height: 560px; max-height: calc(92vh - 80px); }
.unit-action-menu { padding: 1rem; background: #f8fafc; border-right: 1px solid #e2e8f0; display: flex; flex-direction: column; gap: .45rem; }
.unit-action-menu button { border: 0; background: transparent; text-align: left; padding: .75rem .8rem; border-radius: .6rem; cursor: pointer; font: inherit; color: #334155; }
.unit-action-menu button:hover:not(:disabled), .unit-action-menu button.active { background: #dbeafe; color: #1d4ed8; font-weight: 700; }
.unit-action-menu button:disabled { opacity: .45; cursor: not-allowed; }
.unit-action-content { padding: 1.2rem; overflow-y: auto; }
.unit-action-content h3 { margin-top: 1.25rem; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.detail-grid > div { border: 1px solid #e2e8f0; border-radius: .7rem; padding: .8rem; background: #f8fafc; }
.detail-grid small, .detail-grid strong { display: block; }
.detail-grid strong { margin-top: .25rem; }
.detail-grid .wide { grid-column: span 2; }
.tenant-banner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; background: #ecfdf5; border: 1px solid #bbf7d0; border-radius: .8rem; padding: .9rem; }
.tenant-banner small, .tenant-banner strong { display: block; }
.statement-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.statement-summary div { border-radius: .75rem; padding: .85rem; background: #f1f5f9; }
.statement-summary span, .statement-summary strong { display: block; }
.statement-summary strong { margin-top: .25rem; font-size: 1.2rem; }
.customer-profile { display: flex; align-items: center; gap: .9rem; margin-bottom: 1rem; }
.customer-profile h3 { margin: 0; }
.customer-avatar { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; border-radius: 999px; background: #1d4ed8; color: #fff; font-weight: 800; }
@media (max-width: 850px) {
  .service-catalog-grid, .unit-modal-layout { grid-template-columns: 1fr; }
  .rental-workspace-modal .unit-modal-layout { grid-template-rows: auto minmax(0, 1fr); }
  .unit-action-menu { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid #e2e8f0; }
  .unit-action-menu button { white-space: nowrap; }
  .rental-filter-row { grid-template-columns: 1fr; }
  .tenant-banner { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .page-actions { margin-top: .75rem; }
  .modal-backdrop { padding: 0; }
  .unit-action-modal { width: 100%; max-height: 96vh; }
  .rental-workspace-modal {
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .detail-grid, .statement-summary { grid-template-columns: 1fr; }
  .detail-grid .wide { grid-column: span 1; }
  .unit-modal-layout { max-height: calc(96vh - 80px); }
}

/* Currency and data exchange */
.currency-layout, .exchange-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.policy-explanation { display: grid; gap: .65rem; margin-top: 1rem; }
.policy-explanation div { border-left: 3px solid #2563eb; background: #eff6ff; padding: .7rem .85rem; border-radius: .45rem; }
.policy-explanation strong, .policy-explanation span { display: block; }
.policy-explanation span { color: #475569; font-size: .86rem; margin-top: .2rem; }
.field-help, .currency-policy-note { color: #64748b; font-size: .86rem; }
.currency-policy-note { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: .6rem; padding: .75rem; }
.base-badge { margin-left: .45rem; background: #dcfce7; color: #166534; border-radius: 999px; padding: .18rem .45rem; font-size: .7rem; }
.exchange-card { position: relative; overflow: hidden; }
.exchange-card h2 { margin: .3rem 0; }
.exchange-card > p { color: #64748b; min-height: 3em; }
.exchange-icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .7rem; background: #dbeafe; color: #1d4ed8; font-weight: 900; }
.download-row { display: flex; flex-wrap: wrap; gap: .6rem; margin: .8rem 0; }
.download-row a { text-decoration: none; display: inline-flex; align-items: center; }
.file-drop { display: grid; gap: .5rem; margin: 1rem 0; padding: 1rem; border: 2px dashed #cbd5e1; border-radius: .8rem; background: #f8fafc; color: #334155; font-weight: 700; }
.file-drop input { display: block; font-weight: 400; }
.import-result { border-top: 4px solid #0f766e; }
@media (max-width: 850px) { .currency-layout, .exchange-grid { grid-template-columns: 1fr; } }
.modal-notice { margin: .75rem 1rem 0; padding: .7rem .85rem; border-radius: .6rem; }
.modal-notice span { display: block; margin-top: .2rem; }

/* Customer workspace */
.clickable-row { cursor: pointer; }
.clickable-row:hover { background: rgba(31, 78, 120, .055); }
.cell-subtitle { display: block; margin-top: .2rem; color: #64748b; font-weight: 400; }
.customer-workspace-modal {
  max-width: 1180px;
  display: flex;
  flex-direction: column;
  height: min(900px, calc(100vh - 2rem));
  height: min(900px, calc(100dvh - 2rem));
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  min-height: 0;
}
.customer-workspace-modal .modal-header,
.customer-workspace-modal .modal-notice { flex: 0 0 auto; }
.customer-workspace-modal .modal-loading { flex: 1 1 auto; overflow-y: auto; }
.customer-workspace-modal .unit-modal-layout {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
}
.customer-workspace-modal .unit-action-menu { min-height: 0; overflow-y: auto; }
.customer-workspace-modal .unit-action-content {
  min-height: 0;
  min-width: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 5rem;
}
.customer-workspace-modal .unit-action-content > .primary-button {
  position: sticky;
  bottom: .2rem;
  z-index: 5;
  margin-top: 1rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .24);
}
.lease-pricing-card { border: 1px solid #dbe4ee; border-radius: 14px; padding: 1rem; margin-bottom: 1rem; background: #fff; }
.lease-pricing-card h3, .lease-pricing-card h4 { margin: 0 0 .35rem; }
.nested-form-card { margin-top: 1rem; background: #f8fafc; }
@media (max-width: 850px) {
  .customer-workspace-modal .unit-modal-layout { grid-template-rows: auto minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .customer-workspace-modal { width: 96vw; }
  .clickable-row td:nth-child(3), .clickable-row td:nth-child(4) { display: none; }
}
@media (max-width: 600px) {
  .customer-workspace-modal {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    border-radius: 0;
  }
}

/* Secure customer and agreement documents */
.choice-tabs { display: flex; gap: .55rem; margin: .8rem 0 1rem; padding: .3rem; border-radius: .75rem; background: #f1f5f9; width: fit-content; }
.choice-tabs button { border: 0; background: transparent; padding: .65rem .9rem; border-radius: .55rem; cursor: pointer; font: inherit; color: #475569; }
.choice-tabs button.active { background: #fff; color: #1d4ed8; box-shadow: 0 1px 5px rgba(15, 23, 42, .12); font-weight: 700; }
.document-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: .75rem; margin-top: .9rem; }
.document-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; border: 1px solid #dbe4ee; border-radius: .8rem; padding: .8rem; background: #fff; }
.document-icon { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border-radius: .65rem; background: #e0e7ff; color: #3730a3; font-size: .72rem; font-weight: 900; }
.document-body { min-width: 0; }
.document-body strong, .document-body span, .document-body small { display: block; }
.document-body span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #334155; }
.document-body small { color: #64748b; margin-top: .18rem; }
.document-open { text-decoration: none; white-space: nowrap; }
.compact-documents { grid-template-columns: 1fr; }
label > input[type="file"] { margin-top: .4rem; padding: .55rem; border: 1px dashed #94a3b8; border-radius: .55rem; background: #f8fafc; }
@media (max-width: 600px) {
  .document-card { grid-template-columns: auto minmax(0, 1fr); }
  .document-open { grid-column: 1 / -1; justify-content: center; }
  .choice-tabs { width: 100%; }
  .choice-tabs button { flex: 1; }
}


/* Rental start pricing and invoice preview */
.rental-charge-section { margin-top: 1.2rem; border-top: 1px solid #e2e8f0; padding-top: 1rem; }
.rental-charge-list { display: grid; gap: .7rem; }
.rental-charge-row { display: grid; grid-template-columns: minmax(190px, 1.4fr) repeat(3, minmax(120px, .8fr)) minmax(150px, .8fr); gap: .7rem; align-items: end; border: 1px solid #e2e8f0; border-radius: .8rem; padding: .8rem; background: #f8fafc; opacity: .72; }
.rental-charge-row.selected { background: #fff; border-color: #93c5fd; opacity: 1; }
.rental-charge-row label { margin: 0; }
.rental-charge-row .charge-name { align-self: center; }
.rental-charge-row .charge-name span, .rental-charge-row .charge-name strong, .rental-charge-row .charge-name small { display: block; }
.rental-charge-row .charge-name small { color: #64748b; margin-top: .18rem; }
.charge-period-total { border-left: 3px solid #2563eb; padding: .5rem .65rem; background: #eff6ff; border-radius: .4rem; }
.charge-period-total small, .charge-period-total strong { display: block; }
.rental-total-card { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; }
.rental-total-card > div { border: 1px solid #dbe4ee; border-radius: .8rem; padding: .9rem; background: #f8fafc; }
.rental-total-card span, .rental-total-card strong, .rental-total-card small { display: block; }
.rental-total-card strong { margin: .25rem 0; font-size: 1.18rem; }
.rental-total-card small { color: #64748b; }
.rental-total-card .grand-total { background: #ecfdf5; border-color: #86efac; }
.invoice-on-save-card { margin: 1rem 0; padding: 1rem; border: 1px solid #bfdbfe; border-radius: .8rem; background: #eff6ff; }
.invoice-on-save-card > .check-label { font-weight: 700; }
.invoice-preview { display: flex; justify-content: space-between; align-items: center; border-radius: .65rem; padding: .75rem; background: #fff; border: 1px solid #dbeafe; }
.invoice-preview strong { font-size: 1.15rem; }
@media (max-width: 1050px) { .rental-charge-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .charge-period-total { grid-column: span 2; } }
@media (max-width: 700px) { .rental-charge-row, .rental-total-card { grid-template-columns: 1fr; } .charge-period-total { grid-column: span 1; } .invoice-preview { display: grid; gap: .25rem; } }

/* Unit transactions workspace */
.transaction-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.transaction-summary{grid-template-columns:repeat(4,minmax(130px,1fr))}.ageing-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:.65rem;margin:1rem 0 1.4rem}.ageing-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.ageing-grid span{font-size:.76rem;color:#64748b}.ageing-grid strong{font-size:1rem}.transaction-editor{border:1px solid #cbd5e1;background:#f8fafc;border-radius:12px;padding:1rem;margin:1rem 0}.tax-exempt-banner{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46;padding:.75rem;border-radius:8px;margin-bottom:1rem}.invoice-line-editor{margin:1rem 0}.invoice-line-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(85px,.7fr) minmax(110px,1fr) minmax(90px,.7fr) minmax(100px,.8fr) minmax(110px,.8fr) auto;gap:.55rem;align-items:end;padding:.7rem 0;border-bottom:1px solid #e2e8f0}.invoice-line-row label{margin:0}.line-total{display:flex;flex-direction:column;padding-bottom:.5rem}.line-total small{color:#64748b}.transaction-form-total{text-align:right;font-size:1.05rem;margin:.8rem 0}.transaction-table{min-width:1180px}.transaction-actions{display:flex;gap:.35rem;flex-wrap:wrap;min-width:270px}.danger-link,.danger-button{border:1px solid #fecaca;background:#fff1f2;color:#b91c1c;border-radius:7px;padding:.4rem .6rem;cursor:pointer}.danger-link:disabled,.danger-button:disabled{opacity:.45;cursor:not-allowed}.cancelled-row{opacity:.65;background:#f8fafc;text-decoration:none}.cancelled-row td:not(:last-child){color:#64748b}.upload-action{position:relative;overflow:hidden;display:inline-flex;cursor:pointer}.upload-action input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
@media(max-width:900px){.transaction-summary{grid-template-columns:repeat(2,1fr)}.ageing-grid{grid-template-columns:repeat(2,1fr)}.invoice-line-row{grid-template-columns:1fr 1fr}.invoice-line-row>label:first-child{grid-column:1/-1}.transaction-toolbar .page-actions{width:100%}}

/* =========================================================
   Application shell, settings drawer and appearance system
   ========================================================= */
:root {
    --app-bg: #f4f7fb;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --surface-raised: #ffffff;
    --text: #172033;
    --text-soft: #657086;
    --border: #dfe6ef;
    --sidebar: #101828;
    --sidebar-soft: #1d2939;
    --sidebar-text: #e4e7ec;
    --accent: #2563eb;
    --accent-strong: #1d4ed8;
    --accent-soft: #eaf2ff;
    --accent-text: #174ea6;
    --shadow-sm: 0 1px 3px rgba(16, 24, 40, .08);
    --shadow-lg: 0 24px 60px rgba(16, 24, 40, .20);
    --topbar-height: 72px;
}

html[data-accent="emerald"] { --accent: #059669; --accent-strong: #047857; --accent-soft: #e7f8f1; --accent-text: #05603f; }
html[data-accent="violet"] { --accent: #7c3aed; --accent-strong: #6d28d9; --accent-soft: #f1ebff; --accent-text: #5b21b6; }
html[data-accent="amber"] { --accent: #d97706; --accent-strong: #b45309; --accent-soft: #fff3dc; --accent-text: #92400e; }

html[data-theme="dark"] {
    color-scheme: dark;
    --app-bg: #0b1220;
    --surface: #111b2e;
    --surface-soft: #162238;
    --surface-raised: #18263e;
    --text: #eef4ff;
    --text-soft: #a8b3c7;
    --border: #2a3a55;
    --sidebar: #070d18;
    --sidebar-soft: #152238;
    --sidebar-text: #e8eef8;
    --accent-soft: rgba(59, 130, 246, .16);
    --accent-text: #bfdbfe;
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);
    --shadow-lg: 0 28px 70px rgba(0, 0, 0, .45);
}

html[data-theme="dark"][data-accent="emerald"] { --accent-soft: rgba(16, 185, 129, .16); --accent-text: #a7f3d0; }
html[data-theme="dark"][data-accent="violet"] { --accent-soft: rgba(139, 92, 246, .17); --accent-text: #ddd6fe; }
html[data-theme="dark"][data-accent="amber"] { --accent-soft: rgba(245, 158, 11, .16); --accent-text: #fde68a; }

body { background: var(--app-bg); color: var(--text); }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 260px minmax(0, 1fr); background: var(--app-bg); }
.app-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; overflow: hidden; padding: 1.15rem .9rem; background: linear-gradient(180deg, var(--sidebar), #0b1424); color: var(--sidebar-text); border-right: 1px solid rgba(255,255,255,.06); }
.sidebar-brand { display: flex; align-items: center; gap: .75rem; padding: .25rem .45rem 1.15rem; }
.brand-mark, .about-logo, .licence-brand > span { flex: 0 0 auto; width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: .85rem; background: linear-gradient(135deg, var(--accent), #38bdf8); color: #fff; font-weight: 900; letter-spacing: -.04em; box-shadow: 0 10px 24px rgba(37, 99, 235, .28); }
.sidebar-brand strong, .sidebar-brand span { display: block; }
.sidebar-brand strong { color: #fff; font-size: 1rem; }
.sidebar-brand span { margin-top: .12rem; color: #98a2b3; font-size: .74rem; }
.primary-navigation { display: grid; gap: .24rem; overflow-y: auto; padding: .3rem .1rem; }
.nav-section-label { padding: .55rem .65rem .35rem; color: #667085; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.primary-navigation a { display: flex; align-items: center; gap: .72rem; padding: .72rem .75rem; color: #c8d1df; border-radius: .72rem; text-decoration: none; font-size: .9rem; font-weight: 600; transition: background .16s ease, color .16s ease, transform .16s ease; }
.primary-navigation a:hover { background: rgba(255,255,255,.065); color: #fff; transform: translateX(2px); }
.primary-navigation a.active { background: linear-gradient(90deg, var(--accent), var(--accent-strong)); color: #fff; box-shadow: 0 10px 22px rgba(0,0,0,.18); }
.nav-icon { width: 1.3rem; display: inline-grid; place-items: center; font-size: 1.05rem; }
.sidebar-footer { margin-top: auto; display: grid; gap: .2rem; padding: .9rem .65rem .2rem; color: #98a2b3; border-top: 1px solid rgba(255,255,255,.07); }
.sidebar-footer span { font-size: .72rem; }
.sidebar-footer small { color: #667085; }

.app-workspace { min-width: 0; }
.app-topbar { position: sticky; top: 0; z-index: 40; height: var(--topbar-height); display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 1.35rem; background: color-mix(in srgb, var(--surface) 92%, transparent); border-bottom: 1px solid var(--border); backdrop-filter: blur(15px); }
.workspace-heading span, .workspace-heading strong { display: block; }
.workspace-eyebrow { color: var(--text-soft); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.workspace-heading strong { margin-top: .12rem; color: var(--text); font-size: .95rem; }
.topbar-actions { display: flex; align-items: center; gap: .6rem; }
.profile-chip, .settings-trigger { min-height: 42px; display: flex; align-items: center; gap: .55rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--surface); color: var(--text); box-shadow: var(--shadow-sm); text-decoration: none; font: inherit; cursor: pointer; }
.profile-chip { padding: .35rem .65rem .35rem .38rem; }
.profile-avatar { width: 1.95rem; height: 1.95rem; display: grid; place-items: center; border-radius: .62rem; background: var(--accent-soft); color: var(--accent-text); font-weight: 900; }
.profile-name { font-size: .82rem; font-weight: 700; }
.settings-trigger { padding: .58rem .8rem; font-size: .84rem; font-weight: 800; }
.settings-trigger:hover, .profile-chip:hover { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-text); }
.hamburger-icon { width: 1.15rem; display: grid; gap: 3px; }
.hamburger-icon i { display: block; width: 100%; height: 2px; border-radius: 3px; background: currentColor; }
.app-workspace > .content { max-width: 1600px; margin: 0 auto; padding: 1.4rem; }

.settings-backdrop { position: fixed; inset: 0; z-index: 80; border: 0; background: rgba(8, 15, 28, .46); backdrop-filter: blur(2px); cursor: default; }
.settings-drawer { position: fixed; z-index: 90; top: 0; right: 0; width: min(430px, 94vw); height: 100vh; display: flex; flex-direction: column; background: var(--surface); color: var(--text); box-shadow: var(--shadow-lg); animation: settings-slide-in .2s ease-out; }
@keyframes settings-slide-in { from { transform: translateX(100%); opacity: .6; } to { transform: translateX(0); opacity: 1; } }
.settings-drawer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.3rem 1.25rem 1.05rem; border-bottom: 1px solid var(--border); background: linear-gradient(135deg, var(--accent-soft), var(--surface)); }
.settings-drawer-header span { color: var(--accent-text); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.settings-drawer-header h2 { margin: .2rem 0 0; font-size: 1.45rem; }
.drawer-close { width: 2.25rem; height: 2.25rem; border: 1px solid var(--border); border-radius: .65rem; background: var(--surface); color: var(--text); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.settings-drawer-body { overflow-y: auto; padding: .9rem; }
.settings-home-link, .settings-group a { display: grid; grid-template-columns: 2.2rem minmax(0,1fr); align-items: center; gap: .7rem; border-radius: .75rem; color: var(--text); text-decoration: none; }
.settings-home-link { margin-bottom: .9rem; padding: .8rem; background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border)); }
.settings-group { padding: .75rem 0; border-top: 1px solid var(--border); }
.settings-group h3 { margin: 0; padding: .2rem .65rem .45rem; color: var(--text-soft); font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }
.settings-group a { padding: .65rem .55rem; }
.settings-group a:hover, .settings-group a.active { background: var(--surface-soft); color: var(--accent-text); }
.settings-item-icon { width: 2.15rem; height: 2.15rem; display: grid; place-items: center; border-radius: .62rem; background: var(--surface-soft); border: 1px solid var(--border); color: var(--accent); font-size: 1rem; font-weight: 900; }
.settings-home-link .settings-item-icon { background: var(--surface); }
.settings-group strong, .settings-group small, .settings-home-link strong, .settings-home-link small { display: block; }
.settings-group strong, .settings-home-link strong { font-size: .84rem; }
.settings-group small, .settings-home-link small { margin-top: .12rem; color: var(--text-soft); font-size: .72rem; font-weight: 400; line-height: 1.35; }

/* Settings pages */
.settings-page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.settings-page-heading h1 { margin: .15rem 0 .3rem; font-size: clamp(1.65rem, 3vw, 2.15rem); letter-spacing: -.035em; }
.settings-page-heading p { max-width: 720px; margin: 0; color: var(--text-soft); }
.page-kicker { color: var(--accent); font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.settings-profile-shortcut { text-decoration: none; white-space: nowrap; }
.settings-dashboard-section { margin: 1.4rem 0 1.7rem; }
.settings-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: .85rem; }
.settings-card { min-height: 112px; display: grid; grid-template-columns: 2.75rem minmax(0,1fr) auto; align-items: center; gap: .85rem; padding: .95rem; border: 1px solid var(--border); border-radius: .9rem; background: var(--surface); color: var(--text); text-decoration: none; box-shadow: var(--shadow-sm); transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.settings-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 50%, var(--border)); box-shadow: 0 10px 25px rgba(16,24,40,.1); }
.settings-card-icon { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: .75rem; background: var(--accent-soft); color: var(--accent-text); font-size: 1.12rem; font-weight: 900; }
.settings-card strong, .settings-card p { display: block; }
.settings-card strong { font-size: .93rem; }
.settings-card p { margin: .25rem 0 0; color: var(--text-soft); font-size: .78rem; line-height: 1.45; }
.settings-arrow { color: var(--text-soft); font-size: 1.6rem; }
.settings-form-layout { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.preference-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.preference-choice { display: grid; gap: .4rem; padding: .75rem; text-align: left; border: 1px solid var(--border); border-radius: .8rem; background: var(--surface-soft); color: var(--text); cursor: pointer; }
.preference-choice.selected { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.preference-choice small { color: var(--text-soft); line-height: 1.35; }
.theme-preview { height: 56px; display: grid; grid-template-columns: 30% 1fr; grid-template-rows: 18px 1fr; gap: 4px; padding: 5px; border: 1px solid #cbd5e1; border-radius: .55rem; background: #f8fafc; }
.theme-preview i { display: block; border-radius: .25rem; background: #dbe4f0; }
.theme-preview i:first-child { grid-row: 1 / span 2; background: #1e293b; }
.theme-preview i:nth-child(2) { background: #fff; }
.theme-preview i:nth-child(3) { background: #fff; }
.theme-preview.dark { background: #101828; border-color: #344054; }
.theme-preview.dark i { background: #23324b; }
.theme-preview.dark i:first-child { background: #050b14; }
.theme-preview.system { background: linear-gradient(90deg, #f8fafc 0 50%, #101828 50%); }
.accent-choice-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.accent-choice { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--border); border-radius: 999px; padding: .55rem .75rem; background: var(--surface-soft); color: var(--text); cursor: pointer; }
.accent-choice.selected { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.accent-dot { width: .9rem; height: .9rem; border-radius: 50%; background: #2563eb; }
.accent-dot.emerald { background: #059669; }.accent-dot.violet { background: #7c3aed; }.accent-dot.amber { background: #d97706; }
.settings-muted { color: var(--text-soft); font-size: .84rem; }
.profile-summary { display: flex; align-items: center; gap: .85rem; padding: .8rem; border-radius: .8rem; background: var(--surface-soft); }
.profile-summary-avatar { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: .8rem; background: var(--accent-soft); color: var(--accent-text); font-weight: 900; font-size: 1.15rem; }
.profile-summary strong, .profile-summary span, .profile-summary small { display: block; }
.profile-summary span { margin-top: .15rem; color: var(--text-soft); }
.profile-summary small { margin-top: .2rem; color: var(--accent-text); }
.settings-sticky-actions { position: sticky; bottom: 1rem; z-index: 20; display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1rem; padding: .7rem; border: 1px solid var(--border); border-radius: .85rem; background: color-mix(in srgb, var(--surface) 94%, transparent); backdrop-filter: blur(12px); box-shadow: var(--shadow-sm); }
.settings-sticky-actions a { text-decoration: none; }
.settings-readiness-note { margin-bottom: 1rem; }
.settings-feature-list { display: grid; gap: .55rem; color: var(--text-soft); }
.settings-feature-list span { padding: .55rem .65rem; border: 1px solid var(--border); border-radius: .55rem; background: var(--surface-soft); }
.settings-process { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.settings-process span { padding: .65rem .75rem; border-radius: .6rem; background: var(--accent-soft); color: var(--accent-text); font-weight: 800; font-size: .82rem; }
.settings-process b { color: var(--text-soft); }
.settings-module-grid { align-items: stretch; }
.settings-module-card { display: grid; grid-template-rows: auto 1fr auto; gap: .75rem; padding: 1rem; border: 1px solid var(--border); border-radius: .9rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.settings-module-card > span { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; border-radius: .72rem; background: var(--accent-soft); color: var(--accent-text); font-size: 1.15rem; font-weight: 900; }
.settings-module-card strong { font-size: .95rem; }
.settings-module-card p { color: var(--text-soft); font-size: .82rem; line-height: 1.45; }
.backup-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .85rem; margin-bottom: 1rem; }
.licence-card { padding: 1.25rem; }
.licence-brand { display: flex; align-items: center; gap: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.licence-brand strong, .licence-brand small { display: block; }
.licence-brand small { color: var(--text-soft); margin-top: .2rem; }
.licence-details { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .8rem; padding-top: 1rem; }
.licence-details div { padding: .75rem; border-radius: .7rem; background: var(--surface-soft); }
.licence-details span, .licence-details strong { display: block; }
.licence-details span { color: var(--text-soft); font-size: .72rem; }
.licence-details strong { margin-top: .3rem; font-size: .9rem; }
.help-contact-card { margin-top: 1rem; }
.about-hero { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; padding: 1.2rem; border: 1px solid var(--border); border-radius: 1rem; background: linear-gradient(135deg, var(--accent-soft), var(--surface)); }
.about-hero h1 { margin: .2rem 0; }
.about-hero p { margin: 0; color: var(--text-soft); }
.about-logo { width: 4rem; height: 4rem; font-size: 1.2rem; }
.about-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.about-list { margin: 0; display: grid; gap: .1rem; }
.about-list div { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--border); }
.about-list div:last-child { border-bottom: 0; }
.about-list dt { color: var(--text-soft); }.about-list dd { margin: 0; font-weight: 700; text-align: right; }
.settings-inline-actions { display: flex; align-items: center; gap: .8rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.settings-inline-actions a { text-decoration: none; }.settings-inline-actions span { color: var(--text-soft); font-size: .82rem; }

/* Global colour and dark-mode harmonisation */
.card, .kpi-card, table, .modal-panel, .modal-card, .unit-card, .lease-pricing-card, .document-card { background-color: var(--surface); color: var(--text); border-color: var(--border); }
th, td { border-color: var(--border); }
th { color: var(--text-soft); }
.form-grid input, .form-grid select, .form-grid textarea, .filter-row input, .filter-row select, input, select, textarea { background-color: var(--surface); color: var(--text); border-color: var(--border); }
.primary-button { background: var(--accent); }.primary-button:hover { background: var(--accent-strong); }
.secondary-button { background: var(--surface); color: var(--text); border-color: var(--border); }
.link-button, .table-action { color: var(--accent); }
.check-label, .rental-charge-row, .rental-total-card > div, .nested-form-card, .file-drop, .profile-summary { background-color: var(--surface-soft); border-color: var(--border); }
html[data-theme="dark"] .bar-wrap, html[data-theme="dark"] .progress-track { background: var(--surface-soft); }
html[data-theme="dark"] .notice { background: #362a13; color: #fde68a; border-color: #6b4d15; }
html[data-theme="dark"] .success-notice { background: #0d3025; color: #a7f3d0; border-color: #166b4d; }
html[data-theme="dark"] .error-card { background: #351617; color: #fecaca; }
html[data-theme="dark"] .error-card h2 { color: #fca5a5; }
html[data-theme="dark"] code { color: #bfdbfe; }

html[data-density="compact"] { --topbar-height: 62px; }
html[data-density="compact"] .app-sidebar { padding-top: .75rem; }
html[data-density="compact"] .primary-navigation a { padding: .53rem .68rem; }
html[data-density="compact"] .app-workspace > .content { padding: 1rem; }
html[data-density="compact"] .card, html[data-density="compact"] .kpi-card { padding: .78rem; margin-bottom: .72rem; }
html[data-density="compact"] th, html[data-density="compact"] td { padding: .48rem .55rem; }
html[data-density="compact"] .settings-card { min-height: 90px; padding: .7rem; }

@media (max-width: 1050px) {
    .app-shell { grid-template-columns: 220px minmax(0,1fr); }
    .profile-name { display: none; }
    .settings-form-layout, .about-grid { grid-template-columns: 1fr; }
    .preference-choice-grid { grid-template-columns: repeat(3, minmax(150px,1fr)); overflow-x: auto; }
    .licence-details { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 760px) {
    .app-shell { display: block; }
    .app-sidebar { position: static; width: auto; height: auto; padding: .7rem; }
    .sidebar-brand { padding-bottom: .65rem; }
    .primary-navigation { display: flex; overflow-x: auto; padding-bottom: .3rem; }
    .nav-section-label, .sidebar-footer { display: none; }
    .primary-navigation a { flex: 0 0 auto; padding: .58rem .68rem; white-space: nowrap; }
    .nav-icon { display: none; }
    .app-topbar { padding: 0 .75rem; }
    .workspace-eyebrow, .profile-chip { display: none; }
    .settings-trigger span:last-child { display: none; }
    .settings-trigger { width: 42px; justify-content: center; padding: .55rem; }
    .app-workspace > .content { padding: .85rem; }
    .settings-page-heading { display: block; }
    .settings-profile-shortcut { display: inline-block; margin-top: .75rem; }
    .settings-card-grid, .backup-status-grid { grid-template-columns: 1fr; }
    .preference-choice-grid { grid-template-columns: 1fr; overflow: visible; }
    .settings-sticky-actions { bottom: .5rem; }
    .licence-details { grid-template-columns: 1fr; }
    .settings-inline-actions { align-items: flex-start; flex-direction: column; }
}

/* Chargeable-service and rental-charge maintenance */
.service-catalog-form { align-content: start; }
.service-catalog-actions { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; justify-content: flex-end; }
.service-catalog-item.inactive { opacity: .62; border-style: dashed; }
.service-catalog-item.inactive strong::after { content: " · Inactive"; font-size: .72rem; font-weight: 600; color: var(--text-muted); }
.nested-form-card { margin-top: 1rem; }
@media (max-width: 760px) {
  .service-catalog-actions { justify-content: flex-start; }
}

/* Finance and accounting dashboard */
.finance-eyebrow { display: block; margin-bottom: .25rem; color: var(--accent); font-size: .76rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.finance-kpi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.finance-primary { background: linear-gradient(135deg, #10253f, #2459a6); color: #fff; }
.finance-primary span, .finance-primary small { color: #dbeafe; }
.finance-total { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent); }
.finance-alert { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; margin-bottom: 1rem; border: 1px solid #f6c453; border-left: 5px solid #d97706; border-radius: .85rem; background: #fff8df; color: #754307; }
.finance-alert strong, .finance-alert span { display: block; }.finance-alert span { margin-top: .15rem; font-size: .84rem; }
.finance-alert-counts { display: flex; gap: .65rem; }.finance-alert-counts span { min-width: 86px; padding: .45rem .6rem; border-radius: .6rem; background: rgba(255,255,255,.7); text-align: center; }
.finance-alert-counts b { display: block; font-size: 1.15rem; }
.progress-fill.finance-ageing { background: linear-gradient(90deg, #2563eb, #7c3aed); }
.finance-account-list { display: grid; gap: .55rem; }
.finance-account-row { display: grid; grid-template-columns: 2.4rem minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .7rem; border: 1px solid var(--border); border-radius: .72rem; background: var(--surface-soft); }
.finance-account-icon { width: 2.35rem; height: 2.35rem; display: grid; place-items: center; border-radius: .65rem; background: var(--accent-soft); color: var(--accent-text); font-weight: 900; }
.finance-account-row strong, .finance-account-row small { display: block; }.finance-account-row small { margin-top: .18rem; color: var(--text-soft); }.finance-account-row > b { text-align: right; }
.finance-performance-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
.finance-performance-grid div { padding: .8rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--surface-soft); }
.finance-performance-grid span, .finance-performance-grid strong { display: block; }.finance-performance-grid span { color: var(--text-soft); font-size: .78rem; }.finance-performance-grid strong { margin-top: .3rem; font-size: 1.12rem; }
.finance-performance-grid .finance-net { background: var(--accent-soft); border-color: color-mix(in srgb, var(--accent) 35%, var(--border)); }
.finance-actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1rem; }
html[data-theme="dark"] .finance-alert { background: #33280e; color: #fde68a; border-color: #70530e; }
@media (max-width: 1100px) { .finance-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 650px) { .finance-kpi-grid { grid-template-columns: 1fr; } .finance-alert { align-items: flex-start; flex-direction: column; } .finance-alert-counts { width: 100%; } .finance-alert-counts span { flex: 1; } .finance-performance-grid { grid-template-columns: 1fr; } .finance-account-row { grid-template-columns: 2.4rem minmax(0,1fr); }.finance-account-row > b { grid-column: 2; text-align: left; } }

/* Accounting setup workspace */
.accounting-summary-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .75rem; margin-bottom: 1rem; }
.accounting-summary-grid > div { padding: .85rem; border: 1px solid var(--border); border-radius: .8rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.accounting-summary-grid span, .accounting-summary-grid strong, .accounting-summary-grid small { display: block; }.accounting-summary-grid span { color: var(--text-soft); font-size: .75rem; }.accounting-summary-grid strong { margin: .2rem 0; font-size: 1.4rem; }.accounting-summary-grid small { color: var(--text-soft); }
.accounting-tabs { display: flex; gap: .35rem; overflow-x: auto; margin-bottom: 1rem; padding: .35rem; border: 1px solid var(--border); border-radius: .8rem; background: var(--surface); }
.accounting-tabs button { flex: 0 0 auto; border: 0; border-radius: .6rem; padding: .65rem .85rem; background: transparent; color: var(--text-soft); font-weight: 800; cursor: pointer; }.accounting-tabs button.active { background: var(--accent-soft); color: var(--accent-text); }
.accounting-workspace-grid { display: grid; grid-template-columns: minmax(330px,.72fr) minmax(520px,1.28fr); gap: 1rem; align-items: start; }.accounting-workspace-grid.balanced { grid-template-columns: repeat(2,minmax(0,1fr)); }
.accounting-editor-card { position: sticky; top: calc(var(--topbar-height) + 1rem); border-top: 4px solid var(--accent); }.accounting-table-card { min-width: 0; }
.accounting-filter { grid-template-columns: minmax(220px,2fr) minmax(170px,1fr); }.accounting-divider { margin: 1.4rem 0; border: 0; border-top: 1px solid var(--border); }.accounting-subheading { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.supplier-editor { position: static; }
.status.open { background:#dcfce7;color:#166534; }.status.closed { background:#e2e8f0;color:#334155; }.status.locked { background:#fee2e2;color:#991b1b; }
@media (max-width: 1200px) { .accounting-summary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.accounting-workspace-grid,.accounting-workspace-grid.balanced { grid-template-columns: 1fr; }.accounting-editor-card { position: static; } }
@media (max-width: 700px) { .accounting-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.accounting-filter { grid-template-columns: 1fr; } }
.finance-nav-label { margin-top: .8rem; color: #bfdbfe; }


/* Release 3.4: refined Chart of Accounts tree */
.coa-tree-view { margin: 1rem 0 1.25rem; border: 1px solid var(--border); border-radius: 1rem; overflow: hidden; background: var(--surface-soft); }
.coa-tree-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--border); background: var(--surface); }
.coa-tree-header h3, .coa-tree-header p { margin: 0; }.coa-tree-header p { margin-top: .25rem; color: var(--text-soft); font-size: .82rem; }
.coa-tree-actions { display: flex; gap: .4rem; flex-wrap: wrap; }
.coa-tree-section { background: var(--surface); border-bottom: 1px solid var(--border); }.coa-tree-section:last-child { border-bottom: 0; }
.coa-tree-section-heading { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; background: color-mix(in srgb, var(--accent-soft) 48%, var(--surface)); border-bottom: 1px solid var(--border); }
.coa-tree-section-heading strong, .coa-tree-section-heading small { display: block; }.coa-tree-section-heading small { margin-top: .15rem; color: var(--text-soft); }
.coa-type-icon { width: 2.1rem; height: 2.1rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .62rem; background: var(--accent); color: #fff; font-weight: 900; }
.coa-tree-branches { padding: .45rem .6rem .65rem; }
.coa-tree-row { --tree-level: 0; position: relative; display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: stretch; margin-left: calc(var(--tree-level) * 1.45rem); border-radius: .7rem; }
.coa-tree-row::before { content: ""; position: absolute; left: -.75rem; top: 0; bottom: 50%; width: .75rem; border-left: 1px solid color-mix(in srgb, var(--border) 75%, var(--text-soft)); border-bottom: 1px solid color-mix(in srgb, var(--border) 75%, var(--text-soft)); pointer-events: none; }
.coa-tree-row.root-account::before { display: none; }.coa-tree-row:hover { background: var(--accent-soft); }
.coa-tree-toggle { width: 2rem; border: 0; background: transparent; color: var(--text-soft); font-size: 1rem; cursor: pointer; }.coa-tree-toggle:disabled { cursor: default; opacity: .55; }
.coa-tree-account { min-width: 0; display: grid; grid-template-columns: 5.2rem minmax(160px,1fr) auto; align-items: center; gap: .65rem; padding: .62rem .7rem; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.coa-tree-code { display: inline-flex; justify-content: center; padding: .27rem .45rem; border: 1px solid var(--border); border-radius: .45rem; background: var(--surface); color: var(--accent-text); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; font-weight: 800; }
.coa-tree-name strong, .coa-tree-name small { display: block; }.coa-tree-name small { margin-top: .12rem; color: var(--text-soft); font-size: .74rem; }
.coa-tree-badges { display: flex; justify-content: flex-end; gap: .35rem; flex-wrap: wrap; }
.coa-badge { padding: .22rem .42rem; border-radius: 999px; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; }
.coa-badge.control { background: #fee2e2; color: #991b1b; }.coa-badge.posting { background: #dcfce7; color: #166534; }.coa-badge.group { background: #e2e8f0; color: #475569; }.coa-badge.currency { background: #dbeafe; color: #1d4ed8; }
.coa-tree-row.inactive-account { opacity: .55; }
html[data-theme="dark"] .coa-badge.control { background: #4c1d1d; color: #fecaca; } html[data-theme="dark"] .coa-badge.posting { background: #143d27; color: #bbf7d0; } html[data-theme="dark"] .coa-badge.group { background: #334155; color: #e2e8f0; } html[data-theme="dark"] .coa-badge.currency { background: #172554; color: #bfdbfe; }
@media (max-width: 760px) { .coa-tree-header { align-items: flex-start; flex-direction: column; }.coa-tree-account { grid-template-columns: 4.4rem minmax(120px,1fr); }.coa-tree-badges { grid-column: 2; justify-content: flex-start; }.coa-tree-row { margin-left: calc(var(--tree-level) * .8rem); } }

/* Release 3.4: spacious manual journal entry */
.journal-entry-card { margin-bottom: 1rem; border-top: 4px solid var(--accent); }
.journal-section-heading > div span { color: var(--text-soft); font-size: .82rem; }
.journal-header-grid { grid-template-columns: minmax(190px,.55fr) minmax(280px,1fr) minmax(360px,1.45fr); align-items: start; }
.journal-header-grid input, .journal-header-grid textarea { min-height: 46px; }.journal-header-grid label small { color: var(--text-soft); font-size: .72rem; }
.journal-narration-field textarea { resize: vertical; min-height: 90px; }
.journal-lines-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: 1.35rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.journal-lines-heading h3, .journal-lines-heading p { margin: 0; }.journal-lines-heading p { margin-top: .25rem; color: var(--text-soft); font-size: .82rem; }
.journal-lines-table { margin-top: .75rem; border: 1px solid var(--border); border-radius: .8rem; }
.journal-lines-table table { min-width: 1020px; margin: 0; }.journal-lines-table th { background: var(--surface-soft); }.journal-lines-table td { padding: .62rem; vertical-align: middle; }
.journal-lines-table select, .journal-lines-table input { width: 100%; min-height: 44px; border: 1px solid var(--border); border-radius: .55rem; padding: .62rem .7rem; background: var(--surface); color: inherit; font: inherit; }
.journal-account-column { min-width: 320px; width: 34%; }.journal-description-column { min-width: 280px; width: 30%; }.journal-amount-column { min-width: 150px; width: 15%; }.journal-action-column { width: 56px; }
.journal-money-input { text-align: right; font-variant-numeric: tabular-nums; }
.journal-remove-button { width: 2.1rem; height: 2.1rem; border: 1px solid #fecaca; border-radius: .55rem; background: #fff1f2; color: #be123c; font-size: 1.25rem; cursor: pointer; }
.journal-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.journal-balance-summary { min-width: 520px; display: grid; grid-template-columns: repeat(3,minmax(120px,1fr)); gap: .65rem; padding: .8rem; border: 1px solid var(--border); border-radius: .8rem; background: var(--surface-soft); }
.journal-balance-summary div { padding: .5rem .65rem; border-radius: .55rem; background: var(--surface); }.journal-balance-summary span, .journal-balance-summary strong { display: block; }.journal-balance-summary span { color: var(--text-soft); font-size: .72rem; }.journal-balance-summary strong { margin-top: .15rem; font-size: 1.08rem; font-variant-numeric: tabular-nums; text-align: right; }
.journal-balance-summary small { grid-column: 1 / -1; }.journal-balance-summary.balanced { border-color: #86efac; }.journal-balance-summary.balanced small { color: #166534; }.journal-balance-summary.unbalanced { border-color: #fcd34d; }.journal-balance-summary.unbalanced small { color: #92400e; }
.journal-post-button { min-width: 210px; min-height: 46px; }.journal-register-card { margin-top: 1rem; }
@media (max-width: 1100px) { .journal-header-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.journal-narration-field { grid-column: 1 / -1; } }
@media (max-width: 760px) { .journal-header-grid { grid-template-columns: 1fr; }.journal-narration-field { grid-column: auto; }.journal-lines-heading, .journal-footer { align-items: stretch; flex-direction: column; }.journal-balance-summary { min-width: 0; width: 100%; grid-template-columns: 1fr; }.journal-balance-summary small { grid-column: auto; }.journal-post-button { width: 100%; } }

/* Release 3.4: operational and finance report catalogues */
.dashboard-report-hub { margin-top: 1rem; }.dashboard-report-grid, .operational-report-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.dashboard-report-card, .report-catalog-card { display: flex; align-items: flex-start; gap: .8rem; padding: .9rem; border: 1px solid var(--border); border-radius: .8rem; background: var(--surface-soft); color: inherit; text-decoration: none; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.dashboard-report-card:hover, .report-catalog-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); box-shadow: var(--shadow-sm); }
.dashboard-report-card strong, .dashboard-report-card small { display: block; }.dashboard-report-card small { margin-top: .2rem; color: var(--text-soft); }
.dashboard-report-icon, .report-card-icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .7rem; background: var(--accent-soft); color: var(--accent-text); font-size: 1.15rem; font-weight: 900; }
.operations-report-hero { margin-bottom: 1rem; }.operational-report-grid { margin-bottom: 1rem; }.report-catalog-card { padding: 1rem; background: var(--surface); }.report-catalog-card h2, .report-catalog-card p { margin: 0; }.report-catalog-card h2 { font-size: 1rem; }.report-catalog-card p { margin-top: .3rem; color: var(--text-soft); font-size: .82rem; line-height: 1.45; }.report-link { display: block; margin-top: .75rem; color: var(--accent-text); font-weight: 800; font-size: .78rem; }
.operational-report-note { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.operational-report-note h2, .operational-report-note p { margin: 0; }.operational-report-note p { margin-top: .3rem; color: var(--text-soft); }
.finance-report-shortcuts { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; }.finance-report-sections { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }.finance-report-section { padding: 0; overflow: hidden; }
.finance-report-section-heading { display: flex; align-items: center; gap: .75rem; padding: 1rem; border-bottom: 1px solid var(--border); background: var(--surface-soft); }.finance-report-section-heading h2, .finance-report-section-heading p { margin: 0; }.finance-report-section-heading h2 { font-size: 1rem; }.finance-report-section-heading p { margin-top: .2rem; color: var(--text-soft); font-size: .8rem; }
.finance-report-icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .7rem; background: var(--accent); color: #fff; font-size: .78rem; font-weight: 900; }
.finance-report-list { display: grid; }.finance-report-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--border); color: inherit; text-decoration: none; }.finance-report-row:last-child { border-bottom: 0; }.finance-report-row.linked:hover { background: var(--accent-soft); }.finance-report-row strong, .finance-report-row small { display: block; }.finance-report-row small { margin-top: .18rem; color: var(--text-soft); font-size: .75rem; }
.report-status { flex: 0 0 auto; padding: .25rem .48rem; border-radius: 999px; font-size: .67rem; font-weight: 900; text-transform: uppercase; letter-spacing: .025em; }.report-status.available { background: #dcfce7; color: #166534; }.report-status.preparing { background: #fef3c7; color: #92400e; }
@media (max-width: 1050px) { .dashboard-report-grid, .operational-report-grid, .finance-report-sections { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 680px) { .dashboard-report-grid, .operational-report-grid, .finance-report-sections { grid-template-columns: 1fr; }.operational-report-note { align-items: flex-start; flex-direction: column; }.finance-report-row { align-items: flex-start; } }

/* Release 3.5.2 - Billing and payables workspace refinement */
.page-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1.15rem;
}
.page-heading h1 {
  margin: .2rem 0 .45rem;
  font-size: clamp(1.8rem, 2.4vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.page-heading p { margin: 0; color: #64748b; line-height: 1.55; }
.eyebrow {
  display: inline-block;
  color: #2563eb;
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.workspace-hero {
  position: relative;
  overflow: hidden;
  padding: 1.3rem 1.4rem;
  border: 1px solid #dbe5f0;
  border-radius: 1rem;
  background: linear-gradient(135deg, #ffffff 0%, #f4f8ff 68%, #eaf2ff 100%);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}
.workspace-hero::after {
  content: "";
  position: absolute;
  right: -55px;
  top: -85px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: rgba(37, 99, 235, .07);
  pointer-events: none;
}
.workspace-hero > * { position: relative; z-index: 1; }

.button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border: 1px solid transparent;
  border-radius: .7rem;
  padding: .7rem 1.05rem;
  font: inherit;
  font-size: .9rem;
  font-weight: 750;
  line-height: 1;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button:focus-visible { outline: 3px solid rgba(37, 99, 235, .22); outline-offset: 2px; }
.button:disabled { opacity: .58; cursor: not-allowed; }
.button.primary {
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  border-color: #1d4ed8;
  box-shadow: 0 7px 18px rgba(37, 99, 235, .22);
}
.button.primary:hover:not(:disabled) { box-shadow: 0 10px 23px rgba(37, 99, 235, .3); }
.button.secondary {
  color: #1e3a5f;
  background: #fff;
  border-color: #cbd8e7;
  box-shadow: 0 2px 6px rgba(15, 23, 42, .05);
}
.button.secondary:hover:not(:disabled) { background: #f8fbff; border-color: #93b4dc; }
.button.small { min-height: 36px; padding: .55rem .8rem; font-size: .82rem; }

.field {
  display: flex;
  flex-direction: column;
  gap: .42rem;
  min-width: 0;
  color: #334155;
  font-size: .86rem;
  font-weight: 700;
}
.field input:not([type="checkbox"]),
.field select,
.field textarea {
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  border: 1px solid #cbd8e7;
  border-radius: .7rem;
  background: #fff;
  color: #0f172a;
  padding: .68rem .8rem;
  font: inherit;
  font-weight: 500;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.field input:not([type="checkbox"]):focus,
.field select:focus,
.field textarea:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .13);
}
.field input:disabled { background: #f1f5f9; color: #64748b; }
.form-actions { display: flex; justify-content: flex-end; align-items: center; gap: .65rem; margin-top: 1.25rem; }
.table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: .8rem; }
.table-wrap table { margin: 0; }
.table-wrap thead th { background: #f8fafc; color: #475569; font-size: .76rem; letter-spacing: .035em; text-transform: uppercase; }

/* Billing action launcher */
.billing-heading { margin-bottom: 1rem; }
.billing-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
  margin: 0 0 1.15rem;
}
.billing-action {
  position: relative;
  min-width: 0;
  min-height: 108px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  border: 1px solid #dbe4ef;
  border-radius: .95rem;
  padding: .95rem;
  background: #fff;
  color: #0f172a;
  text-align: left;
  font: inherit;
  cursor: pointer;
  box-shadow: 0 5px 16px rgba(15, 23, 42, .045);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.billing-action:hover {
  transform: translateY(-2px);
  border-color: #93b9ef;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .09);
}
.billing-action.selected {
  border-color: #2563eb;
  background: linear-gradient(145deg, #f7faff, #edf4ff);
  box-shadow: 0 10px 25px rgba(37, 99, 235, .14), inset 0 -3px 0 #2563eb;
}
.billing-action:focus-visible { outline: 3px solid rgba(37, 99, 235, .2); outline-offset: 2px; }
.billing-action-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: .8rem;
  background: #eaf2ff;
  color: #1d4ed8;
  font-size: 1.25rem;
  font-weight: 900;
}
.billing-action.selected .billing-action-icon { color: #fff; background: linear-gradient(135deg, #3b82f6, #1d4ed8); }
.billing-action-copy { min-width: 0; display: block; }
.billing-action-copy strong { display: block; margin-bottom: .28rem; font-size: .94rem; line-height: 1.25; }
.billing-action-copy small { display: block; color: #64748b; font-size: .77rem; line-height: 1.35; }
.billing-action-arrow { color: #94a3b8; font-size: 1.55rem; line-height: 1; }
.billing-action.selected .billing-action-arrow { color: #2563eb; }
.transaction-card {
  padding: 1.35rem;
  border-top: 4px solid #2563eb;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.transaction-card .section-heading { padding-bottom: .9rem; border-bottom: 1px solid #edf2f7; }
.transaction-card .section-heading h2 { font-size: 1.2rem; }
.billing-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.billing-form-grid .span-2 { grid-column: span 2; }
.selection-summary {
  display: flex;
  gap: .75rem 1.4rem;
  flex-wrap: wrap;
  margin-top: 1rem;
  padding: .85rem 1rem;
  border: 1px solid #bfdbfe;
  border-radius: .8rem;
  background: #eff6ff;
  color: #1e3a5f;
}
.checkbox-field {
  min-height: 44px;
  flex-direction: row !important;
  align-items: center;
  align-self: end;
  padding: .72rem .8rem;
  border: 1px solid #dbe4ef;
  border-radius: .7rem;
  background: #f8fafc;
}
.checkbox-field input { width: 1rem; height: 1rem; margin: 0; }
.allocation-input { min-width: 120px; text-align: right; }
.receipt-totals, .document-totals {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.receipt-totals span, .document-totals span {
  min-width: 150px;
  padding: .7rem .85rem;
  border: 1px solid #e2e8f0;
  border-radius: .7rem;
  background: #f8fafc;
  color: #64748b;
  font-size: .8rem;
}
.receipt-totals strong, .document-totals strong { display: block; margin-top: .2rem; color: #0f172a; font-size: 1rem; }
.summary-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.summary-strip > div { border: 1px solid #dbe4ef; border-radius: .85rem; padding: 1rem; background: #f8fbff; }

/* Bills and suppliers section switcher */
.payables-heading { margin-bottom: 1rem; }
.workspace-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin: 0 0 1.15rem;
  padding: .55rem;
  border: 1px solid #dbe4ef;
  border-radius: 1rem;
  background: #f4f7fb;
}
.workspace-tab {
  min-width: 0;
  min-height: 74px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
  border: 1px solid transparent;
  border-radius: .75rem;
  padding: .75rem;
  background: transparent;
  color: #334155;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.workspace-tab:hover { background: #fff; transform: translateY(-1px); }
.workspace-tab.active {
  color: #0f3d75;
  background: #fff;
  border-color: #bfdbfe;
  box-shadow: 0 6px 16px rgba(30, 64, 175, .1);
}
.workspace-tab-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: .65rem;
  background: #e2e8f0;
  color: #475569;
  font-weight: 900;
  font-size: 1.05rem;
}
.workspace-tab.active .workspace-tab-icon { background: #dbeafe; color: #1d4ed8; }
.workspace-tab strong, .workspace-tab small { display: block; }
.workspace-tab strong { font-size: .87rem; line-height: 1.25; }
.workspace-tab small { margin-top: .18rem; color: #64748b; font-size: .72rem; line-height: 1.25; }
.payables-layout { display: grid; gap: 1.2rem; }
.payables-form-card {
  padding: 1.35rem;
  border-top: 4px solid #0f766e;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.register-card { padding: 1.25rem; }
.bill-header-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.span-2 { grid-column: span 2; }
.span-3 { grid-column: span 3; }
.line-editor-heading, .allocation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1.3rem 0 .8rem;
  padding-top: 1rem;
  border-top: 1px solid #edf2f7;
}
.line-editor-heading h3, .allocation-heading h3 { margin: 0; }
.line-editor-heading p { margin: .25rem 0 0; color: #64748b; }
.bill-lines { display: grid; gap: .8rem; }
.bill-line-card {
  display: grid;
  grid-template-columns: minmax(190px, 1.3fr) minmax(180px, 1.4fr) 85px 115px 135px 150px 38px;
  gap: .65rem;
  align-items: end;
  padding: .9rem;
  border: 1px solid #dbe4ef;
  border-radius: .85rem;
  background: #fbfdff;
}
.line-total { display: flex; flex-direction: column; justify-content: center; min-height: 44px; padding: .25rem .2rem; }
.line-total span, .line-total small { color: #64748b; font-size: .72rem; }
.line-total strong { margin: .1rem 0; font-size: .9rem; }
.icon-button {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: .65rem;
  font-size: 1.2rem;
  cursor: pointer;
}
.icon-button.danger { background: #fee2e2; color: #b91c1c; }
.icon-button.danger:hover { background: #fecaca; }
.expense-item-grid { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 1rem; }
.status-pill { display: inline-block !important; padding: .25rem .55rem; border-radius: 999px; background: #eef2ff; color: #3730a3 !important; font-size: .75rem; font-weight: 700; }
.number { text-align: right; }
.empty-cell { padding: 2rem !important; color: #64748b; text-align: center; }

@media (max-width: 1180px) {
  .billing-action-grid, .workspace-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bill-line-card { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .bill-header-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .page-heading, .workspace-hero { display: block; }
  .workspace-hero .button { margin-top: 1rem; }
  .billing-form-grid, .expense-item-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .billing-action-grid, .workspace-tabs, .billing-form-grid, .bill-header-grid, .expense-item-grid, .bill-line-card { grid-template-columns: 1fr; }
  .billing-form-grid .span-2, .span-2, .span-3 { grid-column: auto; }
  .billing-action { min-height: 92px; }
  .workspace-tab { min-height: 66px; }
  .form-actions { justify-content: stretch; }
  .form-actions .button { width: 100%; }
  .receipt-totals span, .document-totals span { min-width: calc(50% - .5rem); flex: 1; }
}

/* Supplier profile and transaction ledger */
.supplier-link { color: var(--accent-text); font-weight: 700; text-decoration: none; }
.supplier-link:hover { text-decoration: underline; }
.supplier-name-link { display: block; margin-top: .16rem; }
.supplier-profile-hero { margin-bottom: 1rem; }
.supplier-profile-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; flex-wrap: wrap; }
.supplier-account-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.supplier-currency-card { overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.supplier-currency-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.supplier-currency-heading span { font-weight: 800; color: var(--text); }
.supplier-currency-heading small { padding: .2rem .48rem; border-radius: 999px; background: var(--accent-soft); color: var(--accent-text); font-weight: 700; }
.supplier-currency-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; padding: 1rem; }
.supplier-currency-metrics div { min-width: 0; padding: .7rem; border-radius: .72rem; background: var(--surface-soft); }
.supplier-currency-metrics span, .supplier-currency-metrics strong { display: block; }
.supplier-currency-metrics span { color: var(--text-soft); font-size: .72rem; }
.supplier-currency-metrics strong { margin-top: .22rem; font-size: .98rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.supplier-currency-card footer { display: flex; justify-content: space-between; gap: .75rem; padding: .72rem 1rem; border-top: 1px solid var(--border); color: var(--text-soft); font-size: .76rem; }
.overdue-text { color: #b91c1c; font-weight: 800; }
.supplier-profile-tabs { display: flex; gap: .55rem; margin-bottom: 1rem; padding: .42rem; border: 1px solid var(--border); border-radius: .9rem; background: var(--surface-soft); }
.supplier-profile-tab { flex: 1; min-height: 64px; padding: .72rem 1rem; border: 1px solid transparent; border-radius: .68rem; background: transparent; color: var(--text-soft); text-align: left; font: inherit; cursor: pointer; }
.supplier-profile-tab span, .supplier-profile-tab small { display: block; }
.supplier-profile-tab span { color: var(--text); font-weight: 800; }
.supplier-profile-tab small { margin-top: .18rem; color: var(--text-soft); }
.supplier-profile-tab:hover { background: var(--surface); }
.supplier-profile-tab.active { border-color: #bfdbfe; background: var(--surface); box-shadow: var(--shadow-sm); }
.supplier-profile-tab.active span { color: var(--accent-text); }
.supplier-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.supplier-detail-card { padding: 1.2rem; }
.supplier-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0; }
.supplier-detail-list > div { padding: .72rem .8rem; border: 1px solid var(--border); border-radius: .72rem; background: var(--surface-soft); }
.supplier-detail-list > div.wide { grid-column: 1 / -1; }
.supplier-detail-list dt { color: var(--text-soft); font-size: .72rem; }
.supplier-detail-list dd { margin: .25rem 0 0; color: var(--text); font-weight: 700; overflow-wrap: anywhere; }
.supplier-payment-card, .supplier-activity-card { align-self: stretch; }
.supplier-payment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.supplier-payment-method { display: flex; align-items: flex-start; gap: .75rem; padding: .9rem; border: 1px solid var(--border); border-radius: .78rem; background: var(--surface-soft); }
.supplier-payment-icon { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: .66rem; background: var(--accent-soft); color: var(--accent-text); font-weight: 900; }
.supplier-payment-method strong, .supplier-payment-method span, .supplier-payment-method small { display: block; }
.supplier-payment-method span, .supplier-payment-method small { margin-top: .16rem; color: var(--text-soft); }
.supplier-activity-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.supplier-activity-grid div { padding: .9rem; border: 1px solid var(--border); border-radius: .76rem; background: var(--surface-soft); }
.supplier-activity-grid span, .supplier-activity-grid strong { display: block; }
.supplier-activity-grid span { color: var(--text-soft); font-size: .72rem; }
.supplier-activity-grid strong { margin-top: .22rem; font-size: 1.3rem; }
.supplier-transaction-card { padding: 1.2rem; margin-bottom: 1rem; }
.supplier-transaction-heading { align-items: end; }
.supplier-currency-filter { min-width: 190px; margin: 0; }
.supplier-transaction-table { min-width: 1120px; }
.transaction-type { display: inline-flex; align-items: center; padding: .25rem .52rem; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.transaction-type.bill { background: #fef3c7; color: #92400e; }
.transaction-type.payment { background: #dcfce7; color: #166534; }
.supplier-transaction-sections { display: grid; gap: 1rem; }

@media (max-width: 1180px) {
  .supplier-account-summary, .supplier-profile-grid { grid-template-columns: 1fr; }
  .supplier-currency-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .supplier-profile-actions, .supplier-profile-tabs { align-items: stretch; flex-direction: column; }
  .supplier-profile-actions .button { width: 100%; }
  .supplier-detail-list, .supplier-payment-grid, .supplier-activity-grid { grid-template-columns: 1fr; }
  .supplier-detail-list > div.wide { grid-column: auto; }
  .supplier-transaction-heading { align-items: stretch; flex-direction: column; }
  .supplier-currency-filter { width: 100%; }
}
@media (max-width: 520px) {
  .supplier-currency-metrics { grid-template-columns: 1fr; }
}
.table-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; }

/* Finance data import center */
.finance-import-title {
    align-items: flex-end;
}

.import-safety-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
    padding: 20px 24px;
    border-color: #bfdbfe;
    background: linear-gradient(135deg, #eff6ff 0%, #ffffff 70%);
}

.import-safety-panel p,
.import-progress-card p {
    margin: 5px 0 0;
    color: var(--muted-text, #64748b);
}

.import-mode-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 190px;
    padding: 10px 14px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #ffffff;
    color: #1e3a8a;
    font-weight: 700;
    cursor: pointer;
}

.import-mode-toggle input {
    width: 18px;
    height: 18px;
    accent-color: #2563eb;
}

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

.finance-import-card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: 310px;
    padding: 24px;
}

.finance-import-card-wide {
    grid-column: 1 / -1;
    min-height: auto;
}

.finance-import-card-heading {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.finance-import-card-heading h2,
.finance-import-subsection h3 {
    margin: 0;
    color: #0f172a;
}

.finance-import-card-heading p {
    margin: 7px 0 0;
    color: #64748b;
    line-height: 1.55;
}

.finance-import-icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 52px;
    height: 52px;
    border-radius: 15px;
    background: linear-gradient(145deg, #1d4ed8, #2563eb);
    color: #ffffff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    box-shadow: 0 10px 24px rgba(37, 99, 235, .22);
}

.import-template-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.import-template-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #ffffff;
    color: #1d4ed8;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.import-template-links a:hover {
    border-color: #60a5fa;
    background: #eff6ff;
    transform: translateY(-1px);
}

.finance-file-picker {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin-top: auto;
    padding: 18px;
    border: 1.5px dashed #94a3b8;
    border-radius: 14px;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 700;
}

.finance-file-picker:hover {
    border-color: #3b82f6;
    background: #eff6ff;
}

.finance-file-picker input[type="file"] {
    width: 100%;
    padding: 9px;
    border: 1px solid #dbe3ee;
    border-radius: 9px;
    background: #ffffff;
    color: #334155;
    font-weight: 500;
}

.finance-file-picker small {
    color: #64748b;
    font-weight: 500;
    line-height: 1.4;
}

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

.finance-import-subsection {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fbfdff;
}

.import-progress-card {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 20px;
    padding: 20px 24px;
}

.import-spinner {
    width: 30px;
    height: 30px;
    border: 3px solid #dbeafe;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: finance-import-spin .8s linear infinite;
}

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

.finance-import-result {
    margin-top: 20px;
}

.finance-import-result .section-heading {
    align-items: center;
}

.result-status {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 999px;
    font-size: .83rem;
    font-weight: 800;
}

.result-status-success {
    background: #dcfce7;
    color: #166534;
}

.result-status-warning {
    background: #fef3c7;
    color: #92400e;
}

.finance-import-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0;
}

.finance-import-summary > div {
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.finance-import-summary span {
    display: block;
    color: #64748b;
    font-size: .82rem;
    font-weight: 700;
}

.finance-import-summary strong {
    display: block;
    margin-top: 6px;
    color: #0f172a;
    font-size: 1.45rem;
}

.finance-import-errors td:first-child,
.finance-import-errors td:nth-child(2) {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .finance-import-grid,
    .finance-import-pair {
        grid-template-columns: 1fr;
    }

    .finance-import-card-wide {
        grid-column: auto;
    }

    .finance-import-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .import-safety-panel,
    .finance-import-card-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .import-mode-toggle {
        min-width: 0;
        width: 100%;
    }

    .finance-import-summary {
        grid-template-columns: 1fr;
    }

    .finance-import-card,
    .finance-import-subsection {
        padding: 17px;
    }
}

/* Release 3.8: rental-unit bookings, reservations and dashboards */
:root {
    --availability-occupied: #f59e0b;
    --availability-available: #2563eb;
    --availability-booked: #7c3aed;
    --availability-reserved: #16a34a;
    --availability-out: #dc2626;
}

.reservation-alert-chip {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 8px 12px;
    border: 1px solid #fdba74;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    text-decoration: none;
    font-size: .82rem;
}

.reservation-alert-icon {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ea580c;
    color: white;
    font-weight: 800;
}

.unit-booking-settings {
    margin: 20px 0;
    padding: 20px;
    border: 1px solid #dbeafe;
    border-radius: 16px;
    background: linear-gradient(135deg, #f8fbff, #eff6ff);
}

.compact-heading { margin-bottom: 14px; }

.booking-page-title,
.availability-title-row,
.rental-stat-title { align-items: flex-start; }

.page-eyebrow {
    display: inline-block;
    margin-bottom: 5px;
    color: #64748b;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.alert-eyebrow { color: #c2410c; }

.booking-kpis,
.inventory-total-kpis {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.danger-kpi {
    border-color: #fecaca;
    background: linear-gradient(180deg, #fff, #fef2f2);
}

.confirmation-queue-card {
    margin-top: 18px;
    border-color: #fdba74;
    background: linear-gradient(180deg, #fffaf5, #fff7ed);
}

.notification-count {
    display: grid;
    place-items: center;
    min-width: 46px;
    height: 46px;
    padding: 0 12px;
    border-radius: 15px;
    background: #ea580c;
    color: white;
    font-size: 1.25rem;
    font-weight: 800;
}

.confirmation-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.confirmation-card {
    padding: 18px;
    border: 1px solid #fed7aa;
    border-radius: 15px;
    background: white;
    box-shadow: 0 8px 24px rgba(154, 52, 18, .06);
}

.confirmation-card h3 { margin: 14px 0 4px; }
.confirmation-card p { margin: 0; color: #64748b; }

.confirmation-card-top,
.confirmation-money,
.editor-footer,
.inventory-card-header,
.availability-board-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.confirmation-card-top small,
.booking-table td small,
.availability-unit-heading small,
.inventory-category-card p {
    display: block;
    color: #64748b;
    font-size: .78rem;
}

.confirmation-money {
    margin: 16px 0;
    padding: 11px 0;
    border-top: 1px solid #ffedd5;
    border-bottom: 1px solid #ffedd5;
    font-size: .82rem;
}

.compact-actions { gap: 8px; }
.compact-actions button { padding: 8px 11px; }
.danger-link { color: #b91c1c !important; }
.danger-button { background: #b91c1c !important; border-color: #b91c1c !important; }

.booking-switcher { margin: 20px 0; }

.booking-editor-card,
.booking-register-card { padding: 24px; }

.booking-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(270px, .7fr);
    gap: 22px;
}

.booking-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.booking-unit-summary {
    padding: 22px;
    border: 1px solid #dbeafe;
    border-radius: 16px;
    background: #f8fbff;
}

.booking-unit-summary h3 { margin: 14px 0 5px; }
.booking-unit-summary p { margin: 0 0 18px; color: #64748b; }
.booking-unit-summary dl { margin: 0; }
.booking-unit-summary dl div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid #e2e8f0;
}
.booking-unit-summary dt { color: #64748b; }
.booking-unit-summary dd { margin: 0; font-weight: 700; text-align: right; }

.editor-footer {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
}

.compact-filter-row { justify-content: flex-end; }
.compact-filter-row input { min-width: 260px; }

.booking-table td { vertical-align: top; }
.booking-table td strong { display: block; }
.table-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }

.status-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
    white-space: nowrap;
}
.status-pill.available { background: #dbeafe; color: #1d4ed8; }
.status-pill.booked { background: #ede9fe; color: #6d28d9; }
.status-pill.reserved { background: #dcfce7; color: #15803d; }
.status-pill.occupied { background: #ffedd5; color: #c2410c; }
.status-pill.out-of-service { background: #fee2e2; color: #b91c1c; }

.booking-action-dialog {
    position: fixed;
    z-index: 1002;
    top: 50%;
    left: 50%;
    width: min(650px, calc(100vw - 32px));
    transform: translate(-50%, -50%);
    padding: 24px;
    border-radius: 18px;
    background: white;
    box-shadow: 0 26px 80px rgba(15, 23, 42, .28);
}

.dialog-summary {
    margin: 14px 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f8fafc;
}

.availability-controls { margin-bottom: 18px; }
.timeline-mode-switcher {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    background: #f8fafc;
}
.timeline-mode-switcher button {
    padding: 9px 18px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #475569;
    font-weight: 750;
    cursor: pointer;
}
.timeline-mode-switcher button.active {
    background: #0f172a;
    color: white;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .18);
}

.availability-filter-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(140px, 1fr));
    margin-top: 16px;
}
.availability-filter-row label { display: grid; gap: 5px; font-size: .78rem; font-weight: 700; color: #475569; }

.availability-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 16px;
    color: #475569;
    font-size: .8rem;
    font-weight: 700;
}
.availability-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.interactive-legend { gap: 8px; align-items: center; }
.availability-legend-filter,
.availability-legend-clear {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    padding: 7px 11px;
    background: #fff;
    color: #475569;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.availability-legend-filter:hover,
.availability-legend-clear:hover { border-color: #93c5fd; background: #f8fbff; transform: translateY(-1px); }
.availability-legend-filter.active { border-color: #2563eb; background: #eff6ff; color: #1d4ed8; box-shadow: 0 0 0 3px rgba(37, 99, 235, .1); }
.availability-legend-clear { border-style: dashed; color: #1d4ed8; }
.availability-swatch,
.status-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 4px;
}
.availability-swatch.occupied,
.status-dot.occupied,
.inventory-stacked-bar .occupied { background: var(--availability-occupied); }
.availability-swatch.available,
.status-dot.available,
.inventory-stacked-bar .available { background: var(--availability-available); }
.availability-swatch.booked,
.status-dot.booked,
.inventory-stacked-bar .booked { background: var(--availability-booked); }
.availability-swatch.reserved,
.status-dot.reserved,
.inventory-stacked-bar .reserved { background: var(--availability-reserved); }
.availability-swatch.out-of-service,
.status-dot.out-of-service,
.inventory-stacked-bar .out-of-service { background: var(--availability-out); }

.availability-board-card { padding: 0; overflow: hidden; }
.availability-board-summary {
    justify-content: flex-start;
    gap: 34px;
    padding: 18px 22px;
    border-bottom: 1px solid #e2e8f0;
}
.availability-board-summary div { display: grid; }
.availability-board-summary strong { font-size: 1.05rem; }
.availability-board-summary span { color: #64748b; font-size: .72rem; }

.availability-scroll { overflow: auto; max-height: 68vh; }
.availability-grid {
    display: grid;
    min-width: max-content;
    align-items: stretch;
}
.availability-corner,
.availability-column-heading,
.availability-unit-heading,
.availability-cell {
    border-right: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
}
.availability-corner,
.availability-column-heading {
    position: sticky;
    top: 0;
    z-index: 4;
    padding: 12px;
    background: #f8fafc;
}
.availability-corner {
    left: 0;
    z-index: 6;
    font-size: .78rem;
    font-weight: 800;
    color: #334155;
}
.availability-column-heading { text-align: center; }
.availability-column-heading strong,
.availability-column-heading small { display: block; }
.availability-column-heading small { color: #64748b; font-size: .68rem; }

.availability-unit-heading {
    position: sticky;
    left: 0;
    z-index: 3;
    display: grid;
    align-content: center;
    min-height: 58px;
    padding: 8px 12px;
    background: white;
}
.availability-unit-heading span { color: #64748b; font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; }
.availability-unit-heading strong { font-size: .82rem; }

.availability-cell {
    min-height: 58px;
    padding: 4px;
    border-top: 0;
    border-left: 0;
    color: white;
    font-size: .65rem;
    font-weight: 800;
    cursor: pointer;
    opacity: .93;
    transition: transform .12s ease, opacity .12s ease;
}
.availability-cell:hover { opacity: 1; transform: scale(.98); }
.availability-cell.available { background: var(--availability-available); }
.availability-cell.booked { background: var(--availability-booked); }
.availability-cell.reserved { background: var(--availability-reserved); }
.availability-cell.occupied { background: var(--availability-occupied); color: #422006; }
.availability-cell.out-of-service { background: var(--availability-out); }

.inventory-date-control {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
}
.inventory-date-control label { display: grid; gap: 6px; font-weight: 700; color: #475569; }
.inventory-date-control .availability-legend { margin: 0; }

.inventory-category-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0;
}
.inventory-category-card { padding: 20px; }
.inventory-card-header > div { display: flex; align-items: center; gap: 12px; }
.inventory-card-header h2 { margin: 0; }
.inventory-card-header p { margin: 3px 0 0; }
.inventory-card-header > strong { font-size: 1.35rem; color: #334155; }
.category-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: #eef2ff;
    color: #4338ca;
    font-weight: 900;
}
.inventory-stacked-bar {
    display: flex;
    width: 100%;
    height: 14px;
    margin: 18px 0;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}
.inventory-stacked-bar span { min-width: 0; }
.inventory-status-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
.inventory-status-grid > div {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: 6px;
    padding: 9px;
    border-radius: 10px;
    background: #f8fafc;
}
.inventory-status-grid small { color: #64748b; font-size: .68rem; }
.inventory-status-grid strong { grid-column: 2; font-size: 1rem; }
.inventory-table-card tfoot { background: #f8fafc; }

@media (max-width: 1250px) {
    .booking-kpis,
    .inventory-total-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .confirmation-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .availability-filter-row { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
}

@media (max-width: 900px) {
    .booking-form-layout,
    .inventory-category-grid { grid-template-columns: 1fr; }
    .confirmation-card-grid { grid-template-columns: 1fr; }
    .availability-filter-row { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
    .inventory-status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .inventory-date-control { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
    .booking-kpis,
    .inventory-total-kpis,
    .booking-form-grid,
    .availability-filter-row { grid-template-columns: 1fr; }
    .confirmation-card-top,
    .confirmation-money,
    .editor-footer,
    .inventory-card-header { align-items: flex-start; flex-direction: column; }
    .compact-filter-row input { min-width: 0; width: 100%; }
    .inventory-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .availability-board-summary { flex-wrap: wrap; gap: 15px 24px; }
    .reservation-alert-chip span:last-child { display: none; }
}

/* Keep rental-unit status badges aligned with the availability dashboard legend. */
.status.available { background: #dbeafe; color: #1d4ed8; }
.status.booked { background: #ede9fe; color: #6d28d9; }
.status.reserved { background: #dcfce7; color: #15803d; }
.status.occupied { background: #ffedd5; color: #c2410c; }
.status.outofservice,
.status.undermaintenance,
.status.blocked { background: #fee2e2; color: #b91c1c; }

/* Release 3.9: maintenance job-card workspace */
.maintenance-workspace { display: grid; gap: 1.15rem; }
.maintenance-header { align-items: flex-end; }
.maintenance-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .8rem; }
.maintenance-kpis article { background: var(--surface, #fff); border: 1px solid var(--border, #dce3ea); border-radius: 16px; padding: 1rem; box-shadow: 0 8px 24px rgba(15, 23, 42, .05); }
.maintenance-kpis span, .maintenance-kpis small { display: block; color: var(--muted, #64748b); }
.maintenance-kpis strong { display: block; font-size: 1.65rem; margin: .28rem 0; color: var(--text, #0f172a); }
.maintenance-kpis .danger { border-color: #fecaca; background: #fff7f7; }
.maintenance-kpis .danger strong { color: #b91c1c; }
.maintenance-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; padding: .55rem; background: #edf2f7; border-radius: 17px; }
.maintenance-tabs button { border: 0; background: transparent; color: #475569; border-radius: 12px; padding: .9rem 1rem; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: .55rem; cursor: pointer; }
.maintenance-tabs button span { font-size: 1.1rem; }
.maintenance-tabs button b { min-width: 1.5rem; padding: .12rem .4rem; border-radius: 999px; background: #dc2626; color: white; font-size: .72rem; }
.maintenance-tabs button.active { background: #fff; color: #0f4c81; box-shadow: 0 5px 18px rgba(15, 76, 129, .12); }
.maintenance-form-card { padding: 1.3rem; }
.maintenance-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.15rem; }
.maintenance-form-grid.one-column { grid-template-columns: 1fr; }
.maintenance-form-grid label { display: grid; gap: .42rem; font-weight: 700; color: #334155; }
.maintenance-form-grid input, .maintenance-form-grid select, .maintenance-form-grid textarea,
.maintenance-completion-dialog textarea { width: 100%; min-height: 43px; border: 1px solid #cbd5e1; border-radius: 10px; padding: .68rem .75rem; background: #fff; color: #0f172a; }
.maintenance-form-grid textarea { resize: vertical; }
.maintenance-form-grid .span-two { grid-column: 1 / -1; }
.maintenance-switch { grid-column: 1 / -1; display: flex !important; align-items: flex-start; gap: .75rem !important; background: #f8fafc; border: 1px solid #dbe4ee; padding: .85rem; border-radius: 12px; }
.maintenance-switch input { width: 19px; height: 19px; min-height: 0; margin-top: .12rem; }
.maintenance-switch span { display: grid; gap: .15rem; }
.maintenance-switch small { font-weight: 400; color: #64748b; }
.maintenance-context-note { margin-top: 1rem; padding: .8rem 1rem; border-radius: 10px; background: #eff6ff; color: #1e3a8a; }
.maintenance-category-layout { display: grid; grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr); gap: 1rem; align-items: start; }
.maintenance-category-list { display: grid; gap: .55rem; }
.maintenance-category-row { width: 100%; border: 1px solid #e2e8f0; background: #fff; border-radius: 12px; padding: .8rem; display: grid; grid-template-columns: 42px 1fr auto; gap: .75rem; align-items: center; text-align: left; cursor: pointer; }
.maintenance-category-row:hover { border-color: #93c5fd; background: #f8fbff; }
.maintenance-category-row > span:nth-child(2) { display: grid; gap: .2rem; }
.maintenance-category-row small { color: #64748b; }
.category-symbol { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; font-weight: 900; }
.category-symbol.scheduled { background: #e0f2fe; color: #0369a1; }
.category-symbol.breakdown { background: #fee2e2; color: #b91c1c; }
.category-symbol.modification { background: #ede9fe; color: #6d28d9; }
.status-pill { padding: .25rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.status-pill.active { background: #dcfce7; color: #166534; }
.status-pill.inactive { background: #f1f5f9; color: #64748b; }
.maintenance-alert-list { display: grid; gap: .7rem; }
.maintenance-alert-list article { display: grid; grid-template-columns: 38px 1fr auto; gap: .8rem; align-items: center; border: 1px solid #fed7aa; background: #fffaf2; border-radius: 13px; padding: .85rem; }
.maintenance-alert-mark { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #f97316; color: #fff; font-weight: 900; }
.maintenance-alert-list p { margin: .25rem 0; color: #475569; }
.maintenance-alert-list small { color: #64748b; }
.maintenance-board { display: grid; grid-template-columns: minmax(400px, .88fr) minmax(520px, 1.12fr); gap: 1rem; align-items: start; }
.maintenance-job-register, .maintenance-job-detail { min-height: 640px; }
.maintenance-filters { display: grid; grid-template-columns: 1fr 180px; gap: .65rem; margin-bottom: .9rem; }
.maintenance-filters input, .maintenance-filters select { min-height: 42px; border: 1px solid #cbd5e1; border-radius: 10px; padding: .6rem .7rem; }
.maintenance-job-list { display: grid; gap: .5rem; max-height: 690px; overflow: auto; padding-right: .2rem; }
.maintenance-job-row { border: 1px solid #e2e8f0; background: #fff; border-radius: 12px; padding: .78rem; display: grid; grid-template-columns: 6px minmax(0, 1fr) 75px auto; gap: .7rem; align-items: center; text-align: left; cursor: pointer; }
.maintenance-job-row:hover, .maintenance-job-row.selected { border-color: #60a5fa; background: #f6faff; }
.job-priority { width: 5px; align-self: stretch; border-radius: 999px; background: #94a3b8; }
.job-priority.high { background: #f97316; }
.job-priority.emergency { background: #dc2626; }
.job-priority.low { background: #22c55e; }
.job-main { display: grid; gap: .25rem; min-width: 0; }
.job-main strong, .job-main small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.job-main small { color: #64748b; }
.job-date { display: grid; gap: .12rem; text-align: right; }
.job-date small { color: #94a3b8; font-size: .7rem; }
.maintenance-status { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; padding: .3rem .58rem; border-radius: 999px; font-size: .72rem; font-weight: 800; background: #e2e8f0; color: #475569; }
.maintenance-status.initiated, .maintenance-status.reported, .maintenance-status.assigned { background: #dbeafe; color: #1d4ed8; }
.maintenance-status.inprogress { background: #ffedd5; color: #c2410c; }
.maintenance-status.pendingreview { background: #ede9fe; color: #6d28d9; }
.maintenance-status.completed, .maintenance-status.closed { background: #dcfce7; color: #15803d; }
.maintenance-status.cancelled { background: #fee2e2; color: #b91c1c; }
.maintenance-empty-detail { min-height: 550px; display: grid; place-content: center; text-align: center; color: #64748b; }
.maintenance-empty-detail > span { font-size: 2.5rem; }
.job-detail-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; border-bottom: 1px solid #e2e8f0; padding-bottom: 1rem; }
.job-detail-heading span:first-child { color: #0f4c81; font-size: .78rem; font-weight: 800; letter-spacing: .06em; }
.job-detail-heading h2 { margin: .2rem 0; }
.job-detail-heading p { margin: 0; color: #64748b; }
.job-detail-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; padding: 1rem 0; }
.job-detail-meta div { border: 1px solid #e2e8f0; border-radius: 10px; padding: .7rem; display: grid; gap: .25rem; }
.job-detail-meta small { color: #64748b; }
.job-description { background: #f8fafc; border-left: 4px solid #60a5fa; padding: .8rem 1rem; border-radius: 8px; color: #334155; }
.job-status-actions { display: flex; gap: .6rem; flex-wrap: wrap; padding: 1rem 0; border-bottom: 1px solid #e2e8f0; }
.job-cost-section { margin-top: 1rem; }
.maintenance-cost-form {
    display: grid;
    grid-template-columns: minmax(110px, .7fr) minmax(180px, 1.15fr) minmax(240px, 1.6fr) minmax(85px, .55fr) minmax(130px, .8fr);
    grid-template-areas:
        "type item description description quantity"
        "responsibility supplier supplier actual unitcost"
        ". . . . action";
    gap: .65rem;
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: .85rem;
}
.maintenance-cost-form > * { min-width: 0; max-width: 100%; box-sizing: border-box; }
.maintenance-cost-form input, .maintenance-cost-form select { width: 100%; min-height: 41px; border: 1px solid #cbd5e1; border-radius: 8px; padding: .5rem; min-width: 0; box-sizing: border-box; }
.maintenance-cost-form .cost-type-field { grid-area: type; }
.maintenance-cost-form .cost-item-field { grid-area: item; }
.maintenance-cost-form .cost-description-field { grid-area: description; }
.maintenance-cost-form .cost-quantity-field { grid-area: quantity; }
.maintenance-cost-form .cost-unit-price-field { grid-area: unitcost; }
.maintenance-cost-form .cost-responsibility-field { grid-area: responsibility; }
.maintenance-cost-form .cost-supplier-field { grid-area: supplier; }
.maintenance-cost-form .actual-cost-check { grid-area: actual; display: flex; align-items: center; gap: .4rem; min-height: 41px; padding: .45rem .55rem; border: 1px solid #dbe4ee; border-radius: 8px; background: #fff; font-size: .8rem; font-weight: 700; }
.maintenance-cost-form .actual-cost-check input { min-height: 0; width: 18px; height: 18px; flex: 0 0 auto; }
.maintenance-cost-form .cost-add-button { grid-area: action; justify-self: end; min-width: 120px; }
.maintenance-finance-result { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; margin-top: 1rem; padding: .85rem 1rem; border-radius: 12px; background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; }
.maintenance-completion-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    border: 0;
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(1px);
}
.maintenance-completion-shell {
    position: fixed;
    inset: 0;
    z-index: 2147483001;
    display: grid;
    place-items: center;
    padding: 1rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    pointer-events: none;
}
.maintenance-completion-dialog {
    position: relative;
    width: min(680px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    pointer-events: auto;
    opacity: 1;
    padding: 1.2rem;
    border: 1px solid var(--border, #dbe4ee);
    border-radius: 16px;
    background: var(--surface, #fff);
    color: var(--text, #0f172a);
    box-shadow: 0 28px 80px rgba(15, 23, 42, .42);
}
.maintenance-completion-dialog .section-heading {
    position: sticky;
    top: -1.2rem;
    z-index: 2;
    margin: -1.2rem -1.2rem 1rem;
    padding: 1rem 1.2rem;
    background: var(--surface, #fff);
    border-bottom: 1px solid var(--border, #e2e8f0);
}
.maintenance-completion-dialog label { display: grid; gap: .4rem; font-weight: 700; }
.maintenance-completion-dialog textarea { resize: vertical; min-height: 120px; }
.maintenance-completion-error { margin: 0 0 1rem; }
.maintenance-completion-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: 1rem; }
.maintenance-completion-summary div { padding: .8rem; border: 1px solid var(--border, #e2e8f0); border-radius: 10px; background: var(--surface-soft, #f8fafc); display: grid; gap: .25rem; }
.maintenance-completion-summary span { color: var(--muted, #64748b); }
.maintenance-completion-mapping-note { margin: 1rem 0 0; padding: .72rem .8rem; border-radius: .7rem; background: #eff6ff; color: #334155; font-size: .82rem; }
.maintenance-completion-mapping-note a { color: #1d4ed8; font-weight: 800; }
.maintenance-completion-actions {
    position: sticky;
    bottom: -1.2rem;
    z-index: 2;
    margin: 1rem -1.2rem -1.2rem;
    padding: 1rem 1.2rem;
    background: var(--surface, #fff);
    border-top: 1px solid var(--border, #e2e8f0);
}
.maintenance-completion-dialog button:disabled { cursor: not-allowed; opacity: .65; }
@media (max-width: 600px) {
    .maintenance-completion-shell { padding: 0; place-items: stretch; }
    .maintenance-completion-dialog {
        width: 100%;
        min-height: 100vh;
        min-height: 100dvh;
        max-height: 100vh;
        max-height: 100dvh;
        border-radius: 0;
    }
    .maintenance-completion-summary { grid-template-columns: 1fr; }
}
.danger-text { color: #b91c1c !important; }

@media (max-width: 1250px) {
    .maintenance-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .maintenance-board { grid-template-columns: 1fr; }
    .maintenance-job-register, .maintenance-job-detail { min-height: auto; }
    .maintenance-cost-form {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-areas:
            "type item item quantity"
            "description description description unitcost"
            "responsibility supplier supplier actual"
            ". . . action";
    }
}
@media (max-width: 800px) {
    .maintenance-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .maintenance-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .maintenance-form-grid, .maintenance-category-layout { grid-template-columns: 1fr; }
    .maintenance-form-grid .span-two, .maintenance-switch { grid-column: auto; }
    .maintenance-filters { grid-template-columns: 1fr; }
    .maintenance-job-row { grid-template-columns: 6px minmax(0, 1fr) auto; }
    .job-date { display: none; }
    .job-detail-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .maintenance-cost-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
            "type quantity"
            "item item"
            "description description"
            "unitcost responsibility"
            "supplier supplier"
            "actual action";
    }
    .maintenance-cost-form .cost-add-button { justify-self: stretch; }
    .maintenance-alert-list article { grid-template-columns: 34px 1fr; }
    .maintenance-alert-list .row-actions { grid-column: 2; }
}
@media (max-width: 520px) {
    .maintenance-kpis, .maintenance-tabs, .job-detail-meta, .maintenance-completion-summary { grid-template-columns: 1fr; }
    .maintenance-cost-form {
        grid-template-columns: 1fr;
        grid-template-areas: "type" "item" "description" "quantity" "unitcost" "responsibility" "supplier" "actual" "action";
    }
    .maintenance-job-row { grid-template-columns: 5px minmax(0, 1fr); }
    .maintenance-job-row .maintenance-status { grid-column: 2; justify-self: start; }
}
.nav-count-badge { margin-left: auto; min-width: 1.35rem; height: 1.35rem; padding: 0 .35rem; border-radius: 999px; display: inline-grid; place-items: center; background: #dc2626; color: #fff; font-size: .68rem; font-weight: 800; }
.maintenance-alert-chip { border-color: #fdba74 !important; background: #fff7ed !important; color: #9a3412 !important; }

/* Unified reporting centre */
.report-catalog-shell,
.report-viewer-shell {
    display: grid;
    gap: 1.25rem;
    padding-bottom: 2rem;
}

.report-catalog-hero,
.report-viewer-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.65rem;
    border: 1px solid var(--border-color, #dce5f2);
    border-radius: 1.25rem;
    background: linear-gradient(135deg, #ffffff 0%, #f2f7ff 100%);
    box-shadow: 0 14px 36px rgba(22, 51, 91, .08);
}

.report-catalog-hero.finance {
    background: linear-gradient(135deg, #ffffff 0%, #f1f8f5 100%);
}

.report-catalog-hero h1,
.report-viewer-hero h1 {
    margin: .25rem 0 .45rem;
    font-size: clamp(1.85rem, 3vw, 2.5rem);
    color: #10233f;
}

.report-catalog-hero p,
.report-viewer-hero p {
    margin: 0;
    max-width: 760px;
    color: #52647d;
    line-height: 1.6;
}

.report-capability-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .55rem;
    max-width: 460px;
}

.report-capability-strip span {
    display: inline-flex;
    align-items: center;
    min-height: 2.15rem;
    padding: .45rem .7rem;
    border: 1px solid #d7e2f1;
    border-radius: 999px;
    background: rgba(255, 255, 255, .86);
    color: #334a68;
    font-size: .78rem;
    font-weight: 750;
}

.report-catalog-section {
    display: grid;
    gap: .85rem;
}

.report-catalog-section-heading {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.report-catalog-section-heading h2 {
    margin: 0 0 .15rem;
    color: #142944;
    font-size: 1.2rem;
}

.report-catalog-section-heading p {
    margin: 0;
    color: #6c7d93;
}

.report-catalog-icon {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: .85rem;
    background: #e7f0ff;
    color: #1759b6;
    font-size: .8rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.report-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.report-catalog-card.refined {
    display: grid;
    grid-template-columns: 3.15rem 1fr;
    gap: .95rem;
    min-height: 9.6rem;
    padding: 1.05rem;
    border: 1px solid #dce5f1;
    border-radius: 1rem;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(25, 53, 88, .055);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.report-catalog-card.refined:hover {
    transform: translateY(-2px);
    border-color: #8cb7f3;
    box-shadow: 0 14px 30px rgba(25, 74, 139, .11);
}

.report-catalog-card.refined .report-card-icon {
    display: grid;
    place-items: center;
    width: 3.15rem;
    height: 3.15rem;
    border-radius: .9rem;
    background: linear-gradient(135deg, #e7f0ff, #d7e7ff);
    color: #195cb9;
    font-size: .82rem;
    font-weight: 900;
}

.report-catalog-card.refined h3 {
    margin: .1rem 0 .35rem;
    color: #122843;
    font-size: 1rem;
}

.report-catalog-card.refined p {
    margin: 0 0 .75rem;
    color: #65778e;
    font-size: .87rem;
    line-height: 1.45;
}

.report-catalog-card.refined .report-link {
    color: #1761c2;
    font-size: .82rem;
    font-weight: 800;
}

.report-finance-bridge {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.35rem;
}

.report-finance-bridge h2 {
    margin: .25rem 0;
    font-size: 1.15rem;
}

.report-finance-bridge p {
    margin: 0;
    color: #65778e;
}

.finance-report-shortcuts.refined {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.report-viewer-hero-actions,
.report-export-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

.report-filter-panel,
.report-output-card {
    padding: 1.1rem;
}

.report-section-heading,
.report-output-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.report-section-heading h2,
.report-section-heading h3,
.report-output-toolbar h2 {
    margin: .15rem 0 .2rem;
    color: #142944;
}

.report-output-toolbar p {
    margin: 0;
    color: #66788e;
}

.report-section-kicker {
    display: block;
    color: #6e8199;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.report-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}

.report-filter-grid label,
.report-email-grid label {
    display: grid;
    gap: .35rem;
    color: #415873;
    font-size: .78rem;
    font-weight: 750;
}

.report-filter-grid input,
.report-filter-grid select,
.report-email-grid input,
.report-email-grid select,
.report-email-grid textarea {
    width: 100%;
    min-height: 2.75rem;
    padding: .65rem .72rem;
    border: 1px solid #ced9e7;
    border-radius: .7rem;
    background: #fff;
    color: #142944;
    font: inherit;
    font-weight: 500;
}

.report-search-field {
    grid-column: span 2;
}

.report-filter-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: .9rem;
}

.text-button {
    border: 0;
    background: transparent;
    color: #1761c2;
    font-weight: 750;
    cursor: pointer;
}

.report-output-toolbar {
    padding-bottom: 1rem;
    border-bottom: 1px solid #e2e8f1;
}

.report-action-button {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    min-height: 2.55rem;
    padding: .52rem .72rem;
    border: 1px solid #d3deec;
    border-radius: .72rem;
    background: #fff;
    color: #2f4867;
    text-decoration: none;
    font-size: .76rem;
    cursor: pointer;
}

.report-action-button span {
    display: grid;
    place-items: center;
    min-width: 1.55rem;
    height: 1.55rem;
    border-radius: .43rem;
    background: #edf3fb;
    color: #174f9a;
    font-size: .65rem;
    font-weight: 900;
}

.report-action-button:hover {
    border-color: #91b7ea;
    background: #f8fbff;
}

.report-action-button.excel span { background: #e9f7ef; color: #187447; }
.report-action-button.data span { background: #eef7ea; color: #497a25; }
.report-action-button.pdf span { background: #fff0ee; color: #b73529; }
.report-action-button.email span { background: #f3edff; color: #7042b8; }

.report-email-panel {
    display: grid;
    gap: .9rem;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid #d9e4f2;
    border-radius: .9rem;
    background: #f8fbff;
}

.report-email-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.report-email-grid .wide {
    grid-column: 1 / -1;
}

.report-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    margin: 1rem 0 .7rem;
    color: #66798f;
    font-size: .78rem;
}

.report-preview-warning {
    color: #9a5d00;
    font-weight: 750;
}

.report-table-wrap {
    overflow: auto;
    max-height: 66vh;
    border: 1px solid #dfe6ef;
    border-radius: .8rem;
}

.report-data-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .79rem;
}

.report-data-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: .68rem .7rem;
    border-bottom: 1px solid #cfd9e6;
    background: #173b6c;
    color: #fff;
    text-align: left;
    white-space: nowrap;
}

.report-data-table td {
    padding: .62rem .7rem;
    border-bottom: 1px solid #e7ecf3;
    color: #314861;
    white-space: nowrap;
}

.report-data-table tbody tr:nth-child(even) td {
    background: #f8fafc;
}

.report-data-table tbody tr:hover td {
    background: #eef5ff;
}

.report-data-table .number {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.report-data-table tfoot td {
    position: sticky;
    bottom: 0;
    background: #e9f0fa;
    color: #153b6c;
    font-weight: 850;
    border-top: 2px solid #bed0e8;
}

.report-empty-state,
.report-loading-state {
    display: grid;
    place-items: center;
    gap: .3rem;
    min-height: 11rem;
    padding: 1rem;
    color: #6c7d92;
    text-align: center;
}

.report-empty-state.compact {
    min-height: 6rem;
}

.report-error-card {
    padding: 1.5rem;
}

@media (max-width: 1120px) {
    .report-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .report-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .report-catalog-hero,
    .report-viewer-hero,
    .report-output-toolbar { align-items: flex-start; flex-direction: column; }
    .report-capability-strip,
    .report-viewer-hero-actions,
    .report-export-actions { justify-content: flex-start; }
}

@media (max-width: 760px) {
    .report-card-grid,
    .report-filter-grid,
    .report-email-grid { grid-template-columns: 1fr; }
    .report-search-field,
    .report-email-grid .wide { grid-column: auto; }
    .report-catalog-hero,
    .report-viewer-hero { padding: 1.1rem; }
    .report-finance-bridge { align-items: flex-start; flex-direction: column; }
    .report-export-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .report-action-button { justify-content: flex-start; }
}

/* Release 4.1: login and group-based security administration */
.login-layout{min-height:100vh;background:#eef3fb}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(460px,.95fr)}.login-brand-panel{padding:48px 64px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 12% 12%,rgba(75,137,255,.45),transparent 32%),linear-gradient(145deg,#081426,#102b55 58%,#17468c)}.login-brand-lockup{display:flex;align-items:center;gap:14px}.login-brand-mark,.session-loading-mark{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#2f80ff,#1662dc);box-shadow:0 16px 34px rgba(0,0,0,.25);font-weight:800;font-size:20px;color:#fff}.login-brand-lockup div{display:grid}.login-brand-lockup strong{font-size:22px}.login-brand-lockup small{color:#b9c9e5}.login-brand-copy{max-width:660px}.login-brand-copy .workspace-eyebrow{color:#8eb9ff}.login-brand-copy h1{font-size:clamp(38px,4.4vw,66px);line-height:1.02;margin:14px 0 22px;letter-spacing:-.045em}.login-brand-copy p{max-width:580px;font-size:18px;line-height:1.65;color:#cedaf0}.login-security-note{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);border-radius:18px;max-width:520px}.login-security-note>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#2dcb76;color:#052212;font-weight:900}.login-security-note div{display:grid}.login-security-note small{color:#c5d3e9;margin-top:3px}.login-form-panel{display:grid;place-items:center;padding:48px;background:linear-gradient(180deg,#f8fbff,#edf3fb)}.login-card{width:min(100%,500px);padding:40px;border:1px solid #dce5f1;border-radius:26px;background:#fff;box-shadow:0 28px 70px rgba(22,49,88,.14)}.login-card-heading span{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:#4772b6;font-weight:800}.login-card-heading h2{font-size:34px;margin:7px 0}.login-card-heading p{color:#6c788b;margin:0 0 26px}.login-card form{display:grid;gap:18px}.login-card label{display:grid;gap:8px;font-weight:700;color:#27364c}.login-card input[type=text],.login-card input[type=email],.login-card input[type=password]{width:100%;height:52px;border:1px solid #cdd9e9;border-radius:12px;padding:0 14px;font:inherit;background:#fbfdff}.login-card input:focus{outline:3px solid rgba(39,111,239,.15);border-color:#3479e8}.password-field{display:grid;grid-template-columns:1fr auto;border:1px solid #cdd9e9;border-radius:12px;overflow:hidden}.password-field input{border:0!important;border-radius:0!important}.password-field button{border:0;background:#f0f5fb;padding:0 14px;font-weight:800;color:#3566a8}.remember-line{display:flex!important;align-items:center;gap:9px!important;font-weight:600!important;color:#526176!important}.login-submit{height:54px;border:0;border-radius:13px;background:linear-gradient(135deg,#286fea,#1557ca);color:#fff;font-size:16px;font-weight:800;box-shadow:0 12px 24px rgba(28,101,218,.22)}.login-submit:disabled{opacity:.65}.login-error{padding:13px 14px;border-radius:11px;background:#fff0f1;border:1px solid #ffcdd2;color:#a61b2b;margin-bottom:18px}.login-help{margin-top:24px;padding-top:20px;border-top:1px solid #e7edf5;display:grid;gap:3px;color:#5d6c80}.login-help span{font-family:monospace;color:#264f8d}.login-help small{margin-top:4px}.session-loading{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;background:#eef3fb;color:#173258}.session-loading span{color:#6b7a90}.user-menu-chip{display:flex;align-items:stretch;border:1px solid #dae3ef;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 12px rgba(19,43,76,.05)}.user-menu-chip .profile-chip{border:0!important;border-radius:0!important;box-shadow:none!important}.logout-button{width:42px;border:0;border-left:1px solid #e5ebf3;background:#f8fbff;color:#4b5f7b;font-size:18px}.logout-button:hover{background:#fff0f0;color:#b4232c}
.security-centre{display:grid;gap:18px}.security-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.security-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.security-summary-grid>div{padding:20px;border:1px solid #dce5f0;background:#fff;border-radius:16px;display:grid;gap:5px;box-shadow:0 7px 20px rgba(17,42,75,.05)}.security-summary-grid span{color:#68778b;font-size:13px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.security-summary-grid strong{font-size:30px;color:#132a49}.security-summary-grid small{color:#738196}.security-tabs{display:flex;gap:8px;padding:6px;border:1px solid #dce5ef;border-radius:14px;background:#fff;width:max-content;max-width:100%;overflow:auto}.security-tabs button{border:0;background:transparent;padding:11px 16px;border-radius:9px;font-weight:800;color:#596a80;white-space:nowrap}.security-tabs button.active{background:#1f66df;color:#fff;box-shadow:0 8px 16px rgba(31,102,223,.18)}.security-message{padding:13px 16px;border-radius:11px;font-weight:700}.security-message.success{background:#eafaf1;border:1px solid #bde9cf;color:#12663b}.security-message.error{background:#fff0f1;border:1px solid #ffcbd0;color:#a51d2b}.security-split{display:grid;grid-template-columns:minmax(520px,1.05fr) minmax(420px,.95fr);gap:18px;align-items:start}.groups-layout{grid-template-columns:340px minmax(650px,1fr)}.security-list-card,.security-editor-card,.group-rights-card{min-width:0}.section-heading>div{min-width:0}.security-search input{width:100%;height:42px;border:1px solid #d3deeb;border-radius:10px;padding:0 12px}.table-scroll{overflow:auto}.security-list-card table small,.card table small{display:block;color:#748196;margin-top:3px}.selected-row{background:#eef5ff}.table-action{border:1px solid #bcd0ea;background:#fff;color:#285d9e;border-radius:8px;padding:7px 11px;font-weight:800}.group-chip-list{display:flex;flex-wrap:wrap;gap:5px}.group-chip-list span{padding:4px 8px;border-radius:99px;background:#edf3fb;color:#355b8b;font-size:12px;font-weight:700}.form-grid.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three-column{grid-template-columns:1fr 160px}.form-grid .wide-field{grid-column:1/-1}.check-line{display:flex!important;align-items:center;gap:9px;padding-top:28px}.field-section{margin-top:18px;padding-top:18px;border-top:1px solid #e5ebf3}.field-section p{color:#6d7c90;margin:5px 0 12px}.membership-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.membership-option{display:flex!important;gap:10px!important;align-items:flex-start;padding:12px;border:1px solid #dce5ef;border-radius:11px;background:#fbfdff}.membership-option span{display:grid}.membership-option small{font-weight:400;color:#718096;margin-top:3px}.form-actions{display:flex;gap:9px;align-items:center;margin-top:18px}.danger-button{border:1px solid #f0a9af;background:#fff2f3;color:#ad2530;border-radius:10px;padding:10px 14px;font-weight:800}.password-reset-box{margin-top:22px;padding:15px;border-radius:12px;background:#f5f8fc;border:1px solid #dfe7f1}.password-reset-box>div{display:flex;gap:8px;margin-top:8px}.password-reset-box input{flex:1;min-width:0}.group-list{display:grid;gap:8px}.group-list-item{width:100%;text-align:left;border:1px solid #dae4ef;background:#fff;border-radius:12px;padding:14px;display:grid;gap:8px}.group-list-item>span:first-child{display:grid}.group-list-item small{color:#718096;margin-top:3px}.group-list-item.active{border-color:#2a70df;background:#eff5ff;box-shadow:inset 4px 0 #2a70df}.group-meta{font-size:12px;color:#496887}.permission-toolbar{display:flex;align-items:center;gap:12px;margin:22px 0 12px;padding-top:18px;border-top:1px solid #e4ebf3}.permission-toolbar span{color:#6f7d91;margin-right:auto}.permission-matrix{display:grid;gap:12px;max-height:650px;overflow:auto;padding-right:5px}.permission-module{border:1px solid #dce5ef;border-radius:13px;overflow:hidden}.permission-module>header{display:flex;align-items:center;gap:8px;padding:11px 13px;background:#edf3fb}.permission-module h3{margin:0 auto 0 0;font-size:15px}.permission-module header button{border:0;background:transparent;color:#2862a8;font-weight:700}.permission-row{display:grid;grid-template-columns:190px 1fr;gap:14px;padding:11px 13px;border-top:1px solid #edf1f6}.permission-row>div{display:flex;flex-wrap:wrap;gap:7px}.permission-row label{display:flex;align-items:center;gap:5px;padding:5px 8px;border-radius:8px;background:#f7f9fc;font-size:12px}.security-centre table{width:100%;border-collapse:collapse}.security-centre th,.security-centre td{padding:12px;border-bottom:1px solid #e7edf4;text-align:left;vertical-align:top}.security-centre th{font-size:12px;color:#6d7a8c;text-transform:uppercase;letter-spacing:.05em}.security-centre input,.security-centre select{min-height:42px;border:1px solid #d3deeb;border-radius:9px;padding:8px 10px;background:#fff;font:inherit}
@media(max-width:1100px){.login-page{grid-template-columns:1fr}.login-brand-panel{min-height:390px;padding:36px}.login-form-panel{padding:34px}.security-summary-grid{grid-template-columns:repeat(2,1fr)}.security-split,.groups-layout{grid-template-columns:1fr}.group-rights-card{order:1}.security-list-card{order:2}}@media(max-width:650px){.login-brand-panel{display:none}.login-form-panel{padding:18px}.login-card{padding:25px;border-radius:20px}.security-summary-grid{grid-template-columns:1fr}.membership-grid,.form-grid.two-column{grid-template-columns:1fr}.permission-row{grid-template-columns:1fr}.security-header{align-items:flex-start;flex-direction:column}}

/* Release 4.2: E-FLEXA licensing, ownership and package administration */
.licensing-heading{align-items:flex-end}.license-status-card{position:relative;margin:1rem 0 1.4rem;padding:1.5rem;border:1px solid #dbe5f0;border-radius:1.35rem;background:linear-gradient(145deg,#fff,#f5f9ff);box-shadow:0 18px 50px rgba(18,48,86,.08)}.license-product-lockup{display:flex;align-items:center;gap:.9rem}.license-product-lockup>div{display:grid;gap:.2rem}.license-product-lockup strong{font-size:1.15rem;color:#102b55}.license-product-lockup small{color:#65748a}.license-mark{width:3.2rem;height:3.2rem;display:grid;place-items:center;border-radius:1rem;background:linear-gradient(135deg,#1557ca,#009ca5);color:#fff;font-weight:900;box-shadow:0 12px 25px rgba(21,87,202,.2)}.license-state{position:absolute;right:1.4rem;top:1.4rem;padding:.45rem .75rem;border-radius:999px;background:#e9f2ff;color:#174f9a;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.license-state.active,.license-state.development{background:#e8f8ef;color:#187447}.license-state.expired,.license-state.invalid,.license-state.incompatiblehosting{background:#fff0f0;color:#ad2631}.license-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1.35rem 0}.license-status-grid>div{padding:1rem;border:1px solid #e2eaf3;border-radius:1rem;background:#fff}.license-status-grid span,.installation-code span{display:block;color:#68778c;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.license-status-grid strong{display:block;margin-top:.25rem;color:#142d4d}.license-message{padding:.85rem 1rem;border-radius:.85rem;background:#eef5ff;color:#294b78}.installation-code{display:grid;gap:.35rem;margin-top:1rem}.installation-code code{display:block;padding:.8rem;border-radius:.75rem;background:#101f36;color:#d8e8ff;overflow-wrap:anywhere}.installation-code small{color:#68778c}.license-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.4rem}.license-package-card{padding:1.2rem;border:1px solid #dfe7f0;border-radius:1.2rem;background:#fff}.license-package-card.current{border:2px solid #1771df;box-shadow:0 14px 34px rgba(23,113,223,.13)}.package-title-line{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.package-title-line h3{margin:0;color:#102b55;font-size:1.25rem}.package-title-line span{padding:.35rem .6rem;border-radius:999px;background:#e8f8ef;color:#187447;font-size:.72rem;font-weight:900}.license-package-card ul{margin:.9rem 0 0;padding-left:1.15rem;color:#55657a}.license-package-card li{margin:.5rem 0}.license-activation-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1rem}.license-activation-card h2{margin:.2rem 0}.license-copyright{text-align:center;color:#6c788b;font-size:.86rem;margin:1.5rem 0}.ownership-card{margin-top:1rem}.ownership-card a{color:#1557ca}.danger-notice{background:#fff0f0!important;border-color:#ffc7cc!important;color:#9d202a!important}.success-notice{background:#ecf9f1!important;border-color:#bde8ce!important;color:#1b7045!important}
@media(max-width:900px){.license-status-grid,.license-package-grid{grid-template-columns:1fr 1fr}.license-activation-card{grid-template-columns:1fr}.license-state{position:static;display:inline-flex;margin-top:1rem}}@media(max-width:620px){.license-status-grid,.license-package-grid{grid-template-columns:1fr}}


/* Dual tile and Excel-style grid listings */
.listing-surface { overflow: hidden; }
.listing-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.listing-toolbar .filter-row { flex: 1 1 auto; margin-bottom: 0; }
.customer-list-filters { grid-template-columns: minmax(260px, 2fr) repeat(2, minmax(170px, 1fr)); }
.view-switcher { flex: 0 0 auto; display: inline-flex; align-items: center; padding: .2rem; border: 1px solid #cbd5e1; border-radius: .7rem; background: #f8fafc; }
.view-switcher button { display: inline-flex; align-items: center; gap: .35rem; border: 0; border-radius: .5rem; padding: .5rem .7rem; background: transparent; color: #475569; font: inherit; font-weight: 700; cursor: pointer; }
.view-switcher button:hover { color: #0f172a; }
.view-switcher button.active { background: #0f172a; color: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .18); }
.view-icon { font-size: 1.05rem; line-height: 1; }
.listing-meta { display: flex; justify-content: space-between; gap: 1rem; color: #64748b; font-size: .84rem; margin: .2rem 0 .85rem; }
.customer-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.customer-list-card { border: 1px solid #dbe3ee; border-radius: 1rem; padding: 1rem; background: #fff; cursor: pointer; box-shadow: 0 4px 14px rgba(15, 23, 42, .05); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.customer-list-card:hover { transform: translateY(-2px); border-color: #93c5fd; box-shadow: 0 10px 24px rgba(15, 23, 42, .1); }
.customer-card-heading, .customer-card-identity { display: flex; align-items: flex-start; gap: .8rem; }
.customer-card-heading { justify-content: space-between; }
.customer-card-heading .customer-avatar { flex: 0 0 auto; width: 2.8rem; height: 2.8rem; }
.customer-card-heading h3 { margin: .15rem 0 0; font-size: 1.05rem; }
.customer-number { color: #2563eb; font-size: .75rem; font-weight: 800; letter-spacing: .05em; }
.status.customer-type { background: #eef2ff; color: #3730a3; white-space: nowrap; }
.customer-card-contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: .85rem 0; padding: .75rem 0; border-top: 1px solid #eef2f7; border-bottom: 1px solid #eef2f7; }
.customer-card-contact span, .customer-card-contact small, .customer-card-contact strong, .customer-card-detail small, .customer-card-detail strong { display: block; min-width: 0; }
.customer-card-contact strong { margin-top: .15rem; overflow-wrap: anywhere; font-size: .9rem; }
.customer-card-detail strong { margin-top: .2rem; font-size: .92rem; }
.customer-card-flags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; min-height: 1.8rem; }
.customer-card-flags span { background: #f1f5f9; color: #334155; border-radius: 999px; padding: .3rem .55rem; font-size: .75rem; }
.customer-card-footer { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid #eef2f7; color: #64748b; font-size: .8rem; }
.excel-grid-scroll { max-width: 100%; border: 1px solid #dbe3ee; border-radius: .75rem; background: #fff; }
.excel-grid { min-width: 1050px; border-collapse: separate; border-spacing: 0; }
.excel-grid th { position: sticky; top: 0; z-index: 3; background: #f1f5f9; color: #334155; font-size: .78rem; letter-spacing: .01em; white-space: nowrap; border-bottom: 1px solid #cbd5e1; }
.excel-grid td { font-size: .86rem; vertical-align: middle; white-space: nowrap; }
.excel-grid tbody tr:nth-child(even) { background: #f8fafc; }
.excel-grid tbody tr:hover { background: #eff6ff; }
.excel-grid .frozen-key-cell { position: sticky; left: 0; z-index: 2; background: inherit; box-shadow: 1px 0 0 #e2e8f0; }
.excel-grid th:first-child { left: 0; z-index: 4; }
.sort-button { width: 100%; display: inline-flex; align-items: center; justify-content: space-between; gap: .45rem; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; font-weight: 800; cursor: pointer; text-align: left; }
.sort-button span { min-width: .7rem; color: #2563eb; }
.grid-actions-column { position: sticky; right: 0; z-index: 2; background: inherit; box-shadow: -1px 0 0 #e2e8f0; }
.excel-grid th.grid-actions-column { z-index: 4; background: #f1f5f9; }
.amount-due { color: #b42318; font-weight: 800; }
.listing-pager { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid #e2e8f0; }
.page-size-control { display: flex; align-items: center; gap: .5rem; color: #475569; font-size: .85rem; }
.page-size-control select { border: 1px solid #cbd5e1; border-radius: .5rem; padding: .45rem .6rem; background: #fff; font: inherit; }
.pager-actions { display: flex; align-items: center; gap: .4rem; }
.pager-actions button { min-width: 2.15rem; height: 2.15rem; border: 1px solid #cbd5e1; border-radius: .5rem; background: #fff; color: #334155; cursor: pointer; font-size: 1rem; }
.pager-actions button:hover:not(:disabled) { border-color: #2563eb; color: #1d4ed8; }
.pager-actions button:disabled { opacity: .45; cursor: not-allowed; }
.pager-actions span { min-width: 8rem; text-align: center; color: #475569; font-size: .85rem; }
@media (max-width: 900px) {
  .listing-toolbar { flex-direction: column; }
  .listing-toolbar .filter-row { width: 100%; }
  .view-switcher { align-self: flex-end; }
}
@media (max-width: 700px) {
  .customer-list-filters, .rental-filter-row { grid-template-columns: 1fr; }
  .customer-card-grid { grid-template-columns: 1fr; }
  .listing-meta, .listing-pager { align-items: flex-start; flex-direction: column; }
  .pager-actions { width: 100%; justify-content: space-between; }
  .pager-actions span { min-width: 0; }
  .view-switcher { align-self: stretch; }
  .view-switcher button { flex: 1 1 50%; justify-content: center; }
}

/* Release 4.4: customer risk, eviction and penalty workspace */
.risk-kpi strong { color: #b42318; }
.blacklist-chip,
.risk-status-blacklisted { background: #fee4e2 !important; color: #b42318 !important; border: 1px solid #fecdca; }
.risk-status-clear { background: #ecfdf3 !important; color: #067647 !important; border: 1px solid #abefc6; }
.risk-section { display: grid; gap: 1rem; padding: 1.1rem; margin-bottom: 1rem; border: 1px solid #dbe5f0; border-radius: 1rem; background: #fff; }
.risk-section-alert { border-color: #fda29b; background: #fffafa; }
.risk-section h3, .risk-section h4 { margin: 0; }
.risk-alert { display: flex; flex-wrap: wrap; gap: .55rem 1rem; padding: .85rem 1rem; border-radius: .75rem; background: #fee4e2; color: #912018; }
.risk-alert strong { flex: 1 1 100%; }
.risk-alert span { font-size: .85rem; }
.compact-form { margin-top: 0; }
.eviction-card-list,
.penalty-policy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: .85rem; }
.risk-section .lease-pricing-card { margin: 0; }
.small-button { padding: .45rem .7rem; font-size: .8rem; }
.customer-excel-grid { min-width: 1160px; }
@media (max-width: 760px) {
  .risk-section { padding: .85rem; }
  .eviction-card-list, .penalty-policy-grid { grid-template-columns: 1fr; }
}

/* Release 4.4 penalty waiver */
.penalty-waiver-card {
    margin-top: 1rem;
    border-left: 4px solid #dc2626;
}

.penalty-waiver-card > label {
    display: grid;
    gap: .45rem;
    margin-bottom: .85rem;
    font-weight: 700;
}

/* Release 4.5: searchable customer selection and formatted money fields */
.customer-search-picker {
  display: grid;
  gap: .7rem;
  margin: .2rem 0 1rem;
  min-width: 0;
}
.customer-search-field { display: grid; gap: .4rem; font-weight: 700; color: var(--text, #1f2937); }
.customer-search-field input[type="search"] {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--border, #cbd5e1);
  border-radius: .72rem;
  padding: .7rem .85rem;
  background: var(--surface, #fff);
  color: var(--text, #111827);
  font: inherit;
}
.customer-search-field input[type="search"]:focus {
  outline: 3px solid rgba(37, 99, 235, .14);
  border-color: var(--accent, #2563eb);
}
.customer-search-meta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; color: var(--text-soft, #64748b); font-size: .82rem; }
.text-button { border: 0; background: transparent; color: var(--accent-text, #1d4ed8); font: inherit; font-weight: 700; cursor: pointer; padding: .2rem; }
.customer-search-results {
  display: grid;
  gap: .45rem;
  max-height: 310px;
  overflow-y: auto;
  padding: .25rem;
  border: 1px solid var(--border, #dbe3ee);
  border-radius: .8rem;
  background: color-mix(in srgb, var(--surface, #fff) 94%, var(--accent-soft, #eff6ff));
}
.customer-search-result {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  width: 100%;
  min-width: 0;
  padding: .7rem;
  border: 1px solid transparent;
  border-radius: .7rem;
  background: var(--surface, #fff);
  color: var(--text, #111827);
  text-align: left;
  cursor: pointer;
  font: inherit;
}
.customer-search-result:hover { border-color: #93c5fd; background: #f8fbff; }
.customer-search-result.selected { border-color: #60a5fa; box-shadow: 0 0 0 2px rgba(37, 99, 235, .1); }
.customer-search-result.blacklisted { background: #fff7f7; }
.customer-search-result:disabled { cursor: not-allowed; opacity: .72; }
.customer-search-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #dbeafe;
  color: #1e40af;
  font-weight: 800;
}
.customer-search-result-copy { min-width: 0; display: grid; gap: .12rem; }
.customer-search-result-copy strong, .customer-search-result-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.customer-search-result-copy small { color: var(--text-soft, #64748b); }
.customer-search-empty { display: grid; gap: .25rem; padding: 1rem; text-align: center; color: var(--text-soft, #64748b); }
.customer-search-limit { color: var(--text-soft, #64748b); }
.selected-customer-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .75rem .85rem;
  border: 1px solid #93c5fd;
  border-radius: .75rem;
  background: #eff6ff;
}
.selected-customer-card div { min-width: 0; display: grid; gap: .1rem; }
.selected-customer-card small, .selected-customer-card span { color: #52647a; }
.selected-customer-card strong, .selected-customer-card span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.compact-button { padding: .45rem .7rem; white-space: nowrap; }
.money-input { width: 100%; min-width: 0; box-sizing: border-box; text-align: right; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.money-input:focus { text-align: left; }

@media (max-width: 680px) {
  .customer-search-result { grid-template-columns: 38px minmax(0, 1fr); }
  .customer-search-result .risk-badge { grid-column: 2; justify-self: start; }
  .selected-customer-card { align-items: flex-start; }
  .customer-search-results { max-height: 260px; }
}

/* Release 4.6.3: rental-unit multi-invoice receipt allocation */
.receipt-allocation-heading{margin-top:1rem;align-items:flex-end}
.receipt-allocation-table{min-width:850px}
.receipt-allocation-table .allocation-input{min-width:130px}
.amount-error{color:#b91c1c!important}
@media (max-width:760px){.receipt-allocation-heading{align-items:flex-start}.receipt-allocation-table{min-width:760px}}

/* Release 4.6.5 - combined rental payment receipt */
.single-receipt-grid {
  grid-template-columns: minmax(0, 1fr);
}

.combined-deposit-card {
  min-width: 0;
}

.receipt-breakdown-preview {
  display: grid;
  gap: .45rem;
  margin: .8rem 0 1rem;
  padding: .8rem .9rem;
  border: 1px solid var(--border-color, #d8dee8);
  border-radius: .75rem;
  background: var(--surface-muted, #f8fafc);
}

.receipt-breakdown-preview > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
}

.receipt-breakdown-preview strong {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.receipt-breakdown-total {
  margin-top: .25rem;
  padding-top: .6rem;
  border-top: 1px solid var(--border-color, #d8dee8);
  font-size: 1.05rem;
}

.security-note {
  margin-top: .75rem;
  padding: .65rem .75rem;
  border-left: 4px solid #d97706;
  background: #fff7ed;
}

@media (max-width: 680px) {
  .receipt-breakdown-preview > div {
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
  }
}

/* Explicit finance ledger mappings */
.ledger-mapping-intro { margin-bottom: 1rem; display: grid; gap: .35rem; }
.ledger-mapping-intro p { margin: 0; color: var(--text-soft, #64748b); }
.ledger-mapping-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ledger-mapping-card { display: grid; align-content: start; gap: 1rem; min-width: 0; }
.ledger-mapping-heading { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: .8rem; align-items: center; }
.ledger-mapping-heading h2 { margin: 0; font-size: 1.05rem; }
.ledger-mapping-heading p { margin: .22rem 0 0; color: var(--text-soft, #64748b); font-size: .82rem; line-height: 1.4; }
.ledger-mapping-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: .8rem; font-size: .76rem; font-weight: 900; background: var(--accent-soft, #eaf2ff); color: var(--accent-text, #1d4ed8); border: 1px solid var(--border, #dbe4ee); }
.ledger-mapping-icon.output-vat { background: #fff1f2; color: #be123c; }
.ledger-mapping-icon.deposit { background: #ecfdf5; color: #047857; }
.ledger-mapping-icon.accrual { background: #fff7ed; color: #c2410c; }
.ledger-mapping-card label { display: grid; gap: .42rem; font-weight: 700; }
.ledger-mapping-card select { width: 100%; min-height: 44px; border: 1px solid var(--border, #cbd5e1); border-radius: .7rem; padding: .65rem .75rem; background: var(--surface, #fff); color: var(--text, #0f172a); font: inherit; }
.mapping-rule { color: var(--text-soft, #64748b); line-height: 1.45; }
.ledger-mapping-actions { align-items: center; }
.ledger-mapping-actions > span { margin-right: auto; color: var(--text-soft, #64748b); font-size: .82rem; }
@media (max-width: 850px) {
    .ledger-mapping-grid { grid-template-columns: 1fr; }
    .ledger-mapping-actions { align-items: stretch; flex-direction: column; }
    .ledger-mapping-actions > span { margin-right: 0; }
}


/* Release 5.0.1 - pre-activation and licence guidance */
.license-attention-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1.25rem;
    border-bottom: 1px solid var(--border);
    background: color-mix(in srgb, #f59e0b 12%, var(--surface));
}
.license-attention-banner > div { display: flex; flex-direction: column; gap: .15rem; }
.license-attention-banner strong { color: var(--text); }
.license-attention-banner span { color: var(--muted); font-size: .88rem; }
.license-attention-action {
    flex: 0 0 auto;
    padding: .52rem .8rem;
    border-radius: .55rem;
    background: var(--accent);
    color: white;
    text-decoration: none;
    font-weight: 700;
}
.licence-required-card { max-width: 760px; padding: 1.4rem; }
.licence-required-card h2 { margin: .35rem 0 .6rem; }
.licence-required-card .installation-code { margin: 1rem 0; }

/* Release 5.3: dedicated rental transaction workspace. */
.rental-transaction-backdrop {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  z-index: 1400;
  background: rgba(15, 23, 42, .68);
  padding: .75rem;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.rental-transaction-window {
  width: min(1580px, calc(100vw - 1.5rem));
  height: calc(100vh - 1.5rem);
  height: calc(100dvh - 1.5rem);
  max-height: calc(100vh - 1.5rem);
  max-height: calc(100dvh - 1.5rem);
  min-width: 0;
  min-height: 0;
  background: var(--surface, #fff);
  border-radius: 1rem;
  box-shadow: 0 28px 90px rgba(15, 23, 42, .34);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
}
.rental-transaction-header {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.15rem 1.5rem;
  border-bottom: 1px solid var(--border, #e2e8f0);
  background: var(--surface-soft, #f8fafc);
}
.rental-transaction-header h2 { margin: .2rem 0 .25rem; font-size: 1.45rem; }
.rental-transaction-header p { margin: 0; color: #64748b; max-width: 820px; }
.stage-kicker { display: inline-block; color: #2563eb; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.transaction-window-notice { margin: .8rem 1.5rem 0; }
.rental-transaction-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  padding: 1.25rem 1.5rem 2rem;
  scrollbar-gutter: stable;
  box-sizing: border-box;
}
.transaction-section { border: 1px solid var(--border, #e2e8f0); border-radius: .9rem; padding: 1.1rem; margin-bottom: 1rem; background: var(--surface, #fff); }
.transaction-section-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.transaction-section-title > div { display: flex; align-items: flex-start; gap: .8rem; }
.transaction-section-title > div > span { width: 2rem; height: 2rem; flex: 0 0 2rem; border-radius: .6rem; display: grid; place-items: center; background: #dbeafe; color: #1d4ed8; font-weight: 800; }
.transaction-section-title h3 { margin: 0; font-size: 1.05rem; }
.transaction-section-title p { margin: .15rem 0 0; color: #64748b; font-size: .88rem; }
.transaction-form-grid { display: grid; grid-template-columns: repeat(2, minmax(340px, 1fr)); gap: 1rem 1.25rem; }
.transaction-form-grid > label, .transaction-form-grid > div { min-width: 0; }
.transaction-form-grid label { display: grid; gap: .35rem; }
.transaction-form-grid input:not([type="checkbox"]), .transaction-form-grid select, .transaction-form-grid textarea { width: 100%; min-width: 0; box-sizing: border-box; }
.transaction-terms-grid { grid-template-columns: repeat(2, minmax(380px, 1fr)); }
.transaction-form-grid input:not([type="checkbox"]),
.transaction-form-grid select { min-height: 2.8rem; padding: .65rem .75rem; font-size: .95rem; }
.transaction-form-grid textarea { padding: .7rem .75rem; font-size: .95rem; }
.tenancy-mode-card { display: flex !important; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid #bfdbfe; background: #eff6ff; border-radius: .8rem; padding: .9rem 1rem; }
.tenancy-mode-card > span { display: grid; gap: .2rem; }
.tenancy-mode-card small { color: #475569; font-weight: 400; line-height: 1.35; }
.tenancy-mode-card input[type="checkbox"] { width: 1.2rem; height: 1.2rem; flex: 0 0 auto; }
.open-ended-field { display: grid; gap: .2rem; border-color: #86efac; background: #ecfdf5; }
.open-ended-field span { color: #475569; font-size: .8rem; }

.field-span-2 { grid-column: span 2; }
.readonly-field { border: 1px solid var(--border, #e2e8f0); border-radius: .7rem; padding: .75rem .85rem; background: var(--surface-soft, #f8fafc); }
.readonly-field small, .readonly-field strong { display: block; }
.readonly-field strong { margin-top: .25rem; }
.selected-unit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.selected-unit-card { border: 1px solid #dbe4ee; border-radius: .75rem; padding: .8rem; display: flex; justify-content: space-between; gap: 1rem; background: #f8fafc; }
.selected-unit-card.primary { border-color: #93c5fd; background: #eff6ff; }
.selected-unit-card div:last-child { text-align: right; }
.selected-unit-card strong, .selected-unit-card small, .selected-unit-card span { display: block; }
.selected-unit-card small, .selected-unit-card span { color: #64748b; font-size: .76rem; }
.lease-economics-grid { margin-top: .9rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; align-items: end; }
.lease-economics-grid > div, .lease-economics-grid > label { min-width: 0; border: 1px solid #dbe4ee; border-radius: .75rem; padding: .8rem; background: #f8fafc; }
.lease-economics-grid small, .lease-economics-grid strong { display: block; }
.lease-economics-grid .net-rent { background: #ecfdf5; border-color: #86efac; }
.single-unit-transaction-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.single-unit-transaction-summary > div { border: 1px solid #dbe4ee; border-radius: .75rem; padding: .8rem; background: #f8fafc; }
.single-unit-transaction-summary small, .single-unit-transaction-summary strong { display: block; }
.deposit-transaction-card { border: 1px solid #dbe4ee; border-radius: .8rem; padding: 1rem; background: #f8fafc; }
.compact-form-grid { margin-top: .9rem; }
.professional-total-card { margin-top: 0; }
.professional-invoice-card { margin-bottom: 0; }
.transaction-charge-list .rental-charge-row { align-items: end; }
.rental-transaction-footer {
  position: relative;
  z-index: 4;
  flex: 0 0 auto;
  border-top: 1px solid var(--border, #e2e8f0);
  background: var(--surface-soft, #f8fafc);
  padding: .9rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  box-shadow: 0 -8px 22px rgba(15, 23, 42, .06);
  box-sizing: border-box;
}
.footer-summary small, .footer-summary strong { display: block; }
.footer-summary small { color: #64748b; }
.footer-actions { display: flex; gap: .7rem; align-items: center; }
.combined-selection-stage { display: grid; gap: 1rem; }
.transaction-stage-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.transaction-stage-heading h3 { margin: .2rem 0 .35rem; }
.selection-count { white-space: nowrap; border: 1px solid #bfdbfe; background: #eff6ff; color: #1d4ed8; border-radius: 999px; padding: .45rem .7rem; font-size: .82rem; }
.combined-unit-selector { max-height: 390px; }
.combined-unit-selector td small { display: block; color: #64748b; }
.combined-selection-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.combined-selection-summary > div { border: 1px solid #dbe4ee; border-radius: .75rem; padding: .8rem; background: #f8fafc; }
.combined-selection-summary small, .combined-selection-summary strong { display: block; }
.transaction-stage-actions { display: flex; justify-content: flex-end; gap: .7rem; }
.rental-launch-card { border: 1px solid #bfdbfe; background: #eff6ff; border-radius: .85rem; padding: 1.15rem; }
.rental-launch-card h3 { margin: .25rem 0 .4rem; }
.rental-launch-card p { color: #475569; max-width: 680px; }
.compact-button { padding: .5rem .75rem; }

@media (max-width: 900px) {
  .selected-unit-grid, .lease-economics-grid, .single-unit-transaction-summary { grid-template-columns: 1fr; }
  .transaction-form-grid { grid-template-columns: 1fr; }
  .field-span-2 { grid-column: span 1; }
  .rental-transaction-window { width: calc(100vw - 1rem); height: calc(100dvh - 1rem); max-height: calc(100dvh - 1rem); border-radius: .75rem; }
  .rental-transaction-backdrop { padding: .5rem; }
  .rental-transaction-footer { align-items: flex-start; flex-direction: column; }
  .footer-actions { width: 100%; }
  .footer-actions > button { flex: 1; }
}


/* Release 5.6.2: definitive viewport-safe rental action bar. */
@media (max-height: 720px) {
  .rental-transaction-backdrop { padding: .35rem; }
  .rental-transaction-window {
    width: calc(100vw - .7rem);
    height: calc(100dvh - .7rem);
    max-height: calc(100dvh - .7rem);
    border-radius: .65rem;
  }
  .rental-transaction-header { padding: .65rem 1rem; }
  .rental-transaction-header p { display: none; }
  .rental-transaction-body { padding: .7rem 1rem 1rem; }
  .rental-transaction-footer { padding: .6rem 1rem; }
}


/* Release 5.5 — rental invoice scheduler */
.settings-summary-box {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .85rem 1rem;
    border: 1px solid var(--border-color, #d9dee8);
    border-radius: .65rem;
    min-height: 4.5rem;
    justify-content: center;
}
.settings-summary-box span { font-size: .78rem; opacity: .72; }
.settings-summary-box strong { font-size: .95rem; }


/* Release 5.6.3 — professional rental chargeable-service fields */
.transaction-charge-list {
  gap: 1rem;
}

.transaction-charge-list .service-charge-card {
  display: block;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dbe4ee;
  border-radius: .95rem;
  background: #f8fafc;
  opacity: .78;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, opacity .18s ease;
}

.transaction-charge-list .service-charge-card.selected {
  background: #fff;
  border-color: #93c5fd;
  box-shadow: 0 8px 24px rgba(37, 99, 235, .07);
  opacity: 1;
}

.service-charge-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.service-charge-card.selected .service-charge-card-header {
  background: #f8fbff;
}

.service-select-control {
  display: flex !important;
  align-items: center;
  gap: .8rem;
  margin: 0;
  cursor: pointer;
  min-width: 0;
}

.service-select-control > input,
.service-tax-control > input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.service-select-box,
.service-tax-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 1.25rem;
  border: 1.5px solid #94a3b8;
  border-radius: .34rem;
  background: #fff;
  display: grid;
  place-items: center;
  transition: all .15s ease;
}

.service-select-control > input:checked + .service-select-box,
.service-tax-control > input:checked + .service-tax-checkbox {
  background: #2563eb;
  border-color: #2563eb;
}

.service-select-control > input:checked + .service-select-box::after,
.service-tax-control > input:checked + .service-tax-checkbox::after {
  content: "✓";
  color: #fff;
  font-size: .82rem;
  font-weight: 900;
  line-height: 1;
}

.service-charge-title {
  min-width: 0;
  display: grid;
  gap: .18rem;
}

.service-charge-title strong {
  font-size: 1rem;
  color: #0f172a;
}

.service-charge-title small {
  color: #64748b;
  font-size: .8rem;
}

.service-selection-status {
  flex: 0 0 auto;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #64748b;
  border-radius: 999px;
  padding: .34rem .65rem;
  font-size: .72rem;
  font-weight: 700;
}

.service-selection-status.active {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.service-charge-fields {
  display: grid;
  grid-template-columns: minmax(230px, 1.2fr) minmax(150px, .65fr) minmax(210px, .9fr) minmax(220px, .9fr);
  gap: 1rem;
  align-items: stretch;
  padding: 1rem 1.1rem;
}

.service-charge-field {
  display: grid !important;
  align-content: start;
  gap: .38rem;
  min-width: 0;
  margin: 0 !important;
}

.service-field-label {
  color: #334155;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .015em;
}

.service-charge-field small,
.service-tax-control small {
  color: #64748b;
  font-size: .72rem;
  line-height: 1.25;
}

.service-money-shell {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: stretch;
  min-height: 3rem;
  border: 1px solid #cbd5e1;
  border-radius: .65rem;
  background: #fff;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.service-money-shell:focus-within {
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
}

.service-currency-prefix {
  display: flex;
  align-items: center;
  padding: 0 .72rem;
  border-right: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #475569;
  font-size: .78rem;
  font-weight: 800;
}

.service-money-shell .service-money-input {
  width: 100%;
  min-width: 0;
  min-height: 3rem;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: .72rem .8rem;
  background: transparent;
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}

.service-quantity-input,
.service-cycle-select {
  width: 100%;
  min-width: 0;
  min-height: 3rem;
  box-sizing: border-box;
  border: 1px solid #cbd5e1;
  border-radius: .65rem;
  background: #fff;
  padding: .72rem .8rem;
  font-size: .95rem;
  color: #0f172a;
}

.service-quantity-input:focus,
.service-cycle-select:focus {
  outline: none;
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
}

.service-tax-control {
  min-height: 3rem;
  display: flex !important;
  align-items: center;
  gap: .7rem;
  margin: 1.45rem 0 0 !important;
  padding: .68rem .8rem;
  border: 1px solid #cbd5e1;
  border-radius: .65rem;
  background: #fff;
  cursor: pointer;
}

.service-tax-control > span:last-child {
  min-width: 0;
  display: grid;
  gap: .12rem;
}

.service-tax-control strong {
  color: #334155;
  font-size: .88rem;
}

.service-tax-control.taxable {
  border-color: #bfdbfe;
  background: #f8fbff;
}

.service-charge-card:not(.selected) .service-charge-fields,
.service-charge-card:not(.selected) .service-charge-total {
  filter: grayscale(.08);
}

.service-charge-card input:disabled,
.service-charge-card select:disabled,
.service-charge-card .money-input:disabled {
  cursor: not-allowed;
  opacity: .62;
}

.service-charge-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: auto;
  padding: .82rem 1.1rem;
  border: 0;
  border-top: 1px solid #e2e8f0;
  border-radius: 0;
  background: #fbfdff;
}

.service-charge-total > span {
  display: grid;
  gap: .12rem;
}

.service-charge-total small {
  color: #475569;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.service-charge-total em {
  color: #64748b;
  font-size: .72rem;
  font-style: normal;
}

.service-charge-total strong {
  color: #0f172a;
  font-size: 1.05rem;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .service-charge-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .service-tax-control {
    margin-top: 1.45rem !important;
  }
}

@media (max-width: 720px) {
  .service-charge-card-header,
  .service-charge-total {
    align-items: flex-start;
    flex-direction: column;
  }

  .service-charge-fields {
    grid-template-columns: 1fr;
  }

  .service-tax-control {
    margin-top: .25rem !important;
  }

  .service-charge-total strong {
    white-space: normal;
  }
}


/* Release 5.7 — rental operations workspace */
.tenant-lease-reference {
  display: block;
  margin-top: .18rem;
  color: #64748b;
  font-size: .72rem;
  line-height: 1.25;
}
.combined-lease-badge,
.combined-lease-label {
  color: #1d4ed8 !important;
  font-weight: 700;
}
.combined-lease-badge {
  display: inline-flex;
  margin-top: .28rem;
  padding: .2rem .48rem;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  font-size: .7rem;
}
.page-heading-actions {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.due-invoice-review-card .section-heading {
  align-items: flex-start;
  gap: 1rem;
}
.due-invoice-table td:first-child,
.due-invoice-table th:first-child {
  width: 90px;
  text-align: center;
}
.due-invoice-table input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
}
.lease-list-toolbar {
  display: grid;
  grid-template-columns: minmax(280px, 1.5fr) minmax(180px, .55fr) minmax(260px, .8fr);
  gap: 1rem;
  align-items: end;
  margin-bottom: 1rem;
}
.lease-list-toolbar > label:not(.checkbox-option) {
  display: grid;
  gap: .38rem;
  color: #475569;
  font-size: .78rem;
  font-weight: 700;
}
.lease-list-toolbar input[type="text"],
.lease-list-toolbar input:not([type]),
.lease-list-toolbar select {
  min-height: 2.8rem;
  border: 1px solid #cbd5e1;
  border-radius: .65rem;
  padding: .65rem .75rem;
  background: #fff;
}
.lease-combined-filter {
  min-height: 2.8rem;
  margin: 0;
}
.lease-unit-chip-list {
  display: flex;
  gap: .35rem;
  flex-wrap: wrap;
  max-width: 360px;
}
.lease-unit-chip {
  display: inline-flex;
  align-items: center;
  padding: .24rem .48rem;
  border: 1px solid #dbe4ee;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: .72rem;
  white-space: nowrap;
}
.lease-unit-chip.primary {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
  font-weight: 700;
}
.lease-register-grid td {
  vertical-align: top;
}
@media (max-width: 900px) {
  .lease-list-toolbar { grid-template-columns: 1fr; }
  .page-heading-actions { justify-content: flex-start; }
  .due-invoice-review-card .section-heading { display: block; }
  .due-invoice-review-card .form-actions { margin-top: .8rem; }
}


/* Release 5.7.1 — Customer combined-lease presentation */
.customer-lease-unit-list {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: .45rem 0 .25rem;
}
.customer-lease-unit-chip {
  display: inline-flex;
  align-items: center;
  padding: .24rem .5rem;
  border: 1px solid #dbe4ee;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: .72rem;
}
.customer-lease-unit-chip.primary {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
  font-weight: 700;
}
.customer-lease-rent-summary {
  display: grid;
  gap: .15rem;
  text-align: right;
}
.customer-lease-rent-summary small {
  color: #64748b;
  font-size: .72rem;
}
.combined-unit-rent-table {
  margin: .9rem 0 1rem;
  border: 1px solid #e2e8f0;
  border-radius: .75rem;
  overflow: hidden;
}
.combined-unit-rent-head,
.combined-unit-rent-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto);
  gap: 1rem;
  align-items: center;
  padding: .65rem .8rem;
}
.combined-unit-rent-head {
  background: #f8fafc;
  color: #64748b;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
}
.combined-unit-rent-row + .combined-unit-rent-row {
  border-top: 1px solid #e2e8f0;
}
.combined-unit-rent-row > span {
  display: grid;
  gap: .12rem;
}
.combined-unit-rent-row small {
  color: #64748b;
  font-size: .72rem;
}
@media (max-width: 700px) {
  .customer-lease-rent-summary { text-align: left; }
  .combined-unit-rent-head,
  .combined-unit-rent-row { grid-template-columns: 1fr; gap: .25rem; }
}

/* Release 5.7.3 — GL Posting Workbench */
.gl-workbench-heading{align-items:flex-end}
.gl-posting-overview{display:grid;grid-template-columns:1.25fr repeat(4,minmax(150px,1fr));gap:.85rem;margin:1rem 0}
.gl-posting-summary-card{min-height:112px;display:grid;align-content:center;gap:.28rem;padding:1rem 1.05rem;border:1px solid #dbe4ee;border-radius:.9rem;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.035)}
.gl-posting-summary-card.total{grid-template-columns:auto 1fr;align-items:center;gap:.85rem;background:#f8fbff;border-color:#bfdbfe}
.gl-posting-summary-icon{width:2.7rem;height:2.7rem;display:grid;place-items:center;border-radius:.72rem;background:#2563eb;color:#fff;font-size:1.25rem;font-weight:800}
.gl-posting-summary-card small{color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.gl-posting-summary-card strong{color:#0f172a;font-size:1.55rem;line-height:1.1}
.gl-posting-summary-card span:not(.gl-posting-summary-icon){color:#475569;font-size:.78rem}
.gl-posting-actionbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.9rem 1rem;border:1px solid #dbe4ee;border-radius:.85rem;background:#fff}
.gl-posting-actionbar>div:first-child{display:grid;gap:.18rem}.gl-posting-actionbar span{color:#64748b;font-size:.8rem}.gl-posting-actions{display:flex;gap:.55rem;flex:0 0 auto}
.gl-posting-result{border-color:#bfdbfe}.gl-result-kpis{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.75rem;margin:.9rem 0}
.gl-result-kpis>div{display:grid;gap:.15rem;padding:.8rem .9rem;border:1px solid #e2e8f0;border-radius:.7rem;background:#f8fafc}.gl-result-kpis small{color:#64748b;font-size:.72rem;font-weight:700;text-transform:uppercase}.gl-result-kpis strong{font-size:1.3rem}
.gl-posting-details{margin-top:.75rem;border-top:1px solid #e2e8f0;padding-top:.75rem}.gl-posting-details summary{cursor:pointer;color:#334155;font-weight:700}.gl-posting-message-list{max-height:280px;overflow:auto;margin-top:.65rem;border:1px solid #e2e8f0;border-radius:.65rem}.gl-posting-message{padding:.55rem .7rem;color:#475569;font-size:.8rem}.gl-posting-message+.gl-posting-message{border-top:1px solid #eef2f7}
@media(max-width:1200px){.gl-posting-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.gl-posting-summary-card.total{grid-column:1/-1}}
@media(max-width:720px){.gl-posting-overview,.gl-result-kpis{grid-template-columns:1fr}.gl-posting-actionbar{align-items:stretch;flex-direction:column}.gl-posting-actions{flex-wrap:wrap}}

/* Release 5.8 - go-live opening balances and contract merge */
.lease-heading-actions { display:flex; gap:.6rem; flex-wrap:wrap; justify-content:flex-end; }
.lease-select-column { width:42px; }
.lease-merged-row { opacity:.72; background:#f8fafc; }
.lease-compact-modal { width:min(760px,96vw); max-height:90vh; overflow:auto; }
.lease-dialog-body { padding:1.15rem 1.25rem 1.3rem; display:grid; gap:1rem; }
.lease-dialog-body label { display:grid; gap:.35rem; font-weight:700; color:#334155; }
.lease-dialog-body input, .lease-dialog-body select { width:100%; }
.compact-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.compact-form-grid .full-span { grid-column:1 / -1; }
.lease-dialog-actions { display:flex; justify-content:flex-end; gap:.6rem; padding-top:.25rem; }
.merge-contract-list { display:grid; gap:.45rem; max-height:220px; overflow:auto; border:1px solid #e2e8f0; border-radius:.75rem; padding:.7rem; background:#f8fafc; }
.merge-contract-list > div { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid #e2e8f0; padding:.45rem 0; }
.merge-contract-list > div:last-child { border-bottom:0; }
.merge-contract-list span { color:#64748b; text-align:right; }
@media (max-width: 720px) { .compact-form-grid { grid-template-columns:1fr; } .compact-form-grid .full-span { grid-column:auto; } .merge-contract-list > div { flex-direction:column; } .merge-contract-list span { text-align:left; } }
