.competitor-fanout { margin-top: 22px; padding-top: 22px; border-top: 1px solid #d6e2e7; }
.competitor-fanout__heading { max-width: 78ch; }
.competitor-fanout__heading h4 { margin: 0 0 6px; color: var(--portal-navy); font-size: 18px; line-height: 1.25; }
.competitor-fanout__heading p { margin: 0; color: var(--portal-muted); font-size: 14px; line-height: 1.55; }
.competitor-fanout__list { display: grid; gap: 0; margin: 17px 0 0; padding: 0; border-top: 1px solid #dfe7eb; list-style: none; }
.competitor-fanout__row { display: grid; grid-template-columns: minmax(220px,1.2fr) minmax(110px,.45fr) minmax(150px,auto) auto; gap: 16px; align-items: center; min-width: 0; padding: 14px 0; border-bottom: 1px solid #dfe7eb; }
.competitor-fanout__topic { min-width: 0; overflow-wrap: anywhere; color: var(--portal-ink); font-size: 14px; line-height: 1.4; }
.competitor-fanout__counts { display: flex; flex-wrap: wrap; gap: 6px; color: var(--portal-muted); font: 600 12px/1.4 "IBM Plex Mono", monospace; }
.competitor-fanout__counts i { font-style: normal; }
.competitor-fanout__status { display: grid; width: fit-content; max-width: 100%; gap: 2px; padding: 7px 10px; border: 1px solid #c7d4da; border-radius: 10px; color: #40536a; background: #f5f8fa; font-size: 12px; font-weight: 800; line-height: 1.25; }
.competitor-fanout__status small { color: inherit; font-size: 10px; font-weight: 650; opacity: .76; }
.competitor-fanout__status--covered { border-color: #9ecfb9; color: #176147; background: #edf8f2; }
.competitor-fanout__status--partial { border-color: #d7c990; color: #705400; background: #fff9e7; }
.competitor-fanout__status--missing, .competitor-fanout__status--conflicting { border-color: #e1afa9; color: #8b2722; background: #fff0ee; }
.competitor-fanout__link { display: inline-flex; align-items: center; justify-content: flex-end; min-height: 44px; padding: 7px 2px; color: #087187; font-size: 13px; font-weight: 850; text-align: right; text-underline-offset: 3px; }
.competitor-fanout__link:hover { color: var(--portal-navy); }
.competitor-fanout__link:focus-visible, .competitor-fanout__all summary:focus-visible, .competitor-fanout__all a:focus-visible { border-radius: 6px; outline: 3px solid rgba(8,113,135,.28); outline-offset: 3px; }
.competitor-fanout__all { margin-top: 12px; border: 1px solid #dce6ea; border-radius: 10px; background: #f8fafb; }
.competitor-fanout__all summary { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; gap: 18px; padding: 9px 14px; color: #087187; cursor: pointer; font-size: 13px; font-weight: 850; }
.competitor-fanout__all-label { display: flex; align-items: center; gap: 8px; }
.competitor-fanout__all-label b { display: grid; min-width: 24px; height: 24px; place-items: center; border-radius: 999px; background: #e8f4f6; font: 700 11px/1 "IBM Plex Mono", monospace; }
.competitor-fanout__all ul { display: grid; gap: 0; margin: 0 12px 12px; padding: 0; border: 1px solid #dce6ea; border-radius: 9px; background: #fff; list-style: none; }
.competitor-fanout__all li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; min-width: 0; padding: 10px 12px; border-bottom: 1px solid #e3eaed; }
.competitor-fanout__all li:last-child { border-bottom: 0; }
.competitor-fanout__all a { min-width: 0; overflow-wrap: anywhere; color: var(--portal-ink); font-size: 13px; line-height: 1.4; text-underline-offset: 3px; }
.competitor-fanout__all li > span { color: var(--portal-muted); font: 700 11px/1 "IBM Plex Mono", monospace; }
.competitor-fanout__boundary { color: var(--portal-muted); font-size: 12px; font-weight: 500; line-height: 1.45; text-align: right; }

@media (max-width: 760px) {
  .competitor-fanout__row { grid-template-columns: minmax(0,1fr) auto; gap: 7px 14px; }
  .competitor-fanout__topic { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
  .competitor-fanout { margin-top: 18px; padding-top: 18px; }
  .competitor-fanout__row { grid-template-columns: minmax(0,1fr); }
  .competitor-fanout__topic, .competitor-fanout__status, .competitor-fanout__link { grid-column: 1; }
  .competitor-fanout__link { width: fit-content; justify-content: flex-start; text-align: left; }
  .competitor-fanout__all summary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .competitor-fanout__boundary { text-align: left; }
}
