:root{--tf-navy:#10263b;--tf-green:#2b7d62;--tf-bg:#f6f8fa;--tf-line:#dfe5ea;--tf-muted:#647383}
.tf-card{background:#fff;border:1px solid var(--tf-line);border-radius:16px;padding:24px;margin:20px 0;box-shadow:0 8px 24px rgba(16,38,59,.05)}
.tf-grid{display:grid;gap:18px}.tf-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tf-form label{display:block;font-weight:700;margin:12px 0}.tf-form input[type=text],.tf-form input[type=email],.tf-form input[type=password],.tf-form input[type=date],.tf-form input:not([type]),.tf-form select{display:block;width:100%;padding:11px;border:1px solid var(--tf-line);border-radius:9px;margin-top:6px;background:#fff}
.tf-button{display:inline-block;background:var(--tf-green);color:#fff!important;border:0;border-radius:9px;padding:10px 15px;text-decoration:none;font-weight:800;cursor:pointer}.tf-button.tf-small{padding:7px 10px;font-size:13px}
.tf-muted{color:var(--tf-muted);font-weight:400}.tf-notice{padding:12px 15px;background:#edf6f2;border:1px solid #bfdccc;border-radius:10px}.tf-table{width:100%;border-collapse:collapse}.tf-table th,.tf-table td{text-align:left;border-bottom:1px solid var(--tf-line);padding:11px;vertical-align:top}
.tf-category{border:1px solid var(--tf-line);border-radius:12px;padding:18px;margin:20px 0}.tf-category legend{font-weight:900;padding:0 8px}.tf-weight{background:#edf6f2;color:#286851;border-radius:999px;padding:4px 8px;font-size:12px}.tf-option{display:block!important;font-weight:500!important;border:1px solid var(--tf-line);padding:10px;border-radius:8px;margin:7px 0!important}.tf-cert{background:#fff8e7;padding:15px;border:1px solid #ecd89e;border-radius:9px}
.tf-report-head{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}.tf-score{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;border:14px solid #d9ebe4;font-size:40px;font-weight:900;color:var(--tf-green)}
@media(max-width:780px){.tf-grid-2,.tf-grid-3,.tf-report-head{grid-template-columns:1fr}.tf-table{font-size:13px}}

.tf-dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 20px}.tf-dashboard-head h2{margin:0}.tf-credit-chip{background:#edf6f2;color:#286851;border:1px solid #cde4da;border-radius:999px;padding:9px 14px;font-weight:800;white-space:nowrap}
.tf-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.tf-action-card{background:#fff;border:1px solid var(--tf-line);border-radius:14px;padding:18px;text-decoration:none!important;color:#172433!important;display:flex;flex-direction:column;gap:7px;min-height:132px;box-shadow:0 6px 18px rgba(16,38,59,.04);transition:.15s}.tf-action-card:hover{transform:translateY(-2px);border-color:#b8c9c1;box-shadow:0 10px 24px rgba(16,38,59,.08)}.tf-action-card.tf-action-primary{background:var(--tf-navy);color:#fff!important;border-color:var(--tf-navy)}.tf-action-card small{color:var(--tf-muted);line-height:1.35}.tf-action-card.tf-action-primary small{color:#d9e4eb}.tf-action-icon{font-size:26px;line-height:1}
.tf-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.tf-stat{background:#fff;border:1px solid var(--tf-line);border-radius:12px;padding:16px}.tf-stat span{display:block;font-size:27px;font-weight:900;color:var(--tf-navy)}.tf-stat small{color:var(--tf-muted)}
.tf-section-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.tf-section-title h3{margin:0}.tf-status{display:inline-block;border-radius:999px;padding:5px 9px;background:#eef3f6;color:#425365;font-size:12px;font-weight:700}.tf-list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--tf-line)}.tf-list-row:last-child{border-bottom:0}.tf-details{margin-top:16px;border-top:1px solid var(--tf-line);padding-top:12px}.tf-details summary{cursor:pointer;font-weight:800;color:var(--tf-green)}.tf-form-compact{margin-top:12px}.tf-table-wrap{overflow-x:auto}.tf-test-banner{background:#7a1f1f;color:#fff;padding:11px 15px;border-radius:10px;margin:12px 0 18px}.tf-test-banner strong{letter-spacing:.4px}
@media(max-width:980px){.tf-action-grid,.tf-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.tf-action-grid,.tf-stat-grid{grid-template-columns:1fr}.tf-dashboard-head{align-items:flex-start;flex-direction:column}}

.tf-reports-center{max-width:1050px}.tf-empty-state{padding:36px 18px;text-align:center;border:1px dashed var(--tf-line);border-radius:12px;background:#fafcfd}.tf-empty-state h3{margin-top:0}
.tf-report-list{margin-top:14px}.tf-report-list-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 4px;border-bottom:1px solid var(--tf-line);text-decoration:none!important;color:#172433!important}.tf-report-list-row:last-child{border-bottom:0}.tf-report-list-row:hover .tf-view-link{text-decoration:underline}.tf-report-list-main{display:flex;flex-direction:column;gap:4px}.tf-report-list-main strong{font-size:17px}.tf-report-list-main span,.tf-report-list-main small{color:var(--tf-muted)}.tf-report-list-meta{display:grid;grid-template-columns:auto;justify-items:end;gap:4px;min-width:165px}.tf-mini-score{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#edf6f2;color:var(--tf-green);font-size:20px;font-weight:900}.tf-report-list-meta small{color:var(--tf-muted);text-align:right}.tf-view-link{font-weight:800;color:var(--tf-green)}
.tf-report-toolbar{max-width:1050px;margin:0 auto 14px;display:flex;align-items:center;justify-content:space-between;gap:15px}.tf-print-report{max-width:1050px;margin:auto}.tf-print-brand{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--tf-navy);padding-bottom:12px;margin-bottom:22px}.tf-print-brand strong{font-size:25px;color:var(--tf-navy)}.tf-print-brand span{font-size:13px;color:var(--tf-muted)}.tf-print-report h1{margin:0 0 5px}.tf-report-summary-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin:22px 0}.tf-report-summary-grid>div{border:1px solid var(--tf-line);border-radius:10px;padding:12px}.tf-report-summary-grid small{display:block;color:var(--tf-muted);margin-bottom:4px}.tf-report-summary-grid strong{display:block}.tf-report-disclosure{margin-top:24px;border-top:1px solid var(--tf-line);padding-top:16px}
@media(max-width:700px){.tf-report-list-row{align-items:flex-start;flex-direction:column}.tf-report-list-meta{justify-items:start;grid-template-columns:auto 1fr;align-items:center}.tf-report-list-meta small{text-align:left}.tf-report-summary-grid{grid-template-columns:1fr}.tf-print-brand{align-items:flex-start;flex-direction:column;gap:4px}}
@media print{
  @page{margin:0.55in}
  body{background:#fff!important;color:#000!important}
  body *{visibility:hidden}
  .tf-print-report,.tf-print-report *{visibility:visible}
  .tf-print-report{position:absolute!important;left:0;top:0;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}
  .tf-no-print,.tf-report-toolbar,header,footer,nav,#wpadminbar{display:none!important}
  .tf-print-brand{border-bottom:2px solid #222}
  .tf-score{border-color:#555!important;color:#111!important}
  .tf-table{width:100%!important;border-collapse:collapse!important}
  .tf-table th,.tf-table td{border:1px solid #bbb!important;padding:7px!important;font-size:10pt!important}
  .tf-report-summary-grid>div{border:1px solid #bbb!important}
  a{color:#000!important;text-decoration:none!important}
}

/* ================================================================
   TenantFactor v0.5.0 visual system
   Soft professional page backgrounds designed to feel credible to
   property managers without making a one-property landlord feel as if
   they accidentally opened enterprise accounting software.
   ================================================================ */
body.tf-page-dashboard,
body.tf-page-evaluation,
body.tf-page-reports,
body.tf-page-methodology,
body.tf-page-auth{
  --tf-page-surface:rgba(255,255,255,.92);
  --tf-page-surface-strong:rgba(255,255,255,.97);
  --tf-soft-shadow:0 14px 36px rgba(16,38,59,.07);
  background-color:#f6f9f8!important;
  background-repeat:no-repeat!important;
  background-position:center top!important;
  background-size:cover!important;
  background-attachment:fixed!important;
}
body.tf-page-dashboard{background-image:url('backgrounds/dashboard.svg')!important}
body.tf-page-evaluation{background-image:url('backgrounds/evaluation.svg')!important}
body.tf-page-reports{background-image:url('backgrounds/reports.svg')!important}
body.tf-page-methodology{background-image:url('backgrounds/methodology.svg')!important}
body.tf-page-auth{background-image:url('backgrounds/auth.svg')!important}

/* Let the TenantFactor background breathe through common WP theme shells. */
body.tf-page-dashboard #page,
body.tf-page-evaluation #page,
body.tf-page-reports #page,
body.tf-page-methodology #page,
body.tf-page-auth #page,
body.tf-page-dashboard .site,
body.tf-page-evaluation .site,
body.tf-page-reports .site,
body.tf-page-methodology .site,
body.tf-page-auth .site,
body.tf-page-dashboard .site-content,
body.tf-page-evaluation .site-content,
body.tf-page-reports .site-content,
body.tf-page-methodology .site-content,
body.tf-page-auth .site-content,
body.tf-page-dashboard main,
body.tf-page-evaluation main,
body.tf-page-reports main,
body.tf-page-methodology main,
body.tf-page-auth main{
  background-color:transparent!important;
}

/* Keep page headings readable while avoiding a giant white sheet. */
body[class*="tf-page-"] .entry-header,
body[class*="tf-page-"] .page-header{
  background:transparent!important;
}
body[class*="tf-page-"] .entry-title,
body[class*="tf-page-"] .page-title{
  color:var(--tf-navy);
  letter-spacing:-.02em;
}
body[class*="tf-page-"] .entry-content{
  position:relative;
}

/* Shared glass-card treatment. High opacity preserves accessibility. */
body[class*="tf-page-"] .tf-card,
body[class*="tf-page-"] .tf-stat,
body[class*="tf-page-"] .tf-action-card{
  background:var(--tf-page-surface-strong);
  border-color:rgba(190,204,214,.72);
  box-shadow:var(--tf-soft-shadow);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
body[class*="tf-page-"] .tf-card{border-radius:16px}
body[class*="tf-page-"] .tf-action-card{border-radius:15px}
body.tf-page-dashboard .tf-action-card.tf-action-primary{
  background:linear-gradient(145deg,#10263b,#153651);
  border-color:#10263b;
  box-shadow:0 14px 30px rgba(16,38,59,.18);
}

/* Dashboard: confident but friendly, with a subtle welcome panel. */
body.tf-page-dashboard .tf-dashboard-head{
  position:relative;
  padding:22px 24px;
  border:1px solid rgba(203,218,212,.72);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  box-shadow:0 12px 32px rgba(16,38,59,.055);
  overflow:hidden;
}
body.tf-page-dashboard .tf-dashboard-head:after{
  content:"";
  position:absolute;
  width:210px;height:210px;border-radius:50%;
  right:-90px;top:-120px;
  background:rgba(43,125,98,.07);
  pointer-events:none;
}
body.tf-page-dashboard .tf-dashboard-head h2{color:var(--tf-navy);font-size:clamp(24px,3vw,32px)}
body.tf-page-dashboard .tf-credit-chip{box-shadow:0 5px 14px rgba(43,125,98,.08)}
body.tf-page-dashboard .tf-stat{position:relative;overflow:hidden}
body.tf-page-dashboard .tf-stat:before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:rgba(43,125,98,.48)
}
body.tf-page-dashboard .tf-table-wrap{border-radius:10px}
body.tf-page-dashboard .tf-table tr:hover td{background:rgba(237,246,242,.46)}

/* Evaluation: reduce the sense of a long intimidating form. */
body.tf-page-evaluation .tf-category{
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 24px rgba(16,38,59,.045);
  border-color:rgba(200,211,219,.82);
}
body.tf-page-evaluation .tf-category legend{color:var(--tf-navy);font-size:16px}
body.tf-page-evaluation .tf-option{
  background:rgba(250,252,252,.86);
  transition:border-color .15s,background .15s,transform .15s;
}
body.tf-page-evaluation .tf-option:hover{
  background:#f4f9f7;
  border-color:#bfd8cd;
  transform:translateX(2px);
}
body.tf-page-evaluation .tf-cert{background:rgba(255,248,231,.94)}

/* Reports: deliberately calmer and more document-like. */
body.tf-page-reports .tf-reports-center,
body.tf-page-reports .tf-print-report{background:rgba(255,255,255,.965)}
body.tf-page-reports .tf-report-list-row{
  margin:5px 0;
  padding:16px 12px;
  border:1px solid transparent;
  border-radius:12px;
  transition:background .15s,border-color .15s,transform .15s;
}
body.tf-page-reports .tf-report-list-row:hover{
  background:#f5f9f7;
  border-color:#d8e6e0;
  transform:translateY(-1px);
}
body.tf-page-reports .tf-mini-score{box-shadow:inset 0 0 0 1px #d5e7df}

/* Methodology: trust/education page, not a compliance dungeon. */
body.tf-page-methodology .tf-card{
  line-height:1.65;
}
body.tf-page-methodology .tf-card h2,
body.tf-page-methodology .tf-card h3{color:var(--tf-navy)}
body.tf-page-methodology .tf-card strong{color:#183b33}

/* Login and registration: narrow welcoming card with ample breathing room. */
body.tf-page-auth .entry-content > .tf-card,
body.tf-page-auth .entry-content > form.tf-card,
body.tf-page-auth .tf-card.tf-form{
  max-width:620px;
  margin:38px auto;
  padding:30px;
  background:rgba(255,255,255,.965);
  box-shadow:0 20px 48px rgba(16,38,59,.11);
}
body.tf-page-auth .tf-card h2{color:var(--tf-navy);font-size:28px;margin-top:0}
body.tf-page-auth .tf-form input,
body.tf-page-auth .tf-form select,
body.tf-page-auth #loginform input[type=text],
body.tf-page-auth #loginform input[type=password]{
  background:#fbfcfd;
  border-color:#cfd9df;
}
body.tf-page-auth #loginform .button-primary{
  background:var(--tf-green);
  border-color:var(--tf-green);
  border-radius:9px;
  font-weight:700;
  padding:4px 16px;
}

/* Friendlier focus treatment throughout the product. */
body[class*="tf-page-"] .tf-form input:focus,
body[class*="tf-page-"] .tf-form select:focus,
body[class*="tf-page-"] .tf-button:focus,
body[class*="tf-page-"] a:focus-visible{
  outline:3px solid rgba(43,125,98,.18);
  outline-offset:2px;
  border-color:#6fae96;
}

/* Mobile: fixed full-screen SVG backgrounds are needlessly expensive. */
@media(max-width:780px){
  body.tf-page-dashboard,
  body.tf-page-evaluation,
  body.tf-page-reports,
  body.tf-page-methodology,
  body.tf-page-auth{background-attachment:scroll!important;background-size:auto 900px!important}
  body.tf-page-dashboard .tf-dashboard-head{padding:18px}
  body.tf-page-auth .entry-content > .tf-card,
  body.tf-page-auth .entry-content > form.tf-card,
  body.tf-page-auth .tf-card.tf-form{margin:20px auto;padding:22px}
}

/* Printing remains clean and image-free. */
@media print{
  body.tf-page-reports{background:#fff!important;background-image:none!important}
}


/* ================================================================
   TenantFactor v0.5.1 richer visual layer
   More imagery, more depth, and translucent surfaces without turning
   the product into a casino lobby. Content and readability still win.
   ================================================================ */
body[class*="tf-page-"]{
  --tf-glass:rgba(255,255,255,.82);
  --tf-glass-soft:rgba(255,255,255,.72);
  --tf-glass-strong:rgba(255,255,255,.94);
  --tf-navy-wash:rgba(16,38,59,.065);
  --tf-green-wash:rgba(43,125,98,.10);
  background-color:#eef4f3!important;
}

/* A soft veil keeps the illustrations visible without fighting the UI. */
body[class*="tf-page-"]::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(246,250,249,.38) 42%,rgba(238,245,243,.62)),
    radial-gradient(circle at 12% 24%,rgba(43,125,98,.09),transparent 30%),
    radial-gradient(circle at 88% 8%,rgba(16,38,59,.07),transparent 28%);
}

/* Glass surfaces. Slightly lower opacity than v0.5.0 so the page art reads. */
body[class*="tf-page-"] .tf-card,
body[class*="tf-page-"] .tf-stat,
body[class*="tf-page-"] .tf-action-card{
  background:var(--tf-glass)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 14px 34px rgba(16,38,59,.09), inset 0 1px 0 rgba(255,255,255,.72)!important;
  backdrop-filter:blur(12px) saturate(115%);
  -webkit-backdrop-filter:blur(12px) saturate(115%);
}
body[class*="tf-page-"] .tf-card:hover{border-color:rgba(181,205,196,.88)!important}

/* Dashboard: stronger hero band and colored utility blocks. */
body.tf-page-dashboard .tf-dashboard-head{
  background:linear-gradient(115deg,rgba(255,255,255,.84),rgba(237,247,242,.72))!important;
  border:1px solid rgba(255,255,255,.8)!important;
  box-shadow:0 18px 45px rgba(16,38,59,.10)!important;
  backdrop-filter:blur(14px);
}
body.tf-page-dashboard .tf-dashboard-head:before{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:5px;
  background:linear-gradient(90deg,#2b7d62,rgba(43,125,98,.18),transparent 72%);
}
body.tf-page-dashboard .tf-action-card:not(.tf-action-primary):nth-child(2){background:rgba(239,248,244,.88)!important}
body.tf-page-dashboard .tf-action-card:not(.tf-action-primary):nth-child(3){background:rgba(242,247,252,.88)!important}
body.tf-page-dashboard .tf-action-card:not(.tf-action-primary):nth-child(4){background:rgba(248,247,240,.88)!important}
body.tf-page-dashboard .tf-stat:nth-child(1){background:rgba(242,248,246,.86)!important}
body.tf-page-dashboard .tf-stat:nth-child(2){background:rgba(244,247,251,.86)!important}
body.tf-page-dashboard .tf-stat:nth-child(3){background:rgba(248,248,243,.86)!important}
body.tf-page-dashboard .tf-stat:nth-child(4){background:rgba(239,248,244,.86)!important}
body.tf-page-dashboard .tf-action-card.tf-action-primary{
  background:linear-gradient(145deg,rgba(12,39,61,.98),rgba(17,66,72,.96))!important;
  box-shadow:0 18px 38px rgba(16,38,59,.24)!important;
}
body.tf-page-dashboard .tf-credit-chip{
  background:rgba(231,246,239,.88)!important;
  border-color:rgba(113,174,150,.34)!important;
  backdrop-filter:blur(8px);
}

/* Tables and list panels get their own translucent layer. */
body.tf-page-dashboard .tf-table-wrap,
body.tf-page-reports .tf-report-list{
  background:rgba(255,255,255,.43);
  border-radius:13px;
  padding:5px 10px;
}
body.tf-page-dashboard .tf-table th{color:#173146}
body.tf-page-dashboard .tf-table tr:hover td{background:rgba(226,242,235,.58)!important}

/* Evaluation: alternating category tints reduce visual fatigue. */
body.tf-page-evaluation form.tf-card{background:rgba(255,255,255,.78)!important}
body.tf-page-evaluation .tf-category:nth-of-type(4n+1){background:rgba(238,248,244,.86)!important}
body.tf-page-evaluation .tf-category:nth-of-type(4n+2){background:rgba(242,247,252,.86)!important}
body.tf-page-evaluation .tf-category:nth-of-type(4n+3){background:rgba(249,247,239,.86)!important}
body.tf-page-evaluation .tf-category:nth-of-type(4n){background:rgba(245,243,249,.86)!important}
body.tf-page-evaluation .tf-option{background:rgba(255,255,255,.64)!important}
body.tf-page-evaluation .tf-option:hover{background:rgba(255,255,255,.93)!important}

/* Reports: slightly richer heading area, report body stays calm. */
body.tf-page-reports .tf-reports-center{background:rgba(255,255,255,.84)!important}
body.tf-page-reports .tf-section-title{
  margin:-4px -4px 18px;
  padding:18px;
  border-radius:14px;
  background:linear-gradient(110deg,rgba(234,247,241,.9),rgba(241,247,252,.76));
}
body.tf-page-reports .tf-report-list-row{background:rgba(255,255,255,.55)}
body.tf-page-reports .tf-report-list-row:hover{background:rgba(242,249,246,.92)!important}
body.tf-page-reports .tf-mini-score{background:linear-gradient(145deg,#eef8f4,#dcefe7)!important}

/* Methodology: information panels feel editorial rather than bureaucratic. */
body.tf-page-methodology .tf-card{
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(245,250,248,.78))!important;
  border-left:4px solid rgba(43,125,98,.34)!important;
}
body.tf-page-methodology .tf-card:nth-of-type(even){
  background:linear-gradient(145deg,rgba(247,250,253,.88),rgba(255,255,255,.78))!important;
  border-left-color:rgba(16,38,59,.25)!important;
}

/* Auth pages: make the sign-in/register card feel like a welcome panel. */
body.tf-page-auth .entry-content > .tf-card,
body.tf-page-auth .entry-content > form.tf-card,
body.tf-page-auth .tf-card.tf-form{
  background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(245,251,248,.84))!important;
  border:1px solid rgba(255,255,255,.84)!important;
  box-shadow:0 26px 65px rgba(16,38,59,.16)!important;
  backdrop-filter:blur(16px) saturate(120%);
}

/* Forms sit on subtle frosted fields rather than stark white boxes. */
body[class*="tf-page-"] .tf-form input[type=text],
body[class*="tf-page-"] .tf-form input[type=email],
body[class*="tf-page-"] .tf-form input[type=password],
body[class*="tf-page-"] .tf-form input[type=date],
body[class*="tf-page-"] .tf-form input:not([type]),
body[class*="tf-page-"] .tf-form select{
  background:rgba(255,255,255,.82)!important;
  border-color:rgba(181,197,207,.8)!important;
  box-shadow:inset 0 1px 2px rgba(16,38,59,.035);
}

/* On narrow screens, reduce visual effects to keep scrolling smooth. */
@media(max-width:780px){
  body[class*="tf-page-"]::before{position:absolute}
  body[class*="tf-page-"] .tf-card,
  body[class*="tf-page-"] .tf-stat,
  body[class*="tf-page-"] .tf-action-card{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
}

@media print{
  body[class*="tf-page-"]::before{display:none!important}
}


/* v0.5.2 Property portfolio */
.tf-property-portfolio{overflow:visible}
.tf-portfolio-subtitle{margin:.2rem 0 0;font-size:.9rem}
.tf-property-toolbar{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:0 0 1rem;padding:.55rem .65rem;background:rgba(244,248,247,.82);border:1px solid rgba(22,76,60,.10);border-radius:12px}
.tf-property-toolbar>span{font-size:.78rem;font-weight:700;color:#5d6b69;margin-right:.1rem}
.tf-property-toolbar a{display:inline-flex;padding:.36rem .68rem;border-radius:999px;text-decoration:none;font-size:.78rem;font-weight:700;color:#233d4a;border:1px solid transparent}
.tf-property-toolbar a:hover,.tf-property-toolbar a.is-active{background:#fff;color:#0d7655;border-color:rgba(13,118,85,.18);box-shadow:0 2px 8px rgba(28,58,53,.07)}
.tf-property-list{display:flex;flex-direction:column;gap:.45rem}
.tf-property-group-head{display:flex;align-items:center;gap:.7rem;margin-top:.6rem;padding:.72rem .78rem;background:linear-gradient(110deg,rgba(11,48,72,.94),rgba(19,91,72,.91));color:#fff;border-radius:12px 12px 7px 7px;box-shadow:0 5px 14px rgba(16,52,61,.10)}
.tf-property-group-head:first-child{margin-top:0}
.tf-property-group-head strong{display:block;font-size:.92rem;letter-spacing:.01em}
.tf-property-group-head small{display:block;margin-top:.14rem;opacity:.82;font-size:.76rem}
.tf-building-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.13);font-size:1.05rem}
.tf-property-unit-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.68rem .72rem .68rem 1rem;margin-left:.6rem;border:1px solid rgba(30,69,79,.12);border-left:3px solid rgba(21,132,95,.32);border-radius:7px 11px 11px 7px;background:rgba(255,255,255,.76);backdrop-filter:blur(7px)}
.tf-property-unit-main{display:flex;align-items:center;gap:.65rem;min-width:0}
.tf-property-unit-main>div{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.tf-property-unit-main strong{font-size:.86rem;color:#18384a}
.tf-unit-badge{display:inline-flex;min-width:74px;justify-content:center;padding:.27rem .48rem;border-radius:8px;background:rgba(20,126,91,.09);color:#116d50;font-size:.74rem;font-weight:800}
.tf-property-edit{position:relative;flex:0 0 auto}
.tf-property-edit>summary{cursor:pointer;color:#0d7655;font-size:.76rem;font-weight:800;list-style:none;padding:.25rem .42rem}
.tf-property-edit>summary::-webkit-details-marker{display:none}
.tf-property-edit[open]{width:100%;flex-basis:100%}
.tf-property-unit-row:has(.tf-property-edit[open]){flex-wrap:wrap}
.tf-inline-edit{width:100%;margin-top:.65rem;padding:.8rem;background:rgba(246,249,249,.9);border-radius:10px;border:1px solid rgba(31,68,79,.10)}
.tf-add-property{margin-top:1rem}
.tf-optional{font-weight:500;color:#74817f;font-size:.72rem}
.tf-form-help{font-size:.78rem;margin:.2rem 0 .7rem}
@media(max-width:680px){.tf-property-unit-row{margin-left:0;align-items:flex-start}.tf-property-unit-main{align-items:flex-start}.tf-property-toolbar{gap:.25rem}.tf-property-toolbar a{font-size:.72rem;padding:.32rem .5rem}}

/* v0.5.3 shared TenantFactor brand system */
.tf-brand-masthead{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 24px;padding:14px 20px;border:1px solid rgba(20,65,77,.12);border-radius:18px;background:linear-gradient(115deg,rgba(255,255,255,.94),rgba(238,248,244,.86));box-shadow:0 12px 32px rgba(17,48,65,.09);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%)}
.tf-brand-link{display:block;line-height:0;max-width:min(620px,72%)}
.tf-brand-link img{display:block;width:100%;height:auto;max-height:92px;object-fit:contain;object-position:left center}
.tf-brand-promise{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#174f43}
.tf-brand-promise i{width:4px;height:4px;border-radius:50%;background:#299065}
body.tf-page-dashboard .tf-brand-masthead{background:linear-gradient(115deg,rgba(255,255,255,.94),rgba(230,245,239,.87))}
body.tf-page-evaluation .tf-brand-masthead{background:linear-gradient(115deg,rgba(255,255,255,.94),rgba(235,244,249,.88))}
body.tf-page-reports .tf-brand-masthead{background:linear-gradient(115deg,rgba(250,253,255,.95),rgba(231,245,239,.88))}
body.tf-page-methodology .tf-brand-masthead{background:linear-gradient(115deg,rgba(255,255,255,.95),rgba(239,246,242,.89))}
body.tf-page-auth .tf-brand-masthead{max-width:900px;margin-left:auto;margin-right:auto}
body[class*="tf-page-"] .tf-brand-masthead:after{content:"";width:56px;height:56px;flex:0 0 56px;background:url('tenantfactor-mark.png') center/contain no-repeat;opacity:.12}
@media(max-width:760px){.tf-brand-masthead{padding:12px 14px}.tf-brand-link{max-width:82%}.tf-brand-promise,.tf-brand-masthead:after{display:none!important}.tf-brand-link img{max-height:72px}}
@media print{.tf-brand-masthead{box-shadow:none;background:#fff!important;border-bottom:1px solid #ccd6da;border-radius:0}.tf-brand-promise{display:none}}

/* v0.5.4 dedicated property portfolio */
.tf-page-properties .tf-properties-page { max-width: 1180px; margin: 0 auto; }
.tf-page-properties .tf-property-portfolio { width: 100%; }
.tf-page-properties .tf-properties-head { max-width:1180px; margin: 0 auto 18px; }
.tf-page-properties .tf-property-list { max-height:none; }
.tf-page-properties .tf-property-unit-row { padding:14px 10px; }
@media (min-width:900px){.tf-page-properties .tf-property-portfolio{padding:26px 30px}.tf-page-properties .tf-add-property .tf-form{max-width:900px}}

/* v0.5.5 app-style property navigation */
.tf-app-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px;margin-top:18px}
.tf-app-tile{position:relative;display:flex;min-height:215px;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:22px 16px 18px;border:1px solid rgba(24,69,78,.12);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(239,248,245,.80));box-shadow:0 12px 28px rgba(17,48,65,.10);text-decoration:none!important;color:#17384a!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;backdrop-filter:blur(10px)}
.tf-app-tile:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(17,48,65,.14);border-color:rgba(19,125,91,.28)}
.tf-app-icon{width:86px;height:86px;border-radius:23px;display:grid;place-items:center;margin-bottom:15px;background:linear-gradient(145deg,#0d3553,#16815f);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 16px rgba(13,53,83,.19);color:white}
.tf-app-icon>span{font-size:2.15rem;font-weight:800;line-height:1}
.tf-unit-icon>span{font-size:1.45rem;letter-spacing:-.02em}
.tf-app-tile strong{display:block;font-size:.98rem;line-height:1.25;margin-bottom:7px}
.tf-app-tile small{display:block;color:#64777c;font-size:.78rem;line-height:1.4}
.tf-app-meta{display:inline-flex;margin-top:auto;padding:.28rem .55rem;border-radius:999px;background:rgba(17,117,83,.09);color:#12694e;font-size:.72rem;font-weight:800}
.tf-unit-tile-grid .tf-app-tile{min-height:185px}
.tf-unit-tile-grid .tf-app-icon{width:78px;height:78px;border-radius:21px}
.tf-property-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:8px 2px;font-size:.82rem;color:#63777c}
.tf-property-breadcrumb a{color:#0e7455;text-decoration:none;font-weight:700}.tf-property-breadcrumb strong{color:#294550}.tf-property-breadcrumb span{opacity:.55}
.tf-portfolio-count{display:inline-flex;padding:.4rem .7rem;border-radius:999px;background:rgba(17,117,83,.09);color:#116e50;font-size:.78rem;font-weight:800;white-space:nowrap}
.tf-unit-history-card h4{margin:18px 0 8px;color:#1f4557}
.tf-tenant-history-list{display:flex;flex-direction:column;gap:8px}
.tf-tenant-history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(26,65,76,.11);border-radius:14px;background:rgba(255,255,255,.72)}
.tf-tenant-history-row strong{display:block;color:#17384a}.tf-tenant-history-row small{display:block;margin-top:3px;color:#6c7c80;font-size:.76rem}
.tf-empty-state{text-align:center;padding:28px 18px;border:1px dashed rgba(35,80,91,.18);border-radius:18px;background:rgba(248,251,250,.72)}
.tf-empty-state strong{display:block;color:#21485a;margin-bottom:4px}.tf-empty-state p{margin:0;color:#758589;font-size:.86rem}
@media(max-width:620px){.tf-app-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tf-app-tile{min-height:190px;padding:17px 10px;border-radius:21px}.tf-app-icon{width:70px;height:70px;border-radius:19px}.tf-app-icon>span{font-size:1.7rem}.tf-tenant-history-row{align-items:flex-start;flex-direction:column}}

/* v0.5.6 property navigation + property photos */
.tf-property-nav-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tf-button-secondary{background:#eef5f2!important;color:#285b4e!important;border:1px solid rgba(40,91,78,.18)!important;box-shadow:none!important}
.tf-inline-back{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.tf-text-link{font-size:.86rem;font-weight:700;color:#0e7455;text-decoration:none}
.tf-property-app-wrap{position:relative;display:flex;flex-direction:column;min-width:0}
.tf-property-app-wrap .tf-app-tile{height:100%}
.tf-property-icon.tf-has-photo{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),0 8px 16px rgba(13,53,83,.18)}
.tf-property-icon.tf-has-photo>span{display:none}
.tf-property-photo-form{display:flex;align-items:center;justify-content:center;gap:7px;margin:8px 4px 0}
.tf-photo-upload-button{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;border:1px solid rgba(29,76,65,.16);background:rgba(255,255,255,.78);color:#315e53;font-size:.76rem;font-weight:800;cursor:pointer;line-height:1.1}
.tf-photo-upload-button:hover{background:#fff}
.tf-photo-upload-button input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.tf-photo-save{border:0;border-radius:999px;padding:7px 10px;background:#0e7455;color:#fff;font-size:.74rem;font-weight:800;cursor:pointer}
.tf-photo-save:hover{filter:brightness(.95)}
@media(max-width:620px){.tf-properties-head{align-items:flex-start}.tf-property-nav-actions{justify-content:flex-start}.tf-property-photo-form{gap:5px}.tf-photo-upload-button,.tf-photo-save{padding:7px 8px;font-size:.7rem}}


/* v0.5.8 property icon photo controls */
.tf-property-app-wrap{position:relative}
.tf-property-photo-overlay{position:absolute;left:50%;top:102px;transform:translateX(-50%);z-index:4;display:flex;align-items:center;justify-content:center;gap:6px;width:max-content;max-width:calc(100% - 18px);pointer-events:auto}
.tf-property-photo-form,.tf-property-photo-delete-form{margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:0!important}
.tf-photo-icon-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:28px;padding:5px 9px;border:1px solid rgba(255,255,255,.62);border-radius:999px;background:rgba(13,53,83,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 3px 10px rgba(9,33,48,.18);color:#fff;font-size:.69rem;font-weight:800;line-height:1;cursor:pointer;text-decoration:none}
.tf-photo-icon-button:hover{background:rgba(13,53,83,.92);color:#fff}
.tf-photo-icon-button input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.tf-photo-delete{border-color:rgba(255,255,255,.62);background:rgba(94,45,45,.80);font-family:inherit}
.tf-photo-delete:hover{background:rgba(94,45,45,.96)}
.tf-property-icon:not(.tf-has-photo){position:relative}
.tf-property-app-wrap .tf-property-app{padding-top:22px}
@media(max-width:620px){
  .tf-property-photo-overlay{top:84px;gap:4px;max-width:calc(100% - 8px)}
  .tf-photo-icon-button{min-height:26px;padding:5px 7px;font-size:.64rem}
  .tf-photo-control-text{display:none}
  .tf-photo-icon-button span:first-child{font-size:.86rem}
}


/* v0.5.9 property photo upload progress */
.tf-property-upload-progress{display:none;position:absolute;z-index:8;left:12px;right:12px;top:50%;transform:translateY(-50%);padding:13px 14px;border:1px solid rgba(255,255,255,.62);border-radius:16px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(13,53,83,.20);color:#244957;text-align:left}
.tf-is-uploading .tf-property-upload-progress{display:block}
.tf-is-uploading .tf-property-app{pointer-events:none;filter:saturate(.72) brightness(.98)}
.tf-is-uploading .tf-property-photo-overlay{pointer-events:none;opacity:.35}
.tf-upload-progress-label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.78rem;font-weight:800;color:#173f4f}
.tf-upload-spinner{width:14px;height:14px;border:2px solid rgba(14,116,85,.18);border-top-color:#0e7455;border-radius:50%;animation:tfUploadSpin .8s linear infinite;flex:0 0 auto}
.tf-upload-progress-track{height:8px;overflow:hidden;border-radius:999px;background:rgba(14,116,85,.12)}
.tf-upload-progress-bar{display:block;width:42%;height:100%;border-radius:999px;background:#0e7455;animation:tfUploadProgress 1.25s ease-in-out infinite}
.tf-property-upload-progress small{display:block;margin-top:7px;color:#687d82;font-size:.68rem;line-height:1.3}
@keyframes tfUploadSpin{to{transform:rotate(360deg)}}
@keyframes tfUploadProgress{0%{transform:translateX(-110%)}50%{transform:translateX(95%)}100%{transform:translateX(260%)}}
@media(max-width:620px){.tf-property-upload-progress{left:7px;right:7px;padding:11px 12px}.tf-upload-progress-label{font-size:.74rem}}
@media(prefers-reduced-motion:reduce){.tf-upload-spinner,.tf-upload-progress-bar{animation-duration:2.4s}}


/* v0.6.1: contextual add-to-complex form */
.tf-add-complex-property{margin-top:24px;}
.tf-complex-add-note{display:flex;flex-direction:column;gap:3px;margin:0 0 16px;padding:12px 14px;border:1px solid rgba(24,95,71,.18);border-radius:14px;background:rgba(226,244,236,.58);}
.tf-complex-add-note strong{color:#143f35;}
.tf-complex-add-note span{font-size:.92rem;color:#52645f;}


/* v0.6.2 property type tabs */
.tf-property-type-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 18px}
.tf-property-type-tab{display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid rgba(29,76,65,.14);border-radius:18px;background:rgba(255,255,255,.72);color:#294b56!important;text-decoration:none!important;box-shadow:0 7px 20px rgba(17,48,65,.06);transition:border-color .15s ease,background .15s ease,transform .15s ease}
.tf-property-type-tab:hover{transform:translateY(-1px);border-color:rgba(19,125,91,.30);background:rgba(255,255,255,.90)}
.tf-property-type-tab.is-active{border-color:rgba(15,119,85,.42);background:linear-gradient(145deg,rgba(231,247,240,.94),rgba(255,255,255,.90));box-shadow:inset 0 0 0 1px rgba(15,119,85,.08),0 9px 22px rgba(17,48,65,.07)}
.tf-type-tab-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:#123f58;color:#fff;font-size:1.35rem;font-weight:800}
.tf-property-type-tab.is-active .tf-type-tab-icon{background:#117453}
.tf-property-type-tab strong{display:block;font-size:.95rem;color:#193d4c;margin-bottom:3px}
.tf-property-type-tab small{display:block;color:#6b7d81;font-size:.76rem;line-height:1.35}
@media(max-width:620px){.tf-property-type-tabs{grid-template-columns:1fr}.tf-property-type-tab{padding:14px}.tf-type-tab-icon{width:44px;height:44px}}


/* v0.6.3 - persistent property type tabs */
.tf-property-type-tabs-global{margin:0 0 22px!important;padding:5px;border-radius:22px;background:rgba(240,247,245,.88);border:1px solid rgba(29,76,65,.12);box-shadow:0 8px 24px rgba(17,48,65,.06)}
.tf-property-type-tabs-global .tf-property-type-tab{min-height:78px;background:rgba(255,255,255,.70)}
.tf-property-type-tabs-global .tf-property-type-tab.is-active{background:#fff;box-shadow:0 5px 14px rgba(17,48,65,.10),inset 0 0 0 1px rgba(15,119,85,.12)}
.tf-property-type-tabs-global .tf-property-type-tab.is-active strong:after{content:'  • Selected';color:#117453;font-size:.72rem;font-weight:700;white-space:nowrap}
@media(max-width:620px){.tf-property-type-tabs-global{padding:4px}.tf-property-type-tabs-global .tf-property-type-tab{min-height:68px}}
