/* ═══════════════════════════════════════════════════════════════════════════
   SYRE Report Viewer — Complete Card Styles
   All design tokens resolved to literal CSS values.
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   1. BASE RESET & PAGE LAYOUT
   ═══════════════════════════════════════════════════════════════════════════ */

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 10pt; color: #475569; line-height: 1.6; background: #f8fafc; padding-top: 56px; }
.page { max-width: 800px; padding: 32px; margin: 0 auto; background: white; }
@media print { body { background: white; padding-top: 0; } .nav-header { display: none; } .syre-header-banner { display: none !important; } }


/* ═══════════════════════════════════════════════════════════════════════════
   2. RESPONSIVE TYPOGRAPHY SCALING (CSS variables)
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  --type-scale: 0.85;
  --font-size-xxs: calc(0.5rem * var(--type-scale));
  --font-size-xs: calc(0.5625rem * var(--type-scale));
  --font-size-sm: calc(0.625rem * var(--type-scale));
  --font-size-base: calc(0.6875rem * var(--type-scale));
  --font-size-md: calc(0.75rem * var(--type-scale));
  --font-size-lg: calc(0.875rem * var(--type-scale));
  --font-size-xl: calc(1rem * var(--type-scale));
  --font-size-xxl: calc(1.125rem * var(--type-scale));
  --font-size-hero: calc(1.5rem * var(--type-scale));
  --font-size-mega: calc(2rem * var(--type-scale));
}

@media screen and (min-width: 640px) {
  :root { --type-scale: 0.9; }
}

@media screen and (min-width: 768px) {
  :root { --type-scale: 0.95; }
}

@media screen and (min-width: 1024px) {
  :root { --type-scale: 1; }
}

/* Print always uses original pt sizes (no scaling) */
@media print {
  :root {
    --font-size-xxs: 8pt;
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 11pt;
    --font-size-md: 12pt;
    --font-size-lg: 14pt;
    --font-size-xl: 16pt;
    --font-size-xxl: 18pt;
    --font-size-hero: 24pt;
    --font-size-mega: 32pt;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   3. SYRE HEADER BANNER (fixed top bar)
   ═══════════════════════════════════════════════════════════════════════════ */

.syre-header-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #1a1a1a;
  padding: 12px 24px;
}

.syre-header-banner a { text-decoration: none; }

.syre-header-logo {
  display: flex;
  align-items: center;
  gap: 12px;
}

.syre-header-logo-text {
  font-size: 14pt;
  font-weight: 400;
  color: #ffffff;
}

.syre-header-logo-text span { font-weight: 500; }

.syre-header-tagline {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
  padding-left: 12px;
  border-left: 2px solid #ffffff;
}

.syre-header-cta {
  font-size: 10pt;
  font-weight: 500;
  color: #ffffff;
  background: #b8860b;
  padding: 8px 20px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.syre-header-cta:hover { background: #a67c15; }

@media (max-width: 640px) {
  .syre-header-tagline { display: none; }
  .syre-header-cta { font-size: 9pt; padding: 6px 12px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   4. LOADING / ERROR STATES
   ═══════════════════════════════════════════════════════════════════════════ */

.loading { text-align: center; padding: 60px; color: #64748b; }
.error { text-align: center; padding: 60px; color: #dc2626; }
.report-footer { margin-top: 32px; padding-top: 16px; border-top: 1px solid #e2e8f0; text-align: center; font-size: 8pt; color: #94a3b8; }


/* ═══════════════════════════════════════════════════════════════════════════
   5. NAVIGATION HEADER + ACCORDION
   ═══════════════════════════════════════════════════════════════════════════ */

.nav-header {
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  padding: 16px 20px;
}

.nav-header .nav-meta {
  font-size: 10pt;
  color: #64748b;
  margin-bottom: 12px;
}

@media print {
  .nav-header { display: none; }
}

/* Navigation Chips */
.nav-chip {
  display: inline-block;
  padding: 8px 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s;
  cursor: pointer;
}

.nav-chip:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
}

.nav-chip.active {
  background: #c9941a;
  color: white;
  border-color: #c9941a;
}

/* SYRE Brand */
.nav-header .syre-brand {
  font-size: 16pt;
  letter-spacing: -0.01em;
  color: #1a1a1a;
}

.nav-header .syre-brand .syre-sy { font-weight: 300; }
.nav-header .syre-brand .syre-re { font-weight: 700; }

/* Navigation Controls */
.nav-header .nav-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.nav-header .nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-header .nav-link {
  font-size: 8pt;
  font-weight: 500;
  color: #64748b;
  text-decoration: none;
  padding: 4px 8px;
  border-radius: 6px;
  transition: all 0.2s;
}

.nav-header .nav-link:hover {
  color: #1a1a1a;
  background: #f8fafc;
}

.nav-header .nav-cta {
  font-size: 8pt;
  font-weight: 600;
  color: white;
  background: #c9941a;
  border: none;
  padding: 4px 12px;
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s;
}

.nav-header .nav-cta:hover { background: #a67c15; }

/* Expand/Collapse Button */
.nav-header .expand-collapse-btn {
  padding: 4px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 8pt;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  transition: all 0.2s;
  display: none;
}

.nav-header.js-enabled .expand-collapse-btn { display: inline-block; }

.nav-header .expand-collapse-btn:hover {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #1a1a1a;
}

/* Responsive: Stack CTAs on mobile */
@media (max-width: 640px) {
  .nav-header .nav-controls { flex-wrap: wrap; gap: 8px; }
  .nav-header .nav-actions { order: 3; width: 100%; justify-content: flex-end; margin-top: 4px; }
  .nav-header .nav-link { font-size: 10px; padding: 5px 8px; }
  .nav-header .nav-cta { font-size: 10px; padding: 5px 10px; }
}

/* Accordion Categories */
.nav-header .accordion-category { border-bottom: 1px solid #f1f5f9; }
.nav-header .accordion-category:last-child { border-bottom: none; }

.nav-header .accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  cursor: pointer;
  user-select: none;
  transition: background 0.2s;
}

.nav-header .accordion-header:hover {
  background: #f8fafc;
  margin: 0 -20px;
  padding: 12px 20px;
}

.nav-header .accordion-title { display: flex; align-items: center; gap: 8px; }

.nav-header .accordion-arrow {
  font-size: 9pt;
  color: #64748b;
  transition: transform 0.2s;
}

.nav-header .accordion-label {
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #1a1a1a;
}

.nav-header .accordion-count {
  font-size: 8pt;
  font-weight: 500;
  color: #94a3b8;
  background: #f8fafc;
  padding: 2px 8px;
  border-radius: 10px;
}

.nav-header .accordion-body {
  max-height: 200px;
  padding-bottom: 12px;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
}

.nav-header .accordion-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-left: 16px;
}

/* No-JS fallback: show all expanded by default */
.nav-header .accordion-arrow { transform: rotate(90deg); }

/* When JS adds this class, collapse by default */
.nav-header.js-enabled .accordion-body { max-height: 0; padding-bottom: 0; }
.nav-header.js-enabled .accordion-arrow { transform: rotate(0deg); }
.nav-header.js-enabled .accordion-category.expanded .accordion-body { max-height: 200px; padding-bottom: 12px; }
.nav-header.js-enabled .accordion-category.expanded .accordion-arrow { transform: rotate(90deg); }

/* Premium Research Services Category */
.nav-header .accordion-category.premium {
  background: rgba(201, 148, 26, 0.1);
  margin: 12px -20px 0;
  padding: 0 20px;
  border-top: 1px solid rgba(201, 148, 26, 0.4);
  border-bottom: none;
}

.nav-header .accordion-category.premium .accordion-header { padding: 12px 0; }
.nav-header .accordion-category.premium .accordion-header:hover { background: rgba(201, 148, 26, 0.1); margin: 0 -20px; padding: 12px 20px; }
.nav-header .accordion-category.premium .accordion-label { color: #a67c15; }
.nav-header .accordion-category.premium .accordion-count { background: #c9941a; color: white; }
.nav-header .accordion-category.premium .nav-chip { border-color: rgba(201, 148, 26, 0.4); background: #ffffff; }
.nav-header .accordion-category.premium .nav-chip:hover { border-color: #c9941a; background: rgba(201, 148, 26, 0.1); }


/* ═══════════════════════════════════════════════════════════════════════════
   6. PFX REPORT BASE STYLES (.report-pfx wrapper)
   ═══════════════════════════════════════════════════════════════════════════ */

.report-pfx { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #475569; }
.report-pfx h1 { font-size: 24pt; font-weight: 400; color: #1a1a1a; }
.report-pfx h2 { font-size: 16pt; font-weight: 500; color: #1a1a1a; margin-bottom: 16px; border-bottom: none; padding-bottom: 0; }
.report-pfx h3 { font-size: 12pt; font-weight: 500; color: #1a1a1a; margin-bottom: 8px; }
.report-pfx .card { background: #fff; padding: 40px; margin-bottom: 20px; border: none; border-radius: 0; box-shadow: 0 1px 3px rgba(0,0,0,0.1); page-break-inside: avoid; }
.report-pfx .card-cover { margin: -32px -32px 20px -32px; }
.report-pfx .label { font-size: 9pt; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em; color: #94a3b8; }
.report-pfx .data-table { width: 100%; border-collapse: collapse; }
.report-pfx .data-table th, .report-pfx .data-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e2e8f0; font-size: 9pt; }
.report-pfx .data-table th { font-weight: 500; color: #1a1a1a; background: #f8fafc; }

@media screen and (max-width: 768px) {
  .report-pfx .card { padding: 24px; }
}
@media screen and (max-width: 640px) {
  .report-pfx .card { padding: 20px; }
}

/* Responsive page adjustments */
@media screen and (max-width: 768px) {
  .page { padding: 16px; }
  .report-pfx .card-cover { margin: -16px -16px 20px -16px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   7. PAGE CARD HEADER (Branded header at top of each card)
   ═══════════════════════════════════════════════════════════════════════════ */

.page-card-header { margin-bottom: 20px; }

.page-card-header .page-brand {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 4px;
  font-style: italic;
}

.page-card-header .page-brand .brand-syre { font-weight: 300; font-style: normal; }
.page-card-header .page-brand .brand-re { font-weight: 500; }
.page-card-header .page-brand .tm { font-size: 0.6em; vertical-align: super; font-style: normal; }

.page-card-header .page-section-title {
  font-size: 22pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  line-height: 1.2;
}

.page-card-header .page-divider { border-top: 1px solid #e2e8f0; margin: 0; }

@media screen and (max-width: 640px) {
  .page-card-header .page-section-title { font-size: 18pt; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   8. VERIFIED SOURCE CITATION
   ═══════════════════════════════════════════════════════════════════════════ */

.verified-source {
  margin-top: 24px;
  padding: 12px 16px;
  border-left: 3px solid #16a34a;
  background: #f0fdf4;
  font-size: 9pt;
  color: #64748b;
}

.verified-source .source-label { font-weight: 600; color: #16a34a; }


/* ═══════════════════════════════════════════════════════════════════════════
   9. SHARED GRID LAYOUTS
   ═══════════════════════════════════════════════════════════════════════════ */

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }

.stat-box { text-align: center; padding: 20px; background: #f8fafc; border: 1px solid #e2e8f0; }
.stat-value { font-size: 28pt; font-weight: 300; color: #1a1a1a; line-height: 1; }
.stat-label { font-size: 9pt; color: #64748b; margin-top: 8px; }

.section-card { background: #f8fafc; border: 1px solid #e2e8f0; padding: 0; margin-bottom: 16px; overflow: hidden; }
.section-card h3 { font-size: 12pt; font-weight: 500; color: #1a1a1a; margin-bottom: 12px; }
.section-card .data-table th { background: transparent; }
.section-card .data-table td, .section-card .data-table th { padding: 10px 16px; }

@media screen and (max-width: 640px) {
  .grid-2 { grid-template-columns: 1fr; }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .stat-value { font-size: 20pt; }
}

.table-scroll-wrapper { overflow-x: auto; }
.text-green { color: #16a34a; }
.value { font-size: 11pt; color: #1a1a1a; }


/* ═══════════════════════════════════════════════════════════════════════════
   10. INTRO CARD (card-intro)
   ═══════════════════════════════════════════════════════════════════════════ */

.card-intro { padding: 24px; }

.card-intro .intro-about {
  background: #1a1a1a;
  padding: 24px;
  border-radius: 8px;
  margin-bottom: 20px;
}

.card-intro .intro-about-title {
  font-size: 14pt;
  font-weight: 600;
  color: #94a3b8;
  margin: 0 0 12px 0;
}

.card-intro .intro-about-text {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  line-height: 1.7;
}

.card-intro .intro-disclaimer {
  border: 2px solid #dc2626;
  border-left-width: 4px;
  padding: 20px 24px;
  border-radius: 8px;
  background: #fee2e2;
}

.card-intro .intro-disclaimer-title {
  font-size: 11pt;
  font-weight: 700;
  color: #dc2626;
  margin: 0 0 12px 0;
}

.card-intro .intro-disclaimer-text {
  font-size: 9pt;
  color: #dc2626;
  margin: 0;
  line-height: 1.7;
}


/* ═══════════════════════════════════════════════════════════════════════════
   11. Cover (cover)
   Targets the viewer.html cover template class names:
   .cover-border-decor, .cover-brand, .cover-title-section,
   .cover-address, .cover-footer, .cover-prepared, .cover-meta
   ═══════════════════════════════════════════════════════════════════════════ */

.card-cover {
  display: flex;
  flex-direction: column;
  min-height: calc(11in - 1.5in);
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

/* Decorative top border */
.card-cover .cover-border-decor {
  height: 3px;
  background: #1a1a1a;
  width: 100%;
  margin-bottom: 32px;
}

/* SYRE brand mark */
.card-cover .cover-brand {
  font-size: 24pt;
  font-weight: 400;
  color: #1a1a1a;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}

.card-cover .cover-brand-sy { font-weight: 300; }
.card-cover .cover-brand-re { font-weight: 700; }

/* Report title section */
.card-cover .cover-title-section {
  margin-bottom: 40px;
}

.card-cover .cover-product-name {
  font-size: 14pt;
  color: #c9941a;
  font-weight: 400;
  margin: 0;
}

.card-cover .cover-tm {
  font-size: 0.6em;
  vertical-align: super;
  font-weight: 400;
}

.card-cover .cover-subtitle {
  font-style: italic;
  font-weight: 300;
}

/* Address block */
.card-cover .cover-address {
  margin-bottom: 24px;
}

.card-cover .cover-address h1 {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  letter-spacing: -0.01em;
  margin: 0 0 8px 0;
  line-height: 1.2;
  border-bottom: none;
  padding-bottom: 0;
}

.card-cover .cover-city {
  font-size: 16pt;
  font-weight: 300;
  color: #475569;
  margin: 0;
}

.card-cover .cover-county {
  font-size: 11pt;
  color: #94a3b8;
  margin: 4px 0 0 0;
}


/* Footer: prepared-for and meta info */
.card-cover .cover-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: auto;
  padding-top: 20px;
}

.card-cover .cover-prepared-label {
  font-size: 9pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 8px 0;
}

.card-cover .cover-prepared-name {
  font-size: 16pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .cover-prepared-company {
  font-size: 11pt;
  color: #64748b;
  margin: 4px 0 0 0;
}

.card-cover .cover-meta {
  text-align: right;
}

.card-cover .cover-meta p {
  font-size: 9pt;
  color: #94a3b8;
  margin: 0;
  line-height: 1.8;
}

/* Legal footer */
.card-cover .cover-legal {
  margin-top: 32px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.card-cover .cover-legal p {
  font-size: 8pt;
  color: #94a3b8;
  margin: 0;
  line-height: 1.6;
}

/* Responsive */
@media screen and (max-width: 900px) {
  .card-cover { min-height: auto; padding: 32px; }
  .card-cover .cover-address h1 { font-size: 24pt; }
}

@media screen and (max-width: 640px) {
  .card-cover { padding: 20px; }
  .card-cover .cover-address h1 { font-size: 20pt; }
  .card-cover .cover-footer { flex-direction: column; align-items: flex-start; gap: 16px; }
  .card-cover .cover-meta { text-align: left; }
}

@media print {
  .card-cover { page-break-after: always; min-height: auto; height: 100vh; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   12. Executive Summary PFX (executive-summary-pfx)
   ═══════════════════════════════════════════════════════════════════════════ */

.card-executive-summary-pfx .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-executive-summary-pfx .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-executive-summary-pfx .metric-card.metric-primary {
  background: linear-gradient(135deg, #1a1a1a 0%, #334155 100%);
  border-top: 3px solid #2563eb;
  color: white;
  border-left: none;
  border-right: none;
  border-bottom: none;
}

.card-executive-summary-pfx .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-executive-summary-pfx .metric-primary .metric-label {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-executive-summary-pfx .metric-primary .metric-value {
  color: white;
}

.card-executive-summary-pfx .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-executive-summary-pfx .metric-value .separator {
  color: #cbd5e1;
  margin: 0 2px;
}

.card-executive-summary-pfx .metric-subvalue {
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-subvalue {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-location {
  font-size: 14pt;
}

/* Card header - neutral blue accent */
.card-executive-summary-pfx h2 {
  border-bottom-color: #2563eb;
}

/* Section headers with blue bar */
.card-executive-summary-pfx h3 {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-executive-summary-pfx h3::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #2563eb;
}

/* Property Facts */
.card-executive-summary-pfx .property-facts {
  margin-bottom: 24px;
}

.card-executive-summary-pfx .glance-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 24px;
}

.card-executive-summary-pfx .glance-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .glance-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
}

.card-executive-summary-pfx .glance-value {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Market Context */
.card-executive-summary-pfx .market-context {
  margin-bottom: 16px;
}

.card-executive-summary-pfx .context-note {
  font-size: 9pt;
  color: #64748b;
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .context-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.card-executive-summary-pfx .context-item {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
}

.card-executive-summary-pfx .context-label {
  display: block;
  font-size: 9pt;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.card-executive-summary-pfx .context-value {
  display: block;
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Responsive */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .headline-metrics {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .card-executive-summary-pfx .glance-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .card-executive-summary-pfx .context-grid {
    grid-template-columns: 1fr;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   13. Subject Property (subject)
   ═══════════════════════════════════════════════════════════════════════════ */

.card-subject .property-address { margin-bottom: 20px; }
.card-subject .property-address h3 { font-size: 18pt; font-weight: 500; color: #1a1a1a; margin-bottom: 4px; }
.card-subject .property-address p { font-size: 10pt; color: #64748b; }
.card-subject .property-address .county { font-size: 8pt; color: #94a3b8; margin-top: 4px; }
.card-subject .property-details { margin-bottom: 20px; }
.card-subject .prepared-for { padding-top: 16px; border-top: 1px solid #e2e8f0; }
.card-subject .client-name { font-size: 11pt; font-weight: 500; color: #1a1a1a; }
.card-subject .client-company { font-size: 9pt; color: #64748b; }

/* Data grid */
.data-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 16px;
}

.data-item { padding: 12px; background: #f8fafc; border: 1px solid #e2e8f0; }
.data-item .value { font-size: 18pt; font-weight: 600; color: #1a1a1a; }


/* ═══════════════════════════════════════════════════════════════════════════
   14. Tax Assessment (tax-assessment)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- responsiveMetricsCardStyles('tax-assessment') resolved --- */

.card-tax-assessment .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-tax-assessment .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-tax-assessment .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-tax-assessment .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-tax-assessment .metric-primary .metric-label {
  color: #94a3b8;
}

.card-tax-assessment .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-tax-assessment .metric-primary .metric-value {
  color: white;
}

.card-tax-assessment .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-tax-assessment .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-tax-assessment .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-tax-assessment .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-tax-assessment .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* --- responsiveDataTableStyles('tax-assessment', '.data-table') resolved --- */

.card-tax-assessment .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-tax-assessment .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-tax-assessment .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-tax-assessment .data-table .text-right { text-align: right; }
.card-tax-assessment .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-tax-assessment .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-tax-assessment .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-tax-assessment .data-table th,
  .card-tax-assessment .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}

/* --- labelStyles('tax-assessment') resolved --- */

.card-tax-assessment .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Source attribution */
.card-tax-assessment .source-attribution {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.card-tax-assessment .source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-tax-assessment .source-county {
  background: rgba(37, 99, 235, 0.08);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .jurisdiction {
  font-size: 10pt;
  color: #64748b;
}

/* Metrics grid */
.card-tax-assessment .assessment-summary {
  margin-bottom: 24px;
}

.card-tax-assessment .metric-primary {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .metric-primary .metric-value {
  color: #2563eb;
}

/* Assessment breakdown */
.card-tax-assessment .assessment-breakdown {
  margin-bottom: 24px;
}

.card-tax-assessment .assessment-breakdown h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .total-row {
  background: #f8fafc;
  font-weight: 600;
}

.card-tax-assessment .total-row td {
  border-top: 2px solid #e2e8f0;
}

/* Tax exemptions */
.card-tax-assessment .tax-exemptions {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(22, 163, 74, 0.03);
  border: 1px solid rgba(22, 163, 74, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .tax-exemptions h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
  margin-bottom: 12px;
}

.card-tax-assessment .exemptions-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-tax-assessment .exemptions-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(22, 163, 74, 0.13);
  font-size: 10pt;
}

.card-tax-assessment .exemptions-list li:last-child {
  border-bottom: none;
}

.card-tax-assessment .exemption-type {
  color: #1a1a1a;
}

.card-tax-assessment .exemption-amount {
  color: #16a34a;
  font-weight: 600;
}

.card-tax-assessment .total-exemptions {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(22, 163, 74, 0.19);
}

/* Tax history */
.card-tax-assessment .tax-history {
  margin-bottom: 24px;
}

.card-tax-assessment .tax-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .history-table th {
  background: #f8fafc;
}

.card-tax-assessment .change-up {
  color: #dc2626;
}

.card-tax-assessment .change-down {
  color: #16a34a;
}

/* Purchase estimate */
.card-tax-assessment .purchase-estimate {
  margin-bottom: 24px;
}

.card-tax-assessment .purchase-estimate h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-box {
  padding: 16px;
  background: rgba(202, 138, 4, 0.03);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-label {
  font-size: 10pt;
  color: #64748b;
}

.card-tax-assessment .estimate-value {
  font-size: 14pt;
  font-weight: 700;
  color: #ca8a04;
}

.card-tax-assessment .estimate-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.19);
  line-height: 1.6;
}

.card-tax-assessment .estimate-note strong {
  color: #ca8a04;
}

/* Taxing districts */
.card-tax-assessment .taxing-districts {
  margin-bottom: 24px;
}

.card-tax-assessment .taxing-districts h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .districts-table th {
  background: #f8fafc;
}

/* Parcel info */
.card-tax-assessment .parcel-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
}

.card-tax-assessment .parcel-number {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
}

/* Data source note */
.card-tax-assessment .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-tax-assessment .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-tax-assessment .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-tax-assessment .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 640px) {
  .card-tax-assessment .source-attribution {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .estimate-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .parcel-info {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-tax-assessment .exemptions-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   15. Permits & Improvements (permits-improvements)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- responsiveMetricsCardStyles('permits-improvements') resolved --- */

.card-permits-improvements .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-permits-improvements .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-permits-improvements .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-permits-improvements .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-permits-improvements .metric-primary .metric-label {
  color: #94a3b8;
}

.card-permits-improvements .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-permits-improvements .metric-primary .metric-value {
  color: white;
}

.card-permits-improvements .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-permits-improvements .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-permits-improvements .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-permits-improvements .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-permits-improvements .headline-metrics,
  .card-permits-improvements .metric-grid,
  .card-permits-improvements .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-permits-improvements .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-permits-improvements .headline-metrics,
  .card-permits-improvements .metric-grid,
  .card-permits-improvements .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-permits-improvements .headline-metrics,
  .card-permits-improvements .metric-grid,
  .card-permits-improvements .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-permits-improvements .headline-metrics,
  .card-permits-improvements .metric-grid,
  .card-permits-improvements .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* --- responsiveDataTableStyles('permits-improvements', '.data-table') resolved --- */

.card-permits-improvements .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-permits-improvements .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-permits-improvements .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-permits-improvements .data-table .text-right { text-align: right; }
.card-permits-improvements .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-permits-improvements .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-permits-improvements .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-permits-improvements .data-table th,
  .card-permits-improvements .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}

/* --- labelStyles('permits-improvements') resolved --- */

.card-permits-improvements .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* --- statusBoxStyles('permits-improvements') resolved --- */

.card-permits-improvements .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-permits-improvements .status-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-permits-improvements .status-warning {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-permits-improvements .status-risk {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-permits-improvements .text-success { color: #16a34a; }
.card-permits-improvements .text-warning { color: #ca8a04; }
.card-permits-improvements .text-danger { color: #dc2626; }

/* Card header */
.card-permits-improvements h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #c9941a;
}

/* Methodology disclosure */
.card-permits-improvements .methodology-disclosure {
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
}

.card-permits-improvements .disclosure-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.card-permits-improvements .disclosure-icon {
  font-size: 12pt;
  color: #2563eb;
}

.card-permits-improvements .disclosure-title {
  font-size: 10pt;
  font-weight: 600;
  color: #2563eb;
}

.card-permits-improvements .methodology-disclosure > p {
  font-size: 9pt;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  line-height: 1.6;
}

.card-permits-improvements .source-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
  align-items: center;
}

.card-permits-improvements .source-legend .source-badge {
  margin-right: 4px;
}

/* Source badges */
.card-permits-improvements .source-badge {
  display: inline-block;
  font-size: 8pt;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.card-permits-improvements .source-badge.source-small {
  font-size: 8pt;
  padding: 1px 4px;
}

.card-permits-improvements .source-badge.source-inline {
  margin-left: 4px;
  vertical-align: middle;
}

.card-permits-improvements .source-county {
  background: #dbeafe;
  color: #2563eb;
  border: 1px solid #2563eb;
}

.card-permits-improvements .source-mls {
  background: #fef3c7;
  color: #ca8a04;
  border: 1px solid #ca8a04;
}

.card-permits-improvements .source-verified {
  background: #dcfce7;
  color: #16a34a;
  border: 1px solid #16a34a;
}

/* Permit alert box */
.card-permits-improvements .permit-alert {
  display: flex;
  gap: 12px;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 24px;
}

.card-permits-improvements .alert-warning {
  background: rgba(202, 138, 4, 0.06);
  border: 1px solid rgba(202, 138, 4, 0.25);
}

.card-permits-improvements .alert-icon {
  font-size: 16pt;
  flex-shrink: 0;
}

.card-permits-improvements .alert-content strong {
  display: block;
  font-size: 12pt;
  color: #ca8a04;
  margin-bottom: 4px;
}

.card-permits-improvements .alert-content p {
  font-size: 10pt;
  color: #1a1a1a;
  margin: 0;
  line-height: 1.5;
}

.card-permits-improvements .risk-note {
  margin-top: 8px !important;
  font-style: italic;
  color: #64748b !important;
}

/* Metrics grid customization */
.card-permits-improvements .permit-summary {
  margin-bottom: 24px;
}

.card-permits-improvements .metric-card {
  position: relative;
}

.card-permits-improvements .metric-card .source-badge {
  position: absolute;
  top: 8px;
  right: 8px;
}

.card-permits-improvements .metric-success {
  background: rgba(22, 163, 74, 0.03);
  border-color: rgba(22, 163, 74, 0.19);
}

.card-permits-improvements .metric-success .metric-value {
  color: #16a34a;
}

.card-permits-improvements .metric-warning {
  background: rgba(202, 138, 4, 0.03);
  border-color: rgba(202, 138, 4, 0.19);
}

.card-permits-improvements .metric-warning .metric-value {
  color: #ca8a04;
}

/* No data section */
.card-permits-improvements .no-data-section {
  text-align: center;
  padding: 24px;
  background: #f8fafc;
  border: 2px dashed #e2e8f0;
  border-radius: 8px;
  margin-bottom: 24px;
}

.card-permits-improvements .no-data-icon {
  font-size: 32pt;
  margin-bottom: 12px;
}

.card-permits-improvements .no-data-section h3 {
  font-size: 12pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-permits-improvements .no-data-section p {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
}

/* Open permits section */
.card-permits-improvements .open-permits-section {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(202, 138, 4, 0.02);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-permits-improvements .open-permits-section h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #ca8a04;
  margin-bottom: 12px;
}

.card-permits-improvements .row-warning {
  background: rgba(202, 138, 4, 0.03);
}

.card-permits-improvements .action-note {
  font-size: 9pt;
  color: #64748b;
  margin: 12px 0 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.13);
}

.card-permits-improvements .action-note strong {
  color: #ca8a04;
}

/* Permit history */
.card-permits-improvements .permit-history {
  margin-bottom: 24px;
}

.card-permits-improvements .permit-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-permits-improvements code {
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
  font-size: 9pt;
  background: #f8fafc;
  padding: 2px 8px;
  border-radius: 4px;
}

/* Status badges */
.card-permits-improvements .status-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
}

.card-permits-improvements .status-closed,
.card-permits-improvements .status-finaled,
.card-permits-improvements .status-complete {
  background: rgba(22, 163, 74, 0.08);
  color: #16a34a;
}

.card-permits-improvements .status-open,
.card-permits-improvements .status-pending,
.card-permits-improvements .status-active {
  background: rgba(202, 138, 4, 0.08);
  color: #ca8a04;
}

.card-permits-improvements .status-expired,
.card-permits-improvements .status-cancelled {
  background: rgba(100, 116, 139, 0.08);
  color: #64748b;
}

/* Disclosed improvements */
.card-permits-improvements .disclosed-improvements {
  margin-bottom: 24px;
  padding: 16px;
  background: #f8fafc;
  border-radius: 8px;
}

.card-permits-improvements .disclosed-improvements h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-permits-improvements .improvements-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-permits-improvements .improvements-list li {
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
  font-size: 10pt;
  color: #1a1a1a;
}

.card-permits-improvements .improvements-list li:last-child {
  border-bottom: none;
}

.card-permits-improvements .improvement-item {
  font-weight: 500;
  color: #1a1a1a;
}

.card-permits-improvements .improvement-year {
  color: #64748b;
  margin-left: 8px;
}

.card-permits-improvements .improvement-desc {
  display: block;
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-permits-improvements .disclosure-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  font-style: italic;
}

/* Major renovations grid */
.card-permits-improvements .major-renovations {
  margin-bottom: 24px;
}

.card-permits-improvements .major-renovations h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-permits-improvements .renovations-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.card-permits-improvements .renovation-card {
  padding: 12px;
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.13);
  border-radius: 8px;
  text-align: center;
  position: relative;
}

.card-permits-improvements .renovation-card .source-badge {
  position: absolute;
  top: 4px;
  right: 4px;
}

.card-permits-improvements .renovation-type {
  display: block;
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-permits-improvements .renovation-year {
  display: block;
  font-size: 14pt;
  font-weight: 700;
  color: #2563eb;
  margin: 4px 0;
}

.card-permits-improvements .renovation-scope {
  display: block;
  font-size: 9pt;
  color: #64748b;
}

/* Additions section */
.card-permits-improvements .additions-section {
  margin-bottom: 24px;
}

.card-permits-improvements .additions-section h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

/* --- premiumCtaStyles('permits-improvements', 'accent', '.premium-cta') resolved --- */

/* CTA Box - accent variant */
.card-permits-improvements .premium-cta {
  margin-top: 24px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(201, 148, 26, 0.1) 0%, rgba(201, 148, 26, 0.05) 100%);
  border: 2px solid #c9941a;
  border-radius: 8px;
}

.card-permits-improvements .premium-cta .cta-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.card-permits-improvements .premium-cta .cta-icon {
  font-size: 14pt;
}

.card-permits-improvements .premium-cta .cta-title {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-permits-improvements .premium-cta .cta-badge {
  margin-left: auto;
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 8px;
  background: #c9941a;
  color: white;
  border-radius: 4px;
}

.card-permits-improvements .premium-cta > p {
  font-size: 9pt;
  color: #1a1a1a;
  line-height: 1.6;
  margin: 0 0 12px 0;
}

.card-permits-improvements .premium-cta .cta-dual-audience {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 6px;
}

.card-permits-improvements .premium-cta .cta-audience {
  font-size: 9pt;
  color: #1a1a1a;
  line-height: 1.5;
}

.card-permits-improvements .premium-cta .cta-audience strong {
  display: block;
  font-size: 9pt;
  font-weight: 600;
  color: #c9941a;
  margin-bottom: 4px;
}

.card-permits-improvements .premium-cta .cta-contact {
  font-size: 9pt;
  color: #64748b;
  padding-top: 12px;
  border-top: 1px solid rgba(201, 148, 26, 0.4);
  margin-bottom: 0 !important;
}

.card-permits-improvements .premium-cta .cta-contact a {
  color: #c9941a;
  text-decoration: none;
}

.card-permits-improvements .premium-cta .cta-contact a:hover {
  text-decoration: underline;
}

.card-permits-improvements .premium-cta .cta-contact strong {
  color: #c9941a;
}

/* Responsive: Stack dual audience on mobile */
@media screen and (max-width: 640px) {
  .card-permits-improvements .premium-cta {
    padding: 12px;
  }

  .card-permits-improvements .premium-cta .cta-dual-audience {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

/* Benefit List - arrow variant */
.card-permits-improvements .premium-cta .cta-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-permits-improvements .premium-cta .cta-benefits li {
  font-size: 9pt;
  color: #1a1a1a;
  padding: 4px 0 4px 16px;
  position: relative;
}

.card-permits-improvements .premium-cta .cta-benefits li::before {
  content: '\2192';
  position: absolute;
  left: 0;
  color: #c9941a;
  font-weight: 700;
}

.card-permits-improvements .premium-cta .cta-benefits strong {
  color: #1a1a1a;
}

/* Data source note */
.card-permits-improvements .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-permits-improvements .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-permits-improvements .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-permits-improvements .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 768px) {
  .card-permits-improvements .renovations-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 640px) {
  .card-permits-improvements .methodology-disclosure {
    padding: 12px;
  }

  .card-permits-improvements .source-legend {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .card-permits-improvements .permit-alert {
    flex-direction: column;
  }

  .card-permits-improvements .renovations-grid {
    grid-template-columns: 1fr;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   16. Schools (schools)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- labelStyles('schools') resolved --- */

.card-schools .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* District info */
.card-schools .district-info {
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-schools .district-info .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Schools list */
.card-schools .schools-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.card-schools .school-item {
  padding: 12px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-schools .school-item:last-child {
  border-bottom: none;
}

.card-schools .school-name {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-schools .school-distance {
  font-size: 9pt;
  color: #64748b;
}

/* Schools note */
.card-schools .schools-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
  margin-top: 16px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   17. Location (location)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- scoreCircleStyles('location') resolved --- */

.card-location .score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.card-location .score-circle .value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-excellent { background: #dcfce7; color: #16a34a; }
.card-location .score-good { background: #bbf7d0; color: #15803d; }
.card-location .score-fair { background: #fef3c7; color: #ca8a04; }
.card-location .score-poor { background: #fee2e2; color: #dc2626; }

/* Scores grid */
.card-location .scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-location .score-item {
  text-align: center;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-location .score-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
  line-height: 1;
}

.card-location .score-label {
  font-size: 9pt;
  color: #64748b;
  margin-top: 8px;
}

.card-location .score-desc {
  font-size: 8pt;
  color: #94a3b8;
  margin-top: 4px;
}

/* Score circle color variants */
.card-location .score-very-good { color: #16a34a; }
.card-location .score-good { color: #16a34a; }
.card-location .score-fair { color: #ca8a04; }

/* Score legend */
.card-location .score-legend {
  margin-top: 12px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-location .legend-items {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 8pt;
  color: #64748b;
  align-items: center;
}

.card-location .legend-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 4px;
}

.card-location .legend-dot.dot-green { background: #16a34a; }
.card-location .legend-dot.dot-yellow { background: #ca8a04; }
.card-location .legend-dot.dot-red { background: #dc2626; }

/* Location note */
.card-location .location-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
  margin-top: 16px;
}

/* Scores section (bar style) */
.card-location .scores-section {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 20px 24px;
  margin-bottom: 20px;
}

.card-location .scores-section-title {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
}

.card-location .score-row {
  margin-bottom: 16px;
}

.card-location .score-row:last-child { margin-bottom: 0; }

.card-location .score-row-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.card-location .score-row-label {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-location .score-row-value {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
}

.card-location .score-bar {
  width: 100%;
  height: 8px;
  background: #e2e8f0;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 4px;
}

.card-location .score-bar-fill {
  height: 100%;
  background: #16a34a;
  border-radius: 4px;
  transition: width 0.3s ease;
}

.card-location .score-bar-fill.low { background: #dc2626; }
.card-location .score-bar-fill.medium { background: #ca8a04; }
.card-location .score-bar-fill.good { background: #16a34a; }

.card-location .score-row-meta {
  display: flex;
  justify-content: space-between;
  font-size: 8pt;
}

.card-location .score-row-desc { color: #64748b; }
.card-location .score-row-avg { color: #94a3b8; }

/* Location insight */
.card-location .location-insight {
  padding: 16px;
  background: #f0fdf4;
  border-left: 3px solid #16a34a;
  font-size: 9pt;
  color: #475569;
  margin-bottom: 16px;
  line-height: 1.6;
}

.card-location .location-insight strong { color: #16a34a; }

@media screen and (max-width: 640px) {
  .card-location .scores-grid { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   18. Flood (flood)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- statusBoxStyles('flood') resolved --- */

.card-flood .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-flood .status-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .status-warning {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-risk {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-flood .text-success { color: #16a34a; }
.card-flood .text-warning { color: #ca8a04; }
.card-flood .text-danger { color: #dc2626; }

/* --- dataTableStyles('flood') resolved --- */

.card-flood .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-flood .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-flood .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-flood .data-table .text-right { text-align: right; }
.card-flood .data-table .text-center { text-align: center; }

/* Flood status flex box */
.card-flood .flood-status {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
}

.card-flood .flood-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
  padding: 20px;
  flex: 1;
}

.card-flood .flood-risk {
  background: #fef3c7;
  border: 1px solid #fde68a;
  padding: 20px;
  flex: 1;
}

.card-flood .status-icon {
  font-size: 32pt;
  line-height: 1;
  margin-bottom: 8px;
}

.card-flood .icon-check { color: #16a34a; }
.card-flood .icon-warning { color: #ca8a04; }

.card-flood .status-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-flood .status-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-flood .status-desc {
  font-size: 9pt;
  color: #64748b;
  margin-top: 8px;
}

/* Insurance notice */
.card-flood .insurance-notice {
  background: #fee2e2;
  border: 1px solid #fca5a5;
  padding: 16px;
  margin-bottom: 16px;
  border-radius: 8px;
}

.card-flood .notice-title {
  font-size: 10pt;
  font-weight: 600;
  color: #dc2626;
  margin-bottom: 8px;
}

.card-flood .notice-text {
  font-size: 9pt;
  color: #1a1a1a;
  line-height: 1.6;
}

/* Flood details */
.card-flood .flood-details { margin-bottom: 16px; }

/* Text colors */
.card-flood .text-risk { color: #dc2626; }
.card-flood .text-safe { color: #16a34a; }
.card-flood .text-green { color: #16a34a; }

/* Flood note */
.card-flood .flood-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
  margin-top: 16px;
}

/* Flood zone badge */
.card-flood .flood-zone-badge {
  display: inline-block;
  padding: 4px 12px;
  background: #dcfce7;
  color: #16a34a;
  font-weight: 600;
  font-size: 9pt;
  border-radius: 4px;
}

.card-flood .flood-zone-badge.risk {
  background: #fef3c7;
  color: #ca8a04;
}

/* Flood safe note */
.card-flood .flood-safe-note {
  padding: 16px;
  background: #f0fdf4;
  border-left: 3px solid #16a34a;
  font-size: 9pt;
  color: #475569;
  margin-bottom: 16px;
  line-height: 1.6;
}

/* Flood risk note */
.card-flood .flood-risk-note {
  padding: 16px;
  background: #fef3c7;
  border-left: 3px solid #ca8a04;
  font-size: 9pt;
  color: #475569;
  margin-bottom: 16px;
  line-height: 1.6;
}


/* ═══════════════════════════════════════════════════════════════════════════
   19. Market Stats (market-stats)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- metricsCardStyles('market-stats') resolved --- */

.card-market-stats .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-market-stats .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-market-stats .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-market-stats .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-market-stats .metric-primary .metric-label {
  color: #94a3b8;
}

.card-market-stats .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-market-stats .metric-primary .metric-value {
  color: white;
}

.card-market-stats .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-market-stats .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-market-stats .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-market-stats .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* --- labelStyles('market-stats') resolved --- */

.card-market-stats .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Market condition banner */
.card-market-stats .market-condition {
  padding: 16px;
  margin-bottom: 20px;
  text-align: center;
}

.card-market-stats .market-condition-seller {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-market-stats .market-condition-buyer {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-market-stats .market-condition-balanced {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-market-stats .condition-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-market-stats .condition-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Stats grid - 4 column */
.card-market-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-market-stats .stat-box {
  text-align: center;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-market-stats .stat-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
}

.card-market-stats .stat-label {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

/* Market detail rows */
.card-market-stats .market-detail {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-market-stats .detail-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-market-stats .detail-row:last-child {
  border-bottom: none;
}

.card-market-stats .detail-label {
  font-size: 9pt;
  color: #64748b;
}

.card-market-stats .detail-value {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-market-stats .detail-value.positive {
  color: #16a34a;
}

.card-market-stats .detail-value.negative {
  color: #dc2626;
}

/* Market interpretation note */
.card-market-stats .market-note {
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}


/* ═══════════════════════════════════════════════════════════════════════════
   20. Comps (comps)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- dataTableStyles('comps', '.comps-table') resolved --- */

.card-comps .comps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-comps .comps-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-comps .comps-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-comps .comps-table .text-right { text-align: right; }
.card-comps .comps-table .text-center { text-align: center; }

/* --- summaryGridStyles('comps') resolved --- */

.card-comps .summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-comps .summary-box {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-comps .summary-box-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

/* --- labelStyles('comps') resolved --- */

.card-comps .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* --- cardIntroStyles('comps') resolved --- */

.card-comps .card-intro {
  font-size: 10pt;
  color: #64748b;
  margin-bottom: 16px;
  line-height: 1.6;
}

/* --- addressLinkStyles('comps', '.comp-link') resolved --- */

.card-comps .comp-link {
  color: #1e40af;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.card-comps .comp-link:hover {
  color: #334155;
}

@media print {
  .card-comps .comp-link {
    color: inherit;
    text-decoration: none;
  }
}

/* --- verifyLinkStyles('comps') resolved --- */

.card-comps .verify-link {
  color: #16a34a;
  font-size: 8pt;
  text-decoration: none;
}

.card-comps .verify-link:hover {
  text-decoration: underline;
}

/* Summary section */
.card-comps .comps-summary {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-comps .summary-box .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Note */
.card-comps .comps-note {
  margin-top: 16px;
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}


/* ═══════════════════════════════════════════════════════════════════════════
   21. Disclaimer (disclaimer)
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- responsiveDisclaimerGridStyles('disclaimer') resolved --- */

@media screen and (max-width: 768px) {
  .card-disclaimer .disclaimer-grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }

  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}

/* --- printStyles('disclaimer') resolved --- */

@media print {
  .card-disclaimer .headline-metrics,
  .card-disclaimer .summary-grid {
    gap: 12px;
  }
  .card-disclaimer .metric-card,
  .card-disclaimer .summary-box {
    padding: 12px;
  }
  .card-disclaimer .metric-value,
  .card-disclaimer .value-lg {
    font-size: 16pt;
  }
}

/* Disclaimer card styles */
.card-disclaimer { background: #ffffff; }

.card-disclaimer h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}

.card-disclaimer .disclaimer-intro {
  font-size: 10pt;
  color: #dc2626;
  margin-bottom: 24px;
  padding: 16px;
  background: #fee2e2;
  border-left: 4px solid #dc2626;
  line-height: 1.6;
}

.disclaimer-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.card-disclaimer .disclaimer-item {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.card-disclaimer .disclaimer-item h3 {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-disclaimer .disclaimer-item p {
  font-size: 9pt;
  color: #64748b;
  line-height: 1.6;
}

.card-disclaimer .disclaimer-item.full-width { grid-column: span 2; }

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-item.full-width { grid-column: span 1; }
}

.card-disclaimer .disclaimer-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-disclaimer .report-info { font-size: 8pt; color: #94a3b8; }

.card-disclaimer .equal-housing {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
}

.card-disclaimer .equal-housing-icon {
  width: 24px;
  height: 24px;
  background: #1a1a1a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10pt;
  font-weight: 700;
}

.card-disclaimer .equal-housing-text { display: flex; flex-direction: column; gap: 2px; }
.card-disclaimer .equal-housing-title { font-weight: 500; }
.card-disclaimer .fair-housing-statement { font-size: 8pt; color: #94a3b8; line-height: 1.4; }

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-footer { flex-direction: column; gap: 12px; text-align: center; }
  .card-disclaimer .equal-housing { flex-direction: column; text-align: center; }
  .card-disclaimer .equal-housing-text { align-items: center; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   22. PRINT MEDIA QUERIES (card-specific print adjustments)
   ═══════════════════════════════════════════════════════════════════════════ */

@media print {
  /* General print resets */
  body { background: white; padding-top: 0; }
  .nav-header { display: none; }
  .syre-header-banner { display: none !important; }

  /* Cover */
  .card-cover { page-break-after: always; min-height: auto; height: 100vh; }

  /* Cards avoid page breaks inside */
  .report-pfx .card { page-break-inside: avoid; box-shadow: none; }

  /* Tables */
  .table-scroll-wrapper { overflow-x: visible; }

  /* Links */
  .card-comps .comp-link { color: inherit; text-decoration: none; }

  /* Grid adjustments */
  .card-market-stats .stats-grid { gap: 8px; }
  .card-market-stats .stat-box { padding: 12px; }
  .card-market-stats .stat-value { font-size: 20pt; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   SYRE Report Viewer - Generated Styles
   DO NOT EDIT - This file is generated by build-viewer.ts
   Edit design/tokens.ts, design/components.ts, or design/cards/*.ts instead
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE BASE STYLES - Mobile-first typography scaling
   ═══════════════════════════════════════════════════════════════════════════ */

/* Base (mobile): scaled down for small screens */
:root {
  --type-scale: 0.85;
  --font-size-xxs: calc(0.5rem * var(--type-scale));
  --font-size-xs: calc(0.5625rem * var(--type-scale));
  --font-size-sm: calc(0.625rem * var(--type-scale));
  --font-size-base: calc(0.6875rem * var(--type-scale));
  --font-size-md: calc(0.75rem * var(--type-scale));
  --font-size-lg: calc(0.875rem * var(--type-scale));
  --font-size-xl: calc(1rem * var(--type-scale));
  --font-size-xxl: calc(1.125rem * var(--type-scale));
  --font-size-hero: calc(1.5rem * var(--type-scale));
  --font-size-mega: calc(2rem * var(--type-scale));
}

@media screen and (min-width: 640px) {
  :root { --type-scale: 0.9; }
}

@media screen and (min-width: 768px) {
  :root { --type-scale: 0.95; }
}

@media screen and (min-width: 1024px) {
  :root { --type-scale: 1; }
}

/* Print always uses original pt sizes (no scaling) */
@media print {
  :root {
    --font-size-xxs: 8pt;
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 11pt;
    --font-size-md: 12pt;
    --font-size-lg: 14pt;
    --font-size-xl: 16pt;
    --font-size-xxl: 18pt;
    --font-size-hero: 24pt;
    --font-size-mega: 32pt;
  }
}

/* ═══ Card: cover ═══ */

@media print {
  .card-cover .headline-metrics,
  .card-cover .summary-grid {
    gap: 12px;
  }
  .card-cover .metric-card,
  .card-cover .summary-box {
    padding: 12px;
  }
  .card-cover .metric-value,
  .card-cover .value-lg {
    font-size: 16pt;
  }
}

/* Cover Card - Full Page Title */
.card-cover {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-cover .cover-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-cover .cover-header {
  margin-bottom: 80px;
}

.card-cover .cover-rule {
  height: 3px;
  background: #1a1a1a;
  width: 100%;
}

.card-cover .cover-title {
  margin-bottom: 24px;
}

.card-cover .report-type {
  font-size: 24pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  letter-spacing: -0.01em;
}

.card-cover .syre-sy {
  font-weight: 300;
}

.card-cover .syre-re {
  font-weight: 700;
}

.card-cover .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-cover .report-tagline {
  font-size: 14pt;
  color: #c9941a;
  font-weight: 400;
  margin: 0;
}

.card-cover .cover-address {
  margin-bottom: 24px;
}

.card-cover .property-street {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-cover .property-location {
  font-size: 16pt;
  color: #64748b;
  margin: 0;
}

.card-cover .cover-divider {
  margin-bottom: 60px;
}

/* Version Badge */
.card-cover .version-badge {
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 8px;
}

.card-cover .version-badge.version-updated {
  background: #fef3c7;
  border-color: #fde68a;
}

.card-cover .version-badge .badge-icon {
  font-size: 16pt;
  margin-right: 8px;
}

.card-cover .version-badge .badge-text {
  font-size: 11pt;
  font-weight: 600;
  color: #ca8a04;
}

.card-cover .version-badge .badge-original {
  display: block;
  font-size: 9pt;
  color: #ca8a04;
  margin-top: 4px;
}

/* Client Section */
.card-cover .cover-client {
  margin-bottom: auto;
}

.card-cover .client-label {
  font-size: 9pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 8px 0;
}

.card-cover .client-name {
  font-size: 16pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .client-company {
  font-size: 11pt;
  color: #64748b;
  margin: 4px 0 0 0;
}

/* Footer */
.card-cover .cover-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 80px;
  padding-top: 20px;
}

.card-cover .footer-left {
  text-align: left;
}

.card-cover .footer-right {
  text-align: right;
}

.card-cover .powered-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 4px 0;
}

.card-cover .syre-logo {
  font-size: 18pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .report-date {
  font-size: 11pt;
  color: #64748b;
  margin: 0;
}

/* Print - cover specific */
@media print {
  .card-cover {
    page-break-after: always;
    min-height: auto;
    height: 100vh;
  }
}
  

/* ═══ Card: toc ═══ */

@media print {
  .card-toc .headline-metrics,
  .card-toc .summary-grid {
    gap: 12px;
  }
  .card-toc .metric-card,
  .card-toc .summary-box {
    padding: 12px;
  }
  .card-toc .metric-value,
  .card-toc .value-lg {
    font-size: 16pt;
  }
}

/* TOC Card */
.card-toc {
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-toc .toc-header {
  margin-bottom: 48px;
}

.card-toc .toc-report-title {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-toc .syre-sy {
  font-weight: 300;
}

.card-toc .syre-re {
  font-weight: 700;
}

.card-toc .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-toc .toc-title {
  font-size: 16pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-toc .toc-nav {
  max-width: 600px;
}

.card-toc .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.card-toc .toc-item {
  border-bottom: 1px solid #e2e8f0;
}

.card-toc .toc-item:last-child {
  border-bottom: none;
}

.card-toc .toc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  text-decoration: none;
  color: #c9941a;
  font-size: 11pt;
  font-weight: 400;
  transition: color 0.2s;
}

.card-toc .toc-link:hover {
  color: #a67c15;
}

.card-toc .toc-link-text {
  flex: 1;
}

.card-toc .toc-link-arrow {
  font-size: 14pt;
  margin-left: 16px;
  opacity: 0.7;
}

/* About This Report */
.card-toc .toc-about {
  margin-top: 48px;
  background: #1a1a1a;
  padding: 24px;
  border-radius: 8px;
}

.card-toc .toc-about-title {
  font-size: 14pt;
  font-weight: 600;
  color: #94a3b8;
  margin: 0 0 12px 0;
}

.card-toc .toc-about-text {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  line-height: 1.7;
}

/* Disclaimer */
.card-toc .toc-disclaimer {
  margin-top: 20px;
  border: 2px solid #dc2626;
  border-left-width: 4px;
  padding: 20px 24px;
  border-radius: 8px;
  background: #fee2e2;
}

.card-toc .toc-disclaimer-title {
  font-size: 11pt;
  font-weight: 700;
  color: #dc2626;
  margin: 0 0 12px 0;
}

.card-toc .toc-disclaimer-text {
  font-size: 9pt;
  color: #dc2626;
  margin: 0;
  line-height: 1.7;
}

/* Print - TOC specific */
@media print {
  .card-toc {
    page-break-after: always;
  }

  .card-toc .toc-link {
    color: #c9941a !important;
  }
}
  

/* ═══ Card: subject ═══ */

.card-subject .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-subject .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-subject .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-subject .data-table .text-right { text-align: right; }
.card-subject .data-table .text-center { text-align: center; }
.card-subject .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Property address */
.card-subject .property-address {
  margin-bottom: 20px;
}

.card-subject .property-address h3 {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-subject .property-address p {
  font-size: 10pt;
  color: #64748b;
}

.card-subject .property-address .county {
  font-size: 8pt;
  color: #94a3b8;
  margin-top: 4px;
}

/* Property details */
.card-subject .property-details {
  margin-bottom: 20px;
}

/* Prepared for section */
.card-subject .prepared-for {
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.card-subject .client-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-subject .client-company {
  font-size: 9pt;
  color: #64748b;
}
  

/* ═══ Card: executive-summary-pfx ═══ */

.card-executive-summary-pfx .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-executive-summary-pfx .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-executive-summary-pfx .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-executive-summary-pfx .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-executive-summary-pfx .metric-primary .metric-label {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-executive-summary-pfx .metric-primary .metric-value {
  color: white;
}

.card-executive-summary-pfx .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-executive-summary-pfx .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-executive-summary-pfx .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-executive-summary-pfx .glance-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 24px;
}

.card-executive-summary-pfx .glance-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.card-executive-summary-pfx .glance-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
}

.card-executive-summary-pfx .glance-value {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Responsive grid behavior for details */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .summary-grid {
    gap: 12px;
  }
  .card-executive-summary-pfx .metric-card,
  .card-executive-summary-pfx .summary-box {
    padding: 12px;
  }
  .card-executive-summary-pfx .metric-value,
  .card-executive-summary-pfx .value-lg {
    font-size: 16pt;
  }
}

/* Card header - neutral blue accent (not gold like LIR/BIR) */
.card-executive-summary-pfx h2 {
  border-bottom-color: #2563eb;
}

/* Primary metric with blue top border (neutral) */
.card-executive-summary-pfx .metric-card.metric-primary {
  background: linear-gradient(135deg, #1a1a1a 0%, #334155 100%);
  border-top: 3px solid #2563eb;
}

/* Location metric styling */
.card-executive-summary-pfx .metric-location {
  font-size: 14pt;
}

/* Metric subvalue */
.card-executive-summary-pfx .metric-subvalue {
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-subvalue {
  color: #94a3b8;
}

/* Separator in bed/bath */
.card-executive-summary-pfx .metric-value .separator {
  color: #cbd5e1;
  margin: 0 2px;
}

/* Section headers with blue bar (neutral) */
.card-executive-summary-pfx h3 {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-executive-summary-pfx h3::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #2563eb;
}

/* Property Facts section */
.card-executive-summary-pfx .property-facts {
  margin-bottom: 24px;
}

/* Glance items with neutral left border */
.card-executive-summary-pfx .glance-item {
  padding: 8px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

/* Market Context section - explicitly neutral */
.card-executive-summary-pfx .market-context {
  margin-bottom: 16px;
}

.card-executive-summary-pfx .context-note {
  font-size: 9pt;
  color: #64748b;
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .context-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.card-executive-summary-pfx .context-item {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
}

.card-executive-summary-pfx .context-label {
  display: block;
  font-size: 9pt;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.card-executive-summary-pfx .context-value {
  display: block;
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Responsive: Stack context grid on mobile */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .context-grid {
    grid-template-columns: 1fr;
  }
}
  

/* ═══ Card: tax-assessment ═══ */

.card-tax-assessment .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-tax-assessment .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-tax-assessment .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-tax-assessment .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-tax-assessment .metric-primary .metric-label {
  color: #94a3b8;
}

.card-tax-assessment .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-tax-assessment .metric-primary .metric-value {
  color: white;
}

.card-tax-assessment .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-tax-assessment .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-tax-assessment .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-tax-assessment .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-tax-assessment .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-tax-assessment .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-tax-assessment .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-tax-assessment .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-tax-assessment .data-table .text-right { text-align: right; }
.card-tax-assessment .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-tax-assessment .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-tax-assessment .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-tax-assessment .data-table th,
  .card-tax-assessment .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}
.card-tax-assessment .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Source attribution */
.card-tax-assessment .source-attribution {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.card-tax-assessment .source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-tax-assessment .source-county {
  background: rgba(37, 99, 235, 0.08);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .jurisdiction {
  font-size: 10pt;
  color: #64748b;
}

/* Metrics grid */
.card-tax-assessment .assessment-summary {
  margin-bottom: 24px;
}

.card-tax-assessment .metric-primary {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .metric-primary .metric-value {
  color: #2563eb;
}

/* Assessment breakdown */
.card-tax-assessment .assessment-breakdown {
  margin-bottom: 24px;
}

.card-tax-assessment .assessment-breakdown h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .total-row {
  background: #f8fafc;
  font-weight: 600;
}

.card-tax-assessment .total-row td {
  border-top: 2px solid #e2e8f0;
}

/* Tax exemptions */
.card-tax-assessment .tax-exemptions {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(22, 163, 74, 0.03);
  border: 1px solid rgba(22, 163, 74, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .tax-exemptions h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
  margin-bottom: 12px;
}

.card-tax-assessment .exemptions-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-tax-assessment .exemptions-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(22, 163, 74, 0.13);
  font-size: 10pt;
}

.card-tax-assessment .exemptions-list li:last-child {
  border-bottom: none;
}

.card-tax-assessment .exemption-type {
  color: #1a1a1a;
}

.card-tax-assessment .exemption-amount {
  color: #16a34a;
  font-weight: 600;
}

.card-tax-assessment .total-exemptions {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(22, 163, 74, 0.19);
}

/* Tax history */
.card-tax-assessment .tax-history {
  margin-bottom: 24px;
}

.card-tax-assessment .tax-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .history-table th {
  background: #f8fafc;
}

.card-tax-assessment .change-up {
  color: #dc2626;
}

.card-tax-assessment .change-down {
  color: #16a34a;
}

/* Purchase estimate */
.card-tax-assessment .purchase-estimate {
  margin-bottom: 24px;
}

.card-tax-assessment .purchase-estimate h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-box {
  padding: 16px;
  background: rgba(202, 138, 4, 0.03);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-label {
  font-size: 10pt;
  color: #64748b;
}

.card-tax-assessment .estimate-value {
  font-size: 14pt;
  font-weight: 700;
  color: #ca8a04;
}

.card-tax-assessment .estimate-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.19);
  line-height: 1.6;
}

.card-tax-assessment .estimate-note strong {
  color: #ca8a04;
}

/* Taxing districts */
.card-tax-assessment .taxing-districts {
  margin-bottom: 24px;
}

.card-tax-assessment .taxing-districts h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .districts-table th {
  background: #f8fafc;
}

/* Parcel info */
.card-tax-assessment .parcel-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
}

.card-tax-assessment .parcel-number {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
}

/* Data source note */
.card-tax-assessment .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-tax-assessment .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-tax-assessment .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-tax-assessment .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 640px) {
  .card-tax-assessment .source-attribution {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .estimate-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .parcel-info {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-tax-assessment .exemptions-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}
  

/* ═══ Card: schools ═══ */

.card-schools .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* District info */
.card-schools .district-info {
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-schools .district-info .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Schools list */
.card-schools .schools-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.card-schools .school-item {
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

.card-schools .school-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.card-schools .school-distance {
  font-size: 9pt;
  color: #64748b;
}

/* Note */
.card-schools .schools-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: location ═══ */

.card-location .score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.card-location .score-circle .value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-excellent { background: #dcfce7; color: #16a34a; }
.card-location .score-good { background: #bbf7d0; color: #15803d; }
.card-location .score-fair { background: #fef3c7; color: #ca8a04; }
.card-location .score-poor { background: #fee2e2; color: #dc2626; }

/* Scores grid */
.card-location .scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 20px;
}

.card-location .score-item {
  text-align: center;
}

.card-location .score-value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-label {
  font-size: 12pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-location .score-desc {
  font-size: 9pt;
  color: #64748b;
}

/* Score circle color variants */
.card-location .score-very-good {
  background: #dcfce7;
  color: #16a34a;
}

.card-location .score-good {
  background: #fef3c7;
  color: #ca8a04;
}

.card-location .score-fair {
  background: #fef3c7;
  color: #ca8a04;
}

/* Legend */
.card-location .score-legend {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-location .legend-title {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-location .legend-items {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.card-location .legend-item {
  font-size: 8pt;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

.card-location .legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.card-location .legend-excellent {
  background: #16a34a;
}

.card-location .legend-very-good {
  background: #16a34a;
}

.card-location .legend-good {
  background: #ca8a04;
}

.card-location .legend-fair {
  background: #ca8a04;
}

.card-location .legend-poor {
  background: #dc2626;
}

/* Note */
.card-location .location-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: flood ═══ */

.card-flood .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-flood .status-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .status-warning {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-risk {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-flood .text-success { color: #16a34a; }
.card-flood .text-warning { color: #ca8a04; }
.card-flood .text-danger { color: #dc2626; }
.card-flood .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-flood .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-flood .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-flood .data-table .text-right { text-align: right; }
.card-flood .data-table .text-center { text-align: center; }

/* Flood status box */
.card-flood .flood-status {
  display: flex;
  gap: 16px;
  padding: 20px;
  margin-bottom: 16px;
  align-items: center;
}

.card-flood .flood-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .flood-risk {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-icon {
  font-size: 32pt;
}

.card-flood .icon-check {
  color: #16a34a;
}

.card-flood .icon-warning {
  color: #ca8a04;
}

.card-flood .status-label {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-flood .status-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-flood .status-desc {
  font-size: 10pt;
  color: #64748b;
  margin-top: 4px;
}

/* Insurance notice */
.card-flood .insurance-notice {
  padding: 16px;
  background: #fee2e2;
  border: 1px solid #fca5a5;
  margin-bottom: 16px;
}

.card-flood .notice-title {
  font-size: 11pt;
  font-weight: 600;
  color: #dc2626;
  margin-bottom: 4px;
}

.card-flood .notice-text {
  font-size: 9pt;
  color: #dc2626;
  line-height: 1.5;
}

/* Details table */
.card-flood .flood-details {
  margin-bottom: 16px;
}

.card-flood .text-risk {
  color: #dc2626;
}

.card-flood .text-safe {
  color: #16a34a;
}

/* Source note */
.card-flood .flood-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: comps ═══ */

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM GENERATORS
   ═══════════════════════════════════════════════════════════════════════════ */

.card-comps .comps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-comps .comps-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-comps .comps-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-comps .comps-table .text-right { text-align: right; }
.card-comps .comps-table .text-center { text-align: center; }
.card-comps .summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-comps .summary-box {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-comps .summary-box-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}
.card-comps .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}
/* Card Intro */
.card-comps .card-intro {
  font-size: 10pt;
  color: #64748b;
  margin-bottom: 16px;
}
/* Address Link */
.card-comps .comp-link {
  color: #1e40af;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.card-comps .comp-link:hover {
  color: #334155;
}

@media print {
  .card-comps .comp-link {
    color: inherit;
    text-decoration: none;
  }
}
/* Verify Link */
.card-comps .verify-link {
  color: #16a34a;
  font-size: 8pt;
  text-decoration: none;
}

.card-comps .verify-link:hover {
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CARD-SPECIFIC STYLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Summary section */
.card-comps .comps-summary {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-comps .summary-box .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Note */
.card-comps .comps-note {
  margin-top: 16px;
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: market-stats ═══ */

.card-market-stats .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-market-stats .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-market-stats .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-market-stats .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-market-stats .metric-primary .metric-label {
  color: #94a3b8;
}

.card-market-stats .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-market-stats .metric-primary .metric-value {
  color: white;
}

.card-market-stats .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-market-stats .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-market-stats .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-market-stats .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}
.card-market-stats .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Market condition banner */
.card-market-stats .market-condition {
  padding: 16px;
  margin-bottom: 20px;
  text-align: center;
}

.card-market-stats .market-condition-seller {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-market-stats .market-condition-buyer {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-market-stats .market-condition-balanced {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-market-stats .condition-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-market-stats .condition-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Stats grid */
.card-market-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-market-stats .stat-box {
  text-align: center;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-market-stats .stat-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
}

.card-market-stats .stat-label {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

/* Market detail rows */
.card-market-stats .market-detail {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-market-stats .detail-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-market-stats .detail-row:last-child {
  border-bottom: none;
}

.card-market-stats .detail-label {
  font-size: 9pt;
  color: #64748b;
}

.card-market-stats .detail-value {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-market-stats .detail-value.positive {
  color: #16a34a;
}

.card-market-stats .detail-value.negative {
  color: #dc2626;
}

/* Market interpretation note */
.card-market-stats .market-note {
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: disclaimer ═══ */

/* Responsive disclaimer grid */
@media screen and (max-width: 768px) {
  .card-disclaimer .disclaimer-grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }

  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}
@media print {
  .card-disclaimer .headline-metrics,
  .card-disclaimer .summary-grid {
    gap: 12px;
  }
  .card-disclaimer .metric-card,
  .card-disclaimer .summary-box {
    padding: 12px;
  }
  .card-disclaimer .metric-value,
  .card-disclaimer .value-lg {
    font-size: 16pt;
  }
}

/* Card base */
.card-disclaimer {
  background: #ffffff;
}

.card-disclaimer h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}

/* Intro warning callout */
.card-disclaimer .disclaimer-intro {
  font-size: 10pt;
  color: #dc2626;
  margin-bottom: 24px;
  padding: 16px;
  background: #fee2e2;
  border-left: 4px solid #dc2626;
  line-height: 1.6;
}

/* Grid layout handled by responsiveDisclaimerGridStyles */

/* Individual disclaimer items */
.card-disclaimer .disclaimer-item {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.card-disclaimer .disclaimer-item h3 {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-disclaimer .disclaimer-item p {
  font-size: 9pt;
  color: #64748b;
  line-height: 1.6;
}

/* Full-width items span both columns on desktop, stay full width on mobile */
.card-disclaimer .disclaimer-item.full-width {
  grid-column: span 2;
}

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }
}

/* Footer section */
.card-disclaimer .disclaimer-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-disclaimer .report-info {
  font-size: 8pt;
  color: #94a3b8;
}

.card-disclaimer .equal-housing {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
}

.card-disclaimer .equal-housing-icon {
  width: 24px;
  height: 24px;
  background: #1a1a1a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10pt;
  font-weight: 700;
}

/* Enhanced fair housing footer */
.card-disclaimer .equal-housing-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.card-disclaimer .equal-housing-title {
  font-weight: 500;
}

.card-disclaimer .fair-housing-statement {
  font-size: 8pt;
  color: #94a3b8;
  line-height: 1.4;
}

/* Footer responsive: stack on mobile */
@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }

  .card-disclaimer .equal-housing {
    flex-direction: column;
    text-align: center;
  }

  .card-disclaimer .equal-housing-text {
    align-items: center;
  }
}
  

/* ═══════════════════════════════════════════════════════════════════════════
   SYRE Report Viewer - Generated Styles
   DO NOT EDIT - This file is generated by build-viewer.ts
   Edit design/tokens.ts, design/components.ts, or design/cards/*.ts instead
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE BASE STYLES - Mobile-first typography scaling
   ═══════════════════════════════════════════════════════════════════════════ */

/* Base (mobile): scaled down for small screens */
:root {
  --type-scale: 0.85;
  --font-size-xxs: calc(0.5rem * var(--type-scale));
  --font-size-xs: calc(0.5625rem * var(--type-scale));
  --font-size-sm: calc(0.625rem * var(--type-scale));
  --font-size-base: calc(0.6875rem * var(--type-scale));
  --font-size-md: calc(0.75rem * var(--type-scale));
  --font-size-lg: calc(0.875rem * var(--type-scale));
  --font-size-xl: calc(1rem * var(--type-scale));
  --font-size-xxl: calc(1.125rem * var(--type-scale));
  --font-size-hero: calc(1.5rem * var(--type-scale));
  --font-size-mega: calc(2rem * var(--type-scale));
}

@media screen and (min-width: 640px) {
  :root { --type-scale: 0.9; }
}

@media screen and (min-width: 768px) {
  :root { --type-scale: 0.95; }
}

@media screen and (min-width: 1024px) {
  :root { --type-scale: 1; }
}

/* Print always uses original pt sizes (no scaling) */
@media print {
  :root {
    --font-size-xxs: 8pt;
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 11pt;
    --font-size-md: 12pt;
    --font-size-lg: 14pt;
    --font-size-xl: 16pt;
    --font-size-xxl: 18pt;
    --font-size-hero: 24pt;
    --font-size-mega: 32pt;
  }
}

/* ═══ Card: cover ═══ */

@media print {
  .card-cover .headline-metrics,
  .card-cover .summary-grid {
    gap: 12px;
  }
  .card-cover .metric-card,
  .card-cover .summary-box {
    padding: 12px;
  }
  .card-cover .metric-value,
  .card-cover .value-lg {
    font-size: 16pt;
  }
}

/* Cover Card - Full Page Title */
.card-cover {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-cover .cover-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-cover .cover-header {
  margin-bottom: 80px;
}

.card-cover .cover-rule {
  height: 3px;
  background: #1a1a1a;
  width: 100%;
}

.card-cover .cover-title {
  margin-bottom: 24px;
}

.card-cover .report-type {
  font-size: 24pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  letter-spacing: -0.01em;
}

.card-cover .syre-sy {
  font-weight: 300;
}

.card-cover .syre-re {
  font-weight: 700;
}

.card-cover .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-cover .report-tagline {
  font-size: 14pt;
  color: #c9941a;
  font-weight: 400;
  margin: 0;
}

.card-cover .cover-address {
  margin-bottom: 24px;
}

.card-cover .property-street {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-cover .property-location {
  font-size: 16pt;
  color: #64748b;
  margin: 0;
}

.card-cover .cover-divider {
  margin-bottom: 60px;
}

/* Version Badge */
.card-cover .version-badge {
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 8px;
}

.card-cover .version-badge.version-updated {
  background: #fef3c7;
  border-color: #fde68a;
}

.card-cover .version-badge .badge-icon {
  font-size: 16pt;
  margin-right: 8px;
}

.card-cover .version-badge .badge-text {
  font-size: 11pt;
  font-weight: 600;
  color: #ca8a04;
}

.card-cover .version-badge .badge-original {
  display: block;
  font-size: 9pt;
  color: #ca8a04;
  margin-top: 4px;
}

/* Client Section */
.card-cover .cover-client {
  margin-bottom: auto;
}

.card-cover .client-label {
  font-size: 9pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 8px 0;
}

.card-cover .client-name {
  font-size: 16pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .client-company {
  font-size: 11pt;
  color: #64748b;
  margin: 4px 0 0 0;
}

/* Footer */
.card-cover .cover-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 80px;
  padding-top: 20px;
}

.card-cover .footer-left {
  text-align: left;
}

.card-cover .footer-right {
  text-align: right;
}

.card-cover .powered-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 4px 0;
}

.card-cover .syre-logo {
  font-size: 18pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .report-date {
  font-size: 11pt;
  color: #64748b;
  margin: 0;
}

/* Print - cover specific */
@media print {
  .card-cover {
    page-break-after: always;
    min-height: auto;
    height: 100vh;
  }
}
  

/* ═══ Card: toc ═══ */

@media print {
  .card-toc .headline-metrics,
  .card-toc .summary-grid {
    gap: 12px;
  }
  .card-toc .metric-card,
  .card-toc .summary-box {
    padding: 12px;
  }
  .card-toc .metric-value,
  .card-toc .value-lg {
    font-size: 16pt;
  }
}

/* TOC Card */
.card-toc {
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-toc .toc-header {
  margin-bottom: 48px;
}

.card-toc .toc-report-title {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-toc .syre-sy {
  font-weight: 300;
}

.card-toc .syre-re {
  font-weight: 700;
}

.card-toc .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-toc .toc-title {
  font-size: 16pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-toc .toc-nav {
  max-width: 600px;
}

.card-toc .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.card-toc .toc-item {
  border-bottom: 1px solid #e2e8f0;
}

.card-toc .toc-item:last-child {
  border-bottom: none;
}

.card-toc .toc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  text-decoration: none;
  color: #c9941a;
  font-size: 11pt;
  font-weight: 400;
  transition: color 0.2s;
}

.card-toc .toc-link:hover {
  color: #a67c15;
}

.card-toc .toc-link-text {
  flex: 1;
}

.card-toc .toc-link-arrow {
  font-size: 14pt;
  margin-left: 16px;
  opacity: 0.7;
}

/* About This Report */
.card-toc .toc-about {
  margin-top: 48px;
  background: #1a1a1a;
  padding: 24px;
  border-radius: 8px;
}

.card-toc .toc-about-title {
  font-size: 14pt;
  font-weight: 600;
  color: #94a3b8;
  margin: 0 0 12px 0;
}

.card-toc .toc-about-text {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  line-height: 1.7;
}

/* Disclaimer */
.card-toc .toc-disclaimer {
  margin-top: 20px;
  border: 2px solid #dc2626;
  border-left-width: 4px;
  padding: 20px 24px;
  border-radius: 8px;
  background: #fee2e2;
}

.card-toc .toc-disclaimer-title {
  font-size: 11pt;
  font-weight: 700;
  color: #dc2626;
  margin: 0 0 12px 0;
}

.card-toc .toc-disclaimer-text {
  font-size: 9pt;
  color: #dc2626;
  margin: 0;
  line-height: 1.7;
}

/* Print - TOC specific */
@media print {
  .card-toc {
    page-break-after: always;
  }

  .card-toc .toc-link {
    color: #c9941a !important;
  }
}
  

/* ═══ Card: subject ═══ */

.card-subject .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-subject .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-subject .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-subject .data-table .text-right { text-align: right; }
.card-subject .data-table .text-center { text-align: center; }
.card-subject .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Property address */
.card-subject .property-address {
  margin-bottom: 20px;
}

.card-subject .property-address h3 {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-subject .property-address p {
  font-size: 10pt;
  color: #64748b;
}

.card-subject .property-address .county {
  font-size: 8pt;
  color: #94a3b8;
  margin-top: 4px;
}

/* Property details */
.card-subject .property-details {
  margin-bottom: 20px;
}

/* Prepared for section */
.card-subject .prepared-for {
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.card-subject .client-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-subject .client-company {
  font-size: 9pt;
  color: #64748b;
}
  

/* ═══ Card: executive-summary-pfx ═══ */

.card-executive-summary-pfx .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-executive-summary-pfx .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-executive-summary-pfx .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-executive-summary-pfx .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-executive-summary-pfx .metric-primary .metric-label {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-executive-summary-pfx .metric-primary .metric-value {
  color: white;
}

.card-executive-summary-pfx .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-executive-summary-pfx .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-executive-summary-pfx .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-executive-summary-pfx .glance-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 24px;
}

.card-executive-summary-pfx .glance-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.card-executive-summary-pfx .glance-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
}

.card-executive-summary-pfx .glance-value {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Responsive grid behavior for details */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .summary-grid {
    gap: 12px;
  }
  .card-executive-summary-pfx .metric-card,
  .card-executive-summary-pfx .summary-box {
    padding: 12px;
  }
  .card-executive-summary-pfx .metric-value,
  .card-executive-summary-pfx .value-lg {
    font-size: 16pt;
  }
}

/* Card header - neutral blue accent (not gold like LIR/BIR) */
.card-executive-summary-pfx h2 {
  border-bottom-color: #2563eb;
}

/* Primary metric with blue top border (neutral) */
.card-executive-summary-pfx .metric-card.metric-primary {
  background: linear-gradient(135deg, #1a1a1a 0%, #334155 100%);
  border-top: 3px solid #2563eb;
}

/* Location metric styling */
.card-executive-summary-pfx .metric-location {
  font-size: 14pt;
}

/* Metric subvalue */
.card-executive-summary-pfx .metric-subvalue {
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-subvalue {
  color: #94a3b8;
}

/* Separator in bed/bath */
.card-executive-summary-pfx .metric-value .separator {
  color: #cbd5e1;
  margin: 0 2px;
}

/* Section headers with blue bar (neutral) */
.card-executive-summary-pfx h3 {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-executive-summary-pfx h3::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #2563eb;
}

/* Property Facts section */
.card-executive-summary-pfx .property-facts {
  margin-bottom: 24px;
}

/* Glance items with neutral left border */
.card-executive-summary-pfx .glance-item {
  padding: 8px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

/* Market Context section - explicitly neutral */
.card-executive-summary-pfx .market-context {
  margin-bottom: 16px;
}

.card-executive-summary-pfx .context-note {
  font-size: 9pt;
  color: #64748b;
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .context-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.card-executive-summary-pfx .context-item {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
}

.card-executive-summary-pfx .context-label {
  display: block;
  font-size: 9pt;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.card-executive-summary-pfx .context-value {
  display: block;
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Responsive: Stack context grid on mobile */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .context-grid {
    grid-template-columns: 1fr;
  }
}
  

/* ═══ Card: tax-assessment ═══ */

.card-tax-assessment .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-tax-assessment .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-tax-assessment .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-tax-assessment .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-tax-assessment .metric-primary .metric-label {
  color: #94a3b8;
}

.card-tax-assessment .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-tax-assessment .metric-primary .metric-value {
  color: white;
}

.card-tax-assessment .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-tax-assessment .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-tax-assessment .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-tax-assessment .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-tax-assessment .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-tax-assessment .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-tax-assessment .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-tax-assessment .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-tax-assessment .data-table .text-right { text-align: right; }
.card-tax-assessment .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-tax-assessment .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-tax-assessment .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-tax-assessment .data-table th,
  .card-tax-assessment .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}
.card-tax-assessment .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Source attribution */
.card-tax-assessment .source-attribution {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.card-tax-assessment .source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-tax-assessment .source-county {
  background: rgba(37, 99, 235, 0.08);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .jurisdiction {
  font-size: 10pt;
  color: #64748b;
}

/* Metrics grid */
.card-tax-assessment .assessment-summary {
  margin-bottom: 24px;
}

.card-tax-assessment .metric-primary {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .metric-primary .metric-value {
  color: #2563eb;
}

/* Assessment breakdown */
.card-tax-assessment .assessment-breakdown {
  margin-bottom: 24px;
}

.card-tax-assessment .assessment-breakdown h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .total-row {
  background: #f8fafc;
  font-weight: 600;
}

.card-tax-assessment .total-row td {
  border-top: 2px solid #e2e8f0;
}

/* Tax exemptions */
.card-tax-assessment .tax-exemptions {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(22, 163, 74, 0.03);
  border: 1px solid rgba(22, 163, 74, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .tax-exemptions h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
  margin-bottom: 12px;
}

.card-tax-assessment .exemptions-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-tax-assessment .exemptions-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(22, 163, 74, 0.13);
  font-size: 10pt;
}

.card-tax-assessment .exemptions-list li:last-child {
  border-bottom: none;
}

.card-tax-assessment .exemption-type {
  color: #1a1a1a;
}

.card-tax-assessment .exemption-amount {
  color: #16a34a;
  font-weight: 600;
}

.card-tax-assessment .total-exemptions {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(22, 163, 74, 0.19);
}

/* Tax history */
.card-tax-assessment .tax-history {
  margin-bottom: 24px;
}

.card-tax-assessment .tax-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .history-table th {
  background: #f8fafc;
}

.card-tax-assessment .change-up {
  color: #dc2626;
}

.card-tax-assessment .change-down {
  color: #16a34a;
}

/* Purchase estimate */
.card-tax-assessment .purchase-estimate {
  margin-bottom: 24px;
}

.card-tax-assessment .purchase-estimate h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-box {
  padding: 16px;
  background: rgba(202, 138, 4, 0.03);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-label {
  font-size: 10pt;
  color: #64748b;
}

.card-tax-assessment .estimate-value {
  font-size: 14pt;
  font-weight: 700;
  color: #ca8a04;
}

.card-tax-assessment .estimate-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.19);
  line-height: 1.6;
}

.card-tax-assessment .estimate-note strong {
  color: #ca8a04;
}

/* Taxing districts */
.card-tax-assessment .taxing-districts {
  margin-bottom: 24px;
}

.card-tax-assessment .taxing-districts h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .districts-table th {
  background: #f8fafc;
}

/* Parcel info */
.card-tax-assessment .parcel-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
}

.card-tax-assessment .parcel-number {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
}

/* Data source note */
.card-tax-assessment .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-tax-assessment .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-tax-assessment .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-tax-assessment .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 640px) {
  .card-tax-assessment .source-attribution {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .estimate-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .parcel-info {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-tax-assessment .exemptions-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}
  

/* ═══ Card: schools ═══ */

.card-schools .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* District info */
.card-schools .district-info {
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-schools .district-info .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Schools list */
.card-schools .schools-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.card-schools .school-item {
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

.card-schools .school-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.card-schools .school-distance {
  font-size: 9pt;
  color: #64748b;
}

/* Note */
.card-schools .schools-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: location ═══ */

.card-location .score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.card-location .score-circle .value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-excellent { background: #dcfce7; color: #16a34a; }
.card-location .score-good { background: #bbf7d0; color: #15803d; }
.card-location .score-fair { background: #fef3c7; color: #ca8a04; }
.card-location .score-poor { background: #fee2e2; color: #dc2626; }

/* Scores grid */
.card-location .scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 20px;
}

.card-location .score-item {
  text-align: center;
}

.card-location .score-value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-label {
  font-size: 12pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-location .score-desc {
  font-size: 9pt;
  color: #64748b;
}

/* Score circle color variants */
.card-location .score-very-good {
  background: #dcfce7;
  color: #16a34a;
}

.card-location .score-good {
  background: #fef3c7;
  color: #ca8a04;
}

.card-location .score-fair {
  background: #fef3c7;
  color: #ca8a04;
}

/* Legend */
.card-location .score-legend {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-location .legend-title {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-location .legend-items {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.card-location .legend-item {
  font-size: 8pt;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

.card-location .legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.card-location .legend-excellent {
  background: #16a34a;
}

.card-location .legend-very-good {
  background: #16a34a;
}

.card-location .legend-good {
  background: #ca8a04;
}

.card-location .legend-fair {
  background: #ca8a04;
}

.card-location .legend-poor {
  background: #dc2626;
}

/* Note */
.card-location .location-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: flood ═══ */

.card-flood .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-flood .status-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .status-warning {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-risk {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-flood .text-success { color: #16a34a; }
.card-flood .text-warning { color: #ca8a04; }
.card-flood .text-danger { color: #dc2626; }
.card-flood .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-flood .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-flood .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-flood .data-table .text-right { text-align: right; }
.card-flood .data-table .text-center { text-align: center; }

/* Flood status box */
.card-flood .flood-status {
  display: flex;
  gap: 16px;
  padding: 20px;
  margin-bottom: 16px;
  align-items: center;
}

.card-flood .flood-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .flood-risk {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-icon {
  font-size: 32pt;
}

.card-flood .icon-check {
  color: #16a34a;
}

.card-flood .icon-warning {
  color: #ca8a04;
}

.card-flood .status-label {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-flood .status-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-flood .status-desc {
  font-size: 10pt;
  color: #64748b;
  margin-top: 4px;
}

/* Insurance notice */
.card-flood .insurance-notice {
  padding: 16px;
  background: #fee2e2;
  border: 1px solid #fca5a5;
  margin-bottom: 16px;
}

.card-flood .notice-title {
  font-size: 11pt;
  font-weight: 600;
  color: #dc2626;
  margin-bottom: 4px;
}

.card-flood .notice-text {
  font-size: 9pt;
  color: #dc2626;
  line-height: 1.5;
}

/* Details table */
.card-flood .flood-details {
  margin-bottom: 16px;
}

.card-flood .text-risk {
  color: #dc2626;
}

.card-flood .text-safe {
  color: #16a34a;
}

/* Source note */
.card-flood .flood-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: comps ═══ */

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM GENERATORS
   ═══════════════════════════════════════════════════════════════════════════ */

.card-comps .comps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-comps .comps-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-comps .comps-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-comps .comps-table .text-right { text-align: right; }
.card-comps .comps-table .text-center { text-align: center; }
.card-comps .summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-comps .summary-box {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-comps .summary-box-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}
.card-comps .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}
/* Card Intro */
.card-comps .card-intro {
  font-size: 10pt;
  color: #64748b;
  margin-bottom: 16px;
}
/* Address Link */
.card-comps .comp-link {
  color: #1e40af;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.card-comps .comp-link:hover {
  color: #334155;
}

@media print {
  .card-comps .comp-link {
    color: inherit;
    text-decoration: none;
  }
}
/* Verify Link */
.card-comps .verify-link {
  color: #16a34a;
  font-size: 8pt;
  text-decoration: none;
}

.card-comps .verify-link:hover {
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CARD-SPECIFIC STYLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Summary section */
.card-comps .comps-summary {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-comps .summary-box .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Note */
.card-comps .comps-note {
  margin-top: 16px;
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: market-stats ═══ */

.card-market-stats .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-market-stats .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-market-stats .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-market-stats .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-market-stats .metric-primary .metric-label {
  color: #94a3b8;
}

.card-market-stats .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-market-stats .metric-primary .metric-value {
  color: white;
}

.card-market-stats .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-market-stats .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-market-stats .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-market-stats .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}
.card-market-stats .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Market condition banner */
.card-market-stats .market-condition {
  padding: 16px;
  margin-bottom: 20px;
  text-align: center;
}

.card-market-stats .market-condition-seller {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-market-stats .market-condition-buyer {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-market-stats .market-condition-balanced {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-market-stats .condition-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-market-stats .condition-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Stats grid */
.card-market-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-market-stats .stat-box {
  text-align: center;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-market-stats .stat-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
}

.card-market-stats .stat-label {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

/* Market detail rows */
.card-market-stats .market-detail {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-market-stats .detail-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-market-stats .detail-row:last-child {
  border-bottom: none;
}

.card-market-stats .detail-label {
  font-size: 9pt;
  color: #64748b;
}

.card-market-stats .detail-value {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-market-stats .detail-value.positive {
  color: #16a34a;
}

.card-market-stats .detail-value.negative {
  color: #dc2626;
}

/* Market interpretation note */
.card-market-stats .market-note {
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: disclaimer ═══ */

/* Responsive disclaimer grid */
@media screen and (max-width: 768px) {
  .card-disclaimer .disclaimer-grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }

  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}
@media print {
  .card-disclaimer .headline-metrics,
  .card-disclaimer .summary-grid {
    gap: 12px;
  }
  .card-disclaimer .metric-card,
  .card-disclaimer .summary-box {
    padding: 12px;
  }
  .card-disclaimer .metric-value,
  .card-disclaimer .value-lg {
    font-size: 16pt;
  }
}

/* Card base */
.card-disclaimer {
  background: #ffffff;
}

.card-disclaimer h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}

/* Intro warning callout */
.card-disclaimer .disclaimer-intro {
  font-size: 10pt;
  color: #dc2626;
  margin-bottom: 24px;
  padding: 16px;
  background: #fee2e2;
  border-left: 4px solid #dc2626;
  line-height: 1.6;
}

/* Grid layout handled by responsiveDisclaimerGridStyles */

/* Individual disclaimer items */
.card-disclaimer .disclaimer-item {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.card-disclaimer .disclaimer-item h3 {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-disclaimer .disclaimer-item p {
  font-size: 9pt;
  color: #64748b;
  line-height: 1.6;
}

/* Full-width items span both columns on desktop, stay full width on mobile */
.card-disclaimer .disclaimer-item.full-width {
  grid-column: span 2;
}

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }
}

/* Footer section */
.card-disclaimer .disclaimer-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-disclaimer .report-info {
  font-size: 8pt;
  color: #94a3b8;
}

.card-disclaimer .equal-housing {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
}

.card-disclaimer .equal-housing-icon {
  width: 24px;
  height: 24px;
  background: #1a1a1a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10pt;
  font-weight: 700;
}

/* Enhanced fair housing footer */
.card-disclaimer .equal-housing-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.card-disclaimer .equal-housing-title {
  font-weight: 500;
}

.card-disclaimer .fair-housing-statement {
  font-size: 8pt;
  color: #94a3b8;
  line-height: 1.4;
}

/* Footer responsive: stack on mobile */
@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }

  .card-disclaimer .equal-housing {
    flex-direction: column;
    text-align: center;
  }

  .card-disclaimer .equal-housing-text {
    align-items: center;
  }
}
  

/* ═══════════════════════════════════════════════════════════════════════════
   SYRE Report Viewer - Generated Styles
   DO NOT EDIT - This file is generated by build-viewer.ts
   Edit design/tokens.ts, design/components.ts, or design/cards/*.ts instead
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE BASE STYLES - Mobile-first typography scaling
   ═══════════════════════════════════════════════════════════════════════════ */

/* Base (mobile): scaled down for small screens */
:root {
  --type-scale: 0.85;
  --font-size-xxs: calc(0.5rem * var(--type-scale));
  --font-size-xs: calc(0.5625rem * var(--type-scale));
  --font-size-sm: calc(0.625rem * var(--type-scale));
  --font-size-base: calc(0.6875rem * var(--type-scale));
  --font-size-md: calc(0.75rem * var(--type-scale));
  --font-size-lg: calc(0.875rem * var(--type-scale));
  --font-size-xl: calc(1rem * var(--type-scale));
  --font-size-xxl: calc(1.125rem * var(--type-scale));
  --font-size-hero: calc(1.5rem * var(--type-scale));
  --font-size-mega: calc(2rem * var(--type-scale));
}

@media screen and (min-width: 640px) {
  :root { --type-scale: 0.9; }
}

@media screen and (min-width: 768px) {
  :root { --type-scale: 0.95; }
}

@media screen and (min-width: 1024px) {
  :root { --type-scale: 1; }
}

/* Print always uses original pt sizes (no scaling) */
@media print {
  :root {
    --font-size-xxs: 8pt;
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 11pt;
    --font-size-md: 12pt;
    --font-size-lg: 14pt;
    --font-size-xl: 16pt;
    --font-size-xxl: 18pt;
    --font-size-hero: 24pt;
    --font-size-mega: 32pt;
  }
}

/* ═══ Card: cover ═══ */

@media print {
  .card-cover .headline-metrics,
  .card-cover .summary-grid {
    gap: 12px;
  }
  .card-cover .metric-card,
  .card-cover .summary-box {
    padding: 12px;
  }
  .card-cover .metric-value,
  .card-cover .value-lg {
    font-size: 16pt;
  }
}

/* Cover Card - Full Page Title */
.card-cover {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-cover .cover-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-cover .cover-header {
  margin-bottom: 80px;
}

.card-cover .cover-rule {
  height: 3px;
  background: #1a1a1a;
  width: 100%;
}

.card-cover .cover-title {
  margin-bottom: 24px;
}

.card-cover .report-type {
  font-size: 24pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  letter-spacing: -0.01em;
}

.card-cover .syre-sy {
  font-weight: 300;
}

.card-cover .syre-re {
  font-weight: 700;
}

.card-cover .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-cover .report-tagline {
  font-size: 14pt;
  color: #c9941a;
  font-weight: 400;
  margin: 0;
}

.card-cover .cover-address {
  margin-bottom: 24px;
}

.card-cover .property-street {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-cover .property-location {
  font-size: 16pt;
  color: #64748b;
  margin: 0;
}

.card-cover .cover-divider {
  margin-bottom: 60px;
}

/* Version Badge */
.card-cover .version-badge {
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 8px;
}

.card-cover .version-badge.version-updated {
  background: #fef3c7;
  border-color: #fde68a;
}

.card-cover .version-badge .badge-icon {
  font-size: 16pt;
  margin-right: 8px;
}

.card-cover .version-badge .badge-text {
  font-size: 11pt;
  font-weight: 600;
  color: #ca8a04;
}

.card-cover .version-badge .badge-original {
  display: block;
  font-size: 9pt;
  color: #ca8a04;
  margin-top: 4px;
}

/* Client Section */
.card-cover .cover-client {
  margin-bottom: auto;
}

.card-cover .client-label {
  font-size: 9pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 8px 0;
}

.card-cover .client-name {
  font-size: 16pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .client-company {
  font-size: 11pt;
  color: #64748b;
  margin: 4px 0 0 0;
}

/* Footer */
.card-cover .cover-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 80px;
  padding-top: 20px;
}

.card-cover .footer-left {
  text-align: left;
}

.card-cover .footer-right {
  text-align: right;
}

.card-cover .powered-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 4px 0;
}

.card-cover .syre-logo {
  font-size: 18pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .report-date {
  font-size: 11pt;
  color: #64748b;
  margin: 0;
}

/* Print - cover specific */
@media print {
  .card-cover {
    page-break-after: always;
    min-height: auto;
    height: 100vh;
  }
}
  

/* ═══ Card: toc ═══ */

@media print {
  .card-toc .headline-metrics,
  .card-toc .summary-grid {
    gap: 12px;
  }
  .card-toc .metric-card,
  .card-toc .summary-box {
    padding: 12px;
  }
  .card-toc .metric-value,
  .card-toc .value-lg {
    font-size: 16pt;
  }
}

/* TOC Card */
.card-toc {
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-toc .toc-header {
  margin-bottom: 48px;
}

.card-toc .toc-report-title {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-toc .syre-sy {
  font-weight: 300;
}

.card-toc .syre-re {
  font-weight: 700;
}

.card-toc .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-toc .toc-title {
  font-size: 16pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-toc .toc-nav {
  max-width: 600px;
}

.card-toc .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.card-toc .toc-item {
  border-bottom: 1px solid #e2e8f0;
}

.card-toc .toc-item:last-child {
  border-bottom: none;
}

.card-toc .toc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  text-decoration: none;
  color: #c9941a;
  font-size: 11pt;
  font-weight: 400;
  transition: color 0.2s;
}

.card-toc .toc-link:hover {
  color: #a67c15;
}

.card-toc .toc-link-text {
  flex: 1;
}

.card-toc .toc-link-arrow {
  font-size: 14pt;
  margin-left: 16px;
  opacity: 0.7;
}

/* About This Report */
.card-toc .toc-about {
  margin-top: 48px;
  background: #1a1a1a;
  padding: 24px;
  border-radius: 8px;
}

.card-toc .toc-about-title {
  font-size: 14pt;
  font-weight: 600;
  color: #94a3b8;
  margin: 0 0 12px 0;
}

.card-toc .toc-about-text {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  line-height: 1.7;
}

/* Disclaimer */
.card-toc .toc-disclaimer {
  margin-top: 20px;
  border: 2px solid #dc2626;
  border-left-width: 4px;
  padding: 20px 24px;
  border-radius: 8px;
  background: #fee2e2;
}

.card-toc .toc-disclaimer-title {
  font-size: 11pt;
  font-weight: 700;
  color: #dc2626;
  margin: 0 0 12px 0;
}

.card-toc .toc-disclaimer-text {
  font-size: 9pt;
  color: #dc2626;
  margin: 0;
  line-height: 1.7;
}

/* Print - TOC specific */
@media print {
  .card-toc {
    page-break-after: always;
  }

  .card-toc .toc-link {
    color: #c9941a !important;
  }
}
  

/* ═══ Card: subject ═══ */

.card-subject .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-subject .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-subject .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-subject .data-table .text-right { text-align: right; }
.card-subject .data-table .text-center { text-align: center; }
.card-subject .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Property address */
.card-subject .property-address {
  margin-bottom: 20px;
}

.card-subject .property-address h3 {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-subject .property-address p {
  font-size: 10pt;
  color: #64748b;
}

.card-subject .property-address .county {
  font-size: 8pt;
  color: #94a3b8;
  margin-top: 4px;
}

/* Property details */
.card-subject .property-details {
  margin-bottom: 20px;
}

/* Prepared for section */
.card-subject .prepared-for {
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.card-subject .client-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-subject .client-company {
  font-size: 9pt;
  color: #64748b;
}
  

/* ═══ Card: executive-summary-pfx ═══ */

.card-executive-summary-pfx .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-executive-summary-pfx .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-executive-summary-pfx .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-executive-summary-pfx .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-executive-summary-pfx .metric-primary .metric-label {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-executive-summary-pfx .metric-primary .metric-value {
  color: white;
}

.card-executive-summary-pfx .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-executive-summary-pfx .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-executive-summary-pfx .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-executive-summary-pfx .glance-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 24px;
}

.card-executive-summary-pfx .glance-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.card-executive-summary-pfx .glance-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
}

.card-executive-summary-pfx .glance-value {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Responsive grid behavior for details */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .summary-grid {
    gap: 12px;
  }
  .card-executive-summary-pfx .metric-card,
  .card-executive-summary-pfx .summary-box {
    padding: 12px;
  }
  .card-executive-summary-pfx .metric-value,
  .card-executive-summary-pfx .value-lg {
    font-size: 16pt;
  }
}

/* Card header - neutral blue accent (not gold like LIR/BIR) */
.card-executive-summary-pfx h2 {
  border-bottom-color: #2563eb;
}

/* Primary metric with blue top border (neutral) */
.card-executive-summary-pfx .metric-card.metric-primary {
  background: linear-gradient(135deg, #1a1a1a 0%, #334155 100%);
  border-top: 3px solid #2563eb;
}

/* Location metric styling */
.card-executive-summary-pfx .metric-location {
  font-size: 14pt;
}

/* Metric subvalue */
.card-executive-summary-pfx .metric-subvalue {
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-subvalue {
  color: #94a3b8;
}

/* Separator in bed/bath */
.card-executive-summary-pfx .metric-value .separator {
  color: #cbd5e1;
  margin: 0 2px;
}

/* Section headers with blue bar (neutral) */
.card-executive-summary-pfx h3 {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-executive-summary-pfx h3::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #2563eb;
}

/* Property Facts section */
.card-executive-summary-pfx .property-facts {
  margin-bottom: 24px;
}

/* Glance items with neutral left border */
.card-executive-summary-pfx .glance-item {
  padding: 8px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

/* Market Context section - explicitly neutral */
.card-executive-summary-pfx .market-context {
  margin-bottom: 16px;
}

.card-executive-summary-pfx .context-note {
  font-size: 9pt;
  color: #64748b;
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .context-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.card-executive-summary-pfx .context-item {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
}

.card-executive-summary-pfx .context-label {
  display: block;
  font-size: 9pt;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.card-executive-summary-pfx .context-value {
  display: block;
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Responsive: Stack context grid on mobile */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .context-grid {
    grid-template-columns: 1fr;
  }
}
  

/* ═══ Card: tax-assessment ═══ */

.card-tax-assessment .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-tax-assessment .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-tax-assessment .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-tax-assessment .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-tax-assessment .metric-primary .metric-label {
  color: #94a3b8;
}

.card-tax-assessment .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-tax-assessment .metric-primary .metric-value {
  color: white;
}

.card-tax-assessment .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-tax-assessment .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-tax-assessment .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-tax-assessment .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-tax-assessment .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-tax-assessment .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-tax-assessment .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-tax-assessment .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-tax-assessment .data-table .text-right { text-align: right; }
.card-tax-assessment .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-tax-assessment .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-tax-assessment .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-tax-assessment .data-table th,
  .card-tax-assessment .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}
.card-tax-assessment .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Source attribution */
.card-tax-assessment .source-attribution {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.card-tax-assessment .source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-tax-assessment .source-county {
  background: rgba(37, 99, 235, 0.08);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .jurisdiction {
  font-size: 10pt;
  color: #64748b;
}

/* Metrics grid */
.card-tax-assessment .assessment-summary {
  margin-bottom: 24px;
}

.card-tax-assessment .metric-primary {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .metric-primary .metric-value {
  color: #2563eb;
}

/* Assessment breakdown */
.card-tax-assessment .assessment-breakdown {
  margin-bottom: 24px;
}

.card-tax-assessment .assessment-breakdown h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .total-row {
  background: #f8fafc;
  font-weight: 600;
}

.card-tax-assessment .total-row td {
  border-top: 2px solid #e2e8f0;
}

/* Tax exemptions */
.card-tax-assessment .tax-exemptions {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(22, 163, 74, 0.03);
  border: 1px solid rgba(22, 163, 74, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .tax-exemptions h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
  margin-bottom: 12px;
}

.card-tax-assessment .exemptions-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-tax-assessment .exemptions-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(22, 163, 74, 0.13);
  font-size: 10pt;
}

.card-tax-assessment .exemptions-list li:last-child {
  border-bottom: none;
}

.card-tax-assessment .exemption-type {
  color: #1a1a1a;
}

.card-tax-assessment .exemption-amount {
  color: #16a34a;
  font-weight: 600;
}

.card-tax-assessment .total-exemptions {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(22, 163, 74, 0.19);
}

/* Tax history */
.card-tax-assessment .tax-history {
  margin-bottom: 24px;
}

.card-tax-assessment .tax-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .history-table th {
  background: #f8fafc;
}

.card-tax-assessment .change-up {
  color: #dc2626;
}

.card-tax-assessment .change-down {
  color: #16a34a;
}

/* Purchase estimate */
.card-tax-assessment .purchase-estimate {
  margin-bottom: 24px;
}

.card-tax-assessment .purchase-estimate h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-box {
  padding: 16px;
  background: rgba(202, 138, 4, 0.03);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-label {
  font-size: 10pt;
  color: #64748b;
}

.card-tax-assessment .estimate-value {
  font-size: 14pt;
  font-weight: 700;
  color: #ca8a04;
}

.card-tax-assessment .estimate-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.19);
  line-height: 1.6;
}

.card-tax-assessment .estimate-note strong {
  color: #ca8a04;
}

/* Taxing districts */
.card-tax-assessment .taxing-districts {
  margin-bottom: 24px;
}

.card-tax-assessment .taxing-districts h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .districts-table th {
  background: #f8fafc;
}

/* Parcel info */
.card-tax-assessment .parcel-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
}

.card-tax-assessment .parcel-number {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
}

/* Data source note */
.card-tax-assessment .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-tax-assessment .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-tax-assessment .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-tax-assessment .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 640px) {
  .card-tax-assessment .source-attribution {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .estimate-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .parcel-info {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-tax-assessment .exemptions-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}
  

/* ═══ Card: schools ═══ */

.card-schools .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* District info */
.card-schools .district-info {
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-schools .district-info .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Schools list */
.card-schools .schools-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.card-schools .school-item {
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

.card-schools .school-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.card-schools .school-distance {
  font-size: 9pt;
  color: #64748b;
}

/* Note */
.card-schools .schools-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: location ═══ */

.card-location .score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.card-location .score-circle .value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-excellent { background: #dcfce7; color: #16a34a; }
.card-location .score-good { background: #bbf7d0; color: #15803d; }
.card-location .score-fair { background: #fef3c7; color: #ca8a04; }
.card-location .score-poor { background: #fee2e2; color: #dc2626; }

/* Scores grid */
.card-location .scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 20px;
}

.card-location .score-item {
  text-align: center;
}

.card-location .score-value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-label {
  font-size: 12pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-location .score-desc {
  font-size: 9pt;
  color: #64748b;
}

/* Score circle color variants */
.card-location .score-very-good {
  background: #dcfce7;
  color: #16a34a;
}

.card-location .score-good {
  background: #fef3c7;
  color: #ca8a04;
}

.card-location .score-fair {
  background: #fef3c7;
  color: #ca8a04;
}

/* Legend */
.card-location .score-legend {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-location .legend-title {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-location .legend-items {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.card-location .legend-item {
  font-size: 8pt;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

.card-location .legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.card-location .legend-excellent {
  background: #16a34a;
}

.card-location .legend-very-good {
  background: #16a34a;
}

.card-location .legend-good {
  background: #ca8a04;
}

.card-location .legend-fair {
  background: #ca8a04;
}

.card-location .legend-poor {
  background: #dc2626;
}

/* Note */
.card-location .location-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: flood ═══ */

.card-flood .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-flood .status-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .status-warning {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-risk {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-flood .text-success { color: #16a34a; }
.card-flood .text-warning { color: #ca8a04; }
.card-flood .text-danger { color: #dc2626; }
.card-flood .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-flood .data-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-flood .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-flood .data-table .text-right { text-align: right; }
.card-flood .data-table .text-center { text-align: center; }

/* Flood status box */
.card-flood .flood-status {
  display: flex;
  gap: 16px;
  padding: 20px;
  margin-bottom: 16px;
  align-items: center;
}

.card-flood .flood-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .flood-risk {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-icon {
  font-size: 32pt;
}

.card-flood .icon-check {
  color: #16a34a;
}

.card-flood .icon-warning {
  color: #ca8a04;
}

.card-flood .status-label {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-flood .status-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-flood .status-desc {
  font-size: 10pt;
  color: #64748b;
  margin-top: 4px;
}

/* Insurance notice */
.card-flood .insurance-notice {
  padding: 16px;
  background: #fee2e2;
  border: 1px solid #fca5a5;
  margin-bottom: 16px;
}

.card-flood .notice-title {
  font-size: 11pt;
  font-weight: 600;
  color: #dc2626;
  margin-bottom: 4px;
}

.card-flood .notice-text {
  font-size: 9pt;
  color: #dc2626;
  line-height: 1.5;
}

/* Details table */
.card-flood .flood-details {
  margin-bottom: 16px;
}

.card-flood .text-risk {
  color: #dc2626;
}

.card-flood .text-safe {
  color: #16a34a;
}

/* Source note */
.card-flood .flood-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: comps ═══ */

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM GENERATORS
   ═══════════════════════════════════════════════════════════════════════════ */

.card-comps .comps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-comps .comps-table th {
  font-weight: 500;
  color: #1a1a1a;
  background: #f8fafc;
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
}

.card-comps .comps-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #1a1a1a;
}

.card-comps .comps-table .text-right { text-align: right; }
.card-comps .comps-table .text-center { text-align: center; }
.card-comps .summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-comps .summary-box {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-comps .summary-box-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}
.card-comps .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}
/* Card Intro */
.card-comps .card-intro {
  font-size: 10pt;
  color: #64748b;
  margin-bottom: 16px;
}
/* Address Link */
.card-comps .comp-link {
  color: #1e40af;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.card-comps .comp-link:hover {
  color: #334155;
}

@media print {
  .card-comps .comp-link {
    color: inherit;
    text-decoration: none;
  }
}
/* Verify Link */
.card-comps .verify-link {
  color: #16a34a;
  font-size: 8pt;
  text-decoration: none;
}

.card-comps .verify-link:hover {
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CARD-SPECIFIC STYLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Summary section */
.card-comps .comps-summary {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-comps .summary-box .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Note */
.card-comps .comps-note {
  margin-top: 16px;
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: market-stats ═══ */

.card-market-stats .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-market-stats .metric-card {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-market-stats .metric-card.metric-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}

.card-market-stats .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-market-stats .metric-primary .metric-label {
  color: #94a3b8;
}

.card-market-stats .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  line-height: 1;
}

.card-market-stats .metric-primary .metric-value {
  color: white;
}

.card-market-stats .metric-value .unit {
  font-size: 9pt;
  font-weight: 400;
  color: #94a3b8;
}

.card-market-stats .metric-primary .metric-value .unit {
  color: #64748b;
}

.card-market-stats .metric-note {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

.card-market-stats .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}
.card-market-stats .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Market condition banner */
.card-market-stats .market-condition {
  padding: 16px;
  margin-bottom: 20px;
  text-align: center;
}

.card-market-stats .market-condition-seller {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-market-stats .market-condition-buyer {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-market-stats .market-condition-balanced {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-market-stats .condition-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-market-stats .condition-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Stats grid */
.card-market-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-market-stats .stat-box {
  text-align: center;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-market-stats .stat-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
}

.card-market-stats .stat-label {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

/* Market detail rows */
.card-market-stats .market-detail {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-market-stats .detail-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-market-stats .detail-row:last-child {
  border-bottom: none;
}

.card-market-stats .detail-label {
  font-size: 9pt;
  color: #64748b;
}

.card-market-stats .detail-value {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-market-stats .detail-value.positive {
  color: #16a34a;
}

.card-market-stats .detail-value.negative {
  color: #dc2626;
}

/* Market interpretation note */
.card-market-stats .market-note {
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: disclaimer ═══ */

/* Responsive disclaimer grid */
@media screen and (max-width: 768px) {
  .card-disclaimer .disclaimer-grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }

  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}
@media print {
  .card-disclaimer .headline-metrics,
  .card-disclaimer .summary-grid {
    gap: 12px;
  }
  .card-disclaimer .metric-card,
  .card-disclaimer .summary-box {
    padding: 12px;
  }
  .card-disclaimer .metric-value,
  .card-disclaimer .value-lg {
    font-size: 16pt;
  }
}

/* Card base */
.card-disclaimer {
  background: #ffffff;
}

.card-disclaimer h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}

/* Intro warning callout */
.card-disclaimer .disclaimer-intro {
  font-size: 10pt;
  color: #dc2626;
  margin-bottom: 24px;
  padding: 16px;
  background: #fee2e2;
  border-left: 4px solid #dc2626;
  line-height: 1.6;
}

/* Grid layout handled by responsiveDisclaimerGridStyles */

/* Individual disclaimer items */
.card-disclaimer .disclaimer-item {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.card-disclaimer .disclaimer-item h3 {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-disclaimer .disclaimer-item p {
  font-size: 9pt;
  color: #64748b;
  line-height: 1.6;
}

/* Full-width items span both columns on desktop, stay full width on mobile */
.card-disclaimer .disclaimer-item.full-width {
  grid-column: span 2;
}

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }
}

/* Footer section */
.card-disclaimer .disclaimer-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-disclaimer .report-info {
  font-size: 8pt;
  color: #94a3b8;
}

.card-disclaimer .equal-housing {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
}

.card-disclaimer .equal-housing-icon {
  width: 24px;
  height: 24px;
  background: #1a1a1a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10pt;
  font-weight: 700;
}

/* Enhanced fair housing footer */
.card-disclaimer .equal-housing-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.card-disclaimer .equal-housing-title {
  font-weight: 500;
}

.card-disclaimer .fair-housing-statement {
  font-size: 8pt;
  color: #94a3b8;
  line-height: 1.4;
}

/* Footer responsive: stack on mobile */
@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }

  .card-disclaimer .equal-housing {
    flex-direction: column;
    text-align: center;
  }

  .card-disclaimer .equal-housing-text {
    align-items: center;
  }
}
  

/* ═══════════════════════════════════════════════════════════════════════════
   SYRE Report Viewer - Generated Styles
   DO NOT EDIT - This file is generated by build-viewer.ts
   Edit design/tokens.ts, design/components.ts, or design/cards/*.ts instead
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE BASE STYLES - Mobile-first typography scaling
   ═══════════════════════════════════════════════════════════════════════════ */

/* Base (mobile): scaled down for small screens */
:root {
  --type-scale: 0.85;
  --font-size-xxs: calc(0.5rem * var(--type-scale));
  --font-size-xs: calc(0.5625rem * var(--type-scale));
  --font-size-sm: calc(0.625rem * var(--type-scale));
  --font-size-base: calc(0.6875rem * var(--type-scale));
  --font-size-md: calc(0.75rem * var(--type-scale));
  --font-size-lg: calc(0.875rem * var(--type-scale));
  --font-size-xl: calc(1rem * var(--type-scale));
  --font-size-xxl: calc(1.125rem * var(--type-scale));
  --font-size-hero: calc(1.5rem * var(--type-scale));
  --font-size-mega: calc(2rem * var(--type-scale));
}

@media screen and (min-width: 640px) {
  :root { --type-scale: 0.9; }
}

@media screen and (min-width: 768px) {
  :root { --type-scale: 0.95; }
}

@media screen and (min-width: 1024px) {
  :root { --type-scale: 1; }
}

/* Print always uses original pt sizes (no scaling) */
@media print {
  :root {
    --font-size-xxs: 8pt;
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 11pt;
    --font-size-md: 12pt;
    --font-size-lg: 14pt;
    --font-size-xl: 16pt;
    --font-size-xxl: 18pt;
    --font-size-hero: 24pt;
    --font-size-mega: 32pt;
  }
}

/* ═══ Card: cover ═══ */

@media print {
  .card-cover .headline-metrics,
  .card-cover .summary-grid {
    gap: 12px;
  }
  .card-cover .metric-card,
  .card-cover .summary-box {
    padding: 12px;
  }
  .card-cover .metric-value,
  .card-cover .value-lg {
    font-size: 16pt;
  }
}

/* Cover Card - Full Page Title */
.card-cover {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-cover .cover-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-cover .cover-header {
  margin-bottom: 80px;
}

.card-cover .cover-rule {
  height: 3px;
  background: #1a1a1a;
  width: 100%;
}

.card-cover .cover-title {
  margin-bottom: 24px;
}

.card-cover .report-type {
  font-size: 24pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  letter-spacing: -0.01em;
}

.card-cover .syre-sy {
  font-weight: 300;
}

.card-cover .syre-re {
  font-weight: 700;
}

.card-cover .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-cover .report-tagline {
  font-size: 14pt;
  color: #c9941a;
  font-weight: 400;
  margin: 0;
}

.card-cover .cover-address {
  margin-bottom: 24px;
}

.card-cover .property-street {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-cover .property-location {
  font-size: 16pt;
  color: #64748b;
  margin: 0;
}

.card-cover .cover-divider {
  margin-bottom: 60px;
}

/* Version Badge */
.card-cover .version-badge {
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 8px;
}

.card-cover .version-badge.version-updated {
  background: #fef3c7;
  border-color: #fde68a;
}

.card-cover .version-badge .badge-icon {
  font-size: 16pt;
  margin-right: 8px;
}

.card-cover .version-badge .badge-text {
  font-size: 11pt;
  font-weight: 600;
  color: #ca8a04;
}

.card-cover .version-badge .badge-original {
  display: block;
  font-size: 9pt;
  color: #ca8a04;
  margin-top: 4px;
}

/* Client Section */
.card-cover .cover-client {
  margin-bottom: auto;
}

.card-cover .client-label {
  font-size: 9pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 8px 0;
}

.card-cover .client-name {
  font-size: 16pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .client-company {
  font-size: 11pt;
  color: #64748b;
  margin: 4px 0 0 0;
}

/* Footer */
.card-cover .cover-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 80px;
  padding-top: 20px;
}

.card-cover .footer-left {
  text-align: left;
}

.card-cover .footer-right {
  text-align: right;
}

.card-cover .powered-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 4px 0;
}

.card-cover .syre-logo {
  font-size: 18pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .report-date {
  font-size: 11pt;
  color: #64748b;
  margin: 0;
}

/* Print - cover specific */
@media print {
  .card-cover {
    page-break-after: always;
    min-height: auto;
    height: 100vh;
  }
}
  

/* ═══ Card: toc ═══ */

@media print {
  .card-toc .headline-metrics,
  .card-toc .summary-grid {
    gap: 12px;
  }
  .card-toc .metric-card,
  .card-toc .summary-box {
    padding: 12px;
  }
  .card-toc .metric-value,
  .card-toc .value-lg {
    font-size: 16pt;
  }
}

/* TOC Card */
.card-toc {
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-toc .toc-header {
  margin-bottom: 48px;
}

.card-toc .toc-report-title {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-toc .syre-sy {
  font-weight: 300;
}

.card-toc .syre-re {
  font-weight: 700;
}

.card-toc .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-toc .toc-title {
  font-size: 16pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-toc .toc-nav {
  max-width: 600px;
}

.card-toc .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.card-toc .toc-item {
  border-bottom: 1px solid #e2e8f0;
}

.card-toc .toc-item:last-child {
  border-bottom: none;
}

.card-toc .toc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  text-decoration: none;
  color: #c9941a;
  font-size: 11pt;
  font-weight: 400;
  transition: color 0.2s;
}

.card-toc .toc-link:hover {
  color: #a67c15;
}

.card-toc .toc-link-text {
  flex: 1;
}

.card-toc .toc-link-arrow {
  font-size: 14pt;
  margin-left: 16px;
  opacity: 0.7;
}

/* About This Report */
.card-toc .toc-about {
  margin-top: 48px;
  background: #1a1a1a;
  padding: 24px;
  border-radius: 8px;
}

.card-toc .toc-about-title {
  font-size: 14pt;
  font-weight: 600;
  color: #94a3b8;
  margin: 0 0 12px 0;
}

.card-toc .toc-about-text {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  line-height: 1.7;
}

/* Disclaimer */
.card-toc .toc-disclaimer {
  margin-top: 20px;
  border: 2px solid #dc2626;
  border-left-width: 4px;
  padding: 20px 24px;
  border-radius: 8px;
  background: #fee2e2;
}

.card-toc .toc-disclaimer-title {
  font-size: 11pt;
  font-weight: 700;
  color: #dc2626;
  margin: 0 0 12px 0;
}

.card-toc .toc-disclaimer-text {
  font-size: 9pt;
  color: #dc2626;
  margin: 0;
  line-height: 1.7;
}

/* Print - TOC specific */
@media print {
  .card-toc {
    page-break-after: always;
  }

  .card-toc .toc-link {
    color: #c9941a !important;
  }
}
  

/* ═══ Card: subject ═══ */

.card-subject .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-subject .data-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-subject .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-subject .data-table .text-right { text-align: right; }
.card-subject .data-table .text-center { text-align: center; }
.card-subject .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Property address */
.card-subject .property-address {
  margin-bottom: 20px;
}

.card-subject .property-address h3 {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-subject .property-address p {
  font-size: 10pt;
  color: #64748b;
}

.card-subject .property-address .county {
  font-size: 8pt;
  color: #94a3b8;
  margin-top: 4px;
}

/* Property details */
.card-subject .property-details {
  margin-bottom: 20px;
}

/* Prepared for section */
.card-subject .prepared-for {
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.card-subject .client-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-subject .client-company {
  font-size: 9pt;
  color: #64748b;
}
  

/* ═══ Card: executive-summary-pfx ═══ */

.card-executive-summary-pfx .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-executive-summary-pfx .metric-card {
  padding: 16px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  text-align: center;
}

.card-executive-summary-pfx .metric-card.metric-primary {
  background: var(--color-bg-dark);
  color: white;
  border: none;
}

.card-executive-summary-pfx .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-executive-summary-pfx .metric-primary .metric-label {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.card-executive-summary-pfx .metric-primary .metric-value {
  color: white;
}

.card-executive-summary-pfx .metric-value .unit {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-text-light);
}

.card-executive-summary-pfx .metric-primary .metric-value .unit {
  color: var(--color-text-muted);
}

.card-executive-summary-pfx .metric-note {
  font-size: var(--font-size-xxs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.card-executive-summary-pfx .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-executive-summary-pfx .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-executive-summary-pfx .glance-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 24px;
}

.card-executive-summary-pfx .glance-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.card-executive-summary-pfx .glance-label {
  font-size: var(--font-size-xxs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-text-muted);
}

.card-executive-summary-pfx .glance-value {
  font-size: var(--font-size-base);
  font-weight: 500;
  color: var(--color-primary);
}

/* Responsive grid behavior for details */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .summary-grid {
    gap: 12px;
  }
  .card-executive-summary-pfx .metric-card,
  .card-executive-summary-pfx .summary-box {
    padding: 12px;
  }
  .card-executive-summary-pfx .metric-value,
  .card-executive-summary-pfx .value-lg {
    font-size: 16pt;
  }
}

/* Card header - neutral blue accent (not gold like LIR/BIR) */
.card-executive-summary-pfx h2 {
  border-bottom-color: #2563eb;
}

/* Primary metric with blue top border (neutral) */
.card-executive-summary-pfx .metric-card.metric-primary {
  background: linear-gradient(135deg, #1a1a1a 0%, #334155 100%);
  border-top: 3px solid #2563eb;
}

/* Location metric styling */
.card-executive-summary-pfx .metric-location {
  font-size: 14pt;
}

/* Metric subvalue */
.card-executive-summary-pfx .metric-subvalue {
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-subvalue {
  color: #94a3b8;
}

/* Separator in bed/bath */
.card-executive-summary-pfx .metric-value .separator {
  color: #cbd5e1;
  margin: 0 2px;
}

/* Section headers with blue bar (neutral) */
.card-executive-summary-pfx h3 {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-executive-summary-pfx h3::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #2563eb;
}

/* Property Facts section */
.card-executive-summary-pfx .property-facts {
  margin-bottom: 24px;
}

/* Glance items with neutral left border */
.card-executive-summary-pfx .glance-item {
  padding: 8px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

/* Market Context section - explicitly neutral */
.card-executive-summary-pfx .market-context {
  margin-bottom: 16px;
}

.card-executive-summary-pfx .context-note {
  font-size: 9pt;
  color: #64748b;
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .context-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.card-executive-summary-pfx .context-item {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
}

.card-executive-summary-pfx .context-label {
  display: block;
  font-size: 9pt;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.card-executive-summary-pfx .context-value {
  display: block;
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Responsive: Stack context grid on mobile */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .context-grid {
    grid-template-columns: 1fr;
  }
}
  

/* ═══ Card: tax-assessment ═══ */

.card-tax-assessment .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-tax-assessment .metric-card {
  padding: 16px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  text-align: center;
}

.card-tax-assessment .metric-card.metric-primary {
  background: var(--color-bg-dark);
  color: white;
  border: none;
}

.card-tax-assessment .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-tax-assessment .metric-primary .metric-label {
  color: #94a3b8;
}

.card-tax-assessment .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.card-tax-assessment .metric-primary .metric-value {
  color: white;
}

.card-tax-assessment .metric-value .unit {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-text-light);
}

.card-tax-assessment .metric-primary .metric-value .unit {
  color: var(--color-text-muted);
}

.card-tax-assessment .metric-note {
  font-size: var(--font-size-xxs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.card-tax-assessment .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-tax-assessment .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-tax-assessment .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-tax-assessment .data-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-tax-assessment .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-tax-assessment .data-table .text-right { text-align: right; }
.card-tax-assessment .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-tax-assessment .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-tax-assessment .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-tax-assessment .data-table th,
  .card-tax-assessment .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}
.card-tax-assessment .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Source attribution */
.card-tax-assessment .source-attribution {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.card-tax-assessment .source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-tax-assessment .source-county {
  background: rgba(37, 99, 235, 0.08);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .jurisdiction {
  font-size: 10pt;
  color: #64748b;
}

/* Metrics grid */
.card-tax-assessment .assessment-summary {
  margin-bottom: 24px;
}

.card-tax-assessment .metric-primary {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .metric-primary .metric-value {
  color: #2563eb;
}

/* Assessment breakdown */
.card-tax-assessment .assessment-breakdown {
  margin-bottom: 24px;
}

.card-tax-assessment .assessment-breakdown h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .total-row {
  background: #f8fafc;
  font-weight: 600;
}

.card-tax-assessment .total-row td {
  border-top: 2px solid #e2e8f0;
}

/* Tax exemptions */
.card-tax-assessment .tax-exemptions {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(22, 163, 74, 0.03);
  border: 1px solid rgba(22, 163, 74, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .tax-exemptions h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
  margin-bottom: 12px;
}

.card-tax-assessment .exemptions-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-tax-assessment .exemptions-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(22, 163, 74, 0.13);
  font-size: 10pt;
}

.card-tax-assessment .exemptions-list li:last-child {
  border-bottom: none;
}

.card-tax-assessment .exemption-type {
  color: #1a1a1a;
}

.card-tax-assessment .exemption-amount {
  color: #16a34a;
  font-weight: 600;
}

.card-tax-assessment .total-exemptions {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(22, 163, 74, 0.19);
}

/* Tax history */
.card-tax-assessment .tax-history {
  margin-bottom: 24px;
}

.card-tax-assessment .tax-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .history-table th {
  background: #f8fafc;
}

.card-tax-assessment .change-up {
  color: #dc2626;
}

.card-tax-assessment .change-down {
  color: #16a34a;
}

/* Purchase estimate */
.card-tax-assessment .purchase-estimate {
  margin-bottom: 24px;
}

.card-tax-assessment .purchase-estimate h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-box {
  padding: 16px;
  background: rgba(202, 138, 4, 0.03);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-label {
  font-size: 10pt;
  color: #64748b;
}

.card-tax-assessment .estimate-value {
  font-size: 14pt;
  font-weight: 700;
  color: #ca8a04;
}

.card-tax-assessment .estimate-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.19);
  line-height: 1.6;
}

.card-tax-assessment .estimate-note strong {
  color: #ca8a04;
}

/* Taxing districts */
.card-tax-assessment .taxing-districts {
  margin-bottom: 24px;
}

.card-tax-assessment .taxing-districts h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .districts-table th {
  background: #f8fafc;
}

/* Parcel info */
.card-tax-assessment .parcel-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
}

.card-tax-assessment .parcel-number {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
}

/* Data source note */
.card-tax-assessment .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-tax-assessment .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-tax-assessment .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-tax-assessment .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 640px) {
  .card-tax-assessment .source-attribution {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .estimate-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .parcel-info {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-tax-assessment .exemptions-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}
  

/* ═══ Card: schools ═══ */

.card-schools .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* District info */
.card-schools .district-info {
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-schools .district-info .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Schools list */
.card-schools .schools-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.card-schools .school-item {
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

.card-schools .school-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.card-schools .school-distance {
  font-size: 9pt;
  color: #64748b;
}

/* Note */
.card-schools .schools-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: location ═══ */

.card-location .score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.card-location .score-circle .value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-excellent { background: var(--color-success-bg); color: var(--color-success); }
.card-location .score-good { background: #bbf7d0; color: #15803d; }
.card-location .score-fair { background: var(--color-warning-bg); color: var(--color-warning); }
.card-location .score-poor { background: var(--color-danger-bg); color: var(--color-danger); }

/* Scores grid */
.card-location .scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 20px;
}

.card-location .score-item {
  text-align: center;
}

.card-location .score-value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-label {
  font-size: 12pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-location .score-desc {
  font-size: 9pt;
  color: #64748b;
}

/* Score circle color variants */
.card-location .score-very-good {
  background: #dcfce7;
  color: #16a34a;
}

.card-location .score-good {
  background: #fef3c7;
  color: #ca8a04;
}

.card-location .score-fair {
  background: #fef3c7;
  color: #ca8a04;
}

/* Legend */
.card-location .score-legend {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-location .legend-title {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-location .legend-items {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.card-location .legend-item {
  font-size: 8pt;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

.card-location .legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.card-location .legend-excellent {
  background: #16a34a;
}

.card-location .legend-very-good {
  background: #16a34a;
}

.card-location .legend-good {
  background: #ca8a04;
}

.card-location .legend-fair {
  background: #ca8a04;
}

.card-location .legend-poor {
  background: #dc2626;
}

/* Note */
.card-location .location-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: flood ═══ */

.card-flood .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-flood .status-safe {
  background: var(--color-success-bg);
  border: 1px solid var(--color-success-border);
}

.card-flood .status-warning {
  background: var(--color-warning-bg);
  border: 1px solid var(--color-warning-border);
}

.card-flood .status-risk {
  background: var(--color-danger-bg);
  border: 1px solid var(--color-danger-border);
}

.card-flood .text-success { color: var(--color-success); }
.card-flood .text-warning { color: var(--color-warning); }
.card-flood .text-danger { color: var(--color-danger); }
.card-flood .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-flood .data-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-flood .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-flood .data-table .text-right { text-align: right; }
.card-flood .data-table .text-center { text-align: center; }

/* Flood status box */
.card-flood .flood-status {
  display: flex;
  gap: 16px;
  padding: 20px;
  margin-bottom: 16px;
  align-items: center;
}

.card-flood .flood-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .flood-risk {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-icon {
  font-size: 32pt;
}

.card-flood .icon-check {
  color: #16a34a;
}

.card-flood .icon-warning {
  color: #ca8a04;
}

.card-flood .status-label {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-flood .status-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-flood .status-desc {
  font-size: 10pt;
  color: #64748b;
  margin-top: 4px;
}

/* Insurance notice */
.card-flood .insurance-notice {
  padding: 16px;
  background: #fee2e2;
  border: 1px solid #fca5a5;
  margin-bottom: 16px;
}

.card-flood .notice-title {
  font-size: 11pt;
  font-weight: 600;
  color: #dc2626;
  margin-bottom: 4px;
}

.card-flood .notice-text {
  font-size: 9pt;
  color: #dc2626;
  line-height: 1.5;
}

/* Details table */
.card-flood .flood-details {
  margin-bottom: 16px;
}

.card-flood .text-risk {
  color: #dc2626;
}

.card-flood .text-safe {
  color: #16a34a;
}

/* Source note */
.card-flood .flood-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: comps ═══ */

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM GENERATORS
   ═══════════════════════════════════════════════════════════════════════════ */

.card-comps .comps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-comps .comps-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-comps .comps-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-comps .comps-table .text-right { text-align: right; }
.card-comps .comps-table .text-center { text-align: center; }
.card-comps .summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-comps .summary-box {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-comps .summary-box-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}
.card-comps .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}
/* Card Intro */
.card-comps .card-intro {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-lg);
}
/* Address Link */
.card-comps .comp-link {
  color: var(--color-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.card-comps .comp-link:hover {
  color: var(--color-primary-light);
}

@media print {
  .card-comps .comp-link {
    color: inherit;
    text-decoration: none;
  }
}
/* Verify Link */
.card-comps .verify-link {
  color: var(--color-success);
  font-size: var(--font-size-xxs);
  text-decoration: none;
}

.card-comps .verify-link:hover {
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CARD-SPECIFIC STYLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Summary section */
.card-comps .comps-summary {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-comps .summary-box .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Note */
.card-comps .comps-note {
  margin-top: 16px;
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: market-stats ═══ */

.card-market-stats .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-market-stats .metric-card {
  padding: 16px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  text-align: center;
}

.card-market-stats .metric-card.metric-primary {
  background: var(--color-bg-dark);
  color: white;
  border: none;
}

.card-market-stats .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-market-stats .metric-primary .metric-label {
  color: #94a3b8;
}

.card-market-stats .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.card-market-stats .metric-primary .metric-value {
  color: white;
}

.card-market-stats .metric-value .unit {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-text-light);
}

.card-market-stats .metric-primary .metric-value .unit {
  color: var(--color-text-muted);
}

.card-market-stats .metric-note {
  font-size: var(--font-size-xxs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.card-market-stats .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}
.card-market-stats .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Market condition banner */
.card-market-stats .market-condition {
  padding: 16px;
  margin-bottom: 20px;
  text-align: center;
}

.card-market-stats .market-condition-seller {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-market-stats .market-condition-buyer {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-market-stats .market-condition-balanced {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-market-stats .condition-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-market-stats .condition-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Stats grid */
.card-market-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-market-stats .stat-box {
  text-align: center;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-market-stats .stat-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
}

.card-market-stats .stat-label {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

/* Market detail rows */
.card-market-stats .market-detail {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-market-stats .detail-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-market-stats .detail-row:last-child {
  border-bottom: none;
}

.card-market-stats .detail-label {
  font-size: 9pt;
  color: #64748b;
}

.card-market-stats .detail-value {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-market-stats .detail-value.positive {
  color: #16a34a;
}

.card-market-stats .detail-value.negative {
  color: #dc2626;
}

/* Market interpretation note */
.card-market-stats .market-note {
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: disclaimer ═══ */

/* Responsive disclaimer grid */
@media screen and (max-width: 768px) {
  .card-disclaimer .disclaimer-grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }

  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}
@media print {
  .card-disclaimer .headline-metrics,
  .card-disclaimer .summary-grid {
    gap: 12px;
  }
  .card-disclaimer .metric-card,
  .card-disclaimer .summary-box {
    padding: 12px;
  }
  .card-disclaimer .metric-value,
  .card-disclaimer .value-lg {
    font-size: 16pt;
  }
}

/* Card base */
.card-disclaimer {
  background: #ffffff;
}

.card-disclaimer h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}

/* Intro warning callout */
.card-disclaimer .disclaimer-intro {
  font-size: 10pt;
  color: #dc2626;
  margin-bottom: 24px;
  padding: 16px;
  background: #fee2e2;
  border-left: 4px solid #dc2626;
  line-height: 1.6;
}

/* Grid layout handled by responsiveDisclaimerGridStyles */

/* Individual disclaimer items */
.card-disclaimer .disclaimer-item {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.card-disclaimer .disclaimer-item h3 {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-disclaimer .disclaimer-item p {
  font-size: 9pt;
  color: #64748b;
  line-height: 1.6;
}

/* Full-width items span both columns on desktop, stay full width on mobile */
.card-disclaimer .disclaimer-item.full-width {
  grid-column: span 2;
}

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }
}

/* Footer section */
.card-disclaimer .disclaimer-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-disclaimer .report-info {
  font-size: 8pt;
  color: #94a3b8;
}

.card-disclaimer .equal-housing {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
}

.card-disclaimer .equal-housing-icon {
  width: 24px;
  height: 24px;
  background: #1a1a1a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10pt;
  font-weight: 700;
}

/* Enhanced fair housing footer */
.card-disclaimer .equal-housing-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.card-disclaimer .equal-housing-title {
  font-weight: 500;
}

.card-disclaimer .fair-housing-statement {
  font-size: 8pt;
  color: #94a3b8;
  line-height: 1.4;
}

/* Footer responsive: stack on mobile */
@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }

  .card-disclaimer .equal-housing {
    flex-direction: column;
    text-align: center;
  }

  .card-disclaimer .equal-housing-text {
    align-items: center;
  }
}
  

/* ═══════════════════════════════════════════════════════════════════════════
   SYRE Report Viewer - Generated Styles
   DO NOT EDIT - This file is generated by build-viewer.ts
   Edit design/tokens.ts, design/components.ts, or design/cards/*.ts instead
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══ CSS Variables for Runtime Theming ═══ */
:root {
  /* Colors - Primary & Text */
  --color-primary: #1a1a1a;
  --color-primary-light: #334155;
  --color-text-muted: #64748b;
  --color-text-light: #94a3b8;

  /* Colors - Backgrounds */
  --color-bg-white: #ffffff;
  --color-bg-light: #f8fafc;
  --color-bg-dark: #1a1a1a;

  /* Colors - Borders */
  --color-border: #e2e8f0;
  --color-border-dark: #cbd5e1;
  --color-border-light: #f1f5f9;

  /* Colors - Status: Success */
  --color-success: #16a34a;
  --color-success-bg: #dcfce7;
  --color-success-border: #86efac;

  /* Colors - Status: Warning */
  --color-warning: #ca8a04;
  --color-warning-bg: #fef3c7;
  --color-warning-border: #fde68a;

  /* Colors - Status: Danger */
  --color-danger: #dc2626;
  --color-danger-bg: #fee2e2;
  --color-danger-border: #fca5a5;

  /* Colors - Status: Info */
  --color-info: #2563eb;
  --color-info-bg: #dbeafe;
  --color-info-border: #93c5fd;

  /* Colors - Accent & Links */
  --color-accent: #c9941a;
  --color-accent-dark: #a67c15;
  --color-link: #1e40af;

  /* Colors - Methodology Notes */
  --color-methodology-bg: #fefce8;
  --color-methodology-border: #fef08a;
  --color-methodology-text: #713f12;

  /* Typography */
  --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-size-xxs: 8pt;
  --font-size-xs: 9pt;
  --font-size-sm: 10pt;
  --font-size-base: 11pt;
  --font-size-md: 12pt;
  --font-size-lg: 14pt;
  --font-size-xl: 16pt;
  --font-size-xxl: 18pt;
  --font-size-hero: 24pt;
  --font-size-mega: 32pt;

  /* Spacing */
  --space-xxs: 2px;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 20px;
  --space-xxl: 24px;
  --space-xxxl: 32px;
}

/* ═══ Responsive Typography Scaling ═══ */
/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE BASE STYLES - Mobile-first typography scaling
   ═══════════════════════════════════════════════════════════════════════════ */

/* Base (mobile): scaled down for small screens */
:root {
  --type-scale: 0.85;
  --font-size-xxs: calc(0.5rem * var(--type-scale));
  --font-size-xs: calc(0.5625rem * var(--type-scale));
  --font-size-sm: calc(0.625rem * var(--type-scale));
  --font-size-base: calc(0.6875rem * var(--type-scale));
  --font-size-md: calc(0.75rem * var(--type-scale));
  --font-size-lg: calc(0.875rem * var(--type-scale));
  --font-size-xl: calc(1rem * var(--type-scale));
  --font-size-xxl: calc(1.125rem * var(--type-scale));
  --font-size-hero: calc(1.5rem * var(--type-scale));
  --font-size-mega: calc(2rem * var(--type-scale));
}

@media screen and (min-width: 640px) {
  :root { --type-scale: 0.9; }
}

@media screen and (min-width: 768px) {
  :root { --type-scale: 0.95; }
}

@media screen and (min-width: 1024px) {
  :root { --type-scale: 1; }
}

/* Print always uses original pt sizes (no scaling) */
@media print {
  :root {
    --font-size-xxs: 8pt;
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 11pt;
    --font-size-md: 12pt;
    --font-size-lg: 14pt;
    --font-size-xl: 16pt;
    --font-size-xxl: 18pt;
    --font-size-hero: 24pt;
    --font-size-mega: 32pt;
  }
}

/* ═══ Card: cover ═══ */

@media print {
  .card-cover .headline-metrics,
  .card-cover .summary-grid {
    gap: 12px;
  }
  .card-cover .metric-card,
  .card-cover .summary-box {
    padding: 12px;
  }
  .card-cover .metric-value,
  .card-cover .value-lg {
    font-size: 16pt;
  }
}

/* Cover Card - Full Page Title */
.card-cover {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-cover .cover-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-cover .cover-header {
  margin-bottom: 80px;
}

.card-cover .cover-rule {
  height: 3px;
  background: #1a1a1a;
  width: 100%;
}

.card-cover .cover-title {
  margin-bottom: 24px;
}

.card-cover .report-type {
  font-size: 24pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 12px 0;
  letter-spacing: -0.01em;
}

.card-cover .syre-sy {
  font-weight: 300;
}

.card-cover .syre-re {
  font-weight: 700;
}

.card-cover .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-cover .report-tagline {
  font-size: 14pt;
  color: #c9941a;
  font-weight: 400;
  margin: 0;
}

.card-cover .cover-address {
  margin-bottom: 24px;
}

.card-cover .property-street {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-cover .property-location {
  font-size: 16pt;
  color: #64748b;
  margin: 0;
}

.card-cover .cover-divider {
  margin-bottom: 60px;
}

/* Version Badge */
.card-cover .version-badge {
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 8px;
}

.card-cover .version-badge.version-updated {
  background: #fef3c7;
  border-color: #fde68a;
}

.card-cover .version-badge .badge-icon {
  font-size: 16pt;
  margin-right: 8px;
}

.card-cover .version-badge .badge-text {
  font-size: 11pt;
  font-weight: 600;
  color: #ca8a04;
}

.card-cover .version-badge .badge-original {
  display: block;
  font-size: 9pt;
  color: #ca8a04;
  margin-top: 4px;
}

/* Client Section */
.card-cover .cover-client {
  margin-bottom: auto;
}

.card-cover .client-label {
  font-size: 9pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 8px 0;
}

.card-cover .client-name {
  font-size: 16pt;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .client-company {
  font-size: 11pt;
  color: #64748b;
  margin: 4px 0 0 0;
}

/* Footer */
.card-cover .cover-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 80px;
  padding-top: 20px;
}

.card-cover .footer-left {
  text-align: left;
}

.card-cover .footer-right {
  text-align: right;
}

.card-cover .powered-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
  margin: 0 0 4px 0;
}

.card-cover .syre-logo {
  font-size: 18pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-cover .report-date {
  font-size: 11pt;
  color: #64748b;
  margin: 0;
}

/* Print - cover specific */
@media print {
  .card-cover {
    page-break-after: always;
    min-height: auto;
    height: 100vh;
  }
}
  

/* ═══ Card: toc ═══ */

@media print {
  .card-toc .headline-metrics,
  .card-toc .summary-grid {
    gap: 12px;
  }
  .card-toc .metric-card,
  .card-toc .summary-box {
    padding: 12px;
  }
  .card-toc .metric-value,
  .card-toc .value-lg {
    font-size: 16pt;
  }
}

/* TOC Card */
.card-toc {
  padding: 60px 80px;
  page-break-after: always;
  background: #ffffff;
}

.card-toc .toc-header {
  margin-bottom: 48px;
}

.card-toc .toc-report-title {
  font-size: 32pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0 0 8px 0;
  letter-spacing: -0.01em;
}

.card-toc .syre-sy {
  font-weight: 300;
}

.card-toc .syre-re {
  font-weight: 700;
}

.card-toc .trademark {
  font-size: 9pt;
  vertical-align: super;
  font-weight: 400;
}

.card-toc .toc-title {
  font-size: 16pt;
  font-weight: 400;
  color: #1a1a1a;
  margin: 0;
}

.card-toc .toc-nav {
  max-width: 600px;
}

.card-toc .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.card-toc .toc-item {
  border-bottom: 1px solid #e2e8f0;
}

.card-toc .toc-item:last-child {
  border-bottom: none;
}

.card-toc .toc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  text-decoration: none;
  color: #c9941a;
  font-size: 11pt;
  font-weight: 400;
  transition: color 0.2s;
}

.card-toc .toc-link:hover {
  color: #a67c15;
}

.card-toc .toc-link-text {
  flex: 1;
}

.card-toc .toc-link-arrow {
  font-size: 14pt;
  margin-left: 16px;
  opacity: 0.7;
}

/* About This Report */
.card-toc .toc-about {
  margin-top: 48px;
  background: #1a1a1a;
  padding: 24px;
  border-radius: 8px;
}

.card-toc .toc-about-title {
  font-size: 14pt;
  font-weight: 600;
  color: #94a3b8;
  margin: 0 0 12px 0;
}

.card-toc .toc-about-text {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  line-height: 1.7;
}

/* Disclaimer */
.card-toc .toc-disclaimer {
  margin-top: 20px;
  border: 2px solid #dc2626;
  border-left-width: 4px;
  padding: 20px 24px;
  border-radius: 8px;
  background: #fee2e2;
}

.card-toc .toc-disclaimer-title {
  font-size: 11pt;
  font-weight: 700;
  color: #dc2626;
  margin: 0 0 12px 0;
}

.card-toc .toc-disclaimer-text {
  font-size: 9pt;
  color: #dc2626;
  margin: 0;
  line-height: 1.7;
}

/* Print - TOC specific */
@media print {
  .card-toc {
    page-break-after: always;
  }

  .card-toc .toc-link {
    color: #c9941a !important;
  }
}
  

/* ═══ Card: subject ═══ */

.card-subject .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-subject .data-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-subject .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-subject .data-table .text-right { text-align: right; }
.card-subject .data-table .text-center { text-align: center; }
.card-subject .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Property address */
.card-subject .property-address {
  margin-bottom: 20px;
}

.card-subject .property-address h3 {
  font-size: 18pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-subject .property-address p {
  font-size: 10pt;
  color: #64748b;
}

.card-subject .property-address .county {
  font-size: 8pt;
  color: #94a3b8;
  margin-top: 4px;
}

/* Property details */
.card-subject .property-details {
  margin-bottom: 20px;
}

/* Prepared for section */
.card-subject .prepared-for {
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.card-subject .client-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-subject .client-company {
  font-size: 9pt;
  color: #64748b;
}
  

/* ═══ Card: executive-summary-pfx ═══ */

.card-executive-summary-pfx .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-executive-summary-pfx .metric-card {
  padding: 16px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  text-align: center;
}

.card-executive-summary-pfx .metric-card.metric-primary {
  background: var(--color-bg-dark);
  color: white;
  border: none;
}

.card-executive-summary-pfx .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-executive-summary-pfx .metric-primary .metric-label {
  color: #94a3b8;
}

.card-executive-summary-pfx .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.card-executive-summary-pfx .metric-primary .metric-value {
  color: white;
}

.card-executive-summary-pfx .metric-value .unit {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-text-light);
}

.card-executive-summary-pfx .metric-primary .metric-value .unit {
  color: var(--color-text-muted);
}

.card-executive-summary-pfx .metric-note {
  font-size: var(--font-size-xxs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.card-executive-summary-pfx .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-executive-summary-pfx .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .metric-grid,
  .card-executive-summary-pfx .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-executive-summary-pfx .glance-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 24px;
}

.card-executive-summary-pfx .glance-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.card-executive-summary-pfx .glance-label {
  font-size: var(--font-size-xxs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-text-muted);
}

.card-executive-summary-pfx .glance-value {
  font-size: var(--font-size-base);
  font-weight: 500;
  color: var(--color-primary);
}

/* Responsive grid behavior for details */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-executive-summary-pfx .glance-grid,
  .card-executive-summary-pfx .details-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print {
  .card-executive-summary-pfx .headline-metrics,
  .card-executive-summary-pfx .summary-grid {
    gap: 12px;
  }
  .card-executive-summary-pfx .metric-card,
  .card-executive-summary-pfx .summary-box {
    padding: 12px;
  }
  .card-executive-summary-pfx .metric-value,
  .card-executive-summary-pfx .value-lg {
    font-size: 16pt;
  }
}

/* Card header - neutral blue accent (not gold like LIR/BIR) */
.card-executive-summary-pfx h2 {
  border-bottom-color: #2563eb;
}

/* Primary metric with blue top border (neutral) */
.card-executive-summary-pfx .metric-card.metric-primary {
  background: linear-gradient(135deg, #1a1a1a 0%, #334155 100%);
  border-top: 3px solid #2563eb;
}

/* Location metric styling */
.card-executive-summary-pfx .metric-location {
  font-size: 14pt;
}

/* Metric subvalue */
.card-executive-summary-pfx .metric-subvalue {
  font-size: 9pt;
  color: #64748b;
  margin-top: 4px;
}

.card-executive-summary-pfx .metric-primary .metric-subvalue {
  color: #94a3b8;
}

/* Separator in bed/bath */
.card-executive-summary-pfx .metric-value .separator {
  color: #cbd5e1;
  margin: 0 2px;
}

/* Section headers with blue bar (neutral) */
.card-executive-summary-pfx h3 {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-executive-summary-pfx h3::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #2563eb;
}

/* Property Facts section */
.card-executive-summary-pfx .property-facts {
  margin-bottom: 24px;
}

/* Glance items with neutral left border */
.card-executive-summary-pfx .glance-item {
  padding: 8px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

/* Market Context section - explicitly neutral */
.card-executive-summary-pfx .market-context {
  margin-bottom: 16px;
}

.card-executive-summary-pfx .context-note {
  font-size: 9pt;
  color: #64748b;
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: #f8fafc;
  border-left: 2px solid #e2e8f0;
}

.card-executive-summary-pfx .context-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.card-executive-summary-pfx .context-item {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
}

.card-executive-summary-pfx .context-label {
  display: block;
  font-size: 9pt;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.card-executive-summary-pfx .context-value {
  display: block;
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Responsive: Stack context grid on mobile */
@media screen and (max-width: 640px) {
  .card-executive-summary-pfx .context-grid {
    grid-template-columns: 1fr;
  }
}
  

/* ═══ Card: tax-assessment ═══ */

.card-tax-assessment .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-tax-assessment .metric-card {
  padding: 16px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  text-align: center;
}

.card-tax-assessment .metric-card.metric-primary {
  background: var(--color-bg-dark);
  color: white;
  border: none;
}

.card-tax-assessment .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-tax-assessment .metric-primary .metric-label {
  color: #94a3b8;
}

.card-tax-assessment .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.card-tax-assessment .metric-primary .metric-value {
  color: white;
}

.card-tax-assessment .metric-value .unit {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-text-light);
}

.card-tax-assessment .metric-primary .metric-value .unit {
  color: var(--color-text-muted);
}

.card-tax-assessment .metric-note {
  font-size: var(--font-size-xxs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.card-tax-assessment .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}

/* Responsive grid behavior for metrics */
@media screen and (max-width: 640px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }

  .card-tax-assessment .metric-value {
    font-size: var(--font-size-lg, 14pt);
  }
}

@media screen and (min-width: 640px) and (max-width: 768px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 1024px) {
  .card-tax-assessment .headline-metrics,
  .card-tax-assessment .metric-grid,
  .card-tax-assessment .summary-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card-tax-assessment .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-tax-assessment .data-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-tax-assessment .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-tax-assessment .data-table .text-right { text-align: right; }
.card-tax-assessment .data-table .text-center { text-align: center; }

/* Responsive table behavior - horizontal scroll wrapper */
@media screen and (max-width: 768px) {
  .card-tax-assessment .table-scroll-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 0 16px;
  }

  .card-tax-assessment .data-table {
    min-width: 600px;
    font-size: var(--font-size-xs, 9pt);
  }

  .card-tax-assessment .data-table th,
  .card-tax-assessment .data-table td {
    padding: 8px;
    white-space: nowrap;
  }
}
.card-tax-assessment .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Source attribution */
.card-tax-assessment .source-attribution {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.card-tax-assessment .source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-tax-assessment .source-county {
  background: rgba(37, 99, 235, 0.08);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .jurisdiction {
  font-size: 10pt;
  color: #64748b;
}

/* Metrics grid */
.card-tax-assessment .assessment-summary {
  margin-bottom: 24px;
}

.card-tax-assessment .metric-primary {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.19);
}

.card-tax-assessment .metric-primary .metric-value {
  color: #2563eb;
}

/* Assessment breakdown */
.card-tax-assessment .assessment-breakdown {
  margin-bottom: 24px;
}

.card-tax-assessment .assessment-breakdown h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .total-row {
  background: #f8fafc;
  font-weight: 600;
}

.card-tax-assessment .total-row td {
  border-top: 2px solid #e2e8f0;
}

/* Tax exemptions */
.card-tax-assessment .tax-exemptions {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(22, 163, 74, 0.03);
  border: 1px solid rgba(22, 163, 74, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .tax-exemptions h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #16a34a;
  margin-bottom: 12px;
}

.card-tax-assessment .exemptions-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px 0;
}

.card-tax-assessment .exemptions-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(22, 163, 74, 0.13);
  font-size: 10pt;
}

.card-tax-assessment .exemptions-list li:last-child {
  border-bottom: none;
}

.card-tax-assessment .exemption-type {
  color: #1a1a1a;
}

.card-tax-assessment .exemption-amount {
  color: #16a34a;
  font-weight: 600;
}

.card-tax-assessment .total-exemptions {
  font-size: 10pt;
  color: #64748b;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(22, 163, 74, 0.19);
}

/* Tax history */
.card-tax-assessment .tax-history {
  margin-bottom: 24px;
}

.card-tax-assessment .tax-history h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .history-table th {
  background: #f8fafc;
}

.card-tax-assessment .change-up {
  color: #dc2626;
}

.card-tax-assessment .change-down {
  color: #16a34a;
}

/* Purchase estimate */
.card-tax-assessment .purchase-estimate {
  margin-bottom: 24px;
}

.card-tax-assessment .purchase-estimate h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-box {
  padding: 16px;
  background: rgba(202, 138, 4, 0.03);
  border: 1px solid rgba(202, 138, 4, 0.19);
  border-radius: 8px;
}

.card-tax-assessment .estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.card-tax-assessment .estimate-label {
  font-size: 10pt;
  color: #64748b;
}

.card-tax-assessment .estimate-value {
  font-size: 14pt;
  font-weight: 700;
  color: #ca8a04;
}

.card-tax-assessment .estimate-note {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(202, 138, 4, 0.19);
  line-height: 1.6;
}

.card-tax-assessment .estimate-note strong {
  color: #ca8a04;
}

/* Taxing districts */
.card-tax-assessment .taxing-districts {
  margin-bottom: 24px;
}

.card-tax-assessment .taxing-districts h3 {
  font-size: 10pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
}

.card-tax-assessment .districts-table th {
  background: #f8fafc;
}

/* Parcel info */
.card-tax-assessment .parcel-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
}

.card-tax-assessment .parcel-number {
  font-size: 10pt;
  font-weight: 500;
  color: #1a1a1a;
  font-family: 'SF Mono', Monaco, 'Cascadia Code', Consolas, monospace;
}

/* Data source note */
.card-tax-assessment .data-source-note {
  padding: 12px;
  background: #f8fafc;
  border-radius: 4px;
  border-left: 3px solid #2563eb;
}

.card-tax-assessment .data-source-note p {
  font-size: 9pt;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}

.card-tax-assessment .data-source-note strong {
  color: #2563eb;
}

/* Text alignment helpers */
.card-tax-assessment .text-right {
  text-align: right;
}

/* Responsive adjustments */
@media screen and (max-width: 640px) {
  .card-tax-assessment .source-attribution {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .estimate-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .card-tax-assessment .parcel-info {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-tax-assessment .exemptions-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}
  

/* ═══ Card: schools ═══ */

.card-schools .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* District info */
.card-schools .district-info {
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-schools .district-info .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Schools list */
.card-schools .schools-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.card-schools .school-item {
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

.card-schools .school-name {
  font-size: 11pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.card-schools .school-distance {
  font-size: 9pt;
  color: #64748b;
}

/* Note */
.card-schools .schools-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: location ═══ */

.card-location .score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.card-location .score-circle .value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-excellent { background: var(--color-success-bg); color: var(--color-success); }
.card-location .score-good { background: #bbf7d0; color: #15803d; }
.card-location .score-fair { background: var(--color-warning-bg); color: var(--color-warning); }
.card-location .score-poor { background: var(--color-danger-bg); color: var(--color-danger); }

/* Scores grid */
.card-location .scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 20px;
}

.card-location .score-item {
  text-align: center;
}

.card-location .score-value {
  font-size: 32pt;
  font-weight: 300;
}

.card-location .score-label {
  font-size: 12pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.card-location .score-desc {
  font-size: 9pt;
  color: #64748b;
}

/* Score circle color variants */
.card-location .score-very-good {
  background: #dcfce7;
  color: #16a34a;
}

.card-location .score-good {
  background: #fef3c7;
  color: #ca8a04;
}

.card-location .score-fair {
  background: #fef3c7;
  color: #ca8a04;
}

/* Legend */
.card-location .score-legend {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-location .legend-title {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-location .legend-items {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.card-location .legend-item {
  font-size: 8pt;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

.card-location .legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.card-location .legend-excellent {
  background: #16a34a;
}

.card-location .legend-very-good {
  background: #16a34a;
}

.card-location .legend-good {
  background: #ca8a04;
}

.card-location .legend-fair {
  background: #ca8a04;
}

.card-location .legend-poor {
  background: #dc2626;
}

/* Note */
.card-location .location-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: flood ═══ */

.card-flood .status-box {
  display: flex;
  gap: 16px;
  padding: 20px;
  align-items: center;
}

.card-flood .status-safe {
  background: var(--color-success-bg);
  border: 1px solid var(--color-success-border);
}

.card-flood .status-warning {
  background: var(--color-warning-bg);
  border: 1px solid var(--color-warning-border);
}

.card-flood .status-risk {
  background: var(--color-danger-bg);
  border: 1px solid var(--color-danger-border);
}

.card-flood .text-success { color: var(--color-success); }
.card-flood .text-warning { color: var(--color-warning); }
.card-flood .text-danger { color: var(--color-danger); }
.card-flood .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-flood .data-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-flood .data-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-flood .data-table .text-right { text-align: right; }
.card-flood .data-table .text-center { text-align: center; }

/* Flood status box */
.card-flood .flood-status {
  display: flex;
  gap: 16px;
  padding: 20px;
  margin-bottom: 16px;
  align-items: center;
}

.card-flood .flood-safe {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-flood .flood-risk {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-flood .status-icon {
  font-size: 32pt;
}

.card-flood .icon-check {
  color: #16a34a;
}

.card-flood .icon-warning {
  color: #ca8a04;
}

.card-flood .status-label {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-flood .status-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

.card-flood .status-desc {
  font-size: 10pt;
  color: #64748b;
  margin-top: 4px;
}

/* Insurance notice */
.card-flood .insurance-notice {
  padding: 16px;
  background: #fee2e2;
  border: 1px solid #fca5a5;
  margin-bottom: 16px;
}

.card-flood .notice-title {
  font-size: 11pt;
  font-weight: 600;
  color: #dc2626;
  margin-bottom: 4px;
}

.card-flood .notice-text {
  font-size: 9pt;
  color: #dc2626;
  line-height: 1.5;
}

/* Details table */
.card-flood .flood-details {
  margin-bottom: 16px;
}

.card-flood .text-risk {
  color: #dc2626;
}

.card-flood .text-safe {
  color: #16a34a;
}

/* Source note */
.card-flood .flood-note {
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 8pt;
  color: #64748b;
}
  

/* ═══ Card: comps ═══ */

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM GENERATORS
   ═══════════════════════════════════════════════════════════════════════════ */

.card-comps .comps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.card-comps .comps-table th {
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-bg-light);
  padding: 10px 8px;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}

.card-comps .comps-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
}

.card-comps .comps-table .text-right { text-align: right; }
.card-comps .comps-table .text-center { text-align: center; }
.card-comps .summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-comps .summary-box {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.card-comps .summary-box-primary {
  background: #1a1a1a;
  color: white;
  border: none;
}
.card-comps .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}
/* Card Intro */
.card-comps .card-intro {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-lg);
}
/* Address Link */
.card-comps .comp-link {
  color: var(--color-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.card-comps .comp-link:hover {
  color: var(--color-primary-light);
}

@media print {
  .card-comps .comp-link {
    color: inherit;
    text-decoration: none;
  }
}
/* Verify Link */
.card-comps .verify-link {
  color: var(--color-success);
  font-size: var(--font-size-xxs);
  text-decoration: none;
}

.card-comps .verify-link:hover {
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CARD-SPECIFIC STYLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Summary section */
.card-comps .comps-summary {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-comps .summary-box .value {
  font-size: 14pt;
  font-weight: 500;
  color: #1a1a1a;
}

/* Note */
.card-comps .comps-note {
  margin-top: 16px;
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: market-stats ═══ */

.card-market-stats .headline-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.card-market-stats .metric-card {
  padding: 16px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  text-align: center;
}

.card-market-stats .metric-card.metric-primary {
  background: var(--color-bg-dark);
  color: white;
  border: none;
}

.card-market-stats .metric-label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

.card-market-stats .metric-primary .metric-label {
  color: #94a3b8;
}

.card-market-stats .metric-value {
  font-size: 18pt;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.card-market-stats .metric-primary .metric-value {
  color: white;
}

.card-market-stats .metric-value .unit {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--color-text-light);
}

.card-market-stats .metric-primary .metric-value .unit {
  color: var(--color-text-muted);
}

.card-market-stats .metric-note {
  font-size: var(--font-size-xxs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.card-market-stats .metric-primary .metric-note {
  color: rgba(255, 255, 255, 0.2);
}
.card-market-stats .label {
  font-size: 8pt;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 8px;
}

/* Market condition banner */
.card-market-stats .market-condition {
  padding: 16px;
  margin-bottom: 20px;
  text-align: center;
}

.card-market-stats .market-condition-seller {
  background: #dcfce7;
  border: 1px solid #86efac;
}

.card-market-stats .market-condition-buyer {
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.card-market-stats .market-condition-balanced {
  background: #fef3c7;
  border: 1px solid #fde68a;
}

.card-market-stats .condition-label {
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 4px;
}

.card-market-stats .condition-value {
  font-size: 18pt;
  font-weight: 600;
  color: #1a1a1a;
}

/* Stats grid */
.card-market-stats .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.card-market-stats .stat-box {
  text-align: center;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.card-market-stats .stat-value {
  font-size: 32pt;
  font-weight: 300;
  color: #1a1a1a;
}

.card-market-stats .stat-label {
  font-size: 8pt;
  color: #64748b;
  margin-top: 4px;
}

/* Market detail rows */
.card-market-stats .market-detail {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.card-market-stats .detail-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.card-market-stats .detail-row:last-child {
  border-bottom: none;
}

.card-market-stats .detail-label {
  font-size: 9pt;
  color: #64748b;
}

.card-market-stats .detail-value {
  font-size: 9pt;
  font-weight: 500;
  color: #1a1a1a;
}

.card-market-stats .detail-value.positive {
  color: #16a34a;
}

.card-market-stats .detail-value.negative {
  color: #dc2626;
}

/* Market interpretation note */
.card-market-stats .market-note {
  padding: 12px;
  background: #fefce8;
  border: 1px solid #fef08a;
  font-size: 8pt;
  color: #713f12;
}
  

/* ═══ Card: disclaimer ═══ */

/* Responsive disclaimer grid */
@media screen and (max-width: 768px) {
  .card-disclaimer .disclaimer-grid {
    grid-template-columns: repeat(1, 1fr);
  }

  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }

  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}
@media print {
  .card-disclaimer .headline-metrics,
  .card-disclaimer .summary-grid {
    gap: 12px;
  }
  .card-disclaimer .metric-card,
  .card-disclaimer .summary-box {
    padding: 12px;
  }
  .card-disclaimer .metric-value,
  .card-disclaimer .value-lg {
    font-size: 16pt;
  }
}

/* Card base */
.card-disclaimer {
  background: #ffffff;
}

.card-disclaimer h2 {
  font-size: 14pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}

/* Intro warning callout */
.card-disclaimer .disclaimer-intro {
  font-size: 10pt;
  color: #dc2626;
  margin-bottom: 24px;
  padding: 16px;
  background: #fee2e2;
  border-left: 4px solid #dc2626;
  line-height: 1.6;
}

/* Grid layout handled by responsiveDisclaimerGridStyles */

/* Individual disclaimer items */
.card-disclaimer .disclaimer-item {
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.card-disclaimer .disclaimer-item h3 {
  font-size: 11pt;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 8px;
}

.card-disclaimer .disclaimer-item p {
  font-size: 9pt;
  color: #64748b;
  line-height: 1.6;
}

/* Full-width items span both columns on desktop, stay full width on mobile */
.card-disclaimer .disclaimer-item.full-width {
  grid-column: span 2;
}

@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-item.full-width {
    grid-column: span 1;
  }
}

/* Footer section */
.card-disclaimer .disclaimer-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-disclaimer .report-info {
  font-size: 8pt;
  color: #94a3b8;
}

.card-disclaimer .equal-housing {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8pt;
  color: #64748b;
}

.card-disclaimer .equal-housing-icon {
  width: 24px;
  height: 24px;
  background: #1a1a1a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10pt;
  font-weight: 700;
}

/* Enhanced fair housing footer */
.card-disclaimer .equal-housing-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.card-disclaimer .equal-housing-title {
  font-weight: 500;
}

.card-disclaimer .fair-housing-statement {
  font-size: 8pt;
  color: #94a3b8;
  line-height: 1.4;
}

/* Footer responsive: stack on mobile */
@media screen and (max-width: 640px) {
  .card-disclaimer .disclaimer-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }

  .card-disclaimer .equal-housing {
    flex-direction: column;
    text-align: center;
  }

  .card-disclaimer .equal-housing-text {
    align-items: center;
  }
}
  