.back-btn { margin-bottom: 16px; }
.detail-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.detail-head h1 { font-size: 1.8rem; }
.data-badge { font-size: 0.72rem; padding: 5px 10px; border-radius: 20px; white-space: nowrap; }
.data-badge.live { background: color-mix(in srgb, var(--color-green) 13%, transparent); color: var(--color-green); }
.data-badge.est { background: color-mix(in srgb, var(--text-faint) 15%, transparent); color: var(--text-muted); }

.detail-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px; margin-bottom: 16px; }
.small-label { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }

/* ----------------------------------------------------------- verdict + gauge */
.verdict-flex { display: flex; align-items: center; gap: 22px; margin: 14px 0 6px; }
.gauge-wrap { position: relative; width: 110px; height: 110px; flex-shrink: 0; }
.gauge { width: 110px; height: 110px; transform: rotate(-90deg); }
.gauge-track { fill: none; stroke: var(--surface-3); stroke-width: 8; }
.gauge-fill { fill: none; stroke-width: 8; stroke-linecap: round; filter: drop-shadow(0 0 6px color-mix(in srgb, var(--accent-color) 35%, transparent)); transition: stroke-dasharray 0.2s linear; }
.gauge-val { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; font-weight: 600; }
.verdict-text { flex: 1; min-width: 0; }
.verdict-headline { display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.verdict-word { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; }
.verdict-band { font-size: 0.95rem; color: var(--text-secondary); }
.band-scale { display: flex; justify-content: space-between; margin-top: 5px; }
.band-scale span { font-size: 0.68rem; color: var(--text-faint); }
.verdict-reason { margin-top: 14px; font-size: 0.9rem; line-height: 1.6; }

/* ----------------------------------------------------------- drivers */
.driver-row { display: grid; grid-template-columns: 1fr 90px 36px; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--hairline); }
.driver-row:last-child { border-bottom: none; }
.driver-lbl { font-size: 0.84rem; }
.driver-detail {
  display: inline-block; margin-left: 8px; font-size: 0.68rem;
  color: var(--text-faint); background: var(--surface-2);
  padding: 1px 7px; border-radius: 5px; vertical-align: 1px;
}
.driver-note { font-size: 0.74rem; line-height: 1.5; margin-top: 12px; }
.driver-bar { height: 6px; background: var(--surface-3); border-radius: 3px; position: relative; overflow: hidden; }
.driver-fill { position: absolute; top: 0; height: 6px; border-radius: 3px; animation: driverIn 0.8s cubic-bezier(0.22,1,0.36,1) both; }
.driver-fill.pos { left: 50%; background: var(--color-green); transform-origin: left center; }
.driver-fill.neg { right: 50%; background: var(--color-coral); transform-origin: right center; }
@keyframes driverIn { from { transform: scaleX(0); } }
.driver-val { text-align: right; font-size: 0.82rem; }
.driver-val.pos { color: var(--color-green); }
.driver-val.neg { color: var(--color-coral); }

/* ----------------------------------------------------------- blueprint */
.blueprint-card { margin-bottom: 16px; padding: 20px 20px 16px; }
.bp-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.bp-scroll { overflow-x: auto; }
.bp-grid-line { stroke: var(--bp-grid); }
.blueprint { width: 100%; min-width: 640px; display: block; }
.bp-fuselage { fill: color-mix(in srgb, var(--surface-2) 60%, transparent); stroke: var(--bp-line); stroke-width: 1.5; }
.bp-wing { fill: color-mix(in srgb, var(--accent-data) 5%, transparent); stroke: var(--bp-line-soft); stroke-width: 1; }
.bp-center { stroke: var(--bp-line-soft); stroke-width: 1; stroke-dasharray: 7 7; }
.bp-divider { stroke: var(--bp-line); stroke-width: 1; stroke-dasharray: 3 4; }
.bp-label { font-family: var(--font-mono); font-size: 11px; fill: var(--bp-line); letter-spacing: 0.18em; }
.bp-fwd { fill: var(--text-faint); }
.bp-type { font-family: var(--font-mono); font-size: 11px; fill: var(--text-faint); letter-spacing: 0.14em; }
.bp-tick { font-family: var(--font-mono); font-size: 9px; fill: var(--text-faint); }
.bp-seat.open      { fill: color-mix(in srgb, var(--accent-data) 14%, transparent); stroke: color-mix(in srgb, var(--accent-data) 55%, transparent); stroke-width: 1; }
.bp-seat.open-prem { fill: color-mix(in srgb, var(--accent-data) 30%, transparent); stroke: var(--accent-data); stroke-width: 1.2; }
.bp-seat.occ       { fill: color-mix(in srgb, var(--text-faint) 25%, transparent); stroke: color-mix(in srgb, var(--text-faint) 50%, transparent); stroke-width: 1; }
/* Layout preview: structure only, no occupancy claims */
.bp-seat.pend      { fill: none; stroke: color-mix(in srgb, var(--text-faint) 45%, transparent); stroke-width: 1; stroke-dasharray: 2 2; }
.bp-seat.pend-prem { fill: color-mix(in srgb, var(--accent-data) 8%, transparent); stroke: color-mix(in srgb, var(--accent-data) 50%, transparent); stroke-width: 1; stroke-dasharray: 3 2; }
.bp-key.pend       { background: none; border: 1px dashed color-mix(in srgb, var(--text-faint) 50%, transparent); }
.bp-key.pend-prem  { background: color-mix(in srgb, var(--accent-data) 8%, transparent); border: 1px dashed color-mix(in srgb, var(--accent-data) 50%, transparent); }

/* sweep countdown */
.sweep-bar {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 14px; padding: 12px 16px;
  border: 1px solid var(--hairline); border-radius: var(--radius-md);
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent-data) 6%, transparent), transparent 60%);
}
.sweep-bar .awaiting-pulse { margin-top: 0; }
.sweep-text { display: flex; align-items: baseline; gap: 12px; }
.sweep-label { font-size: 0.78rem; font-weight: 600; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.06em; }
.sweep-clock { font-size: 1.25rem; font-weight: 600; color: var(--accent-color); text-shadow: none; font-variant-numeric: tabular-nums; }
.sweep-note { flex-basis: 100%; font-size: 0.78rem; margin: 0; line-height: 1.5; }
.bp-legend { display: flex; gap: 18px; justify-content: center; margin-top: 10px; font-size: 0.76rem; color: var(--text-muted); flex-wrap: wrap; }
.bp-legend span { display: inline-flex; align-items: center; gap: 6px; }
.bp-key { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.bp-key.open      { background: color-mix(in srgb, var(--accent-data) 14%, transparent); border: 1px solid color-mix(in srgb, var(--accent-data) 55%, transparent); }
.bp-key.open-prem { background: color-mix(in srgb, var(--accent-data) 30%, transparent); border: 1px solid var(--accent-data); }
.bp-key.occ       { background: color-mix(in srgb, var(--text-faint) 25%, transparent); border: 1px solid color-mix(in srgb, var(--text-faint) 50%, transparent); }

/* ----------------------------------------------------------- inventory / buckets */
.inv-line { display: flex; align-items: baseline; gap: 10px; margin: 10px 0 6px; }
.inv-big { font-size: 2rem; font-weight: 600; }
.inv-sub { font-size: 0.85rem; }

.fare-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fare-chip { font-family: var(--font-mono); font-size: 0.78rem; padding: 4px 9px; border-radius: var(--radius-sm); }
.fare-chip.open { background: color-mix(in srgb, var(--color-green) 13%, transparent); color: var(--color-green); }
.fare-chip.closed { background: var(--surface-2); color: var(--text-faint); }

/* awaiting / empty states with a live pulse */
.awaiting { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0 4px; }
.awaiting p { font-size: 0.84rem; line-height: 1.55; margin: 0; }
.awaiting-pulse {
  width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; flex-shrink: 0;
  background: var(--accent-color); opacity: 0.8;
  animation: awaitPulse 1.8s ease-in-out infinite;
}
@keyframes awaitPulse { 0%,100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent-data) 45%, transparent); } 50% { box-shadow: 0 0 0 8px transparent; } }

/* ----------------------------------------------------------- waitlist / cta / alternates */
.waitlist-card { margin-bottom: 16px; }
.wl-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 0.85rem; }
.wl-table th { text-align: left; font-size: 0.7rem; color: var(--text-muted); text-transform: uppercase; padding: 6px 8px; border-bottom: 1px solid var(--hairline); }
.wl-table td { padding: 7px 8px; border-bottom: 1px solid var(--hairline); }
.wl-table tr.cleared td { color: var(--text-muted); }

.track-cta { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.track-cta-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.track-cta-actions .btn { text-decoration: none; }

.alt-row { display: grid; grid-template-columns: 110px 1fr 60px 80px; gap: 10px; align-items: center; padding: 9px 0;
  border-bottom: 1px solid var(--hairline); cursor: pointer; font-size: 0.85rem; transition: var(--transition-fast); }
.alt-row:last-child { border-bottom: none; }
.alt-row:hover { color: var(--text-primary); padding-left: 4px; }
.alt-go { text-align: right; font-size: 0.74rem; color: var(--text-faint); transition: var(--transition-fast); }
.alt-row:hover .alt-go { color: var(--accent-color); }

@media (max-width: 760px) {
  .detail-grid { grid-template-columns: 1fr; }
  .verdict-flex { gap: 16px; }
  .gauge-wrap, .gauge { width: 92px; height: 92px; }
  .gauge-val { font-size: 1.05rem; }
  .track-cta { flex-direction: column; align-items: stretch; text-align: center; }
  .track-cta-actions .btn { flex: 1; justify-content: center; }
  .alt-row { grid-template-columns: 90px 1fr 52px; }
  .alt-go { display: none; }
}
