/* The relationship atlas: nodes snap to a grid, edges run orthogonal. */
.dt-atlas { display: flex; flex-direction: column; gap: 12px; margin: 8px 0 24px; }
.dt-atlas-static { background: var(--dt-surface); padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.dt-atlas-ui { display: flex; flex-direction: column; gap: 10px; }
.dt-atlas-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.dt-atlas-find { position: relative; flex: 1 1 260px; max-width: 420px; }
.dt-atlas-q { padding: 10px 12px; font-size: 14px; }
.dt-atlas-results { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 10; background: var(--dt-bg); box-shadow: inset 0 0 0 2px var(--dt-fg); display: flex; flex-direction: column; padding: 4px 0; max-height: 320px; overflow: auto; }
.dt-atlas-results button { text-align: left; background: none; border: 0; padding: 9px 12px; font-size: 14px; cursor: pointer; color: var(--dt-fg); }
.dt-atlas-results button:hover, .dt-atlas-results button:focus { background: var(--dt-surface); }
.dt-atlas-results p { padding: 9px 12px; }
.dt-atlas-tools { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.dt-atlas-sep { width: 8px; }
.dt-atlas-btn { background: var(--dt-bg); color: var(--dt-fg); border: 0; box-shadow: inset 0 0 0 1.5px var(--dt-fg); padding: 8px 11px; font: 500 12px/1.1 var(--dt-mono); font-stretch: var(--dt-mono-w); cursor: pointer; min-width: 34px; }
.dt-atlas-btn:hover { background: var(--dt-fg); color: var(--dt-bg); }
.dt-atlas-btn:disabled { opacity: .35; cursor: default; background: var(--dt-bg); color: var(--dt-fg); }
.dt-atlas-filter { position: relative; }
.dt-atlas-filter > summary { list-style: none; cursor: pointer; padding: 8px 11px; box-shadow: inset 0 0 0 1.5px var(--dt-fg); font: 500 12px var(--dt-mono); font-stretch: var(--dt-mono-w); }
.dt-atlas-filter > summary::-webkit-details-marker { display: none; }
.dt-atlas-filter[open] > summary { background: var(--dt-fg); color: var(--dt-bg); }
.dt-atlas-filterbox { position: absolute; z-index: 10; top: calc(100% + 4px); left: 0; background: var(--dt-bg); box-shadow: inset 0 0 0 2px var(--dt-fg); padding: 14px; display: grid; grid-template-columns: repeat(3, max-content); gap: 18px; }
.dt-atlas-filterbox fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.dt-atlas-filterbox label { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.dt-atlas-filterbox input { accent-color: var(--dt-primary); }
.dt-atlas-main { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 12px; }
.dt-atlas-stage { position: relative; height: clamp(480px, 70vh, 760px); background: var(--dt-surface); overflow: hidden; touch-action: none; cursor: grab; }
.dt-atlas-stage:active { cursor: grabbing; }
.dt-atlas-svg { width: 100%; height: 100%; }
.dt-atlas-bg { fill: transparent; }
.dt-atlas-mini { position: absolute; right: 10px; bottom: 10px; width: 132px; height: 90px; background: var(--dt-bg); box-shadow: inset 0 0 0 1.5px var(--dt-fg); cursor: pointer; }
.dt-am-n { fill: var(--dt-line); }
.dt-am-n.is-target { fill: var(--dt-fg); }
.dt-am-n.is-sel { fill: var(--dt-primary); }
.dt-am-v { fill: none; stroke: var(--dt-primary); stroke-width: 24; }

/* edges */
.dt-ae-b { cursor: pointer; outline: none; }
.dt-ae-l { fill: none; stroke: var(--dt-fg); stroke-width: 2; }
.dt-ae-hit { fill: none; stroke: transparent; stroke-width: 16; }
.dt-ae-b.is-reported .dt-ae-l { stroke-dasharray: 10 5; stroke: var(--dt-reported); }
.dt-ae-b.is-hypothesis .dt-ae-l { stroke-dasharray: 2 5; stroke: var(--dt-fg-3); }
/* a connection's kind changes colour and weight only: the line pattern always shows how well it is established */
.dt-ae-b.k-pays .dt-ae-l { stroke-width: 3; }
.dt-ae-b.k-owns .dt-ae-l { stroke-width: 3; }
.dt-ae-b.is-path .dt-ae-l { stroke: var(--dt-primary); stroke-width: 5; }
.dt-ae-b:hover .dt-ae-l, .dt-ae-b:focus .dt-ae-l { stroke: var(--dt-primary); stroke-width: 3.5; }
.dt-am { fill: var(--dt-fg); }
.dt-am-hypothesis { fill: var(--dt-fg-3); }
.dt-am-reported { fill: var(--dt-reported); }
.dt-ae-b.is-path .dt-am, .dt-ae-b:hover .dt-am { fill: var(--dt-primary); }
.dt-ae-n { fill: var(--dt-bg); stroke: var(--dt-fg); stroke-width: 1.5; }
.dt-ae-nt { font: 600 11px var(--dt-mono); font-stretch: var(--dt-mono-w); fill: var(--dt-fg); }

/* party cards */
.dt-an-c { cursor: pointer; outline: none; }
.dt-an-r { fill: var(--dt-bg); stroke: var(--dt-fg); stroke-width: 2; }
.dt-an-i { fill: none; stroke: var(--dt-fg); stroke-width: 2; }
.dt-an-i.is-shell { stroke-dasharray: 3 2.5; }
.dt-an-g { font: 500 10px var(--dt-mono); font-stretch: var(--dt-mono-w); fill: var(--dt-fg-3); }
.dt-an-t { font: 700 15px var(--dt-sans); fill: var(--dt-fg); letter-spacing: -0.01em; }
.dt-an-bd { fill: none; stroke: var(--dt-fg-3); stroke-width: 1; }
.dt-an-bt { font: 600 10px var(--dt-mono); font-stretch: var(--dt-mono-w); fill: var(--dt-fg-3); }
.dt-an-c.t-shell .dt-an-r { stroke-dasharray: 8 5; }
.dt-an-c.is-target .dt-an-r { fill: var(--dt-ink); stroke: var(--dt-ink); }
.dt-an-c.is-target .dt-an-t, .dt-an-c.is-target .dt-an-g, .dt-an-c.is-target .dt-an-bt { fill: #fff; }
.dt-an-c.is-target .dt-an-i, .dt-an-c.is-target .dt-an-bd { stroke: #fff; }
.dt-an-flag { fill: var(--dt-key, var(--dt-k1)); stroke: var(--dt-ink); stroke-width: 2; }
.dt-an-c.is-flag .dt-an-r { stroke-width: 3; }
.dt-an-c:hover .dt-an-r, .dt-an-c:focus .dt-an-r { stroke: var(--dt-primary); stroke-width: 3; }
.dt-an-c.is-sel .dt-an-r { stroke: var(--dt-primary); stroke-width: 4; }

/* side panel */
.dt-atlas-panel { background: var(--dt-bg); box-shadow: inset 0 0 0 2px var(--dt-fg); padding: 16px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.45; max-height: clamp(480px, 70vh, 760px); overflow: auto; }
.dt-ap-head { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; }
.dt-ap-head h3 { font-size: 20px; font-weight: 900; letter-spacing: -0.02em; line-height: 1.1; }
.dt-ap-close { background: none; border: 0; font: 600 22px/1 var(--dt-mono); cursor: pointer; color: var(--dt-fg); padding: 0 2px; }
.dt-atlas-panel h4 { margin-top: 8px; }
.dt-atlas-panel details { border-top: 1px solid var(--dt-rule-soft); padding-top: 8px; }
.dt-atlas-panel summary { cursor: pointer; font: 500 12px var(--dt-mono); font-stretch: var(--dt-mono-w); }
.dt-ap-rel { border-top: 1px solid var(--dt-rule-soft); padding-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.dt-ap-pair { font-weight: 700; }
.dt-ap-nb { background: none; border: 0; padding: 0; font: inherit; color: var(--dt-link); cursor: pointer; text-align: left; }
.dt-ap-nb:hover { text-decoration: underline; }
.dt-ap-claim { background: var(--dt-surface); padding: 10px; margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.dt-ap-claim .dt-claim-k { margin-right: 6px; }
.dt-ap-note { font-size: 13px; color: var(--dt-fg-2); }
.dt-ap-src { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.dt-ap-src a { color: var(--dt-link); }
.dt-ap-badge > summary { color: var(--dt-fg); }

.dt-atlas-status { min-height: 1.4em; }
/* the key under the map: always visible, wraps on phones */
.dt-atlas-key { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; font: 500 12px var(--dt-mono); font-stretch: var(--dt-mono-w); color: var(--dt-fg-2); }
.dt-atlas-key > span { display: inline-flex; align-items: center; gap: 6px; }
.dt-atlas-key .dt-lg, .dt-atlas-key .dt-lg-arrow { width: 24px; }
.dt-atlas-families { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dt-atlas-families legend { font: 500 12px var(--dt-mono); font-stretch: var(--dt-mono-w); margin-bottom: 4px; }
.dt-atlas-families label { display: flex; gap: 8px; align-items: center; font-size: 13px; }
.dt-atlas-families label:has(input:disabled) { color: var(--dt-fg-3); }
.dt-ap-context { color: var(--dt-fg-3); }
.dt-atlas-foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.dt-atlas-legend, .dt-atlas-dir { background: var(--dt-surface); padding: 12px 14px; font-size: 14px; }
.dt-atlas-legend summary, .dt-atlas-dir summary { cursor: pointer; font: 500 12px var(--dt-mono); font-stretch: var(--dt-mono-w); }
.dt-atlas-legend ul { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.dt-atlas-legend li { display: flex; gap: 10px; align-items: center; }
.dt-lg { flex: none; display: inline-block; width: 32px; height: 0; border-top: 2px solid var(--dt-fg); }
.dt-lg-reported { border-top-style: dashed; border-color: var(--dt-reported); }
.dt-lg-path { border-top: 5px solid var(--dt-primary); }
.dt-lg-arrow { flex: none; display: inline-block; width: 32px; text-align: center; font: 700 15px/1 var(--dt-mono); }
.dt-lg-hypothesis { border-top-style: dotted; border-color: var(--dt-fg-3); }
.dt-lg-owns { border-top-width: 3px; }
.dt-lg-target { width: 18px; height: 14px; border: 0; background: var(--dt-ink); }
.dt-lg-flag { width: 14px; height: 14px; border: 2px solid var(--dt-ink); background: var(--dt-key, var(--dt-k1)); transform: rotate(45deg); margin: 0 9px 0 5px; }
.dt-atlas-dirlist { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; max-height: 280px; overflow: auto; }
.dt-atlas-dirbtn { background: var(--dt-bg); border: 0; box-shadow: inset 0 0 0 1px var(--dt-fg); padding: 6px 9px; font-size: 13px; cursor: pointer; color: var(--dt-fg); }
.dt-atlas-dirbtn:hover { background: var(--dt-fg); color: var(--dt-bg); }

@media (max-width: 960px) {
  .dt-atlas-main { grid-template-columns: minmax(0, 1fr); }
  .dt-atlas-stage { height: 560px; }
  .dt-atlas-panel { max-height: none; }
  .dt-atlas-foot { grid-template-columns: minmax(0, 1fr); }
  .dt-atlas-filterbox { grid-template-columns: max-content; }
}
@media (max-width: 480px) {
  .dt-atlas-stage { height: 460px; }
  .dt-atlas-mini { width: 96px; height: 66px; }
}
@media print {
  .dt-atlas-ui { display: none !important; }
  .dt-atlas-static { display: flex !important; }
}

/* Evidence atlas extension: scoped markers and a compact mobile reading card. */
.dt-atlas-filterbox { grid-template-columns: minmax(180px, 240px); max-width: calc(100vw - 48px); }
.dt-atlas-filterbox > label { display: flex; align-items: flex-start; flex-direction: column; gap: 6px; font-size: 13px; }
.dt-atlas-filterbox select { width: 100%; padding: 8px; font: inherit; color: var(--dt-fg); background: var(--dt-bg); border: 1px solid var(--dt-fg-3); }
.dt-atlas-btn, .dt-atlas-filter > summary, .dt-atlas-dirbtn { min-height: 40px; }
.dt-an-bd { fill: #edf1ff; stroke: #41578a; }
.dt-an-bd.c-ADVERSE_MEDIA { fill: #f2eafe; stroke: #74519d; }
.dt-an-bd.c-CRIMINAL_PROCEEDINGS, .dt-an-bd.c-ENFORCEMENT { fill: #fbece6; stroke: #9e5338; }
.dt-an-bd.c-SANCTIONS { fill: #fff0d8; stroke: #916522; }
.dt-an-bd.c-REGULATORY_ACTION { fill: #e4f1f8; stroke: #2b6883; }
.dt-an-bd.c-FINANCIAL_DISTRESS { fill: #f5eddd; stroke: #846b36; }
.dt-an-bd.c-CIVIL_LITIGATION { fill: #eeeefe; stroke: #59568b; }
.dt-an-bt, .dt-an-c.is-target .dt-an-bt { fill: #202333; }
.dt-ae-b.is-route-context .dt-ae-l { opacity: .65; }
.dt-ap-toggle { display: none; }
.dt-ap-route-note { padding: 8px; background: var(--dt-surface); }
.dt-atlas-legend > p { margin-top: 10px; line-height: 1.4; }
@media (max-width: 960px) {
  .dt-atlas-panel { max-height: 220px; }
  .dt-atlas-panel.has-selection { max-height: 250px; }
  .dt-atlas-panel.is-expanded { max-height: 60vh; }
  .dt-ap-toggle { display: inline-block; align-self: flex-end; }
  .dt-atlas-panel:not(.has-selection) { padding: 10px 14px; }
}
@media (max-width: 480px) {
  .dt-atlas-btn, .dt-atlas-filter > summary, .dt-atlas-dirbtn { min-height: 44px; }
  .dt-atlas-stage { height: min(460px, 56svh); min-height: 300px; }
  .dt-atlas-panel.has-selection { max-height: 210px; }
  .dt-atlas-panel.is-expanded { max-height: 60svh; }
  .dt-atlas-find { flex-basis: 100%; max-width: none; }
}

.dt-atlas-panel { box-sizing: border-box; }

.dt-atlas [hidden] { display: none !important; }

.dt-an-c.is-target .dt-an-neutral { fill: #fff; }
