/* ============================================================================
   TowerDesk — Layout v5 (v1.0.9.135). Pairs with js/modules-layout-v5.js.
   Loads after shell-v4.css.
   ========================================================================== */

/* ── Footer: part of the page flow, never a band over the content ───────── */
body.td4 #td-footer {
  position: static !important; height: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
  background: transparent !important; border: 0 !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  padding: 4px 0 28px !important; z-index: auto !important;
}
body.td4 .ly { min-height: calc(100vh - 56px); }
@media (max-width: 760px) { body.td4 #td-footer { padding-bottom: calc(86px + env(safe-area-inset-bottom)) !important; } }

/* ── Page header card ───────────────────────────────────────────────────── */
:is(#pg, .md) [data-td-hero]::before { display: none !important; }
#pg [data-td-hero]:not([data-td-hero="panel"]) { border-radius: 14px !important; margin-bottom: 20px !important; }
#pg [data-td-hero][data-td4-hx] { display: block !important; padding: 22px 24px !important; }
#pg [data-td4-flushtop] { margin-top: 0 !important; padding-top: 0 !important; }
#pg [data-td-hero][data-td4-hx][data-td4-flushtop] { padding-top: 22px !important; }

[data-td4-hx-row] { display: flex !important; align-items: flex-start; gap: 14px 24px; flex-wrap: wrap; width: 100%; }
[data-td4-hx-head] { flex: 1 1 380px; min-width: 0; display: block; }
[data-td4-hx-head] > * { margin-left: 0 !important; padding-left: 0 !important; }
[data-td4-hx-head] > :not(:has(button, .btn, select, input)) { max-width: 820px; }
[data-td4-hx-head] > :not(:first-child) { margin-top: 4px !important; }
[data-td4-hx-head] h1, [data-td4-hx-head] h2, [data-td4-hx-head] h3 { display: flex !important; align-items: center; gap: 10px; flex-wrap: wrap; }
#pg [data-td4-hx-head] :is(h1, h2, h3, [class*="hero-title"]) { font-size: 24px !important; line-height: 1.2 !important; }
#pg [data-td4-hx-head] :is(h1, h2, h3) .td-ico-wrap { margin-right: 0 !important; }
#pg [data-td4-hx-head] > * > p, #pg [data-td4-hx-head] > p, #pg [data-td4-hx-head] [class*="sub"] { font-size: 14px !important; line-height: 1.5 !important; color: var(--ws-muted) !important; }
/* a title block that is itself a flex row of [icon][text] keeps that shape */
[data-td4-hx-head] > div:has(> svg, > .td-ico-wrap, > [class*="icon"]) { display: flex; align-items: center; gap: 12px; }

[data-td4-hx-act] { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; flex: 0 1 auto; margin-left: auto; max-width: 100%; }
[data-td4-hx-act] > * { margin: 0 !important; flex: 0 0 auto; }
[data-td4-hx-act] > div, [data-td4-hx-act] > span { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px; align-items: center; width: auto !important; }
[data-td4-hx-act] :is(button, .btn, a.btn) { width: auto !important; }
/* shell-v4 lifts page FABs above the phone tab bar with bottom:80px — a header button named *-fab is not one */
#pg [data-td-hero] [class$="-fab"], #pg [data-td-hero] [class*="-fab "] { bottom: auto !important; top: auto !important; position: relative !important; }
#pg [data-td4-hx-act] :is(button, .btn, a.btn):not([class*="tab"]) { min-height: 38px !important; height: auto; white-space: nowrap; }
#pg [data-td4-hx-act] select { height: 38px !important; border: 1px solid var(--ws-line-strong) !important; border-radius: 8px !important; background-color: #fff !important; padding: 0 30px 0 12px !important; font-size: 13.5px !important; font-weight: 500 !important; color: var(--ws-ink-2) !important; }
#pg [data-td-hero] :is(button, .btn, a)[data-td4-primary]:not(#td4z):not(#td4y), #pg [data-td4-primary]:not(#td4z):not(#td4y) {
  background: var(--c500) !important; background-image: none !important; color: #fff !important;
  border: 1px solid color-mix(in srgb, var(--c500) 85%, #000) !important; box-shadow: 0 1px 2px rgba(16, 24, 40, .12) !important;
}
#pg [data-td4-primary]:not(#td4z):not(#td4y):hover { background: var(--c600) !important; }
#pg [data-td4-primary]:not(#td4z) .td-ico-wrap { color: #fff !important; }

/* the strip: full width under the title row */
#pg [data-td4-hx] > [data-td-stats] { width: 100% !important; margin: 18px 0 0 !important; padding: 16px 0 0 !important; border-top: 1px solid var(--ws-line) !important; }
#pg [data-td4-hx] [data-td-stats] > [data-td-stat] { flex: 1 1 0 !important; background: transparent !important; box-shadow: none !important; border-top: 0 !important; border-right: 0 !important; border-bottom: 0 !important; border-radius: 0 !important; }
#pg [data-td4-hx] [data-td-stats] > [data-td-stat] [data-td-stat-n] { color: var(--ws-ink) !important; }
#pg [data-td4-empty]:not(#td4z), #pg [data-td-hero] [data-td4-empty]:not(#td4z) { display: none !important; }
#pg [data-td4-dup]:not(#td4z), #pg [data-td-hero] [data-td-stats][data-td4-dup]:not(#td4z) { display: none !important; }
/* the stat cell's own inner parts are not cells — no hairlines inside a cell */
#pg [data-td-hero] [data-td-stat] [class*="stat"], #pg [data-td-hero] [data-td-stat] [class*="kpi"], #pg [data-td-hero] [data-td-stat] [class*="tile"], #pg [data-td-hero] [data-td-stat] [class*="metric"] { border-left: 0 !important; padding: 0 !important; background: transparent !important; }
#pg [data-td-hero] [data-td-stat] > :not([data-td-stat-n]):not([data-td-stat-m]):not(svg):not(.td-ico-wrap),
#pg [data-td-hero] [data-td-stat] [data-td-stat-core] > :not([data-td-stat-n]):not([data-td-stat-m]):not(svg):not(.td-ico-wrap) {
  font-size: 11px !important; font-weight: 600 !important; letter-spacing: .06em !important; text-transform: uppercase !important; color: var(--ws-muted) !important; border: 0 !important; padding: 0 !important; margin: 0 !important; line-height: 1.35 !important;
}
#pg [data-td-stats="page"] [data-td-stat] [data-td-stat-l] { font-size: 11px !important; font-weight: 600 !important; letter-spacing: .06em !important; text-transform: uppercase !important; color: var(--ws-muted) !important; }

@media (max-width: 760px) {
  #pg [data-td-hero][data-td4-hx] { padding: 16px !important; }
  [data-td4-hx-head] { flex-basis: 100%; }
  [data-td4-hx-act] { justify-content: flex-start; margin-left: 0; width: 100%; }
  #pg [data-td4-hx-head] :is(h1, h2, h3, [class*="hero-title"]) { font-size: 20px !important; }
}

/* ── Brand harmoniser targets ───────────────────────────────────────────── */
#pg [data-td4-hb="S"], .mo [data-td4-hb="S"] { background: var(--c500) !important; background-image: none !important; border-color: var(--c500) !important; }
#pg [data-td4-hb="M"], .mo [data-td4-hb="M"] { background: var(--c100) !important; background-image: none !important; }
#pg [data-td4-hb="T"], .mo [data-td4-hb="T"] { background: color-mix(in srgb, var(--c500) 8%, #fff) !important; background-image: none !important; }
#pg [data-td4-hc], .mo [data-td4-hc] { color: var(--c600) !important; }
#pg [data-td4-hc] svg, .mo [data-td4-hc] svg { color: inherit; }
#pg [data-td4-hbd="D"], .mo [data-td4-hbd="D"] { border-color: var(--c500) !important; }
#pg [data-td4-hbd="L"], .mo [data-td4-hbd="L"] { border-color: var(--c200) !important; }

/* ── Toolbars: one control height ───────────────────────────────────────── */
#pg [data-td4-bar] :is(input[type="text"], input[type="search"], input:not([type]), input[type="date"], select) { height: 38px !important; min-height: 38px !important; font-size: 13.5px !important; box-sizing: border-box !important; }
#pg [data-td4-bar] select { font-weight: 500 !important; }
#pg [data-td4-bar] :is(button, .btn, a.btn):not([class*="pill"]):not([class*="chip"]):not([class*="tab"]):not([class*="seg"]):not([class*="view"]):not([class*="mode"]):not([role="tab"]) { min-height: 38px !important; }

/* ── Glyphs drawn by stylesheets (emoji in CSS content) ─────────────────── */
:root { --td5-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); --td5-chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E"); --td5-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.at-toolbar-search::before, .dl-toolbar-search::before, .ss-toolbar-search::before, .pl-toolbar-search::before, .eb-toolbar-search::before, .qr-toolbar-search::before {
  content: '' !important; width: 15px !important; height: 15px !important; opacity: 1 !important; font-size: 0 !important;
  background: var(--ws-faint) !important; -webkit-mask: var(--td5-search) center / contain no-repeat; mask: var(--td5-search) center / contain no-repeat;
}
.agm-details summary::before { content: '' !important; display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; background: currentColor; -webkit-mask: var(--td5-chev) center / contain no-repeat; mask: var(--td5-chev) center / contain no-repeat; transition: transform .15s; }
.agm-details[open] summary::before { content: '' !important; transform: rotate(90deg); }
.dl-entry-fu-notes::before, .ssr-anon-banner::before, .plr-anon-note::before, .mo:has(.ntk-form-grid) .md-h h2::before, .insp-hero2::after, .tmb2-topbar::after, .fs-hero::after, .cp-res-hero::before, .lb-mod-summary::before, .lb-hero::after, .hg-ss-highlight::after { content: none !important; display: none !important; }
.rd-bulk-info::before { content: '' !important; display: inline-block; width: 14px; height: 14px; margin-right: 6px; vertical-align: -2px; background: currentColor; -webkit-mask: var(--td5-check) center / contain no-repeat; mask: var(--td5-check) center / contain no-repeat; }
.cnb-card.cnb-card-pinned::before { content: 'Pinned' !important; }

/* ── Profile header (My Profile — residents and staff) ──────────────────── */
#pg .pf-hero:not(#td4z) { display: flex !important; align-items: center; gap: 20px; flex-direction: row !important; text-align: left !important; background: #fff !important; background-image: none !important; color: var(--ws-ink) !important; border: 1px solid var(--ws-line) !important; border-radius: 14px !important; padding: 22px 24px !important; box-shadow: var(--ws-shadow) !important; }
#pg .pf-hero:not(#td4z)::before, #pg .pf-hero:not(#td4z)::after { display: none !important; }
#pg .pf-hero:not(#td4z) .pf-hero-avatar { width: 72px !important; height: 72px !important; border-radius: 50% !important; border: 0 !important; background: color-mix(in srgb, var(--c500) 12%, #fff) !important; color: var(--c700) !important; font-size: 26px !important; font-weight: 650 !important; display: flex !important; align-items: center; justify-content: center; flex: 0 0 72px; overflow: hidden; }
#pg .pf-hero:not(#td4z) .pf-hero-avatar img { width: 100%; height: 100%; object-fit: cover; }
#pg .pf-hero:not(#td4z) .pf-hero-name { font-family: var(--ff-display) !important; font-size: 24px !important; font-weight: 650 !important; color: var(--ws-ink) !important; letter-spacing: -.02em !important; margin: 0 0 2px !important; line-height: 1.2 !important; }
#pg .pf-hero:not(#td4z) .pf-hero-title { font-family: var(--ff-body) !important; font-size: 14px !important; font-weight: 400 !important; color: var(--ws-muted) !important; margin: 0 0 10px !important; letter-spacing: 0 !important; line-height: 1.45 !important; }
#pg .pf-hero:not(#td4z) .pf-hero-badges { display: flex !important; flex-wrap: wrap; gap: 6px; justify-content: flex-start !important; background: transparent !important; border: 0 !important; padding: 0 !important; max-width: none !important; }
#pg .pf-hero:not(#td4z) .pf-hero-badge { background: var(--s50, #f8f9fa) !important; border: 1px solid var(--ws-line) !important; color: var(--ws-ink-2) !important; backdrop-filter: none !important; font-size: 12px !important; font-weight: 500 !important; padding: 4px 10px !important; border-radius: 999px !important; }
#pg .pf-hero:not(#td4z) .pf-hero-meta { color: var(--ws-faint) !important; font-size: 12px !important; margin-top: 10px !important; }
@media (max-width: 760px) { #pg .pf-hero:not(#td4z) { flex-direction: column !important; align-items: flex-start; padding: 18px !important; } }

/* ── Page fixes ─────────────────────────────────────────────────────────── */
@media (max-width: 760px) { #pg .lt-row { grid-template-columns: 1fr 1fr !important; } #pg .lt-row > div:first-child { grid-column: 1 / -1; } }
#pg [data-plrtab] { height: 34px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--ws-line-strong); background: #fff; font: 600 13px/1 var(--ff-body); color: var(--ws-ink-2); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
#pg [data-plrtab]:hover { background: var(--ws-hover); }
#pg [data-plrtab].is-primary { background: var(--c500); border-color: var(--c500); color: #fff; }
/* icons inside header buttons are glyphs, not tiles (ui-pro's [class*="-ic"] tile rule caught .td-ico-wrap) */
#pg [data-td-hero] :is(button, .btn, a) .td-ico-wrap:not(#td4z) { background: transparent !important; border-radius: 0 !important; color: inherit !important; }
#pg [data-td-hero] [data-td4-primary] .td-ico-wrap:not(#td4z) { color: #fff !important; }
/* Buttons never break a label into a letter column; rows that push a title
   and its actions apart wrap on a phone instead of squeezing the buttons. */
#pg :is(button, .btn):not(:has(div, p, br, ul, table)) { white-space: nowrap; }
@media (max-width: 760px) {
  #pg [style*="justify-content:space-between"], #pg [style*="justify-content: space-between"] { flex-wrap: wrap !important; row-gap: 8px; }
  #pg [style*="display:flex;gap"]:has(> button) { flex-wrap: wrap; }
}
@media (max-width: 760px) {
  #pg table[data-td4-emptytable] { min-width: 0 !important; width: 100% !important; }
  #pg table[data-td4-emptytable] thead { display: none !important; }
  #pg table[data-td4-emptytable] td { white-space: normal !important; padding: 28px 16px !important; }
}
#pg [data-td4-hx-head] [data-td4-title]:not(#td4z) { font-family: var(--ff-display) !important; font-size: 24px !important; font-weight: 650 !important; line-height: 1.2 !important; letter-spacing: -.02em !important; color: var(--ws-ink) !important; margin: 0 !important; }
@media (max-width: 760px) {
  #pg [data-td4-hx-head] [data-td4-title]:not(#td4z) { font-size: 20px !important; }
  #pg table th { white-space: nowrap !important; }
}
@media (max-width: 760px) {
  #pg [class*="search"]:has(> input) { flex: 1 1 100% !important; min-width: 0 !important; max-width: 100% !important; }
  #pg [class*="search"] > input { min-width: 0 !important; width: 100% !important; max-width: 100% !important; }
}
