.faction-layout { position: relative; }
.med-partner-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.med-partner-lines line { stroke: var(--accent, #66d2ff); stroke-width: 1; stroke-dasharray: 2 4; vector-effect: non-scaling-stroke; }
.med-partners { margin-top: 18px; margin-inline: auto; padding: 18px; width: fit-content; max-width: 100%; }
.med-partners summary { cursor: pointer; font-weight: 600; }
.med-partner-content { display: grid; gap: 16px; margin-top: 16px; }
.med-partner-list { display: grid; gap: 10px; }
.med-pair, .med-partner-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 18px; align-items: center; }
.med-partner-form { align-items: end; }
.med-partner-form select { width: 100%; min-width: 0; font: inherit; border-radius: 14px; padding: 12px; background: var(--panel-strong); color: var(--text); border: 1px solid rgba(131, 160, 197, 0.3); }
.med-pair span { overflow-wrap: anywhere; }
.med-partners .med-action { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; font-size: 1.5rem; line-height: 1; }
.med-remove { color: #ff7f7f; background: rgba(255, 127, 127, 0.12); }
.med-add { color: #75ef9a; background: rgba(117, 239, 154, 0.12); }
.med-partner-form select:focus-visible { outline: 2px solid rgba(102, 210, 255, 0.5); outline-offset: 2px; }
@media (max-width: 1080px) {
  .med-show-lines, .med-partner-lines { display: none; }
}
@media (max-width: 720px) {
  .med-pair, .med-partner-form { gap: 8px; }
}
