.org-map { --org-surface: #15143c; --org-card: #21204d; --org-ink: #fff; --org-muted: #b9c3df; --org-border: #525580; --org-line: #8cbad7; --org-accent: #91d5ee; overflow: hidden; border: 1px solid var(--org-border); border-radius: 1.4rem; background: var(--org-surface); color: var(--org-ink); }
.org-map-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--org-border); direction: rtl; }
.org-map-hint { color: var(--org-muted); font-size: .85rem; }
.org-map-controls { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.org-map-control { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: .35rem .8rem; border: 1px solid var(--org-border); border-radius: .6rem; color: var(--org-ink); background: transparent; font: inherit; font-size: .8rem; line-height: 1.4; cursor: pointer; }
.org-map-control:hover { background: var(--org-card); }
.org-map-control:disabled { opacity: .35; cursor: default; }
.org-map-control:focus-visible, .org-map-node:focus-visible, .org-map-viewport:focus-visible { outline: 3px solid var(--org-accent); outline-offset: -3px; }
.org-map-icon { width: 38px; padding: 0; font-family: Arial, sans-serif; font-size: 1.3rem; }
.org-map-ratio { min-width: 3rem; text-align: center; font-size: .8rem; direction: ltr; font-variant-numeric: tabular-nums; }
.org-map-viewport { position: relative; overflow: auto; max-height: min(78vh, 950px); min-height: 160px; direction: ltr; overscroll-behavior: contain; scrollbar-color: var(--org-border) var(--org-surface); }
.org-map-frame { position: relative; margin-inline: auto; }
.org-map-stage { position: absolute; top: 0; left: 0; transform-origin: top left; }
.org-map-lines { position: absolute; inset: 0; overflow: visible; pointer-events: none; }
.org-map-lines path { fill: none; stroke: var(--org-line); stroke-width: 1.7px; stroke-linejoin: round; stroke-linecap: round; }
.org-map-node { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 220px; padding: 17px 14px 20px; margin: 0; border: 1px solid var(--org-border); border-top: 3px solid #6f84c4; border-radius: 13px; background: var(--org-card); color: var(--org-ink); text-align: center; direction: rtl; box-sizing: border-box; font: inherit; box-shadow: 0 5px 18px #07072212; }
.org-map-node-leadership { border-top-color: #91d5ee; }
.org-map-node-committee { border-top-color: #aaa3e2; }
.org-map-node-unit { border-top-color: #49c0bd; }
.org-map-node-kind { display: block; color: var(--org-muted); font-size: 12px; font-weight: 400; line-height: 20px; }
.org-map-node-label { display: block; width: 100%; color: inherit; font-size: 18px; font-weight: 700; line-height: 1.65; overflow-wrap: anywhere; white-space: pre-line; }
.org-map-node-description { display: block; width: 100%; color: var(--org-muted); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; white-space: pre-line; }
button.org-map-node { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
button.org-map-node:hover { border-color: var(--org-accent); }
.org-map-node.is-selected { outline: 3px solid var(--org-accent); outline-offset: 3px; box-shadow: 0 8px 25px #25234a20; }
.org-map-node.is-hidden { opacity: .5; border-style: dashed; }
.org-map-empty { padding: 3rem 1rem; margin: 0; color: var(--org-muted); text-align: center; direction: rtl; }
.org-map-footnote { padding: .8rem 1rem; margin: 0; color: var(--org-muted); border-top: 1px solid var(--org-border); text-align: center; font-size: .75rem; }
.org-map [hidden] { display: none !important; }
.admin-org-preview .org-map { --org-surface: #f2f5fb; --org-card: #fff; --org-ink: #202044; --org-muted: #636d85; --org-border: #d7deec; --org-line: #8397b5; --org-accent: #4b58a2; border-radius: 1rem; }
.admin-org-preview .org-map-viewport { max-height: 520px; }
@media (max-width: 600px) { .org-map-toolbar { padding: .85rem; gap: .6rem; } .org-map-controls { width: 100%; } .org-map-control { min-height: 42px; } .org-map-hint { font-size: .78rem; } }
@media (prefers-reduced-motion: reduce) { .org-map-node { transition: none; } }
