/* Display states and shared chart extensions. No brand values: colours come from theme tokens. */
.st-row { display: flex; flex-wrap: wrap; gap: 4px; }
.st { display: inline-block; font-family: var(--mono); font-size: 10px; letter-spacing: .02em; text-transform: uppercase; padding: 2px 6px; border: 1px solid var(--line); color: var(--muted); background: var(--paper); line-height: 1.4; white-space: nowrap; }
.st--ok { border-color: var(--ink); color: var(--ink); }
.st--accepted { border-color: var(--ink); color: var(--ink); }
.st--extract { border-color: var(--sage-track); color: var(--ink); background: var(--sage); }
.st--pending, .st--coverage { border-style: dashed; color: var(--ink); }
.st--unavailable, .st--deferred { color: var(--muted); }
.st--na { color: var(--muted); background: var(--grey); }
.st--zero { color: var(--ink); }
.st--prov { border-color: var(--deep-red); color: var(--deep-red); }
.kpi__na { font-size: 18px; font-weight: 600; color: var(--muted); letter-spacing: -0.01em; }
.kpi--empty .kpi__value { margin-top: 10px; }
.ot-state { border: 1px dashed var(--sage-track); padding: 12px 14px; margin: 0 0 12px; font-size: 14px; background: color-mix(in srgb, var(--grey) 45%, transparent); }
.ot-state p + p { margin-top: 6px; }
.ot-state__head { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.ot-state__needs { color: var(--muted); }
.ot-state__needs .mono { font-size: 10px; text-transform: uppercase; letter-spacing: .02em; color: var(--ink); margin-right: 4px; }
.note { font-size: 13px; color: var(--muted); margin-top: 10px; }
.ot-bar { display: block; height: 10px; background: var(--ink); }
.ot-bar--cmp { background: var(--sage-track); }
.ot-bar--cost { background: var(--deep-red); }
.ot-bar--empty { height: 10px; background: var(--hatch); opacity: .25; width: 100%; }
.ot-key--cur { display: inline-block; width: 12px; height: 10px; background: var(--ink); }
.ot-key--cmp { display: inline-block; width: 12px; height: 10px; background: var(--sage-track); }
.ot-wf-table td.ot-wf__bar { width: 30%; min-width: 80px; vertical-align: middle; }
.ot-wf-table .op { display: inline-block; min-width: 46px; font-family: var(--mono); font-size: 11px; color: var(--muted); }
.ot-wf--total th, .ot-wf--total td.num { font-weight: 650; }
.ot-bars { display: grid; gap: 10px; }
.ot-bars__row { display: grid; grid-template-columns: minmax(110px, 38%) minmax(0, 1fr); gap: 10px; align-items: start; font-size: 13px; }
.ot-bars__track { display: grid; gap: 3px; }
.ot-bars__v { font-size: 11px; color: var(--muted); }
.ot-cols { display: flex; align-items: flex-end; height: 210px; border-bottom: 1px solid var(--ink); gap: 0; }
.ot-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; padding: 0 3px; position: relative; }
.ot-col__bar { display: block; width: 100%; max-width: 38px; background: var(--ink); }
.ot-col__bar--cmp { background: var(--sage-track); }
.ot-col__v { font-size: 10px; color: var(--muted); margin-bottom: 3px; }
.ot-col__x { position: absolute; bottom: -20px; font-size: 10px; color: var(--muted); white-space: nowrap; }
#chart-revenue { padding-bottom: 26px; height: auto; }
#chart-revenue .more { margin-top: 30px; }
.sub { display: block; font-size: 12px; color: var(--muted); font-weight: 400; }
table.data.ot-mini { font-size: 13px; }
table.data th[scope="row"] { font-weight: 550; padding-right: 10px; border-bottom: 1px solid var(--line); text-align: left; text-transform: none; letter-spacing: 0; font-family: var(--sans); font-size: 14px; color: var(--ink); vertical-align: top; }
.muted-row th, .muted-row td { color: var(--muted); }
.masthead .badge--private { color: var(--deep-red); }
@media (max-width: 620px) {
  table.data.ot-stack thead { display: none; }
  table.data.ot-stack tr { display: block; border-bottom: 1px solid var(--line); padding: 8px 0; }
  table.data.ot-stack th[scope="row"], table.data.ot-stack td { display: block; border: 0; padding: 2px 0; text-align: left; }
  table.data.ot-stack td.num { text-align: left; }
  table.data.ot-stack td[data-label]::before { content: attr(data-label); display: block; font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .025em; color: var(--muted); }
  table.data.ot-stack tfoot tr { border-top: 1px solid var(--ink); }
  .ot-wf-table td.ot-wf__bar { width: 100%; }
  .ot-bars__row { grid-template-columns: minmax(0, 1fr); }
  .ot-col__v { font-size: 9px; writing-mode: vertical-rl; transform: rotate(180deg); }
  .ot-col__x { font-size: 9px; transform: rotate(-45deg); transform-origin: top right; right: 50%; bottom: -26px; }
}
.kpi__more .kv { table-layout: fixed; width: 100%; }
.kpi__more .kv th, .kpi__more .kv td { overflow-wrap: anywhere; vertical-align: top; }
.kpi__more .kv th { width: 34%; }
table.data.ot-mini { table-layout: fixed; }
table.data.ot-mini th, table.data.ot-mini td.num { white-space: normal; overflow-wrap: anywhere; }
table.data.ot-mini th[scope="row"] { width: 40%; font-size: 13px; }
.ot-wf-table th[scope="row"] { width: 30%; }
.ot-wf-table td.ot-wf__bar { width: 24%; }
.figure__value .na { font-size: 16px; font-weight: 600; letter-spacing: 0; }
#cash-figures { display: block; border: 0; }
/* Unavailable text inside prototype chart cells */
.seg-change__cell .na, .comp__v .na, .db-val .na, .mrow__value .na, .figure__value .na { white-space: normal; overflow-wrap: anywhere; font-size: 13px; font-weight: 500; letter-spacing: 0; }
.seg-change__cell { min-width: 0; }
.wf-bar--na { background: var(--hatch); opacity: .18; }
.wf-bar--detached { opacity: .55; }
.wf-row--na .wf-row__value { font-size: 12px; }
.db-track--na { border-bottom: 1px dashed var(--line); height: 1px; align-self: center; }
.mt--na { display: block; height: 8px; background: var(--hatch); opacity: .18; margin-top: 6px; }
.dv--na { display: none; }
.db-note { display: block; font-size: 11px; color: var(--muted); font-weight: 400; }
.comp--na .comp__effect { text-transform: none; letter-spacing: 0; white-space: normal; }
.masthead__extract { font-size: 11px; color: var(--muted); }
.st-row--compact .st { font-size: 9px; padding: 1px 4px; }
.mrow--na .mrow__value, .mrow--na .mrow__delta { grid-column: 1 / -1; text-align: left; align-items: flex-start; }
.mrow--na .mrow__delta .delta__vs { font-size: 12px; }
