:root {
  --blue: #013366;
  --light-blue: #d8e0e8;
  --gold: #d4af37;
  --light-gold: #f8f3e1;
  --brick: #995037;
  --light-brick: #efe4e1;
  --violet: #9930a0;
  --light-violet: #efdff0;
  --slate-indigo: #66668f;
  --light-slate-indigo: #e8e8ee;
  --green: #193925;
  --light-green: #dce1de;
  --blue-violet: #7e13ac;
  --light-blue-violet: #ebdbf2;
  --raspberry: #e01279;
  --light-raspberry: #fadbea;
  --cyan: #197d8d;
  --light-cyan: #dcebed;
  --white: #ffffff;
  --black: #000000;
  --ink: #1d2732;
  --muted: #556271;
  --line: #c8d1db;
  --surface: #f6f8fa;
  --chart-canvas: #14171c;
  --chart-card: #0b0d11;
  --chart-grid-major: rgb(255 255 255 / 12%);
  --chart-grid-minor: rgb(255 255 255 / 7%);
  --chart-axis-label: #d7dce5;
  --chart-tooltip-border: rgb(215 220 229 / 22%);
  --shadow: 0 12px 34px rgb(1 51 102 / 10%);
  --radius-small: 4px;
  --radius-medium: 8px;
  --radius-large: 12px;
  --page-width: 2400px;
}

/* BMS Word records and interpretation are independent of descriptive classification. */
.bms-tensions { font-family: Arial, Helvetica, sans-serif; --pressure-blue: #0000FF; --pressure-gold: #D4AF37; --pressure-border: #6F5800; }
.bms-tension-principle { margin-block: 1.6rem 2.2rem; }
.bms-tension-principle h4, .bms-tensions h4 { color: #013366; }
.bms-pressure-labels { display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; margin:1rem 1rem .6rem; }
.bms-pressure-row { padding:.8rem 1rem; border-bottom:1px solid #D8E0E8; }
.bms-pressure-row h5 { margin:.3rem 0 .8rem; font-size:1rem; }
.bms-pressure-row p { margin:.4rem 0; }
.bms-pressure-track { position:relative; height:2.1rem; background:#E7E6E6; border-inline:1px solid #013366; }
.bms-pressure-track::before { content:""; position:absolute; left:50%; height:100%; border-left:2px solid #FFFFFF; }
.bms-pressure-marker { position:absolute; width:12px; height:12px; transform:translateX(-50%); top:3px; border-radius:50%; background:var(--pressure-blue); }
.bms-pressure-marker--forward { top:19px; width:10px; height:10px; border-radius:0; background:var(--pressure-gold); outline:1px solid var(--pressure-border); transform:translateX(-50%) rotate(45deg); }
.bms-pressure-range { position:absolute; top:8px; height:3px; background:var(--pressure-blue); }
.bms-pressure-range--forward { top:23px; height:3px; background:var(--pressure-gold); outline:1px solid var(--pressure-border); }
.bms-tension-matrix { table-layout:fixed; width:100%; margin-block:1.1rem; border-collapse:collapse; }
.bms-tension-matrix caption { text-align:left; font-weight:bold; padding:.5rem 0; }
.bms-tension-matrix th { background:#D8E0E8; color:#013366; }
.bms-tension-matrix :is(th,td) { padding:.65rem; vertical-align:top; text-align:left; white-space:pre-wrap; overflow-wrap:anywhere; border:1px solid #D8E0E8; }
.bms-tension-prose, .bms-word-record dd { white-space:pre-wrap; line-height:1.5; }
.bms-word-record { padding:.65rem 0; border-bottom:1px solid #D8E0E8; }
.bms-word-record summary, .bms-pressure-row summary { cursor:pointer; padding:.3rem; overflow-wrap:anywhere; }
.bms-word-record summary:focus-visible, .bms-pressure-row summary:focus-visible { outline:2px solid #013366; outline-offset:3px; }
.bms-word-record dl { display:grid; grid-template-columns:minmax(8rem, 24%) minmax(0,1fr); gap:.55rem 1rem; }
.bms-word-record dt { font-weight:bold; }
.bms-word-record dd { margin:0; overflow-wrap:anywhere; }
[data-theme="dark"] .bms-tensions { --pressure-blue:#3366FF; --pressure-gold:#B89400; --pressure-border:#B89400; color:#FFFFFF; background:#151719; padding:1rem; }
[data-theme="dark"] .bms-tensions h4 { color:#D8E0E8; }
[data-theme="dark"] .bms-tensions summary { color:#D8E0E8; }
[data-theme="dark"] .bms-pressure-track { background:#111827; border-color:#D8E0E8; }
[data-theme="dark"] .bms-pressure-track::before { border-color:#334155; }
[data-theme="dark"] .bms-word-record summary:focus-visible { outline-color:#D8E0E8; }
@media(max-width:650px) {
  .bms-pressure-row { padding-inline:.4rem; }
  .bms-pressure-labels { margin-inline:.4rem; gap:.35rem; font-size:.75rem; }
  .bms-tension-matrix :is(th,td) { padding:.35rem; font-size:.8rem; }
  .bms-tension-matrix thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .bms-tension-matrix, .bms-tension-matrix tbody { display:block; }
  .bms-tension-matrix tr { display:grid; grid-template-columns:1fr 1fr; margin-bottom:.75rem; }
  .bms-tension-matrix td::before { content:attr(data-label); display:block; font-weight:bold; margin-bottom:.5rem; }
  .bms-word-record dl { grid-template-columns:1fr; gap:.3rem; }
  .bms-word-record dd { margin-bottom:.7rem; }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  background: var(--surface);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

.smooth-attribution-heading {
  align-items: flex-start;
  gap: 28px;
}

.smooth-attribution-heading .section-note {
  max-width: 720px;
  margin: 6px 0 0;
}

.smooth-attribution-contract-note {
  margin: 18px 0;
  padding: 12px 16px;
  border-left: 5px solid var(--blue);
  background: var(--light-blue);
  color: var(--blue);
  font-size: 14px;
  font-weight: 700;
}

.smooth-attribution-methods {
  display: grid;
  gap: 24px;
}

.smooth-attribution-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-medium);
  background: var(--white);
  box-shadow: var(--shadow);
}

.smooth-attribution-method {
  background: var(--white);
}

.smooth-attribution-method__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  background: var(--blue);
  color: var(--white);
  cursor: pointer;
  list-style: none;
}

.smooth-attribution-method__summary::-webkit-details-marker {
  display: none;
}

.smooth-attribution-method__summary::after {
  content: "+";
  width: 28px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.smooth-attribution-method[open] .smooth-attribution-method__summary::after {
  content: "−";
}

.smooth-attribution-method__summary:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -4px;
}

.smooth-attribution-method__title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
}

.smooth-attribution-method__cue {
  color: var(--light-blue);
  font-size: 14px;
  font-weight: 700;
}

.smooth-attribution-method__description {
  max-width: none;
  margin: 0;
  padding: 16px 20px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--light-blue);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.55;
}

@media (max-width: 620px) {
  .smooth-attribution-method__summary {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
  }

  .smooth-attribution-method__cue {
    grid-column: 1;
  }

  .smooth-attribution-method__summary::after {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
}

.smooth-attribution-table-wrap {
  overflow-x: auto;
  max-height: 360px;
}

.smooth-attribution-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}

.smooth-attribution-table th,
.smooth-attribution-table td {
  min-width: 86px;
  padding: 9px 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: right;
  white-space: nowrap;
}

.smooth-attribution-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--blue);
  color: var(--white);
  font-weight: 700;
}

.smooth-attribution-table thead tr:nth-child(2) th {
  top: 35px;
}

.smooth-attribution-period-row .smooth-attribution-period,
.smooth-attribution-date-row .smooth-attribution-fiscal-date {
  text-align: center;
}

.smooth-attribution-date-row .smooth-attribution-fiscal-date {
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: 11px;
  line-height: 1.15;
}

.smooth-attribution-table thead [data-phase="historical"] {
  background: var(--blue);
  color: var(--white);
}

.smooth-attribution-table thead [data-phase="forecast"] {
  background: var(--brick);
  color: var(--white);
}

.smooth-attribution-table thead [data-present="true"] {
  background: var(--gold);
  color: var(--black);
}

.smooth-attribution-table tbody th:first-child,
.smooth-attribution-table .smooth-attribution-period-row th:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 265px;
  background: var(--white);
  color: var(--blue);
  text-align: left;
}

.smooth-attribution-table thead .smooth-attribution-period-row th:first-child {
  z-index: 3;
  background: var(--blue);
  color: var(--white);
}

.smooth-attribution-table tr[data-total="true"] > * {
  border-top: 2px solid var(--blue);
  background: var(--light-gold);
  color: var(--black);
  font-weight: 700;
}

.smooth-attribution-table td[data-status="missing"],
.smooth-attribution-table td[data-status="error"] {
  color: var(--brick);
}

button,
select,
input {
  font: inherit;
}

button,
select,
input,
a,
[tabindex]:not([tabindex="-1"]) {
  outline-offset: 3px;
}

:focus-visible {
  outline: 3px solid var(--blue);
}

[hidden] {
  display: none !important;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  transform: translateY(-160%);
  border: 2px solid var(--white);
  border-radius: var(--radius-small);
  background: var(--blue);
  color: var(--white);
  font-weight: 700;
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  border-bottom: 1px solid rgb(255 255 255 / 24%);
  background: var(--blue);
  color: var(--white);
}

.site-header__inner,
.environment-banner__inner,
.page-shell,
.site-footer {
  width: min(calc(100% - 40px), var(--page-width));
  margin-inline: auto;
}

.site-header__inner {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.master-module-nav {
  position: relative;
  z-index: 50;
  width: 100%;
  background: var(--blue);
  box-shadow: 0 5px 18px rgb(1 51 102 / 16%);
}

.master-module-nav__list {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.master-module-nav__list--hosted {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.master-module-nav__item {
  min-width: 0;
}

.master-module-link {
  position: relative;
  display: flex;
  min-height: 64px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-right: 1px solid rgb(255 255 255 / 34%);
  color: var(--white);
  font-size: clamp(11px, 1vw, 14px);
  font-weight: 700;
  letter-spacing: 0.015em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}

.master-module-nav__item:last-child .master-module-link {
  border-right: 0;
}

.platform-account {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
  font-size: 12px;
  font-weight: 700;
}

.platform-account__logout {
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid rgb(255 255 255 / 52%);
  border-radius: var(--radius-small);
  background: transparent;
  color: var(--white);
  cursor: pointer;
}

.auth-page {
  min-height: 100vh;
  border-top: 12px solid var(--blue);
  background: var(--chart-card);
}

.auth-shell {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 24px;
}

.auth-card {
  width: min(100%, 520px);
  padding: clamp(30px, 7vw, 54px);
  border-top: 8px solid var(--gold);
  background: var(--white);
  box-shadow: 0 24px 70px rgb(0 0 0 / 34%);
}

.auth-card h1 {
  margin: 4px 0 14px;
  color: var(--blue);
  font-size: clamp(38px, 7vw, 62px);
  line-height: 1;
}

.auth-card__lede {
  margin: 0 0 28px;
  color: var(--ink);
  font-size: 18px;
}

.auth-card__action {
  display: flex;
  width: 100%;
  justify-content: center;
  text-decoration: none;
}

.auth-card__privacy,
.auth-card__error {
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.auth-card__error {
  padding: 10px 12px;
  border-left: 4px solid var(--brick);
  background: var(--light-brick);
  color: var(--brick);
  font-weight: 700;
}

.publish-center {
  display: grid;
  gap: 18px;
  padding-block: 22px 48px;
}

.publish-control-bar {
  margin-bottom: 0;
  border-top: 6px solid var(--raspberry);
}

.publish-connection {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.publish-domain-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  border-bottom: 5px solid var(--blue);
}

.publish-domain-tab,
.publish-mode-tab {
  min-height: 50px;
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-bottom: 0;
  background: var(--white);
  color: var(--blue);
  font-weight: 700;
  cursor: pointer;
}

.publish-domain-tab:hover,
.publish-mode-tab:hover {
  background: var(--light-blue);
}

.publish-domain-tab.is-active,
.publish-mode-tab.is-active {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.publish-domain-panel {
  display: grid;
  gap: 18px;
}

.publish-domain-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  padding: 18px 22px;
  border-left: 7px solid var(--blue);
  background: var(--light-blue);
}

.publish-domain-heading--portfolio {
  border-left-color: var(--brick);
  background: var(--light-brick);
}

.publish-domain-heading--administration {
  border-left-color: var(--cyan);
  background: var(--light-cyan);
}

.publish-domain-heading h2,
.publish-domain-heading p {
  margin: 0;
}

.publish-domain-heading > p {
  max-width: 680px;
  color: var(--muted);
  font-size: 13px;
}

.publish-workbench {
  border: 1px solid var(--line);
  border-top: 6px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.publish-workbench--portfolio {
  border-top-color: var(--brick);
}

.publish-workbench__modes {
  display: flex;
  gap: 4px;
  padding: 12px 14px 0;
  border-bottom: 1px solid var(--line);
}

.publish-mode-tab {
  min-height: 42px;
  padding: 8px 18px;
}

.publish-workbench__grid {
  display: grid;
  grid-template-columns: minmax(230px, .75fr) minmax(260px, .85fr) minmax(390px, 1.4fr);
  gap: 0;
}

.publish-workbench__grid--portfolio {
  grid-template-columns: minmax(280px, .65fr) minmax(520px, 1.35fr);
}

.publish-fieldset {
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 0;
  border-right: 1px solid var(--line);
}

.publish-fieldset:last-child {
  border-right: 0;
}

.publish-fieldset legend {
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.publish-picker-tools,
.publish-heading-actions,
.publish-action-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.button--quiet {
  min-height: 32px;
  padding: 4px 9px;
  border-color: var(--line);
  background: var(--surface);
  color: var(--blue);
  font-size: 12px;
}

.publish-ticker-list,
.publish-preset-list,
.publish-package-list {
  display: grid;
  gap: 8px;
}

.publish-ticker-list {
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  max-height: 272px;
  overflow: auto;
}

.publish-ticker-search-label { display: block; color: #013366; font-size: 12px; font-weight: 700; margin-bottom: 5px; }
.publish-ticker-search { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.publish-ticker-search input {
  width: 100%; min-width: 0; min-height: 36px; padding: 7px 9px;
  border: 1px solid #013366; background: #FFFFFF; color: #000000;
}
.publish-ticker-search input::placeholder { color: #013366; opacity: 1; }
.publish-ticker-search .button { flex: 0 0 auto; }
.publish-ticker-count, .publish-ticker-empty { margin: 8px 0; color: #013366; font-size: 12px; }
.publish-selected-tickers { display: flex; flex-wrap: wrap; gap: 6px; max-height: 110px; overflow: auto; margin-bottom: 8px; }
.publish-selected-tickers:empty { display: none; }
.publish-selected-ticker {
  border: 1px solid #013366; background: #D8E0E8; color: #013366;
  min-height: 30px; padding: 4px 8px; font-size: 12px; font-weight: 700; cursor: pointer;
}
.publish-selected-ticker:hover { background: #013366; color: #FFFFFF; }
.publish-ticker-choice[hidden], .publish-ticker-empty[hidden], #ticker-picker-tools[hidden] { display: none; }

.publish-ticker-choice,
.publish-option-choice,
.publish-package-choice {
  min-width: 0;
  border: 1px solid var(--line);
  background: var(--white);
  cursor: pointer;
}

.publish-ticker-choice,
.publish-option-choice {
  display: flex;
  align-items: start;
  gap: 9px;
  padding: 9px 10px;
}

.publish-ticker-choice:has(input:checked),
.publish-option-choice:has(input:checked),
.publish-package-choice:has(input:checked) {
  border-color: var(--blue);
  background: var(--light-blue);
  box-shadow: inset 4px 0 0 var(--blue);
}

.publish-ticker-choice input,
.publish-option-choice input,
.publish-package-choice input {
  flex: 0 0 auto;
  margin-top: 3px;
  accent-color: var(--blue);
}

.publish-ticker-choice__copy,
.publish-option-choice > span,
.publish-package-choice__title {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.publish-ticker-choice small,
.publish-option-choice small,
.publish-package-choice small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}

.publish-package-choice {
  display: grid;
  padding: 11px 12px;
}

.publish-package-choice__header {
  display: flex;
  align-items: start;
  gap: 10px;
}

.publish-package-includes {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin: 8px 0 0 26px;
  padding: 0;
  color: var(--muted);
  font-size: 11px;
  list-style: none;
}

.publish-package-includes li::before {
  content: "• ";
  color: var(--gold);
  font-weight: 700;
}

.publish-input-label {
  display: grid;
  max-width: 260px;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
}

.publish-input-label input,
.publish-card select,
.publish-card input,
.source-registry-form input,
.source-registry-form select,
.platform-user-form input,
.platform-user-form select {
  width: 100%;
  min-height: 40px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  background: var(--white);
}

.publish-selection-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 16px;
  border-top: 1px solid var(--line);
  background: var(--light-gold);
}

.publish-selection-bar > div:first-child {
  display: grid;
  gap: 2px;
}

.publish-selection-bar__label {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.publish-two-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(190px, 1fr));
  gap: 8px;
}

.publish-two-actions .button { width: 100%; }

.button--publish {
  border-color: var(--raspberry);
  background: var(--raspberry);
  color: var(--white);
}

.button--publish:not(:disabled):hover { box-shadow: inset 0 -3px 0 var(--blue); }

.button--publish-saved {
  border-color: #013366;
  background: #D4AF37;
  color: #000000;
}
.button--publish-saved:not(:disabled):hover { box-shadow: inset 0 -3px 0 #013366; }

.publish-failure {
  background: #D8E0E8;
  color: #000000;
  border-left: 4px solid #013366;
  padding: 12px 16px;
  font-weight: 400;
  overflow-wrap: anywhere;
  min-width: 0;
}
.publish-failure__title { display: block; color: #013366; margin-bottom: 12px; }
.publish-failure__issue + .publish-failure__issue { margin-top: 16px; }
.publish-failure__fields { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 6px 12px; margin: 10px 0; }
.publish-failure__fields dt { font-weight: 700; }
.publish-failure__fields dd { margin: 0; white-space: pre-wrap; }
.publish-failure__technical summary { cursor: pointer; color: #013366; }
.publish-failure__technical p { white-space: pre-wrap; }
@media (max-width: 600px) {
  .publish-failure__fields { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .publish-failure__fields dd { margin-bottom: 8px; }
}

.publish-calculation-status {
  display: grid;
  gap: 6px;
  min-height: 36px;
  padding: 8px 16px;
  border-top: 1px solid var(--line);
  background: var(--white);
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.publish-calculation-status__track {
  display: block;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--line);
}

.publish-calculation-status__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--gold);
  transition: width 180ms ease;
}

.publish-calculation-status[data-state="complete"] {
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.publish-calculation-status[data-state="rejected"],
.publish-calculation-status[data-state="offline"] {
  border-left: 4px solid var(--brick);
  background: var(--light-brick);
  color: var(--brick);
}

.publish-helper-note { margin-top: 0; color: var(--muted); }

.publish-pairing-code {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--gold);
  background: var(--light-gold);
}

.publish-pairing-code code {
  display: block;
  margin-top: 6px;
  overflow-wrap: anywhere;
  color: var(--blue);
  font-weight: 700;
}

.calculation-device-list { display: grid; gap: 8px; }

.calculation-device-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  background: var(--white);
}

.calculation-device-row__identity {
  display: grid;
  gap: 2px;
}

.calculation-device-row__identity span {
  color: var(--muted);
  font-size: 12px;
}

.publish-center .module-section-panel {
  min-height: 0;
  padding: 20px;
}

.publish-message {
  min-height: 0;
  margin: 0;
  font-weight: 700;
}

.publish-message:not(:empty) {
  padding: 10px 12px;
  border-left: 4px solid var(--blue);
  background: var(--light-blue);
}

.publish-message[data-level="error"] { border-left-color: var(--brick); background: var(--light-brick); color: var(--brick); }
.publish-message[data-level="success"] { border-left-color: var(--green); background: var(--light-green); color: var(--green); }

.publish-job-list,
.publish-inspection-list { display: grid; gap: 10px; margin-top: 12px; }

.publish-workflow-list {
  display: grid;
  gap: 14px;
  margin-top: 12px;
}

.publish-workflow {
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--white);
}

.publish-workflow__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  background: var(--light-blue);
  color: var(--blue);
}

.publish-unit {
  display: grid;
  grid-template-columns: minmax(150px, .55fr) minmax(0, 2fr);
  gap: 10px 14px;
  padding: 12px;
  border-top: 1px solid var(--line);
}

.publish-unit__identity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: start;
  gap: 6px 8px;
}

.publish-unit__identity > strong {
  color: var(--blue);
  font-size: 17px;
}

.publish-unit__identity > span:last-child {
  flex-basis: 100%;
  color: var(--muted);
  font-size: 12px;
}

.publish-unit__stages {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.publish-unit-stage {
  display: grid;
  gap: 4px;
  min-height: 58px;
  padding: 8px 10px;
  border-top: 3px solid var(--blue);
  background: var(--white);
}

.publish-unit-stage__label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.publish-unit-stage strong {
  font-size: 13px;
  overflow-wrap: anywhere;
}

.publish-unit-stage[data-state="complete"] { border-top-color: var(--green); background: var(--light-green); }
.publish-unit-stage[data-state="active"] { border-top-color: var(--gold); background: var(--light-gold); }
.publish-unit-stage[data-state="failed"] { border-top-color: var(--brick); background: var(--light-brick); }
.publish-unit-stage[data-state="waiting"],
.publish-unit-stage[data-state="skipped"] { border-top-color: var(--blue); background: var(--light-blue); }

.publish-unit__message {
  grid-column: 2;
  margin: 0;
  color: var(--blue);
  font-size: 13px;
}

.publish-unit > .publish-failure { grid-column: 1 / -1; }

.publish-job,
.publish-inspection-row {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  background: var(--white);
}

.publish-job__heading,
.publish-inspection-row__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.publish-job__heading > div,
.publish-inspection-row__heading > div,
.publication-version-row__identity {
  display: grid;
  gap: 2px;
}

.publish-job__heading span,
.publication-version-row__identity span {
  color: var(--muted);
  font-size: 11px;
}

.publish-job__error { margin: 0; color: var(--brick); font-weight: 700; }

.publish-job-progress {
  display: grid;
  gap: 6px;
}

.publish-job-progress__copy {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--blue);
  font-size: 11px;
}

.publish-job-progress__track {
  height: 6px;
  overflow: hidden;
  border: 1px solid var(--blue);
  background: var(--light-blue);
}

.publish-job-progress__fill {
  display: block;
  height: 100%;
  background: var(--blue);
  transition: width .2s ease;
}

.publish-switch-note {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.publish-preview-summary,
.publish-preview-block {
  display: grid;
  gap: 8px;
}

.publish-preview-metrics,
.publish-difference-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.publish-preview-metric {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  background: var(--surface);
  font-size: 11px;
}

.publish-preview-metric span {
  color: var(--muted);
  text-transform: capitalize;
}

.publish-preview-block h4 {
  margin: 2px 0 0;
  color: var(--blue);
  font-size: 12px;
  text-transform: uppercase;
}

.publish-source-change-list,
.publish-inspection-sources {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.publish-source-change-row,
.publish-inspection-source {
  display: grid;
  grid-template-columns: minmax(130px, .7fr) minmax(160px, 1fr) minmax(160px, 1fr);
  gap: 10px;
  padding: 7px 9px;
  background: var(--surface);
  font-size: 11px;
}

.publish-source-change-row code,
.publish-inspection-source code {
  overflow-wrap: anywhere;
}

.publish-job__actions {
  display: flex;
  justify-content: flex-end;
}

.publish-rebase-note {
  margin: 0;
  padding: 7px 9px;
  border-left: 4px solid var(--green);
  background: var(--light-green);
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
}

.source-registry-list,
.platform-user-list,
.publication-version-list {
  display: grid;
  gap: 1px;
  margin-block: 12px;
  background: var(--line);
}

.source-registry-row,
.platform-user-row,
.publication-version-row {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(130px, .6fr) minmax(240px, 2fr) minmax(140px, .8fr);
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  background: var(--white);
  font-size: 12px;
}

.publication-version-row .button { justify-self: end; }

.source-registry-row code { overflow-wrap: anywhere; }

.source-registry-form,
.platform-user-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  padding: 14px;
  background: var(--light-blue);
}

.source-registry-form label,
.platform-user-form label {
  display: grid;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
}

.source-registry-form__locator { grid-column: span 2; }

.qa-shell {
  display: grid;
  gap: 16px;
  padding-block: 22px 48px;
}

.qa-control-bar {
  margin-bottom: 0;
  border-top: 6px solid var(--cyan);
}

.qa-overview-message {
  min-height: 0;
  margin: 0;
  padding: 10px 12px;
  border-left: 5px solid var(--cyan);
  background: var(--light-cyan);
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
}

.qa-overview-message[data-level="success"] {
  border-left-color: var(--green);
  background: var(--light-green);
  color: var(--green);
}

.qa-overview-message[data-level="error"] {
  border-left-color: var(--brick);
  background: var(--light-brick);
  color: var(--brick);
}

.qa-overview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.qa-overview-card {
  display: grid;
  min-height: 106px;
  align-content: center;
  gap: 4px;
  padding: 16px 18px;
  background: var(--white);
}

.qa-overview-card--gate {
  border-left: 8px solid var(--cyan);
  background: var(--light-cyan);
}

.qa-overview-card span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.qa-overview-card strong {
  color: var(--blue);
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1;
}

.qa-overview-card strong[data-status="fail"] { color: var(--brick); }
.qa-overview-card strong[data-status="warn"] { color: #69550c; }
.qa-overview-card strong[data-status="pass"] { color: var(--green); }

.qa-filter-bar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  background: var(--white);
}

.qa-severity-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0;
  padding: 0;
  border: 0;
}

.qa-severity-filter legend,
.qa-ticker-filter span {
  margin-bottom: 5px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.qa-severity-filter label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
}

.qa-severity-filter input { accent-color: var(--cyan); }

.qa-ticker-filter {
  display: grid;
  min-width: 180px;
}

.qa-ticker-filter select {
  min-height: 38px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  background: var(--white);
}

.qa-group-list {
  display: grid;
  gap: 14px;
}

.qa-group {
  border: 1px solid var(--line);
  border-top: 5px solid var(--cyan);
  background: var(--white);
  box-shadow: var(--shadow);
}

.qa-group__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--light-cyan);
}

.qa-group__heading h2,
.qa-group__heading p,
.qa-group__empty {
  margin: 0;
}

.qa-group__status {
  padding: 4px 8px;
  border: 1px solid var(--cyan);
  color: var(--cyan);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.qa-group__status[data-status="fail"] {
  border-color: var(--brick);
  color: var(--brick);
}

.qa-group__status[data-status="warn"] {
  border-color: var(--gold);
  color: #69550c;
}

.qa-group__empty {
  padding: 16px 18px;
  color: var(--green);
  font-size: 13px;
  font-weight: 700;
}

.qa-issue-list {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.qa-issue {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 13px 16px;
  background: var(--white);
}

.qa-issue__marker {
  padding: 4px 7px;
  border-left: 4px solid var(--slate-indigo);
  background: var(--light-slate-indigo);
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.qa-issue[data-severity="warning"] .qa-issue__marker {
  border-left-color: var(--gold);
  background: var(--light-gold);
}

.qa-issue[data-severity="fail"] .qa-issue__marker {
  border-left-color: var(--brick);
  background: var(--light-brick);
}

.qa-issue__body {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.qa-issue__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.qa-issue h3,
.qa-issue p { margin: 0; }
.qa-issue h3 { color: var(--blue); font-size: 14px; }
.qa-issue p { color: var(--ink); font-size: 12px; }

.qa-issue__metadata {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.qa-issue__metadata span {
  padding: 2px 6px;
  border: 1px solid var(--line);
  color: var(--muted);
  font-family: Consolas, "Courier New", monospace;
  font-size: 10px;
}

.qa-issue__metadata .qa-issue__blocker {
  border-color: var(--brick);
  background: var(--light-brick);
  color: var(--brick);
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
}

.qa-issue__action {
  width: fit-content;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
}

.qa-empty-state {
  padding: 28px;
  border-left: 7px solid var(--cyan);
  background: var(--light-cyan);
}

.qa-empty-state h2,
.qa-empty-state p { margin: 0; }
.qa-empty-state p { margin-top: 5px; color: var(--muted); }

@media (max-width: 1080px) {
  .master-module-nav__list,
  .master-module-nav__list--hosted { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .qa-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publish-workbench__grid,
  .publish-workbench__grid--portfolio { grid-template-columns: 1fr; }
  .publish-fieldset { border-right: 0; border-bottom: 1px solid var(--line); }
  .publish-fieldset:last-child { border-bottom: 0; }
  .source-registry-form,
  .platform-user-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-registry-row,
  .platform-user-row,
  .publication-version-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .master-module-nav__list,
  .master-module-nav__list--hosted { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qa-overview-grid { grid-template-columns: 1fr; }
  .qa-filter-bar,
  .qa-group__heading,
  .qa-issue__heading { align-items: stretch; flex-direction: column; }
  .qa-ticker-filter { width: 100%; }
  .qa-issue { grid-template-columns: 1fr; }
  .qa-issue__marker { width: fit-content; }
  .qa-issue__metadata { justify-content: flex-start; }
  .publish-domain-tabs { grid-template-columns: 1fr; border-bottom-width: 3px; }
  .publish-domain-tab { border-bottom: 1px solid var(--line); }
  .publish-domain-heading,
  .publish-selection-bar,
  .module-panel-heading { align-items: stretch; flex-direction: column; }
  .publish-action-row,
  .publish-heading-actions { width: 100%; }
  .publish-action-row .button,
  .publish-heading-actions .button { flex: 1 1 auto; }
  .publish-two-actions { grid-template-columns: 1fr; width: 100%; }
  .calculation-device-row { grid-template-columns: 1fr; }
  .publish-unit { grid-template-columns: 1fr; }
  .publish-unit__stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publish-unit__message { grid-column: 1; }
  .publish-preview-metrics,
  .publish-difference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publish-source-change-row,
  .publish-inspection-source { grid-template-columns: 1fr; }
  .source-registry-form,
  .platform-user-form { grid-template-columns: 1fr; }
  .source-registry-form__locator { grid-column: auto; }
  .source-registry-row,
  .platform-user-row,
  .publication-version-row { grid-template-columns: 1fr; }
}

.master-module-link--master-dashboard {
  background: var(--black);
}

.master-module-link--research {
  background: var(--blue);
}

.master-module-link--graphs {
  background: var(--gold);
  color: var(--black);
}

.master-module-link--portfolio-analytics {
  background: var(--brick);
}

.master-module-link--order-lab {
  background: var(--violet);
}

.master-module-link--news {
  background: var(--green);
}

.master-module-link--quality-assurance {
  background: var(--cyan);
}

.master-module-link--publish-center {
  background: var(--raspberry);
}

.master-module-link:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.master-module-link:focus-visible {
  z-index: 2;
  outline: 3px solid var(--white);
  outline-offset: -5px;
}

.master-module-link--graphs:focus-visible {
  outline-color: var(--black);
}

.master-module-link[aria-current="page"]::after {
  position: absolute;
  right: 12px;
  bottom: 0;
  left: 12px;
  height: 5px;
  background: var(--white);
  content: "";
}

.master-module-link--graphs[aria-current="page"]::after {
  background: var(--black);
}

.master-module-link__state {
  padding: 2px 5px;
  border: 1px solid currentColor;
  font-size: 8px;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.brand-lockup {
  display: flex;
  align-items: center;
}

.brand-name,
.product-name,
.eyebrow,
.control-bar__description,
.company-subtitle,
.control-help,
.section-note,
.error-panel__label,
.site-footer p,
.source-note p {
  margin: 0;
}

.brand-name {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.015em;
}

.product-name {
  color: var(--light-blue);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.service-state {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 9px;
  padding: 6px 10px;
  border: 1px solid rgb(255 255 255 / 45%);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
}

.service-state__dot {
  width: 8px;
  height: 8px;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
}

.service-state[data-state="connected"] .service-state__dot {
  background: var(--white);
}

.service-state[data-state="fixture"] {
  border-color: var(--gold);
}

.environment-banner {
  border-bottom: 1px solid var(--gold);
  background: var(--light-gold);
  color: var(--black);
}

.environment-banner__inner {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
  padding-block: 8px;
  font-size: 14px;
}

.environment-banner strong {
  color: var(--blue);
  white-space: nowrap;
}

.page-shell {
  padding-block: 20px 36px;
}

.control-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
}

.research-context-bar {
  min-height: 78px;
}

/* The shared Research shell stays mounted during scope changes. Hiding only
   the single-stock controls with visibility preserves the header geometry. */
html:has(body[data-research-scope]) {
  scrollbar-gutter: stable;
}

body[data-research-scope="equity-universe"] .research-context-bar .control-bar__ticker,
body[data-research-scope="equity-universe"] .research-context-bar .control-bar__actions {
  visibility: hidden;
  pointer-events: none;
}

body[data-research-scope="equity-universe"] #company-content,
body[data-research-scope="equity-universe"] #single-stock-research-tabs,
body[data-research-scope="equity-universe"] #graph-workspace-tabs,
body[data-research-scope="equity-universe"] #loading-panel,
body[data-research-scope="equity-universe"] #error-panel {
  display: none !important;
}

.research-navigation-status {
  margin: 12px 0;
  color: var(--blue);
  font-size: 13px;
}

.control-bar__primary {
  display: flex;
  min-width: 0;
  align-items: flex-end;
  gap: 32px;
}

.control-bar__intro {
  flex: 0 0 auto;
  max-width: 720px;
}

.eyebrow {
  margin-bottom: 4px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

h1,
h2,
h3 {
  margin-top: 0;
  color: var(--blue);
  line-height: 1.15;
}

h1 {
  margin-bottom: 4px;
  font-size: clamp(30px, 3vw, 44px);
  letter-spacing: -0.035em;
}

h2 {
  margin-bottom: 0;
  font-size: clamp(21px, 2vw, 28px);
  letter-spacing: -0.02em;
}

h3 {
  margin-bottom: 0;
  font-size: 18px;
}

.control-bar__description,
.company-subtitle,
.section-note,
.source-note p {
  color: var(--muted);
}

.control-bar__actions {
  display: flex;
  min-width: min(100%, 220px);
  align-items: flex-end;
  justify-content: flex-end;
  gap: 14px;
}

.control-bar__ticker {
  width: 220px;
  flex: 0 1 220px;
}

.field-group {
  flex: 1 1 190px;
}

.field-group label {
  display: block;
  margin-bottom: 6px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
}

select {
  width: 100%;
  min-height: 44px;
  padding: 8px 38px 8px 12px;
  border: 1px solid var(--blue);
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
}

select:disabled {
  border-color: var(--line);
  color: var(--muted);
  cursor: not-allowed;
}

.ticker-combobox {
  position: relative;
}

.ticker-combobox input {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--blue);
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--ink);
}

.ticker-combobox input:disabled {
  border-color: var(--line);
  color: var(--muted);
  cursor: not-allowed;
}

.ticker-options {
  position: absolute;
  z-index: 40;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 280px;
  overflow: auto;
  border: 1px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.ticker-option {
  display: grid;
  width: 100%;
  min-height: 48px;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 0;
  border-bottom: 1px solid var(--light-blue);
  background: var(--white);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.ticker-option strong {
  color: var(--blue);
}

.ticker-option span {
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ticker-option:hover,
.ticker-option[aria-selected="true"] {
  background: var(--light-blue);
}

.open-workbook-group {
  flex: 0 0 auto;
}

.button {
  min-height: 44px;
  padding: 9px 16px;
  border: 1px solid transparent;
  border-radius: var(--radius-small);
  font-weight: 700;
  cursor: pointer;
}

.button:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.button--primary {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.button--primary:not(:disabled):hover {
  box-shadow: inset 0 -3px 0 var(--gold);
}

.button--secondary {
  border-color: var(--blue);
  background: var(--white);
  color: var(--blue);
}

.button--secondary:hover {
  background: var(--light-blue);
}

.control-help {
  max-width: 220px;
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
}

.loading-panel,
.error-panel {
  display: grid;
  min-height: 260px;
  place-items: center;
  align-content: center;
  padding: 36px;
  border: 1px solid var(--light-blue);
  border-radius: var(--radius-large);
  background: var(--white);
  text-align: center;
}

.workspace-tabs {
  display: flex;
  gap: 4px;
  margin: 0 0 18px;
  padding: 0;
  border-bottom: 4px solid var(--blue);
}

.research-scope-nav {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 10px;
  border: 1px solid var(--blue);
  background: var(--white);
}

.research-scope-link {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 7px 14px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.research-scope-link + .research-scope-link {
  border-left: 1px solid var(--blue);
}

.research-scope-link:hover {
  background: var(--light-blue);
}

.research-scope-link[aria-current="page"] {
  background: var(--blue);
  color: var(--white);
}

.research-scope-link:focus-visible {
  z-index: 1;
  outline: 3px solid var(--gold);
  outline-offset: -4px;
}

@media (max-width: 620px) {
  .research-scope-nav { width: 100%; }
  .research-scope-link { flex: 1 1 50%; padding-inline: 9px; text-align: center; }
}

.workspace-tab {
  min-height: 52px;
  padding: 12px 22px;
  border: 1px solid var(--line);
  border-bottom: 0;
  background: var(--white);
  color: var(--blue);
  font-weight: 700;
  cursor: pointer;
}

.workspace-tab:hover {
  background: var(--light-blue);
}

.workspace-tab[aria-selected="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.module-page__shell {
  min-height: calc(100vh - 250px);
}

.module-page__hero {
  max-width: 980px;
  margin-bottom: 28px;
  padding: 24px 28px;
  border: 1px solid var(--light-blue);
  border-top: 5px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.module-page__hero h1 {
  margin-bottom: 10px;
}

.module-page__hero > p:last-child {
  max-width: 820px;
  margin: 0;
  color: var(--muted);
}

.module-page--master-dashboard .module-page__hero {
  border-top-color: var(--black);
}

.module-page--equity-universe .module-page__hero {
  border-top-color: var(--gold);
}

.module-page--portfolio-analytics .module-page__hero {
  border-top-color: var(--brick);
}

.module-page--order-lab .module-page__hero {
  border-top-color: var(--violet);
}

.module-page--news .module-page__hero {
  border-top-color: var(--green);
}

.module-section-tabs {
  display: flex;
  gap: 4px;
  margin: 0;
  padding: 0;
  border-bottom: 4px solid var(--blue);
}

.module-section-tab {
  min-height: 52px;
  padding: 12px 22px;
  border: 1px solid var(--line);
  border-bottom: 0;
  background: var(--white);
  color: var(--blue);
  font-weight: 700;
  cursor: pointer;
}

.module-section-tab:hover {
  background: var(--light-blue);
}

.module-section-tab[aria-selected="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.module-section-panel {
  min-height: 360px;
  padding: 28px;
  border: 1px solid var(--line);
  border-top: 0;
  background: var(--white);
}

.module-panel-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--light-blue);
}

.module-status-label {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.module-capability-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.module-capability-card {
  min-height: 190px;
  padding: 20px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  background: var(--white);
}

.module-capability-card__label {
  margin: 0 0 8px;
  color: var(--brick);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.module-capability-card h3 {
  margin-bottom: 10px;
}

.module-capability-card p:last-child,
.module-placeholder p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.module-placeholder {
  max-width: 920px;
  padding: 24px;
  border: 1px solid var(--light-blue);
  border-left: 5px solid var(--gold);
  background: var(--light-gold);
}

.module-placeholder h3 {
  margin-bottom: 8px;
}

.module-page--equity-universe .module-capability-card,
.module-page--equity-universe .module-placeholder {
  border-top-color: var(--gold);
}

.module-page--portfolio-analytics .module-capability-card,
.module-page--portfolio-analytics .module-placeholder {
  border-top-color: var(--brick);
}

.module-page--order-lab .module-capability-card,
.module-page--order-lab .module-placeholder {
  border-top-color: var(--violet);
}

.module-page--news .module-capability-card,
.module-page--news .module-placeholder {
  border-top-color: var(--green);
}

.equity-charting-panel {
  padding: 28px;
}

.equity-comparisons-panel {
  padding: 28px;
}

.equity-comparisons-intro {
  max-width: 1050px;
  margin: -8px 0 24px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.equity-comparison-table-workspace {
  --comparison-first-column-width: 72px;
  border: 1px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.equity-comparison-table-toolbar {
  position: relative;
  z-index: 12;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  min-height: 104px;
  padding: 18px 20px;
  border-bottom: 0;
  background: var(--white);
}

.equity-comparison-table-toolbar h3 {
  margin: 3px 0 5px;
  color: var(--blue);
  font-size: 21px;
}

.equity-comparison-table-toolbar p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.equity-comparison-table-toolbar p[data-level="error"] {
  color: var(--brick);
  font-weight: 700;
}

.equity-comparison-table-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.equity-comparison-table-actions .focus-table-button {
  min-height: 44px;
}

.equity-comparison-table-wrap {
  position: relative;
  max-height: min(68vh, 760px);
  overflow: auto;
  overscroll-behavior: contain;
  background: var(--surface);
  scrollbar-color: var(--blue) var(--light-blue);
}

.equity-comparison-table-wrap:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -3px;
}

.equity-comparison-table {
  --comparison-header-height: 62px;
  width: max-content;
  min-width: 0;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.equity-comparison-table th,
.equity-comparison-table td {
  min-width: 0;
  border-right: 1px solid rgb(1 51 102 / 16%);
  border-bottom: 1px solid rgb(1 51 102 / 15%);
}

.equity-comparison-table td.equity-ticker-cell {
  cursor: pointer;
  font-weight: 700;
}

.equity-comparison-table th {
  position: sticky;
  top: 0;
  z-index: 5;
  height: var(--comparison-header-height);
  padding: 0;
  color: var(--white);
  text-align: left;
  vertical-align: top;
  box-shadow: 0 2px 0 rgb(0 0 0 / 18%);
}

.equity-comparison-table th[data-band="blue"] { background: var(--blue); }
.equity-comparison-table th[data-band="gold"] { background: var(--gold); color: var(--black); }
.equity-comparison-table th[data-band="brick"] { background: var(--brick); }
.equity-comparison-table th[data-band="violet"] { background: var(--blue-violet); }
.equity-comparison-table th[data-band="green"] { background: var(--green); }
.equity-comparison-table th[data-band="raspberry"] { background: var(--raspberry); }
.equity-comparison-table th[data-band="cyan"] { background: var(--cyan); }
.equity-comparison-table th[data-band="black"] { background: var(--black); }

.comparison-header-label {
  display: block;
  max-height: calc(var(--comparison-header-height) - 20px);
  overflow: hidden;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
}

.comparison-sort-button {
  display: grid;
  width: 100%;
  height: var(--comparison-header-height);
  min-height: var(--comparison-header-height);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 5px;
  padding: 8px 18px 7px 7px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.comparison-sort-indicator {
  color: currentColor;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  opacity: 0.68;
}

.equity-comparison-table th[data-sorted="true"] .comparison-sort-indicator {
  opacity: 1;
}

.comparison-sort-button:hover,
.comparison-sort-button:focus-visible,
.comparison-sort-button[aria-expanded="true"] {
  background: rgb(255 255 255 / 16%);
  outline: 2px solid currentColor;
  outline-offset: -3px;
}

.equity-comparison-table th[data-band="gold"] .comparison-sort-button:hover,
.equity-comparison-table th[data-band="gold"] .comparison-sort-button:focus-visible,
.equity-comparison-table th[data-band="gold"] .comparison-sort-button[aria-expanded="true"] {
  background: rgb(255 255 255 / 32%);
}

.comparison-sort-menu {
  position: fixed;
  z-index: 5000;
  min-width: 164px;
  padding: 7px;
  border: 1px solid var(--blue);
  background: var(--white);
  box-shadow: 0 12px 30px rgb(0 0 0 / 24%);
  color: var(--ink);
}

.comparison-sort-menu__title {
  display: block;
  max-width: 230px;
  padding: 5px 7px 8px;
  color: var(--blue);
  font-size: 11px;
  line-height: 1.3;
}

.comparison-sort-menu__item {
  width: 100%;
  min-height: 34px;
  padding: 7px 9px;
  border: 0;
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.comparison-sort-menu__item:hover,
.comparison-sort-menu__item:focus-visible,
.comparison-sort-menu__item[aria-current="true"] {
  background: var(--light-blue);
  color: var(--blue);
  outline: 2px solid var(--blue);
  outline-offset: -2px;
}

.comparison-resize-handle {
  position: absolute;
  top: 0;
  right: -5px;
  bottom: 0;
  z-index: 8;
  width: 10px;
  cursor: col-resize;
  touch-action: none;
}

.comparison-resize-handle::after {
  position: absolute;
  top: 10px;
  right: 4px;
  bottom: 10px;
  width: 2px;
  background: rgb(255 255 255 / 52%);
  content: "";
}

.equity-comparison-table th[data-band="gold"] .comparison-resize-handle::after {
  background: rgb(0 0 0 / 38%);
}

.comparison-resize-handle:focus-visible {
  outline: 3px solid var(--white);
  outline-offset: -3px;
}

.comparison-header-resize-handle {
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  z-index: 9;
  height: 10px;
  cursor: row-resize;
  touch-action: none;
}

.comparison-header-resize-handle::after {
  position: absolute;
  right: 7px;
  bottom: 4px;
  left: 7px;
  height: 2px;
  background: currentColor;
  content: "";
  opacity: 0.52;
}

.comparison-header-resize-handle:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: -3px;
}

body.equity-header-row-resizing,
body.equity-header-row-resizing * {
  cursor: row-resize !important;
  user-select: none !important;
}

.equity-comparison-table td {
  height: 25px;
  padding: 3px 6px;
  overflow: hidden;
  color: var(--ink);
  font-size: 10px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.equity-comparison-table td[data-value-type="number"] {
  text-align: right;
}

.equity-comparison-table td[data-band="blue"] { background: var(--light-blue); }
.equity-comparison-table td[data-band="gold"] { background: var(--light-gold); }
.equity-comparison-table td[data-band="brick"] { background: var(--light-brick); }
.equity-comparison-table td[data-band="violet"] { background: var(--light-blue-violet); }
.equity-comparison-table td[data-band="green"] { background: var(--light-green); }
.equity-comparison-table td[data-band="raspberry"] { background: var(--light-raspberry); }
.equity-comparison-table td[data-band="cyan"] { background: var(--light-cyan); }
.equity-comparison-table td[data-band="black"] { background: #eceff2; }

.equity-comparison-table tr:hover td {
  box-shadow: inset 0 2px var(--gold), inset 0 -2px var(--gold);
}

.equity-comparison-table td[data-status="blocked"],
.equity-comparison-table td[data-status="error"],
.equity-comparison-table td[data-status="missing"] {
  text-decoration: underline dotted var(--brick) 2px;
  text-underline-offset: 4px;
}

.equity-comparison-table th:first-child,
.equity-comparison-table td:first-child {
  position: sticky;
  left: 0;
}

.equity-comparison-table th:nth-child(2),
.equity-comparison-table td:nth-child(2) {
  position: sticky;
  left: var(--comparison-first-column-width);
}

.equity-comparison-table th:first-child,
.equity-comparison-table th:nth-child(2) {
  z-index: 9;
}

.equity-comparison-table td:first-child,
.equity-comparison-table td:nth-child(2) {
  z-index: 2;
  font-weight: 700;
  box-shadow: 2px 0 0 rgb(1 51 102 / 18%);
}

.comparison-empty-cell {
  position: static !important;
  height: 120px !important;
  background: var(--white) !important;
  color: var(--muted) !important;
  font-weight: 700;
  text-align: center !important;
  white-space: normal !important;
}

body.equity-comparison-table-expanded {
  overflow: hidden;
}

.equity-comparison-table-workspace--expanded {
  position: fixed;
  inset: 28px 0 0;
  z-index: 3000;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  border: 0;
  outline: 0;
  background: var(--white);
}

.equity-comparison-table-workspace--expanded .equity-comparison-table-toolbar {
  display: none;
}

.equity-comparison-table-workspace--expanded .equity-comparison-table-wrap {
  width: 100%;
  max-height: none;
  height: 100%;
}

.equity-comparison-table-workspace--expanded .equity-comparison-table-wrap::after {
  display: block;
  width: 1px;
  height: clamp(120px, 28vh, 300px);
  content: "";
}

.equity-comparison-table-workspace--expanded .equity-focus-active-cell {
  outline: 3px solid var(--black);
  outline-offset: -3px;
}

.equity-focus-identity,
.equity-focus-filter,
.equity-focus-exit {
  position: fixed;
  top: 0;
  z-index: 6200;
  height: 28px;
  background: var(--black);
  color: var(--white);
}

.equity-focus-identity {
  right: 34px;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 12px;
  gap: 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.equity-focus-filter {
  position: relative;
  width: 230px;
  padding: 3px 4px;
}

.equity-focus-filter__toggle,
.equity-focus-filter__search input {
  width: 100%;
  height: 22px;
  padding: 1px 7px;
  border: 1px solid rgb(255 255 255 / 58%);
  border-radius: 0;
  background: #171717;
  color: var(--white);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.equity-focus-filter__toggle {
  display: block;
  cursor: pointer;
  text-align: left;
}

.equity-focus-filter__toggle::after {
  float: right;
  content: "▾";
}

.equity-focus-filter__toggle[aria-expanded="true"]::after {
  content: "▴";
}

.equity-focus-filter__search input::placeholder {
  color: rgb(255 255 255 / 72%);
  text-transform: none;
}

.equity-focus-filter__panel {
  position: absolute;
  z-index: 6250;
  top: 28px;
  left: 0;
  width: min(320px, calc(100vw - 16px));
  padding: 8px;
  border: 2px solid var(--blue);
  background: var(--white);
  box-shadow: 0 8px 22px rgb(0 0 0 / 28%);
  color: var(--black);
  white-space: normal;
}

.equity-focus-filter__search {
  display: block;
}

.equity-focus-filter__search input {
  height: 28px;
  border-color: var(--blue);
  background: var(--white);
  color: var(--black);
}

.equity-focus-filter__search input::placeholder {
  color: #4f5967;
}

.equity-focus-filter__actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-top: 7px;
}

.equity-focus-filter__actions button {
  min-height: 27px;
  padding: 3px 5px;
  border: 1px solid var(--blue);
  border-radius: 0;
  background: var(--light-blue);
  color: var(--blue);
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}

.equity-focus-filter__actions button:hover,
.equity-focus-filter__actions button:focus-visible {
  background: var(--blue);
  color: var(--white);
  outline: 2px solid var(--black);
  outline-offset: 1px;
}

.equity-focus-filter__status {
  min-height: 17px;
  padding: 7px 1px 4px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 700;
}

.equity-focus-filter__options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  max-height: min(330px, calc(100vh - 150px));
  padding: 4px;
  overflow: auto;
  border-top: 1px solid var(--light-blue);
}

.equity-focus-filter__option {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 5px;
  padding: 5px 6px;
  border: 1px solid var(--light-blue);
  background: var(--white);
  color: var(--black);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.equity-focus-filter__option:hover,
.equity-focus-filter__option:focus-within {
  border-color: var(--blue);
  background: var(--light-blue);
}

.equity-focus-filter__option input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--blue);
}

.equity-focus-filter__empty {
  grid-column: 1 / -1;
  margin: 4px;
  color: #4f5967;
  font-size: 11px;
}

.equity-focus-filter__panel[hidden] {
  display: none;
}

.equity-focus-filter__search input:focus-visible {
  border-color: var(--blue);
  outline: 2px solid var(--black);
  outline-offset: -2px;
}

.equity-focus-exit {
  right: 0;
  width: 34px;
  padding: 0;
  border: 0;
  border-left: 1px solid rgb(255 255 255 / 45%);
  border-radius: 0;
  font: inherit;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
}

.equity-focus-exit:hover,
.equity-focus-exit:focus-visible {
  background: var(--white);
  color: var(--black);
  outline: 2px solid var(--black);
  outline-offset: -2px;
}

.equity-focus-identity[hidden],
.equity-focus-filter[hidden],
.equity-focus-exit[hidden] {
  display: none;
}

.equity-charting-intro {
  max-width: 1060px;
  margin: -8px 0 22px;
  color: var(--muted);
  font-size: 14px;
}

.equity-chart-workspace {
  display: grid;
  gap: 18px;
}

body.equity-chart-expanded {
  overflow: hidden;
}

body.equity-chart-expanded-dark {
  background: var(--chart-card);
}

.equity-chart-workspace--expanded {
  position: fixed;
  z-index: 1100;
  inset: 0;
  overflow: auto;
  padding: 24px;
  background: var(--surface);
}

.equity-chart-controls {
  display: grid;
  grid-template-columns: minmax(260px, 1.1fr) minmax(340px, 1.4fr) repeat(2, minmax(220px, 1fr));
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--light-blue);
  border-top: 4px solid var(--gold);
  background: var(--white);
}

.equity-chart-field,
.equity-chart-control-group,
.equity-chart-ticker-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.equity-chart-field select {
  margin-top: 7px;
}

.equity-chart-control-group legend,
.equity-chart-ticker-fieldset legend {
  margin-bottom: 8px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.equity-chart-tickers {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.equity-chart-ticker-choice {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid var(--blue);
  background: var(--white);
  color: var(--blue);
  cursor: pointer;
}

.equity-chart-ticker-choice:has(input:checked) {
  border-color: var(--gold);
  background: var(--light-gold);
  color: var(--black);
}

.equity-chart-ticker-choice input {
  width: 16px;
  height: 16px;
  accent-color: var(--blue);
}

.equity-chart-date-fields,
.equity-chart-axis-fields {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.equity-chart-date-fields label,
.equity-chart-axis-fields label {
  display: grid;
  min-width: 0;
  flex: 1 1 110px;
  gap: 4px;
  color: var(--muted);
  font-size: 11px;
}

.equity-chart-date-fields input,
.equity-chart-axis-fields input {
  width: 100%;
  min-height: 40px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
}

.equity-chart-date-fields .button {
  min-height: 40px;
  flex: 0 0 auto;
  padding: 8px 10px;
  font-size: 11px;
}

.equity-chart-axis-controls {
  grid-column: 1 / -1;
}

.equity-chart-axis-controls .graph-setting-actions {
  margin-top: 10px;
}

.equity-comparison-chart-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--chart-tooltip-border);
  border-top: 4px solid var(--gold);
  background: var(--chart-card);
  box-shadow: 0 12px 34px rgb(0 0 0 / 22%);
  color: var(--chart-axis-label);
}

.equity-comparison-chart-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}

.equity-comparison-chart-header h3 {
  margin-bottom: 6px;
  color: var(--white);
  font-size: 20px;
}

.equity-comparison-chart-header .eyebrow {
  color: var(--gold);
}

.equity-comparison-chart-header p {
  margin: 0;
  color: var(--chart-axis-label);
  font-size: 12px;
  font-weight: 700;
}

.equity-chart-message {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
  color: var(--ink);
  font-size: 13px;
}

.equity-chart-message[data-level="error"] {
  border-left-color: var(--brick);
  background: var(--light-brick);
  color: var(--brick);
  font-weight: 700;
}

.equity-comparison-canvas-wrap {
  position: relative;
  min-height: 540px;
  overflow: hidden;
  border: 1px solid var(--chart-tooltip-border);
  background: var(--chart-canvas);
}

.equity-comparison-canvas {
  display: block;
  width: 100%;
  min-width: 0;
  height: 540px;
  touch-action: none;
}

.equity-chart-canvas-expand {
  position: absolute;
  z-index: 6;
  top: 12px;
  right: 12px;
  min-height: 36px;
  padding: 6px 10px;
  border-color: var(--chart-tooltip-border);
  background: rgb(11 13 17 / 90%);
  color: var(--chart-axis-label);
  font-size: 11px;
}

.equity-chart-workspace--expanded .equity-comparison-canvas-wrap,
.equity-chart-workspace--expanded .equity-comparison-canvas {
  min-height: 620px;
  height: 76vh;
}

.equity-chart-workspace--expanded .equity-comparison-chart-header {
  position: sticky;
  z-index: 8;
  top: -24px;
  margin: -20px -20px 14px;
  padding: 18px 20px;
  border-bottom: 2px solid var(--gold);
  background: var(--chart-card);
}

.equity-comparison-tooltip {
  max-width: 270px;
}

.equity-comparison-chart-card .graph-legend,
.equity-comparison-chart-card .graph-card__details {
  color: var(--chart-axis-label);
}

.loading-panel p {
  margin: 14px 0 0;
  color: var(--muted);
}

.loading-indicator {
  width: 36px;
  height: 36px;
  border: 4px solid var(--light-blue);
  border-top-color: var(--blue);
  border-radius: 50%;
  animation: rotate 900ms linear infinite;
}

@keyframes rotate {
  to {
    transform: rotate(360deg);
  }
}

.error-panel {
  border-left: 5px solid var(--brick);
}

.error-panel__label {
  margin-bottom: 6px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.error-panel h2 {
  margin-bottom: 8px;
}

.error-panel p:not(.error-panel__label) {
  max-width: 620px;
  margin: 0 0 18px;
}

.company-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.38fr);
  align-items: center;
  gap: 20px;
  padding: 18px;
  border-top: 5px solid var(--blue);
  border-bottom: 2px solid var(--gold);
  background: var(--white);
  box-shadow: var(--shadow);
}

.company-identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 18px;
}

.ticker-tile {
  display: grid;
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--blue);
  background: var(--light-blue);
  color: var(--blue);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.company-title-line {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.company-title-line h2 {
  overflow-wrap: anywhere;
  font-size: clamp(26px, 3vw, 38px);
}

.state-badge,
.metric-status,
.qa-status {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.state-badge[data-state="published"],
.state-badge[data-state="preview_ready"],
.state-badge[data-state="current"],
.state-badge[data-state="skipped_current"],
.metric-status[data-status="ok"],
.qa-status[data-status="pass"] {
  border-color: var(--green);
  background: var(--light-green);
  color: var(--green);
}

.state-badge[data-state="queued"],
.state-badge[data-state="preparing"],
.state-badge[data-state="calculating"],
.state-badge[data-state="waiting_laptop"],
.state-badge[data-state="online"] {
  border-color: var(--blue);
  background: var(--light-blue);
  color: var(--blue);
}

.state-badge[data-state="development_preview"],
.state-badge[data-state="preview"],
.state-badge[data-state="changed"],
.state-badge[data-state="retained"],
.metric-status[data-status="warning"],
.qa-status[data-status="warning"] {
  border-color: var(--gold);
  background: var(--light-gold);
  color: var(--black);
}

.state-badge[data-state="busy"] {
  border-color: var(--gold);
  background: var(--light-gold);
  color: var(--black);
}

.state-badge[data-state="publishing"],
.state-badge[data-state="partial"] {
  border-color: var(--gold);
  background: var(--light-gold);
  color: var(--black);
}

.state-badge[data-state="blocked"],
.state-badge[data-state="stale"],
.state-badge[data-state="rejected"],
.state-badge[data-state="error"],
.state-badge[data-state="failed"],
.state-badge[data-state="offline"],
.state-badge[data-state="needs_attention"],
.state-badge[data-state="outdated"],
.state-badge[data-state="excel_unavailable"],
.state-badge[data-state="dropbox_unavailable"],
.metric-status[data-status="blocked"],
.metric-status[data-status="stale"],
.qa-status[data-status="hard_fail"],
.qa-status[data-status="fail"] {
  border-color: var(--brick);
  background: var(--light-brick);
  color: var(--brick);
}

.company-subtitle {
  margin-top: 4px;
}

.metadata-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
  border-left: 1px solid var(--line);
}

.metadata-grid div {
  min-width: 0;
  padding: 4px 12px;
  border-right: 1px solid var(--line);
}

.metadata-grid dt {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.metadata-grid dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
}

.one-page,
.summary-view,
.vertical-view,
.source-note {
  margin-top: 12px;
  padding: 24px;
  border: 1px solid var(--light-blue);
  background: var(--white);
}

.graphs-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  border-top: 4px solid var(--blue);
  background: var(--white);
}

.graphs-intro h2 {
  margin: 2px 0 8px;
}

.graphs-intro-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-self: flex-start;
}

#graphs-focus-open {
  min-height: 48px;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 700;
  color: #FFFFFF;
  background: #013366;
  border: 2px solid #D8E0E8;
}

#graphs-focus-open:focus-visible {
  outline: 3px solid #D4AF37;
  outline-offset: 3px;
}

#graphs-focus-open:disabled { opacity: .6; }

.graph-theme-picker {
  width: fit-content;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
}

.graph-theme-picker legend {
  margin-bottom: 6px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.graph-theme-picker__options {
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--light-blue);
  background: var(--surface);
}

.graph-theme-picker label {
  position: relative;
  cursor: pointer;
}

.graph-theme-picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.graph-theme-picker label span {
  display: grid;
  min-width: 74px;
  min-height: 36px;
  place-items: center;
  padding: 7px 14px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.graph-theme-picker input[value="light"]:checked + span {
  background: var(--white);
  box-shadow: inset 0 0 0 1px var(--blue);
  color: var(--blue);
}

.graph-theme-picker input[value="dark"]:checked + span {
  background: var(--chart-card);
  box-shadow: inset 0 0 0 1px var(--chart-axis-label);
  color: var(--chart-axis-label);
}

.graph-theme-picker input:focus-visible + span {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

.graph-state {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  margin-top: 12px;
  padding: 11px 14px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
  font-size: 13px;
}

/* Status banners retain pale fills in both chart themes: use explicit dark ink. */
#graphs-panel .graph-state,
#graphs-panel .graph-state span {
  color: #000000;
}

.graph-state[data-state="ready"] {
  border-left-color: var(--green);
  background: var(--light-green);
}

.graph-state[data-state="failed"] {
  border-left-color: var(--brick);
  background: var(--light-brick);
}

.graph-state strong {
  color: var(--blue);
  white-space: nowrap;
}

.graph-display-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid var(--light-blue);
  border-left: 4px solid var(--blue);
  background: var(--white);
}

.graph-display-toolbar > div:first-child {
  display: grid;
  gap: 3px;
}

.graph-display-toolbar strong {
  color: var(--blue);
}

.graph-display-toolbar span {
  color: var(--muted);
  font-size: 12px;
}

.graph-display-toolbar__actions,
.graph-sync-control {
  display: flex;
  align-items: center;
}

.graph-display-toolbar__actions {
  gap: 14px;
  flex-wrap: wrap;
}

.graph-sync-control {
  min-height: 44px;
  gap: 8px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

  .graph-sync-control input {
  width: 18px;
  height: 18px;
  accent-color: var(--blue);
}

.graph-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 12px;
}

.graph-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--light-blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.graph-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.graph-card__header-actions {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 10px;
}

.graph-card__heading {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.graph-card__header h3 {
  margin: 0;
  color: var(--blue);
  font-size: 18px;
}

.graph-card__header span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.graph-expand-button {
  min-height: 40px;
  flex: 0 0 auto;
  padding: 8px 12px;
  font-size: 12px;
}

.graph-display-settings {
  margin: 0 0 12px;
  padding: 0;
  border: 1px solid var(--light-blue);
  background: var(--surface);
}

.graph-display-settings > summary {
  display: flex;
  min-height: 44px;
  width: auto;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  color: var(--blue);
  list-style: none;
}

.graph-display-settings > summary::-webkit-details-marker {
  display: none;
}

.graph-display-settings > summary::after {
  content: "+";
  font-size: 20px;
  line-height: 1;
}

.graph-display-settings[open] > summary::after {
  content: "\2212";
}

.graph-settings-body {
  display: grid;
  gap: 14px;
  padding: 14px;
  border-top: 1px solid var(--light-blue);
  background: var(--white);
}

.graph-setting-group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.graph-setting-group legend {
  margin-bottom: 8px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.graph-range-presets,
.graph-setting-fields,
.graph-setting-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
}

.graph-range-presets {
  margin-bottom: 10px;
}

.graph-setting-sublegend {
  margin: 12px 0 7px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
}

.graph-extension-presets {
  margin-bottom: 6px;
}

.graph-projection-status {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.graph-projection-status[data-level="unavailable"] {
  color: var(--brick);
}

.graph-preset-button {
  min-width: 48px;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid var(--blue);
  background: var(--white);
  color: var(--blue);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.graph-preset-button:hover,
.graph-preset-button[aria-pressed="true"] {
  background: var(--blue);
  color: var(--white);
}

.graph-preset-button:disabled {
  border-color: var(--line);
  background: var(--surface);
  color: var(--muted);
  cursor: not-allowed;
  opacity: 0.62;
}

.graph-setting-field {
  display: grid;
  min-width: 120px;
  flex: 1 1 120px;
  gap: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.graph-setting-field input {
  width: 100%;
  min-height: 40px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
}

.graph-setting-actions {
  margin-top: 9px;
}

.graph-setting-actions .button {
  min-height: 40px;
  padding: 8px 12px;
  font-size: 12px;
}

.graph-setting-status {
  min-height: 18px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.graph-setting-status[data-level="error"] {
  color: var(--brick);
  font-weight: 700;
}

.graph-active-range {
  margin: -4px 0 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.graph-canvas-wrap {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
}

.graph-canvas {
  display: block;
  width: 100%;
  min-width: 0;
  height: 440px;
  touch-action: none;
}

.graph-canvas-expand-button {
  position: absolute;
  z-index: 6;
  top: 12px;
  right: 12px;
  min-height: 36px;
  padding: 6px 10px;
  background: rgb(255 255 255 / 92%);
  font-size: 11px;
}

body.graph-expanded {
  overflow: hidden;
}

.graph-card--expanded {
  position: fixed;
  z-index: 1000;
  inset: 0;
  width: 100vw;
  height: 100vh;
  overflow: auto;
  padding: 44px 16px 16px;
  border: 0;
  box-shadow: none;
}

.graph-card--expanded .graph-canvas-wrap,
.graph-card--expanded .graph-canvas {
  min-height: 560px;
  height: max(76vh, min(calc(100vh - 240px), 1800px));
  height: max(76vh, min(calc(100dvh - 240px), 1800px));
}

.graph-card--expanded .graph-card__header {
  position: fixed;
  z-index: 1002;
  inset: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0, max-content) minmax(max-content, 1fr);
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--black);
}

.graph-card--expanded .graph-card__heading {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 0 14px;
  text-align: left;
}

.focus-mode-view-select {
  width: min(230px, 30vw);
  height: 22px;
  min-height: 0;
  padding: 1px 22px 0 5px;
  border: 0;
  border-bottom: 1px solid rgb(255 255 255 / 72%);
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  color-scheme: dark;
  font: 700 10px/20px Arial, Helvetica, sans-serif;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  cursor: pointer;
}

.focus-mode-view-select option {
  background: var(--black);
  color: var(--white);
}

.focus-mode-view-select:hover,
.focus-mode-view-select:focus-visible {
  border-color: var(--gold);
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}

.graph-focus-view-select {
  flex: 0 1 230px;
}

.graph-card--expanded .graph-card__header h3 {
  overflow: hidden;
  color: var(--white);
  font-size: 11px;
  letter-spacing: 0.06em;
  line-height: 36px;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.graph-card--expanded .graph-card__heading > span {
  display: none;
}

.graph-card--expanded .graph-card__header-actions {
  height: 36px;
  align-items: stretch;
  flex-direction: row;
  gap: 0;
  min-width: 0;
}

.graph-focus-settings-button,
.graph-focus-exit {
  min-height: 0;
  border: 0;
  border-left: 1px solid rgb(255 255 255 / 42%);
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
  cursor: pointer;
}

.graph-focus-settings-button {
  height: 36px;
  padding: 0 12px;
  font-size: 9px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.graph-focus-settings-button[aria-expanded="true"] {
  background: var(--blue);
  box-shadow: inset 0 -2px 0 var(--gold);
}

.graph-focus-exit {
  display: grid;
  width: 38px;
  height: 36px;
  place-items: center;
  padding: 0;
  font-size: 22px;
  line-height: 1;
  margin-left: auto;
  flex-shrink: 0;
}

.graph-focus-settings-button:hover,
.graph-focus-settings-button:focus-visible,
.graph-focus-exit:hover,
.graph-focus-exit:focus-visible {
  background: var(--blue);
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}

.graph-focus-ticker {
  position: relative;
  display: flex;
  width: 144px;
  flex: 0 0 144px;
  gap: 4px;
  height: 36px;
  align-items: center;
  padding: 6px 8px;
  border-left: 1px solid rgb(255 255 255 / 42%);
  background: var(--black);
}

.focus-context-label {
  flex-shrink: 0;
  color: var(--white);
  font: 700 10px/20px Arial, Helvetica, sans-serif;
  white-space: nowrap;
  text-transform: none;
  letter-spacing: normal;
}

.graph-focus-ticker input {
  width: 100%;
  min-width: 0;
  height: 22px;
  min-height: 0;
  padding: 1px 4px 0;
  border: 0;
  border-bottom: 1px solid rgb(255 255 255 / 72%);
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  font: 700 10px/20px Arial, Helvetica, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.graph-focus-ticker input::placeholder {
  color: rgb(255 255 255 / 70%);
  opacity: 1;
}

.graph-focus-ticker input::-webkit-search-cancel-button {
  display: none;
}

.graph-focus-ticker input:hover,
.graph-focus-ticker input:focus-visible {
  border-color: var(--gold);
  outline: 0;
  box-shadow: inset 0 -2px 0 var(--gold);
}

.graph-focus-ticker input:disabled {
  opacity: 0.62;
  cursor: wait;
}

.graph-focus-ticker-options {
  position: absolute;
  z-index: 1004;
  top: 36px;
  right: 0;
  width: 118px;
  max-height: min(240px, 45vh);
  overflow-y: auto;
  border: 1px solid var(--white);
  border-top: 0;
  background: var(--black);
  box-shadow: 0 10px 24px rgb(0 0 0 / 34%);
}

.graph-focus-ticker-option {
  display: block;
  width: 100%;
  min-height: 28px;
  padding: 5px 8px;
  border: 0;
  border-top: 1px solid rgb(255 255 255 / 24%);
  background: var(--black);
  color: var(--white);
  font: 700 10px/17px Arial, Helvetica, sans-serif;
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}

.graph-focus-ticker-option:hover,
.graph-focus-ticker-option:focus-visible,
.graph-focus-ticker-option[aria-selected="true"] {
  background: var(--blue);
  outline: 0;
  box-shadow: inset 3px 0 0 var(--gold);
}

.graph-focus-ticker-options[hidden],
.graph-display-settings--focus[hidden] {
  display: none;
}

.graph-card--expanded .graph-display-settings--focus {
  position: fixed;
  z-index: 1010;
  inset: 36px 0 0 auto;
  width: min(680px, 100vw);
  max-height: calc(100dvh - 36px);
  margin: 0;
  padding: 12px;
  overflow-y: auto;
  border: 0;
  border-left: 1px solid var(--line);
  background: var(--white);
  box-shadow: -12px 0 30px rgb(0 0 0 / 18%);
  color: var(--ink);
}

.graph-card--expanded .graph-display-settings--focus > summary {
  display: none;
}

.graph-card--expanded .graph-display-settings--focus .graph-settings-body {
  align-content: start;
  padding: 0;
  border: 0;
  background: transparent;
}

.graph-tooltip {
  position: absolute;
  z-index: 5;
  min-width: 190px;
  max-width: 290px;
  padding: 10px 12px;
  border: 1px solid var(--chart-tooltip-border);
  background: var(--chart-card);
  box-shadow: 0 10px 28px rgb(0 0 0 / 36%);
  color: var(--chart-axis-label);
  font-size: 12px;
  pointer-events: none;
}

.graph-tooltip strong,
.graph-tooltip span {
  display: block;
}

.graph-tooltip span + span {
  margin-top: 4px;
}

.graph-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
}

.graph-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.graph-legend__swatch {
  width: 18px;
  height: 3px;
  background: var(--series-color);
}

.graph-card__details {
  min-height: 24px;
  margin: 12px 0 0;
  color: var(--ink);
  font-size: 13px;
}

#graphs-panel[data-theme="dark"] {
  padding: 14px;
  background: var(--blue);
  color: var(--white);
}

#graphs-panel[data-theme="dark"] .graphs-intro,
#graphs-panel[data-theme="dark"] .graph-display-toolbar {
  border-color: var(--light-blue);
  background: var(--blue);
  color: var(--white);
  box-shadow: none;
}

#graphs-panel[data-theme="dark"] .graph-card,
#graphs-panel[data-theme="dark"] .graph-display-settings,
#graphs-panel[data-theme="dark"] .graph-settings-body {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-card);
  color: var(--white);
  box-shadow: none;
}

#graphs-panel[data-theme="dark"] .graphs-intro {
  border-top-color: var(--gold);
}

#graphs-panel[data-theme="dark"] .graph-theme-picker legend {
  color: var(--white);
}

#graphs-panel[data-theme="dark"] .graph-theme-picker__options {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-card);
}

#graphs-panel[data-theme="dark"] .graph-theme-picker input[value="light"]:not(:checked) + span {
  color: var(--light-blue);
}

#graphs-panel[data-theme="dark"] h2,
#graphs-panel[data-theme="dark"] h3,
#graphs-panel[data-theme="dark"] .eyebrow,
#graphs-panel[data-theme="dark"] .graph-display-toolbar strong,
#graphs-panel[data-theme="dark"] .graph-display-settings > summary,
#graphs-panel[data-theme="dark"] .graph-setting-group legend,
#graphs-panel[data-theme="dark"] .graph-sync-control,
#graphs-panel[data-theme="dark"] .graph-card__details {
  color: var(--white);
}

#graphs-panel[data-theme="dark"] .graphs-intro p:not(.eyebrow),
#graphs-panel[data-theme="dark"] .graph-display-toolbar span,
#graphs-panel[data-theme="dark"] .graph-card__header span,
#graphs-panel[data-theme="dark"] .graph-setting-field,
#graphs-panel[data-theme="dark"] .graph-setting-status,
#graphs-panel[data-theme="dark"] .graph-setting-sublegend,
#graphs-panel[data-theme="dark"] .graph-projection-status,
#graphs-panel[data-theme="dark"] .graph-active-range,
#graphs-panel[data-theme="dark"] .graph-legend {
  color: var(--light-blue);
}

#graphs-panel[data-theme="dark"] .graph-canvas-wrap {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-canvas);
}

#graphs-panel[data-theme="dark"] .graph-tooltip {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-card);
  color: var(--chart-axis-label);
}

#graphs-panel[data-theme="dark"] .graph-preset-button {
  border-color: var(--light-blue);
  background: var(--blue);
  color: var(--white);
}

#graphs-panel[data-theme="dark"] .graph-preset-button:hover,
#graphs-panel[data-theme="dark"] .graph-preset-button[aria-pressed="true"] {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--black);
}

#graphs-panel[data-theme="dark"] .graph-preset-button:disabled {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-card);
  color: var(--light-blue);
  opacity: 0.5;
}

#graphs-panel[data-theme="dark"] .graph-projection-status[data-level="unavailable"] {
  color: var(--chart-series-brick);
}

#graphs-panel[data-theme="dark"] .button--secondary {
  border-color: var(--light-blue);
  background: var(--white);
  color: var(--blue);
}

#graphs-panel[data-theme="dark"] :focus-visible {
  outline-color: var(--gold);
}

#graphs-panel[data-theme="dark"] .graph-card--expanded .graph-card__header {
  background: var(--black);
}

/* In dark graph focus mode, black is reserved for the compact command bar.
   The analysis surface beneath it keeps the governed near-black/graphite chart
   environment instead of inheriting the site's light page canvas. */
body.graph-expanded-dark,
body.graph-expanded-dark .graph-card--expanded {
  background: var(--chart-card);
  color: var(--chart-axis-label);
}

body.graph-expanded-dark .graph-card--expanded .graph-card__header {
  background: var(--black);
}

body.graph-expanded-dark .graph-card--expanded .graph-display-settings--focus {
  border-left-color: var(--chart-tooltip-border);
  background: var(--chart-card);
  box-shadow: -12px 0 30px rgb(0 0 0 / 32%);
  color: var(--chart-axis-label);
}

body.graph-expanded-dark .graph-card--expanded .graph-display-settings--focus .graph-settings-body {
  background: transparent;
}

body.graph-expanded-dark .graph-card--expanded .graph-canvas-wrap {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-canvas);
}

.comparison-graphs-panel {
  display: grid;
  gap: 14px;
  padding: 14px;
  background: var(--blue);
  color: var(--white);
}

.comparison-graphs-panel[hidden] {
  display: none;
}

.comparison-graph-controls {
  display: grid;
  gap: 14px;
}

.comparison-graphs-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding: 18px;
  border-top: 4px solid var(--gold);
  background: var(--blue);
  color: var(--white);
}

.comparison-graphs-intro h2,
.comparison-graphs-intro .eyebrow {
  color: var(--white);
}

.comparison-graph-selection {
  display: grid;
  grid-template-columns: minmax(250px, 0.8fr) minmax(300px, 1fr) minmax(420px, 2fr);
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--chart-tooltip-border);
  background: var(--chart-card);
  color: var(--chart-axis-label);
}

.comparison-graph-selection .equity-chart-field,
.comparison-graph-selection .equity-chart-ticker-fieldset,
.comparison-graph-selection .equity-chart-ticker-fieldset legend {
  color: var(--chart-axis-label);
}

.comparison-graph-selection select,
.comparison-ticker-search input {
  width: 100%;
  min-height: 36px;
  padding: 6px 8px;
  border: 1px solid var(--chart-tooltip-border);
  border-radius: 0;
  background: var(--chart-canvas);
  color: var(--chart-axis-label);
  font: 700 12px/1.2 Arial, Helvetica, sans-serif;
}

.comparison-ticker-fieldset {
  min-width: 0;
}

.comparison-ticker-tools {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) repeat(3, auto);
  gap: 7px;
  margin-bottom: 9px;
}

.comparison-ticker-tools .button {
  min-height: 36px;
  padding: 6px 9px;
  font-size: 10px;
}

.comparison-graphs-panel .equity-chart-tickers {
  max-height: 120px;
  overflow-y: auto;
  padding: 2px;
}

.comparison-graphs-panel .equity-chart-ticker-choice {
  position: relative;
  min-height: 32px;
  padding: 4px 8px;
  border-color: var(--chart-tooltip-border);
  background: var(--chart-canvas);
  color: var(--chart-axis-label);
  font-size: 11px;
}

.comparison-graphs-panel .equity-chart-ticker-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.comparison-graphs-panel .equity-chart-ticker-choice:has(input:checked) {
  border-color: var(--ticker-color);
  background: var(--chart-card);
  box-shadow: inset 3px 0 0 var(--ticker-color);
  color: var(--chart-axis-label);
}

.comparison-ticker-order {
  display: grid;
  min-width: 34px;
  height: 20px;
  padding: 0 5px;
  place-items: center;
  border: 1px solid var(--chart-tooltip-border);
  border-radius: 2px;
  background: var(--chart-canvas);
  color: var(--chart-axis-label);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}

.equity-chart-ticker-choice:has(input:checked) .comparison-ticker-order {
  border-color: var(--ticker-color);
  background: var(--ticker-color);
  color: var(--ticker-marker-ink);
}

.comparison-ticker-count {
  min-height: 16px;
  margin: 7px 0 0;
  color: var(--chart-axis-label);
  font-size: 10px;
  font-weight: 700;
}

.comparison-graph-display-settings,
.comparison-graph-display-settings .graph-settings-body {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-card);
  color: var(--chart-axis-label);
}

.comparison-graph-display-settings > summary,
.comparison-graph-display-settings legend,
.comparison-graph-display-settings .graph-setting-field,
.comparison-graph-display-settings .equity-chart-date-fields label,
.comparison-graph-display-settings .equity-chart-axis-fields label {
  color: var(--chart-axis-label);
}

.comparison-graph-settings-body {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.comparison-graph-theme-options {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-canvas);
}

.comparison-graphs-panel .graph-preset-button {
  border-color: var(--chart-tooltip-border);
  background: var(--chart-canvas);
  color: var(--chart-axis-label);
}

.comparison-graphs-panel .graph-preset-button:hover,
.comparison-graphs-panel .graph-preset-button[aria-pressed="true"] {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--black);
}

.comparison-graphs-panel .equity-chart-date-fields input,
.comparison-graphs-panel .equity-chart-axis-fields input {
  min-height: 36px;
  border-color: var(--chart-tooltip-border);
  background: var(--chart-canvas);
  color: var(--chart-axis-label);
}

.comparison-graphs-panel .equity-chart-axis-controls {
  grid-column: 1 / -1;
}

.comparison-graphs-panel .equity-chart-message {
  margin: 0;
}

.comparison-graphs-panel .equity-comparison-chart-card {
  border-top-color: var(--gold);
}

.comparison-graph-workspace.equity-chart-workspace--expanded {
  overflow: hidden;
  padding: 36px 0 0;
  background: var(--chart-card);
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-card {
  height: calc(100dvh - 36px);
  overflow: auto;
  padding: 14px;
  border: 0;
  background: var(--chart-card);
  box-shadow: none;
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header {
  position: fixed;
  z-index: 1110;
  inset: 0 0 auto;
  height: 36px;
  margin: 0;
  padding: 0 0 0 14px;
  align-items: center;
  border: 0;
  background: var(--black);
  display: grid;
  grid-template-columns: minmax(0, max-content) minmax(max-content, 1fr);
  gap: 10px;
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}

.equity-comparison-chart-header-actions {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header-actions {
  height: 36px;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}

.comparison-focus-tickers {
  align-self: center;
  padding: 0 12px;
  max-width: 270px;
  overflow: hidden;
  color: var(--white);
  font: 700 10px/20px Arial, Helvetica, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.comparison-focus-tickers[hidden] { display: none; }

.comparison-graph-workspace.equity-chart-workspace--expanded #equity-chart-focus-controls-toggle {
  display: block;
  height: 36px;
}

.comparison-graph-workspace.equity-chart-workspace--expanded #equity-chart-focus-controls-toggle[hidden] {
  display: none;
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header .eyebrow,
.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header p {
  display: none;
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header h3 {
  margin: 0;
  color: var(--white);
  font-size: 11px;
  letter-spacing: 0.06em;
  line-height: 36px;
  text-transform: uppercase;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.comparison-graph-workspace.equity-chart-workspace--expanded #equity-chart-expand {
  width: 38px;
  height: 36px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid rgb(255 255 255 / 42%);
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  font-size: 22px;
  line-height: 1;
  margin-left: auto;
  flex-shrink: 0;
}

.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-canvas-wrap,
.comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-canvas {
  height: max(76vh, min(calc(100dvh - 170px), 1800px));
  min-height: 560px;
}

body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls {
  display: none;
}

body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open {
  position: fixed;
  z-index: 1120;
  inset: 36px 0 0 auto;
  display: grid;
  width: min(680px, 100vw);
  max-height: calc(100dvh - 36px);
  align-content: start;
  gap: 12px;
  overflow-y: auto;
  padding: 12px;
  border-left: 1px solid var(--chart-tooltip-border);
  background: var(--chart-card);
  box-shadow: -12px 0 30px rgb(0 0 0 / 32%);
  color: var(--chart-axis-label);
}

body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .comparison-graph-selection,
body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .comparison-graph-settings-body {
  grid-template-columns: 1fr 1fr;
}

body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .comparison-ticker-fieldset,
body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .equity-chart-axis-controls {
  grid-column: 1 / -1;
}

body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .equity-chart-tickers {
  max-height: min(260px, 32vh);
}

.comparison-graphs-panel[data-theme="light"] {
  background: var(--surface);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graphs-intro {
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  background: var(--white);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graphs-intro h2 {
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graphs-intro .eyebrow {
  color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-selection,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-display-settings,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-display-settings .graph-settings-body {
  border-color: var(--line);
  background: var(--white);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .equity-comparison-chart-card {
  border-color: var(--line);
  border-top-color: var(--gold);
  background: var(--white);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .equity-comparison-chart-header h3,
.comparison-graphs-panel[data-theme="light"] .equity-comparison-chart-header p,
.comparison-graphs-panel[data-theme="light"] .equity-comparison-chart-card .graph-legend,
.comparison-graphs-panel[data-theme="light"] .equity-comparison-chart-card .graph-card__details {
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .equity-comparison-canvas-wrap {
  border-color: var(--line);
  background: #e7e6e6;
}

.comparison-graphs-panel[data-theme="light"] .equity-comparison-tooltip {
  border-color: rgb(1 51 102 / 28%);
  background: var(--white);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-selection .equity-chart-field,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-selection .equity-chart-ticker-fieldset,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-selection .equity-chart-ticker-fieldset legend,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-display-settings > summary,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-display-settings legend,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-display-settings .equity-chart-date-fields label,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-display-settings .equity-chart-axis-fields label {
  color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-selection select,
.comparison-graphs-panel[data-theme="light"] .comparison-ticker-search input,
.comparison-graphs-panel[data-theme="light"] .equity-chart-date-fields input,
.comparison-graphs-panel[data-theme="light"] .equity-chart-axis-fields input,
.comparison-graphs-panel[data-theme="light"] .equity-chart-ticker-choice {
  border-color: var(--line);
  background: var(--white);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .equity-chart-ticker-choice:has(input:checked) {
  border-color: var(--blue);
  background: var(--light-blue);
  box-shadow: inset 4px 0 0 var(--ticker-color);
  color: var(--black);
}

.comparison-graphs-panel[data-theme="light"] .equity-chart-ticker-choice input {
  accent-color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .equity-chart-ticker-choice:hover {
  border-color: var(--blue);
  background: var(--surface);
}

.comparison-graphs-panel[data-theme="light"] .equity-chart-ticker-choice:has(input:focus-visible) {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}

.comparison-graphs-panel[data-theme="light"] .comparison-ticker-order {
  border-color: var(--line);
  background: var(--white);
  color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .equity-chart-ticker-choice:has(input:checked) .comparison-ticker-order {
  border-color: var(--ticker-color);
  background: var(--ticker-color);
  color: var(--ticker-marker-ink);
}

.comparison-graphs-panel[data-theme="light"] .comparison-ticker-count {
  color: var(--muted);
}

.comparison-graphs-panel[data-theme="light"] .comparison-ticker-tools .button--secondary {
  border-color: var(--blue);
  background: var(--white);
  color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-ticker-tools .button--secondary:hover {
  background: var(--light-blue);
  color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options {
  display: inline-flex;
  padding: 3px;
  border-color: var(--line);
  background: var(--surface);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options label {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options input {
  position: static;
  width: 15px;
  height: 15px;
  margin: 0 0 0 10px;
  opacity: 1;
  accent-color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options label span {
  display: grid;
  min-width: 62px;
  min-height: 36px;
  place-items: center;
  padding: 7px 14px 7px 6px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options input[value="light"]:checked + span {
  background: var(--white);
  box-shadow: inset 0 0 0 1px var(--blue);
  color: var(--blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options input[value="dark"]:not(:checked) + span:hover {
  background: var(--light-blue);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-theme-options input:focus-visible + span {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-workspace.equity-chart-workspace--expanded,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-card {
  background: var(--white);
  color: var(--ink);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header,
.comparison-graphs-panel[data-theme="light"] .comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-chart-header h3 {
  background: var(--black);
  color: var(--white);
}

.comparison-graphs-panel[data-theme="light"] .comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-canvas-wrap {
  border-color: var(--line);
  background: #e7e6e6;
}

body.equity-chart-expanded .comparison-graphs-panel[data-theme="light"]:not([hidden]) .comparison-graph-controls--focus-open {
  border-left-color: var(--line);
  background: var(--white);
  color: var(--ink);
  box-shadow: -12px 0 30px rgb(0 0 0 / 18%);
}

@media (max-width: 1100px) {
  .comparison-graph-selection,
  .comparison-graph-settings-body {
    grid-template-columns: 1fr 1fr;
  }

  .graph-global-settings {
    grid-column: 1 / -1;
  }

  .graph-global-fit-control {
    white-space: normal;
  }

  .graph-global-fit-note,
  .graph-global-settings p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
  }

  .comparison-ticker-fieldset,
  .comparison-graphs-panel .equity-chart-axis-controls {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .comparison-graph-selection,
  .comparison-graph-settings-body,
  .comparison-ticker-tools {
    grid-template-columns: 1fr;
  }

  body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .comparison-graph-selection,
  body.equity-chart-expanded .comparison-graphs-panel:not([hidden]) .comparison-graph-controls--focus-open .comparison-graph-settings-body {
    grid-template-columns: 1fr;
  }

  .comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-canvas-wrap,
  .comparison-graph-workspace.equity-chart-workspace--expanded .equity-comparison-canvas {
    min-height: 440px;
  }
}

/* Vertical's outer-card spacing is shared by every single-stock research view.
   Keep these rules independent of table and focus-mode geometry. */
#company-content .research-view-panel {
  margin-top: 12px;
  padding: 24px;
  border: 1px solid var(--light-blue);
  border-top: 4px solid var(--blue);
  background: var(--white);
}

.prism-workspace {
  min-height: 640px;
}

.prism-heading,
.prism-category-heading,
.prism-detail-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.prism-heading {
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--light-blue);
}

.prism-heading h2,
.prism-category-heading h3,
.prism-detail-heading h3 {
  margin: 0;
  color: var(--blue);
}

.prism-heading .section-note {
  max-width: 760px;
  margin: 5px 0 0;
}

.prism-library-count {
  display: grid;
  min-width: 128px;
  padding: 10px 14px;
  border: 1px solid var(--blue);
  text-align: right;
}

.prism-library-count strong {
  color: var(--blue);
  font-size: 26px;
  line-height: 1;
}

.prism-library-count span {
  color: var(--blue);
  font-size: 14px;
  font-weight: 700;
}

.prism-library-count small {
  color: var(--muted);
  font-size: 12px;
}

.prism-context {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 18px;
  border: 1px solid var(--light-blue);
  background: var(--light-blue);
}

.prism-context > div {
  display: grid;
  gap: 2px;
  padding: 10px 14px;
  background: var(--white);
}

.prism-context > div + div {
  border-left: 1px solid var(--light-blue);
}

.prism-context span,
.prism-control > span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.prism-context strong {
  color: var(--blue);
  font-size: 15px;
}

.prism-context .prism-status {
  color: var(--brick);
}

.prism-selector-grid {
  display: grid;
  grid-template-columns: minmax(250px, 0.9fr) minmax(310px, 1.2fr) minmax(260px, 1fr);
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--blue);
  background: var(--light-blue);
}

.prism-control {
  display: grid;
  gap: 6px;
}

.prism-control select,
.prism-control input,
.prism-focus-header select {
  width: 100%;
  min-height: 44px;
  padding: 8px 11px;
  border: 1px solid var(--blue);
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--ink);
  font: inherit;
  font-size: 14px;
}

.prism-control select:focus-visible,
.prism-control input:focus-visible,
.prism-component-card:focus-visible,
.prism-reading-order button:focus-visible,
.prism-framework-grid button:focus-visible,
.prism-focus-header :is(button, select, input):focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

.prism-search-summary {
  min-height: 20px;
  margin: 7px 0 13px;
  color: var(--muted);
  font-size: 13px;
}

.prism-directory {
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  background: var(--white);
}

.prism-category-heading {
  align-items: flex-end;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--light-blue);
}

.prism-category-number,
.prism-detail-code,
.prism-framework-kind,
.prism-focus-body > .eyebrow {
  margin: 0 0 3px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.prism-category-heading > p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.prism-category-note {
  margin: 0 0 14px;
  padding: 10px 13px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
  color: var(--ink);
  font-size: 14px;
}

.prism-component-directory,
.prism-component-group {
  display: grid;
  gap: 10px;
}

.prism-component-group + .prism-component-group {
  margin-top: 18px;
  padding-top: 17px;
  border-top: 1px solid var(--light-blue);
}

.prism-component-group h4 {
  margin: 0;
  color: var(--blue);
  font-size: 15px;
}

.prism-component-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.prism-component-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3px 11px;
  min-height: 92px;
  padding: 12px 14px;
  border: 1px solid var(--light-blue);
  border-left: 4px solid var(--blue);
  background: var(--white);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.prism-component-card:hover {
  background: var(--light-blue);
}

.prism-component-card[aria-pressed="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.prism-component-card__code {
  grid-row: 1 / span 2;
  color: var(--brick);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.prism-component-card[aria-pressed="true"] .prism-component-card__code,
.prism-component-card[aria-pressed="true"] .prism-component-card__status {
  color: var(--white);
}

.prism-component-card__title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}

.prism-component-card__status {
  align-self: end;
  color: var(--muted);
  font-size: 12px;
}

.prism-search-empty {
  margin: 0;
  padding: 18px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.prism-detail {
  margin-top: 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  background: var(--white);
}

.prism-detail-heading {
  align-items: center;
  padding: 18px;
}

.prism-detail-heading .button:disabled {
  border-color: var(--line);
  background: var(--surface);
  color: var(--muted);
  cursor: not-allowed;
}

.prism-reading-order {
  display: flex;
  overflow-x: auto;
  border-top: 1px solid var(--light-blue);
  border-bottom: 3px solid var(--blue);
}

.prism-reading-order button {
  flex: 1 0 auto;
  min-height: 46px;
  padding: 9px 15px;
  border: 0;
  border-right: 1px solid var(--light-blue);
  background: var(--white);
  color: var(--blue);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.prism-reading-order button:hover {
  background: var(--light-blue);
}

.prism-reading-order button[aria-selected="true"] {
  background: var(--blue);
  color: var(--white);
}

.prism-reading-panel {
  min-height: 210px;
  padding: 18px;
  outline: none;
}

.prism-reading-panel:focus-visible {
  box-shadow: inset 0 0 0 3px var(--gold);
}

.prism-empty-state {
  padding: 18px;
  border-left: 5px solid var(--gold);
  background: var(--light-gold);
}

.prism-empty-state > strong {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--brick);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.prism-empty-state h4,
.prism-framework-intro h4 {
  margin: 0 0 5px;
  color: var(--blue);
  font-size: 18px;
}

.prism-empty-state p,
.prism-framework-intro p {
  max-width: 920px;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.prism-framework-intro {
  margin-bottom: 14px;
}

.prism-framework-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.prism-framework-grid button {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 10px;
  min-height: 116px;
  padding: 13px;
  border: 1px solid var(--light-blue);
  border-top: 4px solid var(--blue);
  background: var(--white);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.prism-framework-grid button:hover {
  background: var(--light-blue);
}

.prism-framework-order {
  grid-row: 1 / span 3;
  color: var(--brick);
  font-size: 13px;
  font-weight: 700;
}

.prism-framework-grid strong {
  color: var(--blue);
  font-size: 15px;
}

.prism-framework-grid small {
  color: var(--muted);
  font-size: 12px;
}

.prism-focus-dialog {
  width: 100vw;
  max-width: none;
  height: 100vh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--white);
  color: var(--ink);
}

.prism-focus-dialog::backdrop {
  background: rgb(0 0 0 / 65%);
}

.prism-focus-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 12px;
  background: var(--black);
  color: var(--white);
}

.prism-focus-identity {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.prism-focus-identity h2 {
  margin: 0;
  color: var(--white);
  font-size: 14px;
  text-transform: uppercase;
}

.prism-focus-identity > span,
.prism-focus-identity label,
.prism-focus-theme {
  flex: 0 0 auto;
  font-size: 12px;
}

.prism-focus-identity label {
  display: flex;
  align-items: center;
  gap: 6px;
}

.prism-focus-header select {
  min-width: 220px;
  min-height: 34px;
  padding-block: 4px;
  border-color: var(--muted);
  background: var(--black);
  color: var(--white);
  font-size: 12px;
}

.prism-focus-theme {
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 4px 7px;
  border: 1px solid var(--muted);
}

.prism-focus-theme legend {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.prism-focus-theme label {
  gap: 3px;
}

.prism-focus-close {
  width: 34px;
  height: 34px;
  border: 1px solid var(--muted);
  background: var(--black);
  color: var(--white);
  font: inherit;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.prism-focus-body {
  min-height: calc(100vh - 52px);
  padding: clamp(22px, 4vw, 56px);
  background: var(--white);
}

.prism-focus-body h3 {
  margin: 0 0 22px;
  color: var(--blue);
  font-size: clamp(24px, 3vw, 38px);
}

.prism-focus-empty {
  min-height: 52vh;
  display: grid;
  place-content: center;
  padding: 30px;
  border: 1px solid var(--light-blue);
  border-left: 6px solid var(--gold);
  background: var(--light-gold);
  text-align: center;
}

.prism-focus-empty strong {
  color: var(--brick);
  font-size: 16px;
  text-transform: uppercase;
}

.prism-focus-empty p {
  max-width: 720px;
  margin: 8px auto 0;
}

.prism-focus-help {
  color: var(--muted);
  font-size: 13px;
  text-align: right;
}

.prism-focus-dialog[data-theme="dark"] .prism-focus-body {
  background: #111827;
  color: var(--white);
}

.prism-focus-dialog[data-theme="dark"] .prism-focus-body h3,
.prism-focus-dialog[data-theme="dark"] .prism-focus-body > .eyebrow {
  color: var(--light-blue);
}

.prism-focus-dialog[data-theme="dark"] .prism-focus-empty {
  border-color: #334155;
  border-left-color: var(--gold);
  background: #111827;
}

.prism-focus-dialog[data-theme="dark"] .prism-focus-empty p,
.prism-focus-dialog[data-theme="dark"] .prism-focus-help {
  color: var(--light-blue);
}

@media (min-width: 1700px) {
  .prism-component-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .prism-selector-grid,
  .prism-framework-grid {
    grid-template-columns: 1fr 1fr;
  }

  .prism-control--search {
    grid-column: 1 / -1;
  }

  .prism-component-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .prism-focus-identity {
    align-items: flex-start;
    flex-direction: column;
  }

  .prism-focus-header select {
    min-width: min(70vw, 420px);
  }
}

@media (max-width: 640px) {
  .prism-heading,
  .prism-category-heading,
  .prism-detail-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .prism-library-count {
    width: 100%;
    text-align: left;
  }

  .prism-context,
  .prism-selector-grid,
  .prism-component-grid,
  .prism-framework-grid {
    grid-template-columns: 1fr;
  }

  .prism-context > div + div {
    border-top: 1px solid var(--light-blue);
    border-left: 0;
  }

  .prism-control--search {
    grid-column: auto;
  }

  .prism-category-heading > p {
    white-space: normal;
  }

  .prism-component-card {
    min-height: 78px;
  }

  .prism-detail-heading .button {
    width: 100%;
  }

  .prism-reading-order button {
    flex-basis: 58%;
  }

  .prism-focus-header {
    align-items: flex-start;
  }

  .prism-focus-identity,
  .prism-focus-identity label {
    width: 100%;
    align-items: stretch;
  }

  .prism-focus-identity label {
    flex-direction: column;
  }

  .prism-focus-header select {
    min-width: 0;
  }
}

.matrix-empty {
  margin: 0;
  padding: 18px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
  color: var(--ink);
  font-size: 13px;
}

.matrix-table-wrap {
  max-width: 100%;
  max-height: calc(100vh - 112px);
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--line);
  background: var(--white);
  scrollbar-color: var(--blue) var(--light-blue);
}

.matrix-table-wrap:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

.matrix-table {
  --matrix-metric-column-width: 340px;
  --matrix-unit-column-width: 82px;
  --matrix-section-period-row-height: 35px;
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--ink);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.matrix-table th,
.matrix-table td {
  box-sizing: border-box;
  min-width: 96px;
  height: 28px;
  padding: 4px 8px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
  text-align: right;
  white-space: nowrap;
}

.matrix-table th.matrix-metric-column,
.matrix-table td.matrix-metric-column {
  position: sticky;
  left: 0;
  z-index: 2;
  width: var(--matrix-metric-column-width);
  min-width: var(--matrix-metric-column-width);
  max-width: var(--matrix-metric-column-width);
  text-align: left;
  white-space: nowrap;
}

.matrix-table th.matrix-unit-column,
.matrix-table td.matrix-unit-column {
  position: sticky;
  left: var(--matrix-metric-column-width);
  z-index: 2;
  width: var(--matrix-unit-column-width);
  min-width: var(--matrix-unit-column-width);
  max-width: var(--matrix-unit-column-width);
  color: var(--muted);
  font-size: 10px;
  text-align: left;
}

.matrix-table tbody th.matrix-metric-column {
  font-weight: 600;
}

.matrix-strong-separator-row > th,
.matrix-strong-separator-row > td {
  border-top: 3px solid var(--blue);
}

/* The fiscal header already separates this section from its first row.
   Preserve all internal dividers and the existing focus-mode presentation. */
#matrix-table-wrap:not(.company-research-table--focused) #matrix-section-data-return-outcomes > tr:first-child > th,
#matrix-table-wrap:not(.company-research-table--focused) #matrix-section-data-return-outcomes > tr:first-child > td {
  border-top: 0;
}

.matrix-calculated-result-row > th.matrix-metric-column {
  font-weight: 700;
}

.matrix-double-divider-after-row > th,
.matrix-double-divider-after-row > td {
  border-bottom: 3px double var(--black);
}

.matrix-strong-separator-row.matrix-double-divider-after-row > th,
.matrix-strong-separator-row.matrix-double-divider-after-row > td {
  height: 25px;
  padding-top: 2.4px;
  padding-bottom: 2.4px;
}

.metric-strong-separator-row > th,
.metric-strong-separator-row > td {
  border-top: 3px solid var(--blue);
}

.metric-help-button {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  line-height: 1.15;
  text-align: left;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
  cursor: help;
}

.metric-help-button:hover,
.metric-help-button:focus-visible {
  color: var(--blue);
  text-decoration-color: var(--gold);
}

.matrix-section-row .metric-help-button:hover,
.matrix-section-row .metric-help-button:focus-visible {
  color: var(--white);
}

.metric-explanation-tooltip {
  position: fixed;
  z-index: 30;
  width: min(420px, calc(100vw - 24px));
  padding: 12px 14px;
  border: 2px solid var(--gold);
  background: var(--blue);
  box-shadow: var(--shadow);
  color: var(--white);
  font-size: 13px;
  line-height: 1.5;
  pointer-events: none;
}

.metric-explanation-dialog {
  width: min(640px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
  color: var(--ink);
}

.metric-explanation-dialog::backdrop {
  background: rgba(0, 0, 0, 0.46);
}

.metric-explanation-dialog__header {
  padding: 22px 24px 12px;
  border-bottom: 1px solid var(--light-blue);
  background: var(--surface);
}

.metric-explanation-dialog__header h2 {
  margin: 2px 0 0;
  color: var(--blue);
  font-size: 22px;
}

.metric-explanation-dialog > p {
  margin: 0;
  padding: 20px 24px;
  font-size: 15px;
  line-height: 1.65;
}

.metric-explanation-dialog__actions {
  display: flex;
  justify-content: flex-end;
  padding: 0 24px 22px;
}

.matrix-table [data-present="true"] {
  background: var(--light-gold);
  color: var(--black);
  font-weight: 700;
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.matrix-table td[data-status="missing"] {
  color: var(--muted);
  font-weight: 400;
}

.matrix-table td[data-empty="true"] {
  background: var(--white);
  color: var(--muted);
  box-shadow: none;
}

.matrix-table .matrix-dcf-price-target-row td[data-present="true"][data-empty="true"] {
  background: var(--light-gold);
  color: var(--black);
  font-weight: 700;
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.matrix-table td[data-status="blocked"],
.matrix-table td[data-status="hard_fail"],
.matrix-table td[data-status="fail"],
.matrix-table td[data-status="error"] {
  background: var(--light-brick);
  color: var(--brick);
  font-weight: 700;
}

.matrix-section-row th,
.matrix-section-row td,
.matrix-section-row th.matrix-metric-column,
.matrix-section-row th.matrix-unit-column {
  padding: 9px 12px;
  background: var(--blue);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: left;
  text-transform: uppercase;
}

.matrix-section-row .matrix-section-period {
  height: var(--matrix-section-period-row-height);
  text-align: center;
}

.matrix-section-row .matrix-section-period[data-phase="historical"] {
  background: var(--light-blue);
  color: var(--blue);
}

.matrix-section-row .matrix-section-period[data-phase="forecast"] {
  background: var(--light-brick);
  color: var(--brick);
}

.matrix-section-row .matrix-section-period[data-present="true"] {
  background: var(--light-gold);
  color: var(--black);
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.matrix-section-row > th.matrix-metric-column {
  border-right-color: var(--blue);
}

.matrix-section-row > th.matrix-metric-column,
.matrix-section-row > th.matrix-unit-column {
  border-bottom-color: var(--blue);
  vertical-align: middle;
}

.matrix-section-date-row > th {
  height: 18px;
  padding: 1px 6px;
  border-bottom: 1px solid var(--line);
  background: var(--blue);
  color: var(--white);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
}

.matrix-section-date-row .matrix-section-fiscal-date[data-phase="historical"] {
  background: var(--light-blue);
  color: var(--blue);
}

.matrix-section-date-row .matrix-section-fiscal-date[data-phase="forecast"] {
  background: var(--light-brick);
  color: var(--brick);
}

.matrix-section-date-row .matrix-section-fiscal-date[data-present="true"] {
  background: var(--light-gold);
  color: var(--black);
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.matrix-section-toggle {
  display: flex;
  width: 100%;
  min-height: 34px;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  font: inherit;
  letter-spacing: inherit;
  text-align: left;
  text-transform: inherit;
  cursor: pointer;
}

.matrix-section-toggle:hover .matrix-section-toggle__state,
.matrix-section-toggle:focus-visible .matrix-section-toggle__state {
  color: var(--light-gold);
}

.matrix-section-toggle__state {
  margin-left: auto;
  color: var(--light-blue);
  font-size: 10px;
  letter-spacing: 0.04em;
}

.matrix-section-toggle__icon {
  display: inline-grid;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 65%);
  color: var(--white);
  font-size: 15px;
  line-height: 1;
}

.summary-view {
  border-top: 4px solid var(--blue);
}

.summary-view-heading .section-note {
  max-width: 720px;
}

.summary-view-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid var(--light-blue);
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.summary-view-toolbar > div:first-child {
  display: grid;
  gap: 2px;
}

.summary-view-toolbar strong {
  color: var(--blue);
}

.summary-view-toolbar span {
  color: var(--muted);
  font-size: 12px;
}

.summary-period-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.summary-period-controls > .focus-table-button {
  min-height: 40px;
}

.summary-period-button {
  min-height: 40px;
  padding: 7px 13px;
  border: 1px solid var(--blue);
  background: var(--white);
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.summary-period-button[aria-pressed="true"] {
  background: var(--blue);
  color: var(--white);
}

.summary-period-button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.summary-view-table-wrap {
  max-width: 100%;
  max-height: calc(100vh - 112px);
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--line);
  background: var(--white);
  scrollbar-color: var(--blue) var(--light-blue);
}

.summary-view-table-wrap:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

.company-research-page-scroll-table {
  max-height: none;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
}

body.company-table-focused {
  overflow: hidden;
}

.company-research-page-scroll-table.company-research-table--focused {
  position: fixed;
  z-index: 160;
  inset: 28px 0 0;
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  overflow: auto;
  overscroll-behavior: contain;
  border: 0;
  outline: 0;
  background: var(--white);
  box-shadow: 0 18px 54px rgb(0 0 0 / 28%);
  scrollbar-color: var(--blue) var(--light-blue);
}

.company-research-page-scroll-table.company-research-table--focused::after {
  display: block;
  width: 1px;
  height: clamp(220px, 45vh, 360px);
  content: "";
  pointer-events: none;
}

.company-research-table--focused .matrix-section-row > th {
  position: sticky;
  z-index: 10;
  top: 0;
}

.company-research-table--focused .matrix-section-date-row > th {
  position: sticky;
  z-index: 10;
  top: var(--matrix-section-period-row-height);
}

/* A section's colored fiscal/date header already separates its first metric.
   Do not carry that metric's blue divider under gold/forecast header cells. */
.company-research-table--focused .matrix-section-header + .matrix-section-data > tr:first-child > th,
.company-research-table--focused .matrix-section-header + .matrix-section-data > tr:first-child > td {
  border-top: 0;
}

.company-research-table--focused .company-table-active-cell {
  outline: 3px solid var(--black);
  outline-offset: -3px;
}

.company-research-table--focused tbody tr:not(.matrix-section-row) > th,
.company-research-table--focused tbody tr:not(.matrix-section-row) > td {
  cursor: cell;
}

.focus-table-identity {
  position: fixed;
  z-index: 170;
  inset: 0 0 auto;
  display: flex;
  height: 28px;
  align-items: center;
  padding: 0 36px 0 12px;
  gap: 8px;
  background: var(--black);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 17px;
  text-align: left;
  text-transform: uppercase;
}

.focus-table-identity .focus-mode-view-select {
  width: 230px;
  height: 20px;
  line-height: 18px;
}

.focus-table-identity[hidden] {
  display: none;
}

.focus-table-period-controls {
  position: relative;
  z-index: 171;
  top: 0;
  display: flex;
  height: 28px;
  align-items: center;
  border-left: 1px solid rgb(255 255 255 / 55%);
  background: var(--black);
  color: var(--white);
  font-family: Arial, Helvetica, sans-serif;
}

.focus-table-period-controls[hidden],
.focus-table-range-field[hidden] {
  display: none;
}

.focus-table-period-modes {
  display: flex;
  height: 28px;
  align-items: center;
  padding: 4px;
  border-right: 1px solid rgb(255 255 255 / 32%);
}

.focus-table-period-modes button {
  height: 20px;
  min-height: 0;
  padding: 0 7px;
  border: 0;
  border-radius: 0;
  background: var(--black);
  color: rgb(255 255 255 / 76%);
  font: 700 9px/20px Arial, Helvetica, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
}

.focus-table-period-modes button[aria-pressed="true"] {
  background: var(--blue);
  color: var(--white);
  box-shadow: inset 0 -2px 0 var(--gold);
}

.focus-table-period-modes button:hover,
.focus-table-period-modes button:focus-visible {
  color: var(--white);
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}

.focus-table-period-modes button:disabled,
.focus-table-range-field input:disabled {
  opacity: 0.55;
  cursor: wait;
}

.focus-table-range-field {
  display: flex;
  height: 28px;
  align-items: center;
  gap: 4px;
  padding: 4px 5px;
  border-right: 1px solid rgb(255 255 255 / 32%);
  color: rgb(255 255 255 / 72%);
  font: 700 8px/20px Arial, Helvetica, sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.focus-table-range-field input {
  width: 64px;
  height: 20px;
  min-height: 0;
  padding: 1px 3px 0;
  border: 0;
  border-bottom: 1px solid rgb(255 255 255 / 72%);
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  font: 700 9px/18px Arial, Helvetica, sans-serif;
  letter-spacing: 0.03em;
  text-align: center;
  text-transform: uppercase;
}

.focus-table-range-field input:hover,
.focus-table-range-field input:focus-visible {
  border-color: var(--gold);
  outline: 0;
  box-shadow: inset 0 -2px 0 var(--gold);
}

.focus-table-ticker {
  position: relative;
  z-index: 171;
  top: 0;
  display: flex;
  width: 144px;
  flex: 0 0 144px;
  gap: 4px;
  height: 28px;
  align-items: center;
  padding: 4px 8px;
  border-left: 1px solid rgb(255 255 255 / 55%);
  background: var(--black);
}

.focus-table-ticker input {
  width: 100%;
  min-width: 0;
  height: 20px;
  min-height: 0;
  padding: 1px 4px 0;
  border: 0;
  border-bottom: 1px solid rgb(255 255 255 / 72%);
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  font: 700 10px/18px Arial, Helvetica, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.focus-table-ticker input::placeholder {
  color: rgb(255 255 255 / 70%);
  opacity: 1;
}

.focus-table-ticker input::-webkit-search-cancel-button {
  display: none;
}

.focus-table-ticker input:hover,
.focus-table-ticker input:focus-visible {
  border-color: var(--gold);
  outline: 0;
  box-shadow: inset 0 -2px 0 var(--gold);
}

.focus-table-ticker input:disabled {
  opacity: 0.62;
  cursor: wait;
}

.focus-table-ticker-options {
  position: absolute;
  top: 28px;
  right: 0;
  width: 118px;
  max-height: min(240px, 45vh);
  overflow-y: auto;
  border: 1px solid var(--white);
  border-top: 0;
  background: var(--black);
  box-shadow: 0 10px 24px rgb(0 0 0 / 34%);
}

.focus-table-ticker-option {
  display: block;
  width: 100%;
  min-height: 26px;
  padding: 5px 8px;
  border: 0;
  border-top: 1px solid rgb(255 255 255 / 24%);
  background: var(--black);
  color: var(--white);
  font: 700 10px/16px Arial, Helvetica, sans-serif;
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}

.focus-table-ticker-option:hover,
.focus-table-ticker-option:focus-visible,
.focus-table-ticker-option[aria-selected="true"] {
  background: var(--blue);
  color: var(--white);
  outline: 0;
  box-shadow: inset 3px 0 0 var(--gold);
}

.focus-table-ticker-options[hidden] {
  display: none;
}

.focus-table-ticker[hidden] {
  display: none;
}

.focus-table-exit {
  position: fixed;
  z-index: 171;
  top: 0;
  right: 0;
  display: grid;
  width: 36px;
  height: 28px;
  place-items: center;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--white);
  background: var(--black);
  color: var(--white);
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.focus-table-exit:hover,
.focus-table-exit:focus-visible {
  background: var(--blue);
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}

.focus-table-exit[hidden] {
  display: none;
}

@media (max-width: 720px) {
  .focus-table-identity .focus-mode-view-select {
    width: 150px;
    min-width: 65px;
  }

  .focus-table-period-modes button {
    padding-inline: 5px;
  }

  .focus-table-range-field {
    gap: 2px;
    padding-inline: 3px;
  }

  .focus-table-range-field input {
    width: 54px;
  }

  .focus-table-ticker {
    width: 124px;
    flex-basis: 124px;
  }
}

.summary-view-note {
  margin: 0 0 12px;
}

.summary-view-table th.summary-metric-column {
  white-space: normal;
}

.statement-period-controls {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.statement-period-controls .summary-period-button {
  min-height: 32px;
  padding-block: 5px;
}

.statement-period-range {
  display: flex;
  align-items: end;
  gap: 6px;
}

.statement-period-range label {
  display: grid;
  gap: 3px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.statement-period-range input,
.statement-period-range button {
  min-height: 32px;
  border: 1px solid var(--blue);
  background: var(--white);
  color: var(--blue);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
}

.statement-period-range input {
  min-width: 94px;
  width: 94px;
  padding: 4px 8px;
}

.statement-period-range button {
  padding: 5px 10px;
  cursor: pointer;
}

.statement-period-range button:hover,
.statement-period-range button:focus-visible {
  background: var(--light-blue);
}

.statement-period-range button:disabled,
.statement-period-range input:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.three-statement-table {
  --matrix-metric-column-width: 410px;
  font-size: 10px;
}

.three-statement-table th,
.three-statement-table td {
  height: 24px;
  padding: 2px 6px;
}

/* Match statement-row density and type size in 1_Page, including focus mode.
   Keep horizontal spacing, fiscal headers, and colors unchanged. */
#matrix-table-wrap .matrix-section-data > tr > th,
#matrix-table-wrap .matrix-section-data > tr > td {
  height: 24px;
  padding-block: 2px;
  font-size: 10px;
}

#matrix-table-wrap .matrix-section-data > tr > .matrix-unit-column {
  font-size: 9px;
}

.three-statement-table .matrix-section-date-row > th {
  height: 18px;
  padding-block: 1px;
}

.three-statement-table th.matrix-unit-column,
.three-statement-table td.matrix-unit-column {
  font-size: 9px;
}

.three-statement-table tr[data-row-kind="subheader"] > th,
.three-statement-table tr[data-row-kind="subheader"] > td {
  background: var(--light-blue);
  color: var(--blue);
  font-weight: 700;
}

.three-statement-table tr[data-header-only="true"] > th,
.three-statement-table tr[data-header-only="true"] > td {
  border-top: 0;
  border-bottom-color: var(--line);
  background: var(--white);
  box-shadow: none;
  color: var(--black);
}

.three-statement-table tr[data-row-kind="result"] > th,
.three-statement-table tr[data-row-kind="result"] > td {
  border-top: 2px solid var(--blue);
  font-weight: 700;
}

.three-statement-table:not(.cash-flow-waterfall-table) [data-present="true"] {
  background: var(--light-gold);
  color: var(--black);
  font-weight: 700;
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.cash-flow-waterfall-table tr[data-row-kind="metric"] > td[data-present="true"][data-status="ok"],
.cash-flow-waterfall-table tr[data-row-kind="metric"] > td[data-present="true"][data-status="stale"] {
  background: var(--white);
  color: var(--ink);
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.cash-flow-waterfall-table tr[data-row-kind="result"] > td[data-present="true"][data-status="ok"],
.cash-flow-waterfall-table tr[data-row-kind="result"] > td[data-present="true"][data-status="stale"] {
  background: var(--gold);
  color: var(--black);
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.cash-flow-waterfall-table tr[data-row-kind="metric"] > td[data-present="true"] {
  font-weight: 400;
}

.cash-flow-waterfall-table tr[data-row-kind="subheader"] > th,
.cash-flow-waterfall-table tr[data-row-kind="subheader"] > td {
  background: var(--white);
  color: var(--ink);
}

.cash-flow-waterfall-table tr[data-row-kind="result"] > th,
.cash-flow-waterfall-table tr[data-row-kind="result"] > td {
  background: var(--gold);
  color: var(--black);
}

.cash-flow-waterfall-table td[data-present="true"] {
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold);
}

.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="component"] > th,
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="component"] > td,
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="component"] > td[data-present="true"] {
  background: var(--white);
  color: var(--ink);
}

.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > th,
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > td {
  background: var(--gold);
  color: var(--black);
  font-weight: 700;
}

.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > td[data-present="true"][data-status="ok"],
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > td[data-present="true"][data-status="stale"] {
  background: var(--gold);
  color: var(--black);
}

.cash-flow-waterfall-table tr[data-row-kind="result"] > th,
.cash-flow-waterfall-table tr[data-row-kind="result"] > td,
.cash-flow-waterfall-table tr[data-row-kind="result"] > td[data-present="true"][data-status="ok"],
.cash-flow-waterfall-table tr[data-row-kind="result"] > td[data-present="true"][data-status="stale"],
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > th,
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > td,
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > td[data-present="true"][data-status="ok"],
.cash-flow-waterfall-table .statement-supporting-section-data tr[data-bridge-role="endpoint"] > td[data-present="true"][data-status="stale"] {
  background: var(--light-gold);
  color: var(--black);
}

.matrix-table .matrix-section-date-row .matrix-section-fiscal-date[data-phase="historical"] {
  background: var(--blue);
  color: var(--white);
}

.matrix-table .matrix-section-date-row .matrix-section-fiscal-date[data-phase="forecast"] {
  background: var(--brick);
  color: var(--white);
}

.matrix-table .matrix-section-date-row .matrix-section-fiscal-date[data-present="true"] {
  background: var(--gold);
  color: var(--black);
}

.matrix-table .matrix-section-row .matrix-section-period[data-phase="historical"] {
  background: var(--blue);
  color: var(--white);
}

.matrix-table .matrix-section-row .matrix-section-period[data-phase="forecast"] {
  background: var(--brick);
  color: var(--white);
}

.matrix-table .matrix-section-row .matrix-section-period[data-present="true"] {
  background: var(--gold);
  color: var(--black);
}

.summary-view-table thead [data-phase="historical"] {
  background: var(--blue);
  color: var(--white);
}

.summary-view-table thead [data-phase="forecast"] {
  background: var(--brick);
  color: var(--white);
}

.summary-view-table thead [data-present="true"] {
  background: var(--gold);
  color: var(--black);
}

.three-statement-table [data-present="true"],
.summary-view-table [data-present="true"] {
  box-shadow: none;
}

.three-statement-table tr[data-row-kind] > td[data-present="true"][data-status] {
  box-shadow: none;
}

.three-statement-table:not(.cash-flow-waterfall-table) tr[data-row-kind="metric"] > td[data-present="true"] {
  background: var(--white);
  color: var(--ink);
  font-weight: 400;
}

.three-statement-table:not(.cash-flow-waterfall-table) tr[data-row-kind="result"] > td[data-present="true"] {
  background: var(--white);
  color: var(--ink);
  font-weight: 700;
}

.three-statement-table:not(.cash-flow-waterfall-table) tr[data-row-kind="subheader"] > td[data-present="true"] {
  background: var(--white);
  color: var(--ink);
  font-weight: 700;
}

.three-statement-table:not(.cash-flow-waterfall-table) td[data-present="true"][data-status="missing"],
.three-statement-table:not(.cash-flow-waterfall-table) td[data-present="true"][data-empty="true"] {
  background: var(--white);
  color: var(--muted);
  font-weight: 400;
}

.three-statement-table:not(.cash-flow-waterfall-table) td[data-present="true"][data-status="blocked"],
.three-statement-table:not(.cash-flow-waterfall-table) td[data-present="true"][data-status="hard_fail"],
.three-statement-table:not(.cash-flow-waterfall-table) td[data-present="true"][data-status="fail"],
.three-statement-table:not(.cash-flow-waterfall-table) td[data-present="true"][data-status="error"] {
  background: var(--light-brick);
  color: var(--brick);
  font-weight: 700;
}

.matrix-table .statement-section-spacer td {
  height: 18px;
  padding: 0;
  border: 0;
  background: var(--white);
}

.three-statement-table .statement-supporting-section-header .matrix-section-row > th {
  border-top: 0;
}

.company-research-table--focused[data-focus-appearance="dark"] .statement-section-spacer td {
  background: #111827;
}


.vertical-view {
  border-top: 4px solid var(--blue);
}

.vertical-view-heading .section-note {
  max-width: 760px;
}

.vertical-contract-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid var(--light-blue);
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.vertical-contract-note strong {
  color: var(--blue);
  white-space: nowrap;
}

.vertical-contract-note span {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.vertical-module-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.vertical-module-card {
  display: grid;
  min-height: 176px;
  align-content: start;
  gap: 9px;
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  background: var(--white);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 4px 14px rgb(1 51 102 / 6%);
}

.vertical-module-card:hover,
.vertical-module-card:focus-visible {
  border-color: var(--blue);
  background: var(--light-blue);
  box-shadow: 0 8px 22px rgb(1 51 102 / 12%);
}

.vertical-module-card__eyebrow {
  color: var(--brick);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.vertical-module-card strong {
  color: var(--blue);
  font-size: 15px;
  line-height: 1.3;
}

.vertical-module-card__count {
  color: var(--muted);
  font-size: 12px;
}

.vertical-module-card__action {
  align-self: end;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--light-blue);
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

body.vertical-expanded {
  overflow: hidden;
}

body.vertical-column-resizing,
body.vertical-column-resizing * {
  cursor: col-resize !important;
  user-select: none !important;
}

.vertical-module-overlay {
  position: fixed;
  z-index: 120;
  inset: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  padding: 14px;
  background: var(--surface);
}

.vertical-module-toolbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 78px;
  padding: 12px 18px;
  border-bottom: 4px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.vertical-module-toolbar h2,
.vertical-module-toolbar p {
  margin: 0;
}

.vertical-module-toolbar > p {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-align: right;
}

.vertical-table-wrap {
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--line);
  border-top: 0;
  background: var(--white);
  scrollbar-color: var(--blue) var(--light-blue);
}

.vertical-table-wrap:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -4px;
}

.vertical-table {
  width: max-content;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--ink);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.vertical-table th,
.vertical-table td {
  width: var(--vertical-column-width, 138px);
  min-width: var(--vertical-column-width, 138px);
  max-width: var(--vertical-column-width, 138px);
  height: 36px;
  padding: 7px 9px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
  text-align: right;
  white-space: nowrap;
}

.vertical-table thead th {
  position: sticky;
  z-index: 7;
  background: var(--blue);
  color: var(--white);
  font-size: 10px;
  font-weight: 700;
  text-align: center;
  white-space: normal;
}

.vertical-table thead tr:first-child th {
  top: 0;
  height: 34px;
  border-bottom-color: rgb(255 255 255 / 42%);
}

.vertical-table thead tr:nth-child(2) th {
  top: 34px;
  height: 56px;
}

.vertical-table .vertical-period-column {
  position: sticky;
  left: 0;
  z-index: 5;
  width: var(--vertical-column-width, 108px);
  min-width: var(--vertical-column-width, 108px);
  max-width: var(--vertical-column-width, 108px);
  background: var(--light-blue);
  color: var(--blue);
  font-weight: 700;
  text-align: left;
}

.vertical-table .vertical-date-column {
  position: sticky;
  left: var(--vertical-period-column-width, 108px);
  z-index: 5;
  width: var(--vertical-column-width, 118px);
  min-width: var(--vertical-column-width, 118px);
  max-width: var(--vertical-column-width, 118px);
  background: var(--white);
  color: var(--muted);
  text-align: left;
}

.vertical-table thead .vertical-period-column,
.vertical-table thead .vertical-date-column {
  z-index: 10;
  background: var(--blue);
  color: var(--white);
  text-align: center;
}

.vertical-column-label {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vertical-column-resizer {
  position: absolute;
  z-index: 14;
  top: 0;
  right: -5px;
  bottom: 0;
  width: 11px;
  cursor: col-resize;
  touch-action: none;
}

.vertical-column-resizer::after {
  position: absolute;
  top: 8px;
  right: 5px;
  bottom: 8px;
  width: 2px;
  background: rgb(255 255 255 / 46%);
  content: "";
}

.vertical-column-resizer:hover::after,
.vertical-column-resizer:focus-visible::after {
  width: 3px;
  background: var(--gold);
}

.vertical-column-resizer:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -3px;
}

.vertical-table tbody tr[data-phase="historical"] > td:not(.vertical-date-column) {
  background: rgb(216 224 232 / 36%);
}

.vertical-table tbody tr[data-phase="forecast"] > td:not(.vertical-date-column) {
  background: var(--light-brick);
}

.vertical-table tbody tr[data-present="true"] > th,
.vertical-table tbody tr[data-present="true"] > td {
  border-top: 2px solid var(--gold);
  border-bottom: 2px solid var(--gold);
  background: var(--light-gold);
  color: var(--black);
  font-weight: 700;
}

.vertical-table th[data-row-kind="result"],
.vertical-table td[data-row-kind="result"] {
  border-left: 2px solid var(--blue);
  font-weight: 700;
}

.vertical-table td[data-empty="true"] {
  color: var(--muted);
}

.vertical-table td[data-status="blocked"],
.vertical-table td[data-status="hard_fail"],
.vertical-table td[data-status="fail"],
.vertical-table td[data-status="error"] {
  background: var(--light-brick);
  color: var(--brick);
  font-weight: 700;
}

.section-heading-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 12px;
}

.section-heading-actions {
  display: grid;
  justify-items: end;
  gap: 8px;
}

.section-heading-actions .section-note {
  margin: 0;
}

.focus-table-button {
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid var(--blue);
  background: var(--white);
  color: var(--blue);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.focus-table-button:hover,
.focus-table-button:focus-visible {
  background: var(--light-blue);
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

.section-note {
  max-width: 440px;
  font-size: 12px;
  text-align: right;
}

.analysis-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.analysis-section {
  min-width: 0;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  background: var(--white);
}

.analysis-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 58px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--light-blue);
}

.analysis-section__count {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.metric-table-wrap {
  overflow-x: auto;
}

.metric-table-wrap:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: -3px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.metric-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.metric-table th,
.metric-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

.metric-table tr:last-child th,
.metric-table tr:last-child td {
  border-bottom: 0;
}

.metric-table thead th {
  background: var(--white);
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: left;
  text-transform: uppercase;
}

.metric-table thead th:nth-child(2),
.metric-table thead th:nth-child(3),
.metric-table tbody td {
  text-align: right;
}

.metric-table thead th:first-child {
  width: 50%;
}

.metric-table thead th:nth-child(2) {
  width: 20%;
}

.metric-table thead th:nth-child(3) {
  width: 30%;
}

.metric-table tbody th {
  color: var(--ink);
  font-size: 13px;
  font-weight: 400;
  text-align: left;
}

.metric-period {
  color: var(--muted);
  font-size: 11px;
}

.metric-value {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  color: var(--ink);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  white-space: nowrap;
}

.metric-value[data-missing="true"] {
  color: var(--muted);
  font-weight: 400;
}

.metric-status[data-status="missing"] {
  border-color: var(--line);
  color: var(--muted);
}

details {
  border-top: 1px solid var(--line);
  padding-top: 13px;
}

summary {
  width: fit-content;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.source-note {
  border-left: 4px solid var(--gold);
}

.source-note h2 {
  margin-bottom: 7px;
  font-size: 17px;
}

.source-note p + p {
  margin-top: 6px;
}

.technical-value {
  font-family: Consolas, "Courier New", monospace;
  font-size: 11px;
}

.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-block: 20px 34px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
}

.toast {
  position: fixed;
  z-index: 80;
  right: 20px;
  bottom: 20px;
  width: min(420px, calc(100% - 40px));
  padding: 13px 15px;
  border-left: 4px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.toast[data-level="error"] {
  border-left-color: var(--brick);
}

@media (max-width: 1080px) {
  .master-module-nav__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .master-module-link {
    min-height: 58px;
    border-bottom: 1px solid rgb(255 255 255 / 34%);
  }

  .module-capability-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .equity-chart-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vertical-module-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .control-bar {
    align-items: stretch;
    flex-direction: column;
    gap: 20px;
  }

  .control-bar__actions {
    width: 100%;
    justify-content: flex-start;
  }

  .company-hero {
    grid-template-columns: 1fr;
  }

  .metadata-grid {
    border-top: 1px solid var(--line);
    border-left: 0;
    padding-top: 16px;
  }
}

@media (max-width: 820px) {
  .analysis-grid,
  .graph-grid {
    grid-template-columns: 1fr;
  }

  .vertical-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .metadata-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 16px;
  }

  .metadata-grid div:nth-child(2) {
    border-right: 0;
  }
}

@media (max-width: 620px) {
  .site-header__inner,
  .environment-banner__inner,
  .page-shell,
  .site-footer {
    width: min(calc(100% - 24px), var(--page-width));
  }

  .site-header__inner {
    min-height: 88px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
  }

  .service-state {
    min-height: 28px;
  }

  .environment-banner__inner,
  .control-bar__primary,
  .control-bar__actions,
  .graphs-intro,
  .graph-display-toolbar,
  .graph-display-toolbar__actions,
  .graph-state,
  .summary-view-toolbar,
  .vertical-contract-note,
  .summary-period-controls,
  .section-heading-row,
  .site-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .statement-period-controls {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .section-heading-actions {
    justify-items: stretch;
  }

  .statement-period-range {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .statement-period-range input {
    width: 100%;
  }

  .statement-period-range button {
    grid-column: 1 / -1;
  }

  .page-shell {
    padding-top: 24px;
  }

  .master-module-nav__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .master-module-link {
    min-height: 56px;
    padding-inline: 8px;
    font-size: 11px;
  }

  .master-module-link__state {
    display: none;
  }

  .module-page__hero,
  .module-section-panel {
    padding: 20px;
  }

  .module-section-tabs {
    flex-wrap: wrap;
    gap: 2px;
  }

  .module-section-tab {
    flex: 1 1 calc(50% - 2px);
    min-height: 58px;
    padding-inline: 9px;
  }

  .module-panel-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .module-capability-grid {
    grid-template-columns: 1fr;
  }

  .equity-chart-controls {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .equity-chart-axis-controls {
    grid-column: auto;
  }

  .equity-chart-date-fields,
  .equity-chart-axis-fields,
  .equity-comparison-chart-header {
    align-items: stretch;
    flex-direction: column;
  }

  .equity-chart-workspace--expanded {
    padding: 0;
  }

  .equity-comparison-chart-card {
    padding: 14px;
  }

  .equity-comparison-canvas-wrap,
  .equity-comparison-canvas {
    min-height: 390px;
    height: 390px;
  }

  .workspace-tabs {
    flex-wrap: wrap;
    gap: 2px;
  }

  .workspace-tab {
    flex: 1 1 calc(50% - 2px);
    min-height: 58px;
    padding-inline: 9px;
  }

  .graphs-intro {
    padding: 18px;
  }

  .graph-display-toolbar__actions,
  .graph-sync-control {
    align-items: stretch;
    flex-direction: column;
  }

  .graph-card__header,
  .graph-card__header-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .graph-sync-control {
    align-items: center;
    flex-direction: row;
    white-space: normal;
  }

  .graph-canvas-wrap,
  .graph-canvas {
    min-height: 330px;
    height: 330px;
  }

  .control-bar__actions {
    min-width: 0;
  }

  .control-bar__ticker {
    width: 100%;
  }

  .field-group {
    flex: none;
  }

  .open-workbook-group,
  .button--primary {
    width: 100%;
  }

  .control-help {
    max-width: none;
  }

  .company-hero,
  .one-page,
  .summary-view,
  .vertical-view,
  .business-model-view,
  .source-note {
    padding: 18px;
  }

  #company-content .research-view-panel {
    padding: 18px;
  }

  .vertical-contract-note span {
    text-align: left;
  }

  .vertical-module-grid {
    grid-template-columns: 1fr;
  }

  .vertical-module-card {
    min-height: 148px;
  }

  .vertical-module-overlay {
    padding: 0;
  }

  .vertical-module-toolbar {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px 12px;
  }

  .vertical-module-toolbar > p {
    text-align: left;
  }

  .vertical-back-button {
    justify-self: start;
  }

  .company-identity,
  .company-title-line {
    align-items: flex-start;
  }

  .company-title-line {
    flex-direction: column;
    gap: 7px;
  }

  .ticker-tile {
    width: 58px;
    height: 58px;
    font-size: 16px;
  }

  .metadata-grid {
    grid-template-columns: 1fr;
  }

  .metadata-grid div,
  .metadata-grid div:nth-child(2) {
    padding: 2px 0 10px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .section-note {
    text-align: left;
  }

  .metric-table {
    min-width: 500px;
  }

  .matrix-table th.matrix-metric-column,
  .matrix-table td.matrix-metric-column {
    width: var(--matrix-metric-column-width);
    min-width: var(--matrix-metric-column-width);
    max-width: var(--matrix-metric-column-width);
  }

  .matrix-table th.matrix-unit-column,
  .matrix-table td.matrix-unit-column {
    left: var(--matrix-metric-column-width);
    width: var(--matrix-unit-column-width);
    min-width: var(--matrix-unit-column-width);
    max-width: var(--matrix-unit-column-width);
  }


}

.business-model-view {
  padding: 24px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.business-model-heading .section-note {
  max-width: 620px;
}

.bms-package-status {
  margin-bottom: 14px;
  padding: 10px 14px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
  color: var(--black);
  font-size: 12px;
  font-weight: 700;
}

.bms-subtabs {
  position: sticky;
  z-index: 15;
  top: 0;
  display: flex;
  gap: 3px;
  overflow-x: auto;
  padding: 8px 0;
  border-bottom: 3px solid var(--blue);
  background: var(--white);
  scrollbar-width: thin;
}

.bms-subtab {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid var(--light-blue);
  background: var(--white);
  color: var(--blue);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.bms-subtab:hover {
  background: var(--light-blue);
}

.bms-subtab[aria-selected="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.bms-subtab-panel {
  min-height: 440px;
  padding: 24px 0 4px;
  outline: none;
}

.bms-subtab-panel:focus-visible {
  box-shadow: inset 0 0 0 3px var(--gold);
}

.bms-panel-heading {
  margin-bottom: 18px;
  padding: 0 0 12px;
  border-bottom: 2px solid var(--light-blue);
}

.bms-panel-heading h3 {
  margin: 3px 0 0;
  color: var(--blue);
  font-size: clamp(20px, 2vw, 28px);
}

.bms-accompanying-stack {
  display: grid;
  gap: 26px;
  max-width: 1500px;
}

.bms-accompanying-section {
  scroll-margin-top: 112px;
  overflow: visible;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  background: var(--white);
  box-shadow: 0 8px 22px rgba(7, 28, 55, 0.06);
}

.bms-accompanying-heading {
  padding: 14px 18px 13px;
  border-bottom: 1px solid var(--line);
  background: var(--light-blue);
}

.bms-accompanying-heading .eyebrow {
  margin: 0 0 4px;
}

.bms-accompanying-heading h4 {
  margin: 0;
  color: var(--blue);
  font-size: clamp(17px, 1.6vw, 22px);
  line-height: 1.2;
}

.bms-accompanying-content {
  padding: 18px;
}

.bms-accompanying-content > .bms-table-wrap,
.bms-accompanying-content > .bms-exchange-stack,
.bms-accompanying-content > .bms-record-stack,
.bms-accompanying-content > .bms-definition-record {
  max-width: none;
}

.bms-definition-grid {
  display: grid;
  grid-template-columns: minmax(190px, 0.32fr) minmax(0, 1fr);
  margin: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.bms-definition-grid > dt,
.bms-definition-grid > dd {
  min-width: 0;
  margin: 0;
  padding: 10px 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.bms-definition-grid > dt {
  background: var(--light-blue);
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.bms-definition-grid > dd {
  overflow-wrap: anywhere;
  background: var(--white);
  color: var(--black);
  font-size: 13px;
  line-height: 1.5;
}

.bms-definition-grid .bms-definition-grid {
  grid-column: 1 / -1;
}

.bms-record-stack {
  display: grid;
  gap: 12px;
}

.bms-record {
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  background: var(--surface);
}

.bms-record:nth-child(3n + 2) {
  border-left-color: var(--gold);
}

.bms-record:nth-child(3n) {
  border-left-color: var(--brick);
}

.bms-record h4 {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: 13px;
}

.bms-record .bms-definition-grid {
  border-top-color: var(--light-blue);
  border-left-color: var(--light-blue);
}

.bms-value-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
}

.bms-null,
.bms-empty-value {
  color: var(--muted);
  font-style: italic;
}

.bms-evidence-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.bms-evidence-link {
  display: inline-flex;
  margin: 0 2px;
  padding: 3px 7px;
  border: 1px solid var(--gold);
  background: var(--light-gold);
  color: var(--blue);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.bms-evidence-link:hover,
.bms-evidence-link:focus-visible {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.bms-evidence-record--targeted {
  box-shadow: 0 0 0 4px var(--gold);
}

.bms-narrative {
  max-width: 1120px;
  padding: 8px 20px 20px;
  border-left: 5px solid var(--blue);
  background: var(--surface);
  color: var(--black);
  line-height: 1.65;
}

.bms-narrative h2,
.bms-narrative h3,
.bms-narrative h4 {
  margin: 24px 0 8px;
  color: var(--blue);
}

.bms-narrative p,
.bms-narrative li {
  font-size: 14px;
}

.bms-unified-narrative {
  display: grid;
  gap: 30px;
  max-width: 1280px;
}

.bms-narrative-scope {
  overflow: hidden;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  background: var(--white);
  box-shadow: 0 10px 28px rgba(1, 51, 102, 0.08);
}

.bms-narrative-scope-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  border-bottom: 2px solid var(--light-blue);
  background: var(--surface);
}

.bms-narrative-scope-header .eyebrow {
  margin: 0 0 3px;
}

.bms-narrative-scope-header h4 {
  margin: 0;
  color: var(--blue);
  font-size: clamp(18px, 2vw, 24px);
}

.bms-narrative-sections {
  padding: 4px 22px 22px;
}

.bms-narrative-section {
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.bms-narrative-section:first-child {
  border-top: 0;
}

.bms-narrative-section > h5 {
  margin: 0 0 8px;
  color: var(--blue);
  font-size: 16px;
}

.bms-narrative-section > p:not(.bms-legacy-structure-note):not(.bms-component-section-lead) {
  max-width: 1100px;
  margin: 0;
  color: var(--black);
  font-size: 14px;
  line-height: 1.65;
}

.bms-narrative-section--integrative {
  margin-top: 8px;
  padding: 18px;
  border-top: 0;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.bms-narrative-section--integrative > h5 {
  color: var(--black);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.bms-narrative-section--legacy-gap {
  min-height: 92px;
}

.bms-legacy-structure-note {
  max-width: 1100px;
  margin: 0 0 10px;
  padding: 9px 11px;
  border-left: 3px solid var(--blue);
  background: var(--light-blue);
  color: var(--black);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.bms-reported-segments {
  display: grid;
  gap: 16px;
}

.bms-reported-segments > h4 {
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 3px solid var(--blue);
  color: var(--blue);
  font-size: clamp(18px, 1.8vw, 23px);
}

.bms-no-distinct-segments {
  margin: 0;
  padding: 16px 18px;
  border-left: 4px solid var(--blue);
  background: var(--light-blue);
  color: var(--black);
  font-size: 14px;
  line-height: 1.6;
}

.bms-component-narratives {
  display: grid;
  gap: 28px;
  max-width: 1240px;
}

.bms-component-narrative {
  overflow: hidden;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  background: var(--white);
  box-shadow: 0 10px 28px rgba(1, 51, 102, 0.08);
}

.bms-component-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  border-bottom: 2px solid var(--light-blue);
  background: var(--surface);
}

.bms-component-header .eyebrow {
  margin: 0 0 3px;
}

.bms-component-header h4 {
  margin: 0;
  color: var(--blue);
  font-size: clamp(18px, 2vw, 24px);
}

.bms-component-weight {
  flex: 0 0 auto;
  min-width: 94px;
  padding: 9px 12px;
  border: 1px solid var(--gold);
  background: var(--light-gold);
  color: var(--black);
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.bms-component-prose {
  max-width: 1060px;
  padding: 18px 22px 4px;
  color: var(--black);
  font-size: 14px;
  line-height: 1.65;
}

.bms-component-prose p {
  margin: 0 0 12px;
}

.bms-component-section {
  margin: 16px 22px 22px;
  padding-top: 16px;
  border-top: 3px solid var(--blue);
}

.bms-component-section > h5 {
  margin: 0 0 7px;
  color: var(--blue);
  font-size: 16px;
}

.bms-component-section-lead {
  max-width: 1040px;
  margin: 0 0 14px;
  color: var(--black);
  font-size: 13px;
  line-height: 1.6;
}

.bms-component-paths,
.bms-component-vector-stack {
  display: grid;
  gap: 10px;
}

.bms-component-path,
.bms-component-vector-group {
  padding: 12px 14px;
  border-left: 3px solid var(--light-blue);
  background: var(--surface);
}

.bms-component-path h6,
.bms-component-vector-group h6 {
  margin: 0 0 6px;
  color: var(--blue);
  font-size: 13px;
}

.bms-component-path p,
.bms-component-vector-group p,
.bms-component-exchange > p {
  margin: 5px 0 0;
  color: var(--black);
  font-size: 13px;
  line-height: 1.58;
}

.bms-component-path-vector,
.bms-component-vector-relationship {
  font-weight: 700;
}

.bms-component-state-change {
  color: var(--muted) !important;
}

.bms-component-exchange {
  margin-top: 12px;
  padding: 14px 16px 16px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold);
  background: var(--white);
}

.bms-component-exchange > h5 {
  margin: 0 0 8px;
  color: var(--blue);
  font-size: 14px;
}

.bms-component-vector-stack {
  margin-top: 12px;
}

.bms-component-vector-group {
  border-left-color: var(--gold);
  background: var(--light-gold);
}

.bms-component-vector-group h6 {
  color: var(--black);
}

.bms-component-evidence {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0 22px 22px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.bms-component-evidence > span {
  margin-right: 4px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.bms-evidence-label {
  margin-right: 4px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.bms-inline-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.bms-inline-list > span {
  padding: 3px 7px;
  background: var(--light-blue);
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

.bms-signature-card {
  max-width: 1420px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--white);
  box-shadow: var(--shadow);
}

.bms-signature-card > header {
  padding: 22px 24px;
  background: var(--surface);
}

.bms-signature-card h4 {
  margin: 2px 0 12px;
  color: var(--blue);
  font-size: clamp(22px, 2.4vw, 32px);
}

.bms-canonical-handle,
.bms-rendered-signature {
  display: block;
  overflow-wrap: anywhere;
  padding: 12px 14px;
  border-left: 4px solid var(--gold);
  background: var(--black);
  color: var(--white);
  font: 600 12px/1.6 Consolas, "Courier New", monospace;
  white-space: pre-wrap;
}

.bms-principle-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(160px, 1fr));
  gap: 1px;
  background: var(--line);
}

.bms-principle-grid > section {
  min-width: 0;
  padding: 18px;
  background: var(--white);
}

.bms-principle-grid h5,
.bms-three-c h5,
.bms-signature-card-lines > h5,
.bms-narrative-summary h4,
.bms-component-synthesis h5 {
  margin: 0 0 8px;
  color: var(--blue);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.bms-principle-grid p,
.bms-three-c p,
.bms-signature-notes p {
  margin: 0;
  color: var(--black);
  font-size: 13px;
  line-height: 1.56;
}

.bms-three-c,
.bms-signature-notes,
.bms-signature-card-lines {
  padding: 20px 24px;
  border-top: 1px solid var(--line);
}

.bms-three-c {
  background: var(--light-gold);
}

.bms-three-c p + p,
.bms-signature-notes p + p {
  margin-top: 9px;
}

.bms-signature-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.bms-signature-card-lines {
  display: grid;
  gap: 12px;
  background: var(--surface);
}

.bms-signature-lines {
  display: grid;
  gap: 18px;
  max-width: 1500px;
}

.bms-signature-line {
  overflow: hidden;
  border: 1px solid var(--line);
  border-left: 5px solid var(--gold);
  background: var(--white);
}

.bms-signature-line > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px 10px;
}

.bms-signature-line h4 {
  margin: 0;
  color: var(--blue);
  font-size: 17px;
}

.bms-signature-line .eyebrow {
  margin: 0;
  text-align: right;
}

.bms-signature-line > .bms-rendered-signature {
  margin: 0 18px 18px;
}

.bms-signature-line--compact > header {
  padding-bottom: 8px;
}

.bms-signature-line--compact > .bms-rendered-signature {
  margin-bottom: 14px;
}

.bms-signature-principles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1px;
  border-top: 1px solid var(--line);
  background: var(--line);
}

.bms-signature-principle {
  padding: 16px;
  background: var(--surface);
}

.bms-signature-principle > h5 {
  margin: 0 0 12px;
  color: var(--blue);
  font-size: 13px;
  letter-spacing: 0.05em;
}

.bms-vector-family + .bms-vector-family {
  margin-top: 12px;
}

.bms-vector-family h6 {
  margin: 0 0 5px;
  color: var(--brick);
  font-size: 12px;
}

.bms-vector-family ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 17px;
}

.bms-vector-family li {
  color: var(--black);
  font-size: 12px;
  line-height: 1.42;
}

.bms-vector-family li .bms-evidence-links {
  margin-top: 4px;
}

.bms-narrative > section + section {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.bms-narrative h4 {
  margin: 0 0 8px;
  color: var(--blue);
  font-size: 17px;
}

.bms-component-meta,
.bms-component-dependencies {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.bms-narrative-summary {
  padding: 16px;
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.bms-component-role {
  max-width: 840px;
  margin: 4px 0 0;
  color: var(--black);
  font-size: 13px;
  line-height: 1.45;
}

.bms-component-meta,
.bms-component-dependencies {
  margin: 14px 22px 0;
}

.bms-classification-citations {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.bms-classification-citation {
  padding: 4px 7px;
  border: 1px solid var(--light-blue);
  background: var(--light-blue);
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
}

.bms-component-synthesis {
  margin: 16px 22px 0;
  padding: 15px 16px;
  border-left: 4px solid var(--brick);
  background: var(--light-brick);
}

.bms-component-synthesis p {
  margin: 0;
  color: var(--black);
  font-size: 13px;
  line-height: 1.6;
}

.bms-exchange-stack {
  display: grid;
  gap: 16px;
  max-width: 1420px;
}

.bms-exchange-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--brick);
  background: var(--white);
}

.bms-exchange-card > h4 {
  margin: 0 0 7px;
  color: var(--blue);
  font-size: 17px;
}

.bms-exchange-card > p {
  margin: 0;
  color: var(--black);
  font-size: 13px;
  line-height: 1.55;
}

.bms-exchange-vectors {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 8px;
  margin: 14px 0;
}

.bms-exchange-vectors > section {
  padding: 10px 12px;
  border-left: 3px solid var(--gold);
  background: var(--light-gold);
}

.bms-exchange-vectors h5,
.bms-exchange-vectors p {
  margin: 0;
}

.bms-exchange-vectors h5 {
  color: var(--black);
  font-size: 12px;
}

.bms-exchange-vectors p {
  margin-top: 5px;
  color: var(--black);
  font-size: 12px;
  line-height: 1.45;
}

.bms-table-wrap {
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--line);
  background: var(--white);
}

.bms-table-wrap:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

.bms-data-table {
  width: 100%;
  min-width: 960px;
  border-collapse: collapse;
  color: var(--black);
  font-size: 12px;
  line-height: 1.42;
}

.bms-data-table th,
.bms-data-table td {
  min-width: 116px;
  padding: 9px 10px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.bms-data-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--blue);
  color: var(--white);
  font-size: 11px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.bms-data-table tbody tr:nth-child(even) td {
  background: var(--surface);
}

.bms-data-table tbody tr:hover td {
  background: var(--light-gold);
}

@media (max-width: 760px) {
  .bms-accompanying-stack {
    gap: 18px;
  }

  .bms-accompanying-heading,
  .bms-accompanying-content {
    padding: 13px;
  }

  .bms-principle-grid,
  .bms-signature-notes {
    grid-template-columns: 1fr;
  }

  .bms-signature-line > header {
    display: block;
  }

  .bms-signature-line > header .eyebrow {
    margin-top: 0.35rem;
    text-align: left;
  }

  .equity-comparison-table-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .equity-comparison-table-actions {
    justify-content: stretch;
  }

  .equity-comparison-table-actions .button {
    flex: 1 1 180px;
  }

  .equity-comparison-table-workspace--expanded .equity-comparison-table-toolbar {
    max-height: 42vh;
    overflow: auto;
  }

  .business-model-view {
    padding: 16px;
  }

  .bms-definition-grid {
    display: block;
    border: 0;
  }

  .bms-definition-grid > dt,
  .bms-definition-grid > dd {
    border: 1px solid var(--line);
    border-bottom: 0;
  }

  .bms-definition-grid > dd:last-child {
    border-bottom: 1px solid var(--line);
  }

  .bms-component-header,
  .bms-narrative-scope-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .bms-component-weight {
    min-width: 0;
  }

  .bms-component-section,
  .bms-component-evidence {
    margin-right: 16px;
    margin-left: 16px;
  }

  .bms-component-prose,
  .bms-component-header,
  .bms-narrative-scope-header,
  .bms-narrative-sections {
    padding-right: 16px;
    padding-left: 16px;
  }
}

/* Order Lab: Put-Sell Analysis */
.order-lab-hero {
  max-width: none;
  margin-bottom: 8px;
  padding-block: 10px;
}

.order-lab-hero h1 {
  margin: 0;
}

.module-page--order-lab .module-section-tabs {
  border-bottom-color: var(--violet);
}

.module-page--order-lab .module-section-tab[aria-selected="true"] {
  border-color: var(--violet);
  background: var(--violet);
}

/* Portfolio Analytics · governed 13-F workspace */
.thirteen-f-panel {
  padding: clamp(18px, 2vw, 30px);
  border-top: 5px solid var(--brick);
}

.thirteen-f-heading {
  margin-bottom: 14px;
}

.thirteen-f-controls {
  display: grid;
  grid-template-columns: minmax(120px, 0.55fr) minmax(210px, 1.15fr) minmax(285px, 1.3fr) minmax(220px, 1.2fr) minmax(140px, 0.7fr);
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-medium);
  background: var(--surface);
}

.thirteen-f-control {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.thirteen-f-control select,
.thirteen-f-control input {
  width: 100%;
  min-height: 40px;
  padding: 7px 10px;
  border: 1px solid #9eabb8;
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
}

.thirteen-f-weighting {
  display: flex;
  min-height: 40px;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 6px 10px;
  border: 1px solid #9eabb8;
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--ink);
  font-size: 13px;
}

.thirteen-f-weighting legend {
  padding-inline: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.thirteen-f-weighting label {
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.thirteen-f-custom {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius-medium);
  background: var(--light-blue);
}

.thirteen-f-custom[hidden] { display: none; }

.thirteen-f-custom__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.thirteen-f-custom__heading h3,
.thirteen-f-custom__heading p { margin: 0; }

.thirteen-f-custom__heading > div:first-child > p:last-child {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.thirteen-f-custom__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.thirteen-f-custom__actions button {
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--blue);
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--blue);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.thirteen-f-custom__actions .thirteen-f-custom__apply {
  background: var(--blue);
  color: var(--white);
}

.thirteen-f-custom__actions button:focus-visible,
.thirteen-f-custom__manager:focus-within {
  outline: 3px solid rgb(212 175 55 / 55%);
  outline-offset: 2px;
}

.thirteen-f-custom__actions button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.thirteen-f-custom__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
}

.thirteen-f-custom__manager {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
  padding: 7px 8px;
  border: 1px solid #b9c8d7;
  border-radius: var(--radius-small);
  background: var(--white);
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.thirteen-f-custom__manager:has(input:checked) {
  border-color: var(--blue);
  box-shadow: inset 4px 0 0 var(--blue);
}

.thirteen-f-custom__manager input {
  margin: 0;
  accent-color: var(--blue);
}

.module-readiness { min-width: 0; font-family: Arial, Helvetica, sans-serif; }
.v94-check { border: 1px solid #D8E0E8; padding: 16px; margin: 16px 0; background: #FFFFFF; color: #000000; }
.v94-check h3 { color: #013366; }
.v94-check__finding { padding: 8px 0; border-top: 1px solid #D8E0E8; overflow-wrap: anywhere; }
.v94-check__finding summary { cursor: pointer; color: #013366; font-weight: 700; }
.module-readiness__filters { display: flex; flex-wrap: wrap; gap: 16px; margin: 16px 0; }
.module-readiness__filters label { display: grid; gap: 6px; font-weight: 700; color: #013366; }
.module-readiness__filters input, .module-readiness__filters select { padding: 9px 12px; min-height: 40px; border: 1px solid #013366; border-radius: 4px; background: #FFFFFF; color: #000000; font: inherit; max-width: 100%; }
.module-readiness__scroll { overflow: auto; max-height: 440px; border: 1px solid #D8E0E8; }
.module-readiness__table { width: 100%; min-width: 900px; border-collapse: collapse; text-align: left; font-size: 13px; }
.module-readiness__table th, .module-readiness__table td { padding: 12px; border-bottom: 1px solid #D8E0E8; vertical-align: top; }
.module-readiness__table thead th { position: sticky; top: 0; z-index: 1; background: #013366; color: #FFFFFF; }
.module-readiness__table tbody th { color: #013366; min-width: 110px; position: sticky; left: 0; background: #FFFFFF; z-index: 1; }
.module-readiness__table thead th:first-child { left: 0; z-index: 2; }
.module-readiness__table td[data-match="true"] { background: #FFFFFF; }
.module-readiness__table td[data-match="false"] { background: #D8E0E8; }
.module-status { display: inline-block; border: 1px solid #D8E0E8; padding: 4px 7px; border-radius: 4px; font-weight: 700; color: #013366; background: #FFFFFF; }
.module-status[data-status="published"],.state-badge[data-state="published"] { background:#D4AF37; color:#000000; border-color:#D4AF37; }
.module-status[data-status="ready"] { border-color: #013366; }
.module-readiness__table .module-status { display: block; width: fit-content; margin-bottom: 7px; }
.module-status__link { display: block; margin-top: 7px; color: #013366; text-decoration: underline; }
.module-status__link[data-status="needs_attention"] { background: #EFE4E1; padding: 5px; font-weight: 700; }
.module-readiness__note { display: block; font-size: 12px; font-weight: 400; margin-top: 8px; overflow-wrap: anywhere; }
.module-readiness__lineage { display: grid; grid-template-columns: minmax(110px, 160px) minmax(0, 1fr); gap: 8px 16px; font-size: 14px; }
.module-readiness__lineage dt { font-weight: 700; color: #013366; }
.module-readiness__lineage dd { margin: 0; overflow-wrap: anywhere; }
.module-readiness :focus-visible { outline: 3px solid #013366; outline-offset: 3px; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.thirteen-f-message {
  margin-top: 14px;
  padding: 18px;
  border-left: 5px solid var(--blue);
  background: var(--light-blue);
  color: var(--blue);
  font-weight: 700;
}

.thirteen-f-message[data-kind="error"] {
  border-color: var(--brick);
  background: var(--light-brick);
  color: #6f2f1f;
}

.thirteen-f-insights {
  display: grid;
  grid-template-columns: minmax(420px, 0.9fr) minmax(520px, 1.1fr);
  gap: 10px;
  margin-top: 14px;
}

.thirteen-f-insights[hidden] { display: none; }

.thirteen-f-insight-card {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--white);
  box-shadow: 0 4px 14px rgb(1 51 102 / 6%);
}

.thirteen-f-concentration-list {
  display: grid;
  max-height: 414px;
  gap: 2px;
  overflow-y: auto;
  padding-right: 4px;
}

.thirteen-f-concentration-row {
  display: grid;
  grid-template-columns: minmax(130px, 1.2fr) minmax(90px, 1fr) 58px 76px;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 4px 5px;
  border-bottom: 1px solid var(--line);
  font-size: 12px;
}

.thirteen-f-concentration-row__name {
  overflow: hidden;
  color: var(--ink);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.thirteen-f-concentration-row__value {
  color: var(--blue);
  text-align: right;
}

.thirteen-f-concentration-row small {
  color: var(--muted);
  text-align: right;
  white-space: nowrap;
}

.thirteen-f-bar-track {
  display: block;
  height: 9px;
  overflow: hidden;
  border: 1px solid #b9c8d7;
  border-radius: 999px;
  background: var(--light-blue);
}

.thirteen-f-bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--blue);
}

.thirteen-f-frequency-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.thirteen-f-frequency-columns h4 {
  margin: 0;
  padding-bottom: 5px;
  border-bottom: 2px solid var(--blue);
  color: var(--blue);
  font-size: 13px;
}

.thirteen-f-frequency-columns section > p {
  min-height: 28px;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
}

.thirteen-f-frequency-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.thirteen-f-frequency-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 8px;
  padding: 5px 3px;
  border-bottom: 1px solid var(--line);
}

.thirteen-f-frequency-row__identity {
  display: grid;
  min-width: 0;
}

.thirteen-f-frequency-row__identity strong,
.thirteen-f-frequency-row__identity small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.thirteen-f-frequency-row__identity strong {
  color: var(--ink);
  font-size: 11px;
}

.thirteen-f-frequency-row__identity small {
  color: var(--muted);
  font-size: 9px;
}

.thirteen-f-frequency-row__count {
  align-self: center;
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.thirteen-f-bar-track--compact {
  grid-column: 1 / -1;
  height: 5px;
}

.thirteen-f-frequency-note {
  margin: 9px 0 0;
  padding: 7px 8px;
  border-left: 4px solid var(--blue);
  background: var(--light-blue);
  color: var(--ink);
  font-size: 10px;
  line-height: 1.4;
}

.thirteen-f-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.thirteen-f-summary-card {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--white);
  box-shadow: 0 4px 14px rgb(1 51 102 / 6%);
}

.thirteen-f-summary-card--gold { border-top-color: var(--gold); }
.thirteen-f-summary-card--brick { border-top-color: var(--brick); }
.thirteen-f-summary-card--cyan { border-top-color: var(--cyan); }

.thirteen-f-summary-card p {
  margin: 0;
}

.thirteen-f-summary-card__label {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.thirteen-f-summary-card__value {
  margin-top: 3px !important;
  color: var(--blue);
  font-size: clamp(21px, 2vw, 30px);
  font-weight: 800;
  line-height: 1.15;
}

.thirteen-f-summary-card__detail {
  margin-top: 4px !important;
  color: var(--muted);
  font-size: 12px;
}

.thirteen-f-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.thirteen-f-chart-card,
.thirteen-f-table-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-medium);
  background: var(--white);
  box-shadow: 0 4px 14px rgb(1 51 102 / 6%);
}

.thirteen-f-chart-card {
  padding: 12px 14px;
}

.thirteen-f-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 9px;
}

.thirteen-f-card-heading h3,
.thirteen-f-card-heading p {
  margin: 0;
}

.thirteen-f-card-heading h3 {
  color: var(--blue);
  font-size: 18px;
}

.thirteen-f-card-heading > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-align: right;
}

.thirteen-f-donut-layout {
  display: grid;
  grid-template-columns: minmax(150px, 205px) minmax(0, 1fr);
  gap: 15px;
  align-items: center;
}

.thirteen-f-donut svg {
  display: block;
  width: 100%;
  max-height: 190px;
}

.thirteen-f-donut__total {
  fill: var(--blue);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 23px;
  font-weight: 800;
}

.thirteen-f-donut__label {
  fill: var(--muted);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.thirteen-f-legend {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 14px;
  max-height: 190px;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}

.thirteen-f-legend__item,
.thirteen-f-legend__label {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}

.thirteen-f-legend__item {
  justify-content: space-between;
  padding-block: 4px;
  border-bottom: 1px solid #e4e9ee;
  color: var(--ink);
  font-size: 12px;
}

.thirteen-f-legend__label {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.thirteen-f-legend__swatch {
  flex: 0 0 11px;
  width: 11px;
  height: 11px;
  border-radius: 2px;
}

.thirteen-f-table-card {
  margin-top: 10px;
  padding: 12px 14px 14px;
}

.thirteen-f-table-wrap {
  max-height: 520px;
  overflow: auto;
  border: 1px solid var(--line);
}

.thirteen-f-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.thirteen-f-table th {
  position: sticky;
  z-index: 2;
  top: 0;
  padding: 0;
  border-right: 1px solid rgb(255 255 255 / 20%);
  background: var(--blue);
  color: var(--white);
  text-align: left;
  white-space: nowrap;
}

.thirteen-f-table td {
  height: 34px;
  padding: 5px 8px;
  border-right: 1px solid #e1e6eb;
  border-bottom: 1px solid #d7dee5;
  background: var(--white);
  vertical-align: middle;
  white-space: nowrap;
}

.thirteen-f-table tbody tr:nth-child(even) td {
  background: #f7f9fb;
}

.thirteen-f-table tbody tr:hover td {
  background: var(--light-gold);
}

.thirteen-f-sort {
  position: relative;
  width: 100%;
  min-height: 36px;
  padding: 7px 22px 7px 8px;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 11px;
  font-weight: 700;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}

.thirteen-f-sort:hover,
.thirteen-f-sort:focus-visible {
  background: rgb(255 255 255 / 13%);
}

.thirteen-f-sort[data-direction="asc"]::after,
.thirteen-f-sort[data-direction="desc"]::after {
  position: absolute;
  right: 8px;
  content: "▲";
}

.thirteen-f-sort[data-direction="desc"]::after { content: "▼"; }

.thirteen-f-cell--number {
  text-align: right;
}

.thirteen-f-security {
  display: grid;
  line-height: 1.15;
}

.thirteen-f-security strong {
  color: var(--blue);
}

.thirteen-f-security small {
  max-width: 330px;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
}

.thirteen-f-action {
  display: inline-flex;
  min-width: 67px;
  justify-content: center;
  padding: 3px 6px;
  border-radius: 999px;
  background: var(--light-cyan);
  color: #105e6a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.thirteen-f-action[data-action="NEW"] { background: var(--light-green); color: var(--green); }
.thirteen-f-action[data-action="INCREASE"] { background: var(--light-blue); color: var(--blue); }
.thirteen-f-action[data-action="DECREASE"] { background: var(--light-gold); color: #5b4700; }
.thirteen-f-action[data-action="EXIT"] { background: var(--light-brick); color: #6f2f1f; }
.thirteen-f-action[data-action="REVIEW"] { background: var(--light-raspberry); color: #8d0c4b; }

.thirteen-f-empty-row {
  height: 72px !important;
  color: var(--muted);
  font-style: italic;
  text-align: center;
}

.thirteen-f-lineage {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-medium);
  background: var(--white);
}

.thirteen-f-lineage summary {
  padding: 11px 14px;
  color: var(--blue);
  font-weight: 800;
  cursor: pointer;
}

.thirteen-f-lineage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
  gap: 9px;
  padding: 0 14px 14px;
}

.thirteen-f-lineage-card {
  padding: 11px;
  border-left: 4px solid var(--cyan);
  background: var(--light-cyan);
}

.thirteen-f-lineage-card h4 {
  margin: 0 0 6px;
  color: var(--blue);
}

.thirteen-f-lineage-card p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 3px 0;
  font-size: 11px;
}

.thirteen-f-lineage-card p span { color: var(--muted); }
.thirteen-f-lineage-card p strong { overflow-wrap: anywhere; text-align: right; }

.thirteen-f-source-link {
  display: inline-block;
  margin-top: 6px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 1100px) {
  .thirteen-f-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thirteen-f-control--search { grid-column: 1 / -1; }
  .thirteen-f-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thirteen-f-chart-grid { grid-template-columns: 1fr; }
  .thirteen-f-insights { grid-template-columns: 1fr; }
  .thirteen-f-custom__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 650px) {
  .thirteen-f-controls,
  .thirteen-f-summary-grid { grid-template-columns: 1fr; }
  .thirteen-f-control--search { grid-column: auto; }
  .thirteen-f-weighting { flex-wrap: wrap; }
  .thirteen-f-custom__heading { align-items: stretch; flex-direction: column; }
  .thirteen-f-custom__actions { justify-content: flex-start; }
  .thirteen-f-custom__grid { grid-template-columns: 1fr; }
  .thirteen-f-donut-layout { grid-template-columns: 1fr; }
  .thirteen-f-donut { width: min(210px, 100%); margin-inline: auto; }
  .thirteen-f-frequency-columns { grid-template-columns: 1fr; }
  .thirteen-f-concentration-row { grid-template-columns: minmax(110px, 1fr) minmax(70px, 1fr) 54px; }
  .thirteen-f-concentration-row small { display: none; }
}

.put-sell-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-top: 4px solid var(--violet);
  background: var(--surface);
}

.put-sell-panel-heading {
  margin-bottom: 0;
  padding: 0;
}

.put-sell-snapshot-bar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto minmax(320px, 1.2fr) auto minmax(220px, 0.9fr);
  align-items: end;
  gap: 7px;
  padding: 8px;
  border: 1px solid var(--light-violet);
  border-left: 5px solid var(--violet);
  background: var(--white);
  box-shadow: var(--shadow);
}

.put-sell-save-state {
  align-self: center;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.put-sell-form {
  grid-area: inputs;
  margin: 0;
}

.put-sell-core-grid {
  display: grid;
  grid-template-areas: "inputs outputs";
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 10px;
  align-items: start;
}

.put-sell-output-cluster {
  grid-area: outputs;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.put-sell-results-band {
  display: grid;
  grid-template-columns: minmax(620px, 2fr) minmax(320px, 0.9fr);
  gap: 10px;
  align-items: stretch;
}

.put-sell-input-group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: var(--shadow);
}

.put-sell-input-group legend {
  float: left;
  width: 100%;
  padding: 7px 10px;
  border-bottom: 3px solid var(--gold);
  background: var(--blue);
  color: var(--white);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.put-sell-input-grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(4, minmax(110px, 1fr));
  grid-template-areas:
    "valuation ticker spot stress-underlying"
    "days-expiry expiry strike stress-volatility"
    "premium contracts nlv stress-days"
    "implied . . exposure";
  gap: 1px;
  clear: both;
  padding: 1px;
  background: var(--line);
}

.put-sell-field[for="valuation-date"] { grid-area: valuation; }
.put-sell-field[for="ticker"] { grid-area: ticker; }
.put-sell-field[for="spot-price"] { grid-area: spot; }
.put-sell-field[for="underlying-change"] { grid-area: stress-underlying; }
.put-sell-field[for="days-to-expiry"] { grid-area: days-expiry; }
.put-sell-field[for="expiry-date"] { grid-area: expiry; }
.put-sell-field[for="strike-price"] { grid-area: strike; }
.put-sell-field[for="volatility-change"] { grid-area: stress-volatility; }
.put-sell-field[for="premium-credit"] { grid-area: premium; }
.put-sell-field[for="contracts-sold"] { grid-area: contracts; }
.put-sell-field[for="reference-nlv"] { grid-area: nlv; }
.put-sell-field[for="days-incurred"] { grid-area: stress-days; }
.put-sell-field[for="long-exposure"] { grid-area: exposure; }
.put-sell-field[for="implied-volatility"] { grid-area: implied; }

.put-sell-field {
  display: grid;
  min-width: 0;
  gap: 3px;
  padding: 5px 6px;
  background: var(--white);
}

.put-sell-field--stress {
  border-left: 4px solid var(--gold);
  background: var(--light-gold);
}

.put-sell-field--stress > span,
.put-sell-field--stress > small {
  color: var(--black);
}

.put-sell-field--stress input {
  border-color: var(--gold);
  background: var(--white);
}

.put-sell-field--exposure {
  border-left: 4px solid var(--brick);
  background: var(--light-brick);
}

.put-sell-field--exposure > span,
.put-sell-field--exposure > small {
  color: var(--brick);
}

.put-sell-field--exposure input {
  border-color: var(--brick);
  background: var(--white);
}

.put-sell-field > span {
  color: var(--blue);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.045em;
  line-height: 1.2;
  text-transform: uppercase;
}

.put-sell-field input,
.put-sell-field select,
.put-sell-field output {
  width: 100%;
  min-height: 30px;
  padding: 4px 6px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.put-sell-field input:focus,
.put-sell-field select:focus {
  border-color: var(--blue);
}

.put-sell-field small {
  min-height: 10px;
  color: var(--muted);
  font-size: 10px;
}

.put-sell-field--calculated {
  border-left: 4px solid var(--blue-violet);
  background: var(--light-blue-violet);
}

.put-sell-field--calculated output {
  display: flex;
  align-items: center;
  border-color: var(--blue-violet);
  background: var(--white);
  color: var(--blue-violet);
  font-weight: 700;
}

.put-sell-field--calculated > span,
.put-sell-field--calculated > small {
  color: var(--blue-violet);
}

.put-sell-field--name input[readonly] {
  border-color: var(--blue);
  background: var(--light-blue);
  color: var(--blue);
  cursor: default;
  font-weight: 700;
}

.put-sell-action {
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid var(--violet);
  background: var(--white);
  color: var(--violet);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.put-sell-action:hover:not(:disabled) {
  background: var(--light-violet);
}

.put-sell-action--primary {
  background: var(--violet);
  color: var(--white);
}

.put-sell-action--primary:hover:not(:disabled) {
  background: var(--blue-violet);
}

.put-sell-action:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}

.put-sell-form-actions {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 14px;
  padding: 5px 8px;
  border-top: 1px solid var(--line);
  background: var(--surface);
}

.put-sell-form-actions p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.put-sell-form-actions p[data-state="error"] {
  color: var(--brick);
  font-weight: 700;
}

.put-sell-chart-card {
  padding: 14px;
  border: 1px solid var(--chart-tooltip-border);
  border-top: 5px solid var(--blue);
  background: var(--chart-card);
  box-shadow: 0 12px 34px rgb(0 0 0 / 20%);
  color: var(--chart-axis-label);
}

.put-sell-chart-header {
  display: flex;
  min-height: 54px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 0 4px 10px;
}

.put-sell-chart-header h3 {
  margin: 0;
  color: var(--white);
  font-size: 18px;
}

.put-sell-chart-header .eyebrow {
  color: var(--gold);
}

.put-sell-chart-header > p {
  max-width: 760px;
  margin: 2px 0 0;
  color: var(--chart-axis-label);
  font-size: 11px;
  text-align: right;
}

.put-sell-chart-settings {
  display: grid;
  min-width: 0;
  margin: 0 0 10px;
  padding: 9px 10px 10px;
  border: 1px solid var(--chart-tooltip-border);
  background: var(--chart-canvas);
  grid-template-columns: minmax(300px, 1fr) minmax(300px, 1fr) auto;
  gap: 8px 12px;
}

.put-sell-chart-settings legend {
  padding: 0 7px;
  color: var(--chart-axis-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.put-sell-axis-group {
  display: grid;
  min-width: 0;
  grid-template-columns: auto repeat(3, minmax(70px, 1fr));
  align-items: end;
  gap: 7px;
}

.put-sell-axis-group > strong {
  align-self: center;
  color: var(--white);
  font-size: 11px;
  white-space: nowrap;
}

.put-sell-axis-group label {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.put-sell-axis-group label > span {
  color: var(--chart-axis-label);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.put-sell-axis-group input {
  width: 100%;
  min-height: 30px;
  padding: 4px 6px;
  border: 1px solid var(--chart-tooltip-border);
  border-radius: 0;
  background: var(--chart-card);
  color: var(--chart-axis-label);
  font-variant-numeric: tabular-nums;
}

.put-sell-axis-group input:focus {
  border-color: #3366ff;
}

.put-sell-axis-actions {
  display: flex;
  align-items: end;
  gap: 6px;
}

.put-sell-chart-action {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid #3366ff;
  background: transparent;
  color: var(--chart-axis-label);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.put-sell-chart-action:hover,
.put-sell-chart-action:focus-visible {
  background: #3366ff;
  color: var(--white);
}

.put-sell-chart-action--fit {
  background: #3366ff;
  color: var(--white);
}

.put-sell-chart-settings > p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--chart-axis-label);
  font-size: 10px;
}

.put-sell-chart-settings > p[data-state="error"] {
  color: #e06c95;
  font-weight: 700;
}

.put-sell-chart-frame {
  min-height: 430px;
  border: 1px solid var(--chart-tooltip-border);
  background: var(--chart-canvas);
}

.put-sell-chart-frame svg {
  display: block;
  width: 100%;
  min-height: 430px;
}

.put-sell-chart-background {
  fill: var(--chart-canvas);
}

.put-sell-grid-major {
  stroke: var(--chart-grid-major);
  stroke-width: 1;
}

.put-sell-grid-minor {
  stroke: var(--chart-grid-minor);
  stroke-width: 1;
}

.put-sell-axis-label,
.put-sell-axis-title,
.put-sell-chart-empty {
  fill: var(--chart-axis-label);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
}

.put-sell-axis-title {
  font-size: 13px;
  font-weight: 700;
}

.put-sell-series-line {
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.put-sell-chart-point {
  cursor: pointer;
}

.put-sell-chart-point:focus {
  outline: none;
}

.put-sell-chart-point:focus circle:first-child,
.put-sell-chart-point:hover circle:first-child,
.put-sell-chart-point.is-selected circle:first-child {
  r: 7;
  stroke: var(--white);
  stroke-width: 2;
}

.put-sell-chart-point.is-selected circle:first-child {
  stroke-width: 3;
}

.put-sell-point-tooltip {
  pointer-events: none;
}

.put-sell-point-tooltip rect {
  fill: var(--chart-card);
  stroke: var(--chart-tooltip-border);
  stroke-width: 1;
}

.put-sell-point-tooltip-title,
.put-sell-point-tooltip-value {
  fill: var(--chart-axis-label);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
}

.put-sell-point-tooltip-title {
  fill: var(--white);
  font-weight: 700;
}

.put-sell-point-tooltip-value {
  font-variant-numeric: tabular-nums;
}

.put-sell-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  padding: 10px 4px 0;
}

.put-sell-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--chart-axis-label);
  font-size: 11px;
}

.put-sell-chart-legend i {
  width: 24px;
  height: 3px;
}

.put-sell-monte-carlo-card {
  border-top-color: var(--violet);
}

.put-sell-monte-carlo-frame,
.put-sell-monte-carlo-frame svg {
  min-height: 470px;
}

.put-sell-monte-carlo-warning {
  margin: 0 4px 10px;
  padding: 8px 10px;
  border-left: 4px solid #e06c95;
  background: rgb(224 108 149 / 12%);
  color: var(--chart-axis-label);
  font-size: 11px;
  line-height: 1.45;
}

.put-sell-monte-carlo-bin {
  cursor: pointer;
  outline: none;
}

.put-sell-monte-carlo-bar {
  fill: #00abc2;
  fill-opacity: 0.42;
  stroke: #00abc2;
  stroke-width: 0.75;
  vector-effect: non-scaling-stroke;
}

.put-sell-monte-carlo-bin:hover .put-sell-monte-carlo-bar,
.put-sell-monte-carlo-bin:focus .put-sell-monte-carlo-bar,
.put-sell-monte-carlo-bin.is-selected .put-sell-monte-carlo-bar {
  fill-opacity: 0.72;
  stroke: var(--white);
  stroke-width: 1.5;
}

.put-sell-monte-carlo-pnl-line {
  stroke-width: 2.25;
}

.put-sell-monte-carlo-zero {
  stroke: rgb(255 255 255 / 48%);
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.put-sell-monte-carlo-reference {
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.put-sell-monte-carlo-reference-label {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 10px;
  font-weight: 700;
}

.put-sell-monte-carlo-selected-point {
  stroke: var(--white);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.put-sell-monte-carlo-outputs {
  border: 1px solid var(--line);
  border-top: 5px solid var(--cyan);
  background: var(--white);
  box-shadow: var(--shadow);
}

.put-sell-monte-carlo-outputs > header {
  display: grid;
  grid-template-columns: minmax(260px, auto) minmax(360px, 1fr);
  align-items: end;
  gap: 2px 24px;
  padding: 10px 12px;
  background: var(--cyan);
  color: var(--white);
}

.put-sell-monte-carlo-outputs > header .eyebrow {
  grid-column: 1;
  margin: 0;
  color: var(--white);
}

.put-sell-monte-carlo-outputs > header h3 {
  grid-column: 1;
  margin: 0;
  color: var(--white);
  font-size: 15px;
}

.put-sell-monte-carlo-outputs > header p:last-child {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  color: var(--white);
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

.put-sell-monte-carlo-output-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 1px;
  background: var(--line);
}

.put-sell-monte-carlo-output-grid article {
  display: grid;
  min-height: 64px;
  align-content: center;
  gap: 5px;
  padding: 9px 10px;
  background: var(--white);
}

.put-sell-monte-carlo-output-grid span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.put-sell-monte-carlo-output-grid strong {
  color: var(--cyan);
  font-size: 17px;
  font-variant-numeric: tabular-nums;
}

.put-sell-monte-carlo-outputs > footer {
  min-height: 34px;
  padding: 8px 11px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

.put-sell-output-section,
.put-sell-table-section,
.put-sell-ending-section {
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: var(--shadow);
}

.put-sell-output-section > h3 {
  margin: 0;
  padding: 7px 10px;
  background: var(--blue);
  color: var(--white);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.put-sell-output-section--brick > h3 {
  background: var(--brick);
}

.put-sell-output-section--gold > h3 {
  background: var(--gold);
  color: var(--black);
}

.put-sell-output-section--violet > h3 {
  background: var(--violet);
  color: var(--white);
}

.put-sell-output-section dl,
.put-sell-ending-grid dl {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  margin: 0;
}

.put-sell-output-section dl {
  grid-template-columns: minmax(0, max-content) max-content;
  justify-content: start;
  column-gap: 10px;
}

.put-sell-output-cluster .put-sell-output-section dl {
  grid-template-columns: minmax(0, 1fr) max-content;
  justify-content: stretch;
  column-gap: 6px;
}

.put-sell-output-section dt,
.put-sell-output-section dd,
.put-sell-ending-grid dt,
.put-sell-ending-grid dd {
  min-height: 28px;
  margin: 0;
  padding: 5px 7px;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
}

.put-sell-output-section dt,
.put-sell-ending-grid dt {
  color: var(--muted);
}

.put-sell-output-section dd,
.put-sell-ending-grid dd {
  color: var(--ink);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.put-sell-table-section > header,
.put-sell-ending-section > header {
  padding: 8px 10px;
  border-bottom: 3px solid var(--gold);
  background: var(--blue);
  color: var(--white);
}

.put-sell-table-section > header .eyebrow,
.put-sell-ending-section > header .eyebrow {
  color: var(--light-gold);
}

.put-sell-table-section > header h3,
.put-sell-ending-section > header h3 {
  margin: 0;
  color: var(--white);
  font-size: 14px;
}

.put-sell-table-section > header {
  border-bottom-color: var(--light-green);
  background: var(--green);
}

.put-sell-table-section > header .eyebrow {
  color: var(--light-green);
}

.put-sell-ending-section > header {
  border-bottom-color: var(--light-raspberry);
  background: var(--raspberry);
}

.put-sell-ending-section > header .eyebrow {
  color: var(--light-raspberry);
}

.put-sell-table-wrap {
  overflow-x: auto;
}

.put-sell-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.put-sell-table th,
.put-sell-table td {
  padding: 5px 5px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: right;
  white-space: normal;
}

.put-sell-table thead th {
  background: var(--light-blue);
  color: var(--blue);
  font-size: 10px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.put-sell-table th:first-child,
.put-sell-table td:first-child {
  text-align: left;
}

.put-sell-table tbody th {
  color: var(--blue);
}

.put-sell-ending-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.put-sell-ending-grid article {
  background: var(--white);
}

.put-sell-ending-grid h4 {
  margin: 0;
  padding: 7px 9px;
  border-bottom: 1px solid var(--line);
  color: var(--blue);
  font-size: 12px;
  text-transform: uppercase;
}

@media (max-width: 1500px) {
  .put-sell-snapshot-bar {
    grid-template-columns: minmax(220px, 1fr) auto minmax(260px, 1fr) auto;
  }

  .put-sell-monte-carlo-output-grid {
    grid-template-columns: repeat(4, minmax(130px, 1fr));
  }

  .put-sell-save-state {
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  .put-sell-panel {
    padding: 14px;
  }

  .put-sell-input-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: none;
  }

  .put-sell-input-grid > .put-sell-field {
    grid-area: auto;
  }

  .put-sell-snapshot-bar {
    grid-template-columns: 1fr auto;
  }

  .put-sell-field--saved {
    grid-column: 1;
  }

  .put-sell-chart-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .put-sell-chart-header > p {
    text-align: left;
  }

  .put-sell-chart-settings {
    grid-template-columns: 1fr;
  }

  .put-sell-axis-actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 1180px) {
  .put-sell-core-grid {
    grid-template-areas:
      "inputs"
      "outputs";
    grid-template-columns: 1fr;
  }

  .put-sell-results-band {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .put-sell-input-grid,
  .put-sell-ending-grid,
  .put-sell-snapshot-bar {
    grid-template-columns: 1fr;
  }

  .put-sell-save-state,
  .put-sell-field--saved {
    grid-column: auto;
  }

  .put-sell-output-cluster {
    grid-template-columns: 1fr;
  }

  .put-sell-axis-group {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .put-sell-axis-group > strong {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .loading-indicator {
    animation: none;
  }
}

@media print {
  body {
    background: var(--white);
  }

  .site-header,
  .master-module-nav,
  .module-section-tabs,
  .control-bar__actions,
  .control-bar__ticker,
  .focus-table-button,
  .focus-table-identity,
  .focus-table-period-controls,
  .focus-table-ticker,
  .focus-table-exit,
  .site-footer,
  .toast {
    display: none !important;
  }

  .environment-banner:not([hidden]) {
    display: grid !important;
    padding: 8px 12px;
    border: 2px solid var(--gold);
    break-inside: avoid;
  }

  .page-shell {
    width: 100%;
    padding: 0;
  }

  .company-hero,
  .one-page,
  .summary-view,
  .vertical-view,
  .source-note {
    box-shadow: none;
    break-inside: avoid;
  }

  .one-page-matrix {
    break-inside: auto;
  }

  .summary-view {
    break-inside: auto;
  }

  .three-statement {
    break-inside: auto;
  }

  .matrix-table-wrap {
    overflow: visible;
  }

  .summary-view-table-wrap {
    overflow: visible;
  }

  .three-statement-table-wrap {
    overflow: visible;
  }
}
/* Focus keeps the tables and their method titles, without introductory prose. */
.company-research-table--focused .smooth-attribution-contract-note,
.company-research-table--focused .smooth-returns-attribution > h2,
.company-research-table--focused .smooth-returns-attribution > p:not([role="status"]) {
  display: none;
}

/* A total-rule only: retain the present-period fill and vertical markers. */
.smooth-returns-attribution-matrix tr[data-metric-id="actual_smooth_return"] > th,
.smooth-returns-attribution-matrix tr[data-metric-id="actual_smooth_return"] > td {
  border-top: 3px solid #000000;
}

.linked-related-note{margin:0;padding:4px 12px;color:#000;font-size:12px;background:#D8E0E8;overflow-wrap:anywhere;}
.linked-related-note button{margin-left:12px;}
.linked-plot:has(.graph-card){overflow:auto;}
.linked-plot .graph-card{margin:0;min-width:0;border:0;}
.linked-plot .graph-canvas-wrap{min-height:260px;}
.linked-plot .graph-canvas{width:100%;height:280px;}
.graph-coverage{margin:20px 0;padding:16px;border:1px solid #D8E0E8;background:#fff;color:#000;}
.graph-coverage h2{color:#013366;}
.graph-coverage table{width:100%;min-width:820px;border-collapse:collapse;font-size:13px;}
.graph-coverage th,.graph-coverage td{padding:10px;border:1px solid #D8E0E8;vertical-align:top;text-align:left;}
.graph-coverage thead{background:#013366;color:#fff;}
.graph-coverage td p{margin:4px 0;}

/* Chart values stay in their persistent footer, never over the plotted data. */
.graph-tooltip,
.equity-comparison-tooltip,
#equity-comparison-tooltip,
.put-sell-point-tooltip {
  display: none !important;
}

/* Summary subsection headings are labels, not rows of missing metrics. */
.summary-view-table tr.summary-subheading-row > th.summary-subheading-cell {
  position: static;
  width: auto;
  min-width: 0;
  padding: 7px 12px;
  border-top: 2px solid var(--blue);
  border-bottom: 1px solid var(--line);
  background: var(--light-blue);
  color: var(--blue);
  font-weight: 700;
  text-align: left;
  white-space: normal;
}
.summary-subheading-cell > span {
  position: sticky;
  left: 12px;
  display: inline-block;
}

/* Stable inspection readouts: values never determine legend label positions. */
.graph-legend.graph-legend--readout {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 6px 18px;
  margin-top: 6px;
}
.graph-legend--readout .graph-legend__item {
  display: grid;
  grid-template-columns: 18px minmax(0, max-content) 10ch;
  flex: 0 1 auto;
  max-width: 100%;
  align-items: start;
  min-width: 0;
  gap: 6px;
}
.graph-legend--readout .graph-legend__swatch { margin-top: 0.6em; }
.graph-legend__label { min-width: 0; max-width: 36ch; overflow-wrap: anywhere; }
.graph-legend__value {
  display: block;
  width: 10ch;
  min-width: 0;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.graph-card__details.graph-selected-date {
  min-height: 1.5em;
  margin: 8px 0 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-variant-numeric: tabular-nums;
}
.graph-point-notes { margin-top: 6px; color: inherit; font-size: 12px; }
.graph-point-notes > summary { cursor: pointer; }
.graph-point-notes > p { margin: 6px 0 0; overflow-wrap: anywhere; }

/* Notes have explicit theme colors rather than inheriting site link blue. */
.graph-point-notes {
  --point-note-text: #013366;
  --point-note-body: #000000;
  --point-note-surface: #FFFFFF;
  --point-note-border: #D8E0E8;
  padding: 0;
  border: 0;
  border-top: 1px solid var(--point-note-border);
  background: var(--point-note-surface);
  color: var(--point-note-body);
}
[data-theme="dark"] .graph-point-notes {
  --point-note-text: #D8E0E8;
  --point-note-body: #FFFFFF;
  --point-note-surface: var(--chart-card, #0b0d11);
  --point-note-border: var(--chart-tooltip-border, #D8E0E8);
}
.graph-card .graph-point-notes > summary {
  padding: 7px 0;
  background: transparent;
  color: var(--point-note-text);
  font-weight: 600;
  line-height: 1.4;
}
.graph-card .graph-point-notes > summary::marker {
  color: var(--point-note-text);
}
.graph-card .graph-point-notes > summary:hover {
  color: var(--point-note-body);
  text-decoration: underline;
}
.graph-card .graph-point-notes > summary:focus-visible {
  outline: 2px solid var(--point-note-text);
  outline-offset: 2px;
}
.graph-card .graph-point-notes > p {
  margin: 0;
  padding: 0 0 8px;
  color: var(--point-note-body);
  background: transparent;
  line-height: 1.5;
}

/* Compact, consistent separation of the Smooth Returns tables. */
#smooth-attribution-methods,
#smooth-attribution-methods .smooth-returns-attribution {
  display: grid;
  gap: 18px;
}

/* Frozen section labels must sit above the horizontally scrolling fiscal headers. */
#matrix-table-wrap.company-research-table--focused .matrix-section-row > :is(.matrix-metric-column,.matrix-unit-column){z-index:12}

/* Keep the denominator explicit for the Model capital-intensity rows. */
#matrix-table-wrap tr[data-metric-id$="-FWD-REVENUE"] .metric-help-button{white-space:normal;overflow:visible;text-overflow:clip;text-align:left;line-height:1.25}

/* Waterfall totals retain their row highlight; 1Page owns the current column. */
#matrix-table-wrap .matrix-waterfall-result-row > th,
#matrix-table-wrap .matrix-waterfall-result-row > td:not([data-present="true"]) {
  background: var(--light-gold);
  color: var(--black);
}
#matrix-table-wrap .matrix-waterfall-result-row .metric-help-button {
  color: var(--black);
}

/* Recolor the existing gridline above yellow totals; do not add a second border. */
#matrix-table-wrap tr:has(+ .matrix-waterfall-result-row) > th,
#matrix-table-wrap tr:has(+ .matrix-waterfall-result-row) > td,
#matrix-table-wrap .matrix-section-header:has(+ .matrix-section-data > .matrix-waterfall-result-row:first-child) > tr > th {
  border-bottom-color: var(--black);
}

/* 1Page single dividers use one ordinary black gridline; double rules retain their two strokes. */
#matrix-table-wrap .matrix-strong-separator-row > th,
#matrix-table-wrap .matrix-strong-separator-row > td {
  border-top: 0;
}
#matrix-table-wrap tr:not(.matrix-double-divider-after-row):has(+ .matrix-strong-separator-row) > th,
#matrix-table-wrap tr:not(.matrix-double-divider-after-row):has(+ .matrix-strong-separator-row) > td,
#matrix-table-wrap .matrix-section-header:has(+ .matrix-section-data > .matrix-strong-separator-row:first-child) > tr > th {
  border-bottom-color: var(--black);
}
