.booking-hero h1 { max-width: 900px; }
.booking-metrics { margin-bottom: 14px; }

.policy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.policy-card {
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.025);
}
.policy-card h3 { margin-bottom: 7px; }
.policy-card p { margin: 0; color: var(--muted); font-size: .9rem; }
.policy-level { margin-bottom: 9px; }
.policy-level.hard { color: var(--red); }
.policy-level.priority { color: var(--amber); }
.policy-level.target { color: var(--green); }

.roster-heading { align-items: center; }
.roster-actions { display: flex; align-items: center; gap: 9px; }
.source-list { display: grid; gap: 8px; }
.roster-labels, .source-row {
  display: grid;
  grid-template-columns: minmax(160px, 1.2fr) 150px 130px minmax(220px, 1.6fr) auto;
  gap: 12px;
  align-items: center;
}
.roster-labels {
  padding: 0 14px 7px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 780;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.source-row {
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.025);
}
.source-main strong { display: block; }
.source-main span, .source-actions-copy p {
  display: block;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .82rem;
}
.source-status { display: flex; flex-wrap: wrap; gap: 5px; }
.source-rate { font-weight: 760; }
.source-rate.muted { color: var(--muted); font-weight: 500; }
.source-actions-copy strong { color: var(--text); }
.source-buttons { display: flex; gap: 6px; justify-content: flex-end; }
.source-buttons a { text-decoration: none; }

@media (max-width: 900px) {
  .roster-labels { display: none; }
  .source-row { grid-template-columns: 1fr auto; }
  .source-main, .source-actions-copy { grid-column: 1 / -1; }
  .source-status, .source-rate { align-self: start; }
  .source-buttons { grid-column: 2; grid-row: 2; }
}

@media (max-width: 600px) {
  .policy-grid { grid-template-columns: 1fr; }
  .roster-heading { align-items: flex-start; flex-direction: column; }
  .source-row { grid-template-columns: 1fr; }
  .source-main, .source-actions-copy, .source-buttons { grid-column: auto; grid-row: auto; }
  .source-buttons { justify-content: flex-start; }
}
