@import url("../../philosophy/lessons/style.css");

/* ───────────────────────────────────────────────────────────────
   侦查与反侦察 / reconnaissance track extras
   Builds on the philosophy sheet (which itself @imports the shared RL
   base): kicker, subtitle, callout(ok/warn/takeaway/source-note),
   mini-flow, lesson-flow, toc-grid, toc-card, widget, kpi-grid,
   prompt-list, step-pill, topnav, lesson-nav, math are all inherited.
   Below: only the components specific to this track.
   ─────────────────────────────────────────────────────────────── */

/* signature spectrum — a target's signature across media (光/热/电磁/声/化学/数字) */
.sig-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.sig-grid div {
  border: 1px solid var(--border);
  border-left-width: 3px;
  border-left-color: var(--text-dim);
  border-radius: 8px;
  background: var(--bg-elev);
  padding: 10px 12px;
}
.sig-grid div.on   { border-left-color: var(--ok); }
.sig-grid div.off  { border-left-color: var(--bad); opacity: .55; }
.sig-grid strong {
  display: block;
  margin-bottom: 4px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text);
}
.sig-grid span {
  display: block;
  color: var(--text-mute);
  font-size: 13px;
  line-height: 1.5;
}

/* the mirror: 侦查 (make them take shape) ↔ 反侦察 (stay formless) */
.mirror-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 18px 0;
}
.mirror-grid > div {
  border: 1px solid var(--border);
  border-top-width: 3px;
  border-radius: 8px;
  background: var(--bg-elev);
  padding: 12px 14px;
}
.mirror-grid .seek { border-top-color: var(--ok); }
.mirror-grid .hide { border-top-color: var(--warn); }
.mirror-grid strong {
  display: block;
  margin-bottom: 4px;
  font-family: var(--mono);
  font-size: 12px;
}
.mirror-grid .seek strong { color: var(--ok); }
.mirror-grid .hide strong { color: var(--warn); }
.mirror-grid span {
  display: block;
  color: var(--text-mute);
  font-size: 13px;
  line-height: 1.5;
}

/* detection / ROC / map canvases get a taller frame than the base widget */
canvas.det-canvas {
  width: 100%;
  height: 260px;
  display: block;
  margin-top: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
}

/* arms-race ratchet — alternating seek/hide rungs climbing upward */
.ladder {
  display: flex;
  flex-direction: column-reverse;
  gap: 6px;
  margin: 18px 0;
}
.ladder .rung {
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg-elev);
  padding: 8px 12px;
  font-size: 13px;
  line-height: 1.5;
}
.ladder .rung .who {
  font-family: var(--mono);
  font-size: 11px;
  margin-right: 8px;
}
.ladder .rung.seek { border-left: 3px solid var(--ok); }
.ladder .rung.seek .who { color: var(--ok); }
.ladder .rung.hide { border-left: 3px solid var(--warn); }
.ladder .rung.hide .who { color: var(--warn); }

@media (max-width: 820px) {
  .sig-grid    { grid-template-columns: 1fr 1fr; }
  .mirror-grid { grid-template-columns: 1fr; }
}
