@font-face { font-family: "Inter"; font-weight: 400; font-style: normal; font-display: swap; src: url("/vendor/fonts/inter-400.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 500; font-style: normal; font-display: swap; src: url("/vendor/fonts/inter-500.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 600 700; font-style: normal; font-display: swap; src: url("/vendor/fonts/inter-600.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-weight: 400; font-style: normal; font-display: swap; src: url("/vendor/fonts/source-serif-4-400.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-weight: 500 700; font-style: normal; font-display: swap; src: url("/vendor/fonts/source-serif-4-600.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("/vendor/fonts/ibm-plex-sans-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-style: normal; font-display: swap; src: url("/vendor/fonts/ibm-plex-sans-500.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600 700; font-style: normal; font-display: swap; src: url("/vendor/fonts/ibm-plex-sans-600.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Serif"; font-weight: 400; font-style: normal; font-display: swap; src: url("/vendor/fonts/ibm-plex-serif-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Serif"; font-weight: 500 600; font-style: normal; font-display: swap; src: url("/vendor/fonts/ibm-plex-serif-500.woff2") format("woff2"); }

:root {
  /* Light, calm theme modelled on a document-style console: warm off-white
     page, white cards, hairline borders, one ink colour, one link colour. */
  --bg: #f7f5f0;
  --panel: #ffffff;
  --panel-2: #f2efe8;
  --panel-3: #ebe7dd;
  --surface-2: #f2efe8;
  --border: #e6e1d6;
  --border-strong: #d4cdbf;
  --text: #1d2b27;
  --text-dim: #5d6b66;
  --accent: #0f6b57;
  --gold: #a8833a;
  --gold-soft: rgba(168,131,58, 0.14);
  --accent-dim: #eaf0fd;
  --green: #2e7d4f;
  --amber: #a8650a;
  --red: #c0392b;
  --purple: #6d4fc4;
  --shadow: 0 1px 2px rgba(15,61,51, 0.06);

  /* Inter and Source Serif, bundled in /vendor/fonts (SIL Open Font License), so they work offline. */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

  /* Type scale — every heading/label/body size in the app pulls from here,
     so nothing drifts to a browser-default h3/h4 size or a one-off px value. */
  --fs-page-title: 26px;
  --fs-card-title: 16px;
  --fs-section-title: 13px;
  --fs-body: 14px;
  --fs-small: 13px;
  --fs-micro: 12px;
  --fs-stat: 28px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.5;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

button, select, input, textarea {
  font-family: inherit;
}

h1, h2, h3, h4, h5, h6 {
  font-family: inherit;
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 4px;
  letter-spacing: 0;
}
h3 { font-size: var(--fs-card-title); }
h4 { font-size: var(--fs-section-title); text-transform: uppercase; letter-spacing: 0; color: var(--text-dim); }

p { margin: 0 0 8px; line-height: 1.55; }
p:last-child { margin-bottom: 0; }

#app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  grid-template-rows: 58px minmax(0, 1fr);
  background:
    linear-gradient(180deg, rgba(15,107,87,0.035), transparent 260px),
    var(--bg);
}

.app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  grid-column: 1 / -1;
  padding: 10px 18px;
  border-bottom: 1px solid var(--border);
  background: rgba(12, 16, 23, 0.98);
  position: sticky;
  top: 0;
  z-index: 5;
  backdrop-filter: blur(14px);
}

.brand-block {
  display: flex;
  align-items: center;
  gap: 12px;
}
.brand-mark {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(15,61,51,0.128);
  border-radius: 8px;
  overflow: hidden;
  background: #e7f1f8;
  box-shadow: 0 8px 22px rgba(15,61,51,0.11);
  flex: 0 0 auto;
}
.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
header h1 { font-size: var(--fs-page-title); font-weight: 700; margin: 0; letter-spacing: 0; text-transform: none; }
.brand-subtitle { color: var(--text-dim); font-size: var(--fs-micro); margin-top: 1px; }
.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
header .status {
  font-size: var(--fs-small);
  color: var(--text-dim);
  padding: 5px 9px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(255,255,255,0.45);
}
header label { font-size: var(--fs-small); }
header .status.ok { color: var(--green); border-color: rgba(67,209,141,0.35); background: rgba(67,209,141,0.08); }
header .status.err { color: var(--red); border-color: rgba(239,97,116,0.35); background: rgba(239,97,116,0.08); }

.icon-btn { font-size: 16px; padding: 6px 11px; line-height: 1; }
.settings-menu-wrap { position: relative; }
.settings-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 260px;
  background: var(--panel-2);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 14px 16px;
  box-shadow: 0 12px 32px rgba(15,61,51,0.225);
  z-index: 50;
}
.settings-menu-field { display: flex; flex-direction: column; gap: 5px; font-size: var(--fs-small); }
.settings-menu-field select { width: 100%; }

nav.steps {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 18px 10px;
  background: #ebeff5;
  border-right: 1px solid var(--border);
  border-bottom: none;
  position: sticky;
  top: 58px;
  height: calc(100vh - 58px);
  z-index: 4;
  backdrop-filter: none;
}
nav.steps button {
  width: 100%;
  background: rgba(255,255,255,0.324);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 10px 9px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--fs-body);
  font-weight: 500;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  text-align: left;
}
nav.steps button span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums;
  padding-top: 1px;
}
nav.steps button strong {
  display: block;
  grid-column: 2;
  color: inherit;
  font-size: var(--fs-body);
  font-weight: 650;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}
nav.steps button em {
  display: block;
  grid-column: 2;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
  line-height: 1.35;
  margin-top: 2px;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}
nav.steps button.active {
  background: rgba(15,107,87,0.11);
  color: var(--text);
  border-color: var(--accent);
}
nav.steps button:disabled {
  opacity: 1;
  cursor: not-allowed;
}
nav.steps button:disabled strong {
  color: var(--text);
}
nav.steps button:disabled em,
nav.steps button:disabled span {
  color: var(--text-dim);
}

.sidebar-section-label {
  color: #6f7d8f;
  font-size: var(--fs-micro);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
  padding: 0 8px 4px;
}
.sidebar-divider {
  height: 1px;
  background: var(--border);
  margin: 8px 6px;
}
.sidebar-mini-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 11px;
  background: rgba(255,255,255,0.45);
  margin: 2px 4px 0;
}
.sidebar-mini-card span,
.sidebar-mini-card em {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
  line-height: 1.4;
}
.sidebar-mini-card strong {
  display: block;
  margin: 4px 0;
  font-size: var(--fs-small);
}

main {
  grid-column: 2;
  grid-row: 2;
  padding: 22px 24px 40px;
  max-width: 1520px;
  width: 100%;
  margin: 0 auto;
}
.view { display: none; }
.view.active { display: block; }

.module-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.module-summary-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.45), transparent 80px),
    rgba(255,255,255,0.324);
  min-width: 0;
}
.module-summary-card span,
.module-summary-card strong,
.module-summary-card em {
  display: block;
}
.module-summary-card span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  text-transform: uppercase;
}
.module-summary-card strong {
  margin-top: 3px;
  font-size: var(--fs-card-title);
}
.module-summary-card em {
  color: var(--text-dim);
  font-size: var(--fs-small);
  font-style: normal;
  line-height: 1.4;
  margin-top: 4px;
}

.foundation-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.foundation-heading h3 { margin: 0 0 3px 0; }
.foundation-heading p { margin: 0; }
.foundation-heading-index {
  flex: 0 0 auto;
  width: 30px; height: 30px;
  border-radius: 7px;
  background: rgba(15,107,87,0.13);
  border: 1px solid var(--accent);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-micro);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.page-next-bar {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 12px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255,255,255,0.36);
}
.review-steps-nav,
.ontology-mode-nav {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 6px;
  background: rgba(255,255,255,0.36);
}
.subsection-heading { margin: 18px 0 8px 0; padding-top: 14px; border-top: 1px solid var(--border); }
.subsection-heading:first-of-type { padding-top: 0; border-top: none; }

.connector-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}
@media (max-width: 1100px) {
  .connector-grid { grid-template-columns: 1fr; }
}
.connector-lane {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255,255,255,0.396);
}
.connector-lane.streaming {
  border-color: rgba(69,196,138,0.28);
  background:
    linear-gradient(90deg, rgba(69,196,138,0.07), transparent 45%),
    rgba(255,255,255,0.396);
}
.connector-lane-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
  margin-bottom: 10px;
}
.connector-lane-head strong,
.connector-lane-head span,
.connector-lane-head em {
  display: block;
}
.connector-lane-head span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  margin-top: 2px;
}
.connector-lane-head em {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 2px 8px;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.connector-lane.streaming .connector-lane-head em {
  color: var(--green);
  border-color: rgba(69,196,138,0.34);
  background: rgba(69,196,138,0.08);
}
.connector-lane-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.connector-tile {
  position: relative;
  background: rgba(255,255,255,0.45);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  text-align: left;
  transition: border-color 0.15s, transform 0.15s;
  cursor: default;
}
.connector-tile:hover { border-color: var(--border-strong); transform: translateY(-1px); }
.connector-tile .connector-icon {
  width: 34px; height: 34px;
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.9);
}
.connector-tile .connector-icon svg { width: 20px; height: 20px; }
.connector-tile .connector-name { font-size: var(--fs-small); font-weight: 650; line-height: 1.2; }
.connector-tile .connector-category { font-size: var(--fs-micro); color: var(--text-dim); line-height: 1.25; margin-top: 2px; }

.review-steps-nav { display: flex; gap: 8px; margin-bottom: 14px; }

/* The "confirm and move on" action for a page/stage, pinned top-right
   instead of buried in whichever card happens to contain the confirming
   control — same position on every step of the funnel. */
.page-next-bar { display: flex; justify-content: flex-end; gap: 10px; margin-bottom: 14px; }
.review-step-btn {
  background: rgba(255,255,255,0.27);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 7px 12px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--fs-body);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}
.review-step-btn span { color: #748196; font-size: var(--fs-micro); }
.review-step-btn.active { background: rgba(15,107,87,0.13); color: var(--text); border-color: var(--accent); }
.review-step-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.review-step { display: none; }
.review-step.active { display: block; }
.input-stage { display: none; }
.input-stage.active { display: block; }

.ontology-entity-card, .ontology-rel-row {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.ontology-entity-card .title-row, .ontology-rel-row .title-row {
  display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap;
}
.ontology-entity-card .prop-list { margin-top: 6px; font-size: var(--fs-small); color: var(--text-dim); }
.ontology-edit-form label { display: block; margin-top: 8px; font-size: var(--fs-small); color: var(--text-dim); }
.ontology-edit-form input[type=text], .ontology-edit-form select, .ontology-edit-form textarea { width: 100%; }

.card {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.45), transparent 90px),
    var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: var(--shadow);
}
.card > h3:first-child,
.card > h4:first-child {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(15,61,51,0.072);
  margin-bottom: 10px;
}
.section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.dropzone {
  border: 1px dashed var(--border-strong);
  border-radius: 8px;
  padding: 24px;
  text-align: center;
  color: var(--text-dim);
  background: rgba(255,255,255,0.45);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.dropzone:hover, .dropzone.drag { border-color: var(--accent); color: var(--text); background: #eceef4; }
.dropzone .file-input-control {
  margin-top: 10px;
}

.ontology-picker {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  margin: 12px 0;
}

.ontology-controls {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 14px;
  max-width: none;
  overflow-x: auto;
}

.ontology-controls label {
  color: var(--text);
  font-size: var(--fs-small);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.file-input-control {
  max-width: 360px;
  color: var(--text);
  font-size: var(--fs-body);
}

.file-input-control::file-selector-button {
  background: rgba(255,255,255,0.45);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 8px 13px;
  border-radius: 6px;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 500;
  margin-right: 10px;
}

.graph-empty-state {
  min-height: 420px;
  display: grid;
  place-items: center;
  color: var(--text-dim);
  text-align: center;
  padding: 24px;
}

button.primary {
  background: #0f6b57;
  color: #07111d;
  border: 1px solid rgba(15,61,51,0.14);
  padding: 9px 16px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--fs-body);
  font-weight: 650;
  box-shadow: 0 8px 18px rgba(15,107,87,0.16);
}
button.primary:hover { filter: brightness(1.1); }
button.primary:disabled { opacity: 0.5; cursor: not-allowed; }

button.secondary,
label.secondary {
  background: rgba(255,255,255,0.36);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 8px 13px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--fs-body);
  font-weight: 500;
}

label.secondary {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

table { width: 100%; border-collapse: collapse; font-size: var(--fs-body); }
.workspace-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.workspace-card {
  min-width: 0;
}

.workspace-block {
  border-top: 1px solid var(--border);
  padding-top: 10px;
  margin-top: 10px;
}

.workspace-block-title {
  color: var(--text);
  font-weight: 650;
  margin-bottom: 6px;
}

.assumption-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 8px 14px;
}
.assumption-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.assumption-summary-grid .workspace-block {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  margin-top: 0;
}
.assumption-summary-grid ul {
  margin: 6px 0 0 18px;
  padding: 0;
  color: var(--text);
  font-size: var(--fs-small);
}
.assumption-summary-grid li {
  margin-bottom: 6px;
}
.reasoning-plan-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  margin-top: 8px;
}
.reasoning-plan-grid ul {
  margin: 6px 0 0 18px;
  padding: 0;
}
.assumption-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: var(--fs-small);
}
.assumption-field span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.assumption-field input[type="text"],
.assumption-field input[type="number"] {
  padding: 5px 7px;
}
.assumption-field.checkbox-field {
  flex-direction: row;
  align-items: center;
  gap: 6px;
}
.assumption-field.edited input { border-color: var(--accent); }
.assumption-field.edited span { color: var(--accent); }
.assumption-hint {
  color: var(--text-dim);
  font-size: 10.5px;
  line-height: 1.3;
}

.exec-summary {
  font-size: 14px;
  line-height: 1.55;
  color: var(--text);
  background: var(--surface-2, rgba(255,255,255,0.54));
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  margin: 10px 0 4px;
}
.exec-deck,
.family-ceo-page {
  border: 1px solid rgba(15,107,87,0.28);
  border-radius: 8px;
  background: var(--surface-2, rgba(255,255,255,0.54));
  padding: 18px;
  margin: 14px 0;
  min-height: 360px;
}
.experiential-report {
  --report-scale: 1;
  font-size: calc(var(--fs-body) * var(--report-scale));
}
.experiential-report[data-font-scale="compact"] {
  --report-scale: 0.92;
}
.experiential-report[data-font-scale="comfortable"] {
  --report-scale: 1.08;
}
.report-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.report-header-row h4 {
  margin: 0;
}
.report-header-row .dim {
  font-size: calc(12px * var(--report-scale));
  margin-top: 2px;
}
.report-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.report-font-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2px;
  background: rgba(15,61,51,0.187);
}
.report-font-toggle > span {
  color: var(--text-dim);
  font-size: 10px;
  padding: 0 6px;
  white-space: nowrap;
}
.report-font-toggle .compact-btn {
  min-height: 24px;
  padding: 3px 7px;
  font-size: 10px;
}
.report-font-btn {
  border-color: transparent;
  box-shadow: none;
}
.report-font-btn.active {
  color: var(--text);
  background: rgba(15,107,87,0.16);
  border-color: rgba(15,107,87,0.34);
}
.report-stage-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 16px 0 12px;
}
.report-stage-arrow {
  position: relative;
  border: 1px solid rgba(15,107,87,0.18);
  border-radius: 8px 4px 4px 8px;
  background: rgba(15,61,51,0.198);
  color: var(--text-dim);
  min-height: 54px;
  padding: 10px 18px 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  cursor: pointer;
  overflow: visible;
}
.report-stage-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -8px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%) rotate(45deg);
  border-top: 1px solid rgba(15,107,87,0.18);
  border-right: 1px solid rgba(15,107,87,0.18);
  background: inherit;
  z-index: 1;
}
.report-stage-arrow:last-child::after {
  display: none;
}
.report-stage-arrow span {
  color: var(--accent);
  font-size: var(--fs-micro);
  font-weight: 800;
}
.report-stage-arrow strong {
  color: inherit;
  font-size: calc(13px * var(--report-scale));
  line-height: 1.2;
  font-weight: 700;
}
.report-stage-arrow.active {
  color: var(--text);
  border-color: rgba(15,107,87,0.58);
  background: linear-gradient(180deg, rgba(25,48,75,0.82), rgba(14,27,43,0.76));
  box-shadow: 0 0 0 1px rgba(15,107,87,0.1), 0 12px 26px rgba(15,61,51,0.09);
}
.report-stage-arrow:hover {
  color: var(--text);
  border-color: rgba(15,107,87,0.42);
}
.report-stage {
  min-width: 0;
}
.report-slide {
  border: 1px solid rgba(15,107,87,0.24);
  border-radius: 8px;
  background: var(--surface-2, rgba(255,255,255,0.54));
  padding: 18px;
  margin: 14px 0;
  min-height: 260px;
}
.domain-cockpit {
  display: grid;
  gap: 14px;
}
.domain-cockpit-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  border: 1px solid rgba(15,107,87,0.16);
  border-radius: 8px;
  background: rgba(15,61,51,0.154);
  padding: 14px;
}
.domain-cockpit-hero strong {
  color: var(--text);
  font-size: calc(16px * var(--report-scale));
  line-height: 1.35;
  max-width: 860px;
}
.domain-cockpit-hero span {
  color: var(--text-dim);
  font-size: calc(12px * var(--report-scale));
  text-align: right;
  min-width: 180px;
}
.domain-cockpit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.domain-cockpit-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(15,61,51,0.187);
  padding: 12px;
  min-height: 124px;
  display: flex;
  flex-direction: column;
}
.domain-cockpit-card span,
.domain-cockpit-card em {
  display: block;
  color: var(--text-dim);
  font-size: calc(11px * var(--report-scale));
  font-style: normal;
}
.domain-cockpit-card strong {
  display: block;
  color: var(--text);
  font-size: calc(19px * var(--report-scale));
  margin: 5px 0 7px;
  overflow-wrap: anywhere;
}
.domain-cockpit-card em {
  margin-top: auto;
  line-height: 1.35;
}
.exec-deck-kicker,
.report-section-label {
  color: var(--accent);
  font-size: var(--fs-micro);
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0;
}
.exec-deck-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 0.34fr);
  gap: 18px;
  align-items: start;
  margin-top: 6px;
}
.exec-deck-hero.compact {
  display: block;
  max-width: 1120px;
  padding: 8px 0 2px;
}
.exec-deck-hero h3 {
  margin: 0;
  font-size: calc(17px * var(--report-scale));
  line-height: 1.35;
  color: var(--text);
  max-width: 980px;
}
.exec-deck-hero p {
  color: var(--text);
  margin: 0;
  line-height: 1.58;
  max-width: 1120px;
  font-size: calc(13.5px * var(--report-scale));
}
.exec-deck-financial {
  border: 1px solid rgba(15,107,87,0.24);
  border-radius: 8px;
  padding: 14px;
  background: rgba(15,61,51,0.187);
  text-align: right;
  min-height: 142px;
}
.exec-deck-financial span,
.exec-deck-financial strong,
.exec-deck-financial em {
  display: block;
}
.exec-deck-financial span,
.exec-deck-financial em {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.exec-deck-financial strong {
  color: var(--text);
  font-size: calc(24px * var(--report-scale));
  margin: 5px 0 3px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.exec-deck-financial small,
.exec-deck-metric small {
  display: block;
  color: var(--text-dim);
  font-size: calc(10.5px * var(--report-scale));
  line-height: 1.35;
  margin-top: 8px;
  border-top: 1px solid rgba(15,61,51,0.128);
  padding-top: 8px;
}
.exec-deck-metric small {
  margin-top: auto;
}
.exec-deck-readout {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  margin-top: 14px;
  background: rgba(255,255,255,0.45);
}
.exec-deck-readout strong {
  display: block;
  color: var(--text);
  margin-bottom: 8px;
}
.exec-deck-readout ul {
  margin: 0 0 0 18px;
  padding: 0;
  color: var(--text);
}
.exec-deck-readout li {
  margin-bottom: 6px;
  line-height: 1.42;
}
.exec-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(260px, 0.82fr);
  gap: 12px;
  margin-top: 14px;
}
.exec-visual-grid:not(.family) {
  grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.5fr);
}
.exec-visual-panel {
  border: 1px solid rgba(15,107,87,0.18);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(15,25,42,0.74), rgba(6,11,20,0.52));
  padding: 12px;
  min-height: 168px;
  min-width: 0;
}
.exec-visual-panel.wide {
  min-width: 0;
}
.exec-visual-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.exec-visual-title span {
  color: var(--accent);
  font-size: var(--fs-micro);
  font-weight: 760;
  text-transform: uppercase;
}
.exec-visual-title strong {
  color: var(--text);
  font-size: calc(12.5px * var(--report-scale));
  text-align: right;
}
.exec-mini-bars {
  display: grid;
  gap: 9px;
}
.exec-mini-bar-row {
  display: grid;
  grid-template-columns: minmax(90px, 0.8fr) minmax(120px, 1.2fr) 34px;
  gap: 10px;
  align-items: center;
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.exec-mini-bar-row span {
  color: var(--text-dim);
  font-size: var(--fs-small);
  overflow-wrap: anywhere;
}
.exec-mini-bar-row div,
.exec-linear-gauge div {
  height: 8px;
  border-radius: 999px;
  background: #ffffff;
  overflow: hidden;
}
.exec-mini-bar-row i,
.exec-linear-gauge i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.exec-mini-bar-row.deploy i { background: var(--green); }
.exec-mini-bar-row.hold i { background: var(--accent); }
.exec-mini-bar-row.fix i { background: #e8b339; }
.exec-mini-bar-row.pause i { background: var(--red); }
.exec-mini-bar-row strong {
  color: var(--text);
  text-align: right;
  font-size: var(--fs-small);
}
.exec-gauge-row {
  display: grid;
  gap: 14px;
}
.exec-linear-gauge {
  display: grid;
  grid-template-columns: minmax(80px, 0.55fr) minmax(120px, 1fr) minmax(72px, 0.45fr);
  gap: 10px;
  align-items: center;
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.exec-linear-gauge span {
  color: var(--text-dim);
  font-size: var(--fs-small);
}
.exec-linear-gauge strong {
  color: var(--text);
  font-size: var(--fs-small);
  text-align: right;
}
.exec-linear-gauge.warning i {
  background: var(--red);
}
.exec-mini-bubble-map {
  position: relative;
  min-height: 118px;
  border: 1px solid rgba(15,61,51,0.14);
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.9) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,0.9) 1px, transparent 1px),
    rgba(15,61,51,0.176);
  background-size: 25% 25%;
  overflow: hidden;
}
.exec-mini-bubble-map em {
  position: absolute;
  color: var(--text-dim);
  font-size: 10px;
  font-style: normal;
  text-transform: uppercase;
}
.exec-mini-bubble-map .x { right: 8px; bottom: 5px; }
.exec-mini-bubble-map .y { left: 8px; top: 6px; }
.exec-mini-bubble {
  position: absolute;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  border: 1px solid rgba(15,107,87,0.7);
  background: rgba(15,107,87,0.22);
  padding: 0;
  cursor: pointer;
}
.exec-mini-bubble.selected {
  border-color: rgba(62,207,142,0.95);
  background: rgba(62,207,142,0.62);
  box-shadow: 0 0 14px rgba(62,207,142,0.26);
}
.exec-mini-bar-row:hover span,
.exec-mini-bar-row:focus span {
  color: var(--text);
}
.exec-hover-detail {
  margin-top: 10px;
  border-top: 1px solid rgba(15,61,51,0.128);
  padding-top: 9px;
  min-height: 86px;
}
.exec-hover-detail span,
.exec-hover-detail em {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.exec-hover-detail strong {
  display: block;
  color: var(--text);
  font-size: calc(12px * var(--report-scale));
  margin: 3px 0 4px;
}
.exec-hover-detail ul {
  margin: 0 0 0 16px;
  padding: 0;
  color: var(--text-dim);
  font-size: calc(11px * var(--report-scale));
}
.exec-hover-detail li {
  margin-bottom: 3px;
  line-height: 1.32;
}
.exec-donut {
  --pct: 0;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  margin: 6px auto 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at center, #e9edf7 0 58%, transparent 59%),
    conic-gradient(var(--accent) calc(var(--pct) * 1%), #ffffff 0);
}
.exec-donut span {
  color: var(--text);
  font-weight: 800;
}
.exec-deck-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}
.exec-deck-metrics.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.exec-deck-metric {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  background: rgba(15,61,51,0.209);
  min-width: 0;
  min-height: 132px;
  display: flex;
  flex-direction: column;
}
.exec-deck-metric span,
.exec-deck-metric em {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.exec-deck-metric strong {
  display: block;
  color: var(--text);
  font-size: calc(18px * var(--report-scale));
  margin: 5px 0 3px;
  overflow-wrap: anywhere;
}
.exec-recommendation-strip {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.14fr) minmax(0, 1.08fr);
  gap: 10px;
  margin-top: 12px;
}
.exec-recommendation-strip div {
  border: 1px solid rgba(15,107,87,0.18);
  border-radius: 8px;
  padding: 12px;
  background: rgba(15,61,51,0.209);
  min-height: 118px;
}
.exec-recommendation-strip span {
  display: block;
  color: var(--accent);
  font-size: var(--fs-micro);
  font-weight: 760;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.exec-recommendation-strip strong {
  display: block;
  color: var(--text);
  font-size: calc(13px * var(--report-scale));
  line-height: 1.45;
}
.exec-deck-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr);
  gap: 12px;
  margin-top: 12px;
}
.exec-deck-panel {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255,255,255,0.45);
}
.exec-deck-panel strong {
  display: block;
  margin-bottom: 8px;
  color: var(--text);
}
.exec-deck-panel ul {
  margin: 0 0 0 18px;
  padding: 0;
  color: var(--text);
}
.exec-deck-panel li {
  margin-bottom: 7px;
  line-height: 1.42;
}
.experiential-report .workspace-block,
.experiential-report .workspace-block p,
.experiential-report .workspace-block li,
.experiential-report table,
.experiential-report .dim {
  font-size: calc(var(--fs-body) * var(--report-scale));
}
.experiential-report .workspace-block > strong,
.experiential-report .family-panel-title strong,
.experiential-report .family-brief-header strong {
  font-size: calc(var(--fs-card-title) * var(--report-scale));
}
.experiential-report .badge,
.experiential-report th,
.experiential-report .report-section-label,
.experiential-report .exec-deck-kicker {
  font-size: calc(var(--fs-micro) * var(--report-scale));
}
.report-section-label {
  margin: 0 0 12px;
  padding-top: 0;
}
.detailed-analysis-entry {
  border: 1px solid rgba(15,107,87,0.22);
  border-radius: 8px;
  background: rgba(15,61,51,0.165);
  padding: 18px;
  margin-top: 14px;
  min-height: 180px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.detailed-analysis-entry p {
  margin: 0;
}
.detailed-analysis-page {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(15,61,51,0.121);
  padding: 12px 14px;
  margin-top: 12px;
}

.reasoning-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0 4px;
}
.reasoning-kpi {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  background: var(--surface-2, rgba(255,255,255,0.54));
  min-width: 0;
}
.reasoning-kpi span,
.reasoning-kpi em {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.reasoning-kpi strong {
  display: block;
  margin: 4px 0 2px;
  font-size: 18px;
  color: var(--text);
  overflow-wrap: anywhere;
}
.report-details {
  margin-top: 14px;
}
.report-details summary {
  cursor: pointer;
  color: var(--text);
  font-weight: 700;
  font-size: 13px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255,255,255,0.54);
  margin-bottom: 10px;
}
.reasoning-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.95fr) minmax(0, 0.8fr);
  gap: 12px;
  align-items: stretch;
}
.reasoning-visual-grid .workspace-block {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  margin-top: 12px;
}
.reasoning-bars {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}
.reasoning-bar-row {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(90px, 1.3fr) minmax(72px, auto);
  gap: 8px;
  align-items: center;
  font-size: var(--fs-small);
}
.reasoning-bar-label {
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.reasoning-bar-track {
  height: 9px;
  border-radius: 999px;
  background: #ffffff;
  overflow: hidden;
}
.reasoning-bar {
  height: 100%;
  border-radius: 999px;
}
.reasoning-bar.positive { background: var(--green); }
.reasoning-bar.negative { background: var(--red); }
.reasoning-bar-value {
  color: var(--text-dim);
  text-align: right;
  font-size: var(--fs-micro);
}
.portfolio-mix {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 10px;
}
.portfolio-donut {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  position: relative;
}
.portfolio-donut::after {
  content: "";
  position: absolute;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--surface);
}
.portfolio-donut span {
  position: relative;
  z-index: 1;
  color: var(--text);
  font-weight: 700;
}
.portfolio-legend {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.portfolio-legend div {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-legend span {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  margin-right: 6px;
}
.portfolio-legend em {
  color: var(--text);
  font-style: normal;
}
.confidence-columns {
  height: 122px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
  margin-top: 10px;
}
.confidence-column {
  display: grid;
  grid-template-rows: 1fr auto auto;
  justify-items: center;
  gap: 4px;
  min-width: 0;
}
.confidence-track {
  width: 28px;
  height: 78px;
  border-radius: 999px;
  background: #ffffff;
  display: flex;
  align-items: end;
  overflow: hidden;
}
.confidence-track div {
  width: 100%;
  background: var(--accent);
}
.confidence-column strong {
  font-size: var(--fs-small);
}
.confidence-column span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.metric-explainer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.metric-explainer div {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: var(--surface-2, rgba(255,255,255,0.54));
}
.metric-explainer strong {
  display: block;
  margin-bottom: 4px;
}
.metric-explainer span {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-small);
  line-height: 1.45;
}
.metric-explainer code {
  font-size: var(--fs-micro);
}

.family-exec-brief {
  border: 1px solid rgba(15,107,87,0.28);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(15,107,87,0.08), rgba(255,255,255,0.36)),
    var(--surface-2, rgba(255,255,255,0.54));
  padding: 14px;
  margin: 14px 0;
}
.family-ceo-page {
  border-color: rgba(15,107,87,0.28);
}
.ceo-decision-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.ceo-summary-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.ceo-summary-card,
.ceo-flow-step,
.ceo-callout,
.ceo-capital-bar-card,
.ceo-matrix-wrap {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(15,61,51,0.187);
  padding: 10px;
  min-width: 0;
}
.ceo-summary-card {
  position: relative;
  overflow: hidden;
}
.ceo-summary-card::after {
  content: "";
  position: absolute;
  inset: auto -20px -34px auto;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: rgba(255,255,255,0.63);
}
.ceo-summary-card > i {
  display: block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  margin-bottom: 8px;
  background: var(--accent);
}
.ceo-summary-card.deploy > i { background: var(--green); box-shadow: 0 0 18px rgba(62,207,142,0.28); }
.ceo-summary-card.hold > i { background: var(--accent); box-shadow: 0 0 18px rgba(15,107,87,0.24); }
.ceo-summary-card.fix > i { background: #e8b339; box-shadow: 0 0 18px rgba(232,179,57,0.24); }
.ceo-summary-card.pause > i,
.ceo-summary-card.restructure > i { background: var(--red); box-shadow: 0 0 18px rgba(232,84,106,0.24); }
.ceo-summary-card span,
.ceo-summary-card em,
.ceo-flow-step span,
.ceo-flow-step em,
.ceo-callout span,
.ceo-callout p {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
  line-height: 1.35;
}
.ceo-summary-card strong,
.ceo-flow-step strong,
.ceo-callout strong {
  display: block;
  color: var(--text);
  font-size: 17px;
  margin: 5px 0 3px;
  overflow-wrap: anywhere;
}
.ceo-summary-card.deploy,
.ceo-flow-step.deploy,
.ceo-callout.deploy { border-color: rgba(62,207,142,0.38); }
.ceo-summary-card.hold,
.ceo-flow-step.hold,
.ceo-callout.hold { border-color: rgba(15,107,87,0.28); }
.ceo-summary-card.fix,
.ceo-flow-step.fix,
.ceo-callout.fix { border-color: rgba(232,179,57,0.34); }
.ceo-summary-card.pause,
.ceo-summary-card.restructure,
.ceo-callout.pause { border-color: rgba(232,84,106,0.34); }
.ceo-capital-bar-card {
  margin-bottom: 12px;
}
.ceo-capital-bar {
  height: 20px;
  display: flex;
  overflow: hidden;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid rgba(15,61,51,0.128);
}
.ceo-capital-bar div {
  min-width: 3px;
  height: 100%;
}
.ceo-capital-bar .deploy,
.ceo-capital-legend .deploy { background: var(--green); }
.ceo-capital-bar .fix,
.ceo-capital-legend .fix { background: #e8b339; }
.ceo-capital-bar .pause,
.ceo-capital-legend .pause { background: var(--red); }
.ceo-capital-bar .hold,
.ceo-capital-legend .hold { background: var(--accent); }
.ceo-capital-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 8px;
}
.ceo-capital-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.ceo-capital-legend i {
  width: 8px;
  height: 8px;
  border-radius: 2px;
}
.ceo-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
  position: relative;
}
.ceo-flow-step {
  position: relative;
  min-height: 96px;
}
.ceo-flow-step:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -10px;
  top: 50%;
  width: 10px;
  height: 1px;
  background: var(--border-strong);
}
.ceo-flow-step::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  margin-bottom: 8px;
  background: #ffffff;
  border: 1px solid rgba(15,61,51,0.14);
}
.ceo-flow-step.deploy::before { background: rgba(62,207,142,0.16); border-color: rgba(62,207,142,0.3); }
.ceo-flow-step.hold::before { background: rgba(15,107,87,0.14); border-color: rgba(15,107,87,0.28); }
.ceo-flow-step.fix::before { background: rgba(232,179,57,0.14); border-color: rgba(232,179,57,0.28); }
.ceo-callout-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.ceo-callout strong {
  font-size: var(--fs-small);
  line-height: 1.3;
}
.ceo-callout {
  position: relative;
  padding-top: 14px;
}
.ceo-callout::before {
  content: "";
  position: absolute;
  top: 0;
  left: 10px;
  right: 10px;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: var(--accent);
}
.ceo-callout.deploy::before { background: var(--green); }
.ceo-callout.hold::before { background: var(--accent); }
.ceo-callout.fix::before { background: #e8b339; }
.ceo-callout.pause::before { background: var(--red); }
.ceo-matrix-wrap {
  margin-bottom: 12px;
}
.ceo-rationale-table th,
.ceo-rationale-table td {
  white-space: nowrap;
}
.ceo-status {
  display: inline-flex;
  justify-content: center;
  min-width: 42px;
  border-radius: 999px;
  padding: 2px 7px;
  font-size: 10px;
  font-weight: 700;
}
.ceo-status.ok {
  color: var(--green);
  background: rgba(62,207,142,0.12);
  border: 1px solid rgba(62,207,142,0.28);
}
.ceo-status.warn {
  color: var(--red);
  background: rgba(232,84,106,0.10);
  border: 1px solid rgba(232,84,106,0.28);
}
.ceo-dot {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  white-space: nowrap;
}
.ceo-dot i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
.ceo-dot.ok i {
  background: var(--green);
  box-shadow: 0 0 12px rgba(62,207,142,0.3);
}
.ceo-dot.warn i {
  background: var(--red);
  box-shadow: 0 0 12px rgba(232,84,106,0.24);
}
.ceo-decision-lane {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(15,61,51,0.187);
  padding: 10px;
  min-width: 0;
}
.ceo-lane-head {
  min-height: 46px;
  margin-bottom: 9px;
}
.ceo-lane-head strong {
  display: block;
  color: var(--text);
  font-size: var(--fs-small);
}
.ceo-lane-head span {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  margin-top: 2px;
}
.ceo-decision-item {
  border: 1px solid rgba(15,61,51,0.128);
  border-radius: 7px;
  padding: 8px;
  background: rgba(255,255,255,0.54);
  margin-bottom: 8px;
}
.ceo-decision-item strong {
  display: block;
  color: var(--text);
  font-size: var(--fs-small);
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.ceo-decision-item span,
.ceo-decision-item p,
.ceo-decision-item em {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  line-height: 1.35;
  font-style: normal;
  margin: 5px 0 0;
}
.ceo-decision-item em {
  color: var(--text);
}
.ceo-decision-lane.deploy { border-color: rgba(62,207,142,0.38); }
.ceo-decision-lane.hold { border-color: rgba(15,107,87,0.28); }
.ceo-decision-lane.fix { border-color: rgba(232,179,57,0.34); }
.ceo-decision-lane.pause,
.ceo-decision-lane.restructure { border-color: rgba(232,84,106,0.34); }
.family-brief-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.family-brief-header span,
.family-panel-title span,
.family-brief-header em {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.family-brief-header strong {
  display: block;
  margin-top: 3px;
  color: var(--text);
  font-size: 24px;
  line-height: 1.22;
}
.family-ceo-page .family-brief-header span {
  color: var(--accent);
  font-weight: 750;
  text-transform: uppercase;
}
.family-gauge-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.family-gauge {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: rgba(15,61,51,0.187);
  min-width: 0;
}
.family-gauge-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
}
.family-gauge-top span,
.family-gauge em {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
}
.family-gauge-top strong {
  color: var(--text);
  font-size: 16px;
  white-space: nowrap;
}
.family-gauge-track {
  height: 8px;
  border-radius: 999px;
  background: #ffffff;
  margin: 9px 0 6px;
  overflow: hidden;
}
.family-gauge-track div {
  height: 100%;
  border-radius: 999px;
  background: var(--green);
}
.family-gauge.warning .family-gauge-track div {
  background: var(--red);
}
.family-brief-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 12px;
}
.family-panel {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(15,61,51,0.154);
  padding: 12px;
  min-width: 0;
}
.family-panel-wide {
  min-height: 190px;
}
.family-return-panel {
  grid-column: 1 / -1;
  min-height: 390px;
}
.family-panel-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  margin-bottom: 12px;
}
.family-panel-title strong {
  color: var(--text);
}
.family-dual-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.family-dual-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: rgba(255,255,255,0.54);
}
.family-ev-bridge {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.family-ev-row {
  display: grid;
  grid-template-columns: minmax(130px, 0.9fr) minmax(120px, 1.2fr) minmax(90px, auto);
  gap: 8px;
  align-items: center;
}
.family-ev-row span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.family-ev-row div {
  height: 10px;
  border-radius: 999px;
  background: #ffffff;
  overflow: hidden;
}
.family-ev-row i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--green);
}
.family-ev-row.negative i {
  background: var(--red);
}
.family-ev-row.total i {
  background: var(--accent);
}
.family-ev-row strong {
  color: var(--text);
  font-size: var(--fs-micro);
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.family-dual-card span,
.family-dual-card em,
.family-out-row span {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
  line-height: 1.35;
}
.family-dual-card strong {
  display: block;
  margin: 6px 0 4px;
  font-size: 18px;
  color: var(--text);
}
.family-sector-list,
.family-out-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.family-sector-row {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) minmax(90px, 1.15fr) minmax(58px, auto);
  gap: 8px;
  align-items: center;
  font-size: var(--fs-micro);
}
.family-sector-row span {
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.family-sector-row div {
  height: 8px;
  border-radius: 999px;
  background: #ffffff;
  overflow: hidden;
}
.family-sector-row i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--accent);
}
.family-sector-row strong {
  color: var(--text-dim);
  text-align: right;
  font-weight: 600;
}
.family-bubble-map {
  position: relative;
  min-height: 330px;
  border: 1px solid rgba(15,61,51,0.14);
  border-radius: 8px;
  background:
    linear-gradient(rgba(255,255,255,0.81) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.81) 1px, transparent 1px);
  background-size: 25% 25%;
  overflow: hidden;
}
.family-return-map-layout {
  display: grid;
  grid-template-columns: minmax(520px, 1fr) minmax(260px, 0.36fr);
  gap: 12px;
  align-items: stretch;
}
.family-axis {
  position: absolute;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  pointer-events: none;
}
.family-axis.x {
  right: 10px;
  bottom: 8px;
}
.family-axis.y {
  left: 10px;
  top: 8px;
}
.family-bubble {
  position: absolute;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px solid rgba(15,61,51,0.14);
  background: rgba(15,107,87,0.75);
  box-shadow: 0 0 18px rgba(15,107,87,0.24);
  cursor: help;
}
.family-bubble.not-selected {
  background: #ffffff;
  border-color: rgba(15,61,51,0.14);
  box-shadow: none;
}
.family-bubble:hover,
.family-bubble:focus {
  outline: none;
  border-color: rgba(15,61,51,0.14);
  box-shadow: 0 0 0 3px rgba(15,107,87,0.2), 0 0 22px rgba(15,107,87,0.34);
  z-index: 3;
}
.family-bubble-detail {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 11px;
  background: rgba(15,61,51,0.242);
  min-height: 245px;
}
.family-bubble-detail > span,
.family-bubble-detail > em,
.family-bubble-detail p {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-style: normal;
  line-height: 1.4;
}
.family-bubble-detail > strong {
  display: block;
  color: var(--text);
  font-size: 15px;
  margin: 4px 0 10px;
  overflow-wrap: anywhere;
}
.family-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.family-detail-grid div {
  border: 1px solid rgba(15,61,51,0.128);
  border-radius: 6px;
  padding: 7px;
  background: rgba(255,255,255,0.54);
  min-width: 0;
}
.family-detail-grid em {
  display: block;
  color: var(--text-dim);
  font-size: 10px;
  font-style: normal;
  margin-bottom: 2px;
}
.family-detail-grid b {
  color: var(--text);
  font-size: var(--fs-micro);
  font-weight: 650;
  overflow-wrap: anywhere;
}
.family-out-row {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 9px;
  background: rgba(255,255,255,0.54);
}
.family-out-row strong {
  display: block;
  color: var(--text);
  margin-bottom: 3px;
  overflow-wrap: anywhere;
}

.table-scroll {
  max-width: 100%;
  max-height: 180px;
  overflow: auto;
  margin: 8px 0;
  border: 1px solid var(--border);
  border-radius: 6px;
}

.healthcare-decision-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0 12px;
}
.healthcare-decision-summary div {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: rgba(255,255,255,0.63);
}
.healthcare-decision-summary strong {
  display: block;
  font-size: var(--fs-h3);
  line-height: 1.1;
}
.healthcare-decision-summary span {
  color: var(--text-dim);
  font-size: var(--fs-small);
}
.healthcare-transfer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}
.healthcare-transfer-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.81), rgba(255,255,255,0.36));
}
.transfer-card-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
  margin-bottom: 10px;
}
.transfer-card-top strong,
.transfer-card-top span,
.transfer-card-top em {
  display: block;
}
.transfer-card-top span,
.transfer-card-top em {
  color: var(--text-dim);
  font-size: var(--fs-small);
  font-style: normal;
}
.transfer-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 86px minmax(0, 1fr);
  gap: 8px;
  align-items: stretch;
}
.transfer-node {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px;
  min-width: 0;
}
.transfer-node.source {
  background: rgba(62,207,142,0.08);
}
.transfer-node.target {
  background: rgba(232,84,106,0.08);
}
.transfer-node span,
.transfer-node small {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.transfer-node strong {
  display: block;
  margin: 4px 0;
}
.transfer-arrow {
  display: grid;
  place-items: center;
  align-content: center;
  border: 1px solid rgba(15,107,87,0.35);
  border-radius: 8px;
  background: rgba(15,107,87,0.08);
  text-align: center;
}
.transfer-arrow strong,
.transfer-arrow span {
  display: block;
}
.transfer-arrow span {
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.transfer-pressure {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}
.transfer-pressure span {
  display: block;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  margin-bottom: 4px;
}
.mini-meter {
  height: 8px;
  border-radius: 999px;
  background: #ffffff;
  overflow: hidden;
}
.mini-meter i {
  display: block;
  height: 100%;
  background: var(--red);
}
.mini-meter.good i {
  background: var(--green);
}
.transfer-card-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.transfer-card-foot span {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px 7px;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  background: rgba(255,255,255,0.54);
}
.healthcare-reorder-table {
  margin-top: 12px;
}

@media (max-width: 980px) {
  .reasoning-kpi-grid,
  .reasoning-visual-grid,
  .healthcare-transfer-grid,
  .exec-visual-grid,
  .exec-visual-grid:not(.family),
  .exec-deck-metrics.four,
  .exec-recommendation-strip,
  .domain-cockpit-grid,
  .exec-deck-metrics {
    grid-template-columns: 1fr 1fr;
  }
  .family-return-map-layout {
    grid-template-columns: 1fr;
  }
  .reasoning-visual-grid .workspace-block:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .reasoning-kpi-grid,
  .reasoning-visual-grid,
  .portfolio-mix,
  .assumption-summary-grid,
  .reasoning-plan-grid,
  .metric-explainer,
  .exec-deck-hero,
  .exec-deck-grid,
  .exec-visual-grid,
  .exec-visual-grid:not(.family),
  .exec-deck-metrics.four,
  .exec-recommendation-strip,
  .domain-cockpit-grid,
  .exec-deck-metrics,
  .healthcare-decision-summary,
  .healthcare-transfer-grid {
    grid-template-columns: 1fr;
  }
  .domain-cockpit-hero {
    flex-direction: column;
  }
  .domain-cockpit-hero span {
    min-width: 0;
    text-align: left;
  }
  .exec-deck-financial {
    text-align: left;
  }
  .report-stage-nav {
    grid-template-columns: 1fr;
  }
  .report-stage-arrow::after {
    display: none;
  }
  .report-header-row {
    flex-direction: column;
  }
  .report-toolbar {
    justify-content: flex-start;
  }
  .detailed-analysis-entry {
    align-items: stretch;
    flex-direction: column;
  }
  .transfer-flow,
  .reasoning-bar-row {
    grid-template-columns: 1fr;
  }
  .reasoning-bar-value {
    text-align: left;
  }
}

.compact-btn {
  padding: 6px 10px;
  font-size: var(--fs-small);
}

textarea {
  width: 100%;
  min-height: 72px;
  resize: vertical;
}

@media (max-width: 1100px) {
  .workspace-grid {
    grid-template-columns: 1fr;
  }
}
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
th { color: var(--text-dim); font-weight: 600; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0; }

code, pre, td code {
  font-family: var(--font-mono);
  font-size: 0.92em;
}
td code {
  background: var(--panel-2);
  border-radius: 3px;
  padding: 1px 5px;
}

select, input[type=text], input[type=number], textarea {
  background: var(--panel-2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 7px 9px;
  font-size: var(--fs-body);
  outline: none;
}
select:focus, input[type=text]:focus, input[type=number]:focus, textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(15,107,87,0.14);
}
textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
  line-height: 1.5;
  margin-top: 8px;
}

.badge {
  display: inline-block;
  font-size: var(--fs-micro);
  font-weight: 500;
  padding: 3px 8px;
  border-radius: 10px;
  margin: 2px 4px 2px 0;
  letter-spacing: 0;
}
.badge.exact { background: #ebf5f0; color: var(--green); }
.badge.synonym { background: #ebf5f0; color: var(--green); }
.badge.fuzzy { background: #f4f2eb; color: var(--amber); }
.badge.llm { background: #f3eaf5; color: var(--purple); }
.badge.linkage { background: #ebeff5; color: var(--accent); }
.badge.unmapped { background: #f5ebed; color: var(--red); }
.badge.required { background: #f5ebed; color: var(--red); }
.badge.manual { background: #edeff2; color: var(--text-dim); }

/* AI hypotheses — collapsed-by-default cards grouped by whether the
   hypothesis's declared actions overlap with what was actually selected,
   so the reader sees "did this matter" before opening a single card. */
.hyp-group-label {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  margin: 14px 0 6px;
}
.hyp-group-label:first-child { margin-top: 4px; }
.hyp-list { display: flex; flex-direction: column; gap: 6px; }
.hyp-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel-2);
  overflow: hidden;
}
.hyp-card.open { border-color: var(--border-strong); }
.hyp-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 10px;
  background: none;
  border: none;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.hyp-badge {
  flex: 0 0 auto;
  font-size: var(--fs-micro);
  font-weight: 500;
  padding: 3px 8px;
  border-radius: 10px;
  white-space: nowrap;
}
.hyp-badge.binding { background: #ebf5f0; color: var(--green); }
.hyp-badge.other { background: #edeff2; color: var(--text-dim); }
.hyp-claim { flex: 1 1 auto; font-weight: 600; font-size: var(--fs-body); }
.hyp-chevron {
  flex: 0 0 auto;
  color: var(--text-dim);
  transition: transform 0.15s ease;
}
.hyp-card.open .hyp-chevron { transform: rotate(90deg); }
.hyp-risk-line {
  padding: 0 10px 9px 10px;
  margin-left: 30px;
  font-size: var(--fs-small);
  color: var(--amber);
}
.hyp-body {
  border-top: 1px solid var(--border);
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hyp-row span {
  display: block;
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  margin-bottom: 3px;
}
.hyp-row p { margin: 0; font-size: var(--fs-body); }
.hyp-pill-row { display: flex; flex-wrap: wrap; gap: 4px; }
.hyp-pill {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  background: var(--panel-3);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 2px 6px;
}
.hyp-test-list {
  margin: 0;
  padding-left: 18px;
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--text-dim);
}

.batch-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.batch-header .title { font-size: var(--fs-card-title); font-weight: 600; }
.batch-header .meta { font-size: var(--fs-small); color: var(--text-dim); margin-top: 2px; }

.notice {
  background: #f4f2eb;
  color: var(--amber);
  border: 1px solid #f6f3ea;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: var(--fs-body);
  line-height: 1.5;
  margin-bottom: 12px;
}
.notice.success {
  background: rgba(46, 204, 113, 0.12);
  color: var(--green);
  border-color: rgba(46, 204, 113, 0.42);
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.stat-tile {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 12px 14px;
}
.stat-tile .label { font-size: var(--fs-micro); font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0; }
.stat-tile .value { font-size: var(--fs-stat); font-weight: 600; margin-top: 4px; letter-spacing: 0; font-variant-numeric: tabular-nums; }

.graph-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  grid-template-rows: 1fr;
  gap: 16px;
  height: calc(100vh - var(--graph-layout-top, 104px) - 16px);
  min-height: 460px;
}
.graph-main {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  overflow-y: auto;
}
.graph-canvas-wrap {
  position: relative;
  flex: 1;
  min-height: 360px;
}
#graph-canvas {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel);
  height: 100%;
  width: 100%;
  min-height: 0;
  min-width: 0;
}
.graph-viewport-controls {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 8;
  display: flex;
  gap: 6px;
  padding: 6px;
  border: 1px solid rgba(15,107,87,0.32);
  border-radius: 8px;
  background: rgba(15,61,51,0.473);
  box-shadow: 0 12px 28px rgba(15,61,51,0.16);
  backdrop-filter: blur(8px);
}
.graph-viewport-controls button {
  min-width: 34px;
  height: 30px;
  border: 1px solid rgba(15,107,87,0.36);
  border-radius: 6px;
  background: rgba(23, 34, 52, 0.92);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.graph-viewport-controls button:hover {
  border-color: var(--accent);
  color: #ffffff;
  background: rgba(36, 55, 82, 0.96);
}
.graph-node-popover {
  position: absolute;
  width: 340px;
  max-height: calc(100% - 16px);
  overflow-y: auto;
  background: var(--panel-2);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 14px 16px;
  box-shadow: 0 12px 32px rgba(15,61,51,0.225);
  z-index: 10;
}
.graph-node-popover .popover-close {
  position: absolute;
  top: 8px;
  right: 10px;
  background: transparent;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 4px;
}
.graph-node-popover .popover-close:hover { color: var(--text); }
.chat-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.chat-panel .chat-log { flex: 1; min-height: 0; max-height: none; }
.chat-panel .chat-input-row { flex-shrink: 0; }
.ontology-graph-wrap { position: relative; margin-top: 10px; }
.ontology-graph-canvas {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel);
  height: 420px;
}
.ontology-graph-canvas-large { height: 640px; }
.ontology-graph-popover {
  position: absolute;
  width: 320px;
  max-height: calc(100% - 16px);
  overflow-y: auto;
  background: var(--panel-2);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 12px 14px;
  box-shadow: 0 12px 32px rgba(15,61,51,0.225);
  z-index: 10;
}

.ontology-mode-nav { display: flex; gap: 8px; margin: 4px 0 14px; }
.ontology-mode-btn {
  background: rgba(255,255,255,0.27);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 7px 14px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--fs-body);
  font-weight: 500;
}
.ontology-mode-btn.active { background: rgba(15,107,87,0.13); color: var(--text); border-color: var(--accent); }
.ontology-mode-panel { display: none; }
.ontology-mode-panel.active { display: block; }

.portfolio-native-root { margin-top: 14px; }
.portfolio-summary-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: 14px; }
.portfolio-heatmap th,
.portfolio-heatmap td { text-align: center; min-width: 58px; }
.portfolio-heatmap td:first-child,
.portfolio-heatmap th:first-child { text-align: left; min-width: 190px; }
.portfolio-heatmap td.low { background: rgba(255,255,255,0.36); color: var(--text-dim); }
.portfolio-heatmap td.ok { background: rgba(72, 187, 120, 0.16); color: var(--text); }
.portfolio-heatmap td.tight { background: rgba(235, 179, 65, 0.18); color: var(--text); }
.portfolio-heatmap td.over { background: rgba(236, 95, 103, 0.22); color: var(--text); font-weight: 700; }
.portfolio-graph-canvas {
  height: 640px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: radial-gradient(circle at 50% 30%, rgba(255,255,255,0.63), transparent 55%), var(--panel);
}

/* The workbench once had its own light "paper" palette; it now maps onto the
   app's dark tokens so every screen shares one look. */
#view-portfolio {
  --pf-bg: var(--bg);
  --pf-panel: var(--panel);
  --pf-panel2: var(--panel-2);
  --pf-ink: var(--text);
  --pf-ink2: #33423d;
  --pf-ink3: var(--text-dim);
  --pf-line: var(--border);
  --pf-line2: var(--border-strong);
  --pf-accent: var(--accent);
  --pf-accent-bg: var(--accent-dim);
  --pf-warn: var(--amber);
  --pf-warn-bg: rgba(168,101,10,0.09);
  --pf-crit: #b4233a;
  --pf-crit-bg: rgba(180,35,58,0.08);
  --pf-ok: var(--green);
  --pf-ok-bg: rgba(46,125,79,0.09);
  background: var(--pf-bg);
  color: var(--pf-ink);
  border-radius: 8px;
  padding: 18px 16px 60px;
  font-size: 14px;
  line-height: 1.5;
}
#view-portfolio .module-summary-grid {
  border-bottom: 1px solid var(--pf-line);
  padding-bottom: 14px;
  margin-bottom: 6px;
}
#view-portfolio .module-summary-card,
#view-portfolio .card,
#view-portfolio .ai-insight-panel,
#view-portfolio .signal-card {
  background: var(--pf-panel);
  border: 1px solid var(--pf-line);
  border-radius: 5px;
  box-shadow: none;
  color: var(--pf-ink);
}
#view-portfolio .module-summary-card span,
#view-portfolio .dim,
#view-portfolio .mut,
#view-portfolio .prov,
#view-portfolio .module-summary-card em {
  color: var(--pf-ink3);
}
#view-portfolio .module-summary-card strong,
#view-portfolio h3,
#view-portfolio h4,
#view-portfolio .signal-card h3 {
  color: var(--pf-ink);
  letter-spacing: 0;
}
#view-portfolio .portfolio-mode-nav {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
  margin: 14px 0 18px;
  border-bottom: 1px solid var(--pf-line);
}
#view-portfolio .portfolio-mode-nav .knowledge-mode-btn {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--pf-ink3);
  font-size: 13px;
  padding: 8px 12px;
  margin-bottom: -1px;
  border-radius: 0;
}
#view-portfolio .portfolio-mode-nav .knowledge-mode-btn:hover {
  color: var(--pf-ink);
}
#view-portfolio .portfolio-mode-nav .knowledge-mode-btn.active {
  color: var(--pf-ink);
  border-bottom-color: var(--pf-accent);
  background: none;
  font-weight: 600;
}
#view-portfolio .signals-header {
  align-items: flex-start;
  margin-bottom: 14px;
}
#view-portfolio .secondary,
#view-portfolio button.secondary,
#view-portfolio .compact-btn {
  background: none;
  color: var(--pf-ink2);
  border: 1px solid var(--pf-line2);
  border-radius: 4px;
  box-shadow: none;
}
#view-portfolio .secondary:hover,
#view-portfolio button.secondary:hover {
  color: var(--pf-ink);
  border-color: var(--pf-ink3);
}
#view-portfolio .signal-stat-card,
#view-portfolio .kpi {
  background: var(--pf-panel);
  border: 1px solid var(--pf-line);
  border-radius: 5px;
  padding: 10px 12px;
  box-shadow: none;
}
#view-portfolio .signal-stat-card span,
#view-portfolio .signal-stat-card em {
  color: var(--pf-ink3);
  font-family: var(--mono);
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: .7px;
}
#view-portfolio .signal-stat-card strong {
  color: var(--pf-ink);
  font-family: var(--mono);
  font-size: 19px;
  letter-spacing: -.5px;
}
#view-portfolio .signal-stat-card.high strong,
#view-portfolio .portfolio-heatmap td.over {
  color: var(--pf-crit);
}
#view-portfolio .signal-stat-card.medium strong {
  color: var(--pf-warn);
}
#view-portfolio .table-scroll {
  border: none;
}
#view-portfolio table,
#view-portfolio .ai-readiness-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
  color: var(--pf-ink);
}
#view-portfolio th,
#view-portfolio .ai-readiness-table th {
  text-align: left;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--pf-ink3);
  font-weight: 500;
  padding: 6px 8px;
  border-bottom: 1px solid var(--pf-line2);
  background: transparent;
}
#view-portfolio td,
#view-portfolio .ai-readiness-table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--pf-line);
  vertical-align: top;
  color: var(--pf-ink2);
}
#view-portfolio tr:last-child td {
  border-bottom: none;
}
#view-portfolio code,
#view-portfolio .ent,
#view-portfolio .source-chip {
  background: var(--pf-panel2);
  color: var(--pf-ink2);
  border: 1px solid var(--pf-line);
  border-radius: 3px;
}
#view-portfolio .severity-pill,
#view-portfolio .pill,
#view-portfolio .readiness-pill {
  font-family: var(--mono);
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: .5px;
  border-radius: 3px;
}
#view-portfolio .severity-pill.high,
#view-portfolio .p-crit,
#view-portfolio .readiness-pill.missed {
  color: var(--pf-crit);
  background: var(--pf-crit-bg);
  border-color: var(--pf-crit);
}
#view-portfolio .severity-pill.medium,
#view-portfolio .p-warn,
#view-portfolio .readiness-pill.open {
  color: var(--pf-warn);
  background: var(--pf-warn-bg);
  border-color: var(--pf-warn);
}
#view-portfolio .severity-pill.low,
#view-portfolio .p-ok,
#view-portfolio .readiness-pill.ready {
  color: var(--pf-ok);
  background: var(--pf-ok-bg);
  border-color: var(--pf-ok);
}
#view-portfolio input[type=range] {
  width: 100%;
  accent-color: var(--pf-accent);
}
#view-portfolio label.fld {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--pf-ink3);
  margin-bottom: 4px;
}
#view-portfolio .row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
#view-portfolio .row > * {
  flex: 1 1 200px;
  min-width: 0;
}
#view-portfolio .portfolio-heatmap td.low { background: transparent; color: var(--pf-ink3); }
#view-portfolio .portfolio-heatmap td.ok { background: var(--pf-ok-bg); color: var(--pf-ok); }
#view-portfolio .portfolio-heatmap td.tight { background: var(--pf-warn-bg); color: var(--pf-warn); }
#view-portfolio .portfolio-heatmap td.over { background: var(--pf-crit-bg); font-weight: 700; }
#view-portfolio .portfolio-graph-canvas {
  background: var(--pf-panel2);
  border-color: var(--pf-line);
  border-radius: 5px;
}
#view-portfolio .sample-preview,
#view-portfolio details {
  border: 1px solid var(--pf-line);
  border-radius: 4px;
  background: var(--pf-panel2);
  color: var(--pf-ink2);
}
#view-portfolio summary {
  color: var(--pf-accent);
}

/* Workbench: legible, calm cards (no grey slabs) */
#view-portfolio td strong { color: var(--pf-ink); font-weight: 600; }
#view-portfolio td .dim { font-size: 11.5px; }
#view-portfolio .signal-card { padding: 16px 18px 12px; border-left-width: 3px; }
#view-portfolio .signal-card.high { border-left-color: var(--pf-crit); }
#view-portfolio .signal-card.medium { border-left-color: var(--pf-warn); }
#view-portfolio .signal-card.low { border-left-color: var(--pf-ok); }
#view-portfolio .signal-card p { color: var(--pf-ink2); }
#view-portfolio .signal-card-main { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
#view-portfolio .signal-action-box {
  background: transparent; border: none; border-left: 2px solid var(--gold, #a8833a);
  border-radius: 0; padding: 2px 0 2px 14px;
}
#view-portfolio .signal-action-box span {
  font-size: 10px; letter-spacing: .6px; color: var(--gold, #a8833a); font-weight: 600;
}
#view-portfolio .signal-action-box strong { color: var(--pf-ink); margin: 2px 0 4px; }
#view-portfolio .signal-action-box em { color: var(--pf-ink2); font-size: 12.5px; line-height: 1.45; }
#view-portfolio .signal-foot {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--pf-line);
}
#view-portfolio .signal-foot .signal-file-chips span {
  background: var(--pf-panel2); border: none; color: var(--pf-ink3); font-size: 11px; padding: 2px 8px;
}
#view-portfolio .signal-card details.signal-records {
  border: none; background: none; padding: 0; margin: 0; flex: 0 0 auto; text-align: right;
}
#view-portfolio .signal-card details.signal-records summary {
  cursor: pointer; font-size: 12.5px; font-weight: 600; list-style: none; white-space: nowrap;
}
#view-portfolio .signal-card details.signal-records summary::-webkit-details-marker { display: none; }
#view-portfolio .signal-card details.signal-records summary::after { content: " ▾"; }
#view-portfolio .signal-card details.signal-records[open] summary::after { content: " ▴"; }
#view-portfolio .signal-card details.signal-records[open] { flex-basis: 100%; text-align: left; }
#view-portfolio .signal-card .signal-foot:has(details[open]) { flex-wrap: wrap; }
#view-portfolio .signal-records-body { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-top: 10px; }
#view-portfolio .signal-record-table { background: var(--pf-panel2); border-radius: 4px; }
#view-portfolio .signal-record-table td:first-child { color: var(--pf-ink3); width: 40%; }
#view-portfolio .ai-insight-panel { padding: 16px 18px; }
#view-portfolio .ai-insight-panel h4 { font-size: 15px; margin-bottom: 10px; }
#view-portfolio .portfolio-heatmap td.over { color: var(--pf-crit); }
#view-portfolio .portfolio-heatmap td.low { color: var(--pf-ink2); }
#view-portfolio tr.wb-unselected td { color: var(--pf-ink3); }
#view-portfolio tr.wb-unselected td strong { color: var(--pf-ink2); }
#view-portfolio .wb-num { text-align: right; font-variant-numeric: tabular-nums; }

.ontology-explainer .ontology-path-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 14px;
}
.ontology-explainer .ontology-path-list > span {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 7px 9px;
  background: rgba(255,255,255,0.45);
  color: var(--text-dim);
}
.file-understanding-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  margin: 12px 0;
  background: rgba(255,255,255,0.36);
}
.file-understanding-panel h4 { margin: 0 0 6px; }
.file-understanding-panel p { margin: 0 0 8px; }
.sample-preview {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  margin: 10px 0 14px;
}
.sample-preview summary {
  cursor: pointer;
  color: var(--text);
  font-weight: 650;
  margin-bottom: 8px;
}
.dm-table tr:has(+ .u-file-preview) td { border-bottom: none; }
.dm-table tbody tr.u-file-preview { cursor: default; }
.dm-table tbody tr.u-file-preview:hover { background: transparent; }
.u-file-preview > td { padding-top: 0; }
.u-file-summary { margin: 0 0 6px; max-width: 80ch; color: var(--text); line-height: 1.5; }
.u-file-preview .sample-preview { margin: 0 0 4px; padding: 6px 10px; }
.u-file-preview .sample-preview summary { margin-bottom: 0; font-weight: 600; font-size: var(--fs-small); }
.u-file-preview .sample-preview[open] summary { margin-bottom: 8px; }
.file-preview-table td, .file-preview-table th { white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 900px) {
  .file-understanding-panel { grid-template-columns: 1fr; }
}
.knowledge-mode-nav { display: flex; gap: 8px; margin: 0 0 14px; }
.knowledge-mode-btn {
  background: rgba(255,255,255,0.27);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 7px 14px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--fs-body);
  font-weight: 500;
}
.knowledge-mode-btn.active { background: rgba(15,107,87,0.13); color: var(--text); border-color: var(--accent); }
.knowledge-mode-panel { display: none; }
.knowledge-mode-panel.active { display: block; }
.signals-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 14px; }
.signals-header h3 { margin: 0 0 4px; font-size: var(--fs-title); }
.insights-command-center { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 12px; margin-bottom: 12px; align-items: stretch; }
.signal-summary-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 0; }
.signal-stat-card { border: 1px solid var(--border); background: var(--panel-2); color: var(--text); border-radius: 6px; padding: 12px; text-align: left; cursor: pointer; }
.signal-stat-card:hover,
.signal-stat-card.active { border-color: var(--accent); background: rgba(15,107,87,0.12); }
.signal-stat-card span,
.signal-action-box span { display: block; color: var(--text-dim); font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0; }
.signal-stat-card strong { display: block; margin-top: 4px; font-size: 26px; line-height: 1; font-variant-numeric: tabular-nums; }
.signal-stat-card em { display: block; margin-top: 6px; color: var(--text-dim); font-style: normal; font-size: var(--fs-small); }
.signal-stat-card.high { border-color: rgba(255, 112, 112, 0.45); }
.signal-stat-card.medium { border-color: rgba(255, 190, 92, 0.45); }
.signal-summary-card { margin-bottom: 0; }
.ceo-readout-card { min-height: 100%; display: flex; flex-direction: column; gap: 12px; }
.ceo-readout-topline { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.ceo-readout-topline strong { display: block; font-size: 20px; line-height: 1.25; margin-top: 3px; }
.signal-summary-card p { margin: 0; max-width: 1040px; font-size: 15px; line-height: 1.55; }
.executive-readout-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.executive-readout-list li { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px 12px; align-items: start; border-top: 1px solid var(--border); padding-top: 8px; }
.executive-readout-list li:first-child { border-top: 0; padding-top: 0; }
.executive-readout-list strong { color: var(--text); }
.executive-readout-list span { color: var(--text); line-height: 1.45; }
.executive-readout-list em { grid-column: 2; color: var(--text-dim); font-style: normal; font-size: var(--fs-small); line-height: 1.35; }
.ceo-next-action { border: 1px solid var(--border); border-radius: 6px; padding: 10px; background: rgba(15,61,51,0.077); }
.ceo-next-action span { display: block; color: var(--text-dim); font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0; margin-bottom: 4px; }
.ceo-next-action strong { display: block; font-size: var(--fs-body); line-height: 1.4; }
.signal-severity-strip { display: flex; overflow: hidden; height: 10px; border-radius: 999px; background: #ffffff; }
.severity-fill.high { background: #ff7070; }
.severity-fill.medium { background: #ffbe5c; }
.severity-fill.low { background: #74d680; }
.signal-bar-row { display: grid; grid-template-columns: 138px minmax(80px, 1fr) 28px; align-items: center; gap: 8px; margin: 7px 0; font-size: var(--fs-small); }
.signal-bar-row strong { text-align: right; font-variant-numeric: tabular-nums; }
.signal-bar-track { height: 8px; border-radius: 999px; background: #ffffff; overflow: hidden; }
.signal-bar-fill { height: 100%; background: var(--accent); border-radius: 999px; }
.signals-filter-heading { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 8px; color: var(--text-dim); font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0; }
.signals-filter-heading span { color: var(--text-dim); text-transform: none; }
.ai-insights-card { margin-bottom: 12px; }
.ai-insights-header { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 10px; }
.ai-insights-header p { margin: 2px 0 0; }
.ai-insights-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ai-insight-panel { border: 1px solid var(--border); border-radius: 6px; padding: 10px; background: rgba(15,61,51,0.066); }
.ai-insight-panel h4 { margin: 0 0 8px; }
.ai-wide-panel { grid-column: 1 / -1; }
.ai-mini-card { border-top: 1px solid var(--border); padding: 8px 0; display: grid; gap: 3px; }
.ai-mini-card:first-of-type { border-top: 0; padding-top: 0; }
.ai-mini-card strong { color: var(--text); }
.ai-mini-card span,
.ai-mini-card em { color: var(--text-dim); font-style: normal; font-size: var(--fs-small); line-height: 1.35; }
.ai-narrative-list { margin: 0; padding-left: 18px; }
.ai-narrative-list li { margin: 5px 0; }
.ai-readiness-table th,
.ai-readiness-table td { font-size: var(--fs-small); vertical-align: top; }
.readiness-pill { display: inline-flex; border-radius: 999px; padding: 2px 8px; border: 1px solid var(--border); white-space: nowrap; }
.readiness-pill.assessable { color: #20832c; border-color: rgba(116,214,128,0.35); background: rgba(116,214,128,0.12); }
.readiness-pill.partially-assessable { color: #8b5d18; border-color: rgba(255,190,92,0.35); background: rgba(255,190,92,0.12); }
.readiness-pill.not-assessable { color: #8b1818; border-color: rgba(255,112,112,0.35); background: rgba(255,112,112,0.12); }
.signals-list { display: grid; gap: 10px; }
.signal-card { border: 1px solid var(--border); border-left-width: 4px; background: var(--panel-2); border-radius: 6px; padding: 12px; }
.signal-card.high { border-left-color: #ff7070; }
.signal-card.medium { border-left-color: #ffbe5c; }
.signal-card.low { border-left-color: #74d680; }
.signal-card-main { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; align-items: start; }
.signal-card-kicker { display: flex; gap: 8px; align-items: center; color: var(--text-dim); font-size: var(--fs-small); margin-bottom: 4px; }
.signal-card h3 { margin: 0 0 6px; font-size: 16px; }
.signal-card p { margin: 0; color: var(--text); }
.severity-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 2px 8px; font-size: var(--fs-small); font-weight: 600; }
.severity-pill.high { background: rgba(255, 112, 112, 0.16); color: #8b1818; }
.severity-pill.medium { background: rgba(255, 190, 92, 0.16); color: #8b5d18; }
.severity-pill.low { background: rgba(116, 214, 128, 0.16); color: #20832c; }
.signal-action-box { border: 1px solid var(--border); border-radius: 6px; padding: 10px; background: rgba(15,61,51,0.077); }
.signal-action-box strong { display: block; margin: 4px 0 6px; }
.signal-action-box em { color: var(--text-dim); font-style: normal; font-size: var(--fs-small); }
.signal-evidence-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 10px; }
.signal-file-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.signal-file-chips span { border: 1px solid var(--border); border-radius: 999px; padding: 2px 8px; color: var(--text-dim); font-size: var(--fs-small); }
.signal-detail { margin-top: 10px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }
.signal-record-table { width: 100%; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: rgba(15,61,51,0.066); }
.signal-record-table td { padding: 5px 7px; border-bottom: 1px solid var(--border); font-size: var(--fs-small); vertical-align: top; }
.signal-record-table tr:last-child td { border-bottom: 0; }
.signal-record-table td:first-child { width: 38%; color: var(--text-dim); }
.controls-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }

.legend-card { padding: 10px 14px; margin-bottom: 12px; }
.legend-card h4 { font-size: var(--fs-micro); margin-bottom: 6px; }
.legend { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: var(--fs-micro); }
.legend-item { display: flex; align-items: center; gap: 4px; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex: none; }

.graph-node-popover { font-size: var(--fs-body); }
.graph-node-popover table td:first-child { color: var(--text-dim); white-space: nowrap; }

.chat-log { display: flex; flex-direction: column; gap: 10px; max-height: 300px; overflow-y: auto; }
.chat-msg { background: var(--panel-2); border-radius: 6px; padding: 8px 10px; font-size: var(--fs-body); line-height: 1.5; }
.chat-msg.user { background: rgba(15,107,87,0.15); border: 1px solid rgba(15,107,87,0.22); }
.chat-answer > *:first-child { margin-top: 0; }
.chat-answer > *:last-child { margin-bottom: 0; }
.chat-answer p { margin: 0 0 8px; }
.chat-answer h3,
.chat-answer h4 {
  margin: 0 0 8px;
  font-size: var(--fs-body);
  line-height: 1.35;
  color: var(--text);
}
.chat-answer ul,
.chat-answer ol { margin: 6px 0 8px 18px; padding: 0; }
.chat-answer li { margin: 3px 0; }
.chat-answer code {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  background: #eceff3;
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 4px;
}
.chat-table-wrap {
  margin: 8px 0;
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 6px;
}
.chat-table {
  width: 100%;
  min-width: 420px;
  border-collapse: collapse;
  font-size: var(--fs-small);
  line-height: 1.35;
}
.chat-table th,
.chat-table td {
  padding: 7px 8px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}
.chat-table th {
  color: var(--text);
  background: rgba(255,255,255,0.72);
  font-weight: 600;
  white-space: nowrap;
}
.chat-table tr:last-child td { border-bottom: 0; }
.chat-msg .cypher-toggle { color: var(--accent); cursor: pointer; font-size: var(--fs-small); margin-top: 6px; }
.chat-export-row { display: flex; gap: 6px; margin-top: 8px; }
.chat-msg pre {
  white-space: pre-wrap; font-family: var(--font-mono); font-size: var(--fs-small);
  background: #eceff3; padding: 8px; border-radius: 4px; margin-top: 6px; line-height: 1.5;
}
.chat-input-row { display: flex; gap: 8px; margin-top: 10px; }
.chat-input-row input { flex: 1; }

.discovery-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  max-width: 1280px;
  margin: 0 auto;
}
#view-discovery > .module-summary-grid {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
.discovery-history-panel {
  background: linear-gradient(180deg, rgba(255,255,255,0.324), transparent 120px), var(--panel);
}
.discovery-readiness-card {
  background: var(--panel-2);
  border-color: rgba(15,107,87,0.22);
}
.discovery-readiness-card #discovery-readiness {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 6px 14px;
}
.agent-status-bar {
  position: relative;
  margin-top: 16px;
  padding-top: 14px;
}
.agent-status-bar::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 24px;
  height: 3px;
  border-radius: 999px;
  background: #ffffff;
}
.agent-status-track {
  position: absolute;
  left: 18px;
  top: 24px;
  height: 3px;
  width: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent), var(--green));
  transition: width 0.25s ease;
  z-index: 1;
}
.agent-status-bar.running .agent-status-track {
  background-size: 180% 100%;
  animation: agent-progress 1.2s linear infinite;
}
.agent-status-steps {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.agent-status-step {
  appearance: none;
  border: 1px solid var(--border);
  background: var(--panel-2);
  color: var(--text-dim);
  border-radius: 8px;
  min-height: 62px;
  padding: 9px 8px 8px;
  display: grid;
  justify-items: center;
  gap: 3px;
  cursor: default;
  font-size: var(--fs-small);
}
.agent-status-step small {
  color: var(--text-dim);
  font-size: var(--fs-micro);
}
.agent-step-dot {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #ebeff4;
  border: 1px solid var(--border-strong);
  color: var(--text-dim);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums;
}
.agent-status-step.complete {
  color: var(--text);
  border-color: rgba(67,209,141,0.36);
  background: rgba(67,209,141,0.08);
}
.agent-status-step.complete .agent-step-dot {
  color: #07140e;
  background: var(--green);
  border-color: var(--green);
}
.agent-status-step.running {
  color: var(--text);
  border-color: rgba(15,107,87,0.56);
  background: rgba(15,107,87,0.12);
}
.agent-status-step.running .agent-step-dot {
  color: #071020;
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 0 5px rgba(15,107,87,0.13);
}
.agent-status-step.review {
  color: var(--text);
  border-color: rgba(230,184,74,0.48);
  background: rgba(230,184,74,0.1);
}
.agent-status-step.blocked,
.agent-status-step.failed {
  color: var(--text);
  border-color: rgba(239,97,116,0.5);
  background: rgba(239,97,116,0.1);
}
@keyframes agent-progress {
  0% { background-position: 0% 0; }
  100% { background-position: 180% 0; }
}
.agent-library {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.agent-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  box-shadow: var(--shadow);
}
.agent-card.active {
  border-color: rgba(15,107,87,0.42);
  background: linear-gradient(180deg, rgba(15,107,87,0.08), rgba(255,255,255,0.18)), var(--panel);
}
.discovery-config-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin: 10px 0 14px;
}
.discovery-config-grid label {
  color: var(--text-dim);
  font-size: var(--fs-small);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.scenario-editor {
  border-top: 1px solid var(--border);
  padding-top: 14px;
  margin-top: 14px;
}
.scenario-editor textarea {
  min-height: 46px;
  margin-top: 6px;
}
.finding-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px 18px;
  margin-bottom: 12px;
  box-shadow: var(--shadow);
}
.finding-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.finding-title { font-size: var(--fs-card-title); font-weight: 600; }
.finding-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.metric {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 12px;
}
.metric .label {
  color: var(--text-dim);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0;
}
.metric .value {
  font-size: var(--fs-card-title);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  margin-top: 2px;
}
.badge.supported { background: #ebf5f0; color: var(--green); }
.badge.inconclusive { background: #f4f2eb; color: var(--amber); }
.badge.rejected { background: #f5ebed; color: var(--red); }
.badge.completed { background: #ebf5f0; color: var(--green); }
.badge.running { background: #ebeff5; color: var(--accent); }
.badge.pending { background: #f4f2eb; color: var(--amber); }
.badge.failed, .badge.blocked { background: #f5ebed; color: var(--red); }
.mission-row {
  border-bottom: 1px solid var(--border);
  padding: 10px 0;
  cursor: pointer;
}
.mission-row:hover { background: rgba(255,255,255,0.45); }
.mission-row:last-child { border-bottom: none; }

.dashboard-shell {
  max-width: 1280px;
  margin: 0 auto;
}
.dashboard-heading {
  margin-bottom: 14px;
}
.dashboard-grid {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}
.dashboard-grid.stats {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.dashboard-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-kpi {
  background:
    linear-gradient(180deg, rgba(15,107,87,0.08), transparent 110px),
    var(--panel);
  border-color: rgba(15,107,87,0.22);
  margin-bottom: 0;
}
.dashboard-kpi .value {
  font-size: var(--fs-stat);
}
.dashboard-kpi.clickable {
  cursor: pointer;
  transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}
.dashboard-kpi.clickable:hover {
  transform: translateY(-1px);
  border-color: var(--accent);
  background:
    linear-gradient(180deg, rgba(15,107,87,0.13), transparent 120px),
    var(--panel);
}
.dashboard-panel {
  min-height: 210px;
  margin-bottom: 0;
}
.dashboard-panel h4 {
  margin-top: 0;
  margin-bottom: 12px;
}
.dashboard-bar-row,
.candidate-row {
  margin-bottom: 12px;
}
.dashboard-bar-row:last-child,
.candidate-row:last-child {
  margin-bottom: 0;
}
.dashboard-bar-label,
.candidate-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 5px;
}
.dashboard-bar-label strong {
  font-variant-numeric: tabular-nums;
}
.dashboard-bar-track {
  height: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(15,61,51,0.08);
}
.dashboard-bar-fill {
  height: 100%;
  min-width: 3px;
  background: linear-gradient(90deg, var(--accent), #65d6b1);
  border-radius: inherit;
}
.dashboard-bar-fill.value {
  background: linear-gradient(90deg, var(--green), var(--amber));
}
.dashboard-table th,
.dashboard-table td {
  padding: 7px 8px;
}
.dashboard-mission-list {
  display: grid;
  gap: 8px;
}
.dashboard-mission {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 12px;
}
.findings-drilldown {
  min-height: 0;
  margin-bottom: 16px;
}
.dashboard-findings-list {
  display: grid;
  gap: 10px;
}
.dashboard-finding {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px;
}
.finding-metrics.compact {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
.metric .value.mission-id {
  font-size: var(--fs-small);
  word-break: break-word;
}
.notice.compact {
  margin-top: 12px;
  padding: 9px 10px;
}
.empty-dashboard {
  text-align: center;
  padding: 32px;
}

@media (max-width: 900px) {
  .app-header, .header-actions, nav.steps { align-items: stretch; }
  .app-header { flex-direction: column; gap: 12px; position: static; }
  .header-actions { flex-wrap: wrap; }
  nav.steps { top: 0; overflow-x: auto; }
  .discovery-layout { grid-template-columns: 1fr; }
  .agent-status-steps { grid-template-columns: 1fr; }
  .agent-status-bar::before,
  .agent-status-track { display: none; }
  .dashboard-grid.two { grid-template-columns: 1fr; }
  .graph-layout { grid-template-columns: 1fr; height: auto; }
  .module-summary-grid { grid-template-columns: 1fr; }
  #graph-canvas { height: 520px; }
}

.dim { color: var(--text-dim); font-size: var(--fs-small); }

/* ============ LANDING: INDUSTRY SELECTION ============ */
.landing-view {
  display: none;
  min-height: 100vh;
  padding: 40px 40px 64px;
  background:
    linear-gradient(180deg, rgba(15,107,87,0.05), transparent 300px),
    #eaeff5;
  position: relative;
  overflow: hidden;
}
.landing-view.active { display: block; }
.landing-shell-accent {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.63) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.63) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(180deg, rgba(15,61,51,0.396), transparent 70%);
}

.landing-topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  max-width: 1180px;
  margin: 0 auto 18px;
  position: relative;
  z-index: 1;
}
.product-eyebrow {
  color: var(--accent);
  font-size: var(--fs-micro);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
  margin-bottom: 8px;
}

.landing-title {
  font-size: 28px;
  margin-bottom: 4px;
}
.landing-grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  position: relative;
  z-index: 1;
}

.industry-card {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.63), transparent 110px),
    var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 18px;
  cursor: not-allowed;
  transition: border-color 0.15s ease, transform 0.15s ease, background 0.15s ease;
  min-height: 190px;
}

.industry-card.enabled {
  cursor: pointer;
}
.industry-card.enabled:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  background: var(--panel-2);
}

.industry-icon {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-dim);
  border: 1px solid var(--accent);
  color: var(--accent);
  margin-bottom: 14px;
}
.industry-card.enabled .industry-icon {
  background: var(--accent-dim);
  border: 1px solid var(--accent);
  color: var(--accent);
}
.industry-icon svg { width: 20px; height: 20px; }

.industry-card h3 {
  font-size: 15px;
  margin-bottom: 6px;
}
.industry-card::after {
  content: "Open workspace";
  position: absolute;
  left: 18px;
  bottom: 16px;
  color: var(--text-dim);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0;
}
.industry-card.inactive::after {
  content: "Open workspace";
}

.coming-soon-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 10px;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--text-dim);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  padding: 3px 9px;
}

.locked-pack-badge {
  display: inline-flex;
  align-items: center;
  font-size: var(--fs-small);
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--accent-dim);
  border: 1px solid var(--accent);
  color: var(--accent);
}

@media (max-width: 900px) {
  #app-shell {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto minmax(0, 1fr);
  }
  .app-header {
    grid-column: 1;
    position: static;
    flex-wrap: wrap;
    gap: 10px;
  }
  nav.steps {
    grid-column: 1;
    grid-row: 2;
    position: static;
    height: auto;
    flex-direction: row;
    overflow-x: auto;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
  nav.steps button {
    min-width: 220px;
  }
  .sidebar-section-label,
  .sidebar-mini-card,
  .sidebar-divider {
    display: none;
  }
  main {
    grid-column: 1;
    grid-row: 3;
    padding: 16px;
  }
  .family-gauge-grid,
  .family-brief-grid,
  .family-dual-grid,
  .family-return-map-layout,
  .ceo-decision-grid,
  .ceo-summary-strip,
  .ceo-flow,
  .ceo-callout-grid {
    grid-template-columns: 1fr;
  }
  .family-brief-header,
  .family-panel-title {
    flex-direction: column;
    gap: 4px;
  }
  .insights-command-center,
  .signal-card-main {
    grid-template-columns: 1fr;
  }
  .executive-readout-list li {
    grid-template-columns: 1fr;
  }
  .executive-readout-list em {
    grid-column: 1;
  }
  .landing-grid { grid-template-columns: 1fr; }
  .landing-topbar { flex-direction: column; gap: 14px; }
}

/* ============ Executive Control Center ============
   One screen: headline, vital signs, ranked issues with a decisions rail,
   appendix folded below. Semantic colours only mark state. */
.nav-control-dot { width: 8px; height: 8px; justify-self: center; align-self: start; margin-top: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px rgba(69,196,138,0.18); align-self: center; }
.cc-root { display: grid; gap: 18px; }
.cc-label { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .06em; color: var(--text-dim); font-weight: 700; }
.cc-topbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 20px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
.cc-topbar h2 { font-size: 20px; margin: 0 0 6px; }
.cc-meta, .cc-actions, .cc-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cc-actions { gap: 8px; }
.cc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border: 1px solid var(--border); border-radius: 999px; font-size: var(--fs-micro); color: var(--text-dim); background: var(--panel); white-space: nowrap; }
.cc-live { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.cc-pill { display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 1px 7px; border-radius: 4px; white-space: nowrap; color: var(--text-dim); background: var(--panel-3); }
.cc-pill.cc-crit { color: #8b182b; background: rgba(225,94,114,0.18); }
.cc-pill.cc-high { color: #8b4418; background: rgba(240,140,90,0.16); }
.cc-pill.cc-warn { color: #8b6918; background: rgba(217,173,69,0.16); }
.cc-pill.cc-ok { color: #238052; background: rgba(69,196,138,0.15); }

.cc-headline { display: grid; gap: 6px; }
.cc-state { font-size: 21px; line-height: 1.4; font-weight: 600; margin: 0; max-width: 78ch; text-wrap: balance; }
.cc-sub { margin: 0; color: var(--text-dim); max-width: 90ch; }

.cc-vitals { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.cc-vital { background: var(--panel); padding: 13px 14px 12px; display: grid; gap: 3px; align-content: start; min-width: 0; }
.cc-vital-label { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .06em; color: var(--text-dim); font-weight: 700; }
.cc-vital-value { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.cc-vital-value small { font-family: var(--font-sans); font-size: 12px; font-weight: 600; color: var(--text-dim); margin-left: 4px; letter-spacing: 0; }
.cc-vital-context { font-size: var(--fs-small); color: var(--text-dim); }
.cc-delta { font-size: var(--fs-micro); font-weight: 600; }
.cc-delta.up { color: var(--green); }
.cc-delta.down { color: var(--red); }

.cc-main { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; }
.cc-section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 12px; margin-bottom: 10px; }
.cc-section-head h3 { margin: 0; font-size: var(--fs-card-title); }
.cc-section-head .dim { font-size: var(--fs-small); }
.cc-issues { display: grid; gap: 12px; }

.cc-issue { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; display: grid; gap: 12px; min-width: 0; }
.cc-issue.top { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
.cc-issue-head { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.cc-rank { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; font-family: var(--font-mono); font-weight: 700; font-size: 15px; background: var(--panel-3); }
.cc-issue.top .cc-rank { background: var(--red); color: var(--bg); }
.cc-issue-title h3 { font-size: 16px; line-height: 1.35; margin: 0 0 6px; text-wrap: balance; }
.cc-risk { text-align: right; display: grid; gap: 2px; max-width: 220px; }
.cc-risk strong { font-family: var(--font-mono); font-size: 17px; white-space: nowrap; }
.cc-risk span { font-size: var(--fs-micro); color: var(--text-dim); }
.cc-issue-body { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; padding-left: 46px; }
.cc-issue-body ul, .cc-issue-body ol { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.cc-decide { background: var(--panel-2); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; align-self: start; }
.cc-decide li { display: grid; gap: 2px; }
.cc-decide li em { display: block; font-style: normal; color: var(--text-dim); font-size: var(--fs-small); }
.cc-decide li.done > span:first-child { text-decoration: line-through; color: var(--text-dim); }
.cc-decision-meta { font-size: var(--fs-micro); color: var(--text-dim); }
.cc-decision-meta b { color: var(--green); font-weight: 600; }

.cc-evidence { padding-left: 46px; min-width: 0; }
.cc-rail .cc-evidence { padding-left: 0; }
.cc-evidence > summary, .cc-apx > summary { cursor: pointer; font-size: var(--fs-small); font-weight: 600; color: var(--accent); }
.cc-evidence-body { margin-top: 10px; display: grid; gap: 12px; }
.cc-ev-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.cc-ev { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; font-size: var(--fs-small); display: grid; gap: 3px; min-width: 0; }
.cc-src { font-family: var(--font-mono); font-size: 11px; color: var(--text-dim); overflow-wrap: anywhere; }

.cc-strip-wrap { overflow-x: auto; }
.cc-strip { border-collapse: separate; border-spacing: 3px; font-size: 11px; }
.cc-strip th { font-weight: 600; color: var(--text-dim); text-align: left; padding-right: 8px; white-space: nowrap; }
.cc-strip th.cc-strip-sub { font-weight: 400; padding-left: 10px; }
.cc-strip thead th { text-align: center; font-family: var(--font-mono); font-weight: 500; padding: 0; }
.cc-strip td { width: 40px; min-width: 40px; height: 26px; text-align: center; border-radius: 4px; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; }
.cc-u-over { background: var(--red); color: var(--bg); }
.cc-u-tight { background: rgba(217,173,69,0.22); color: var(--amber); }
.cc-u-ok { background: rgba(69,196,138,0.16); color: var(--green); }
.cc-u-low { background: var(--panel-3); color: var(--text-dim); }
.cc-u-zero { background: transparent; border: 1px dashed var(--border); }
.cc-legend { display: flex; flex-wrap: wrap; gap: 12px; font-size: var(--fs-micro); color: var(--text-dim); }
.cc-legend span { display: inline-flex; align-items: center; gap: 5px; }
.cc-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }

.cc-rail { display: grid; gap: 14px; position: sticky; top: 12px; }
.cc-panel { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; display: grid; gap: 10px; min-width: 0; }
.cc-panel h4 { margin: 0; color: var(--text); text-transform: none; font-size: var(--fs-section-title); }
.cc-dlist, .cc-watch, .cc-changes, .cc-list { list-style: none; margin: 0; padding: 0; display: grid; }
.cc-dlist li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; padding: 9px 0; border-top: 1px solid var(--border); font-size: var(--fs-body); }
.cc-dlist li:first-child { border-top: 0; padding-top: 2px; }
.cc-dlist li.closed .cc-what { color: var(--text-dim); text-decoration: line-through; }
.cc-what { font-weight: 600; line-height: 1.35; }
.cc-due { font-family: var(--font-mono); font-size: 11.5px; color: var(--amber); white-space: nowrap; text-align: right; }
.cc-due.overdue { color: var(--red); }
.cc-due.later { color: var(--text-dim); }
.cc-own { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: var(--fs-micro); color: var(--text-dim); }
.cc-own select { font-size: var(--fs-micro); padding: 2px 6px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 4px; }
.cc-watch { gap: 10px; }
.cc-watch li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; font-size: var(--fs-small); }
.cc-kpi { font-family: var(--font-mono); font-size: var(--fs-small); white-space: nowrap; color: var(--text-dim); }
.cc-kpi.cc-crit { color: var(--red); }
.cc-kpi.cc-warn { color: var(--amber); }
.cc-note { grid-column: 1 / -1; font-size: var(--fs-micro); color: var(--text-dim); margin: 0; }
.cc-bar { grid-column: 1 / -1; height: 5px; background: var(--panel-3); border-radius: 3px; overflow: hidden; }
.cc-bar b { display: block; height: 100%; border-radius: 3px; background: var(--amber); }
.cc-bar b.cc-crit { background: var(--red); }
.cc-changes { gap: 7px; font-size: var(--fs-small); }
.cc-changes li { display: flex; gap: 8px; align-items: baseline; }
.cc-empty { border: 1px dashed var(--border-strong); border-radius: 8px; padding: 12px; font-size: var(--fs-small); color: var(--text-dim); }
.cc-list { gap: 8px; font-size: var(--fs-small); }

.cc-appendix { border-top: 1px solid var(--border); padding-top: 18px; display: grid; gap: 10px; }
.cc-appendix > p { margin: 0; }
.cc-apx { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 12px 16px; }
.cc-apx > summary { color: var(--text); font-size: var(--fs-body); }
.cc-apx > summary .dim { font-weight: 400; margin-left: 8px; font-size: var(--fs-small); }
.cc-apx-body { padding-top: 12px; display: grid; gap: 10px; }
.cc-table { border-collapse: collapse; width: 100%; font-size: var(--fs-small); }
.cc-table th { text-align: left; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); font-weight: 600; padding: 6px 10px; border-bottom: 1px solid var(--border-strong); white-space: nowrap; }
.cc-table td { padding: 7px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
.cc-table .r { text-align: right; }
.cc-table .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }

@media (max-width: 1200px) {
  .cc-vitals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cc-main { grid-template-columns: minmax(0, 1fr); }
  .cc-rail { position: static; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
}
@media (max-width: 720px) {
  .cc-vitals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cc-state { font-size: 18px; }
  .cc-issue-head { grid-template-columns: 30px minmax(0, 1fr); }
  .cc-risk { grid-column: 2; text-align: left; }
  .cc-issue-body, .cc-evidence { padding-left: 0; }
  .cc-issue-body { grid-template-columns: minmax(0, 1fr); }
}

.cc-source { white-space: normal; }
.cc-link { background: none; border: 0; padding: 0; margin-left: 4px; color: var(--accent); font: inherit; font-weight: 600; cursor: pointer; }
.cc-link:hover { text-decoration: underline; }
.cc-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
.cc-next-step { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 20px; padding: 14px 16px; margin-bottom: 16px; border: 1px solid var(--accent); border-radius: 8px; background: var(--accent-dim); }
.cc-next-step strong, .cc-next-step span { display: block; }
.cc-next-step span { color: var(--text-dim); font-size: var(--fs-small); margin-top: 2px; }

/* Page header for Workspace views: a title and one line on what the page is for. */
.view-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 10px 20px; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--border); }
.view-head h2 { font-size: 20px; margin: 0 0 4px; }
.view-head p { margin: 0; max-width: 90ch; }

/* Analyst Workbench signal filter */
.wb-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.wb-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border: 1px solid var(--border); border-radius: 999px; background: var(--panel); color: var(--text-dim); font-size: var(--fs-small); cursor: pointer; }
.wb-chip span { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--text-dim); }
.wb-chip:hover { border-color: var(--border-strong); color: var(--text); }
.wb-chip.active { border-color: var(--accent); background: rgba(15,107,87,0.12); color: var(--text); }
.wb-chip:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Knowledge Graph tabs match the Analyst Workbench: underlined tabs, not pills. */
#knowledge-mode-nav { gap: 2px; flex-wrap: wrap; margin: 0 0 18px; border-bottom: 1px solid var(--border); }
#knowledge-mode-nav .knowledge-mode-btn { background: none; border: none; border-bottom: 2px solid transparent; border-radius: 0; color: var(--text-dim); font-size: 13px; padding: 8px 12px; margin-bottom: -1px; }
#knowledge-mode-nav .knowledge-mode-btn:hover { color: var(--text); }
#knowledge-mode-nav .knowledge-mode-btn.active { color: var(--text); border-bottom-color: var(--accent); background: none; font-weight: 600; }

/* Summary tiles sit in a row, not a column (a later .signal-summary-grid rule used to win). */
.signal-summary-grid.portfolio-summary-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: 14px; }

/* Analysis tables show every row; the 180px cap is for mapping-review previews. */
#view-portfolio .table-scroll,
#view-graph .knowledge-mode-panel:not(#knowledge-mode-graph) .table-scroll,
.cc-root .table-scroll { max-height: none; }

.settings-menu-note { font-size: var(--fs-micro); margin-top: 4px; }

/* ============ Phase 1: enterprise polish ============ */
.nav-admin-icon { width: 28px; text-align: center; color: var(--text-dim); font-size: 14px; }
.workspace-status strong { font-size: var(--fs-small); }
.workspace-status em { line-height: 1.45; }

/* Roadmap connectors: plain text, clearly not live */
.roadmap-head { margin-top: 22px; }
.roadmap-head .subsection-heading { display: flex; align-items: center; gap: 8px; }
.roadmap-head p { margin: -4px 0 10px; }
.roadmap-badge { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 1px 7px; border-radius: 4px; color: var(--text-dim); border: 1px dashed var(--border-strong); }
.connector-grid.roadmap { display: grid; gap: 6px; }
.roadmap-group { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 6px 0; border-top: 1px solid var(--border); }
.roadmap-group:first-child { border-top: 0; }
.roadmap-group-name { font-size: var(--fs-small); color: var(--text-dim); }
.roadmap-items { display: flex; flex-wrap: wrap; gap: 6px; }
.roadmap-item { font-size: var(--fs-small); padding: 2px 9px; border-radius: 999px; border: 1px solid var(--border); color: var(--text-dim); cursor: default; }

/* Empty states with one clear next step */
.empty-state { display: grid; justify-items: center; gap: 8px; text-align: center; padding: 48px 24px; border: 1px dashed var(--border-strong); border-radius: 10px; background: var(--panel); }
.empty-state strong { font-size: var(--fs-card-title); }
.empty-state p { margin: 0; color: var(--text-dim); max-width: 52ch; }
.empty-state button { margin-top: 6px; }
.graph-canvas-wrap .empty-state, #graph-canvas .empty-state { border: 0; background: transparent; height: 100%; align-content: center; }

/* Administration */
.admin-tab { display: none; }
.admin-tab.active { display: block; }
.admin-danger-list { display: grid; gap: 12px; }
.admin-danger { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr); gap: 24px; align-items: center; padding: 16px 18px; border: 1px solid rgba(225,94,114,0.35); border-radius: 10px; background: var(--panel); }
.admin-danger h3 { margin: 0 0 4px; }
.admin-danger p { margin: 0; }
.admin-danger-confirm { display: grid; gap: 6px; }
.admin-danger-confirm label { font-size: var(--fs-small); color: var(--text-dim); }
.admin-danger-confirm input { padding: 7px 10px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 6px; font-family: var(--font-mono); }
button.danger { background: var(--red); color: #ffffff; border: 1px solid var(--red); border-radius: 6px; padding: 8px 14px; font-weight: 600; cursor: pointer; }
button.danger:disabled { opacity: .45; cursor: not-allowed; }
#admin-maintenance-result { margin-top: 12px; }
@media (max-width: 900px) { .admin-danger { grid-template-columns: minmax(0, 1fr); } .roadmap-group { grid-template-columns: minmax(0, 1fr); } }

/* ============ Phase 2: data model page (graph-centred) ============ */
.dm-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }
.dm-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; min-width: 0; }
.dm-title strong { font-size: 16px; }
.dm-status { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 2px 8px; border-radius: 4px; align-self: center; }
.dm-status.draft { color: #8b6918; background: rgba(217,173,69,0.16); }
.dm-status.approved { color: #238052; background: rgba(69,196,138,0.15); }
.dm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.dm-toggle { display: inline-flex; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.dm-toggle .ontology-mode-btn { border: 0; border-radius: 0; background: transparent; color: var(--text-dim); padding: 6px 12px; font-size: var(--fs-small); cursor: pointer; }
.dm-toggle .ontology-mode-btn.active { background: var(--panel-3); color: var(--text); font-weight: 600; }
.dm-approval { margin: 8px 2px 10px; font-size: var(--fs-small); }

.dm-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr) 330px; gap: 12px; height: calc(100vh - 250px); min-height: 560px; }
.dm-entities, .dm-inspector, .dm-canvas { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; min-width: 0; min-height: 0; }
.dm-entities { display: flex; flex-direction: column; padding: 10px; gap: 8px; }
.dm-entities input[type=search] { width: 100%; padding: 7px 10px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 6px; }
#dm-entity-list { overflow-y: auto; display: grid; gap: 10px; align-content: start; padding-right: 2px; }
.dm-group-name { display: flex; align-items: center; gap: 7px; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); font-weight: 700; padding: 2px 4px 4px; }
.dm-group-name i, .dm-legend i, .dm-overview i, .dm-insp-head > i, .dm-link i, .dm-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex: none; }
.dm-entity { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 8px; padding: 6px 8px; border: 0; border-radius: 6px; background: transparent; color: var(--text); font-size: var(--fs-small); text-align: left; cursor: pointer; }
.dm-entity:hover { background: var(--panel-2); }
.dm-entity.active { background: rgba(15,107,87,0.14); box-shadow: inset 2px 0 0 var(--accent); }
.dm-entity em { font-style: normal; font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--text-dim); }
.dm-none { padding: 8px; font-size: var(--fs-small); }

.dm-canvas { display: flex; flex-direction: column; overflow: hidden; }
.dm-canvas .ontology-mode-panel { display: none; flex: 1; min-height: 0; }
.dm-canvas .ontology-mode-panel.active { display: flex; flex-direction: column; }
.dm-canvas-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--border); }
.dm-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: var(--fs-micro); color: var(--text-dim); }
.dm-legend span { display: inline-flex; align-items: center; gap: 5px; }
.dm-canvas-actions { display: flex; align-items: center; gap: 8px; }
.dm-check { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-small); }
.dm-graph-wrap { position: relative; flex: 1; min-height: 0; }
.dm-graph-canvas { position: absolute; inset: 0; height: auto !important; border: 0 !important; border-radius: 0 !important; }
.dm-table-panel { overflow-y: auto; padding: 10px 12px; }
.dm-table-head { display: flex; justify-content: space-between; align-items: center; margin: 6px 0; }
.dm-table-head h4 { margin: 0; }
.dm-table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.dm-table th { text-align: left; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); padding: 6px 8px; border-bottom: 1px solid var(--border-strong); }
.dm-table td { padding: 7px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.dm-table tbody tr { cursor: pointer; }
.dm-table tbody tr:hover { background: var(--panel-2); }
.dm-table .r { text-align: right; }
.dm-table .nowrap { white-space: nowrap; }
.dm-table .dm-dot { margin-right: 7px; }
#view-upload .dm-table-panel .table-scroll { max-height: none; border: 0; }

.dm-inspector { overflow-y: auto; padding: 14px 16px; }
.dm-inspector h3 { margin: 0; font-size: 16px; }
.dm-inspector h4 { margin: 16px 0 6px; color: var(--text); text-transform: none; font-size: var(--fs-section-title); }
.dm-inspector h4 .dim { font-weight: 400; margin-left: 4px; }
.dm-inspector p { margin: 8px 0 0; }
.dm-insp-head { display: flex; gap: 10px; align-items: flex-start; }
.dm-insp-head > i { margin-top: 6px; width: 11px; height: 11px; }
.dm-link-icon { width: 14px !important; height: 2px !important; border-radius: 1px !important; background: var(--accent); margin-top: 11px !important; }
.dm-fields { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.dm-fields td { padding: 4px 0; border-bottom: 1px solid var(--border); }
.dm-fields td:nth-child(2) { padding-left: 8px; }
.dm-fields td:last-child { text-align: right; }
.dm-tag { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 0 6px; border-radius: 4px; color: var(--accent); background: rgba(15,107,87,0.12); }
.dm-derived, .dm-links, .dm-overview { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: var(--fs-small); }
.dm-derived li { display: grid; gap: 1px; }
.dm-derived .dim { font-size: var(--fs-micro); line-height: 1.4; }
.dm-sub { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); margin: 8px 0 4px; }
.dm-links li { display: grid; gap: 0; }
.dm-links .dim { font-size: var(--fs-micro); padding-left: 17px; }
.dm-link { display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; color: var(--text); padding: 0; font-size: var(--fs-small); cursor: pointer; text-align: left; }
.dm-link:hover { color: var(--accent); }
.dm-overview li { display: flex; align-items: center; gap: 8px; }
.dm-overview .dim { margin-left: auto; font-family: var(--font-mono); }
.dm-rel-path { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.dm-tech { margin-top: 14px; font-size: var(--fs-small); }
.dm-tech summary { cursor: pointer; color: var(--text-dim); }
.dm-tech div { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.dm-insp-actions { display: flex; gap: 8px; margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--border); }
.dm-delete { color: var(--red) !important; }

/* Dialogs */
.modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: rgba(5,8,12,0.66); padding: 16px; }
.modal[hidden] { display: none; }
.modal-box { width: min(560px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; background: var(--panel); border: 1px solid var(--border-strong); border-radius: 12px; padding: 18px 20px; box-shadow: 0 24px 60px rgba(15,61,51,0.225); }
.modal-wide { width: min(720px, 100%); }
.modal-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 6px; }
.modal-head h3 { margin: 0; }
.modal-close { border: 0; background: none; color: var(--text-dim); font-size: 22px; line-height: 1; cursor: pointer; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.dm-source-options { display: grid; gap: 10px; margin: 12px 0; }
.dm-source-options label { display: flex; align-items: center; gap: 8px; }
.dm-help p { margin: 0 0 10px; line-height: 1.55; }
.dm-help h4 { margin: 14px 0 8px; }

@media (max-width: 1250px) { .dm-layout { grid-template-columns: 200px minmax(0, 1fr); height: auto; } .dm-inspector { grid-column: 1 / -1; } .dm-canvas { min-height: 560px; } }
@media (max-width: 760px) { .dm-layout { grid-template-columns: minmax(0, 1fr); } }
.dm-help .ontology-path-list { display: grid; gap: 6px; }
.dm-help .ontology-path-list span { display: block; padding: 6px 10px; border: 1px solid var(--border); border-radius: 6px; font-size: var(--fs-small); }

/* ============ Phase 3: setup stepper, files, triage, load summary ============ */
nav.steps button[hidden] { display: none; }
.setup-stepper { display: flex; align-items: center; gap: 0; margin: 0 0 14px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); overflow-x: auto; }
.setup-step { display: flex; align-items: center; gap: 10px; border: 0; background: none; color: var(--text); padding: 4px 6px; border-radius: 8px; cursor: pointer; text-align: left; flex: none; }
.setup-step:hover:not(:disabled) { background: var(--panel-2); }
.setup-step:disabled { cursor: not-allowed; opacity: .55; }
.setup-step-marker { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-mono); font-size: 12px; font-weight: 700; border: 1.5px solid var(--border-strong); color: var(--text-dim); flex: none; }
.setup-step.done .setup-step-marker { background: rgba(69,196,138,0.15); border-color: var(--green); color: var(--green); }
.setup-step.current .setup-step-marker { background: var(--accent); border-color: var(--accent); color: var(--bg); }
.setup-step-text strong { display: block; font-size: var(--fs-small); }
.setup-step-text em { display: block; font-style: normal; font-size: var(--fs-micro); color: var(--text-dim); }
.setup-step.current .setup-step-text strong { color: var(--text); }
.setup-step-line { flex: 1; min-width: 24px; height: 1px; background: var(--border-strong); margin: 0 6px; }

.sources-head { display: flex; justify-content: space-between; align-items: center; }
.file-table-wrap { margin-top: 10px; }
.file-table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.file-table th { text-align: left; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); padding: 6px 8px; border-bottom: 1px solid var(--border-strong); }
.file-table td { padding: 6px 8px; border-bottom: 1px solid var(--border); }
.file-table tfoot td { border-bottom: 0; color: var(--text-dim); }
.file-table .r { text-align: right; }
.templates-list { display: grid; gap: 2px; margin-top: 10px; }
.template-hero { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; margin: 4px 0 14px; border: 1px solid var(--border); border-left: 3px solid var(--gold, #a8833a); border-radius: 8px; background: var(--panel-2); }
.template-hero strong { display: block; margin-bottom: 2px; }
.template-hero .dim { font-size: var(--fs-small); }
.template-hero .primary-link { flex: 0 0 auto; background: var(--brand, #0f3d33); color: #fff; text-decoration: none; padding: 8px 14px; border-radius: 6px; font-weight: 600; font-size: var(--fs-small); }
.template-hero .primary-link:hover { filter: brightness(1.15); }
.template-group h4 { margin: 14px 0 4px; font-size: var(--fs-small); }
.template-group h4 .dim { font-weight: 400; margin-left: 6px; }
.template-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 4px; border-bottom: 1px solid var(--border); }
.template-row strong { display: block; font-size: var(--fs-small); }
.template-row .dim { font-size: var(--fs-micro); }

.triage, .load-summary { border: 1px solid var(--border); border-radius: 10px; background: var(--panel); padding: 14px 16px; margin-bottom: 14px; }
.triage-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.triage-stats > div { background: var(--panel); padding: 10px 12px; display: grid; gap: 2px; }
.triage-stats span { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); font-weight: 700; }
.triage-stats strong { font-family: var(--font-mono); font-size: 20px; }
.triage-stats strong small { font-size: 12px; color: var(--text-dim); font-family: var(--font-sans); font-weight: 500; }
.triage-stats em { font-style: normal; font-size: var(--fs-micro); color: var(--text-dim); }
.triage-stats .warn strong { color: var(--amber); }
.triage-stats .crit strong { color: var(--red); }
.triage-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-top: 10px; font-size: var(--fs-small); }
.triage-warn { color: var(--amber); }
.triage-ok { color: var(--green); }
.load-summary-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.load-summary-head strong { margin-left: 6px; }
.load-details { margin-top: 12px; }
.load-details summary { cursor: pointer; color: var(--accent); font-size: var(--fs-small); font-weight: 600; }
#coverage-card { padding: 0; background: transparent; border: 0; }

/* ============ Phase 4: administration pages ============ */
#view-admin .admin-tab > * + * { margin-top: 14px; }
.admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; }
.admin-panel { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; min-width: 0; }
.admin-panel h3 { margin: 0 0 4px; }
.admin-panel-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 16px; margin-bottom: 10px; }
.admin-panel-head .dim { font-size: var(--fs-small); }
.admin-field { display: block; margin: 14px 0 6px; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); font-weight: 700; }
.admin-panel select, .admin-inline input { width: 100%; padding: 8px 10px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 6px; font: inherit; }
.admin-inline { display: flex; gap: 8px; align-items: center; }
.admin-inline input { flex: 1; min-width: 0; }
.admin-inline button { flex: none; }
.admin-kv { display: grid; gap: 0; margin-top: 12px; }
.admin-kv > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: var(--fs-small); }
.admin-kv span { color: var(--text-dim); }
.admin-kv strong { font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.admin-spend-figure { display: flex; align-items: baseline; gap: 8px; margin-top: 8px; }
.admin-spend-figure strong { font-family: var(--font-mono); font-size: 28px; }
.admin-spend-figure span { color: var(--text-dim); }
.admin-meter { height: 8px; border-radius: 4px; background: var(--panel-3); overflow: hidden; margin-top: 8px; }
.admin-meter b { display: block; height: 100%; background: var(--green); }
.admin-meter b.warn { background: var(--amber); }
.admin-meter b.crit { background: var(--red); }
.admin-note { font-size: var(--fs-micro); margin: 8px 0 0; }
#ai-budget-result { margin-top: 8px; }
.dm-table td.nowrap { white-space: nowrap; }

/* ============ Phase 5: sign-in, user menu, users admin ============ */
.auth-screen { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px; background: radial-gradient(circle at 30% 20%, rgba(15,107,87,0.08), transparent 55%), var(--bg); overflow-y: auto; }
.auth-screen[hidden] { display: none; }
.auth-box { width: min(400px, 100%); background: var(--panel); border: 1px solid var(--border); border-radius: 14px; padding: 26px 28px; box-shadow: 0 24px 60px rgba(15,61,51,0.2); }
.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.auth-brand img { width: 38px; height: 38px; border-radius: 8px; }
.auth-brand strong { display: block; font-size: 16px; }
.auth-brand span { display: block; font-size: var(--fs-small); color: var(--text-dim); }
.auth-form { display: grid; gap: 6px; }
.auth-form[hidden] { display: none; }
.auth-form h2 { margin: 0 0 6px; font-size: 20px; }
.auth-form p { margin: 0 0 6px; }
.auth-form label { font-size: var(--fs-small); color: var(--text-dim); margin-top: 6px; }
.auth-form input { padding: 9px 11px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 7px; font: inherit; }
.auth-form input:focus { outline: 2px solid var(--accent); outline-offset: 0; border-color: transparent; }
.auth-form button[type=submit] { margin-top: 12px; padding: 10px; }
.auth-hint { font-size: var(--fs-micro); margin: 2px 0 0 !important; }
.auth-error { color: #8b182b; font-size: var(--fs-small); min-height: 1.2em; }
.auth-actions { display: flex; gap: 8px; justify-content: flex-end; }
.auth-actions button { margin-top: 12px; }

.header-actions { display: flex; align-items: center; gap: 8px; }
.user-menu-wrap { position: relative; }
.user-chip { display: inline-flex; align-items: center; gap: 8px; padding: 4px 10px 4px 4px !important; border-radius: 999px !important; }
.user-avatar { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-dim); color: var(--accent); font-size: 11px; font-weight: 700; }
#user-chip-name { font-size: var(--fs-small); }
.user-menu-head strong { display: block; }
.user-menu-head span { font-size: var(--fs-micro); }
.admin-grid-users { grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); }
.admin-form { display: grid; }
.admin-form input, .admin-form select { padding: 8px 10px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 6px; font: inherit; }
.admin-form button[type=submit] { margin-top: 12px; justify-self: start; }
.admin-section-gap { margin-top: 22px !important; }
#users-result { margin-top: 10px; }
.temp-password { font-size: 14px; padding: 2px 6px; user-select: all; }
#users-root select { padding: 4px 6px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 5px; }
.role-table td:not(:first-child), .role-table th:not(:first-child) { text-align: center; }
@media (max-width: 1000px) { .admin-grid-users { grid-template-columns: minmax(0, 1fr); } }

/* ============ Data Understanding Report and readiness ============ */
.u-report { display: grid; gap: 14px; margin-bottom: 14px; }
.u-head, .u-block { border: 1px solid var(--border); border-radius: 10px; background: var(--panel); padding: 14px 16px; }
.u-head { display: grid; gap: 12px; }
.u-headline { font-size: 17px; font-weight: 600; line-height: 1.45; margin: 4px 0 0; max-width: 90ch; }
.u-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.u-block h3 { margin: 0 0 10px; font-size: var(--fs-card-title); }
.u-allclear { color: var(--green); font-size: var(--fs-small); }
.u-questions { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.uq { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid rgba(217,173,69,0.35); border-radius: 8px; background: rgba(217,173,69,0.05); }
.uq strong { display: block; font-weight: 600; font-size: var(--fs-small); }
.uq em { display: block; font-style: normal; color: var(--text-dim); font-size: var(--fs-micro); margin-top: 2px; }
.uq-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.uq-actions select { padding: 4px 6px; background: var(--panel-2); color: var(--text); border: 1px solid var(--border); border-radius: 5px; }
.u-link { display: inline-flex; align-items: baseline; gap: 4px; margin: 0 6px 4px 0; padding: 1px 8px; border-radius: 999px; font-size: var(--fs-micro); background: rgba(69,196,138,0.12); color: #247f51; }
.u-link.pending { background: rgba(217,173,69,0.14); color: #8b6918; }
.u-link small { color: var(--text-dim); }
.u-excluded td { opacity: .5; }
.u-analyses { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.u-analysis { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; display: grid; gap: 4px; align-content: start; font-size: var(--fs-small); }
.u-analysis.not_assessed { border-color: rgba(225,94,114,0.4); }
.u-analysis.partial { border-color: rgba(217,173,69,0.4); }
.u-analysis-head { display: flex; align-items: center; gap: 8px; }
.u-analysis p { margin: 0; color: var(--text-dim); }
.u-analysis ul { margin: 2px 0 0; padding-left: 16px; }
.u-analysis .u-fix { color: var(--text); }
.u-analysis button { justify-self: start; margin-top: 4px; }
.mapping-details { border: 1px solid var(--border); border-radius: 10px; background: var(--panel); padding: 12px 16px; margin-bottom: 14px; }
.mapping-details > summary { cursor: pointer; font-weight: 600; }
.mapping-details > summary .dim { font-weight: 400; margin-left: 8px; font-size: var(--fs-small); }
.mapping-details[open] > summary { margin-bottom: 12px; }
.readiness-banner { margin-top: 10px; border-radius: 8px; padding: 10px 12px; font-size: var(--fs-small); border: 1px solid rgba(217,173,69,0.4); background: rgba(217,173,69,0.07); }
.readiness-banner.crit { border-color: rgba(225,94,114,0.45); background: rgba(225,94,114,0.07); }
.readiness-banner summary { cursor: pointer; }
.readiness-more { color: var(--accent); font-weight: 600; }
.readiness-banner ul { margin: 10px 0 0; padding-left: 0; list-style: none; display: grid; gap: 8px; }
.readiness-banner li em { display: block; font-style: normal; color: var(--text); margin-top: 2px; }
.readiness-banner li .dim { display: block; }
.load-readiness { margin-top: 10px; font-size: var(--fs-small); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
@media (max-width: 900px) { .uq { grid-template-columns: minmax(0, 1fr); } .uq-actions { justify-content: flex-start; } .u-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Report tables show every file */
#view-review .u-report .table-scroll { max-height: none; }

/* ---- Review & confirm: overview, model fit, analyses ---- */
.u-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.u-subline { margin: 6px 0 0; font-size: var(--fs-small); max-width: 90ch; }
.u-jumps { display: flex; flex-wrap: wrap; gap: 6px; }
.u-jump { background: transparent; border: 1px solid var(--border); color: var(--text-dim); border-radius: 999px; padding: 3px 10px; font-size: var(--fs-small); cursor: pointer; }
.u-jump:hover { color: var(--text); border-color: var(--border-strong); }
.u-jump b { color: var(--text); font-weight: 600; margin-left: 2px; }
#u-decisions, #u-files, #model-fit, #analyses-root { scroll-margin-top: 16px; }
#model-fit { margin-bottom: 14px; }
.u-block-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.u-block-head h3 { margin: 0 0 4px; }
.u-block-head p { margin: 0; max-width: 90ch; }
.u-based-on { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-top: 2px; }

.fit-file { border: 1px solid var(--border); border-radius: 8px; margin-top: 10px; background: var(--panel); }
.fit-file.excluded { opacity: 0.55; }
.fit-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; cursor: pointer; }
.fit-file[open] > .fit-head { border-bottom: 1px solid var(--border); }
.fit-title { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fit-arrow { color: var(--text-dim); }
.fit-entity { color: var(--accent); font-weight: 600; }
.fit-counts { font-size: var(--fs-small); }
.fit-body { padding: 10px 12px 12px; display: grid; gap: 10px; }
.fit-entity-bar { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.fit-entity-bar p { margin: 0 0 4px; max-width: 80ch; }
.fit-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fit-table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.fit-table th { text-align: left; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); padding: 6px 8px; border-bottom: 1px solid var(--border-strong); }
.fit-table td { padding: 7px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.fit-table .fit-group td { background: var(--panel-2); padding: 6px 8px; border-bottom: 1px solid var(--border); }
.fit-table td.fit-arrow { width: 16px; padding-left: 0; padding-right: 0; }
.fit-table select { max-width: 260px; }
.fit-row.unmapped code { color: var(--text-dim); }
.fit-row.llm_suggested { background: rgba(159,136,255,0.05); }
.fit-samples { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.fit-samples span { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--text-dim); background: var(--panel-2); border-radius: 4px; padding: 0 5px; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fit-meta { margin-top: 4px; color: var(--text-dim); font-size: var(--fs-micro); line-height: 1.5; max-width: 50ch; }
.fit-type { font-family: var(--font-mono); }
.fit-match { color: var(--green); }
.fit-match.weak { color: var(--amber); }
.fit-why { margin-top: 4px; font-size: var(--fs-micro); max-width: 40ch; }
.fit-gaps { display: grid; gap: 6px; font-size: var(--fs-small); }
.fit-gaps > div { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.fit-gap { border: 1px solid var(--border); border-radius: 999px; padding: 1px 8px; font-size: var(--fs-micro); color: var(--text-dim); }
.fit-gap.warn { border-color: rgba(217,173,69,0.5); color: var(--amber); }
.fit-gap.crit { border-color: rgba(225,94,114,0.5); color: var(--red); }
@media (max-width: 900px) { .u-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .u-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.u-report .source-chip, #model-fit .source-chip, #analyses-root .source-chip { display: inline-block; border: 1px solid var(--border); border-radius: 999px; padding: 1px 8px; font-size: var(--fs-micro); color: var(--text); background: var(--panel-2); margin: 0 4px 4px 0; }
#analyses-root .source-chip.missing { color: var(--red); border-color: rgba(225,94,114,0.4); }
.u-analysis { min-width: 0; overflow-wrap: anywhere; }
.u-headline { font-size: 15px; }
#model-fit .table-scroll { max-height: none; }
@media (max-width: 700px) {
  .u-file-summary, .u-file-preview .sample-preview { max-width: calc(100vw - 80px); }
}

/* ---- Control Center: provenance strip, recommendation, evidence, funding, decision log ---- */
.cc-pipeline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 8px 0 4px; font-size: var(--fs-small); color: var(--text-dim); }
.cc-pipeline > i { font-style: normal; color: var(--border-strong); }
.cc-pipe-step b { color: var(--text); font-family: var(--font-mono); font-weight: 600; margin-right: 4px; }
.cc-rec { display: grid; gap: 4px; border-left: 3px solid var(--accent); padding: 2px 0 2px 10px; margin-bottom: 10px; }
.cc-rec strong { font-size: 15px; line-height: 1.35; }
.cc-rec em { font-style: normal; color: var(--text-dim); font-size: var(--fs-small); }
.cc-rec.done strong { text-decoration: line-through; color: var(--text-dim); }
.cc-decision-meta b.overdue { color: var(--red); }
.cc-ifnot { margin: 0 0 10px; font-size: var(--fs-small); line-height: 1.5; color: var(--text); }
.cc-also > summary { cursor: pointer; color: var(--text-dim); font-size: var(--fs-small); }
.cc-also[open] > summary { margin-bottom: 6px; }
.cc-rule { font-size: var(--fs-micro); color: var(--accent); }
.cc-rule.builtin { color: var(--text-dim); }
.cc-srcs { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.cc-src-link { background: none; border: 0; padding: 0; font-family: var(--font-mono); font-size: 11px; color: var(--accent); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; text-align: left; overflow-wrap: anywhere; }
.cc-src-link:hover { color: var(--text); }
.ev-record { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; margin-top: 10px; }
.ev-record-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-bottom: 6px; }
.ev-values th { width: 38%; text-transform: none; letter-spacing: 0; font-size: var(--fs-small); color: var(--text-dim); font-weight: 500; }
.ev-values td, .ev-values th { padding: 4px 8px; overflow-wrap: anywhere; }
.ev-values tbody tr { cursor: default; }
.ev-loaded { margin-top: 6px; font-family: var(--font-mono); font-size: var(--fs-micro); }
.cc-funding { margin-top: 18px; }
.cc-funding-body { border: 1px solid var(--border); border-radius: 10px; background: var(--panel); padding: 14px 16px; display: grid; gap: 12px; }
.cc-funding-slider { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cc-funding-slider input[type=range] { flex: 1; min-width: 160px; accent-color: var(--accent); }
.cc-funding-slider strong { font-family: var(--font-mono); min-width: 80px; }
.cc-funding-result { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 14px; }
.cc-funding-result p { margin: 4px 0; font-size: var(--fs-body); }
.cc-funding-result b { font-family: var(--font-mono); font-size: 18px; }
.cc-funding .cc-note { margin: 0; }
.cc-dlog { grid-column: 1 / -1; font-size: var(--fs-micro); color: var(--text-dim); }
.cc-dlog > summary { cursor: pointer; }
.cc-dlog ul { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 4px; }
.cc-dlog li em { display: block; font-style: normal; color: var(--text); }
.cc-dlog-note { display: flex; gap: 6px; margin-top: 6px; }
.cc-dlog-note input { flex: 1; min-width: 0; font-size: var(--fs-small); }
@media (max-width: 900px) { .cc-funding-result { grid-template-columns: 1fr; } }
.cc-fbar { display: block; height: 6px; border-radius: 3px; background: var(--panel-3); overflow: hidden; margin-top: 4px; max-width: 220px; }
.cc-fbar b { display: block; height: 100%; border-radius: 3px; background: var(--amber); }
.cc-fbar b.crit { background: var(--red); }
.cc-dlist .cc-dlog li { display: block; padding: 4px 0; border-top: 1px dashed var(--border); font-size: var(--fs-micro); line-height: 1.45; }
.cc-dlist .cc-dlog li:first-child { border-top: 0; }
.cc-dlist .cc-dlog li > span { color: var(--text-dim); margin-right: 4px; }

/* ---- Reasoning path panel over the graph */
.cc-path-btn { background: none; border: 0; padding: 0; margin: 4px 0 6px; color: var(--accent); font-size: var(--fs-small); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.graph-path-panel { position: absolute; top: 12px; left: 12px; z-index: 9; width: min(380px, calc(100% - 24px)); max-height: calc(100% - 24px); overflow-y: auto;
  background: rgba(15,61,51,0.517); border: 1px solid var(--border-strong); border-radius: 8px; padding: 12px 14px; box-shadow: 0 12px 28px rgba(15,61,51,0.175); }
.gp-head { display: flex; justify-content: space-between; align-items: center; }
.gp-title { margin: 4px 0 8px; font-weight: 600; font-size: var(--fs-small); line-height: 1.4; }
.graph-path-panel ol { margin: 0 0 8px; padding-left: 18px; display: grid; gap: 6px; }
.graph-path-panel li button { background: none; border: 0; padding: 2px 0; color: var(--text); text-align: left; font-size: var(--fs-small); line-height: 1.45; cursor: pointer; }
.graph-path-panel li.active button { color: var(--accent); font-weight: 600; }
.graph-path-panel li button:hover { color: var(--accent); }
.graph-path-panel .dim { margin: 0; font-size: var(--fs-micro); }
.graph-path-panel { width: min(320px, calc(100% - 24px)); }
.graph-path-panel ol { list-style: none; padding-left: 0; counter-reset: gp; }
.graph-path-panel li { counter-increment: gp; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; }
.graph-path-panel li::before { content: counter(gp) "."; color: var(--text-dim); font-size: var(--fs-small); padding-top: 2px; }

/* ---- Best portfolio plan (frontier chart: dataviz palette dark slots 1 blue, 2 orange; validated on #111720) */
.cc-plan { margin-top: 18px; --plan-frontier: #3987e5; --plan-asis: #d95926; }
.cc-plan-body { border: 1px solid var(--border); border-radius: 10px; background: var(--panel); padding: 14px 16px; display: grid; gap: 12px; }
.cc-plan-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; font-size: var(--fs-small); }
.cc-plan-controls input[type=number] { width: 80px; }
.cc-plan-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.cc-plan-chart { margin: 0; }
.cc-plan-chart figcaption { font-size: var(--fs-small); color: var(--text-dim); margin-bottom: 6px; }
.cc-frontier { width: 100%; height: auto; display: block; }
.cc-frontier .axis text { fill: var(--text-dim); font-size: 11px; font-family: var(--font-sans); }
.cc-frontier .axis .title { fill: var(--text-dim); font-size: 11px; }
.cc-frontier .g { stroke: var(--border); stroke-width: 1; }
.cc-frontier .base { stroke: var(--border-strong); stroke-width: 1; }
.cc-frontier .frontier { fill: none; stroke: var(--plan-frontier); stroke-width: 2; stroke-linejoin: round; }
.cc-frontier .pt { cursor: pointer; outline: none; }
.cc-frontier .pt .hit { fill: transparent; }
.cc-frontier .pt .dot { fill: var(--plan-frontier); stroke: var(--panel); stroke-width: 2; }
.cc-frontier .pt .ring { fill: none; stroke: var(--text); stroke-width: 1.5; }
.cc-frontier .pt.asis .dot { fill: var(--plan-asis); }
.cc-frontier .pt:hover .dot, .cc-frontier .pt:focus .dot { stroke: var(--text); }
.cc-frontier .lbl { fill: var(--text); font-size: 11.5px; font-weight: 600; font-family: var(--font-sans); }
.cc-plan-legend { display: flex; gap: 16px; font-size: var(--fs-small); color: var(--text-dim); margin-top: 4px; }
.cc-plan-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.cc-plan-legend .lg-frontier { background: var(--plan-frontier); }
.cc-plan-legend .lg-asis { background: var(--plan-asis); }
.cc-plan-decisions { margin: 6px 0 10px; padding-left: 18px; display: grid; gap: 4px; font-size: var(--fs-body); }
.cc-plan-compare th { font-weight: 500; text-align: left; color: var(--text-dim); font-size: var(--fs-small); }
.cc-plan-compare td.up { color: var(--green); }
.cc-plan-compare td.down { color: var(--red); }
.cc-plan .cc-note { margin: 0; }
@media (max-width: 1100px) { .cc-plan-grid { grid-template-columns: 1fr; } }
.cc-plan-compare { width: 100%; }
.cc-plan-compare th, .cc-plan-compare thead th { text-transform: none; letter-spacing: 0; white-space: normal; font-size: var(--fs-small); padding: 5px 6px; }
.cc-plan-compare tbody th { width: 46%; line-height: 1.35; }
.cc-plan-compare td { padding: 5px 6px; white-space: nowrap; font-size: var(--fs-small); }

/* ---- AI analyst answers */
.an-intro { margin: -4px 0 8px; font-size: var(--fs-small); }
.an-box { border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; margin: 8px 0; background: var(--panel-2); font-size: var(--fs-small); }
.an-box ul { margin: 4px 0; padding-left: 18px; }
.an-links { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 6px 0; }
.an-how { margin-top: 8px; font-size: var(--fs-micro); color: var(--text-dim); }
.an-how > summary { cursor: pointer; }
.an-how ol { margin: 6px 0; padding-left: 18px; }
.an-how pre { white-space: pre-wrap; font-size: var(--fs-micro); }
.an-ok { color: var(--green); }
.an-warn { color: var(--amber); }

/* ---- Documents */
.doc-intro { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.doc-upload { cursor: pointer; }
.doc-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.doc-contras { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.doc-contra { border-left: 3px solid var(--red); padding: 4px 0 4px 10px; font-size: var(--fs-small); display: grid; gap: 3px; }
.doc-contra.unconfirmed { border-left-color: var(--amber); }
.doc-vs { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.doc-vs em { font-style: normal; color: var(--text-dim); margin-right: 4px; text-transform: uppercase; font-size: var(--fs-micro); letter-spacing: .05em; }
.doc-card { margin-top: 12px; }
.doc-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 8px; }
.doc-claims tbody tr { cursor: default; }
.doc-claims tr.rejected td { opacity: 0.5; }
.doc-quote { color: var(--text-dim); font-size: var(--fs-small); margin-top: 3px; max-width: 70ch; }
.doc-claims .compact-btn { margin-left: 4px; }
.cc-doc-contra { margin-top: 8px; padding: 8px 10px; border: 1px solid rgba(225,94,114,0.4); border-radius: 8px; font-size: var(--fs-small); }
.cc-doc-contra ul { margin: 6px 0; padding-left: 16px; display: grid; gap: 3px; }
.cc-doc-contra em { font-style: normal; color: var(--text); font-weight: 600; }

/* ---- Control Center: three sections with a guide each */
.cc-sections { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 18px 0 14px; scroll-margin-top: 12px; }
.cc-sec-tab { display: flex; gap: 12px; align-items: flex-start; text-align: left; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--panel); color: var(--text); cursor: pointer; font: inherit; }
.cc-sec-tab:hover { border-color: var(--border-strong); }
.cc-sec-tab.active { border-color: var(--accent); background: var(--accent-dim); box-shadow: inset 0 -3px 0 var(--accent); }
.cc-sec-tab > span:last-child { display: grid; gap: 3px; min-width: 0; }
.cc-sec-tab strong { font-size: 15px; }
.cc-sec-tab em { font-style: normal; color: var(--text-dim); font-size: var(--fs-small); line-height: 1.4; }
.cc-sec-tab small { color: var(--accent); font-size: var(--fs-small); font-weight: 600; margin-top: 2px; }
.cc-sec-n { flex: 0 0 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px;
  border: 1px solid var(--border-strong); color: var(--text-dim); }
.cc-sec-tab.active .cc-sec-n { background: var(--accent); border-color: var(--accent); color: #07111d; }
.cc-guide { border: 1px solid var(--border); border-left: 3px solid var(--accent); border-radius: 8px; background: var(--panel-2); padding: 10px 14px; margin-bottom: 14px; }
.cc-guide > summary { cursor: pointer; font-weight: 600; font-size: var(--fs-small); color: var(--accent); }
.cc-guide[open] > summary { margin-bottom: 8px; }
.cc-guide-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; font-size: var(--fs-small); line-height: 1.5; }
.cc-guide-grid b { display: block; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); margin-bottom: 4px; }
.cc-guide-grid p { margin: 0; }
.cc-guide-method { margin-top: 10px; max-width: 760px; }
.cc-guide-method > summary { cursor: pointer; font-size: var(--fs-small); font-weight: 600; color: var(--accent); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.cc-guide-method > summary::-webkit-details-marker { display: none; }
.cc-guide-method > summary::before { content: "›"; font-size: 17px; line-height: 1; width: 10px; display: inline-block; transition: transform .15s; }
.cc-guide-method[open] > summary::before { transform: rotate(90deg); }
.cc-guide-method[open] { max-width: none; padding: 12px 16px 16px; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; }
.cc-guide-method[open] > summary { margin-bottom: 8px; }
.cc-guide-lead { margin: 0 0 10px; font-size: var(--fs-small); font-weight: 600; color: var(--text); }
.cc-guide-grid ul { margin: 0; padding-left: 16px; display: grid; gap: 4px; }
.cc-guide-grid ul b { display: inline; text-transform: none; letter-spacing: 0; font-size: inherit; color: var(--text); margin: 0; }
.cc-guide-grid ul + p { margin-top: 6px; }
.cc-guide-grid ol { margin: 0; padding-left: 16px; display: grid; gap: 4px; }
.cc-guide-grid ol b, .cc-guide-grid p b { display: inline; text-transform: none; letter-spacing: 0; font-size: inherit; color: var(--text); margin: 0; }
.cc-next { display: flex; justify-content: flex-end; margin: 14px 0 4px; }
.cc-sec .cc-plan, .cc-sec .cc-funding { margin-top: 0; }
.cc-sec .cc-plan .cc-section-head h3, .cc-sec .cc-funding .cc-section-head h3 { display: none; }
@media (max-width: 1100px) { .cc-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .cc-sections, .cc-guide-grid { grid-template-columns: 1fr; } }
.cc-sec .cc-vitals { margin-bottom: 18px; }
.cc-sec .cc-plan > .cc-section-head, .cc-sec .cc-funding > .cc-section-head { margin-bottom: 6px; }


/* ================================================================
   Design refresh: calm, light, few words (component overrides)
   ================================================================ */
body { background: var(--bg); color: var(--text); }
h2 { font-family: var(--font-serif); font-weight: 500; font-size: var(--fs-page-title); letter-spacing: -0.01em; }
h3 { font-weight: 600; }
h4 { text-transform: none; letter-spacing: 0; color: var(--text); font-size: var(--fs-card-title); font-weight: 600; }
.card, .cc-panel, .u-block, .u-head, .cc-vital, .fit-file, .cc-issue, .cc-plan-body, .cc-funding-body {
  background: var(--panel); border: 1px solid var(--border); border-radius: 12px; box-shadow: none; }
.dim { color: var(--text-dim); }
a, .cc-link, .cc-src-link { color: var(--accent); }

button.primary { background: var(--text); color: #fff; border: 1px solid var(--text); box-shadow: none; border-radius: 8px; font-weight: 500; }
button.primary:hover { filter: none; background: #000; }
button.secondary, label.secondary { background: var(--panel); border: 1px solid var(--border-strong); color: var(--text); border-radius: 8px; }
button.secondary:hover, label.secondary:hover { background: var(--panel-2); }
input, select, textarea { background: var(--panel); color: var(--text); border: 1px solid var(--border-strong); border-radius: 8px; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(15,107,87, 0.25); border-color: var(--accent); }

.cc-pill { background: var(--panel-2); color: var(--text-dim); border-radius: 6px; text-transform: none; letter-spacing: 0; font-weight: 600; font-size: 11.5px; }
.cc-pill.cc-ok { background: #e7f3ec; color: var(--green); }
.cc-pill.cc-warn { background: #fbf0dc; color: var(--amber); }
.cc-pill.cc-crit, .cc-pill.cc-high { background: #fbe8e5; color: var(--red); }
.cc-chip { background: var(--panel-2); border: 1px solid var(--border); color: var(--text-dim); border-radius: 999px; }
.badge { border-radius: 6px; }
.notice { background: #fbf0dc; border: 1px solid #f0dcb4; color: #6b4a10; border-radius: 10px; }
.notice.compact { border-radius: 8px; }
table th { color: var(--text-dim); }

/* Header and sidebar: plain and quiet */
.app-header { background: var(--bg); border-bottom: 1px solid var(--border); backdrop-filter: none; }
header h1 { font-family: var(--font-serif); font-weight: 500; font-size: 20px; color: var(--text); }
.brand-mark { box-shadow: none; border-color: var(--border); }
nav.steps { background: #efece4; gap: 2px; padding: 16px 10px; }
nav.steps button { background: transparent; border: 1px solid transparent; border-radius: 8px; padding: 8px 10px; grid-template-columns: 18px minmax(0, 1fr); align-items: center; }
nav.steps button:hover:not(:disabled) { background: rgba(15,61,51, 0.05); }
nav.steps button.active { background: rgba(15,61,51, 0.08); border-color: transparent; }
nav.steps button em { display: none; }
nav.steps button strong { font-weight: 500; }
nav.steps button.active strong { font-weight: 600; }
nav.steps button span { font-size: 11px; }
.sidebar-section-label { color: var(--text-dim); font-weight: 600; text-transform: none; letter-spacing: 0; font-size: 12px; padding: 10px 10px 4px; }
.sidebar-divider { background: transparent; height: 4px; border: 0; }
.sidebar-mini-card { background: transparent; border: 1px solid var(--border); border-radius: 10px; }
.user-chip { border-radius: 999px; }

/* ---- Control Center, simplified */
#control-root { max-width: 1240px; }
.cc-topbar { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; border-bottom: 0; padding-bottom: 0; margin-bottom: 18px; }
.cc-subtitle { color: var(--text-dim); font-size: var(--fs-small); margin-top: 2px; }
.cc-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cc-hero { background: var(--panel); border: 1px solid var(--border); border-radius: 14px; padding: 22px 26px; margin-bottom: 22px; }
.cc-hero .cc-state { font-family: var(--font-serif); font-size: 23px; line-height: 1.4; font-weight: 500; margin: 0; max-width: 62ch; color: var(--text); }
.cc-hero-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 12px; color: var(--text-dim); font-size: var(--fs-small); }
.cc-hero-foot > span { cursor: help; border-bottom: 1px dotted var(--border-strong); }
.cc-hero .readiness-banner { margin: 0; padding: 0; border: 0; background: none; font-size: var(--fs-small); }
.cc-hero .readiness-banner > summary { color: var(--amber); cursor: pointer; }
.cc-hero .readiness-banner[open] { flex-basis: 100%; }
.cc-hero .readiness-banner ul { margin: 8px 0 0; }

.cc-tabs { display: flex; gap: 22px; border-bottom: 1px solid var(--border); margin: 0 0 18px; scroll-margin-top: 12px; }
.cc-tabs .cc-sec-tab { background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 10px 2px; margin-bottom: -1px;
  font-size: 15px; color: var(--text-dim); cursor: pointer; display: flex; align-items: center; gap: 6px; box-shadow: none; }
.cc-tabs .cc-sec-tab:hover { color: var(--text); }
.cc-tabs .cc-sec-tab.active { color: var(--text); border-bottom-color: var(--text); background: none; box-shadow: none; font-weight: 600; }
.cc-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--panel-3); color: var(--text-dim); font-size: 11.5px; font-weight: 600; }
.cc-count.warn { background: #fbf0dc; color: var(--amber); }

.cc-guide { border: 0; background: none; padding: 0; margin: -6px 0 14px; }
.cc-guide > summary { color: var(--accent); font-size: var(--fs-small); font-weight: 500; cursor: pointer; list-style: none; }
.cc-guide > summary::-webkit-details-marker { display: none; }
.cc-guide > summary::before { content: "? "; display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; border: 1px solid currentColor; font-size: 10px; margin-right: 6px; }
.cc-guide dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 16px; margin: 10px 0 0; padding: 14px 16px; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; font-size: var(--fs-small); max-width: 760px; }
.cc-guide dt { color: var(--text-dim); font-weight: 600; }
.cc-guide dd { margin: 0; }

.cc-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 12px; margin-bottom: 26px; }
.cc-metric { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; min-width: 0; }
.cc-metric-label { color: var(--text-dim); font-size: var(--fs-small); display: flex; align-items: center; gap: 6px; }
.cc-metric-value { font-family: var(--font-serif); font-size: 30px; line-height: 1.15; margin: 8px 0 4px; font-weight: 500; }
.cc-metric-value small { font-family: var(--font-sans); font-size: 13px; color: var(--text-dim); margin-left: 4px; font-weight: 400; }
.cc-metric-note { color: var(--text-dim); font-size: var(--fs-micro); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: 0 0 8px; }
.cc-dot.act { background: var(--red); }
.cc-dot.watch { background: #d99a2b; }

.cc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
.cc-h { font-size: 15px; font-weight: 600; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.ci-list { display: grid; gap: 12px; }
.ci { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; }
.ci-top { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.ci-top h3 { font-size: 15.5px; font-weight: 600; line-height: 1.4; margin: 1px 0 0; }
.ci-rank { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; background: var(--panel-3); color: var(--text-dim); }
.ci-rank.cc-crit, .ci-rank.cc-high { background: #fbe8e5; color: var(--red); }
.ci-rank.cc-warn { background: #fbf0dc; color: var(--amber); }
.ci-value { font-family: var(--font-serif); font-size: 17px; white-space: nowrap; color: var(--text); }
.ci-rec { margin: 12px 0 0 38px; padding: 10px 12px; background: var(--panel-2); border-radius: 8px; display: grid; gap: 2px; }
.ci-rec strong { font-weight: 600; font-size: var(--fs-body); }
.ci-rec.done strong { text-decoration: line-through; color: var(--text-dim); }
.ci-label { font-size: 11.5px; color: var(--text-dim); font-weight: 600; }
.ci-who { font-size: var(--fs-small); color: var(--text-dim); }
.ci-who b.overdue { color: var(--red); }
.ci-more { margin: 8px 0 0 38px; }
.ci-more > summary { cursor: pointer; color: var(--accent); font-size: var(--fs-small); }
.ci-body { display: grid; gap: 14px; padding-top: 12px; }
.ci-block p, .ci-block ul { margin: 4px 0 0; }
.ci-block ul { padding-left: 18px; display: grid; gap: 4px; font-size: var(--fs-small); }
.ci-body .cc-ev-grid { margin-top: 6px; }
.ci-body > button { justify-self: start; }

aside .cc-dlist { list-style: none; margin: 0 0 6px; padding: 0; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; }
aside .cc-dlist li { padding: 12px 14px; border-top: 1px solid var(--border); }
aside .cc-dlist li:first-child { border-top: 0; }
.cc-more > summary, .cc-side > summary { cursor: pointer; color: var(--accent); font-size: var(--fs-small); padding: 6px 2px; }
.cc-side { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 4px; }
.cc-side > summary { color: var(--text); font-weight: 500; font-size: var(--fs-body); display: flex; align-items: center; gap: 8px; }
.cc-side p { font-size: var(--fs-small); margin: 6px 0; }
.cc-side .cc-watch { list-style: none; padding: 0; margin: 6px 0; display: grid; gap: 6px; font-size: var(--fs-small); }
.cc-side .cc-watch li { display: flex; justify-content: space-between; gap: 10px; }
.cc-next { display: flex; justify-content: flex-start; margin: 16px 0 4px; }
.cc-plan { --plan-frontier: #2a78d6; --plan-asis: #eb6834; }
.cc-plan .cc-frontier .pt .dot { stroke: #ffffff; }
.cc-appendix { margin-top: 32px; }
@media (max-width: 1000px) { .cc-cols { grid-template-columns: 1fr; } }
/* quieter details */
.cc-label { text-transform: none; letter-spacing: 0; font-size: 12px; color: var(--text-dim); font-weight: 600; }
.cc-metric-note { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.4; }
.cc-due, .cc-kpi, .cc-table .num, .cc-plan-compare td, .cc-funding-slider strong, .cc-funding-result b, .cc-pipe-step b { font-family: var(--font-sans); font-variant-numeric: tabular-nums; }
.cc-due { font-size: var(--fs-small); color: var(--text-dim); white-space: nowrap; }
.cc-due.overdue { color: var(--red); }
aside .cc-dlist li .cc-dlog { opacity: 0; transition: opacity .15s; }
aside .cc-dlist li:hover .cc-dlog, aside .cc-dlist li:focus-within .cc-dlog, aside .cc-dlist li .cc-dlog[open] { opacity: 1; }
aside .cc-dlist .cc-what { font-weight: 500; }
aside .cc-dlist select { font-size: 12px; padding: 2px 6px; }
.cc-funding-result .cc-label, .cc-plan .cc-label { font-size: 12px; }
/* graph controls and overlays on light */
.graph-viewport-controls { background: rgba(255, 255, 255, 0.92); border: 1px solid var(--border); box-shadow: 0 1px 3px rgba(15,61,51, 0.08); }
.graph-viewport-controls button { background: var(--panel); border: 1px solid var(--border-strong); color: var(--text); }
.graph-viewport-controls button:hover { background: var(--panel-2); color: var(--text); border-color: var(--text-dim); }
.graph-path-panel, .graph-node-popover { background: rgba(255, 255, 255, 0.97); border: 1px solid var(--border); box-shadow: 0 8px 24px rgba(15,61,51, 0.12); color: var(--text); }
#graph-canvas, .ontology-graph-canvas { background: var(--panel); }

/* ---- Review & confirm: overview in two columns, analyses up front */
.u-head { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); gap: 28px; align-items: start; padding: 20px 22px; border-radius: 12px; }
.u-head-text .u-headline { font-size: 15px; font-weight: 400; line-height: 1.6; max-width: none; margin-top: 6px; }
.u-head-text .u-subline { max-width: none; }
.u-head .u-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: none; }
.u-head .u-stats > div { padding: 10px 14px; border-bottom: 1px solid var(--border); background: var(--panel); display: grid; gap: 2px; }
.u-head .u-stats > div:nth-child(odd) { border-right: 1px solid var(--border); }
.u-head .u-stats > div:nth-last-child(-n+2) { border-bottom: 0; }
.u-head .u-stats span { font-size: 12px; color: var(--text-dim); text-transform: none; letter-spacing: 0; font-weight: 500; }
.u-head .u-stats strong { font-family: var(--font-serif); font-size: 22px; font-weight: 500; }
.u-head .u-stats strong small { font-family: var(--font-sans); font-size: 12px; color: var(--text-dim); }
.u-head .u-stats .warn strong { color: var(--amber); }
.u-an-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.u-an-head h3 { margin: 0; }
.u-an-summary { font-size: var(--fs-small); color: var(--text-dim); }
.u-an-summary b { color: var(--text); }
.u-an-summary .warn { color: var(--amber); font-weight: 600; }
.u-an-gaps { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; margin-bottom: 12px; }
.u-an-ready { display: flex; flex-wrap: wrap; gap: 8px; }
.u-an-chip { position: relative; }
.u-an-chip > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--panel); font-size: var(--fs-small); }
.u-an-chip > summary::-webkit-details-marker { display: none; }
.u-an-chip[open] > summary { border-color: var(--text-dim); }
.u-an-pop { position: absolute; z-index: 6; top: calc(100% + 6px); left: 0; width: 320px; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; box-shadow: 0 8px 24px rgba(15,61,51, 0.12); font-size: var(--fs-small); display: grid; gap: 6px; }
.u-an-pop p { margin: 0; }
.cc-dot.ok { background: var(--green); }
@media (max-width: 1000px) { .u-head { grid-template-columns: 1fr; } }

/* ---- Issue cards: trace preview on the right, full trace on click */
.ci-grid { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 18px; align-items: start; }
.ci-trace { display: grid; gap: 4px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel-2); cursor: pointer; text-align: left; font: inherit; color: var(--text); }
.ci-trace:hover, .ci-trace.open { border-color: var(--text-dim); }
.ci-trace-head { display: flex; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 600; }
.ci-trace-head .dim { font-weight: 400; font-size: 11.5px; }
.ci-trace-canvas { display: block; height: 130px; border-radius: 8px; background: var(--panel); pointer-events: none; }
.ci-trace-hint { font-size: 11.5px; color: var(--accent); }
.ci-trace-full { display: grid; grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr); gap: 16px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); }
.ci-trace-full[hidden] { display: none; }
.ci-trace-steps { display: grid; gap: 10px; align-content: start; }
.ci-trace-steps ol { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.ci-trace-steps li button { background: none; border: 0; padding: 0; text-align: left; font: inherit; font-size: var(--fs-small); color: var(--text); cursor: pointer; line-height: 1.45; }
.ci-trace-steps li.active button { color: var(--accent); font-weight: 600; }
.ci-trace-steps > button { justify-self: start; }
.ci-trace-big { height: 340px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }
@media (max-width: 900px) { .ci-grid, .ci-trace-full { grid-template-columns: 1fr; } }
.ci-trace-steps ol { list-style: none; padding-left: 0; counter-reset: ts; }
.ci-trace-steps li { counter-increment: ts; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; }
.ci-trace-steps li::before { content: counter(ts) "."; color: var(--text-dim); font-size: var(--fs-small); line-height: 1.45; }
.ci-trace-steps li.active::before { color: var(--accent); font-weight: 600; }
.u-an-gaps { display: grid; grid-template-columns: 1fr; gap: 0; border: 1px solid var(--border); border-radius: 10px; overflow: visible; margin-bottom: 14px; }
.u-an-row { border-top: 1px solid var(--border); }
.u-an-row:first-child { border-top: 0; }
.u-an-row > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 104px minmax(140px, 220px) minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 9px 12px; font-size: var(--fs-small); }
.u-an-row > summary::-webkit-details-marker { display: none; }
.u-an-row > summary:hover { background: var(--panel-2); }
.u-an-row > summary .cc-pill { justify-self: start; }
.u-an-row > summary .dim { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.u-an-detail { padding: 4px 12px 12px 128px; font-size: var(--fs-small); display: grid; gap: 6px; }
.u-an-detail p { margin: 0; }
.u-an-detail ul { margin: 0; padding-left: 16px; }
@media (max-width: 800px) { .u-an-row > summary { grid-template-columns: auto 1fr; } .u-an-row > summary .dim { grid-column: 1 / -1; } .u-an-detail { padding-left: 12px; } }
.ci-trace-wrap { position: relative; }
.ci-trace-wrap .graph-viewport-controls { top: 8px; right: 8px; padding: 4px; gap: 4px; }
.ci-trace-wrap .graph-viewport-controls button { min-width: 30px; height: 28px; }
.cc-hero.with-next { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 8px 32px; align-items: start; }
.cc-hero.with-next .cc-state { grid-column: 1; grid-row: 1; }
.cc-hero.with-next .cc-hero-foot { grid-column: 1; grid-row: 2; }
.cc-first { grid-column: 2; grid-row: 1 / span 2; display: grid; gap: 4px; padding: 14px 16px; background: var(--panel-2); border-radius: 10px; align-self: stretch; align-content: start; }
.cc-first strong { font-size: 15px; line-height: 1.4; }
.cc-first .cc-link { justify-self: start; background: none; border: 0; padding: 0; margin-top: 6px; cursor: pointer; font-size: var(--fs-small); }
@media (max-width: 1000px) { .cc-hero.with-next { grid-template-columns: 1fr; } .cc-first { grid-column: 1; grid-row: auto; } }
.cc-hero.with-next .cc-state { max-width: none; }
.cc-hero .cc-state { text-wrap: pretty; }

/* ---- Issue cards: one row per issue, details full width */
.ci-list { gap: 14px; }
.ci-grid { grid-template-columns: minmax(0, 1fr) 260px; }
.ci-rec, .ci-foot { margin-left: 38px; }
.ci-foot { display: flex; align-items: center; gap: 12px; margin-top: 10px; font-size: var(--fs-small); }
.ci-toggle { background: none; border: 0; padding: 0; color: var(--accent); font: inherit; font-size: var(--fs-small); cursor: pointer; }
.ci-toggle::before { content: "▸ "; }
.ci-toggle.open::before { content: "▾ "; }
.ci-body { min-width: 0; display: grid; gap: 18px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.ci-body[hidden] { display: none; }
.ci-block { min-width: 0; }
.ci-block > .ci-label { display: block; margin-bottom: 6px; }
.ci-block p { margin: 0; line-height: 1.55; }
.ci-body .cc-strip-wrap { overflow-x: auto; max-width: 100%; }
.ci-body .cc-ev-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ci-body .cc-dlist { list-style: none; margin: 0; padding: 0; border: 1px solid var(--border); border-radius: 10px; }
.ci-body .cc-dlist li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px 14px; align-items: center; padding: 10px 12px; border-top: 1px solid var(--border); }
.ci-body .cc-dlist li:first-child { border-top: 0; }
.ci-body .cc-dlist .cc-own { display: flex; align-items: center; gap: 8px; color: var(--text-dim); font-size: var(--fs-small); }
.ci-body .cc-dlist .cc-dlog { grid-column: 1 / -1; opacity: 1; }
.ci-trace-full { margin: 0; padding: 0; border: 0; }
.cc-h-note { font-weight: 400; font-size: var(--fs-small); margin-left: 4px; }
.cc-other { margin-top: 14px; }
.cc-other > summary { cursor: pointer; font-weight: 500; display: flex; align-items: center; gap: 8px; }
.cc-other .cc-dlist { list-style: none; margin: 8px 0 0; padding: 0; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; }
.cc-other .cc-dlist li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px 14px; align-items: center; padding: 10px 12px; border-top: 1px solid var(--border); }
.cc-other .cc-dlist li:first-child { border-top: 0; }
.cc-other .cc-dlist .cc-own { display: flex; align-items: center; gap: 8px; color: var(--text-dim); font-size: var(--fs-small); }
.cc-other .cc-dlist .cc-dlog { grid-column: 1 / -1; }
.cc-extra { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; align-items: start; }
.cc-extra .cc-side { margin: 0; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); padding: 8px 14px; }
@media (max-width: 900px) { .cc-extra { grid-template-columns: 1fr; } .ci-body .cc-dlist li, .cc-other .cc-dlist li { grid-template-columns: 1fr; } }
.cc-strip th { font-size: 11px; letter-spacing: 0; text-transform: none; white-space: nowrap; padding: 2px 6px; font-weight: 500; color: var(--text-dim); }
.cc-strip tbody th { text-transform: none; font-size: 12px; color: var(--text); font-weight: 500; }
.cc-strip tbody th.cc-strip-sub { color: var(--text-dim); font-weight: 400; }
.ci-body .cc-dlist li .cc-dlog, .cc-other .cc-dlist li .cc-dlog { opacity: 0; transition: opacity .15s; }
.ci-body .cc-dlist li:hover .cc-dlog, .ci-body .cc-dlist li:focus-within .cc-dlog, .ci-body .cc-dlist li .cc-dlog[open],
.cc-other .cc-dlist li:hover .cc-dlog, .cc-other .cc-dlist li:focus-within .cc-dlog, .cc-other .cc-dlist li .cc-dlog[open] { opacity: 1; }
.cc-strip th small { color: var(--text-dim); font-size: 10px; }


/* ================================================================
   SovereignX brand: navy ink, muted gold, one geometric motif
   ================================================================ */
a, .cc-link, .cc-src-link, .ci-toggle, .cc-guide > summary, .ci-trace-hint { color: var(--accent); }
h2 { color: var(--text); font-weight: 500; }
header h1 { font-weight: 500; letter-spacing: 0.01em; }
header h1::after { content: ""; display: block; width: 22px; height: 2px; background: var(--gold); margin-top: 3px; border-radius: 2px; }

/* navigation: gold marks where you are */
nav.steps button.active { background: rgba(15,61,51, 0.06); box-shadow: inset 3px 0 0 var(--gold); }
.cc-tabs .cc-sec-tab.active, .knowledge-mode-btn.active { border-bottom-color: var(--gold); color: var(--text); }
.cc-count { background: var(--panel-3); }

/* the headline card carries the motif */
.cc-hero { position: relative; overflow: hidden; border-left: 3px solid var(--gold); }
.cc-hero::after {
  content: ""; position: absolute; top: -40px; right: -40px; width: 260px; height: 260px; pointer-events: none; opacity: 0.55;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='52' viewBox='0 0 52 52'%3E%3Cg fill='none' stroke='%23a8833a' stroke-width='0.8' stroke-opacity='0.35'%3E%3Crect x='14' y='14' width='24' height='24'/%3E%3Crect x='14' y='14' width='24' height='24' transform='rotate(45 26 26)'/%3E%3Ccircle cx='26' cy='26' r='5'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 52px 52px;
  -webkit-mask-image: radial-gradient(circle at top right, #000 0%, transparent 70%); mask-image: radial-gradient(circle at top right, #000 0%, transparent 70%);
}
.cc-hero > * { position: relative; z-index: 1; }
.cc-first { border-top: 2px solid var(--gold); }

/* numbers and recommendations: navy, with gold used sparingly */
.cc-metric-value, .ci-value, .u-head .u-stats strong { color: var(--text); }
.ci-rec { border-left: 2px solid var(--gold); border-radius: 0 8px 8px 0; }
.ci-label { letter-spacing: 0.01em; }
.ci-rank { font-family: var(--font-serif); }
.cc-pill.cc-ok { background: #e6f2ec; }
button.primary { background: var(--text); border-color: var(--text); }
button.primary:hover { background: #0a2e26; }
input:focus, select:focus, textarea:focus { outline-color: rgba(15,107,87, 0.25); }
/* motif lives on the action card, where the eye lands next */
.cc-hero::after { display: none; }
.cc-first { position: relative; overflow: hidden; }
.cc-first::after {
  content: ""; position: absolute; top: -26px; right: -26px; width: 170px; height: 170px; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cg fill='none' stroke='%23a8833a' stroke-width='0.9' stroke-opacity='0.55'%3E%3Crect x='12' y='12' width='20' height='20'/%3E%3Crect x='12' y='12' width='20' height='20' transform='rotate(45 22 22)'/%3E%3Ccircle cx='22' cy='22' r='4'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(circle at top right, #000 0%, transparent 72%); mask-image: radial-gradient(circle at top right, #000 0%, transparent 72%);
}
.cc-first > * { position: relative; z-index: 1; }

/* ---- Details: one titled card per part */
.ci-body { background: var(--panel-2); border: 1px solid var(--border); border-radius: 12px; padding: 14px; gap: 12px; margin-top: 16px; }
.ci-body > .ci-block { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; }
.ci-body > .ci-block > .ci-label { display: flex; align-items: center; gap: 8px; margin: -2px 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--border);
  font-size: 13.5px; font-weight: 600; color: var(--text); letter-spacing: 0; }
.ci-body > .ci-block > .ci-label::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: var(--gold); }
.ci-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--panel-3); color: var(--text-dim); font-size: 11.5px; font-weight: 600; }
.ci-sub { font-weight: 400; color: var(--text-dim); font-size: var(--fs-small); margin-left: 2px; }
.ci-body > .ci-block.callout { background: #fdf7ea; border-color: #ecd9ae; }
.ci-body > .ci-block.callout > .ci-label { border-bottom-color: #ecd9ae; color: #6b4a10; }
.ci-body > .ci-block.callout > .ci-label::before { background: var(--amber); }
.ci-body > .ci-block.callout p { color: var(--text); }
.ci-body .ci-block ul:not(.cc-dlist) { gap: 6px; font-size: var(--fs-body); }
.ci-body .ci-block > .cc-dlist { border: 0; border-radius: 0; margin: -4px -16px -14px; }
.ci-body .ci-block > .cc-dlist li { padding: 12px 16px; }
.ci-body .ci-block > .cc-dlist li:first-child { border-top: 0; }
.ci-body .ci-trace-big { border-color: var(--border); }
.ci-body .cc-ev { background: var(--panel-2); border-color: var(--border); }
/* decision rows: no empty space reserved for the note link */
.ci-body .cc-dlist li .cc-dlog, .cc-other .cc-dlist li .cc-dlog { display: none; opacity: 1; }
.ci-body .cc-dlist li:hover .cc-dlog, .ci-body .cc-dlist li:focus-within .cc-dlog, .ci-body .cc-dlist li .cc-dlog[open],
.cc-other .cc-dlist li:hover .cc-dlog, .cc-other .cc-dlist li:focus-within .cc-dlog, .cc-other .cc-dlist li .cc-dlog[open] { display: block; }
.ci-body .cc-dlist li { padding: 10px 16px; row-gap: 2px; }


/* Sand & deep green: deep green carries the brand (buttons, active marks), brass the accents */
:root { --brand: #0f3d33; }
button.primary { background: var(--brand); border-color: var(--brand); }
button.primary:hover { background: #0a2e26; }
h2, .cc-hero .cc-state, .cc-metric-value, .ci-value { color: var(--brand); }
nav.steps button.active { background: rgba(15, 61, 51, 0.07); }
.cc-hero .cc-state { font-weight: 400; }

/* Red flags in the Data confidence panel */
.cc-flags { margin: 0 0 12px; display: grid; gap: 6px; }
.cc-flags-head { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; color: var(--text-dim); }
.cc-flag { border: 1px solid var(--border); border-left: 3px solid var(--amber, #a8650a); border-radius: 6px; background: var(--panel); padding: 8px 10px; }
.cc-flag.high { border-left-color: #b4233a; }
.cc-flag > summary { cursor: pointer; font-weight: 600; font-size: var(--fs-small); line-height: 1.4; }
.cc-flag p { margin: 6px 0 0; font-size: var(--fs-small); line-height: 1.5; }
.cc-flag-action { color: var(--text-dim); }

/* Analyst side panel on the Control Center */
.an-drawer { position: fixed; top: 58px; right: 0; bottom: 0; width: min(460px, 100vw); z-index: 60; display: flex; flex-direction: column;
  background: var(--panel); border-left: 1px solid var(--border); box-shadow: -12px 0 32px rgba(29, 43, 39, 0.10); }
.an-drawer[hidden] { display: none; }
.an-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 12px; border-bottom: 1px solid var(--border); }
.an-drawer-head strong { font-family: var(--font-serif, inherit); font-size: 17px; color: var(--brand, #0f3d33); }
.an-drawer-actions { display: flex; align-items: center; gap: 10px; }
.an-drawer-body { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 0 16px 14px; }
.an-drawer .chat-panel { flex: 1; min-height: 0; border: none; box-shadow: none; background: none; padding: 0; margin: 0; }
.an-drawer .chat-panel > h4 { display: none; }
.an-drawer .chat-log { flex: 1; min-height: 0; max-height: none; padding-top: 12px; }
.an-drawer .chat-input-row { padding-top: 10px; border-top: 1px solid var(--border); }
.an-starters { display: grid; gap: 6px; padding: 12px 16px 0; }
.an-starters[hidden] { display: none; }
.an-starter { text-align: left; background: var(--panel-2); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; font-size: var(--fs-small); color: var(--text); cursor: pointer; line-height: 1.4; }
.an-starter:hover { border-color: var(--accent); }
@media (min-width: 1280px) { body.an-open #view-control { padding-right: 470px; } }

/* Funding budget slider: visibly draggable */
.cc-fslider-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 12px; }
.cc-fslider-head #cc-fund-value { font-family: var(--font-serif, inherit); font-size: 26px; line-height: 1; color: var(--brand, #0f3d33); font-variant-numeric: tabular-nums; }
.cc-fslider-hint { margin-left: auto; font-size: var(--fs-small); color: var(--text-dim); display: inline-flex; gap: 6px; align-items: center; }
.cc-fslider-hint span { font-size: 16px; color: var(--accent); }
.cc-fslider { position: relative; padding: 6px 0 30px; }
#cc-fund-range { -webkit-appearance: none; appearance: none; width: 100%; height: 22px; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; cursor: grab; display: block; }
#cc-fund-range:active { cursor: grabbing; }
#cc-fund-range::-webkit-slider-runnable-track { height: 8px; border-radius: 999px;
  background: linear-gradient(to right, var(--brand, #0f3d33) 0 var(--fill), var(--border) var(--fill) 100%); }
#cc-fund-range::-moz-range-track { height: 8px; border-radius: 999px; background: var(--border); }
#cc-fund-range::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--brand, #0f3d33); }
#cc-fund-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -7px; border-radius: 50%;
  background: #fff; border: 3px solid var(--brand, #0f3d33); box-shadow: 0 1px 4px rgba(15, 61, 51, .35), 0 0 0 6px rgba(15, 61, 51, .10);
  transition: box-shadow .15s, transform .15s; }
#cc-fund-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--brand, #0f3d33);
  box-shadow: 0 1px 4px rgba(15, 61, 51, .35), 0 0 0 6px rgba(15, 61, 51, .10); }
#cc-fund-range:hover::-webkit-slider-thumb, #cc-fund-range:focus-visible::-webkit-slider-thumb { box-shadow: 0 1px 4px rgba(15, 61, 51, .35), 0 0 0 9px rgba(15, 61, 51, .16); transform: scale(1.08); }
#cc-fund-range:focus-visible { outline: none; }
.cc-fticks { position: absolute; left: 0; right: 0; top: 26px; height: 26px; }
.cc-ftick { position: absolute; transform: translateX(-50%); background: none; border: 0; padding: 0; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.cc-ftick i { width: 2px; height: 6px; background: var(--border-strong, #cfc8b8); border-radius: 1px; }
.cc-ftick span { font-size: 11px; color: var(--text-dim); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cc-ftick:hover span { color: var(--text); }
.cc-ftick.rec i { background: var(--gold, #a8833a); height: 8px; width: 3px; }
.cc-ftick.rec span { color: var(--gold, #a8833a); font-weight: 600; }
.cc-ftick.on span { color: var(--brand, #0f3d33); font-weight: 700; }

/* ===== Control Center as a one-page brief ===== */
.cc-hero { padding: 22px 26px 18px; }
.cc-eyebrow { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold, #a8833a); margin-bottom: 6px; }
.cc-hero .cc-state { max-width: 70ch; }
.cc-status-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin-top: 14px; font-size: 14.5px; color: var(--text); }
.cc-status-line b { font-weight: 700; }
.cc-status-line .overdue { color: #b4233a; }
.cc-sep { color: var(--border-strong, #cfc8b8); }
.cc-link.warn { color: #a8650a; font-weight: 600; }

.cc-block { margin: 28px 0 0; }
.cc-block-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 12px; }
.cc-block-head h3 { margin: 0; font-family: var(--font-serif); font-size: 21px; font-weight: 600; color: var(--brand, #0f3d33); }
.cc-block-head .cc-guide { margin: 0; border: 0; background: none; padding: 0; }
.cc-block-head .cc-guide[open] { flex-basis: 100%; order: 3; }

.cg-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cg-card { display: flex; flex-direction: column; gap: 10px; background: var(--panel); border: 1px solid var(--border); border-left: 3px solid var(--border-strong, #cfc8b8);
  border-radius: 12px; padding: 16px 18px 14px; transition: border-color .15s, box-shadow .15s; }
.cg-card.crit, .cg-card.high { border-left-color: #b4233a; }
.cg-card.warn, .cg-card.medium { border-left-color: #a8650a; }
.cg-card.active { box-shadow: 0 0 0 2px var(--brand, #0f3d33); }
.cg-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: baseline; }
.cg-top h3 { margin: 0; font-size: 17px; line-height: 1.3; }
.cg-value { font-family: var(--font-serif); font-size: 16px; color: var(--brand, #0f3d33); white-space: nowrap; }
.cg-why { margin: 0; color: var(--text-dim); font-size: 14px; line-height: 1.45; }
.cg-rec { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 10px 12px; background: var(--panel-2); border-radius: 8px; margin-top: auto; }
.cg-rec strong { display: block; font-size: 14.5px; line-height: 1.35; }
.cg-rec .ci-who { font-size: 12.5px; color: var(--text-dim); }
.cg-arrow { color: var(--gold, #a8833a); font-weight: 700; }
.cg-foot { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.cg-status { padding: 2px 8px; border-radius: 999px; font-weight: 600; font-size: 11.5px; background: var(--panel-2); color: var(--text-dim); }
.cg-status.in_progress { background: rgba(168, 101, 10, .12); color: #8a5208; }
.cg-status.decided { background: rgba(46, 125, 79, .12); color: #2e7d4f; }
.cg-more { margin-left: auto; background: none; border: 0; padding: 4px 0; color: var(--accent); font-weight: 600; cursor: pointer; font-size: 13.5px; }
.cg-more[aria-expanded="true"] { color: var(--brand, #0f3d33); }

.ci-detail { margin-top: 14px; scroll-margin-top: 70px; }
.ci-detail-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; padding-bottom: 10px; border-bottom: 1px solid var(--border); margin-bottom: 12px; }
.ci-detail-head > div { display: flex; gap: 10px; align-items: baseline; }
.ci-detail-head h3 { margin: 0; font-size: 16px; line-height: 1.35; }
.ci-detail .ci-body { display: grid; gap: 12px; margin-top: 0; padding-top: 0; border-top: 0; }
.ci-detail[hidden] { display: none; }

.cc-kn-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin-top: 26px;
  background: var(--panel); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.cc-kn { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; text-align: left; background: none; border: 0; border-right: 1px solid var(--border); font: inherit; color: inherit; }
.cc-kn:last-child { border-right: 0; }
button.cc-kn { cursor: pointer; }
button.cc-kn:hover { background: var(--panel-2); }
.cc-kn-label { font-size: 12px; color: var(--text-dim); display: flex; align-items: center; gap: 6px; }
.cc-kn-value { font-family: var(--font-serif); font-size: 22px; color: var(--text); line-height: 1.2; }
.cc-kn-value small { font-family: var(--font-sans); font-size: 11.5px; color: var(--text-dim); margin-left: 4px; }

.cc-pair { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; margin-top: 18px; align-items: stretch; }
.cc-panel-box { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; scroll-margin-top: 70px; }
.cc-panel-box h3 { margin: 0 0 10px; font-size: 15px; display: flex; align-items: center; gap: 8px; }
.cc-due-list { list-style: none; margin: 0; padding: 0; }
.cc-due-list li { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 7px 0; border-top: 1px solid var(--border); font-size: 13.5px; }
.cc-due-list li:first-child { border-top: 0; }
.cc-due-list li.closed .cc-what { color: var(--text-dim); text-decoration: line-through; }
.cc-due-list .cc-due { font-weight: 600; font-size: 12.5px; }
.cc-due-list .cc-due.overdue { color: #b4233a; }
.cc-due-list .cc-due.later { color: var(--text-dim); font-weight: 500; }
.cc-due-list select { font-size: 12.5px; padding: 3px 6px; }
.cc-more-due > summary { cursor: pointer; color: var(--accent); font-weight: 600; font-size: 13px; padding-top: 8px; }
.cc-sure-line { margin: 8px 0 0; font-size: 13.5px; line-height: 1.5; }
.cc-since { margin-top: 10px; border-top: 1px solid var(--border); padding-top: 8px; }
.cc-since > summary { cursor: pointer; font-weight: 600; font-size: 13px; color: var(--accent); }

.cc-options { margin-top: 34px; padding-top: 6px; }
.cc-options .cc-tabs { margin-bottom: 14px; }

.cc-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px 20px; margin: 30px 0 10px; padding-top: 14px; border-top: 1px solid var(--border); }
.cc-watchlist > summary { cursor: pointer; font-weight: 600; font-size: 14px; }
.cc-watchlist[open] { flex-basis: 100%; }

@media (max-width: 1000px) { .cg-grid, .cc-pair { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .cc-kn { border-right: 0; border-bottom: 1px solid var(--border); }
  .cc-due-list li { grid-template-columns: 70px minmax(0, 1fr); }
  .cc-due-list select { grid-column: 2; justify-self: start; }
}
.cc-hero + .cc-block { margin-top: 6px; }
.cc-hero.with-next .cc-hero-main { grid-column: 1; grid-row: 1; align-self: center; }
.cc-hero.with-next .cc-first { grid-row: 1; }
.cc-panel-box .readiness-banner { margin: 10px 0 0; padding: 0; border: 0; background: none; font-size: 13.5px; }
.cc-panel-box .readiness-banner > summary { color: var(--amber); cursor: pointer; }
.cc-panel-box .readiness-banner ul { margin: 8px 0 0; }

/* Top bar only: dark navy brand strip above the sand workspace */
.app-header { background: #0d1b2e !important; border-bottom-color: #0d1b2e !important; }
.app-header .brand-block h1 { color: #f3f1ea !important; }
.app-header .brand-subtitle { color: #a9b4c4 !important; }
.app-header .user-chip, .app-header .icon-btn { background: rgba(255,255,255,.06) !important; border-color: rgba(255,255,255,.18) !important; color: #eef0f3 !important; }
.app-header .user-chip:hover, .app-header .icon-btn:hover { background: rgba(255,255,255,.12) !important; }
.app-header .user-avatar { background: #a8833a !important; color: #ffffff !important; }
.app-header .brand-block > div:last-child { display: flex; align-items: center; gap: 14px; }
.app-header .brand-subtitle { margin: 0 !important; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.22); line-height: 1.2; white-space: nowrap; }
@media (max-width: 700px) { .app-header .brand-subtitle { display: none; } }
header h1::after { display: none !important; }
.app-header .brand-block h1 { font-size: 17px !important; }
.app-header .brand-subtitle { color: #ffffff !important; font-size: 14px !important; }
.app-header .brand-block h1 { font-family: var(--font-sans) !important; font-weight: 600 !important; letter-spacing: -0.01em; }
/* Analyst panel: calmer suggestions */
.an-starters { gap: 8px !important; padding: 18px 18px 6px !important; }
.an-starters-label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 2px; }
.an-starter { background: var(--panel) !important; border: 1px solid var(--border) !important; border-radius: 10px !important; padding: 10px 12px !important; font-size: 13.5px !important; }
.an-starter:hover { border-color: var(--accent) !important; background: var(--panel-2) !important; }
.an-drawer .an-intro { display: none; }
.an-drawer-body { padding: 0 18px 16px !important; }

/* ===== Evidence chain ("How this was found") ===== */
.ci-trace-full { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 18px; align-items: start; }
.cx-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: var(--panel-2); }
.cx { position: relative; display: flex; gap: 46px; padding: 16px 20px 20px; min-width: max-content; align-items: flex-start; }
.cx-lines { position: absolute; inset: 0; pointer-events: none; overflow: visible; color: #9aa59f; }
.cx-col { display: flex; flex-direction: column; gap: 10px; width: 188px; position: relative; z-index: 1; }
.cx-col-head { font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-dim); padding: 0 2px 2px; }
.cx-card { background: var(--panel); border: 1px solid var(--border); border-left: 3px solid var(--border-strong); border-radius: 8px;
  padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; transition: opacity .15s, box-shadow .15s; }
.cx-card.warn { border-left-color: var(--amber); }
.cx-card.crit { border-left-color: #b4233a; }
.cx-card.on { box-shadow: 0 0 0 2px var(--accent); }
.cx-card.dim { opacity: .3; }
.cx-type { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--text-dim); }
.cx-card strong { font-size: 12.5px; line-height: 1.3; font-weight: 600; color: var(--text); }
.cx-meta { font-size: 11.5px; color: var(--text-dim); }
.cx-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
.cx-tags em { font-style: normal; font-size: 10.5px; font-weight: 600; padding: 1px 6px; border-radius: 999px; background: rgba(168,101,10,.12); color: #8a5208; }
.cx-card.crit .cx-tags em { background: rgba(180,35,58,.10); color: #9b1c30; }
.cx-more { font-size: 11.5px; color: var(--text-dim); padding-left: 4px; }
.cx-link { fill: none; stroke: #b3bcb7; stroke-width: 1.4; transition: opacity .15s; }
.cx-link.dim, .cx-link-label.dim { opacity: .12; }
.cx-link-label { font-size: 10.5px; fill: var(--text); font-weight: 600; paint-order: stroke; stroke: var(--panel-2); stroke-width: 4px; }
.ci-trace-steps ol { margin: 0 0 10px; padding-left: 18px; display: grid; gap: 6px; }
.ci-trace-steps li button { text-align: left; background: none; border: 0; padding: 4px 6px; border-radius: 6px; font-size: 13px; line-height: 1.4; color: var(--text); cursor: pointer; }
.ci-trace-steps li button:hover { background: var(--panel-2); }
.ci-trace-steps li.active button { background: var(--accent-dim, #e8f0eb); box-shadow: inset 2px 0 0 var(--accent); }
@media (max-width: 1000px) { .ci-trace-full { grid-template-columns: 1fr; } }
.ci-trace-full { grid-template-columns: 1fr !important; gap: 12px !important; }
.ci-trace-steps { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; }
.ci-trace-steps ol { flex: 1 1 600px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 4px 18px; margin: 0; }
.cx { gap: 32px; padding: 14px 16px 18px; }
.cx-col { width: 162px; }
.cx { gap: 26px; }
.cx-col { width: 150px; }
.cx-lines { pointer-events: none; }
.cx-link { pointer-events: stroke; }
.cx-card strong { overflow-wrap: anywhere; }
.cx { gap: 24px; }

/* ===== Labelled network ("How this was found", option A) ===== */
.nx-wrap { position: relative; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); }
.nx-canvas { height: 480px; }
.nx-wrap .graph-viewport-controls { position: absolute; top: 10px; right: 10px; }
.nx-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 10px 14px; border-top: 1px solid var(--border); font-size: 12px; color: var(--text-dim); }
.nx-legend span { display: inline-flex; align-items: center; gap: 6px; }
.nx-swatch { width: 11px; height: 11px; display: inline-block; border-radius: 50%; }
.nx-swatch.nx-box { border-radius: 3px; width: 14px; height: 10px; }
.nx-swatch.nx-ellipse { border-radius: 50%; width: 15px; height: 10px; }
.nx-swatch.nx-diamond { border-radius: 1px; transform: rotate(45deg) scale(.85); }
.nx-swatch.nx-hexagon { border-radius: 3px; }
.nx-swatch.nx-triangle { border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.nx-swatch.nx-square { border-radius: 2px; }
.nx-swatch.nx-flag { background: #fff !important; border: 2.5px solid; border-radius: 3px; }
.nx-swatch.nx-flag.crit { border-color: #b4233a; }
.nx-swatch.nx-flag.warn { border-color: #c27c0e; }
.nx-canvas { height: 520px; }
.nx-canvas { height: 580px; }
.nx-swatch.nx-ring { background: #fff; border: 3px solid; border-radius: 50%; }
.nx-swatch.nx-ring.crit { border-color: #b4233a; }
.nx-swatch.nx-ring.warn { border-color: #c27c0e; }
.nx-swatch.nx-ctx { background: #d6d0c3; width: 8px; height: 8px; }
.nx-note { margin-left: auto; font-size: 11.5px; color: var(--text-dim); }
.nx-wrap { background: radial-gradient(ellipse at center, #ffffff 0%, #faf8f3 70%, #f4f1ea 100%); }

/* ===== Pilot mode ===== */
.pilot-banner { margin: 0 0 14px; padding: 9px 14px; border: 1px solid rgba(168,131,58,.35); border-left: 3px solid #a8833a; border-radius: 8px;
  background: #fbf6ea; color: var(--text); font-size: 13px; line-height: 1.5; }
.pilot-banner[hidden] { display: none; }
/* In a pilot, Data setup offers the prepared sample instead of the upload box */
.pilot-sample { display: none; }
body.pilot-locked .pilot-sample { display: block; border: 1px solid var(--border); border-left: 3px solid #a8833a; border-radius: 10px; background: var(--panel-2); padding: 14px 16px; }
body.pilot-locked #dropzone, body.pilot-locked .choose-folder-row, body.pilot-locked #file-list { display: none !important; }
.pilot-sample-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pilot-sample-head strong { display: block; margin-bottom: 2px; }
.pilot-sample-head .dim { font-size: 13px; line-height: 1.5; }
.pilot-sample-note { margin: 10px 0 0; font-size: 13px; color: var(--text-dim); }
.pilot-sample-files { margin-top: 8px; font-size: 13px; }
.pilot-sample-files > summary { cursor: pointer; color: var(--accent); font-weight: 600; }
.pilot-sample-files ul { columns: 2; margin: 8px 0 0; padding-left: 18px; color: var(--text-dim); }
.pilot-sample-zip { display: inline-block; margin: 8px 0 2px; font-weight: 600; color: var(--accent); }
.pilot-sample-files ul a { color: var(--accent); text-decoration: none; }
.pilot-sample-files ul a:hover { text-decoration: underline; }

/* Analyst: always within reach on the Control Center */
.an-fab { position: fixed; right: 24px; bottom: 24px; z-index: 55; display: inline-flex; align-items: center; gap: 8px;
  background: var(--brand, #0f3d33); color: #fff; border: 0; border-radius: 999px; padding: 11px 18px; font-weight: 600; font-size: 14px;
  box-shadow: 0 6px 18px rgba(15,61,51,.25); cursor: pointer; }
.an-fab:hover { filter: brightness(1.12); }
.an-fab span { color: #e3c98f; }
body.an-open .an-fab { display: none; }
.cg-ask { background: none; border: 0; padding: 4px 0; color: var(--text-dim); font-weight: 600; font-size: 13px; cursor: pointer; margin-left: auto; }
.cg-ask:hover { color: var(--accent); }
.cg-ask + .cg-more { margin-left: 14px; }
@media (max-width: 600px) { .an-fab { right: 14px; bottom: 14px; } }
.ask-mark { color: #a8833a; }

/* Sidebar: slightly larger type */
nav.steps button strong { font-size: 15px !important; }
nav.steps button span { font-size: 12px !important; }
nav.steps .sidebar-section-label { font-size: 13px !important; }
nav.steps .sidebar-mini-card strong { font-size: 14px !important; }
nav.steps .sidebar-mini-card span, nav.steps .sidebar-mini-card em { font-size: 13px !important; }
