/* Calendar page (/calendar/): the merged agenda, its Bento tiles, the one-calendar lists, the Orbit week dial and the
   event dialog. Every rule is scoped under the page root (.ch-root), its header (.ch-head) or the dialog (.ch-dlg-wrap);
   colours of the five scopes come from the site's tokens. No inline styles: scripts set --c, --a and the like. */

.ch-root, .ch-dlg-wrap { --ch-lav: #B9A7F5; }
.ch-root .ch-s-our_companies, .ch-dlg-wrap .ch-s-our_companies { --s: var(--gold); }
.ch-root .ch-s-market_filings, .ch-dlg-wrap .ch-s-market_filings { --s: var(--sky); }
.ch-root .ch-s-economy, .ch-dlg-wrap .ch-s-economy { --s: var(--up); }
.ch-root .ch-s-central_banks, .ch-dlg-wrap .ch-s-central_banks { --s: var(--rose); }
.ch-root .ch-s-exchange_holidays, .ch-dlg-wrap .ch-s-exchange_holidays { --s: var(--ch-lav); }
.ch-root .ch-f1 { --s: var(--sky); }
.ch-root .ch-f2 { --s: var(--ch-lav); }
.ch-root .ch-f3 { --s: var(--up); }
.ch-root .ch-f4 { --s: var(--gold); }
.ch-root .ch-f5 { --s: rgba(236, 238, 246, .4); }

/* One spacing scale: 4, 8, 12, 16, 24 and 32 px. */
.ch-root { --ch-1: 4px; --ch-2: 8px; --ch-3: 12px; --ch-4: 16px; --ch-5: 24px; --ch-6: 32px; }
.ch-section { padding-top: 8px; }
.ch-root { position: relative; min-width: 0; }
.ch-root button { min-width: 0; }
.ch-root button:disabled { cursor: default; }

/* ------------------------------------------------------------------ the switcher: All calendars and the five calendars */
.ch-root .ch-top { margin-bottom: var(--ch-3); }
.ch-root .ch-switch { min-width: 0; }
.ch-root .ch-switch-l { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--ch-3); }
.ch-root .ch-scope {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; align-items: center; gap: 2px var(--ch-3); min-height: 64px; height: 100%;
  padding: var(--ch-2) var(--ch-3) var(--ch-2) var(--ch-3); border-radius: 14px; border: 1px solid var(--line); background: rgba(255, 255, 255, .03);
  color: var(--muted); text-decoration: none; transition: border-color .2s, background-color .2s, color .2s;
}
.ch-root .ch-scope:hover { border-color: var(--line-2); color: var(--text); }
.ch-root .ch-scope:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
/* The open calendar, marked as the site's nav marks its page: full text colour and a gold line under it. */
.ch-root .ch-scope[aria-current] {
  color: var(--text); border-color: color-mix(in srgb, var(--s, var(--text)) 60%, transparent); background: color-mix(in srgb, var(--s, #fff) 10%, transparent);
}
.ch-root .ch-scope[aria-current]::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--gold); }
.ch-root .ch-scope-all { --s: var(--text); }
.ch-root .ch-scope-t { font-size: 13px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Each calendar keeps its name on one line: the short name where the full one does not fit. */
.ch-root .ch-scope-t .ch-short { display: none; }
.ch-root .ch-scope .ch-ring { grid-row: span 2; }
.ch-root .ch-scope-n { grid-column: 2; display: flex; align-items: baseline; gap: 6px; line-height: 1.1; }
.ch-root .ch-scope-n b { font-weight: 250; font-size: 20px; color: var(--s, var(--text)); font-variant-numeric: tabular-nums; }
.ch-root .ch-scope-n small { font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.ch-root .ch-scope:not([aria-current]) .ch-scope-n b { color: color-mix(in srgb, var(--s, var(--text)) 70%, var(--muted)); }

/* ------------------------------------------------------------------ controls */
.ch-root .ch-search { display: block; width: 260px; min-width: 0; }
.ch-root .ch-search-in {
  width: 100%; min-height: 44px; padding: 10px 16px; border-radius: 999px; border: 1px solid var(--line-2);
  background: rgba(255, 255, 255, .04); color: var(--text); font: inherit; font-size: 14px;
}
.ch-root .ch-search-in::placeholder { color: var(--faint); }
.ch-root .ch-search-in:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.ch-root .ch-ctrl { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--ch-3); margin-bottom: var(--ch-4); }
.ch-root .ch-ctrl-l { justify-self: start; display: flex; align-items: center; gap: var(--ch-2); }
.ch-root .ch-ctrl-c { display: flex; align-items: center; gap: var(--ch-3); }
.ch-root .ch-ctrl-r { grid-column: 3; justify-self: end; display: flex; align-items: center; gap: var(--ch-2); }
.ch-root .ch-range { font-family: var(--font-cond); font-weight: 500; font-size: 18px; letter-spacing: .14em; text-transform: uppercase; text-align: center; min-width: 15ch; }
.ch-root .ch-seg { display: inline-flex; padding: 4px; gap: 4px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255, 255, 255, .03); }
.ch-root .ch-segb, .ch-root .ch-pill, .ch-root .ch-ic {
  min-height: 44px; padding: 0 14px; border-radius: 999px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted);
}
/* Segmented controls read as on the Cards and Companies pages: condensed type, icons in the layout switch. */
.ch-root .ch-segb { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; font-family: var(--font-cond); font-weight: 500; font-size: 13px; letter-spacing: .14em; color: var(--text-2); transition: background-color .2s ease, color .2s ease; }
.ch-root .ch-segb svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.ch-root .ch-segb { white-space: nowrap; }
/* Below 1320 px the orbit row holds both switches, the stepper and the search: 12 px sides keep each label on one line. */
@media (max-width: 1320px) { .ch-root .ch-segb { padding: 0 12px; } }
.ch-root .ch-segb:hover, .ch-root .ch-pill:hover, .ch-root .ch-ic:hover { color: var(--text); }
.ch-root .ch-segb[aria-pressed="true"] { color: var(--space-0); background: var(--gold); }
.ch-root .ch-pill { border: 1px solid var(--line-2); }
.ch-root .ch-ic { width: 44px; padding: 0; border: 1px solid var(--line-2); font-size: 16px; letter-spacing: 0; }
.ch-root:not(.ch-is-orbit) .ch-scale { display: none; }
/* In a calendar's list there is nothing to step: the stepper and Today leave the row, the layout switch and the search
   keep their places at the two edges, and on a phone no empty band remains. */
.ch-root.ch-nostep .ch-ctrl-c, .ch-root.ch-nostep .ch-pill { display: none; }

/* ------------------------------------------------------------------ the content area */
.ch-root .ch-content { min-width: 0; }
.ch-root .ch-content.ch-fade { animation: ch-fade .18s ease-out; }
@keyframes ch-fade { from { opacity: .25; } to { opacity: 1; } }

/* ------------------------------------------------------------------ bento: six tiles of one anatomy */
/* Each tile spans three rows of the grid (header, rows, footer) as a subgrid, so the headers, the first rows and the
   footers line up across a row of tiles and the tiles of a row share one height. */
.ch-root .ch-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.75fr) minmax(0, 1fr); grid-auto-rows: auto; gap: var(--gap); align-items: stretch; }
.ch-root .ch-tile {
  grid-row: span 3; display: grid; grid-template-rows: subgrid; row-gap: var(--ch-3); min-width: 0; padding: var(--ch-4) var(--ch-4) var(--ch-3);
  border-radius: var(--radius); border: 1px solid var(--line); position: relative;
  background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .02)); transition: border-color .2s, background-color .2s;
}
.ch-root .ch-tile::before { content: ""; position: absolute; left: 18px; right: 18px; top: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--tc, rgba(245, 209, 138, .5)), transparent); }
.ch-root .ch-t-cb { --tc: rgba(239, 170, 187, .6); }
.ch-root .ch-t-nr { --tc: rgba(245, 209, 138, .6); }
.ch-root .ch-t-hol { --tc: rgba(185, 167, 245, .6); }
.ch-root .ch-t-fil { --tc: rgba(129, 201, 232, .6); }
/* The whole tile opens its calendar: the title's button lays a layer over the tile; rows and links sit above it. */
/* Tile hover: the gold edge of the site's linked panels and the Companies tiles. */
.ch-root .ch-tile:hover { border-color: rgba(245, 209, 138, .45); background-color: rgba(255, 255, 255, .025); }
.ch-root .ch-tile:has(.ch-open:focus-visible) { outline: 2px solid var(--gold); outline-offset: 2px; }
.ch-root .ch-open { display: inline; min-height: 0; padding: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; text-align: left; }
.ch-root .ch-open::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--radius); cursor: pointer; }
.ch-root .ch-open:focus-visible { outline: none; }
.ch-root .ch-tile .ch-ev, .ch-root .ch-tile .ch-wk-b, .ch-root .ch-tile .ch-link, .ch-root .ch-tile a { position: relative; z-index: 2; }
.ch-root .ch-tile-h { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: start; gap: var(--ch-3); }
.ch-root .ch-tile-ttl { min-width: 0; }
.ch-root .ch-tile-ttl .kicker { color: var(--text-2); font-weight: 400; line-height: 1.4; overflow-wrap: anywhere; }
.ch-root .ch-src { margin-top: var(--ch-1); font-family: var(--font-mono); font-size: 10.5px; line-height: 1.45; letter-spacing: .06em; color: var(--muted); }
.ch-root .ch-tile-fig { width: 60px; height: 60px; display: grid; place-items: center; }
.ch-root .ch-cue {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line-2); color: var(--text-2); font-size: 14px;
  display: grid; place-items: center; transition: border-color .2s, color .2s, background-color .2s;
}
.ch-root .ch-tile:hover .ch-cue, .ch-root .ch-tile:has(.ch-open:focus-visible) .ch-cue { color: var(--space-0); background: var(--gold); border-color: var(--gold); }
.ch-root .ch-tile-b { min-width: 0; display: flex; flex-direction: column; }
.ch-root .ch-foot {
  align-self: start; min-height: 32px; padding-top: var(--ch-2); border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--ch-2);
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .02em; color: var(--muted);
}
.ch-root .ch-foot:empty { visibility: hidden; }
.ch-root .ch-link { min-height: 32px; display: inline-flex; align-items: center; color: var(--sky); font-family: var(--font-mono); font-size: 11px; letter-spacing: .04em; text-decoration: underline; text-underline-offset: 3px; text-align: left; }
.ch-root .ch-link:hover { color: var(--gold); }

/* Tile rows: a fixed first column, the title over its meta line, and a right-aligned date column. */
.ch-root .ch-minis { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; }
.ch-root .ch-minis.ch-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--ch-5); }
.ch-root .ch-mini { border-top: 1px solid var(--line); min-width: 0; }
.ch-root .ch-mini .ch-mini-b {
  width: 100%; min-height: 52px; display: grid; grid-template-columns: 52px minmax(0, 1fr) 76px; align-items: center; gap: var(--ch-3);
  padding: 6px 2px; text-align: left; border-radius: 8px;
}
.ch-root .ch-mini .ch-mini-b:hover { background: rgba(255, 255, 255, .045); }
.ch-root .ch-mini-l { display: grid; place-items: center start; min-width: 0; }
.ch-root .ch-mini-l .ch-plate, .ch-root .ch-mini-l .form, .ch-root .ch-mini-l .ch-badge { min-width: 0; width: 52px; }
.ch-root .ch-mini-l .ch-ring { margin-left: 6px; }
.ch-root .ch-mini-t { display: grid; gap: 2px; min-width: 0; }
.ch-root .ch-mini-t b { font-weight: 450; font-size: 14px; line-height: 1.3; overflow-wrap: break-word; }
.ch-root .ch-mini-t small { font-family: var(--font-mono); font-size: 10.5px; line-height: 1.4; letter-spacing: .03em; color: var(--muted); overflow-wrap: break-word; }
.ch-root .ch-mini-r { display: grid; justify-items: end; align-self: center; font-family: var(--font-mono); font-size: 11px; color: var(--text-2); white-space: nowrap; text-align: right; }
.ch-root .ch-mini-r small { color: var(--sky); font-size: 10.5px; }
.ch-root .ch-mini .ch-ev:hover span:last-child { color: inherit; }
.ch-root .ch-mini .ch-ev:hover .ch-mini-t b { color: var(--gold); }
.ch-root .ch-nowrow { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--ch-3); padding: 6px 0; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }
.ch-root .ch-nowrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 10px 2px rgba(245, 209, 138, .6); flex: none; }
.ch-root .ch-nowrow::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(245, 209, 138, .6), transparent); }
.ch-root .ch-badge, .ch-dlg-wrap .ch-badge {
  display: inline-grid; place-items: center; height: 22px; padding: 0 5px; border-radius: 6px; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .02em;
  text-transform: uppercase; color: var(--s, var(--text-2)); border: 1px solid color-mix(in srgb, var(--s, #fff) 55%, transparent); white-space: nowrap; overflow: hidden;
}
.ch-root .ch-badge-f { font-size: 10.5px; padding: 3px 4px; }

.ch-root .ch-dot { width: 9px; height: 9px; margin: 0 6px 0 4px; border-radius: 50%; background: var(--s, var(--muted)); box-shadow: 0 0 8px color-mix(in srgb, var(--s, #fff) 60%, transparent); flex: none; display: inline-block; }
.ch-root .ch-plate, .ch-dlg-wrap .ch-plate {
  display: inline-grid; place-items: center; min-width: 46px; height: 22px; padding: 0 6px; border-radius: 6px; flex: none;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .04em; font-weight: 600; color: #fff;
  background: var(--c, rgba(255, 255, 255, .1)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}
.ch-root .ch-plate.is-dark, .ch-dlg-wrap .ch-plate.is-dark { color: #0A0B22; }
.ch-root .ch-plate.is-plain, .ch-dlg-wrap .ch-plate.is-plain { color: var(--text-2); }

/* Rings */
.ch-root .ch-ring, .ch-dlg-wrap .ch-ring { --rs: 40px; position: relative; width: var(--rs); height: var(--rs); flex: none; display: inline-grid; place-content: center; text-align: center; }
.ch-root .ch-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ch-root .ch-ring-t { fill: none; stroke: rgba(255, 255, 255, .12); stroke-width: 3.2; }
.ch-root .ch-ring-v, .ch-root .ch-arc { fill: none; stroke: var(--s, var(--gold)); stroke-width: 3.2; stroke-linecap: round; }
.ch-root .ch-arc { stroke-linecap: butt; }
.ch-root .ch-ring b { position: relative; font-weight: 300; font-size: 13px; line-height: 1; font-variant-numeric: tabular-nums; }
.ch-root .ch-ring small { position: relative; font-family: var(--font-mono); font-size: 9px; letter-spacing: .06em; color: var(--muted); margin-top: 2px; }
.ch-root .ch-ring-sm { --rs: 30px; }
.ch-root .ch-ring-md { --rs: 40px; }
.ch-root .ch-ring-lg { --rs: 60px; }
.ch-root .ch-ring-lg b { font-size: 20px; }
.ch-root .ch-ring-lg small { letter-spacing: 0; }
.ch-root .ch-ring-xl { --rs: 104px; }
.ch-root .ch-ring-xl b { font-size: 30px; font-weight: 200; }
.ch-root .ch-ring-xl small { font-size: 10px; }

/* This week: the scope totals, the compact dial and the seven days. */
.ch-root .ch-wk { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 200px) minmax(0, 1fr); align-items: center; gap: var(--ch-4); flex: 1; }
.ch-root .ch-wk ul { display: grid; gap: 0; }
.ch-root .ch-wk-r, .ch-root .ch-wk-b {
  width: 100%; min-height: 36px; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: var(--ch-2); padding: 0 var(--ch-2);
  border-radius: 8px; border: 1px solid transparent; font-size: 13px; color: var(--text-2); text-align: left;
}
.ch-root .ch-wk-days .ch-wk-b { grid-template-columns: minmax(0, 1fr) auto; }
.ch-root .ch-wk-b:hover { background: rgba(255, 255, 255, .05); color: var(--text); }
.ch-root .ch-wk-r b, .ch-root .ch-wk-b b { font-family: var(--font-mono); font-weight: 400; font-size: 12px; color: var(--text); text-align: right; font-variant-numeric: tabular-nums; }
.ch-root .ch-wk-r i { width: 8px; height: 8px; border-radius: 50%; background: var(--s); }
.ch-root .ch-wk-b.is-today { border-color: rgba(245, 209, 138, .6); color: var(--gold); }
.ch-root .ch-wk-b.is-zero b { color: var(--faint); }
.ch-root .ch-wk-dial { position: relative; width: 100%; max-width: 200px; aspect-ratio: 1; justify-self: center; }
.ch-root .ch-wk-core { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; pointer-events: none; }
.ch-root .ch-wk-core span { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.ch-root .ch-wk-core b { font-size: 34px; line-height: 1; }

/* The dial */
.ch-root .ch-dial { width: 100%; height: auto; display: block; overflow: visible; }
.ch-root .ch-dial-orbit { fill: rgba(10, 11, 34, .55); stroke: var(--line); }
.ch-root .ch-dial-z { fill: rgba(255, 255, 255, .04); stroke: rgba(255, 255, 255, .1); stroke-width: 1; transition: fill .2s; }
.ch-root .ch-dial-day { cursor: pointer; outline: none; }
.ch-root .ch-dial-day:hover .ch-dial-z { fill: rgba(255, 255, 255, .09); }
.ch-root .ch-dial-day.is-static { cursor: default; }
.ch-root .ch-dial-day.is-static:hover .ch-dial-z { fill: rgba(255, 255, 255, .04); }
.ch-root .ch-dial-day.is-static.is-focus:hover .ch-dial-z { fill: rgba(245, 209, 138, .2); }
.ch-root .ch-dial-day:focus-visible .ch-dial-z { stroke: var(--gold); stroke-width: 2; }
.ch-root .ch-dial-day.is-focus .ch-dial-z { fill: rgba(245, 209, 138, .2); stroke: rgba(245, 209, 138, .7); }
.ch-root .ch-dial-l, .ch-root .ch-dial-n, .ch-root .ch-dial-c { text-anchor: middle; font-family: var(--font-mono); fill: var(--muted); pointer-events: none; }
.ch-root .ch-dial-l { font-size: 7px; letter-spacing: .1em; }
.ch-root .ch-dial-n { font-size: 9px; fill: var(--text-2); }
.ch-root .ch-dial-big .ch-dial-l { font-size: 11px; }
.ch-root .ch-dial-big .ch-dial-n { font-size: 15px; }
.ch-root .ch-dial-c { font-size: 11px; fill: var(--space-0); font-weight: 600; }
.ch-root .ch-dial-day.is-today .ch-dial-l, .ch-root .ch-dial-day.is-today .ch-dial-n { fill: var(--gold); }
.ch-root .ch-dial-r { fill: var(--s); opacity: var(--a, 0); }
.ch-root .ch-dial-r.is-zero { fill: rgba(255, 255, 255, .045); opacity: 1; }
.ch-root .ch-dial-r.is-off { opacity: .07; }
.ch-root .ch-dial-needle { fill: var(--gold); }

/* ------------------------------------------------------------------ one calendar in the content area */
/* An open calendar reads as the site's panel: the same glass, border, radius and padding. */
.ch-root .ch-view:not(.ch-panel) { padding: var(--panel-pad, var(--ch-5)); border-radius: var(--radius); border: 1px solid var(--line); background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .02)); }
.ch-root .ch-view-head { align-items: baseline; margin-bottom: var(--ch-4); }
.ch-root .ch-view-h { font-family: var(--font-cond); font-weight: 500; font-size: 15px; letter-spacing: .22em; text-transform: uppercase; }
.ch-root .ch-view-h:focus { outline: none; }
.ch-root .ch-view-head .prov { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: var(--ch-1) var(--ch-4); }
.ch-root .ch-up { white-space: nowrap; }
.ch-root .ch-chips { margin-bottom: var(--ch-4); }
.ch-root .ch-chips .chip { min-height: 40px; padding: 4px 12px; }
/* Beside the dial the form chips stay on one row. */
.ch-root .ch-panel .ch-chips { gap: var(--ch-1); }
.ch-root .ch-panel .ch-chips .chip { padding: 6px 8px; gap: var(--ch-1); }
.ch-root .ch-chips .chip { gap: var(--ch-2); }
.ch-root .ch-chip-n { opacity: .75; }
.ch-root .agenda-h .ch-agenda-n { color: var(--muted); letter-spacing: .08em; }
.ch-root .ch-agenda { gap: var(--ch-5) var(--ch-6); }
.ch-root .ch-col { min-width: 0; }
/* "Show more" is the site's gold pill (.more-pill in site.css); only its place in the column is set here. */
.ch-root .ch-more-b { margin-top: var(--ch-2); }
.ch-root .ch-count { margin-top: var(--ch-2); font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.ch-root .ch-sublink { margin-top: var(--ch-3); }
.ch-root .ch-sublist { margin-top: var(--ch-5); }
.ch-root .ch-river { min-width: 0; }
.ch-root .ch-river .e { overflow-wrap: anywhere; }
.ch-root .ch-river li::before { border-color: color-mix(in srgb, var(--s, var(--sky)) 85%, transparent); }
.ch-root .ch-river li.done::before { background: var(--s, var(--sky)); border-color: var(--s, var(--sky)); }
.ch-root .ch-river li.ch-now::before { background: var(--gold); border-color: var(--gold); }
.ch-root .ch-river .ch-rel { color: var(--sky); letter-spacing: .1em; }
.ch-root .ch-ev { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; text-align: left; border-radius: 6px; }
/* A river title keeps the live river's line spacing; its 44 px touch area comes from a transparent layer around it, so a
   title on two lines never runs into the status line below. */
.ch-root .ch-river .e .ch-ev { position: relative; min-height: 0; line-height: 1.3; }
.ch-root .ch-river .e .ch-ev::after { content: ""; position: absolute; inset: -11px -6px; }
.ch-root .ch-ev:hover span:last-child { color: var(--gold); }
/* A filings row's company keeps the live table's spacing on one line or two; its touch area is a layer around it. */
.ch-root .ch-ev-plain { position: relative; min-height: 0; gap: 8px; line-height: 1.3; }
.ch-root .ch-ev-plain::after { content: ""; position: absolute; inset: -12px -6px; }
/* The filings table: one width for the form and the time columns, the time right-aligned. */
.ch-root .ch-filings { width: 100%; table-layout: fixed; }
.ch-root .ch-filings th:first-child, .ch-root .ch-filings .fm { width: 76px; }
.ch-root .ch-filings th.r, .ch-root .ch-filings .tm { width: 132px; text-align: right; }
/* The heading's trailing letter-spacing would leave it short of the times' right edge. */
.ch-root .ch-filings thead th.r::after { content: ""; margin-right: -.12em; }
.ch-root .ch-filings .co { overflow-wrap: anywhere; }
/* The site's filings table styles every span in the company cell as the small form line; the name inside the button
   reads as the live table's company name instead. */
.ch-root .filings .co .ch-ev .ch-co-n { display: inline; margin: 0; font-family: var(--font-sans); font-size: 15px; color: var(--text); }
.ch-root .filings .co .ch-ev:hover .ch-co-n { color: var(--gold); }
.ch-root .filings .co .ch-ev .ch-plate { display: inline-grid; margin: 0; font-size: 10px; color: #fff; }
.ch-root .filings .co .ch-ev .ch-plate.is-dark { color: #0A0B22; }
.ch-root .filings .co .ch-ev .ch-plate.is-plain { color: var(--text-2); }
.ch-root .filings .tm .tt { white-space: nowrap; }
.ch-root .ch-form { min-width: 0; margin-right: 8px; padding: 1px 6px; font-size: 10px; }
.ch-root .river .s.ch-v { font-weight: 250; font-size: 20px; color: var(--text); font-family: var(--font-sans); }
.ch-root .ch-agenda.ch-one { grid-template-columns: minmax(0, 1fr); }
.ch-root .ch-fold summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; min-height: 44px; margin: -8px 0; }
.ch-root .ch-fold summary::-webkit-details-marker { display: none; }
.ch-root .ch-fold summary::after { content: "+"; margin-left: 10px; font-family: var(--font-mono); color: var(--sky); }
.ch-root .ch-fold[open] summary::after { content: "−"; }
.ch-root .ch-fold summary:hover { color: var(--gold); }
.ch-root .river .ch-fold-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 14px; margin-top: 8px; }
.ch-root .river .ch-fold-list li { padding: 0; border-top: 1px solid var(--line); }
.ch-root .river .ch-fold-list li::before { content: none; }
.ch-root .river .ch-fold-list .ch-ev { font-size: 13.5px; line-height: 1.3; width: 100%; margin: 0; padding: 6px 0; }
.ch-root .ch-table { min-width: 0; }
/* Common forms: a side panel at desktop widths, one line that opens in place on narrow widths and beside the dial. */
.ch-root .ch-forms { margin-top: 0; padding: var(--ch-4) var(--ch-5); align-self: start; }
.ch-root .ch-forms summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; min-height: 32px;
  font-family: var(--font-cond); font-weight: 500; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--text-2); }
.ch-root .ch-forms summary::-webkit-details-marker { display: none; }
.ch-root .ch-forms summary::after { content: "+"; font-family: var(--font-mono); color: var(--sky); }
.ch-root .ch-forms[open] summary::after { content: "−"; }
.ch-root .ch-forms summary:hover { color: var(--gold); }
.ch-root .ch-forms .forms { margin-top: var(--ch-3); }
.ch-root .ch-forms p { margin-top: var(--ch-4); }

/* The page notes: one line that opens in place. */
.ch-root .ch-notes { margin-top: var(--ch-5); border-top: 1px solid var(--line); }
.ch-root .ch-notes summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: var(--ch-2); min-height: 44px;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ch-root .ch-notes summary::-webkit-details-marker { display: none; }
.ch-root .ch-notes summary::after { content: "+"; color: var(--sky); }
.ch-root .ch-notes[open] summary::after { content: "−"; }
.ch-root .ch-notes summary:hover { color: var(--gold); }
.ch-root .ch-notes .ch-vnote { font-size: 13px; line-height: 1.55; color: var(--text-2); max-width: 90ch; }
.ch-root .ch-notes .ch-note { margin-top: var(--ch-2); }
.ch-root .ch-indep { margin-top: var(--ch-1); font-size: 12px; line-height: 1.5; color: var(--muted); }

/* ------------------------------------------------------------------ orbit */
.ch-root .ch-orbit-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--gap); align-items: start; }
.ch-root .ch-orbit-l { position: sticky; top: 16px; }
.ch-root .ch-stage { position: relative; width: 100%; max-width: 640px; margin: 0 auto; }
.ch-root .ch-dialbox { position: relative; width: 100%; aspect-ratio: 1; }
.ch-root .ch-core { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; pointer-events: none; }
.ch-root .ch-core .kicker { color: var(--gold); }
.ch-root .ch-core b { font-size: 84px; line-height: .9; }
.ch-root .ch-core span:not(.kicker) { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.ch-root .ch-core small { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 4px; }
.ch-root .ch-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; margin-top: 10px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.ch-root .ch-legend li { display: inline-flex; align-items: center; gap: 6px; }
.ch-root .ch-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--s); }
.ch-root .ch-panel { min-width: 0; }
.ch-root .ch-panel .agenda-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.ch-root .ch-panel .ch-split { grid-template-columns: minmax(0, 1fr); }
.ch-root .ch-mg-h { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 6px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); text-align: center; }
.ch-root .ch-mg { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.ch-root .ch-mc {
  min-height: 74px; display: grid; grid-template-rows: auto 1fr auto; padding: 8px; border-radius: 12px; border: 1px solid var(--line);
  background: rgba(255, 255, 255, .03); text-align: left;
}
.ch-root .ch-mc:hover { border-color: var(--line-2); background: rgba(255, 255, 255, .06); }
.ch-root .ch-mc.is-out { opacity: .4; }
.ch-root .ch-mc.is-today { border-color: rgba(245, 209, 138, .7); }
.ch-root .ch-mc.is-focus { background: rgba(245, 209, 138, .14); }
.ch-root .ch-mc-n { font-size: 14px; color: var(--text-2); }
.ch-root .ch-mc-dots { display: flex; flex-wrap: wrap; gap: 4px; align-content: center; }
.ch-root .ch-mc-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--s); }
.ch-root .ch-mc-c { font-family: var(--font-mono); font-size: 11px; color: var(--muted); justify-self: end; }

/* ------------------------------------------------------------------ dialog */
.ch-dlg-wrap { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; }
.ch-dlg-wrap .ch-dlg-back { position: absolute; inset: 0; background: rgba(4, 5, 13, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ch-dlg-wrap .ch-dlg {
  position: relative; width: min(640px, 100%); max-height: calc(100vh - 32px); overflow: auto; padding: 26px 26px 22px; border-radius: var(--radius);
  border: 1px solid var(--line-2); background: linear-gradient(180deg, #14153a, #0b0c26); box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
  animation: ch-pop .26s cubic-bezier(.2, .8, .2, 1);
}
@keyframes ch-pop { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
.ch-dlg-wrap .ch-dlg-x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-2); font-size: 20px; color: var(--text-2); }
.ch-dlg-wrap .ch-dlg-x:hover { color: var(--space-0); background: var(--gold); border-color: var(--gold); }
.ch-dlg-wrap .ch-tags { display: flex; flex-wrap: wrap; gap: 6px; padding-right: 52px; }
.ch-dlg-wrap .ch-tag { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; padding: 4px 9px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--s) 60%, transparent); color: var(--s); }
.ch-dlg-wrap h2 { margin: 12px 52px 6px 0; font-weight: 300; font-size: 26px; line-height: 1.2; letter-spacing: -.01em; overflow-wrap: anywhere; }
.ch-dlg-wrap .ch-form { vertical-align: middle; margin-right: 10px; }
.ch-dlg-wrap .ch-dlg-note { font-size: 13.5px; line-height: 1.5; margin-top: 4px; }
.ch-dlg-wrap .ch-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; margin-top: 14px; }
.ch-dlg-wrap .ch-facts div { border-top: 1px solid var(--line); padding: 9px 0; min-width: 0; }
.ch-dlg-wrap .ch-facts dt { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ch-dlg-wrap .ch-facts dd { font-size: 14px; margin-top: 3px; overflow-wrap: anywhere; }
.ch-dlg-wrap .ch-dlg-form { margin-top: 12px; font-size: 13.5px; color: var(--text-2); line-height: 1.5; }
.ch-dlg-wrap .ch-dlg-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; margin-top: 12px; }
.ch-dlg-wrap .ch-dlg-links a { min-height: 44px; display: inline-flex; align-items: center; }
.ch-dlg-wrap .ch-src-link { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--sky); }
.ch-dlg-wrap .ch-src-link:hover { color: var(--gold); }
.ch-dlg-wrap .ch-dlg-co { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.ch-dlg-wrap .ch-dlg-con { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 8px; }
.ch-dlg-wrap .ch-dlg-con b { font-weight: 500; font-size: 16px; }
.ch-dlg-wrap .ch-dlg-con small { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.ch-dlg-wrap .ch-dlg-when { margin-top: 8px; font-family: var(--font-mono); font-size: 11.5px; color: var(--sky); }
.ch-dlg-wrap .ch-thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.ch-dlg-wrap .ch-thumb { display: grid; gap: 6px; width: 120px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.ch-dlg-wrap .ch-thumb img { width: 120px; height: auto; border-radius: 8px; border: 1px solid var(--line-2); background: rgba(255, 255, 255, .04); }
.ch-dlg-wrap .ch-thumb.is-text { min-height: 44px; place-items: center; border: 1px solid var(--line-2); border-radius: 8px; }
.ch-dlg-wrap .ch-thumb:hover { color: var(--gold); }

/* ------------------------------------------------------------------ widths */
@media (max-width: 1420px) {
  .ch-root .ch-scope-t .ch-full { display: none; }
  .ch-root .ch-scope-t .ch-short { display: inline; }
}
@media (max-width: 1320px) {
  .ch-root .ch-wk { grid-template-columns: minmax(0, 1fr) minmax(0, 160px) minmax(0, 1fr); gap: var(--ch-2); }
  .ch-root .ch-wk-r, .ch-root .ch-wk-b { padding: 0 6px; gap: 6px; }
  /* Narrow tiles give their titles the room: a plate's width and a date column as wide as "in 14 days". */
  .ch-root .ch-mini .ch-mini-b { grid-template-columns: 46px minmax(0, 1fr) 66px; }
  .ch-root .ch-mini-tm .ch-mini-b { grid-template-columns: 46px minmax(0, 1fr) 60px; }
  .ch-root .ch-mini-l .ch-plate, .ch-root .ch-mini-l .form, .ch-root .ch-mini-l .ch-badge { width: 46px; }
  .ch-root .ch-mini-l .ch-ring { margin-left: 3px; }
}
@media (max-width: 1200px) {
  .ch-root .ch-ctrl { grid-template-columns: minmax(0, 1fr) auto; }
  .ch-root .ch-ctrl-c { grid-column: 1 / -1; grid-row: 2; justify-content: center; }
  .ch-root .ch-ctrl-r { grid-column: 2; }
  .ch-root .ch-switch-l { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ch-root .ch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ch-root .ch-tile { grid-column: span 1; }
  .ch-root .ch-t-today, .ch-root .ch-t-week { grid-column: 1 / -1; }
  .ch-root .ch-t-today { order: -1; }
  .ch-root .ch-orbit-grid { grid-template-columns: minmax(0, 1fr); }
  .ch-root .ch-orbit-l { position: static; }
  .ch-root .ch-stage { max-width: 560px; margin-bottom: var(--ch-4); }
  .ch-root .ch-split { grid-template-columns: minmax(0, 1fr); }
  .ch-root .ch-split .ch-forms { order: -1; }
  .ch-root .ch-wk { grid-template-columns: minmax(0, 1fr) minmax(0, 200px) minmax(0, 1fr); gap: var(--ch-4); }
}
@media (max-width: 720px) {
  .ch-root .ch-state { display: none; }
  .ch-root .ch-ctrl { grid-template-columns: minmax(0, 1fr); }
  .ch-root .ch-ctrl-l { display: none; }
  .ch-root .ch-ctrl-r { grid-row: 1; grid-column: 1; justify-self: stretch; }
  .ch-root .ch-ctrl-c { grid-row: 2; grid-column: 1; justify-content: space-between; gap: var(--ch-2); }
  .ch-root .ch-range { font-size: 13px; letter-spacing: .08em; min-width: 0; }
  .ch-root .ch-yr { display: none; }
  .ch-root .ch-search { flex: 1 1 auto; width: auto; }
  /* The switcher scrolls sideways on a phone; the page itself never does. */
  .ch-root .ch-switch { margin: -4px calc(-1 * var(--pad, 16px)) 0; padding: 4px var(--pad, 16px) 6px; scroll-padding-inline: var(--pad, 16px); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .ch-root .ch-switch::-webkit-scrollbar { display: none; }
  .ch-root .ch-switch-l { display: flex; gap: var(--ch-2); width: max-content; }
  .ch-root .ch-switch-l li { flex: none; width: 168px; scroll-snap-align: start; }
  .ch-root .ch-scope { min-height: 60px; padding: 6px 10px 6px 8px; gap: 2px var(--ch-2); }
  .ch-root .ch-grid { grid-template-columns: minmax(0, 1fr); }
  .ch-root .ch-tile, .ch-root .ch-t-today, .ch-root .ch-t-week { grid-column: 1 / -1; }
  .ch-root .ch-minis.ch-cols { grid-template-columns: minmax(0, 1fr); }
  .ch-root .ch-wk { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ch-root .ch-wk-dial { grid-column: 1 / -1; grid-row: 1; max-width: 220px; }
  .ch-root .ch-view-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  /* Tap targets of 40 px or more: the tile openers, the week rows and the filings link. */
  .ch-root .ch-open { display: inline-flex; align-items: center; min-height: 40px; }
  .ch-root .ch-wk-r, .ch-root .ch-wk-b { min-height: 40px; }
  .ch-root .ch-link { min-height: 40px; }
  .ch-root .ch-view-head .prov { justify-content: flex-start; text-align: left; }
  .ch-root .ch-filings th:first-child, .ch-root .ch-filings .fm { width: 64px; }
  .ch-root .ch-filings th.r, .ch-root .ch-filings .tm { width: 84px; white-space: nowrap; }
  .ch-root .ch-filings .tm .sep { display: none; }
  .ch-root .ch-filings .tm .dy, .ch-root .ch-filings .tm .tt { display: block; }
  .ch-dlg-wrap { padding: 10px; align-items: end; }
  .ch-dlg-wrap .ch-dlg { padding: 20px 18px 18px; max-height: calc(100vh - 20px); }
  .ch-dlg-wrap .ch-facts { grid-template-columns: minmax(0, 1fr); }
  .ch-dlg-wrap h2 { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ch-dlg-wrap .ch-dlg { animation: none; }
  .ch-root .ch-content.ch-fade { animation: none; }
  .ch-root .ch-scope, .ch-root .ch-tile, .ch-root .ch-cue, .ch-root .ch-dial-z { transition: none; }
}

/* ------------------------------------------------------------------ fine points */
/* A timed row's right column holds a time and its zone on one line ("12:30 UTC", "All day"). */
.ch-root .ch-mini-tm .ch-mini-b { grid-template-columns: 52px minmax(0, 1fr) 60px; }
.ch-root .ch-mini-tm .ch-mini-r { display: flex; justify-content: flex-end; align-items: baseline; gap: var(--ch-1); }
/* The Today (and Matches) tile keeps two columns of rows only where a title such as "Consumer Price Index" fits on one
   line beside its plate and time; below that the same rows stand in one column, so no title or meta line wraps. */
@media (min-width: 1421px) {
  .ch-root .ch-minis.ch-cols { column-gap: var(--ch-4); }
  .ch-root .ch-cols .ch-mini .ch-mini-b { grid-template-columns: 44px minmax(0, 1fr) 60px; gap: var(--ch-2); }
  .ch-root .ch-cols .ch-mini-l .ch-plate, .ch-root .ch-cols .ch-mini-l .form, .ch-root .ch-cols .ch-mini-l .ch-badge { width: 44px; padding-left: 2px; padding-right: 2px; }
}
@media (max-width: 1420px) {
  .ch-root .ch-minis.ch-cols { grid-template-columns: minmax(0, 1fr); }
}
/* A three-digit centre figure keeps clear of the ring. */
.ch-root .ch-ring-lg.ch-ring-3 b { font-size: 16px; }
/* Common forms in compact rows: the form badge beside its one-line meaning. */
.ch-root .ch-forms .forms { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: var(--ch-2) var(--ch-3); align-items: baseline; }
.ch-root .ch-forms .forms dt, .ch-root .ch-forms .forms dd { margin: 0; }
.ch-root .ch-forms .forms dt .form { min-width: 0; width: 100%; font-size: 10px; padding: 2px 4px; }
.ch-root .ch-forms .forms dd { font-size: 13px; line-height: 1.45; color: var(--text-2); }
.ch-root .ch-forms:not([open]) { padding-top: var(--ch-1); padding-bottom: var(--ch-1); }
/* Without subgrid a tile stacks its parts and pins the footer to its foot. */
@supports not (grid-template-rows: subgrid) {
  .ch-root .ch-tile { display: flex; flex-direction: column; }
  .ch-root .ch-tile-b { flex: 1 1 auto; }
  .ch-root .ch-foot { margin-top: auto; }
}

/* Space held before the agenda is drawn, so the credits line and the footer do not jump when it arrives. The rule
   ends when the agenda (or a failure message) fills the root. */
@media (scripting: enabled) {
  .ch-root:empty { min-height: 900px; }
}
