/* /quarterly-reports/ hub only (scripts/lib/quarterly-report-template.mjs,
   js/quarterly-home.js). Kept apart from quarterly-report.css so a hub change
   does not restamp the 424 report pages. */

/* Search first, centred */
.qhh-hero { max-width: 760px; margin: .75rem auto 1.75rem; text-align: center; }
.qhh-title { margin: 0; font: 700 clamp(1.6rem, 3.2vw, 2.2rem)/1.15 var(--font-display); letter-spacing: -.01em; color: var(--white); }
.qhh-sub { margin: .4rem 0 1.1rem; font-size: .95rem; color: var(--text-light); }
.qhh-search { position: relative; text-align: left; }
.qhh-switch .qr-switch-icon { left: 1.1rem; width: 18px; height: 18px; }
.qhh-switch .qr-switch-input { width: 100%; height: 3.4rem; padding: 0 1.2rem 0 3rem; font-size: 1.05rem; border-radius: 999px; box-shadow: var(--shadow-sm); }
.qhh-search.is-open .qr-switch-input { border-radius: 1.4rem 1.4rem 0 0; }
.qhh-switch .qr-switch-menu { left: 0; right: 0; width: auto; max-height: 420px; margin-top: .4rem; padding: .4rem; border-radius: 1.2rem; box-shadow: var(--shadow-lg); }
.qhh-switch .qr-switch-opt { padding: .6rem .8rem; font-size: 1rem; border-radius: .8rem; }
.qhh-quick-panel { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; padding: .9rem 1.1rem 1rem; background: var(--surface-card); border: 1px solid var(--eyebrow); border-top: 0; border-radius: 0 0 1.4rem 1.4rem; box-shadow: var(--shadow-lg); }
.qhh-quick-panel[hidden] { display: none; }
.qhh-quick-group + .qhh-quick-group { margin-top: .8rem; }
.qhh-quick-label { margin: 0 0 .4rem; font: 600 .68rem/1.3 var(--font-sans); letter-spacing: .07em; text-transform: uppercase; color: var(--text-faint); }
.qhh-quick-panel .qh-quick { border-radius: 999px; }

/* The charts come straight after the search; the KPI tiles stay in the DOM
   for the page script but are not shown on the hub. */
.qhh-first { margin-top: 0; }
.qr-stats[hidden] { display: none; }

/* Grey pills on the hub: a pressed pill is a darker grey, not brand blue. */
.qd-size.is-on { background: var(--chart-band-border); border-color: var(--border-mid); color: var(--white); }
.qd-size.is-on:hover { border-color: var(--text-faint); }

/* Every report: table | map */
.qhh-loc-head { align-items: flex-start; }
.qhh-view, .qhh-groups { display: flex; flex-wrap: wrap; gap: .4rem; }
.qhh-groups { margin: .2rem 0 .9rem; }
/* No rules between rows; every other row sits on the faintest band. */
.qhh-table th, .qhh-table td { border-bottom: 0; }
.qhh-table tbody tr:nth-child(odd) td { background: var(--chart-band); }
.qhh-table th[data-sort] button { all: unset; cursor: pointer; }
.qhh-table th[data-sort]:hover, .qhh-table th[aria-sort] { color: var(--white); }
.qhh-table th[aria-sort] button::after { content: " \2193"; }
.qhh-table .qhh-c-name { width: 100%; max-width: 0; overflow: hidden; text-overflow: ellipsis; }
.qhh-table .qhh-c-name a { color: var(--white); text-decoration: none; font-weight: 600; }
.qhh-table .qhh-c-name a:hover { color: var(--eyebrow); }
.qhh-table .qhh-c-num, .qhh-table .qhh-c-chg { text-align: right; font-variant-numeric: tabular-nums; }
.qhh-table th.qhh-c-num, .qhh-table th.qhh-c-chg { text-align: right; }
.qhh-table .qhh-c-num { font-weight: 600; }
.qhh-table .qr-delta { font-size: .78rem; padding: .15rem .5rem; }
.qhh-na { color: var(--text-faint); }
.qhh-inline { display: none; }
.qhh-more { display: block; margin: .9rem auto 0; }
.qhh-map .qr-home-map { padding: 0; }
.qhh-map [data-qhm-groups] { display: none; } /* driven by the table's group pills */
.qhh-map .qhm-frame { min-height: 460px; }

@media (max-width: 640px) {
    .qhh-hero { margin-bottom: 1.25rem; }
    .qhh-switch .qr-switch-input { height: 3rem; font-size: 1rem; }
    .qhh-loc-head { flex-direction: column; gap: .6rem; }
    .qd-legend .qd-legend-label, .qd-legend .qd-legend-val { font-size: 13px; }
    /* Phones: the change sits under its figure instead of in its own column */
    .qhh-table .qhh-c-chg { display: none; }
    .qhh-table .qhh-c-name { width: 44%; max-width: none; white-space: normal; overflow-wrap: anywhere; }
    .qhh-table th { white-space: normal; }
    .qhh-inline { display: block; margin-top: .2rem; }
    .qhh-map .qhm-frame { min-height: 340px; }
}

/* EV card: Private | All above the company list */
.qd-leaders-modes { display: flex; gap: .4rem; margin-bottom: .7rem; }

/* Location type on the left, the VC period on the right */
.qhh-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem; margin: .2rem 0 .9rem; }
.qhh-bar .qhh-groups { margin: 0; }
.qhh-period { display: flex; gap: .4rem; }
/* Largest N: the size set a growth sort runs over */
.qhh-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }
.qhh-largest { display: flex; align-items: center; gap: .4rem; }
.qhh-largest-label { font-size: .78rem; color: var(--text-faint); margin-right: .1rem; }
