/* Shared rules apply to every route, modal, legacy panel and new operations view. */
:root { --type-caption: .75rem; --type-body: .875rem; --type-label: .8125rem; }
html { scroll-padding-top: 82px; }
body, button, input, textarea, select, .leaflet-container, .leaflet-popup-content {
  font-family: var(--font-ui); font-optical-sizing: auto;
}
h1,h2,h3,h4,h5,h6 { font-family: var(--font-ui); font-synthesis: none; }
h1 { font-weight: 720; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: #07865f22; }
:focus-visible { outline: 3px solid #087e61; outline-offset: 3px; }
button:disabled { transform: none; }
img { height: auto; }
.rd-main, .rd-content, .rl-page, .ips-matching, .ips-access, .rpd-property { min-width: 0; }
.rd-content { max-width: 1900px; }
.rd-sidebar { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.rd-side-link { flex-shrink: 0; }
.rd-sidebar-profile { position: static; width: auto; margin-top: auto; }
.rd-global-search, .rd-global-search input, .rd-top-actions { min-width: 0; }
.rd-page-heading h1 { font-size: clamp(25px, 2.5vw, 38px); }
.rd-content :is(p,label,li,td,th,small) { overflow-wrap: anywhere; }
.rd-content :is(input,select,textarea) { max-width: 100%; min-width: 0; }
.rd-shell .small-muted, .rd-shell .faint-text, .rd-shell .muted { color: #536e68; }
.rd-content .small-muted, .rd-content .faint-text, .rd-content .stat small { font-size: 12px; line-height: 1.6; }
.rd-content .form-card label, .rd-content .bed-tile label { font-size: 13px; }
.table-wrap,.rl-table-scroll { max-width: 100%; overflow-x: auto; }
.rd-content .table-wrap th, .rd-content .table-wrap td { font-size: 12px; }
.rd-content .table-wrap button { white-space: normal; }
.rl-title h1, .rl-landlord-hero h1, .ips-match-hero h1 {
  font-family: var(--font-ui); font-size: clamp(30px, 3.1vw, 52px);
  font-weight: 720; letter-spacing: -.045em; line-height: 1.12;
}
.rl-title h1 em,.rl-landlord-hero h1 em,.ips-match-hero h1 em { font-style: normal; font-weight: inherit; }
.rl-title p { font-size: 14px; line-height: 1.65; color: #576d76; }
/* Keep the portfolio text and photograph in separate grid cells. */
.rl-light-hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 28px; padding: 24px 0; overflow: visible; }
.rl-light-hero .rl-title { grid-column: 1; grid-row: 1; max-width: none; align-self: center; }
.rl-light-hero .rl-title p { max-width: 48ch; }
.rl-light-hero-photo { position: relative; inset: auto; grid-column: 2; grid-row: 1; width: 100%!important; height: 260px!important; border-radius: 16px; opacity: 1; }
.rl-light-hero:after { display: none; }
.rl-light-hero .rl-desktop-break { display: none; }
.rl-hero-features { position: static; grid-column: 1/-1; width: auto; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; background: none; padding: 0; }
.rl-hero-features>div { gap: 10px; }
.rl-hero-features p { margin: 0; }
.rl-hero-features small { display: block; color: #536e68; }
.rl-landlord-hero { height: auto; min-height: 300px; }
.rl-landlord-hero-copy { max-width: 750px; }
.rl-landlord-hero-copy p { max-width: 48ch; }
.rl-hero-actions { flex-wrap: wrap; }
.rl-create-hero { min-height: 220px; }
.rl-create-hero .rl-title { max-width: 54%; }
.rl-create-benefits { max-width: 25%; }
.rl-portfolio-row { grid-template-columns: minmax(130px,.9fr) minmax(170px,1.5fr) minmax(100px,.75fr) minmax(100px,.8fr) minmax(110px,.8fr) 112px; }
.rl-portfolio-occupancy,.rl-portfolio-price { padding-inline: 12px; }
.rl-portfolio-actions { padding-right: 10px; }
.rl-portfolio-actions>.rl-button { padding-inline: 12px; }
.rl-portfolio-occupancy>small,.rl-portfolio-price>small { white-space: normal; }
.rl-portfolio-photo>.rd-photo { height: 100%; }
.rd-card-image .rd-photo,.rpd-photo-grid .rd-photo { height: 100%; }
.rd-card-info h3 { min-height: 2.5em; }
.rd-card-info .rd-distance { min-height: 3em; }
.rd-property-card { display: flex; flex-direction: column; }
.rd-card-info { flex: 1; }
.rd-property-card .save-heart { min-width: 40px; min-height: 40px; }
.rd-content .btn,.rl-button,.rpd-tabs button,.ips-view-switch button { min-height: 40px; }
.rh-feature p,.rh-feature h3 { min-height: 0; }
.rh-search select { min-height: 32px; }
#toast { max-width: calc(100vw - 32px); white-space: normal; font-size: 13px; line-height: 1.5; }
.modal { max-height: calc(100dvh - 32px); max-width: calc(100vw - 24px); overflow: auto; }
@media (max-width: 1280px) {
  .rl-portfolio-row { grid-template-columns: 160px minmax(160px,1fr) 108px 108px; }
  .rl-portfolio-occupancy { display: none; }
  .rl-portfolio-status { display: none; }
  .rl-hero-features { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rl-create-hero .rl-title { max-width: 65%; }
}
@media (max-width: 820px) {
  .rl-light-hero { grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 18px; }
  .rl-light-hero-photo { height: 240px!important; }
  .rl-light-hero .rl-title h1 { font-size: 36px; }
  .rl-portfolio-row { grid-template-columns: 130px minmax(160px,1fr) 100px; }
  .rl-portfolio-description { grid-column: 2/-1; }
  .rl-portfolio-photo { grid-row: 1/3; }
  .rl-portfolio-price { grid-column: 2; border: 0; }
  .rl-portfolio-actions { grid-column: 3; }
  .rl-create-benefits { display: none; }
  .rl-create-hero .rl-title { max-width: 80%; }
}
@media (max-width: 620px) {
  .rd-content { padding: 16px 12px 32px; }
  .rd-content input:not([type=checkbox]):not([type=range]), .rd-content select, .rd-content textarea,
  .rh-search select,.rd-global-search input { font-size: 16px!important; }
  .rd-mobile-toggle { min-width: 40px; min-height: 44px; }
  .rd-content .btn,.rl-button,.rl-icon-button,.rpd-tabs button,summary { min-height: 44px; }
  .rl-title h1 { font-size: clamp(29px,8vw,40px)!important; }
  .rl-light-hero { grid-template-columns: minmax(0,1fr); gap: 20px; padding-top: 12px; }
  .rl-light-hero .rl-title { max-width: 100%; }
  .rl-light-hero-photo { grid-column: 1; grid-row: 2; height: 190px!important; }
  .rl-hero-features { grid-row: 3; gap: 14px; }
  .rl-hero-features small { display: none; }
  .rl-hero-features>div>span { width: 34px; height: 34px; border-width: 3px; }
  .rl-landlord-hero-copy { padding: 24px 20px; }
  .rl-landlord-hero h1 { font-size: 34px; }
  .rl-create-hero .rl-title { max-width: 100%; }
  .rl-create-hero-photo { display: none; }
  .rl-create-hero { min-height: 0; margin-bottom: 24px; }
  .rl-portfolio-row { grid-template-columns: 96px minmax(0,1fr) 86px; }
  .rl-portfolio-description h2 { font-size: 16px; }
  .rl-portfolio-photo>.rd-photo { width: 100%!important; left: 0; }
  .rl-portfolio-actions>.rl-button { font-size: 12px!important; padding: 8px; }
  .rl-portfolio-price>span { font-size: 11px; }
  .rl-portfolio-metrics .rl-metric { flex-wrap: wrap; gap: 8px; }
  .rl-portfolio-metrics .rl-metric-label,.rl-portfolio-metrics .rl-metric small { font-size: 11px; }
  .rl-grid-view { grid-template-columns: minmax(0,1fr); }
  .rl-grid-view .rl-portfolio-row { grid-template-columns: minmax(0,1fr); }
  .rl-grid-view .rl-portfolio-photo { grid-row: auto; grid-column: 1; }
  .rl-grid-view .rl-portfolio-description,.rl-grid-view .rl-portfolio-price,.rl-grid-view .rl-portfolio-actions { grid-column: 1; }
  .rl-hero-actions { display: grid; grid-template-columns: minmax(0,1fr); }
  .rl-hero-actions .rl-button { font-size: 13px!important; }
  .rh-nav .rd-brand.ip-brand { width: 160px; gap: 5px; }
  .rh-nav .ip-brand-symbol { width: 36px; }
  .rh-nav .ip-brand-wordmark { width: 117px; }
  .rh-nav { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; }
}
/* Keep visually-hidden table labels inside the table scroll container. */
.rl-table-scroll { position: relative; }
.leaflet-control a, summary, table { font-family: var(--font-ui); }
@media (min-width:901px) and (max-width:1200px) {
  .rc-hero { margin-inline: -18px; }
}
.rd-sidebar nav { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.rd-sidebar .rd-side-link { min-width: 0; height: auto; min-height: 44px; white-space: normal; }
.rd-sidebar .rd-side-link>span { min-width: 0; overflow-wrap: anywhere; }

.rd-nav-close { display: none; }
@media(max-width:620px) {
 .rd-sidebar { visibility: hidden; }
 .mobile-nav-open .rd-sidebar { visibility: visible; }
 .rd-nav-close { display: block; min-height: 44px; margin-bottom: 14px; border: 1px solid #c8dfd5; border-radius: 8px; color: #07664c; }
}
