:root {
  color-scheme: dark;
  --black: #06080c;
  --charcoal: #0e1117;
  --charcoal-2: #141821;
  --charcoal-3: #1a1f2b;
  --line: #232938;
  --line-soft: #1c2230;
  --navy: #1e3a5f;
  --navy-bright: #2d5a8c;
  --text: #e6e8ec;
  --text-dim: #8a9099;
  --text-faint: #525866;
  --alert: #6b8aa8;
  --cta: #d24a37;
  --cta-soft: rgba(210, 74, 55, 0.12);
  --cat-cyber: #2d5a8c;
  --cat-osint: #8a9099;
  --cat-terror: #e6e8ec;
  /* Gap-severity hierarchy: muted gold = notable drop, burnt amber = hard gap.
     Both stay in the warm family so they read as related findings rather
     than as system errors (which a pure red would imply on this navy UI). */
  --gap-notable: #c9a961;
  --gap-notable-soft: rgba(201, 169, 97, 0.14);
  --gap-hard: #cf6e3a;
  --gap-hard-soft: rgba(207, 110, 58, 0.18);
}

[data-theme="light"] {
  color-scheme: light;
  --black: #f6f7f9;
  --charcoal: #eef0f3;
  --charcoal-2: #e4e7ec;
  --charcoal-3: #ffffff;
  --line: #c4c9d2;
  --line-soft: #d6dae0;
  --navy: #1e3a5f;
  --navy-bright: #1e4a7c;
  --text: #0e1117;
  --text-dim: #525866;
  --text-faint: #8a9099;
  --alert: #4a6a88;
  --cta: #b03022;
  --cta-soft: rgba(176, 48, 34, 0.10);
  --cat-cyber: #1e4a7c;
  --cat-osint: #525866;
  --cat-terror: #0e1117;
  /* Light-theme gap severities: darker shades for legibility on light bg. */
  --gap-notable: #8f7530;
  --gap-notable-soft: rgba(143, 117, 48, 0.14);
  --gap-hard: #a85322;
  --gap-hard-soft: rgba(168, 83, 34, 0.16);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background: var(--black); color: var(--text); }
body {
  font-family: 'Inter', -apple-system, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  min-height: 100vh;
  display: flex; flex-direction: column;
}
a { color: inherit; text-decoration: none; }

/* ── Top ribbon ─────────────────────────────────────────────── */
.ribbon {
  background: var(--charcoal-2);
  border-bottom: 1px solid var(--line);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  padding: 8px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ribbon .l { color: var(--alert); }
.ribbon .r { color: var(--text-dim); }

/* ── Header ─────────────────────────────────────────────────── */
header.top {
  border-bottom: 1px solid var(--line);
  padding: 28px 24px 24px;
  background: linear-gradient(180deg, var(--charcoal) 0%, var(--black) 100%);
}
.top-row { max-width: 1280px; margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.brand h1 {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.08em;
  color: var(--text);
}
.brand h1 a { color: inherit; }
.brand-wordmark { margin: 0; line-height: 0; }
.brand-wordmark a { display: inline-block; line-height: 0; }
.brand-wordmark img { display: block; height: 88px; width: auto; }
.brand-wordmark .wordmark-light { display: none; }
[data-theme="light"] .brand-wordmark .wordmark-dark { display: none; }
[data-theme="light"] .brand-wordmark .wordmark-light { display: block; }
@media (max-width: 720px) {
  .brand-wordmark img { height: 64px; }
}
.brand .subtitle {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  margin-top: 6px;
}
.meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-dim);
  display: flex;
  gap: 18px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.meta .lbl { color: var(--text-faint); }
.meta .dot { color: var(--line); }
.meta a.signin {
  color: var(--navy-bright);
  border: 1px solid rgba(45, 90, 140, 0.4);
  padding: 4px 10px;
  letter-spacing: 0.18em;
  font-size: 10px;
}
.meta a.signin:hover { background: rgba(45, 90, 140, 0.1); color: var(--text); }
.meta button.theme-toggle {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-dim);
  background: transparent;
  border: 1px solid var(--line);
  padding: 4px 10px;
  cursor: pointer;
  text-transform: uppercase;
}
.meta button.theme-toggle:hover { color: var(--text); border-color: var(--navy-bright); }

/* ── Main ───────────────────────────────────────────────────── */
main {
  flex: 1;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 32px 24px 48px;
}

.section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
}
.ai-twin { margin-bottom: 40px; }
.ai-twin-frame {
  max-width: 760px;
  margin: 0 auto;
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
  background: var(--charcoal);
}

/* PAID Framework section ─────────────────────────────────── */
.paid { margin-bottom: 48px; }
.paid-lede {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-dim);
  margin: 0 0 20px;
}
.paid-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.paid-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "letter name"
    "text   text";
  column-gap: 16px;
  row-gap: 10px;
  align-items: end;
  padding: 22px 24px;
  background: linear-gradient(135deg, rgba(212, 134, 31, 0.06) 0%, rgba(177, 74, 24, 0.05) 60%, rgba(45, 90, 140, 0.04) 100%);
  border: 1px solid var(--line);
  border-left: 3px solid;
  border-image: linear-gradient(180deg, #e8b94a 0%, #d4861f 50%, #b14a18 100%) 1;
  border-radius: 4px;
}
.paid-letter {
  grid-area: letter;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: 56px;
  line-height: 0.85;
  background: linear-gradient(180deg, #e8b94a 0%, #d4861f 50%, #b14a18 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  width: 48px;
  text-align: center;
}
.paid-name {
  grid-area: name;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text);
  margin: 0 0 6px;
  font-weight: 600;
}
.paid-text {
  grid-area: text;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-dim);
  margin: 0;
}
@media (max-width: 760px) {
  .paid-grid { grid-template-columns: 1fr; }
  .paid-letter { font-size: 44px; width: 36px; }
}
.section-head h2 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-dim);
  font-weight: 500;
}
.section-head .count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-faint);
  letter-spacing: 0.18em;
  margin-left: auto;
}

/* ── Card grid (dashboard) ──────────────────────────────────── */
.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line-soft);
  border: 1px solid var(--line-soft);
}
@media (max-width: 980px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grid { grid-template-columns: 1fr; } }

.card {
  background: var(--charcoal);
  padding: 26px 24px 22px;
  display: flex; flex-direction: column;
  gap: 12px;
  transition: background 0.12s ease;
  cursor: pointer;
  border: none;
  text-align: left;
  color: inherit;
  position: relative;
  min-height: 220px;
}
.card:hover { background: var(--charcoal-2); }
.card:focus { outline: 1px solid var(--navy-bright); outline-offset: -2px; }

.card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.card-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
}
.card-status {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  padding: 3px 7px;
  border: 1px solid var(--line);
  color: var(--text-dim);
}
.card-status.scaffold { color: var(--alert); border-color: rgba(107, 138, 168, 0.3); }
.card-status.online { color: var(--navy-bright); border-color: rgba(45, 90, 140, 0.4); }

.card h3 {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.02em;
  color: var(--text);
  line-height: 1.3;
}
.card-sub {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-top: -6px;
}
.card p {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-dim);
  margin-top: auto;
}
.card-cta {
  margin-top: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
  display: flex;
  justify-content: space-between;
  padding-top: 12px;
  border-top: 1px solid var(--line-soft);
}
.card:hover .card-cta { color: var(--text); }
.card-cta .arrow { color: var(--text-faint); }
.card:hover .card-cta .arrow { color: var(--navy-bright); }
.card-cta-soon { color: #d4861f; }
.card-soon:hover .card-cta-soon { color: #d4861f; }

/* ── Coming Soon cards (mixed inline with active modules) ──── */
/* Coming-soon cards look identical to active cards. The only distinction
   is the amber COMING SOON line in the card footer (replacing OPEN MODULE)
   and the absence of the clickable hover background change. */
.card-soon { cursor: default; }
.card-soon:hover { background: var(--charcoal); }

/* ── Footer ─────────────────────────────────────────────────── */
footer {
  border-top: 1px solid var(--line);
  padding: 18px 24px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  display: flex;
  justify-content: space-between;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}
footer .l, footer .r { display: flex; gap: 14px; }

.blink { animation: blink 1.4s infinite; }
@keyframes blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0.2; } }

/* ── Ticker ─────────────────────────────────────────────────── */
.ticker {
  background: var(--charcoal);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: stretch;
  height: 36px;
  overflow: hidden;
}
.ticker-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  padding: 0 16px;
  display: flex; align-items: center; gap: 8px;
  border-right: 1px solid var(--line);
  background: var(--charcoal-2);
  flex-shrink: 0;
}
.ticker-label .pulse {
  width: 6px; height: 6px;
  background: var(--navy-bright);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(45, 90, 140, 0.6);
  animation: blink 1.6s infinite;
}
.ticker-track {
  flex: 1;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
}
.ticker-content {
  display: flex;
  gap: 0;
  animation: ticker-scroll 240s linear infinite;
  white-space: nowrap;
  will-change: transform;
}
.ticker-content:hover { animation-play-state: paused; }
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0 24px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text-dim);
  border-right: 1px solid var(--line-soft);
  flex-shrink: 0;
  transition: background 0.12s ease;
}
.ticker-item:hover { background: var(--charcoal-2); color: var(--text); }
.ticker-item .ts {
  color: var(--text-faint);
  font-size: 10px;
  letter-spacing: 0.1em;
}
.ticker-item .cat {
  font-size: 9px;
  letter-spacing: 0.18em;
  padding: 2px 6px;
  border: 1px solid var(--line);
  font-weight: 500;
}
.ticker-item .cat-cyber  { color: var(--cat-cyber);  border-color: rgba(45, 90, 140, 0.4); }
.ticker-item .cat-osint  { color: var(--cat-osint);  border-color: rgba(138, 144, 153, 0.3); }
.ticker-item .cat-terror { color: var(--cat-terror); border-color: rgba(230, 232, 236, 0.25); }
.ticker-item .src {
  color: var(--text-faint);
  font-size: 10px;
  letter-spacing: 0.1em;
}
.ticker-item .title {
  color: var(--text-dim);
  max-width: 560px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ticker-item:hover .title { color: var(--text); }
.ticker-empty {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
  padding: 0 24px;
  display: flex; align-items: center;
}

/* ── Card detail page ───────────────────────────────────────── */
.breadcrumb {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  margin-bottom: 28px;
  text-transform: uppercase;
}
.breadcrumb a { color: var(--text-dim); }
.breadcrumb a:hover { color: var(--text); }
.breadcrumb .sep { color: var(--line); margin: 0 8px; }

.detail-head {
  border-bottom: 1px solid var(--line);
  padding-bottom: 24px;
  margin-bottom: 32px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}
.detail-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
}
.detail-title {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 600;
  font-size: 28px;
  letter-spacing: 0.02em;
  margin: 6px 0 8px;
  color: var(--text);
}
.detail-sub {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--text-dim);
  text-transform: uppercase;
}

.spec {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 0;
  border: 1px solid var(--line-soft);
  margin-bottom: 28px;
}
@media (max-width: 720px) { .spec { grid-template-columns: 1fr; } }
.spec-row {
  display: contents;
}
.spec-key, .spec-val {
  padding: 18px 22px;
  border-bottom: 1px solid var(--line-soft);
}
.spec-row:last-child .spec-key,
.spec-row:last-child .spec-val { border-bottom: none; }
.spec-key {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  background: var(--charcoal-2);
  border-right: 1px solid var(--line-soft);
}
@media (max-width: 720px) { .spec-key { border-right: none; padding-bottom: 4px; } }
.spec-val {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.6;
}
.spec-val ul { padding-left: 18px; }
.spec-val li { margin: 4px 0; }

.construction {
  border: 1px solid var(--line);
  padding: 28px 24px;
  text-align: center;
  background: var(--charcoal);
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.18em;
}
.construction .label {
  font-size: 10px;
  color: var(--alert);
  margin-bottom: 6px;
}
.construction .msg {
  font-size: 12px;
  color: var(--text-dim);
}

/* ── Login page ─────────────────────────────────────────────── */
.login-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
}
.login-card {
  width: 100%;
  max-width: 380px;
  border: 1px solid var(--line);
  background: var(--charcoal);
  padding: 36px 32px;
}
.login-card h2 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px;
  letter-spacing: 0.04em;
  color: var(--text);
  margin-bottom: 6px;
}
.login-card .sub {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  margin-bottom: 28px;
  text-transform: uppercase;
}
.field { margin-bottom: 16px; }
.field label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  margin-bottom: 6px;
  text-transform: uppercase;
}
.field input {
  width: 100%;
  background: var(--black);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 10px 12px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
}
.field input:focus { outline: none; border-color: var(--navy-bright); }
.btn-primary {
  width: 100%;
  background: var(--navy);
  border: 1px solid var(--navy-bright);
  color: var(--text);
  padding: 11px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  margin-top: 8px;
}
.btn-primary:hover { background: var(--navy-bright); }
.btn-primary:disabled { opacity: 0.4; cursor: not-allowed; }
.login-msg {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--alert);
  min-height: 18px;
  margin-top: 12px;
  text-align: center;
}
.login-msg.ok { color: var(--navy-bright); }

/* ── Floating chat bubble ──────────────────────────────────── */
#intel-chat-bubble {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  user-select: none;
  pointer-events: none;
}
.bubble-inner {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--navy-bright);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.55);
  position: relative;
  background: var(--charcoal);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
  pointer-events: auto;
  cursor: pointer;
}
.bubble-inner:hover {
  transform: scale(1.06);
  box-shadow: 0 6px 24px rgba(45, 90, 140, 0.55);
  border-color: var(--text);
}
.bubble-inner img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 22%;
  display: block;
}
.bubble-inner .eye-closed { z-index: 1; }
.bubble-inner .eye-open {
  z-index: 2;
  transition: opacity 80ms ease;
  opacity: 1;
}
.bubble-inner.blink .eye-open { opacity: 0; }
.bubble-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  background: var(--charcoal-2);
  padding: 3px 8px;
  border: 1px solid var(--line);
  pointer-events: auto;
}
@media (max-width: 640px) {
  #intel-chat-bubble { bottom: 16px; right: 16px; }
  .bubble-inner { width: 64px; height: 64px; }
}

/* Minimized state: replace avatar with INTEL patch */
#intel-chat-bubble.minimized .bubble-inner,
#intel-chat-bubble.minimized .bubble-label { display: none; }
.intel-patch {
  display: none;
  width: 88px;
  padding: 8px 12px;
  background: var(--black);
  border: 1px solid var(--line);
  cursor: pointer;
  pointer-events: auto;
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.55);
}
.intel-patch img { width: 100%; height: auto; display: block; }
.intel-patch:hover { transform: scale(1.06); border-color: var(--text); box-shadow: 0 4px 18px rgba(45, 90, 140, 0.45); }
#intel-chat-bubble.minimized .intel-patch { display: block; }

/* Pause the blink while chat is open */
#intel-chat-bubble.open .bubble-inner.blink .eye-open { opacity: 1; }

/* ── Chat panel ─────────────────────────────────────────────── */
.chat-panel {
  display: none;
  position: absolute;
  bottom: calc(100% + 12px);
  right: 0;
  width: 360px;
  height: 480px;
  background: var(--charcoal);
  border: 1px solid var(--line);
  pointer-events: auto;
  flex-direction: column;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.6);
}
#intel-chat-bubble.open .chat-panel { display: flex; }
@media (max-width: 640px) {
  .chat-panel {
    width: calc(100vw - 32px);
    height: 70vh;
    right: 0;
  }
}
.chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--charcoal-2);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--text);
  flex-shrink: 0;
}
.chat-header .title { display: flex; align-items: center; gap: 8px; }
.chat-header .title .pulse {
  width: 6px; height: 6px;
  background: var(--navy-bright);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(45, 90, 140, 0.6);
}
.chat-min {
  background: none;
  border: 1px solid var(--line);
  color: var(--text-dim);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  padding: 3px 8px;
  cursor: pointer;
}
.chat-min:hover { color: var(--text); border-color: var(--text-dim); }
.chat-history {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.chat-history::-webkit-scrollbar { width: 4px; }
.chat-history::-webkit-scrollbar-thumb { background: var(--line); }
.chat-msg {
  font-size: 13px;
  line-height: 1.55;
  padding: 9px 12px;
  max-width: 85%;
  word-wrap: break-word;
  white-space: pre-wrap;
}
.chat-msg.user {
  align-self: flex-end;
  background: var(--navy);
  color: var(--text);
  border: 1px solid var(--navy-bright);
}
.chat-msg.intel {
  align-self: flex-start;
  background: var(--charcoal-2);
  color: var(--text-dim);
  border: 1px solid var(--line);
}
.chat-msg.intel.thinking { font-style: italic; color: var(--text-faint); }
.chat-msg.error { color: var(--alert); border-color: rgba(107, 138, 168, 0.3); }
.chat-input-row {
  display: flex;
  gap: 8px;
  padding: 10px;
  border-top: 1px solid var(--line);
  background: var(--charcoal-2);
  flex-shrink: 0;
}
.chat-input-row input {
  flex: 1;
  background: var(--black);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 9px 12px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
}
.chat-input-row input:focus { outline: none; border-color: var(--navy-bright); }
.chat-input-row input:disabled { opacity: 0.5; }
.chat-input-row button {
  background: var(--navy);
  border: 1px solid var(--navy-bright);
  color: var(--text);
  padding: 9px 14px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.15em;
  cursor: pointer;
}
.chat-input-row button:hover { background: var(--navy-bright); }
.chat-input-row button:disabled { opacity: 0.4; cursor: not-allowed; }
.chat-auth-prompt {
  margin: auto;
  text-align: center;
  padding: 24px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text-dim);
  line-height: 1.8;
}
.chat-auth-prompt a {
  color: var(--navy-bright);
  border: 1px solid rgba(45, 90, 140, 0.4);
  padding: 6px 12px;
  display: inline-block;
  margin-top: 10px;
}
.chat-auth-prompt a:hover { background: rgba(45, 90, 140, 0.1); color: var(--text); }

/* ── Card 5 workspace ──────────────────────────────────────── */
#workspace { margin-top: 28px; }
.ws-input-block {
  border: 1px solid var(--line);
  background: var(--charcoal);
  padding: 22px 24px;
  margin-bottom: 24px;
}
.ws-label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 10px;
}
#topic-input {
  width: 100%;
  background: var(--black);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 12px 14px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  resize: vertical;
  min-height: 60px;
}
#topic-input:focus { outline: none; border-color: var(--navy-bright); }
.ws-controls {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
}
.ws-btn {
  background: var(--navy);
  border: 1px solid var(--navy-bright);
  color: var(--text);
  padding: 11px 22px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
}
.ws-btn:hover { background: var(--navy-bright); }
.ws-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.ws-cost {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
}

.ws-results { display: flex; flex-direction: column; gap: 24px; }
.ws-stage {
  border: 1px solid var(--line-soft);
  background: var(--charcoal);
}
.ws-stage-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--text-dim);
}
.ws-stage-num { color: var(--text-faint); }
.ws-stage-status {
  margin-left: auto;
  font-size: 10px;
  color: var(--text-faint);
  letter-spacing: 0.18em;
  padding: 3px 8px;
  border: 1px solid var(--line);
}
.ws-stage-status.running { color: var(--alert); border-color: rgba(107, 138, 168, 0.3); }
.ws-stage-status.ok { color: var(--navy-bright); border-color: rgba(45, 90, 140, 0.4); }
.ws-stage-status.fail { color: var(--alert); border-color: rgba(107, 138, 168, 0.5); }
.ws-stage-body { padding: 18px 22px; }
.ws-pending {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
}
.ws-empty {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.15em;
  color: var(--text-dim);
}
.ws-error {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--alert);
  padding: 10px 12px;
  border: 1px solid rgba(107, 138, 168, 0.3);
  background: rgba(107, 138, 168, 0.05);
}
.ws-paper-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  margin-bottom: 12px;
}
.ws-papers {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  counter-reset: paper;
}
.ws-paper {
  padding: 10px 12px;
  border: 1px solid var(--line-soft);
  position: relative;
  padding-left: 38px;
  counter-increment: paper;
}
.ws-paper::before {
  content: counter(paper, decimal-leading-zero);
  position: absolute;
  left: 12px;
  top: 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-faint);
  letter-spacing: 0.1em;
}
.ws-paper-title {
  font-size: 13px;
  line-height: 1.4;
  color: var(--text);
  margin-bottom: 4px;
}
.ws-paper-title a { color: inherit; }
.ws-paper-title a:hover { color: var(--navy-bright); }
.ws-paper-meta {
  font-size: 11px;
  color: var(--text-dim);
}
.ws-assessment {
  font-size: 14px;
  line-height: 1.7;
  color: var(--text);
}
.ws-assessment strong {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin: 16px 0 6px;
  font-weight: 500;
}
.ws-assessment strong:first-child { margin-top: 0; }
.ws-auth {
  border: 1px solid var(--line);
  background: var(--charcoal);
  padding: 32px;
  text-align: center;
}
.ws-auth-msg {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--alert);
  margin-bottom: 12px;
}
.ws-auth p {
  font-size: 13px;
  color: var(--text-dim);
  margin: 12px 0 22px;
}

/* ── Card 05 pipeline ───────────────────────────────────────── */
.phase-nav {
  display: flex;
  gap: 0;
  border: 1px solid var(--line);
  background: var(--charcoal-2);
  margin-bottom: 24px;
  overflow: hidden;
}
.phase-step {
  flex: 1;
  padding: 14px 18px;
  border-right: 1px solid var(--line);
  font-family: 'JetBrains Mono', monospace;
  display: flex;
  flex-direction: column;
  gap: 4px;
  cursor: default;
  background: transparent;
  transition: background 0.15s;
}
.phase-step:last-child { border-right: none; }
.phase-step .num {
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--text-faint);
}
.phase-step .lbl {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--text-dim);
}
.phase-step.done { background: var(--charcoal); }
.phase-step.done .num { color: var(--navy-bright); }
.phase-step.done .lbl { color: var(--text); }
.phase-step.active { background: var(--charcoal-3); border-bottom: 2px solid var(--navy-bright); }
.phase-step.active .num { color: var(--navy-bright); }
.phase-step.active .lbl { color: var(--text); font-weight: 600; }
.phase-step.clickable { cursor: pointer; }
.phase-step.clickable:hover { background: var(--charcoal-3); }

.phase-stage {
  border: 1px solid var(--line-soft);
  background: var(--charcoal);
}
.phase-head {
  padding: 14px 22px;
  border-bottom: 1px solid var(--line-soft);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text-dim);
  display: flex;
  align-items: center;
  gap: 14px;
}
.phase-head .phase-tag {
  font-size: 9px;
  letter-spacing: 0.2em;
  padding: 3px 8px;
  border: 1px solid var(--line);
  color: var(--text-faint);
}
.phase-body { padding: 24px 22px; }

/* Phase 01 — output mode picker grid */
.mode-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
  margin: 18px 0 22px;
}
.mode-card {
  border: 1px solid var(--line);
  background: var(--charcoal-2);
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mode-card:hover { background: var(--charcoal-3); border-color: var(--navy-bright); }
.mode-card.selected { border-color: var(--navy-bright); background: var(--charcoal-3); }
.mode-card.selected::before {
  content: 'SELECTED';
  position: absolute;
  margin-top: -22px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 8px;
  letter-spacing: 0.2em;
  color: var(--navy-bright);
}
.mode-card-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
}
.mode-card-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--text);
  font-weight: 600;
}
.mode-card-desc {
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.5;
}

/* Phase 01 — path buttons */
.path-row {
  display: flex;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.path-btn {
  flex: 1 1 240px;
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 14px 18px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  cursor: pointer;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: background 0.15s, border-color 0.15s;
}
.path-btn:hover { background: var(--navy); border-color: var(--navy-bright); }
.path-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.path-btn:disabled:hover { background: var(--charcoal-2); border-color: var(--line); }
.path-btn .path-tag {
  font-size: 9px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
}
.path-btn .path-title {
  font-size: 12px;
  color: var(--text);
}
.path-btn .path-sub {
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  font-family: 'Inter', sans-serif;
}

/* Phase 02 — tier blocks */
.tier-block {
  border: 1px solid var(--line-soft);
  margin-bottom: 14px;
  background: var(--charcoal-2);
}
.tier-head {
  padding: 10px 16px;
  border-bottom: 1px solid var(--line-soft);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-dim);
  display: flex;
  align-items: center;
  gap: 12px;
}
.tier-head .tier-num {
  color: var(--navy-bright);
  font-weight: 700;
}
.tier-head .tier-hint {
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--text-faint);
  font-family: 'Inter', sans-serif;
  margin-left: auto;
}
.tier-body { padding: 14px 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  padding: 6px 12px;
  border: 1px solid var(--line);
  background: var(--charcoal);
  color: var(--text-dim);
  cursor: default;
}
.tag.indicator {
  border-color: var(--navy-bright);
  background: var(--navy);
  color: var(--text);
  font-weight: 600;
}
.tag.vector { border-color: rgba(45, 90, 140, 0.5); color: var(--text); }
.tag.refiner { border-color: var(--line); color: var(--text-dim); }
.tag.refiner.on { border-color: var(--navy-bright); color: var(--text); background: var(--charcoal-3); }

/* Phase 03 — query cells */
.cell-list { display: flex; flex-direction: column; gap: 6px; }
.cell-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  flex-wrap: wrap;
}
.cell-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--text-faint);
  min-width: 48px;
}
.cell-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  flex: 1;
}
.cell-tags .tag { font-size: 10px; padding: 4px 10px; }
.cell-posture {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  padding: 3px 10px;
  border: 1px solid var(--line);
  color: var(--text-faint);
  margin-left: auto;
}
.cell-posture.wide { color: var(--text-dim); border-color: var(--line); }
.cell-posture.narrow { color: var(--navy-bright); border-color: rgba(45, 90, 140, 0.4); }
.cell-posture.edge { color: var(--alert); border-color: rgba(107, 138, 168, 0.4); }

/* Phase 02 / 03 — footer with continue */
.phase-foot {
  padding: 14px 22px;
  border-top: 1px solid var(--line-soft);
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.phase-foot .summary {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--text-dim);
}
.phase-foot .nav-btns {
  margin-left: auto;
  display: flex;
  gap: 8px;
}
.phase-foot .ws-btn { padding: 8px 16px; font-size: 11px; }
.phase-foot .ws-btn.ghost {
  background: transparent;
  border-color: var(--line);
  color: var(--text-dim);
}
.phase-foot .ws-btn.ghost:hover { background: var(--charcoal-2); color: var(--text); }

/* Phase 04 / 05 stub */
.phase-stub {
  padding: 32px 22px;
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
}
.phase-stub p {
  margin-top: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  letter-spacing: 0;
  color: var(--text-dim);
}

/* MOCK DATA notice */
.mock-banner {
  background: rgba(107, 138, 168, 0.08);
  border: 1px solid rgba(107, 138, 168, 0.3);
  padding: 8px 12px;
  margin-bottom: 14px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--alert);
}

/* Phase 04 sweep ─────────────────────────────────────────── */
.sweep-intro {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.6;
  padding: 12px 0;
}
.sweep-progress { margin-bottom: 16px; }
.sweep-progress-bar {
  height: 6px;
  background: var(--charcoal-3);
  border: 1px solid var(--line-soft);
  overflow: hidden;
}
.sweep-progress-fill {
  height: 100%;
  background: var(--navy-bright);
  transition: width 0.3s ease;
}
.sweep-progress-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--text-dim);
  margin-top: 6px;
}
.sweep-list { display: flex; flex-direction: column; gap: 4px; }
.sweep-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  flex-wrap: wrap;
}
.sweep-row .cell-num { min-width: 30px; }
.sweep-row .cell-tags { flex: 1; }
.sweep-row .cell-tags .tag { font-size: 10px; padding: 3px 8px; }
.sweep-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  padding: 3px 10px;
  border: 1px solid var(--line);
  margin-left: auto;
  color: var(--text-faint);
}
.sweep-tag.pending { color: var(--text-faint); }
.sweep-tag.running { color: var(--alert); border-color: rgba(107, 138, 168, 0.3); animation: sweep-pulse 1.5s ease-in-out infinite; }
.sweep-tag.ok { color: var(--navy-bright); border-color: rgba(45, 90, 140, 0.4); }
.sweep-tag.empty { color: var(--text-dim); }
.sweep-tag.fail { color: var(--alert); border-color: rgba(107, 138, 168, 0.5); }
@keyframes sweep-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }

/* Phase 05 dashboard ─────────────────────────────────────── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
.stat-block {
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  padding: 16px 18px;
  text-align: center;
}
.stat-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 28px;
  font-weight: 700;
  color: var(--navy-bright);
  letter-spacing: 0.04em;
}
.stat-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--text-dim);
  margin-top: 4px;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
  margin-bottom: 18px;
}
@media (max-width: 800px) { .dashboard-grid { grid-template-columns: 1fr; } }
.dash-section { margin-bottom: 20px; }
.dash-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text);
  border-bottom: 1px solid var(--line-soft);
  padding-bottom: 8px;
  margin-bottom: 12px;
  font-weight: 600;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.dash-hint {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  letter-spacing: 0.02em;
  color: var(--text-faint);
  font-weight: 400;
}
.source-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.source-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
}
.source-rank {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--text-faint);
  min-width: 26px;
  padding-top: 2px;
}
.source-body { flex: 1; min-width: 0; }
.source-name {
  font-size: 13px;
  line-height: 1.4;
  color: var(--text);
  margin-bottom: 4px;
  word-break: break-word;
}
.source-name a { color: inherit; }
.source-name a:hover { color: var(--navy-bright); }
.source-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-dim);
  letter-spacing: 0.04em;
}
.source-cells {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  padding: 3px 10px;
  border: 1px solid rgba(45, 90, 140, 0.4);
  color: var(--navy-bright);
  white-space: nowrap;
  align-self: center;
}
.gap-list { display: flex; flex-direction: column; gap: 4px; }
.gap-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  border: 1px solid rgba(107, 138, 168, 0.3);
  background: rgba(107, 138, 168, 0.04);
  flex-wrap: wrap;
}
.gap-row .cell-num { min-width: 60px; }
.gap-row .cell-tags { flex: 1; }
.gap-row .cell-tags .tag { font-size: 10px; padding: 3px 8px; }

/* Phase 06 output ────────────────────────────────────────── */
.output-result {
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  padding: 22px 26px;
}
.output-result-body {
  font-size: 14px;
  line-height: 1.7;
  color: var(--text);
}
.output-result-body strong {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--navy-bright);
  margin-top: 18px;
  margin-bottom: 6px;
  font-weight: 700;
  text-transform: uppercase;
}
.output-result-body strong:first-child { margin-top: 0; }

/* ═══════════════════════════════════════════════════════════
   Card 5 v2 — SLR-structured intel pipeline
   Editorial concession: Playfair Display italic for mega-headers only.
   Everything else stays in INTEL's mono + Inter palette.
   ═══════════════════════════════════════════════════════════ */

/* Top phase strip ─────────────────────────────────────────── */
.card5-strip {
  border-bottom: 1px solid var(--line);
  background: var(--charcoal-2);
  padding: 0 24px;
  display: flex;
  align-items: stretch;
  max-width: 100%;
  font-family: 'JetBrains Mono', monospace;
}
.card5-strip-back {
  display: inline-flex;
  align-items: center;
  padding: 12px 16px 12px 0;
  margin-right: 24px;
  border-right: 1px solid var(--line);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
}
.card5-strip-back:hover { color: var(--text); }
.card5-strip-steps {
  display: flex;
  gap: 0;
  flex: 1;
}
.card5-step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  border-bottom: 2px solid transparent;
  user-select: none;
}
.card5-step .num { color: var(--text-faint); }
.card5-step .lbl { font-weight: 500; }
.card5-step.active { color: var(--text); border-bottom-color: var(--navy-bright); }
.card5-step.active .num { color: var(--navy-bright); }
.card5-step.done { color: var(--text-dim); }
.card5-step.done .num { color: var(--text-dim); }
.card5-step.clickable { cursor: pointer; }
.card5-step.clickable:hover { color: var(--text); }

/* Two-column main: left rail + right workspace ─────────────── */
.card5-main {
  flex: 1;
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 0;
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  align-items: stretch;
}
@media (max-width: 960px) {
  .card5-main { grid-template-columns: 1fr; }
}

/* Left rail (persistent hero) ──────────────────────────────── */
.card5-rail {
  background: var(--charcoal);
  border-right: 1px solid var(--line);
  padding: 40px 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.rail-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
}
.rail-hero {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-style: normal;
  font-size: 38px;
  line-height: 1.05;
  color: var(--text);
  letter-spacing: -0.01em;
}
.rail-hero em {
  font-style: italic;
  color: var(--navy-bright);
  font-weight: 700;
}
.rail-intro {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-dim);
}
.rail-roadmap {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--line-soft);
}
.rail-roadmap li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.rail-roadmap .rm-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--navy-bright);
  font-weight: 600;
  padding-top: 2px;
  min-width: 24px;
}
.rail-roadmap .rm-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.rail-roadmap .rm-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text);
}
.rail-roadmap .rm-desc {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-faint);
}

/* Right workspace ─────────────────────────────────────────── */
.card5-workspace {
  padding: 48px 56px 64px;
  background: var(--black);
}
@media (max-width: 720px) {
  .card5-workspace { padding: 32px 24px 48px; }
}

/* Phase page common ───────────────────────────────────────── */
.phase-page { max-width: 760px; }
.phase-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.24em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.phase-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-size: 44px;
  line-height: 1.05;
  color: var(--text);
  letter-spacing: -0.015em;
  margin-bottom: 14px;
}
.phase-title em {
  font-style: italic;
  color: var(--navy-bright);
  font-weight: 700;
}
.phase-subtitle {
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-dim);
  max-width: 620px;
  margin-bottom: 36px;
}
.phase-stub {
  border: 1px dashed var(--line);
  padding: 24px;
  color: var(--text-dim);
  font-size: 13px;
  margin-bottom: 24px;
}

/* Phase 01 — Topic ────────────────────────────────────────── */
.micro-label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.topic-input-block { margin-bottom: 28px; }
#topic-input {
  width: 100%;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  color: var(--text);
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  line-height: 1.5;
  padding: 18px 20px;
  resize: vertical;
  min-height: 120px;
  outline: none;
  transition: border-color 0.15s ease;
}
#topic-input:focus { border-color: var(--navy-bright); }
.topic-hint {
  margin-top: 10px;
  font-size: 12px;
  color: var(--text-faint);
  line-height: 1.5;
}
.topic-hint strong { color: var(--text-dim); font-weight: 600; }

.examples-block {
  border-left: 2px solid var(--navy-bright);
  background: var(--charcoal);
  padding: 20px 22px;
  margin-bottom: 32px;
}
.examples-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.examples-list { display: flex; flex-direction: column; gap: 4px; }
.example-chip {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line-soft);
  padding: 10px 0;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-style: italic;
  line-height: 1.5;
  color: var(--text-dim);
  cursor: pointer;
  transition: color 0.15s ease;
}
.example-chip:last-child { border-bottom: none; }
.example-chip:hover { color: var(--text); }
.example-chip .ex-quote {
  color: var(--navy-bright);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 18px;
  margin: 0 2px;
  vertical-align: -2px;
}
.example-chip .ex-text { font-style: italic; }

/* Phase footer (action row) ───────────────────────────────── */
.phase-foot {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-top: 24px;
  border-top: 1px solid var(--line-soft);
  flex-wrap: wrap;
}
.btn-primary {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 700;
  color: var(--text);
  background: var(--navy-bright);
  border: 1px solid var(--navy-bright);
  padding: 14px 22px;
  cursor: pointer;
  text-transform: uppercase;
  transition: opacity 0.15s ease, background 0.15s ease;
}
.btn-primary:hover:not(:disabled) { background: var(--navy); border-color: var(--navy); }
.btn-primary:disabled { opacity: 0.35; cursor: not-allowed; }
.btn-ghost {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--text-dim);
  background: transparent;
  border: 1px solid var(--line);
  padding: 12px 18px;
  cursor: pointer;
  text-transform: uppercase;
}
.btn-ghost:hover { color: var(--text); border-color: var(--text-dim); }
.action-hint {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-faint);
  letter-spacing: 0.05em;
}

/* ═══════════════════════════════════════════════════════════
   Phase 02 — KEYWORDS (anchor + secondary anchors + modifiers)
   ═══════════════════════════════════════════════════════════ */

.phase-page-wide { max-width: 980px; }

/* Loading + error ───────────────────────────────────────── */
.kw-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 80px 0;
  color: var(--text-dim);
}
.kw-spinner {
  width: 28px;
  height: 28px;
  border: 2px solid var(--line);
  border-top-color: var(--navy-bright);
  border-radius: 50%;
  animation: kw-spin 0.9s linear infinite;
}
@keyframes kw-spin { to { transform: rotate(360deg); } }
.kw-loading-msg {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-faint);
}
.kw-fetching { opacity: 0.5; pointer-events: none; transition: opacity 0.2s ease; }

.kw-error {
  border: 1px solid rgba(107, 138, 168, 0.4);
  background: rgba(107, 138, 168, 0.06);
  padding: 24px 28px;
  margin-bottom: 28px;
}
.kw-error-msg {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--alert);
  margin-bottom: 10px;
}
.kw-error p { font-size: 14px; color: var(--text-dim); margin-bottom: 18px; line-height: 1.5; }

/* Tier rows ──────────────────────────────────────────────── */
.tier-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 32px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
  flex-wrap: wrap;
}
.tier-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 6px 12px;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
}
.tier-help {
  font-size: 13px;
  color: var(--text-dim);
  flex: 1;
  min-width: 0;
}
.tier-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--navy-bright);
  text-transform: uppercase;
}
.tier-actions {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

/* Anchor hero card ──────────────────────────────────────── */
.anchor-hero {
  background: var(--charcoal-3);
  border: 1px solid var(--navy);
  border-left: 4px solid var(--navy-bright);
  padding: 28px 32px 24px;
  margin-bottom: 28px;
}
.anchor-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.24em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.anchor-term {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-size: 44px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin-bottom: 18px;
  color: var(--text);
}
.anchor-term em {
  font-style: italic;
  color: var(--navy-bright);
  font-weight: 700;
}
.anchor-explain {
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-dim);
  max-width: 720px;
  margin-bottom: 22px;
}
.anchor-explain strong { color: var(--text); font-weight: 600; }
.anchor-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 18px;
  border-top: 1px solid var(--line-soft);
  flex-wrap: wrap;
}
.anchor-foot-q {
  font-size: 12px;
  color: var(--text-faint);
  font-style: italic;
}
.anchor-edit-input {
  width: 100%;
  background: var(--black);
  border: 1px solid var(--navy-bright);
  color: var(--text);
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 32px;
  font-weight: 600;
  padding: 10px 14px;
  margin-bottom: 18px;
  outline: none;
}

/* Pill row + pills ──────────────────────────────────────── */
.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.pill {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 7px 14px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--text-dim);
  cursor: pointer;
  user-select: none;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.pill:hover { color: var(--text); border-color: var(--navy-bright); }
.pill.on {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--text);
}
[data-theme="light"] .pill.on { color: #fff; }
.pill.on:hover { background: var(--navy-bright); border-color: var(--navy-bright); }

.pill-secondary { font-size: 13px; padding: 9px 16px; }
.pill-modifier { font-size: 12px; }

/* Steer block ────────────────────────────────────────────── */
.steer-block {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  padding: 14px 18px;
  margin: 24px 0;
}
.steer-arrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
  text-transform: uppercase;
  white-space: nowrap;
}
#steer-input,
#add-secondary-input,
#add-mod-input {
  flex: 1;
  background: var(--charcoal-3);
  border: 1px solid var(--line-soft);
  color: var(--text);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  padding: 10px 14px;
  outline: none;
  min-width: 0;
}
#steer-input:focus,
#add-secondary-input:focus,
#add-mod-input:focus { border-color: var(--navy-bright); }

.btn-primary-sm {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: var(--text);
  background: var(--navy-bright);
  border: 1px solid var(--navy-bright);
  padding: 10px 16px;
  cursor: pointer;
  text-transform: uppercase;
  white-space: nowrap;
}
.btn-primary-sm:hover { background: var(--navy); border-color: var(--navy); }

.btn-ghost-sm {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-dim);
  background: transparent;
  border: 1px solid var(--line);
  padding: 8px 12px;
  cursor: pointer;
  text-transform: uppercase;
}
.btn-ghost-sm:hover { color: var(--text); border-color: var(--text-dim); }

.btn-accent {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  font-weight: 600;
  color: var(--navy-bright);
  background: transparent;
  border: 1px solid var(--navy-bright);
  padding: 9px 14px;
  cursor: pointer;
  text-transform: uppercase;
}
.btn-accent:hover { color: var(--text); background: rgba(45, 90, 140, 0.15); }

/* Modifier groups ─────────────────────────────────────────── */
.mod-group { margin-bottom: 18px; }
.mod-group-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.mod-count {
  color: var(--navy-bright);
  font-weight: 700;
}
.mod-foot {
  font-size: 12px;
  color: var(--text-faint);
  font-style: italic;
  margin: 8px 0 16px;
}

.add-keyword {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 16px;
}
.add-secondary { margin-top: 4px; max-width: 480px; }

/* Stat band ──────────────────────────────────────────────── */
.stat-band {
  display: flex;
  align-items: center;
  gap: 24px;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  border-left: 4px solid var(--navy-bright);
  padding: 18px 24px;
  margin-top: 32px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.stat-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 80px;
  padding-right: 24px;
  border-right: 1px solid var(--line-soft);
}
.stat-cell:last-of-type { border-right: none; }
.stat-num {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-style: italic;
  font-size: 32px;
  color: var(--navy-bright);
  line-height: 1;
}
.stat-lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
}
.stat-status {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 240px;
}
.stat-status strong {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
}
.stat-status span {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.4;
}

/* Twin footer ────────────────────────────────────────────── */
.phase-foot-twin {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

/* ═══════════════════════════════════════════════════════════
   Phase 03 — PREVIEW (25 subgroups)
   ═══════════════════════════════════════════════════════════ */

.sg-summary {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 16px 20px;
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.sg-count {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.sg-count strong {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0;
}
.sg-count em {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-style: italic;
  letter-spacing: 0.04em;
  color: var(--text-faint);
  text-transform: none;
  margin-left: 2px;
}
.sg-count-broad strong   { color: var(--text); }
.sg-count-focused strong { color: var(--navy-bright); }
.sg-count-edge strong    { color: var(--alert); }
/* Backwards-compat aliases */
.sg-count-wide strong   { color: var(--text); }
.sg-count-narrow strong { color: var(--navy-bright); }

.sg-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 32px;
  border: 1px solid var(--line);
  background: var(--charcoal);
}
.sg-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line-soft);
  transition: background 0.12s ease;
}
.sg-row:last-child { border-bottom: none; }
.sg-row:hover { background: var(--charcoal-2); }

.sg-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--text-faint);
  min-width: 28px;
}
.sg-type {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 4px 8px;
  min-width: 70px;
  text-align: center;
  border: 1px solid currentColor;
}
.sg-type-broad   { color: var(--text-dim); }
.sg-type-focused { color: var(--navy-bright); }
.sg-type-edge    { color: var(--alert); }
/* Backwards-compat aliases */
.sg-type-wide   { color: var(--text-dim); }
.sg-type-narrow { color: var(--navy-bright); }

.sg-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1;
}
.sg-tag {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  padding: 4px 10px;
  border: 1px solid var(--line);
  color: var(--text-dim);
}
.tag-anchor {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--text);
  font-weight: 600;
}
[data-theme="light"] .tag-anchor { color: #fff; }
.tag-secondary {
  border-color: var(--navy-bright);
  color: var(--navy-bright);
}
.tag-modifier {
  /* default styling, no override */
}

/* ═══════════════════════════════════════════════════════════
   Phase 04 — BUILD (live OpenAlex sweep)
   ═══════════════════════════════════════════════════════════ */

.sweep-progress-block {
  margin-bottom: 24px;
}
.sweep-progress-meta {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 8px;
  font-family: 'JetBrains Mono', monospace;
}
.sweep-progress-fraction {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 700;
  font-size: 22px;
  color: var(--navy-bright);
}
.sweep-progress-pct {
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--text-dim);
}
.sweep-progress-status {
  margin-left: auto;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
}

.sweep-progress-bar {
  height: 6px;
  background: var(--charcoal-2);
  border: 1px solid var(--line-soft);
  position: relative;
  overflow: hidden;
}
.sweep-progress-fill {
  height: 100%;
  background: var(--navy-bright);
  transition: width 0.25s ease;
}

/* Summary band (during/after sweep) ─────────────────────── */
.sweep-summary {
  display: flex;
  align-items: center;
  gap: 24px;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  border-left: 4px solid var(--navy-bright);
  padding: 18px 24px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.sweep-stat-gap   { color: var(--alert) !important; }
.sweep-stat-fail  { color: var(--alert) !important; }

/* Per-cell list (extends Phase 03 .sg-row pattern) ──────── */
.sweep-list {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  background: var(--charcoal);
  margin-bottom: 28px;
}
.sweep-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line-soft);
  transition: background 0.12s ease;
}
.sweep-row:last-child { border-bottom: none; }
.sweep-row:hover { background: var(--charcoal-2); }

/* Cell status badges ────────────────────────────────────── */
.sweep-status {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  font-weight: 600;
  padding: 5px 10px;
  border: 1px solid currentColor;
  text-transform: uppercase;
  white-space: nowrap;
  min-width: 90px;
  text-align: center;
}
.sweep-status-pending { color: var(--text-faint); border-style: dashed; }
.sweep-status-running {
  color: var(--navy-bright);
  animation: sweep-pulse 1.2s ease-in-out infinite;
}
@keyframes sweep-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}
.sweep-status-ok   { color: var(--text); border-color: var(--navy-bright); background: rgba(45, 90, 140, 0.12); }
.sweep-status-gap  {
  color: var(--alert);
  background: rgba(107, 138, 168, 0.10);
  border-color: var(--alert);
  font-weight: 700;
}
.sweep-status-fail { color: var(--alert); border-style: dashed; }

/* ── Phase 04 — two-column layout with live GAPS panel ──── */

.phase-page-build {
  max-width: none;
}
.build-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 32px;
  align-items: start;
}
@media (max-width: 1100px) {
  .build-grid { grid-template-columns: 1fr; }
}
.build-main { min-width: 0; }

/* Live GAPS panel ─────────────────────────────────────── */
.gaps-live {
  position: sticky;
  top: 24px;
  background: var(--charcoal-3);
  border: 1px solid var(--alert);
  border-left: 4px solid var(--alert);
  padding: 22px 22px 18px;
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.gaps-live-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-soft);
  flex-wrap: wrap;
}
.gaps-live-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.24em;
  color: var(--alert);
  text-transform: uppercase;
  font-weight: 700;
  position: relative;
  padding-left: 14px;
}
.gaps-live-eyebrow::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  background: var(--alert);
  border-radius: 50%;
  animation: gaps-live-blink 1.4s ease-in-out infinite;
}
@keyframes gaps-live-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
.gaps-live-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 30px;
  line-height: 1;
  color: var(--text);
  font-weight: 600;
}
.gaps-live-title em {
  font-style: italic;
  color: var(--alert);
  font-weight: 700;
}
.gaps-live-meta {
  margin-left: auto;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.gaps-live-count {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 700;
  font-size: 36px;
  line-height: 1;
  color: var(--alert);
}
.gaps-live-lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-faint);
  text-transform: uppercase;
}

.gaps-live-explain {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-dim);
  font-style: italic;
}
.gaps-live-explain strong { color: var(--alert); font-weight: 700; font-style: normal; }

.gaps-live-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  padding-right: 4px;
  flex: 1;
  min-height: 60px;
}
.gaps-live-list::-webkit-scrollbar { width: 6px; }
.gaps-live-list::-webkit-scrollbar-thumb { background: var(--line); }

.gaps-live-empty {
  text-align: center;
  padding: 18px 8px;
  color: var(--text-faint);
  font-size: 12px;
  font-style: italic;
  line-height: 1.5;
}
.gaps-live-empty-icon {
  font-size: 22px;
  margin-bottom: 6px;
  color: var(--text-faint);
}

/* Individual gap card ──────────────────────────────────── */
.gap-card {
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  border-left: 3px solid var(--alert);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color 0.2s ease;
}
.gap-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.gap-card-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
  text-transform: uppercase;
}
.gap-card-type {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 2px 6px;
  border: 1px solid currentColor;
}
.gap-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.gap-card-tag {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  padding: 2px 7px;
  background: var(--charcoal-3);
  border: 1px solid var(--line-soft);
  color: var(--text-dim);
}
.gap-card-foot {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--alert);
  font-weight: 700;
  text-transform: uppercase;
}
.gap-card-foot em {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-style: italic;
  color: var(--text-faint);
  font-weight: 400;
  letter-spacing: 0.02em;
  text-transform: none;
  margin-left: 4px;
}

/* New gap pop-in animation ─────────────────────────────── */
.gap-card-new {
  animation: gap-pop-in 0.6s ease-out, gap-glow 1.4s ease-out;
}
@keyframes gap-pop-in {
  0% { opacity: 0; transform: translateX(20px) scale(0.96); }
  60% { opacity: 1; transform: translateX(-3px) scale(1.02); }
  100% { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes gap-glow {
  0% { box-shadow: 0 0 0 2px rgba(107, 138, 168, 0.55), 0 0 14px rgba(107, 138, 168, 0.4); border-color: var(--alert); }
  100% { box-shadow: none; border-color: var(--line); }
}

/* ── Phase 04 v2: cascade row + drop/gap differentiation ──── */

.sweep-row {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
}
.sweep-row-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 18px;
  background: var(--charcoal-2);
  border-bottom: 1px solid var(--line-soft);
}
.sweep-cascade {
  display: flex;
  flex-direction: column;
}
.cascade-level {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  gap: 14px;
  align-items: center;
  padding: 9px 18px 9px 32px;
  border-bottom: 1px dashed var(--line-soft);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text-dim);
}
.cascade-level:last-child { border-bottom: none; }
.cascade-level.cascade-final { background: rgba(45, 90, 140, 0.06); }
.cascade-level.cascade-notable {
  background: rgba(107, 138, 168, 0.07);
  border-left: 3px solid var(--alert);
  padding-left: 29px;
}
.cascade-level.cascade-gap {
  background: rgba(107, 138, 168, 0.14);
  border-left: 3px solid var(--alert);
  padding-left: 29px;
  color: var(--text);
}
.cascade-level.cascade-fail { color: var(--alert); }

.cascade-query {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text);
  letter-spacing: 0.01em;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cascade-and {
  color: var(--text-faint);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.18em;
  margin: 0 4px;
}
.cascade-term {
  display: inline-block;
}
.cascade-term-new {
  color: var(--navy-bright);
  font-weight: 600;
}
.cascade-level.cascade-notable .cascade-term-new,
.cascade-level.cascade-gap .cascade-term-new {
  color: var(--alert);
}

.cascade-count {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: 16px;
  color: var(--text);
  text-align: right;
  min-width: 80px;
}
.cascade-level.cascade-notable .cascade-count,
.cascade-level.cascade-gap .cascade-count {
  color: var(--alert);
}

.cascade-tags { display: flex; gap: 4px; }
.cascade-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 3px 7px;
  border: 1px solid currentColor;
  text-transform: uppercase;
}
.cascade-tag.tag-notable { color: var(--navy-bright); background: rgba(45, 90, 140, 0.10); }
.cascade-tag.tag-gap     { color: var(--alert); background: rgba(107, 138, 168, 0.18); }

.cascade-narrate {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--text-faint);
  font-style: italic;
  text-align: right;
  min-width: 200px;
}
.cascade-narrate strong {
  color: var(--alert);
  font-style: normal;
  font-weight: 700;
}

@media (max-width: 900px) {
  .cascade-level {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .cascade-narrate { text-align: left; }
}

/* Differentiate gap cards in the right panel ─────────────── */
.gap-card-pill {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 3px 7px;
  border: 1px solid currentColor;
  margin-left: auto;
  text-transform: uppercase;
}
.gap-card-pill.pill-notable { color: var(--gap-notable); background: var(--gap-notable-soft); }
.gap-card-pill.pill-hard    { color: var(--gap-hard);    background: var(--gap-hard-soft); }

.gap-card-hard {
  border-left-width: 4px;
  border-left-color: var(--gap-hard);
}
.gap-card-notable-card {
  border-left-color: var(--gap-notable);
}

/* Tint the headline number in each card so the eye sorts severity at a glance:
   "92% drop." in gold, "0 papers retrieved." in burnt amber. The italicized
   prose stays muted so the number does the work. */
.gap-card-notable-card .gap-card-story strong { color: var(--gap-notable); }
.gap-card-hard         .gap-card-story strong { color: var(--gap-hard);    }

.gap-card-story {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  line-height: 1.5;
  color: var(--text-dim);
  font-style: italic;
}
.gap-card-story strong {
  color: var(--text);
  font-weight: 700;
  font-style: normal;
}

/* ═══════════════════════════════════════════════════════════
   Phase 05 — OUTCOMES (twin deliverables)
   ═══════════════════════════════════════════════════════════ */

.outcomes-head { margin-bottom: 28px; }
.outcomes-head .phase-title { margin-bottom: 12px; }
.outcomes-head .phase-subtitle { max-width: 760px; }

/* Top-level stat band ────────────────────────────────────── */
.outcomes-stat-band {
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 22px 28px;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  border-left: 4px solid var(--navy-bright);
  margin-bottom: 36px;
  flex-wrap: wrap;
}
.outcomes-stat-band .stat-cell {
  border-right: 1px solid var(--line-soft);
  padding-right: 32px;
  min-width: 110px;
}
.outcomes-stat-band .stat-cell:last-child { border-right: none; padding-right: 0; }
.outcomes-stat-band .stat-num { font-size: 40px; }
.outcomes-stat-gap { color: var(--alert) !important; font-weight: 700; }

/* Twin grid ──────────────────────────────────────────────── */
.outcomes-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-bottom: 32px;
}
@media (max-width: 1100px) {
  .outcomes-grid { grid-template-columns: 1fr; }
}

.outcomes-panel {
  background: var(--charcoal);
  border: 1px solid var(--line);
  padding: 28px 28px 24px;
  display: flex;
  flex-direction: column;
}
.papers-panel { border-left: 4px solid var(--navy-bright); }
.gaps-panel   { border-left: 4px solid var(--alert); }

.outcomes-panel-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.24em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 12px;
}
.outcomes-panel-eyebrow em {
  font-style: normal;
  color: var(--navy-bright);
  margin: 0 4px;
}
.gaps-eyebrow em { color: var(--alert); }
.gaps-panel .outcomes-panel-eyebrow { color: var(--alert); }

.outcomes-panel-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-size: 36px;
  line-height: 1.1;
  color: var(--text);
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}
.outcomes-panel-title em {
  font-style: italic;
  color: var(--navy-bright);
  font-weight: 700;
}
.gaps-panel .outcomes-panel-title em { color: var(--alert); }

.outcomes-panel-explain {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-dim);
  margin-bottom: 22px;
}

/* Papers list ────────────────────────────────────────────── */
.papers-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  margin-bottom: 14px;
  max-height: 540px;
  overflow-y: auto;
}
.paper-card {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line-soft);
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: background 0.12s ease;
}
.paper-card:last-child { border-bottom: none; }
.paper-card:hover { background: var(--charcoal-3); }
.paper-card-meta {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.paper-coverage {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 3px 7px;
  background: var(--charcoal-3);
  border: 1px solid var(--navy-bright);
  color: var(--navy-bright);
  text-transform: uppercase;
}
.paper-coverage-high {
  background: var(--navy);
  color: var(--text);
  border-color: var(--navy);
}
[data-theme="light"] .paper-coverage-high { color: #fff; }
.paper-meta-item {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--text-faint);
  text-transform: uppercase;
}
.paper-venue {
  text-transform: none;
  font-style: italic;
  letter-spacing: 0.02em;
}
.paper-card-title {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.35;
}
.paper-card-byline {
  font-size: 12px;
  color: var(--text-dim);
}
.paper-meta-sep { color: var(--text-faint); margin: 0 4px; }
.paper-card-link {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--navy-bright);
  text-transform: uppercase;
  margin-top: 4px;
  align-self: flex-start;
}
.paper-card-link:hover { color: var(--text); text-decoration: underline; }
.paper-empty { padding: 24px; color: var(--text-faint); font-style: italic; text-align: center; }

.papers-overflow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-faint);
  letter-spacing: 0.05em;
  margin-bottom: 18px;
  padding-left: 4px;
  font-style: italic;
}

/* OSINT caveat ───────────────────────────────────────────── */
.osint-caveat {
  background: rgba(107, 138, 168, 0.10);
  border: 1px solid rgba(107, 138, 168, 0.4);
  border-left: 3px solid var(--alert);
  padding: 14px 16px;
  margin-bottom: 18px;
}
.osint-caveat-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--alert);
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 8px;
}
.osint-caveat p {
  font-size: 12px;
  line-height: 1.55;
  color: var(--text-dim);
  font-style: italic;
}
.osint-caveat strong {
  color: var(--text);
  font-weight: 700;
  font-style: normal;
}

.outcomes-gaps-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 18px;
  max-height: 540px;
  overflow-y: auto;
  padding-right: 4px;
}
.gap-empty {
  padding: 20px;
  color: var(--text-faint);
  font-style: italic;
  text-align: center;
  border: 1px dashed var(--line);
  font-size: 12px;
  line-height: 1.5;
}

/* Action tiles ───────────────────────────────────────────── */
.outcomes-actions-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: var(--cta);
  text-transform: uppercase;
  margin-top: 28px;
  margin-bottom: 16px;
  padding: 14px 18px;
  background: var(--cta-soft);
  border-left: 4px solid var(--cta);
  border-top: none;
  position: relative;
}
.outcomes-actions-head::before {
  content: '▸';
  margin-right: 10px;
  color: var(--cta);
  font-size: 12px;
}

.action-tiles {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.action-tile {
  font-family: inherit;
  display: block;
  width: 100%;
  text-align: left;
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  padding: 14px 16px;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease, transform 0.12s ease;
  position: relative;
}
.action-tile:hover {
  background: var(--charcoal-3);
  border-color: var(--navy-bright);
  transform: translateX(2px);
}
.gaps-panel .action-tile:hover { border-color: var(--alert); }
.action-tile-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.action-tile-title {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 4px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.action-tile-arrow { color: var(--navy-bright); font-weight: 400; }
.gaps-panel .action-tile-arrow { color: var(--alert); }
.action-tile-desc {
  font-size: 12px;
  line-height: 1.4;
  color: var(--text-dim);
}

/* Action plan inline reveal ──────────────────────────────── */
#papers-action-plan,
#gaps-action-plan { margin-top: 12px; }
.action-plan {
  background: var(--charcoal-3);
  border: 1px solid var(--navy-bright);
  border-left: 4px solid var(--navy-bright);
  padding: 16px 18px;
  animation: action-plan-in 0.3s ease-out;
}
.gaps-panel .action-plan {
  border-color: var(--alert);
  border-left-color: var(--alert);
}
@keyframes action-plan-in {
  0% { opacity: 0; transform: translateY(-6px); }
  100% { opacity: 1; transform: translateY(0); }
}
.action-plan-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.action-plan-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.24em;
  color: var(--navy-bright);
  text-transform: uppercase;
  font-weight: 700;
}
.gaps-panel .action-plan-eyebrow { color: var(--alert); }
.action-plan-close {
  background: transparent;
  border: none;
  color: var(--text-faint);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
.action-plan-close:hover { color: var(--text); }
.action-plan-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: 18px;
  color: var(--text);
  margin-bottom: 8px;
}
.action-plan-body {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-dim);
  margin-bottom: 8px;
}
.action-plan-next {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--text-faint);
  text-transform: uppercase;
  font-style: italic;
}

/* ═══════════════════════════════════════════════════════════
   Whitepaper builder (Phase 05 → drilldown)
   ═══════════════════════════════════════════════════════════ */

.wp-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 14px;
}
.wp-back-btn { padding: 6px 12px; }

.wp-stat-band {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 18px 24px;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  border-left: 4px solid var(--navy-bright);
  margin-top: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.wp-stat-band .stat-cell { padding-right: 24px; border-right: 1px solid var(--line-soft); min-width: 90px; }
.wp-stat-band .stat-cell:last-of-type { border-right: none; }
.wp-stat-band .stat-num { font-size: 32px; }

/* Configure grid (papers + sections) ────────────────────── */
.wp-configure-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 28px;
  margin-bottom: 28px;
}
@media (max-width: 980px) { .wp-configure-grid { grid-template-columns: 1fr; } }

/* Single-column configure layout (used when paper picker is hidden,
   e.g. the Gaps Report builder draws from sweep state, not papers). */
.wp-configure-single {
  margin-bottom: 28px;
  max-width: 720px;
}

.wp-configure-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.wp-col-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.wp-col-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-size: 26px;
  color: var(--text);
  line-height: 1.1;
}
.wp-col-title em { font-style: italic; color: var(--navy-bright); font-weight: 700; }
.wp-col-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.wp-col-explain { font-size: 12px; line-height: 1.5; color: var(--text-dim); margin-bottom: 14px; }

/* Paper picker rows ─────────────────────────────────────── */
.wp-paper-list {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line-soft);
  background: var(--charcoal-2);
  max-height: 540px;
  overflow-y: auto;
}
.wp-paper-row {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  column-gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line-soft);
  cursor: pointer;
  transition: background 0.12s ease;
}
.wp-paper-row:last-child { border-bottom: none; }
.wp-paper-row:hover { background: var(--charcoal-3); }
.wp-paper-row.on { background: rgba(45, 90, 140, 0.10); }
.wp-paper-row input { grid-row: span 3; align-self: start; margin-top: 3px; }
.wp-paper-meta { grid-column: 2; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 4px; }
.wp-paper-title { grid-column: 2; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.35; margin-bottom: 2px; }
.wp-paper-byline { grid-column: 2; font-size: 11px; color: var(--text-dim); }
.wp-paper-byline em { font-style: italic; color: var(--text-faint); }

/* Section toggles ───────────────────────────────────────── */
.wp-section-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wp-section-toggle {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: var(--charcoal-2);
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.wp-section-toggle:hover { border-color: var(--navy-bright); }
.wp-section-toggle.on { background: rgba(45, 90, 140, 0.08); border-color: var(--navy-bright); }
.wp-section-toggle-locked { cursor: default; opacity: 0.85; }
.wp-section-toggle input { align-self: start; margin-top: 3px; }
.wp-section-toggle-body { display: flex; flex-direction: column; gap: 4px; }
.wp-section-toggle-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.wp-section-toggle-title {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.wp-section-toggle-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 2px 6px;
  border: 1px solid var(--line);
  color: var(--text-faint);
  text-transform: uppercase;
}
.wp-section-toggle-tag.wp-tag-llm { color: var(--navy-bright); border-color: var(--navy-bright); }
.wp-section-toggle-tag.wp-tag-required { color: var(--alert); border-color: var(--alert); }
.wp-section-toggle-desc {
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.45;
}

/* Drafted section cards (live drafting) ─────────────────── */
.wp-draft-area {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 28px;
}
.wp-section-card {
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  border-left: 3px solid var(--line);
  padding: 18px 22px;
  transition: border-left-color 0.2s ease;
}
.wp-section-card:has(.wp-section-drafting) { border-left-color: var(--navy-bright); }
.wp-section-card:has(.wp-section-done) { border-left-color: var(--navy-bright); }
.wp-section-card:has(.wp-section-fail) { border-left-color: var(--alert); }
.wp-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
}
.wp-section-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.wp-section-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.2;
}
.wp-section-status {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 4px 9px;
  border: 1px solid currentColor;
  text-transform: uppercase;
  white-space: nowrap;
  align-self: flex-start;
}
.wp-section-pending { color: var(--text-faint); border-style: dashed; }
.wp-section-drafting { color: var(--navy-bright); animation: sweep-pulse 1.2s ease-in-out infinite; }
.wp-section-done { color: var(--text); background: rgba(45, 90, 140, 0.15); border-color: var(--navy-bright); }
.wp-section-fail { color: var(--alert); border-style: dashed; }

.wp-section-body {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--text);
  white-space: pre-wrap;
  word-wrap: break-word;
}
.wp-section-error { color: var(--alert); font-style: italic; }
.wp-section-skeleton {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wp-section-skeleton span {
  display: block;
  height: 12px;
  background: linear-gradient(90deg, var(--charcoal-3), var(--charcoal), var(--charcoal-3));
  background-size: 200% 100%;
  animation: skel-shimmer 1.4s ease-in-out infinite;
}
.wp-section-skeleton span:nth-child(1) { width: 92%; }
.wp-section-skeleton span:nth-child(2) { width: 78%; }
.wp-section-skeleton span:nth-child(3) { width: 60%; }
@keyframes skel-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Custom fields block (proposal/journal-submission builder) ── */
.builder-custom-fields {
  background: var(--charcoal);
  border: 1px solid var(--line);
  border-left: 4px solid var(--cta);
  padding: 18px 22px;
  margin-bottom: 24px;
}
.custom-fields-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 700;
  color: var(--cta);
  text-transform: uppercase;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
}
.custom-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
}
@media (max-width: 720px) { .custom-fields-grid { grid-template-columns: 1fr; } }
.builder-custom-fields .c6-field { margin-bottom: 0; }
.builder-custom-fields input,
.builder-custom-fields select {
  width: 100%;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  color: var(--text);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  padding: 9px 11px;
  outline: none;
}
.builder-custom-fields input:focus,
.builder-custom-fields select:focus { border-color: var(--cta); }

/* ═══════════════════════════════════════════════════════════
   Card 06 — INTEL PUBLISHER
   ═══════════════════════════════════════════════════════════ */

/* Top strip (mirrors card5-strip structure) ────────────────── */
.card6-strip {
  border-bottom: 1px solid var(--line);
  background: var(--charcoal-2);
  padding: 0 24px;
  display: flex;
  align-items: stretch;
  font-family: 'JetBrains Mono', monospace;
}
.card6-strip .card5-strip-back {
  display: inline-flex;
  align-items: center;
  padding: 12px 16px 12px 0;
  margin-right: 24px;
  border-right: 1px solid var(--line);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--text-faint);
}
.card6-strip .card5-strip-back:hover { color: var(--text); }
.card6-strip-title {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  font-size: 11px;
  letter-spacing: 0.18em;
}
.card6-strip-num { color: var(--navy-bright); font-weight: 600; }
.card6-strip-name { color: var(--text); }

/* Main shell ─────────────────────────────────────────────── */
.card6-main {
  flex: 1;
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 32px 28px 56px;
  background: var(--black);
}
.card6-shell { max-width: none; }

.card6-action-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: var(--cta-soft);
  border: 1px solid var(--cta);
  border-left: 4px solid var(--cta);
  margin-bottom: 24px;
  flex-wrap: wrap;
}

/* Two-column grid: controls + preview ─────────────────────── */
.card6-grid {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 24px;
  align-items: start;
}
@media (max-width: 1100px) { .card6-grid { grid-template-columns: 1fr; } }

/* Controls column ────────────────────────────────────────── */
.card6-controls {
  background: var(--charcoal);
  border: 1px solid var(--line);
  padding: 20px 22px;
  position: sticky;
  top: 24px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}
.card6-controls-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--navy-bright);
  text-transform: uppercase;
  font-weight: 700;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
  margin-bottom: 14px;
}
.card6-controls-head-2 { margin-top: 22px; }
.c6-field { margin-bottom: 12px; }
.c6-field-row {
  display: grid;
  grid-template-columns: 1fr 130px;
  gap: 10px;
  margin-bottom: 12px;
}
.c6-field-row .c6-field { margin-bottom: 0; }
.c6-field input[type="text"],
.c6-field input[type="date"],
.c6-field select {
  width: 100%;
  background: var(--charcoal-3);
  border: 1px solid var(--line);
  color: var(--text);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  padding: 8px 10px;
  outline: none;
}
.c6-field input:focus,
.c6-field select:focus { border-color: var(--navy-bright); }
.c6-hint {
  font-size: 11px;
  color: var(--text-faint);
  font-style: italic;
  margin-top: 6px;
  line-height: 1.4;
}
.c6-field input[type="file"] {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-dim);
  width: 100%;
  margin-top: 4px;
}
.c6-image-preview {
  border: 1px dashed var(--line);
  background: var(--charcoal);
  padding: 10px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.c6-image-preview img {
  max-height: 80px;
  max-width: 100%;
  width: auto;
  height: auto;
  display: block;
}
.c6-remove-img {
  margin-top: 6px;
  font-size: 10px !important;
  padding: 4px 10px !important;
}
.c6-consent-label {
  display: block;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text);
  cursor: pointer;
}
.c6-consent-label input[type="checkbox"] {
  margin-right: 6px;
  vertical-align: middle;
}
.c6-consent button[disabled] { opacity: 0.5; cursor: not-allowed; }
.c6-privacy-note {
  font-size: 11px;
  line-height: 1.5;
  color: var(--text-dim);
  background: var(--charcoal);
  border-left: 3px solid var(--navy-bright);
  padding: 10px 12px;
  margin-bottom: 16px;
}
.c6-privacy-note strong { color: var(--text); }
.c6-clear-all {
  font-size: 10px !important;
  letter-spacing: 0.12em;
  color: var(--text-dim) !important;
  border-color: var(--line) !important;
}
.c6-clear-all:hover { color: #d97a3a !important; border-color: #d97a3a !important; }

/* ── Publisher: Tradecraft tools (reformat + quality check) ── */
.c6-format-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
  flex-wrap: wrap;
}
.c6-format-status {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-faint);
  font-style: italic;
}

/* Quality check report card (lives above the document preview) */
.c6-quality-host:empty { display: none; }
.c6-quality-card {
  margin-bottom: 16px;
  padding: 16px 18px;
  background: linear-gradient(135deg, rgba(212, 134, 31, 0.05) 0%, rgba(45, 90, 140, 0.04) 100%);
  border: 1px solid var(--line);
  border-left: 3px solid;
  border-image: linear-gradient(180deg, #e8b94a 0%, #d4861f 50%, #b14a18 100%) 1;
  border-radius: 4px;
}
.c6-quality-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.c6-quality-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  font-weight: 600;
  color: #d4861f;
}
.c6-quality-dismiss {
  background: transparent;
  border: none;
  color: var(--text-dim);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
}
.c6-quality-dismiss:hover { color: var(--text); }
.c6-quality-grade {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  align-items: start;
  margin-bottom: 12px;
}
.c6-quality-score {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 0.9;
  background: linear-gradient(180deg, #e8b94a 0%, #d4861f 50%, #b14a18 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  align-self: center;
}
.c6-quality-band {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 6px;
}
.c6-quality-priorities ol,
.c6-quality-strengths ul {
  margin: 4px 0 0;
  padding-left: 20px;
}
.c6-quality-priorities li,
.c6-quality-strengths li {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
  margin-bottom: 3px;
}
.c6-quality-priorities strong,
.c6-quality-strengths strong {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.c6-quality-strengths {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.c6-quality-list { display: grid; gap: 4px; }
.c6-quality-criterion {
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--charcoal);
}
.c6-quality-criterion summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  cursor: pointer;
  list-style: none;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
}
.c6-quality-criterion summary::-webkit-details-marker { display: none; }
.c6-quality-criterion[open] summary {
  border-bottom: 1px solid var(--line);
}
.c6-quality-crit-name {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text);
}
.c6-quality-crit-score {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--navy-bright);
  padding: 2px 8px;
  background: rgba(74, 127, 193, 0.10);
  border-radius: 2px;
}
.c6-quality-crit-body {
  padding: 10px 14px 12px;
  font-size: 13px;
  line-height: 1.5;
}
.c6-quality-crit-assessment { margin: 0 0 8px; color: var(--text); }
.c6-quality-crit-section { margin-top: 6px; color: var(--text-dim); }
.c6-quality-crit-section strong {
  color: var(--text);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.c6-quality-crit-section ul { margin: 4px 0 0; padding-left: 18px; }
.c6-quality-crit-section li { margin-bottom: 3px; }
.theme-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.theme-chip {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 6px 10px;
  background: transparent;
  color: var(--text-dim);
  border: 1px solid var(--line);
  cursor: pointer;
  text-transform: uppercase;
}
.theme-chip:hover { color: var(--text); border-color: var(--navy-bright); }
.theme-chip.on { background: var(--navy); border-color: var(--navy); color: var(--text); }
[data-theme="light"] .theme-chip.on { color: #fff; }

/* Preview column ─────────────────────────────────────────── */
.card6-preview-wrap {
  min-width: 0;
}
.card6-preview-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-faint);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.card6-preview {
  background: #f4f4f0;
  border: 1px solid var(--line);
  padding: 24px;
  min-height: 600px;
  /* Always show the document on a paper-like background regardless of dashboard theme */
}

/* ── DOCUMENT (the printed/exported artifact) ──────────────
   These styles apply to .doc — both inside the on-screen preview
   and in the standalone HTML export when printed. */
.doc {
  max-width: 780px;
  margin: 0 auto;
  background: #fff;
  padding: 48px 56px;
  border: 1px solid #ddd;
  font-family: Georgia, 'Times New Roman', serif;
  color: #111;
  font-size: 14px;
  line-height: 1.65;
}
.doc-banner {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  padding: 10px 12px;
  background: #1e3a5f;
  color: #fff;
}
.doc-banner-top { margin-bottom: 32px; }
.doc-banner-bottom { margin-top: 32px; }
.doc-eyebrow {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #666;
  margin-bottom: 14px;
}
.doc-cover-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 36px;
  line-height: 1.15;
  margin: 0 0 12px;
  color: #1e3a5f;
  font-weight: 600;
}
.doc-cover-subtitle {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 18px;
  color: #444;
  margin: 0 0 20px;
  line-height: 1.4;
}
.doc-cover-meta {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 13px;
  color: #333;
  margin-bottom: 32px;
  border-top: 1px solid #ddd;
  padding-top: 14px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: baseline;
}
.doc-cover-author { font-weight: 600; }
.doc-cover-date { margin-left: auto; color: #666; }
.doc-body { font-size: 14px; line-height: 1.65; }
.doc-h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  color: #1e3a5f;
  margin: 28px 0 12px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 6px;
  font-weight: 600;
}
.doc-h3 {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #444;
  margin: 18px 0 8px;
}
.doc-body p { margin: 0 0 12px; }
.doc-list { padding-left: 24px; margin: 8px 0 16px; }
.doc-list li { margin-bottom: 8px; }
.doc-table {
  border-collapse: collapse;
  width: 100%;
  margin: 14px 0 22px;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 11px;
  line-height: 1.4;
}
.doc-table th, .doc-table td {
  border: 1px solid #d4d8dd;
  padding: 6px 9px;
  text-align: left;
  vertical-align: top;
}
.doc-table th {
  background: #eef0f4;
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1e3a5f;
}
.doc-table tr:nth-child(even) td { background: #fafbfc; }
.doc-body a { color: #1e3a5f; text-decoration: underline; word-break: break-word; }
.doc-cover-logo { margin: 0 0 18px; }
.doc-cover-logo img {
  max-height: 80px;
  max-width: 240px;
  width: auto;
  height: auto;
  display: block;
}
.doc-signoff {
  margin: 36px 0 12px;
  font-family: 'Helvetica Neue', Arial, sans-serif;
}
.doc-signoff-sig {
  display: block;
  max-height: 64px;
  max-width: 240px;
  margin: 0 0 4px;
}
.doc-signoff-name {
  font-size: 14px;
  font-weight: 700;
  color: #1e3a5f;
  border-top: 1px solid #888;
  padding-top: 4px;
  display: inline-block;
  min-width: 200px;
}
.doc-signoff-org {
  font-size: 12px;
  color: #666;
}
.doc-footer-meta {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 11px;
  color: #777;
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid #ddd;
  padding-top: 10px;
  margin-top: 24px;
}
.doc-footer-spacer { flex: 1; }
.doc-footer-logo {
  max-height: 24px;
  max-width: 80px;
  width: auto;
  height: auto;
}

/* Theme variants ─────────────────────────────────────────── */
.doc-theme-charcoal .doc-banner { background: #1e1e1e; }
.doc-theme-charcoal .doc-cover-title,
.doc-theme-charcoal .doc-h2,
.doc-theme-charcoal .doc-body a { color: #1e1e1e; }
.doc-theme-charcoal .doc-h2 { border-bottom-color: #1e1e1e33; }

.doc-theme-plain .doc-banner { background: #222; color: #fff; }
.doc-theme-plain .doc-cover-title,
.doc-theme-plain .doc-h2,
.doc-theme-plain .doc-body a { color: #111; }
.doc-theme-plain .doc-h2 { border-bottom-color: #ccc; }

/* ── PRINT: hide chrome, show document only ──────────────── */
@media print {
  /* Force light rendering regardless of dashboard theme so the browser
     does not apply dark-mode styling to the printed page. */
  html, body, .card6-body {
    color-scheme: light !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: #111 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /* Container chain that wraps the document — every layer must be white
     so nothing of the dashboard's dark theme leaks around the .doc. */
  main.card6-main,
  .card6-grid,
  .card6-preview-wrap,
  .card6-preview {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    min-height: 0 !important;
  }
  /* Hide all dashboard chrome (anything that is not the document itself) */
  .no-print, .ribbon, header.top, .ticker, footer, .card6-strip,
  .card6-action-bar, .card6-controls, .card6-preview-eyebrow,
  .phase-eyebrow, .phase-title, .phase-subtitle,
  #intel-chat-bubble, .chat-bubble, .chat-panel, .chat-wrap { display: none !important; }
  .card6-grid { display: block !important; }
  .card6-preview-wrap { display: block !important; }
  .doc {
    border: none !important;
    box-shadow: none !important;
    margin: 0 auto !important;
    padding: 0.3in 0.4in !important;
    max-width: none !important;
    background: #ffffff !important;
  }
  /* Pagination: keep headings glued to their content, keep individual
     paragraphs and list items from splitting, BUT allow long lists to
     flow across pages. Using both legacy 'page-break-*' and modern
     'break-*' for cross-browser coverage. */
  .doc-h2, .doc-h3 {
    page-break-after: avoid !important;
    break-after: avoid !important;
  }
  .doc-body p, .doc-list li {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  /* Crucially: do NOT set page-break-inside: avoid on .doc-list.
     A whole-list avoid forces the entire list to a new page if it
     doesn't fit on the current one, leaving large empty gaps. */
  .doc-list {
    page-break-inside: auto !important;
    break-inside: auto !important;
  }
  /* Cover meta margin tightened so first page can fit more body text. */
  .doc-cover-meta { margin-bottom: 20px !important; }
  .doc-cover-title { margin-bottom: 8px !important; }
  @page { margin: 0.5in; size: letter; }
}

/* ═══════════════════════════════════════════════════════════
   Card 5 — Resume banner (Foundation State persistence)
   Non-blocking overlay surfaced on init when a sweep-complete
   session is found in localStorage. Mirrors SLR Studio's
   restore-banner pattern; gold accent ties it to the same
   notable-drop severity tier the gap rail uses.
   ═══════════════════════════════════════════════════════════ */
.card5-resume-banner {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--charcoal-2);
  border: 1px solid var(--gap-notable);
  border-left: 4px solid var(--gap-notable);
  padding: 14px 20px;
  z-index: 1000;
  display: flex;
  align-items: center;
  gap: 24px;
  max-width: 820px;
  width: 92%;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
  animation: card5-resume-slide-in 0.36s ease-out;
}
@keyframes card5-resume-slide-in {
  0%   { opacity: 0; transform: translateX(-50%) translateY(20px); }
  100% { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.card5-resume-banner .resume-text {
  flex: 1;
  min-width: 0;
}
.card5-resume-banner .resume-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gap-notable);
  margin-bottom: 5px;
}
.card5-resume-banner .resume-msg {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--text);
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.card5-resume-banner .resume-msg em {
  font-style: italic;
  color: var(--text-dim);
}
.card5-resume-banner .resume-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  align-items: center;
}
.card5-resume-banner button {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 9px 14px;
  cursor: pointer;
  border: 1px solid transparent;
  background: transparent;
  transition: all 0.15s ease;
}
.card5-resume-banner .resume-btn-primary {
  background: var(--gap-notable);
  color: var(--charcoal);
  border-color: var(--gap-notable);
}
.card5-resume-banner .resume-btn-primary:hover { filter: brightness(1.1); }
.card5-resume-banner .resume-btn-ghost {
  color: var(--text-dim);
  border-color: var(--line);
}
.card5-resume-banner .resume-btn-ghost:hover {
  color: var(--text);
  border-color: var(--text-dim);
}
.card5-resume-banner .resume-btn-dismiss {
  font-size: 18px;
  letter-spacing: 0;
  color: var(--text-faint);
  padding: 4px 10px;
  font-weight: 400;
}
.card5-resume-banner .resume-btn-dismiss:hover { color: var(--text); }
@media (max-width: 720px) {
  .card5-resume-banner {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .card5-resume-banner .resume-actions {
    justify-content: flex-end;
  }
  .card5-resume-banner .resume-msg { white-space: normal; }
}

/* ═══════════════════════════════════════════════════════════
   Card 02 — SME Registry
   ═══════════════════════════════════════════════════════════ */
.card2-shell {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  padding: 32px 0 80px;
  max-width: 1240px;
  margin: 0 auto;
}
.card2-rail {
  position: sticky;
  top: 24px;
  align-self: start;
  padding-right: 24px;
}
.card2-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-faint);
  margin-bottom: 18px;
}
.card2-rail-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 38px;
  line-height: 1.05;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 22px;
}
.card2-rail-title em {
  font-style: italic;
  color: var(--navy-bright);
  font-weight: 600;
}
.card2-rail-body {
  font-size: 13px;
  line-height: 1.65;
  color: var(--text-dim);
  margin-bottom: 28px;
}
.card2-rail-list { display: flex; flex-direction: column; gap: 18px; }
.card2-rail-step { display: flex; gap: 14px; align-items: flex-start; }
.card2-rail-step .num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-faint);
  letter-spacing: 0.1em;
  flex-shrink: 0;
  padding-top: 1px;
}
.card2-rail-step .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 3px;
}
.card2-rail-step .desc {
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.55;
}

.card2-main { min-width: 0; }
.card2-main .phase-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy-bright);
  margin-bottom: 14px;
}
.card2-main .phase-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 44px;
  line-height: 1.05;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 14px;
}
.card2-main .phase-title em {
  font-style: italic;
  color: var(--navy-bright);
}
.card2-main .phase-subtitle {
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-dim);
  margin-bottom: 36px;
  max-width: 760px;
}

.sme-form { display: flex; flex-direction: column; gap: 36px; }
.sme-section {
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  padding: 28px 28px 32px;
}
.sme-section-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy-bright);
  margin-bottom: 22px;
}
.sme-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
  margin-bottom: 20px;
}
.sme-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sme-field-wide { grid-column: 1 / -1; position: relative; }
.sme-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text);
  font-weight: 600;
}
.sme-label .req { color: var(--cta); margin-left: 4px; }
.sme-label-hint {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--text-faint);
  font-weight: 400;
  margin-left: 8px;
  font-style: italic;
}
.sme-field input[type=text],
.sme-field input[type=email],
.sme-field input[type=url],
.sme-field textarea {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  padding: 11px 13px;
  background: var(--charcoal);
  border: 1px solid var(--line);
  color: var(--text);
  width: 100%;
  outline: none;
  transition: border-color 0.15s ease;
}
.sme-field input:focus,
.sme-field textarea:focus { border-color: var(--navy-bright); }
.sme-field textarea { resize: vertical; min-height: 60px; }
.sme-counter {
  position: absolute;
  right: 8px;
  bottom: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-faint);
  letter-spacing: 0.05em;
  pointer-events: none;
}

/* CV upload zone */
.sme-cv-block { margin-bottom: 24px; }
.sme-cv-zone {
  position: relative;
  border: 1px dashed var(--line);
  background: var(--charcoal);
  padding: 26px 24px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
  margin-bottom: 12px;
}
.sme-cv-zone:hover {
  border-color: var(--navy-bright);
  background: var(--charcoal-3);
}
.sme-cv-zone input[type=file] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.sme-cv-zone.has-file { cursor: default; border-style: solid; border-color: var(--navy-bright); }
.sme-cv-zone.has-file input[type=file] { display: none; }
.sme-cv-zone.has-file .sme-cv-prompt { display: none; }
.sme-cv-icon {
  font-size: 22px;
  color: var(--text-faint);
  margin-bottom: 10px;
}
.sme-cv-main {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 6px;
}
.sme-cv-sub {
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.55;
}
.sme-cv-loaded {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
}
.sme-cv-loaded-name {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--navy-bright);
  letter-spacing: 0.04em;
}
.sme-cv-remove {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--text-faint);
  font-size: 14px;
  width: 26px;
  height: 26px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
.sme-cv-remove:hover { color: var(--cta); border-color: var(--cta); }

.sme-btn-secondary {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 10px 18px;
  background: transparent;
  color: var(--navy-bright);
  border: 1px solid var(--navy-bright);
  cursor: pointer;
  transition: all 0.15s ease;
}
.sme-btn-secondary:hover:not(:disabled) {
  background: var(--navy-bright);
  color: var(--charcoal);
}
.sme-btn-secondary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.sme-extract-status {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-dim);
  margin-top: 10px;
  min-height: 18px;
}
.sme-extract-status-info { color: var(--text-dim); }
.sme-extract-status-error { color: var(--cta); }
.sme-extract-status-success { color: var(--gap-notable); }

/* Tag input + chips */
.sme-tags-block { margin-bottom: 24px; }
.sme-tags-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  background: var(--charcoal);
  border: 1px solid var(--line);
  padding: 10px 12px;
  min-height: 52px;
  margin-top: 8px;
  transition: border-color 0.15s ease;
}
.sme-tags-wrap:focus-within { border-color: var(--navy-bright); }
.sme-tags-chips { display: contents; }
.sme-tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 9px;
  background: rgba(45, 90, 140, 0.14);
  border: 1px solid var(--navy-bright);
  color: var(--navy-bright);
  cursor: pointer;
  transition: all 0.15s ease;
}
.sme-tag-chip:hover {
  background: rgba(207, 110, 58, 0.18);
  border-color: var(--gap-hard);
  color: var(--gap-hard);
}
.sme-tag-x {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  opacity: 0.7;
}
.sme-tags-input {
  flex: 1;
  min-width: 200px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text);
  padding: 4px 2px;
}
.sme-tags-input::placeholder {
  color: var(--text-faint);
  font-style: italic;
}

/* Interests checkboxes */
.sme-interests {
  border: none;
  padding: 0;
  margin: 0 0 20px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 18px;
}
.sme-interests legend { padding: 0; margin-bottom: 12px; }
.sme-checkbox {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: var(--text);
  cursor: pointer;
  padding: 4px 0;
}
.sme-checkbox input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  border: 1px solid var(--line);
  background: var(--charcoal);
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.sme-checkbox input[type=checkbox]:hover { border-color: var(--navy-bright); }
.sme-checkbox input[type=checkbox]:checked {
  background: var(--navy-bright);
  border-color: var(--navy-bright);
}
.sme-checkbox input[type=checkbox]:checked::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 5px;
  height: 9px;
  border: solid var(--charcoal);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.sme-foot {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  margin-top: 12px;
}
.sme-foot .btn-primary {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.16em;
  font-weight: 700;
  text-transform: uppercase;
  padding: 14px 28px;
  background: var(--navy-bright);
  color: var(--charcoal);
  border: 1px solid var(--navy-bright);
  cursor: pointer;
  transition: filter 0.15s ease;
}
.sme-foot .btn-primary:hover:not(:disabled) { filter: brightness(1.1); }
.sme-foot .btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.sme-foot-msg {
  font-size: 13px;
  line-height: 1.5;
  align-self: stretch;
  text-align: right;
  min-height: 18px;
}
.sme-foot-msg-error { color: var(--cta); }
.sme-foot-msg-success { color: var(--gap-notable); }
.sme-foot-fine {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--text-faint);
  font-style: italic;
  align-self: stretch;
  text-align: right;
  line-height: 1.5;
  max-width: 560px;
  margin-left: auto;
}

/* Success state */
.sme-success {
  background: var(--charcoal-2);
  border: 1px solid var(--gap-notable);
  border-left: 4px solid var(--gap-notable);
  padding: 36px 36px 32px;
  margin-top: 24px;
}
.sme-success-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gap-notable);
  margin-bottom: 14px;
}
.sme-success-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px;
  line-height: 1.15;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 14px;
}
.sme-success-body {
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-dim);
  margin-bottom: 24px;
  max-width: 640px;
}
.btn-secondary {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 11px 18px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--line);
  text-decoration: none;
  transition: all 0.15s ease;
}
.btn-secondary:hover { border-color: var(--text); }

@media (max-width: 920px) {
  .card2-shell { grid-template-columns: 1fr; gap: 32px; padding: 24px 0 60px; }
  .card2-rail { position: static; padding-right: 0; }
  .card2-rail-title { font-size: 30px; }
  .card2-main .phase-title { font-size: 32px; }
  .sme-grid-2 { grid-template-columns: 1fr; gap: 16px; }
  .sme-interests { grid-template-columns: 1fr; }
  .sme-section { padding: 22px 20px 24px; }
}

/* ── SME Dossier (Card 02 success state) ─────────────────────────
   Rendered after a successful application. Mirrors the ETL Lab
   directive-title / expertise-tag aesthetic so it doubles as a
   printable 1-pager and as the payload Card 06 publishes. */
.sme-dossier-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 18px 0 24px;
}

.sme-dossier {
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  border-left: 4px solid var(--gap-notable);
  padding: 36px 40px 32px;
  color: var(--text);
}
.sme-dossier-header {
  border-bottom: 1px solid var(--line);
  padding-bottom: 18px;
  margin-bottom: 22px;
}
.sme-dossier-headrow {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.sme-dossier-headrow-text { flex: 1; min-width: 0; }
.sme-dossier-photo-wrap {
  flex: 0 0 auto;
}
.sme-dossier-photo {
  display: block;
  width: 110px;
  height: 110px;
  object-fit: cover;
  border: 1px solid var(--line);
}
.sme-dossier-clearances {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sme-dossier-clearance {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 10px;
  border: 1px solid var(--gap-hard, #cf6e3a);
  color: var(--gap-hard, #cf6e3a);
  background: transparent;
}

/* ── Review state (Card 02 pre-submit dossier preview) ───────── */
.sme-review {
  margin-top: 24px;
}
.sme-review-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gap-notable);
  margin-bottom: 10px;
}
.sme-review-body {
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-dim);
  margin-bottom: 18px;
  max-width: 720px;
}

/* ── Photo upload (form side) ────────────────────────────────── */
.sme-identity-row {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 18px;
}
.sme-photo-block {
  flex: 0 0 auto;
  width: 140px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.sme-identity-fields { flex: 1; min-width: 0; }
.sme-photo-preview {
  width: 140px;
  height: 140px;
  background: rgba(255,255,255,0.03);
  border: 1px dashed var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.sme-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sme-photo-preview.has-photo { border-style: solid; }
.sme-photo-placeholder {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--text-dim);
}
.sme-photo-upload { width: 100%; text-align: center; }
.sme-photo-remove {
  background: none;
  border: none;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
  cursor: pointer;
  padding: 0;
}
.sme-photo-remove:hover { color: var(--text); }
.sme-photo-hint {
  font-size: 10px;
  line-height: 1.4;
  color: var(--text-dim);
  text-align: center;
}

/* ── Clearances (form side) ──────────────────────────────────── */
.sme-clearances {
  border: none;
  padding: 0;
  margin: 8px 0 12px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 8px;
}

@media (max-width: 720px) {
  .sme-identity-row { flex-direction: column; }
  .sme-photo-block { width: 100%; flex-direction: row; align-items: center; }
  .sme-photo-preview { width: 96px; height: 96px; flex: 0 0 auto; }
  .sme-photo-upload { width: auto; flex: 1; }
  .sme-dossier-headrow { flex-direction: column-reverse; }
  .sme-dossier-photo { width: 96px; height: 96px; }
}
.sme-dossier-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 10px;
}
.sme-dossier-name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 36px;
  line-height: 1.1;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 6px;
}
.sme-dossier-byline {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--text-dim);
  margin-bottom: 6px;
}
.sme-dossier-contact {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  word-break: break-word;
}

.sme-dossier-section { margin-bottom: 22px; }
.sme-dossier-section:last-of-type { margin-bottom: 0; }

.sme-dossier-h2 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gap-notable);
  margin: 0 0 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line);
}

.sme-dossier-bio {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--text);
  margin: 0;
  max-width: 64ch;
}

.sme-dossier-interests {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sme-dossier-interest {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 10px;
  border: 1px solid var(--gap-notable);
  color: var(--gap-notable);
  background: transparent;
}

.sme-dossier-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sme-dossier-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 10px;
  border: 1px solid var(--line);
  color: var(--text);
  background: rgba(255, 255, 255, 0.02);
}

.sme-dossier-footer {
  margin-top: 28px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dim);
}

/* Print: drop the chrome, render the dossier on white paper. */
@media print {
  body.printing-dossier .ribbon,
  body.printing-dossier header.top,
  body.printing-dossier .breadcrumb,
  body.printing-dossier .card2-rail,
  body.printing-dossier footer,
  body.printing-dossier .no-print,
  body.printing-dossier .sme-dossier-actions {
    display: none !important;
  }
  body.printing-dossier .card2-shell { display: block; }
  body.printing-dossier .card2-main { padding: 0; }
  body.printing-dossier .sme-success {
    background: #fff;
    border: none;
    padding: 0;
    margin: 0;
  }
  body.printing-dossier .sme-dossier {
    background: #fff;
    color: #111;
    border: none;
    border-left: 4px solid #1e3a5f;
    padding: 24px 28px;
  }
  body.printing-dossier .sme-dossier-name { color: #1e3a5f; }
  body.printing-dossier .sme-dossier-h2 {
    color: #1e3a5f;
    border-bottom-color: #ccc;
  }
  body.printing-dossier .sme-dossier-header,
  body.printing-dossier .sme-dossier-footer { border-color: #ccc; }
  body.printing-dossier .sme-dossier-byline,
  body.printing-dossier .sme-dossier-contact,
  body.printing-dossier .sme-dossier-footer { color: #555; }
  body.printing-dossier .sme-dossier-bio { color: #111; }
  body.printing-dossier .sme-dossier-tag,
  body.printing-dossier .sme-dossier-interest {
    background: #fff;
    color: #1e3a5f;
    border-color: #1e3a5f;
  }
  body.printing-dossier .sme-dossier-clearance {
    background: #fff;
    color: #b14a18;
    border-color: #b14a18;
  }
  body.printing-dossier .sme-dossier-photo {
    border-color: #ccc;
    /* Force the browser to actually print the photo (Chrome strips bg images
       but honors object-fit on <img>; this guards against print margin oddness). */
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  body.printing-dossier .sme-review-eyebrow,
  body.printing-dossier .sme-review-body { display: none !important; }
}

/* ── Card 01: Document Gap Analysis ──────────────────────────────
   Shell/rail/main mirror Card 02 visually so the platform feels
   coherent. Drop zone, doc list, and body-content styles are new. */
.card1-shell {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  padding: 32px 0 80px;
  max-width: 1240px;
  margin: 0 auto;
}
.card1-rail {
  position: sticky;
  top: 24px;
  align-self: start;
  padding-right: 24px;
}
.card1-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-faint);
  margin-bottom: 18px;
}
.card1-rail-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 38px;
  line-height: 1.05;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 22px;
}
.card1-rail-title em {
  font-style: italic;
  color: var(--navy-bright);
  font-weight: 600;
}
.card1-rail-body {
  font-size: 13px;
  line-height: 1.65;
  color: var(--text-dim);
  margin-bottom: 28px;
}
.card1-rail-list { display: flex; flex-direction: column; gap: 18px; }
.card1-rail-step { display: flex; gap: 14px; align-items: flex-start; }
.card1-rail-step .num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-faint);
  letter-spacing: 0.1em;
  flex-shrink: 0;
  padding-top: 1px;
}
.card1-rail-step .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 3px;
}
.card1-rail-step .desc {
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.55;
}
.card1-main { min-width: 0; }
.card1-main .phase-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy-bright);
  margin-bottom: 14px;
}
.card1-main .phase-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 44px;
  line-height: 1.05;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 14px;
}
.card1-main .phase-title em {
  font-style: italic;
  color: var(--navy-bright);
}
.card1-main .phase-subtitle {
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-dim);
  margin-bottom: 36px;
  max-width: 760px;
}

/* Drop zone */
.c1-drop-zone {
  border: 1px dashed var(--line);
  background: rgba(255, 255, 255, 0.02);
  padding: 28px 24px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.c1-drop-zone:hover,
.c1-drop-zone.is-drag {
  border-color: var(--navy-bright);
  background: rgba(82, 144, 217, 0.05);
}
.c1-drop-prompt .sme-cv-icon {
  font-size: 22px;
  color: var(--text-dim);
  margin-bottom: 8px;
}
.c1-drop-prompt .sme-cv-main {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 4px;
}
.c1-drop-prompt .sme-cv-sub {
  font-size: 12px;
  color: var(--text-dim);
}

/* Doc list */
.c1-doc-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 16px;
}
.c1-doc-row {
  display: grid;
  grid-template-columns: 1fr auto 220px auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  background: var(--charcoal-2);
  border: 1px solid var(--line);
}
.c1-doc-name {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.c1-doc-size {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-dim);
  letter-spacing: 0.04em;
}
.c1-doc-agency {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  padding: 6px 8px;
  background: var(--charcoal);
  border: 1px solid var(--line);
  color: var(--text);
  outline: none;
}
.c1-doc-agency:focus { border-color: var(--navy-bright); }
.c1-doc-remove {
  background: none;
  border: none;
  color: var(--text-dim);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}
.c1-doc-remove:hover { color: var(--gap-hard, #cf6e3a); }
.c1-doc-empty {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-faint);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 16px;
  padding: 10px 0;
}

/* Whitepaper body content (markdown-rendered) inside the dossier shell */
.sme-dossier-body {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.7;
  color: var(--text);
}
.sme-dossier-body p { margin: 0 0 12px; max-width: 72ch; }
.sme-dossier-body .sme-dossier-h3 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--navy-bright);
  margin: 22px 0 10px;
}
.sme-dossier-list { padding-left: 22px; margin: 8px 0 16px; max-width: 72ch; }
.sme-dossier-list li { margin-bottom: 6px; line-height: 1.6; }

/* Print mode for the Card 1 whitepaper — same toggling pattern as the
   SME dossier, just adds the body-content rules to the white-on-white
   conversion so the synthesis prints cleanly. */
@media print {
  body.printing-dossier .card1-rail,
  body.printing-dossier .card1-shell { display: block; }
  body.printing-dossier .card1-rail { display: none !important; }
  body.printing-dossier .sme-dossier-body { color: #111; }
  body.printing-dossier .sme-dossier-body .sme-dossier-h3 { color: #1e3a5f; }
}

/* OSINT/UNCLASS reminder + acknowledgment gate */
.c1-warning {
  background: rgba(207, 110, 58, 0.08);
  border: 1px solid var(--gap-hard, #cf6e3a);
  border-left-width: 3px;
  padding: 16px 20px;
  margin-bottom: 16px;
}
.c1-warning-text {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text);
  margin-bottom: 12px;
}
.c1-warning-text strong { color: var(--gap-hard, #cf6e3a); letter-spacing: 0.04em; }
.c1-warning-ack {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  color: var(--text);
  cursor: pointer;
  user-select: none;
}
.c1-warning-ack input[type=checkbox] {
  margin-top: 3px;
  width: 14px;
  height: 14px;
  cursor: pointer;
  accent-color: var(--gap-hard, #cf6e3a);
}

/* Locked drop zone (until checkbox is acknowledged) */
.c1-drop-zone.is-locked {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: auto;
  border-style: dashed;
}
.c1-drop-zone.is-locked:hover { border-color: var(--line); background: rgba(255, 255, 255, 0.02); }

/* Sample-corpus rows — one block per available sample scenario */
.c1-sample-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}
.c1-sample-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
}
.c1-sample-btn {
  flex-shrink: 0;
  min-width: 280px;
}
.c1-sample-hint {
  font-size: 12px;
  color: var(--text-dim);
  line-height: 1.5;
  flex: 1;
  min-width: 220px;
  padding-top: 8px;
}

.c1-output-block {
  margin-top: 28px;
}
.c1-output-block + .c1-output-block { margin-top: 36px; }
.c1-output-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0 12px;
  flex-wrap: wrap;
}
.c1-output-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gap-notable);
}
.c1-output-actions-r { display: flex; gap: 8px; flex-wrap: wrap; }

/* Stat band — mirrors Card 5's outcomes stat cells */
.c1-stat-band {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}
.c1-stat-cell {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  padding: 14px 16px;
}
.c1-stat-num {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px;
  font-weight: 600;
  color: var(--text);
  line-height: 1;
  margin-bottom: 4px;
}
.c1-stat-lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.c1-stat-gap     .c1-stat-num,
.c1-stat-gap     .c1-stat-lbl { color: var(--gap-hard, #cf6e3a); }
.c1-stat-drop    .c1-stat-num,
.c1-stat-drop    .c1-stat-lbl { color: var(--gap-notable); }
.c1-stat-single  .c1-stat-num,
.c1-stat-single  .c1-stat-lbl { color: var(--gap-notable); }
.c1-stat-disagree .c1-stat-num,
.c1-stat-disagree .c1-stat-lbl { color: var(--gap-hard, #cf6e3a); }
.c1-stat-hole    .c1-stat-num,
.c1-stat-hole    .c1-stat-lbl { color: var(--gap-hard, #cf6e3a); }

/* Cascade matrix */
.c1-cascade { overflow-x: auto; }
.c1-cascade-tbl {
  width: 100%;
  border-collapse: collapse;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
}
.c1-cascade-tbl th,
.c1-cascade-tbl td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  text-align: center;
  vertical-align: middle;
}
.c1-cascade-tbl thead th {
  text-align: center;
  letter-spacing: 0.12em;
  font-weight: 600;
  color: var(--text-dim);
  border-bottom-width: 2px;
}
.c1-cascade-topic {
  text-align: left !important;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--text);
  font-weight: 500;
  padding-left: 0 !important;
  letter-spacing: 0;
  text-transform: none;
}
.c1-cascade-col { font-size: 10px; }
.c1-cascade-count {
  font-family: 'JetBrains Mono', monospace;
  color: var(--text);
  font-weight: 600;
  min-width: 36px;
}
.c1-cascade-cell.hit { color: var(--text); }
.c1-cascade-cell.miss { color: var(--text-faint); }
.c1-cascade-row.c1-cascade-gap { background: rgba(207, 110, 58, 0.08); }
.c1-cascade-row.c1-cascade-gap .c1-cascade-topic,
.c1-cascade-row.c1-cascade-gap .c1-cascade-count { color: var(--gap-hard, #cf6e3a); }
.c1-cascade-row.c1-cascade-drop .c1-cascade-topic,
.c1-cascade-row.c1-cascade-drop .c1-cascade-count { color: var(--gap-notable); }
.c1-cascade-empty {
  font-size: 13px;
  color: var(--text-dim);
  font-style: italic;
}

/* Gap & seam list items */
.c1-gap-list,
.c1-seam-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c1-gap-item,
.c1-seam-item {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  border-left: 3px solid var(--line);
  padding: 14px 16px;
}
.c1-gap-hard, .c1-seam-hole, .c1-seam-disagree { border-left-color: var(--gap-hard, #cf6e3a); }
.c1-gap-notable, .c1-seam-single { border-left-color: var(--gap-notable); }
.c1-gap-topic,
.c1-seam-topic,
.c1-seam-claim {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
  line-height: 1.4;
}
.c1-gap-meta,
.c1-seam-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 8px;
}
.c1-gap-rationale,
.c1-seam-rationale {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-dim);
  max-width: 72ch;
}
.c1-gap-empty {
  font-size: 13px;
  color: var(--text-faint);
  font-style: italic;
  padding: 10px 0;
}

/* ── PIR Engine tile ───────────────────────────────────────── */
.c1-pe-pirs { display: grid; gap: 16px; }
.c1-pe-pir {
  padding: 14px 16px;
  background: var(--charcoal);
  border-left: 3px solid var(--navy-bright);
  border-radius: 0 3px 3px 0;
}
.c1-pe-pir-head {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 6px;
}
.c1-pe-pir-id {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  font-weight: 700;
  color: var(--navy-bright);
  flex: 0 0 auto;
}
.c1-pe-pir-q {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  font-weight: 600;
}
.c1-pe-pir-rat {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-dim);
  font-style: italic;
  margin-bottom: 8px;
  max-width: 72ch;
}
.c1-pe-sir-list { display: grid; gap: 8px; margin-top: 8px; }
.c1-pe-sir {
  padding: 8px 12px;
  background: rgba(74, 127, 193, 0.04);
  border-left: 2px solid rgba(74, 127, 193, 0.30);
}
.c1-pe-sir-head {
  font-size: 13px;
  line-height: 1.45;
  color: var(--text);
}
.c1-pe-sir-id {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  font-weight: 700;
  color: var(--navy-bright);
  margin-right: 6px;
}
.c1-pe-eei-list {
  margin: 6px 0 0;
  padding-left: 18px;
}
.c1-pe-eei {
  font-size: 12px;
  line-height: 1.45;
  color: var(--text-dim);
  margin-bottom: 3px;
}
.c1-pe-eei-id {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.10em;
  color: var(--text-faint);
  margin-right: 4px;
}

.c1-pe-gaps { display: grid; gap: 10px; }
.c1-pe-gap {
  padding: 10px 14px;
  background: var(--charcoal);
  border-left: 3px solid #d4861f;
  border-radius: 0 3px 3px 0;
}
.c1-pe-gap-topic {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #d4861f;
  font-weight: 700;
  margin-bottom: 4px;
}
.c1-pe-gap-missing {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
  margin-bottom: 4px;
}
.c1-pe-gap-rat {
  font-size: 12px;
  line-height: 1.45;
  color: var(--text-dim);
  font-style: italic;
}

.c1-pe-tasks { display: grid; gap: 8px; }
.c1-pe-task {
  padding: 8px 12px;
  background: var(--charcoal);
  border: 1px solid var(--line);
  border-radius: 3px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
}
.c1-pe-task-disc {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 2px 7px;
  margin-right: 8px;
  background: rgba(74, 127, 193, 0.12);
  color: var(--navy-bright);
  border-radius: 2px;
  vertical-align: 1px;
}
.c1-pe-task-text { color: var(--text); }
.c1-pe-task-fills {
  font-size: 11px;
  color: var(--text-dim);
  font-style: italic;
  margin-top: 3px;
  padding-left: 2px;
}

.c1-seam-positions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 8px 0 10px;
}
.c1-seam-position {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  align-items: baseline;
}
.c1-seam-agency {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gap-notable);
}
.c1-seam-stance {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text);
}

/* H2 variants — colored to match the section's gap/seam type */
.sme-dossier-h2.c1-h2-hard      { color: var(--gap-hard, #cf6e3a); }
.sme-dossier-h2.c1-h2-notable   { color: var(--gap-notable); }
.sme-dossier-h2.c1-h2-single    { color: var(--gap-notable); }
.sme-dossier-h2.c1-h2-disagree  { color: var(--gap-hard, #cf6e3a); }
.sme-dossier-h2.c1-h2-hole      { color: var(--gap-hard, #cf6e3a); }
.c1-h2-sub {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 400;
  color: var(--text-dim);
  letter-spacing: 0;
  text-transform: none;
  margin-top: 4px;
}

/* SME Bridge tile — finding cards with embedded candidate mini-dossiers */
/* Timeline tile — vertical chronology with date column, dot marker, body */
.c1-timeline-list {
  display: flex;
  flex-direction: column;
}
.c1-tl-row {
  display: grid;
  grid-template-columns: 130px 24px 1fr;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
  align-items: flex-start;
}
.c1-tl-row:last-child { border-bottom: none; }
.c1-tl-date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  padding-top: 3px;
}
.c1-tl-marker {
  display: flex;
  justify-content: center;
  padding-top: 7px;
}
.c1-tl-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--gap-notable);
}
.c1-tl-body { min-width: 0; }
.c1-tl-head {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 4px;
}
.c1-tl-cat {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gap-notable);
  padding: 3px 7px;
  border: 1px solid var(--gap-notable);
}
.c1-tl-agency {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.c1-tl-label {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.45;
  color: var(--text);
  margin-bottom: 4px;
}
.c1-tl-source {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-faint);
  letter-spacing: 0.04em;
}

.c1-bridge-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.c1-bridge-finding {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  border-left-width: 3px;
  padding: 18px 20px;
}
.c1-bridge-finding.c1-bridge-hard { border-left-color: var(--gap-hard, #cf6e3a); }
.c1-bridge-finding.c1-bridge-hole { border-left-color: var(--gap-hard, #cf6e3a); }
.c1-bridge-finding.c1-bridge-drop { border-left-color: var(--gap-notable); }

.c1-bridge-finding-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.c1-bridge-finding-type {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--text-dim);
  flex-shrink: 0;
}
.c1-bridge-hard .c1-bridge-finding-type,
.c1-bridge-hole .c1-bridge-finding-type { color: var(--gap-hard, #cf6e3a); }
.c1-bridge-drop .c1-bridge-finding-type { color: var(--gap-notable); }
.c1-bridge-finding-topic {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}
.c1-bridge-finding-rationale {
  font-size: 12px;
  line-height: 1.55;
  color: var(--text-dim);
  margin-bottom: 10px;
  max-width: 72ch;
}

.c1-bridge-needed-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 10px 0 14px;
  padding: 8px 0;
  border-top: 1px dashed var(--line);
  border-bottom: 1px dashed var(--line);
}
.c1-bridge-needed-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  color: var(--text-faint);
  padding-top: 6px;
  flex-shrink: 0;
}
.c1-bridge-needed-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.c1-bridge-need {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 5px 9px;
  border: 1px dashed var(--text-dim);
  color: var(--text-dim);
}

.c1-bridge-no-match {
  font-size: 13px;
  color: var(--gap-hard, #cf6e3a);
  font-style: italic;
  padding: 8px 0;
}

.c1-bridge-debug {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  line-height: 1.55;
  color: var(--text-dim);
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--line);
  padding: 12px 14px;
  margin: 8px 0 18px;
  white-space: pre;
  overflow-x: auto;
}

/* ── Card 03: Pattern Recognition ─────────────────────────────── */

/* Doc-list row: file-kind tag + free-text source input replace the
   agency dropdown that Card 01 uses. */
.c3-doc-row { grid-template-columns: 1fr auto 280px auto; }
.c3-kind-tag {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  font-weight: 700;
  padding: 2px 6px;
  margin-right: 8px;
  border: 1px solid var(--line);
  color: var(--text-dim);
}
.c3-kind-pdf  { border-color: #c0392b; color: #c0392b; }
.c3-kind-xlsx { border-color: #2e8b57; color: #2e8b57; }
.c3-kind-docx { border-color: var(--navy-bright); color: var(--navy-bright); }
.c3-doc-source {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  padding: 7px 9px;
  background: var(--charcoal);
  border: 1px solid var(--line);
  color: var(--text);
  outline: none;
}
.c3-doc-source:focus { border-color: var(--navy-bright); }

/* Pattern Atlas — pattern cards */
.c3-pattern-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c3-pattern-item {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  border-left: 3px solid var(--gap-notable);
  padding: 14px 16px;
}
.c3-pattern-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.c3-pattern-cat {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gap-notable);
  flex-shrink: 0;
}
.c3-pattern-name {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}
.c3-pattern-desc {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text);
  margin-bottom: 8px;
  max-width: 72ch;
}
.c3-pattern-evidence {
  font-size: 12px;
  line-height: 1.55;
  color: var(--text-dim);
  margin: 6px 0;
  max-width: 72ch;
}
.c3-pattern-evidence-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  font-weight: 700;
  color: var(--text-faint);
  margin-right: 6px;
}
.c3-pattern-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.c3-pattern-src {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.06em;
  padding: 3px 7px;
  border: 1px solid var(--line);
  color: var(--text-dim);
}

/* Trend Brief */
.c3-trend-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c3-trend-item {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  border-left: 3px solid var(--gap-notable);
  padding: 14px 16px;
}
.c3-trend-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.c3-trend-dir {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 4px 8px;
  border: 1px solid currentColor;
  flex-shrink: 0;
}
.c3-trend-dir-increasing { color: var(--gap-notable); }
.c3-trend-dir-decreasing { color: var(--gap-hard, #cf6e3a); }
.c3-trend-dir-stable     { color: var(--text-dim); }
.c3-trend-dir-shifting   { color: var(--navy-bright); }
.c3-trend-axis {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}
.c3-trend-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-dim);
  margin: 4px 0 8px;
}

/* Subgroup Comparison */
.c3-subgroup-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.c3-subgroup-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 10px;
  border: 1px solid var(--gap-notable);
  color: var(--gap-notable);
}
.c3-comparison-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.c3-comparison-item {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  border-left: 3px solid var(--gap-notable);
  padding: 14px 16px;
}
.c3-comparison-dim {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}
.c3-comparison-finding {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 12px;
  align-items: baseline;
  padding: 4px 0;
}
.c3-comparison-subgroup {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gap-notable);
}
.c3-comparison-stance {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text);
}

/* Recommendations */
.c3-rec-list {
  font-size: 14px;
  line-height: 1.65;
}
.c3-rec-ol {
  padding-left: 24px;
  margin: 4px 0 4px;
  color: var(--text);
}
.c3-rec-ol li { margin-bottom: 8px; max-width: 72ch; }
.c3-sme-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.c3-sme-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 6px 10px;
  border: 1px solid var(--navy-bright);
  color: var(--navy-bright);
  background: transparent;
}

/* Recommendations h2 colour variants */
.sme-dossier-h2.c3-h2-research { color: var(--gap-notable); }
.sme-dossier-h2.c3-h2-grant    { color: var(--gap-notable); }
.sme-dossier-h2.c3-h2-briefing { color: var(--navy-bright); }
.sme-dossier-h2.c3-h2-sme      { color: var(--navy-bright); }

/* Print isolation: extend the same per-tile pattern to Card 03 outputs */
@media print {
  body.printing-dossier[data-print-tile="pattern_atlas"]       .c1-output-block:not([data-output="pattern_atlas"]),
  body.printing-dossier[data-print-tile="trend_brief"]         .c1-output-block:not([data-output="trend_brief"]),
  body.printing-dossier[data-print-tile="subgroup_comparison"] .c1-output-block:not([data-output="subgroup_comparison"]),
  body.printing-dossier[data-print-tile="recommendations"]     .c1-output-block:not([data-output="recommendations"]) {
    display: none !important;
  }
  body.printing-dossier .c3-pattern-item,
  body.printing-dossier .c3-trend-item,
  body.printing-dossier .c3-comparison-item {
    background: #fafafa; border-color: #ccc; border-left-color: #b14a18;
  }
  body.printing-dossier .c3-pattern-cat,
  body.printing-dossier .c3-trend-axis,
  body.printing-dossier .c3-pattern-name,
  body.printing-dossier .c3-comparison-dim { color: #1e3a5f; }
  body.printing-dossier .c3-pattern-desc,
  body.printing-dossier .c3-comparison-stance { color: #111; }
  body.printing-dossier .c3-pattern-evidence,
  body.printing-dossier .c3-pattern-evidence-label,
  body.printing-dossier .c3-trend-meta { color: #555; }
  body.printing-dossier .c3-pattern-src { border-color: #ccc; color: #555; }
  body.printing-dossier .c3-subgroup-tag,
  body.printing-dossier .c3-comparison-subgroup { color: #b14a18; border-color: #b14a18; }
  body.printing-dossier .c3-sme-tag { color: #1e3a5f; border-color: #1e3a5f; }
  body.printing-dossier .c3-trend-dir-increasing { color: #2e8b57; border-color: #2e8b57; }
  body.printing-dossier .c3-trend-dir-decreasing { color: #b14a18; border-color: #b14a18; }
  body.printing-dossier .c3-trend-dir-stable     { color: #555;    border-color: #555; }
  body.printing-dossier .c3-trend-dir-shifting   { color: #1e3a5f; border-color: #1e3a5f; }
}

@media (max-width: 720px) {
  .c3-doc-row { grid-template-columns: 1fr auto; row-gap: 8px; }
  .c3-doc-source { grid-column: 1 / -1; width: 100%; }
  .c3-comparison-finding { grid-template-columns: 1fr; gap: 4px; }
}

.c1-bridge-candidates {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 6px;
}

/* Candidate mini-dossier — photo + body in a flex row */
.c1-cand {
  display: flex;
  gap: 14px;
  padding: 12px 14px;
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  align-items: flex-start;
}
.c1-cand-photo-wrap { flex-shrink: 0; }
.c1-cand-photo {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border: 1px solid var(--line);
  display: block;
}
.c1-cand-photo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 24px;
  font-weight: 600;
  color: var(--text-dim);
  background: rgba(255,255,255,0.04);
}
.c1-cand-body { flex: 1; min-width: 0; }
.c1-cand-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 2px;
}
.c1-cand-name {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.c1-cand-score {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gap-notable);
  flex-shrink: 0;
}
.c1-cand-byline {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-dim);
  margin-bottom: 6px;
}
.c1-cand-bio {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-dim);
  margin-bottom: 8px;
  max-width: 72ch;
}
.c1-cand-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.c1-cand-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 3px 7px;
  border: 1px solid var(--line);
  color: var(--text);
}
.c1-cand-tag-matched {
  border-color: var(--gap-notable);
  color: var(--gap-notable);
  background: rgba(207, 110, 58, 0.08);
}

/* Per-tile failure state — used when one of the parallel analyze calls fails */
.c1-tile-failure {
  background: rgba(207, 110, 58, 0.05);
  border: 1px solid var(--gap-hard, #cf6e3a);
  border-left-width: 3px;
  padding: 22px 24px;
  color: var(--text);
}
.c1-tile-failure-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gap-hard, #cf6e3a);
  margin-bottom: 10px;
}
.c1-tile-failure p {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text);
  margin: 0 0 8px;
  max-width: 64ch;
}
.c1-tile-failure-hint { color: var(--text-dim) !important; font-size: 12px !important; }

/* Print: only the tile whose button was clicked prints. body[data-print-tile]
   identifies the target output; the others are hidden. Refactored from
   N×(N-1) explicit pairs to a simpler "hide any block whose data-output
   doesn't match the print target" pattern, so adding new tiles is free. */
@media print {
  body.printing-dossier[data-print-tile="whitepaper"]   .c1-output-block:not([data-output="whitepaper"]),
  body.printing-dossier[data-print-tile="gap_report"]   .c1-output-block:not([data-output="gap_report"]),
  body.printing-dossier[data-print-tile="seams_report"] .c1-output-block:not([data-output="seams_report"]),
  body.printing-dossier[data-print-tile="timeline"]     .c1-output-block:not([data-output="timeline"]),
  body.printing-dossier[data-print-tile="sme_bridge"]   .c1-output-block:not([data-output="sme_bridge"]) {
    display: none !important;
  }
  body.printing-dossier .c1-output-actions { display: none !important; }
  body.printing-dossier .c1-stat-band { color: #111; }
  body.printing-dossier .c1-stat-cell { background: #fff; border-color: #ccc; }
  body.printing-dossier .c1-stat-num { color: #111; }
  body.printing-dossier .c1-stat-lbl { color: #555; }
  body.printing-dossier .c1-cascade-tbl th,
  body.printing-dossier .c1-cascade-tbl td { border-color: #ccc; }
  body.printing-dossier .c1-cascade-cell.miss { color: #999; }
  body.printing-dossier .c1-cascade-row.c1-cascade-gap { background: #fff3eb; }
  body.printing-dossier .c1-gap-item,
  body.printing-dossier .c1-seam-item { background: #fafafa; border-color: #ccc; }
  body.printing-dossier .c1-gap-rationale,
  body.printing-dossier .c1-seam-rationale,
  body.printing-dossier .c1-gap-meta,
  body.printing-dossier .c1-seam-meta { color: #555; }
  body.printing-dossier .c1-gap-topic,
  body.printing-dossier .c1-seam-topic,
  body.printing-dossier .c1-seam-claim { color: #111; }
  body.printing-dossier .c1-seam-stance { color: #111; }

  /* SME Bridge — light-theme conversions */
  body.printing-dossier .c1-bridge-finding { background: #fafafa; border-color: #ccc; }
  body.printing-dossier .c1-bridge-finding-topic { color: #111; }
  body.printing-dossier .c1-bridge-finding-rationale { color: #555; }
  body.printing-dossier .c1-bridge-need {
    border-color: #555; color: #555; background: #fff;
  }
  body.printing-dossier .c1-cand { background: #fff; border-color: #ccc; }
  body.printing-dossier .c1-cand-photo { border-color: #ccc; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body.printing-dossier .c1-cand-photo-placeholder { background: #eee; color: #555; }
  body.printing-dossier .c1-cand-name { color: #111; }
  body.printing-dossier .c1-cand-byline { color: #555; }
  body.printing-dossier .c1-cand-bio { color: #333; }
  body.printing-dossier .c1-cand-tag { border-color: #ccc; color: #111; }
  body.printing-dossier .c1-cand-tag-matched {
    border-color: #b14a18; color: #b14a18; background: #fff3eb;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }

  /* Timeline light-theme conversions */
  body.printing-dossier .c1-tl-row { border-bottom-color: #ccc; }
  body.printing-dossier .c1-tl-date { color: #555; }
  body.printing-dossier .c1-tl-dot {
    background: #b14a18;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
  body.printing-dossier .c1-tl-cat { border-color: #b14a18; color: #b14a18; }
  body.printing-dossier .c1-tl-agency { color: #555; }
  body.printing-dossier .c1-tl-label { color: #111; }
  body.printing-dossier .c1-tl-source { color: #888; }
}

/* ── Card 04 (TRIPWIRE) ─────────────────────────────────────── */

/* Mode selector chip row at the top of the card */
.c4-mode-row {
  display: flex; align-items: center; gap: 12px;
  margin: 8px 0 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}
.c4-mode-chip {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; font-weight: 600;
  padding: 8px 14px;
  background: transparent;
  color: var(--text-dim);
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.c4-mode-chip:hover { border-color: var(--navy-bright); color: var(--text); }
.c4-mode-chip.on {
  background: var(--navy-bright);
  color: #fff;
  border-color: var(--navy-bright);
}
.c4-mode-hint {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--text-dim);
  letter-spacing: 0.04em;
}

/* Indicator items (behavioral + combination signals) */
.c4-indicator-list {
  display: flex; flex-direction: column; gap: 10px;
  margin: 6px 0 0;
}
.c4-indicator-item {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--navy-bright);
  background: var(--card-bg);
  border-radius: 3px;
}
.c4-indicator-signal {
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
  margin-bottom: 4px;
}
.c4-indicator-context {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.5;
}

/* Step lists (what to do / what not to do / cadence / records / safety / principles) */
.c4-step-list {
  margin: 6px 0 0; padding-left: 22px;
  font-size: 14px; line-height: 1.6;
}
.c4-step-list li { margin-bottom: 6px; color: var(--text); }
.c4-step-list-warn li::marker { color: var(--gap-notable, #b14a18); }
.c4-placeholder-list li {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: var(--text-dim);
}

/* Reporting lanes */
.c4-lane-list {
  display: flex; flex-direction: column; gap: 10px;
  margin: 6px 0 0;
}
.c4-lane-item {
  padding: 12px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--gap-notable, #b14a18);
  background: var(--card-bg);
  border-radius: 3px;
}
.c4-lane-trigger {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gap-notable, #b14a18);
  margin-bottom: 6px;
}
.c4-lane-contact {
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
  margin-bottom: 4px;
  word-break: break-word;
}
.c4-lane-notes {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.5;
}

/* Link list (Learn more / Training resources) */
.c4-link-list {
  margin: 6px 0 0; padding-left: 22px;
  font-size: 14px; line-height: 1.6;
}
.c4-link-list li { margin-bottom: 4px; }
.c4-link-list a {
  color: var(--navy-bright);
  text-decoration: underline;
  word-break: break-word;
}

/* Severity badges on indicators */
.c4-indicator-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-bottom: 4px;
}
.c4-indicator-head .c4-indicator-signal {
  margin-bottom: 0; flex: 1 1 auto;
}
.c4-severity {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em;
  padding: 3px 8px;
  border-radius: 3px;
  border: 1px solid;
  flex: 0 0 auto;
}
.c4-severity-low    { color: #3a7d44; border-color: #3a7d44; background: rgba(58, 125, 68, 0.08); }
.c4-severity-medium { color: #c08a1b; border-color: #c08a1b; background: rgba(192, 138, 27, 0.08); }
.c4-severity-high   { color: #b14a18; border-color: #b14a18; background: rgba(177, 74, 24, 0.10); }

/* Dialogue / scripted-line items */
.c4-dialogue-list {
  display: flex; flex-direction: column; gap: 10px;
  margin: 6px 0 0;
}
.c4-dialogue-item {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--navy-bright);
  background: var(--card-bg);
  border-radius: 3px;
}
.c4-dialogue-situation {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 6px;
}
.c4-dialogue-response {
  font-style: italic;
  font-size: 14px;
  color: var(--text);
  line-height: 1.5;
}

/* FAQ items (after_you_report) */
.c4-faq-list {
  display: flex; flex-direction: column; gap: 10px;
  margin: 6px 0 0;
}
.c4-faq-item {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--navy-bright);
  background: var(--card-bg);
  border-radius: 3px;
}
.c4-faq-q {
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
  margin-bottom: 4px;
}
.c4-faq-a {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.5;
}

/* Learn-more row with QR alongside the link list */
.c4-learn-row {
  display: flex; gap: 24px; align-items: flex-start;
  flex-wrap: wrap;
}
.c4-learn-row .c4-link-list { flex: 1 1 auto; min-width: 220px; }
.c4-qr {
  flex: 0 0 auto;
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
}
.c4-qr img {
  display: block;
  background: #fff;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 4px;
}
.c4-qr-large { width: 100%; text-align: center; }
.c4-qr-large img { margin: 0 auto; }
.c4-qr-caption {
  font-size: 10px; letter-spacing: 0.06em;
  color: var(--text-dim);
  margin-top: 6px;
  line-height: 1.4;
}
.c4-qr-url {
  word-break: break-all;
  color: var(--navy-bright);
  font-weight: 600;
}

/* Review-by stamp in tile footer */
.c4-review-by {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.10em;
  color: var(--text-dim);
  text-transform: uppercase;
}

/* Card 04 inline ack (replaces the orange-bordered REMINDER block) */
.c4-ack-inline {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
  padding: 12px 14px;
  margin: 0 0 12px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gap-notable, #b14a18);
  border-radius: 3px;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.c4-ack-inline:hover { border-color: var(--navy-bright); }
.c4-ack-inline:has(input:checked) {
  border-left-color: #3a7d44;
  background: rgba(58, 125, 68, 0.06);
}
.c4-ack-inline input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  accent-color: var(--navy-bright);
  cursor: pointer;
}
.c4-ack-inline span { flex: 1 1 auto; }
.c4-ack-inline-prefix {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.16em; font-weight: 700;
  color: var(--gap-notable, #b14a18);
  text-transform: uppercase;
  margin-right: 6px;
}
.c4-ack-inline:has(input:checked) .c4-ack-inline-prefix {
  color: #3a7d44;
}

/* Tiny hint that appears beside the disabled BUILD button */
.c4-build-row {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
}
.c4-build-hint {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--text-dim);
}

/* Card 04 mode tabs: DUAL USE / RESEARCH SECURITY */
.c4-mode-tabs {
  display: flex;
  gap: 0;
  margin: 12px 0 18px;
  border-bottom: 1px solid var(--border);
}
.c4-mode-tab {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; letter-spacing: 0.16em; font-weight: 600;
  padding: 10px 18px;
  background: transparent;
  color: var(--text-dim);
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
  margin-bottom: -1px;
}
.c4-mode-tab:hover { color: var(--text); }
.c4-mode-tab.is-on {
  color: var(--navy-bright);
  border-bottom-color: var(--navy-bright);
}

/* Research Security resource panel (shown when RESEARCH SECURITY mode is active) */
.c4-rs-resources {
  margin: 26px 0 32px;
  padding: 20px 22px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-left: 3px solid var(--navy-bright);
  border-radius: 4px;
}
.c4-rs-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; font-weight: 600;
  color: var(--navy-bright);
  margin-bottom: 6px;
}
.c4-rs-lead {
  margin: 0 0 16px;
  font-size: 14px; line-height: 1.5;
  color: var(--text);
}
.c4-rs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.c4-rs-card {
  display: flex; flex-direction: column; gap: 6px;
  padding: 14px 16px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 3px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.c4-rs-card:hover {
  border-color: var(--navy-bright);
  transform: translateY(-1px);
}
.c4-rs-card-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.16em; font-weight: 600;
  color: var(--text-dim);
}
.c4-rs-film .c4-rs-card-tag { color: var(--gap-notable, #b14a18); }
.c4-rs-card-name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 17px; line-height: 1.2;
  color: var(--text);
}
.c4-rs-card-desc {
  font-size: 13px; line-height: 1.5;
  color: var(--text-dim);
  flex: 1 1 auto;
}
.c4-rs-card-cta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.10em; font-weight: 600;
  color: var(--navy-bright);
  margin-top: 4px;
}
.c4-rs-foot {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px dashed var(--border);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.04em;
  color: var(--text-dim);
}

/* Card 04 hero sample-cards (the new prominent landing zone) */
.c4-samples-hero {
  margin: 18px 0 32px;
}
.c4-samples-hero-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; font-weight: 600;
  color: var(--navy-bright);
  margin-bottom: 12px;
}
.c4-samples-hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
/* `display: grid` above defeats the browser default `display: none` for the
   [hidden] attribute, so we need to restore it explicitly so the inactive
   mode group actually disappears. */
.c4-samples-hero-grid[hidden] { display: none; }
.c4-sample-card {
  display: flex; flex-direction: column; gap: 4px;
  padding: 14px 16px;
  text-align: left;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
  transition: border-color 0.15s ease, transform 0.15s ease, background 0.15s ease;
}
.c4-sample-card:hover {
  border-color: var(--navy-bright);
  transform: translateY(-1px);
  background: var(--card-bg);
}
.c4-sample-card-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.16em; font-weight: 600;
  color: var(--navy-bright);
}
.c4-sample-card-name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 17px; line-height: 1.25;
  color: var(--text);
}
.c4-samples-hero-or {
  margin: 16px 0 0;
  font-size: 13px;
  color: var(--text-dim);
}
.c4-samples-hero-link {
  color: var(--navy-bright);
  text-decoration: underline;
}

/* Card 04 "What you'll get" preview block */
.c4-preview {
  margin: 12px 0 26px;
  padding: 18px 20px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 4px;
}
.c4-preview-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; font-weight: 600;
  color: var(--navy-bright);
  margin-bottom: 4px;
}
.c4-preview-lead {
  margin: 0 0 12px;
  font-size: 14px; line-height: 1.5;
  color: var(--text);
}
.c4-preview-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px 18px;
  margin: 0;
}
.c4-preview-tile {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 13px;
  line-height: 1.4;
}
.c4-preview-num {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  color: var(--navy-bright);
  margin-right: 4px;
}
.c4-preview-name {
  font-weight: 600;
  color: var(--text);
  display: block;
}
.c4-preview-desc {
  color: var(--text-dim);
  display: block;
}
.c4-preview-foot {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px dashed var(--border);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.04em;
  color: var(--text-dim);
}

/* Card 04 form: 2-column row for setting + language */
.c4-row-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
@media (max-width: 600px) {
  .c4-row-2col { grid-template-columns: 1fr; }
}

/* Compact sample chips inline below products textarea */
.c4-samples-compact {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px;
  margin: 10px 0 16px;
  padding: 10px 0;
  border-top: 1px dashed var(--border);
  border-bottom: 1px dashed var(--border);
}
.c4-samples-compact-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.06em;
  color: var(--text-dim);
  margin-right: 4px;
}
.c4-chip {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 5px 11px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.c4-chip:hover:not(:disabled) {
  border-color: var(--navy-bright);
  color: var(--navy-bright);
}
.c4-chip:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/* Tighter local-context label (folded into setting section) */
.c4-scope-field { margin-top: 6px; }
.sme-label-inline {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.10em; font-weight: 600;
  color: var(--text);
  text-transform: uppercase;
  margin-bottom: 6px;
  display: block;
}
.sme-label-hint-inline {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 11px;
  color: var(--text-dim);
  text-transform: none;
  letter-spacing: 0;
  margin-left: 6px;
}

/* Crosslinks panel: suggest adjacent cards after the TRIPWIRE pack */
.c4-crosslinks {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
}
.c4-crosslinks-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em;
  color: var(--text-dim);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.c4-crosslinks-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px; line-height: 1.15;
  color: var(--text);
  margin: 0 0 6px;
}
.c4-crosslinks-subtitle {
  font-size: 14px; color: var(--text-dim);
  margin: 0 0 22px;
}
.c4-crosslinks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.c4-crosslink {
  display: flex; flex-direction: column; gap: 8px;
  padding: 18px 20px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 4px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.c4-crosslink:hover {
  border-color: var(--navy-bright);
  transform: translateY(-1px);
}
.c4-crosslink-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.16em;
  color: var(--navy-bright);
  font-weight: 600;
}
.c4-crosslink-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 18px; line-height: 1.25;
  color: var(--text);
}
.c4-crosslink-why {
  font-size: 13px; line-height: 1.5;
  color: var(--text-dim);
  flex: 1 1 auto;
}
.c4-crosslink-cta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.14em;
  color: var(--navy-bright);
  font-weight: 600;
  margin-top: 4px;
}
.c4-crosslink-arrow { display: inline-block; transition: transform 0.15s ease; }
.c4-crosslink:hover .c4-crosslink-arrow { transform: translateX(3px); }

/* Compliance checklist (pre-LLM) on the Card 04 form */
.c4-compliance-details {
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--card-bg);
  padding: 0;
}
.c4-compliance-summary {
  cursor: pointer;
  padding: 12px 16px;
  display: flex; flex-direction: column; gap: 4px;
  list-style: none;
  user-select: none;
}
.c4-compliance-summary::-webkit-details-marker { display: none; }
.c4-compliance-summary::before {
  content: '+';
  display: inline-block;
  margin-right: 8px;
  color: var(--navy-bright);
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
}
.c4-compliance-details[open] .c4-compliance-summary::before { content: '−'; }
.c4-compliance-summary-label {
  font-weight: 600; font-size: 14px; color: var(--text);
  display: inline;
}
.c4-compliance-summary-hint {
  font-size: 12px; color: var(--text-dim);
  font-family: 'JetBrains Mono', monospace; letter-spacing: 0.04em;
}
.c4-compliance-body {
  padding: 0 16px 16px;
  border-top: 1px solid var(--border);
}
.c4-compliance-empty {
  padding: 12px 0; margin: 0;
  font-size: 13px; color: var(--text-dim);
  font-style: italic;
}
.c4-compliance-list {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px 24px;
  padding-top: 14px;
}
@media (max-width: 760px) {
  .c4-compliance-list { grid-template-columns: 1fr; }
}
.c4-compliance-item {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 14px; line-height: 1.4;
  cursor: pointer;
  color: var(--text);
}
.c4-compliance-item input[type="checkbox"] {
  margin-top: 3px;
  flex: 0 0 auto;
  cursor: pointer;
}

/* RTL handling for Arabic and other RTL languages on Card 04 tiles */
.sme-dossier[dir="rtl"] {
  text-align: right;
  direction: rtl;
}
.sme-dossier[dir="rtl"] .sme-dossier-eyebrow,
.sme-dossier[dir="rtl"] .c4-indicator-head,
.sme-dossier[dir="rtl"] .c4-dialogue-item,
.sme-dossier[dir="rtl"] .c4-faq-item,
.sme-dossier[dir="rtl"] .c4-lane-item {
  text-align: right;
}
.sme-dossier[dir="rtl"] .c4-step-list,
.sme-dossier[dir="rtl"] .c4-link-list {
  padding-left: 0;
  padding-right: 22px;
}
.sme-dossier[dir="rtl"] .c4-indicator-item,
.sme-dossier[dir="rtl"] .c4-lane-item,
.sme-dossier[dir="rtl"] .c4-dialogue-item,
.sme-dossier[dir="rtl"] .c4-faq-item {
  border-left: 1px solid var(--border);
  border-right: 3px solid var(--navy-bright);
}
.sme-dossier[dir="rtl"] .c4-lane-item {
  border-right-color: var(--gap-notable, #b14a18);
}

/* On-demand quiz CTA (replaces the parallel-call quiz tile) */
.c4-quiz-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  margin: 36px 0 0;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-left: 3px solid var(--navy-bright);
  border-radius: 4px;
  flex-wrap: wrap;
}
.c4-quiz-cta-text {
  display: flex; flex-direction: column; gap: 4px;
  flex: 1 1 auto;
  min-width: 240px;
}
.c4-quiz-cta-text strong {
  font-size: 15px;
  color: var(--text);
}
.c4-quiz-cta-text span {
  font-size: 13px;
  color: var(--text-dim);
}

/* Training quiz */
.c4-quiz-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 18px;
  counter-reset: c4-quiz;
}
.c4-quiz-item {
  counter-increment: c4-quiz;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--navy-bright);
  background: var(--card-bg);
  border-radius: 3px;
}
.c4-quiz-q {
  font-weight: 600; font-size: 15px; line-height: 1.45;
  color: var(--text);
  margin-bottom: 12px;
}
.c4-quiz-q::before {
  content: 'Q' counter(c4-quiz) '. ';
  color: var(--navy-bright);
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  margin-right: 4px;
}
.c4-quiz-choices {
  list-style: none; padding: 0; margin: 0 0 10px;
  display: flex; flex-direction: column; gap: 6px;
}
.c4-quiz-choice {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 6px 10px;
  font-size: 14px; line-height: 1.45;
  color: var(--text);
  border: 1px solid transparent;
  border-radius: 3px;
}
.c4-quiz-choice.is-correct {
  border-color: #3a7d44;
  background: rgba(58, 125, 68, 0.08);
}
.c4-quiz-choice-letter {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  color: var(--text-dim);
  flex: 0 0 auto;
}
.c4-quiz-choice.is-correct .c4-quiz-choice-letter { color: #3a7d44; }
.c4-quiz-choice-text { flex: 1 1 auto; }
.c4-quiz-correct-badge {
  flex: 0 0 auto;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 700; letter-spacing: 0.14em;
  color: #3a7d44;
  border: 1px solid #3a7d44;
  padding: 2px 6px;
  border-radius: 3px;
}
.c4-quiz-explanation {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.5;
  padding-top: 6px;
  border-top: 1px dashed var(--border);
  margin-top: 4px;
}
.c4-quiz-passing {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text-dim);
  letter-spacing: 0.06em;
  margin-top: 12px;
}

/* "Print blank" mode hides the answer markings so staff can fill it in */
body.printing-quiz-blank .c4-quiz-choice.is-correct {
  border-color: var(--border) !important;
  background: transparent !important;
}
body.printing-quiz-blank .c4-quiz-choice.is-correct .c4-quiz-choice-letter {
  color: var(--text-dim) !important;
}
body.printing-quiz-blank .c4-quiz-correct-badge,
body.printing-quiz-blank .c4-quiz-explanation,
body.printing-quiz-blank #qz-notes-section,
body.printing-quiz-blank .c4-quiz-passing {
  display: none !important;
}

/* Customer-facing public notice */
.c4-pn-greeting {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 14px;
}
.c4-pn-thanks {
  font-size: 14px;
  color: var(--text);
  font-style: italic;
  text-align: center;
  margin: 14px 0 0;
}

/* Print isolation: same per-tile pattern as Cards 01/03 */
@media print {
  body.printing-dossier[data-print-tile="awareness"]      .c1-output-block:not([data-output="awareness"]),
  body.printing-dossier[data-print-tile="supervisor"]     .c1-output-block:not([data-output="supervisor"]),
  body.printing-dossier[data-print-tile="reporting"]      .c1-output-block:not([data-output="reporting"]),
  body.printing-dossier[data-print-tile="public_notice"]  .c1-output-block:not([data-output="public_notice"]),
  body.printing-dossier[data-print-tile="quiz"]           .c1-output-block:not([data-output="quiz"]) {
    display: none !important;
  }
  body.printing-dossier .c4-quiz-item {
    background: #fafafa; border-color: #ccc; border-left-color: #b14a18;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
  body.printing-dossier .c4-quiz-choice.is-correct {
    border-color: #2f6638; background: #e9f1eb;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
  body.printing-dossier .c4-quiz-choice.is-correct .c4-quiz-choice-letter,
  body.printing-dossier .c4-quiz-correct-badge { color: #2f6638; border-color: #2f6638; }
  body.printing-dossier .c4-quiz-explanation { color: #555; border-color: #bbb; }
  body.printing-dossier .c4-quiz-q { color: #111; }
  body.printing-dossier .c4-quiz-passing { color: #555; }
  body.printing-dossier .c4-indicator-item,
  body.printing-dossier .c4-lane-item,
  body.printing-dossier .c4-dialogue-item,
  body.printing-dossier .c4-faq-item {
    background: #fafafa; border-color: #ccc;
    border-left-color: #b14a18;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
  body.printing-dossier .c4-indicator-signal,
  body.printing-dossier .c4-lane-contact,
  body.printing-dossier .c4-faq-q,
  body.printing-dossier .c4-dialogue-response { color: #111; }
  body.printing-dossier .c4-indicator-context,
  body.printing-dossier .c4-lane-notes,
  body.printing-dossier .c4-faq-a,
  body.printing-dossier .c4-dialogue-situation,
  body.printing-dossier .c4-mode-hint,
  body.printing-dossier .c4-review-by,
  body.printing-dossier .c4-qr-caption { color: #555; }
  body.printing-dossier .c4-lane-trigger { color: #b14a18; }
  body.printing-dossier .c4-link-list a,
  body.printing-dossier .c4-qr-url { color: #1e3a5f; }
  body.printing-dossier .c4-mode-row { display: none !important; }
  body.printing-dossier .c4-severity {
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
  body.printing-dossier .c4-severity-low    { color: #2f6638; border-color: #2f6638; background: #e9f1eb; }
  body.printing-dossier .c4-severity-medium { color: #946813; border-color: #946813; background: #f5ecd9; }
  body.printing-dossier .c4-severity-high   { color: #8a3a14; border-color: #8a3a14; background: #f5e2d8; }
  body.printing-dossier .c4-qr img {
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
    background: #fff !important; border-color: #999;
  }
}

@media (max-width: 920px) {
  .card1-shell { grid-template-columns: 1fr; gap: 32px; padding: 24px 0 60px; }
  .card1-rail { position: static; padding-right: 0; }
  .card1-rail-title { font-size: 30px; }
  .card1-main .phase-title { font-size: 32px; }
  .c1-doc-row { grid-template-columns: 1fr auto; row-gap: 8px; }
  .c1-doc-agency { grid-column: 1 / -1; width: 100%; }
  .c1-output-actions { flex-direction: column; align-items: flex-start; }
  .c1-seam-position { grid-template-columns: 1fr; gap: 4px; }
  .c4-mode-row { flex-direction: column; align-items: flex-start; }
}

/* ── Legal pages (Terms, Privacy) ─────────────────────────── */
.legal-doc {
  max-width: 820px;
  margin: 32px auto 64px;
  padding: 0 24px;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--text);
  line-height: 1.65;
}
.legal-doc h1 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 28px;
  letter-spacing: 0.04em;
  margin: 0 0 8px;
  color: var(--text);
}
.legal-doc .legal-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-faint);
  margin-bottom: 6px;
}
.legal-doc .legal-effective {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text-dim);
  margin-bottom: 28px;
  letter-spacing: 0.06em;
}
.legal-doc h2 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text);
  margin: 36px 0 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line-soft);
}
.legal-doc h3 {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  margin: 22px 0 8px;
}
.legal-doc p, .legal-doc li {
  font-size: 15px;
  color: var(--text);
}
.legal-doc ul, .legal-doc ol {
  padding-left: 24px;
  margin: 8px 0 16px;
}
.legal-doc li { margin-bottom: 6px; }
.legal-doc a {
  color: var(--navy-bright);
  text-decoration: underline;
}
.legal-doc strong { color: var(--text); }
.legal-doc .lawyer-flag {
  background: rgba(217, 122, 58, 0.10);
  border: 1px solid rgba(217, 122, 58, 0.45);
  border-left: 4px solid #d97a3a;
  padding: 14px 16px;
  margin: 24px 0;
  font-size: 14px;
  color: var(--text);
}
.legal-doc .lawyer-flag strong {
  color: #d97a3a;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  display: block;
  margin-bottom: 6px;
}
.legal-doc table.legal-table {
  border-collapse: collapse;
  width: 100%;
  margin: 14px 0 20px;
  font-size: 13px;
}
.legal-doc table.legal-table th,
.legal-doc table.legal-table td {
  border: 1px solid var(--line);
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
}
.legal-doc table.legal-table th {
  background: var(--charcoal);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
}

footer .footer-legal {
  display: flex;
  gap: 14px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
footer .footer-legal a {
  color: var(--text-dim);
  text-decoration: none;
}
footer .footer-legal a:hover { color: var(--text); }

/* ── Contact form ─────────────────────────────────────────── */
.contact-form { margin: 24px 0 32px; }
.contact-hp { display: none; }
.contact-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.contact-field { margin-bottom: 16px; }
.contact-field label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 6px;
}
.contact-field .req { color: #d97a3a; }
.contact-field input,
.contact-field select,
.contact-field textarea {
  width: 100%;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--text);
  background: var(--charcoal);
  border: 1px solid var(--line);
  padding: 10px 12px;
  border-radius: 2px;
  box-sizing: border-box;
}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
  border-color: var(--navy-bright);
  outline: none;
}
.contact-field textarea {
  resize: vertical;
  min-height: 120px;
  font-family: 'Inter', sans-serif;
  line-height: 1.5;
}
.contact-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.contact-hint {
  font-size: 12px;
  color: var(--text-faint);
  font-style: italic;
}
@media (max-width: 600px) {
  .contact-row { grid-template-columns: 1fr; }
}
