/* =============================================================
   hierarchy-xray.css — аналитический снимок структуры власти
   ============================================================= */
#hierarchy-panel {
    display:flex !important;
    flex-direction:column;
    width:min(94vw,1500px);
    max-width:none;
    height:100dvh;
    padding:clamp(18px,2.4vw,34px);
    overflow:hidden;
    background:radial-gradient(circle at 72% 18%,rgba(138,3,3,.11),transparent 30%),linear-gradient(90deg,rgba(138,3,3,.07),transparent 18%),rgba(4,4,5,.992);
}
#hierarchy-panel.hidden:not(.open) { pointer-events:none; }
.power-xray-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:14px 0 16px; }
.power-xray-heading h2 { margin:0; font-size:clamp(20px,2.4vw,32px); }
.power-xray-heading p { margin:7px 0 0; color:#9a9193; font:12px/1.5 'Courier New',monospace; letter-spacing:.06em; text-transform:uppercase; }
.power-xray-stats { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.power-xray-stats span { display:grid; grid-template-columns:auto 34px; align-items:center; gap:9px; min-height:42px; padding:0 9px 0 12px; border:1px solid rgba(255,255,255,.12); color:#a09799; font:10px/1 'Courier New',monospace; letter-spacing:.06em; }
.power-xray-stats b { display:grid; place-items:center; height:28px; color:#f0e8e9; background:rgba(255,255,255,.05); font-size:13px; }
.power-mode-bar { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid rgba(255,255,255,.11); }
.power-mode-button { min-height:52px; padding:9px 14px; border:0; border-right:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.012); color:#999092; font:700 12px/1.25 'Courier New',monospace; letter-spacing:.06em; cursor:pointer; touch-action:manipulation; transition:color 170ms ease,background 170ms ease,box-shadow 170ms ease; }
.power-mode-button:last-child { border-right:0; }
.power-mode-button span { margin-right:8px; color:#4e4849; }
.power-mode-button:hover,.power-mode-button:focus-visible { background:rgba(138,3,3,.1); color:#e2d9da; outline:2px solid rgba(209,43,48,.2); outline-offset:-2px; }
.power-mode-button.is-active { color:#f0e8e9; background:linear-gradient(90deg,rgba(138,3,3,.24),rgba(138,3,3,.08)); box-shadow:inset 0 -2px #b91f24; }
.power-mode-button.is-active span { color:#d22b31; }
.power-mode-button.is-locked { color:#4d4849; cursor:not-allowed; }
.power-mode-button.is-locked::after { content:' // LOCKED'; color:#8b3337; font-size:10px; }
.power-access-note { margin-top:8px; padding:10px 12px; border:1px dashed rgba(185,31,36,.42); color:#d0787c; background:rgba(138,3,3,.08); font:11px/1.45 'Courier New',monospace; letter-spacing:.06em; }
.power-access-note.hidden { display:none; }
.power-xray-legend { display:flex; flex-wrap:wrap; gap:18px; min-height:42px; align-items:center; color:#9a9193; font:10px/1.3 'Courier New',monospace; letter-spacing:.05em; }
.power-xray-legend span::before { content:''; display:inline-block; width:26px; margin-right:7px; border-top:1px solid #777; vertical-align:middle; }
.power-xray-legend .relation-control::before { border-color:#e43a40; border-top-style:dashed; }
.power-xray-legend .relation-blood_bond::before { border-color:#c552e0; border-top-style:dashed; }
.power-xray-legend .relation-debt::before { border-color:#d5a44a; border-top-style:dashed; }
.power-xray-legend .foreign::before { border-color:#a88043; border-top-style:dotted; }
.power-xray-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:16px; min-height:0; flex:1; }
.power-xray-stage { position:relative; min-width:0; min-height:340px; overflow:auto; border:1px solid rgba(255,255,255,.09); background-color:#070708; background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px); background-size:32px 32px; scrollbar-color:#4d1719 #090909; }
#hierarchy-tree-container { position:relative; z-index:2; display:block; width:max-content; min-width:100%; height:auto; min-height:100%; padding:42px 44px 72px; overflow:visible; mask-image:none; }
#hierarchy-tree-container .node-msg { display:grid; place-items:center; min-width:min(65vw,700px); min-height:300px; color:#9c9294; font:12px/1.55 'Courier New',monospace; letter-spacing:.08em; }
.power-overlay-lines { position:absolute; inset:0 auto auto 0; z-index:3; overflow:visible; pointer-events:none; }
.power-edge-group { opacity:.76; transition:opacity 180ms ease; }
.power-edge-group.is-muted { opacity:.1; }
.power-edge-group.is-active { opacity:1; }
.power-covert-line { fill:none; stroke:#e43a40; stroke-width:1.35; stroke-dasharray:6 6; stroke-linecap:round; stroke-linejoin:round; opacity:.94; vector-effect:non-scaling-stroke; }
.power-covert-line.relation-blood_bond { stroke:#c552e0; stroke-width:1.65; }
.power-covert-line.relation-debt { stroke:#d5a44a; }
.power-covert-line.relation-influence { stroke:#65b9b1; }
.power-covert-line.relation-blackmail { stroke:#d5d0d1; stroke-dasharray:3 5; }
.power-edge-group.is-active .power-covert-line { stroke-width:2; }
.power-edge-origin { fill:#080809; stroke:currentColor; stroke-width:1.5; vector-effect:non-scaling-stroke; }
.power-edge-group.relation-control { color:#e43a40; }
.power-edge-group.relation-blood_bond { color:#d776eb; }
.power-edge-group.relation-debt { color:#e0b35d; }
.power-edge-group.relation-influence { color:#75c8c0; }
.power-edge-group.relation-blackmail { color:#e0dcdd; }
.power-line-label rect { fill:rgba(7,7,8,.96); stroke:currentColor; stroke-width:.75; rx:2px; }
.power-line-label text { fill:currentColor; font:700 9px/1 'Courier New',monospace; letter-spacing:.025em; }
.power-line-label.relation-control { color:#e43a40; }
.power-line-label.relation-blood_bond { color:#d776eb; }
.power-line-label.relation-debt { color:#e0b35d; }
.power-line-label.relation-influence { color:#75c8c0; }
.power-line-label.relation-blackmail { color:#e0dcdd; }
#hierarchy-panel .org-tree ul { transition:opacity 180ms ease,transform 180ms ease; }
#hierarchy-panel .org-tree ul.is-collapsed { display:none; }
#hierarchy-panel .org-tree li::before,#hierarchy-panel .org-tree li::after,#hierarchy-panel .org-tree ul ul::before { border-color:#555052; }
#hierarchy-panel .org-tree.mode-true li::before,#hierarchy-panel .org-tree.mode-true li::after,#hierarchy-panel .org-tree.mode-true ul ul::before { border-color:transparent; }
.power-node-card { position:relative; z-index:4; display:block; width:220px; max-width:220px; min-width:220px; padding:0; border:1px solid #514b4d; background:rgba(10,10,11,.97); box-shadow:0 10px 24px rgba(0,0,0,.38); transform:none; }
.power-node-main { display:grid; grid-template-columns:56px minmax(0,1fr); gap:12px; align-items:center; width:100%; min-height:102px; padding:11px; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; touch-action:manipulation; transition:background 170ms ease; }
.power-node-main:hover,.power-node-main:focus-visible { background:rgba(138,3,3,.11); outline:2px solid rgba(209,43,48,.26); outline-offset:2px; }
.power-node-card .tree-portrait,.power-node-card .tree-silhouette { width:56px; height:72px; margin:0; border:1px solid #4a4446; filter:grayscale(70%) contrast(112%); object-fit:cover; }
.power-node-card .tree-silhouette { display:grid; place-items:center; background:#111; }
.power-node-card .tree-silhouette svg { fill:#4d4849; }
.power-node-copy { display:grid; gap:5px; min-width:0; }
.power-node-copy strong { color:#eee7e8; font:700 14px/1.3 'Courier New',monospace; overflow-wrap:anywhere; }
.power-node-status { color:#d3484d; font:700 10px/1.25 'Courier New',monospace; letter-spacing:.06em; }
.power-node-faction { color:#a09799; font:10px/1.35 'Courier New',monospace; overflow-wrap:anywhere; }
.power-node-covert { margin-top:3px; padding-top:6px; border-top:1px dashed rgba(214,41,48,.35); color:#e05a5f; font:9px/1.4 'Courier New',monospace; overflow-wrap:anywhere; }
.power-node-covert.relation-blood_bond { color:#d776eb; border-color:rgba(197,82,224,.5); }
.power-node-covert.relation-debt { color:#e0b35d; border-color:rgba(213,164,74,.5); }
.power-node-covert.relation-influence { color:#75c8c0; border-color:rgba(101,185,177,.5); }
.power-org-tree { min-width:100%; }
.power-branch-toggle { position:absolute; right:5px; bottom:-27px; z-index:6; min-width:54px; min-height:32px; padding:3px 7px; border:1px solid #4a4446; background:#090909; color:#aaa0a2; font:10px/1 'Courier New',monospace; cursor:pointer; }
.power-branch-toggle:hover,.power-branch-toggle:focus-visible { border-color:#b91f24; color:#e2d9da; outline:2px solid rgba(209,43,48,.18); outline-offset:2px; }
.power-node-card.foreigner { border-style:dashed; border-color:#9b793f; background:linear-gradient(135deg,rgba(155,121,63,.1),rgba(10,10,11,.97)); }
.power-node-card.foreigner .power-node-faction { color:#b49258; }
.power-node-card.is-selected { border-color:#df3036; box-shadow:0 0 0 1px rgba(223,48,54,.2),0 0 26px rgba(138,3,3,.35); }
.power-node-card.is-linked { border-color:#877d80; }
.power-node-card.is-dimmed { opacity:.28; filter:saturate(.3); }
.power-inspector { min-height:0; padding:20px; overflow-y:auto; border:1px solid rgba(185,31,36,.38); border-top:2px solid #c9272d; background:linear-gradient(180deg,rgba(138,3,3,.1),transparent 100px),rgba(8,8,9,.96); }
.power-inspector-kicker { color:#d34449; font:10px/1.4 'Courier New',monospace; letter-spacing:.08em; overflow-wrap:anywhere; }
.power-inspector h3 { margin:20px 0 10px; color:#f0e9ea; font:700 20px/1.35 'Courier New',monospace; overflow-wrap:anywhere; }
.power-inspector > p { color:#aaa1a3; font:13px/1.65 'Courier New',monospace; }
.power-inspector-identity { margin:18px 0; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.09); }
.power-inspector-identity span { color:#d34a4f; font:10px/1.3 'Courier New',monospace; letter-spacing:.06em; }
.power-inspector-identity h3 { margin:6px 0 0; }
.power-inspector-row { display:grid; gap:7px; padding:11px 0; border-bottom:1px dashed rgba(255,255,255,.08); }
.power-inspector-row small,.power-influence-meter small { color:#9e9597; font:10px/1.35 'Courier New',monospace; letter-spacing:.06em; }
.power-inspector-row div { display:flex; flex-wrap:wrap; gap:6px; }
.power-inspector-row span,.power-inspector-row em { padding:7px 9px; border:1px solid rgba(255,255,255,.14); color:#ddd5d6; font:normal 11px/1.35 'Courier New',monospace; }
.power-inspector-row em { color:#5f595a; border-style:dashed; }
.power-influence-meter { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:16px 0; padding:12px; border-left:2px solid #b91f24; background:rgba(138,3,3,.09); }
.power-influence-meter strong { color:#eee7e8; font:700 12px/1.3 'Courier New',monospace; }
.power-open-dossier { width:100%; min-height:48px; border:1px solid rgba(185,31,36,.62); background:rgba(138,3,3,.14); color:#eee7e8; font:700 12px/1.25 'Courier New',monospace; cursor:pointer; transition:background 170ms ease,border-color 170ms ease; }
.power-open-dossier:hover,.power-open-dossier:focus-visible { border-color:#e03036; background:rgba(138,3,3,.28); outline:2px solid rgba(209,43,48,.22); outline-offset:2px; }
@media (max-width:900px) {
    #hierarchy-panel { width:100vw; padding:16px; }
    .power-xray-layout { grid-template-columns:minmax(0,1fr) 300px; }
    .power-xray-stats span { grid-template-columns:auto 26px; }
}
@media (max-width:700px) {
    #hierarchy-panel { padding:12px; overflow-y:auto; }
    .power-xray-heading { align-items:flex-start; flex-direction:column; gap:10px; margin:10px 0 12px; }
    .power-xray-heading h2 { font-size:18px; }
    .power-xray-stats { width:100%; justify-content:stretch; }
    .power-xray-stats span { flex:1; justify-content:space-between; }
    .power-mode-button { min-height:56px; padding:8px 4px; font-size:10px; letter-spacing:.02em; }
    .power-mode-button span { display:block; margin:0 0 4px; }
    .power-mode-button.is-locked::after { content:' // LCK'; font-size:8px; }
    .power-xray-legend { gap:10px; padding:7px 0; }
    .power-xray-layout { display:flex; flex-direction:column; flex:0 0 auto; }
    .power-xray-stage { min-height:260px; max-height:52dvh; }
    #hierarchy-tree-container { width:100%; min-width:0; padding:18px 12px 34px; }
    #hierarchy-panel .org-tree,#hierarchy-panel .org-tree > ul { width:100%; }
    #hierarchy-panel .org-tree ul { display:flex; flex-direction:column; align-items:stretch; gap:7px; padding:0 0 0 14px; border-left:1px solid #3f3a3c; }
    #hierarchy-panel .org-tree li { width:100%; padding:3px 0; text-align:left; }
    #hierarchy-panel .org-tree li::before,#hierarchy-panel .org-tree li::after,#hierarchy-panel .org-tree ul ul::before { display:none !important; }
    .power-node-card { width:100%; max-width:none; min-width:0; }
    .power-node-main { grid-template-columns:52px minmax(0,1fr); min-height:92px; padding:10px; }
    .power-node-card .tree-portrait,.power-node-card .tree-silhouette { width:52px; height:66px; }
    .power-branch-toggle { right:4px; bottom:4px; min-height:44px; min-width:52px; }
    .power-inspector { flex:0 0 auto; min-height:260px; overflow:visible; }
    .power-overlay-lines { display:none; }
}
@media (prefers-reduced-motion:reduce) {
    .power-mode-button,#hierarchy-panel .org-tree ul,.power-node-main,.power-node-card,.power-open-dossier { transition-duration:.01ms !important; }
}
