/* Place dossier. Uses the tokens of anubis-bootstrap.css and the map host, layers panel and link graph styles of anubis-geo.css and anubis.css.
   Meaning never rests on colour alone: a brushed row or bar also has a heavier border, and a related node a heavier ring. */
.dossier { display:flex; flex-direction:column; gap:12px; padding:12px 16px 24px; color:var(--color-text); font-size:.8125rem; line-height:1.45; }
.dossier-top { display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; }
.dossier-top h1 { font-family:var(--font-display); font-size:18px; font-weight:600; margin:0; }
.dossier-layout { display:flex; gap:12px; align-items:stretch; min-height:420px; }
.dossier-inputs { flex:none; width:340px; display:grid; gap:12px; align-content:start; padding:12px; border:1px solid var(--color-border-decorative); border-radius:var(--radius-control); background:var(--color-surface); }
.dossier-inputs fieldset legend { float:none; width:auto; margin-bottom:.25rem; }
.dossier-map { flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:6px; }
.dossier-stage { flex:none; height:clamp(360px, 52vh, 560px); border:1px solid var(--color-border-decorative); border-radius:var(--radius-control); }
.dossier-layers-toggle { position:absolute; top:8px; right:8px; z-index:5; display:inline-flex; gap:6px; align-items:center; }
.dossier-layout .geo-layers { flex:none; width:280px; max-height:560px; overflow:auto; }
.dossier-pair { display:grid; grid-template-columns:minmax(0, 3fr) minmax(280px, 2fr); gap:12px; align-items:start; }
.dossier-canvas { max-height:560px; }

.dossier .anubis-section { margin:0; }
.dossier-facts { display:flex; flex-wrap:wrap; gap:4px 20px; margin:0 0 8px; }
.dossier-facts > div { display:flex; gap:6px; align-items:baseline; }
.dossier-facts dt { color:var(--color-text-faint); font-weight:500; }
.dossier-facts dd { margin:0; }
.dossier-subheading { font-size:12px; font-weight:600; margin:10px 0 4px; color:var(--color-text-muted); }

/* What stands out */
.dossier-chips { display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.dossier-chip { display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:2px 10px; border:1px solid var(--color-border-decorative); border-radius:var(--radius-control); background:var(--color-surface-raised); color:var(--color-text); cursor:pointer; }
.dossier-chip:hover { background:var(--color-primary-dim); }
.dossier-chip:focus-visible { outline:2px solid var(--color-link); outline-offset:1px; }

/* Timelines */
.dossier-timelines { display:grid; gap:8px; margin:8px 0; }
.dossier-timeline { display:grid; grid-template-columns:minmax(120px, 200px) 1fr; column-gap:12px; align-items:end; }
.dossier-timeline__name { display:flex; align-items:center; gap:6px; font-size:12px; }
.dossier-timeline__axis { grid-column:2; display:flex; justify-content:space-between; font-size:10.5px; color:var(--color-text-muted); }
.dossier-bars { display:flex; align-items:flex-end; gap:2px; height:44px; }
.dossier-bar { flex:1 1 0; min-width:4px; padding:0; border:1px solid transparent; background:var(--color-border); opacity:.8; cursor:pointer; border-radius:1px 1px 0 0; }
.dossier-bar.is-empty { height:1px; background:var(--color-border-decorative); cursor:default; opacity:.6; }
.dossier-bar:hover { opacity:1; background:var(--color-link); }
.dossier-bar:focus-visible { outline:2px solid var(--color-link); outline-offset:1px; }
.dossier-bar.is-brushed { opacity:1; background:var(--color-link); border-color:var(--color-text); }

/* Repeating entities and rows */

ul.dossier-repeats { display:grid; gap:4px; margin:0 0 8px; padding:0; list-style:none; }
ul.dossier-repeats li { border:1px solid var(--color-border-decorative); border-radius:var(--radius-control); }
ul.dossier-repeats li.is-brushed { border-color:var(--color-text); border-width:2px; background:var(--color-primary-dim); }
.dossier-entity { display:flex; flex-wrap:wrap; align-items:center; gap:8px; width:100%; padding:4px 8px; border:0; background:transparent; color:inherit; text-align:start; cursor:pointer; }
.dossier-entity:focus-visible { outline:2px solid var(--color-link); outline-offset:-2px; }
.dossier-entity__label { font-weight:600; overflow-wrap:anywhere; }
.dossier-table td, .dossier-table th { vertical-align:top; }
.dossier-table tr[tabindex] { cursor:pointer; }
.dossier-table tr.is-brushed { outline:2px solid var(--color-text); outline-offset:-2px; background:var(--color-primary-dim); }
.dossier-table tr:focus-visible { outline:2px solid var(--color-link); outline-offset:-2px; }
.dossier-open { white-space:nowrap; text-align:end; }
.dossier-more { display:flex; align-items:center; gap:8px; margin-top:6px; }

/* The selected entity */
.dossier-card__label { font-family:var(--font-display); font-size:15px; font-weight:600; margin:0 0 2px; overflow-wrap:anywhere; }
.dossier-associations, .dossier-actions, .dossier-enriched { margin:8px 0; padding:0; list-style:none; display:grid; gap:4px; }
.dossier-associations li { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; }
.dossier-associations__when { color:var(--color-text-muted); font-size:11px; }
.dossier-actions li { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.dossier-actions li.is-disabled .dossier-actions__cost { color:var(--color-text-faint); }
.dossier-actions__cost { font-size:11.5px; }
.dossier-enriched li { display:flex; justify-content:space-between; gap:8px; }

/* The link graph: a related node has a heavier ring, a node from outside the box is dashed, an edge says its rule. */
.dossier-edge-label { font-size:8.5px; fill:var(--anubis-muted); pointer-events:none; paint-order:stroke; stroke:var(--anubis-sunken); stroke-width:3px; }
.dossier-edge-label.is-active { fill:var(--anubis-text); }
.anubis-linknode.is-related circle { stroke:var(--color-text); stroke-width:3.5; }
.anubis-linknode.is-outside circle { stroke-dasharray:3 2; stroke:var(--color-text-muted); }
.anubis-linknode.is-seed circle { fill:var(--color-surface-raised); stroke:var(--color-text); }
.anubis-linknode--aircraft { --node-colour:color-mix(in srgb, var(--color-info) 70%, var(--anubis-text)); }
.anubis-linknode--vessel { --node-colour:color-mix(in srgb, var(--color-info) 40%, var(--color-success)); }
.anubis-linkedge.is-dotted { stroke-dasharray:1.5 3; }

@media (max-width: 960px) {
    .dossier-layout { flex-direction:column; }
    .dossier-inputs { width:auto; }
    .dossier-pair { grid-template-columns:minmax(0, 1fr); }
    .dossier-timeline { grid-template-columns:1fr; }
    .dossier-timeline__axis { grid-column:1; }
}
@media (prefers-reduced-motion: reduce) {
    .dossier-bar, .dossier-chip { transition:none; }
}
