/* Usage: loaded by the base layout; styles activate only on /projects/map/ markup and keep the static fallback readable without JavaScript. */
.org-map-shell { margin: 2rem 0 3.5rem; }
.org-map-frame { position: relative; min-height: 34rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: radial-gradient(circle at 50% 50%, rgba(155, 135, 245, .11), rgba(16, 24, 42, .9) 42%, rgba(9, 13, 24, .98) 78%); }
.org-map-frame svg { display: block; width: 100%; min-height: 34rem; }
.org-map-edge { stroke: rgba(174, 187, 210, .36); vector-effect: non-scaling-stroke; }
.org-map-edge[data-kind~="requires"] { stroke: var(--cyan); }
.org-map-edge[data-kind~="claims_proves"] { stroke: #9ce2b9; }
.org-map-node circle { fill: var(--night-raised); stroke: var(--violet); stroke-width: 2; vector-effect: non-scaling-stroke; }
.org-map-node[data-status="missing"] circle { stroke: var(--amber); stroke-dasharray: 5 4; }
.org-map-node[data-status="invalid"] circle { stroke: var(--scarlet); }
.org-map-node[data-archived="true"] { opacity: .55; }
.org-map-node text { fill: var(--starlight); font: 700 15px/1 ui-monospace, SFMono-Regular, Consolas, monospace; pointer-events: none; paint-order: stroke; stroke: var(--night); stroke-width: 4px; stroke-linejoin: round; }
.org-map-node:hover circle, .org-map-node:focus circle { fill: var(--night-soft); stroke: var(--cyan); stroke-width: 3; }
.org-map-detail { position: absolute; left: 1rem; bottom: 1rem; z-index: 2; max-width: min(31rem, calc(100% - 2rem)); padding: .8rem 1rem; border: 1px solid var(--line); border-radius: .75rem; background: rgba(9, 13, 24, .94); box-shadow: var(--shadow); }
.org-map-detail strong { display: block; color: var(--starlight); }
.org-map-detail span { color: var(--silver); font-size: .9rem; }
.org-map-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .75rem; margin: 1.25rem 0 2rem; }
.org-map-stat { padding: .85rem 1rem; border: 1px solid var(--line); border-radius: .75rem; background: rgba(16,24,42,.72); }
.org-map-stat strong { display: block; color: var(--starlight); font: 800 1.55rem/1.2 ui-monospace, monospace; }
.org-map-stat span { color: var(--silver); font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; }
.org-map-repo-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.org-map-repo-card dl { display: grid; grid-template-columns: auto 1fr; gap: .2rem .7rem; margin: .8rem 0 0; font-size: .86rem; }
.org-map-repo-card dt { color: var(--silver); }
.org-map-repo-card dd { margin: 0; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.org-map-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.org-map-table { width: 100%; border-collapse: collapse; min-width: 42rem; }
.org-map-table th, .org-map-table td { padding: .7rem .8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.org-map-table th { color: var(--cyan); font: 800 .74rem/1.3 ui-monospace, monospace; text-transform: uppercase; letter-spacing: .06em; }
.org-map-table td { color: var(--silver); }
.org-map-table tr:last-child td { border-bottom: 0; }
.org-map-receipts { display: grid; gap: .6rem; padding: 0; list-style: none; }
.org-map-receipts li { padding: .75rem .9rem; border: 1px solid var(--line); border-radius: .7rem; background: rgba(16,24,42,.62); }
.org-map-receipts code { overflow-wrap: anywhere; }
.org-map-unresolved { display: grid; gap: .45rem; padding-left: 1.2rem; }
.org-map-unresolved code { overflow-wrap: anywhere; }
@media (max-width: 680px) {
  .org-map-frame, .org-map-frame svg { min-height: 28rem; }
  .org-map-detail { position: static; max-width: none; margin: 0; border-width: 1px 0 0; border-radius: 0; box-shadow: none; }
}
