/* The workspace (app.html) as a research terminal: neutral near-black or paper ground,
   hairline panels with title bars, dense rows, and a monospace face for every figure and
   symbol code. Cobalt marks what is selected or interactive; amber marks symbol codes and
   group labels; green and red mark direction only. Loaded after next.css, equities.css and
   the page's inline styles, so it has the last word on the workspace. */
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('/static/ibm-plex-mono-400.woff2?v=08949f72') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('/static/ibm-plex-mono-500.woff2?v=01d28544') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url('/static/ibm-plex-mono-600.woff2?v=0d1f0b8d') format('woff2'); }

/* ── Tokens (on html, so the charts' cssVar() and the page ground agree) ── */
html:has(body.workbench) {
  --ground: #F1F2F4;
  --surface: #FFFFFF;
  --surface-2: #F5F6F8;
  --surface-hover: #EBEEF4;
  --ink: #0A0C10;
  --ink-2: #1D2129;
  --muted: #474C57;
  --rule: #D6D9DF;
  --rule-soft: #E7E9ED;
  --rule-strong: #B8BDC7;
  --brand-wash: #E7ECFD;
  --code: #8A4B00;
  --chart-grid: #E2E4E9;
  --shadow: 0 10px 28px -14px rgba(10, 12, 16, 0.35);
  --mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, monospace;
  --r: 2px;
  --workspace-header: 44px;
  --status-bar: 26px;
}
html[data-theme="dark"]:has(body.workbench) {
  --ground: #050608;
  --surface: #0B0D10;
  --surface-2: #111418;
  --surface-hover: #181C22;
  --ink: #ECEEF1;
  --ink-2: #CDD1D8;
  --muted: #9BA2AD;
  --rule: #1D2128;
  --rule-soft: #15181D;
  --rule-strong: #2B313B;
  --brand: #5B8CFF;
  --brand-wash: #0F1A36;
  --pos: #2FD08A;
  --neg: #FF5D6C;
  --code: #F5A83B;
  --chart-line: #5B8CFF;
  --chart-band: rgba(91, 140, 255, 0.16);
  --chart-grid: #20252D;
  --series-0: #5B8CFF;
  --shadow: 0 14px 36px -14px rgba(0, 0, 0, 0.95);
}

/* ── Base type ── */
body.workbench { --label: 0.07em; font-size: 13px; line-height: 1.45; background-image: none; padding-bottom: var(--status-bar); }
.workbench :is(.num, .mono, .chg, .code, td.r, kbd, .kbd) { font-family: var(--mono); font-variant-numeric: tabular-nums; font-feature-settings: "zero" 0; }
/* The one label style: column heads, panel titles, field names. */
.workbench :is(.eyebrow, .measure-label, .facts dt, .figure .unit, .confidence-metric dt, .eq-fact dt, .eq-kicker, .status-kicker) {
  font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; color: var(--muted);
}
.workbench .headline, .workbench .overview-heading .headline { font-size: 20px; font-weight: 600; line-height: 1.2; letter-spacing: -0.012em; }
.workbench .small { font-size: 12px; }
.workbench .prose, .workbench .standfirst { font-size: 13px; font-weight: 400; line-height: 1.6; color: var(--ink-2); max-width: 78ch; }
.workbench .block .prose { font-size: 13px; }
.workbench ::selection { background: var(--brand); color: #FFFFFF; }

/* ── Controls ── */
.workbench .btn { border-radius: var(--r); font-size: 12px; font-weight: 600; padding: 6px 12px; background: var(--surface); border-color: var(--rule-strong); transition: background .12s ease, color .12s ease, border-color .12s ease; }
.workbench .btn:hover { background: var(--surface-hover); border-color: var(--brand); color: var(--ink); }
.workbench .btn-sm { min-height: 26px; padding: 3px 10px; font-size: 11px; letter-spacing: 0.02em; }
.workbench .btn[aria-pressed="true"] { color: var(--ink); border-color: var(--brand); background: var(--brand-wash); }
.workbench .tag { border-radius: var(--r); padding: 1px 6px; font-size: 11px; font-weight: 600; letter-spacing: 0.02em; }
.workbench .text-button, .text-button { border: 0; padding: 6px 4px; background: transparent; color: var(--brand); font-size: 11px; font-weight: 600; cursor: pointer; }
.workbench :is(input, select) { border-radius: var(--r); }

/* ── Top bar ── */
.workbench .site-nav { min-height: var(--workspace-header); height: var(--workspace-header); padding: 0 12px; gap: 14px; background: var(--surface); border-bottom: 1px solid var(--rule-strong); -webkit-backdrop-filter: none; backdrop-filter: none; }
.workbench .wordmark { flex-shrink: 0; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.workbench .wordmark img { width: 24px; height: 24px; padding: 1px; border-width: 1px; border-radius: var(--r); }
.workbench .site-nav .search { flex: 1 1 420px; max-width: 640px; }
.workbench .search input { height: 30px; padding: 0 5.5rem 0 2rem; font-family: var(--mono); font-size: 12px; background: var(--ground); border: 1px solid var(--rule-strong); border-radius: var(--r); }
.workbench .search input::placeholder { color: var(--muted); }
.workbench .search input:focus { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.workbench .search .glass { left: 0.6rem; width: 13px; height: 13px; }
.workbench .search kbd { right: 0.4rem; padding: 0 5px; font-size: 11px; white-space: nowrap; border-radius: var(--r); background: var(--surface); }
.workbench .site-nav .nav-links { gap: 2px; height: 100%; }
.workbench .site-nav .nav-links a { display: inline-flex; align-items: center; height: 100%; padding: 0 10px; font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); border-bottom: 2px solid transparent; border-top: 2px solid transparent; }
.workbench .site-nav .nav-links a:hover { color: var(--ink); background: var(--surface-hover); }
.workbench .site-nav .nav-links a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--brand); }
.workbench .site-nav .icon-btn { width: 28px; height: 28px; margin-left: 8px; border-radius: var(--r); background: transparent; }
.workbench .search-results { top: calc(100% + 2px); border-radius: var(--r); border-color: var(--rule-strong); box-shadow: var(--shadow); padding: 0; }
.workbench .search-results li[role=option] { padding: 6px 10px; border-bottom: 1px solid var(--rule-soft); }
.workbench .search-results li[aria-selected="true"], .workbench .search-results li:hover { background: var(--brand-wash); }
.workbench .search-results .code { color: var(--code); font-size: 12px; font-weight: 600; }
.workbench .search-results .name { font-size: 12.5px; }
.workbench .search-results .where { color: var(--muted); font-size: 11px; }

/* ── Rail: the reader's own lists first, a compact market explorer below, the account at the foot ── */
.workbench .app { grid-template-columns: var(--rail-w, 248px) minmax(0, 1fr); min-height: calc(100dvh - var(--workspace-header) - var(--status-bar)); }
.workbench .rail { top: var(--workspace-header); height: calc(100dvh - var(--workspace-header) - var(--status-bar)); scrollbar-width: thin; background: var(--surface); border-right: 1px solid var(--rule-strong); }
.workbench .rail-note { font-size: 11px; line-height: 1.55; padding: 8px 12px 12px; }
.rail-add { flex: none; width: 20px; height: 20px; padding: 0; background: transparent; border: 1px solid var(--rule-strong); border-radius: 2px; color: var(--muted); font: 14px/1 var(--sans); cursor: pointer; }
.rail-add:hover { color: var(--brand); border-color: var(--brand); }
.workbench .watch-item { display: flex; align-items: center; min-width: 0; border-bottom: 1px solid var(--rule-soft); }
.workbench .watch-item .row { flex: 1; min-width: 0; padding: 5px 6px 5px 12px; gap: 8px; border-left: 0; }
.workbench .row[aria-current="true"] { box-shadow: inset 2px 0 var(--brand); }
.workbench .watch-item .last { font-size: 12px; font-weight: 500; }
.workbench .watch-item .chg { font-size: 10.5px; line-height: 1.35; }
.workbench .watch-item .code { font-size: 11px; font-weight: 600; color: var(--code); }
.workbench .watch-item .nm { font-size: 11px; }
.unpin { flex: 0 0 22px; height: 24px; margin-right: 6px; padding: 0; border: 0; border-radius: 2px; background: transparent; color: var(--muted); font-size: 16px; cursor: pointer; }
.unpin:hover, .unpin:focus-visible { color: var(--neg); background: var(--surface-hover); }
@media (hover: hover) {
  .workbench .watch-item .unpin { opacity: 0; }
  .workbench .watch-item:hover .unpin, .workbench .watch-item:focus-within .unpin { opacity: 1; }
}
.workbench .viewed-link { padding: 5px 12px; font-size: 12px; border-bottom: 1px solid var(--rule-soft); }
.workbench .viewed-link .code { color: var(--code); }
.workbench .viewed-link:hover { background: var(--surface-hover); text-decoration: none; }
.account-mark { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #FFFFFF; background: var(--brand); font: 600 12px/1 var(--sans); }
.account-meta { display: flex; align-items: center; gap: 6px; margin: 8px 0 0; font-size: 11px; color: var(--muted); }
.account-tag { padding: 0 6px; border: 1px solid var(--rule-strong); border-radius: var(--r); color: var(--ink); font: 600 10px/16px var(--mono); }

/* ── Rail width and fold ──
   workspace-rail.js, loaded without defer in the head of app.html, sets --rail-w and
   [data-rail-collapsed] on <html> before first paint and moves them from the edge beside the
   rail. The edge shares the rail's grid cell, so it follows the width with no second measure.
   Folded, the rail becomes a strip of icons (shell.css, with the fold button in the rail's
   header). Below 901px the rail lives in the navigation sheet. */
.rail-edge { display: none; }
@media (width > 900px) {
  .workbench .app > .rail { grid-column: 1; grid-row: 1; }
  .workbench .app > .stage { grid-column: 2; grid-row: 1; }
  .rail-edge { display: block; position: sticky; z-index: 6; top: var(--workspace-header); grid-column: 1; grid-row: 1; justify-self: end; align-self: start; width: 0; height: calc(100dvh - var(--workspace-header) - var(--status-bar)); }
  :root[data-rail-collapsed]:not(.rail-resizing) .rail-resize { display: none; }
}
.rail-resize { position: absolute; top: 0; bottom: 0; right: -5px; width: 10px; cursor: col-resize; touch-action: none; }
.rail-resize::after { content: ""; position: absolute; top: 0; bottom: 0; left: 4px; width: 2px; background: transparent; }
.rail-resize:hover::after { background: var(--rule-strong); }
.rail-resize:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.rail-resize:focus-visible::after, .rail-resizing .rail-resize::after { background: var(--brand); }
.rail-resizing, .rail-resizing * { cursor: col-resize !important; -webkit-user-select: none; user-select: none; }
@media (pointer: coarse) {
  .rail-resize { right: -10px; width: 20px; }
  .rail-resize::after { left: 9px; }
}
@media (prefers-reduced-motion: no-preference) {
  .rail-resize::after { transition: background .12s ease; }
}

/* ── Stage and context bar ── */
.workbench .stage { max-width: none; padding: 0 16px 28px; }

/* ── Status bar ── */
.term-status { position: fixed; inset: auto 0 0; z-index: 14; display: flex; align-items: center; gap: 18px; height: var(--status-bar); padding: 0 12px; background: var(--surface-2); border-top: 1px solid var(--rule-strong); white-space: nowrap; overflow: hidden; }
.term-status span { display: inline-flex; align-items: center; gap: 6px; }
.term-status kbd { padding: 0 4px; font: 500 11px var(--mono); letter-spacing: 0; color: var(--ink); background: var(--surface); border: 1px solid var(--rule-strong); border-radius: 2px; }
.term-status .term-note { margin-left: auto; font-weight: 500; }
.term-status .term-live::before { content: ""; width: 6px; height: 6px; background: var(--pos); }

/* ── Market board ── */
.workbench .overview-heading { align-items: baseline; }
.workbench .overview-date { margin: 0; font: 11px var(--mono); color: var(--muted); }
.workbench .overview-intro { margin: 4px 0 12px; font-size: 12.5px; line-height: 1.5; max-width: 78ch; }
.monitor-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; }
.monitor-search { display: flex; gap: 6px; align-items: center; height: 28px; min-width: 180px; max-width: 300px; flex: 1; padding: 0 8px; border: 1px solid var(--rule-strong); background: var(--surface); border-radius: 2px; }
.monitor-search:focus-within { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.monitor-search svg { width: 13px; height: 13px; stroke: var(--muted); fill: none; stroke-width: 1.7; flex-shrink: 0; }
.monitor-search input { width: 100%; min-width: 0; border: 0; outline: none; background: transparent; font-size: 12px; }
.monitor-select { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; }
.monitor-select select { height: 28px; padding: 0 8px; border: 1px solid var(--rule-strong); border-radius: 2px; color: var(--ink); background: var(--surface); font: 500 12px var(--sans); letter-spacing: 0; text-transform: none; }
.monitor-caption { margin-left: auto; color: var(--muted); font: 11px var(--mono); }
.catalog-open { margin-left: auto; font-size: 11px; font-weight: 600; color: var(--brand); white-space: nowrap; text-underline-offset: 3px; }
.workbench .overview-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: -1px; }
.workbench .group-filters { gap: 0; }
.workbench .group-filters a { padding: 5px 12px; margin-right: -1px; border: 1px solid var(--rule-strong); border-radius: 0; font-size: 11px; font-weight: 600; letter-spacing: 0.03em; color: var(--muted); background: var(--surface-2); }
.workbench .group-filters a:hover { color: var(--ink); background: var(--surface-hover); }
.workbench .group-filters a[aria-current=page] { position: relative; color: var(--ink); background: var(--surface); border-color: var(--rule-strong); box-shadow: inset 0 2px 0 var(--brand); }
.workbench .group-filters a span { font: 11px var(--mono); opacity: 1; color: var(--muted); }
.workbench .board-summary { margin: 0 0 0 auto; font: 11px var(--mono); }
.workbench .market-sheet { border: 1px solid var(--rule-strong); border-radius: 0; box-shadow: none; max-height: min(72vh, 860px); overflow: auto; scrollbar-width: thin; }
.workbench .market-sheet .board-table { margin: 0; }
.workbench .table th { font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); background: var(--surface-2); border-bottom: 1px solid var(--rule-strong); padding: 6px 10px; white-space: nowrap; }
.workbench .table td { padding: 5px 10px; font-size: 12.5px; border-bottom: 1px solid var(--rule-soft); }
.workbench .table td.r, .workbench .table td.num { font-family: var(--mono); font-size: 12.5px; }
.workbench .market-sheet .board-table > thead { position: sticky; top: 0; z-index: 3; }
.workbench .market-sheet .board-table > thead th { padding: 6px 12px; }
.board-table th button { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.board-table th button:hover { color: var(--ink); }
.board-table th button span { margin-left: 4px; color: var(--brand); }
.workbench .market-sheet .board-table td { padding: 3px 12px; font-size: 12.5px; vertical-align: middle; }
.workbench .board-table td:first-child a { font-weight: 600; text-decoration: none; }
.workbench .board-table a:hover { color: var(--ink); text-decoration: none; }
.workbench .market-sheet .board-table td:first-child { width: 34%; }
.workbench .board-table small, .workbench .replay-table small { font: 11px/1.35 var(--mono); color: var(--muted); }
.workbench .board-table td:first-child small { color: var(--code); font-weight: 500; }
.workbench .board-table td.pos, .workbench .board-table td.neg { font-weight: 600; }
.workbench .market-sheet .board-table .grp th { padding: 4px 12px; background: var(--ground); border-block: 1px solid var(--rule); text-transform: none; letter-spacing: 0; }
.workbench .group-heading { gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: var(--label); text-transform: uppercase; color: var(--code); }
.workbench .group-count { font: 11px var(--mono); letter-spacing: 0; text-transform: none; color: var(--muted); }
.workbench .sector-mark { height: 10px; width: 3px; border-radius: 0; background: var(--code); }
.workbench .country-mark { width: 24px; height: 16px; border-radius: 0; border-color: var(--rule-strong); background: var(--surface); color: var(--code); font: 600 11px var(--mono); }
.workbench .board-table tr:not(.grp):has(a):hover { background: var(--surface-hover); box-shadow: inset 2px 0 var(--brand); }
.workbench .mini { max-width: 140px; height: 26px; }
.workbench .forecast-pending { font: 11px var(--sans); }
.workbench .board-footnote { margin-top: 8px; font-size: 11px; max-width: 110ch; }

/* ── Blocks: a title bar over a hairline panel ── */
.workbench .block { margin-top: 14px; padding: 0; border: 1px solid var(--rule-strong); background: var(--surface); }
.workbench .block > h2, .workbench .block > summary, .workbench .series-details > .disclosure > summary, .workbench .series-reading > h2, .workbench .eq-block > h2, .workbench .eq-section-head {
  display: flex; align-items: center; gap: 10px; margin: 0; padding: 6px 12px; min-height: 30px; background: var(--surface-2); border-bottom: 1px solid var(--rule);
  font-size: 11px; font-weight: 700; letter-spacing: var(--label); text-transform: uppercase; color: var(--ink);
}
.workbench .block > h2::before, .workbench .series-reading > h2::before, .workbench .eq-block > h2::before, .workbench .eq-section-head::before { content: ""; flex: 0 0 3px; height: 11px; background: var(--code); }
.workbench details:not([open]) > summary { border-bottom-color: transparent; }
.workbench :is(.block, .series-details > .disclosure) > summary { cursor: pointer; list-style: none; }
.workbench :is(.block, .series-details > .disclosure) > summary::-webkit-details-marker { display: none; }
.workbench :is(.block, .series-details > .disclosure) > summary::after { content: "+"; order: 9; margin-left: auto; font: 500 14px/1 var(--mono); color: var(--muted); }
.workbench :is(.block, .series-details > .disclosure)[open] > summary::after { content: "\2212"; }
.workbench :is(.block, .series-details > .disclosure) > summary:hover { background: var(--surface-hover); }
.workbench .block > summary span, .workbench .disclosure summary span { font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); margin: 0; }
.workbench .block > :is(p, dl, .prose, #comparisonBlock, #modelsBlock) { margin: 10px 12px; }
.workbench .block .table-scroll { margin: 0; }
.workbench #modelsBlock { margin: 0; }
.workbench #modelsBlock > p { margin: 10px 12px; }
.workbench .outlook-grid { margin: 0; border-top: 0; }
.workbench .outlook-card { padding: 6px 12px; border-bottom: 1px solid var(--rule-soft); }
.workbench .outlook-card:last-child { border-bottom: 0; }
.workbench .outlook-card summary { font-size: 12.5px; font-weight: 600; }
.workbench .outlook-card summary span, .workbench .outlook-card summary small { font-size: 11px; font-weight: 500; }
.workbench .outlook-summary { font-size: 12.5px; }

/* ── Ask desk: a panel beside the page that keeps clear of its text ──
   From 1200px the panel takes its own column: .app gives up the panel's width, so the page
   reflows beside it. Below that it opens as a sheet over a scrim while the page behind is
   inert. Its bottom edge reads the status bar's height and lift, so it ends above the bar. */
html:has(body.workbench) { --ask-w: clamp(340px, 28vw, 440px); --ask-gap: 10px; }
.ask-launch { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 13px 0 10px; font: 600 12.5px var(--sans); color: var(--ink); background: var(--brand-wash); border: 1px solid transparent; border-radius: var(--pill, 2px); cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease; }
.ask-launch[hidden] { display: none; }
.ask-launch:hover { border-color: var(--glow-b, var(--brand)); }
.ask-launch[aria-expanded="true"] { color: #FFFFFF; background: var(--accent, var(--brand)); }
.ask-launch:focus-visible, .ask-close:focus-visible, .ask-tool:focus-visible, .ask-send:focus-visible, .ask-copy:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
:is(.ask-launch, .ask-close, .ask-send) svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.askdock { position: fixed; z-index: 13; top: calc(var(--workspace-header) + var(--ask-gap)); right: 12px; bottom: calc(var(--status-bar) + var(--status-lift, 0px) + var(--ask-gap)); width: var(--ask-w); display: flex; flex-direction: column; color: var(--ink); background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-lg, 4px); box-shadow: var(--shadow); animation: ask-panel-in .2s ease-out; }
.askdock[hidden], .askdock [hidden] { display: none; }
@media (min-width: 1200px) { body.ask-open .app { margin-right: calc(var(--ask-w) + 12px); } }
@media (max-width: 1199.98px) { .askdock { width: min(440px, calc(100vw - 24px)); box-shadow: 0 0 0 100vmax color-mix(in srgb, var(--ground) 76%, transparent), var(--shadow); } }

/* Header: what the panel is, which page it reads, what is left today, close. */
.ask-head { flex: none; display: grid; gap: 8px; padding: 12px 12px 12px 18px; border-bottom: 1px solid var(--rule-soft); }
.ask-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ask-title { display: inline-flex; align-items: center; gap: 9px; margin: 0 auto 0 0; font: 650 14px/1.3 var(--sans); letter-spacing: -0.005em; text-transform: none; color: var(--ink); }
.ask-title::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: var(--pill, 999px); background: var(--accent, var(--brand)); }
.ask-subject { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 2px 10px; font: 600 11.5px/1.5 var(--mono); color: var(--code); background: var(--surface-2); border-radius: var(--pill, 2px); }
.ask-allow { flex: none; margin-left: auto; padding-right: 6px; font: 500 11px var(--mono); color: var(--muted); white-space: nowrap; }
.ask-tool { height: 28px; padding: 0 12px; font: 500 12px var(--sans); color: var(--muted); background: transparent; border: 1px solid var(--rule); border-radius: var(--pill, 2px); cursor: pointer; }
.ask-tool:hover { color: var(--ink); border-color: var(--rule-strong); }
.ask-close { display: inline-grid; place-items: center; flex: none; width: 30px; height: 30px; padding: 0; color: var(--muted); background: transparent; border: 0; border-radius: var(--pill, 2px); cursor: pointer; }
.ask-close:hover { color: var(--ink); background: var(--surface-hover); }

/* Body: the thread, or the suggestions while it is empty. It alone scrolls. */
.ask-body { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 18px; padding: 18px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.ask-thread { display: flex; flex-direction: column; gap: 24px; }
.ask-entry { display: grid; gap: 12px; animation: ask-in .18s ease-out; }
.ask-q { justify-self: end; display: grid; justify-items: end; gap: 4px; max-width: 88%; }
.ask-q-text { margin: 0; padding: 9px 13px; font-size: 13.5px; line-height: 1.5; color: var(--ink); background: var(--brand-wash); border-radius: 16px 16px 4px 16px; overflow-wrap: anywhere; }
.ask-time { font: 500 10.5px var(--mono); color: var(--muted); }
.ask-a { display: grid; gap: 10px; min-width: 0; }
.ask-prose p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.62; text-wrap: pretty; overflow-wrap: anywhere; }
.ask-prose p:last-child { margin-bottom: 0; }
.ask-prose .num { font-size: 12.5px; font-weight: 500; color: var(--ink); background: var(--surface-2); padding: 0 3px; border-radius: 3px; }
.ask-foot { display: flex; align-items: center; gap: 12px; margin: 0; padding-top: 10px; font: 500 11px var(--mono); color: var(--muted); border-top: 1px solid var(--rule-soft); }
.ask-source { min-width: 0; overflow-wrap: anywhere; }
.ask-copy { flex: none; margin-left: auto; padding: 0; font: inherit; color: var(--muted); background: transparent; border: 0; border-bottom: 1px dotted var(--rule-strong); cursor: pointer; }
.ask-copy:hover { color: var(--ink); }
.ask-step { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 12.5px; color: var(--muted); }
.ask-step::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: var(--pill, 999px); background: var(--accent, var(--brand)); animation: ask-pulse 1s ease-in-out infinite; }
.ask-wait { display: grid; gap: 8px; }
.ask-wait span { height: 9px; border-radius: 3px; background: linear-gradient(90deg, var(--surface-2) 25%, var(--surface-hover) 50%, var(--surface-2) 75%); background-size: 200% 100%; animation: ask-sweep 1.1s linear infinite; }
.ask-wait span:nth-child(1) { width: 92%; } .ask-wait span:nth-child(2) { width: 78%; } .ask-wait span:nth-child(3) { width: 46%; }
.ask-error { margin: 0; padding: 10px 12px; font-size: 12.5px; line-height: 1.5; color: var(--ink); background: color-mix(in srgb, var(--neg) 9%, transparent); border: 1px solid color-mix(in srgb, var(--neg) 38%, transparent); border-radius: var(--r, 2px); }
.ask-start { margin-top: auto; display: grid; gap: 10px; }
.ask-hello { margin: 0 0 6px; font: 650 16px/1.35 var(--sans); letter-spacing: -0.01em; color: var(--ink); overflow-wrap: anywhere; }
.ask-label { margin: 0; font: 600 11px var(--sans); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); }
.ask-suggestions { display: grid; gap: 10px; }
.ask-suggest { display: grid; gap: 8px; }
.ask-chip { display: flex; align-items: flex-start; gap: 10px; width: 100%; min-height: 40px; padding: 10px 12px; font: 500 13px/1.45 var(--sans); color: var(--ink); text-align: left; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r, 2px); cursor: pointer; transition: border-color .12s ease, background .12s ease; }
.ask-chip:hover, .ask-chip:focus-visible { border-color: var(--glow-b, var(--brand)); background: var(--surface-hover); outline: none; }
.ask-chip kbd { flex: none; display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; font: 500 11px var(--mono); color: var(--muted); background: var(--surface-2); border: 1px solid var(--rule); border-radius: 6px; }
.askdock.is-busy .ask-chip { pointer-events: none; opacity: .5; }
.ask-locked { display: grid; justify-items: start; gap: 8px; padding: 16px; background: var(--surface-2); border-radius: var(--r, 2px); }
.ask-locked-title { margin: 0; font: 650 14px/1.35 var(--sans); color: var(--ink); }
.ask-locked-note { margin: 0 0 4px; font-size: 12.5px; color: var(--muted); }
.ask-locked-note:empty { display: none; }

/* Composer: one card holding the question and its send control. */
.ask-composer { flex: none; margin: 0 12px; background: var(--surface); border: 1px solid var(--rule-strong); border-radius: var(--r-lg, 4px); transition: border-color .15s ease, box-shadow .15s ease; }
.ask-composer:focus-within { border-color: var(--glow-b, var(--brand)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--glow-b, var(--brand)) 18%, transparent); }
.ask-composer textarea { display: block; width: 100%; min-height: 50px; max-height: 168px; margin: 0; padding: 12px 16px 4px; font: 13.5px/1.5 var(--sans); color: var(--ink); caret-color: var(--brand); background: transparent; border: 0; border-radius: var(--r-lg, 4px) var(--r-lg, 4px) 0 0; outline: 0; resize: none; overflow-y: auto; }
.ask-composer textarea::placeholder { color: var(--muted); opacity: .85; }
.ask-compose-bar { display: flex; align-items: center; gap: 10px; padding: 6px 8px 8px 16px; }
.ask-hint { min-width: 0; font-size: 11px; color: var(--muted); }
.ask-hint kbd { padding: 0 4px; font: 500 10.5px var(--mono); color: var(--muted); background: var(--surface-2); border: 1px solid var(--rule); border-radius: 5px; }
.ask-send { flex: none; display: inline-grid; place-items: center; margin-left: auto; width: 32px; height: 32px; padding: 0; color: #FFFFFF; background: var(--accent, var(--brand)); border: 0; border-radius: var(--pill, 2px); cursor: pointer; box-shadow: 0 6px 16px -8px var(--glow-b, var(--brand)); }
.ask-send:disabled { cursor: default; color: var(--muted); background: var(--surface-2); box-shadow: none; }
.askdock.is-busy .ask-send svg { animation: ask-pulse 1s ease-in-out infinite; }
.ask-note { flex: none; margin: 0; padding: 10px 18px 14px; font-size: 11px; line-height: 1.5; color: var(--muted); }
.ask-note a { color: var(--brand); }
@media (max-width: 900px) {
  .askdock { top: var(--workspace-header); left: 0; right: 0; bottom: calc(49px + env(safe-area-inset-bottom)); width: auto; border-width: 1px 0; border-radius: 0; box-shadow: none; animation-name: ask-sheet-in; }
  .ask-composer textarea { font-size: 16px; }
  .ask-hint { display: none; }
  .ask-chip { min-height: 44px; }
}
@media (max-width: 600px) {
  .ask-launch { width: 34px; height: 34px; padding: 0; justify-content: center; }
  .ask-launch span { display: none; }
}
@keyframes ask-panel-in { from { opacity: 0; transform: translateX(12px); } }
@keyframes ask-sheet-in { from { opacity: 0; transform: translateY(12px); } }
@keyframes ask-sweep { to { background-position: -200% 0; } }
@keyframes ask-in { from { opacity: 0; transform: translateY(4px); } }
@keyframes ask-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .askdock, .ask-entry, .ask-wait span, .ask-step::before, .askdock.is-busy .ask-send svg { animation: none; } }

/* Forecast drivers: the top of the ask panel on a series page. Catalysts reuse the event
   badge; the three paths are told apart by a rule in the forecast, gain and loss tokens. */
.ask-drv { display: grid; gap: 10px; padding-bottom: 16px; border-bottom: 1px solid var(--rule-soft); }
.ask-drv .ask-label { display: flex; align-items: baseline; gap: 8px; }
.ask-drv-meta { margin-left: auto; font: 500 10.5px var(--mono); letter-spacing: 0; text-transform: none; color: var(--muted); }
.ask-drv-body { display: grid; gap: 10px; min-width: 0; }
.ask-drv-cta { display: grid; justify-items: start; gap: 8px; padding: 14px; background: var(--surface-2); border-radius: var(--r, 2px); }
.ask-drv-cta-head { margin: 0; font: 650 14px/1.35 var(--sans); color: var(--ink); }
.ask-drv-cta-sub { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.ask-drv-cta.is-error { background: color-mix(in srgb, var(--neg) 9%, transparent); }
.ask-drv-cta.is-error .ask-drv-cta-sub { color: var(--ink); }
.ask-drv-cta.is-limit { background: transparent; border: 1px solid var(--rule-strong); }
.ask-drv-frame { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--ink); text-wrap: pretty; }
.ask-drv-trails { margin: 0; padding: 8px 10px; font-size: 12px; line-height: 1.5; color: var(--ink); background: color-mix(in srgb, var(--neg) 9%, transparent); border-left: 2px solid var(--neg); }
.ask-drv-levels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--rule-soft); border: 1px solid var(--rule-soft); }
.ask-drv-levels div { display: grid; gap: 2px; padding: 7px 9px; background: var(--surface); }
.ask-drv-levels dt { font: 600 10px var(--sans); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); }
.ask-drv-levels dd { margin: 0; font: 500 12.5px var(--mono); color: var(--ink); overflow-wrap: anywhere; }
.ask-drv-sub { margin: 6px 0 0; padding-left: 8px; font: 650 12.5px/1.35 var(--sans); color: var(--ink); border-left: 2px solid var(--brand); }
.ask-drv-sub-upper { border-left-color: var(--pos); }
.ask-drv-sub-lower { border-left-color: var(--neg); }
.ask-drv-list { list-style: none; display: grid; gap: 0; margin: 0; padding: 0; }
.ask-drv-cat, .ask-drv-item { display: grid; gap: 3px; padding: 8px 0 8px 10px; border-bottom: 1px solid var(--rule-soft); outline: none; }
.ask-drv-list > :last-child { border-bottom: 0; }
.ask-drv-cat:is(:hover, :focus-visible) { background: var(--surface-hover); }
.ask-drv-cat:is(:hover, :focus-visible) .ev-badge { color: var(--surface); background: var(--brand); }
.ask-drv-cat.is-flash { animation: ask-drv-flash 1.2s ease-out; }
.ask-drv-when { display: flex; align-items: center; gap: 8px; font: 500 11.5px var(--mono); color: var(--muted); }
.ask-drv-when b { font-weight: 600; color: var(--ink); }
.ask-drv-when .ev-badge { width: 22px; color: var(--brand); border-color: var(--brand); }
.ask-drv-head, .ask-drv-cond { margin: 0; font-size: 13px; font-weight: 600; line-height: 1.4; color: var(--ink); overflow-wrap: anywhere; }
.ask-drv-cond { font-weight: 500; }
.ask-drv-why { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--muted); overflow-wrap: anywhere; }
.ask-drv-watch { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 7px; margin: 0; font-size: 12px; color: var(--ink); }
.ask-drv-watch a { color: var(--brand); text-decoration: none; border-bottom: 1px solid currentColor; }
.ask-drv-watch a:hover { color: var(--ink); }
.ask-drv-watch b { font-weight: 600; }
.ask-drv-tag { font: 600 10px var(--sans); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); }
.ask-drv-move { font: 500 11px var(--mono); color: var(--muted); }
.ask-drv-src { display: flex; flex-wrap: wrap; gap: 3px 12px; margin: 1px 0 0; font: 500 11px var(--mono); color: var(--muted); }
.ask-drv-src:empty { display: none; }
.ask-drv-src a { color: var(--brand); text-decoration: none; border-bottom: 1px dotted currentColor; }
.ask-drv-src a:hover { color: var(--ink); }
.ask-drv-none { margin: 0; padding-left: 10px; font-size: 12.5px; color: var(--muted); }
.ask-drv-note { margin: 4px 0 0; font-size: 11px; line-height: 1.5; color: var(--muted); }
.ask-drv-note .btn { margin-left: 6px; padding: 2px 8px; }
@keyframes ask-drv-flash { from { background: color-mix(in srgb, var(--brand) 20%, transparent); } }
@media (prefers-reduced-motion: reduce) { .ask-drv-cat.is-flash { animation: none; } }

/* ── Event research: chart flags and the list under the chart ── */
.chart .ev { cursor: pointer; outline: none; }
.chart .ev-stem { stroke: var(--code); stroke-width: 1; stroke-dasharray: 2 2; }
.chart .ev-pin { fill: var(--code); stroke: var(--surface); stroke-width: 1.5; }
.chart .ev-flag { fill: var(--surface); stroke: var(--code); stroke-width: 1; }
.chart .ev-mark { fill: var(--code); font: 600 10px var(--mono); pointer-events: none; }
.chart .ev-next .ev-stem { stroke: var(--brand); stroke-dasharray: 4 3; }
.chart .ev-next .ev-flag { stroke: var(--brand); }
.chart .ev-next .ev-mark { fill: var(--brand); }
.chart .ev:is(:hover, :focus-visible, .is-hot) .ev-flag { fill: var(--code); }
.chart .ev:is(:hover, :focus-visible, .is-hot) .ev-mark { fill: var(--surface); }
.chart .ev-next:is(:hover, :focus-visible, .is-hot) .ev-flag { fill: var(--brand); }
.chart .ev:is(:hover, :focus-visible, .is-hot) .ev-stem { stroke-dasharray: none; }
.chart-tip .e { max-width: 260px; margin-top: 2px; font-size: 12px; font-weight: 500; line-height: 1.4; white-space: normal; }
.workbench .events { margin-top: 12px; }
.workbench .events > h2 .events-meta { margin-left: auto; font: 500 11px var(--mono); letter-spacing: 0; text-transform: none; color: var(--muted); }
.ev-list { list-style: none; margin: 0; padding: 0; }
.ev-row { display: grid; grid-template-columns: 172px minmax(0, 1fr); gap: 4px 16px; padding: 10px 12px; border-bottom: 1px solid var(--rule-soft); outline: none; transition: background .12s ease; }
.ev-row:is(:hover, :focus-visible) { background: var(--surface-hover); }
.ev-row.is-flash { animation: ev-flash 1.2s ease-out; }
.ev-when { display: flex; align-items: center; gap: 8px; align-self: start; font: 500 12px var(--mono); white-space: nowrap; }
.ev-when b { font-weight: 600; color: var(--ink); }
.ev-badge { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 16px; font: 600 10px var(--mono); color: var(--code); background: var(--surface); border: 1px solid var(--code); }
.ev-row-next .ev-badge { color: var(--brand); border-color: var(--brand); }
.ev-row:is(:hover, :focus-visible) .ev-badge { color: var(--surface); background: var(--code); }
.ev-row-next:is(:hover, :focus-visible) .ev-badge { background: var(--brand); }
.ev-head { margin: 0; font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--ink); }
.ev-why { margin: 2px 0 0; max-width: 84ch; font-size: 12.5px; line-height: 1.55; color: var(--muted); }
.ev-src { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 5px 0 0; font: 500 11px var(--mono); color: var(--muted); }
.ev-src a { color: var(--brand); text-decoration: none; border-bottom: 1px dotted currentColor; }
.ev-src a:hover { color: var(--ink); }
.ev-conf::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 5px; background: var(--muted); }
.ev-conf-high::before { background: var(--pos); }
.ev-conf-medium::before { background: var(--code); }
.workbench .events .ev-sub { margin: 0; padding: 6px 12px; font: 600 11px var(--sans); letter-spacing: var(--label); text-transform: uppercase; color: var(--brand); background: var(--surface-2); border-block: 1px solid var(--rule); }
.ev-note { margin: 0; padding: 8px 12px 10px; font-size: 11px; line-height: 1.5; color: var(--muted); max-width: 120ch; }
.ev-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px; }
.ev-cta-head { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--ink); }
.ev-cta-sub { margin: 2px 0 0; max-width: 78ch; font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.ev-cta.is-error .ev-cta-sub { color: var(--neg); }
.workbench .btn.ev-run { flex: none; color: var(--ground); background: var(--code); border-color: var(--code); }
.workbench .btn.ev-run:hover { color: var(--ground); background: var(--code); filter: brightness(1.08); }
.ev-note .btn.ev-run { margin-left: 8px; padding: 2px 8px; }
.ev-actions { flex: none; display: flex; flex-wrap: wrap; gap: 8px; }
.ev-note .btn.ev-forward { margin-left: 8px; padding: 2px 8px; }
.ev-wait { display: grid; gap: 7px; padding: 12px; }
.ev-wait p { margin: 0 0 4px; font-size: 12.5px; color: var(--muted); }
.ev-wait span { height: 9px; background: linear-gradient(90deg, var(--surface-2) 25%, var(--surface-hover) 50%, var(--surface-2) 75%); background-size: 200% 100%; animation: ask-sweep 1.1s linear infinite; }
.ev-wait span:nth-of-type(1) { width: 88%; } .ev-wait span:nth-of-type(2) { width: 72%; } .ev-wait span:nth-of-type(3) { width: 40%; }
.workbench .eq-block:has(.eq-price-chart) { position: relative; }
@keyframes ev-flash { from { background: color-mix(in srgb, var(--code) 22%, transparent); } }
@media (max-width: 700px) { .ev-row { grid-template-columns: 1fr; } .ev-cta { flex-direction: column; align-items: flex-start; } }
@media (prefers-reduced-motion: reduce) { .ev-row.is-flash, .ev-wait span { animation: none; } }

/* ── Series view ── */
.workbench .crumbs { margin: 0 0 6px; gap: 4px 10px; }
.workbench .crumbs .eyebrow { color: var(--code); }
.workbench .series-title { justify-content: flex-start; align-items: center; gap: 6px 12px; }
.workbench .series-title .headline { max-width: 60ch; }
.workbench .series-title .code { padding: 1px 6px; font-size: 11px; font-weight: 600; color: var(--code); border: 1px solid var(--rule-strong); background: var(--surface); }
.workbench .series-actions { margin-top: 8px; gap: 4px; }
.workbench .headline-values { margin: 12px 0; padding: 0; gap: 0; border: 1px solid var(--rule-strong); background: var(--surface); align-items: stretch; }
.workbench .headline-values > div { flex: 1 1 260px; min-width: 0; padding: 10px 16px 10px 12px; border-right: 1px solid var(--rule); }
.workbench .headline-values > div:last-child { border-right: 0; }
.workbench .headline-values .figure { margin: 4px 0 2px; gap: 4px 10px; }
.workbench .figure .big, .workbench #endpointValue { font: 500 26px/1.15 var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.workbench .figure .chg { font-size: 13px; font-weight: 600; }
.workbench .asof { font-size: 11px; }
.workbench .status { border-radius: 0; border-color: var(--rule-strong); font-size: 12.5px; }
.workbench .panel { border: 1px solid var(--rule-strong); border-radius: 0; box-shadow: none; overflow: hidden; }
.workbench .panel-head { background: var(--surface-2); gap: 10px; padding: 5px 10px; border-bottom: 1px solid var(--rule); }
.workbench .legend { gap: 14px; font-size: 11px; font-weight: 500; color: var(--muted); }
.workbench .panel-body { padding: 10px 10px 0; }
/* The chart toolbar (chartview.js): groups divided by hairlines, one popover for its menus,
   the legend laid over the pane and the range strip under it. */
.chart-bar-wrap { position: relative; flex: 1 1 100%; min-width: 0; }
.chart-bar { display: flex; align-items: center; gap: 8px; min-width: 0; }
.cb-group { display: flex; align-items: center; gap: 4px; min-width: 0; }
.cb-sep { flex: none; width: 1px; height: 18px; background: var(--rule-strong); }
.cb-spacer { flex: 1 1 0; min-width: 4px; }
.chart-bar .chart-tool[data-menu="interval"] { display: none; }
.chart-tool.cb-btn { display: inline-flex; align-items: center; gap: 5px; padding-inline: 8px; white-space: nowrap; }
.chart-tool.cb-icon { justify-content: center; min-width: 28px; padding-inline: 5px; }
.chart-tool.cb-btn[aria-expanded=true] { border-color: var(--brand); color: var(--ink); }
.chart-tool.cb-btn:disabled { opacity: .5; cursor: default; }
.cb-value { font: 600 11px var(--mono); }
.cb-text { font-variant-numeric: tabular-nums; }
.cb-ico { flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.cb-ico .cb-fill { fill: currentColor; fill-opacity: .28; }
.cb-ico .cb-thick { stroke-width: 2.4; stroke-linecap: butt; }
.cb-ico .cb-dash { stroke-dasharray: 2 2.2; }
.cb-caret { width: 10px; height: 10px; opacity: .7; }
.cb-menu { position: absolute; z-index: 30; top: 100%; left: 0; display: grid; gap: 1px; min-width: 190px; max-width: min(300px, 100%); padding: 5px; border: 1px solid var(--rule-strong); border-radius: 12px; background: var(--surface); box-shadow: 0 14px 34px -18px var(--ink); }
.cb-menu[hidden] { display: none; }
.cb-menu-head { padding: 6px 8px 2px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.cb-item { display: grid; grid-template-columns: 14px auto 1fr; align-items: center; column-gap: 8px; width: 100%; min-height: 30px; padding: 4px 8px; border: 0; border-radius: 8px; background: transparent; font: 500 12px var(--sans); color: var(--ink); text-align: left; cursor: pointer; }
.cb-item:hover, .cb-item:focus-visible { background: var(--surface-hover); }
.cb-item:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.cb-item .cb-ico { grid-column: 2; }
.cb-item-label { grid-column: 2; font-weight: 600; white-space: nowrap; }
.cb-item .cb-ico + .cb-item-label { grid-column: 3; }
.cb-item-hint { grid-column: 2 / -1; font-size: 11px; font-weight: 400; color: var(--muted); }
.cb-mark { grid-column: 1; grid-row: 1; width: 10px; height: 10px; border: 1.5px solid var(--rule-strong); }
.cb-mark-radio { border-radius: 50%; }
.cb-mark-check { border-radius: 3px; }
.cb-mark-item { border-color: transparent; }
.cb-item[aria-checked=true] .cb-mark { border-color: var(--brand); background: var(--brand); box-shadow: inset 0 0 0 2px var(--surface); }
.chart-pane { position: relative; }
.chart-legend { position: absolute; z-index: 2; top: 6px; left: 10px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; max-width: calc(100% - 84px); padding: 3px 7px; border-radius: 6px; background: color-mix(in srgb, var(--surface) 78%, transparent); pointer-events: none; }
.chart-legend:empty { display: none; }
.chart-legend-id { display: inline-flex; align-items: baseline; gap: 7px; min-width: 0; }
.chart-legend-id b { font: 600 11px var(--mono); color: var(--ink); white-space: nowrap; }
.chart-legend-id span { overflow: hidden; max-width: 26ch; font-size: 11px; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.workbench .chart-legend .legend { gap: 2px 12px; font-size: 10.5px; }
.chart-legend .legend i { width: 16px; margin-right: 4px; }
.chart-legend .legend i.mark { width: 7px; height: 7px; }
.workbench .chart-ranges { display: inline-flex; width: max-content; max-width: calc(100% - 20px); margin: 2px 10px 8px; }
.workbench .chart-ranges[hidden] { display: none; }
/* A phone or a touch screen: icon buttons with 44px targets, labels in the menus. */
@media (max-width: 640px) {
  .cb-text, .cb-caret, .chart-bar .cb-intervals { display: none; }
  .chart-bar .chart-tool[data-menu="interval"] { display: inline-flex; }
  .chart-bar { gap: 4px; }
  .cb-sep { height: 22px; }
  .workbench .chart-tool.cb-btn, .workbench .ranges.chart-ranges button { justify-content: center; min-width: 44px; min-height: 44px; }
  .cb-item { min-height: 44px; }
  .cb-menu { max-width: 100%; }
  .chart-legend-id span { max-width: 14ch; }
}
@media (pointer: coarse) {
  .workbench .chart-tool.cb-btn, .workbench .ranges.chart-ranges button, .workbench .ranges.cb-intervals button { min-height: 44px; }
  .workbench .chart-tool.cb-icon { min-width: 44px; }
  .cb-item { min-height: 44px; }
}
.chart-tool { min-height: 24px; padding: 2px 8px; border: 1px solid var(--rule-strong); border-radius: 0; background: var(--surface); font-size: 11px; font-weight: 600; color: var(--muted); cursor: pointer; }
.chart-tool:hover { color: var(--ink); background: var(--surface-hover); }
.chart-tool[aria-pressed=true] { border-color: var(--brand); color: var(--ink); background: var(--brand-wash); }
.chart-hint { margin: 0; padding: 4px 10px 6px; font: 11px var(--sans); color: var(--muted); border-top: 1px solid var(--rule-soft); }
.chart-focused > :is(.headline-values, .confidence, .series-details, .block) { display: none; }
.chart-focused #historyPanel { margin-top: 12px; }
.workbench .chart .axis { font-family: var(--mono); font-size: 11px; }
.workbench .chart .grid { stroke-dasharray: 1 3; }
.workbench .chart .line, .workbench .chart .cmp { stroke-width: 1.6; }
.workbench .chart .fc { stroke-width: 1.6; }
.workbench .chart .cross { stroke: var(--muted); stroke-dasharray: 3 3; }
.workbench .chart .label-fc { fill: var(--code); font: 600 11px var(--sans); letter-spacing: var(--label); }
.workbench .chart-tip { border-radius: 0; border-color: var(--rule-strong); box-shadow: var(--shadow); padding: 6px 8px; }
.workbench .chart-tip .d { font-size: 11px; letter-spacing: 0.03em; }
.workbench .chart-tip .v { font-size: 13px; font-weight: 600; }
.workbench .chart:focus-visible, .workbench .chart svg:focus-visible { outline-offset: -2px; }
.workbench .replay-bar { padding: 6px 10px 8px; }
.workbench .replay-caption { font-size: 12.5px; }
.workbench .confidence { margin-top: 12px; padding: 0 0 8px; border-radius: 0; border: 1px solid var(--rule-strong); border-left: 2px solid var(--brand); background: var(--surface); }
.workbench .confidence-head { padding: 5px 12px; min-height: 32px; background: var(--surface-2); border-bottom: 1px solid var(--rule); }
.workbench .confidence-head h2 { font-size: 11px; font-weight: 700; letter-spacing: var(--label); text-transform: uppercase; }
.workbench .confidence-state { padding: 1px 7px; font-size: 11px; font-weight: 600; letter-spacing: 0.03em; }
.workbench .confidence > :is(p, ul, details) { margin-inline: 12px; }
.workbench .confidence-summary { font-size: 13px; }
.workbench .confidence-notes { padding-left: 1rem; margin-left: 12px; }
.workbench .confidence-metrics { gap: 0; margin: 10px 12px 0; border: 1px solid var(--rule); grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); overflow: hidden; }
.workbench .confidence-metric { padding: 8px 10px; box-shadow: 1px 0 0 var(--rule), 0 1px 0 var(--rule); }
.workbench .confidence-metric dd { margin-top: 4px; font-size: 15px; font-weight: 600; }
.workbench .confidence-metric small { margin-top: 3px; line-height: 1.4; }
.workbench .series-details { gap: 12px; margin-top: 12px; }
.workbench .series-details > details, .workbench .series-details > #contextBlock > section { padding: 0; border: 1px solid var(--rule-strong); border-radius: 0; background: var(--surface); }
.workbench .series-details > .disclosure > summary { cursor: pointer; }
.workbench .series-reading .prose { margin: 10px 12px; font-size: 13px; }
.workbench .series-details .table th { font-size: 11px; padding: 5px 12px; }
.workbench .series-details .table td { padding: 4px 12px; font-size: 12.5px; }
.workbench .facts { gap: 6px 16px; font-size: 12.5px; }
.workbench .compare-bar { margin: 10px 0; }
.workbench .chips li { padding: 3px 4px 3px 8px; font-size: 12px; border-color: var(--rule-strong); }
.workbench .chips .code { color: var(--code); font-size: 11px; font-weight: 600; }
.workbench .compare-search input { background: var(--surface); }
.workbench #viewCompare .standfirst { margin-top: 4px; color: var(--muted); }

/* ── Equity research ── */
.workbench #viewEquities { max-width: none; }
.workbench #viewEquities .eq-heading { margin: 0 0 12px; padding-bottom: 10px; align-items: flex-end; }
.workbench #viewEquities .eq-heading .headline { margin: 2px 0; letter-spacing: -0.012em; }
.workbench #viewEquities .eq-symbol { font: 600 24px/1.2 var(--mono); letter-spacing: -0.02em; }
.workbench .eq-company { margin: 2px 0 0; font-size: 13px; }
.workbench .eq-kicker { margin: 0; color: var(--code); }
.workbench :is(.eq-caption, .eq-footnote, .eq-toolbar p) { font-size: 11px; line-height: 1.55; }
.workbench .eq-intro { margin: 0 0 12px; font-size: 12.5px; line-height: 1.55; max-width: 78ch; }
.workbench .eq-back { margin-bottom: 8px; font-size: 11px; font-weight: 600; }
.workbench .eq-select, .workbench .eq-filter { gap: 8px; font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; }
.workbench .eq-select select, .workbench .eq-filter input { height: 28px; padding: 0 8px; font: 500 12px var(--sans); letter-spacing: 0; text-transform: none; border: 1px solid var(--rule-strong); border-radius: 2px; }
.workbench .eq-select select { padding-right: 24px; }
.workbench .eq-board-tools { margin: 0 0 8px; }
.workbench .eq-table-wrap { border: 1px solid var(--rule-strong); border-radius: 0; }
.workbench .eq-table { font-size: 12.5px; line-height: 1.4; }
.workbench .eq-table th, .workbench .eq-table td { padding: 5px 12px; vertical-align: middle; }
.workbench .eq-table thead th { font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); background: var(--surface-2); border-bottom: 1px solid var(--rule-strong); }
.workbench .eq-table td { color: var(--ink); }
.workbench .eq-table :is(td.r, th.r), .workbench .eq-statement td { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.workbench .eq-table thead th.r { font-family: var(--sans); }
.workbench .eq-table a { color: var(--code); font: 600 12px var(--mono); }
.workbench .eq-table small { margin-top: 1px; font-size: 11px; color: var(--muted); }
.workbench .eq-table tbody tr:hover { background: var(--surface-hover); }
.workbench .eq-period-head small { font-size: 11px; letter-spacing: 0; text-transform: none; }
.workbench .eq-tabs { top: var(--workspace-header); gap: 0; margin-top: 0; background: var(--ground); border-bottom: 1px solid var(--rule-strong); box-shadow: none; }
.workbench .eq-tabs button { padding: 8px 14px; margin-bottom: -1px; font: 600 11px var(--sans); letter-spacing: var(--label); text-transform: uppercase; border: 1px solid transparent; border-bottom: 0; }
.workbench .eq-tabs button:hover { color: var(--ink); }
.workbench .eq-tabs button[aria-selected=true] { color: var(--ink); background: var(--surface); border-color: var(--rule-strong); box-shadow: inset 0 2px 0 var(--brand); }
.workbench .eq-panel { padding-top: 12px; }
.workbench .eq-block { margin-bottom: 12px; border: 1px solid var(--rule-strong); background: var(--surface); }
.workbench .eq-section-head { justify-content: flex-start; }
.workbench .eq-section-head h2 { margin: 0; font: inherit; letter-spacing: inherit; }
.workbench .eq-section-head > :last-child:not(h2) { margin-left: auto; }
.workbench .eq-sort { letter-spacing: inherit; text-transform: inherit; }
.workbench .eq-section-head span { margin-left: auto; font: 500 11px var(--mono); letter-spacing: 0; text-transform: none; color: var(--muted); }
.workbench .eq-block > :is(p, .eq-prose, .btn, details, .eq-statement-links) { margin: 8px 12px; }
.workbench .eq-block > .eq-table-wrap { border: 0; }
.workbench .eq-block > .eq-toolbar { margin: 8px 12px; }
.workbench .eq-facts, .workbench .eq-meta { gap: 0; margin: 0; padding: 0; border: 0; overflow: hidden; }
.workbench .eq-block > :is(.eq-facts, .eq-meta) { border-bottom: 1px solid var(--rule); }
.workbench #viewEquities > .eq-facts, .workbench .eq-panel > .eq-facts { margin-bottom: 12px; border: 1px solid var(--rule-strong); background: var(--surface); }
.workbench .eq-fact { padding: 9px 12px 10px; box-shadow: 1px 0 0 var(--rule), 0 1px 0 var(--rule); }
.workbench .eq-fact dt { margin-bottom: 5px; }
.workbench .eq-fact dd { font: 500 15px/1.3 var(--mono); letter-spacing: -0.01em; }
.workbench .eq-meta .eq-fact dd { font: 500 13px/1.35 var(--sans); letter-spacing: 0; }
.workbench .eq-fact small { margin-top: 4px; font-size: 11px; line-height: 1.4; }
.workbench .eq-price-chart { background: transparent; border-bottom: 1px solid var(--rule); }
.workbench .eq-block > .eq-chart-tools { margin: 8px 12px; }
.workbench .eq-block > :is(.chart-note, .chart-hint) { margin: 0 12px; }
.workbench .eq-block summary { padding: 4px 0; font-size: 12px; font-weight: 600; }
.workbench .eq-prose { font-size: 13px; line-height: 1.6; }
.workbench .eq-statement-links { top: calc(var(--workspace-header) + 33px); gap: 14px; margin: 0 0 10px; padding: 6px 0; font-size: 11px; font-weight: 600; }
.workbench .eq-statement-wrap { max-height: 36rem; }
.workbench .eq-state { padding: 20px 16px; border: 1px solid var(--rule-strong); border-left: 2px solid var(--brand); border-radius: 0; background: var(--surface); }
.workbench .eq-state h2 { font-size: 14px; color: var(--ink); }
.workbench .eq-state p { font-size: 12.5px; }
.workbench .eq-loading span { height: 28px; margin: 6px 0; border-radius: 0; }
.workbench .eq-actions small { font-size: 11px; }
.workbench .eq-job { font-size: 12px; }

/* ── Catalog ── */
.catalog-tools { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0; align-items: end; }
.catalog-tools label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: var(--label); text-transform: uppercase; }
.catalog-tools :is(input, select) { height: 28px; padding: 0 8px; border: 1px solid var(--rule-strong); border-radius: 2px; background: var(--surface); color: var(--ink); font: 500 12px var(--sans); letter-spacing: 0; text-transform: none; max-width: 100%; }
.catalog-tools label:last-child { flex: 1; min-width: 180px; }
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 0; margin: 12px 0; border-top: 1px solid var(--rule-strong); border-left: 1px solid var(--rule-strong); }
.catalog-ticker { display: grid; align-content: start; gap: 2px; padding: 8px 12px; border: 0; border-right: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); background: var(--surface); color: var(--ink); text-decoration: none; }
.catalog-ticker:hover { background: var(--surface-hover); box-shadow: inset 2px 0 var(--brand); }
.catalog-ticker strong { font: 600 12px var(--mono); color: var(--code); }
.catalog-ticker span { font-size: 12.5px; }
.catalog-ticker small { font-size: 11px; color: var(--muted); }
.catalog-status { color: var(--muted); font-size: 12px; }

/* ── Dialogs ── */
.skip-link { position: fixed; top: -60px; left: 12px; z-index: 50; padding: 8px 14px; background: var(--surface); color: var(--brand); border: 2px solid var(--brand); }
.skip-link:focus { top: 8px; }
#shortcutsDialog { padding: 0; width: min(460px, calc(100% - 32px)); color: var(--ink); background: var(--surface); border: 1px solid var(--rule-strong); border-radius: 0; box-shadow: var(--shadow); }
#shortcutsDialog::backdrop, .workbench #navSheet::backdrop { background: rgba(5, 6, 8, 0.6); }
.workbench .drawer-head { padding: 6px 12px; background: var(--surface-2); }
#shortcutsTitle, .workbench #navSheetTitle { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: var(--label); text-transform: uppercase; }
.shortcut-list { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0; margin: 0; font-size: 12.5px; }
.shortcut-list :is(dt, dd) { margin: 0; padding: 8px 12px; border-bottom: 1px solid var(--rule-soft); }
.shortcut-list dd { text-align: right; }
.shortcut-list kbd { padding: 1px 5px; background: var(--surface-2); border: 1px solid var(--rule-strong); border-radius: 2px; font: 500 11px var(--mono); }

@media (max-width: 1100px) {
  .workbench .search kbd { display: none; }
  .workbench .search input { padding-right: 0.6rem; }
  .workbench .board-summary { margin-left: 0; }
  .term-status .term-note { display: none; }
}
@media (max-width: 900px) {
  html:has(body.workbench) { --workspace-header: 50px; --status-bar: 0px; }
  .term-status { display: none; }
  .workbench .app { display: block; }
  .workbench .rail { height: auto; position: static; border-right: 0; }
  .workbench .stage { padding: 0 12px calc(88px + env(safe-area-inset-bottom)); }
  .workbench .site-nav .wordmark span { display: none; }
  .workbench .site-nav { padding: 0 10px; gap: 10px; }
  .workbench .site-nav .search { max-width: none; }
  .workbench .search input { height: 36px; font-size: 13px; }
  .workbench .site-nav .nav-links a { padding: 0 6px; }
  .workbench .site-nav .nav-links a.hide-sm { display: none; }
  .workbench .monitor-caption { display: none; }
  .workbench .market-sheet { max-height: 65vh; }
  .workbench .market-sheet .board-table { min-width: 530px; }
  .workbench .market-sheet .board-table .trend { display: none; }
  .workbench .market-sheet .board-table td:first-child { width: 185px; min-width: 185px; position: sticky; left: 0; z-index: 1; background: var(--surface); }
  .workbench .market-sheet .board-table tr:not(.grp):has(a):hover td:first-child { background: var(--surface-hover); }
  .workbench .market-sheet .board-table > thead th:first-child { position: sticky; left: 0; }
  .workbench .headline-values > div { flex: 1 1 100%; border-right: 0; border-bottom: 1px solid var(--rule); }
  .workbench .headline-values > div:last-child { border-bottom: 0; }
  .workbench .chart-tool, .workbench .btn-sm { min-height: 32px; }
  .workbench .ranges button { min-height: 30px; }
}
@media (max-width: 600px) {
  .monitor-search { max-width: none; flex-basis: 100%; height: 36px; }
  .workbench .overview-date { max-width: none; }
  .workbench .panel-head { padding: 8px; }
  .workbench .figure .big, .workbench #endpointValue { font-size: 22px; }
  .workbench .group-filters a { min-height: 36px; }
  .workbench .wordmark img { width: 28px; height: 28px; }
  .workbench .market-sheet .board-table > thead th, .workbench .market-sheet .board-table td { padding: 6px 8px; font-size: 12px; }
  .workbench .market-sheet .board-table .grp th { padding: 5px 8px; }
  .workbench .board-table small { font-size: 11px; }
  .workbench .eq-board th:first-child { min-width: 170px; max-width: 170px; white-space: normal; position: sticky; left: 0; z-index: 1; background: var(--surface); }
  .workbench .eq-board thead th:first-child { background: var(--surface-2); z-index: 3; }
  .workbench .eq-statement th:first-child { min-width: 165px; max-width: 185px; }
  .workbench .eq-table th, .workbench .eq-table td { padding: 6px 8px; }
  .workbench .eq-tabs button { padding: 10px 10px; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-ticker { padding: 8px; overflow-wrap: anywhere; }
  .catalog-tools label { max-width: 100%; }
  .shortcut-list { grid-template-columns: 1fr; }
  .shortcut-list dt { border-bottom: 0; padding-bottom: 0; }
  .shortcut-list dd { text-align: left; }
}
@media (prefers-reduced-motion: no-preference) {
  .rail-add, .unpin, .chart-tool, .workbench .group-filters a { transition: background .12s ease, color .12s ease, border-color .12s ease; }
}

/* ── Thesis workspace: notes and theses (notes.js). Rounded panes and pill controls, like the other workbench blocks. ── */
.tw-view [hidden], .tw-series [hidden], .ask-notes [hidden], .ask-notes[hidden] { display: none !important; }
.tw-view { min-width: 0; }
.tw-head { margin: 4px 0 12px; }
.tw-sub { margin: 4px 0 0; font-size: 13px; color: var(--muted); }
.tw-grid { display: grid; grid-template-columns: minmax(300px, 420px) minmax(0, 1fr); gap: 12px; align-items: start; }
.tw-pane { min-width: 0; border: 1px solid var(--rule); border-radius: var(--r-lg); overflow: hidden; background: var(--surface); }
.tw-pane-head { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; min-height: 30px; padding: 2px 12px; background: var(--surface-2); border-bottom: 1px solid var(--rule); }
.tw-pane-head h2, .tw-block-head { margin: 0; font: 600 11px var(--mono); letter-spacing: var(--label); text-transform: uppercase; color: var(--ink); }
.tw-pane-head .tw-save { margin-left: auto; }
.tw-meta, .tw-save, .tw-meter { font: 500 11px var(--mono); color: var(--muted); letter-spacing: 0; text-transform: none; }
.tw-pane-head .tw-meta { margin-left: auto; }
.tw-save.is-dirty { color: var(--code); }
.tw-save.is-ok { color: var(--pos); }
.tw-save.is-error, .tw-error { color: var(--neg); }
.tw-error { margin: 6px 0 0; font-size: 12.5px; }
.tw-back { display: none; font: 600 11px var(--mono); color: var(--brand); }
.tw-tools { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--rule-soft); }
.tw-tools input[type=search] { flex: 1 1 140px; min-width: 0; }
.tw-view :is(input:not([type=checkbox]):not([type=file]), select, textarea) { min-height: 32px; padding: 4px 8px; border: 1px solid var(--rule-strong); background: var(--surface); color: var(--ink); font: 500 13px var(--sans); max-width: 100%; }
.tw-view textarea { display: block; width: 100%; line-height: 1.55; resize: vertical; border-radius: var(--r); }
.tw-view :is(input, select) { padding-inline: 12px; }
.tw-view :is(input, select, textarea):focus-visible { outline: 0; border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.tw-view input.num { font-family: var(--mono); }
.tw-seg { display: inline-flex; border: 1px solid var(--rule-strong); border-radius: var(--pill); overflow: hidden; }
.tw-seg button { min-height: 30px; padding: 0 10px; border: 0; border-right: 1px solid var(--rule-strong); background: transparent; color: var(--muted); font: 600 11px var(--mono); letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.tw-seg button:last-child { border-right: 0; }
.tw-seg button[aria-pressed=true] { background: var(--brand-wash); color: var(--ink); }
.tw-new, .tw-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tw-new { padding: 8px 12px; border-bottom: 1px solid var(--rule-soft); }
.tw-upload { position: relative; cursor: pointer; }
.tw-upload input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.tw-view .is-off, .tw-series .is-off { opacity: .45; pointer-events: none; }
.tw-pick { padding: 8px 12px; background: var(--surface-2); border-bottom: 1px solid var(--rule); }
.tw-rows { min-width: 0; }
.tw-row { display: flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 12px; border-bottom: 1px solid var(--rule-soft); }
.tw-row.is-current { background: var(--brand-wash); }
.tw-row:hover { background: var(--surface-hover); }
.tw-row-link { display: flex; flex: 1; align-items: center; gap: 8px; min-width: 0; min-height: 32px; color: var(--ink); text-decoration: none; }
.tw-row-link:hover { text-decoration: none; }
.tw-mark { flex: none; font: 600 11px var(--mono); color: var(--code); }
.tw-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 500; }
.tw-row-meta { display: flex; flex: none; align-items: center; gap: 8px; font: 500 11px var(--mono); color: var(--muted); }
.tw-row-meta .code { color: var(--code); }
.tw-pin { color: var(--ink); }
.tw-status { border-radius: var(--pill); padding: 1px 5px; border: 1px solid var(--rule-strong); font: 600 10px var(--mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.tw-status-open { color: var(--ink); border-color: var(--ink); }
.tw-status-confirmed { color: var(--pos); border-color: var(--pos); }
.tw-status-invalidated { color: var(--neg); border-color: var(--neg); }
.tw-empty { margin: 0; padding: 16px 12px; font-size: 13px; color: var(--muted); }
.tw-foot { display: grid; gap: 8px; padding: 10px 12px; }
.tw-meter { margin: 0; }
.tw-switch { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ink); cursor: pointer; }
.tw-switch input { width: 16px; height: 16px; accent-color: var(--brand); }
.tw-hint { margin: 0; font-size: 12px; line-height: 1.5; color: var(--muted); }
.tw-pad { padding: 8px 12px; }
.tw-muted { color: var(--muted); }
.tw-danger { color: var(--neg) !important; }
.tw-more { font-size: 12px; color: var(--brand); }
.tw-card { display: grid; justify-items: start; gap: 6px; margin: 12px; padding: 14px; background: var(--surface-2); border: 1px solid var(--rule); border-radius: var(--r); }
.tw-card-title { margin: 0; font: 650 14px/1.35 var(--sans); color: var(--ink); }
.tw-card-text { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--ink-2); max-width: 64ch; }
.tw-consent { border-color: var(--brand); }
.tw-state .tw-card { margin: 12px 0; }
.tw-form { display: grid; gap: 12px; padding: 12px; }
.tw-field { display: grid; gap: 4px; min-width: 0; }
.tw-label { margin: 0; font: 600 11px var(--mono); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); }
.tw-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.tw-cols :is(input, select) { width: 100%; }
.tw-form > .tw-field > input { width: 100%; }
.tw-body-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tw-links { position: relative; display: grid; gap: 6px; }
.tw-chips { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12.5px; }
.tw-chip { border-radius: var(--pill); display: inline-flex; align-items: center; gap: 4px; padding: 0 2px 0 8px; min-height: 26px; border: 1px solid var(--rule-strong); background: var(--surface-2); font: 600 12px var(--mono); }
.tw-chip .code { color: var(--code); }
.tw-chip-x { width: 24px; height: 24px; border: 0; background: transparent; color: var(--muted); font-size: 15px; cursor: pointer; }
.tw-results { margin: 0; padding: 0; list-style: none; border-radius: var(--r); overflow: hidden; border: 1px solid var(--rule-strong); background: var(--surface); }
.tw-result { display: flex; gap: 10px; width: 100%; min-height: 32px; align-items: center; padding: 0 10px; border: 0; border-bottom: 1px solid var(--rule-soft); background: transparent; color: var(--ink); font: 500 13px var(--sans); text-align: left; cursor: pointer; }
.tw-result:hover, .tw-result:focus-visible { background: var(--surface-hover); outline: 0; }
.tw-result .code { font: 600 12px var(--mono); color: var(--code); }
.tw-conds { display: grid; gap: 8px; }
.tw-cond { display: grid; gap: 6px; padding: 8px; border: 1px solid var(--rule); border-radius: var(--r); background: var(--surface-2); }
.tw-cond-top, .tw-cond-rule { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tw-cond-top input { flex: 1 1 180px; min-width: 0; }
.tw-cond-rule input { width: 110px; }
.tw-curate { display: grid; gap: 8px; padding: 0 12px 12px; }
.tw-curate:empty { display: none; }
.tw-slot:empty { display: none; }
.tw-slot .tw-card { margin: 8px 0 0; }
.tw-wait { margin: 8px 0 0; font-size: 12.5px; color: var(--muted); }
.tw-proposal { display: grid; gap: 8px; margin-top: 8px; padding: 12px; border-radius: var(--r); border: 1px solid var(--code); background: var(--brand-wash); }
.tw-answer p { margin: 0 0 8px; font-size: 13px; line-height: 1.55; color: var(--ink); overflow-wrap: anywhere; }
.tw-used { font-size: 12px; color: var(--muted); }
.tw-used summary { cursor: pointer; font: 600 11px var(--mono); letter-spacing: 0.04em; color: var(--ink); }
.tw-used-list { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.tw-used-list a { color: var(--brand); overflow-wrap: anywhere; }
.tw-ref { margin-right: 6px; font: 600 11px var(--mono); color: var(--code); }
.tw-cited { color: var(--pos); }
.tw-facts { display: grid; gap: 12px; padding: 0 12px 12px; }
.tw-facts:empty { display: none; }
.tw-facts-top { padding: 12px 12px 0; }
.tw-table td { white-space: nowrap; }
.tw-block { border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; min-width: 0; }
.tw-block-head { display: flex; align-items: center; gap: 10px; min-height: 30px; padding: 0 12px; background: var(--surface-2); border-bottom: 1px solid var(--rule); }
.tw-block-head .tw-meta { margin-left: auto; }
.tw-check { display: grid; grid-template-columns: 74px 92px minmax(0, 1fr) minmax(0, 1.3fr); gap: 4px 10px; align-items: center; min-height: 32px; padding: 4px 12px; border-bottom: 1px solid var(--rule-soft); font-size: 12.5px; }
.tw-badge { border-radius: var(--pill); justify-self: start; padding: 1px 5px; border: 1px solid var(--rule-strong); font: 600 10px var(--mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.tw-check-holds.tw-role-confirm .tw-badge { border-radius: var(--pill); color: var(--pos); border-color: var(--pos); }
.tw-check-holds.tw-role-invalidate .tw-badge { border-radius: var(--pill); color: var(--neg); border-color: var(--neg); }
.tw-check-role { font: 500 11px var(--mono); color: var(--muted); }
.tw-check-text { overflow-wrap: anywhere; color: var(--ink); }
.tw-check-detail { font: 500 12px var(--mono); color: var(--ink-2); overflow-wrap: anywhere; }
.tw-scroll { overflow-x: auto; }
.tw-table { width: 100%; }
.tw-table .code { font: 600 12px var(--mono); color: var(--code); }
.tw-history { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 32px; padding: 4px 12px; border-bottom: 1px solid var(--rule-soft); font-size: 12.5px; }
.tw-history time { font: 500 11px var(--mono); color: var(--muted); }
.tw-preview { padding: 10px 12px; border: 1px solid var(--rule); border-radius: var(--r); background: var(--ground); min-height: 120px; }
.tw-prose { font-size: 13.5px; line-height: 1.6; color: var(--ink-2); overflow-wrap: anywhere; }
.tw-prose :is(h3, h4, h5) { margin: 12px 0 6px; font-family: var(--sans); color: var(--ink); }
.tw-prose h3 { font-size: 17px; }
.tw-prose h4 { font-size: 15px; }
.tw-prose h5 { font-size: 13.5px; }
.tw-prose p { margin: 0 0 10px; }
.tw-prose :is(ul, ol) { margin: 0 0 10px; padding-left: 20px; }
.tw-prose blockquote { margin: 0 0 10px; padding-left: 10px; border-left: 2px solid var(--rule-strong); color: var(--muted); }
.tw-prose pre, .tw-prose code { font: 500 12px var(--mono); background: var(--surface-2); }
.tw-prose pre { margin: 0 0 10px; padding: 8px; overflow-x: auto; }
.tw-link { color: var(--brand); }
.tw-host { font: 500 11px var(--mono); color: var(--muted); }
.workbench .tw-series > h2 span { margin-left: auto; }
.ask-notes { flex: none; display: grid; gap: 4px; margin: 0; padding: 8px 18px 0; }
.ask-notes .tw-card { margin: 4px 0 0; }
.ask-a .tw-used { margin: 8px 0; }
@media (max-width: 900px) {
  .tw-grid { grid-template-columns: minmax(0, 1fr); }
  body.tw-editing .tw-list { display: none; }
  body:not(.tw-editing) .tw-editor { display: none; }
  .tw-back { display: inline; }
  .tw-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tw-check { grid-template-columns: 74px minmax(0, 1fr); }
  .tw-check-text, .tw-check-detail { grid-column: 1 / -1; }
  .tw-row-meta .code { display: none; }
  .tw-cond-rule :is(select, input) { flex: 1 1 120px; width: auto; min-width: 0; }
}

/* Alerts: the bell, the inbox dialog (inbox, brief, manage) and the alert form of a series.
   Square hairline panes and 32px rows, as the shortcuts dialog and the watchlist drawer. */
.alert-bell { position: relative; }
.alert-bell[hidden], .alert-count[hidden] { display: none; }
.alert-count { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; font: 600 10px/16px var(--mono); text-align: center; color: var(--brand-ink); background: var(--cta); border-radius: 8px; }
.alert-dialog { padding: 0; width: min(94vw, 560px); max-height: 84dvh; color: var(--ink); background: var(--surface); border: 1px solid var(--rule-strong); border-radius: 0; overflow: hidden; }
.alert-dialog[open] { display: flex; flex-direction: column; }
.alert-dialog::backdrop { background: rgba(5, 6, 8, 0.6); }
.alert-dialog .drawer-head h2 { margin: 0; font: 600 13px var(--mono); letter-spacing: var(--label); text-transform: uppercase; }
.alert-tabs { display: flex; border-bottom: 1px solid var(--rule); }
.alert-tabs button { flex: 1; height: 32px; font: 600 11px var(--mono); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); background: var(--surface-2); border: 0; border-right: 1px solid var(--rule); cursor: pointer; }
.alert-tabs button:last-child { border-right: 0; }
.alert-tabs button[aria-selected="true"] { color: var(--ink); background: var(--surface); box-shadow: inset 0 -2px 0 var(--brand); }
.alert-tabs button:focus-visible, .alert-bell:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.alert-pane { min-height: 0; overflow-y: auto; overflow-x: hidden; }
.alert-pane[hidden] { display: none; }
.alert-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 32px; padding: 0 12px; border-bottom: 1px solid var(--rule-soft); }
.alert-meta { font: 500 11px var(--mono); color: var(--muted); font-variant-numeric: tabular-nums; }
p.alert-meta { margin: 0; padding: 8px 12px; border-bottom: 1px solid var(--rule-soft); }
.alert-list, .alert-rules { margin: 0; padding: 0; list-style: none; }
.alert-item { padding: 8px 12px; border-bottom: 1px solid var(--rule-soft); border-left: 2px solid transparent; }
.alert-item.is-unread { border-left-color: var(--brand); background: var(--surface-2); }
.alert-item-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.alert-kind { font: 600 10.5px var(--mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--brand); }
.alert-time { flex: none; font: 500 11px var(--mono); color: var(--muted); font-variant-numeric: tabular-nums; }
.alert-text { display: block; margin-top: 2px; font-size: 13px; line-height: 1.45; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.alert-text:hover { color: var(--brand); }
.alert-empty { display: grid; justify-items: start; gap: 10px; padding: 20px 12px; font-size: 13px; color: var(--ink-2); }
.alert-empty p { margin: 0; max-width: 46ch; }
.alert-wait, .alert-foot, .alert-note { margin: 0; padding: 8px 12px; font-size: 12px; line-height: 1.5; color: var(--muted); }
.alert-note.is-warn { color: var(--ink); border-left: 2px solid var(--neg); }
.alert-note .btn { margin-left: 6px; }
.alert-rule { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 4px 8px; min-height: 32px; padding: 4px 12px; border-bottom: 1px solid var(--rule-soft); }
.alert-rule-name { font: 600 12px var(--mono); color: var(--ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.alert-rule-what { grid-column: 1 / -1; grid-row: 2; font: 500 11px var(--mono); color: var(--muted); overflow-wrap: anywhere; }
.alert-form { display: grid; gap: 10px; padding: 12px; }
.alert-h { margin: 0; font: 600 11px var(--mono); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); }
.alert-check { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.4; cursor: pointer; }
.alert-check input { flex: none; width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--brand); }
.alert-rule .alert-check { align-items: center; font: 500 11px var(--mono); color: var(--muted); }
.alert-field { display: grid; gap: 4px; min-width: 0; font-size: 12px; color: var(--muted); }
.alert-field :is(input, select) { width: 100%; min-width: 0; height: 32px; padding: 0 8px; font: 500 13px var(--mono); color: var(--ink); background: var(--surface-2); border: 1px solid var(--rule-strong); border-radius: 0; }
.alert-field :is(input, select):focus-visible { outline: 2px solid var(--brand); outline-offset: 0; }
.alert-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.alert-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.alert-form .alert-note { padding: 0; }
.alert-form > .btn { justify-self: start; }
@media (max-width: 480px) {
  .alert-dialog { width: calc(100vw - 16px); max-width: none; max-height: 90dvh; }
  .alert-pair { grid-template-columns: 1fr; }
  .alert-rule { grid-template-columns: minmax(0, 1fr) auto auto; }
  .alert-rule .alert-check { grid-column: 1; grid-row: 3; }
}
@media (pointer: coarse) { .alert-tabs button, .alert-field :is(input, select) { height: 44px; } }

/* ── Chart studies ("Indicators"; studies.js, chartview.js, docs/studies.md) ──
   Studies paint from three names for existing tokens: --study-a is the orange of --series-1,
   --study-b the teal of --glow-c, --study-fill a wash of the orange (an overlay in orange stays
   apart from green and red candles in both themes). Cobalt stays the
   history's and the selection's, ink the forecast's, amber the symbol codes'; green and red
   appear only where a study reads a direction. A second instance of a study (study-alt) takes
   the other study colour. The keys sit in the chart's legend and in each pane's own; the
   settings open as a dialog over the chart pane. */
html:has(body.workbench) { --study-a: var(--series-1); --study-b: var(--glow-c); --study-fill: color-mix(in srgb, var(--series-1) 12%, transparent); }
.chart .study-line { fill: none; stroke: var(--study-a); stroke-width: 1.25; stroke-linejoin: round; }
.chart .study-line.study-alt { stroke: var(--study-b); }
.chart .study-em.study-k2 { stroke-width: 1; stroke-dasharray: 5 3; stroke-opacity: .6; }
.chart .study-em.study-k3 { stroke-width: 1; stroke-dasharray: 1.5 2.5; stroke-opacity: .45; }
.chart .study-break { fill: var(--study-a); stroke: var(--surface); stroke-width: .75; }
.chart .study-crsi { stroke: var(--study-b); stroke-width: 1.5; }
.chart .study-crsi.study-alt { stroke: var(--study-a); }
.chart .study-crsi-band { stroke-width: 1; stroke-opacity: .85; }
.chart .study-crsi-band.study-alt { stroke: var(--study-b); }
.chart .study-fill { fill: var(--study-fill); stroke: none; }
.chart .study-ref { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 3 3; }
.chart .study-ref-fill { fill: var(--muted); fill-opacity: .07; stroke: none; }
.chart .study-halo { fill: none; stroke: var(--surface); stroke-width: 5; stroke-linejoin: round; stroke-linecap: round; stroke-opacity: .85; }
.chart .study-jma { stroke: var(--study-b); stroke-width: 2; stroke-linecap: round; }
.chart .study-jma.study-alt { stroke: var(--study-a); }
.chart .study-jma.study-rise { stroke: var(--pos); }
.chart .study-jma.study-fall { stroke: var(--neg); }
.chart .study-jma.study-flat { stroke: var(--muted); }
.chart .study-jma-band { stroke: var(--study-b); stroke-width: 1; stroke-dasharray: 2 3; stroke-opacity: .75; }
.chart .study-jma-band.study-alt { stroke: var(--study-a); }
.chart .study-rf { stroke: var(--study-a); stroke-width: 2; stroke-linecap: round; }
.chart .study-rf.study-alt { stroke: var(--study-b); }
.chart .study-rf.study-up { stroke: var(--pos); }
.chart .study-rf.study-down { stroke: var(--neg); }
.chart .study-rf-band { stroke: var(--study-a); stroke-width: 1; stroke-opacity: .55; }
.chart .study-rf-band.study-alt { stroke: var(--study-b); }
.chart .study-hurst { stroke: var(--study-b); stroke-width: 1.5; }
.chart .study-hurst.study-alt { stroke: var(--study-a); }
.chart .study-hurst-band { fill: var(--study-fill); stroke: none; }
.chart .study-hvp { stroke: var(--study-b); stroke-width: 1.5; }
.chart .study-hvp.study-alt { stroke: var(--study-a); }
.chart .study-hvp.study-up { stroke: var(--pos); }
.chart .study-hvp.study-down { stroke: var(--neg); }
.chart .study-hvp-avg { stroke-width: 1; stroke-opacity: .85; }
.chart .study-hvp-avg.study-alt { stroke: var(--study-b); }
.chart .study-sep { stroke: var(--rule); stroke-width: 1; }
.chart .study-dot { fill: var(--surface); stroke: var(--study-b); stroke-width: 1.5; pointer-events: none; }
/* Bar colours from a study (the Range Filter's "Colour bars"): trend up in --pos, trend down in
   --neg, no trend in --muted. A light bar (a faint wash inside its outline, a faded line) is one
   whose close did not move further with the trend, so the shade reads without the hue. With no
   study painting, the candles and columns keep their own colours. */
.chart :is(.candle, .bar).study-bar.study-bar-up { fill: var(--pos); stroke: var(--pos); }
.chart :is(.candle, .bar).study-bar.study-bar-down { fill: var(--neg); stroke: var(--neg); }
.chart :is(.candle, .bar).study-bar.study-bar-none { fill: var(--muted); stroke: var(--muted); }
.chart :is(.candle, .bar).study-bar.study-bar-up-light { fill: var(--pos); fill-opacity: .25; stroke: var(--pos); stroke-opacity: .6; }
.chart :is(.candle, .bar).study-bar.study-bar-down-light { fill: var(--neg); fill-opacity: .25; stroke: var(--neg); stroke-opacity: .6; }
.chart .bar.study-bar { opacity: 1; stroke-width: 1; }
.chart .line.study-bar:is(.study-bar-up, .study-bar-up-light) { stroke: var(--pos); }
.chart .line.study-bar:is(.study-bar-down, .study-bar-down-light) { stroke: var(--neg); }
.chart .line.study-bar.study-bar-none { stroke: var(--muted); }
.chart .line.study-bar:is(.study-bar-up-light, .study-bar-down-light) { stroke-opacity: .4; }
.study-bars, .study-bars-held { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; min-width: 0; font: 500 10.5px var(--mono); color: var(--muted); pointer-events: auto; }
.study-bars .study-name { font-weight: 600; color: var(--ink); }
.study-bars > span { display: inline-flex; align-items: center; gap: 4px; }
.study-chip { flex: none; display: inline-block; width: 7px; height: 10px; border: 1px solid var(--muted); background: var(--muted); }
.study-chip.study-bar-up { border-color: var(--pos); background: var(--pos); }
.study-chip.study-bar-down { border-color: var(--neg); background: var(--neg); }
.study-chip.study-bar-up-light { border-color: var(--pos); background: color-mix(in srgb, var(--pos) 20%, transparent); }
.study-chip.study-bar-down-light { border-color: var(--neg); background: color-mix(in srgb, var(--neg) 20%, transparent); }
.cb-count { display: inline-grid; place-items: center; min-width: 16px; height: 16px; margin-left: 4px; padding: 0 4px; font: 600 10px/1 var(--mono); color: var(--brand-ink); background: var(--brand); }
.chart-legend .study-keys { display: grid; gap: 0; flex-basis: 100%; min-width: 0; }
.study-key { display: flex; align-items: center; gap: 6px; min-width: 0; font: 500 10.5px var(--mono); color: var(--muted); pointer-events: auto; }
.study-key .study-name { flex: none; font-weight: 600; color: var(--ink); }
.study-key .study-args { flex: none; }
.study-key .study-value { min-width: 0; overflow: hidden; color: var(--ink-2); text-overflow: ellipsis; white-space: nowrap; }
.study-swatch { flex: none; width: 14px; height: 0; border-top: 2px solid var(--study-a); }
.study-swatch.study-alt, .study-swatch-crsi, .study-swatch-jma, .study-swatch-hurst, .study-swatch-hv_percentile { border-top-color: var(--study-b); }
.study-swatch-crsi.study-alt, .study-swatch-jma.study-alt, .study-swatch-hurst.study-alt, .study-swatch-hv_percentile.study-alt { border-top-color: var(--study-a); }
.study-swatch.study-swatch-slope { border-image: linear-gradient(90deg, var(--pos) 0 50%, var(--neg) 50% 100%) 1; }
.study-act { flex: none; display: inline-grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--muted); cursor: pointer; }
.study-act:hover { color: var(--ink); background: var(--surface-hover); }
.study-act:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.study-act[aria-expanded=true] { color: var(--ink); box-shadow: inset 0 -2px 0 var(--brand); }
.study-act .cb-ico { width: 14px; height: 14px; }
.chart-legend.study-pane-legend { position: absolute; left: 4px; max-width: calc(100% - 70px); padding: 1px 6px; }
.study-pane-legend .study-key { flex-wrap: nowrap; }
.study-panel { position: absolute; z-index: 31; width: min(360px, calc(100% - 8px)); overflow: auto; overscroll-behavior: contain; padding-bottom: 8px; border: 1px solid var(--rule-strong); border-radius: var(--r); background: var(--surface); box-shadow: var(--shadow); font: 12px/1.45 var(--sans); color: var(--ink); }
.study-panel[hidden] { display: none; }
.study-panel-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 36px; padding: 0 4px 0 12px; border-bottom: 1px solid var(--rule); background: var(--surface-2); }
.study-panel-head h3 { margin: 0; font: 600 11px var(--sans); letter-spacing: var(--label); text-transform: uppercase; color: var(--muted); }
.study-fields { display: grid; gap: 10px; padding: 10px 12px 4px; }
.study-field { display: grid; gap: 3px; min-width: 0; margin: 0; padding: 0; border: 0; }
.study-field > label, .study-set legend { padding: 0; font: 600 11.5px var(--sans); color: var(--ink); }
.study-field input[type=number], .study-field select { width: 100%; min-height: 32px; padding: 0 8px; font: 500 12px var(--mono); color: var(--ink); background: var(--surface); border: 1px solid var(--rule-strong); border-radius: var(--r); }
.study-field :is(input, select):focus-visible { outline: 2px solid var(--brand); outline-offset: -1px; }
.study-field input[aria-invalid=true] { border-color: var(--neg); }
.study-check label, .study-set label { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; font: 500 12px var(--sans); cursor: pointer; }
.study-field input[type=checkbox] { accent-color: var(--brand); }
.study-set-options { display: flex; flex-wrap: wrap; gap: 0 14px; }
.study-help { font-size: 11px; color: var(--muted); }
.study-error { margin: 0 12px; font-size: 11.5px; color: var(--neg); }
.study-error:empty { display: none; }
.study-readout { margin: 6px 12px 0; padding-top: 8px; border-top: 1px solid var(--rule); font: 11.5px/1.5 var(--mono); color: var(--ink-2); }
.study-readout p { margin: 0 0 6px; }
.study-readout .study-note { color: var(--muted); }
.study-table { width: 100%; margin: 2px 0 6px; border-collapse: collapse; font: 11.5px var(--mono); font-variant-numeric: tabular-nums; }
.study-table caption { padding-bottom: 4px; font: 600 10.5px var(--mono); letter-spacing: var(--label); text-align: left; text-transform: uppercase; color: var(--muted); }
.study-table :is(th, td) { padding: 3px 0 3px 8px; text-align: right; border-bottom: 1px solid var(--rule-soft); font-weight: 500; }
.study-table thead th { font-size: 10.5px; color: var(--muted); }
.study-table :is(th, td):first-child { padding-left: 0; text-align: left; }
.study-info { margin: 4px 12px 0; font-size: 11.5px; color: var(--muted); }
.study-info p { margin: 6px 0 0; }
.study-about summary { display: flex; align-items: center; min-height: 28px; font-weight: 600; color: var(--ink); cursor: pointer; }
.study-credit a { color: var(--brand); }
.study-panel-foot { display: flex; justify-content: flex-end; gap: 2px; margin-top: 8px; padding: 6px 8px 0; border-top: 1px solid var(--rule); }
/* Phones: the keys move out of the overlay into a row above the chart, every control takes a
   44px target, and a pane's legend sits in the row the chart leaves above that pane. With the
   Indicators button the bar holds eight 44px targets, more than one row of a 390px chart: the
   utility group (Compare, Focus, Reset) wraps to a second row, at the right. */
@media (max-width: 640px) {
  .chart-bar { flex-wrap: wrap; row-gap: 6px; }
  .chart-bar .cb-tools { margin-left: auto; }
  .chart-legend:not(.study-pane-legend):has(.study-keys) { position: static; max-width: none; margin: 0 0 6px; }
  .chart-legend:not(.study-pane-legend) .study-key { flex-wrap: wrap; row-gap: 0; }
  .chart-legend.study-pane-legend { max-width: calc(100% - 48px); padding: 0 4px; }
}
@media (max-width: 640px), (pointer: coarse) {
  .study-act { width: 44px; height: 44px; }
  .study-field input[type=number], .study-field select, .study-check label, .study-set label, .study-panel-foot .chart-tool { min-height: 44px; }
}
