/* Canonical crew hierarchy: reporting order is generated from reports_to. */
.crew-page-container [hidden] { display: none !important; }
.crew-preview-note { padding: .8rem 1rem; border-inline-start: 3px solid var(--color-accent-amber, #fbbf24); background: rgba(251,191,36,.06); font-size: .9rem; }
.crew-reporting-line { color: var(--color-text-secondary, #94a3b8); font-size: .8rem; margin-block: .5rem; }
.crew-command-tree { list-style: none; margin: 0; padding: 1rem; display: grid; gap: .6rem; }
.crew-graph-row { position: relative; margin-inline-start: 0; border-inline-start: 2px solid var(--deck-color); padding: .7rem 1rem; background: rgba(15,23,42,.65); border-radius: 0 .5rem .5rem 0; }
.crew-graph-row::before { display: none; content: ''; position: absolute; width: .8rem; border-block-start: 1px solid var(--deck-color); inset-inline-start: -.8rem; inset-block-start: 2rem; }
.crew-graph-row:first-child::before { display: none; }
.crew-graph-row-observer { border-inline-start-style: dashed; }
.crew-graph-node { display: flex; align-items: center; gap: .8rem; color: inherit; text-decoration: none; width: fit-content; max-width: 100%; border-radius: .3rem; }
.crew-graph-node picture, .crew-graph-node img { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.crew-graph-identity { display: grid; gap: .15rem; min-width: 0; overflow-wrap: anywhere; }
.crew-graph-identity bdi { color: var(--deck-color); font-size: .85rem; }
.crew-graph-identity span, .crew-graph-report { font-size: .85rem; }
.crew-graph-report { display: block; color: var(--color-text-secondary, #94a3b8); margin-block-start: .45rem; }
.crew-graph-emblem { width: 40px; text-align: center; font-size: 2rem; }
.crew-graph-node:focus-visible, .crew-filter-btn:focus-visible, .crew-card:focus { outline: 2px solid var(--deck-color, #fbbf24); outline-offset: 4px; }
.crew-card { scroll-margin-block-start: 6rem; }
.crew-callsign-tag, .crew-specialist-callsign { direction: ltr; unicode-bidi: isolate; }
@media (max-width: 600px) {
  .crew-command-tree { padding: .5rem 0; }
  .crew-graph-row { margin-inline-start: calc(var(--crew-depth) * .65rem); padding: .6rem; }
  .crew-graph-node { gap: .55rem; }
  .crew-graph-row::before { display: none; width: .4rem; inset-inline-start: -.4rem; }
}

/* Compact, accessible branches follow reporting authority rather than deck membership. */
.crew-roster-branch > summary { cursor: pointer; min-height: 64px; }
.crew-roster-branch > summary::after,
.crew-graph-branch > summary::after { content: '+'; font-size: 1.25rem; margin-inline-start: auto; }
.crew-roster-branch[open] > summary::after,
.crew-graph-branch[open] > summary::after { content: '−'; }
.crew-roster-branch > summary:focus-visible,
.crew-graph-branch > summary:focus-visible { outline: 2px solid #fbbf24; outline-offset: 4px; }
.crew-graph-root { margin: 0 auto 1rem; padding: .6rem 1rem; border: 1px solid #fbbf24; --deck-color: #fbbf24; }
.crew-graph-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.crew-graph-branch { min-width: 0; border: 1px solid color-mix(in srgb, var(--deck-color) 35%, transparent); border-radius: .75rem; background: #0f172a; }
.crew-graph-branch > summary { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .85rem; min-height: 64px; cursor: pointer; overflow-wrap: anywhere; }
.crew-graph-branch > summary > span { flex: 1 1 75%; font-weight: 700; }
.crew-graph-branch > summary > small { flex: 1 1 75%; color: #cbd5e1; }
.crew-graph-branch .crew-command-tree { padding: 0 .65rem .65rem; }
.crew-graph-branch .crew-graph-row { padding: .55rem; }
.crew-graph-branch .crew-observer-inactive-badge { font-size: .72rem; }
.directive-step-emoji { display: inline-flex; align-items: center; gap: .35rem; }
.directive-flow-arrow { direction: ltr; unicode-bidi: isolate; }
@media (max-width: 1000px) {
  .crew-graph-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .crew-graph-groups { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .crew-compartment-section { margin-bottom: 1.25rem; }
  .crew-roster-branch > summary { margin-bottom: 0; padding: .85rem .25rem; }
  .crew-roster-branch[open] > summary { margin-bottom: 1rem; }
  .crew-roster-branch .crew-channel-badge { font-size: .8rem; }
  .crew-graph-row { margin-inline-start: 0; }
  .crew-graph-branch .crew-command-tree { grid-template-columns: minmax(0, 1fr); }
}

/* Stage F2: inspection text is never dimmed by an inherited muted token. */
.crew-roster-branch[data-deck="inspection"] { --text-main: #e9d5ff; --text-muted: #e9d5ff; --text-dim: #e9d5ff; }
.crew-card-inspection { background: #0f172a; }
.crew-card-inspection :is(.crew-head-name, .crew-specialist-name, .crew-callsign-tag, .crew-specialist-callsign, .crew-mandate-btn) { color: #c084fc; }
.crew-card-inspection :is(.crew-head-position, .crew-specialist-position, .crew-reporting-line, .crew-mandate-body, .crew-botid, .crew-head-deck-btn, .crew-observer-inactive-badge) { color: #e9d5ff; }
.crew-roster-branch[data-deck="inspection"] :is(.crew-deck-name, .crew-channel-badge) { color: #e9d5ff; }
.directive-step-card, .directive-step-title, .directive-step-desc { min-width: 0; max-height: none; overflow: visible; white-space: normal; overflow-wrap: anywhere; }
.directive-step-header, .directive-step-icons, .directive-step-emoji { min-width: 0; flex-wrap: wrap; }
@media (min-width: 1100px) {
  /* Grid lines count from inline-start, so both rows follow 1→2→3 / 4→5→6 in RTL. */
  .directive-steps-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .directive-step-card:nth-child(3n + 1) { grid-column: 1; }
  .directive-step-card:nth-child(3n + 2) { grid-column: 2; }
  .directive-step-card:nth-child(3n) { grid-column: 3; }
  .directive-step-card:nth-child(-n + 3) { grid-row: 1; }
  .directive-step-card:nth-child(n + 4) { grid-row: 2; }
  .crew-roster-branch[data-deck="science"] .crew-specialists-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 320px)); justify-content: start; }
}
