:root {
  color-scheme: light;
  --ink-950: #111817;
  --ink-900: #17201f;
  --ink-800: #25302d;
  --ink-700: #3a4642;
  --ink-500: #69736f;
  --ink-400: #8a9490;
  --paper: #f3f5f3;
  --surface: #ffffff;
  --surface-muted: #f8faf8;
  --line: #d8dedb;
  --line-strong: #adb8b3;
  --teal: #126b66;
  --teal-dark: #0b514d;
  --teal-soft: #e4f1ef;
  --amber: #a86612;
  --amber-soft: #fff1d9;
  --risk: #a64034;
  --risk-soft: #f9e8e5;
  --shadow: 0 14px 40px rgba(20, 31, 28, 0.12);
  --rail-width: 282px;
  --drawer-width: 368px;
  --header-height: 64px;
  --status-height: 34px;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-size: 14px;
}

* { box-sizing: border-box; }

[hidden] { display: none !important; }

html,
body { width: 100%; height: 100%; overflow: hidden; }

body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink-900);
}

button,
input,
select { font: inherit; }

button { color: inherit; }

button:focus-visible,
input:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}

.canvas-app {
  height: 100%;
  display: grid;
  grid-template-columns: var(--rail-width) minmax(0, 1fr) var(--drawer-width);
  grid-template-rows: var(--header-height) minmax(0, 1fr) var(--status-height);
}

.app-bar {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: var(--rail-width) minmax(0, 1fr) auto;
  align-items: center;
  min-width: 0;
  height: var(--header-height);
  background: var(--ink-900);
  color: #fff;
  border-bottom: 3px solid #cf882f;
}

.brand {
  height: 100%;
  display: flex;
  align-items: center;
  padding: 0 22px;
  border-right: 1px solid #34403d;
  color: #fff;
  font-size: 17px;
  font-weight: 850;
  letter-spacing: 0.14em;
  text-decoration: none;
}

.title-block {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 0 20px;
}

.title-block strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
}

.title-block span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #a9b6b2;
  font-size: 10px;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-right: 16px;
}

.preview-readiness {
  max-width: 220px;
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 5px 9px;
  border: 1px solid #44524e;
  border-radius: 4px;
  color: #dce6e2;
  text-decoration: none;
}

.preview-readiness > i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #a7b2ae;
}

.preview-readiness > span {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.preview-readiness strong,
.preview-readiness small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.preview-readiness strong { font-size: 10px; font-weight: 760; }
.preview-readiness small { color: #96a7a1; font-size: 8px; }
.preview-readiness[data-state="ready"] > i { background: #58d49b; box-shadow: 0 0 0 4px rgb(88 212 155 / 12%); }
.preview-readiness[data-state="action"] > i { background: #f2ae56; box-shadow: 0 0 0 4px rgb(242 174 86 / 12%); }
.preview-readiness[data-state="unavailable"] > i { background: #de7165; }
.preview-readiness:hover,
.preview-readiness:focus-visible { border-color: #6e827b; background: rgb(255 255 255 / 5%); }

.knowledge-badge {
  max-width: 180px;
  padding: 5px 8px;
  overflow: hidden;
  border: 1px solid #44524e;
  border-radius: 4px;
  color: #c4d0cc;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
}

.quiet-button,
.primary-button {
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.quiet-button { border: 1px solid #4a5753; background: transparent; color: #d5dedb; }
.primary-button { border: 1px solid #edf4f1; background: #edf4f1; color: var(--ink-900); }
.quiet-button:disabled,
.primary-button:disabled { opacity: 0.42; cursor: not-allowed; }

.control-rail {
  grid-column: 1;
  grid-row: 2;
  min-height: 0;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: var(--surface);
}

.control-section { padding: 16px 17px; border-bottom: 1px solid var(--line); }
.control-section:last-child { border-bottom: 0; }

.control-section > label,
.filter-grid label { display: grid; gap: 7px; color: var(--ink-500); font-size: 10px; font-weight: 750; }

.search-box {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  background: var(--surface-muted);
}

.search-box svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: var(--ink-500);
  stroke-width: 1.8;
}

.search-box input { min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink-900); font-size: 12px; }
.search-box input::placeholder { color: var(--ink-400); }

.search-section { position: relative; }
.search-results {
  position: absolute;
  z-index: 80;
  top: calc(100% - 10px);
  left: 12px;
  width: calc(100% - 24px);
  max-height: min(430px, 55vh);
  overflow-y: auto;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.search-results[hidden] { display: none; }
.search-result {
  width: 100%;
  display: grid;
  grid-template-columns: 31px minmax(0, 1fr);
  gap: 8px;
  padding: 9px 10px;
  border: 0;
  border-bottom: 1px solid #e8ecea;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.search-result:last-child { border-bottom: 0; }
.search-result:hover { background: var(--teal-soft); }
.search-result > span:first-child {
  padding-top: 2px;
  color: var(--teal);
  font-size: 9px;
  font-weight: 850;
}
.search-result div { min-width: 0; display: grid; gap: 3px; }
.search-result strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.search-result small { color: var(--ink-500); font-size: 9px; }
.search-no-result { margin: 0; padding: 13px; color: var(--ink-500); font-size: 11px; line-height: 1.5; }

.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.section-heading h2 { margin: 0; font-size: 11px; }
.section-heading span { color: var(--ink-500); font-size: 9px; }
.section-heading button { padding: 0; border: 0; background: transparent; color: var(--teal); cursor: pointer; font-size: 9px; }

.segmented-control { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: 5px; overflow: hidden; }
.segmented-control button { min-height: 32px; border: 0; border-right: 1px solid var(--line); background: var(--surface-muted); color: var(--ink-500); cursor: pointer; font-size: 10px; }
.segmented-control button:last-child { border-right: 0; }
.segmented-control button[aria-pressed="true"] { background: var(--ink-900); color: #fff; font-weight: 750; }

.filter-grid { display: grid; gap: 10px; }
.filter-grid .section-heading { margin-bottom: 0; }
.filter-grid label { gap: 5px; }
.filter-grid select { width: 100%; min-height: 34px; padding: 0 8px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--ink-800); font-size: 10px; }

.stage-list { display: grid; gap: 3px; }
.stage-row {
  width: 100%;
  min-height: 40px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 7px;
  padding: 5px 7px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.stage-row:hover { background: #f2f5f3; }
.stage-row[aria-pressed="false"] { opacity: 0.48; }
.stage-index { color: var(--teal); font-size: 9px; font-weight: 850; }
.stage-copy { min-width: 0; display: grid; gap: 2px; }
.stage-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.stage-copy small { color: var(--ink-500); font-size: 8px; }
.stage-toggle { color: var(--teal); font-size: 15px; text-align: center; }

.saved-views-empty { margin: 0; color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.saved-views-list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.saved-view-row { display: grid; grid-template-columns: minmax(0, 1fr) 28px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface-muted); overflow: hidden; }
.saved-view-row.is-active { border-color: var(--teal); background: var(--teal-soft); }
.saved-view-restore { min-width: 0; display: grid; gap: 2px; padding: 7px 8px; border: 0; background: transparent; text-align: left; cursor: pointer; }
.saved-view-restore strong,
.saved-view-restore small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.saved-view-restore strong { font-size: 9px; }
.saved-view-restore small { color: var(--ink-500); font-size: 8px; }
.saved-view-delete { border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--ink-500); cursor: pointer; }
.saved-view-delete:hover { background: var(--risk-soft); color: var(--risk); }

.research-selection { min-height: 176px; }
.selection-empty { padding: 9px 0 12px; color: var(--ink-500); font-size: 10px; line-height: 1.5; }
.research-selection ul { display: grid; gap: 4px; margin: 0 0 10px; padding: 0; list-style: none; }
.selection-row { display: grid; grid-template-columns: minmax(0, 1fr) 22px; align-items: center; gap: 5px; padding: 6px 7px; border-left: 2px solid var(--teal); background: var(--teal-soft); }
.selection-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-weight: 700; }
.selection-row button { width: 20px; height: 20px; border: 0; background: transparent; color: var(--teal-dark); cursor: pointer; }
.research-button { width: 100%; min-height: 34px; border: 1px solid var(--ink-900); border-radius: 4px; background: var(--ink-900); color: #fff; cursor: pointer; font-size: 10px; font-weight: 750; }
.research-button:disabled { opacity: 0.42; cursor: not-allowed; }
.phase-boundary { margin: 8px 0 0; color: var(--ink-500); font-size: 8px; line-height: 1.45; }

.canvas-shell { grid-column: 2; grid-row: 2; min-width: 0; min-height: 0; position: relative; background: var(--paper); }
.canvas-viewport { position: absolute; inset: 0; overflow: hidden; touch-action: none; cursor: grab; background-color: #f1f4f2; background-image: radial-gradient(circle, #c9d0cc 1px, transparent 1px); background-size: 22px 22px; }
.canvas-viewport.is-dragging { cursor: grabbing; }
.g6-canvas-layer { position: absolute; z-index: 1; inset: 0; opacity: 0; pointer-events: none; }
.g6-canvas-layer canvas { display: block; }
.canvas-world { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; }
.edge-layer,
.group-layer,
.node-layer { position: absolute; inset: 0; }
.edge-layer { overflow: visible; pointer-events: none; }

.group-card {
  position: absolute;
  overflow: hidden;
  border: 1px solid #b8c2bd;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 8px 28px rgba(28, 42, 38, 0.08);
  transition: opacity 140ms ease, border-color 140ms ease;
}
.group-card.is-collapsed { border-style: dashed; background: rgba(245, 248, 246, 0.92); }
.group-card.is-filtered { opacity: 0.17; pointer-events: none; }
.group-card.is-active { border-color: var(--teal); box-shadow: 0 0 0 2px rgba(18, 107, 102, 0.12), 0 10px 34px rgba(18, 107, 102, 0.12); }
.group-header { position: relative; height: 88px; display: grid; grid-template-columns: 42px minmax(0, 1fr) 32px; align-items: center; gap: 9px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.group-card[data-lane="upstream"] .group-header { box-shadow: inset 4px 0 0 #4b7a76; }
.group-card[data-lane="midstream"] .group-header { box-shadow: inset 4px 0 0 #a86612; }
.group-card[data-lane="downstream"] .group-header { box-shadow: inset 4px 0 0 #6b5d84; }
.group-number { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid currentColor; border-radius: 50%; color: var(--teal); font-size: 10px; font-weight: 850; }
.group-copy { min-width: 0; display: grid; gap: 4px; }
.group-copy strong { font-size: 14px; }
.group-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-500); font-size: 9px; }
.group-collapse { width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--teal); cursor: pointer; }
.group-overview { margin: 0; padding: 18px; color: var(--ink-700); font-size: 12px; line-height: 1.6; }
.group-stats { display: flex; gap: 8px; padding: 0 18px; color: var(--ink-500); font-size: 9px; }

.node-card {
  position: absolute;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px 11px 8px 14px;
  border: 1px solid #ced6d2;
  border-radius: 5px;
  background: var(--surface);
  color: var(--ink-900);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(23, 32, 31, 0.05);
  transition: opacity 100ms ease, border-color 100ms ease, background-color 100ms ease, box-shadow 100ms ease;
}
.node-card::before { content: ""; position: absolute; left: -5px; width: 9px; height: 9px; border: 1px solid #9ba7a2; border-radius: 50%; background: #fff; }
.node-card.is-selected { z-index: 5; border-color: var(--teal); background: var(--teal-soft); color: var(--teal-dark); box-shadow: 0 0 0 2px rgba(18, 107, 102, 0.15); }
.node-card.is-selected::before { border-color: var(--teal); background: var(--teal); }
.node-card.is-path { border-color: #d7a860; background: var(--amber-soft); }
.node-card.is-dimmed { opacity: 0.16; }
.node-card.is-filtered { display: none; }
.node-card.is-offscreen { visibility: hidden; }
.node-copy { min-width: 0; display: grid; gap: 3px; }
.node-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; }
.node-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-500); font-size: 8px; }
.node-meta { display: flex; align-items: center; gap: 4px; }
.confidence-dot { width: 7px; height: 7px; border-radius: 50%; background: #8da19a; }
.confidence-dot.is-high { background: var(--teal); }
.company-count { min-width: 22px; padding: 2px 5px; border-radius: 3px; background: var(--amber-soft); color: var(--amber); font-size: 8px; font-weight: 850; text-align: center; }

.edge-path { fill: none; stroke: #9ca8a3; stroke-width: 2; opacity: 0; vector-effect: non-scaling-stroke; }
.edge-path.is-group-edge { stroke: #7e8e88; stroke-width: 3; opacity: 0.52; }
.edge-path.is-selected { stroke: var(--amber); stroke-width: 3.5; opacity: 1; }
.edge-path.is-dimmed { opacity: 0; }

body[data-semantic-level="groups"] .node-layer,
body[data-semantic-level="groups"] .edge-path:not(.is-group-edge) { display: none; }
body[data-semantic-level="groups"] .group-header { height: 160px; grid-template-columns: 72px minmax(0, 1fr) 48px; gap: 18px; padding: 24px 28px; }
body[data-semantic-level="groups"] .group-number { width: 58px; height: 58px; font-size: 20px; }
body[data-semantic-level="groups"] .group-copy strong { font-size: 38px; line-height: 1.15; }
body[data-semantic-level="groups"] .group-copy small { font-size: 20px; }
body[data-semantic-level="groups"] .group-collapse { width: 44px; height: 44px; font-size: 20px; }
body[data-semantic-level="groups"] .group-overview { padding: 34px 28px 18px; font-size: 22px; line-height: 1.55; }
body[data-semantic-level="groups"] .group-stats { padding: 0 28px; font-size: 17px; line-height: 1.5; }
body[data-semantic-level="groups"] .group-overview,
body[data-semantic-level="groups"] .group-stats { display: block; }
body:not([data-semantic-level="groups"]) .group-overview,
body:not([data-semantic-level="groups"]) .group-stats { display: none; }
body[data-semantic-level="nodes"] .node-copy small,
body[data-semantic-level="nodes"] .company-count { display: none; }
body[data-semantic-level="companies"] .company-count { display: inline-block; }

.canvas-status {
  position: absolute;
  z-index: 100;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 8px;
  padding: 30px;
  background: var(--paper);
  text-align: center;
}
.canvas-status strong { font-size: 15px; }
.canvas-status span { max-width: 420px; color: var(--ink-500); font-size: 10px; line-height: 1.5; }
.status-spinner { width: 28px; height: 28px; border: 2px solid var(--line); border-top-color: var(--teal); border-radius: 50%; animation: spin 800ms linear infinite; }
body[data-canvas-state="ready"] .canvas-status { display: none; }
body[data-canvas-state="empty"] .status-spinner,
body[data-canvas-state="error"] .status-spinner { display: none; }
body[data-canvas-state="error"] .canvas-status strong { color: var(--risk); }

.canvas-legend {
  position: absolute;
  z-index: 20;
  left: 14px;
  bottom: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 5px 16px rgba(23, 32, 31, 0.07);
  color: var(--ink-500);
  font-size: 8px;
}
.canvas-legend span { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }
.legend-line { width: 17px; height: 0; border-top: 2px solid #9ca8a3; }
.legend-line.is-value-flow { border-top-color: #67edcd; border-top-width: 3px; }
.legend-line.is-enabling-flow { border-top-color: #6b9c8f; border-top-style: dashed; }
.legend-company { min-width: 18px; padding: 1px 3px; border-radius: 2px; background: var(--amber-soft); color: var(--amber); font-style: normal; }
.legend-node {
  width: 17px;
  height: 11px;
  flex: 0 0 auto;
  border: 1px solid #55d8b8;
  border-radius: 3px;
  background: #0b2d25;
}
.legend-node.is-company { background: #0d251f; }
.legend-node.is-process { border-radius: 999px; background: #102b24; }
.legend-node.is-technology {
  border-color: #48c4a8;
  border-radius: 0;
  background: #09261f;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}
.legend-node.is-key-node { border-color: #efe8c9; background: #d8d1b0; }
.legend-node.is-candidate { border-color: #c28a21; border-style: dashed; background: #2a2110; }

.mobile-filter-button { display: none; }

.canvas-minimap {
  position: absolute;
  z-index: 18;
  right: 14px;
  bottom: 61px;
  width: 220px;
  height: 124px;
  display: grid;
  grid-template-rows: 22px minmax(0, 1fr);
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink-500);
  box-shadow: 0 8px 24px rgba(23, 32, 31, 0.1);
  cursor: crosshair;
  touch-action: none;
}
.canvas-minimap > span { display: flex; align-items: center; padding: 0 8px; border-bottom: 1px solid var(--line); font-size: 8px; font-weight: 800; letter-spacing: 0.08em; }
.canvas-minimap svg { width: 100%; height: 100%; background: rgba(239, 244, 241, 0.92); }
.minimap-stage { fill: #d9e4df; stroke: #6d8178; stroke-width: 8; vector-effect: non-scaling-stroke; }
.minimap-stage[data-lane="midstream"] { fill: #efe3cf; stroke: #a86612; }
.minimap-stage[data-lane="downstream"] { fill: #e7e0ef; stroke: #6b5d84; }
.minimap-viewport { fill: rgba(18, 107, 102, 0.12); stroke: var(--teal); stroke-width: 14; vector-effect: non-scaling-stroke; }

.zoom-controls { position: absolute; z-index: 20; right: 14px; bottom: 14px; display: flex; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 5px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 5px 16px rgba(23, 32, 31, 0.07); }
.zoom-controls button,
.zoom-controls span { min-height: 34px; display: grid; place-items: center; padding: 0 9px; border: 0; border-right: 1px solid var(--line); background: transparent; font-size: 10px; }
.zoom-controls button { cursor: pointer; }
.zoom-controls button:hover { background: var(--teal-soft); color: var(--teal); }
.zoom-controls span { min-width: 47px; color: var(--ink-500); }
.zoom-controls button:last-child { border-right: 0; }

.detail-drawer { grid-column: 3; grid-row: 2; min-height: 0; overflow: hidden; border-left: 1px solid var(--line); background: var(--surface); }
.drawer-header { min-height: 76px; display: grid; grid-template-columns: minmax(0, 1fr) 32px; align-items: start; gap: 8px; padding: 15px 14px 12px 17px; border-bottom: 1px solid var(--line); }
.drawer-header > div { min-width: 0; display: grid; gap: 4px; }
.drawer-header span { color: var(--teal); font-size: 9px; font-weight: 850; }
.drawer-header h2 { margin: 0; overflow-wrap: anywhere; font-size: 16px; line-height: 1.35; }
.drawer-header button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); cursor: pointer; }
.drawer-header svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.drawer-body { height: calc(100% - 76px); overflow-y: auto; padding: 17px; }
.drawer-empty { min-height: 230px; display: grid; place-content: center; gap: 7px; text-align: center; }
.drawer-empty strong { font-size: 13px; }
.drawer-empty p { max-width: 270px; margin: 0; color: var(--ink-500); font-size: 10px; line-height: 1.6; }
.detail-summary { margin: 0; color: var(--ink-700); font-size: 12px; line-height: 1.65; }
.detail-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 12px; }
.detail-badge { padding: 4px 6px; border: 1px solid var(--line); border-radius: 3px; color: var(--ink-500); font-size: 8px; font-weight: 750; }
.detail-badge.is-evidence { border-color: #b7d0cb; background: var(--teal-soft); color: var(--teal); }
.drawer-section { padding: 16px 0; border-bottom: 1px solid var(--line); }
.drawer-section:last-child { border-bottom: 0; }
.drawer-section h3 { margin: 0 0 9px; font-size: 11px; }
.relation-list,
.company-list,
.source-list { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.relation-list button,
.company-list button { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; padding: 7px 8px; border: 1px solid #e1e6e3; border-radius: 4px; background: var(--surface-muted); text-align: left; cursor: pointer; }
.relation-list button:hover,
.company-list button:hover { border-color: var(--teal); }
.relation-list strong,
.company-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.relation-list span,
.company-list span { color: var(--ink-500); font-size: 8px; }
.source-list a,
.source-list span,
.source-list button { display: grid; width: 100%; gap: 3px; padding: 7px 8px; border: 0; border-left: 2px solid var(--teal); background: var(--surface-muted); color: var(--ink-800); text-align: left; text-decoration: none; }
.source-list button { cursor: pointer; }
.source-list button:hover { background: #e7f0ed; }
.source-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.source-list small { color: var(--ink-500); font-size: 8px; }
.add-research-object { width: 100%; min-height: 36px; margin-top: 13px; border: 1px solid var(--teal); border-radius: 4px; background: var(--teal); color: #fff; cursor: pointer; font-size: 10px; font-weight: 800; }
.add-research-object.is-added { background: var(--surface); color: var(--teal); }
.launch-research-object { width: 100%; min-height: 38px; margin-top: 12px; border: 1px solid #102447; border-radius: 4px; background: #102447; color: #fff; cursor: pointer; font-size: 11px; font-weight: 750; }
.launch-research-object:hover { border-color: #1f5fae; background: #1f5fae; }
.launch-research-object:focus-visible { outline: 3px solid rgba(31,95,174,.28); outline-offset: 2px; }
.detail-boundary { margin: 8px 0 0; padding: 9px; border-left: 2px solid var(--amber); background: var(--amber-soft); color: #695335; font-size: 9px; line-height: 1.55; }
.detail-limit { color: var(--ink-500); font-size: 9px; line-height: 1.55; }
.limitations-list { display: grid; gap: 5px; margin: 0; padding-left: 16px; color: var(--ink-500); font-size: 9px; line-height: 1.55; }
.detail-metadata { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 6px 9px; margin: 0; }
.detail-metadata dt { color: var(--ink-500); font-size: 8px; font-weight: 800; }
.detail-metadata dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--ink-700); font-size: 8px; line-height: 1.5; }

.status-bar { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: var(--rail-width) minmax(0, 1fr) auto; align-items: center; gap: 12px; height: var(--status-height); padding: 0 15px; border-top: 1px solid var(--line); background: #edf1ef; color: var(--ink-500); font-size: 8px; }
.status-bar span:first-child { display: flex; align-items: center; gap: 6px; color: var(--ink-700); font-weight: 750; }
.status-bar span:first-child i { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }
.status-bar #knowledgeVersion { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.keyboard-help { text-align: right; }

.context-dialog { width: min(720px, calc(100vw - 30px)); max-height: min(720px, calc(100vh - 30px)); padding: 0; border: 0; border-radius: 7px; color: var(--ink-900); box-shadow: 0 24px 80px rgba(17, 24, 23, 0.3); }
.context-dialog::backdrop { background: rgba(17, 24, 23, 0.58); }
.context-dialog > header { display: grid; grid-template-columns: minmax(0, 1fr) 34px; align-items: center; gap: 8px; padding: 16px 18px; background: var(--ink-900); color: #fff; }
.context-dialog > header div { display: grid; gap: 3px; }
.context-dialog > header span { color: #a9b6b2; font-size: 8px; font-weight: 850; }
.context-dialog h2 { margin: 0; font-size: 16px; }
.context-dialog > header button { width: 32px; height: 32px; border: 1px solid #52605c; border-radius: 4px; background: transparent; color: #fff; cursor: pointer; font-size: 18px; }
.context-dialog > p { margin: 0; padding: 15px 18px 0; color: var(--ink-500); font-size: 10px; line-height: 1.55; }
.context-dialog pre { max-height: 430px; margin: 14px 18px; padding: 14px; overflow: auto; border: 1px solid var(--line); border-radius: 5px; background: #f4f7f5; color: #26322f; font: 11px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.context-dialog > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--line); color: var(--ink-500); font-size: 8px; }
.context-dialog > footer button { min-height: 32px; padding: 6px 14px; border: 1px solid var(--ink-900); border-radius: 4px; background: var(--ink-900); color: #fff; cursor: pointer; font-size: 10px; }
.research-dialog { width: min(1020px, calc(100vw - 28px)); max-height: min(850px, calc(100vh - 28px)); }
.research-dialog > header { position: sticky; z-index: 4; top: 0; }
.research-dialog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; min-height: 540px; max-height: calc(100vh - 150px); overflow: hidden; }
.research-session-column { min-width: 0; padding: 18px 20px 24px; overflow-y: auto; }
.research-evidence-column { min-width: 0; padding: 18px; overflow-y: auto; border-left: 1px solid var(--line); background: var(--surface-muted); }
.research-evidence-column > section { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.research-evidence-column > section:last-child { margin-bottom: 0; border-bottom: 0; }
.research-section-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.research-section-heading > div { display: grid; gap: 3px; }
.research-section-heading span { color: var(--teal); font-size: 7px; font-weight: 900; letter-spacing: .08em; }
.research-section-heading h3 { margin: 0; font-size: 13px; }
.research-section-heading > strong { padding: 3px 6px; border-radius: 3px; background: var(--teal-soft); color: var(--teal-dark); font-size: 8px; }
.research-object-summary { padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.research-object-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.research-object-chips span { max-width: 260px; padding: 5px 8px; overflow: hidden; border: 1px solid #b8d3cf; border-radius: 999px; background: var(--teal-soft); color: var(--teal-dark); text-overflow: ellipsis; white-space: nowrap; font-size: 8px; font-weight: 800; }
.research-object-summary > p { margin: 10px 0 0; color: var(--ink-500); font-size: 8px; line-height: 1.5; }
.dsh-access-gate { min-height: 156px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 18px; padding: 20px; border: 1px solid var(--line); background: var(--surface-muted); }
.research-dialog [hidden] { display: none !important; }
.gate-spinner { width: 20px; height: 20px; border: 2px solid #c5d2ce; border-top-color: var(--teal); border-radius: 50%; animation: spin .8s linear infinite; }
.dsh-access-gate strong { display: block; font-size: 12px; }
.dsh-access-gate p { margin: 5px 0 0; color: var(--ink-500); font-size: 9px; line-height: 1.5; }
.dsh-access-gate > a,
.dsh-access-gate > button,
.dsh-access-gate form button { min-height: 32px; padding: 6px 10px; border: 1px solid var(--ink-900); border-radius: 4px; background: var(--ink-900); color: #fff; cursor: pointer; font-size: 9px; font-weight: 800; text-decoration: none; }
.dsh-access-gate form { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.dsh-access-gate form label { display: flex; align-items: start; gap: 8px; color: var(--ink-700); font-size: 9px; line-height: 1.45; }
.dsh-access-gate form input { margin: 1px 0 0; }
.dsh-research-session { margin-top: 18px; }
.dsh-research-form { display: grid; gap: 7px; }
.dsh-research-form > label { color: var(--ink-700); font-size: 9px; font-weight: 850; }
.dsh-research-form textarea { width: 100%; min-height: 104px; padding: 11px 12px; resize: vertical; border: 1px solid var(--line-strong); border-radius: 5px; color: var(--ink-900); font-family: inherit; font-size: 11px; line-height: 1.65; }
.research-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.research-form-actions span { color: var(--ink-500); font-size: 8px; }
.research-form-actions button { min-height: 34px; padding: 7px 14px; border: 1px solid var(--teal-dark); border-radius: 4px; background: var(--teal-dark); color: #fff; cursor: pointer; font-size: 9px; font-weight: 850; }
.research-form-actions button:disabled { opacity: .45; cursor: not-allowed; }
.dsh-progress-region { margin-top: 20px; padding: 17px 0; border-top: 1px solid var(--line); }
.dsh-progress-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 15px 0 0; padding: 0; list-style: none; }
.dsh-progress-steps li { position: relative; padding: 22px 6px 0 0; color: var(--ink-400); font-size: 8px; }
.dsh-progress-steps li::before { content: ""; position: absolute; top: 3px; left: 0; width: 11px; height: 11px; border: 2px solid var(--line-strong); border-radius: 50%; background: var(--surface); }
.dsh-progress-steps li::after { content: ""; position: absolute; top: 9px; left: 17px; right: 5px; height: 1px; background: var(--line); }
.dsh-progress-steps li:last-child::after { display: none; }
.dsh-progress-steps li.is-complete { color: var(--teal); }
.dsh-progress-steps li.is-complete::before { border-color: var(--teal); background: var(--teal); }
.dsh-progress-steps li.is-complete::after { background: var(--teal); }
.dsh-progress-steps li.is-active { color: var(--teal-dark); font-weight: 850; }
.dsh-progress-steps li.is-active::before { border-color: var(--teal); box-shadow: inset 0 0 0 3px var(--surface); background: var(--teal); }
.dsh-binding-banner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-top: 4px; padding: 11px 12px; border: 1px solid #e5c182; background: var(--amber-soft); color: #684007; font-size: 9px; }
.dsh-binding-banner.is-failed { border-color: #deb0aa; background: var(--risk-soft); color: var(--risk); }
.dsh-answer-region { margin-top: 18px; padding: 18px; border: 1px solid #b9d2cd; border-left: 3px solid var(--teal); background: #fbfdfc; }
.dsh-answer-copy { margin-top: 14px; color: var(--ink-800); font-size: 11px; line-height: 1.75; white-space: pre-wrap; }
.dsh-answer-region > p { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink-500); font-size: 8px; }
.dsh-failure-region { margin-top: 18px; padding: 15px; border-left: 3px solid var(--risk); background: var(--risk-soft); }
.dsh-failure-region > strong { font-size: 11px; }
.dsh-failure-region > p { margin: 6px 0 12px; color: #733f39; font-size: 9px; line-height: 1.55; }
.dsh-failure-region > div { display: flex; flex-wrap: wrap; gap: 7px; }
.dsh-failure-region button { min-height: 31px; padding: 5px 10px; border: 1px solid #c8938e; border-radius: 4px; background: #fff; color: var(--risk); cursor: pointer; font-size: 8px; font-weight: 800; }
.research-identity-list { display: grid; gap: 9px; margin: 12px 0 0; }
.research-identity-list > div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; }
.research-identity-list dt { color: var(--ink-500); font-size: 8px; }
.research-identity-list dd { margin: 0; overflow-wrap: anywhere; color: var(--ink-700); font: 8px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; }
.dsh-citation-list { display: grid; gap: 5px; margin-top: 10px; }
.dsh-citation-list p { margin: 0; color: var(--ink-500); font-size: 8px; }
.dsh-citation-list button { width: 100%; padding: 8px; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--teal-dark); text-align: left; cursor: pointer; font-size: 8px; }
.dsh-limitation-list { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 17px; color: var(--ink-700); font-size: 8px; line-height: 1.5; }
.dsh-limitation-list li::marker { color: var(--amber); font-weight: 900; }
.research-dialog > footer > div { display: flex; gap: 7px; }
.research-dialog > footer .cancel-research { border-color: #c8938e; background: #fff; color: var(--risk); }
.citation-dialog { width: min(620px, calc(100vw - 30px)); }
.citation-replay-body { display: grid; min-height: 180px; gap: 12px; padding: 18px; overflow: auto; }
.citation-replay-body h3 { margin: 0; font-size: 14px; }
.citation-replay-body p { margin: 0; color: var(--ink-600); font-size: 10px; line-height: 1.6; }
.citation-replay-body .replay-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.citation-replay-body .replay-badges span { padding: 4px 7px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-muted); color: var(--ink-700); font-size: 8px; font-weight: 800; }
.citation-replay-body a { justify-self: start; padding: 8px 12px; border-radius: 4px; background: var(--ink-900); color: #fff; font-size: 9px; text-decoration: none; }
.save-view-dialog { width: min(460px, calc(100vw - 30px)); }
.save-view-dialog form { display: grid; gap: 9px; padding: 18px; }
.save-view-dialog form > label:not(.save-as-new) { color: var(--ink-700); font-size: 10px; font-weight: 800; }
.save-view-dialog input[type="text"] { min-height: 40px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 4px; color: var(--ink-900); }
.save-view-dialog .save-as-new { display: flex; align-items: center; gap: 7px; color: var(--ink-700); font-size: 9px; }
.save-view-dialog .save-as-new[hidden] { display: none; }
.save-view-dialog small { color: var(--ink-500); font-size: 8px; line-height: 1.5; }
.save-view-dialog [role="alert"] { margin: 0; padding: 8px; border-left: 2px solid var(--risk); background: var(--risk-soft); color: var(--risk); font-size: 9px; }
.save-view-dialog form > footer { display: flex; justify-content: flex-end; gap: 7px; margin: 7px -18px -18px; padding: 12px 18px; border-top: 1px solid var(--line); }
.save-view-dialog form > footer button { min-height: 32px; padding: 6px 13px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--surface); cursor: pointer; font-size: 9px; }
.save-view-dialog form > footer .confirm-save { border-color: var(--ink-900); background: var(--ink-900); color: #fff; }

@keyframes spin { to { transform: rotate(360deg); } }

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

@media (max-width: 1180px) {
  :root { --drawer-width: 326px; --rail-width: 250px; }
  .knowledge-badge { display: none; }
  .preview-readiness { max-width: 156px; }
}

@media (max-width: 900px) {
  .canvas-minimap { display: none; }
  :root { --rail-width: 236px; --drawer-width: 320px; }
  .canvas-app { grid-template-columns: var(--rail-width) minmax(0, 1fr); }
  .app-bar { grid-template-columns: var(--rail-width) minmax(0, 1fr) auto; }
  .detail-drawer { position: fixed; z-index: 120; top: var(--header-height); right: 0; bottom: var(--status-height); width: min(var(--drawer-width), calc(100vw - var(--rail-width))); box-shadow: -10px 0 34px rgba(20, 31, 28, 0.16); transform: translateX(105%); transition: transform 240ms cubic-bezier(.23, 1, .32, 1); }
  .detail-drawer.is-open { transform: translateX(0); }
  .canvas-shell { grid-column: 2; }
  .research-dialog-layout { grid-template-columns: minmax(0, 1fr) 260px; }
}

@media (max-width: 680px) {
  :root { --header-height: 58px; --status-height: 30px; }
  .canvas-app { grid-template-columns: 1fr; grid-template-rows: var(--header-height) minmax(0, 1fr) var(--status-height); }
  .app-bar { grid-template-columns: 64px minmax(0, 1fr) auto; }
  .brand { padding: 0 11px; border-right: 0; font-size: 14px; }
  .title-block { padding: 0 7px; }
  .title-block strong { font-size: 12px; }
  .title-block span { display: none; }
  .header-actions { gap: 4px; padding-right: 7px; }
  .header-actions .quiet-button { display: none; }
  .preview-readiness { max-width: 116px; padding: 5px 7px; }
  .preview-readiness small { display: none; }
  .primary-button { min-height: 30px; padding: 5px 7px; font-size: 9px; }
  .control-rail { position: fixed; z-index: 130; left: 0; top: var(--header-height); bottom: var(--status-height); width: min(292px, calc(100vw - 44px)); transform: translateX(-105%); box-shadow: 10px 0 34px rgba(20, 31, 28, 0.16); transition: transform 240ms cubic-bezier(.23, 1, .32, 1); }
  .control-rail.is-open { transform: translateX(0); }
  .canvas-shell { grid-column: 1; grid-row: 2; }
  .mobile-filter-button { position: absolute; z-index: 30; top: 10px; left: 10px; display: grid; place-items: center; min-width: 48px; height: 32px; padding: 0 8px; border: 1px solid var(--line); border-radius: 4px; background: rgba(255,255,255,.96); color: var(--ink-800); cursor: pointer; font-size: 9px; font-weight: 750; }
  .detail-drawer { top: auto; left: 0; right: 0; bottom: var(--status-height); width: 100%; height: min(68vh, 570px); border-left: 0; border-top: 1px solid var(--line); transform: translateY(105%); transition-property: transform; }
  .detail-drawer.is-open { transform: translateY(0); }
  .status-bar { grid-template-columns: auto minmax(0, 1fr); padding: 0 9px; }
  .status-bar .keyboard-help { display: none; }
  .status-bar #knowledgeVersion { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; }
  .canvas-legend { max-width: calc(100vw - 20px); left: 10px; bottom: 53px; gap: 7px; overflow-x: auto; }
  .zoom-controls { right: 10px; bottom: 10px; }
  .zoom-controls #zoomReadout { display: none; }
  .zoom-controls button { min-width: 34px; padding: 0 7px; }
  .research-dialog { width: 100vw; max-height: 100vh; border-radius: 0; }
  .research-dialog-layout { display: block; max-height: calc(100vh - 125px); overflow-y: auto; }
  .research-session-column,
  .research-evidence-column { overflow: visible; padding: 14px; }
  .research-evidence-column { border-top: 1px solid var(--line); border-left: 0; }
  .dsh-access-gate { grid-template-columns: 24px minmax(0, 1fr); }
  .dsh-access-gate > a,
  .dsh-access-gate > button { grid-column: 1 / -1; justify-self: start; }
  .dsh-access-gate form { align-items: stretch; flex-direction: column; }
  .dsh-progress-steps { grid-template-columns: 1fr; gap: 4px; }
  .dsh-progress-steps li { padding: 3px 0 3px 24px; }
  .dsh-progress-steps li::before { top: 4px; }
  .dsh-progress-steps li::after { top: 17px; left: 6px; right: auto; width: 1px; height: 14px; }
  .research-dialog > footer { position: sticky; bottom: 0; background: var(--surface); }
  .research-dialog > footer > span { display: none; }
  .research-dialog > footer > div { margin-left: auto; }
}

/* Approved green knowledge-map visual system ----------------------------- */
body[data-atlas-mode="semiconductor-v5"] {
  --atlas-bg: #03110e;
  --atlas-panel: #071c17;
  --atlas-panel-2: #0b251e;
  --atlas-line: #22483f;
  --atlas-ink: #eef8f2;
  --atlas-muted: #8aa89f;
  --atlas-cyan: #59e6c4;
  --atlas-cyan-soft: rgba(89, 230, 196, 0.12);
  --atlas-violet: #d49a2e;
  --atlas-violet-soft: rgba(212, 154, 46, 0.12);
  --atlas-amber: #d9a13a;
  --header-height: 72px;
  --status-height: 31px;
  background: #03110e;
}

body[data-atlas-mode="semiconductor-v5"] .app-bar {
  grid-template-columns: 86px minmax(340px, 1fr) auto;
  border-bottom: 1px solid #1c4238;
  background: rgba(3, 17, 14, 0.98);
  box-shadow: 0 9px 32px rgba(0, 0, 0, 0.34);
}

body[data-atlas-mode="semiconductor-v5"] .brand {
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border-right: 0;
  color: #62edca;
  letter-spacing: 0.12em;
}

body[data-atlas-mode="semiconductor-v5"] .brand svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

body[data-atlas-mode="semiconductor-v5"] .brand span { display: none; }
body[data-atlas-mode="semiconductor-v5"] .title-block { gap: 4px; padding: 0 4px; }
body[data-atlas-mode="semiconductor-v5"] .title-block strong {
  color: #f5f1dc;
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  font-size: 19px;
  font-weight: 760;
  letter-spacing: 0.02em;
}
body[data-atlas-mode="semiconductor-v5"] .title-block strong em { font-size: 14px; font-style: normal; font-weight: 650; }
body[data-atlas-mode="semiconductor-v5"] .title-block span { color: #78988f; font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .header-actions { gap: 9px; padding-right: 20px; }
body[data-atlas-mode="semiconductor-v5"] .preview-readiness,
body[data-atlas-mode="semiconductor-v5"] .knowledge-badge {
  border-color: #29544a;
  background: rgba(8, 31, 25, 0.88);
  color: #b6d7ce;
  box-shadow: none;
}

body[data-atlas-mode="semiconductor-v5"] .canvas-viewport {
  background-color: #03110e;
  background-image:
    linear-gradient(rgba(67, 139, 121, 0.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(67, 139, 121, 0.075) 1px, transparent 1px),
    linear-gradient(rgba(67, 139, 121, 0.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(67, 139, 121, 0.024) 1px, transparent 1px),
    radial-gradient(circle at 48% 37%, rgba(38, 124, 101, 0.09), transparent 43%);
  background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px, auto;
}

body[data-atlas-mode="semiconductor-v5"] .canvas-command-bar {
  top: 10px;
  right: 18px;
  left: auto;
  width: min(690px, calc(100% - 520px));
  justify-content: flex-end;
  gap: 9px;
}

body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb,
body[data-atlas-mode="semiconductor-v5"] .canvas-search-section .search-box,
body[data-atlas-mode="semiconductor-v5"] .canvas-research-entry {
  min-height: 40px;
  border-color: #2a5148;
  border-radius: 7px;
  background: rgba(4, 20, 16, 0.92);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb { order: 3; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb > span { display: none; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb button { min-height: 28px; color: #93b5aa; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb button[aria-current="page"] { background: rgba(89, 230, 196, 0.1); color: #65e9c9; }
body[data-atlas-mode="semiconductor-v5"] .canvas-search-section { width: min(420px, 46vw); margin-left: 0; }
body[data-atlas-mode="semiconductor-v5"] .canvas-search-section .search-box { min-height: 40px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-research-entry { color: #b2d0c7; }

.canvas-trust-strip {
  position: absolute;
  z-index: 35;
  top: 13px;
  left: 20px;
  display: flex;
  align-items: center;
  gap: 23px;
  min-height: 34px;
  padding: 0 11px;
  color: #9db7af;
  font-size: 9px;
  pointer-events: none;
}
.canvas-trust-strip span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.trust-dot { width: 10px; height: 10px; border: 1.5px solid currentColor; border-radius: 50%; }
.trust-dot.is-reviewed { color: #5ee7c6; box-shadow: 0 0 9px rgba(94, 231, 198, 0.28); }
.trust-dot.is-candidate { color: #d29a2f; }
.trust-line { width: 22px; height: 0; border-top: 1.5px solid currentColor; }
.trust-line.is-gap { color: #d29a2f; border-top-style: dashed; }
.trust-line.is-path { color: #5ee7c6; border-top-style: dashed; }

body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint {
  top: 55px;
  padding: 5px 10px;
  border: 0;
  border-radius: 3px;
  background: rgba(4, 19, 16, 0.64);
  color: #b9d3cb;
  box-shadow: none;
}
body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint strong { font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint span { color: #66877e; font-size: 7.5px; }

body[data-atlas-mode="semiconductor-v5"] .canvas-legend,
body[data-atlas-mode="semiconductor-v5"] .zoom-controls {
  border-color: #285147;
  border-radius: 7px;
  background: rgba(4, 20, 16, 0.92);
  color: #a9c2ba;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.3);
}
body[data-atlas-mode="semiconductor-v5"] .canvas-legend { left: 20px; bottom: 16px; gap: 14px; padding: 9px 12px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-legend strong { color: #f0ead7; font-size: 9px; font-weight: 750; }
body[data-atlas-mode="semiconductor-v5"] .legend-dot.is-selected { background: #5ee7c6; box-shadow: 0 0 8px rgba(94, 231, 198, 0.6); }
body[data-atlas-mode="semiconductor-v5"] .legend-line { border-top-color: #5ee7c6; }
body[data-atlas-mode="semiconductor-v5"] .legend-line.is-candidate { border-top-color: #d29a2f; }
body[data-atlas-mode="semiconductor-v5"] .zoom-controls { right: 258px; bottom: 16px; }
body[data-atlas-mode="semiconductor-v5"] .zoom-controls button,
body[data-atlas-mode="semiconductor-v5"] .zoom-controls span {
  min-height: 36px;
  border-color: #285147;
  background: transparent;
  color: #c0d8d0;
}
body[data-atlas-mode="semiconductor-v5"] .zoom-controls button:hover { background: rgba(89, 230, 196, 0.09); color: #75efd2; }

body[data-canvas-renderer="antv-g6-canvas-v1"] .g6-minimap {
  right: 18px !important;
  bottom: 16px !important;
  border-color: #285147 !important;
  border-radius: 7px;
  background: rgba(4, 20, 16, 0.94) !important;
}

body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card {
  width: min(330px, calc(100% - 30px));
  padding: 16px;
  border-color: rgba(89, 230, 196, 0.58);
  border-radius: 9px;
  background: rgba(7, 30, 24, 0.98);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.62), 0 0 28px rgba(89, 230, 196, 0.11);
}
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card::before { background: linear-gradient(90deg, transparent, #5ee7c6, transparent); }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-header > span { color: #63e8c8; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-header h2 { color: #f1f5e8; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-meta span,
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-products li,
body[data-atlas-mode="semiconductor-v5"] .company-product-list li {
  border-color: #285147;
  background: #0b251f;
  color: #bbd3cb;
}
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-section { border-top-color: #22473e; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-section h3 { color: #77aa9c; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-section p { color: #dbe9e3; }
body[data-atlas-mode="semiconductor-v5"] .status-bar { border-color: #1d4037; background: #03110e; color: #68877e; }
body[data-atlas-mode="semiconductor-v5"] .status-bar i { background: #5ee7c6; box-shadow: 0 0 8px rgba(94, 231, 198, 0.7); }

@media (max-width: 1050px) {
  body[data-atlas-mode="semiconductor-v5"] .canvas-command-bar { width: min(540px, calc(100% - 300px)); }
  .canvas-trust-strip span:nth-child(3),
  .canvas-trust-strip span:nth-child(4) { display: none; }
}

@media (max-width: 760px) {
  body[data-atlas-mode="semiconductor-v5"] { --header-height: 62px; }
  body[data-atlas-mode="semiconductor-v5"] .app-bar { grid-template-columns: 55px minmax(0, 1fr) auto; }
  body[data-atlas-mode="semiconductor-v5"] .brand { padding: 0 10px; }
  body[data-atlas-mode="semiconductor-v5"] .brand svg { width: 21px; height: 21px; }
  body[data-atlas-mode="semiconductor-v5"] .title-block strong { font-size: 13px; }
  body[data-atlas-mode="semiconductor-v5"] .title-block strong em { display: none; }
  .canvas-trust-strip { top: 91px; left: 10px; gap: 14px; padding: 0; }
  body[data-atlas-mode="semiconductor-v5"] .canvas-command-bar { top: 8px; left: 10px; right: 10px; width: auto; }
  body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint { top: 124px; }
  body[data-atlas-mode="semiconductor-v5"] .zoom-controls { right: 10px; }
  body[data-canvas-renderer="antv-g6-canvas-v1"] .g6-minimap { display: none !important; }
}

/* Semiconductor Atlas V5 -------------------------------------------------- */
body[data-atlas-mode="semiconductor-v5"] {
  --atlas-bg: #070b12;
  --atlas-panel: #0c1320;
  --atlas-panel-2: #111a28;
  --atlas-line: #22344b;
  --atlas-ink: #eef7ff;
  --atlas-muted: #8ea3b8;
  --atlas-cyan: #4de4ff;
  --atlas-cyan-soft: rgba(77, 228, 255, 0.12);
  --atlas-violet: #a98bff;
  --atlas-violet-soft: rgba(169, 139, 255, 0.12);
  --atlas-amber: #ffc857;
  --atlas-red: #ff6b78;
  color: var(--atlas-ink);
}

body[data-atlas-mode="semiconductor-v5"] .canvas-app {
  --rail-width: 298px;
  --drawer-width: 390px;
  grid-template-columns: var(--rail-width) minmax(0, 1fr);
  background: var(--atlas-bg);
}
body[data-atlas-mode="semiconductor-v5"] .canvas-shell { grid-column: 2; }
body[data-atlas-mode="semiconductor-v5"] .detail-drawer {
  position: fixed;
  z-index: 120;
  top: var(--header-height);
  right: 0;
  bottom: var(--status-height);
  width: min(var(--drawer-width), calc(100vw - var(--rail-width)));
  box-shadow: -18px 0 54px rgba(0, 0, 0, 0.42);
  transform: translateX(105%);
  transition: transform 220ms cubic-bezier(.23, 1, .32, 1);
}
body[data-atlas-mode="semiconductor-v5"]:not([data-atlas-ready="true"]) .detail-drawer { transition: none; }
body[data-atlas-mode="semiconductor-v5"] .detail-drawer.is-open { transform: translateX(0); }

body[data-atlas-mode="semiconductor-v5"] .app-bar {
  border-bottom: 1px solid #243a51;
  background: linear-gradient(90deg, #070b12, #0d1724 52%, #111927);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.34);
}

body[data-atlas-mode="semiconductor-v5"] .brand { border-right-color: #213247; color: var(--atlas-cyan); }
body[data-atlas-mode="semiconductor-v5"] .title-block span { color: var(--atlas-muted); }
body[data-atlas-mode="semiconductor-v5"] .knowledge-badge { border-color: #31516d; background: rgba(77, 228, 255, 0.07); color: #a8edfa; }
body[data-atlas-mode="semiconductor-v5"] .quiet-button { border-color: #38516a; color: #c8d9e8; }
body[data-atlas-mode="semiconductor-v5"] .primary-button { border-color: var(--atlas-cyan); background: var(--atlas-cyan); color: #061018; }

body[data-atlas-mode="semiconductor-v5"] .control-rail,
body[data-atlas-mode="semiconductor-v5"] .detail-drawer {
  border-color: var(--atlas-line);
  background: rgba(9, 15, 25, 0.98);
  color: var(--atlas-ink);
}

body[data-atlas-mode="semiconductor-v5"] .control-section,
body[data-atlas-mode="semiconductor-v5"] .drawer-header,
body[data-atlas-mode="semiconductor-v5"] .drawer-section { border-color: var(--atlas-line); }
body[data-atlas-mode="semiconductor-v5"] .section-heading h2,
body[data-atlas-mode="semiconductor-v5"] .drawer-section h3 { color: #dcebf7; }
body[data-atlas-mode="semiconductor-v5"] .section-heading span,
body[data-atlas-mode="semiconductor-v5"] .control-section > label,
body[data-atlas-mode="semiconductor-v5"] .filter-grid label,
body[data-atlas-mode="semiconductor-v5"] .phase-boundary,
body[data-atlas-mode="semiconductor-v5"] .drawer-header span,
body[data-atlas-mode="semiconductor-v5"] .detail-metadata dt,
body[data-atlas-mode="semiconductor-v5"] .detail-limit { color: var(--atlas-muted); }

body[data-atlas-mode="semiconductor-v5"] .search-box,
body[data-atlas-mode="semiconductor-v5"] select,
body[data-atlas-mode="semiconductor-v5"] .segmented-control,
body[data-atlas-mode="semiconductor-v5"] .selection-empty,
body[data-atlas-mode="semiconductor-v5"] .saved-views-empty {
  border-color: #293c52;
  background: #0d1623;
  color: #d7e5f0;
}
body[data-atlas-mode="semiconductor-v5"] .search-box input { color: #eff8ff; }
body[data-atlas-mode="semiconductor-v5"] .search-box svg { stroke: var(--atlas-cyan); }
body[data-atlas-mode="semiconductor-v5"] .segmented-control button { color: var(--atlas-muted); }
body[data-atlas-mode="semiconductor-v5"] .segmented-control button[aria-pressed="true"] { background: #1a2a3c; color: var(--atlas-cyan); }

.atlas-controls { display: grid; gap: 12px; }
.atlas-controls > label { display: grid; gap: 6px; }
.atlas-switch-row { grid-template-columns: minmax(0, 1fr) auto !important; align-items: center; }
.atlas-switch-row > span { display: grid; gap: 3px; }
.atlas-switch-row strong { color: inherit; font-size: 10px; }
.atlas-switch-row small { color: var(--ink-400); font-size: 8px; font-weight: 500; }
.atlas-switch-row input { width: 34px; height: 18px; accent-color: var(--teal); }
.atlas-stage-nav { display: grid; gap: 5px; }
.atlas-stage-nav-row {
  width: 100%;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 39px;
  padding: 5px 8px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.atlas-stage-nav-row > span:first-child { color: var(--atlas-cyan, var(--teal)); font-size: 9px; font-weight: 850; }
.atlas-stage-nav-row > span:last-child { min-width: 0; display: grid; gap: 2px; }
.atlas-stage-nav-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.atlas-stage-nav-row small { color: var(--atlas-muted, var(--ink-500)); font-size: 8px; }
.atlas-stage-nav-row:hover,
.atlas-stage-nav-row.is-focused { border-color: rgba(77, 228, 255, 0.4); background: rgba(77, 228, 255, 0.08); }

body[data-atlas-mode="semiconductor-v5"] .canvas-shell,
body[data-atlas-mode="semiconductor-v5"] .canvas-viewport { background: var(--atlas-bg); }
body[data-atlas-mode="semiconductor-v5"] .canvas-viewport {
  background-image:
    radial-gradient(circle at 18% 16%, rgba(77, 228, 255, 0.08), transparent 26%),
    radial-gradient(circle at 82% 68%, rgba(169, 139, 255, 0.07), transparent 28%);
}
body[data-atlas-mode="semiconductor-v5"] .canvas-world {
  background-color: #070b12;
  background-image:
    linear-gradient(rgba(88, 126, 160, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(88, 126, 160, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(88, 126, 160, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(88, 126, 160, 0.025) 1px, transparent 1px);
  background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
}
body[data-canvas-renderer="antv-g6-canvas-v1"] .g6-canvas-layer { opacity: 1; pointer-events: auto; }
body[data-canvas-renderer="antv-g6-canvas-v1"] .canvas-world,
body[data-canvas-renderer="antv-g6-canvas-v1"] .canvas-minimap { display: none; }

.canvas-entity-card {
  position: absolute;
  z-index: 55;
  width: min(440px, calc(100% - 32px));
  max-height: min(650px, calc(100% - 116px));
  overflow: auto;
  padding: 18px;
  border: 1px solid rgba(77, 228, 255, 0.5);
  border-radius: 14px;
  background: linear-gradient(150deg, rgba(13, 25, 39, 0.98), rgba(7, 13, 23, 0.98));
  color: #eef8ff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.58), 0 0 34px rgba(77, 228, 255, 0.12);
  pointer-events: auto;
  backdrop-filter: blur(14px);
  transform-origin: 24px 24px;
  animation: canvas-card-enter 180ms cubic-bezier(.23, 1, .32, 1);
}

@keyframes canvas-card-enter {
  from { opacity: 0; transform: translateY(6px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.canvas-entity-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 18px;
  right: 18px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--atlas-cyan), transparent);
}

.canvas-entity-card-handle {
  position: sticky;
  z-index: 2;
  top: -18px;
  display: flex;
  align-items: center;
  min-height: 34px;
  margin: -18px -18px 14px;
  padding: 0 48px 0 18px;
  border-bottom: 1px solid rgba(77, 228, 255, 0.16);
  background: rgba(7, 13, 23, 0.96);
  color: #8fa6b8;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
.canvas-entity-card-handle::before {
  content: "";
  width: 22px;
  height: 4px;
  margin-right: 9px;
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  opacity: .65;
}
.canvas-entity-card-handle:hover,
.canvas-entity-card-handle:focus-visible { color: #eef8ff; }
.canvas-entity-card.is-dragging .canvas-entity-card-handle { cursor: grabbing; }

.canvas-entity-card[data-kind="external"],
.canvas-entity-card[data-kind="web-candidate"],
.canvas-entity-card[data-kind="external-guide"] { border-color: rgba(169, 139, 255, 0.62); }
.canvas-entity-card[data-kind="stage-guide"],
.canvas-entity-card[data-kind="process-guide"],
.canvas-entity-card[data-kind="technology-guide"],
.canvas-entity-card[data-kind="section-guide"] { border-color: rgba(89, 230, 196, 0.68); }
.canvas-entity-card[data-kind="gap"] { border-color: rgba(255, 200, 87, 0.58); }
.canvas-entity-card[hidden] { display: none; }
.canvas-entity-card-close {
  position: absolute;
  z-index: 3;
  top: 9px;
  right: 10px;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #31475c;
  border-radius: 50%;
  background: rgba(5, 11, 19, 0.74);
  color: #9cb1c2;
  cursor: pointer;
}
.canvas-entity-card-close:hover { border-color: var(--atlas-cyan); color: #fff; }
.canvas-entity-card-header { display: grid; gap: 6px; padding-right: 34px; }
.canvas-entity-card-header > span { color: var(--atlas-cyan); font-size: 9px; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.canvas-entity-card-header h2 { margin: 0; font-size: 19px; line-height: 1.28; }
.canvas-entity-card-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.canvas-entity-card-meta span {
  padding: 4px 7px;
  border: 1px solid #2b4358;
  border-radius: 999px;
  background: rgba(16, 31, 47, 0.88);
  color: #a9c0d2;
  font-size: 8px;
}
.canvas-entity-card-section { display: grid; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #213549; }
.canvas-entity-card-section h3 { margin: 0; color: #8ca3b6; font-size: 8px; letter-spacing: 0.1em; text-transform: uppercase; }
.canvas-entity-card-section p { margin: 0; color: #deebf4; font-size: 10px; line-height: 1.65; }
.canvas-entity-card-section.is-gap p { color: #d8b777; }
.canvas-entity-card-products { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.canvas-entity-card-products li { padding: 5px 7px; border-radius: 5px; background: #102033; color: #c9dae7; font-size: 8px; }
.canvas-process-flow-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.canvas-process-flow-list li {
  position: relative;
  display: grid;
  grid-template-columns: minmax(78px, 0.44fr) minmax(0, 1fr);
  gap: 9px;
  padding: 8px 9px 8px 13px;
  border-left: 2px solid #2c685a;
  background: rgba(9, 38, 31, 0.72);
}
.canvas-process-flow-list li + li { border-top: 1px solid rgba(64, 116, 101, 0.28); }
.canvas-process-flow-list li::before {
  content: "";
  position: absolute;
  left: -5px;
  top: 13px;
  width: 8px;
  height: 8px;
  border: 2px solid #79d9c2;
  border-radius: 50%;
  background: #09241d;
}
.canvas-process-flow-list li.is-active {
  border-left-color: #ffd36a;
  background: rgba(63, 48, 14, 0.76);
}
.canvas-process-flow-list li.is-active::before { border-color: #ffd36a; box-shadow: 0 0 10px rgba(255, 211, 106, 0.48); }
.canvas-process-flow-list strong { color: #dff7ef; font-size: 9px; line-height: 1.5; }
.canvas-process-flow-list span { color: #adc9bf; font-size: 8px; line-height: 1.55; }
.canvas-entity-card .add-research-object { width: 100%; margin-top: 14px; }

.canvas-financial-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.canvas-financial-metric {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  border: 1px solid rgba(85, 216, 184, 0.26);
  border-radius: 7px;
  background: rgba(13, 43, 35, 0.58);
}

.canvas-financial-metric span { color: #83a69b; font-size: 8px; }
.canvas-financial-metric strong { overflow: hidden; color: #e7fff7; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.canvas-financial-metric.is-gap { border-style: dashed; border-color: #32483f; background: rgba(18, 31, 27, 0.5); }
.canvas-financial-metric.is-gap strong { color: #779087; }

.canvas-segment-list,
.canvas-profile-source-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.canvas-segment-list li,
.canvas-profile-source-list li {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border-left: 2px solid rgba(85, 216, 184, 0.54);
  background: rgba(10, 29, 24, 0.68);
}

.canvas-segment-list strong,
.canvas-profile-source-list a { color: #def8ee; font-size: 9px; line-height: 1.4; }
.canvas-segment-list span,
.canvas-profile-source-list span { color: #91aca2; font-size: 8px; line-height: 1.45; }
.canvas-profile-source-list a { text-decoration: none; }
.canvas-profile-source-list a:hover { color: #71efd2; text-decoration: underline; }
.canvas-segment-list .is-more,
.canvas-profile-source-list .is-more { color: #91aca2; font-size: 8px; }

body[data-atlas-mode="semiconductor-v5"] .detail-drawer { display: none !important; }
body[data-canvas-renderer="antv-g6-canvas-v1"] .g6-minimap {
  overflow: hidden;
  border: 1px solid #2a4157 !important;
  border-radius: 6px;
  background: rgba(8, 14, 23, 0.94) !important;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.34);
}
body[data-atlas-mode="semiconductor-v5"] #edgeLayer,
body[data-atlas-mode="semiconductor-v5"] #groupLayer,
body[data-atlas-mode="semiconductor-v5"] #nodeLayer { visibility: hidden; }

.reference-edge-layer,
.semantic-atlas-layer,
.atlas-company-layer,
.technology-evolution-layer { position: absolute; inset: 0; }
.reference-edge-layer { z-index: 4; overflow: visible; pointer-events: none; }
.semantic-atlas-layer { z-index: 2; }
.atlas-company-layer { z-index: 5; pointer-events: none; }
.technology-evolution-layer { z-index: 3; height: 420px; }
.atlas-company-layer button,
.atlas-company-layer section { pointer-events: auto; }

.atlas-flow-ribbon {
  position: absolute;
  height: 62px;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 80px;
  align-items: center;
}
.atlas-flow-ribbon::before {
  content: "";
  position: absolute;
  left: 28px;
  right: 28px;
  top: 50%;
  height: 4px;
  background: linear-gradient(90deg, #42c9e7 0 36%, #ffc857 47% 58%, #a98bff 70% 100%);
  box-shadow: 0 0 24px rgba(77, 228, 255, 0.28);
}
.atlas-flow-ribbon span {
  position: relative;
  z-index: 1;
  min-height: 40px;
  display: grid;
  place-items: center;
  padding: 7px 14px;
  border: 1px solid #2c455f;
  border-radius: 999px;
  background: #0d1724;
  color: #dff7ff;
  font-size: 14px;
  font-weight: 850;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
.atlas-flow-ribbon span[data-lane="midstream"] { border-color: rgba(255, 200, 87, 0.65); color: #ffe0a0; }
.atlas-flow-ribbon span[data-lane="downstream"] { border-color: rgba(169, 139, 255, 0.65); color: #d5c8ff; }

.atlas-stage {
  position: absolute;
  overflow: hidden;
  border: 1px solid #263b51;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(15, 25, 40, 0.94), rgba(8, 14, 24, 0.88));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025), 0 24px 70px rgba(0, 0, 0, 0.26);
  transition: border-color 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}
.atlas-stage::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--atlas-cyan);
  opacity: 0.72;
}
.atlas-stage[data-lane="midstream"]::before { background: var(--atlas-amber); }
.atlas-stage[data-lane="downstream"]::before { background: var(--atlas-violet); }
.atlas-stage.is-focused {
  border-color: rgba(77, 228, 255, 0.9);
  box-shadow: 0 0 0 2px rgba(77, 228, 255, 0.12), 0 0 54px rgba(77, 228, 255, 0.1);
}
.atlas-stage-header {
  position: absolute;
  inset: 0 0 auto;
  height: 202px;
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 26px 30px 22px;
  border-bottom: 1px solid #263b51;
  background: linear-gradient(180deg, rgba(19, 31, 49, 0.98), rgba(13, 22, 36, 0.92));
}
.atlas-stage-eyebrow { display: flex; align-items: center; justify-content: space-between; color: var(--atlas-muted); }
.atlas-stage-eyebrow span { color: var(--atlas-cyan); font-size: 18px; font-weight: 900; letter-spacing: 0.14em; }
.atlas-stage-eyebrow small { font-size: 12px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; }
.atlas-stage-header h2 { margin: 0; color: #f2f8fd; font-size: 30px; letter-spacing: -0.03em; }
.atlas-stage-stats { display: flex; gap: 10px; }
.atlas-stage-stats span { padding: 5px 9px; border: 1px solid #2b4258; border-radius: 5px; color: #9db2c5; font-size: 10px; }

.atlas-product-card {
  position: absolute;
  display: grid;
  grid-template-columns: 11px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px 9px;
  overflow: hidden;
  border: 1px solid #31516a;
  border-radius: 7px;
  background: rgba(13, 24, 38, 0.94);
  color: #e7f4fb;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.16);
  transition: transform 120ms ease, border-color 120ms ease, opacity 120ms ease, box-shadow 120ms ease;
}
.atlas-product-card:hover { z-index: 3; transform: translateY(-2px); border-color: var(--atlas-cyan); box-shadow: 0 8px 24px rgba(77, 228, 255, 0.14); }
.atlas-product-card.is-candidate { border-style: dashed; border-color: #675c91; background: rgba(26, 22, 48, 0.88); }
.atlas-product-card.is-candidate:hover { border-color: var(--atlas-violet); box-shadow: 0 8px 24px rgba(169, 139, 255, 0.15); }
.atlas-product-card.is-filtered { display: none; }
.atlas-product-card.is-selected { z-index: 4; border-color: var(--atlas-amber); background: rgba(71, 47, 13, 0.88); box-shadow: 0 0 0 2px rgba(255, 200, 87, 0.2), 0 8px 28px rgba(255, 200, 87, 0.12); }
.atlas-product-card.is-path { border-color: var(--atlas-cyan); background: rgba(14, 49, 64, 0.94); }
.atlas-product-card.is-dimmed { opacity: 0.2; }
.atlas-item-status { width: 8px; height: 8px; border-radius: 50%; background: var(--atlas-cyan); box-shadow: 0 0 10px rgba(77, 228, 255, 0.7); }
.atlas-product-card.is-candidate .atlas-item-status { border-radius: 2px; background: var(--atlas-violet); box-shadow: 0 0 10px rgba(169, 139, 255, 0.55); transform: rotate(45deg); }
.atlas-item-copy { min-width: 0; display: grid; gap: 4px; }
.atlas-item-copy strong,
.atlas-item-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.atlas-item-copy strong { font-size: 11px; }
.atlas-item-copy small { color: #8399ad; font-size: 7.5px; }

body[data-semantic-level="groups"] .atlas-product-card { opacity: 0; pointer-events: none; }
body[data-semantic-level="groups"] .atlas-product-card.is-overview-anchor {
  top: calc(1260px + var(--overview-slot) * 150px) !important;
  left: 40px !important;
  width: 480px !important;
  height: 120px !important;
  opacity: 1;
  pointer-events: auto;
}
body[data-semantic-level="groups"] .atlas-product-card.is-overview-anchor .atlas-item-status { width: 22px; height: 22px; }
body[data-semantic-level="groups"] .atlas-product-card.is-overview-anchor .atlas-item-copy strong { font-size: 30px; }
body[data-semantic-level="groups"] .atlas-product-card.is-overview-anchor .atlas-item-copy small { display: none; }
body[data-semantic-level="groups"] .atlas-stage { background: linear-gradient(165deg, rgba(17, 29, 46, 0.98), rgba(8, 14, 24, 0.9)); }
body[data-semantic-level="groups"] .atlas-stage-header { height: 100%; align-content: start; padding-top: 230px; border-bottom: 0; background: transparent; }
body[data-semantic-level="groups"] .atlas-stage-header h2 { font-size: 58px; writing-mode: vertical-rl; letter-spacing: 0.08em; }
body[data-semantic-level="groups"] .atlas-stage-eyebrow span { font-size: 34px; }
body[data-semantic-level="groups"] .atlas-stage-eyebrow small { font-size: 22px; }
body[data-semantic-level="groups"] .atlas-stage-stats { margin-top: 40px; display: grid; }
body[data-semantic-level="groups"] .atlas-stage-stats span { padding: 12px; font-size: 20px; }
body[data-semantic-level="groups"] .technology-evolution-layer { opacity: 0.18; }
body[data-semantic-level="nodes"] .atlas-item-copy small { display: none; }

.technology-evolution-layer { display: grid; grid-template-rows: 76px repeat(3, 68px); gap: 9px; }
.technology-track-heading { display: flex; align-items: end; justify-content: space-between; padding: 0 8px 12px; border-bottom: 1px solid #2c4155; }
.technology-track-heading span { color: var(--atlas-cyan); font-size: 10px; font-weight: 850; letter-spacing: 0.18em; }
.technology-track-heading h2 { margin: 0; color: #d9e8f3; font-size: 24px; }
.technology-track {
  display: grid;
  grid-template-columns: 250px repeat(8, minmax(0, 1fr));
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border: 1px solid #263c51;
  border-radius: 10px;
  background: rgba(12, 21, 34, 0.9);
}
.technology-track.is-filtered { display: none; }
.technology-track-label { display: grid; gap: 3px; }
.technology-track-label strong { color: #f1f7fb; font-size: 14px; }
.technology-track-label small { color: var(--atlas-muted); font-size: 8px; }
.technology-chip { min-width: 0; padding: 9px; overflow: hidden; border: 1px solid #31516a; border-radius: 6px; color: #b9d2e4; text-align: center; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.technology-track.is-emerging .technology-chip { border-color: #675c91; color: #c8baff; }
.technology-track.is-future .technology-chip { border-color: rgba(255, 200, 87, 0.55); color: #f6d890; border-style: dashed; }

.relationship-focus-band {
  position: absolute;
  border: 1px solid rgba(169, 139, 255, 0.55);
  border-radius: 18px;
  background: rgba(10, 13, 25, 0.95);
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.45), inset 0 0 50px rgba(169, 139, 255, 0.05);
}
.relationship-focus-heading { height: 72px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 0 26px; border-bottom: 1px solid #302c50; }
.relationship-focus-heading span { color: var(--atlas-violet); font-size: 9px; font-weight: 850; letter-spacing: 0.16em; }
.relationship-focus-heading strong { overflow: hidden; color: #eadfff; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
.relationship-focus-heading button { padding: 7px 10px; border: 1px solid #544d76; border-radius: 5px; background: transparent; color: #b8a9df; cursor: pointer; font-size: 9px; }
.relationship-object-card,
.atlas-company-card { position: absolute; z-index: 2; cursor: pointer; }
.relationship-object-card { padding: 12px 18px; overflow: hidden; border: 2px solid var(--atlas-violet); border-radius: 12px; background: #211b3a; color: #f2ecff; text-overflow: ellipsis; font-size: 15px; font-weight: 850; box-shadow: 0 0 34px rgba(169, 139, 255, 0.23); }
.atlas-company-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 12px; overflow: hidden; border: 1px solid #47627b; background: #111e2d; color: #e2eef7; text-align: left; }
.atlas-company-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.atlas-company-card small { color: #86a1b8; font-size: 8px; }
.atlas-company-card.is-selected { border-color: var(--atlas-amber); box-shadow: 0 0 0 2px rgba(255, 200, 87, 0.2); }
.atlas-company-card.is-foundry { border-radius: 999px; }
.atlas-company-card.is-equipment { clip-path: polygon(6% 50%, 12% 8%, 88% 8%, 94% 50%, 88% 92%, 12% 92%); }
.atlas-company-card.is-eda-ip { clip-path: polygon(7% 0, 93% 0, 100% 50%, 93% 100%, 7% 100%, 0 50%); }
.atlas-company-card.is-osat { clip-path: polygon(8% 0, 92% 0, 100% 100%, 0 100%); }
.atlas-company-card.is-fabless { border-radius: 4px 18px 4px 18px; }
.atlas-company-card.is-supplier { border-radius: 5px; }
.reference-relationship-path { fill: none; stroke: var(--atlas-violet); stroke-width: 2.2; stroke-dasharray: 8 7; opacity: 0.72; vector-effect: non-scaling-stroke; }

.legend-line.is-candidate { border-top-style: dashed; border-top-color: var(--atlas-violet, #765da9); }
body[data-atlas-mode="semiconductor-v5"] .canvas-legend,
body[data-atlas-mode="semiconductor-v5"] .zoom-controls { border-color: #2a4157; background: rgba(8, 14, 23, 0.9); color: #b8cad9; box-shadow: 0 10px 32px rgba(0, 0, 0, 0.3); }
body[data-atlas-mode="semiconductor-v5"] .canvas-minimap { border-color: #2a4157; background: rgba(8, 14, 23, 0.94); color: #92a8b9; box-shadow: 0 10px 32px rgba(0, 0, 0, 0.34); }
body[data-atlas-mode="semiconductor-v5"] .canvas-minimap > span { border-color: #2a4157; }
body[data-atlas-mode="semiconductor-v5"] .canvas-minimap svg { background: #090f18; }
body[data-atlas-mode="semiconductor-v5"] .minimap-stage { fill: #102332; stroke: #4de4ff; }
body[data-atlas-mode="semiconductor-v5"] .minimap-stage[data-lane="midstream"] { fill: #2a2417; stroke: #ffc857; }
body[data-atlas-mode="semiconductor-v5"] .minimap-stage[data-lane="downstream"] { fill: #211b33; stroke: #a98bff; }
body[data-atlas-mode="semiconductor-v5"] .minimap-viewport { fill: rgba(77, 228, 255, 0.12); stroke: #4de4ff; }
body[data-atlas-mode="semiconductor-v5"] .zoom-controls button { border-color: #2d465d; background: #101b29; color: #d5e8f5; }
@media (min-width: 901px) {
  body[data-canvas-renderer="antv-g6-canvas-v1"]:has(.detail-drawer.is-open) .zoom-controls { right: calc(var(--drawer-width) + 18px); }
}
body[data-atlas-mode="semiconductor-v5"] .status-bar { border-color: #253a4e; background: #08101a; color: #8197aa; }
body[data-atlas-mode="semiconductor-v5"] .status-bar i { background: var(--atlas-cyan); box-shadow: 0 0 8px rgba(77, 228, 255, 0.8); }

body[data-atlas-mode="semiconductor-v5"] .detail-badge { border-color: #344d63; background: #111d2a; color: #acc2d4; }
body[data-atlas-mode="semiconductor-v5"] .detail-badge.is-evidence { border-color: rgba(77, 228, 255, 0.55); background: var(--atlas-cyan-soft); color: #9cf2ff; }
body[data-atlas-mode="semiconductor-v5"] .detail-badge.is-candidate { border-color: rgba(169, 139, 255, 0.6); background: var(--atlas-violet-soft); color: #cbbdff; }
body[data-atlas-mode="semiconductor-v5"] .detail-summary { color: #c0d0dc; }
body[data-atlas-mode="semiconductor-v5"] .company-list button,
body[data-atlas-mode="semiconductor-v5"] .relation-list button,
body[data-atlas-mode="semiconductor-v5"] .atlas-mapped-node { border-color: #2b4257; background: #0e1825; color: #e3edf5; }
body[data-atlas-mode="semiconductor-v5"] .company-list button:hover,
body[data-atlas-mode="semiconductor-v5"] .relation-list button:hover,
body[data-atlas-mode="semiconductor-v5"] .atlas-mapped-node:hover { border-color: var(--atlas-cyan); }
body[data-atlas-mode="semiconductor-v5"] .company-list span,
body[data-atlas-mode="semiconductor-v5"] .relation-list span { color: var(--atlas-muted); }
.atlas-mapped-node { width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 5px; text-align: left; cursor: pointer; }
.atlas-mapped-node:disabled { opacity: 0.5; cursor: not-allowed; }
.atlas-candidate-boundary { border-color: rgba(169, 139, 255, 0.38) !important; background: rgba(169, 139, 255, 0.08) !important; color: #bcb0dc !important; }

body[data-atlas-mode="semiconductor-v5"] .search-results { border-color: #2b4258; background: #0b1420; box-shadow: 0 14px 38px rgba(0, 0, 0, 0.46); }
body[data-atlas-mode="semiconductor-v5"] .search-result { border-color: #23374a; background: transparent; color: #e0edf6; }
body[data-atlas-mode="semiconductor-v5"] .search-result:hover { background: rgba(77, 228, 255, 0.08); }
body[data-atlas-mode="semiconductor-v5"] .search-result > span { color: var(--atlas-cyan); }
body[data-atlas-mode="semiconductor-v5"] .search-result small { color: var(--atlas-muted); }

/* Single-canvas drilldown ------------------------------------------------- */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body[data-atlas-mode="semiconductor-v5"] .canvas-app {
  --drawer-width: 410px;
  grid-template-columns: minmax(0, 1fr);
}

body[data-atlas-mode="semiconductor-v5"] .app-bar {
  grid-template-columns: 112px minmax(0, 1fr) auto;
}

body[data-atlas-mode="semiconductor-v5"] .canvas-shell { grid-column: 1; }

body[data-atlas-mode="semiconductor-v5"] .detail-drawer {
  width: min(var(--drawer-width), calc(100vw - 24px));
}

.canvas-command-bar {
  position: absolute;
  z-index: 40;
  top: 18px;
  left: 18px;
  width: min(780px, calc(100% - 36px));
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: none;
}

.canvas-command-bar > * { pointer-events: auto; }

.drill-breadcrumb {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 8px;
  border: 1px solid #2b4258;
  border-radius: 8px;
  background: rgba(8, 14, 23, 0.94);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.34);
  color: #70899d;
  backdrop-filter: blur(12px);
}

.drill-breadcrumb button {
  max-width: 180px;
  min-height: 32px;
  padding: 5px 8px;
  overflow: hidden;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #91a7b9;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
  font-size: 10px;
  font-weight: 760;
}

.drill-breadcrumb button:hover { background: rgba(77, 228, 255, 0.09); color: #dff9ff; }
.drill-breadcrumb button[aria-current="page"] { background: rgba(77, 228, 255, 0.12); color: var(--atlas-cyan); }

.canvas-search-section {
  width: min(330px, 38vw);
  margin-left: auto;
}

.canvas-search-section .search-box {
  min-height: 44px;
  border-color: #2b4258;
  border-radius: 8px;
  background: rgba(8, 14, 23, 0.94);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.34);
  backdrop-filter: blur(12px);
}

.canvas-search-section .search-results {
  top: calc(100% + 7px);
  left: 0;
  width: 100%;
}

.canvas-research-entry {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  border: 1px solid #2b4258;
  border-radius: 8px;
  background: rgba(8, 14, 23, 0.94);
  color: #b9ccda;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.34);
  cursor: pointer;
  white-space: nowrap;
  font-size: 9px;
  font-weight: 780;
  backdrop-filter: blur(12px);
}

.canvas-research-entry strong {
  min-width: 20px;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(77, 228, 255, 0.14);
  color: var(--atlas-cyan);
  text-align: center;
  font-size: 9px;
}

.canvas-research-entry:disabled { opacity: 0.42; cursor: not-allowed; }
.canvas-research-entry:not(:disabled):hover { border-color: rgba(77, 228, 255, 0.62); color: #ecfbff; }

.canvas-drill-hint {
  position: absolute;
  z-index: 30;
  top: 84px;
  left: 50%;
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 9px 14px;
  border: 1px solid rgba(77, 228, 255, 0.18);
  border-radius: 999px;
  background: rgba(7, 11, 18, 0.78);
  color: #d8eaf5;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.24);
  transform: translateX(-50%);
  pointer-events: none;
  backdrop-filter: blur(10px);
}

.canvas-drill-hint strong { font-size: 10px; }
.canvas-drill-hint span { color: #8198aa; font-size: 8px; }

body[data-drill-state="product"] .canvas-drill-hint,
body[data-drill-state="company"] .canvas-drill-hint { opacity: 0; }

body[data-atlas-mode="semiconductor-v5"] .canvas-legend { left: 18px; }
body[data-atlas-mode="semiconductor-v5"] .zoom-controls { right: 18px; }

.company-financial-readout {
  margin: 0;
  padding: 12px;
  border: 1px solid rgba(255, 200, 87, 0.3);
  border-radius: 6px;
  background: rgba(255, 200, 87, 0.08);
  color: #e9d5a8;
  font-size: 10px;
  line-height: 1.7;
}

.company-financial-readout.is-gap {
  border-style: dashed;
  border-color: #344d63;
  background: #0e1825;
  color: #8ea3b8;
}

.company-product-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.company-product-list li {
  padding: 6px 8px;
  border: 1px solid #2b4257;
  border-radius: 5px;
  background: #0e1825;
  color: #d9e7f1;
  font-size: 9px;
  line-height: 1.35;
}

@media (max-width: 760px) {
  body[data-atlas-mode="semiconductor-v5"] .app-bar { grid-template-columns: 70px minmax(0, 1fr) auto; }
  body[data-atlas-mode="semiconductor-v5"] .preview-readiness { display: none; }
  .canvas-command-bar { top: 10px; left: 10px; width: calc(100% - 20px); align-items: stretch; flex-direction: column-reverse; gap: 7px; }
  .canvas-search-section { width: 100%; }
  .canvas-research-entry { position: absolute; top: 47px; right: 0; min-height: 36px; }
  .drill-breadcrumb { width: fit-content; max-width: 100%; min-height: 38px; }
  .drill-breadcrumb button { min-height: 28px; max-width: 120px; padding: 4px 6px; }
  .canvas-search-section .search-box { min-height: 40px; }
  .canvas-drill-hint { top: 108px; width: calc(100% - 30px); border-radius: 9px; text-align: center; }
  .canvas-legend { display: none; }
}

@media (max-width: 900px) {
  body[data-atlas-mode="semiconductor-v5"] .canvas-app { --drawer-width: 340px; }
  .atlas-stage-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  body[data-atlas-mode="semiconductor-v5"] .canvas-app {
    --rail-width: min(88vw, 320px);
    --drawer-width: min(92vw, 370px);
    grid-template-columns: 1fr;
  }
  body[data-atlas-mode="semiconductor-v5"] .canvas-shell { grid-column: 1; }
  body[data-atlas-mode="semiconductor-v5"] .detail-drawer {
    top: auto;
    left: 0;
    right: 0;
    width: 100%;
    height: min(68vh, 570px);
    transform: translateY(105%);
    transition-property: transform;
  }
  body[data-atlas-mode="semiconductor-v5"] .detail-drawer.is-open { transform: translateY(0); }
  body[data-atlas-mode="semiconductor-v5"] .title-block span { display: none; }
  body[data-atlas-mode="semiconductor-v5"] .knowledge-badge { display: none; }
  .canvas-legend span:nth-child(3),
  .canvas-legend span:nth-child(4) { display: none; }
}

/* Final cascade lock for the approved green knowledge-map. */
body[data-atlas-mode="semiconductor-v5"] {
  --atlas-bg: #03110e;
  --atlas-panel: #071c17;
  --atlas-panel-2: #0b251e;
  --atlas-line: #22483f;
  --atlas-ink: #eef8f2;
  --atlas-muted: #8aa89f;
  --atlas-cyan: #59e6c4;
  --atlas-cyan-soft: rgba(89, 230, 196, 0.12);
  --atlas-violet: #d49a2e;
  --atlas-violet-soft: rgba(212, 154, 46, 0.12);
  --atlas-amber: #d9a13a;
  --header-height: 72px;
  --status-height: 31px;
}
body[data-atlas-mode="semiconductor-v5"] .app-bar {
  grid-template-columns: 86px minmax(340px, 1fr) auto;
  border-bottom-color: #1c4238;
  background: rgba(3, 17, 14, 0.98);
  box-shadow: 0 9px 32px rgba(0, 0, 0, 0.34);
}
body[data-atlas-mode="semiconductor-v5"] .brand { justify-content: center; gap: 8px; padding: 0 15px; border-right: 0; color: #62edca; }
body[data-atlas-mode="semiconductor-v5"] .brand svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; }
body[data-atlas-mode="semiconductor-v5"] .brand span { display: none; }
body[data-atlas-mode="semiconductor-v5"] .title-block { gap: 4px; padding: 0 4px; }
body[data-atlas-mode="semiconductor-v5"] .title-block strong { color: #f5f1dc; font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif; font-size: 19px; font-weight: 760; letter-spacing: 0.02em; }
body[data-atlas-mode="semiconductor-v5"] .title-block strong em { font-size: 14px; font-style: normal; font-weight: 650; }
body[data-atlas-mode="semiconductor-v5"] .title-block span { color: #78988f; font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .preview-readiness,
body[data-atlas-mode="semiconductor-v5"] .knowledge-badge { border-color: #29544a; background: rgba(8, 31, 25, 0.88); color: #b6d7ce; }
body[data-atlas-mode="semiconductor-v5"] .canvas-viewport {
  background-color: #03110e;
  background-image: linear-gradient(rgba(67,139,121,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(67,139,121,.075) 1px, transparent 1px), linear-gradient(rgba(67,139,121,.024) 1px, transparent 1px), linear-gradient(90deg, rgba(67,139,121,.024) 1px, transparent 1px), radial-gradient(circle at 48% 37%, rgba(38,124,101,.09), transparent 43%);
  background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px, auto;
}
body[data-atlas-mode="semiconductor-v5"] .canvas-command-bar { top: 10px; right: 18px; left: auto; width: min(690px, calc(100% - 520px)); justify-content: flex-end; gap: 9px; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb,
body[data-atlas-mode="semiconductor-v5"] .canvas-search-section .search-box,
body[data-atlas-mode="semiconductor-v5"] .canvas-research-entry { min-height: 40px; border-color: #2a5148; border-radius: 7px; background: rgba(4,20,16,.92); box-shadow: 0 10px 28px rgba(0,0,0,.28); }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb { order: 3; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb > span { display: none; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb button { min-height: 28px; color: #93b5aa; }
body[data-atlas-mode="semiconductor-v5"] .drill-breadcrumb button[aria-current="page"] { background: rgba(89,230,196,.1); color: #65e9c9; }
body[data-atlas-mode="semiconductor-v5"] .canvas-search-section { width: min(420px, 46vw); margin-left: 0; }
body[data-atlas-mode="semiconductor-v5"] .canvas-search-section .search-box { min-height: 40px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint { top: 55px; padding: 5px 10px; border: 0; border-radius: 3px; background: rgba(4,19,16,.64); color: #b9d3cb; box-shadow: none; }
body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint strong { font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint span { color: #66877e; font-size: 7.5px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-legend,
body[data-atlas-mode="semiconductor-v5"] .zoom-controls { border-color: #285147; border-radius: 7px; background: rgba(4,20,16,.92); color: #a9c2ba; box-shadow: 0 12px 34px rgba(0,0,0,.3); }
body[data-atlas-mode="semiconductor-v5"] .canvas-legend { left: 20px; bottom: 16px; gap: 14px; padding: 9px 12px; }
body[data-atlas-mode="semiconductor-v5"] .zoom-controls { right: 258px; bottom: 16px; }
body[data-atlas-mode="semiconductor-v5"] .zoom-controls button,
body[data-atlas-mode="semiconductor-v5"] .zoom-controls span { min-height: 36px; border-color: #285147; background: transparent; color: #c0d8d0; }
body[data-canvas-renderer="antv-g6-canvas-v1"] .g6-minimap { right: 18px !important; bottom: 16px !important; border-color: #285147 !important; border-radius: 7px; background: rgba(4,20,16,.94) !important; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card { width: min(330px, calc(100% - 30px)); padding: 16px; border-color: rgba(89,230,196,.58); border-radius: 9px; background: rgba(7,30,24,.98); }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card[data-kind="official"] { width: min(390px, calc(100% - 30px)); }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card[data-kind="stage-guide"],
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card[data-kind="process-guide"],
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card[data-kind="technology-guide"] { width: min(400px, calc(100% - 30px)); }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-section h3 { color: #93b7ac; font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-section p { font-size: 11px; line-height: 1.62; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card-products li { font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-process-flow-list strong { font-size: 10px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-process-flow-list span { font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-financial-metric span { font-size: 9px; }
body[data-atlas-mode="semiconductor-v5"] .canvas-financial-metric strong { font-size: 13px; }
body[data-drill-state="stage"] .canvas-legend,
body[data-drill-state="product"] .canvas-legend,
body[data-drill-state="company"] .canvas-legend {
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
}
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card .source-list a,
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card .source-list span,
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card .source-list button { border: 1px solid #285147; border-left: 2px solid #59e6c4; background: #0b251f; color: #dce9e4; }
body[data-atlas-mode="semiconductor-v5"] .canvas-entity-card .source-list small { color: #76998f; }
body[data-atlas-mode="semiconductor-v5"] .status-bar { border-color: #1d4037; background: #03110e; color: #68877e; }

@media (max-width: 760px) {
  body[data-atlas-mode="semiconductor-v5"] { --header-height: 62px; }
  body[data-atlas-mode="semiconductor-v5"] .app-bar { grid-template-columns: 55px minmax(0, 1fr) auto; }
  body[data-atlas-mode="semiconductor-v5"] .title-block strong { font-size: 13px; }
  body[data-atlas-mode="semiconductor-v5"] .title-block strong em { display: none; }
  body[data-atlas-mode="semiconductor-v5"] .canvas-command-bar { top: 8px; left: 10px; right: 10px; width: auto; }
  body[data-atlas-mode="semiconductor-v5"] .canvas-drill-hint { top: 124px; }
  body[data-atlas-mode="semiconductor-v5"] .zoom-controls { right: 10px; }
}
