:root {
  --deep-burgundy: #5D1E21;
  --emerald: #154230;
  --charcoal: #101111;
  --antique-gold: #A6824A;
  --soft-cream: #E6E2DA;
  --bg: #101111;
  --panel: #171818;
  --panel2: #201819;
  --panel3: #2c2020;
  --line: rgba(166,130,74,.34);
  --line2: rgba(166,130,74,.52);
  --ink: #E6E2DA;
  --muted: rgba(230,226,218,.68);
  --soft: rgba(230,226,218,.86);
  --green: #6db58d;
  --red: #ff5b67;
  --amber: #A6824A;
  --rail: #101111;
  --table-alt: #22191a;
  --surface: #151616;
  --input-bg: #141515;
  --control-bg: #1a1b1b;
  --control-hover: #251d1e;
  --active-bg: #5D1E21;
  --active-ink: #E6E2DA;
  --table-head: #101111;
  --table-row: #181a19;
  --table-row-alt: #22191a;
  --table-sticky: #171818;
  --section-row: #101111;
  --selected-row: #173228;
  --drawer-bg: #151616;
  --shadow: rgba(16,17,17,.42);
  --chart-burgundy: #5D1E21;
  --chart-emerald: #154230;
  --chart-charcoal: #101111;
  --chart-gold: #A6824A;
  --chart-cream: #E6E2DA;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; width: 100%; min-height: 100%; overflow-x: hidden; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--bg); font-size: 13px; }
button, input, select { font: inherit; }
button, select, input { color: var(--ink); }
.rail { position: fixed; inset: 0 auto 0 0; width: 58px; background: var(--rail); color: var(--soft); border-right: 1px solid #2d2e38; padding: 8px 6px; z-index: 3; }
.mark { font-weight: 800; font-size: 11px; letter-spacing: .08em; text-align: center; margin: 3px 0 14px; color: #76e3aa; }
.global-tools { display: grid; gap: 7px; }
.tool { width: 42px; height: 38px; border: 1px solid transparent; background: transparent; color: #b6b7c4; text-align: center; padding: 0; border-radius: 6px; cursor: pointer; font-size: 15px; }
.tool:hover, .tool:focus-visible { background: #24242d; outline: 2px solid #5a5b68; }
.tool.active { background: #39394a; border-color: #565769; color: #fff; }
.shell { margin-left: 58px; padding: 7px 12px 18px; min-height: 100vh; max-width: calc(100vw - 58px); min-width: 0; overflow-x: clip; }
.topbar { height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid #31323b; background: var(--bg); }
.company-search { position: relative; width: min(520px, 52vw); }
.search { display: flex; align-items: center; gap: 8px; width: 100%; color: var(--muted); }
.search input { width: 100%; border: 1px solid var(--line); border-radius: 6px; padding: 6px 10px; background: #171820; color: var(--ink); }
.search input:focus { outline: 1px solid #717386; border-color: #717386; }
.company-search-results { position: absolute; z-index: 20; top: calc(100% + 5px); left: 22px; right: 0; max-height: min(70vh, 520px); overflow-y: auto; background: #1b1b22; border: 1px solid var(--line2); border-radius: 6px; box-shadow: 0 10px 28px rgba(0,0,0,.45); }
.company-search-result { width: 100%; min-height: 58px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 10px; border: 0; border-bottom: 1px solid #333440; border-radius: 0; background: #1b1b22; text-align: left; cursor: pointer; }
.company-search-result:last-child { border-bottom: 0; }
.company-search-result:hover, .company-search-result:focus-visible, .company-search-result.active { background: #30303c; outline: none; }
.company-search-result .search-logo { width: 42px; height: 42px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: #24242d; }
.company-search-result .search-logo img { width: 100%; height: 100%; object-fit: contain; }
.company-search-result .search-logo-fallback { font-size: 9px; font-weight: 750; }
.company-search-result .search-ticker { font-size: 11px; font-weight: 700; color: var(--muted); }
.company-search-result .search-company { min-width: 0; }
.company-search-result .search-company strong, .company-search-result .search-company small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.company-search-result .search-company strong { font-size: 12px; }
.company-search-result .search-company small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.company-search-empty { padding: 12px; color: var(--muted); }
.top-meta { display: flex; gap: 14px; color: var(--muted); font-size: 12px; }
#status:empty { display: none; }
.identity { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 12px; border-bottom: 1px solid #30313b; background: var(--panel); border-radius: 6px; margin-top: 8px; }
.identity-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
.monogram { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 7px; border: 1px solid #5a5b68; background: #f3f3f6; color: #24242d; font-weight: 800; font-size: 12px; letter-spacing: .03em; }
.monogram.has-logo { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; padding: 0; background: #fff; overflow: hidden; }
.monogram img { width: 100%; height: 100%; object-fit: contain; }
.monogram [hidden] { display: none; }
.eyebrow { margin: 0 0 3px; color: #78d8a2; font-weight: 700; font-size: 12px; }
h1 { margin: 0; font-size: 20px; line-height: 1.08; letter-spacing: 0; }
h2 { margin: 0 0 9px; font-size: 14px; letter-spacing: 0; }
p { margin: 0; }
#taxonomy { color: var(--muted); margin-top: 4px; font-size: 12px; }
.issuer-data-notice { margin: 0 0 12px; padding: 11px 15px; border: 1px solid #d99a35; border-radius: 8px; background: #fff5df; color: #4c3512; font-size: 13px; line-height: 1.45; }
.issuer-data-notice[hidden] { display: none; }
.issuer-data-notice a { color: #744b00; text-decoration: underline; }
.quote { min-width: 170px; border-left: 1px solid #4a4b58; padding-left: 12px; }
.quote span, .quote small { display: block; color: var(--muted); font-size: 11px; }
.quote strong { font-size: 21px; }
.company-tabs { display: flex; align-items: center; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--line); padding-top: 8px; }
.company-tab { border: 1px solid #333441; background: #252530; color: var(--soft); padding: 7px 16px; border-radius: 5px; cursor: pointer; min-width: 96px; }
.company-tab:hover, .company-tab:focus-visible { outline: 2px solid #5a5b68; background: var(--panel3); }
.company-tab.active { background: #3a3a4a; color: #fff; border-color: #555667; }
.view { display: none; padding-top: 8px; }
.view.active { display: block; }
.ownership-mode .shell { display: flex; flex-direction: column; height: 100vh; padding: 0; overflow: hidden; }
.ownership-mode .issuer-data-notice, .ownership-mode .company-tabs { display: none; }
.ownership-mode .topbar .top-meta { display: none; }
.ownership-mode .identity, .shortselling-mode .identity { flex: none; margin: 8px 12px 0; }
.ownership-mode.ownership-across-mode .identity { display: none; }
.ownership-mode #ownership { flex: 1; min-height: 0; padding: 0; }
#ownershipFrame { display: block; width: 100%; height: 100%; border: 0; background: var(--bg); }
.shortselling-mode .shell { display: flex; flex-direction: column; height: 100vh; padding: 0; overflow: hidden; }
.shortselling-mode .topbar,
.shortselling-mode .issuer-data-notice, .shortselling-mode .company-tabs { display: none; }
.shortselling-mode.shortselling-market .identity { display: none; }
.shortselling-mode #shortselling.active { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 0; }
.shortselling-topbar { display: none; }
.ownership-mode .topbar, .shortselling-mode .shortselling-topbar {
  flex: none; height: 42px; padding: 7px 16px; display: flex; align-items: center;
  justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line);
  background: var(--bg);
}
.shortselling-workspace {
  display: flex; flex-direction: column; flex: 1; min-height: 0; margin: 10px 12px 12px;
  overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--panel);
}
.shortselling-workspace-head { flex:none;display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 14px;padding:14px 24px 10px; }
.shortselling-workspace-head .charting-eyebrow {font-size:9px;letter-spacing:.12em;}
.shortselling-workspace-head h2 { margin:0;font-size:18px;letter-spacing:-.02em; }
.shortselling-workspace-head p { margin:0 0 0 auto;color:var(--muted);font-size:11px;line-height:1.6; }
#shortsellingFrame { display:block;flex:1;min-height:0;width:100%;border:0;background:var(--panel); }
@media(max-width:900px) {
  .shortselling-workspace-head {padding:12px 15px 8px;}
  .shortselling-workspace-head p {flex-basis:100%;margin:0;}
}
.metric-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.metric-strip .metric { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; padding: 10px; min-height: 70px; }
.metric-strip .metric span { display: block; color: var(--muted); font-size: 11px; }
.metric-strip .metric strong { display: block; margin-top: 7px; font-size: 18px; }
.metric-strip .metric button { margin-top: 5px; border: 0; background: transparent; color: var(--green); padding: 0; cursor: pointer; font-size: 11px; }
.band, .financial-workspace, .pending-view, .industry-workspace { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; padding: 8px; margin-bottom: 8px; }
.financial-workspace { min-width: 0; overflow: hidden; }
.financial-workspace { padding: 6px 8px 8px; }
.overview-workspace { display: grid; grid-template-columns: minmax(360px, 45%) minmax(0, 55%); gap: 10px; align-items: start; }
.overview-left, .overview-right { min-width: 0; display: grid; gap: 8px; }
.overview-section { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; padding: 9px; }
.description { color: var(--soft); line-height: 1.45; max-width: 74ch; }
.description.collapsed { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.text-action, .source-link { border: 0; background: transparent; color: #75dba5; padding: 0; cursor: pointer; font-size: 11px; }
.profile-grid { display: grid; grid-template-columns: 110px 1fr; gap: 7px 10px; margin: 0; font-size: 12px; }
.profile-grid dt { color: var(--muted); }
.profile-grid dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.profile-grid .source-link, .stat-row .source-link { margin-left: 8px; }
.detail-drawer { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.detail-drawer summary { color: var(--soft); cursor: pointer; font-size: 12px; font-weight: 650; }
.detail-drawer .profile-grid { margin-top: 10px; }
.detail-drawer .profile-grid dd { line-height: 1.45; }
.decision-row { display: grid; grid-template-columns: minmax(140px, 1fr) auto auto auto; gap: 8px 16px; align-items: center; padding: 8px 2px; border-bottom: 1px solid var(--line); font-size: 12px; }
.decision-row strong { color: var(--soft); font-weight: 600; }
.decision-row small { color: var(--muted); }
.empty-state { text-align: center !important; color: var(--muted); padding: 28px 10px !important; }
.stats-matrix { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.stat-group h3 { margin: 0 0 6px; font-size: 12px; color: var(--muted); text-transform: uppercase; font-weight: 700; }
.stat-row { display: grid; grid-template-columns: minmax(120px, 1fr) auto; gap: 5px 10px; align-items: baseline; min-height: 23px; border-bottom: 1px solid #31323c; padding: 3px 0; }
.stat-row span { color: var(--muted); }
.stat-row strong { font-size: 12px; }
.stat-row small { grid-column: 1 / -1; color: #748077; font-size: 10px; }
.overview-more-link { display: inline-block; margin-top: 6px; color: var(--green); font-size: 11px; }
.price-panel { min-height: 520px; }
.price-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.dividend-head, .dividend-chart-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.dividend-chart-bar[hidden] { display: none; }
.muted-line { color: var(--muted); font-size: 12px; }
.price-ranges { display: flex; margin-bottom: 8px; overflow-x: auto; }
.overview-price-chart { height: 438px; border: 1px solid var(--chart-gold); border-radius: 8px; background: var(--chart-cream); box-shadow: inset 0 0 0 1px rgba(166,130,74,.16), 0 8px 24px rgba(16,17,17,.22); }
.dividend-workspace { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; padding: 8px; margin-bottom: 8px; }
.dividend-chart { height: 370px; border: 1px solid var(--line); border-radius: 8px; background: #282930; margin-bottom: 8px; box-shadow: 0 8px 24px rgba(16,17,17,.22); }
.dividend-chart-note { min-height: 16px; margin: 3px 0 8px; }
.dividend-metric-label { align-self: center; color: var(--muted); font-size: 12px; }
#dividendMetric, #dividendCurrency { color: var(--ink); background: var(--control-bg); border: 1px solid var(--line); border-radius: 5px; padding: 5px 9px; }
.dividend-ranges { max-width: 100%; overflow-x: auto; }
.dividend-chart.is-empty { height: 120px; }
.dividend-chart.is-sparse { height: 230px; }
.dividend-table-wrap { max-height: calc(100vh - 485px); border: 1px solid var(--line); border-radius: 6px; }
.dividend-table-wrap.is-compact { max-width: 1100px; margin-inline: auto; }
.industry-workspace { min-width: 0; overflow: hidden; }
.industry-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.coverage-note { color: #d3b66b; font-size: 11px; text-align: right; max-width: 460px; }
.industry-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 8px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 6px 0; margin-bottom: 6px; }
.industry-control { display: grid; grid-template-columns: auto minmax(110px, 1fr) minmax(150px, 1.4fr) auto; gap: 6px; align-items: center; color: var(--muted); min-width: 0; }
.industry-control span { font-size: 11px; text-transform: uppercase; }
.industry-control button, .chip-row button, .industry-pager button { border: 1px solid var(--line2); background: #191922; border-radius: 6px; padding: 5px 8px; color: var(--ink); cursor: pointer; }
.industry-control input { min-width: 0; border: 1px solid var(--line2); border-radius: 6px; padding: 6px 8px; background: #191922; color: var(--ink); }
.industry-format-control { grid-template-columns: auto minmax(72px, 86px) auto; }
.chip-row { display: flex; gap: 5px; overflow-x: auto; padding-bottom: 5px; min-height: 30px; }
.chip-row button { white-space: nowrap; color: var(--soft); }
.chip-row button strong { color: #79dba7; font-weight: 700; }
.industry-table-wrap { max-height: calc(100vh - 350px); border: 1px solid var(--line); border-radius: 6px; }
.industry-table .coverage { display: block; color: #9697a4; font-size: 10px; margin-top: 2px; }
.industry-table .review-required { color: var(--amber); }
.industry-table .metric-note { display: block; color: var(--muted); font-size: 10px; }
.industry-pager { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding-top: 6px; color: var(--muted); }
.industry-pager:empty { display: none; }
.industry-control[hidden] { display: none; }
.industry-kpi-builder { border: 1px solid var(--line2); border-radius: 7px; padding: 9px 11px; margin: 5px 0 8px; background: color-mix(in srgb, var(--table-row) 75%, transparent); }
.industry-kpi-heading { display: flex; align-items: baseline; gap: 10px; margin-bottom: 7px; }
.industry-kpi-heading strong { color: var(--ink); font-size: 12px; }
.industry-kpi-heading span { color: var(--muted); font-size: 11px; }
.industry-kpi-controls, .industry-kpi-map-controls { display: grid; grid-template-columns: minmax(150px, .9fr) minmax(150px, 1fr) minmax(240px, 2fr) auto; gap: 6px; }
.industry-kpi-controls input, .industry-kpi-controls select, .industry-kpi-map-controls input, .industry-kpi-map-controls select { min-width: 0; border: 1px solid var(--line2); border-radius: 6px; padding: 6px 8px; background: var(--input-bg); color: var(--ink); }
.industry-kpi-controls button, .industry-kpi-map-controls button { border: 1px solid var(--line2); border-radius: 6px; padding: 6px 10px; background: var(--input-bg); color: var(--ink); cursor: pointer; }
.industry-kpi-controls button:disabled, .industry-kpi-map-controls button:disabled { opacity: .5; cursor: default; }
.industry-kpi-mappings:empty { display: none; }
.industry-kpi-mapping { border-top: 1px solid var(--line2); margin-top: 8px; padding-top: 8px; }
.industry-kpi-mapping-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; margin-bottom: 6px; font-size: 11px; }
.industry-kpi-mapping-head strong { color: var(--emerald); }
.industry-kpi-mapping-head span { color: var(--muted); }
.industry-kpi-mapping-list { color: var(--soft); font-size: 10px; margin: 0 0 6px; }
th button { border: 0; background: transparent; color: inherit; padding: 0; cursor: pointer; font-weight: inherit; }
.grid2 { display: grid; grid-template-columns: 1.2fr .8fr; gap: 10px; }
.section-head, .toolbar, .finance-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.financial-timeline { border-bottom: 1px solid var(--line); padding: 8px 0 10px; margin-bottom: 8px; }
.financial-timeline .range-date-chip { min-width: 112px; align-self: start; margin-top: 1px; border: 1px solid var(--line2); border-radius: 7px; background: var(--control-bg); color: var(--ink); padding: 8px 14px; text-align: center; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.range-tracks { --range-from: 0%; --range-to: 100%; --range-accent: #78b69a; position: relative; height: 54px; min-width: 180px; }
.range-rail { position: absolute; left: 9px; right: 9px; top: 16px; height: 4px; border-radius: 8px; background: linear-gradient(to right, var(--line2) 0%, var(--line2) var(--range-from), var(--range-accent) var(--range-from), var(--range-accent) var(--range-to), var(--line2) var(--range-to), var(--line2) 100%); }
.range-ticks { position: absolute; inset: 0 9px; pointer-events: none; }
.range-tick { position: absolute; top: 18px; width: 5px; height: 5px; border-radius: 50%; background: var(--muted); transform: translate(-50%, -50%); }
.range-tick.selected { background: #edf5ef; box-shadow: 0 0 0 2px rgba(120,182,154,.16); }
.range-tick-label { position: absolute; top: 15px; left: 50%; transform: translateX(-50%); color: var(--muted); white-space: nowrap; font-size: 11px; font-variant-numeric: tabular-nums; }
.range-tick.selected .range-tick-label { color: var(--soft); }
.range-tick:first-child .range-tick-label { left: 0; transform: none; }
.range-tick:last-child:not(:first-child) .range-tick-label { left: auto; right: 0; transform: none; }
.range-tracks input { appearance: none; -webkit-appearance: none; position: absolute; top: 0; left: 0; height: 36px; margin: 0; border: 0; padding: 0; pointer-events: none; background: transparent; outline: none; }
.range-tracks input::-webkit-slider-runnable-track { height: 4px; background: transparent; }
.range-tracks input::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; pointer-events: auto; width: 18px; height: 18px; margin-top: -7px; border: 4px solid #f4f4ee; border-radius: 50%; background: var(--range-accent); box-shadow: 0 1px 5px rgba(0,0,0,.28); cursor: ew-resize; }
.range-tracks input::-moz-range-track { height: 4px; background: transparent; }
.range-tracks input::-moz-range-progress { background: transparent; }
.range-tracks input::-moz-range-thumb { box-sizing: border-box; pointer-events: auto; width: 18px; height: 18px; border: 4px solid #f4f4ee; border-radius: 50%; background: var(--range-accent); box-shadow: 0 1px 5px rgba(0,0,0,.28); cursor: ew-resize; }
.range-tracks input:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--range-accent); outline-offset: 3px; }
.range-tracks input:focus-visible::-moz-range-thumb { outline: 2px solid var(--range-accent); outline-offset: 3px; }
.range-tracks input:disabled::-webkit-slider-thumb { cursor: default; }
.range-tracks input:disabled::-moz-range-thumb { cursor: default; }
.metric-discovery { position: relative; display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 7px; align-items: center; margin-bottom: 5px; }
.metric-search-group { position: relative; min-width: 0; }
.metric-search { display: flex; align-items: center; gap: 7px; min-height: 30px; border: 1px solid var(--line2); border-radius: 4px; padding: 0 9px; background: #191922; color: var(--muted); }
.metric-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.metric-search-results { position: absolute; z-index: 12; top: calc(100% + 3px); left: 0; width: min(560px, 92vw); max-height: 310px; overflow: auto; border: 1px solid var(--line2); border-radius: 4px; background: #191922; box-shadow: 0 12px 24px rgba(0,0,0,.42); }
.metric-search-results button { width: 100%; display: flex; justify-content: space-between; gap: 10px; border: 0; border-bottom: 1px solid #30313b; border-radius: 0; padding: 6px 9px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.metric-search-results button:hover, .metric-search-results button:focus-visible { background: #343440; outline: 0; }
.metric-search-results small, .metric-search-empty { color: var(--muted); }
.metric-search-empty { padding: 9px; }
.template-control { display: flex; align-items: center; gap: 6px; }
.template-control label { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.template-control select { min-width: 156px; border-radius: 4px; padding: 6px 8px; }
.finance-toolbar { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 4px 0; margin: 0 0 5px; }
.finance-toolbar > * { flex: 0 0 auto; }
.control-group { display: flex; align-items: center; gap: 6px; color: var(--muted); }
.control-group span { font-size: 11px; text-transform: uppercase; }
.segmented { display: inline-flex; border: 1px solid var(--line2); border-radius: 6px; overflow: hidden; background: #191922; }
.segmented button, .statement-tabs button, .disabled-action { border: 0; border-right: 1px solid var(--line2); background: transparent; padding: 5px 8px; cursor: pointer; min-width: 36px; color: var(--soft); }
.segmented button:last-child { border-right: 0; }
.segmented button.active { background: #3b3b4c; color: #fff; }
.statement-tabs button.active { background: #f4f2ee; color: #171820; border-color: #f4f2ee; }
.segmented button:disabled, .disabled-action:disabled { color: #676876; cursor: not-allowed; background: #171820; }
select { border: 1px solid var(--line2); border-radius: 6px; padding: 6px 8px; background: #191922; color: var(--ink); }
.ratio-search-group input { width: 150px; border: 1px solid var(--line2); border-radius: 6px; padding: 6px 8px; background: #191922; color: var(--ink); }
.kpi-period-basis-group .segmented button { min-width: auto; }
#kpiHistoryFilter { display: flex; align-items: center; gap: 6px; }
#financialTable.kpi-latest-table { width: 100%; table-layout: auto; --financial-metric-col: 304px; }
#financialTable.kpi-latest-table th:not(:first-child),
#financialTable.kpi-latest-table td:not(:first-child) { width: auto; max-width: none; min-width: 130px; }
.kpi-latest-group-nav { display: flex; align-items: flex-start; gap: 8px; padding: 5px 0 7px; margin-bottom: 5px; border-bottom: 1px solid var(--line); }
.kpi-latest-group-nav-label { flex: 0 0 auto; padding-top: 5px; color: var(--muted); font-size: 10px; text-transform: uppercase; }
.kpi-latest-group-links { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.kpi-latest-group-links a { display: inline-flex; align-items: center; gap: 5px; min-height: 27px; border: 1px solid var(--line2); border-radius: 4px; padding: 4px 7px; background: #191922; color: var(--soft); text-decoration: none; line-height: 1.2; }
.kpi-latest-group-links a:hover { background: #343440; color: var(--ink); }
.kpi-latest-group-links a:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.kpi-latest-group-links strong { color: #79dba7; font-size: 10px; font-variant-numeric: tabular-nums; }
.kpi-revenue-mix-panel { margin: 0 0 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); padding: 8px; }
.kpi-revenue-mix-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.kpi-revenue-mix-head h2 { margin: 0 0 3px; font-size: 12px; text-transform: uppercase; color: var(--ink); }
.kpi-revenue-mix-head p { color: var(--muted); font-size: 11px; line-height: 1.35; max-width: 88ch; }
.kpi-revenue-mix-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.kpi-revenue-mix-card { min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); overflow: hidden; }
.kpi-revenue-mix-card header { min-height: 50px; padding: 7px 8px; border-bottom: 1px solid var(--line); background: var(--control-bg); }
.kpi-revenue-mix-card header strong, .kpi-revenue-mix-card header span { display: block; overflow-wrap: anywhere; }
.kpi-revenue-mix-card header strong { color: var(--ink); font-size: 11px; line-height: 1.2; }
.kpi-revenue-mix-card header span { margin-top: 4px; color: var(--soft); font-size: 10px; font-weight: 700; }
.kpi-revenue-mix-chart { height: 340px; background: var(--chart-cream); }
.kpi-campus-capacity-panel { margin: 0 0 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); padding: 8px; }
.kpi-campus-capacity-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.kpi-campus-capacity-head h2 { margin: 0 0 3px; font-size: 12px; text-transform: uppercase; color: var(--ink); }
.kpi-campus-capacity-head p { color: var(--muted); font-size: 11px; line-height: 1.35; max-width: 88ch; }
.kpi-campus-capacity-chart { height: 252px; border: 1px solid var(--chart-gold); border-radius: 8px; background: var(--chart-cream); box-shadow: inset 0 0 0 1px rgba(166,130,74,.16), 0 8px 24px rgba(16,17,17,.18); }
.kpi-campus-capacity-sources { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.kpi-campus-capacity-source { min-width: 0; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); padding: 6px; line-height: 1.2; }
.kpi-campus-capacity-source strong, .kpi-campus-capacity-source span { display: block; overflow-wrap: anywhere; }
.kpi-campus-capacity-source strong { font-size: 11px; color: var(--ink); }
.kpi-campus-capacity-source span { margin-top: 3px; color: var(--soft); font-weight: 700; }
.kpi-campus-capacity-source .text-action { margin-top: 5px; text-align: left; }
.kpi-pricing-range-panel { margin: 0 0 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); padding: 8px; }
.kpi-pricing-range-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.kpi-pricing-range-head h2 { margin: 0 0 3px; font-size: 12px; text-transform: uppercase; color: var(--ink); }
.kpi-pricing-range-head p { color: var(--muted); font-size: 11px; line-height: 1.35; max-width: 88ch; }
.kpi-pricing-range-groups { display: grid; gap: 8px; }
.kpi-pricing-range-group { display: grid; gap: 6px; }
.kpi-pricing-range-group h3 { margin: 0; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .02em; }
.kpi-pricing-range-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.kpi-pricing-range-card { min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); overflow: hidden; }
.kpi-pricing-range-card header { min-height: 54px; padding: 7px 8px; border-bottom: 1px solid var(--line); background: var(--control-bg); }
.kpi-pricing-range-card header strong, .kpi-pricing-range-card header span { display: block; overflow-wrap: anywhere; }
.kpi-pricing-range-card header strong { color: var(--ink); font-size: 11px; line-height: 1.2; }
.kpi-pricing-range-card header span { margin-top: 4px; color: var(--soft); font-size: 10px; font-weight: 700; }
.kpi-pricing-range-chart { height: 168px; background: var(--chart-cream); }
.kpi-pricing-range-card footer { display: grid; gap: 3px; min-height: 34px; padding: 5px 8px; border-top: 1px solid var(--line); }
.kpi-pricing-range-card footer .text-action { text-align: left; }
.kpi-01569-fee-school-label { display: block; margin: 0 0 4px; color: var(--muted); font-size: 11px; font-weight: 700; }
#kpi01569HistoricalFeeSchool { max-width: min(100%, 580px); margin: 0 0 8px; }
#kpi01569HistoricalFeeGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kpi-pricing-course-card { width: 100%; }
.kpi-pricing-course-card header { display: flex; align-items: center; gap: 12px; }
.kpi-pricing-course-card select { min-width: 220px; max-width: 100%; padding: 5px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 4px; }
.kpi-pricing-course-chart { height: 260px; }
.kpi-latest-table .metric-cell > span { display: block; white-space: normal; }
.kpi-latest-table td small { display: block; color: var(--soft); font-size: 11px; line-height: 1.5; }
.kpi-latest-table td { padding: 8px; height: auto; max-height: none; }
.kpi-latest-table .kpi-period-cell, .kpi-latest-table .kpi-source-cell { text-align: left; white-space: normal; min-width: 160px; }
.kpi-latest-table .kpi-source-cell button { white-space: normal; text-align: left; }
.kpi-latest-table .kpi-older { color: #e1c28d; }
.kpi-unit-inputs { margin-top: 3px; color: var(--soft); font-size: 10px; line-height: 1.35; text-align: left; white-space: normal; }
.kpi-unit-inputs summary { color: var(--muted); cursor: pointer; overflow-wrap: anywhere; }
.kpi-unit-inputs small { display: block; margin-top: 3px; max-width: 42ch; color: var(--soft); font-size: 10px; overflow-wrap: anywhere; }
#financialTable.kpi-latest-table .kpi-latest-group-row { scroll-margin-top: 38px; }
#financialTable.kpi-latest-table .kpi-latest-group-row td:first-child {
  position: static;
  width: auto;
  min-width: 0;
  max-width: none;
  overflow: visible;
  white-space: normal;
}
#financialTable.kpi-latest-table .kpi-latest-group-row td > span { display: inline; }
#financialTable.kpi-latest-table .kpi-latest-group-row td > small { display: inline; margin-left: 8px; color: var(--muted); font-size: 10px; font-weight: 400; }
.kpi-period-basis-group button:focus-visible, #kpiHistoryBasis:focus-visible,
.kpi-latest-table button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.kpi-hierarchy-depth-1 .metric-cell { padding-left: 24px; }
.kpi-hierarchy-depth-2 .metric-cell { padding-left: 40px; }
.kpi-hierarchy-parent .metric-cell > label, .kpi-hierarchy-parent .metric-cell > span { font-weight: 650; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.metric-cell .kpi-relationship-note { display: block; margin-top: 4px; color: var(--soft); white-space: normal; font-size: 11px; line-height: 1.45; font-weight: 400; overflow-wrap: anywhere; }
.kpi-relationship-source { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.kpi-relationship-source:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.check-control { display: inline-flex; gap: 5px; align-items: center; color: var(--soft); white-space: nowrap; min-width: max-content; }
.chart, .financial-chart { position: relative; border: 1px solid var(--chart-gold); border-radius: 8px; background: var(--chart-cream); overflow: hidden; box-shadow: inset 0 0 0 1px rgba(166,130,74,.16), 0 8px 24px rgba(16,17,17,.22); }
.chart { min-height: 250px; }
.chart.small { min-height: 210px; }
.financial-chart-workspace { margin: 0 0 5px; }
.financial-chart-workspace[hidden] { display: none; }
.financial-chart-actions { display: flex; justify-content: flex-end; align-items: center; gap: 6px; padding: 1px 0 4px; }
.icon-action { width: 28px; height: 26px; display: grid; place-items: center; border: 1px solid var(--line2); border-radius: 3px; background: #24242e; color: var(--ink); cursor: pointer; }
.financial-chart { height: clamp(460px, 65vh, 800px); min-height: 460px; max-height: 800px; margin-bottom: 4px; }
.financial-chart-workspace.expanded .financial-chart { height: 85vh; max-height: none; }
.financial-chart-actions { flex-wrap: wrap; }
.financial-chart-actions [hidden] { display: none; }
.financial-chart-note { margin: 0; padding: 8px 12px; color: #b9b9c7; background: #292932; font-size: 11px; line-height: 1.5; }
.financial-chart-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.financial-chart-card { min-width: 0; border: 1px solid var(--chart-gold); border-radius: 8px; background: var(--chart-cream); overflow: hidden; box-shadow: 0 6px 18px rgba(16,17,17,.18); }
.financial-chart-card header { display: flex; align-items: center; gap: 6px; min-height: 30px; padding: 5px 8px; border-bottom: 1px solid var(--chart-gold); background: var(--chart-charcoal); color: var(--chart-cream); font-size: 11px; }
.financial-card-chart { height: 380px; background: #292932; }
/* Keep the normal arrow over plots, including ECharts' grab/pointer states. */
.financial-chart canvas, .financial-card-chart canvas { cursor: default !important; }
.empty-chart { display: grid; place-items: center; height: 100%; color: var(--muted); }
.chart-legend { display: grid; gap: 1px; padding: 3px 0; color: var(--muted); }
.unit-note { color: var(--muted); font-size: 11px; margin: -1px 0 4px; }
.series-control { display: flex; align-items: center; gap: 7px; min-width: 0; min-height: 35px; border: 1px solid var(--chart-gold); border-radius: 4px; padding: 4px 8px; background: var(--chart-charcoal); }
.series-control strong { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--chart-cream); font-size: 11px; font-weight: 600; }
.swatch { width: 9px; height: 9px; display: inline-block; border-radius: 2px; }
.series-control button { border: 0; color: var(--red); background: transparent; cursor: pointer; padding: 2px; }
.series-type-switch { display: inline-flex; gap: 2px; padding: 2px; border: 1px solid var(--chart-gold); border-radius: 4px; }
.series-control .series-type-button { min-width: 34px; padding: 3px 6px; border-radius: 2px; color: var(--chart-cream); font-size: 10px; }
.series-control .series-type-button.active { background: var(--chart-gold); color: var(--chart-charcoal); font-weight: 700; }
.series-control .series-type-button:hover, .series-control .series-type-button:focus-visible { outline: 1px solid var(--chart-gold); }
.series-control .series-toggle { color: var(--muted); font-size: 9px; }
.series-control .series-toggle.active { color: var(--chart-gold); }
.selected-metric-table-wrap { max-height: 148px; border: 1px solid var(--line); }
.selected-metric-table th, .selected-metric-table td { height: 22px; }
.statement-tabs { display: flex; align-items: center; gap: 4px; max-width: 100%; overflow-x: auto; overflow-y: hidden; margin-bottom: 5px; border-bottom: 1px solid #424350; padding-bottom: 4px; scrollbar-width: thin; }
.statement-tabs button { flex: 0 0 auto; border: 1px solid #3e3f4e; border-radius: 2px; background: #39394a; min-width: 112px; min-height: 29px; padding: 4px 8px; white-space: nowrap; }
.statement-tabs .disabled-action { margin-left: auto; min-width: 112px; }
.table-wrap { overflow: auto; max-width: 100%; }
.financial-table-wrap { max-height: none; min-height: 480px; border: 1px solid #454653; border-radius: 2px; background: #24242d; }
.financial-table-wrap.kpi-table-wrap { background: #24242d; border-color: #454653; }
.kpi-section-tables { display: flex; flex-direction: column; gap: 14px; }
.kpi-section-table-wrap { overflow: auto; max-width: 100%; border: 1px solid #454653; border-radius: 2px; background: #24242d; }
.kpi-section-table { min-width: 100%; width: max-content; }
.kpi-section-table th:not(:first-child) { min-width: 78px; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
#financialTable, #selectedMetricTable {
  --financial-metric-col: 268px;
  --financial-value-col: 92px;
  table-layout: fixed;
  width: max-content;
  min-width: 100%;
}
.financial-source-notice { margin: 7px 0 10px; padding: 9px 12px; border-left: 3px solid #c1a35a; background: #343139; color: #f2ead7; font-size: 12px; line-height: 1.5; }
.financial-source-notice a { color: #e7c77d; text-decoration: underline; }
th, td { border-bottom: 1px solid #3b3c47; border-right: 1px solid rgba(90,91,104,.28); padding: 1px 6px; text-align: right; white-space: nowrap; height: 23px; min-height: 22px; max-height: 25px; line-height: 1.1; font-variant-numeric: tabular-nums; }
th:last-child, td:last-child { border-right: 0; }
tbody tr:nth-child(even) td { background: #424253; }
tbody tr:nth-child(odd) td { background: #2c2c36; }
th:first-child, td:first-child { text-align: left; position: sticky; left: 0; background: #252530; z-index: 2; min-width: 260px; }
tbody tr:nth-child(even) td:first-child { background: #424253; }
tbody tr:nth-child(odd) td:first-child { background: #2c2c36; }
th { color: #f2f2f5; background: #181820; font-weight: 550; position: sticky; top: 0; z-index: 1; }
th small { display: block; color: var(--muted); font-weight: 400; }
th small { font-size: 9px; line-height: 1.1; margin-top: 1px; text-transform: uppercase; }
.financial-table th:not(:first-child) { min-width: 78px; }
#financialTable th:first-child, #financialTable td:first-child,
#selectedMetricTable th:first-child, #selectedMetricTable td:first-child {
  width: var(--financial-metric-col);
  min-width: var(--financial-metric-col);
  max-width: var(--financial-metric-col);
  overflow: hidden;
}
#financialTable th:not(:first-child), #financialTable td:not(:first-child),
#selectedMetricTable th:not(:first-child), #selectedMetricTable td:not(:first-child) {
  width: var(--financial-value-col);
  min-width: var(--financial-value-col);
  max-width: var(--financial-value-col);
}
#financialTable th:not(:first-child), #financialTable td:not(:first-child),
#selectedMetricTable th:not(:first-child), #selectedMetricTable td:not(:first-child) { overflow: hidden; text-overflow: ellipsis; }
#financialTable.financial-table.exact-unit-table, #selectedMetricTable.financial-table.exact-unit-table { --financial-value-col: 208px; }
td.null { color: #68736a; }
tr.total td:first-child, tr.subtotal td:first-child { font-weight: 700; }
.metric-cell label { display: flex; align-items: center; gap: 5px; width: 100%; min-width: 0; overflow: hidden; }
.metric-cell label > span { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metric-cell input[type="checkbox"] { width: 13px; height: 13px; margin: 0; flex: 0 0 13px; }
.metric-cell .metric-unit { display: block; margin-top: 1px; color: var(--muted); font-size: 9px; font-weight: 400; text-transform: none; }
.metric-variant .metric-cell span { font-style: italic; }
.financial-table tbody tr.common-size-row td,
.financial-table tbody tr.common-size-row td:first-child { color: var(--chart-cream); background: rgba(93,30,33,.34); }
.financial-table tbody tr.common-size-row:hover td,
.financial-table tbody tr.common-size-row:hover td:first-child { background: rgba(93,30,33,.52); }
.common-size-row .metric-cell { padding-left: 20px; }
.ratio-table { --financial-metric-col: 268px; --financial-value-col: 86px; }
.ratio-table th:first-child, .ratio-table td:first-child { min-width: var(--financial-metric-col); width: var(--financial-metric-col); }
.ratio-table tbody tr.ratio-row td, .ratio-table tbody tr.ratio-row td:first-child { background: #292932; }
.ratio-table tbody tr.ratio-row:hover td, .ratio-table tbody tr.ratio-row:hover td:first-child { background: #3b3a48; }
.ratio-table tbody tr.ratio-change-row td, .ratio-table tbody tr.ratio-change-row td:first-child { color: #aeb0ba; font-style: italic; background: #24242c; }
.kpi-table { --financial-metric-col: 304px; --financial-value-col: 92px; }
.kpi-table th:first-child, .kpi-table td:first-child { min-width: var(--financial-metric-col); width: var(--financial-metric-col); }
.kpi-table tbody tr td, .kpi-table tbody tr td:first-child { background: #2c2c36; }
.kpi-table tbody tr:nth-child(even) td, .kpi-table tbody tr:nth-child(even) td:first-child { background: #424253; }
.kpi-table tbody tr:hover td, .kpi-table tbody tr:hover td:first-child { background: #3b3a48; }
.kpi-table .metric-cell { padding-left: 5px; }
.kpi-table .metric-cell label { align-items: flex-start; gap: 6px; }
.kpi-table .metric-cell label > span { display: grid; gap: 1px; white-space: normal; line-height: 1.12; max-width: 38ch; overflow-wrap: anywhere; }
.kpi-table .metric-cell .metric-unit { color: #9fa1ad; font-size: 9px; }
.kpi-table .now-cell,
.kpi-table .now-column,
.kpi-table th:nth-child(2) {
  background: #242733;
  border-right-color: #5c5d68;
}
.now-value-btn { display: grid; gap: 1px; width: 100%; justify-items: end; line-height: 1.08; }
.now-value-btn small { color: #aeb0ba; font-size: 9px; font-weight: 400; }
.kpi-table .statement-section-row td,
.kpi-table tbody tr.statement-section-row:nth-child(even) td,
.kpi-table tbody tr.statement-section-row:nth-child(odd) td,
.kpi-table tbody tr.statement-section-row td:first-child {
  background: #181820;
  border-top: 8px solid #24242d;
  border-bottom-color: #555662;
  height: 27px;
  color: #f2f2f5;
}
.kpi-table .statement-section-row:first-child td { border-top-width: 0; }
.kpi-table .selected-metric-row td,
.kpi-table .selected-metric-row td:first-child { background: #303b35; }
.statement-section-row td, tbody tr.statement-section-row:nth-child(even) td, tbody tr.statement-section-row:nth-child(odd) td, tbody tr.statement-section-row td:first-child { background: #171820; color: #f4f4f7; text-align: right; font-weight: 650; border-top: 12px solid #24242d; border-bottom: 1px solid #555662; height: 30px; }
.statement-section-row:first-child td { border-top-width: 0; }
.statement-section-row td:first-child { position: sticky; left: 0; z-index: 2; text-align: left; }
.statement-section-row .section-period span { display: block; }
.statement-section-row .section-period small { display: block; color: #a7a8b4; font-size: 9px; line-height: 1.1; margin-top: 1px; text-transform: uppercase; }
.statement-section-row button { border: 0; background: transparent; color: inherit; padding: 2px 0; cursor: pointer; font-weight: 800; }
.statement-section-row small { margin-left: 12px; color: var(--muted); font-weight: 400; }
.ratio-section-row { scroll-margin-top: 6px; }
.ratio-row td { height: 22px; }
.value-btn { border: 0; background: transparent; color: inherit; cursor: pointer; padding: 0; text-decoration: underline; text-decoration-color: #465247; text-underline-offset: 2px; }
.ranking-panel-group { margin-top: 8px; }
.school-ranking-workspace[hidden] { display: none; }
.school-ranking-workspace { margin: 14px 0; padding: 20px; border: 1px solid var(--line2); background: var(--surface); border-radius: 8px; color: var(--ink); }
.school-rank-heading, .school-rank-provider-heading, .school-rank-subject-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.school-rank-heading h2 { margin: 0 0 7px; font-size: 22px; }
.school-rank-heading > span, .school-rank-heading p, .school-rank-profile p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.school-rank-note, .school-rank-coverage { color: var(--muted); font-size: 12px; line-height: 1.6; margin: 12px 0; }
.school-rank-coverage { padding: 9px 12px; border-left: 2px solid var(--antique-gold); background: var(--control-bg); }
.school-rank-layout { display: grid; grid-template-columns: minmax(220px, 275px) minmax(0, 1fr); gap: 24px; margin-top: 22px; }
.school-rank-schools { display: flex; flex-direction: column; gap: 8px; align-self: start; }
.school-rank-schools button { display: flex; align-items: center; gap: 12px; text-align: left; padding: 13px; border: 1px solid var(--line2); border-radius: 6px; background: var(--surface); color: var(--ink); cursor: pointer; }
.school-rank-schools button.active { border-color: var(--antique-gold); background: var(--control-bg); box-shadow: inset 3px 0 var(--antique-gold); }
.school-rank-schools img, .school-rank-logo-placeholder { width: 40px; height: 40px; object-fit: contain; flex-shrink: 0; background: #fff; border-radius: 4px; padding: 3px; }
.school-rank-logo-placeholder { display: grid; place-items: center; background: var(--control-bg); }
.school-rank-schools strong { display: block; font-size: 12px; line-height: 1.45; }
.school-rank-schools small { display: block; color: var(--muted); margin-top: 4px; font-size: 11px; }
.school-rank-profile { min-width: 0; }
.school-rank-profile > header { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; }
.school-rank-profile > header > img { width: 80px; height: 80px; object-fit: contain; background: white; border-radius: 6px; padding: 6px; }
.school-rank-profile h2 { font-size: 21px; margin: 5px 0; line-height: 1.3; }
.school-rank-profile h3 { font-size: 15px; margin: 20px 0 10px; }
.school-rank-profile h3 small { font-size: 11px; color: var(--muted); font-weight: 400; margin-left: 8px; }
.school-rank-status { color: var(--antique-gold); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.school-rank-profile a { color: var(--antique-gold); text-underline-offset: 3px; }
.school-rank-provider-tabs { display: flex; flex-wrap: wrap; width: fit-content; margin-bottom: 20px; }
.school-rank-provider-tabs button { padding: 9px 12px; }
.school-rank-provider-overview { display: grid; gap: 16px; }
.school-rank-provider-overview article { border: 1px solid var(--line2); border-radius: 6px; padding: 16px; }
.school-rank-provider-heading h3 { margin-top: 0; }
.school-rank-provider-heading button { background: var(--control-bg); border: 1px solid var(--line2); border-radius: 4px; color: var(--ink); padding: 6px 9px; cursor: pointer; font-size: 11px; }
.school-rank-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 10px; margin: 14px 0; }
.school-rank-tile { min-width: 0; padding: 14px; border: 1px solid var(--line2); border-radius: 5px; background: var(--control-bg); }
.school-rank-tile small { display: block; font-size: 11px; color: var(--muted); line-height: 1.5; }
.school-rank-tile strong { display: block; font-size: 25px; color: var(--ink); font-variant-numeric: tabular-nums; margin: 7px 0; }
.school-rank-tile span { color: var(--muted); font-size: 10px; }
.school-rank-source { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 11px; line-height: 1.5; color: var(--muted); }
.school-rank-timeline { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 8px; margin: 16px 0; }
.school-rank-year { display: grid; gap: 8px; padding: 14px 10px; border-top: 2px solid var(--antique-gold); background: var(--control-bg); }
.school-rank-year small, .school-rank-year span { color: var(--muted); font-size: 11px; }
.school-rank-year strong { font-size: 18px; }
.school-rank-table-wrap { overflow: auto; max-width: 100%; border: 1px solid var(--line2); border-radius: 5px; margin: 12px 0 20px; }
.school-rank-subjects { max-height: 530px; }
.school-rank-table { border-collapse: collapse; width: 100%; font-size: 12px; font-variant-numeric: tabular-nums; }
.school-rank-table th, .school-rank-table td { padding: 11px 14px; text-align: right; border-bottom: 1px solid var(--line2); }
.school-rank-table th:first-child, .school-rank-table td:first-child { text-align: left; }
.school-rank-table thead th { position: sticky; top: 0; background: var(--control-bg); z-index: 1; white-space: nowrap; }
.school-rank-table tbody th { font-weight: 500; }
.school-rank-table small { display: block; color: var(--muted); font-size: 10px; line-height: 1.6; }
.school-rank-subject-head { align-items: center; margin-top: 20px; }
.school-rank-subject-head h3 { margin: 0; }
.school-rank-subject-head label { font-size: 11px; color: var(--muted); }
.school-rank-subject-head input { display: block; padding: 8px 10px; margin-top: 5px; background: var(--control-bg); color: var(--ink); border: 1px solid var(--line2); border-radius: 4px; width: 230px; max-width: 100%; }
@media (max-width: 1000px) { .school-rank-layout { grid-template-columns: 1fr; } .school-rank-schools { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); } }
@media (max-width: 600px) { .school-ranking-workspace { padding: 12px; } .school-rank-profile > header > img { width: 55px; height: 55px; } .school-rank-profile h2 { font-size: 17px; } .school-rank-table th, .school-rank-table td { padding: 9px; } }
.ranking-panel { margin-top: 8px; border: 1px solid #454653; border-radius: 2px; background: #24242d; padding: 7px; }
.ranking-panel-group .ranking-panel:first-child { margin-top: 0; }
.ranking-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 2px 1px 7px; border-bottom: 1px solid #3c3d49; margin-bottom: 6px; }
.ranking-panel-head h2 { margin: 0 0 3px; font-size: 12px; text-transform: uppercase; color: #f2f2f5; }
.ranking-panel-sub { text-transform: none; color: var(--muted); font-size: 10px; font-weight: 500; margin-left: 6px; }
.ranking-panel-head p { color: var(--muted); font-size: 11px; line-height: 1.35; max-width: 78ch; }
.ranking-count { flex: 0 0 auto; color: #d4d5dc; border: 1px solid var(--line2); background: #191922; border-radius: 3px; padding: 4px 7px; font-size: 10px; white-space: nowrap; }
.ranking-table-wrap { max-height: 260px; border: 1px solid #454653; border-radius: 2px; background: #24242d; }
.ranking-table th:first-child, .ranking-table td:first-child { min-width: 260px; width: 22%; }
.ranking-table th:nth-child(2), .ranking-table td:nth-child(2) { min-width: 72px; width: 72px; }
.ranking-table th:nth-child(3), .ranking-table td:nth-child(3) { min-width: 190px; width: 18%; }
.ranking-table th:nth-child(4), .ranking-table td:nth-child(4) { min-width: 340px; width: 42%; }
.ranking-table th:nth-child(5), .ranking-table td:nth-child(5) { min-width: 72px; width: 72px; }
.ranking-table th:nth-child(6), .ranking-table td:nth-child(6) { min-width: 96px; width: 96px; }
.ranking-table td { height: auto; min-height: 28px; padding-top: 4px; padding-bottom: 4px; vertical-align: top; white-space: normal; line-height: 1.22; }
.ranking-table td:first-child, .ranking-table td:nth-child(3), .ranking-table td:nth-child(4) { text-align: left; }
.ranking-table th, .ranking-table td { border-right-color: rgba(96,97,112,.42); }
.ranking-table td strong, .ranking-table td small, .ranking-table td span { display: block; }
.ranking-table td strong { color: #f0f0f4; font-weight: 650; }
.ranking-table td small { color: var(--muted); font-size: 10px; margin-top: 3px; overflow-wrap: anywhere; }
.ranking-scope-badge {
  display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
  padding: 3px 7px; border-radius: 3px; line-height: 1.3; white-space: normal;
}
.ranking-scope-badge.scope-global { background: color-mix(in srgb, var(--emerald) 18%, var(--surface)); color: var(--ink); border: 1px solid var(--emerald); }
.ranking-scope-badge.scope-national { background: color-mix(in srgb, var(--antique-gold) 18%, var(--surface)); color: var(--ink); border: 1px solid var(--antique-gold); }
.ranking-scope-badge.scope-subject { background: color-mix(in srgb, var(--deep-burgundy) 16%, var(--surface)); color: var(--ink); border: 1px solid var(--deep-burgundy); }
.ranking-scope-badge.scope-other { background: var(--control-bg); color: var(--soft); border: 1px solid var(--line2); }
.ranking-scope-badge.scope-unknown { background: transparent; color: var(--muted); border: 1px dashed var(--line2); }
.ranking-table .ranking-position { color: #f4f2ee; font-weight: 750; }
.ranking-source { display: inline-grid; gap: 2px; text-align: right; line-height: 1.1; }
.ranking-source small { display: block; color: var(--muted); font-size: 9px; }
.range-control { display: grid; grid-template-columns: auto minmax(180px, 1fr) auto; gap: 8px; align-items: center; color: var(--muted); padding-top: 5px; }
.range-control input { width: 100%; accent-color: var(--green); }
.list { display: grid; gap: 8px; }
.filing { border-bottom: 1px solid var(--line); padding-bottom: 8px; }
.filing a { color: var(--green); text-decoration: none; }
.pending-view { min-height: 220px; display: grid; align-content: center; color: var(--soft); }
.pending-view p { color: var(--muted); }
.second-brain-workspace { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; padding: 8px; margin-bottom: 8px; }
.second-brain-content { display: grid; gap: 10px; }
.drawer { position: fixed; top: 0; right: 0; width: min(430px, 94vw); max-width: 94vw; height: 100vh; background: #1a1a22; border-left: 1px solid var(--line); box-shadow: -12px 0 30px rgba(0,0,0,.35); transform: translate3d(100%, 0, 0); transition: transform .18s ease; z-index: 10; padding: 14px; overflow: auto; overscroll-behavior: contain; }
.drawer:not(.open) { visibility: hidden; pointer-events: none; }
.drawer.open { transform: translateX(0); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.drawer-head button, .open-doc { border: 1px solid var(--line2); background: #191922; border-radius: 6px; padding: 7px 10px; color: var(--ink); text-decoration: none; cursor: pointer; }
.drawer-action { margin-top: 14px; }
.kv { display: grid; grid-template-columns: 130px 1fr; gap: 6px 10px; font-size: 12px; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; overflow-wrap: anywhere; }
.positive { color: var(--green); }
.negative { color: var(--red); }
@media (min-width: 900px) {
  .finance-toolbar { gap: 5px; overflow-x: visible; }
  .finance-toolbar .control-group > span {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .finance-toolbar .segmented button { padding: 4px 7px; min-width: 32px; }
  .finance-toolbar select { width: 142px; padding: 5px 8px; }
  .finance-toolbar .ratio-search-group input { width: 120px; padding: 5px 8px; }
  .finance-toolbar .kpi-period-basis-group .segmented button { padding: 4px 6px; }
  .finance-toolbar .check-control { gap: 4px; }
}
@media (max-width: 760px) {
  .rail { position: static; width: auto; display: flex; align-items: center; gap: 8px; overflow-x: auto; padding: 6px 8px; }
  .mark { margin: 0 8px 0 0; }
  .global-tools { display: flex; gap: 6px; }
  .tool { width: 34px; height: 32px; }
  .company-tabs { padding-top: 6px; }
  .company-tab { width: auto; min-width: 92px; min-height: 34px; white-space: nowrap; padding: 6px 10px; }
  .shell { margin-left: 0; width: 100%; max-width: 100vw; padding: 8px 10px; overflow-x: clip; }
  .topbar { align-items: flex-start; flex-direction: column; height: auto; gap: 6px; padding-bottom: 7px; }
  .identity { display: grid; grid-template-columns: 1fr; align-items: start; gap: 7px; padding: 8px; }
  .section-head { align-items: flex-start; flex-direction: column; height: auto; padding-bottom: 7px; }
  .identity-main { align-items: flex-start; gap: 8px; }
  .monogram { width: 36px; height: 36px; }
  .monogram.has-logo { width: 36px; height: 36px; }
  .quote { min-width: 0; border-left: 0; border-top: 1px solid var(--line); padding: 6px 0 0; width: 100%; }
  .quote strong { font-size: 19px; }
  .company-search { width: 100%; }
  .search { min-width: 0; width: 100%; }
  .search input { width: 100%; }
  .company-search-results { left: 0; }
  .company-search-result { grid-template-columns: 36px minmax(0, 1fr) auto; }
  .top-meta { flex-wrap: wrap; gap: 8px; }
  h1 { font-size: 19px; }
  h2 { font-size: 13px; margin-bottom: 7px; }
  #taxonomy { font-size: 11px; }
  .metric-strip, .grid2 { grid-template-columns: 1fr; }
  .overview-workspace, .stats-matrix { grid-template-columns: 1fr; }
  .overview-section { padding: 8px; }
  .price-panel { min-height: 365px; }
  .overview-price-chart { height: 300px; }
  .dividend-head, .dividend-chart-bar { flex-direction: column; align-items: stretch; }
  .dividend-chart { height: 280px; }
  .profile-grid { grid-template-columns: 92px 1fr; }
  .financial-chart { height: 55vh; min-height: 340px; max-height: 600px; }
  .kpi-revenue-mix-head { flex-direction: column; align-items: stretch; }
  .kpi-revenue-mix-grid { grid-template-columns: 1fr; }
  .kpi-revenue-mix-chart { height: 315px; }
  .kpi-campus-capacity-head { flex-direction: column; align-items: stretch; }
  .kpi-campus-capacity-chart { height: 300px; }
  .kpi-campus-capacity-sources { grid-template-columns: 1fr; }
  .kpi-pricing-range-head { flex-direction: column; align-items: stretch; }
  .kpi-pricing-range-grid { grid-template-columns: 1fr; }
  #kpi01569HistoricalFeeGrid { grid-template-columns: 1fr; }
  .kpi-pricing-range-chart { height: 190px; }
  .finance-toolbar { align-items: stretch; flex-wrap: wrap; gap: 6px; }
  .control-group { flex-wrap: wrap; }
  .statement-tabs { max-width: 100%; }
  .industry-head, .industry-toolbar { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; }
  .coverage-note { text-align: left; max-width: none; }
  .industry-control { grid-template-columns: 1fr; }
  .industry-kpi-heading { flex-direction: column; gap: 2px; }
  .industry-kpi-controls, .industry-kpi-map-controls { grid-template-columns: 1fr; }
  .industry-table-wrap { max-height: calc(100vh - 410px); }
  .chip-row button { max-width: 300px; overflow: hidden; text-overflow: ellipsis; }
  #financialTable, #selectedMetricTable { --financial-metric-col: 218px; --financial-value-col: 84px; }
  #financialTable.kpi-table { --financial-metric-col: 238px; --financial-value-col: 86px; }
  th:first-child, td:first-child { min-width: 210px; }
  th, td { height: 25px; padding: 2px 6px; }
  .financial-table-wrap { max-height: calc(100vh - 360px); }
  .ranking-table-wrap { max-height: 310px; }
  .statement-tabs button { min-width: 112px; min-height: 32px; padding: 5px 8px; }
  .range-control { grid-template-columns: 1fr; }
  .financial-timeline { grid-template-columns: 1fr 1fr; gap: 6px 12px; }
  .financial-timeline .range-tracks { grid-column: 1 / -1; grid-row: 2; min-width: 0; }
  .financial-timeline .range-date-chip { min-width: 0; width: fit-content; }
  .financial-timeline #rangeEndLabel { justify-self: end; }
}
.kpi-disclosures { margin-top: 4px; font-size: 11px; white-space: normal; }
.kpi-disclosures summary { cursor: pointer; }
.kpi-disclosures .text-action, .kpi-disclosures small { display: block; margin-top: 4px; white-space: normal; }

/* Palette theme layer */
body { background: var(--bg); color: var(--ink); }
.rail, .topbar { background: var(--rail); border-color: var(--line); }
.mark, .eyebrow, .text-action, .source-link, .filing a, .metric-strip .metric button { color: var(--green); }
.tool { color: var(--muted); }
.tool:hover, .tool:focus-visible { background: var(--control-hover); outline-color: var(--line2); }
.tool.active { background: var(--active-bg); border-color: var(--antique-gold); color: var(--active-ink); }
.theme-toggle {
  min-width: 52px;
  border: 1px solid var(--line2);
  border-radius: 5px;
  padding: 4px 8px;
  background: var(--control-bg);
  color: var(--ink);
  cursor: pointer;
}
.theme-toggle:hover, .theme-toggle:focus-visible { background: var(--control-hover); outline: 2px solid var(--antique-gold); outline-offset: 1px; }
.search input, .metric-search, .metric-search input, .ratio-search-group input, select,
.industry-control input, .industry-control button, .chip-row button, .industry-pager button,
.drawer-head button, .open-doc, .range-date-chip, .ranking-count {
  background: var(--input-bg);
  border-color: var(--line2);
  color: var(--ink);
}
.search input:focus, .metric-search:focus-within, .ratio-search-group input:focus-visible,
select:focus-visible, .industry-control input:focus-visible { outline: 1px solid var(--antique-gold); border-color: var(--antique-gold); }
.company-search-results, .company-search-result, .metric-search-results, .drawer {
  background: var(--drawer-bg);
  border-color: var(--line2);
  box-shadow: 0 12px 28px var(--shadow);
}
.company-search-result { border-bottom-color: var(--line); }
.company-search-result:hover, .company-search-result:focus-visible, .company-search-result.active,
.metric-search-results button:hover, .metric-search-results button:focus-visible {
  background: var(--control-hover);
}
.company-search-result .search-company strong { color: var(--ink); }
.identity, .band, .financial-workspace, .pending-view, .industry-workspace,
.overview-section, .dividend-workspace, .metric-strip .metric {
  background: var(--panel);
  border-color: var(--line);
}
.monogram { background: var(--soft-cream); color: var(--charcoal); border-color: var(--antique-gold); }
.quote { border-left-color: var(--line2); }
.company-tabs, .finance-toolbar, .financial-timeline, .industry-toolbar, .kpi-latest-group-nav { border-color: var(--line); }
.company-tab, .statement-tabs button, .segmented, .segmented button, .disabled-action,
.kpi-latest-group-links a, .icon-action {
  background: var(--control-bg);
  border-color: var(--line2);
  color: var(--soft);
}
.company-tab:hover, .company-tab:focus-visible, .segmented button:hover, .statement-tabs button:hover,
.kpi-latest-group-links a:hover { background: var(--control-hover); color: var(--ink); }
.company-tab.active, .segmented button.active, .statement-tabs button.active {
  background: var(--active-bg);
  color: var(--active-ink);
  border-color: var(--antique-gold);
}
.segmented button:disabled, .disabled-action:disabled { color: var(--muted); background: var(--surface); }
.overview-price-chart, .dividend-chart, .chart, .financial-chart, .financial-chart-card, .financial-card-chart {
  background: var(--chart-cream);
  border-color: var(--chart-gold);
}
.financial-chart-card header, .series-control {
  background: var(--chart-charcoal);
  color: var(--chart-cream);
  border-color: var(--chart-gold);
}
.financial-chart-workspace .financial-chart,
.financial-chart-workspace .financial-chart-card,
.financial-chart-workspace .financial-card-chart {
  background: #292932;
  border-color: #454552;
  border-radius: 4px;
  box-shadow: none;
}
.financial-chart-workspace .series-control,
.financial-chart-workspace .financial-chart-card header { background: #292932; border-color: #454552; color: #e3e3ed; }
.financial-chart-workspace .series-control strong { color: #e3e3ed; font-size: 12px; }
.financial-chart-workspace .series-type-switch { border-color: #50505e; }
.financial-chart-workspace .series-type-button.active { background: #19795e; color: #fff; }
.financial-chart-workspace .series-toggle.active { color: #50c9a3; }
.financial-table-wrap, .financial-table-wrap.kpi-table-wrap, .kpi-section-table-wrap,
.ranking-panel, .ranking-table-wrap, .dividend-table-wrap, .industry-table-wrap {
  background: var(--surface);
  border-color: var(--line2);
}
th, td { border-bottom-color: var(--line); border-right-color: color-mix(in srgb, var(--line2) 55%, transparent); }
th { background: var(--table-head); color: var(--active-ink); }
tbody tr:nth-child(odd) td, tbody tr:nth-child(odd) td:first-child { background: var(--table-row); }
tbody tr:nth-child(even) td, tbody tr:nth-child(even) td:first-child { background: var(--table-row-alt); }
th:first-child, td:first-child { background: var(--table-sticky); }
.kpi-table tbody tr td, .kpi-table tbody tr td:first-child { background: var(--table-row); }
.kpi-table tbody tr:nth-child(even) td, .kpi-table tbody tr:nth-child(even) td:first-child { background: var(--table-row-alt); }
.kpi-table tbody tr:hover td, .kpi-table tbody tr:hover td:first-child,
.ratio-table tbody tr.ratio-row:hover td, .ratio-table tbody tr.ratio-row:hover td:first-child {
  background: var(--control-hover);
}
.ratio-table tbody tr.ratio-row td, .ratio-table tbody tr.ratio-row td:first-child,
.ratio-table tbody tr.ratio-change-row td, .ratio-table tbody tr.ratio-change-row td:first-child {
  background: var(--surface);
  color: var(--soft);
}
.kpi-table .now-cell, .kpi-table .now-column, .kpi-table th:nth-child(2) {
  background: var(--panel2);
  border-right-color: var(--line2);
}
.kpi-table .statement-section-row td,
.kpi-table tbody tr.statement-section-row:nth-child(even) td,
.kpi-table tbody tr.statement-section-row:nth-child(odd) td,
.kpi-table tbody tr.statement-section-row td:first-child,
.statement-section-row td,
tbody tr.statement-section-row:nth-child(even) td,
tbody tr.statement-section-row:nth-child(odd) td,
tbody tr.statement-section-row td:first-child {
  background: var(--section-row);
  color: var(--active-ink);
  border-top-color: var(--surface);
  border-bottom-color: var(--line2);
}
.kpi-table .selected-metric-row td,
.kpi-table .selected-metric-row td:first-child { background: var(--selected-row); }
.financial-table tbody tr.common-size-row td,
.financial-table tbody tr.common-size-row td:first-child { background: color-mix(in srgb, var(--deep-burgundy) 64%, var(--surface)); color: var(--soft-cream); }
.financial-table tbody tr.common-size-row:hover td,
.financial-table tbody tr.common-size-row:hover td:first-child { background: color-mix(in srgb, var(--deep-burgundy) 78%, var(--surface)); }
.financial-table tbody tr.change-row td,
.financial-table tbody tr.change-row td:first-child,
.kpi-table tbody tr.change-row td,
.kpi-table tbody tr.change-row td:first-child { background: color-mix(in srgb, var(--panel2) 72%, var(--surface)); color: var(--soft); }
.financial-table tbody tr.change-row:hover td,
.financial-table tbody tr.change-row:hover td:first-child,
.kpi-table tbody tr.change-row:hover td,
.kpi-table tbody tr.change-row:hover td:first-child { background: var(--control-hover); }
.change-row .metric-cell { padding-left: 20px; }
td.null { color: var(--muted); }
.value-btn { text-decoration-color: var(--antique-gold); }
.ranking-panel-head, .stat-row { border-color: var(--line); }
.ranking-panel-head h2, .ranking-table td strong, .ranking-table .ranking-position { color: var(--ink); }
.drawer { border-left-color: var(--line2); }
.positive { color: var(--green); }
.negative { color: var(--red); }
.range-control input { accent-color: var(--green); }

/* ==========================================================================
   Premium UX polish — Overview / Industry / Dividends
   ========================================================================== */

/* -- Identity banner: subtle gradient + depth ---------------------------- */
.identity {
  background: linear-gradient(135deg, var(--panel) 0%, color-mix(in srgb, var(--deep-burgundy) 14%, var(--panel)) 100%);
  border-radius: 10px;
  box-shadow: 0 1px 0 rgba(255,255,255,.02) inset, 0 10px 28px var(--shadow);
  padding: 14px 16px;
}
.monogram {
  background: linear-gradient(160deg, var(--soft-cream), color-mix(in srgb, var(--antique-gold) 22%, var(--soft-cream)));
  box-shadow: 0 4px 12px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.06) inset;
  border-radius: 9px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.monogram.has-logo { background: #fff; }
.identity:hover .monogram { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.32), 0 0 0 1px rgba(255,255,255,.08) inset; }
.quote strong { background: linear-gradient(135deg, var(--ink), var(--antique-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* -- Company tabs: pill treatment with animated active underline --------- */
.company-tabs { gap: 6px; }
.company-tab {
  position: relative;
  border-radius: 7px;
  font-weight: 600;
  letter-spacing: .01em;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .12s ease;
}
.company-tab:hover { transform: translateY(-1px); }
.company-tab.active {
  background: linear-gradient(160deg, var(--active-bg), color-mix(in srgb, var(--active-bg) 72%, black));
  box-shadow: 0 6px 14px color-mix(in srgb, var(--active-bg) 45%, transparent);
}
.company-tab.active::after {
  content: "";
  position: absolute;
  left: 10px; right: 10px; bottom: -1px;
  height: 2px;
  border-radius: 2px;
  background: var(--antique-gold);
}

/* -- Section cards: refined elevation + accent header --------------------- */
.overview-section, .dividend-workspace, .guidance-workspace, .industry-workspace, .second-brain-workspace {
  border-radius: 11px;
  padding: 14px 15px;
  box-shadow: 0 1px 0 rgba(255,255,255,.02) inset, 0 6px 20px var(--shadow);
  transition: box-shadow .2s ease, border-color .2s ease;
}
.overview-section:hover, .dividend-workspace:hover, .guidance-workspace:hover, .industry-workspace:hover, .second-brain-workspace:hover {
  box-shadow: 0 1px 0 rgba(255,255,255,.02) inset, 0 10px 28px var(--shadow);
}
.overview-section h2, .dividend-head h2, .industry-head h2 {
  position: relative;
  padding-left: 12px;
  font-weight: 700;
  letter-spacing: .01em;
}
.overview-section h2::before, .dividend-head h2::before, .industry-head h2::before {
  content: "";
  position: absolute;
  left: 0; top: 2px; bottom: 2px;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--antique-gold), var(--deep-burgundy));
}

/* -- Second Brain: collapsible sections, card grid, evidence badges ------- */
.second-brain-section {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 4px 12px;
}

/* -- Guidance: dated management statements, distinct from reported results -- */
.guidance-workspace { background: var(--panel); border: 1px solid var(--line); margin-bottom: 8px; }
.guidance-caution { margin: 14px 0; padding: 10px 12px; border-left: 3px solid var(--antique-gold); background: var(--surface); color: var(--muted); line-height: 1.5; font-size: 13px; }
.guidance-reports { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.guidance-report { display: flex; flex-wrap: wrap; gap: 5px 10px; align-items: baseline; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font-size: 12px; }
.guidance-report strong { color: var(--text); }
.guidance-report span { color: var(--muted); }
.guidance-report a { flex-basis: 100%; overflow-wrap: anywhere; color: var(--green); }
.guidance-list { display: grid; gap: 20px; }
.guidance-group { min-width: 0; }
.guidance-group h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 6px; font-size: 15px; }
.guidance-group h3 span { color: var(--antique-gold); font-size: 12px; }
.guidance-group > .muted-line { margin: 0 0 10px; }
.guidance-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 12px; }
.guidance-card { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.guidance-card--quantified { border-color: var(--line2); }
.guidance-card-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.guidance-kind { padding: 3px 7px; border-radius: 4px; background: color-mix(in srgb, var(--antique-gold) 18%, transparent); color: var(--antique-gold); font-weight: 700; }
.guidance-card h3 { margin: 11px 0 8px; font-size: 17px; line-height: 1.3; }
.guidance-card p { margin: 0; line-height: 1.55; font-size: 13px; }
.guidance-target { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; }
.guidance-target span { display: grid; gap: 3px; font-size: 13px; }
.guidance-card--quantified .guidance-target span { color: var(--ink); font-size: 15px; font-weight: 650; }
.guidance-target strong { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.guidance-source { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 12px; margin-top: 16px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.guidance-source a { color: var(--green); }
.guidance-anchor { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.guidance-empty { color: var(--muted); }
.guidance-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
.guidance-table { width: 100%; min-width: 980px; border-collapse: collapse; font-size: 12px; }
.guidance-table th, .guidance-table td { padding: 10px 11px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.guidance-table thead th { background: var(--surface); color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.guidance-table tbody th { font-weight: 500; min-width: 180px; }
.guidance-table tbody tr:last-child th, .guidance-table tbody tr:last-child td { border-bottom: 0; }
.guidance-table small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 400; }
.guidance-table a { color: var(--green); white-space: nowrap; }
.guidance-table .guidance-number { color: var(--ink); font-size: 14px; font-weight: 700; min-width: 150px; }
.guidance-table details { min-width: 170px; max-width: 300px; }
.guidance-table summary { cursor: pointer; color: var(--green); }
.guidance-table details p { margin: 8px 0 4px; line-height: 1.45; }
@media (max-width: 680px) { .guidance-reports { grid-template-columns: 1fr; } }
.second-brain-section + .second-brain-section { margin-top: 0; }
.second-brain-section summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 2px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.second-brain-section summary::-webkit-details-marker { display: none; }
.second-brain-section summary::before {
  content: "";
  width: 0; height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid var(--muted);
  transition: transform .15s ease;
  flex: 0 0 auto;
}
.second-brain-section[open] > summary::before { transform: rotate(90deg); }
.second-brain-section summary h3 {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--soft);
}
.second-brain-section summary:hover h3 { color: var(--antique-gold); }
.second-brain-section summary::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--line); }
.second-brain-note-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
  padding: 2px 2px 12px;
}
.second-brain-note {
  background: var(--panel);
  border: 1px solid var(--line);
  border-left: 3px solid var(--line2);
  border-radius: 7px;
  padding: 9px 10px;
  transition: border-color .15s ease, transform .12s ease, box-shadow .15s ease;
}
.second-brain-note:hover {
  border-color: var(--antique-gold);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px var(--shadow);
}
.second-brain-note[data-sb-tier="fact"] { border-left-color: var(--green); }
.second-brain-note[data-sb-tier="interpretation"] { border-left-color: var(--antique-gold); }
.second-brain-note[data-sb-tier="claim"] { border-left-color: var(--muted); }
.second-brain-note-title { font-weight: 600; font-size: 12px; line-height: 1.35; }
.second-brain-note-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.second-brain-note-meta { color: var(--muted); font-size: 10px; margin-top: 6px; word-break: break-word; }
.second-brain-note .sb-evidence-btn { display: inline-block; margin-top: 7px; }

.sb-badge {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}
.sb-badge-fact { background: color-mix(in srgb, var(--green) 20%, transparent); color: var(--green); }
.sb-badge-interpretation { background: color-mix(in srgb, var(--antique-gold) 22%, transparent); color: var(--antique-gold); }
.sb-badge-claim { background: color-mix(in srgb, var(--muted) 16%, transparent); color: var(--muted); }
.sb-badge-good { background: color-mix(in srgb, var(--green) 20%, transparent); color: var(--green); }
.sb-badge-warn { background: color-mix(in srgb, var(--antique-gold) 22%, transparent); color: var(--antique-gold); }
.sb-badge-muted { background: color-mix(in srgb, var(--muted) 14%, transparent); color: var(--muted); }
.sb-badge-count {
  background: color-mix(in srgb, var(--antique-gold) 18%, transparent);
  color: var(--antique-gold);
  font-size: 10px;
  padding: 2px 9px;
}
.sb-badge-view {
  background: color-mix(in srgb, var(--deep-burgundy) 55%, var(--antique-gold) 45%);
  color: var(--soft-cream);
  font-size: 10px;
  padding: 3px 10px;
}
.sb-evidence-btn.sb-evidence-fail { color: var(--muted); cursor: help; }

/* -- Second Brain: Company Note gets a wider, structured layout ----------- */
.second-brain-note--company {
  grid-column: 1 / -1;
  border-left-width: 3px;
  border-left-color: var(--antique-gold);
}
.sb-company-block { margin-top: 10px; line-height: 1.5; }
.sb-company-block:first-of-type { margin-top: 8px; }
.sb-company-block ul { margin: 4px 0 0; padding-left: 18px; }
.sb-company-block li { margin-top: 3px; }
.sb-company-block li::marker { color: var(--antique-gold); }

/* -- Second Brain: per-card "see full note" expansion ---------------------- */
.sb-note-details { margin-top: 8px; }
.sb-note-details summary {
  color: var(--green);
  font-size: 11px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.sb-note-details summary::-webkit-details-marker { display: none; }
.sb-note-details[open] summary { margin-bottom: 6px; }
.sb-note-details-body {
  border-top: 1px solid var(--line);
  padding-top: 8px;
  max-height: 340px;
  overflow-y: auto;
}
.sb-note-details-body p { margin: 0 0 8px; line-height: 1.5; font-size: 12px; color: var(--soft); }
.sb-note-details-body p:last-child { margin-bottom: 0; }

/* -- Company Statistics: interactive stat rows ---------------------------- */
.stat-group h3 {
  display: flex;
  align-items: center;
  gap: 6px;
  letter-spacing: .06em;
}
.stat-group h3::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--line); }
.stat-row {
  border-radius: 6px;
  padding: 5px 6px;
  margin: 0 -6px;
  transition: background-color .15s ease, transform .12s ease;
}
.stat-row:hover { background: var(--control-hover); transform: translateX(1px); }
.stat-row strong { font-variant-numeric: tabular-nums; transition: color .15s ease; }
.stat-row:hover strong { color: var(--antique-gold); }

/* -- Description / profile polish ----------------------------------------- */
.text-action {
  border-radius: 4px;
  padding: 2px 4px;
  margin: 0 -4px;
  transition: background-color .15s ease, transform .12s ease;
}
.text-action:hover { background: var(--control-hover); transform: translateY(-1px); }
.profile-grid dt { font-weight: 600; letter-spacing: .02em; }

/* -- Source citation tags: small, quiet, and aligned to their value ------- */
.source-link {
  display: inline-block;
  vertical-align: 1px;
  margin-left: 6px;
  padding: 1px 5px;
  border: 1px solid var(--line2);
  border-radius: 3px;
  background: var(--control-bg);
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}
.source-link:hover, .source-link:focus-visible {
  color: var(--antique-gold);
  border-color: var(--antique-gold);
  background: var(--control-hover);
}
/* Pin the source tag to the value column (not the label column) in stat rows,
   and let it sit on its own line under the value/note rather than breaking
   the row's column alignment. */
.stat-row { position: relative; }
.stat-row > .source-link {
  grid-column: 2;
  justify-self: start;
  margin-left: 0;
  margin-top: 2px;
}

/* -- Segmented controls (price range / dividend range / chart type) ------- */
.segmented { box-shadow: 0 1px 0 rgba(255,255,255,.03) inset, 0 3px 10px rgba(0,0,0,.14); }
.segmented button, .statement-tabs button {
  transition: background-color .15s ease, color .15s ease, transform .1s ease;
}
.segmented button:hover:not(.active):not(:disabled) { background: var(--control-hover); transform: translateY(-1px); }
.segmented button.active {
  background: linear-gradient(160deg, var(--active-bg), color-mix(in srgb, var(--active-bg) 72%, black));
  box-shadow: 0 3px 10px color-mix(in srgb, var(--active-bg) 40%, transparent);
  font-weight: 650;
}

/* -- Price / dividend chart chrome ----------------------------------------- */
.overview-price-chart, .dividend-chart {
  transition: box-shadow .2s ease;
}
.price-panel:hover .overview-price-chart, .dividend-workspace:hover .dividend-chart {
  box-shadow: inset 0 0 0 1px rgba(166,130,74,.22), 0 10px 30px rgba(16,17,17,.28);
}
.dividend-chart { background: #282930; border-color: var(--line); }
.dividend-chart-bar { justify-content: flex-start; align-items: center; }
.dividend-chart-bar .segmented { margin-left: auto; }
#downloadDividendChart { margin-left: auto; }
@media (max-width: 760px) {
  .dividend-chart-bar { align-items: stretch; }
  .dividend-chart-bar .segmented, #downloadDividendChart { margin-left: 0; }
}

/* -- Dividend table: fixed, sane column widths ------------------------------
   This table had no table-layout/width rules of its own, so the browser's
   default auto-layout algorithm dumped most of the table's surplus width
   into the first column (Ex Date ballooned to 300px+) while the change/TTM
   columns were squeezed - badges ended up visually crowded together instead
   of sitting cleanly under their own header. Fixed layout + explicit
   per-column widths (plus overriding the generic 260px sticky first-column
   rule, which doesn't apply to a table this narrow) fixes both problems. */
#dividendTable {
  table-layout: fixed;
  width: 100%;
  min-width: 640px;
}
#dividendTable th:first-child, #dividendTable td:first-child {
  position: static;
  min-width: 0;
  width: 11%;
}
#dividendTable th, #dividendTable td { overflow-wrap: anywhere; }
#dividendTable td:nth-child(4) { text-align: left; }

/* Uniform, centered delta badges so "vs Prior" / "YoY" / TTM YoY line up
   cleanly under their headers regardless of digit count. */
#dividendTable .positive, #dividendTable .negative {
  min-width: 58px;
  justify-content: center;
}
#dividendTable td .null { padding: 2px 6px; }

/* Combined "value + change" cell used for TTM Dividends. */
.ttm-cell {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
}
.ttm-cell strong { font-variant-numeric: tabular-nums; }

/* -- Industry: pill-style chips -------------------------------------------- */
.chip-row { gap: 7px; }
.chip-row button, .chip-row .fixed-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 5px 12px;
  background: var(--input-bg);
  border: 1px solid var(--line2);
  transition: background-color .15s ease, border-color .15s ease, transform .12s ease, box-shadow .15s ease;
}
.chip-row .fixed-chip { color: var(--ink); }
.chip-row button:hover {
  background: color-mix(in srgb, var(--antique-gold) 14%, var(--input-bg));
  border-color: var(--antique-gold);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
#industryCompanyChips button { border-color: color-mix(in srgb, var(--emerald) 55%, var(--line2)); }
#industryCompanyChips button:hover { background: color-mix(in srgb, var(--emerald) 16%, var(--input-bg)); border-color: var(--emerald); }

/* -- Industry: controls + target-row highlight ------------------------------ */
.industry-control button, #industryAddMetric, #industryAddCompany, #industryExportCsv {
  transition: background-color .15s ease, border-color .15s ease, transform .12s ease;
}
.industry-control button:hover, #industryExportCsv:hover {
  background: var(--control-hover);
  border-color: var(--antique-gold);
  transform: translateY(-1px);
}
.industry-table tbody tr { transition: background-color .12s ease; }
.industry-table tbody tr:hover td { background: var(--control-hover) !important; }
.industry-table tr.target-row td {
  background: color-mix(in srgb, var(--antique-gold) 16%, var(--table-row)) !important;
  font-weight: 600;
  border-top: 1px solid var(--antique-gold);
  border-bottom: 1px solid var(--antique-gold);
}
.industry-table tr.target-row td:first-child { border-left: 3px solid var(--antique-gold); }
.industry-table tr.target-row:hover td { background: color-mix(in srgb, var(--antique-gold) 24%, var(--table-row)) !important; }

/* -- Industry: clean coverage badge (replaces the old 3-line status text) -- */
.coverage-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  cursor: help;
}
.coverage-badge.coverage-live { background: color-mix(in srgb, var(--green) 20%, transparent); color: var(--green); }
.coverage-badge.coverage-partial { background: color-mix(in srgb, var(--antique-gold) 22%, transparent); color: var(--antique-gold); }
.coverage-badge.coverage-none { background: color-mix(in srgb, var(--muted) 14%, transparent); color: var(--muted); }

/* -- Industry: leader/laggard highlighting for at-a-glance comparison ------ */
.industry-table td.rank-leader {
  background: color-mix(in srgb, var(--green) 14%, transparent) !important;
  font-weight: 700;
  position: relative;
}
.industry-table td.rank-leader::before {
  content: "▲";
  font-size: 8px;
  margin-right: 4px;
  color: var(--green);
  vertical-align: 1px;
}
.industry-table td.rank-laggard {
  background: color-mix(in srgb, var(--red) 12%, transparent) !important;
  color: var(--red);
}
.industry-table tr.target-row td.rank-leader { background: color-mix(in srgb, var(--green) 26%, var(--antique-gold) 16%) !important; }
.industry-table tr.target-row td.rank-laggard { background: color-mix(in srgb, var(--red) 22%, var(--antique-gold) 16%) !important; }
.industry-pager button {
  border-radius: 999px;
  padding: 5px 12px;
  transition: background-color .15s ease, border-color .15s ease, transform .12s ease;
}
.industry-pager button:hover:not(:disabled) { background: var(--control-hover); border-color: var(--antique-gold); transform: translateY(-1px); }
.industry-pager span { font-variant-numeric: tabular-nums; font-weight: 600; }

/* -- Sortable column headers: hover + active indicator --------------------- */
th button[data-div-sort], th button[data-ind-sort] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 3px;
  padding: 1px 3px;
  margin: -1px -3px;
  transition: background-color .15s ease, color .15s ease;
}
th button[data-div-sort]:hover, th button[data-ind-sort]:hover { background: var(--control-hover); color: var(--antique-gold); }
th button.sort-active { color: var(--antique-gold); font-weight: 700; }
.sort-arrow { font-size: 9px; color: var(--antique-gold); }

/* -- Dividend table: badge-style change columns ----------------------------- */
#dividendTable .positive, #dividendTable .negative {
  display: inline-flex;
  align-items: center;
  border-radius: 4px;
  padding: 2px 6px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
#dividendTable .positive { background: color-mix(in srgb, var(--green) 16%, transparent); }
#dividendTable .negative { background: color-mix(in srgb, var(--red) 16%, transparent); }
#dividendTable tbody tr { transition: background-color .12s ease; }
#dividendTable tbody tr:hover td { background: var(--control-hover) !important; }
.dividend-table-wrap, .industry-table-wrap { transition: box-shadow .2s ease; }

/* -- View switch: gentle fade-in -------------------------------------------- */
.view.active { animation: hkft-fade-in .22s ease; }
@keyframes hkft-fade-in {
  from { opacity: 0; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

/* -- Slim, premium scrollbars on data surfaces ------------------------------ */
.industry-table-wrap, .dividend-table-wrap, .financial-table-wrap, .ranking-table-wrap {
  scrollbar-width: thin;
  scrollbar-color: var(--line2) transparent;
}
.industry-table-wrap::-webkit-scrollbar, .dividend-table-wrap::-webkit-scrollbar,
.financial-table-wrap::-webkit-scrollbar, .ranking-table-wrap::-webkit-scrollbar { width: 9px; height: 9px; }
.industry-table-wrap::-webkit-scrollbar-thumb, .dividend-table-wrap::-webkit-scrollbar-thumb,
.financial-table-wrap::-webkit-scrollbar-thumb, .ranking-table-wrap::-webkit-scrollbar-thumb {
  background: var(--line2); border-radius: 5px; border: 2px solid transparent; background-clip: padding-box;
}
.industry-table-wrap::-webkit-scrollbar-thumb:hover, .dividend-table-wrap::-webkit-scrollbar-thumb:hover,
.financial-table-wrap::-webkit-scrollbar-thumb:hover, .ranking-table-wrap::-webkit-scrollbar-thumb:hover { background: var(--antique-gold); }

/* -- Focus rings: consistent, premium ---------------------------------------- */
.chip-row button:focus-visible, .industry-pager button:focus-visible, .company-tab:focus-visible,
th button[data-div-sort]:focus-visible, th button[data-ind-sort]:focus-visible {
  outline: 2px solid var(--antique-gold);
  outline-offset: 2px;
}


/* HKEX filings / news layer (fiscal_platform, 2026-09-23) */
.filings-workspace { padding: 16px 20px; }
.filings-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: flex-end; margin-bottom: 12px; }
.filings-controls { display: flex; flex-wrap: wrap; gap: 8px; }
.filings-controls select, .filings-controls input { min-width: 0; }
.filings-table { width: 100%; border-collapse: collapse; table-layout: auto; font-size: 13px; }
.filings-table th { text-align: left; font-weight: 600; padding: 6px 8px; border-bottom: 1px solid color-mix(in srgb, currentColor 25%, transparent); position: sticky; top: 0; background: var(--panel, inherit); }
.filings-table td { vertical-align: top; text-align: left; padding: 6px 8px; border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent); }
.filings-table td:nth-child(2) { min-width: 320px; }
.filing-title-link { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.filings-table .nowrap { white-space: nowrap; }
.filing-sub { display: block; opacity: 0.7; font-size: 0.85em; margin-top: 2px; }
.filing-class { font-weight: 600; }
.filing-status { display: inline-block; padding: 1px 6px; border-radius: 4px; font-size: 0.85em; background: color-mix(in srgb, var(--antique-gold, #b8860b) 18%, transparent); }
.filing-status.status-processed { background: color-mix(in srgb, var(--emerald, #2e7d5b) 22%, transparent); }
.filing-status.status-processing_failed { background: color-mix(in srgb, var(--deep-burgundy, #7a1f2b) 28%, transparent); }
.filing-status.status-news_only { background: color-mix(in srgb, currentColor 10%, transparent); }
.open-doc-secondary { margin-left: 12px; }
.url-cell { word-break: break-all; }

/* Overview: compact company card, balanced statistics, and a legible chart. */
#overview .overview-workspace { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
#overview .overview-left { gap: 12px; align-content: start; }
#overview .overview-right { display: block; }
#overview .overview-section { padding: 17px 18px; }
#overview .overview-section h2 { margin-bottom: 12px; font-size: 15px; }
#overview .description { max-width: none; line-height: 1.55; }
#overview .overview-description-actions { display: flex; align-items: center; gap: 8px; min-height: 16px; margin-top: 3px; }
#overview .overview-description-actions:has(> #showMoreDescription[style*="none"]):has(> #companyDescriptionSource:empty) { display: none; }
#overview .overview-description-actions .source-link { margin-left: 0; }
#overview .overview-profile { margin-top: 16px; padding-top: 10px; border-top: 1px solid var(--line); }
#overview .profile-grid { grid-template-columns: minmax(110px, 25%) minmax(0, 1fr); gap: 0; }
#overview .profile-grid dt, #overview .profile-grid dd { padding: 7px 0; border-bottom: 1px solid var(--line); line-height: 1.35; }
#overview .profile-grid dt { padding-right: 12px; }
#overview .profile-grid dd { padding-left: 12px; }
#overview .profile-grid dt { font-weight: 500; letter-spacing: 0; }
#overview .profile-grid dd { text-align: right; }
#overview .profile-grid dd a { color: var(--soft); text-decoration-color: var(--amber); }
#overview .profile-grid dd a:hover { color: var(--ink); }
#overview .profile-grid .source-link { margin-left: 5px; }
#overview .profile-missing-note { margin: 7px 0 0; color: var(--muted); font-size: 10px; }
#overview .detail-drawer { margin-top: 8px; }
#overview .stats-matrix { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
#overview .stats-matrix.foundation-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#overview .stat-column { display: grid; align-content: start; gap: 17px; min-width: 0; }
#overview .stat-group { min-width: 0; }
#overview .stat-group h3 { margin: 0 0 6px; color: var(--ink); text-transform: none; font-size: 11px; letter-spacing: .02em; }
#overview .stat-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px; align-items: start; min-height: 0; margin: 0; padding: 5px 0; border-radius: 0; }
#overview .stat-row:hover { transform: none; }
#overview .stat-label { min-width: 0; color: var(--soft); line-height: 1.3; overflow-wrap: anywhere; }
#overview .stat-label small { display: block; max-width: 100%; margin-top: 2px; color: var(--muted); font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#overview .stat-value { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 4px; min-width: 0; text-align: right; }
#overview .stat-value strong { color: var(--ink); font-size: 11px; font-weight: 600; white-space: nowrap; }
#overview .stat-value .source-link { flex: none; width: 13px; height: 14px; padding: 0; margin: 0; border: 0; background: none; font-size: 0; line-height: 1; }
#overview .stat-value .source-link::after { content: "↗"; font-size: 12px; }
#overview .overview-kpi-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
#overview .overview-kpi-grid .overview-more-link { grid-column: 1 / -1; margin-top: 10px; }
#overview .price-panel { min-height: 0; }
#overview .price-panel { background: var(--panel); border-color: var(--line); }
#overview .price-head { align-items: flex-start; gap: 16px; margin-bottom: 16px; }
#overview .price-head > div { min-width: 0; }
#overview .price-eyebrow { display: block; margin-bottom: 5px; color: #9babbc; font-size: 9px; font-weight: 750; letter-spacing: .13em; }
#overview .price-head h2 { margin: 0 0 5px; font-size: 17px; letter-spacing: -.02em; }
#overview .muted-line { line-height: 1.4; }
#overview .price-hero { display: flex; align-items: end; flex-wrap: wrap; gap: 8px 22px; padding: 15px 0 9px; }
#overview .price-hero > div { display: grid; align-content: end; gap: 3px; min-width: 0; }
#overview .price-hero .price-hero-main strong { color: #f3f5f6; font-size: clamp(25px, 2.7vw, 37px); line-height: 1.08; font-weight: 730; letter-spacing: -.045em; white-space: nowrap; }
#overview .price-hero .price-hero-movement { padding-bottom: 2px; }
#overview .price-hero .price-hero-movement strong { font-size: 16px; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
#overview .price-hero .price-hero-meta { margin-left: auto; padding-bottom: 2px; text-align: right; }
#overview .price-hero span, #overview .price-hero small { color: #9aabba; font-size: 10px; line-height: 1.35; }
#overview .price-hero .is-positive, #overview .price-horizons .is-positive, #overview .price-compare-chip .is-positive { color: #78d4a9; }
#overview .price-hero .is-negative, #overview .price-horizons .is-negative, #overview .price-compare-chip .is-negative { color: #f0838b; }
#overview .price-horizons { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
#overview .price-returns-details { margin-top: 12px; border-top: 1px solid #394452; padding-top: 11px; }
#overview .price-returns-details summary { color: #b8c5d2; font-size: 11px; font-weight: 650; cursor: pointer; }
#overview .price-returns-details summary:hover { color: #f3f5f6; }
#overview .price-horizon { display: grid; gap: 4px; min-width: 0; padding: 9px 10px; text-align: left; border: 1px solid var(--line2); border-radius: 8px; background: var(--control-bg); cursor: pointer; }
#overview .price-horizon:hover, #overview .price-horizon:focus-visible { background: var(--control-hover); outline: none; border-color: var(--line2); }
#overview .price-horizon.active { border-color: var(--green); background: var(--selected-row); }
#overview .price-horizon span { color: #a8b3bf; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#overview .price-horizon strong { color: #f3f5f6; font-size: 13px; font-weight: 700; white-space: nowrap; }
#overview .price-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; border-bottom: 1px solid #3a4552; }
#overview .price-metric-picker { position: relative; z-index: 4; min-width: 177px; font-size: 11px; }
#overview .price-metric-trigger { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; height: 35px; padding: 0 11px; border: 1px solid var(--line2); border-radius: 7px; background: var(--control-bg); color: var(--ink); text-align: left; font: inherit; font-weight: 600; cursor: pointer; }
#overview .price-metric-trigger:hover, #overview .price-metric-trigger[aria-expanded="true"] { border-color: var(--line2); background: var(--control-hover); }
#overview .price-metric-trigger:focus-visible { outline: 2px solid #83baa6; outline-offset: 2px; }
#overview .price-metric-chevron { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
#overview .price-metric-trigger[aria-expanded="true"] .price-metric-chevron { transform: translateY(2px) rotate(225deg); }
#overview .price-metric-menu { position: absolute; top: calc(100% + 5px); right: 0; min-width: 100%; padding: 4px; border: 1px solid var(--line2); border-radius: 8px; background: var(--drawer-bg); box-shadow: 0 18px 40px var(--shadow); }
#overview .price-metric-menu[hidden] { display: none; }
#overview .price-metric-menu button { display: block; width: 100%; min-height: 35px; padding: 7px 10px; border: 0; border-radius: 5px; background: transparent; color: #dde4ec; text-align: left; white-space: nowrap; font: inherit; cursor: pointer; }
#overview .price-metric-menu button:hover, #overview .price-metric-menu button:focus-visible { background: var(--control-hover); color: var(--ink); outline: none; }
#overview .price-metric-menu button[aria-selected="true"] { background: var(--selected-row); color: var(--green); font-weight: 700; }
#overview .price-ranges { display: flex; flex-wrap: wrap; box-shadow: none; }
#overview .price-ranges button { padding: 6px 8px; }
#overview .price-compare-picker { position: relative; flex: 0 1 182px; min-width: 155px; z-index: 2; }
#overview .price-symbol-bar { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 7px 9px; border: 1px solid var(--line2); border-radius: 8px; background: var(--surface); }
#overview .price-compare-picker input { width: 100%; height: 30px; padding: 5px 10px; border: 1px solid var(--line2); border-radius: 6px; background: var(--input-bg); color: var(--ink); outline: none; }
#overview .price-compare-picker input:focus { border-color: #83baa6; box-shadow: 0 0 0 2px rgba(114,211,166,.13); }
#overview .price-compare-picker input::placeholder { color: #b5c0cc; }
#overview .price-compare-results { position: absolute; top: calc(100% + 5px); right: 0; width: min(380px, 88vw); max-height: 290px; overflow: auto; border: 1px solid var(--line2); border-radius: 8px; background: var(--drawer-bg); box-shadow: 0 16px 38px var(--shadow); }
#overview .price-compare-results button { display: flex; gap: 10px; align-items: center; width: 100%; padding: 10px 12px; border: 0; border-bottom: 1px solid #394452; background: transparent; color: #f3f5f6; text-align: left; cursor: pointer; }
#overview .price-compare-results button:hover, #overview .price-compare-results button:focus-visible { background: var(--control-hover); outline: none; }
#overview .price-compare-results button span { color: #78d4a9; font-weight: 700; }
#overview .price-compare-results button strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 550; }
#overview .price-compare-empty { padding: 12px; color: #b5c0cc; }
#overview .price-compare-chips { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 6px; }
#overview .price-compare-chip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; min-height: 26px; padding: 3px 7px; border: 1px solid var(--line2); border-radius: 6px; background: var(--control-bg); color: var(--ink); font-size: 10px; }
#overview .price-compare-chip.is-unavailable { opacity: .66; }
#overview .price-compare-chip .price-compare-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--series-color); }
#overview .price-compare-chip .price-compare-name { max-width: 125px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #aeb9c5; }
#overview .price-compare-chip em { font-style: normal; font-weight: 700; white-space: nowrap; }
#overview .price-compare-chip button { width: 17px; height: 17px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #b8c4cf; cursor: pointer; font-size: 16px; line-height: 1; }
#overview .price-compare-chip button:hover { color: var(--ink); background: var(--control-hover); }
#overview .price-chart-note { min-height: 15px; margin: 9px 0 0; color: #9fadb9; font-size: 10px; line-height: 1.4; }
#overview .overview-price-chart { height: min(62vh, 640px); min-height: 460px; background: var(--surface); border: 1px solid var(--line2); border-radius: 9px; box-shadow: inset 0 1px 0 rgba(255,255,255,.03); }

@media (max-width: 1500px) {
  #overview .stats-matrix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
  #overview .overview-workspace { grid-template-columns: 1fr; }
  #overview .stats-matrix { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #overview .overview-price-chart { height: 520px; }
}
@media (max-width: 760px) {
  #overview .overview-section { padding: 13px; }
  #overview .profile-grid { grid-template-columns: minmax(90px, 28%) minmax(0, 1fr); }
  #overview .stats-matrix, #overview .stats-matrix.foundation-stats { grid-template-columns: 1fr; }
  #overview .overview-kpi-grid { grid-template-columns: 1fr; }
  #overview .price-hero { align-items: start; gap: 8px 15px; }
  #overview .price-hero .price-hero-meta { flex-basis: 100%; margin-left: 0; text-align: left; }
  #overview .price-horizons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #overview .price-symbol-bar { flex-wrap: wrap; }
  #overview .price-compare-picker { flex: 1 1 100%; }
  #overview .price-metric-picker { flex: 1 1 100%; }
  #overview .overview-price-chart { height: 350px; min-height: 350px; }
}

/* School comparison lives below the financial peer matrix. */
.industry-school-workspace { margin-top: 16px; padding: 14px 16px; }
.industry-school-workspace .school-rank-heading { margin-bottom: 8px; align-items: center; }
.industry-school-workspace .school-rank-heading h2 { font-size: 18px; margin: 2px 0; }
.industry-school-heading-actions { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: 10px; }
.industry-school-workspace .segmented { display: inline-flex; margin-bottom: 7px; flex-wrap: wrap; }
.industry-school-workspace .segmented button { padding: 5px 11px; font-size: 11px; }
.industry-school-controls { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 8px; padding: 8px; background: var(--control-bg); border: 1px solid var(--line); border-radius: 6px; }
.industry-school-controls label, .industry-school-subject-search { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: 11px; min-width: 0; }
.industry-school-controls input, .industry-school-controls select, .industry-school-subject-search input { width: 100%; height: 29px; min-width: 0; border: 1px solid var(--line2); border-radius: 5px; padding: 0 8px; background: var(--input-bg); color: var(--ink); font-size: 11px; }
.industry-school-controls :focus-visible, .industry-school-workspace button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.industry-school-search { grid-column: span 2; }
.industry-school-leader { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 10px; margin: 7px 0; border: 1px solid #426951; border-radius: 8px; background: linear-gradient(110deg, #183127, var(--surface)); }
.industry-school-leader > span { color: #a4d2b5; font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.industry-school-leader small { display: block; color: var(--muted); font-weight: 400; font-size: 10px; margin-top: 5px; letter-spacing: 0; }
.industry-school-leader > div { display: flex; flex-wrap: wrap; gap: 10px; }
.industry-school-leader button { display: flex; align-items: center; gap: 12px; padding: 4px; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.industry-school-results { overflow-x: auto; margin-top: 7px; border: 1px solid var(--line); border-radius: 6px; }
.industry-school-table { width: 100%; min-width: 960px; table-layout: fixed; }
.industry-school-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.industry-school-table thead th { position: sticky; top: 0; z-index: 2; background: var(--table-head); white-space: normal; }
.industry-school-table th, .industry-school-table td { vertical-align: middle; padding: 5px 8px; white-space: normal; font-size: 11px; }
.industry-school-table thead th:first-child { width: 28%; }
.industry-school-table thead th:nth-child(2) { width: 20%; }
.industry-school-table tbody > tr > th:first-child { min-width: 0; }
.industry-school-table .industry-school-group th { padding: 5px 8px; background: var(--section-row); color: #bba781; font-size: 10px; font-weight: 650; letter-spacing: .025em; }
.industry-school-name { display: flex; align-items: center; width: 100%; gap: 7px; padding: 0; border: 0; background: transparent; text-align: left; color: var(--ink); cursor: pointer; }
.industry-school-name > span { min-width: 0; }
.industry-school-name strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.4; font-size: 11px; }
.industry-school-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.industry-school-logo { width: 28px; height: 28px; padding: 2px; flex: none; object-fit: contain; border-radius: 6px; background: #fff; }
.industry-school-logo.company { width: 24px; height: 24px; }
.industry-school-placeholder { display: grid; place-items: center; background: var(--control-bg); color: var(--muted); border: 1px dashed var(--line2); }
.industry-school-table small { display: block; font-size: 9px; color: var(--muted); line-height: 1.35; margin-top: 1px; }
.industry-school-table .industry-school-status { color: #b6a584; font-size: 9px; }
.industry-school-owner { display: flex; gap: 6px; align-items: center; color: var(--ink); text-decoration: none; min-width: 0; }
.industry-school-owner > span { min-width: 0; }
.industry-school-table .industry-school-owner small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.industry-school-owner:hover strong { text-decoration: underline; }
.industry-school-owner strong { display: block; font-size: 10px; }
.industry-school-owner small { display: block; color: var(--muted); font-size: 10px; line-height: 1.5; }
.industry-school-rank { display: block; font-variant-numeric: tabular-nums; line-height: 1.35; }
.industry-school-rank strong { display: inline; color: var(--ink); font-size: 12px; }
.industry-school-rank > span { font-size: 9px; color: var(--muted); white-space: nowrap; }
.industry-school-rank > small { font-size: 9px; color: var(--muted); }
.industry-school-selected-rank .industry-school-rank strong { color: #9bd3b0; font-size: 13px; }
.industry-school-missing { color: var(--muted); }
.industry-school-detail-button { border: 1px solid var(--line2); border-radius: 5px; padding: 4px 7px; background: var(--control-bg); color: var(--ink); white-space: nowrap; cursor: pointer; font-size: 10px; }
.industry-school-selected > th, .industry-school-selected > td { background: #1c2a22; }
.industry-school-table tr.target-row > th, .industry-school-table tr.target-row > td { background: var(--selected-row) !important; border-top: 1px solid var(--antique-gold); border-bottom: 1px solid var(--antique-gold); }
.industry-school-table tr.target-row > th:first-child { border-left: 3px solid #b69a68; }
.industry-school-target-badge { display: inline-block; margin-left: 4px; padding: 1px 4px; border: 1px solid var(--line2); border-radius: 3px; color: var(--soft-cream); font-size: 8px; font-weight: 500; }
.industry-school-detail { padding: 4px 7px; max-width: 1450px; white-space: normal; }
.industry-school-detail > header { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.industry-school-detail h3 { margin: 5px 0; font-size: 12px; }
.industry-school-detail h3 small { display: inline; font-size: 10px; font-weight: 400; color: var(--muted); }
.industry-school-detail .school-rank-note { margin: 5px 0; font-size: 10px; line-height: 1.4; }
.industry-school-detail .school-rank-source { gap: 4px 10px; align-items: center; font-size: 10px; }
.industry-school-detail-category { margin: 3px 0; font-size: 10px; color: var(--muted); }
.industry-school-detail .school-rank-tiles { grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 5px; margin: 6px 0; }
.industry-school-detail .school-rank-tile { padding: 5px 7px; }
.industry-school-detail .school-rank-tile small { font-size: 9px; line-height: 1.3; }
.industry-school-detail .school-rank-tile strong { display: inline-block; margin: 2px 5px 0 0; font-size: 15px; }
.industry-school-detail .school-rank-tile span { font-size: 9px; }
/* History already appears in the complete table; omit the duplicate cards. */
.industry-school-detail .school-rank-timeline { display: none; }
.industry-school-detail .school-rank-table-wrap { max-height: 300px; margin: 5px 0 8px; }
.industry-school-detail .school-rank-table th, .industry-school-detail .school-rank-table td { padding: 4px 7px; font-size: 10px; line-height: 1.35; }
.industry-school-detail .industry-school-rank strong { font-size: 11px; }
.industry-school-subject-search { max-width: 250px; margin: 6px 0; }
.industry-school-detail-section { margin: 5px 0 0; padding: 5px 0; border-top: 1px solid var(--line); }
.industry-school-detail-section > summary { color: var(--soft); font-size: 11px; cursor: pointer; }
.industry-school-operators { margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 7px; }
.industry-school-operators summary { cursor: pointer; color: var(--muted); font-size: 11px; }
.industry-school-method summary { cursor: pointer; color: var(--muted); font-size: 11px; }
.industry-school-detail a { color: var(--antique-gold); }
.industry-school-table > tbody > tr > td:nth-child(2) { text-align: left; }
.industry-school-operators > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.industry-school-operators article { padding: 12px; background: var(--control-bg); border-radius: 5px; }
.industry-school-operators article > strong { display: block; font-size: 11px; margin-top: 12px; }
.industry-school-operators article p { color: var(--muted); font-size: 11px; line-height: 1.5; }
.industry-school-operators article a { font-size: 11px; }
.industry-school-filters { margin-top: 6px; }
.industry-school-filters > summary { cursor: pointer; color: var(--muted); font-size: 10px; }
.industry-school-filters > .industry-school-controls { margin-top: 7px; }
.industry-school-workspace > .industry-school-method { margin-top: 7px; }
.industry-school-heading-actions button, #industrySchoolCloseDetail { border: 1px solid var(--line2); border-radius: 4px; padding: 4px 8px; background: var(--control-bg); color: var(--ink); cursor: pointer; font-size: 10px; }
.industry-school-unranked { margin-top: 8px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 6px; }
.industry-school-unranked > summary { cursor: pointer; color: var(--muted); font-size: 11px; }
.industry-school-missing-table { min-width: 720px; }
.industry-school-missing-table thead th:first-child { width: 36%; }
.industry-school-missing-table thead th:nth-child(2) { width: 28%; }
.industry-school-table > tbody > .industry-school-detail-row > td { padding: 0; text-align: left; background: var(--surface); }
.industry-school-detail-panel { border-left: 3px solid var(--antique-gold); padding: 5px; }
.industry-school-workspace.industry-school-expanded { position: fixed; z-index: 102; inset: 8px; margin: 0; overflow: auto; background: var(--surface); }
.industry-school-leader strong { font-size: 11px; }
.industry-school-leader small { font-size: 9px; margin-top: 2px; }
#industry.industry-expanded > .industry-school-workspace { display: none; }
@media (max-width: 1100px) { .industry-school-controls { grid-template-columns: repeat(4, minmax(110px, 1fr)); } }
@media (max-width: 700px) { .industry-school-controls { grid-template-columns: repeat(2, minmax(100px, 1fr)); } .industry-school-workspace { padding: 12px; } .industry-school-detail > header { flex-direction: column; } }

/* Industry comparison: the table is the main workspace, with search and
   company-specific metric mapping available without crowding its header. */
#industry .industry-workspace { padding: 20px 22px; overflow: visible; background: var(--panel); border-color: var(--line); }
#industry .industry-head { align-items: center; margin-bottom: 17px; }
#industry .industry-eyebrow { color: #b8a37e; font-size: 9px; font-weight: 750; letter-spacing: .15em; }
#industry .industry-head h2 { margin: 3px 0 4px; font-size: 21px; }
#industry .industry-head .muted-line { color: #aeb5c0; font-size: 11px; }
#industry .industry-head-actions { display: flex; align-items: center; gap: 7px; }
#industry .industry-head-actions button { height: 34px; padding: 0 11px; border: 1px solid var(--line2); border-radius: 6px; background: var(--control-bg); color: var(--ink); font-size: 11px; font-weight: 650; cursor: pointer; }
#industry .industry-head-actions button:hover, #industry .industry-head-actions button:focus-visible { background: var(--control-hover); border-color: var(--line2); outline: none; }
#industry .industry-toolbar { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(230px, 1fr) 112px; gap: 12px; padding: 13px; margin: 0 0 12px; border: 1px solid var(--line2); border-radius: 8px; background: var(--control-bg); }
#industry .industry-control { position: relative; display: grid; grid-template-columns: 1fr; align-content: start; gap: 5px; min-width: 0; }
#industry .industry-control label { color: #abb4c0; font-size: 10px; font-weight: 700; letter-spacing: .02em; }
#industry .industry-control input, #industry .industry-format-control select { width: 100%; height: 35px; padding: 0 10px; border: 1px solid var(--line2); border-radius: 6px; background: var(--input-bg); color: var(--ink); font-size: 11px; outline: none; }
#industry .industry-control input:focus, #industry .industry-format-control select:focus-visible { border-color: #8db7a1; box-shadow: 0 0 0 2px rgba(123,196,155,.15); }
#industry .industry-control input::placeholder { color: #8692a1; }
#industry .industry-control [hidden], #industry .industry-search-results[hidden] { display: none; }
#industry .industry-search-control { z-index: 5; }
#industry .industry-search-results { position: absolute; top: calc(100% + 4px); left: 0; right: 0; max-height: 325px; overflow: auto; padding: 4px; border: 1px solid var(--line2); border-radius: 8px; background: var(--drawer-bg); box-shadow: 0 18px 35px var(--shadow); }
#industry .industry-search-results button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 37px; padding: 6px 9px; border: 0; border-radius: 5px; background: transparent; color: #e8ecf0; text-align: left; cursor: pointer; font-size: 11px; }
#industry .industry-search-results button:hover, #industry .industry-search-results button:focus-visible { background: var(--control-hover); outline: none; }
#industry .industry-search-results button strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 650; }
#industry .industry-search-results button small { margin-left: auto; color: #a4afbc; white-space: nowrap; text-transform: capitalize; }
#industry .industry-search-results button img { width: 23px; height: 23px; object-fit: contain; flex: none; }
#industry .industry-search-results button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #b8c3ce; }
#industry .industry-search-empty { padding: 11px; color: #9fa9b6; font-size: 11px; }
#industry .industry-selection-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 0 0 13px; }
#industry #industryMetricChips { flex: 1 1 auto; flex-wrap: wrap; overflow: visible; min-width: 0; padding: 0; }
#industry #industryMetricChips button { max-width: 230px; min-height: 29px; padding: 4px 9px; border-radius: 5px; background: var(--control-bg); color: var(--ink); font-size: 10px; overflow: hidden; text-overflow: ellipsis; }
#industry #industryMetricChips button strong { color: inherit; font-weight: 620; }
#industry .industry-company-details { flex: none; position: relative; z-index: 3; }
#industry .industry-company-details summary { min-height: 29px; padding: 6px 9px; border: 1px solid var(--line2); border-radius: 5px; background: var(--control-bg); color: var(--ink); font-size: 10px; cursor: pointer; list-style: none; white-space: nowrap; }
#industry .industry-company-details summary::after { content: "⌄"; margin-left: 9px; color: #aab4c2; }
#industry .industry-company-details summary::-webkit-details-marker { display: none; }
#industry .industry-company-details #industryCompanyChips { position: absolute; top: calc(100% + 5px); right: 0; display: grid; gap: 4px; width: min(390px, 80vw); max-height: 330px; overflow: auto; padding: 7px; border: 1px solid var(--line2); border-radius: 7px; background: var(--drawer-bg); box-shadow: 0 16px 32px var(--shadow); }
#industry .industry-company-details:not([open]) #industryCompanyChips { display: none; }
#industry #industryCompanyChips button, #industry #industryCompanyChips .fixed-chip { justify-content: flex-start; width: 100%; max-width: none; min-height: 34px; margin: 0; padding: 6px 8px; border-radius: 5px; border: 0; background: transparent; text-align: left; white-space: normal; font-size: 10px; }
#industry #industryCompanyChips button:hover { background: var(--control-hover); transform: none; box-shadow: none; }
#industry .industry-kpi-builder { display: block; margin: 0 0 12px; padding: 0; border: 1px solid var(--line2); border-radius: 7px; background: var(--surface); }
#industry .industry-kpi-builder > summary { padding: 9px 12px; color: #e2e7eb; font-size: 11px; font-weight: 700; cursor: pointer; }
#industry .industry-kpi-builder > summary span { margin-left: 10px; color: #9da9b7; font-size: 10px; font-weight: 450; }
#industry .industry-kpi-builder[open] > summary { border-bottom: 1px solid #444b56; }
#industry .industry-kpi-content { padding: 11px 12px 13px; }
#industry .industry-kpi-heading { margin-bottom: 9px; }
#industry .industry-kpi-heading strong { display: none; }
#industry .industry-kpi-heading span { color: #aeb8c4; }
#industry .industry-kpi-mapping { margin-top: 12px; padding-top: 12px; border-top-color: #414b55; }
#industry .industry-kpi-mapping-head { display: flex; align-items: baseline; gap: 9px; font-size: 11px; }
#industry .industry-kpi-mapping-head strong { color: #a9dfc3; font-size: 12px; }
#industry .industry-kpi-progress { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 10px; margin: 8px 0; color: #cbd5db; font-size: 10px; }
#industry .industry-kpi-progress > span { color: #95a3b0; }
#industry .industry-kpi-progress-track { flex: 1 1 100%; height: 5px; overflow: hidden; border-radius: 99px; background: var(--control-hover); }
#industry .industry-kpi-progress-track i { display: block; height: 100%; border-radius: inherit; background: #7fcda4; }
#industry .industry-kpi-mapping-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0 11px; }
#industry .industry-kpi-mapping-list span { padding: 4px 7px; border: 1px solid #505965; border-radius: 5px; color: #9eaab6; font-size: 10px; }
#industry .industry-kpi-mapping-list span.is-mapped { border-color: var(--green); background: var(--selected-row); color: var(--green); }
#industry .industry-kpi-mapping-list b { margin-left: 2px; }
#industry .industry-kpi-map-controls { padding: 9px; border: 1px solid var(--line2); border-radius: 6px; background: var(--control-bg); }
#industry .industry-table-wrap { max-height: min(65vh, 760px); min-height: 300px; border: 1px solid var(--line2); border-radius: 8px; background: var(--surface); }
#industry .industry-table { width: max-content; min-width: 100%; font-size: 11px; }
#industry .industry-table th, #industry .industry-table td { height: 47px; max-height: none; padding: 7px 11px; border-color: #3a424e; line-height: 1.3; }
#industry .industry-table th { height: 43px; background: var(--table-head); font-size: 11px; }
#industry .industry-table th:first-child, #industry .industry-table td:first-child { width: 315px; min-width: 315px; max-width: 315px; }
#industry .industry-table th:nth-child(2), #industry .industry-table td:nth-child(2) { min-width: 95px; }
#industry .industry-table td:not(:first-child), #industry .industry-table th:not(:first-child) { min-width: 132px; }
#industry .industry-table tbody tr:nth-child(odd) td, #industry .industry-table tbody tr:nth-child(odd) td:first-child { background: var(--table-row); }
#industry .industry-table tbody tr:nth-child(even) td, #industry .industry-table tbody tr:nth-child(even) td:first-child { background: var(--table-row-alt); }
#industry .industry-table tbody tr:hover td { background: var(--control-hover) !important; }
#industry .industry-table tr.target-row td, #industry .industry-table tr.target-row td:first-child { background: var(--selected-row) !important; }
#industry .industry-table tr.target-row td:first-child { border-left: 3px solid #b69a68; }
#industry .industry-company-link { display: flex; align-items: center; gap: 9px; max-width: 100%; color: #e6e9ed; text-decoration: none; white-space: normal; }
#industry .industry-company-link:hover { color: #a9ddc4; }
#industry .industry-company-link img { flex: none; width: 27px; height: 27px; object-fit: contain; }
#industry .industry-company-link span { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#industry .industry-company-link strong { color: #d6e9de; margin-right: 4px; }
#industry .industry-company-link small { display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; color: #98a5b2; font-size: 9px; font-weight: 450; }
#industry .industry-table .metric-note { color: #96a5b4; font-size: 9px; }
#industry .coverage-note { max-width: none; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #38414b; color: #8e9ba9; text-align: left; line-height: 1.4; font-size: 10px; }
body.industry-scroll-locked { overflow: hidden; }
#industry.industry-expanded { position: fixed; z-index: 100; inset: 0; display: block; padding: 12px; background: var(--bg); }
#industry.industry-expanded .industry-workspace { display: flex; flex-direction: column; width: 100%; height: 100%; margin: 0; overflow: hidden; }
#industry.industry-expanded .industry-table-wrap { flex: 1 1 auto; max-height: none; min-height: 0; }
#industry.industry-expanded .industry-company-details, #industry.industry-expanded .industry-search-control { z-index: 101; }
@media (max-width: 760px) {
  #industry .industry-workspace { padding: 14px; }
  #industry .industry-head { align-items: flex-start; }
  #industry .industry-head-actions { flex-wrap: wrap; }
  #industry .industry-toolbar { grid-template-columns: 1fr; }
  #industry .industry-selection-bar { flex-wrap: wrap; }
  #industry .industry-company-details { width: 100%; }
  #industry .industry-company-details #industryCompanyChips { left: 0; right: auto; }
  #industry .industry-table th:first-child, #industry .industry-table td:first-child { width: 240px; min-width: 240px; max-width: 240px; }
  #industry .industry-table-wrap { max-height: 60vh; }
}

/* Three destination rail and a focused, full-width charting workspace. */
.rail { display: flex; flex-direction: column; align-items: center; width: 76px; padding: 11px 6px 10px; z-index: 110; }
.shell { margin-left: 76px; max-width: calc(100vw - 76px); }
.mark { display: grid; place-items: center; width: 48px; height: 38px; margin: 0 0 18px; border-bottom: 1px solid var(--line); color: var(--green); font-size: 12px; letter-spacing: .12em; }
.global-tools { width: 100%; display: grid; gap: 7px; }
.tool { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 64px; height: 61px; padding: 5px 2px; border-radius: 8px; font-size: 10px; line-height: 1.1; font-weight: 600; }
.tool svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tool.active { background: var(--active-bg); border-color: var(--line2); }
.rail-settings { margin-top: auto; }
.rail-settings-panel { position: fixed; z-index: 120; left: 82px; bottom: 12px; width: 220px; padding: 10px; border: 1px solid var(--line2); border-radius: 9px; background: var(--drawer-bg); box-shadow: 0 18px 42px var(--shadow); }
.rail-settings-panel > strong { display: block; padding: 4px 8px 9px; font-size: 12px; }
.settings-row { display: block; width: 100%; min-height: 34px; padding: 8px 10px; border: 0; border-radius: 5px; background: transparent; color: var(--ink); text-align: left; text-decoration: none; font-size: 11px; cursor: pointer; }
.settings-row:hover, .settings-row:focus-visible { background: var(--control-hover); outline: none; }
body.charting-mode .identity, body.charting-mode .company-tabs, body.charting-mode #issuerDataNotice { display: none; }
#charting { padding-top: 10px; }
.charting-workspace { min-height: calc(100vh - 70px); padding: 24px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.charting-head { display: flex; justify-content: space-between; align-items: start; gap: 15px; margin-bottom: 18px; }
.charting-eyebrow { color: var(--amber); font-size: 10px; font-weight: 750; letter-spacing: .16em; }
.charting-head h2 { margin: 4px 0 6px; font-size: 24px; letter-spacing: -.02em; }
.charting-head p { color: var(--muted); font-size: 12px; }
.charting-download, .charting-add { min-height: 36px; border: 1px solid var(--line2); border-radius: 6px; background: var(--control-bg); color: var(--ink); padding: 0 13px; font-size: 11px; font-weight: 700; cursor: pointer; }
.charting-download:hover, .charting-add:hover { background: var(--control-hover); }
.charting-add { align-self: end; background: var(--active-bg); color: var(--active-ink); white-space: nowrap; }
.charting-builder { padding: 16px; border: 1px solid var(--line2); border-radius: 8px; background: var(--surface); }
.charting-builder-title { display: flex; align-items: baseline; gap: 12px; margin-bottom: 13px; }
.charting-builder-title strong { font-size: 13px; }
.charting-builder-title span { color: var(--muted); font-size: 11px; }
.charting-builder-grid { display: grid; grid-template-columns: minmax(200px, 1.15fr) minmax(170px, .8fr) minmax(230px, 1.35fr) auto; align-items: end; gap: 10px; }
.charting-field { position: relative; min-width: 0; }
.charting-field label { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 700; }
.charting-field input, .charting-field select { width: 100%; height: 36px; padding: 0 11px; border: 1px solid var(--line2); border-radius: 6px; outline: none; background: var(--input-bg); color: var(--ink); font-size: 11px; }
.charting-field input:focus, .charting-field select:focus { border-color: var(--green); box-shadow: 0 0 0 2px color-mix(in srgb, var(--green) 16%, transparent); }
.charting-results { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 12; max-height: 300px; overflow-y: auto; overscroll-behavior: contain; padding: 4px; border: 1px solid var(--line2); border-radius: 7px; background: var(--drawer-bg); box-shadow: 0 18px 35px var(--shadow); }
.charting-results button { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 35px; padding: 7px 9px; border: 0; border-radius: 4px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; font-size: 10px; }
.charting-results button:hover, .charting-results button:focus-visible { background: var(--control-hover); outline: none; }
.charting-results button strong { flex: none; }
.charting-results button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.charting-empty-result { padding: 10px; color: var(--muted); font-size: 11px; }
.charting-builder-note { min-height: 14px; margin-top: 10px; color: var(--muted); font-size: 10px; }
.charting-builder-note.is-error { color: var(--red); }
.charting-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 13px 20px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.charting-control > span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 10px; font-weight: 700; }
.charting-control .segmented { display: flex; flex-wrap: wrap; }
.charting-control .segmented button { min-height: 32px; padding: 6px 11px; white-space: nowrap; }
.charting-series-list { display: flex; flex-wrap: wrap; gap: 7px; min-height: 52px; align-items: center; padding: 11px 0; }
.charting-series-chip { display: flex; align-items: center; gap: 7px; max-width: 360px; min-height: 29px; padding: 4px 7px; border: 1px solid var(--line2); border-radius: 6px; background: var(--control-bg); font-size: 10px; }
.charting-series-chip i { flex: none; width: 8px; height: 8px; border-radius: 50%; }
.charting-series-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.charting-series-chip small { color: var(--muted); white-space: nowrap; }
.charting-series-chip button { flex: none; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 16px; line-height: 1; }
.charting-series-chip button:hover { color: var(--red); }
.charting-chart-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 7px 0 11px; }
.charting-chart-head h3 { margin: 0 0 4px; font-size: 16px; }
.charting-chart-head p, .charting-chart-head > span { color: var(--muted); font-size: 10px; }
.fundamental-chart { height: min(62vh, 650px); min-height: 440px; border: 1px solid var(--line2); border-radius: 8px; background: var(--surface); }
.charting-note { min-height: 16px; margin-top: 10px; color: var(--muted); font-size: 10px; line-height: 1.4; }
@media (max-width: 1100px) { .charting-builder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .rail { position: static; flex-direction: row; width: 100%; padding: 6px 10px; gap: 9px; overflow: visible; }
  .mark { width: 34px; height: 34px; margin: 0; border: 0; }
  .global-tools { display: flex; flex: 1; width: auto; }
  .tool { flex-direction: row; width: auto; height: 36px; padding: 5px 9px; font-size: 10px; }
  .tool svg { width: 16px; height: 16px; }
  .rail-settings { margin-top: 0; }
  .rail-settings-panel { left: 10px; top: 51px; bottom: auto; }
  .shell { margin-left: 0; max-width: 100vw; }
  .charting-workspace { padding: 14px; }
  .charting-builder-grid { grid-template-columns: 1fr; }
  .charting-head { align-items: start; }
  .fundamental-chart { min-height: 350px; height: 55vh; }
}

/* Charting uses independent metric and company pickers, as in the reference workflow. */
.charting-workspace { padding: 20px 22px 24px; background: var(--panel); }
.charting-topline { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.charting-topline h2 { margin: 2px 0 0; font-size: 19px; letter-spacing: -.02em; }
.charting-search-row, .charting-selection-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.charting-search-row { position: relative; z-index: 15; }
.charting-search-row .charting-field input { height: 40px; font-size: 12px; border-radius: 7px; }
.charting-selection-row { min-height: 39px; padding: 8px 0 3px; }
.charting-selection-chips { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 0; }
.charting-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 280px; min-height: 27px; padding: 3px 6px; border: 1px solid var(--line2); border-radius: 5px; background: var(--control-bg); color: var(--ink); font-size: 10px; }
.charting-chip > span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.charting-chip img { width: 19px; height: 19px; object-fit: contain; }
.charting-chip i, .charting-data-table th i { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 50%; }
.charting-chip button { flex: none; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 15px; line-height: 1; }
.charting-chip button:hover { color: var(--red); }
.charting-reset { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 10px; text-decoration: underline; }
.charting-reset:hover { color: var(--ink); }
.charting-results img { width: 24px; height: 24px; object-fit: contain; }
.charting-metric-picker { position: absolute; top: calc(100% + 4px); left: 0; width: min(760px, 88vw); height: min(58vh, 510px); z-index: 18; display: grid; grid-template-columns: 210px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line2); border-radius: 8px; background: var(--drawer-bg); box-shadow: 0 20px 48px var(--shadow); }
.charting-metric-picker[hidden] { display: none; }
.charting-categories, .charting-metric-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 7px; }
.charting-categories { border-right: 1px solid var(--line2); }
.charting-picker-label { padding: 8px 8px 5px; color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.charting-categories button, .charting-metric-list button { display: block; width: 100%; min-height: 34px; padding: 8px 9px; border: 0; border-radius: 5px; background: transparent; color: var(--ink); text-align: left; font-size: 11px; cursor: pointer; }
.charting-categories button { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.charting-categories button.active, .charting-categories button:hover, .charting-metric-list button:hover, .charting-metric-list button:focus-visible { background: var(--control-hover); outline: none; }
.charting-metric-list button { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid color-mix(in srgb, var(--line2) 55%, transparent); }
.charting-metric-list button strong { font-weight: 600; }
.charting-metric-list button small { color: var(--muted); text-align: right; }
.charting-builder-note { min-height: 12px; margin: 0 0 6px; }
.charting-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 12px 18px; padding: 14px 0 13px; border-top: 1px solid var(--line2); border-bottom: 1px solid var(--line2); }
.charting-control > span { font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.charting-control .segmented button { min-height: 29px; padding: 5px 9px; }
.charting-timeline { padding: 13px 8px 9px; border-bottom: 1px solid var(--line2); }
.charting-range-head { display: flex; justify-content: space-between; gap: 15px; color: var(--muted); font-size: 10px; }
.charting-range-head span:first-child, .charting-range-head span:last-child { color: var(--ink); font-weight: 650; }
.charting-range-inputs { position: relative; height: 28px; margin-top: 8px; }
.charting-range-inputs::before { content: ""; position: absolute; left: 4px; right: 4px; top: 12px; height: 5px; border-radius: 5px; background: color-mix(in srgb, var(--green) 48%, var(--line2)); }
.charting-range-inputs input { position: absolute; inset: 0; width: 100%; height: 28px; margin: 0; appearance: none; background: transparent; pointer-events: none; }
.charting-range-inputs input::-webkit-slider-thumb { appearance: none; width: 17px; height: 17px; border: 2px solid var(--surface); border-radius: 50%; background: var(--green); box-shadow: 0 0 0 1px var(--green); cursor: ew-resize; pointer-events: auto; }
.charting-range-inputs input::-moz-range-thumb { width: 15px; height: 15px; border: 2px solid var(--surface); border-radius: 50%; background: var(--green); cursor: ew-resize; pointer-events: auto; }
.charting-range-inputs input:focus-visible { outline: 1px solid var(--green); }
.charting-chart-head { margin-top: 17px; }
.fundamental-chart { height: min(56vh, 610px); min-height: 390px; }
.charting-legend { display: grid; gap: 0; margin-top: 9px; border-top: 1px solid var(--line2); }
.charting-legend-row { display: flex; align-items: center; gap: 8px; min-height: 29px; border-bottom: 1px solid var(--line2); font-size: 10px; }
.charting-legend-row i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.charting-legend-row strong { color: var(--ink); }
.charting-legend-row span { color: var(--ink); }
.charting-legend-row small { margin-left: auto; color: var(--muted); text-align: right; }
.charting-table-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 21px 0 9px; }
.charting-table-head h3 { margin: 0; font-size: 13px; }
.charting-table-head button { border: 1px solid var(--line2); border-radius: 5px; background: var(--control-bg); color: var(--ink); padding: 7px 10px; font-size: 10px; cursor: pointer; }
.charting-data-table { max-height: 310px; overflow: auto; border: 1px solid var(--line2); border-radius: 7px; background: var(--surface); }
.charting-data-table table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 10px; }
.charting-data-table th, .charting-data-table td { min-width: 105px; padding: 9px 11px; border-bottom: 1px solid var(--line2); white-space: nowrap; }
.charting-data-table thead th { position: sticky; top: 0; z-index: 2; background: var(--panel2); color: var(--muted); text-align: right; font-weight: 650; }
.charting-data-table th:first-child { position: sticky; left: 0; z-index: 3; min-width: 240px; max-width: 240px; background: var(--surface); color: var(--ink); text-align: left; }
.charting-data-table thead th:first-child { z-index: 4; background: var(--panel2); }
.charting-data-table tbody th i { margin-right: 8px; vertical-align: middle; }
.charting-data-table tbody th small { display: block; margin: 3px 0 0 17px; color: var(--muted); font-size: 9px; font-weight: 400; }
.charting-data-table td { text-align: right; font-variant-numeric: tabular-nums; }
.charting-empty-table { margin: 0; padding: 22px; color: var(--muted); text-align: center; font-size: 11px; }
@media (max-width: 760px) {
  .charting-workspace { padding: 12px; }
  .charting-search-row, .charting-selection-row { grid-template-columns: 1fr; gap: 7px; }
  .charting-metric-picker { width: calc(100vw - 38px); grid-template-columns: 145px minmax(0, 1fr); }
  .charting-range-head span:nth-child(2) { display: none; }
  .charting-data-table th:first-child { min-width: 185px; max-width: 185px; }
}

/* Short Selling phone workspace: one viewport, with scrolling inside the app. */
@media (max-width: 760px) {
  body.shortselling-mode {height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
  .shortselling-mode .rail {flex:none;min-height:52px;padding:4px;gap:4px;}
  .shortselling-mode .rail .mark {display:none;}
  .shortselling-mode .global-tools {flex:1;min-width:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;}
  .shortselling-mode .tool {height:48px;min-height:44px;width:100%;padding:3px 1px;flex-direction:column;font-size:9px;gap:3px;min-width:0;}
  .shortselling-mode .rail-settings {flex:0 0 44px;width:44px;}
  .shortselling-mode .shell {flex:1;height:auto;min-height:0;}
  .shortselling-mode .shortselling-topbar {height:52px;padding:4px 10px;gap:6px;}
  .shortselling-mode .search input {min-height:44px;font-size:16px;}
  .shortselling-mode .identity {margin:4px 8px 0;padding:8px 10px;gap:6px;}
  .shortselling-mode .identity-main {align-items:center;}
  .shortselling-mode .identity h1 {font-size:14px;line-height:1.25;}
  .shortselling-mode .identity .eyebrow {font-size:10px;margin-bottom:2px;}
  .shortselling-mode #taxonomy {display:none;}
  .shortselling-mode .quote {display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;padding-top:5px;}
  .shortselling-mode .quote strong {font-size:16px;}
  .shortselling-mode .quote small, .shortselling-mode .quote small span {display:inline;}
  .shortselling-mode .quote small {font-size:10px;}
  .shortselling-mode .shortselling-workspace {margin:6px 4px 0;border-radius:8px 8px 0 0;}
  .shortselling-mode .shortselling-workspace-head {padding:8px 10px 4px;}
  .shortselling-mode .shortselling-workspace-head h2 {font-size:14px;}
  .shortselling-mode .shortselling-workspace-head .charting-eyebrow,
  .shortselling-mode .shortselling-workspace-head p {display:none;}
}

/* Daily market refresh stays within the Analysis workspace. */
.market-sync-bar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:9px 0; font-size:12px; }
.market-sync-bar small, .current-market-metrics p, .current-market-values small { color:var(--muted); }
.market-sync-bar button { padding:7px 12px; min-height:34px; cursor:pointer; border:1px solid var(--line2); border-radius:6px; background:var(--control-bg); color:var(--ink); }
.market-sync-bar button:hover, .market-sync-bar button:focus-visible { background:var(--control-hover); outline:2px solid var(--line2); }
.market-sync-bar button:disabled { cursor:wait; opacity:.65; }
.current-market-metrics { border:1px solid var(--line); border-radius:8px; padding:12px; margin-bottom:14px; }
.current-market-metrics summary { cursor:pointer; font-weight:600; }
.current-market-metrics p { font-size:12px; }
.current-market-values { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin:14px 0 0; }
.current-market-values dt { font-size:12px; }
.current-market-values dd { margin:5px 0; font-size:18px; font-weight:600; }
.current-market-values small { display:block; font-size:10px; line-height:1.5; }
.charting-mode .market-sync-bar, .ownership-mode .market-sync-bar,
.shortselling-mode .market-sync-bar, .calendar-mode .market-sync-bar { display:none; }

/* K-12 & kindergarten school rankings (app-k12-school-rankings.js) */
.school-level-toggle { margin: 4px 0 12px; }
.k12-filters { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 14px; font-size: 12px; color: var(--muted); }
.k12-filters label { display: flex; flex-direction: column; gap: 4px; }
.k12-status { display: inline-block; max-width: 100%; padding: 2px 8px; border-radius: 10px; font-size: 10px; font-weight: 650; white-space: normal; line-height: 1.3; overflow-wrap: anywhere; border: 1px solid var(--line2); color: var(--ink); background: var(--panel2); }
.k12-status-current { border-color: var(--emerald); background: color-mix(in srgb, var(--emerald) 28%, var(--panel2)); }
.k12-status-deconsolidated { border-color: var(--amber); background: color-mix(in srgb, var(--amber) 28%, var(--panel2)); }
.k12-status-brand { border-color: var(--antique-gold); background: color-mix(in srgb, var(--antique-gold) 28%, var(--panel2)); }
.k12-status-service, .k12-status-unverified, .k12-status-historical, .k12-status-related { color: var(--muted); }
.k12-status-notconsolidated { border-color: var(--amber); }
.k12-logo-wrap { position: relative; display: inline-flex; flex: none; }
.k12-logo-tag { position: absolute; right: -4px; bottom: -4px; font-size: 7px !important; line-height: 1 !important; padding: 1px 2px; margin: 0 !important; border-radius: 3px; background: var(--panel2); border: 1px solid var(--line2); color: var(--muted); text-transform: uppercase; }
.k12-logo-wrap.large img, .industry-school-placeholder.large { width: 72px; height: 72px; object-fit: contain; }
.k12-logo-wrap.small img { width: 28px; height: 28px; object-fit: contain; }
.k12-provider { margin: 14px 0; }
.k12-provider h4 { margin: 0 0 8px; font-size: 13px; }
.k12-rank-tile strong { font-size: 22px; }
.k12-rank-tile span { display: block; font-size: 11px; color: var(--muted); }
.k12-fact { padding: 10px 12px; margin: 6px 0; border: 1px solid var(--line2); border-radius: 6px; }
.k12-fact p { margin: 4px 0; font-size: 12px; line-height: 1.5; }
.k12-finding { border-left: 3px solid var(--amber); padding-left: 8px; }
.k12-ranked-dot { color: var(--emerald); font-size: 9px; vertical-align: middle; }
/* Industry K-12 / kindergarten tables: one alignment rule for header and cells. */
.k12-table > thead > tr > th, .k12-table > tbody > tr > th, .k12-table > tbody > tr > td { text-align: left !important; vertical-align: middle; }
.k12-table > thead > tr > th:last-child, .k12-table > tbody > tr:not(.industry-school-detail-row) > td:last-child { text-align: right !important; }
.k12-table > tbody > tr.industry-school-detail-row > td, .k12-table .industry-school-detail { text-align: left !important; }
.k12-table .industry-school-rank { display: block; text-align: left; }
.k12-table .industry-school-rank small, .k12-table .k12-list-name { display: block; font-size: 9px; color: var(--muted); line-height: 1.35; white-space: normal; }
.k12-results-scroll { overflow-x: auto; }
.k12-table > tbody > tr:not(.industry-school-detail-row) > td[colspan] { text-align: left !important; }
.k12-detail-table a { display: inline-block; margin-right: 8px; }
.k12-ranked { min-width: 1180px; }
.k12-ranked > thead > tr > th:nth-child(1) { width: 19%; } .k12-ranked > thead > tr > th:nth-child(2) { width: 14%; } .k12-ranked > thead > tr > th:nth-child(3) { width: 11%; }
.k12-ranked > thead > tr > th:nth-last-child(2) { width: 8%; } .k12-ranked > thead > tr > th:last-child { width: 6%; }
.k12-others > thead > tr > th:nth-child(1) { width: 25%; } .k12-others > thead > tr > th:nth-child(2) { width: 19%; }
.k12-others > thead > tr > th:nth-child(3) { width: 12%; } .k12-others > thead > tr > th:nth-child(4) { width: 11%; }
.k12-others > thead > tr > th:nth-child(5) { width: 15%; } .k12-others > thead > tr > th:nth-child(6) { width: 10%; } .k12-others > thead > tr > th:nth-child(7) { width: 8%; }
.k12-filing-link { color: var(--antique-gold) !important; background: none !important; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; font-size: 10px; }
.k12-provider-buttons { margin: 8px 0; }
.k12-detail-table th, .k12-detail-table td { text-align: left !important; font-size: 11px; padding: 6px 8px; vertical-align: top; }
.k12-detail-table small { display: block; color: var(--muted); font-size: 10px; font-weight: 400; }
.k12-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px 14px; margin: 0 0 8px; }
.k12-facts div { border-bottom: 1px solid var(--line2); padding: 4px 0; } .k12-facts dt { font-size: 10px; color: var(--muted); } .k12-facts dd { margin: 0; font-size: 12px; }
.k12-probable { display: inline-block; margin-top: 2px; padding: 1px 6px; border-radius: 8px; border: 1px dashed var(--amber); color: var(--amber); font-size: 9px; font-weight: 650; white-space: nowrap; }
.k12-conf { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 8px; font-size: 9px; font-weight: 650; border: 1px solid var(--line2); color: var(--muted); white-space: nowrap; }
.k12-conf-official { border-color: var(--emerald); color: var(--ink); } .k12-conf-school_site { border-color: var(--antique-gold); color: var(--antique-gold); } .k12-conf-secondary { border: 1px dashed var(--amber); color: var(--amber); }

/* Key Metrics → Monthly (app-monthly-kpis.js), added 2026-11-11 */
.monthly-kpi-workspace[hidden] { display: none; }
.monthly-kpi-workspace { margin: 14px 0; padding: 20px; border: 1px solid var(--line2); background: var(--surface); border-radius: 8px; color: var(--ink); }
.monthly-kpi-block + .monthly-kpi-block { margin-top: 28px; }
.monthly-kpi-block header h3 { margin: 0 0 4px; font-size: 16px; }
.monthly-kpi-block header p, .monthly-kpi-note, .monthly-kpi-empty { margin: 0; color: var(--muted); font-size: 12px; }
.monthly-kpi-note { margin-top: 16px; }
.monthly-kpi-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.monthly-kpi-cards > div { padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.monthly-kpi-cards span { display: block; color: var(--muted); font-size: 11px; }
.monthly-kpi-cards strong { display: block; margin-top: 4px; font-size: 20px; font-variant-numeric: tabular-nums; }
.monthly-kpi-cards small { color: var(--muted); font-size: 11px; }
.monthly-kpi-chart { display: block; width: 100%; height: auto; max-height: 240px; margin: 4px 0 12px; }
.monthly-kpi-bar { fill: var(--antique-gold); opacity: .72; }
.monthly-kpi-bar.latest { opacity: 1; }
.monthly-kpi-bar:hover { opacity: 1; }
.monthly-kpi-grid { stroke: var(--line); stroke-width: 1; }
.monthly-kpi-axis { fill: var(--muted); font-size: 10px; }
.monthly-kpi-table-wrap { overflow-x: auto; }
.monthly-kpi-table td, .monthly-kpi-table th { white-space: nowrap; font-variant-numeric: tabular-nums; }
.monthly-kpi-table th:first-child, .monthly-kpi-table td:first-child { position: sticky; left: 0; z-index: 1; background: var(--table-sticky); text-align: left; }
.monthly-kpi-value-row a { color: var(--ink); text-decoration: none; border-bottom: 1px dotted var(--line2); }
.monthly-kpi-change.up { color: var(--green); }
.monthly-kpi-change.down { color: var(--red); }
.monthly-kpi-na { color: var(--muted); }
.monthly-kpi-checks { margin-top: 12px; font-size: 12px; }
.monthly-kpi-checks summary { cursor: pointer; color: var(--soft); }
.monthly-kpi-check-table { margin-top: 8px; width: auto; }
@media (max-width: 600px) { .monthly-kpi-workspace { padding: 12px; } .monthly-kpi-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.monthly-kpi-selected { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; }
.monthly-kpi-selected h4 { margin: 0; font-size: 14px; color: var(--soft); }
.monthly-kpi-picker { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.monthly-kpi-picker select { max-width: 340px; background: var(--input-bg); color: var(--ink); border: 1px solid var(--line2); border-radius: 4px; padding: 4px 6px; }
.monthly-kpi-bar.negative { fill: var(--red); }
.monthly-kpi-group td { color: var(--antique-gold); font-weight: 600; background: var(--table-head); }
.monthly-kpi-value-row.active td { background: rgba(93,30,33,.34); }
.monthly-kpi-change-row td { color: var(--muted); font-size: 11px; }
.monthly-kpi-value-row .text-action { color: var(--ink); text-align: left; }
.monthly-kpi-value-row small { color: var(--muted); }

/* Key Metrics → History → Other disclosures (app-kpi-other-disclosures.js), added 2026-11-11 */
.kpi-other-disclosures[hidden] { display: none; }
.kpi-other-disclosures { margin: 18px 0; padding: 16px 18px; border: 1px solid var(--line2); background: var(--surface); border-radius: 8px; color: var(--ink); }
.kpi-other-disclosures header h2 { margin: 0 0 4px; font-size: 16px; }
.kpi-other-disclosures header p, .kpi-other-note { margin: 0; color: var(--muted); font-size: 12px; }
.kpi-other-section { margin-top: 14px; }
.kpi-other-section summary { cursor: pointer; color: var(--soft); }
.kpi-other-section summary span { color: var(--muted); font-size: 12px; margin-left: 6px; }
.kpi-other-note { margin: 6px 0 8px; }
.kpi-other-table-wrap { overflow-x: auto; max-height: 520px; }
.kpi-other-table td, .kpi-other-table th { white-space: nowrap; font-variant-numeric: tabular-nums; }
.kpi-other-table th:first-child, .kpi-other-table td:first-child { position: sticky; left: 0; z-index: 1; background: var(--table-sticky); text-align: left; white-space: normal; min-width: 220px; max-width: 360px; }
.kpi-other-table a { color: var(--ink); text-decoration: none; border-bottom: 1px dotted var(--line2); }

/* K-12 table: brand value line inside Selected position; header help marker (2026-11-11) */
.k12-brand-line { display: block; margin-top: 3px; color: var(--soft); font-size: 11px; }
.k12-brand-line strong { color: var(--antique-gold); }
.k12-col-help { color: var(--muted); font-size: 10px; cursor: help; }

.site-snapshot-notice{margin:8px 0;padding:5px 10px;background:var(--panel2);border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:11px}
