/* ---- Rent Expiry timeline ---- */
.rx{max-width:1180px}
.rx-head{margin:2px 0 16px}
.rx-eyebrow{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700}
.rx-title{font-family:var(--font-display); font-size:34px; font-weight:600; letter-spacing:-.01em; margin:2px 0 4px; color:var(--ink)}
.rx-sub{margin:0; font-size:15px; color:var(--ink)}
.rx-asat{margin:2px 0 0; font-size:12.5px; color:var(--muted)}
.rx-sum{display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:14px}
.rx-tile{font:inherit; text-align:left; cursor:pointer; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px 16px; display:flex; flex-direction:column; gap:4px}
.rx-tile b{font-family:var(--font-display); font-size:28px; font-weight:600; line-height:1.1; color:var(--ink)}
.rx-tile .rx-k{font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--muted)}
.rx-tile.bad{border-color:rgba(161,43,31,.35); background:var(--bad-bg)}
.rx-tile.bad b,.rx-tile.bad .rx-k{color:var(--bad)}
.rx-tile.warn{border-color:rgba(163,103,26,.35); background:var(--warn-bg)}
.rx-tile.warn b,.rx-tile.warn .rx-k{color:var(--warn)}
.rx-tile.on{box-shadow:0 0 0 2px var(--brand)}
.rx-filters{display:grid; grid-template-columns:1fr 220px 220px; gap:10px; margin-bottom:18px}
.rx-filters input,.rx-filters select{font:inherit; height:44px; padding:0 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); min-width:0}
.rx-month{position:relative; padding-left:112px; margin-bottom:6px}
.rx-month::before{content:""; position:absolute; left:88px; top:14px; bottom:-6px; width:2px; background:var(--brand-wash-2)}
.rx-mh{font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:0 0 10px; padding-top:6px}
.rx-item{position:relative; margin-bottom:12px}
.rx-when{position:absolute; left:-112px; top:14px; width:104px; display:flex; flex-direction:column; align-items:flex-start}
.rx-when b{font-family:var(--font-display); font-size:14px; letter-spacing:.04em; color:var(--ink)}
.rx-when span{font-size:11px; color:var(--muted)}
.rx-dot{position:absolute; right:-1px; top:4px; width:14px; height:14px; border-radius:50%; background:var(--brand); border:3px solid var(--ivory-soft); box-sizing:content-box; transform:translateX(8px)}
.rx-when.rx-expired .rx-dot{background:var(--bad)}
.rx-when.rx-next7 .rx-dot,.rx-when.rx-d30 .rx-dot{background:#c98a2b}
.rx-when.rx-later .rx-dot{background:#9aa79f}
.rx-card{display:grid; grid-template-columns:minmax(0,1.5fr) 120px minmax(0,1.6fr) 130px auto; gap:18px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:14px 18px}
.rx-card.rx-expired{border-left:3px solid var(--bad)}
.rx-card.rx-next7,.rx-card.rx-d30{border-left:3px solid #c98a2b}
.rx-name{font-family:var(--font-display); font-size:17px; font-weight:600; color:var(--brand); text-decoration:none}
.rx-name:hover{text-decoration:underline}
.rx-prop{font-size:13.5px; margin-top:2px; color:var(--ink)}
.rx-unit{font-size:12.5px; color:var(--muted)}
.rx-k{font-size:11.5px; color:var(--muted)}
.rx-col b{display:block; font-size:14.5px; color:var(--ink)}
.rx-status{display:flex; flex-direction:column; gap:6px; font-size:13px}
.rx-line b{display:inline}
.rx-pill{display:inline-block; font-size:11.5px; font-weight:700; padding:2px 9px; border-radius:999px; background:#eceee9; color:#4d5a52}
.rx-pill.ok{background:var(--green-100); color:var(--brand)}
.rx-pill.warn{background:var(--warn-bg); color:var(--warn)}
.rx-pill.bad{background:var(--bad-bg); color:var(--bad)}
.rx-note{font-size:12px; color:var(--muted)}
.rx-days b{font-family:var(--font-display); font-size:20px}
.rx-card.rx-expired .rx-days b{color:var(--bad)}
.rx-date{font-size:12px; color:var(--muted)}
.rx-act{display:flex; flex-direction:column; gap:6px; min-width:84px}
.rx-act .btn{justify-content:center; text-align:center}
@media (max-width:1100px){
  .rx-sum{grid-template-columns:repeat(3,1fr)}
  .rx-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px}
  .rx-act{flex-direction:row; grid-column:1 / -1}
}
@media (max-width:640px){
  .rx-title{font-size:28px}
  .rx-sum{grid-template-columns:repeat(2,1fr); gap:8px}
  .rx-sum .rx-tile:last-child{grid-column:1 / -1}
  .rx-filters{grid-template-columns:1fr}
  .rx-month{padding-left:18px}
  .rx-month::before{left:4px}
  .rx-when{position:static; width:auto; flex-direction:row; align-items:baseline; gap:8px; padding:0 0 6px 0}
  .rx-dot{right:auto; left:-18px; top:6px; transform:none; width:10px; height:10px}
  .rx-card{grid-template-columns:1fr 1fr}
  .rx-who,.rx-status{grid-column:1 / -1}
}
