/* ═══════════════════════════════════════════════════
   PropertyAlert Design System v1.0 — 2026-06-04
   Extracted from homepage Claude Design (Brief 666)
   ═══════════════════════════════════════════════════ */

/* ── CSS Variables ── */
:root {
  --navy: #1a365d;
  --navy-dark: #0f2440;
  --navy-mid: #1e4a84;
  --amber: #d97706;
  --amber-hover: #92400e;
  --green: #48bb78;
  --green-dark: #22543d;
  --red: #f56565;
  --red-dark: #9b2c2c;
  --yellow: #f6ad55;
  --yellow-dark: #744210;
  --bg: #f7fafc;
  --white: #ffffff;
  --muted: #718096;
  --border: #e2e8f0;
  --text: #1a202c;
  --text-secondary: #4a5568;
  --mono: 'JetBrains Mono', 'Courier New', monospace;
}

/* ── Base typography ── */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--text);
  line-height: 1.6;
}

/* Apply JetBrains Mono to all numerical/data elements */
.price, .score, .yield, .cashflow, .pct, .mono,
[class*="score-"], [class*="badge-score"],
.score-badge, .investment-score,
td.price, td.yield, td.score, td.cashflow,
.stat-number, .stat-n,
.deal-score, .deal-price, .deal-yield, .deal-cashflow {
  font-family: var(--mono) !important;
}

/* ── Score badges (consistent across all pages) ── */
.score-hi, .badge-score-hi, .score-green {
  background: #C6F6D5;
  color: #22543d;
  font-family: var(--mono);
  font-weight: 700;
}
.score-md, .badge-score-md, .score-amber {
  background: #FEFCBF;
  color: #744210;
  font-family: var(--mono);
  font-weight: 700;
}
.score-lo, .badge-score-lo, .score-red {
  background: #FED7D7;
  color: #9b2c2c;
  font-family: var(--mono);
  font-weight: 700;
}

/* ── Deal type chips ── */
.chip-bmv, .badge-bmv, .tag-bmv {
  background: #EBF8FF;
  color: #2C5282;
  border: 1px solid #BEE3F8;
}
.chip-btl, .badge-btl, .tag-btl {
  background: #EDE9FE;
  color: #5B21B6;
  border: 1px solid #C7D2FE;
}
.chip-r2sa, .badge-r2sa, .tag-r2sa {
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FDE68A;
}
.chip-auction, .badge-auction, .tag-auction {
  background: #FFF5F5;
  color: #C53030;
  border: 1px solid #FEB2B2;
}
.chip-probate, .badge-probate, .tag-probate {
  background: #FAF5FF;
  color: #6B21A8;
  border: 1px solid #E9D5FF;
}

/* ── CTA buttons ── */
.btn-cta, .btn-amber, .btn-primary {
  background: var(--amber);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.btn-cta:hover, .btn-amber:hover, .btn-primary:hover {
  background: var(--amber-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(217,119,6,.3);
  color: #fff;
  text-decoration: none;
}

/* ── Positive / negative cashflow colours ── */
.cf-pos, .cashflow-positive, .text-green {
  color: #276749;
  font-family: var(--mono);
  font-weight: 600;
}
.cf-neg, .cashflow-negative, .text-red {
  color: #C53030;
  font-family: var(--mono);
  font-weight: 600;
}

/* ── Yield colouring ── */
.yield-strong { color: #276749; font-family: var(--mono); }
.yield-good   { color: #276749; font-family: var(--mono); }
.yield-avg    { color: #744210; font-family: var(--mono); }
.yield-poor   { color: #C53030; font-family: var(--mono); }

/* ── Data tables ── */
table.data-table, .deal-table, .dtable {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
table.data-table th, .deal-table th, .dtable th {
  padding: 0.6rem 0.875rem;
  text-align: left;
  font-size: 0.72rem;
  font-weight: 700;
  color: #a0aec0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
table.data-table td, .deal-table td, .dtable td {
  padding: 0.75rem 0.875rem;
  border-bottom: 1px solid #f0f4f8;
  vertical-align: middle;
}
table.data-table tr:hover td, .deal-table tr:hover td, .dtable tr:hover td {
  background: #f8fafc;
}

/* ── Cards ── */
.card, .deal-card, .feat-card, .stat-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.card:hover, .deal-card:hover, .feat-card:hover {
  border-color: rgba(26,54,93,.18);
  box-shadow: 0 6px 24px rgba(26,54,93,.07);
}

/* ── Section headers ── */
.section-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--amber);
  margin-bottom: 0.5rem;
}

/* ── Scrollbar (subtle) ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e0; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #a0aec0; }


/* ── Additional signal badge styles (Brief 671) ── */
.chip-cash, .badge-cash, .tag-cash {
  background: #ECFDF5;
  color: #065F46;
  border: 1px solid #6EE7B7;
}
.chip-repo, .badge-repo, .tag-repo {
  background: #FFF1F2;
  color: #9F1239;
  border: 1px solid #FECDD3;
}
.chip-so, .badge-so, .tag-so {
  background: #EFF6FF;
  color: #1E40AF;
  border: 1px solid #BFDBFE;
}
.chip-motivated, .badge-motivated, .tag-motivated {
  background: #FFF7ED;
  color: #C2410C;
  border: 1px solid #FED7AA;
}
.chip-chain-free, .badge-chain-free, .tag-chain-free {
  background: #F0FDF4;
  color: #15803D;
  border: 1px solid #BBF7D0;
}
.chip-new, .badge-new, .tag-new {
  background: #F5F3FF;
  color: #6D28D9;
  border: 1px solid #DDD6FE;
}
.chip-reduced, .badge-reduced, .tag-reduced {
  background: #FFF5F5;
  color: #C53030;
  border: 1px solid #FEB2B2;
}
.chip-all, .badge-all {
  background: #EBF4FF;
  color: #2B6CB0;
  border: 1px solid #BEE3F8;
}
/* ── Mono font utility ── */
.mono { font-family: var(--mono) !important; }
/* ── Score pill sizing (keep existing .score-pill, add colour variants) ── */
.score-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 2px 6px;
  border-radius: 5px;
  font-family: var(--mono);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.4;
}
.score-pill.score-hi { background: #C6F6D5; color: #22543D; }
.score-pill.score-md { background: #FEFCBF; color: #744210; }
.score-pill.score-lo { background: #FED7D7; color: #9B2C2C; }

/* ── Warning / weak signal badges (Brief 672) ── */
.sa-neg-badge {
  background: #FED7D7;
  color: #9B2C2C;
  border: 1px solid #FEB2B2;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 0.75rem;
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-block;
}
.btl-weak-badge {
  background: #FEFCBF;
  color: #744210;
  border: 1px solid #F6E05E;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 0.75rem;
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-block;
}
.so-warning {
  background: #FEFCBF;
  color: #744210;
  border: 1px solid #F6E05E;
  font-size: 0.75rem;
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-block;
}
