/* /intelligence — FRH market dashboard. Builds on site.css tokens (navy, copper, sand, slate).
   Layout: a navy instrument band (headline + KPI strip over faint topo contours), then a two-column
   grid of hairline panels. Each panel: copper tag, serif title, one working view, a source line. */
.intel-head{position:relative;overflow:hidden;background:var(--navy);color:var(--off);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2rem,4vw,3rem)}
.intel-head .wrap{position:relative;z-index:1}
.intel-head h1{color:var(--off);max-width:18ch}
.intel-head .lede{color:#E7E1D8;max-width:58ch}
.intel-head .eyebrow{color:var(--copper-lite)}
.intel-head .crumbs a,.intel-head .crumbs li{color:var(--mute-dark)}
.intel-head .crumbs a:hover{color:var(--off)}
.contour{position:absolute;inset:0;z-index:0;opacity:.07;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='420' viewBox='0 0 640 420' fill='none' stroke='%23DCC6AE' stroke-width='1.1'%3E%3Cpath d='M-20 300c80-40 140-110 230-100s120 90 210 70 140-120 240-110'/%3E%3Cpath d='M-20 330c90-36 150-96 236-88s128 84 214 64 142-104 230-98'/%3E%3Cpath d='M-20 360c96-30 160-80 244-74s134 76 218 58 146-88 218-86'/%3E%3Cpath d='M-20 390c104-24 168-64 252-60s140 66 222 50 148-72 206-74'/%3E%3Cpath d='M-20 270c70-46 130-126 226-114s114 98 204 78 136-138 250-124'/%3E%3Cpath d='M-20 240c62-52 122-142 220-128s108 106 198 86 132-154 262-138'/%3E%3Cpath d='M120 120c40-30 90-40 120-10s-10 70-60 70-90-30-60-60z'/%3E%3Cpath d='M140 125c26-18 60-24 80-6s-6 44-40 44-60-20-40-38z'/%3E%3Cpath d='M470 90c50-24 100-20 110 14s-40 56-90 50-60-44-20-64z'/%3E%3C/svg%3E");
  background-size:640px 420px}
.intel-status{display:flex;align-items:center;gap:.6rem;font-size:.86rem;color:var(--mute-dark);margin:1.25rem 0 0}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--copper-lite);box-shadow:0 0 0 0 rgba(226,165,122,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(226,165,122,.55)}70%{box-shadow:0 0 0 9px rgba(226,165,122,0)}100%{box-shadow:0 0 0 0 rgba(226,165,122,0)}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:2rem 0 0;border-top:1px solid var(--line-dark)}
.kpis div{padding:1rem 1rem 1rem 0;border-bottom:1px solid var(--line-dark)}
.kpis dt{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-dark);margin:0 0 .35rem}
.kpis dd{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,1.4rem + 1.6vw,2.8rem);line-height:1;color:var(--off);font-variant-numeric:tabular-nums lining-nums}
@media (min-width:760px){.kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.kpis div{padding-left:1.25rem;border-bottom:0;border-left:1px solid var(--line-dark)}.kpis div:first-child{padding-left:0;border-left:0}}

.intel{background:var(--paper)}
.ip-grid{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:980px){.ip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-wide{grid-column:1 / -1}}
.ip{background:var(--white);border:1px solid var(--line);max-width:100%;padding:clamp(1.1rem,2.4vw,1.75rem);min-width:0;display:flex;flex-direction:column;gap:1rem}
.ip-h{display:flex;flex-direction:column;gap:.35rem}
.ip-tag{align-self:flex-start;font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--copper-ink);padding-bottom:.35rem;border-bottom:1px solid var(--copper)}
.ip-t{font-size:clamp(1.35rem,1.15rem + .7vw,1.75rem);margin:.35rem 0 0}
.ip-cap{font-size:.92rem;color:var(--slate);margin:0;max-width:62ch}
.ip-sub{font-family:var(--serif);font-weight:600;font-size:1.05rem;margin:.5rem 0 .1rem;color:var(--navy)}
.ip-foot{font-size:.82rem;color:var(--slate);margin:0;max-width:none}
.na{color:#9AA1A8}

.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font:inherit;font-size:.82rem;font-weight:600;min-height:36px;padding:.35rem .9rem;border:1px solid var(--line-strong);background:var(--white);color:var(--navy);cursor:pointer;border-radius:999px;transition:background .2s,border-color .2s,color .2s}
.chip:hover{border-color:var(--navy)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--off)}

.tbl-scroll{position:relative;overflow-x:auto;max-width:100%;min-width:0;-webkit-overflow-scrolling:touch;margin:0 -.25rem;padding:0 .25rem}
.screener,.fitm{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}
.screener th,.screener td,.fitm th,.fitm td{padding:.65rem .75rem .65rem 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}
.screener thead th,.fitm thead th{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--line-strong);padding-top:0}
.screener .num{text-align:right}
.screener thead button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;min-height:32px}
.screener thead button::after{content:"";width:0;height:0;border:4px solid transparent;border-top-color:var(--line-strong);transform:translateY(2px)}
.screener th[aria-sort="ascending"] button::after{border-top-color:transparent;border-bottom-color:var(--copper);transform:translateY(-2px)}
.screener th[aria-sort="descending"] button::after{border-top-color:var(--copper)}
.screener thead button:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.screener tbody th{font-weight:600;color:var(--navy)}
.screener tbody th a{color:var(--navy);text-decoration-color:var(--line-strong)}
.screener tbody th a:hover{text-decoration-color:var(--copper)}
.st{display:block;font-size:.74rem;font-weight:400;color:var(--slate);letter-spacing:.04em}
.src{display:block;font-size:.72rem;color:var(--slate)}
.tier{font-size:.72rem;font-weight:600;letter-spacing:.06em;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line-strong);color:var(--navy)}
.tier-focus{background:var(--navy);border-color:var(--navy);color:var(--off)}
.tier-gds{border-color:var(--copper);color:var(--copper-ink)}
.infra{display:inline-block;vertical-align:middle;width:33px;height:18px}
.ib-bg{fill:none;stroke:var(--line-strong);stroke-width:.6}
.ib{fill:var(--slate)}.ib.s3{fill:var(--navy)}.ib.s2{fill:#3C4A5A}.ib.s1{fill:#8C949C}
.infra-n{display:inline-block;min-width:1.6em;margin-left:.45rem;vertical-align:middle;font-weight:600;color:var(--navy)}
tr.is-hidden{display:none}

.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-strong);align-self:flex-start}
.seg button{font:inherit;font-size:.82rem;font-weight:600;min-height:38px;padding:.35rem .9rem;background:var(--white);color:var(--slate);border:0;border-right:1px solid var(--line);cursor:pointer}
.seg button:last-child{border-right:0}
.seg button[aria-selected="true"]{background:var(--off);color:var(--navy);box-shadow:inset 0 -2px 0 var(--copper)}
.bars{width:100%;height:auto;overflow:visible}
.bars .bl{font-size:14px;fill:var(--navy);font-family:var(--body)}
.bars .bv{font-size:14px;fill:var(--slate);font-family:var(--body);font-weight:600}
.bars .bar{fill:var(--sand)}
.bars .bar-act{fill:var(--copper)}

.funnel{list-style:none;margin:0;padding:0;display:grid;gap:.85rem;max-width:none}
.fs{margin:0}
.fs-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.fs-l{font-weight:600;color:var(--navy);font-size:.95rem}
.fs-n{font-family:var(--serif);font-size:1.5rem;font-weight:300;color:var(--navy);font-variant-numeric:tabular-nums lining-nums}
.fs-bar{display:block;width:100%;height:6px;margin:.3rem 0 .2rem}
.fs-bg{fill:var(--off)}
.fs-fg{fill:var(--navy)}
.fs:nth-child(2) .fs-fg,.fs:nth-child(3) .fs-fg{fill:var(--copper)}
.fs-sub{font-size:.8rem;color:var(--slate)}

.capchart{width:100%;height:auto;overflow:visible}
.capchart .grid{stroke:var(--line);stroke-width:1}
.capchart .tick{font-size:12px;fill:var(--slate);font-family:var(--body)}
.capchart .bl{font-size:14px;font-weight:600;fill:var(--navy);font-family:var(--body)}
.capchart .bl-sub{font-size:12px;fill:var(--slate);font-family:var(--body)}
.capchart .rng{stroke:var(--sand);stroke-width:6;stroke-linecap:round}
.capchart .med{fill:var(--navy);stroke:var(--white);stroke-width:2}
.capchart .pub{fill:var(--copper)}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;padding:0;margin:0;font-size:.8rem;color:var(--slate);max-width:none}
.legend li{display:inline-flex;align-items:center;gap:.45rem;margin:0}
.lg-med{width:10px;height:10px;border-radius:50%;background:var(--navy)}
.lg-rng{width:22px;height:6px;border-radius:3px;background:var(--sand)}
.lg-pub{width:10px;height:10px;background:var(--copper);transform:rotate(45deg)}

.rt-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rt{padding:.85rem .75rem .85rem 0;display:flex;flex-direction:column;gap:.15rem;min-width:0}
.rt + .rt{padding-left:.9rem;border-left:1px solid var(--line)}
.rt-l{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.rt-v{font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,1.2rem + 1vw,2rem);line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums lining-nums}
.rt-c{font-size:.78rem;color:var(--slate);font-variant-numeric:tabular-nums}
.rt-c.up{color:var(--copper-ink)}
.spark{width:100%;height:auto;overflow:visible}
.spark .tick{font-size:11px;fill:var(--slate);font-family:var(--body)}
.spark .grid{stroke:var(--line)}
.spark .area{fill:rgba(184,115,67,.12)}
.spark .line{fill:none;stroke:var(--copper);stroke-width:2;stroke-linejoin:round}
.spark .end{fill:var(--copper);stroke:var(--white);stroke-width:2}
.spreads{display:grid;gap:.35rem}
.sp{display:grid;grid-template-columns:minmax(7.5rem,10rem) minmax(0,1fr) 4.2rem;align-items:center;gap:.75rem;font-size:.86rem}
.sp-n{color:var(--navy);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--navy)}
.sp-bar{height:8px;display:block;width:100%}
.sp-bar .bg{fill:var(--off)}.sp-bar .pos{fill:var(--evergreen)}.sp-bar .neg{fill:var(--copper)}.sp-bar .zero{stroke:var(--line-strong)}

.fitm th,.fitm td{text-align:center}
.fitm th[scope="row"],.fitm thead th:first-child{text-align:left;font-weight:600;color:var(--navy)}
.fitm thead th{white-space:normal;line-height:1.3;min-width:6.5rem}
.sn{display:block;font-family:var(--serif);font-size:.95rem;letter-spacing:0;color:var(--copper-ink);font-weight:400;margin-bottom:.1rem}
.fit{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle}
.fit-lead{background:var(--copper)}
.fit-active{background:var(--navy)}
.fit-select{border:1.5px solid var(--slate)}
.fit-none{border:1px dashed var(--line-strong)}

.intel-notes{margin-top:clamp(2rem,4vw,3rem);padding-top:1.5rem;border-top:1px solid var(--line);max-width:60rem}
.intel-notes p{font-size:.9rem;color:var(--slate)}

/* HTML bar rows (progress elements, no inline styles needed) */
.hbars{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;max-width:none}
.hb{display:grid;grid-template-columns:minmax(6.5rem,11rem) minmax(0,1fr) 2.6rem;align-items:center;gap:.75rem;margin:0;font-size:.9rem}
.hb-l{color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-v{text-align:right;font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums}
.hb-t{position:relative;height:14px}
.hb progress{position:absolute;inset:0;width:100%;height:14px;-webkit-appearance:none;appearance:none;border:0;background:transparent;display:block}
.hb progress::-webkit-progress-bar{background:transparent}
.hb .hb-all{background:var(--off)}
.hb .hb-all::-webkit-progress-bar{background:var(--off)}
.hb .hb-all::-webkit-progress-value{background:var(--sand)}
.hb .hb-all::-moz-progress-bar{background:var(--sand)}
.hb .hb-act::-webkit-progress-value{background:var(--copper)}
.hb .hb-act::-moz-progress-bar{background:var(--copper)}
/* cap-rate rows */
.caprows{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;max-width:none}
.cr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .75rem;margin:0}
.cr-l strong{display:block;color:var(--navy);font-size:.95rem}
.cr-l span,.cr-v span{font-size:.78rem;color:var(--slate)}
.cr-v{text-align:right;display:flex;flex-direction:column}
.cr-v .cr-med{font-family:var(--serif);font-size:1.25rem;font-weight:300;color:var(--navy);font-variant-numeric:tabular-nums lining-nums}
.cr-t{grid-column:1 / -1;width:100%;height:auto}
.cr-t .grid{stroke:var(--line)}
.cr-t .rng{stroke:var(--sand);stroke-width:6;stroke-linecap:round}
.cr-t .med{fill:var(--navy);stroke:var(--white);stroke-width:2}
.cr-t .pub{fill:var(--copper)}
.cr-t .tick{font-size:10px;fill:var(--slate);font-family:var(--body)}
.cr-axis{margin-top:-.5rem}
/* keep the metro name visible while the screener scrolls sideways on phones */
.screener tbody th,.screener thead th:first-child{position:sticky;left:0;background:var(--white);z-index:1}
.screener tbody th{box-shadow:1px 0 0 var(--line)}

/* Market thesis pages (/markets/<slug>) */
.thesis{display:grid;gap:clamp(1.5rem,4vw,3.5rem)}
@media (min-width:980px){.thesis{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}.thesis-aside{position:sticky;top:calc(var(--hh) + 1.5rem);align-self:start}}
.thesis-points{margin:0 0 1rem;border-top:1px solid var(--line)}
.thesis-points div{padding:.85rem 0;border-bottom:1px solid var(--line)}
.thesis-points dt{font-family:var(--serif);font-weight:300;font-size:clamp(1.6rem,1.3rem + .9vw,2.1rem);line-height:1.1;color:var(--navy);font-variant-numeric:lining-nums}
.thesis-points dd{margin:.25rem 0 0;font-size:.9rem;color:var(--slate)}
.thesis-body h2{font-size:clamp(1.45rem,1.2rem + .8vw,1.9rem);margin-top:2.25rem}
.thesis-body .thesis-sec:first-child h2{margin-top:0}
.thesis-body h3{margin-top:1.4rem}
.thesis-body table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1rem 0;display:block;overflow-x:auto}
.thesis-body th,.thesis-body td{text-align:left;padding:.6rem .75rem .6rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.thesis-body thead th{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);border-bottom-color:var(--line-strong)}
.cite{font-size:.68em;line-height:0;margin-left:.1em}
.cite a{text-decoration:none;color:var(--copper-ink);font-weight:600}
.cite + .cite{margin-left:.15em}
.sources{font-size:.86rem;color:var(--slate);padding-left:1.4rem;max-width:none}
.sources li{margin:.45rem 0;scroll-margin-top:calc(var(--hh) + 1rem)}
.sources li:target{background:var(--white);outline:1px solid var(--copper);outline-offset:4px}

/* Market page cityscape + news */
.market-photo{margin:0;background:var(--white)}
.market-photo img{width:100%;height:clamp(220px,38vw,520px);object-fit:cover;display:block}
.market-photo figcaption{font-size:.74rem;color:var(--slate);padding-top:.5rem;padding-bottom:0;background:var(--white);text-align:right}
.market-photo figcaption a{color:var(--slate)}
.news-sec{border-top:1px solid var(--line)}
.news-grid{display:grid;gap:clamp(1.5rem,4vw,3rem);margin-top:1.5rem}
@media (min-width:860px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.news-col h3{margin-bottom:.15rem}
.news-list{list-style:none;padding:0;margin:.75rem 0 0;border-top:1px solid var(--line);max-width:none}
.news-list li{margin:0;padding:.8rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem}
.news-list a{color:var(--navy);font-weight:500;text-decoration:none;line-height:1.4}
.news-list a:hover{text-decoration:underline;text-decoration-color:var(--copper)}
.news-meta{font-size:.78rem;color:var(--slate)}
.news-list .news-empty a{color:var(--evergreen);text-decoration:underline}
.news-list .news-more{border-bottom:0}
.news-list .news-more a{font-size:.86rem;color:var(--copper-ink);text-decoration:underline}
