:root {
  --blue: #2e5493;
  --grey: #7d7e7e;
  --mist: #eef3fa;
  --gold: #cda349;
  --ink: #1f2733;
  --line: #e2e8f1;
  --ok: #3f7d57;
  --warn-color: #b8893b;
  --risk: #a8443a;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: #ffffff;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: 1180px; margin: 0 auto; padding: 32px 28px 64px; }

/* Header — MC standard: title left, controls + as-of right */
header { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px;
  padding-bottom: 14px; border-bottom: 2px solid var(--blue); margin-bottom: 8px; }
.header-main { min-width: 0; }
h1 { color: var(--blue); font-size: 22px; margin: 0; font-weight: bold; white-space: nowrap; }
.sub { color: var(--grey); font-size: 13px; margin: 5px 0 0; }
.header-right { flex: none; display: flex; flex-direction: column; align-items: flex-end; }
.asof { color: var(--grey); font-size: 12px; }
.muted { color: var(--grey); font-size: 12px; }

/* Controls — pill buttons in the header */
.controls {
  display: flex; align-items: center; gap: 8px; justify-content: flex-end;
  margin-top: 10px; flex-wrap: wrap;
}
.controls select {
  font-family: inherit; font-size: 13px; font-weight: bold; color: var(--blue);
  border: 1px solid var(--line); border-radius: 20px; padding: 7px 16px;
  background: #fff; cursor: pointer;
}
.controls select:focus { outline: none; border-color: var(--blue); }

/* Sections */
section { margin-top: 34px; }
h2 {
  color: var(--blue); font-size: 15px; text-transform: uppercase;
  letter-spacing: 0.05em; border-left: 3px solid var(--gold);
  padding-left: 10px; margin: 0 0 16px;
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
.h2-hint { font-weight: normal; text-transform: none; letter-spacing: 0; color: var(--grey); font-size: 11px; }

/* Verdict banner + bed-type toggle */
#verdict { margin-top: 22px; }
#verdict:empty { display: none; }
.verdict-banner {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  background: var(--mist); border: 1px solid var(--line); border-left: 4px solid var(--gold);
  border-radius: 8px; padding: 15px 22px;
}
.vb-name { font-weight: bold; font-size: 15px; color: var(--ink); }
.vb-name small { display: block; color: var(--grey); font-weight: normal; font-size: 12px; margin-top: 2px; }
.vpill { display: inline-flex; align-items: center; font-weight: bold; font-size: 12px;
  padding: 6px 14px; border-radius: 14px; letter-spacing: 0.04em; text-transform: uppercase; }
.vpill.verdict-right { background: #e7f1ea; color: var(--ok); }
.vpill.verdict-under { background: #f6ecd8; color: var(--warn-color); }
.vpill.verdict-over { background: #f6e2df; color: var(--risk); }
.vpill.verdict-insufficient { background: #eee; color: var(--grey); text-transform: none; }
.bedtoggle { display: inline-flex; gap: 6px; }
.bedpill { font-family: inherit; font-size: 12px; font-weight: bold; color: var(--grey);
  background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 5px 14px; cursor: pointer; transition: all .12s; }
.bedpill:hover { border-color: var(--blue); color: var(--blue); }
.bedpill.active { background: var(--blue); border-color: var(--blue); color: #fff; }
.vb-figs { margin-left: auto; display: flex; gap: 28px; }
.vb-fig { text-align: right; }
.vb-fig .l { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--grey); }
.vb-fig .v { font-size: 21px; font-weight: bold; color: var(--blue); margin-top: 2px; }
.vb-fig .v.up { color: var(--risk); } .vb-fig .v.down { color: var(--ok); } .vb-fig .v.flat { color: var(--grey); }

/* Tables */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: right; padding: 9px 12px; border-bottom: 1px solid var(--line); }
th:first-child, td:first-child { text-align: left; }
thead th {
  color: var(--grey); font-size: 12px;
  text-transform: uppercase; font-weight: bold;
}

/* Cards */
.card {
  border: 1px solid var(--line); border-radius: 8px;
  padding: 20px; background: #fff;
}
.card-title {
  color: var(--blue); font-size: 12px; font-weight: bold;
  text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 12px;
}

/* Comp grid */
.comp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-top: 4px;
}
.comp-card {
  border: 1px solid var(--line); border-radius: 8px;
  padding: 18px; background: #fff; position: relative;
}
.comp-card.stale-card { border-color: #d0d0d0; background: #fafafa; }
.comp-name { font-weight: bold; font-size: 15px; color: var(--ink); margin-bottom: 6px; }
.comp-rent-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.comp-asking { font-size: 18px; font-weight: bold; color: var(--blue); }
.comp-effective { font-size: 14px; color: var(--grey); }
.comp-conc { font-size: 12px; color: var(--grey); margin-bottom: 8px; font-style: italic; }
.comp-conc-value { font-size: 12px; color: var(--warn-color); font-weight: bold; }
.comp-distance { font-size: 12px; color: var(--grey); margin-top: 6px; }
.comp-notes { font-size: 12px; color: var(--grey); margin-top: 4px; }
.comp-screenshot { margin-top: 10px; }
.comp-screenshot img {
  max-width: 100%; border-radius: 4px;
  border: 1px solid var(--line); display: block;
}
.comp-badges { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }

/* Badges */
.badge {
  display: inline-block; padding: 2px 9px; border-radius: 11px;
  font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.04em;
}
.badge.stale {
  background: #eeeeee; color: #888888; border: 1px solid #cccccc;
}
.badge.pinned { background: #eef3fb; color: var(--blue); border: 1px solid #cfe0f5; text-transform: none; font-weight: 600; font-size: 11px; }
.badge.delta-up { background: #e7f1ea; color: var(--ok); }
.badge.delta-down { background: #f6e2df; color: var(--risk); }
.badge.delta-flat { background: var(--mist); color: var(--grey); }
.badge.source {
  background: var(--mist); color: var(--blue);
  text-transform: none; font-weight: normal; font-size: 11px;
}

/* Audit flags */
.flags { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.flag {
  padding: 10px 14px; border-radius: 6px; font-size: 13px;
  border-left: 4px solid;
}
.flag.info { background: #f0f4fa; border-color: var(--blue); color: var(--ink); }
.flag.warn { background: #f6ecd8; border-color: var(--warn-color); color: #7a5a1e; }
.flag.action { background: #f6e2df; border-color: var(--risk); color: #7a2828; }
.flag-msg { font-weight: bold; }
.flag-move { margin-top: 3px; font-size: 12px; opacity: 0.85; }
.flag-channel { font-size: 11px; opacity: 0.65; text-transform: uppercase; letter-spacing: 0.04em; margin-top: 2px; }

/* Ring aggregate */
.ring {
  border: 1px solid var(--line); border-radius: 8px; padding: 18px; background: #fff;
}
.ring-label {
  font-size: 11px; font-weight: bold; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--grey); margin-bottom: 10px;
}
.ring-stats {
  display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 12px;
  font-size: 13px; color: var(--grey);
}
.ring-stats strong { color: var(--ink); }
.ring-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; }

/* Trend */
.trend { margin-top: 12px; }
.trend-title {
  font-size: 11px; font-weight: bold; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--grey); margin-bottom: 6px;
}
.trend-list { list-style: none; padding: 0; margin: 0; font-size: 12px; color: var(--grey); }
.trend-list li {
  display: flex; gap: 10px; padding: 3px 0;
  border-bottom: 1px solid var(--line);
}
.trend-list li:last-child { border-bottom: none; }
.trend-date { width: 120px; flex: none; }
.trend-vals { color: var(--ink); }

/* Suggested comps */
.suggested-list { list-style: none; padding: 0; margin: 0; }
.suggested-list li {
  padding: 10px 0; border-bottom: 1px solid var(--line);
  font-size: 14px; display: flex; align-items: baseline; gap: 10px;
}
.suggested-list li:last-child { border-bottom: none; }
.suggested-name { font-weight: bold; color: var(--ink); }
.suggested-address { color: var(--grey); font-size: 12px; flex: 1; }
.suggested-link { color: var(--blue); font-size: 12px; text-decoration: none; }
.suggested-link:hover { text-decoration: underline; }

/* Floorplan variant label (e.g. Classic / Renovated) */
.fp-variant { color: var(--grey); font-size: 12px; font-weight: normal; }

/* Floorplan with no current availability: shown but visibly de-emphasized + labeled. */
.fp-row-unavail { opacity: 0.55; }
.fp-unavail {
  display: inline-block; font-size: 11px; font-weight: 600; color: var(--grey);
  background: rgba(0,0,0,0.05); border-radius: 4px; padding: 1px 6px; margin-left: 4px;
  text-transform: uppercase; letter-spacing: 0.03em;
}

/* Floorplan effective rent highlight */
.eff-rent { color: var(--ok); font-weight: bold; }
.asking-rent { color: var(--ink); }

/* Concession summary in subject */
.conc-list { list-style: none; padding: 0; margin: 4px 0 0; }
.conc-list li {
  padding: 6px 10px; background: var(--mist);
  border-radius: 5px; font-size: 13px; margin-bottom: 4px;
  border-left: 3px solid var(--gold);
}
.conc-kind { font-size: 11px; color: var(--grey); text-transform: uppercase; letter-spacing: 0.04em; }

/* Adjusted Comps section (legacy — kept for badge.lowrel) */
.badge.lowrel { background: #fbeaea; color: #a33; }

/* Per-bed-type block */
.bed-block {
  margin-bottom: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.bed-block-header {
  background: var(--blue);
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 8px 16px;
}

/* Verdict banner */
.verdict {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.verdict-label {
  font-weight: bold;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 3px 9px;
  border-radius: 11px;
}
.verdict-detail {
  color: var(--grey);
  font-size: 13px;
}
.verdict-under { background: #f0f8f3; }
.verdict-under .verdict-label { background: #e0f2e8; color: var(--ok); }
.verdict-over { background: #fdf5e8; }
.verdict-over .verdict-label { background: #fbecd3; color: var(--warn-color); }
.verdict-right { background: var(--mist); }
.verdict-right .verdict-label { background: #dce8f5; color: var(--blue); }
.verdict-insufficient { background: #f7f7f7; }
.verdict-insufficient .verdict-label {
  background: #eeeeee; color: var(--grey);
  font-style: italic; text-transform: none; font-weight: normal;
  font-size: 13px; letter-spacing: 0;
}

/* Ranked table */
.ranked-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.ranked-table th, .ranked-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  text-align: right;
  vertical-align: middle;
}
.ranked-table th:first-child,
.ranked-table td:first-child,
.ranked-table td.col-name { text-align: left; }
.ranked-table th { color: var(--grey); font-size: 11px; text-transform: uppercase; font-weight: bold; }

/* YOU row highlight */
.row-you {
  background: #fffbf0;
}
.row-you td { font-weight: bold; }

/* Column sizing */
.col-name { min-width: 140px; }
.col-built { min-width: 60px; white-space: nowrap; }
.col-quality { min-width: 60px; }
.col-asking { min-width: 80px; }
.col-effective { min-width: 80px; color: var(--ok); }
.col-adjusted { min-width: 80px; }
.col-promo { font-size: 12px; color: var(--grey); text-align: left; min-width: 120px; }
.col-bar { width: 100px; padding-left: 8px; }
.col-why { width: 50px; position: relative; }

/* View-listing inline link in ranked table */
.view-listing-link {
  font-size: 11px;
  color: var(--blue);
  text-decoration: none;
  margin-left: 6px;
  font-weight: normal;
  opacity: 0.75;
}
.view-listing-link:hover { text-decoration: underline; opacity: 1; }
.row-you .view-listing-link { color: #7a5a1e; }

/* Quality badge */
.q-badge {
  display: inline-block;
  background: var(--mist);
  color: var(--blue);
  font-size: 11px;
  font-weight: bold;
  padding: 1px 6px;
  border-radius: 4px;
  letter-spacing: 0.03em;
}
.row-you .q-badge {
  background: #f5e9c8;
  color: #7a5a1e;
}

/* Magnitude bar */
.mag-bar-wrap {
  background: var(--line);
  border-radius: 3px;
  height: 8px;
  width: 100%;
  overflow: hidden;
}
.mag-bar {
  height: 100%;
  border-radius: 3px;
  background: var(--blue);
  min-width: 4px;
  transition: width 0.2s ease;
}
.mag-bar-you { background: var(--gold); }

/* "Why" expandable */
.why-toggle {
  font-size: 11px;
  color: var(--blue);
  cursor: pointer;
  text-decoration: underline;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  user-select: none;
}
/* Full-width breakdown row that expands directly under its comp — no clipping. */
.why-row td {
  background: var(--mist);
  padding: 9px 14px;
  font-size: 12px;
  border-top: none;
}
.why-label { color: var(--grey); font-weight: bold; margin-right: 10px; }
.why-chip { display: inline-block; margin-right: 16px; white-space: nowrap; }
.why-factor { color: var(--grey); text-transform: capitalize; }
.why-pct { font-weight: bold; }
.why-pos { color: var(--ok); }
.why-neg { color: var(--risk); }

/* Excluded comps */
.excluded-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 7px 16px;
  border-top: 1px solid var(--line);
  color: var(--grey);
  font-size: 12px;
  font-style: italic;
  background: #fafafa;
}
.excluded-name { font-weight: bold; font-style: normal; color: #aaa; min-width: 100px; }
.excluded-note { color: #bbb; }

/* Attribute scorecard (collapsible) */
.scorecard-details {
  border-top: 1px solid var(--line);
}
.scorecard-toggle {
  display: block;
  padding: 9px 16px;
  font-size: 12px;
  font-weight: bold;
  color: var(--grey);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  user-select: none;
  list-style: none;
  background: #f9f9f9;
}
.scorecard-toggle::-webkit-details-marker { display: none; }
.scorecard-toggle::before { content: "+ "; }
.scorecard-details[open] .scorecard-toggle::before { content: "− "; }
.scorecard-body { padding: 0 0 8px; }
.scorecard-table { font-size: 12px; width: 100%; border-collapse: collapse; }
.scorecard-table th, .scorecard-table td {
  padding: 7px 12px; border-bottom: 1px solid var(--line); text-align: right;
}
.scorecard-table th:first-child,
.scorecard-table td:first-child { text-align: left; }
.scorecard-table th { color: var(--grey); font-size: 11px; text-transform: uppercase; font-weight: bold; }

/* Empty-ring state */
.ring-empty { color: var(--grey); font-style: italic; padding: 8px 0; }

/* Comp-override pinned-value marker */
.set-marker { font-size: 10px; color: var(--gold); font-weight: bold; }
.partial-marker {
  font-size: 9px; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--warn-color, #b8893b); border: 1px solid currentColor; border-radius: 3px;
  padding: 0 3px; margin-left: 4px; vertical-align: middle; font-weight: bold;
}

/* Section divider */
.section-empty { color: var(--grey); font-size: 13px; font-style: italic; padding: 8px 0; }

/* Edit mode */
.btn-edit { font-family: inherit; font-size: 13px; font-weight: bold; color: var(--grey);
  background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 7px 16px; cursor: pointer; }
.btn-edit:hover { border-color: var(--blue); color: var(--blue); }
.btn-edit.btn-primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.btn-edit.btn-primary:hover { filter: brightness(0.95); color: #fff; }
.btn-edit:disabled { opacity: 0.55; cursor: default; }
.btn-mini { font-family: inherit; font-size: 12px; font-weight: bold; color: #fff;
  background: var(--blue); border: none; border-radius: 5px; padding: 3px 10px; cursor: pointer; }
.btn-mini.danger { background: var(--risk); }
.btn-mini:hover { filter: brightness(0.95); }
#editPanel { margin-top: 24px; }
.ed-row { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.ed-row label, #editPanel label { font-size: 13px; color: var(--grey); }
.ed-include { display: inline-flex; align-items: center; gap: 5px; color: var(--blue) !important;
  font-weight: 600; background: #eef3fb; border: 1px solid #cfe0f5; border-radius: 5px; padding: 3px 9px; cursor: pointer; }
.ed-include input { margin: 0; }
#editPanel input, #editPanel select { font-family: inherit; font-size: 13px;
  border: 1px solid var(--line); border-radius: 5px; padding: 4px 7px; }
.ed-conflict { background: #fdf5e8; }
.ed-conflict .swept { color: var(--warn-color); font-weight: bold; }

/* Edit mode v2 — hide the read-only view while editing so the screen "becomes editable" */
body.editing #verdict, body.editing #kpis, body.editing #subject, body.editing #adjusted,
body.editing #market, body.editing #scatter, body.editing #specials, body.editing #suggested { display: none; }
#editPanel[hidden] { display: none; }
.ed-banner {
  background: #fffbf0; border: 1px solid var(--gold); border-left: 4px solid var(--gold);
  border-radius: 6px; padding: 10px 14px; font-size: 13px; color: #7a5a1e; margin-bottom: 16px;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.ed-section-label {
  font-size: 12px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--blue); margin: 18px 0 8px;
}
.ed-listing { border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px; margin-bottom: 12px; background: #fff; }
.ed-listing-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 15px; }
.ed-fp { width: 100%; margin: 6px 0 4px; }
.ed-fp th, .ed-fp td { padding: 5px 10px; font-size: 13px; }
.ed-conc { margin-top: 8px; font-size: 13px; }
.ed-conc label { display: inline-flex; gap: 8px; align-items: center; }
.ed-save-row { margin-top: 18px; display: flex; align-items: center; gap: 12px; }
.swept { color: var(--warn-color); font-weight: bold; font-size: 12px; }
.ed-sug-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.ed-sug-row span { flex: 1; min-width: 200px; }
.ed-addblank { border-bottom: none; margin-top: 8px; }

/* Refresh-now progress bar */
.refresh-bar { display: inline-flex; align-items: center; gap: 8px; min-width: 220px;
  height: 18px; position: relative; }
.refresh-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0;
  background: var(--blue); border-radius: 4px; opacity: 0.18; transition: width 0.4s ease; }
.refresh-label { position: relative; font-size: 12px; color: var(--grey); padding-left: 4px; }
.refresh-bar.is-error .refresh-fill { background: var(--risk); }
.refresh-bar.is-error .refresh-label { color: var(--risk); }
/* When hidden, take no space (the .refresh-bar display rule would otherwise override [hidden]). */
.refresh-bar[hidden] { display: none; }

/* KPI summary tiles */
/* KPI strips — hero row (blue left border) + smaller sub-row (MC portfolio pattern) */
.strip-large { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 12px; }
.strip-small { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.kpi { background: var(--mist); border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px; }
.strip-large .kpi { background: #fff; border-left: 4px solid var(--blue); padding: 20px 22px; }
.kpi-label { font-size: 11px; font-weight: bold; text-transform: uppercase;
  letter-spacing: 0.03em; color: var(--grey); }
.kpi-value { font-size: 24px; font-weight: bold; color: var(--blue); line-height: 1.1; margin-top: 6px; }
.kpi-value.gold { color: var(--gold); }
.kpi-sub { font-size: 11px; color: var(--grey); margin-top: 4px; }

/* Charts (trend + scatter) */
.chart-head {
  display: flex; align-items: baseline; justify-content: space-between;
  flex-wrap: wrap; gap: 10px; margin-bottom: 8px;
}
.chart-select {
  font-size: 12px; font-weight: bold; color: var(--grey);
}
.chart-select select {
  font-family: inherit; font-size: 13px; color: var(--ink);
  border: 1px solid var(--line); border-radius: 6px;
  padding: 4px 8px; margin-left: 6px; background: #fff; cursor: pointer;
}
.chart-select select:focus { outline: none; border-color: var(--blue); }
.chart-wrap { width: 100%; }
.chart { width: 100%; height: auto; display: block; }
.chart-legend {
  display: flex; gap: 18px; flex-wrap: wrap;
  margin-top: 10px; font-size: 12px; color: var(--grey);
}
.chart-legend .key { display: inline-flex; align-items: center; gap: 6px; }
.chart-legend .swatch {
  width: 12px; height: 12px; border-radius: 50%; display: inline-block;
}
.chart-legend .swatch-line {
  width: 16px; height: 0; border-radius: 0;
  border-top: 2px dashed #cdd5e0;
}

/* Active Specials board */
.specials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px; margin-top: 4px;
}
.special-card {
  border: 1px solid var(--line); border-radius: 8px;
  padding: 14px 16px; background: #fff;
  border-left: 4px solid var(--line);
}
.special-card.sev-high { border-left-color: var(--risk); background: #fbf3f2; }
.special-card.sev-med  { border-left-color: var(--warn-color); background: #fdf8ef; }
.special-card.sev-low  { border-left-color: var(--blue); background: #f5f8fc; }
.special-card.sev-none { border-left-color: #d9dee6; background: #fafafa; }
.special-prop { font-weight: bold; font-size: 14px; color: var(--ink); margin-bottom: 6px; }
.special-offer { font-size: 13px; color: var(--ink); line-height: 1.4; }
.special-meta {
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--grey); margin-top: 8px; font-weight: bold;
}

/* Responsive */
@media (max-width: 720px) {
  .comp-grid { grid-template-columns: 1fr; }
  .ring-grid { grid-template-columns: 1fr; }
  .specials-grid { grid-template-columns: 1fr; }
}

/* Print (browser Cmd+P reflows cleanly) */
@media print {
  .controls button, .controls select, .refresh-bar { display: none; }
  .wrap { max-width: none; padding: 0; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  section { margin-top: 20px; break-inside: avoid; }
  .card, .bed-block, .ring, .kpi, .special-card, .chart-wrap, .comp-card {
    break-inside: avoid;
  }
  h2 { break-after: avoid; }
  .why-toggle, .scorecard-toggle { display: none; }
  .why-row { display: table-row !important; }
  details.scorecard-details[open] .scorecard-body { display: block; }
}
