/**
 * The pilot card — one card everywhere a pilot is listed: search results,
 * saved pilots and a mission's matched pilots.
 *
 * Photo, name, rating (or "New"), place and distance; then one line each for
 * specialty, aircraft, Part 107, insurance and availability; then the rate
 * and the two actions. No wall of chips — the profile carries the rest.
 */
.pilot-cards { display: grid; gap: 12px; }
.pilot-card { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--sp-4); align-items: start; padding: var(--sp-4);
  border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); transition: border-color 0.14s; }
.pilot-card:hover { border-color: var(--border-strong); }
.pilot-card:focus-visible { outline: none; box-shadow: var(--focus); }
.pilot-card.is-selected { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.pilot-card .pc-photo { width: 72px; height: 72px; border-radius: var(--r-md); overflow: hidden; display: grid; place-items: center; background: var(--surface-3); }
.pc-photo img { width: 100%; height: 100%; object-fit: cover; }
.pc-initials { display: grid; place-items: center; width: 100%; height: 100%; font: 650 22px/1 var(--font-head); color: var(--text-2); }

/* The body is a grid with one shrinkable column: a long name or place wraps
   instead of pushing the buttons past the card's edge. */
.pc-body { display: grid; gap: 12px; min-width: 0; }
.pc-body { grid-template-columns: minmax(0, 1fr); }
.pc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; }
.pc-head > div { min-width: 0; flex: 1 1 auto; }
.pc-head h3 { margin: 0; font-size: 17px; font-weight: 650; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.pc-where { margin: 2px 0 0; font-size: 13px; color: var(--text-2); overflow-wrap: anywhere; }
.pc-rating { font-weight: 600; color: var(--text); }
.pc-new { font-weight: 600; color: var(--text-2); }
.pc-cov { font-weight: 600; color: var(--blue-text); }
.pc-match { flex: none; align-self: flex-start; }
.pc-match.has-why { cursor: pointer; }
.pc-match.has-why:focus-visible { outline: none; box-shadow: var(--focus); }
.pc-match i { font-style: normal; display: inline-flex; }

.pc-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 16px; margin: 0; }
.pc-facts div { min-width: 0; }
.pc-facts dt { font-size: 12px; color: var(--text-3); }
.pc-facts dd { margin: 1px 0 0; font-size: 14px; color: var(--text); overflow-wrap: anywhere; }
.pc-st.ok { color: var(--ok-text); }
.pc-st.warn { color: var(--warn-text); }
.pc-st.danger { color: var(--danger-text); }
.pc-more { font-size: 13px; font-weight: 600; color: var(--blue-text); text-decoration: none; white-space: nowrap; }
.pc-more:hover { text-decoration: underline; }

.pc-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; min-width: 0; padding-top: 12px; border-top: 1px solid var(--hairline); }
.pc-rate { display: flex; align-items: baseline; gap: 6px; }
.pc-rate b { font-size: 17px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pc-rate span { font-size: 13px; color: var(--text-3); }
.pc-rate b.pc-rate-none { font-size: 13px; font-weight: 500; color: var(--text-2); white-space: normal; }
.pc-actions { display: flex; gap: 8px; }

/* Short labels elsewhere in the Network (mission requirements). */
.pc-chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.pc-chip { display: inline-flex; align-items: center; min-height: 24px; max-width: 100%; padding: 0 9px; border: 1px solid var(--border); border-radius: 6px;
  background: var(--surface-3); color: var(--text); font: 600 12px/1.25 var(--font); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.pc-headline {
  margin: 2px 0 0; font-size: var(--fs-body); color: var(--text-2);
  white-space: normal; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}

@media (max-width: 560px) {
  .pilot-card { grid-template-columns: 56px minmax(0, 1fr); gap: var(--sp-3); padding: var(--sp-3); }
  .pilot-card .pc-photo { width: 56px; height: 56px; }
  .pc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
