:root {
  --topbar-height: 84px;
  --bg: #0b0d10;
  --panel: #121720;
  --panel-2: #18202b;
  --line: #2c3542;
  --line-bright: #465261;
  --text: #edf1f5;
  --muted: #8d9aaa;
  --faint: #606b78;
  --accent: #7dd3a8;
  --accent-2: #6db5e8;
  --warn: #f0b86e;
  --danger: #e87b7b;
  --font: Inter, Manrope, Segoe UI, sans-serif;
  --mono: Cascadia Mono, Consolas, monospace;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
}

body.academy-page { height: 100vh; overflow: hidden; }

.topbar {
  min-height: var(--topbar-height);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  gap: 16px;
}

.top-nav { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.nav-link {
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  padding: 8px 10px;
  text-decoration: none;
}
.nav-link:hover, .nav-link.active { border-color: var(--accent); color: var(--accent); background: rgba(125, 211, 168, 0.08); }
.nav-button { appearance: none; cursor: pointer; background: transparent; }
.nav-button:disabled { cursor: wait; opacity: 0.65; }

h1 { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: 0; }
p { margin: 6px 0 0; color: var(--muted); }

.status {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
}
.status.ok { color: var(--accent); border-color: rgba(125, 211, 168, 0.5); }
.status.error { color: var(--danger); border-color: rgba(232, 123, 123, 0.5); }

.workspace {
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: calc(100vh - var(--topbar-height));
}

.academy-shell {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(460px, 1fr) minmax(320px, 430px);
  gap: 0;
  height: calc(100vh - var(--topbar-height));
  min-height: 0;
  overflow: hidden;
}
.academy-sidebar, .academy-main, .academy-lab-panel { min-height: 0; min-width: 0; padding: 18px; }
.academy-sidebar { border-right: 1px solid var(--line); background: #0f131a; overflow: auto; }
.academy-main {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  align-content: stretch;
  overflow: hidden;
}
.academy-main > [data-academy-panel] { display: none; min-height: 0; overflow: auto; }
.academy-main[data-active-panel="lesson"] > [data-academy-panel="lesson"],
.academy-main[data-active-panel="simulation"] > [data-academy-panel="simulation"],
.academy-main[data-active-panel="waveforms"] > [data-academy-panel="waveforms"],
.academy-main[data-active-panel="tutor"] > [data-academy-panel="tutor"],
.academy-main[data-active-panel="evidence"] > [data-academy-panel="evidence"] { display: block; }
.academy-lab-panel { border-left: 1px solid var(--line); background: #0f131a; overflow: auto; }
.academy-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  min-width: 0;
}
.admin-shell { min-height: calc(100vh - var(--topbar-height)); padding: 18px; }
.admin-workspace { display: grid; grid-template-columns: minmax(250px, 320px) minmax(520px, 1fr); gap: 18px; align-items: start; }
.admin-sidebar, .admin-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  min-width: 0;
}
.admin-main { display: grid; gap: 14px; min-width: 0; }
.login-panel { max-width: 520px; margin: 8vh auto 0; }
.admin-profile { display: grid; gap: 5px; margin-bottom: 14px; }
.admin-profile span, .admin-profile small { color: var(--muted); }
.admin-form { display: grid; gap: 12px; }
.compact-form { max-width: 440px; }
.user-form-grid, .knowledge-form-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
.wide-field, .form-actions { grid-column: 1 / -1; }
.admin-form label { color: var(--muted); display: grid; gap: 6px; font-size: 13px; }
.admin-form input, .admin-form select, .admin-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #0d1117;
  color: var(--text);
  font: inherit;
  min-height: 40px;
  padding: 9px 10px;
}
.admin-form textarea { min-height: 92px; resize: vertical; }
.form-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.auth-shell {
  align-items: center;
  display: grid;
  min-height: 100vh;
  padding: 24px;
}
.auth-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 14px;
  margin: 0 auto;
  max-width: 520px;
  padding: 22px;
  width: min(100%, 520px);
}
.auth-panel h1 { font-size: 26px; }

.landing-shell, .manual-shell, .command-shell {
  min-height: calc(100vh - var(--topbar-height));
  padding: 18px;
}
.landing-shell { display: grid; gap: 16px; align-content: start; }
.command-shell { display: grid; gap: 16px; align-content: start; }
.landing-hero {
  align-items: center;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(280px, 1fr) minmax(260px, 420px);
  min-height: 210px;
  padding: 22px;
}
.landing-hero h2 { font-size: 32px; margin: 0; }
.landing-status-grid, .landing-grid { display: grid; gap: 10px; }
.landing-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.landing-status-grid span {
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  padding: 10px;
}
.landing-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.landing-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 8px;
  min-height: 164px;
  padding: 16px;
  text-decoration: none;
}
.landing-card:hover { border-color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.landing-card span {
  color: var(--accent);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.landing-card strong { font-size: 18px; }
.landing-card small { color: var(--muted); line-height: 1.45; }

.command-hero {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(300px, 1fr) minmax(300px, 520px);
  padding: 10px 0 18px;
}
.command-identity h2 { font-size: 28px; margin: 0; max-width: 780px; }
.command-vitals, .preview-metrics, .preview-flags {
  display: grid;
  gap: 8px;
}
.command-vitals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.command-vitals span, .preview-metrics span, .preview-flags span, .secondary-link {
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  padding: 9px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.command-vitals .vital-ok { border-color: rgba(125, 211, 168, 0.4); color: var(--accent); }
.command-vitals .vital-warn { border-color: rgba(240, 184, 110, 0.45); color: var(--warn); }
.command-vitals .vital-error { border-color: rgba(232, 123, 123, 0.55); color: var(--danger); }
.command-layout {
  display: grid;
  grid-template-columns: minmax(520px, 1fr) minmax(320px, 430px);
  gap: 16px;
  align-items: start;
}
.start-case-panel, .planner-preview, .command-action {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
}
.start-case-panel h2 { font-size: 22px; margin: 0; }
.command-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 10px 12px;
}
.command-form label { margin-bottom: 0; }
.secondary-link { color: var(--accent); display: inline-flex; align-items: center; min-height: 39px; }
.secondary-link:hover { border-color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.command-rail { display: grid; gap: 14px; }
.planner-preview { display: grid; gap: 12px; }
.preview-heading { display: grid; gap: 5px; }
.preview-heading strong { font-size: 18px; overflow-wrap: anywhere; }
.preview-heading span { color: var(--muted); font-size: 13px; line-height: 1.4; }
.preview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.preview-metrics b { color: var(--text); display: block; font-size: 16px; margin-bottom: 3px; overflow-wrap: anywhere; text-transform: none; }
.preview-flags span.review { border-color: rgba(240, 184, 110, 0.45); color: var(--warn); }
.preview-flags span.action, .preview-flags span.high { border-color: rgba(232, 123, 123, 0.55); color: var(--danger); }
.command-actions { display: grid; gap: 10px; }
.command-action {
  color: var(--text);
  display: grid;
  gap: 7px;
  min-height: 124px;
  text-decoration: none;
}
.command-action:hover { border-color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.command-action span {
  color: var(--accent);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.command-action strong { font-size: 17px; }
.command-action small { color: var(--muted); line-height: 1.45; }

.manual-shell {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  align-items: start;
}
.manual-toc {
  background: #0f131a;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 6px;
  padding: 14px;
  position: sticky;
  top: 18px;
}
.manual-toc a {
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--muted);
  padding: 8px 9px;
  text-decoration: none;
}
.manual-toc a:hover { border-color: var(--line); color: var(--text); }
.manual-content { display: grid; gap: 14px; min-width: 0; }
.manual-section {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px;
}
.manual-section h2 { margin: 0; font-size: 22px; }
.manual-section p, .manual-section li { line-height: 1.55; }
.manual-section ul, .manual-section ol { color: var(--muted); margin: 12px 0 0; padding-left: 22px; }
.manual-section code {
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--accent-2);
  font-family: var(--mono);
  font-size: 12px;
  padding: 1px 5px;
}
.admin-list { display: grid; gap: 9px; max-height: 460px; overflow: auto; padding-right: 2px; }
.admin-list-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #0e1218;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 12px;
  padding: 12px;
}
.admin-list-item div { min-width: 0; }
.admin-list-item strong, .admin-list-item span, .admin-list-item small { display: block; overflow-wrap: anywhere; }
.admin-list-item span { color: var(--muted); font-size: 13px; margin-top: 4px; }
.admin-list-item small { color: var(--faint); font-size: 12px; margin-top: 4px; }
.admin-tags { align-content: start; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.admin-tags span { border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-family: var(--mono); font-size: 11px; margin: 0; padding: 4px 7px; }
.academy-inner-section { background: #0e1218; }
.academy-workspace-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  min-height: 38px;
}
.academy-tab {
  border: 1px solid var(--line);
  background: #0e1218;
  color: var(--muted);
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  min-width: 0;
  overflow: hidden;
  padding: 8px 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.academy-tab:hover { border-color: var(--line-bright); color: var(--text); }
.academy-tab.active {
  border-color: var(--accent);
  background: rgba(125, 211, 168, 0.08);
  color: var(--accent);
}
.spaced-title { margin-top: 18px; }
.compact-grid { grid-template-columns: 1fr; margin-top: 0; margin-bottom: 12px; }
.vertical-list { grid-template-columns: 1fr; max-height: 48vh; overflow: auto; padding-right: 2px; }
.sidebar-grid { grid-template-columns: 1fr; max-height: 32vh; overflow: auto; padding-right: 2px; }
.compact-strip { grid-template-columns: minmax(240px, 1.2fr) repeat(3, minmax(110px, 1fr)); }

.decision-panel, .detail-panel, .work-panel {
  min-width: 0;
  padding: 18px;
}
.decision-panel { border-bottom: 1px solid var(--line); background: #0f131a; }
.content-grid {
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(330px, 420px);
  min-height: 0;
}
.detail-panel { border-right: 1px solid var(--line); }
.work-panel { display: grid; gap: 14px; align-content: start; background: #0f131a; }

.panel-title {
  font-family: var(--mono);
  color: var(--faint);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  margin-bottom: 12px;
}

.decision-path {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.path-empty { color: var(--faint); font-family: var(--mono); font-size: 13px; }
.path-node {
  border: 1px solid var(--line-bright);
  background: var(--panel);
  color: var(--text);
  border-radius: 6px;
  padding: 7px 9px;
  cursor: pointer;
}
.path-node:hover { border-color: var(--accent); color: var(--accent); }
.path-arrow { color: var(--faint); font-family: var(--mono); }

.decision-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(210px, 260px);
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 8px;
  scrollbar-width: thin;
}
.decision-column {
  min-height: 190px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}
.decision-column-title {
  color: var(--faint);
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 9px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.decision-options { display: grid; gap: 7px; }
.decision-option {
  width: 100%;
  min-height: 48px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  text-align: left;
  border: 1px solid var(--line);
  background: #0e1218;
  color: var(--text);
  padding: 8px 10px;
  border-radius: 7px;
  cursor: pointer;
}
.decision-option span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.decision-option small { color: var(--faint); font-family: var(--mono); font-size: 10px; }
.decision-option.has-children::after {
  content: "→";
  color: var(--accent-2);
  font-family: var(--mono);
}
.decision-option:hover { border-color: var(--line-bright); background: var(--panel-2); }
.decision-option.active { border-color: var(--accent); color: var(--accent); background: rgba(125, 211, 168, 0.08); }

.case-card, .body-card, .ai-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
}
.node-detail { padding: 0; }
.empty-state { color: var(--muted); }
.node-detail.empty-state { padding: 16px; }
.compact { border: 1px dashed var(--line); border-radius: 7px; padding: 12px; }
.node-heading { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.node-heading h2 { margin: 0; font-size: 24px; letter-spacing: 0; }
.node-type { font-family: var(--mono); color: var(--accent); font-size: 12px; }
.clinical-strip {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) repeat(4, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.readiness-card, .metric-card, .clinical-section {
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
}
.readiness-card { padding: 12px; display: grid; gap: 6px; }
.readiness-card span, .metric-card span, .section-heading span, .coord-status {
  color: var(--faint);
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.readiness-card strong { color: var(--text); font-size: 13px; line-height: 1.35; }
.readiness-card.ready { border-color: rgba(125, 211, 168, 0.45); }
.readiness-card.review { border-color: rgba(240, 184, 110, 0.55); }
.readiness-card.action_needed { border-color: rgba(232, 123, 123, 0.55); }
.readiness-card.navigation { border-color: rgba(109, 181, 232, 0.45); }
.metric-card { padding: 12px; min-width: 0; }
.metric-card strong {
  display: block;
  margin-top: 5px;
  color: var(--text);
  font-size: 18px;
  overflow-wrap: anywhere;
}
.metric-card small { color: var(--muted); }
.workbench-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr); gap: 12px; margin-top: 12px; }
.clinical-section { padding: 14px; margin-top: 12px; min-width: 0; }
.workbench-grid .clinical-section { margin-top: 0; }
.wide-section { width: 100%; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.section-heading h3 { margin: 0; font-size: 16px; }
.tag-row { display: flex; gap: 8px; flex-wrap: wrap; }
.tag {
  border: 1px solid rgba(109, 181, 232, 0.35);
  color: var(--accent-2);
  border-radius: 5px;
  padding: 4px 7px;
  font-family: var(--mono);
  font-size: 12px;
}
.coverage-list, .gap-list { display: grid; gap: 8px; }
.coverage-item, .gap-item, .protocol-item {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  padding: 12px;
}
.coverage-item { display: grid; gap: 8px; }
.coverage-item > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.coverage-item strong, .gap-item strong, .protocol-item strong { display: block; margin-bottom: 4px; }
.coverage-item span, .gap-item span, .protocol-item span, .protocol-item p { color: var(--muted); font-size: 13px; }
.coverage-item.covered { border-color: rgba(125, 211, 168, 0.25); }
.coverage-item.gap, .gap-item.review { border-color: rgba(240, 184, 110, 0.35); }
.gap-item.action { border-color: rgba(232, 123, 123, 0.45); }
.mini-tags, .channel-tags, .source-row { display: flex; gap: 6px; flex-wrap: wrap; }
.mini-tags span, .channel-tags span, .source-row span {
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  padding: 4px 6px;
  overflow-wrap: anywhere;
}
.channel-table { display: grid; gap: 8px; }
.channel-row {
  display: grid;
  grid-template-columns: minmax(170px, 0.9fr) minmax(220px, 1.5fr) minmax(120px, 0.7fr) 112px;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  padding: 12px;
}
.channel-row.bilateral { border-color: rgba(125, 211, 168, 0.28); }
.channel-row.partial, .channel-row.missing { border-color: rgba(240, 184, 110, 0.38); }
.channel-main, .channel-detail { display: grid; gap: 4px; min-width: 0; }
.channel-main strong, .channel-main span, .channel-detail span, .channel-detail small { overflow-wrap: anywhere; }
.channel-main span, .channel-detail span, .channel-detail small { color: var(--muted); font-size: 13px; }
.coord-status { text-align: right; color: var(--accent); }
.protocol-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.trace-section { margin-bottom: 4px; }
.next-section { margin-top: 12px; }
.next-decision-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.next-decision {
  border: 1px solid var(--line);
  background: #0e1218;
  color: var(--text);
  border-radius: 7px;
  display: grid;
  gap: 5px;
  min-height: 104px;
  padding: 14px;
  text-align: left;
  cursor: pointer;
}
.next-decision:hover { border-color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.next-decision strong, .next-decision span { overflow-wrap: anywhere; }
.next-decision span { color: var(--muted); font-size: 13px; }
.next-decision small { color: var(--faint); font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; }
.academy-dashboard { margin-top: 12px; }
.academy-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.academy-modules { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.academy-module {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 10px;
  padding: 12px;
}
.academy-module strong, .academy-sim-card strong { display: block; margin-bottom: 4px; }
.academy-module span, .academy-sim-card span { color: var(--muted); font-size: 13px; }
.academy-lessons { display: grid; gap: 6px; }
.academy-lesson, .academy-sim-card {
  border: 1px solid var(--line);
  background: #0b0f15;
  color: var(--text);
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  gap: 3px;
  padding: 9px;
  text-align: left;
}
.academy-lesson:hover, .academy-sim-card:hover { border-color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.academy-lesson.active, .academy-sim-card.active { border-color: var(--accent-2); background: rgba(109, 181, 232, 0.1); }
.academy-lesson small, .academy-sim-card small { color: var(--faint); font-family: var(--mono); font-size: 11px; }
.academy-sim-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.simulator-section { border-color: rgba(109, 181, 232, 0.32); }
.simulator-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.simulator-grid { display: grid; grid-template-columns: minmax(240px, 0.8fr) minmax(260px, 1.2fr); gap: 12px; }
.target-list { display: grid; gap: 7px; max-height: 360px; overflow: auto; padding-right: 2px; }
.sim-target {
  border: 1px solid var(--line);
  background: #0e1218;
  color: var(--text);
  border-radius: 7px;
  cursor: pointer;
  display: grid;
  gap: 3px;
  min-height: 70px;
  padding: 10px;
  text-align: left;
}
.sim-target:hover, .sim-target.active { border-color: var(--accent-2); background: rgba(109, 181, 232, 0.08); }
.sim-target.correct { border-color: rgba(125, 211, 168, 0.55); }
.sim-target.near { border-color: rgba(240, 184, 110, 0.55); }
.sim-target.off, .sim-target.unknown_target { border-color: rgba(232, 123, 123, 0.55); }
.sim-target span { color: var(--muted); font-size: 13px; }
.sim-target small { color: var(--faint); font-family: var(--mono); font-size: 11px; }
.simulator-feedback { display: grid; gap: 10px; align-content: start; }
.sim-status, .signal-panel, .sim-coach-output {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 6px;
  padding: 12px;
}
.sim-status strong { text-transform: uppercase; }
.sim-status span, .sim-status small { color: var(--muted); }
.sim-status.passed { border-color: rgba(125, 211, 168, 0.55); }
.sim-status.needs_refinement { border-color: rgba(240, 184, 110, 0.55); }
.sim-status.needs_correction, .sim-status.error { border-color: rgba(232, 123, 123, 0.55); }
.placement-results { display: grid; gap: 7px; }
.placement-result {
  border-left: 2px solid var(--line-bright);
  display: grid;
  gap: 3px;
  padding-left: 9px;
}
.placement-result.correct { border-left-color: var(--accent); }
.placement-result.near { border-left-color: var(--warn); }
.placement-result.off { border-left-color: var(--danger); }
.placement-result span, .placement-result small { color: var(--muted); }
.signal-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.signal-summary strong { font-size: 22px; }
.signal-summary span { color: var(--muted); font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; }
.signal-traces { display: grid; gap: 7px; }
.signal-trace { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(90px, 1.2fr) 42px; gap: 8px; align-items: center; }
.signal-trace span, .signal-trace small { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.trace-line { height: 7px; border-radius: 999px; background: #090b0e; overflow: hidden; }
.trace-line i { display: block; height: 100%; background: var(--accent); }
.signal-trace.near .trace-line i { background: var(--warn); }
.signal-trace.off .trace-line i { background: var(--danger); }
.evidence-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.evidence-column {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 9px;
  padding: 12px;
  align-content: start;
}
.evidence-column > strong { color: var(--text); }
.source-row.stacked { display: grid; gap: 6px; }
.compact-protocols { grid-template-columns: 1fr; }
.tutor-panel textarea { min-height: 94px; }
.academy-progress {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
}
.academy-progress > div:first-child { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.academy-progress span { color: var(--muted); }
.academy-progress strong { font-size: 22px; }
.progress-bar { height: 8px; border-radius: 999px; background: #090b0e; overflow: hidden; }
.progress-bar i { display: block; height: 100%; background: var(--accent); }
.progress-flags { display: flex; flex-wrap: wrap; gap: 6px; }
.progress-review, .learner-review-list { display: flex; flex-wrap: wrap; gap: 6px; }
.progress-review span, .learner-review-list span {
  border: 1px solid rgba(240, 184, 110, 0.35);
  border-radius: 5px;
  color: var(--warn);
  font-size: 12px;
  padding: 5px 7px;
}
.progress-flags span, .learning-sequence span, .waveform-metrics span {
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  padding: 5px 7px;
}
.learning-path-section, .academy-inner-section { border: 1px solid var(--line); border-radius: 8px; margin-top: 12px; padding: 14px; }
.learning-sequence { display: flex; flex-wrap: wrap; gap: 7px; }
.learning-sequence b { color: var(--accent); margin-right: 6px; }
.learner-panel {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
  padding: 12px;
}
.learner-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.learner-actions .primary-btn, .learner-actions .secondary-btn { min-width: 0; padding: 9px 8px; }
.compact-heading { align-items: center; margin-bottom: 0; }
.compact-heading h3 { font-size: 14px; }
.learner-summary { display: grid; gap: 3px; }
.learner-summary span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.learner-report-mini { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.learner-report-mini span {
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  display: grid;
  font-family: var(--mono);
  font-size: 10px;
  padding: 6px;
  text-transform: uppercase;
}
.learner-report-mini b { color: var(--text); font-size: 13px; }
.objective-grid, .competency-grid, .case-scenario-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.objective-card, .competency-card, .case-scenario-card, .checkpoint-card {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 7px;
  padding: 12px;
}
.objective-card span, .competency-card span, .case-scenario-card span, .case-scenario-card small, .case-scenario-card em { color: var(--muted); }
.case-scenario-card em { font-size: 12px; font-style: normal; }
.competency-card.review, .checklist-item.review { border-color: rgba(240, 184, 110, 0.45); }
.competency-card.blocked, .checklist-item.blocked { border-color: rgba(232, 123, 123, 0.45); }
.lesson-checklist { display: grid; gap: 8px; }
.checklist-item {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  margin: 0;
  padding: 10px;
}
.checklist-item input { width: auto; }
.checklist-item small { color: var(--faint); font-family: var(--mono); font-size: 11px; }
.checkpoint-list { display: grid; gap: 10px; margin-bottom: 10px; }
.checkpoint-options { display: grid; gap: 6px; }
.checkpoint-options label { display: flex; align-items: center; gap: 8px; margin: 0; }
.checkpoint-options input { width: auto; }
.checkpoint-grade {
  border: 1px solid var(--line);
  border-radius: 7px;
  display: grid;
  gap: 5px;
  margin-top: 10px;
  padding: 12px;
}
.checkpoint-grade.passed { border-color: rgba(125, 211, 168, 0.55); }
.checkpoint-grade.review { border-color: rgba(240, 184, 110, 0.55); }
.checkpoint-grade div { display: grid; gap: 3px; }
.checkpoint-grade span, .checkpoint-grade small { color: var(--muted); }
.case-scenario-card div { display: grid; gap: 5px; }
.case-action-options label { display: flex; align-items: flex-start; gap: 8px; margin: 0; }
.case-action-options input { margin-top: 3px; width: auto; }
.bibliography-column { grid-column: 1 / -1; }
.bibliography-query { color: var(--faint); font-family: var(--mono); font-size: 11px; overflow-wrap: anywhere; }
.bibliography-list { display: grid; gap: 8px; }
.bibliography-item {
  border: 1px solid var(--line);
  background: #0b0f15;
  border-radius: 7px;
  color: var(--text);
  display: grid;
  gap: 4px;
  padding: 10px;
  text-decoration: none;
}
.bibliography-item:hover { border-color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.bibliography-item strong { overflow-wrap: anywhere; }
.bibliography-item span, .bibliography-item small { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.waveform-section { border-color: rgba(125, 211, 168, 0.3); }
.waveform-notice {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 10px;
  padding: 9px;
}
.waveform-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.waveform-control-grid {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin-bottom: 10px;
  padding: 10px;
}
.waveform-control-grid label { margin: 0; }
.waveform-control-grid span { display: flex; justify-content: space-between; gap: 8px; }
.waveform-control-grid b { color: var(--text); font-family: var(--mono); }
.waveform-control-grid .secondary-btn { align-self: end; }
.waveform-apply-state {
  align-self: end;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  min-height: 39px;
  padding: 10px;
}
.waveform-apply-state.pending { border-color: rgba(240, 184, 110, 0.45); color: var(--warn); }
.waveform-apply-state.applied { border-color: rgba(125, 211, 168, 0.45); color: var(--accent); }
.waveform-scenario {
  border: 1px solid var(--line);
  background: #0b0f15;
  color: var(--muted);
  border-radius: 6px;
  cursor: pointer;
  padding: 9px 10px;
}
.waveform-scenario:hover, .waveform-scenario.active { border-color: var(--accent); color: var(--accent); background: rgba(125, 211, 168, 0.08); }
.waveform-summary {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
  padding: 12px;
}
.waveform-summary span { color: var(--muted); }
.waveform-summary.warning { border-color: rgba(240, 184, 110, 0.55); }
.waveform-summary.technical { border-color: rgba(232, 123, 123, 0.55); }
.waveform-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.waveform-card {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
}
.waveform-card.review { border-color: rgba(240, 184, 110, 0.4); }
.waveform-card.artifact { border-color: rgba(232, 123, 123, 0.4); }
.waveform-card-head { display: flex; justify-content: space-between; gap: 10px; }
.waveform-card-head div { display: grid; gap: 3px; min-width: 0; }
.waveform-card-head strong, .waveform-card-head span { overflow-wrap: anywhere; }
.waveform-card-head span, .waveform-card-head small { color: var(--muted); font-size: 12px; }
.waveform-card-head small { font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.08em; }
.waveform-svg {
  width: 100%;
  min-height: 130px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #090b0e;
}
.waveform-axis { stroke: rgba(141, 154, 170, 0.35); stroke-width: 1; }
.waveform-line { fill: none; stroke: var(--accent); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.waveform-svg text { fill: var(--faint); font-family: var(--mono); font-size: 10px; }
.waveform-metrics { display: flex; flex-wrap: wrap; gap: 6px; }
.waveform-metrics span {
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  padding: 5px 7px;
}
.waveform-metrics b { color: var(--text); font-weight: 700; margin-right: 4px; }
.waveform-points, .waveform-tasks { display: grid; gap: 6px; }
.waveform-points span, .waveform-tasks span {
  border-left: 2px solid var(--line-bright);
  color: var(--muted);
  font-size: 12px;
  padding-left: 8px;
}
.waveform-tasks {
  border: 1px solid var(--line);
  background: #0e1218;
  border-radius: 7px;
  margin-top: 12px;
  padding: 12px;
}
.waveform-coach-output { margin-top: 12px; }
.waveform-quiz { border: 1px solid var(--line); border-radius: 7px; display: grid; gap: 10px; margin-top: 12px; padding: 12px; }
.waveform-quiz-card { background: #0b0f15; }

label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; margin-bottom: 10px; }
input, textarea, select {
  width: 100%;
  border: 1px solid var(--line);
  background: #0b0f15;
  color: var(--text);
  border-radius: 6px;
  padding: 10px;
  font: inherit;
}
textarea { min-height: 96px; resize: vertical; }
.event-textarea { min-height: 74px; }
button { font: inherit; }
.primary-btn, .secondary-btn {
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #07100c;
  border-radius: 6px;
  padding: 10px 12px;
  cursor: pointer;
  font-weight: 700;
}
.secondary-btn { background: transparent; color: var(--accent); }
.primary-btn:disabled, .secondary-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.primary-btn:disabled { background: #202832; border-color: var(--line); color: var(--faint); }
.secondary-btn:disabled { color: var(--faint); border-color: var(--line); }
.danger-btn { border-color: var(--danger); color: var(--danger); }
.small-output { margin-top: 10px; color: var(--muted); font-size: 13px; white-space: pre-wrap; }
.ai-response { color: var(--muted); white-space: pre-wrap; }
.ai-evidence {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 7px;
  margin-top: 12px;
  padding-top: 10px;
  white-space: normal;
}
.ai-evidence strong {
  color: var(--faint);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ai-evidence > span { color: var(--muted); }
.assistant-prompts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 10px;
}
.assistant-prompts button {
  border: 1px solid var(--line);
  background: #0e1218;
  color: var(--muted);
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  min-height: 36px;
  padding: 7px 8px;
}
.assistant-prompts button:hover { border-color: var(--accent); color: var(--accent); background: rgba(125, 211, 168, 0.06); }
.evidence-item {
  border: 1px solid var(--line);
  border-radius: 6px;
  display: grid;
  gap: 3px;
  padding: 8px;
}
.evidence-item span { color: var(--text); overflow-wrap: anywhere; }
.evidence-item small { color: var(--faint); font-family: var(--mono); overflow-wrap: anywhere; }
.hidden { display: none !important; }
.small-title { margin-top: 16px; margin-bottom: 10px; }
.event-form { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.case-current {
  border: 1px solid rgba(109, 181, 232, 0.35);
  background: rgba(109, 181, 232, 0.06);
  border-radius: 7px;
  display: grid;
  gap: 3px;
  margin-top: 12px;
  padding: 10px;
}
.case-current span, .case-current small { color: var(--muted); overflow-wrap: anywhere; }
.case-current small { font-family: var(--mono); font-size: 11px; }
.timeline { display: grid; gap: 8px; margin-top: 12px; font-size: 13px; }
.timeline-event { border-left: 2px solid var(--accent-2); padding-left: 10px; }
.timeline-event div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.timeline-event span { color: var(--faint); font-family: var(--mono); font-size: 11px; }
.timeline-event p { margin-top: 3px; }

.map-view-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 10px;
}
.map-view-btn {
  border: 1px solid var(--line);
  background: #0e1218;
  color: var(--muted);
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  min-height: 34px;
  padding: 7px 8px;
}
.map-view-btn:hover { border-color: var(--line-bright); color: var(--text); }
.map-view-btn.active {
  border-color: var(--accent);
  background: rgba(125, 211, 168, 0.08);
  color: var(--accent);
}
.map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.map-legend span {
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  padding: 4px 6px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.bodymap {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow: visible;
  aspect-ratio: 0.62;
  background-image: url("/assets/body.jpg?v=20260531-highres-openstax");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-color: #090b0e;
  transition: aspect-ratio 120ms ease, background-size 120ms ease, background-position 120ms ease;
}
.bodymap img {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.pins-layer { position: absolute; inset: 0; pointer-events: none; }
.pin {
  position: absolute;
  width: 30px;
  height: 30px;
  transform: translate(-50%, -50%);
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text);
  cursor: crosshair;
  padding: 0;
  pointer-events: auto;
  z-index: 2;
}
.pin-marker {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 13px;
  height: 13px;
  transform: translate(-50%, -50%);
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--accent);
  box-shadow:
    0 0 0 2px rgba(2, 6, 8, 0.95),
    0 0 0 8px rgba(125, 211, 168, 0.24),
    0 0 24px rgba(125, 211, 168, 1);
}
.pin-marker::before, .pin-marker::after {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 0 0 1px rgba(2, 6, 8, 0.8), 0 0 9px rgba(255, 255, 255, 0.75);
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.pin-marker::before { width: 26px; height: 2px; }
.pin-marker::after { width: 2px; height: 26px; }
.pin[data-side="C"] .pin-marker {
  background: var(--warn);
  box-shadow:
    0 0 0 2px rgba(2, 6, 8, 0.95),
    0 0 0 8px rgba(240, 184, 110, 0.25),
    0 0 24px rgba(240, 184, 110, 1);
}
.pin:hover, .pin:focus, .pin:focus-visible { z-index: 20; outline: 0; }
.pin:hover .pin-marker, .pin:focus .pin-marker, .pin:focus-visible .pin-marker {
  transform: translate(-50%, -50%) scale(1.12);
  box-shadow:
    0 0 0 2px rgba(2, 6, 8, 0.95),
    0 0 0 10px rgba(109, 181, 232, 0.3),
    0 0 28px rgba(109, 181, 232, 1);
}
.pin-tooltip {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  width: min(330px, 78vw);
  display: grid;
  gap: 6px;
  padding: 10px 11px;
  background: var(--panel-2);
  border: 1px solid var(--line-bright);
  border-radius: 7px;
  color: var(--text);
  font-size: 12px;
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  text-align: left;
  transition: opacity 120ms ease, transform 120ms ease;
  white-space: normal;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.38);
}
.pin-tooltip::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 10px;
  height: 10px;
  background: var(--panel-2);
  border-bottom: 1px solid var(--line-bright);
  border-right: 1px solid var(--line-bright);
  transform: translateX(-50%) rotate(45deg);
}
.pin:hover .pin-tooltip, .pin:focus .pin-tooltip, .pin:focus-visible .pin-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(-2px);
}
.pin-tooltip strong { font-size: 13px; }
.pin-tooltip small, .pin-tooltip em {
  color: var(--faint);
  font-family: var(--mono);
  font-size: 11px;
  font-style: normal;
  overflow-wrap: anywhere;
}
.pin-tooltip span { color: var(--muted); overflow-wrap: anywhere; }
.pin-tooltip b { color: var(--text); font-weight: 700; }
.pin.tooltip-left .pin-tooltip {
  left: auto;
  right: 50%;
  transform: translateX(12px);
}
.pin.tooltip-left:hover .pin-tooltip, .pin.tooltip-left:focus .pin-tooltip, .pin.tooltip-left:focus-visible .pin-tooltip {
  transform: translateX(10px) translateY(-2px);
}
.pin.tooltip-left .pin-tooltip::after { left: auto; right: 10px; }
.pin.tooltip-right .pin-tooltip {
  left: 50%;
  transform: translateX(-12px);
}
.pin.tooltip-right:hover .pin-tooltip, .pin.tooltip-right:focus .pin-tooltip, .pin.tooltip-right:focus-visible .pin-tooltip {
  transform: translateX(-10px) translateY(-2px);
}
.pin.tooltip-right .pin-tooltip::after { left: 12px; }
.pin.tooltip-below .pin-tooltip {
  top: 28px;
  bottom: auto;
}
.pin.tooltip-below .pin-tooltip::after {
  top: -6px;
  bottom: auto;
  border: 0;
  border-left: 1px solid var(--line-bright);
  border-top: 1px solid var(--line-bright);
}
.bodymap-curation-panel { overflow: hidden; }
.curation-asset-summary {
  border: 1px solid var(--line);
  border-radius: 7px;
  display: grid;
  gap: 3px;
  margin-bottom: 12px;
  padding: 10px;
}
.curation-asset-summary span, .curation-asset-summary small { color: var(--muted); overflow-wrap: anywhere; }
.curation-asset-summary small { color: var(--faint); font-family: var(--mono); font-size: 11px; }
.curation-layout {
  display: grid;
  grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.curation-controls { display: grid; gap: 10px; }
.curation-anchor-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.calibration-panel {
  border: 1px solid var(--line);
  border-radius: 7px;
  display: grid;
  gap: 8px;
  padding: 10px;
}
.calibration-panel-title {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}
.calibration-panel-title span { color: var(--muted); font-family: var(--mono); font-size: 11px; }
.calibration-actions { display: grid; gap: 6px; grid-template-columns: 1fr; }
.calibration-preview-summary { display: grid; gap: 6px; max-height: 190px; overflow: auto; }
.calibration-preview-item {
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--text);
  cursor: pointer;
  display: grid;
  gap: 2px;
  padding: 8px;
  text-align: left;
}
.calibration-preview-item span { color: var(--muted); font-family: var(--mono); font-size: 11px; }
.calibration-preview-item.active { border-color: var(--accent-blue); box-shadow: 0 0 0 2px rgba(109, 181, 232, 0.16); }
.curation-view-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.curation-map {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 7px;
  min-height: 520px;
  overflow: hidden;
  background-color: #090b0e;
  background-image: url("/assets/body.jpg?v=20260531-highres-openstax");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  cursor: crosshair;
  transition: aspect-ratio 120ms ease, background-size 120ms ease, background-position 120ms ease;
}
.curation-pins-layer { position: absolute; inset: 0; pointer-events: none; }
.curation-pin {
  position: absolute;
  width: 34px;
  height: 34px;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  background: rgba(125, 211, 168, 0.88);
  color: #07100c;
  cursor: pointer;
  display: grid;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 800;
  place-items: center;
  pointer-events: auto;
  z-index: 2;
  box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.9), 0 0 18px rgba(125, 211, 168, 0.9);
}
.curation-pin[data-side="C"] { background: var(--warn); box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.9), 0 0 18px rgba(240, 184, 110, 0.9); }
.curation-pin.active {
  background: rgba(109, 181, 232, 0.95);
  transform: translate(-50%, -50%) scale(1.12);
  z-index: 4;
  box-shadow: 0 0 0 3px rgba(2, 6, 8, 0.95), 0 0 0 9px rgba(109, 181, 232, 0.24), 0 0 26px rgba(109, 181, 232, 1);
}
.calibration-preview-pin {
  position: absolute;
  width: 24px;
  height: 24px;
  transform: translate(-50%, -50%);
  border: 2px dashed rgba(240, 184, 110, 0.95);
  border-radius: 50%;
  background: rgba(240, 184, 110, 0.18);
  color: #f8d8a8;
  cursor: pointer;
  display: grid;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 800;
  place-items: center;
  pointer-events: auto;
  z-index: 3;
  box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.86), 0 0 18px rgba(240, 184, 110, 0.8);
}
.calibration-preview-pin.active {
  border-style: solid;
  background: rgba(240, 184, 110, 0.34);
  transform: translate(-50%, -50%) scale(1.12);
  z-index: 5;
}
.placement-marker, .expected-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 5;
}
.placement-marker {
  width: 30px;
  height: 30px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: rgba(109, 181, 232, 0.85);
  color: #07100c;
  display: grid;
  place-items: center;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.9), 0 0 20px rgba(109, 181, 232, 0.95);
}
.placement-marker.correct { background: var(--accent); box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.9), 0 0 22px rgba(125, 211, 168, 1); }
.placement-marker.near { background: var(--warn); box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.9), 0 0 22px rgba(240, 184, 110, 1); }
.placement-marker.off, .placement-marker.unknown_target { background: var(--danger); box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.9), 0 0 22px rgba(232, 123, 123, 1); }
.expected-marker {
  width: 38px;
  height: 38px;
  border: 2px dashed rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.8), inset 0 0 0 1px rgba(0, 0, 0, 0.5), 0 0 18px rgba(255, 255, 255, 0.35);
  z-index: 4;
}
.expected-marker.pending { border-color: rgba(109, 181, 232, 0.92); box-shadow: 0 0 0 2px rgba(2, 6, 8, 0.8), inset 0 0 0 1px rgba(0, 0, 0, 0.55), 0 0 20px rgba(109, 181, 232, 0.8); }
.expected-marker.selected { border-style: solid; border-width: 3px; box-shadow: 0 0 0 3px rgba(2, 6, 8, 0.92), 0 0 0 9px rgba(109, 181, 232, 0.22), 0 0 28px rgba(109, 181, 232, 1); }
.expected-marker.placed { border-color: rgba(255, 255, 255, 0.95); }
.expected-marker.correct { border-color: rgba(125, 211, 168, 0.9); }
.expected-marker.near { border-color: rgba(240, 184, 110, 0.9); }
.expected-marker.off { border-color: rgba(232, 123, 123, 0.9); }

@media (max-width: 1120px) {
  .landing-hero { grid-template-columns: 1fr; }
  .landing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .command-hero, .command-layout { grid-template-columns: 1fr; }
  .manual-shell { grid-template-columns: 1fr; }
  .manual-toc { position: static; }
  .content-grid { grid-template-columns: 1fr; }
  .detail-panel { border-right: 0; border-bottom: 1px solid var(--line); }
  .decision-board { grid-auto-columns: minmax(190px, 78vw); }
  .clinical-strip, .workbench-grid { grid-template-columns: 1fr; }
  .curation-layout { grid-template-columns: 1fr; }
  .curation-map { min-height: 430px; }
  .channel-row { grid-template-columns: 1fr; }
  .coord-status { text-align: left; }
  .admin-workspace, .user-form-grid, .knowledge-form-grid { grid-template-columns: 1fr; }
  .admin-list-item { grid-template-columns: 1fr; }
  .admin-tags { justify-content: flex-start; }
  .academy-overview, .simulator-grid, .academy-shell, .compact-strip { grid-template-columns: 1fr; }
  .academy-sidebar, .academy-lab-panel { border: 0; border-bottom: 1px solid var(--line); }
  .vertical-list, .sidebar-grid { max-height: none; }
  body.academy-page .academy-shell {
    grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) minmax(230px, 42%);
    grid-template-areas:
      "academy-sidebar academy-main"
      "academy-lab academy-main";
  }
  body.academy-page .academy-sidebar {
    grid-area: academy-sidebar;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
  body.academy-page .academy-main { grid-area: academy-main; }
  body.academy-page .academy-lab-panel {
    grid-area: academy-lab;
    border-right: 1px solid var(--line);
    border-bottom: 0;
  }
  body.academy-page .vertical-list { max-height: 100%; }
  body.academy-page .sidebar-grid { max-height: 100%; }
  body.academy-page .academy-lab-panel .body-card {
    display: flex;
    flex-direction: column;
  }
  body.academy-page .academy-lab-panel .body-card > .panel-title { order: 1; }
  body.academy-page .academy-lab-panel .bodymap {
    order: 2;
    margin-bottom: 10px;
  }
  body.academy-page .academy-lab-panel .map-view-controls {
    display: flex;
    gap: 6px;
    order: 3;
    overflow-x: auto;
    padding-bottom: 2px;
  }
  body.academy-page .academy-lab-panel .map-view-btn {
    flex: 0 0 92px;
    font-size: 11px;
    min-height: 32px;
    padding: 6px 7px;
    white-space: nowrap;
  }
  body.academy-page .academy-lab-panel .map-legend span {
    font-size: 9px;
    padding: 3px 5px;
  }
  body.academy-page .academy-lab-panel .map-legend { order: 4; }
  .academy-workspace-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  :root { --topbar-height: 132px; }
  .topbar {
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    padding: 12px 16px;
  }
  .top-nav { justify-content: flex-start; }
  .landing-grid, .landing-status-grid { grid-template-columns: 1fr; }
  .command-shell { padding: 12px; }
  .command-form, .command-vitals, .preview-metrics, .assistant-prompts { grid-template-columns: 1fr; }
  .landing-hero { min-height: 0; }
  .landing-hero h2 { font-size: 26px; }
}

@media (max-width: 620px) {
  :root { --topbar-height: 156px; }
  body.academy-page .academy-shell {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(118px, 22%) minmax(0, 1fr) minmax(180px, 30%);
    grid-template-areas:
      "academy-sidebar"
      "academy-main"
      "academy-lab";
  }
  body.academy-page .academy-sidebar,
  body.academy-page .academy-lab-panel { border-right: 0; }
  .academy-sidebar, .academy-main, .academy-lab-panel { padding: 12px; }
  .academy-workspace-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
