/* brvmdata.com — Tufte-style design system. ET Book (MIT, tufte-css) self-hosted; no external requests.
   Colour is used sparingly: ink, one muted accent, muted green/red for gains/losses (always with a sign). */

@font-face { font-family: "et-book"; src: url("fonts/et-book-roman-old-style-figures.woff") format("woff");
  font-weight: normal; font-style: normal; font-display: swap; }
@font-face { font-family: "et-book"; src: url("fonts/et-book-display-italic-old-style-figures.woff") format("woff");
  font-weight: normal; font-style: italic; font-display: swap; }
@font-face { font-family: "et-book"; src: url("fonts/et-book-bold-line-figures.woff") format("woff");
  font-weight: bold; font-style: normal; font-display: swap; }
@font-face { font-family: "et-book-lf"; src: url("fonts/et-book-roman-line-figures.woff") format("woff");
  font-weight: normal; font-style: normal; font-display: swap; }
@font-face { font-family: "et-book-lf"; src: url("fonts/et-book-display-italic-old-style-figures.woff") format("woff");
  font-weight: normal; font-style: italic; font-display: swap; }
@font-face { font-family: "et-book-lf"; src: url("fonts/et-book-bold-line-figures.woff") format("woff");
  font-weight: bold; font-style: normal; font-display: swap; }

:root {
  --bg: #fffff8; --ink: #111; --muted: #56564f; --faint: #8a8a80; --hair: #cfcfc4; --rule: #111;
  --accent: #1f4e79; --up: #1d6a36; --down: #a02a20; --hi: #f1efe0;
  --serif: "et-book", Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --figures: "et-book-lf", "et-book", Palatino, Georgia, serif;
}

html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--serif); line-height: 1.45;
  font-kerning: normal; }
.page { max-width: 80rem; margin: 0 auto; padding: 0 2rem; box-sizing: border-box; }
a { color: inherit; text-decoration: underline; text-decoration-color: #a9a99c; text-decoration-thickness: 1px;
  text-underline-offset: 2px; }
a:hover, a:focus-visible { color: var(--accent); text-decoration-color: currentColor; }
:focus-visible { outline: 1px dotted var(--accent); outline-offset: 2px; }
p { margin: 0 0 .8rem; }
h1, h2, h3 { font-weight: normal; }
sup { font-size: .7em; line-height: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999rem; }
.skip:focus { left: 1rem; top: .5rem; z-index: 50; background: var(--bg); padding: .3rem .6rem; border: 1px solid var(--hair); }
.sc { font-variant: small-caps; text-transform: lowercase; letter-spacing: .05em; }
.mono { font-family: var(--figures); letter-spacing: .03em; }
.up { color: var(--up); }
.down { color: var(--down); }
.flat { color: var(--muted); }
span.ref, .is-live { font-style: italic; }
span.ref { color: var(--muted); }
.badge { font-variant: small-caps; letter-spacing: .05em; color: var(--down); border: 1px solid currentColor;
  padding: 0 .3rem; font-size: .85rem; }
[hidden] { display: none !important; }

/* ---------------------------------------------------------------- header */
.site-head { border-bottom: 1px solid var(--hair); }
.head-row { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem 1.4rem; min-height: 3.1rem; }
.wordmark { font-size: 1.4rem; text-decoration: none; letter-spacing: .01em; color: var(--ink); }
.wordmark b { font-weight: normal; font-style: italic; }
.nav > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem 1.1rem; }
.nav details { position: relative; }
.nav summary { cursor: pointer; list-style: none; font-variant: small-caps; text-transform: lowercase;
  letter-spacing: .05em; color: var(--muted); padding: .2rem 0; white-space: nowrap; }
.nav summary::-webkit-details-marker { display: none; }
.nav summary::after { content: ""; display: inline-block; margin-left: .3rem; vertical-align: .15em;
  border: .22rem solid transparent; border-top-color: currentColor; border-bottom-width: 0; }
.nav summary:hover, .nav details[open] summary { color: var(--ink); }
.nav summary.cur { color: var(--ink); text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: var(--faint); }
.nav details > ul { position: absolute; top: 100%; left: -.7rem; z-index: 30; list-style: none; margin: .2rem 0 0;
  padding: .45rem .7rem; min-width: 15rem; background: var(--bg); border: 1px solid var(--hair); }
.nav details > ul li { margin: .15rem 0; }
.nav details > ul a[aria-current] { font-style: italic; }
.search { margin-left: auto; position: relative; }
.search input { font: inherit; font-size: .95rem; color: var(--ink); background: transparent; width: 16rem;
  border: 0; border-bottom: 1px solid var(--hair); border-radius: 0; padding: .2rem .1rem; -webkit-appearance: none; appearance: none; }
.search input:focus { outline: none; border-bottom-color: var(--ink); }
.search-results { position: absolute; right: 0; top: 100%; z-index: 40; list-style: none; margin: .25rem 0 0;
  padding: .25rem 0; width: 25rem; max-width: 90vw; max-height: 60vh; overflow-y: auto; background: var(--bg);
  border: 1px solid var(--hair); font-size: .92rem; }
.search-results li { padding: .22rem .7rem; cursor: pointer; display: flex; gap: .6rem; align-items: baseline; }
.search-results li[aria-selected="true"] { background: var(--hi); }
.search-results .s { font-family: var(--figures); min-width: 3.6rem; }
.search-results .k { margin-left: auto; color: var(--muted); font-size: .8rem; font-variant: small-caps; }
.search-results .none { color: var(--muted); cursor: default; }
.lang { margin: 0; font-size: .9rem; color: var(--muted); white-space: nowrap; }
.lang b { font-weight: normal; color: var(--ink); border-bottom: 1px solid currentColor; }

/* ---------------------------------------------------------------- page heading */
.page-head { margin: 1.7rem 0 1.4rem; }
.page-head h1 { font-size: 2.15rem; line-height: 1.15; margin: 0 0 .35rem; }
.kicker { margin: 0 0 .25rem; font-variant: small-caps; text-transform: lowercase; letter-spacing: .05em; color: var(--muted); }
.kicker a { text-decoration-color: var(--hair); }
.page-head .sub { font-size: 1.12rem; max-width: 48rem; margin: 0 0 .3rem; }
.page-head .meta { margin: .3rem 0 0; color: var(--muted); }
.lede { font-size: 1.15rem; max-width: 46rem; }
.quote { font-family: var(--figures); }
.quote > * { margin-right: .5rem; }
.quote .px { font-size: 1.9rem; color: var(--ink); }
.quote .px .unit { font-size: 1rem; color: var(--muted); }
.quote .chg { font-size: 1.25rem; }
.quote .when { font-family: var(--serif); }
.live-stamp { font-style: italic; color: var(--accent); white-space: nowrap; }
.delisted-line { font-style: italic; }

/* ---------------------------------------------------------------- sections with margin notes */
.sec { margin: 2.1rem 0 2.4rem; }
.sec h2 { font-style: italic; font-size: 1.55rem; line-height: 1.2; margin: 0 0 .7rem; }
.sec h3 { font-style: italic; font-size: 1.2rem; margin: 1.2rem 0 .5rem; }
.sec-grid { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; column-gap: 2.6rem; align-items: start; }
.sec-main { min-width: 0; }
.sec-aside { font-size: .82rem; line-height: 1.38; color: var(--muted); }
.sec.wide .sec-grid { grid-template-columns: minmax(0, 1fr); }
.sec.wide .sec-aside { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); column-gap: 2.6rem;
  max-width: 60rem; margin-top: .4rem; }
.mn { margin: 0 0 .65rem; }
.mn a { overflow-wrap: anywhere; }
.trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 0 2.4rem; }
.keyfigs { margin-top: 1.2rem; }
details.more { margin: .4rem 0 1rem; }
details.more > summary { cursor: pointer; color: var(--muted); font-style: italic; }

/* ---------------------------------------------------------------- booktabs tables */
.tbl { margin: 0 0 1.1rem; }
.tbl-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.booktabs { border-collapse: collapse; font-family: var(--figures); font-size: .93rem; line-height: 1.25;
  border-top: 1.5px solid var(--rule); border-bottom: 1.5px solid var(--rule); }
.booktabs caption { caption-side: top; text-align: left; font-family: var(--serif); font-style: italic;
  font-size: .88rem; color: var(--muted); padding: 0 0 .35rem; }
.booktabs thead th { border-bottom: 1px solid var(--rule); font-weight: normal; font-size: .82rem; line-height: 1.2;
  color: var(--muted); padding: .4rem .6rem .3rem; text-align: left; vertical-align: bottom; white-space: nowrap; }
.booktabs tbody td, .booktabs tbody th { padding: .2rem .6rem; text-align: left; font-weight: normal;
  white-space: nowrap; vertical-align: baseline; }
.booktabs tbody tr:first-child > * { padding-top: .4rem; }
.booktabs tbody tr:last-child > * { padding-bottom: .35rem; }
.booktabs tfoot td { border-top: 1px solid var(--rule); padding: .3rem .6rem; }
.booktabs .num, .kv .num { text-align: right; font-variant-numeric: lining-nums tabular-nums; }
.booktabs thead th.num { text-align: right; }
.booktabs td.name { white-space: normal; min-width: 11rem; max-width: 22rem; }
.booktabs td.comp { color: var(--muted); font-size: .85rem; }
.booktabs .spark-cell { padding-top: 0; padding-bottom: 0; vertical-align: middle; }
.booktabs tr.self > * { font-weight: bold; }
.booktabs.sticky tbody th, .booktabs.sticky thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--bg); }
.booktabs.compact { font-size: .9rem; width: 100%; }
.booktabs.compact td.name { min-width: 0; max-width: none; white-space: normal; }
.booktabs.fin th a { text-decoration-color: var(--hair); }
.tbl-note { font-size: .8rem; color: var(--muted); margin: .4rem 0 0; max-width: 52rem; }
.empty { color: var(--muted); font-style: italic; }
.booktabs th[data-sort-type] button { all: unset; cursor: pointer; }
.booktabs th[data-sort-type] button:focus-visible { outline: 1px dotted var(--accent); }
.booktabs th[aria-sort="ascending"] button::after { content: " \2191"; }
.booktabs th[aria-sort="descending"] button::after { content: " \2193"; }
table.kv { border-collapse: collapse; font-family: var(--figures); font-size: .93rem;
  border-top: 1.5px solid var(--rule); border-bottom: 1.5px solid var(--rule); }
.kv caption { caption-side: top; text-align: left; font-family: var(--serif); font-style: italic; font-size: .88rem;
  color: var(--muted); padding: 0 0 .35rem; }
.kv th { text-align: left; font-weight: normal; padding: .2rem 1.6rem .2rem 0; font-family: var(--serif); }
.kv td { padding: .2rem 0; }
.kv tr:first-child > * { padding-top: .4rem; }
.kv tr:last-child > * { padding-bottom: .35rem; }

/* ---------------------------------------------------------------- charts (inline SVG) */
svg { overflow: visible; }
svg text { font-family: var(--figures); }
svg.chart { display: block; width: 100%; height: auto; }
svg.spark, svg.rangebar, svg.breadth { vertical-align: middle; }
.ln { fill: none; stroke: var(--ink); stroke-width: 1.15; stroke-linejoin: round; stroke-linecap: round; }
.spark .ln { stroke-width: .9; }
.ln.mute { stroke: var(--faint); }
.ln.up { stroke: var(--up); }
.ln.down { stroke: var(--down); }
.ax { stroke: var(--faint); stroke-width: .8; fill: none; }
.tk { font-size: 11px; fill: var(--muted); }
.tk.hd { font-style: italic; }
.lbl { font-size: 12px; fill: var(--ink); }
.lbl.mute { fill: var(--muted); }
.dot { fill: var(--accent); }
.dot.ext { fill: var(--faint); }
.dot.up { fill: var(--up); }
.dot.down { fill: var(--down); }
.tk.up { fill: var(--up); }
.tk.down { fill: var(--down); }
line.ref { stroke: #b9b9ae; stroke-width: .8; stroke-dasharray: 2 2; }
.vol .bar { fill: none; stroke: #a6a69a; stroke-width: 1.5; }
.cols .bar { fill: #8f8f84; }
.cols .bar.neg { fill: var(--down); }
.rangebar .ax { stroke: #a6a69a; }
.rangebar .tick { stroke: var(--ink); stroke-width: 1.6; }
.breadth .b-up { fill: var(--up); }
.breadth .b-down { fill: var(--down); }
.breadth .b-flat { fill: #c9c9bd; }
.stem { stroke: var(--faint); stroke-width: 1; }
.stem.up { stroke: var(--up); }
.stem.down { stroke: var(--down); }
.multiples { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 1rem 1.6rem; }
.multiple { margin: 0; }
.multiple figcaption { font-size: .85rem; display: flex; gap: .4rem; align-items: baseline; }
.multiple .v { margin-left: auto; font-family: var(--figures); }
.multiple .note { color: var(--muted); font-size: .75rem; }
figure { margin: 0 0 1rem; }
figcaption { font-size: .82rem; font-style: italic; color: var(--muted); margin-top: .25rem; }
.divchart { max-width: 420px; }
.divchart svg { width: 100%; height: auto; }

/* stock chart (app.js redraws inside .chart-price / .chart-vol; the server SVG is the no-JS view) */
.stock-chart { max-width: 760px; }
.chart-ctl { display: flex; flex-wrap: wrap; gap: .15rem .3rem; margin: 0 0 .2rem; font-family: var(--figures); }
.chart-ctl button { font: inherit; font-size: .88rem; color: var(--muted); background: none; border: 0;
  border-bottom: 1px solid transparent; padding: .1rem .35rem; cursor: pointer; }
.chart-ctl button:hover { color: var(--ink); }
.chart-ctl button[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.chart-readout { min-height: 1.3em; margin: 0; font-family: var(--figures); font-size: .88rem; color: var(--muted); }
.chart-price svg, .chart-vol svg { display: block; width: 100%; height: auto; }
.chart-vol { margin-top: .1rem; }
.cross { stroke: var(--faint); stroke-width: .8; }
.hit { fill: transparent; cursor: crosshair; }
.hit:focus { outline: none; }
.hit:focus-visible { stroke: var(--accent); stroke-width: .6; stroke-dasharray: 2 2; }

/* ---------------------------------------------------------------- footer */
.site-foot { border-top: 1px solid var(--hair); margin-top: 3rem; padding: 1.3rem 0 2.6rem; font-size: .85rem; color: var(--muted); }
.site-foot p { max-width: 56rem; margin: 0 0 .5rem; }
.site-foot .sitemap { margin-top: 1rem; }
.site-foot .sitemap p { margin: .1rem 0; }

/* ---------------------------------------------------------------- narrow screens */
@media (max-width: 66rem) {
  .sec-grid { grid-template-columns: minmax(0, 1fr); }
  .sec-aside { margin-top: .5rem; padding-left: .7rem; border-left: 1px solid var(--hair); }
  .sec.wide .sec-aside { display: block; }
}
@media (max-width: 44rem) {
  html { font-size: 15px; }
  .page { padding: 0 .9rem; }
  .head-row { gap: .3rem 1rem; padding: .35rem 0 .5rem; }
  .nav { order: 3; width: 100%; }
  .nav > ul { gap: .1rem .9rem; }
  .nav details > ul { min-width: 13rem; }
  .search { order: 4; margin-left: 0; width: 100%; }
  .search input { width: 100%; }
  .search-results { left: 0; right: auto; width: 100%; max-width: none; }
  .lang { margin-left: auto; }
  .page-head h1 { font-size: 1.7rem; }
  .quote .px { font-size: 1.6rem; }
  .sec h2 { font-size: 1.35rem; }
  .booktabs td.name { min-width: 8rem; }
  .trio { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------------------------------------------------------- print */
@media print {
  :root { --bg: #fff; }
  body { background: #fff; font-size: 10.5pt; }
  .nav, .search, .lang, .skip, .chart-ctl, .chart-readout, .site-foot .sitemap, .live-stamp { display: none !important; }
  .page { max-width: none; padding: 0; }
  a { text-decoration: none; }
  .tbl-scroll { overflow: visible; }
  .sec { break-inside: avoid-page; }
  .booktabs.sticky tbody th, .booktabs.sticky thead th:first-child { position: static; }
  details.more { display: block; }
  details.more > *:not(summary) { display: block; }
}
