/* Neutral defaults; contextual palettes use widely familiar navy, blue, stone and green. */
table[class*="rs_hierarchy"]{width:100%;table-layout:fixed;border-collapse:collapse;border:0}
table[class*="rs_hierarchy"]>tbody>tr>td{padding:0;border:0;white-space:normal}
.hy-diagram{--hy-accent:#334155;--hy-soft:#f1f5f9;--hy-line:#cbd5e1;--hy-text:#172b43;--hy-muted:#526175;container-type:inline-size;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:clamp(16px,3vw,30px);color:var(--hy-text);font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;text-align:left}
.hy-diagram *{box-sizing:border-box}
.hy-diagram.hy-hierarchy{--hy-accent:#1e40af;--hy-soft:#eff6ff}
.hy-diagram.hy-family{--hy-accent:#57534e;--hy-soft:#f5f5f4;--hy-line:#d6d3d1}
.hy-diagram.hy-taxonomy{--hy-accent:#166534;--hy-soft:#f0fdf4;--hy-line:#bbd1c2}
.hy-diagram .hy-title{margin:0 0 8px;font-size:clamp(22px,3vw,30px);line-height:1.2;color:var(--hy-text)}
.hy-hint{margin:0 0 24px;color:var(--hy-muted);font-size:13px}
.hy-viewport{overflow:auto;padding:8px 4px 18px;overscroll-behavior-inline:contain}
.hy-viewport:focus-visible{outline:2px solid var(--hy-accent);outline-offset:4px;border-radius:4px}
.hy-diagram ul{list-style:none;margin:0;padding:0}
.hy-diagram li{list-style:none;margin:0;position:relative}
.hy-card{position:relative;width:190px;max-width:100%;flex-shrink:0;background:#fff;border:1px solid var(--hy-line);border-top:3px solid var(--hy-accent);border-radius:8px;padding:12px 14px;box-shadow:0 2px 6px #0f172a06;overflow-wrap:anywhere;z-index:1}
.hy-kind{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--hy-accent);margin-bottom:5px;font-weight:700}
.hy-label{display:block;font-weight:650;font-size:14px}
.hy-label a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.hy-label a:focus-visible{outline:2px solid var(--hy-accent);outline-offset:3px}
.hy-detail{display:block;font-size:12px;color:var(--hy-muted);margin-top:4px;white-space:pre-line}
.hy-partner{display:block;margin:10px -4px -2px;padding:8px;border-radius:5px;background:var(--hy-soft);font-size:12px}
.hy-partner>span{color:var(--hy-muted)}
.hy-hierarchy .hy-tree>.hy-item>.hy-card{background:#1e3a8a;color:#fff;border-color:#1e3a8a}
.hy-hierarchy .hy-tree>.hy-item>.hy-card .hy-detail,.hy-hierarchy .hy-tree>.hy-item>.hy-card .hy-kind{color:#dbeafe}
/* Top-down: each nested list allocates the width of its complete subtree. */
.hy-topdown .hy-tree,.hy-topdown .hy-children{display:flex;width:max-content;min-width:100%;justify-content:center}
.hy-topdown .hy-item{display:flex;flex-direction:column;align-items:center;padding:24px 10px 0;flex:1}
.hy-topdown .hy-tree>.hy-item{padding-top:0}
.hy-topdown .hy-card{min-height:112px}
.hy-family.hy-topdown .hy-card{min-height:155px}
.hy-topdown .hy-children{position:relative;padding-top:24px}
.hy-topdown .hy-children:before{content:"";position:absolute;top:0;left:50%;height:24px;border-left:2px solid var(--hy-line)}
.hy-topdown .hy-children>.hy-item:before{content:"";position:absolute;top:0;left:50%;height:24px;border-left:2px solid var(--hy-line)}
.hy-topdown .hy-children>.hy-item:after{content:"";position:absolute;top:0;left:0;width:100%;border-top:2px solid var(--hy-line)}
.hy-topdown .hy-children>.hy-item:first-child:after{left:50%;width:50%}
.hy-topdown .hy-children>.hy-item:last-child:after{width:50%}
.hy-topdown .hy-children>.hy-item:only-child:after{border:0}
/* Horizontal organigram: parent at left, children stacked at right. */
.hy-horizontal .hy-tree{width:max-content;min-width:100%}
.hy-horizontal .hy-item{display:flex;align-items:center;padding:10px 0}
.hy-horizontal .hy-children{position:relative;margin-left:40px}
.hy-horizontal .hy-children:before{content:"";position:absolute;right:calc(100% + 20px);width:20px;top:50%;border-top:2px solid var(--hy-line)}
.hy-horizontal .hy-children>.hy-item:before{content:"";position:absolute;right:100%;width:20px;top:0;bottom:0;border-left:2px solid var(--hy-line)}
.hy-horizontal .hy-children>.hy-item:after{content:"";position:absolute;right:100%;width:20px;top:50%;border-top:2px solid var(--hy-line)}
.hy-horizontal .hy-children>.hy-item:first-child:before{top:50%}
.hy-horizontal .hy-children>.hy-item:last-child:before{bottom:50%}
/* Outline uses the same DOM and reading order, including on phones. */
.hy-outline .hy-tree{width:100%}
.hy-outline .hy-item{padding:6px 0}
.hy-outline .hy-children{margin:6px 0 0 18px;padding-left:22px;border-left:2px solid var(--hy-line)}
.hy-outline .hy-children>.hy-item:before{content:"";position:absolute;right:100%;top:25px;width:22px;border-top:2px solid var(--hy-line)}
.hy-outline .hy-card{width:360px}
@media(max-width:680px){
 .hy-diagram .hy-viewport{overflow:visible;padding:4px 0}
 .hy-diagram .hy-tree,.hy-diagram .hy-children{display:block;width:auto;min-width:0}
 .hy-diagram .hy-item{display:block;padding:6px 0}
 .hy-diagram .hy-children{margin:6px 0 0 7px;padding:0 0 0 12px;border-left:2px solid var(--hy-line)}
 .hy-diagram .hy-children:before,.hy-diagram .hy-item:before,.hy-diagram .hy-item:after{display:none}
 .hy-diagram .hy-card{width:100%;min-height:0}
 .hy-diagram.hy-topdown .hy-card{min-height:0}
 .hy-diagram .hy-children .hy-children .hy-children .hy-children{margin-left:0;padding-left:4px}
}
@container(max-width:620px){
 .hy-diagram .hy-viewport{overflow:visible;padding:4px 0}
 .hy-diagram .hy-tree,.hy-diagram .hy-children{display:block;width:auto;min-width:0}
 .hy-diagram .hy-item{display:block;padding:6px 0}
 .hy-diagram .hy-children{margin:6px 0 0 7px;padding:0 0 0 12px;border-left:2px solid var(--hy-line)}
 .hy-diagram .hy-children:before,.hy-diagram .hy-item:before,.hy-diagram .hy-item:after{display:none}
 .hy-diagram .hy-card{width:100%;min-height:0}
 .hy-diagram.hy-topdown .hy-card{min-height:0}
 .hy-diagram .hy-children .hy-children .hy-children .hy-children{margin-left:0;padding-left:4px}
}
@media print{
 .hy-diagram{padding:8px;background:#fff;box-shadow:none}
 .hy-diagram .hy-viewport{overflow:visible}
 .hy-diagram .hy-tree,.hy-diagram .hy-children{display:block;width:auto;min-width:0}
 .hy-diagram .hy-item{display:block;padding:5px 0}
 .hy-diagram .hy-children{margin:5px 0 0 12px;padding:0 0 0 14px;border-left:1px solid #777}
 .hy-diagram .hy-children:before,.hy-diagram .hy-item:before,.hy-diagram .hy-item:after{display:none}
 .hy-diagram .hy-card{width:100%;break-inside:avoid;box-shadow:none}
 .hy-diagram.hy-topdown .hy-card{min-height:0}
 .hy-hint{display:none}
}
