.tsc-org {
	--tsc-ink: #1f2a2e;
	--tsc-muted: #5b6468;
	--tsc-line: #8a8f91;
	--tsc-panel: #ffffff;
	--tsc-border: #d9dcdd;
	color: var(--tsc-ink);
	max-width: 820px;
	margin-inline: auto;
}
.tsc-org-svg { display: block; width: 100%; height: auto; font-family: inherit; }
.tsc-org-svg text { text-anchor: middle; dominant-baseline: central; font-size: 14px; pointer-events: none; }
.tsc-org-svg .n-title { font-weight: 600; }
.tsc-org-svg .n-sub { font-size: 12px; }

.tsc-org-node { cursor: pointer; outline: none; }
.tsc-org-node rect, .tsc-org-node polygon { stroke-width: 0.8; transition: stroke-width .15s; }
.tsc-org-node:hover rect, .tsc-org-node:hover polygon { stroke-width: 2; }
.tsc-org-node:focus-visible rect, .tsc-org-node:focus-visible polygon,
.tsc-org-node.is-active rect, .tsc-org-node.is-active polygon { stroke-width: 2.5; }

.tsc-org-legend {
	list-style: none; margin: 12px 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 16px;
	font-size: 13px; color: var(--tsc-muted);
}
.tsc-org-legend li { display: flex; align-items: center; gap: 8px; margin: 0; }
.tsc-org-legend span { flex: 0 0 auto; display: inline-block; }
.sw-box { width: 13px; height: 13px; border-radius: 3px; border: 1px solid; }
.sw-diamond { width: 11px; height: 11px; margin: 0 2px; border: 1px solid; transform: rotate(45deg); }
.sw-pill { width: 20px; height: 12px; border-radius: 6px; border: 1px solid; }
.sw-line { width: 20px; height: 0; border-top: 2px solid; }

.tsc-org-hint { margin: 12px 0 0; font-size: 13px; color: var(--tsc-muted); }

.tsc-org-panel { margin-top: 12px; }
.tsc-org-detail {
	background: var(--tsc-panel); border: 1px solid var(--tsc-border); border-radius: 12px;
	padding: 18px 22px; line-height: 1.6;
}
.tsc-org-detail[hidden] { display: none; }
.tsc-org-detail__title { margin: 0 0 8px; font-size: 1.25em; }
.tsc-org .tsc-org-detail h4 { margin: 14px 0 4px; font-size: 1em; font-weight: 700; }
.tsc-org-detail ul { margin: 0; padding-left: 1.2em; }
.tsc-org-detail p { margin: 0; }
.tsc-org-detail__meta { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 0; font-size: .95em; color: var(--tsc-muted); }
.tsc-org-detail__meta dt { font-weight: 700; margin: 0; }
.tsc-org-detail__meta dd { margin: 0; overflow-wrap: anywhere; }

@media (max-width: 480px) {
	.tsc-org-detail { padding: 14px 16px; }
	.tsc-org-detail__meta { grid-template-columns: 1fr; }
	.tsc-org-detail__meta dd { margin-bottom: 6px; }
}
@media (prefers-reduced-motion: reduce) {
	.tsc-org-node rect, .tsc-org-node polygon { transition: none; }
}
