/* BDAW WP 3D — the little the blocks need to read in ANY theme.
   The BDAW WP Console theme restyles all of this; these rules only make sure a
   radar has rings and a node list has panels when the theme has no opinion.
   Colours come from CSS variables a theme may set, with plain fallbacks. */
.bdaw-radar { color: var(--bdaw-accent, #E6B319); }
.bdaw-radar .radar { width: 100%; height: auto; display: block; }
.bdaw-radar .radar__rings circle, .bdaw-radar .radar__rings line { fill: none; stroke: var(--bdaw-line, #2A2A24); }
.bdaw-radar .radar__spokes line { stroke: currentColor; stroke-width: 1; opacity: .5; }
.bdaw-radar .radar__links line { stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 5 9; }
.bdaw-radar .blip .r { fill: var(--bdaw-dim, #6E685E); }
.bdaw-radar .blip--core .r, .bdaw-radar .blip--locked .r { fill: currentColor; }
.bdaw-radar .blip--locked .ring { fill: none; stroke: currentColor; }
.bdaw-radar .blip--locked .ring--in { stroke-width: 1.5; }
.bdaw-radar text { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; letter-spacing: 1.6px; fill: var(--bdaw-body, #B4AC9E); }
.bdaw-radar .blip--core text, .bdaw-radar .blip--locked text { fill: var(--bdaw-paper, #FBF6EC); }
.bdaw-radar .blip text.state { fill: currentColor; font-size: 9px; }
.bdaw-radar .blip.hot .r { fill: currentColor; }
.bdaw-empty { opacity: .6; font-style: italic; }

/* Relation lines: width by weight (1-3). */
.bdaw-radar .radar__links line.w1 { stroke-width: 1; }
.bdaw-radar .radar__links line.w3 { stroke-width: 3; }

/* Selection (assets/select.js): the selected node and its relations stay, the rest dims. */
[data-bdaw-scope] [data-bdaw-key][tabindex] { cursor: pointer; }
[data-bdaw-scope] [data-bdaw-key]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
[data-bdaw-scope] [data-bdaw-key] { transition: opacity .2s; }
.has-sel [data-bdaw-key]:not(.is-sel):not(.is-rel) { opacity: .28; }
.has-sel .bdaw-map__panel [data-bdaw-key] { opacity: 1; }
.has-sel .radar__links line:not(.is-rel), .has-sel .bdaw-map__links path:not(.is-rel), .has-sel .radar__spokes, .has-sel .bdaw-map__spokes { opacity: .15; }
.bdaw-radar .blip.is-sel .r { fill: currentColor; }
.mcard.is-sel { border-color: currentColor; }

/* Map. A theme may restyle all of it; these rules make it read in any theme. */
.bdaw-map { color: var(--bdaw-accent, #E6B319); }
.bdaw-map__stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem); gap: 1rem; align-items: start; }
.bdaw-map__stage:has(.bdaw-map__panel[hidden]) { grid-template-columns: minmax(0, 1fr); }
.bdaw-map__svg { width: 100%; height: auto; display: block; overflow: visible; }
.bdaw-map .usamap__base path, .bdaw-map .usamap__land { fill: color-mix(in srgb, currentColor 6%, transparent); stroke: var(--bdaw-line, #2A2A24); stroke-width: 1; vector-effect: non-scaling-stroke; }
.bdaw-map .region { fill: currentColor; stroke: currentColor; stroke-width: 1; vector-effect: non-scaling-stroke; }
.bdaw-map .region--primary { fill-opacity: .2; stroke-opacity: .5; }
.bdaw-map .region--secondary { fill-opacity: .09; stroke-opacity: .25; stroke-dasharray: 3 3; }
.bdaw-map .link, .bdaw-map .out, .bdaw-map__spokes line { fill: none; stroke: currentColor; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.bdaw-map .link { stroke-opacity: .6; }
.bdaw-map .out { stroke-opacity: .55; stroke-dasharray: 4 4; }
.bdaw-map .w1 { stroke-width: 1; } .bdaw-map .w2 { stroke-width: 1.75; } .bdaw-map .w3 { stroke-width: 2.5; }
.bdaw-map__spokes line { stroke-width: 1; stroke-opacity: .35; }
.bdaw-map .mnode .dot { fill: currentColor; }
.bdaw-map .mnode--secondary .dot { fill: var(--bdaw-dim, #6E685E); }
.bdaw-map .mnode .halo { fill: none; stroke: currentColor; stroke-opacity: .45; vector-effect: non-scaling-stroke; }
.bdaw-map .mnode text { fill: var(--bdaw-paper, #FBF6EC); font-family: inherit; }
.bdaw-map .mnode--secondary text, .bdaw-map .mnode--tertiary text { fill: var(--bdaw-body, #B4AC9E); }
.bdaw-map .mnode.is-sel text, .bdaw-map .mnode.is-rel text { fill: var(--bdaw-paper, #FBF6EC); }
.bdaw-map .mnode.is-sel .halo { stroke-opacity: 1; stroke-width: 2; }
.bdaw-map .region.is-sel, .bdaw-map .region.is-rel { fill-opacity: .3; stroke-opacity: .8; }
.bdaw-map .link.is-rel, .bdaw-map .out.is-rel { stroke-opacity: 1; }
.bdaw-map__panel { color: var(--bdaw-body, #B4AC9E); padding: 1rem; border: 1px solid var(--bdaw-line, #2A2A24); }
.bdaw-map__panel h3 { margin: 0 0 .25rem; font-size: var(--s1, 1.25rem); color: var(--bdaw-paper, #FBF6EC); }
.bdaw-map__panel h4 { margin: .9rem 0 .35rem; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.bdaw-map__panel p { margin: .25rem 0; }
.bdaw-map__pos { color: var(--bdaw-accent, #E6B319); }
.bdaw-chips { list-style: none; margin: .3rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.bdaw-chip { border: 1px solid var(--bdaw-line, #2A2A24); border-radius: 999px; padding: .1rem .6rem; font-size: .8rem; color: var(--bdaw-body, #B4AC9E); }
.bdaw-chip.is-sel, .bdaw-chip.is-rel { border-color: currentColor; color: var(--bdaw-paper, #FBF6EC); }
.bdaw-facets { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem .8rem; margin-top: .8rem; }
.bdaw-facets__name { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.bdaw-map__list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .25rem 1rem; color: var(--bdaw-body, #B4AC9E); }
.bdaw-map__name { color: var(--bdaw-paper, #FBF6EC); }
.bdaw-map__item--secondary .bdaw-map__name, .bdaw-map__item--tertiary .bdaw-map__name { color: var(--bdaw-body, #B4AC9E); }
.bdaw-map__pos { font-size: .85em; }
.mcard__position { margin: .2rem 0 0; }
.bdaw-node-cards .bdaw-chips { margin-top: .5rem; }
@media (max-width: 760px) {
	.bdaw-map__stage { grid-template-columns: minmax(0, 1fr); }
	.bdaw-map__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.bdaw-map .mnode--primary text { font-size: calc(30px * var(--bdaw-k, 1)); }
	.bdaw-map .mnode--tertiary text { font-size: calc(26px * var(--bdaw-k, 1)); }
	.bdaw-map .mnode--secondary text { display: none; }
}
.bdaw-map .mnode .hit { fill: transparent; stroke: none; }
