/* File maps: visual JSON trees + stacked key lists (gen_doc_maps.py) */

pre.file-map {
  line-height: 1.55;
  font-size: 0.86em;
  padding: 0.9rem 1.1rem;
  overflow-x: auto;
}

/* Only overview section anchors are links — leaves stay plain. */
pre.file-map a.fm-key {
  color: var(--links);
  text-decoration: none;
  border-bottom: 1px dotted currentColor;
}

pre.file-map a.fm-key:hover {
  border-bottom-style: solid;
}

pre.file-map span.fm-key {
  color: var(--fg);
  font-weight: 600;
}

pre.file-map .fm-val {
  color: var(--fg);
  opacity: 0.85;
}

pre.file-map .fm-note {
  color: var(--icons);
  font-style: italic;
}

/* Keys list — stacked blocks (do not use bare .fm-key: that class is also on tree tokens) */
.fm-keys {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0.4rem 0 1.1rem;
}

.fm-keys > .fm-key {
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--table-border-color, rgba(128, 128, 128, 0.35));
  border-radius: 6px;
  background: color-mix(in srgb, var(--fg) 4%, var(--bg));
}

.fm-key-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  font-size: 0.95em;
  line-height: 1.35;
}

.fm-key-head > a {
  color: var(--links);
  text-decoration: none;
}

.fm-key-head > a:hover {
  text-decoration: underline;
}

.fm-type {
  color: var(--fg);
  opacity: 0.72;
  font-size: 0.88em;
}

.fm-type code {
  font-size: 0.95em;
}

.fm-key-omit,
.fm-key-vals,
.fm-key-note {
  margin-top: 0.28rem;
  font-size: 0.88em;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.fm-label {
  display: inline-block;
  min-width: 5.5rem;
  margin-right: 0.35rem;
  color: var(--fg);
  opacity: 0.55;
  font-size: 0.92em;
}

.fm-key-note {
  color: var(--fg);
  opacity: 0.92;
}
