/* Page Lancements */

.next { display: grid; gap: 14px; align-content: start; }
.next-name { max-width: 20ch; }
.countdown {
  font-size: clamp(2.5rem, 1rem + 6vw, 6.5rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.04em;
  margin: 18px 0 10px;
  white-space: nowrap;
}
.countdown .unit { font-size: 0.5em; letter-spacing: 0; color: var(--muted); margin: 0 0.35em 0 0.12em; }
.next-facts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 18px 24px;
  margin-top: 8px;
}
.next-facts div { display: grid; gap: 2px; }
.next-facts dt { font-size: var(--step-small); color: var(--muted); }
.next-facts dd { font-size: var(--step-body); }
.next-facts .num { font-size: var(--step-small); color: var(--muted); }

.next-photo { display: flex; flex-direction: column; margin: 0; }
.next-photo img { width: 100%; flex: 1; min-height: 320px; object-fit: cover; }
.next-photo figcaption { padding: 12px var(--pad) 14px; color: var(--muted); }

.next-about { display: grid; gap: 16px; align-content: start; }
.next-about p { max-width: 60ch; }
.next-about .button { justify-self: start; }

.pads { display: flex; flex-direction: column; background: var(--map-sea); }
.pads-title { font-size: var(--step-lead); font-weight: 600; padding: var(--pad); background: var(--tile); }
.pads-legend { padding: 12px var(--pad) 14px; background: var(--tile); color: var(--muted); margin-top: auto; }

.list-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px 24px;
  margin-bottom: 24px;
}

/* Barres pleines qui s'ouvrent sur place. */
.launch-list { display: grid; gap: 6px; }
.launch {
  background: var(--tile-2);
}
.launch summary {
  display: grid;
  grid-template-columns: 11.5rem minmax(0, 1fr) auto 1.5rem;
  gap: 20px;
  align-items: center;
  min-height: 64px;
  padding: 12px 18px;
  cursor: pointer;
  list-style: none;
  transition: background-color var(--t-hover) ease;
}
.launch summary::-webkit-details-marker { display: none; }
.launch summary:hover { background: var(--field); }
.launch summary::after {
  content: '+';
  font-size: 1.5rem;
  line-height: 1;
  justify-self: end;
  transition: transform var(--t-ui) var(--ease-out);
}
.launch[open] summary::after { transform: rotate(45deg); }
.l-date { font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: var(--step-small); }
.l-date strong { display: block; font-weight: 500; font-size: var(--step-body); }
.l-title { display: grid; gap: 2px; min-width: 0; }
.l-title strong { font-weight: 600; font-size: var(--step-body); overflow-wrap: anywhere; }
.l-title span { font-size: var(--step-small); color: var(--muted); }
.l-status { font-size: var(--step-small); white-space: nowrap; }
.l-status[data-k='Go'] { color: var(--accent); font-weight: 600; }
.l-status[data-k='Go']::before {
  content: '';
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: 8px;
  background: var(--accent);
  border-radius: 50%;
  vertical-align: 1px;
}

.launch-body {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 24px;
  padding: 8px 18px 22px;
}
.launch-body img { width: 160px; height: 160px; object-fit: cover; background: var(--tile); }
.launch-body .no-img { width: 160px; height: 160px; background: var(--field); }
.launch-info { display: grid; gap: 16px; align-content: start; }
.launch-info p { max-width: 70ch; }
.launch-info dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px 24px; }
.launch-info dt { font-size: var(--step-small); color: var(--muted); }
.launch-info .actions { display: flex; flex-wrap: wrap; gap: 6px; }

.past-table td { white-space: normal; }
.past-table td:first-child { white-space: nowrap; }
.past-table .res-ok { color: var(--accent); }
.past-table .res-ko { font-weight: 600; }
.past-table tbody tr { cursor: default; }

.finder { display: grid; gap: 14px; }
.finder h2 { font-size: var(--step-lead); font-weight: 600; }
.finder-form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 0.8fr) auto; gap: 8px; align-items: end; }
.finder-form label { display: grid; gap: 4px; }
.finder-form select.field { appearance: auto; }
.finder-form .button { min-height: 48px; background: var(--tile); }
.group-label { font-size: var(--step-lead); font-weight: 600; padding: 18px 4px 6px; }
.group-label span { font-size: var(--step-small); font-weight: 400; color: var(--muted); margin-left: 8px; }
.launch-list .group-label:first-child { padding-top: 0; }

@media (max-width: 1080px) {
  .next { grid-column: span 12; }
  .next-photo { display: none; }
  .next-action, #next-action, .next-about { grid-column: span 6; }
  .pads { grid-column: span 12; }
}
@media (max-width: 640px) {
  #next-action, .next-about { grid-column: span 12; }
  .launch summary { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 14px; }
  .launch summary::after { display: none; }
  .l-date { grid-column: 1 / -1; }
  .launch-body { grid-template-columns: 1fr; padding: 4px 14px 18px; }
  .launch-body img, .launch-body .no-img { width: 96px; height: 96px; }
  .col-rocket, .col-site { display: none; }
  .finder-form { grid-template-columns: 1fr 1fr; }
  .finder-q { grid-column: 1 / -1; }
  .finder-form .button { grid-column: 1 / -1; justify-self: start; }
}

.next-follow { justify-self: start; font-weight: 600; margin-top: 4px; }
