/* Area A – rentals (properties, units, tenants, contracts). Tokens only (theme.css); no all-caps labels, no thick coloured side borders. */
.rx .rx-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 16px; align-items: start; }
.rx .rx-form .full { grid-column: 1 / -1; }
.rx .rx-form .rx-span2 { grid-column: span 2; }
@media (max-width: 1100px) { .rx .rx-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .rx .rx-form { grid-template-columns: minmax(0, 1fr); } .rx .rx-form .rx-span2 { grid-column: 1 / -1; } }
.rx .stack { display: flex; flex-direction: column; gap: var(--gap); }
.rx .rx-static { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: var(--input-h); }
.rx .rx-cols { align-items: start; }
.rx .rx-money { position: relative; display: flex; align-items: center; }
.rx .rx-money .input { padding-right: 30px; text-align: right; font-variant-numeric: tabular-nums; }
.rx .rx-money > span { position: absolute; right: 12px; color: var(--text-3); font-size: var(--fs-sm); pointer-events: none; }
.rx .rx-money.sm .input { padding-right: 26px; } .rx .rx-money.sm > span { right: 10px; }
.rx .rx-warm { font-weight: 700; color: var(--text); }
.rx .rx-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.rx .rx-steptbl .input { min-width: 120px; }
.rx .rx-steps .btn { margin-top: 8px; }
.rx .rx-tlist { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.rx .rx-tlist li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 6px 6px 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-2); min-height: 44px; }
.rx .rx-tname { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.rx .rx-none { padding: 10px 0; }
.rx .rx-addt { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; }
@media (max-width: 520px) { .rx .rx-addt { grid-template-columns: minmax(0, 1fr); } }
.rx .rx-warn ul, .rx-wlist { margin: 4px 0 6px; padding-left: 18px; display: grid; gap: 3px; }
.rx .rx-ok { display: flex; align-items: center; gap: 6px; color: var(--success); }
.rx .rx-open { color: var(--danger); }
.rx .rx-soon, .rx-soon { color: var(--warning); font-weight: 600; }
.rx .rx-steps-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: -6px 0 16px; }
.rx .rx-kpis { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.rx .rx-kpis .kpi .val { font-size: var(--fs-lg); }
.rx .rx-deps { display: flex; flex-direction: column; gap: 6px; }
.rx .rx-deps span { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rx .rx-act { display: flex; flex-direction: column; gap: 10px; }
.rx .rx-act li { display: flex; flex-direction: column; gap: 2px; } .rx .rx-act li span { color: var(--text-3); }
.rx-steps-list { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.rx .rx-filter, .report-bar .rx-filter { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; height: 30px; }
.rx tr.click, .rx .tbl tr.click { cursor: pointer; }
.rx .page-head .detail-actions { justify-content: flex-end; }
/* phones: 44 px touch targets, full-width actions */
@media (max-width: 640px), (pointer: coarse) {
  .rx .btn, .rx .input, .rx select.input, .rx .chip { min-height: 44px; }
  .rx .btn-sm.btn-icon { min-width: 44px; }
  .rx .page-head .actions { width: 100%; margin-left: 0; }
  .rx .page-head .detail-actions { justify-content: flex-start; width: 100%; }
}
.rx [hidden] { display: none !important; }
.rx [data-warnings]:empty, .rx [data-records]:empty { display: none; }
