.db-relation-explorer { margin: 0 0 42px; padding: clamp(20px,3.4vw,38px); border: 1px solid #cbdad2; border-radius: 27px; background: linear-gradient(145deg,#fff,#f2f7f4); box-shadow: 0 24px 60px rgba(7,27,51,.10); scroll-margin-top: 92px; }
.db-relation-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.db-relation-heading > div { max-width: 820px; }
.db-relation-heading h2 { margin: 10px 0 8px; font-size: clamp(1.85rem,3.4vw,3rem); overflow-wrap: anywhere; }
.db-relation-heading p { margin: 0; color: var(--db-muted); }
.db-relation-heading .db-button { flex: 0 0 auto; }
.db-relation-principle { margin: 22px 0 14px; padding: 14px 17px; border: 1px solid #efd886; border-radius: 13px; color: #674e0b; background: #fff9e5; font-size: .78rem; line-height: 1.6; }
.db-relation-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 13px; }
.db-relation-summary > span { display: inline-flex; align-items: baseline; gap: 5px; padding: 8px 11px; border: 1px solid #d5e0db; border-radius: 999px; color: #53636e; background: #fff; font-size: .66rem; font-weight: 750; }
.db-relation-summary strong { color: var(--db-navy-950); font-size: .87rem; }
.db-relation-legend { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.db-relation-legend > span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 8px; color: #43525e; background: rgba(255,255,255,.74); font-size: .61rem; font-weight: 800; }
.db-relation-legend i { width: 8px; height: 8px; border-radius: 50%; background: #708393; }
.db-relation-legend b { color: var(--db-navy-950); }
.db-relation-legend__company i { background: #16a36f; }.db-relation-legend__candidate i { background: #4f86ff; }.db-relation-legend__partner i { background: #f2c94c; }.db-relation-legend__contract i { background: #31b9cd; }.db-relation-legend__public_entity i { background: #b57cff; }.db-relation-legend__sanction i { background: #ef665b; }.db-relation-legend__document i { background: #9eb2c2; }

.db-relation-map { position: relative; min-height: 720px; overflow: hidden; border: 1px solid rgba(124,169,204,.28); border-radius: 23px; background: radial-gradient(circle at 50% 50%,rgba(37,99,235,.18),transparent 25%),radial-gradient(circle at 16% 20%,rgba(8,122,85,.17),transparent 28%),linear-gradient(145deg,#041426,#0b2c4d); }
.db-relation-map::before,.db-relation-map::after { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255,255,255,.055); border-radius: 50%; content: ""; transform: translate(-50%,-50%); pointer-events: none; }
.db-relation-map::before { width: 54%; height: 58%; }.db-relation-map::after { width: 86%; height: 87%; }
.db-relation-canvas,.db-relation-nodes { position: absolute; inset: 0; width: 100%; height: 100%; }
.db-relation-canvas { z-index: 1; }
.db-relation-nodes { z-index: 2; }
.db-relation-map:not(.is-ready) .db-relation-nodes { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; align-content: start; padding: 20px; overflow-y: auto; }
.db-relation-map:not(.is-ready) .db-relation-node { position: relative; top: auto; left: auto; width: auto; transform: none; }
.db-relation-node { position: absolute; top: 50%; left: 50%; display: flex; width: 152px; min-height: 82px; flex-direction: column; justify-content: center; padding: 11px 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.25); border-radius: 14px; color: #edf5fa; background: rgba(7,27,51,.94); box-shadow: 0 14px 30px rgba(0,0,0,.28); font: inherit; text-align: left; text-decoration: none; transform: translate(-50%,-50%); transition: opacity .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease; cursor: pointer; }
.db-relation-node:hover,.db-relation-node:focus-visible { z-index: 7; color: #fff; border-color: #fff; outline: 0; box-shadow: 0 17px 42px rgba(0,0,0,.4); transform: translate(-50%,-50%) scale(1.04); }
.db-relation-node > span,.db-relation-node > strong,.db-relation-node > small { display: block; }
.db-relation-node > span { margin-bottom: 4px; color: #8da4b7; font-size: .52rem; font-weight: 900; text-transform: uppercase; letter-spacing: .065em; }
.db-relation-node > strong { display: -webkit-box; overflow: hidden; color: #fff; font-size: .72rem; line-height: 1.28; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.db-relation-node > small { margin-top: 5px; overflow: hidden; color: #9eb0bf; font-size: .55rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.db-relation-node::before { position: absolute; top: 0; right: 0; bottom: 0; width: 4px; content: ""; background: #708393; }
.db-relation-node--company::before { background: #16a36f; }.db-relation-node--candidate::before { background: #4f86ff; }.db-relation-node--partner::before { background: #f2c94c; }.db-relation-node--contract::before { background: #31b9cd; }.db-relation-node--public_entity::before { background: #b57cff; }.db-relation-node--sanction::before { background: #ef665b; }.db-relation-node--document::before { background: #9eb2c2; }
.db-relation-node.is-focus { z-index: 5; width: 210px; min-height: 112px; padding: 17px 18px; border: 2px solid var(--db-gold-500); background: linear-gradient(145deg,#0b2948,#071b33); box-shadow: 0 0 0 10px rgba(242,201,76,.06),0 22px 55px rgba(0,0,0,.42); }
.db-relation-node.is-focus > span { color: #f2c94c; font-size: .59rem; }.db-relation-node.is-focus > strong { font-size: .91rem; -webkit-line-clamp: 3; }.db-relation-node.is-focus > small { font-size: .61rem; }
.db-relation-map.has-highlight .db-relation-node:not(.is-related) { opacity: .28; }

.db-relation-ledger { margin-top: 15px; border: 1px solid #cfdbd5; border-radius: 15px; background: #fff; }
.db-relation-ledger > summary { padding: 14px 17px; color: var(--db-navy-950); font-size: .78rem; font-weight: 850; cursor: pointer; }
.db-relation-ledger > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 0 12px 12px; }
.db-relation-ledger article { min-width: 0; padding: 13px; border: 1px solid #e1e7e3; border-radius: 11px; background: #fafcfb; }
.db-relation-ledger article p { margin: 0 0 6px; color: #3c4b56; font-size: .69rem; line-height: 1.5; }
.db-relation-ledger article p span { color: var(--db-muted); }
.db-relation-ledger article > b,.db-relation-ledger article > a,.db-relation-ledger article > small { display: block; font-size: .62rem; }
.db-relation-ledger article > b { margin-bottom: 5px; color: var(--db-green-700); }.db-relation-ledger article > a { font-weight: 800; }.db-relation-ledger article > small { color: var(--db-muted); }
.db-relation-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; margin-top: 15px; }
.db-relation-footer p { max-width: 730px; margin: 0; color: var(--db-muted); font-size: .66rem; line-height: 1.55; }
.db-relation-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 12px; }
.db-relation-footer a { font-size: .65rem; font-weight: 800; }

.db-investigation-results > article footer { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--db-border); }
.db-investigation-results > article footer a { display: inline-flex; min-height: 37px; align-items: center; justify-content: center; padding: 0 11px; border: 1px solid #c4d4cc; border-radius: 9px; font-size: .66rem; font-weight: 850; text-decoration: none; }
.db-investigation-results > article footer .db-investigation-map-link { color: #fff; border-color: var(--db-green-700); background: var(--db-green-700); }

@media (max-width: 900px) {
  .db-relation-heading { align-items: stretch; flex-direction: column; gap: 16px; }.db-relation-heading .db-button { align-self: flex-start; }.db-relation-map { min-height: 650px; }.db-relation-node { width: 132px; }.db-relation-node.is-focus { width: 185px; }.db-relation-ledger > div { grid-template-columns: 1fr; }.db-relation-footer { flex-direction: column; }.db-relation-footer nav { justify-content: flex-start; }
}
@media (max-width: 680px) {
  .db-relation-explorer { width: calc(100vw - 28px); margin-left: calc((100% - (100vw - 28px))/2); padding: 18px 14px; border-radius: 20px; }.db-relation-heading h2 { font-size: 1.75rem; }.db-relation-heading .db-button { width: 100%; }.db-relation-summary { display: grid; grid-template-columns: 1fr 1fr; }.db-relation-summary > span:last-child { grid-column: 1/-1; }.db-relation-map { min-height: 0; overflow: visible; border-radius: 17px; background: linear-gradient(145deg,#041426,#0b2c4d); }.db-relation-map::before,.db-relation-map::after,.db-relation-canvas { display: none; }.db-relation-nodes,.db-relation-map.is-ready .db-relation-nodes,.db-relation-map:not(.is-ready) .db-relation-nodes { position: static; display: grid; height: auto; grid-template-columns: 1fr; gap: 7px; padding: 11px; }.db-relation-node,.db-relation-map.is-ready .db-relation-node,.db-relation-map:not(.is-ready) .db-relation-node { position: relative; top: auto !important; left: auto !important; width: 100%; min-height: 0; padding: 12px 14px; transform: none !important; }.db-relation-node.is-focus { width: 100%; min-height: 94px; order: -1; }.db-relation-node > strong { font-size: .79rem; }.db-relation-node > small { white-space: normal; }.db-relation-ledger[open] > div { max-height: 480px; overflow-y: auto; }.db-investigation-results > article footer { display: grid; grid-template-columns: 1fr 1fr; }.db-investigation-results > article footer a { text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .db-relation-node { transition: none; } }
