@font-face {
  font-family: Plex;
  src: url("/assets/plex-sans.woff2") format("woff2");
  font-display: swap;
  font-weight: 400;
}
@font-face {
  font-family: Plex;
  src: url("/assets/plex-sans-medium.woff2") format("woff2");
  font-display: swap;
  font-weight: 500 700;
}
@font-face {
  font-family: Serif;
  src: url("/assets/source-serif.woff2") format("woff2");
  font-display: swap;
  font-weight: 200 900;
}
@font-face {
  font-family: Mono;
  src: url("/assets/plex-mono.woff2") format("woff2");
  font-display: swap;
}
:root {
  --paper: #faf8f1;
  --surface: #f1ede2;
  --ink: #141414;
  --muted: #59574f;
  --border: #cdc5b7;
  --red: #6f1d1b;
  --green: #31533d;
  --sidebar: 218px;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font:
    14px/1.5 Plex,
    Arial,
    sans-serif;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a,
input,
textarea,
select {
  -webkit-tap-highlight-color: transparent;
}
button,
a {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: wait;
  opacity: 0.6;
}
a {
  color: inherit;
  text-decoration: none;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
button {
  color: inherit;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2,
h3 {
  font-weight: 500;
}
h1,
h2.serif,
.serif {
  font-family: Serif, Georgia, serif;
}
h1 {
  font-size: clamp(34px, 3.5vw, 48px);
  line-height: 1.12;
  letter-spacing: -1.5px;
}
h2 {
  font-size: 21px;
  letter-spacing: -0.45px;
}
h3 {
  font-size: 17px;
  line-height: 1.3;
}
p {
  color: var(--muted);
}
svg {
  width: 18px;
  height: 18px;
  flex: none;
  vertical-align: middle;
}
.skip-link {
  position: fixed;
  left: 10px;
  top: -80px;
  z-index: 100;
  background: var(--ink);
  color: white;
  padding: 12px;
}
.skip-link:focus {
  top: 10px;
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar);
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 28px 16px 18px;
  z-index: 20;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 10px 27px;
}
.brand-logo {
  width: 41px;
  height: 41px;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.brand-name {
  font-family: Serif, Georgia, serif;
  font-size: 25px;
  font-weight: 650;
  line-height: 1;
}
.brand-sub {
  font-family: Mono, monospace;
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--muted);
  margin-top: 7px;
}
.nav-label,
.eyebrow {
  font-family: Mono, monospace;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 1.35px;
  color: var(--muted);
}
.nav-label {
  padding: 17px 12px 9px;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 12px;
  margin: 3px 0;
  border-radius: 5px;
  color: var(--muted);
  font-weight: 500;
}
.nav-item:hover {
  background: #e8e2d5;
  color: var(--ink);
}
.nav-item.active {
  background: #e8dcd2;
  color: var(--red);
}
.nav-count {
  margin-left: auto;
  font:
    11px Mono,
    monospace;
  color: var(--muted);
}
.sidebar-bottom {
  margin-top: auto;
}
.sidebar-note {
  border-top: 1px solid var(--border);
  margin: 18px 10px 0;
  padding-top: 16px;
  font-size: 11px;
  line-height: 1.6;
  color: var(--muted);
}
.sidebar-note strong {
  color: var(--ink);
  font-weight: 500;
}
.app-main {
  margin-left: var(--sidebar);
  min-height: 100vh;
}
.topbar {
  height: 66px;
  padding: 0 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
  gap: 16px;
  background: var(--paper);
}
.breadcrumb {
  font-size: 12px;
  color: var(--muted);
  display: flex;
  gap: 11px;
  align-items: center;
}
.breadcrumb span:last-child {
  color: var(--ink);
}
.topbar-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}
.prototype {
  font-size: 10px;
  display: flex;
  gap: 7px;
  align-items: center;
  color: var(--muted);
}
.dot {
  width: 6px;
  height: 6px;
  border-radius: 100%;
  background: var(--green);
  display: inline-block;
}
.text-link {
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.text-link:hover {
  color: var(--red);
  text-decoration: underline;
}
.content {
  max-width: 1480px;
  margin: auto;
  padding: 34px 38px 48px;
}
.page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 27px;
}
.page-heading .eyebrow {
  margin-bottom: 9px;
  color: var(--red);
}
.page-heading p {
  margin-top: 10px;
  font-size: 14px;
  max-width: 650px;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1px solid var(--border);
  background: transparent;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
}
.button:hover {
  background: var(--surface);
}
.button.primary {
  background: var(--red);
  border-color: var(--red);
  color: var(--paper);
}
.button.primary:hover {
  background: #541715;
}
.button.small {
  padding: 6px 10px;
  font-size: 11px;
}
.button.danger {
  color: var(--red);
}
.icon-button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  background: none;
  border: 1px solid transparent;
  border-radius: 4px;
  flex: none;
}
.icon-button:hover {
  background: var(--surface);
  border-color: var(--border);
}
.welcome-strip {
  border: 1px solid var(--border);
  border-left: 3px solid var(--green);
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  background: #f5f3e9;
  font-size: 12px;
  margin-bottom: 27px;
}
.welcome-strip p {
  font-size: 12px;
}
.welcome-strip strong {
  color: var(--ink);
  font-weight: 500;
}
.metric-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-bottom: 30px;
}
.metric {
  padding: 18px 22px 17px;
  border-right: 1px solid var(--border);
}
.metric:first-child {
  padding-left: 0;
}
.metric:last-child {
  border: 0;
}
.metric-value {
  font:
    32px/1.1 Serif,
    Georgia,
    serif;
  margin-bottom: 5px;
  letter-spacing: -1px;
}
.metric-label {
  font-size: 11px;
  color: var(--muted);
}
.metric .eyebrow {
  font-size: 9px;
}
.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 15px;
}
.section-heading h2 {
  font:
    25px Serif,
    Georgia,
    serif;
  letter-spacing: -0.65px;
}
.section-heading p {
  font-size: 12px;
  margin-top: 3px;
}
.thesis-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 29px;
}
.thesis-card {
  padding: 18px 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-top: 2px solid var(--ink);
  position: relative;
}
.thesis-card .eyebrow {
  font-size: 9px;
}
.thesis-card h3 {
  font:
    23px/1.15 Serif,
    Georgia,
    serif;
  margin: 12px 0 9px;
  letter-spacing: -0.5px;
}
.thesis-card p {
  font-size: 12px;
  line-height: 1.6;
}
.thesis-card footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20px;
  font:
    10px Mono,
    monospace;
  color: var(--muted);
}
.thesis-card button {
  border: 0;
  background: none;
  padding: 0;
  text-align: left;
}
.thesis-card button:hover {
  color: var(--red);
}
.overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, 1fr);
  gap: 27px;
}
.brief-feature {
  background: var(--ink);
  color: var(--paper);
  padding: 24px 26px;
  position: relative;
  min-height: 233px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
}
.brief-feature .eyebrow {
  color: #cdc5b7;
}
.brief-feature h3 {
  font:
    29px/1.14 Serif,
    Georgia,
    serif;
  margin: 16px 0 11px;
  max-width: 92%;
  letter-spacing: -0.6px;
}
.brief-feature p {
  font-size: 12px;
  line-height: 1.65;
  color: #c9c5ba;
  max-width: 95%;
}
.brief-feature .button {
  margin-top: 21px;
  color: var(--paper);
  border-color: #6b675e;
}
.brief-feature .button:hover {
  background: #302e29;
}
.brief-feature footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 14px;
  margin-top: auto;
  padding-top: 3px;
}
.brief-feature .mini-meta {
  font:
    10px Mono,
    monospace;
  color: #c9c5ba;
  padding-top: 22px;
}
.brief-row {
  border: 1px solid var(--border);
  border-top: 0;
  padding: 17px 20px;
  display: flex;
  align-items: center;
  gap: 15px;
  width: 100%;
  background: transparent;
  text-align: left;
}
.brief-row:hover {
  background: var(--surface);
}
.brief-row .row-number {
  font:
    12px Mono,
    monospace;
  color: var(--red);
}
.brief-row h3 {
  font-size: 14px;
}
.brief-row p {
  font-size: 11px;
  margin-top: 4px;
}
.brief-row > svg {
  margin-left: auto;
}
.signal-list {
  border-top: 1px solid var(--border);
}
.signal {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 12px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}
.signal .company-mark {
  width: 30px;
  height: 30px;
  font-size: 11px;
}
.signal h3 {
  font-size: 13px;
  line-height: 1.4;
}
.signal-title {
  border: 0;
  background: none;
  text-align: left;
  padding: 0;
}
.signal-title:hover {
  color: var(--red);
}
.signal p {
  font-size: 11px;
  margin-top: 5px;
  line-height: 1.55;
}
.signal-meta {
  font:
    9px Mono,
    monospace;
  color: var(--muted);
  margin-top: 8px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.signal-meta a:hover {
  color: var(--red);
  text-decoration: underline;
}
.company-mark {
  width: 38px;
  height: 38px;
  flex: none;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--border);
  font:
    15px Serif,
    Georgia,
    serif;
  font-weight: 600;
  overflow: hidden;
  color: var(--ink);
}
.company-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.page-footer {
  margin-top: 32px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 10px;
}
.toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.filters {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.filter-button {
  border: 1px solid var(--border);
  background: transparent;
  padding: 7px 12px;
  font-size: 11px;
  border-radius: 4px;
}
.filter-button.active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
}
.search-field {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 235px;
}
.search-field svg {
  position: absolute;
  left: 12px;
  color: var(--muted);
  width: 15px;
}
.search-field input {
  border: 1px solid var(--border);
  background: transparent;
  border-radius: 4px;
  padding: 8px 12px 8px 35px;
  width: 100%;
  font-size: 12px;
}
.select {
  border: 1px solid var(--border);
  background: transparent;
  padding: 7px 9px;
  border-radius: 4px;
  font-size: 11px;
  max-width: 220px;
}
.company-table {
  border: 1px solid var(--border);
  width: 100%;
  border-collapse: collapse;
}
.company-table th {
  background: var(--surface);
  text-align: left;
  padding: 10px 16px;
  font:
    9px Mono,
    monospace;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.8px;
  font-weight: 400;
}
.company-table td {
  padding: 17px 16px;
  border-top: 1px solid var(--border);
  vertical-align: middle;
}
.company-name-cell {
  display: flex;
  gap: 12px;
  align-items: center;
  min-width: 170px;
}
.company-name {
  font-weight: 500;
  font-size: 14px;
  background: none;
  border: 0;
  padding: 0;
  text-align: left;
}
.company-name:hover {
  color: var(--red);
}
.domain {
  font-size: 10px;
  color: var(--muted);
  margin-top: 2px;
}
.company-bottleneck {
  font-size: 12px;
  color: var(--muted);
  max-width: 400px;
  line-height: 1.55;
}
.pill {
  font:
    9px Mono,
    monospace;
  background: var(--surface);
  padding: 4px 7px;
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.pill.portfolio {
  color: var(--green);
  background: #eaf0e6;
  border-color: #c4d0bc;
}
.pill.research {
  color: var(--red);
  background: #f2e8de;
  border-color: #d9c8bc;
}
.pill.status {
  font-size: 9px;
}
.table-wrap {
  overflow-x: auto;
}
.source-count {
  font:
    10px Mono,
    monospace;
  color: var(--muted);
  white-space: nowrap;
}
.brief-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 19px;
}
.research-card {
  border: 1px solid var(--border);
  padding: 26px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.research-card h2 {
  font:
    30px/1.15 Serif,
    Georgia,
    serif;
  margin: 16px 0 12px;
  letter-spacing: -0.7px;
}
.research-card p {
  font-size: 13px;
  line-height: 1.65;
}
.research-card .button {
  margin-top: 24px;
}
.research-card .eyebrow {
  color: var(--red);
}
.research-card footer {
  font:
    10px Mono,
    monospace;
  color: var(--muted);
  margin-top: auto;
  padding-top: 22px;
}
.workspace-notice {
  font-size: 12px;
  margin-bottom: 20px;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px 15px;
  background: var(--surface);
  border: 1px solid var(--border);
}
.workspace-notice svg {
  width: 15px;
  margin-top: 2px;
  color: var(--green);
}
.workspace-tabs {
  display: flex;
  gap: 24px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.workspace-tab {
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 10px 0;
  background: none;
  font-size: 12px;
  color: var(--muted);
}
.workspace-tab.active {
  border-bottom-color: var(--red);
  color: var(--red);
}
.records-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.record-card {
  border: 1px solid var(--border);
  padding: 19px 21px;
}
.record-card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 11px;
  gap: 10px;
}
.record-card h3 {
  font:
    24px/1.2 Serif,
    Georgia,
    serif;
  margin-bottom: 9px;
}
.record-card p {
  font-size: 12px;
  white-space: pre-wrap;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.record-card footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
}
.record-card .record-time {
  font:
    9px Mono,
    monospace;
  color: var(--muted);
}
.record-actions {
  display: flex;
  gap: 5px;
}
.empty-state {
  border: 1px dashed var(--border);
  padding: 47px 24px;
  text-align: center;
  grid-column: 1/-1;
}
.empty-state h2 {
  font:
    29px Serif,
    Georgia,
    serif;
  margin: 12px 0 7px;
}
.empty-state p {
  font-size: 13px;
  max-width: 460px;
  margin: 0 auto 20px;
}
.empty-state svg {
  width: 27px;
  height: 27px;
  color: var(--red);
}
.error-state {
  padding: 25px;
  border: 1px solid #b98575;
  background: #f5e9df;
}
.error-state h2 {
  font:
    26px Serif,
    Georgia,
    serif;
  margin-bottom: 8px;
}
.error-state p {
  margin-bottom: 15px;
}
.about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 1fr);
  gap: 26px;
}
.panel {
  border: 1px solid var(--border);
  padding: 24px;
  margin-bottom: 20px;
}
.panel h2 {
  font:
    28px Serif,
    Georgia,
    serif;
  margin-bottom: 11px;
}
.panel p {
  font-size: 13px;
  line-height: 1.7;
}
.numbered-list {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  counter-reset: steps;
}
.numbered-list li {
  counter-increment: steps;
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--muted);
}
.numbered-list li:before {
  content: "0" counter(steps);
  font:
    11px Mono,
    monospace;
  color: var(--red);
}
.numbered-list strong {
  display: block;
  color: var(--ink);
  font-weight: 500;
  margin-bottom: 3px;
}
.code-field {
  padding: 13px;
  background: var(--surface);
  border: 1px solid var(--border);
  font:
    11px/1.6 Mono,
    monospace;
  overflow-wrap: anywhere;
  margin: 14px 0;
}
.integration-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid var(--border);
  font-size: 12px;
}
.small-copy {
  font-size: 11px !important;
}
.source-library {
  border-top: 1px solid var(--border);
}
.source-library-item {
  padding: 13px 0;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 20px;
  align-items: flex-start;
  justify-content: space-between;
}
.source-library-item a {
  font-size: 12px;
}
.source-library-item a:hover {
  text-decoration: underline;
  color: var(--red);
}
.source-library-item p {
  font-size: 10px;
  margin-top: 3px;
}
.source-library-item .eyebrow {
  white-space: nowrap;
  font-size: 9px;
}
.mobile-menu {
  display: none;
}
dialog {
  border: 1px solid var(--border);
  background: var(--paper);
  color: var(--ink);
  padding: 0;
  width: min(850px, calc(100vw - 40px));
  max-height: calc(100dvh - 64px);
  box-shadow: 0 24px 100px #14141435;
}
dialog::backdrop {
  background: #14141470;
  backdrop-filter: blur(2px);
}
.dialog-top {
  position: sticky;
  top: 0;
  background: var(--paper);
  border-bottom: 1px solid var(--border);
  padding: 12px 23px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  z-index: 2;
}
.dialog-top .eyebrow {
  font-size: 9px;
}
.dialog-body {
  padding: 30px 35px 35px;
}
.dialog-body h1 {
  font-size: 38px;
  line-height: 1.13;
  letter-spacing: -1px;
}
.dialog-company-title {
  display: flex;
  gap: 17px;
  align-items: center;
  margin-bottom: 20px;
}
.dialog-company-title .company-mark {
  width: 55px;
  height: 55px;
  font-size: 23px;
}
.dialog-company-title .domain {
  margin-top: 5px;
  font-size: 11px;
}
.detail-subtitle {
  font-size: 15px;
  line-height: 1.7;
  margin: 15px 0 22px;
}
.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 26px;
}
.detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.detail-section {
  margin: 24px 0;
}
.detail-section h2 {
  font:
    25px Serif,
    Georgia,
    serif;
  margin-bottom: 10px;
}
.detail-section p {
  font-size: 13px;
  line-height: 1.8;
  white-space: pre-line;
}
.detail-section ul {
  padding-left: 18px;
  margin: 9px 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.8;
}
.detail-section li {
  padding-bottom: 7px;
}
.evidence-list {
  margin-top: 13px;
}
.evidence-item {
  border-top: 1px solid var(--border);
  padding: 13px 0;
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 9px;
}
.evidence-number {
  font:
    10px Mono,
    monospace;
  color: var(--red);
  padding-top: 3px;
}
.evidence-item a {
  font-size: 12px;
  font-weight: 500;
}
.evidence-item a:hover {
  color: var(--red);
  text-decoration: underline;
}
.evidence-item p {
  font:
    10px/1.5 Mono,
    monospace;
  color: var(--muted);
  margin-top: 4px;
}
.provenance-note {
  border-left: 2px solid var(--green);
  padding: 9px 13px;
  background: var(--surface);
  font-size: 11px;
  color: var(--muted);
  line-height: 1.7;
}
.inline-citations {
  display: flex;
  gap: 6px;
  margin-top: 11px;
  flex-wrap: wrap;
}
.inline-citations a {
  font:
    9px Mono,
    monospace;
  border: 1px solid var(--border);
  padding: 3px 7px;
}
.inline-citations a:hover {
  background: var(--surface);
  color: var(--red);
}
.company-chips {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin: 17px 0;
}
.company-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--border);
  padding: 6px 9px;
  background: transparent;
  font-size: 11px;
}
.company-chip:hover {
  background: var(--surface);
}
.company-chip .company-mark {
  width: 20px;
  height: 20px;
  font-size: 9px;
}
.field {
  margin-bottom: 18px;
}
.field label {
  display: block;
  font:
    10px Mono,
    monospace;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  margin-bottom: 7px;
  color: var(--muted);
}
.field input,
.field textarea,
.field select {
  width: 100%;
  border: 1px solid var(--border);
  background: transparent;
  border-radius: 3px;
  padding: 11px 12px;
  color: var(--ink);
  font-size: 13px;
}
.field textarea {
  min-height: 230px;
  resize: vertical;
  line-height: 1.7;
}
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.form-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}
.form-error {
  font-size: 12px;
  color: var(--red);
  padding: 12px;
  border: 1px solid #bb8c7c;
  background: #f5e9df;
  margin: 14px 0;
}
.form-help {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 20px;
}
.revision {
  border: 1px solid var(--border);
  padding: 17px;
  margin: 12px 0;
}
.revision header {
  display: flex;
  justify-content: space-between;
  font:
    10px Mono,
    monospace;
  margin-bottom: 10px;
}
.revision h3 {
  font-size: 15px;
  margin-bottom: 7px;
}
.revision p {
  white-space: pre-wrap;
  font-size: 12px;
  max-height: 220px;
  overflow: auto;
}
.initial-loader {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 15px;
}
.loading-line {
  height: 4px;
  overflow: hidden;
  background: var(--surface);
  margin-bottom: 20px;
}
.loading-line:after {
  content: "";
  display: block;
  width: 35%;
  height: 100%;
  background: var(--red);
  animation: loading 1.5s infinite;
}
.loading-label {
  font-size: 12px;
  color: var(--muted);
}
@keyframes loading {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(400%);
  }
}
#toast {
  position: fixed;
  bottom: 25px;
  left: calc(50% + var(--sidebar) / 2);
  transform: translateX(-50%) translateY(20px);
  padding: 12px 19px;
  background: var(--ink);
  color: var(--paper);
  box-shadow: 0 4px 20px #14141420;
  max-width: 90vw;
  opacity: 0;
  pointer-events: none;
  transition: 0.2s;
  font-size: 12px;
  z-index: 100;
}
#toast.visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
#toast.error {
  background: var(--red);
}
.mono {
  font-family: Mono, monospace;
}
.muted {
  color: var(--muted);
}
.stack-space {
  margin-top: 25px;
}
.small-label {
  font-size: 11px;
}
.source-kind {
  font-size: 9px;
  color: var(--muted);
}
@media (min-width: 1500px) {
  .content {
    padding-top: 43px;
  }
  .thesis-card {
    padding: 22px 24px;
  }
  .thesis-card h3 {
    font-size: 27px;
  }
  .brief-feature {
    min-height: 265px;
  }
  .brief-feature h3 {
    font-size: 34px;
  }
  .signal {
    padding: 19px 0;
  }
}
@media (max-width: 1100px) {
  :root {
    --sidebar: 195px;
  }
  .content {
    padding: 27px 25px;
  }
  .topbar {
    padding: 0 25px;
  }
  .thesis-grid {
    gap: 10px;
  }
  .thesis-card {
    padding: 16px;
  }
  .thesis-card h3 {
    font-size: 22px;
  }
  .overview-grid {
    gap: 22px;
    grid-template-columns: 1.1fr 1fr;
  }
  .company-table td,
  .company-table th {
    padding-left: 12px;
    padding-right: 12px;
  }
  .about-grid {
    grid-template-columns: 1fr;
  }
  .company-bottleneck {
    min-width: 190px;
  }
  .topbar-actions {
    gap: 12px;
  }
  .prototype {
    font-size: 9px;
  }
}
@media (max-width: 850px) {
  :root {
    --sidebar: 178px;
  }
  .sidebar {
    padding-left: 10px;
    padding-right: 10px;
  }
  .brand {
    gap: 8px;
    padding-left: 6px;
  }
  .brand-logo {
    width: 34px;
    height: 34px;
  }
  .brand-name {
    font-size: 22px;
  }
  .nav-item {
    font-size: 12px;
    padding: 10px;
  }
  .content {
    padding: 26px 23px;
  }
  .overview-grid {
    grid-template-columns: 1fr;
  }
  .thesis-grid {
    grid-template-columns: 1fr;
  }
  .thesis-card {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 8px 20px;
    padding: 16px 20px;
  }
  .thesis-card > .eyebrow {
    grid-column: 1/-1;
  }
  .thesis-card h3 {
    margin: 4px 0;
  }
  .thesis-card footer {
    grid-column: 1/-1;
    margin-top: 5px;
  }
  .brief-grid,
  .records-grid {
    grid-template-columns: 1fr;
  }
  .metric {
    padding: 15px 10px;
  }
  .metric-value {
    font-size: 28px;
  }
  .metric-label {
    font-size: 10px;
  }
  .topbar .prototype {
    display: none;
  }
  .page-heading {
    align-items: flex-start;
  }
  .page-heading > .button {
    margin-top: 6px;
  }
  .page-footer {
    flex-direction: column;
  }
  .signal {
    padding: 14px 0;
  }
  .signal p {
    max-width: 600px;
  }
}
@media (max-width: 600px) {
  :root {
    --sidebar: 0px;
  }
  .sidebar {
    width: 240px;
    transform: translateX(-100%);
    transition: transform 0.2s;
    box-shadow: 10px 0 70px #14141430;
  }
  .sidebar.mobile-open {
    transform: translateX(0);
  }
  .mobile-menu {
    display: grid;
  }
  .sidebar .mobile-menu {
    position: absolute;
    right: 9px;
    top: 8px;
  }
  .app-main {
    margin: 0;
  }
  .topbar {
    height: 56px;
    padding: 0 17px;
    gap: 9px;
  }
  .breadcrumb {
    gap: 7px;
    flex: 1;
    font-size: 11px;
  }
  .topbar-actions {
    gap: 7px;
  }
  .topbar-actions .text-link {
    font-size: 10px;
  }
  .content {
    padding: 24px 18px;
  }
  .page-heading {
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 21px;
  }
  .page-heading p {
    font-size: 13px;
  }
  .page-heading h1 {
    font-size: 38px;
  }
  .page-heading > .button {
    margin-top: 0;
  }
  .welcome-strip {
    padding: 11px 13px;
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 21px;
  }
  .metric-row {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 24px;
  }
  .metric {
    padding: 15px !important;
  }
  .metric:nth-child(2) {
    border-right: 0;
  }
  .metric:nth-child(-n + 2) {
    border-bottom: 1px solid var(--border);
  }
  .metric-value {
    font-size: 30px;
  }
  .metric-label {
    font-size: 11px;
  }
  .thesis-card {
    display: block;
    padding: 19px;
  }
  .thesis-card h3 {
    margin: 10px 0;
  }
  .thesis-card footer {
    margin-top: 17px;
  }
  .section-heading h2 {
    font-size: 24px;
  }
  .brief-feature {
    padding: 22px;
  }
  .brief-feature h3 {
    font-size: 30px;
  }
  .brief-feature footer {
    flex-wrap: wrap;
    gap: 0;
  }
  .brief-feature .mini-meta {
    padding-top: 15px;
  }
  .brief-grid {
    gap: 14px;
  }
  .research-card {
    padding: 22px;
  }
  .research-card h2 {
    font-size: 28px;
  }
  .search-field {
    width: 100%;
  }
  .toolbar {
    gap: 12px;
  }
  .filters {
    gap: 5px;
  }
  .filter-button {
    padding: 7px 9px;
  }
  .dialog-body {
    padding: 24px 22px;
  }
  .dialog-body h1 {
    font-size: 32px;
  }
  dialog {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 24px);
  }
  .dialog-top {
    padding: 10px 17px;
  }
  .detail-grid,
  .field-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .detail-section {
    margin: 21px 0;
  }
  .detail-actions .button {
    font-size: 11px;
  }
  .source-library-item {
    gap: 12px;
  }
  .source-library-item .eyebrow {
    font-size: 8px;
  }
  .workspace-tabs {
    gap: 18px;
  }
  .workspace-tab {
    font-size: 11px;
  }
  .form-actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .page-footer {
    margin-top: 26px;
  }
  #toast {
    bottom: 18px;
    max-width: calc(100vw - 28px);
    width: max-content;
  }
  .company-table th,
  .company-table td {
    padding: 12px;
  }
  .company-table th:nth-child(3),
  .company-table td:nth-child(3) {
    display: none;
  }
  .workspace-notice {
    font-size: 11px;
  }
  .panel {
    padding: 21px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
}

.mobile-relationship {
  display: none;
}
@media (max-width: 600px) {
  .mobile-relationship {
    display: block;
    margin-top: 6px;
  }
  .mobile-relationship .pill {
    font-size: 8px;
    padding: 2px 5px;
  }
}

/* Clear first-visit hierarchy: one investigation, one primary action. */
.page-heading h1{font-size:clamp(30px,3.2vw,44px);line-height:1.15}
.page-heading{margin-bottom:28px}
.start-feature{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr);border:1px solid var(--border);border-top:3px solid var(--red);margin-bottom:24px}
.start-story{padding:32px 36px}.start-story h2{font:500 clamp(27px,2.5vw,36px)/1.2 Serif,serif;margin:14px 0 18px;letter-spacing:-.5px}.start-story>p{font-size:16px;max-width:610px;color:var(--muted);line-height:1.65}.start-reason{margin:24px 0;padding-left:16px;border-left:2px solid var(--green);max-width:600px}.start-reason strong{font-weight:500}.start-reason p{margin:6px 0;color:var(--muted);font-size:14px;line-height:1.65}.start-proof{display:block;margin-top:12px;font-size:12px;color:var(--muted)}
.start-guide{padding:32px;background:var(--surface);border-left:1px solid var(--border)}.start-guide h3{font:500 22px Serif,serif;margin:0 0 22px}.start-guide ol{padding-left:20px}.start-guide li{padding:0 0 22px 8px;color:var(--red)}.start-guide li strong{display:block;color:var(--ink);font-weight:500}.start-guide li span{display:block;margin-top:5px;color:var(--muted);font-size:14px;line-height:1.5}.start-guide>p{font-size:12px;color:var(--muted);border-top:1px solid var(--border);padding-top:16px}
.next-paths{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0}.next-paths a{position:relative;text-decoration:none;padding:18px 34px 18px 0;border-top:1px solid var(--border);color:var(--ink)}.next-paths a>span{font-weight:500;font-size:16px}.next-paths p{font-size:14px;color:var(--muted);margin:8px 0}.next-paths svg{width:18px;height:18px;position:absolute;top:21px;right:0}.next-paths a:hover>span{color:var(--red)}
.secondary-detail{border-top:1px solid var(--border);margin-top:20px;padding:18px 0}.secondary-detail summary{cursor:pointer;font-weight:500;font-size:15px}.secondary-detail summary span{font-weight:400;font-size:12px;color:var(--muted);margin-left:12px}.secondary-detail .signal-list{margin-top:20px}.session-detail{margin:0 0 24px;color:var(--muted);font-size:13px}.session-detail summary{cursor:pointer}.session-detail summary svg{width:14px;height:14px;vertical-align:middle;margin:0 6px}.session-detail p{max-width:720px;line-height:1.6}.workspace-tab:last-child{margin-left:auto;color:var(--muted)}
.brief-step{display:flex;gap:20px;border-top:1px solid var(--border);padding:22px 0}.brief-step>span{font:13px Mono,monospace;color:var(--red);padding-top:4px}.brief-step h2{font:500 24px Serif,serif;margin:0 0 10px}.brief-step p,.brief-step li{font-size:16px;line-height:1.65}.brief-step ul{padding-left:20px;margin:0}.brief-qualification{font-size:13px;color:var(--muted);margin-bottom:24px}.sidebar-note{font-size:12px}
@media(max-width:760px){.start-feature{grid-template-columns:1fr}.start-story{padding:24px}.start-guide{padding:24px;border-left:0;border-top:1px solid var(--border)}.start-guide ol{margin-bottom:0}.start-guide li{padding-bottom:16px}.next-paths{grid-template-columns:1fr;gap:0}.secondary-detail summary span{display:block;margin-left:0;margin-top:5px}.brief-step{gap:12px}}

/* Decision dashboard: dated evidence and an explicit next action. */
.decision-dashboard .page-heading { margin-bottom: 18px; }
.snapshot-status { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; font-size: 12px; color: var(--muted); margin-bottom: 22px; }
.snapshot-status>span:first-child { display: flex; align-items: center; gap: 7px; }
.snapshot-status svg { width: 15px; height: 15px; }
.decision-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--border); border-top: 3px solid var(--red); margin-bottom: 30px; background: var(--surface); }
.decision-metrics>button,.decision-metrics>div { display: flex; align-items: center; gap: 15px; padding: 22px; text-align: left; background: none; border: 0; border-right: 1px solid var(--border); color: var(--ink); }
.decision-metrics>:last-child { border-right: 0; }
.decision-metrics>button:hover { background: var(--paper); }
.decision-metrics strong { font: 500 38px/1 Serif,serif; }
.decision-metrics span { font-size: 13px; font-weight: 500; }
.decision-metrics small { display: block; font-size: 11px; font-weight: 400; color: var(--muted); margin-top: 5px; }
.decision-metrics svg { flex-shrink: 0; width: 16px; height: 16px; margin-left: auto; }
.decision-section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.decision-section-heading h2 { font: 500 25px/1.2 Serif,serif; margin: 0; }
.decision-section-heading p { font-size: 12px; color: var(--muted); margin: 7px 0 0; }
.decision-filters { display: flex; flex-wrap: wrap; gap: 5px; }
.decision-filters button { padding: 8px 10px; font-size: 11px; background: transparent; border: 1px solid var(--border); border-radius: 3px; color: var(--muted); }
.decision-filters button[aria-pressed=true] { border-color: var(--red); background: var(--red); color: #fff; }
.decision-filters span { margin-left: 5px; opacity: .75; }
.decision-table-head,.decision-row { display: grid; grid-template-columns: minmax(140px,.75fr) minmax(0,2fr) minmax(200px,1fr); gap: 24px; }
.decision-table-head { font: 10px Mono,monospace; letter-spacing: .7px; text-transform: uppercase; color: var(--muted); padding: 11px 18px; background: var(--surface); border-block: 1px solid var(--border); }
.decision-row { padding: 22px 18px; border-bottom: 1px solid var(--border); }
.decision-company .company-name-cell { gap: 9px; margin-bottom: 13px; }
.decision-company .company-mark { width: 29px; height: 29px; min-width: 29px; }
.decision-company .company-name { font-size: 15px; text-align: left; }
.decision-company .pill { font-size: 9px; }
.decision-date { display: block; font-size: 12px; margin: 13px 0 6px; color: var(--muted); }
.decision-company .small-label { font-size: 9px; }
.decision-change h3 { font: 500 20px/1.25 Serif,serif; margin: 0 0 9px; }
.decision-change p { font-size: 13px; line-height: 1.6; margin: 0 0 10px; color: var(--muted); }
.decision-change .decision-relevance { font-size: 12px; margin-bottom: 12px; }
.decision-relevance strong { color: var(--green); font-weight: 500; }
.decision-sources { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 11px; }
.decision-sources .text-link { font-size: 11px; }
.decision-sources svg { width: 12px; height: 12px; }
.decision-sources>span { color: var(--muted); }
.decision-next { border-left: 1px solid var(--border); padding-left: 20px; }
.decision-next .small-label { color: var(--green); font-size: 9px; }
.decision-next p { font-size: 13px; line-height: 1.6; margin: 8px 0 15px; }
.decision-next .button { color: var(--red); border-color: var(--red); }
.decision-draft-hint { display: block; font-size: 10px; color: var(--muted); margin-top: 8px; }
.dashboard-briefs { margin-top: 32px; }
.dashboard-brief-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.dashboard-brief-grid>button { padding: 20px; border: 1px solid var(--border); background: transparent; text-align: left; color: var(--ink); }
.dashboard-brief-grid>button:hover { background: var(--surface); border-color: var(--red); }
.dashboard-brief-grid .small-label { font-size: 9px; }
.dashboard-brief-grid h3 { font: 500 22px/1.3 Serif,serif; margin: 11px 0 18px; }
.dashboard-boundary { font-size: 12px; color: var(--muted); margin-top: 24px; line-height: 1.6; }
@media(max-width:1100px) {
  .decision-metrics>button,.decision-metrics>div { padding: 16px; gap: 10px; }
  .decision-table-head,.decision-row { grid-template-columns: 145px minmax(0,1fr); gap: 16px; }
  .decision-table-head>:last-child { display: none; }
  .decision-next { grid-column: 2; padding: 10px 0 0; border-left: 0; border-top: 1px solid var(--border); }
}
@media(max-width:650px) {
  .decision-metrics { grid-template-columns: 1fr; }
  .decision-metrics>button,.decision-metrics>div { border-right: 0; border-bottom: 1px solid var(--border); }
  .decision-metrics>:last-child { border-bottom: 0; }
  .decision-metrics strong { width: 32px; font-size: 30px; }
  .decision-table-head { display: none; }
  .decision-row { grid-template-columns: 1fr; padding: 22px 0; }
  .decision-company { display: flex; flex-wrap: wrap; gap: 7px 12px; align-items: center; }
  .decision-company .company-name-cell { margin: 0; }
  .decision-date { margin: 0; }
  .decision-company>.small-label { display: none; }
  .decision-next { grid-column: 1; }
  .dashboard-brief-grid { grid-template-columns: 1fr; }
}

/* Research opportunities lead with a plain-language investment question. */
.research-outcomes { display:flex; flex-wrap:wrap; gap:14px 32px; border-block:1px solid var(--border); padding:15px 0; margin:0 0 28px; color:var(--muted); font-size:12px; }
.research-outcomes b { color:var(--red); font:11px Mono,monospace; margin-right:8px; }
.opportunity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.opportunity-card { display:flex; flex-direction:column; min-width:0; padding:25px; border:1px solid var(--border); border-top:3px solid var(--green); background:var(--paper); }
.opportunity-card:nth-child(2) { border-top-color:var(--red); }
.opportunity-card:nth-child(3) { border-top-color:var(--ink); }
.opportunity-card>header { display:flex; align-items:center; gap:12px; margin-bottom:22px; }
.opportunity-icon { display:grid; place-items:center; width:36px; height:36px; background:var(--surface); border:1px solid var(--border); color:var(--green); }
.opportunity-icon svg { width:20px; height:20px; }
.opportunity-card .small-label { font-size:9px; color:var(--muted); }
.opportunity-card h2 { font:500 30px/1.15 Serif,serif; letter-spacing:-.5px; margin:0 0 15px; }
.opportunity-question { font:500 19px/1.4 Serif,serif; margin:0 0 15px; }
.opportunity-summary { font-size:13px; line-height:1.65; color:var(--muted); margin:0 0 24px; }
.opportunity-companies { margin-top:auto; padding:17px 0; border-top:1px solid var(--border); }
.opportunity-companies>div { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; }
.opportunity-companies button { display:inline-flex; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:3px; padding:5px 7px; color:var(--ink); font-size:11px; }
.opportunity-companies button:hover { border-color:var(--red); color:var(--red); }
.opportunity-companies .company-mark { width:20px; height:20px; min-width:20px; font-size:8px; }
.opportunity-companies .more-companies { background:transparent; }
.opportunity-card footer { border-top:1px solid var(--border); padding-top:17px; display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.opportunity-card footer>span { font-size:11px; color:var(--muted); }
.opportunity-card footer .button { min-height:40px; }
.opportunity-card .text-action { border:0; min-height:32px; padding:4px; color:var(--red); background:transparent; }
.opportunity-card .text-action:hover { text-decoration:underline; }
.research-caption { margin:18px 0 28px; font-size:12px; color:var(--muted); line-height:1.6; max-width:850px; }
.research-own-angle { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:23px 25px; background:var(--surface); border:1px solid var(--border); }
.research-own-angle h2 { font:500 23px/1.3 Serif,serif; margin:0 0 5px; }
.research-own-angle p { font-size:13px; color:var(--muted); margin:0; }
.research-own-angle .button { flex-shrink:0; }
.brief-investment-question { background:var(--surface); border-left:3px solid var(--green); padding:15px 18px; font:500 22px/1.4 Serif,serif; margin:20px 0; }
.brief-investment-question span { display:block; font:10px Mono,monospace; text-transform:uppercase; color:var(--green); margin-bottom:8px; }
.dashboard-brief-grid h3 { margin-bottom:10px; }
.dashboard-brief-question { font-size:13px; color:var(--muted); line-height:1.5; margin:0 0 18px; }
@media(max-width:1150px) { .opportunity-grid { grid-template-columns:1fr; }.opportunity-card { padding:24px; }.opportunity-card>header { margin-bottom:14px; }.opportunity-card h2 { font-size:28px; }.opportunity-card footer { flex-flow:row wrap; align-items:center; }.opportunity-card footer>span { margin-right:auto; }.opportunity-summary { max-width:700px; margin-bottom:18px; } }
@media(max-width:650px) { .research-outcomes { gap:10px; flex-direction:column; }.opportunity-card { padding:22px; }.opportunity-card footer { flex-direction:column; align-items:stretch; }.research-own-angle { align-items:flex-start; flex-direction:column; padding:22px; } }
.opportunity-card>header h2 { font-size:27px; margin:0; letter-spacing:-.6px; }
.opportunity-card>header { gap:10px; }
.opportunity-icon { flex-shrink:0; width:30px; height:30px; }
.opportunity-icon svg { width:17px; height:17px; }

/* Firm work areas use real public examples and explicitly labeled workflow previews. */
.sidebar { overflow-y:auto; }
.sidebar>.brand,.sidebar>nav,.sidebar>.nav-label,.sidebar>.sidebar-bottom { flex-shrink:0; }
.sidebar .brand { padding-bottom:14px; }
.sidebar .nav-label { padding-top:12px; }
.sidebar .nav-item { font-size:13px; padding:9px 11px; gap:9px; line-height:1.4; }
.sidebar .sidebar-note { margin-top:12px; padding-top:12px; }
.sidebar .sidebar-bottom { padding-top:18px; }
.firm-context { display:flex; align-items:flex-start; gap:11px; padding:13px 16px; border:1px solid var(--border); background:var(--surface); font-size:12px; line-height:1.6; color:var(--muted); margin-bottom:24px; }
.firm-context svg { width:16px; height:16px; margin-top:2px; color:var(--green); }
.firm-flow { display:flex; flex-wrap:wrap; gap:10px 28px; padding:0 0 22px; font:11px Mono,monospace; color:var(--green); }
.firm-section-title { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin:28px 0 16px; }
.firm-section-title h2 { font:500 25px/1.25 Serif,serif; }
.firm-section-title>span { font-size:11px; color:var(--muted); }
.firm-card-grid,.firm-source-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.firm-two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.firm-card { display:flex; flex-direction:column; align-items:flex-start; border:1px solid var(--border); padding:24px; min-width:0; }
.firm-card-top { display:flex; align-items:center; justify-content:space-between; width:100%; gap:12px; margin-bottom:20px; color:var(--green); }
.firm-status { display:inline-block; padding:4px 7px; border:1px solid var(--border); background:var(--surface); font:9px Mono,monospace; color:var(--muted); }
.firm-card h2 { font:500 26px/1.25 Serif,serif; margin-bottom:12px; }
.firm-card h3 { font:500 21px/1.25 Serif,serif; margin-bottom:12px; }
.firm-card p { font-size:13px; line-height:1.65; }
.firm-card>p { margin-bottom:18px; }
.firm-card dl { font-size:12px; line-height:1.5; margin:0 0 22px; }
.firm-card dt { font:10px Mono,monospace; color:var(--green); margin-top:15px; }
.firm-card dd { margin:5px 0 0; color:var(--muted); }
.firm-card>.button { margin-top:auto; }
.firm-card.compact { padding:20px; }
.firm-card.compact .firm-status { margin-bottom:13px; }
.firm-source-links { display:flex; flex-wrap:wrap; gap:8px 14px; font-size:12px; margin:0 0 18px; }
.firm-source-links .text-link { font-size:11px; }
.firm-source-links svg { width:12px; height:12px; }
.firm-candidate-list { border-top:1px solid var(--border); }
.firm-candidate-list>article { display:grid; grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) auto; align-items:center; gap:20px; padding:18px 0; border-bottom:1px solid var(--border); }
.firm-candidate-list h3 { font-size:15px; }
.firm-candidate-list .company-name-cell span:not(.company-mark) { font-size:11px; color:var(--muted); }
.firm-candidate-list p { font-size:13px; }
.firm-candidate-list>article>div:last-child { display:flex; flex-wrap:wrap; gap:8px; }
.firm-selector { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:0 0 23px; }
.firm-selector label { font-size:13px; font-weight:500; }
.firm-selector select { padding:9px 35px 9px 12px; border:1px solid var(--border); border-radius:3px; background:var(--surface); color:var(--ink); font:inherit; font-size:13px; }
.firm-wide-panel { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:24px; margin:26px 0; border:1px solid var(--border); background:var(--surface); }
.firm-wide-panel h2 { font:500 24px/1.25 Serif,serif; margin-bottom:8px; }
.firm-wide-panel p { font-size:13px; line-height:1.65; max-width:730px; }
.firm-wide-panel>.button { flex-shrink:0; }
.firm-review-tags { display:flex; flex-wrap:wrap; gap:8px; min-width:190px; }
.firm-review-tags span { padding:6px 9px; border:1px solid var(--border); font-size:11px; color:var(--green); }
.firm-small-copy { font-size:12px; line-height:1.65; color:var(--muted); margin:16px 0; }
.firm-table-wrap { overflow-x:auto; border:1px solid var(--border); }
.firm-table { border-collapse:collapse; width:100%; font-size:13px; min-width:660px; }
.firm-table th { background:var(--surface); color:var(--muted); text-align:left; font:10px Mono,monospace; padding:14px 16px; }
.firm-table td { padding:17px 16px; border-top:1px solid var(--border); color:var(--muted); }
.firm-table .company-name { font-size:14px; }
.firm-missing { font-size:11px; }
.firm-question-list { padding-left:20px; margin:5px 0 25px; line-height:1.65; font-size:15px; }
.firm-question-list li { padding:0 0 15px 4px; }
.firm-card .firm-fine-print { font-size:11px; margin:12px 0 0; }
.firm-empty { padding:28px; border:1px dashed var(--border); }
.firm-empty h3 { font:500 23px Serif,serif; margin-bottom:8px; }
.firm-empty p { font-size:13px; line-height:1.6; }
.firm-work-list article { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; border-top:1px solid var(--border); }
.firm-work-list h3 { font-size:15px; margin-bottom:6px; }
.firm-work-list p { font-size:12px; }
.firm-preview-body { white-space:pre-wrap; overflow-wrap:anywhere; font:13px/1.7 Sans,sans-serif; background:var(--surface); border:1px solid var(--border); padding:22px; margin:22px 0; }
@media(max-width:1150px) { .firm-card-grid,.firm-source-grid { grid-template-columns:1fr; }.firm-candidate-list>article { grid-template-columns:1fr 1fr; }.firm-candidate-list>article>div:last-child { grid-column:1/-1; }.firm-card dl { display:grid; grid-template-columns:85px minmax(0,1fr); gap:12px; }.firm-card dt,.firm-card dd { margin:0; }.firm-card>p { margin-bottom:20px; } }
@media(max-width:650px) { .firm-two-column { grid-template-columns:1fr; }.firm-wide-panel { flex-direction:column; align-items:flex-start; padding:20px; }.firm-candidate-list>article { grid-template-columns:1fr; gap:12px; }.firm-candidate-list>article>div:last-child { grid-column:1; }.firm-card { padding:20px; }.firm-preview-body { padding:15px; }.firm-selector select { max-width:100%; } }

/* Source-linked market intelligence. */
.sample-portfolio{margin:24px 0 40px}.sample-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.sample-heading h2{font:500 28px Serif,serif;margin:8px 0}.sample-heading p{font-size:13px;color:var(--muted);margin:0}.sample-label{display:inline-block;color:var(--green);background:#e4e9df;border:1px solid #ccd6c6;padding:5px 9px;font:11px Mono,monospace;text-transform:uppercase;letter-spacing:.06em}.sample-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border);background:var(--panel)}.sample-metrics>div{padding:24px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.sample-metrics>div:last-child{border:0}.sample-metrics span{font-size:13px;color:var(--muted)}.sample-metrics strong{font:500 37px Serif,serif;letter-spacing:-.03em}.sample-metrics em{font:14px Sans,sans-serif;font-style:normal;letter-spacing:0}.sample-metrics small{font-size:11px;color:var(--muted);line-height:1.5}.sample-charts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:20px}.sample-chart{padding:24px;border:1px solid var(--border)}.sample-chart-title h3{font:500 23px Serif,serif;margin:0 0 6px}.sample-chart-title>span{font-size:11px;color:var(--muted)}.sample-bars{display:flex;align-items:flex-end;justify-content:space-around;gap:20px;margin-top:25px;height:158px}.sample-bars>div{display:flex;flex:1;flex-direction:column;align-items:center;gap:9px;font-size:12px}.sample-bar{display:block;width:100%;max-width:64px;background:#7c967c;border-radius:3px 3px 0 0}.sample-bars>div:last-child .sample-bar{background:var(--green)}.sample-bars small{color:var(--muted)}.sample-allocation{margin-top:28px}.sample-allocation>div{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:13px;margin-bottom:20px}.sample-track{grid-column:1/-1;height:7px;background:#e6e2d8}.sample-fill{display:block;height:7px;background:var(--green)}.sample-tone-1{background:#a68a5c}.sample-tone-2{background:var(--red)}.sample-attention{padding-top:18px}.sample-attention>span{font:11px Mono,monospace;color:var(--red)}.sample-attention h4{font-size:14px;margin:5px 0}.sample-attention p{font-size:12px;color:var(--muted);margin:0;line-height:1.5}.sample-cell-note{display:block;color:var(--muted);font-size:11px;margin-top:6px}.sample-growth{color:var(--green)}.sample-runway-alert{color:var(--red);background:#f0e3db;padding:5px 8px;white-space:nowrap}.sample-next{max-width:230px;font-size:12px;line-height:1.5}.sample-compact{padding:24px;background:#f1eee5;border-top:3px solid var(--green)}.sample-compact .sample-metrics{border:0;background:transparent}.sample-compact .sample-metrics>div{padding:12px 24px 4px}.sample-compact .sample-metrics>div:first-child{padding-left:0}.sample-compact .sample-heading h2{font-size:25px}
@media(max-width:1150px){.sample-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sample-metrics>div:nth-child(2){border-right:0}.sample-metrics>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.sample-charts{grid-template-columns:1fr 1fr}.sample-charts>section:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:15px}.sample-charts>section:last-child .sample-chart-title{grid-column:1/-1}.sample-compact .sample-metrics>div{padding:16px}}
@media(max-width:650px){.sample-heading{align-items:flex-start;flex-direction:column}.sample-metrics>div,.sample-compact .sample-metrics>div{padding:16px 12px}.sample-metrics strong{font-size:30px}.sample-metrics span{font-size:12px}.sample-charts{grid-template-columns:1fr}.sample-charts>section:last-child{display:block}.sample-compact{padding:18px}.sample-heading h2{font-size:25px}.sample-chart{padding:20px}}

.market-charts{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-top:20px}.market-funding-bars{margin-top:24px}.market-funding-bars>div{display:grid;grid-template-columns:1fr auto;gap:7px;margin-bottom:20px;font-size:13px}.market-funding-bars small{grid-column:1/-1;color:var(--muted);font-size:11px}.market-funding-bars .sample-track{height:6px}.market-funding-bars .sample-fill{height:6px;min-width:2px}.market-thesis{padding:24px 0;border-bottom:1px solid var(--border)}.market-thesis h4{font:500 23px Serif,serif;margin:10px 0}.market-thesis p{font-size:13px;color:var(--muted);margin:0}.market-candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.market-candidate-grid h3{font:500 28px Serif,serif;margin:18px 0 0}.market-round{display:block;font:500 36px Serif,serif;margin-top:22px}.market-question{border-left:2px solid var(--green);padding-left:14px;margin:22px 0}.market-question p{font-size:14px!important;margin-bottom:0}.market-candidate-grid .firm-card-top{flex-wrap:wrap}.market-candidate-grid .firm-source-links{margin-top:auto}
@media(max-width:1100px){.market-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.market-charts,.market-candidate-grid{grid-template-columns:1fr}}
