/* Exhibit styles for the abridged-report articles under /media/
   (pages/templates/articles/). Palette follows the marketing site:
   slate ink, SHELDON blue for data marks. Light theme only. */
.brief {
  --ink: #0f172a;
  --ink-2: #475569;
  --muted: #64748b;
  --rule: #e2e8f0;
  --track: #e2e8f0;
  --surface: #ffffff;
  --accent: #3d82f4;
  --accent-ink: #2563eb;
  --m-fielded: #3d82f4;
  --m-research: #c2560c;
  --m-transitioning: #0f766e;
  --m-contracted: #0f172a;
  --m-prototype: #7c3aed;
  /* Stepped choropleth classes, lightest to darkest (#mapBox[data-bins]). */
  --c1: #dbeafe;
  --c2: #93c5fd;
  --c3: #3d82f4;
  --c4: #1d4ed8;
  --c5: #1e3a8a;
  --f-data: "JetBrains Mono", ui-monospace, monospace;
  color: var(--ink);
}
.brief .num { font-variant-numeric: tabular-nums; }

.brief .topline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.brief .topline > div { padding: 20px; min-width: 0; }
.brief .topline > div + div { border-left: 1px solid var(--rule); }
@media (max-width: 640px) {
  .brief .topline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brief .topline > div:nth-child(3) { border-left: 0; }
  .brief .topline > div:nth-child(n+3) { border-top: 1px solid var(--rule); }
}

.brief .figure { background: var(--surface); border: 1px solid var(--rule); border-radius: 0.5rem; box-shadow: 0 1px 2px rgb(15 23 42 / 0.05); padding: 24px; margin-top: 20px; min-width: 0; }
.brief .fig-title { font-weight: 600; font-size: 14px; color: var(--ink); margin: 0 0 4px; }
.brief .fig-note { font-size: 13px; color: var(--muted); margin: 12px 0 0; line-height: 1.5; }

.brief .hbars { display: grid; gap: 14px; margin-top: 12px; }
.brief .hrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: baseline; }
.brief .hrow .name { font-size: 14px; color: var(--ink); min-width: 0; }
.brief .hrow .amt { font-family: var(--f-data); font-size: 13px; color: var(--ink-2); font-variant-numeric: tabular-nums; text-align: right; }
.brief .hrow .bar { grid-column: 1 / -1; height: 10px; background: var(--track); border-radius: 0 4px 4px 0; position: relative; }
.brief .hrow .bar i { position: absolute; inset: 0 auto 0 0; background: var(--accent); border-radius: 0 4px 4px 0; min-width: 2px; }
.brief .share { font-family: var(--f-data); font-size: 12px; color: var(--muted); }

/* Market-concentration chips: share of funding to the top company. */
.brief .chip { display: inline-block; font-family: var(--f-data); font-size: 11px; letter-spacing: 0.02em; padding: 1px 7px; border-radius: 3px; margin-left: 6px; white-space: nowrap; vertical-align: 1px; }
.brief .chip.frag { background: #eff6ff; color: #2563eb; }
.brief .chip.conc { background: #dbeafe; color: #1d4ed8; }
.brief .chip.mono { background: #2563eb; color: #ffffff; }
.brief .legend { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--muted); margin-top: 8px; }
.brief .legend .chip { margin-left: 0; margin-right: 4px; }

.brief .chart-box { position: relative; overflow-x: auto; }
.brief svg.trend { display: block; width: 100%; min-width: 520px; height: auto; }
.brief svg.trend .grid { stroke: var(--rule); stroke-width: 1; }
.brief svg.trend .ax { fill: var(--muted); font-family: var(--f-data); font-size: 12px; }
.brief svg.trend .lab { fill: var(--ink); font-family: var(--f-data); font-size: 12px; }
.brief svg.trend .bar { fill: var(--accent); }
.brief svg.trend .hit { fill: transparent; }
.brief svg.trend g.col:hover .bar, .brief svg.trend g.col:focus .bar { fill: var(--accent-ink); }
.brief svg.trend g.col:focus { outline: none; }

.brief details.data { margin-top: 12px; font-size: 13px; }
.brief details.data summary { cursor: pointer; color: var(--accent-ink); }
.brief .tbl-wrap { overflow-x: auto; }
.brief table { border-collapse: collapse; margin-top: 8px; font-variant-numeric: tabular-nums; }
.brief th, .brief td { text-align: left; padding: 6px 16px 6px 0; border-bottom: 1px solid var(--rule); }
.brief td.n, .brief th.n { text-align: right; font-family: var(--f-data); }

.brief .split { display: grid; gap: 14px; }
.brief .split .row-l { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.brief .split .row-l span:last-child { font-family: var(--f-data); color: var(--ink-2); font-size: 13px; }
.brief .stackbar { display: flex; height: 22px; gap: 2px; margin-top: 6px; }
.brief .stackbar i { display: block; height: 100%; }
.brief .stackbar i.a { background: var(--accent); }
.brief .stackbar i.b { background: var(--track); }
.brief .stackbar i:first-child { border-radius: 3px 0 0 3px; }
.brief .stackbar i:last-child { border-radius: 0 3px 3px 0; }

.brief .ledger { margin-top: 20px; border-top: 1px solid var(--rule); }
.brief .ledger .li { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 4px 16px; padding-block: 14px; border-bottom: 1px solid var(--rule); }
.brief .ledger .amt { font-family: var(--f-data); font-weight: 500; font-size: 15px; color: var(--accent-ink); font-variant-numeric: tabular-nums; }
.brief .ledger .who { font-weight: 600; font-size: 15px; }
.brief .ledger .what { font-size: 14px; color: var(--ink-2); }
.brief .ledger .when { font-family: var(--f-data); font-size: 12px; color: var(--muted); }
@media (max-width: 520px) { .brief .ledger .li { grid-template-columns: 1fr; } }

.brief .steps { list-style: none; margin: 16px 0 0; padding: 0; }
.brief .steps li { display: grid; grid-template-columns: 4.5em minmax(0, 1fr); gap: 16px; padding-bottom: 18px; position: relative; }
.brief .steps li::before { content: ""; position: absolute; left: calc(4.5em + 21px); top: 8px; bottom: -8px; width: 2px; background: var(--rule); }
.brief .steps li:last-child::before { display: none; }
.brief .steps .yr { font-family: var(--f-data); font-size: 13px; color: var(--muted); padding-top: 1px; }
.brief .steps .ev { padding-left: 22px; position: relative; font-size: 15px; color: var(--ink-2); }
.brief .steps .ev::before { content: ""; position: absolute; left: 0; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--surface); border: 2px solid var(--accent); }
.brief .steps li.big .ev::before { background: var(--accent); }
.brief .steps .ev b { color: var(--ink); font-weight: 600; }

.brief table.themes { width: 100%; font-size: 14px; }
.brief .themes th { font-family: var(--f-data); font-weight: 500; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; }
.brief .themes td, .brief .themes th { padding: 10px 12px 10px 0; vertical-align: top; }
.brief .themes td:first-child { font-weight: 600; color: var(--ink); }
.brief .themes td.desc { color: var(--ink-2); }

.brief .maptools { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.brief .maptools button { font: 500 13px "Inter", system-ui, sans-serif; color: var(--ink-2); background: var(--surface); border: 1px solid #cbd5e1; padding: 6px 12px; cursor: pointer; }
.brief .maptools button:hover { color: var(--ink); border-color: var(--muted); }
.brief .maptools button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.brief .seg, .brief .zoom { display: inline-flex; }
.brief .seg button:first-child, .brief .zoom button:first-child { border-radius: 4px 0 0 4px; }
.brief .seg button:last-child, .brief .zoom button:last-child { border-radius: 0 4px 4px 0; }
.brief .seg button + button, .brief .zoom button + button { margin-left: -1px; }
.brief .seg button.on { background: var(--accent); border-color: var(--accent); color: #ffffff; position: relative; }
.brief .zoom button { min-width: 36px; }
.brief .mapbox { position: relative; border-radius: 4px; overflow: hidden; background: #f8fafc; touch-action: pan-x pan-y; }
.brief #usMap { display: block; width: 100%; height: auto; cursor: grab; }
.brief #usMap:active { cursor: grabbing; }
.brief #usMap .st { stroke: #ffffff; stroke-width: 0.8; vector-effect: non-scaling-stroke; }
.brief #usMap .st.hot { stroke: var(--ink); stroke-width: 1.6; }
.brief #usMap .org { stroke: #ffffff; vector-effect: non-scaling-stroke; stroke-width: 0.6; fill-opacity: 0.9; }
.brief #usMap .org:hover { stroke: var(--ink); stroke-width: 1.4; }
.brief .f-fielded { fill: var(--m-fielded); }
.brief .f-research { fill: var(--m-research); }
.brief .f-transitioning { fill: var(--m-transitioning); }
.brief .f-contracted { fill: var(--m-contracted); }
.brief .f-prototype { fill: var(--m-prototype); }
.brief .maplegend { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--ink-2); margin-top: 12px; }
.brief .maplegend span { display: inline-flex; align-items: center; gap: 6px; }
.brief .maplegend .dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; border: 1px solid #ffffff; box-shadow: 0 0 0 1px rgb(15 23 42 / 0.15); }
.brief .d-fielded { background: var(--m-fielded); }
.brief .d-research { background: var(--m-research); }
.brief .d-transitioning { background: var(--m-transitioning); }
.brief .d-contracted { background: var(--m-contracted); }
.brief .d-prototype { background: var(--m-prototype); }
.brief .maplegend .grad { display: inline-block; width: 160px; height: 10px; border-radius: 2px; background: linear-gradient(90deg, var(--track), var(--accent)); }
.brief .maplegend .sw { width: 14px; height: 11px; border-radius: 2px; display: inline-block; box-shadow: inset 0 0 0 1px rgb(15 23 42 / 0.12); }
.brief .sw-c1 { background: var(--c1); }
.brief .sw-c2 { background: var(--c2); }
.brief .sw-c3 { background: var(--c3); }
.brief .sw-c4 { background: var(--c4); }
.brief .sw-c5 { background: var(--c5); }
.brief .sw-none { background: var(--track); }
.brief [hidden] { display: none !important; }

/* Tooltips are moved to <body> while visible, so they are not scoped. */
.brief-tip { position: fixed; z-index: 60; pointer-events: none; background: #0f172a; color: #ffffff; font: 12px/1.45 "JetBrains Mono", ui-monospace, monospace; padding: 6px 9px; border-radius: 4px; box-shadow: 0 4px 12px rgb(15 23 42 / 0.2); white-space: nowrap; }
.brief-tip[hidden] { display: none; }
#mapTip { white-space: normal; max-width: 260px; }
