.log-map {
  --lm-paper:#090b0b;
  --lm-panel:#101312;
  --lm-line:#39423e;
  --lm-grid:#252c29;
  --lm-text:#c4cec7;
  --lm-muted:#8a9990;
  --lm-accent:#a7c4b1;
  box-sizing:border-box;
  width:min(1510px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  margin:auto;
  padding:20px;
  color:var(--lm-text);
  background:var(--lm-paper);
  border:1px solid #6e7f73;
  font-family:"Neural77 Mono",monospace;
  font-size:11px;
  line-height:1.65;
  text-transform:uppercase;
  overflow:auto;
  overflow-x:hidden;
  scrollbar-color:#54645a var(--lm-paper);
}
.log-map::backdrop { background:rgba(0,0,0,.82); }
.log-map *, .log-map *::before { box-sizing:border-box; min-width:0; }
.log-map h1, .log-map h2, .log-map h3, .log-map h4 { font-weight:400; }
.log-map h1 { font-size:18px; letter-spacing:.13em; margin:4px 0 0; }
.log-map h2 { font-size:11px; letter-spacing:.06em; margin:12px 0; }
.log-map h3, .log-map h4 { font-size:10px; letter-spacing:.05em; margin:16px 0 8px; }
.log-map p { margin:10px 0; }
.log-map p, .log-map pre, .log-map summary { overflow-wrap:anywhere; white-space:pre-wrap; }
.log-map pre { font:inherit; margin:10px 0 0; color:var(--lm-muted); }
.log-map button { font:inherit; color:var(--lm-text); background:var(--lm-panel); border:1px solid #56695d; padding:8px 12px; min-height:40px; cursor:pointer; white-space:normal; text-transform:uppercase; }
.log-map button:hover { border-color:var(--lm-accent); background:#1b2720; }
.log-map mark { background:#a7c4b1; color:#0a130e; }
.log-map :focus-visible { outline:2px solid var(--lm-accent); outline-offset:3px; }
.lm-header { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:2px solid #81998a; border-bottom:1px solid #526158; padding:12px 0; }
.lm-eyebrow { font-size:9px; color:var(--lm-muted); letter-spacing:.12em; }
.lm-actions { display:flex; flex-wrap:wrap; gap:8px; }
.lm-reading { padding:10px 0 16px; border-bottom:1px solid var(--lm-line); color:var(--lm-muted); }
.lm-tabs { display:none; gap:6px; margin:14px 0; }
.lm-tabs button[aria-selected=true] { color:var(--lm-paper); background:var(--lm-accent); }
.lm-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:20px; align-items:start; }
.lm-column { padding:0 16px; border-left:1px solid var(--lm-line); }
.lm-column:last-child { border-right:1px solid var(--lm-line); }
.log-map .lm-column-title { border-top:1px solid #7c9284; border-bottom:1px solid #526158; padding:9px 0; margin:0; font-size:12px; letter-spacing:.12em; }
.log-map .lm-column > h2:not(.lm-column-title) { color:var(--lm-muted); min-height:36px; }
.lm-column > h2 + p { min-height:52px; }
.lm-figure { margin:14px 0 18px; border:1px solid var(--lm-line); background:#0c100e; }
.lm-figure svg { display:block; width:100%; height:auto; }
.lm-figure figcaption { border-top:1px solid var(--lm-line); color:var(--lm-muted); padding:10px; font-size:9px; line-height:1.65; }
.lm-chart-grid path, .lm-chart-grid circle { fill:none; stroke:var(--lm-grid); stroke-width:.6; }
.lm-chart-grid, .lm-chart-edge, .lm-chart-axis, .lm-figure text, .lm-chart-center { pointer-events:none; }
.lm-chart-grid circle { stroke:#4b5c51; stroke-dasharray:2 4; }
.lm-chart-edge, .lm-chart-axis { fill:none; stroke:#687e70; stroke-width:1; }
.lm-chart-axis { stroke:#3c4b41; }
.lm-edge-changed { stroke:#c3d6c9; stroke-width:1.5; }
.lm-edge-unverified { stroke-dasharray:3 5; }
.lm-figure text { fill:var(--lm-text); font-size:8px; }
.lm-figure .lm-chart-muted { fill:var(--lm-muted); }
.lm-chart-center { fill:var(--lm-paper); stroke:#759881; }
.lm-chart-node { cursor:pointer; }
.lm-chart-node > circle { stroke:var(--lm-accent); fill:var(--lm-paper); stroke-width:1.2; }
.lm-chart-node.lm-node-filled > circle { fill:var(--lm-accent); }
.lm-chart-node.lm-node-missing > circle { stroke-dasharray:2 2; stroke:var(--lm-muted); }
.lm-chart-node .lm-hit, .lm-chart-node.lm-node-filled .lm-hit { fill:transparent; stroke:transparent; }
.lm-chart-node .lm-hit { pointer-events:all; }
.lm-chart-node:hover .lm-hit, .lm-chart-node:focus .lm-hit { stroke:var(--lm-accent); }
.lm-chart-node.lm-node-relevance > circle { fill:none; stroke:#d9e2dc; }
.lm-chart-node.lm-node-relevance .lm-hit { stroke:transparent; }
.lm-chart-node.lm-node-relevance:hover .lm-hit, .lm-chart-node.lm-node-relevance:focus .lm-hit { stroke:var(--lm-accent); }
.lm-figure .lm-node-count { fill:var(--lm-paper); pointer-events:none; font-size:9px; }
.lm-figure .lm-node-missing .lm-node-count { fill:var(--lm-muted); }
.log-map .lm-chart-key { padding:0 10px; color:var(--lm-muted); font-size:9px; }
.lm-chart-key span { display:block; }
.log-map details { border:1px solid var(--lm-line); background:var(--lm-panel); padding:8px; margin:6px 0; }
.log-map summary { cursor:pointer; color:var(--lm-text); }
.log-map details[open] { border-color:#7c9284; }
.lm-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.lm-card, .lm-telemetry { border:1px solid var(--lm-line); padding:10px; margin:12px 0; background:var(--lm-panel); }
.lm-card h3, .lm-telemetry h3 { margin:0 0 10px; border-bottom:1px solid #526158; padding-bottom:8px; }
.lm-answers { grid-template-columns:1fr; gap:0; }
.lm-telemetry > div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:4px 0; border-bottom:1px solid var(--lm-grid); }
.lm-telemetry b { font-weight:400; text-align:right; overflow-wrap:anywhere; }
.lm-telemetry span { color:var(--lm-muted); }
.lm-row summary { display:grid; grid-template-columns:40px 1fr 1fr 1fr 65px; align-items:center; gap:5px; }
.lm-row.lm-kept summary > span:last-child { color:var(--lm-muted); }
.lm-row.lm-changed summary > span:last-child { color:var(--lm-accent); }
.lm-bit { font-size:14px; letter-spacing:-2px; white-space:nowrap; }
.lm-divider { border-top:1px solid var(--lm-line); padding-top:10px; color:var(--lm-muted); }
.log-map meter { width:100%; height:9px; display:block; accent-color:var(--lm-accent); }
.log-map meter::-webkit-meter-bar { background:#242f28; border:0; border-radius:0; }
.log-map meter::-webkit-meter-optimum-value { background:var(--lm-accent); }
.log-map meter::-moz-meter-bar { background:var(--lm-accent); }
.lm-meter { padding:8px 0; }
.lm-meter details { font-size:9px; }
.lm-question { border-left:2px solid var(--lm-accent); padding:10px; background:var(--lm-panel); }
.lm-meaning-group, .lm-aspect { border-top:1px solid var(--lm-line); margin-top:14px; }
.lm-footnote { border-top:1px solid #526158; padding-top:12px; color:var(--lm-muted); font-size:9px; }
.lm-empty { padding:40px 0; }
.log-map-open:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
/* LOG MAP keeps its diagnostic palette in both Classic and V21. */
@media (max-width:1100px) and (min-width:901px) { .lm-column { padding:0 10px; } .lm-row summary { grid-template-columns:36px 1fr 1fr 1fr; } .lm-row summary > span:last-child { grid-column:2 / -1; } }
@media (max-width:900px) {
  .log-map { width:calc(100% - 16px); max-height:calc(100dvh - 16px); padding:12px; font-size:12px; }
  .lm-header { flex-wrap:wrap; gap:10px; }
  .log-map h1 { font-size:16px; }
  .lm-tabs { display:flex; }
  .lm-tabs button { flex:1; padding:8px 5px; font-size:10px; min-height:44px; }
  .lm-columns { display:block; margin-top:16px; }
  .lm-column { border-left:0; padding:0; }
  .lm-column:last-child { border-right:0; }
  .lm-column[hidden] { display:none; }
  .lm-figure { max-width:500px; margin-left:auto; margin-right:auto; }
}
@media (max-width:400px) {
  .lm-grid { grid-template-columns:1fr; }
  .lm-row summary { grid-template-columns:38px 1fr 1fr 1fr; gap:4px; }
  .lm-row summary > span:last-child { grid-column:2 / -1; }
  .lm-bit { font-size:13px; }
  .lm-actions { width:100%; }
}
