:root {
  --demand-navy: #123260;
  --demand-ink: #172235;
  --demand-rust: #a8482b;
  --demand-gold: #d9ad55;
  --demand-paper: #f5f0e6;
  --demand-white: #fffdf8;
  --demand-line: #d7d0c3;
  --demand-muted: #667085;
  --demand-good: #2f6e55;
  --demand-warn: #99661f;
  --demand-bad: #a23a2a;
}

.demand-page { background: var(--demand-paper); color: var(--demand-ink); }
.demand-page .app-content { min-width: 0; }
.demand-masthead {
  min-height: 176px;
  padding: 38px clamp(24px, 5vw, 72px) 28px;
  color: #fff;
  background: var(--demand-navy);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
}
.demand-masthead h1 { margin: 5px 0 0; color: #fff; font: 600 clamp(44px, 7vw, 76px)/.95 "Fraunces", serif; letter-spacing: -.045em; }
.eyebrow, .summary-index {
  margin: 0;
  font: 600 11px/1.4 "JetBrains Mono", monospace;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.eyebrow { color: #e9c981; }
.masthead-status {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #e9edf4;
}
.status-light { width: 9px; height: 9px; border-radius: 50%; background: var(--demand-gold); box-shadow: 0 0 0 5px rgb(217 173 85 / 16%); }
.status-light.good { background: #75b995; }
.status-light.bad { background: #e07d68; }

.workspace-intro {
  padding: 44px clamp(24px, 5vw, 72px) 38px;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(240px, .65fr);
  gap: clamp(36px, 7vw, 100px);
  align-items: end;
  background: var(--demand-paper);
}
.workspace-intro h2, .view-heading h2 { margin: 7px 0 12px; font: 600 clamp(30px, 4.3vw, 52px)/1.04 "Fraunces", serif; letter-spacing: -.035em; }
.workspace-intro > div > p:last-child { max-width: 730px; margin: 0; color: #4d596b; font: 400 18px/1.65 "Source Serif 4", serif; }
.authority-note { border-left: 3px solid var(--demand-rust); padding: 4px 0 4px 18px; display: grid; gap: 6px; }
.authority-note strong { font: 600 13px "Inter", sans-serif; }
.authority-note span { color: var(--demand-muted); font-size: 13px; line-height: 1.55; }

.workspace-tabs {
  padding: 0 clamp(24px, 5vw, 72px);
  display: flex;
  overflow-x: auto;
  border-bottom: 1px solid var(--demand-line);
  background: var(--demand-paper);
}
.workspace-tabs a {
  color: #596477;
  text-decoration: none;
  min-height: 52px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
  font-size: 13px;
  font-weight: 650;
}
.workspace-tabs a:first-child { padding-left: 0; }
.workspace-tabs a[aria-current="page"] { color: var(--demand-ink); border-color: var(--demand-rust); }
.workspace-tabs a:focus-visible, button:focus-visible, select:focus-visible, .engine-link:focus-visible {
  outline: 3px solid #e7b846;
  outline-offset: 3px;
}

.source-ledger {
  padding: 16px clamp(24px, 5vw, 72px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 1px;
  background: #d5cec0;
  border-bottom: 1px solid var(--demand-line);
}
.source-ledger > div { min-height: 54px; padding: 8px 14px; background: #ebe5da; display: grid; align-content: center; gap: 3px; }
.source-ledger span { color: #71798a; font: 600 10px "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.source-ledger strong { font-size: 12px; font-weight: 600; }
.source-ledger small { margin-top: 3px; color: #747b87; font-size: 10px; line-height: 1.35; }
.source-ledger button, .filter-bar button {
  min-height: 44px;
  border: 1px solid var(--demand-navy);
  background: var(--demand-navy);
  color: #fff;
  padding: 0 16px;
  font-weight: 650;
  cursor: pointer;
}

.view-panel { padding: 46px clamp(24px, 5vw, 72px) 80px; }
.view-panel[hidden] { display: none; }
.view-heading { display: flex; justify-content: space-between; gap: 38px; align-items: end; margin-bottom: 34px; }
.view-heading p { max-width: 460px; margin: 0 0 8px; color: var(--demand-muted); line-height: 1.55; }
.kicker { margin: 0; font: 600 11px/1.4 "JetBrains Mono", monospace; letter-spacing: .11em; text-transform: uppercase; }
.rust { color: var(--demand-rust); }

.needs-band { border-top: 4px solid var(--demand-rust); border-bottom: 1px solid var(--demand-line); padding: 22px 0; display: grid; grid-template-columns: 190px 1fr; gap: 28px; }
.section-label { display: flex; align-items: baseline; gap: 12px; }
.section-label span { color: var(--demand-rust); font: 600 11px "JetBrains Mono", monospace; }
.section-label h3 { margin: 0; font: 650 15px "Inter", sans-serif; }
.decision-list { display: grid; gap: 10px; }
.decision-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; }
.decision-item strong { display: block; font: 600 20px/1.3 "Fraunces", serif; }
.decision-item p { margin: 4px 0 0; color: var(--demand-muted); font-size: 13px; }
.decision-item span { color: var(--demand-rust); font: 600 11px "JetBrains Mono", monospace; text-transform: uppercase; }
.loading-copy { color: var(--demand-muted); margin: 0; }

.overview-grid { margin: 38px 0; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--demand-line); background: var(--demand-line); gap: 1px; }
.summary-block { min-height: 280px; padding: 25px; display: flex; flex-direction: column; background: var(--demand-white); }
.summary-index { color: var(--demand-rust); }
.summary-block > strong { margin-top: 24px; font: 600 58px/1 "Fraunces", serif; letter-spacing: -.04em; }
.summary-block h3 { margin: 10px 0 8px; font-size: 15px; }
.summary-block p { margin: 0; color: var(--demand-muted); font-size: 13px; line-height: 1.55; }
.summary-block a { margin-top: auto; color: var(--demand-navy); font-size: 13px; font-weight: 650; text-decoration: none; }
.briefing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.briefing-grid section { border-top: 1px solid var(--demand-ink); padding-top: 16px; }
.numbered-list { margin: 20px 0 0; padding: 0; list-style: none; counter-reset: briefing; }
.numbered-list li { counter-increment: briefing; padding: 13px 0; border-top: 1px solid var(--demand-line); display: grid; grid-template-columns: 28px 1fr; gap: 9px; font-size: 13px; line-height: 1.5; }
.numbered-list li::before { content: counter(briefing, decimal-leading-zero); color: var(--demand-rust); font: 500 10px "JetBrains Mono", monospace; }

.metric-strip, .crm-counts { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--demand-line); margin-bottom: 30px; }
.metric-strip > div, .crm-counts > div { padding: 18px; border-right: 1px solid var(--demand-line); background: var(--demand-white); }
.metric-strip > div:last-child, .crm-counts > div:last-child { border: 0; }
.metric-strip span, .crm-counts span { display: block; color: var(--demand-muted); font-size: 11px; }
.metric-strip strong, .crm-counts strong { display: block; margin-top: 7px; font: 600 28px "Fraunces", serif; }
.table-wrap { overflow-x: auto; border: 1px solid var(--demand-line); background: var(--demand-white); }
table { width: 100%; min-width: 850px; border-collapse: collapse; }
th { padding: 13px 16px; text-align: left; color: #6e7685; background: #ebe5da; font: 600 10px "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
td { padding: 16px; border-top: 1px solid var(--demand-line); vertical-align: top; font-size: 13px; line-height: 1.5; }
td strong { display: block; margin-bottom: 3px; }
.status-tag, .severity-tag { display: inline-flex; min-height: 26px; align-items: center; padding: 0 8px; border: 1px solid currentColor; font: 600 10px "JetBrains Mono", monospace; text-transform: uppercase; }
.status-active { color: var(--demand-good); }
.status-parked, .severity-high { color: var(--demand-warn); }
.severity-critical { color: var(--demand-bad); }
.severity-medium { color: var(--demand-navy); }

.scan-read { margin-bottom: 24px; padding: 18px 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--demand-ink); border-bottom: 1px solid var(--demand-line); }
.scan-read div { padding-right: 20px; }
.scan-read span { display: block; color: var(--demand-muted); font-size: 11px; }
.scan-read strong { display: block; margin-top: 5px; font-size: 15px; }
.filter-bar { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)) auto; gap: 10px; align-items: end; margin: 24px 0 14px; }
.filter-bar label { color: var(--demand-muted); font-size: 11px; font-weight: 650; }
.filter-bar select { display: block; width: 100%; min-height: 44px; margin-top: 6px; padding: 0 34px 0 10px; border: 1px solid #bbb3a6; background: var(--demand-white); color: var(--demand-ink); }
.result-line { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 18px; color: var(--demand-muted); font-size: 12px; }
.result-line strong { color: var(--demand-ink); }
.opportunity-list { border-top: 3px solid var(--demand-navy); }
.opportunity-row { padding: 20px 0; border-bottom: 1px solid var(--demand-line); display: grid; grid-template-columns: 62px minmax(180px, .65fr) minmax(280px, 1.5fr) 150px; gap: 22px; }
.opportunity-rank { font: 600 30px "Fraunces", serif; color: #9a9387; }
.opportunity-row h3 { margin: 7px 0 4px; font-size: 15px; }
.opportunity-row a { color: var(--demand-navy); font-size: 11px; overflow-wrap: anywhere; }
.opportunity-evidence p { margin: 0 0 8px; font-size: 13px; line-height: 1.5; }
.opportunity-evidence strong { font-size: 12px; }
.opportunity-owner { color: var(--demand-muted); font-size: 11px; line-height: 1.5; }
.empty-filter { padding: 34px 0; color: var(--demand-muted); }

.coverage-section { border-top: 3px solid var(--demand-navy); padding-top: 18px; }
.business-unit-rows { margin-top: 18px; }
.business-unit-row { min-height: 62px; border-top: 1px solid var(--demand-line); display: grid; grid-template-columns: minmax(180px, 1fr) 150px 100px auto; gap: 18px; align-items: center; font-size: 13px; }
.business-unit-row a { color: var(--demand-navy); font-weight: 650; text-decoration: none; }
.record-boundary, .boundary-banner { margin-top: 38px; padding: 22px; border: 1px solid var(--demand-line); background: #ebe5da; }
.record-boundary { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.record-boundary > div { display: flex; gap: 16px; align-items: flex-start; }
.record-boundary p, .boundary-banner p { margin: 5px 0 0; color: var(--demand-muted); font-size: 13px; line-height: 1.55; }
.boundary-mark { color: var(--demand-rust); font-size: 22px; }
.record-boundary a, .engine-link { min-height: 44px; display: inline-flex; align-items: center; color: #fff; background: var(--demand-navy); padding: 0 16px; text-decoration: none; white-space: nowrap; font-size: 12px; font-weight: 650; }
.boundary-banner { margin: 0 0 22px; border-left: 4px solid var(--demand-gold); }
.kanban-filters { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 18px; }
.kanban-filters span { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid var(--demand-line); color: var(--demand-muted); font-size: 11px; }
.kanban-board { display: grid; grid-template-columns: repeat(6, minmax(160px, 1fr)); overflow-x: auto; border-top: 3px solid var(--demand-navy); margin-bottom: 24px; }
.kanban-column { min-height: 230px; padding: 15px; border-right: 1px solid var(--demand-line); background: var(--demand-white); }
.kanban-column h3 { margin: 0; font-size: 12px; }
.kanban-column span { display: block; margin-top: 9px; color: var(--demand-muted); font-size: 11px; }
.muted-table { margin-bottom: 24px; }
.engine-link { margin-top: 4px; }

@media (max-width: 1000px) {
  .source-ledger { grid-template-columns: repeat(3, 1fr); }
  .source-ledger button { grid-column: 1 / -1; }
  .overview-grid { grid-template-columns: 1fr; }
  .summary-block { min-height: 230px; }
  .filter-bar { grid-template-columns: repeat(2, 1fr); }
  .filter-bar button { grid-column: 1 / -1; }
  .opportunity-row { grid-template-columns: 50px 1fr 1.4fr; }
  .opportunity-owner { grid-column: 2 / -1; }
}

@media (max-width: 700px) {
  .demand-masthead { min-height: 142px; padding: 26px 20px 22px; align-items: flex-start; flex-direction: column; }
  .demand-masthead h1 { font-size: 48px; }
  .workspace-intro { padding: 32px 20px 28px; grid-template-columns: 1fr; gap: 24px; }
  .workspace-intro h2, .view-heading h2 { font-size: 35px; }
  .workspace-tabs { padding: 0 20px; }
  .workspace-tabs a { min-height: 48px; padding: 0 14px; }
  .source-ledger { padding: 12px 20px; grid-template-columns: 1fr; }
  .source-ledger button { grid-column: auto; }
  .view-panel { padding: 34px 20px 58px; }
  .view-heading { align-items: flex-start; flex-direction: column; gap: 4px; margin-bottom: 26px; }
  .needs-band { grid-template-columns: 1fr; gap: 18px; }
  .decision-item { grid-template-columns: 1fr; gap: 7px; }
  .overview-grid { margin: 28px 0; }
  .summary-block { min-height: 220px; }
  .briefing-grid { grid-template-columns: 1fr; gap: 34px; }
  .metric-strip, .crm-counts { grid-template-columns: repeat(2, 1fr); }
  .metric-strip > div:nth-child(2), .crm-counts > div:nth-child(2) { border-right: 0; }
  .metric-strip > div:nth-child(n+3), .crm-counts > div:nth-child(n+3) { border-top: 1px solid var(--demand-line); }
  .scan-read { grid-template-columns: repeat(2, 1fr); gap: 16px 0; }
  .filter-bar { grid-template-columns: 1fr; }
  .filter-bar button { grid-column: auto; }
  .result-line { align-items: flex-start; flex-direction: column; padding: 10px 0; }
  .opportunity-row { grid-template-columns: 42px 1fr; gap: 12px; }
  .opportunity-evidence, .opportunity-owner { grid-column: 2; }
  .business-unit-row { grid-template-columns: 1fr auto; padding: 15px 0; }
  .business-unit-row span:nth-child(3) { grid-column: 1; }
  .record-boundary { align-items: stretch; flex-direction: column; }
  .record-boundary a, .engine-link { justify-content: center; white-space: normal; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
