:root {
  --ink: #15120d;
  --ink-2: #221d16;
  --paper: #f4f5ef;
  --paper-2: #ebe9e5;
  --white: #ffffff;
  --muted: #766d60;
  --line: #dddad5;
  --green: #473924;
  --green-2: #7b633f;
  --lime: #c8f04b;
  --red: #d65145;
  --amber: #d9a52e;
  --blue: #3478d4;
  --shadow: 0 18px 48px rgba(8, 22, 17, .09);
  --radius: 22px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background:
    radial-gradient(circle at 88% 4%, rgba(200, 240, 75, .13), transparent 22rem),
    var(--paper);
  color: var(--ink);
  font-family: Futura, "Avenir Next", Avenir, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

button, input { font: inherit; }

button { color: inherit; }

button:focus-visible, input:focus-visible {
  outline: 3px solid rgba(23, 163, 110, .32);
  outline-offset: 3px;
}

.app-shell {
  display: grid;
  grid-template-columns: 258px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 26px 20px;
  background: var(--ink);
  color: var(--white);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.brand {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 4px 27px;
}

.brand-logo {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  object-fit: contain;
  filter: drop-shadow(0 7px 14px rgba(0, 0, 0, .22));
}

.brand-copy { min-width: 0; }
.brand strong { display: block; font-size: 17px; letter-spacing: -.03em; }
.brand span { color: #b7b0a6; font-size: 12px; }

.view-nav { display: grid; gap: 8px; }

.view-link {
  width: 100%;
  min-height: 47px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  color: #c5c0b9;
  display: flex;
  align-items: center;
  gap: 11px;
  text-align: left;
  cursor: pointer;
  transition: .2s ease;
}

.view-link:hover { color: var(--white); background: rgba(255,255,255,.055); }
.view-link.active { color: var(--white); background: rgba(200, 240, 75, .1); border-color: rgba(200, 240, 75, .18); }
.nav-icon { width: 22px; text-align: center; font-size: 17px; }

.sidebar-rule { height: 1px; background: rgba(255,255,255,.1); margin: 23px 4px; }

.phase-list { display: grid; gap: 6px; }
.phase-label { margin: 0 7px 10px; color: #948a7c; font-size: 11px; text-transform: uppercase; letter-spacing: .14em; }

.phase-button {
  width: 100%;
  padding: 9px 8px;
  border: 0;
  background: transparent;
  display: grid;
  grid-template-columns: 32px 1fr 18px;
  align-items: center;
  gap: 9px;
  color: #968c7e;
  text-align: left;
  cursor: pointer;
}

.phase-button:hover, .phase-button.active { color: var(--white); }
.phase-button.visited .phase-number { border-color: var(--green-2); color: var(--lime); }
.phase-button.active .phase-number { background: var(--lime); border-color: var(--lime); color: var(--ink); }

.phase-number {
  width: 30px;
  height: 30px;
  border: 1px solid #514b43;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
}

.phase-button span:nth-child(2) { font-size: 14px; }
.phase-tick { color: var(--lime); font-size: 12px; }

.sidebar-foot {
  margin-top: auto;
  padding: 18px 12px 4px;
  color: #988e81;
  font-size: 12px;
}

.sidebar-foot b { color: #d0ccc6; font-weight: 600; }

.main { min-width: 0; padding: 0 34px 38px; }

.topbar {
  min-height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--line);
}

.topbar-start { display: flex; align-items: center; gap: 13px; min-width: 0; }
.mobile-brand { display: none; align-items: center; gap: 8px; }
.mobile-brand img { width: 35px; height: 35px; object-fit: contain; }
.mobile-brand strong { font-size: 15px; letter-spacing: -.03em; }

.breadcrumb { color: var(--muted); font-size: 14px; }
.breadcrumb b { color: var(--ink); font-weight: 700; }

.top-controls { display: flex; align-items: center; gap: 12px; }

.segmented {
  display: inline-flex;
  padding: 4px;
  background: var(--paper-2);
  border-radius: 13px;
}

.segmented button {
  min-height: 36px;
  padding: 0 13px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.segmented button.active { background: var(--white); color: var(--ink); box-shadow: 0 3px 12px rgba(8,22,17,.08); }

.icon-button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.mobile-menu { display: none; }

.content { max-width: 1500px; margin: 0 auto; }

.page-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 0 22px;
}

.eyebrow { color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin: 5px 0 7px; font-size: clamp(29px, 4vw, 46px); line-height: 1.02; letter-spacing: -.055em; }
.page-head p { max-width: 650px; margin-bottom: 0; color: var(--muted); }

.status-chip {
  flex: 0 0 auto;
  padding: 11px 15px;
  border: 1px solid #d2cec8;
  border-radius: 999px;
  background: rgba(255,255,255,.58);
  color: #4f4941;
  font-size: 13px;
  font-weight: 700;
}

.work-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(290px, .72fr);
  gap: 20px;
  align-items: start;
}

.card {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(216,221,213,.9);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.workspace-card { overflow: hidden; }

.card-head {
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.step-id { display: flex; align-items: center; gap: 13px; }
.step-badge { width: 37px; height: 37px; border-radius: 12px; background: var(--ink); color: var(--lime); display: grid; place-items: center; font-size: 13px; font-weight: 900; }
.card-head h2 { margin: 0; font-size: 20px; letter-spacing: -.025em; }
.card-head p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }

.card-body { padding: 24px; }

.stage-grid { display: grid; grid-template-columns: minmax(265px, .88fr) minmax(300px, 1.12fr); gap: 22px; }

.control-block + .control-block { margin-top: 22px; }
.control-label { margin-bottom: 9px; display: flex; justify-content: space-between; gap: 12px; font-size: 14px; font-weight: 800; }
.control-label small { color: var(--muted); font-weight: 500; }

.choice-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.choice-row.two { grid-template-columns: repeat(2, 1fr); }

.choice {
  min-height: 46px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  color: #5e574d;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: .18s ease;
}

.choice:hover { border-color: #ada69b; }
.choice.active { background: var(--ink); border-color: var(--ink); color: var(--white); box-shadow: 0 6px 18px rgba(8,22,17,.14); }

.preset-row { display: flex; gap: 7px; flex-wrap: wrap; }
.preset {
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f7f6f5;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.preset:hover { border-color: var(--green-2); color: var(--green); }

.visual-panel {
  position: relative;
  min-height: 376px;
  padding: 18px;
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(180deg, #1d170f 0%, #2e2518 100%);
  color: var(--white);
}

.visual-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .24;
  background-image: linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px);
  background-size: 34px 34px;
}

.visual-title { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.visual-title span { color: #b3aca2; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.visual-title strong { display: block; margin-top: 2px; font-size: 18px; }

.flight-svg, .delivery-svg { position: relative; z-index: 1; display: block; width: 100%; height: 272px; margin-top: 10px; overflow: visible; }

.legend { position: relative; z-index: 1; display: flex; gap: 16px; flex-wrap: wrap; color: #bdb7af; font-size: 11px; }
.legend i { display: inline-block; width: 18px; height: 2px; margin-right: 6px; vertical-align: middle; background: var(--lime); }
.legend i.dashed { background: repeating-linear-gradient(90deg, #fff 0 4px, transparent 4px 7px); }

.flight-stage { display: grid; gap: 22px; }
.flight-check-route { padding: 20px; border: 1px solid #d4d0cb; border-radius: 20px; background: linear-gradient(145deg,#f9f8f6 0%,#f3f1ee 100%); box-shadow: 0 18px 42px rgba(8,22,17,.07); }
.flight-check-head { display: grid; grid-template-columns: minmax(280px,.9fr) minmax(320px,1.1fr); align-items: end; gap: 24px; margin-bottom: 15px; }
.flight-check-head span { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.flight-check-head h3 { margin: 5px 0 0; font-size: 25px; letter-spacing: -.04em; }
.flight-check-head p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.flight-check-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.flight-check-card { min-width: 0; min-height: 166px; padding: 15px; border: 1px solid #dcd9d4; border-radius: 15px; background: rgba(255,255,255,.72); color: var(--ink); box-shadow: 0 8px 20px rgba(8,22,17,.045); text-align: left; cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.flight-check-card:hover { transform: translateY(-2px); border-color: #a0988c; background: var(--white); box-shadow: 0 14px 28px rgba(8,22,17,.09); }
.flight-check-card > span { display: block; margin-bottom: 7px; color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.flight-check-card strong { display: block; margin-bottom: 7px; font-size: 15px; line-height: 1.2; }
.flight-check-card small { display: block; color: #6e665a; font-size: 12px; line-height: 1.48; }
.flight-check-card i { display: block; margin-top: 11px; color: var(--green); font-size: 11px; font-style: normal; font-weight: 900; }
.route-context-banner { display: grid; grid-template-columns: 150px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid #d4d0ca; border-radius: 16px; background: #f5f3ef; box-shadow: 0 10px 24px rgba(8,22,17,.055); }
.route-context-banner > span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.route-context-banner b { display: block; margin-bottom: 2px; font-size: 14px; }
.route-context-banner p { margin: 0; color: #635c51; font-size: 12px; line-height: 1.45; }
.route-context-banner button { min-height: 36px; padding: 0 11px; border: 1px solid #c8c3bc; border-radius: 10px; background: var(--white); color: var(--green); font-size: 11px; font-weight: 900; cursor: pointer; }
.route-context-banner + .body-library-head { margin-top: 20px; }
.vertical-flight-module { overflow: hidden; border: 1px solid #d6d2cd; border-radius: 20px; background: #f8f7f5; }
.vertical-flight-head { display: grid; grid-template-columns: minmax(260px,.8fr) minmax(320px,1.2fr); align-items: end; gap: 28px; padding: 22px; border-bottom: 1px solid #e2dfdb; }
.vertical-flight-head h3 { margin: 5px 0 0; font-size: 25px; letter-spacing: -.04em; }
.vertical-flight-head p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.flight-model-selector { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 14px 14px 0; padding: 13px 15px; border: 1px solid #d5d1cc; border-radius: 15px; background: var(--white); }
.flight-model-selector > div:first-child { display: grid; gap: 2px; }
.flight-model-selector > div:first-child span { color: var(--ink); font-size: 12px; font-weight: 900; }
.flight-model-selector > div:first-child small { color: var(--muted); font-size: 11px; }
.flight-model-selector .segmented { flex: 0 0 auto; }
.vertical-flight-layout { display: grid; grid-template-columns: minmax(310px,.82fr) minmax(420px,1.18fr); gap: 14px; padding: 14px; }
.vertical-flight-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-content: start; }
.flight-metric-control, .ground-control { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.flight-metric-control > div:first-child, .ground-control > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.flight-metric-control label, .ground-control span { color: var(--ink); font-size: 12px; font-weight: 900; }
.flight-metric-control output { color: var(--green); font-size: 14px; font-weight: 900; white-space: nowrap; }
.flight-metric-control input { width: 100%; accent-color: var(--green); }
.flight-metric-control .range-scale { margin-top: 4px; }
.flight-metric-spin { grid-column: 1 / -1; }
.flight-derived-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 10px; border: 1px solid #d3cfca; border-radius: 15px; background: #f3f1ee; }
.flight-derived-grid::before { grid-column: 1 / -1; content: 'RESULTADOS RECALCULADOS'; color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .11em; }
.flight-derived-card { min-width: 0; padding: 12px; border: 1px solid #dedbd6; border-radius: 12px; background: rgba(255,255,255,.92); }
.flight-derived-card span { display: block; color: #6b6358; font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.flight-derived-card strong { display: block; margin-top: 4px; color: var(--green); font-size: 20px; line-height: 1; }
.flight-derived-card small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.ground-control { grid-column: 1 / -1; }
.ground-control small { color: var(--muted); font-size: 11px; }
.ground-control .choice-row { gap: 7px; }
.ground-control .choice { min-height: 40px; font-size: 12px; }
.vertical-flight-visual { min-width: 0; padding: 18px; border-radius: 17px; background: linear-gradient(160deg,#17130c 0%,#292115 100%); color: var(--white); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); }
.vertical-flight-meta { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 16px; }
.vertical-flight-meta span { color: #b1aaa0; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.vertical-flight-meta strong { grid-row: 1 / 3; grid-column: 2; color: var(--lime); font-size: 27px; line-height: 1; }
.vertical-flight-meta small { color: #c6c1ba; font-size: 11px; }
.flight-side-svg { display: block; width: 100%; height: auto; min-height: 240px; margin: 2px 0 4px; overflow: visible; }
.roll-reading { padding: 13px 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 13px; background: rgba(255,255,255,.055); }
.roll-reading span { display: block; margin-bottom: 5px; color: var(--lime); font-size: 10px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.roll-reading p { margin: 0; color: #d2cec9; font-size: 12px; line-height: 1.5; }
.vertical-flight-note { margin: 0 14px 14px; padding: 14px 16px; border-left: 4px solid var(--amber); border-radius: 0 12px 12px 0; background: #fff5df; color: #67512a; font-size: 13px; line-height: 1.55; }
.vertical-flight-note b { color: #3f2c08; }
.flight-factors-module { overflow: hidden; border: 1px solid #d5d1cc; border-radius: 20px; background: #f8f7f6; box-shadow: 0 16px 40px rgba(8,22,17,.06); }
.flight-factors-head { display: grid; grid-template-columns: minmax(280px,.85fr) minmax(360px,1.15fr); align-items: end; gap: 28px; padding: 22px 24px; border-bottom: 1px solid #e3e0dc; background: var(--white); }
.flight-factors-head h3 { margin: 5px 0 0; font-size: 25px; letter-spacing: -.04em; }
.flight-factors-head p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.factor-chain { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; align-items: stretch; gap: 8px; padding: 14px; border-bottom: 1px solid #e3e0dc; background: #f2f0ee; }
.factor-chain > div { min-width: 0; padding: 13px 14px; border: 1px solid #dcd9d5; border-radius: 13px; background: rgba(255,255,255,.9); }
.factor-chain b { display: grid; width: 25px; height: 25px; margin-bottom: 8px; place-items: center; border-radius: 8px; background: var(--ink); color: var(--lime); font-size: 10px; }
.factor-chain span { display: block; color: var(--ink); font-size: 13px; font-weight: 900; }
.factor-chain small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.factor-chain > i { align-self: center; color: #918778; font-size: 18px; font-style: normal; font-weight: 900; }
.flight-factors-layout { display: grid; grid-template-columns: minmax(330px,.82fr) minmax(440px,1.18fr); gap: 12px; padding: 14px; }
.flight-factor-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; align-content: start; }
.flight-factor-button { min-width: 0; min-height: 98px; padding: 13px 14px; border: 1px solid #dbd8d3; border-radius: 14px; background: var(--white); color: var(--ink); text-align: left; cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.flight-factor-button:hover { transform: translateY(-2px); border-color: #a69e92; box-shadow: 0 10px 24px rgba(8,22,17,.08); }
.flight-factor-button > span { display: block; color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.flight-factor-button strong { display: block; margin: 5px 0 4px; font-size: 14px; line-height: 1.2; }
.flight-factor-button small { display: block; color: var(--muted); font-size: 11px; }
.flight-factor-button.active { border-color: var(--ink); background: var(--ink); color: var(--white); box-shadow: 0 12px 28px rgba(8,22,17,.18); }
.flight-factor-button.active > span, .flight-factor-button.active small { color: #c8c3bc; }
.flight-factor-button.active strong { color: var(--lime); }
.flight-factor-detail { min-width: 0; padding: 22px; border-radius: 17px; background: linear-gradient(155deg,#17130c,#2b2316); color: var(--white); }
.flight-factor-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.flight-factor-detail-head span { color: var(--lime); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.flight-factor-detail-head b { padding: 6px 9px; border: 1px solid rgba(255,255,255,.12); border-radius: 9px; color: #d3cfc9; font-size: 11px; }
.flight-factor-detail h4 { margin: 10px 0 7px; font-size: 28px; letter-spacing: -.04em; }
.flight-factor-summary { margin: 0 0 18px; color: #d9d6d1; font-size: 16px; line-height: 1.55; }
.flight-factor-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.flight-factor-detail-grid section { min-width: 0; padding: 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 13px; background: rgba(255,255,255,.055); }
.flight-factor-detail-grid section > span { display: block; margin-bottom: 7px; color: var(--lime); font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.flight-factor-detail-grid p { margin: 0; color: #d2cec9; font-size: 14px; line-height: 1.55; }
.flight-factor-detail-grid .flight-factor-limit { grid-column: 1 / -1; border-color: rgba(255,189,105,.34); background: rgba(255,189,105,.09); }
.flight-factor-detail-grid .flight-factor-limit > span { color: var(--amber); }
.flight-model-boundary { display: grid; grid-template-columns: 210px minmax(0,1fr); gap: 18px; margin: 0 14px 14px; padding: 16px 18px; border-left: 4px solid var(--blue); border-radius: 0 13px 13px 0; background: #eaf3ff; }
.flight-model-boundary b { color: #224f77; font-size: 13px; }
.flight-model-boundary p { margin: 0; color: #395a77; font-size: 13px; line-height: 1.55; }

.insight-stack { display: grid; gap: 14px; }
.insight-card { padding: 19px; }
.insight-kicker { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.insight-card h3 { margin: 5px 0 8px; font-size: 21px; line-height: 1.12; letter-spacing: -.035em; }
.insight-card p { margin-bottom: 0; color: var(--muted); font-size: 14px; }

.evidence {
  padding: 18px 19px;
  background: var(--ink);
  color: var(--white);
  box-shadow: none;
}
.evidence h3 { margin: 0 0 11px; font-size: 15px; }
.evidence-list { display: grid; gap: 10px; }
.evidence-item { display: grid; grid-template-columns: 24px 1fr; gap: 9px; color: #c5c0b9; font-size: 13px; }
.evidence-item b { color: var(--lime); }

.warning {
  padding: 15px 17px;
  border: 1px solid #ead8a5;
  border-radius: 16px;
  background: #fff8e7;
  color: #665022;
  font-size: 13px;
}
.warning strong { color: #3f2d08; }

.workspace-footer {
  padding: 17px 24px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  background: #fafaf9;
}

.footer-note { color: var(--muted); font-size: 12px; }
.button-row { display: flex; gap: 9px; }
.btn {
  min-height: 44px;
  padding: 0 17px;
  border-radius: 13px;
  border: 1px solid var(--line);
  background: var(--white);
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
}
.btn:hover { border-color: #aca499; }
.btn.primary { background: var(--ink); border-color: var(--ink); color: var(--white); }
.btn.primary:hover { background: #2d261c; }
.btn:disabled { opacity: .38; cursor: not-allowed; }

.impact-module { display: grid; gap: 22px; }
.strike-layout { display: grid; grid-template-columns: minmax(290px,.82fr) minmax(360px,1.18fr); gap: 26px; align-items: start; }
.impact-controls .control-block + .control-block { margin-top: 17px; }
.impact-loft-control { display: grid; grid-template-columns: minmax(0,1fr) 58px; align-items: center; gap: 13px; }
.impact-loft-control strong { min-height: 42px; display: grid; place-items: center; border-radius: 11px; background: var(--ink); color: var(--lime); font-size: 15px; }
.clubface-wrap { display: grid; place-items: center; min-height: 360px; padding: 18px; border-radius: 18px; background: #efedea; }
.clubface-visual { width: 100%; max-width: 690px; }
.clubface-meta { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.clubface-meta span { color: var(--muted); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.clubface-meta strong { font-size: 17px; letter-spacing: -.02em; }
.clubface-photo {
  position: relative;
  width: 100%;
  aspect-ratio: var(--image-ratio);
  overflow: hidden;
  border: 1px solid #dad6d1;
  border-radius: 16px;
  background: var(--white);
  box-shadow: 0 18px 34px rgba(8,22,17,.11);
}
.clubface-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.clubface-photo > img.mirrored { transform: scaleX(-1); }
.impact-zone {
  position: absolute;
  inset: 0;
}
.strike-point {
  position: absolute;
  z-index: 2;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 2px solid rgba(255,255,255,.94);
  border-radius: 50%;
  background: rgba(8,22,17,.78);
  color: var(--white);
  box-shadow: 0 3px 12px rgba(0,0,0,.26);
  transform: translate(-50%, -50%);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .16s ease, background .16s ease;
}
.strike-point:hover { transform: translate(-50%, -50%) scale(1.06); background: var(--green); }
.strike-point.center-point:not(.active) { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(200,240,75,.18), 0 4px 14px rgba(0,0,0,.28); }
.strike-point.active { border-width: 3px; background: var(--red); box-shadow: 0 0 0 4px rgba(255,255,255,.88), 0 0 0 6px rgba(220,78,66,.2), 0 7px 18px rgba(0,0,0,.26); }
.strike-point.flight-suggested:not(.active) { border-color: var(--amber); background: #352b1d; box-shadow: 0 0 0 4px rgba(255,189,105,.22), 0 7px 18px rgba(0,0,0,.28); }
.strike-point.flight-suggested.active { box-shadow: 0 0 0 4px rgba(255,255,255,.88), 0 0 0 7px rgba(255,189,105,.42), 0 8px 20px rgba(0,0,0,.28); }
.strike-point.diagnostic-pulse { animation: strike-diagnostic-pulse 1.65s ease-in-out infinite; }
.control-block.diagnostic-target { padding: 14px; border: 1px solid #e0bd7d; border-radius: 15px; background: #fff8ea; animation: panel-diagnostic-pulse 2.1s ease-in-out infinite; }
.control-hypothesis { margin: 9px 1px 0; color: #70551f; font-size: 11px; line-height: 1.45; }
.control-hypothesis b { color: #493407; }
.impact-map-key { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin-top: 10px; }
.impact-map-key span { padding: 8px 9px; border-radius: 10px; background: rgba(8,22,17,.06); color: var(--muted); font-size: 11px; text-align: center; }
.impact-map-key b { display: block; color: var(--ink); font-size: 11px; }
.impact-help { margin: 11px 2px 0; color: var(--muted); font-size: 12px; }
.impact-help b { color: var(--ink); }

.impact-result { margin-top: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: #fafaf9; }
.impact-result h3 { margin-bottom: 6px; font-size: 23px; letter-spacing: -.035em; }
.impact-result p { color: var(--muted); font-size: 14px; }
.metric-pills { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.metric-pill { padding: 8px 10px; border-radius: 10px; background: var(--paper-2); color: #504a42; font-size: 12px; font-weight: 800; }
.impact-reading-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-top: 3px; }
.impact-reading-head h3 { margin: 4px 0 0; font-size: 24px; letter-spacing: -.035em; }
.impact-reading-head > span { color: var(--muted); font-size: 12px; font-weight: 800; }
.impact-consequence-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.impact-consequence-grid article { min-height: 164px; padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: #fafaf9; }
.impact-consequence-grid article > span, .impact-context-grid span { display: block; margin-bottom: 10px; color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.impact-consequence-grid strong { display: block; font-size: 14px; line-height: 1.48; }
.hosel-note { display: grid; grid-template-columns: 145px 1fr; gap: 16px; padding: 16px 18px; border: 1px solid #ebc788; border-radius: 15px; background: #fff4de; }
.hosel-note span { color: #895c14; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.hosel-note strong { font-size: 13px; line-height: 1.5; }
.impact-context-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.impact-context-grid > div { padding: 18px; border-radius: 16px; background: var(--ink); color: var(--white); }
.impact-context-grid p { margin: 0; color: #cec9c2; font-size: 14px; }
.impact-rule { margin-top: -2px; }

.compensation-panel { overflow: hidden; border: 1px solid #d4d0cb; border-radius: 20px; background: #f6f4f1; }
.compensation-head { display: grid; grid-template-columns: minmax(240px,.72fr) minmax(300px,1.28fr); align-items: end; gap: 24px; padding: 22px; border-bottom: 1px solid #dedbd7; }
.compensation-head h3 { margin: 5px 0 0; font-size: 25px; letter-spacing: -.035em; }
.compensation-head p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.compensation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 12px; }
.compensation-route { min-width: 0; padding: 20px; border-radius: 16px; }
.radar-route { background: var(--ink); color: var(--white); }
.visual-route { border: 1px solid var(--line); background: var(--white); color: var(--ink); }
.route-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.route-top > b { font-size: 12px; }
.radar-route .route-top > b { color: #b9b3aa; }
.visual-route .route-top > b { color: var(--muted); }
.route-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 6px 9px; border-radius: 9px; background: var(--lime); color: var(--ink); font-size: 11px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.visual-route .route-badge { background: var(--green); color: var(--white); }
.data-chip-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 18px; }
.data-chip-row span { padding: 6px 8px; border-radius: 8px; font-size: 10px; font-weight: 800; }
.radar-route .data-chip-row span { background: rgba(255,255,255,.1); color: #d0ccc6; }
.visual-route .data-chip-row span { background: var(--paper-2); color: #5e574c; }
.compensation-route ol { display: grid; gap: 13px; margin: 0; padding-left: 20px; }
.compensation-route li { padding-left: 4px; font-size: 13px; line-height: 1.5; }
.compensation-route li::marker { color: var(--lime); font-weight: 900; }
.visual-route li::marker { color: var(--green); }
.compensation-route li b { display: block; margin-bottom: 2px; }
.compensation-exit { display: grid; grid-template-columns: 130px 1fr; gap: 16px; margin: 0 12px 12px; padding: 16px 18px; border-radius: 14px; background: #dff08c; color: var(--ink); }
.compensation-exit span { font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.compensation-exit strong { font-size: 13px; line-height: 1.48; }
.compensation-note { margin: 0; padding: 2px 20px 20px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.compensation-note b { color: var(--ink); }

.slider-grid { display: grid; gap: 17px; }
.input-provenance { display: grid; gap: 3px; margin-top: 14px; padding: 13px 15px; border-left: 4px solid var(--blue); border-radius: 0 12px 12px 0; background: #eef5ff; color: #31516f; }
.input-provenance b { font-size: 14px; }
.input-provenance span { font-size: 13px; line-height: 1.45; }
.slider-row { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.slider-row.diagnostic-target { padding: 12px; border: 1px solid #e0bd7d; border-radius: 14px; background: #fff8ea; animation: panel-diagnostic-pulse 2.1s ease-in-out infinite; }
.slider-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.slider-head label { font-size: 14px; font-weight: 800; }
.slider-value { min-width: 61px; text-align: right; color: var(--green); font-weight: 900; }
.metric-hypothesis { display: block; margin: -2px 0 8px; color: #76591f; font-size: 11px; font-weight: 750; line-height: 1.4; }
input[type="range"] { width: 100%; accent-color: var(--green); cursor: pointer; }
.range-scale { display: flex; justify-content: space-between; color: #9c9385; font-size: 10px; }

.club-delivery-module { display: grid; gap: 18px; }
.delivery-svg { height: 230px; }
.observation-stack { display: grid; gap: 13px; margin-top: 20px; }
.observation-block { padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.observation-block .control-label { margin-bottom: 8px; }
.observation-strike { padding: 15px 16px; border: 1px solid #d7d3cd; border-radius: 14px; background: #f5f3ef; }
.observation-strike span { display: block; color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.observation-strike strong { display: block; margin: 4px 0 2px; font-size: 17px; }
.observation-strike small { color: var(--muted); font-size: 12px; }
.no-radar-panel { min-height: 600px; }
.no-radar-svg { position: relative; z-index: 1; display: block; width: 100%; height: 330px; margin: 8px 0 2px; }
.qualitative-summary { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.qualitative-summary > div { min-width: 0; padding: 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; background: rgba(255,255,255,.07); }
.qualitative-summary span { display: block; margin-bottom: 5px; color: #b1aa9f; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.qualitative-summary b { display: block; color: var(--white); font-size: 13px; line-height: 1.42; }
.qualitative-analysis .delivery-chain article { background: #fff; }
.spin-loft-equation { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto 1fr auto 1.25fr; align-items: center; gap: 8px; margin-top: 6px; padding: 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: rgba(3,13,10,.36); }
.spin-loft-equation span { min-width: 0; }
.spin-loft-equation small { display: block; margin-bottom: 2px; color: #b1aa9f; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.spin-loft-equation b { color: var(--white); font-size: 15px; }
.spin-loft-equation i { color: #978d7f; font-size: 18px; font-style: normal; font-weight: 800; }
.spin-loft-equation .equation-result { padding: 8px 10px; border-radius: 10px; background: var(--lime); }
.spin-loft-equation .equation-result small, .spin-loft-equation .equation-result b { color: var(--ink); }
.delivery-summary { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.mini-metric { padding: 11px; border-radius: 12px; background: rgba(255,255,255,.08); }
.mini-metric span { display: block; color: #b1aa9f; font-size: 10px; }
.mini-metric b { font-size: 15px; color: var(--white); }
.delivery-analysis { overflow: hidden; border: 1px solid var(--line); border-radius: 19px; background: #f9f8f7; }
.delivery-analysis-head { display: grid; grid-template-columns: minmax(260px,.8fr) minmax(320px,1.2fr); align-items: end; gap: 22px; padding: 21px; border-bottom: 1px solid var(--line); }
.delivery-analysis-head h3 { margin: 5px 0 0; font-size: 24px; letter-spacing: -.035em; }
.delivery-analysis-head p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.delivery-chain { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; padding: 10px; }
.delivery-chain article { padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.delivery-chain article > span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.delivery-chain h4 { margin: 8px 0 7px; font-size: 15px; }
.delivery-chain p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.delivery-source { display: grid; grid-template-columns: 110px 1fr; gap: 15px; margin: 0 10px 10px; padding: 15px 17px; border-radius: 13px; }
.delivery-source.measured { background: var(--ink); color: var(--white); }
.delivery-source.estimated { background: #ece8e2; color: var(--ink); }
.delivery-source span { color: var(--lime); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.delivery-source.estimated span { color: var(--green); }
.delivery-source strong { font-size: 13px; line-height: 1.48; }
.delivery-caveat { margin: 0; padding: 2px 20px 18px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.delivery-caveat b { color: var(--ink); }

.trackman-evidence { margin-top: 26px; overflow: hidden; border: 1px solid #3d3427; border-radius: 20px; background: #14100b; color: var(--white); box-shadow: 0 18px 42px rgba(7,24,18,.12); }
.trackman-evidence-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid rgba(255,255,255,.1); }
.trackman-evidence-head > div:first-child { display: flex; align-items: center; gap: 13px; }
.trackman-evidence-head h3 { margin: 4px 0 0; color: var(--white); font-size: 23px; letter-spacing: -.035em; }
.trackman-mark, .measurement-mark { width: 43px; height: 43px; border-radius: 13px; background: var(--lime); color: var(--ink); display: grid; place-items: center; font-size: 13px; font-weight: 950; letter-spacing: -.02em; }
.trackman-evidence .insight-kicker { color: #b9b3aa; }
.evidence-levels { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.evidence-levels span { position: relative; padding: 7px 9px 7px 22px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; color: #d2cec7; font-size: 11px; font-weight: 800; }
.evidence-levels span::before { content: ''; position: absolute; left: 9px; top: 50%; width: 7px; height: 7px; border-radius: 50%; transform: translateY(-50%); }
.evidence-levels .measured::before { background: var(--lime); }
.evidence-levels .derived::before { background: #50a8ff; }
.evidence-levels .hypothesis::before { background: #f2b65d; }
.trackman-evidence-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: rgba(255,255,255,.09); }
.trackman-evidence-grid article { min-width: 0; padding: 20px 22px; background: #1a150d; }
.trackman-evidence-grid article > span { display: block; margin-bottom: 8px; color: var(--lime); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.trackman-evidence-grid p { margin: 0; color: #cfcbc4; font-size: 14px; line-height: 1.58; }
.trackman-source-row { display: grid; grid-template-columns: 170px minmax(0,1fr); align-items: center; gap: 18px; padding: 15px 22px 17px; background: #110e09; }
.trackman-source-row > span { color: #a49c90; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.trackman-source-row > div { display: flex; flex-wrap: wrap; gap: 7px; }
.trackman-source-row button { display: inline-flex; align-items: center; gap: 5px; min-height: 31px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.13); border-radius: 9px; background: transparent; color: var(--white); font-size: 12px; font-weight: 800; text-decoration: none; cursor: pointer; transition: .16s ease; }
.trackman-source-row button:hover { border-color: var(--lime); color: var(--lime); }
.trackman-source-row button span { color: var(--lime); }

.hypothesis-intro { display: flex; justify-content: space-between; gap: 22px; margin-bottom: 19px; }
.hypothesis-intro p { max-width: 720px; margin: 0; color: var(--muted); }
.confidence { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 12px; }
.confidence-line { display: flex; gap: 3px; }
.confidence-line i { width: 18px; height: 6px; border-radius: 3px; background: #e1deda; }
.confidence-line i.on { background: var(--amber); }

.hypothesis-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.hypothesis-card {
  position: relative;
  padding: 18px 18px 17px 49px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fcfbfa;
  cursor: pointer;
}
.hypothesis-card:hover { border-color: #b2aca2; }
.hypothesis-card.selected { border-color: var(--green-2); background: #f9f7f4; }
.hypothesis-card input { position: absolute; left: 18px; top: 20px; width: 18px; height: 18px; accent-color: var(--green); }
.hypothesis-card h3 { margin: 0 0 5px; font-size: 15px; }
.hypothesis-card p { margin: 0; color: var(--muted); font-size: 12px; }
.test-tag { display: inline-block; margin-top: 10px; padding: 5px 7px; border-radius: 7px; background: var(--paper-2); color: #544e44; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }

.body-library-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.body-library-head h3 { margin: 5px 0 5px; font-size: 27px; letter-spacing: -.04em; }
.body-library-head p { max-width: 720px; margin: 0; color: var(--muted); font-size: 14px; }
.body-count { flex: 0 0 auto; min-width: 126px; padding: 13px 15px; border-radius: 15px; background: var(--ink); color: var(--white); text-align: center; }
.body-count b { display: block; color: var(--lime); font-size: 24px; line-height: 1; }
.body-count span { color: #bbb5ac; font-size: 11px; }

.body-phase-tabs {
  display: flex;
  gap: 7px;
  margin-bottom: 17px;
  padding-bottom: 2px;
  overflow-x: auto;
  scrollbar-width: none;
}

.body-phase-tabs button {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 0 12px 0 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8f8f7;
  color: #635c51;
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.body-phase-tabs button span { min-width: 22px; height: 22px; border-radius: 7px; background: var(--paper-2); display: grid; place-items: center; font-size: 10px; }
.body-phase-tabs button.active { background: var(--ink); border-color: var(--ink); color: var(--white); }
.body-phase-tabs button.active span { background: var(--lime); color: var(--ink); }
.body-phase-tabs button.flight-suggested:not(.active) { border-color: #dfbd7f; background: #fff8e8; box-shadow: inset 0 0 0 1px rgba(242,182,93,.18); }
.body-phase-tabs button.active.flight-suggested { box-shadow: inset 0 0 0 2px var(--amber); }

.body-pattern-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; align-items: start; }
.body-pattern-card { border: 1px solid var(--line); border-radius: 16px; background: #fcfbfa; overflow: hidden; transition: .18s ease; }
.body-pattern-card:hover { border-color: #b7b1a8; }
.body-pattern-card.expanded { grid-column: 1 / -1; border-color: #a39b8f; box-shadow: 0 12px 28px rgba(8,22,17,.07); }
.body-pattern-card.selected { border-color: var(--green-2); box-shadow: inset 0 0 0 1px var(--green-2); }
.body-pattern-card.flight-suggested { border-color: #dfbd7f; background: #fffbf1; box-shadow: 0 10px 24px rgba(114,79,20,.07); }
.body-pattern-card.flight-suggested.expanded { border-color: #c99640; box-shadow: 0 14px 30px rgba(114,79,20,.10); }

.body-pattern-summary {
  width: 100%;
  min-height: 88px;
  padding: 15px;
  border: 0;
  background: transparent;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) 24px;
  align-items: start;
  gap: 11px;
  text-align: left;
  cursor: pointer;
}

.body-index { width: 31px; height: 31px; border-radius: 10px; background: var(--paper-2); color: var(--green); display: grid; place-items: center; font-size: 10px; font-weight: 900; }
.body-pattern-summary b { display: block; margin: 1px 0 4px; font-size: 14px; }
.route-flag { display: inline-block; margin-left: 8px; padding: 3px 6px; border-radius: 6px; background: #f5d494; color: #654512; font-size: 9px; font-style: normal; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; vertical-align: 1px; }
.body-pattern-summary small { display: block; color: var(--muted); font-size: 12px; line-height: 1.35; }
.body-chevron { color: var(--green); font-size: 21px; line-height: 1.2; text-align: center; }

.body-pattern-detail { padding: 0 17px 18px 62px; }
.quick-fix { margin-bottom: 14px; padding: 15px 17px; border-radius: 14px; background: var(--ink); color: var(--white); }
.quick-fix span { display: block; margin-bottom: 3px; color: var(--lime); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.quick-fix strong { font-size: 20px; letter-spacing: -.025em; }
.quick-fix small { display: block; margin-top: 7px; color: #bfb9b0; font-size: 11px; line-height: 1.4; }
.body-flight-link { margin-bottom: 14px; padding: 14px; border: 1px solid #ccc6bd; border-radius: 15px; background: #f8f7f6; }
.body-flight-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.body-flight-title span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.body-flight-title b { color: #6d655a; font-size: 11px; }
.body-flight-chain { display: grid; grid-template-columns: minmax(0,1fr) 34px minmax(0,1fr); align-items: stretch; }
.body-flight-card { min-height: 126px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--white); }
.body-flight-card span { display: block; margin-bottom: 6px; font-size: 9px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.body-flight-card b { display: block; margin-bottom: 5px; color: var(--ink); font-size: 14px; }
.body-flight-card p, .body-flight-evidence p { margin: 0; color: #5c564c; font-size: 12px; line-height: 1.48; }
.body-flight-before { border-color: #e5c99b; background: #fff8eb; }
.body-flight-before span { color: #8a5d16; }
.body-flight-after { border-color: #c1a986; background: #f2ede5; }
.body-flight-after span { color: #52422a; }
.body-flight-arrow { display: grid; place-items: center; color: var(--green); font-size: 22px; font-weight: 900; }
.body-flight-evidence { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.body-flight-evidence > div { padding: 11px 12px; border-radius: 11px; background: rgba(255,255,255,.78); }
.body-flight-evidence span { display: block; margin-bottom: 4px; color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.body-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 14px; }
.body-detail-grid > div { padding: 12px 13px; border-radius: 12px; background: var(--paper); }
.body-detail-grid > .body-consequence { border: 1px solid #e7d3a9; background: #fff4de; }
.body-detail-grid > .body-consequence span { color: #8a5d16; }
.body-detail-grid span { display: block; margin-bottom: 4px; color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.body-detail-grid p { margin: 0; color: #635c51; font-size: 12px; line-height: 1.45; }
.pressure-guide { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-bottom: 14px; }
.pressure-guide > div { min-height: 120px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #f9f9f8; }
.pressure-guide span { display: block; margin-bottom: 7px; color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.pressure-guide p { margin: 0; color: #5c564c; font-size: 12px; line-height: 1.5; }
.pressure-guide .pressure-feel { border-color: #d8d4cd; background: #f5f3ef; }
.pressure-guide .pressure-compete { border-color: #c1a986; background: #f2ede5; }
.pressure-guide .pressure-compete span { color: #52422a; }
.pressure-guide .pressure-doubt { border-color: #e5c99b; background: #fff4de; }
.pressure-guide .pressure-doubt span { color: #8a5d16; }
.body-trackman-check { display: grid; grid-template-columns: 145px minmax(0,1fr); align-items: center; gap: 10px 14px; margin-bottom: 14px; padding: 14px; border: 1px solid #d7d3ce; border-radius: 13px; background: #f5f3ef; }
.body-trackman-check > span { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.body-trackman-check > div { display: flex; flex-wrap: wrap; gap: 6px; }
.body-trackman-check b { padding: 6px 8px; border-radius: 8px; background: var(--white); color: #494135; font-size: 11px; }
.body-trackman-check small { grid-column: 2; color: var(--muted); font-size: 12px; line-height: 1.45; }
.body-use { min-width: 230px; }

@keyframes strike-diagnostic-pulse {
  0%,100% { transform: translate(-50%,-50%) scale(1); box-shadow: 0 0 0 3px rgba(255,189,105,.18), 0 7px 18px rgba(0,0,0,.25); }
  50% { transform: translate(-50%,-50%) scale(1.13); box-shadow: 0 0 0 9px rgba(255,189,105,.24), 0 11px 25px rgba(0,0,0,.32); }
}

@keyframes panel-diagnostic-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(242,182,93,0); }
  50% { box-shadow: 0 0 0 4px rgba(242,182,93,.19), 0 10px 24px rgba(114,79,20,.07); }
}

@media (prefers-reduced-motion: reduce) {
  .strike-point.diagnostic-pulse, .diagnostic-target { animation: none !important; }
}
.short-term-rule { padding: 14px 16px; border-left: 4px solid var(--lime); border-radius: 0 12px 12px 0; background: var(--ink); color: #e0ddd9; font-size: 12px; line-height: 1.5; }
.short-term-rule strong { color: var(--lime); }

.plan-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 20px; }
.priority-card { padding: 23px; border-radius: 19px; background: var(--ink); color: var(--white); }
.priority-card .rank { color: var(--lime); font-size: 11px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.priority-card h3 { margin: 8px 0 9px; font-size: 28px; line-height: 1.04; letter-spacing: -.045em; }
.priority-card p { color: #c3bdb5; font-size: 13px; }
.priority-rule { margin-top: 22px; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.12); color: #e0ddd9; font-size: 12px; }

.protocol { display: grid; gap: 10px; counter-reset: protocol; }
.protocol-step { position: relative; padding: 15px 15px 15px 54px; border: 1px solid var(--line); border-radius: 14px; background: #fcfbfa; }
.protocol-step::before { counter-increment: protocol; content: counter(protocol); position: absolute; left: 15px; top: 15px; width: 27px; height: 27px; border-radius: 9px; display: grid; place-items: center; background: var(--paper-2); font-size: 11px; font-weight: 900; }
.protocol-step b { display: block; font-size: 14px; }
.protocol-step span { color: var(--muted); font-size: 12px; }

.success-box { margin-top: 13px; padding: 14px; border-left: 4px solid var(--green-2); border-radius: 0 12px 12px 0; background: #f6f4f0; font-size: 13px; color: #493f30; }

.matrix-wrap { padding: 24px; }
.matrix-intro { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 18px; }
.matrix-intro h2 { margin-bottom: 4px; font-size: 27px; letter-spacing: -.04em; }
.matrix-intro p { margin: 0; color: var(--muted); }
.axis-label { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.matrix {
  display: grid;
  grid-template-columns: 116px repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.matrix-axis { min-height: 56px; display: grid; place-items: center; color: var(--muted); font-size: 12px; font-weight: 800; text-align: center; }
.matrix-cell {
  min-height: 150px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fcfbfa;
  cursor: pointer;
  text-align: left;
  transition: .18s ease;
}
.matrix-cell:hover { transform: translateY(-2px); border-color: var(--green-2); box-shadow: 0 10px 24px rgba(8,22,17,.08); }
.matrix-cell strong { display: block; margin-bottom: 3px; font-size: 14px; }
.matrix-cell span { color: var(--muted); font-size: 11px; }
.mini-flight { display: block; width: 100%; height: 72px; margin-bottom: 6px; }

.test-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 13px; padding: 24px; }
.test-card { padding: 19px; border: 1px solid var(--line); border-radius: 17px; background: #fcfbfa; }
.test-icon { width: 40px; height: 40px; margin-bottom: 15px; border-radius: 12px; background: var(--ink); color: var(--lime); display: grid; place-items: center; font-weight: 900; }
.test-card h3 { margin-bottom: 6px; font-size: 16px; }
.test-card p { color: var(--muted); font-size: 12px; }
.test-meta { padding-top: 11px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; color: #5a544a; font-size: 11px; font-weight: 800; }

.measurement-protocol { margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.measurement-protocol-head { display: grid; grid-template-columns: minmax(300px,.9fr) minmax(320px,1.1fr); align-items: end; gap: 28px; padding: 24px; border-bottom: 1px solid var(--line); }
.measurement-protocol-head h2 { margin: 5px 0 0; font-size: 27px; letter-spacing: -.04em; }
.measurement-protocol-head p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.measurement-protocol-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line); }
.measurement-protocol-grid article { padding: 20px; background: #f9f9f8; }
.measurement-protocol-grid b { display: grid; width: 34px; height: 34px; margin-bottom: 15px; place-items: center; border-radius: 11px; background: var(--ink); color: var(--lime); font-size: 11px; }
.measurement-protocol-grid span { display: block; margin-bottom: 7px; font-size: 15px; font-weight: 900; }
.measurement-protocol-grid p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.measurement-source-row { display: grid; grid-template-columns: 190px minmax(0,1fr); align-items: center; gap: 16px; padding: 16px 20px; background: var(--ink); }
.measurement-source-row > span { color: #b7b1a8; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.measurement-source-row > div { display: flex; flex-wrap: wrap; gap: 7px; }
.measurement-source-row button { display: inline-flex; align-items: center; gap: 5px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.13); border-radius: 9px; background: transparent; color: var(--white); font-size: 12px; font-weight: 800; text-decoration: none; cursor: pointer; }
.measurement-source-row button:hover, .measurement-source-row button span { color: var(--lime); }

.glossary-page { padding-bottom: 32px; }
.glossary-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 22px; }
.glossary-top > span { color: var(--muted); font-size: 12px; }
.glossary-back { min-height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.86); color: var(--ink); font-size: 13px; font-weight: 900; cursor: pointer; }
.glossary-back:hover { border-color: var(--green-2); color: var(--green); }
.glossary-layout { display: grid; grid-template-columns: minmax(240px,310px) minmax(0,1fr); gap: 18px; align-items: start; }
.glossary-index { max-height: calc(100vh - 170px); padding: 18px; overflow-y: auto; box-shadow: 0 12px 32px rgba(8,22,17,.06); }
.glossary-index-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.glossary-index-head span { font-size: 15px; font-weight: 900; }
.glossary-index-head small { color: var(--muted); font-size: 10px; }
.glossary-index section + section { margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line); }
.glossary-index h2 { margin: 0 0 8px; color: var(--green); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.glossary-index section > div { display: grid; gap: 5px; }
.glossary-term-button { width: 100%; min-height: 39px; padding: 8px 10px; border: 1px solid transparent; border-radius: 10px; background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #565046; text-align: left; cursor: pointer; }
.glossary-term-button:hover { background: var(--paper); color: var(--ink); }
.glossary-term-button.active { border-color: #453c2f; background: var(--ink); color: var(--white); }
.glossary-term-button span { font-size: 12px; font-weight: 800; }
.glossary-term-button small { color: #968c7e; font-size: 10px; white-space: nowrap; }
.glossary-term-button.active small { color: var(--lime); }
.glossary-detail { overflow: hidden; box-shadow: var(--shadow); }
.glossary-detail-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 27px 28px 23px; border-bottom: 1px solid var(--line); }
.glossary-detail-head h2 { margin: 5px 0 0; font-size: clamp(29px,4vw,44px); line-height: 1; letter-spacing: -.05em; }
.glossary-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.glossary-badges span { padding: 7px 9px; border-radius: 9px; background: var(--paper-2); color: #554f45; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.glossary-badges .measured { background: #dff08c; color: #363026; }
.glossary-badges .derived { background: #dcecff; color: #234a72; }
.glossary-badges .observed { background: #fff0cf; color: #73521e; }
.glossary-visual { margin: 0; padding: 18px 18px 0; background: #f0eeec; }
.glossary-visual-label { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 0 3px 11px; }
.glossary-visual-label span { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.glossary-visual-label b { color: var(--muted); font-size: 12px; }
.glossary-visual svg { display: block; width: 100%; height: auto; border-radius: 18px; box-shadow: 0 16px 30px rgba(7,24,18,.16); }
.glossary-visual figcaption { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 14px; margin: 12px 2px 0; padding: 14px 15px; border: 1px solid var(--line); border-bottom: 0; border-radius: 13px 13px 0 0; background: var(--white); }
.glossary-visual figcaption span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.glossary-visual figcaption p { margin: 0; color: #5f584e; font-size: 14px; line-height: 1.5; }
.glossary-definition { padding: 27px 28px; background: linear-gradient(135deg,#17130c,#2b2316); color: var(--white); }
.glossary-definition span, .glossary-detail-grid span { display: block; margin-bottom: 8px; color: var(--lime); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.glossary-definition p { max-width: 900px; margin: 0; color: #e9e7e4; font-size: 18px; line-height: 1.62; }
.glossary-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }
.glossary-detail-grid section { padding: 24px 27px; background: #fcfbfa; }
.glossary-detail-grid p { margin: 0; color: #5f584e; font-size: 15px; line-height: 1.62; }
.glossary-detail-grid .glossary-caution { grid-column: 1 / -1; background: #fff7e8; }
.glossary-detail-grid .glossary-caution span { color: #875b15; }
.glossary-method { margin: 18px; padding: 17px 19px; border-radius: 14px; background: #f1efec; }
.glossary-method b { display: block; margin-bottom: 5px; color: var(--green); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.glossary-method p { margin: 0; color: #565046; font-size: 14px; line-height: 1.55; }
.trademark-note { margin: 0 22px 22px; color: #8a8070; font-size: 12px; line-height: 1.5; }

.mobile-phase-bar { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.icon-button svg { width: 21px; height: 21px; }
.vocabulary-button { font-weight: 900; }
.mode-switch { border: 1px solid #dddad5; }

.menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 20;
  border: 0;
  background: rgba(3, 13, 10, .48);
  backdrop-filter: blur(2px);
}

.consistency-check { margin-top: 10px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(255,255,255,.055); }
.consistency-check span { display: block; margin-bottom: 4px; color: var(--lime); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.consistency-check p { margin: 0; color: #d2cec9; font-size: 13px; line-height: 1.5; }
.consistency-check.warning { border-color: rgba(255,189,105,.38); background: rgba(255,189,105,.09); }
.consistency-check.warning span { color: #ffbd69; }

.evidence-warning { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 16px; padding: 14px 24px; border-bottom: 1px solid #ead8a5; background: #fff5dc; color: #5c481f; }
.evidence-warning b { color: #7b5211; }
.evidence-warning span { font-size: 14px; line-height: 1.5; }
.field-evidence-strip { display: grid; grid-template-columns: minmax(240px,.8fr) minmax(300px,1.2fr); align-items: center; gap: 22px; margin-top: 22px; padding: 18px 20px; border-radius: 16px; background: var(--ink); color: var(--white); }
.field-evidence-strip span { display: block; margin-bottom: 4px; color: var(--lime); font-size: 12px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.field-evidence-strip b { font-size: 17px; line-height: 1.35; }
.field-evidence-strip p { margin: 0; color: #c7c2ba; font-size: 14px; line-height: 1.55; }

.competition-mode .body-detail-grid,
.competition-mode .body-flight-evidence,
.competition-mode .body-trackman-check { display: none; }
.competition-mode .body-pattern-detail { padding-bottom: 16px; }
.competition-mode .pressure-guide { grid-template-columns: repeat(3,minmax(0,1fr)); }

.report-page { max-width: 1180px; margin: 0 auto; padding: 28px 0 48px; }
.report-actions { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.report-sheet { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--white); box-shadow: var(--shadow); }
.report-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 32px 24px; }
.report-head h1 { margin: 3px 0 4px; font-size: 42px; }
.report-head p { margin: 0; color: var(--muted); }
.report-head img { width: 76px; height: 76px; object-fit: contain; }
.report-status { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: rgba(255,255,255,.12); color: var(--white); }
.report-status > * { min-width: 0; padding: 13px 18px; background: var(--ink); text-align: center; font-size: 13px; }
.report-status b { color: var(--lime); }
.report-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }
.report-grid article { min-width: 0; padding: 24px 28px; background: #fcfbfa; }
.report-grid article > span, .report-priority span { display: block; margin-bottom: 7px; color: var(--green); font-size: 12px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.report-grid h2, .report-priority h2 { margin: 0 0 8px; font-size: 25px; letter-spacing: -.035em; }
.report-grid p { margin: 0 0 12px; color: #544e45; font-size: 15px; line-height: 1.55; }
.report-grid small { color: var(--muted); font-size: 13px; line-height: 1.45; }
.report-priority { display: grid; grid-template-columns: .8fr 1.2fr; gap: 1px; background: rgba(255,255,255,.12); color: var(--white); }
.report-priority > div { padding: 25px 28px; background: #1a150d; }
.report-priority p { margin: 0 0 14px; color: #d0ccc6; font-size: 15px; line-height: 1.55; }
.report-priority p:last-child { margin-bottom: 0; }
.report-priority span { color: var(--lime); }
.report-foot { padding: 16px 28px; background: #f2f0ed; color: #615a4f; font-size: 13px; text-align: center; }

/* Working text stays readable on a tablet, laptop or projected training screen. */
.phase-label, .phase-number, .sidebar-foot, .brand span,
.visual-title span, .legend, .insight-kicker, .footer-note,
.clubface-meta span, .impact-map-key span, .impact-map-key b,
.impact-reading-head > span, .impact-consequence-grid article > span,
.impact-context-grid span, .hosel-note span, .route-badge,
.data-chip-row span, .range-scale, .observation-strike span,
.qualitative-summary span, .spin-loft-equation small, .mini-metric span,
.delivery-chain article > span, .delivery-source span, .trackman-evidence-grid article > span,
.trackman-source-row > span, .body-index, .quick-fix span,
.body-flight-title span, .body-flight-evidence span, .body-detail-grid span,
.pressure-guide span, .body-trackman-check > span, .priority-card .rank,
.axis-label, .test-meta, .measurement-source-row > span,
.glossary-index h2, .glossary-visual figcaption span,
.glossary-definition span, .glossary-detail-grid span,
.ground-control small, .vertical-flight-meta small, .roll-reading span,
.evidence-levels span, .test-tag, .body-count span,
.body-phase-tabs button span, .quick-fix small, .body-flight-title b,
.body-flight-card span, .body-trackman-check b, .protocol-step::before,
.matrix-cell span, .measurement-protocol-grid b, .glossary-index-head small,
.glossary-term-button small, .glossary-badges span, .glossary-visual-label span { font-size: 12px; }

.body-pattern-summary small, .body-flight-card p, .body-flight-evidence p,
.body-detail-grid p, .pressure-guide p, .delivery-chain p,
.protocol-step span, .test-card p, .matrix-cell span { font-size: 13px; }

@media (max-width: 1360px) {
  .work-grid { grid-template-columns: 1fr; }
  .insight-stack { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 1000px) {
  .stage-grid, .strike-layout, .plan-grid, .compensation-head, .compensation-grid, .delivery-analysis-head, .measurement-protocol-head { grid-template-columns: 1fr; }
  .insight-stack { grid-template-columns: 1fr; }
  .field-evidence-strip { grid-template-columns: 1fr; gap: 8px; }
  .flight-factors-head, .flight-factors-layout { grid-template-columns: 1fr; }
  .factor-chain { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .factor-chain > i { display: none; }
}

@media (max-width: 1120px) {
  .work-grid { grid-template-columns: 1fr; }
  .insight-stack { grid-template-columns: repeat(3, 1fr); }
  .stage-grid { grid-template-columns: 1fr; }
  .test-grid { grid-template-columns: repeat(2,1fr); }
  .impact-consequence-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .delivery-chain { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trackman-evidence-grid { grid-template-columns: 1fr; }
  .measurement-protocol-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vertical-flight-layout { grid-template-columns: 1fr; }
  .flight-check-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1000px) {
  .insight-stack { grid-template-columns: 1fr; }
  .strike-layout, .plan-grid, .compensation-head, .compensation-grid, .delivery-analysis-head, .measurement-protocol-head { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .app-shell { display: block; }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: 276px; z-index: 30; transform: translateX(-105%); transition: .25s ease; box-shadow: 16px 0 50px rgba(0,0,0,.22); }
  .sidebar.open { transform: translateX(0); }
  .main { padding: 0 18px 28px; }
  .mobile-menu { display: grid; }
  .mobile-brand { display: flex; }
  .stage-grid, .strike-layout, .plan-grid, .compensation-head, .compensation-grid, .delivery-analysis-head, .measurement-protocol-head { grid-template-columns: 1fr; }
  .insight-stack { grid-template-columns: 1fr; }
  .topbar { min-height: 70px; }
  .breadcrumb { display: none; }
  .page-head { padding-top: 22px; }
  .matrix { grid-template-columns: 74px repeat(3, minmax(120px,1fr)); min-width: 540px; }
  .matrix-scroll { overflow-x: auto; padding-bottom: 8px; }
  .mobile-phase-bar { display: flex; gap: 7px; overflow-x: auto; padding: 0 0 14px; scrollbar-width: none; }
  .mobile-step { flex: 0 0 auto; padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); font-size: 12px; font-weight: 800; }
  .mobile-step.visited { border-color: var(--green-2); color: var(--green); }
  .mobile-step.active { background: var(--ink); border-color: var(--ink); color: var(--white); }
  .body-detail-grid { grid-template-columns: 1fr; }
  .body-flight-evidence { grid-template-columns: 1fr; }
  .vertical-flight-head { grid-template-columns: 1fr; gap: 10px; }
  .flight-factors-head { gap: 9px; }
  .flight-model-boundary { grid-template-columns: 1fr; gap: 6px; }
  .flight-model-selector { align-items: stretch; flex-direction: column; gap: 9px; }
  .flight-model-selector .segmented { width: 100%; }
  .flight-model-selector .segmented button { flex: 1 1 0; }
  .flight-check-head { grid-template-columns: 1fr; gap: 8px; }
  .route-context-banner { grid-template-columns: 125px minmax(0,1fr); }
  .route-context-banner button { grid-column: 2; justify-self: start; }
  .glossary-layout { grid-template-columns: 1fr; }
  .glossary-index { max-height: none; }
  .glossary-index section > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 600px) {
  .main { padding-inline: 13px; }
  .top-controls .segmented { display: none; }
  .top-controls .mode-switch { display: inline-flex; }
  .mode-switch button { min-height: 32px; padding-inline: 9px; font-size: 12px; }
  .vocabulary-button { display: none; }
  .page-head { align-items: start; flex-direction: column; gap: 13px; }
  .page-head p { font-size: 14px; }
  .status-chip { padding: 8px 11px; }
  .card-head, .card-body, .workspace-footer, .matrix-wrap, .test-grid { padding-left: 16px; padding-right: 16px; }
  .card-head { align-items: start; }
  .visual-panel { min-height: 340px; padding: 14px; }
  .choice { min-height: 43px; font-size: 12px; }
  .hypothesis-grid, .test-grid { grid-template-columns: 1fr; }
  .body-pattern-grid { grid-template-columns: 1fr; }
  .body-pattern-card.expanded { grid-column: auto; }
  .body-library-head { align-items: start; }
  .body-count { min-width: 104px; }
  .body-pattern-detail { padding-left: 16px; }
  .body-flight-title { align-items: flex-start; flex-direction: column; gap: 3px; }
  .body-flight-chain { grid-template-columns: 1fr; }
  .body-flight-card { min-height: 0; }
  .body-flight-arrow { height: 26px; transform: rotate(90deg); }
  .pressure-guide { grid-template-columns: 1fr; }
  .pressure-guide > div { min-height: 0; }
  .quick-fix strong { font-size: 17px; }
  .body-use { width: 100%; min-width: 0; }
  .hypothesis-intro { flex-direction: column; }
  .workspace-footer { align-items: stretch; flex-direction: column; }
  .button-row { display: grid; grid-template-columns: 1fr 1fr; }
  .btn { width: 100%; }
  .delivery-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .spin-loft-equation { grid-template-columns: 1fr auto 1fr; }
  .spin-loft-equation i:nth-of-type(2) { display: none; }
  .spin-loft-equation .equation-result { grid-column: 1 / -1; }
  .qualitative-summary { grid-template-columns: 1fr; }
  .delivery-chain { grid-template-columns: 1fr; }
  .delivery-source, .hosel-note { grid-template-columns: 1fr; gap: 6px; }
  .trackman-evidence-head { align-items: flex-start; flex-direction: column; padding: 17px; }
  .evidence-levels { justify-content: flex-start; }
  .trackman-evidence-grid article { padding: 17px; }
  .trackman-source-row { grid-template-columns: 1fr; gap: 9px; padding: 15px 17px 17px; }
  .body-trackman-check { grid-template-columns: 1fr; }
  .body-trackman-check small { grid-column: auto; }
  .measurement-protocol-head { gap: 10px; padding: 18px; }
  .measurement-protocol-grid { grid-template-columns: 1fr; }
  .measurement-source-row { grid-template-columns: 1fr; gap: 9px; padding: 16px 18px; }
  .matrix-intro { align-items: start; flex-direction: column; }
  .matrix { grid-template-columns: 1fr; min-width: 0; }
  .matrix-axis { display: none; }
  .matrix-cell { min-height: 142px; }
  .impact-consequence-grid, .impact-context-grid { grid-template-columns: 1fr; }
  .impact-reading-head { align-items: start; flex-direction: column; gap: 5px; }
  .compensation-head { gap: 10px; padding: 18px; }
  .compensation-grid { padding: 8px; }
  .compensation-route { padding: 17px; }
  .compensation-exit { grid-template-columns: 1fr; gap: 5px; margin: 0 8px 8px; }
  .route-top { align-items: start; flex-direction: column; gap: 7px; }
  .clubface-wrap { min-height: 300px; padding: 10px; }
  .clubface-meta { align-items: start; flex-direction: column; gap: 2px; }
  .impact-map-key { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .strike-point { width: 32px; height: 32px; font-size: 12px; }
  .vertical-flight-controls { grid-template-columns: 1fr; }
  .flight-metric-spin { grid-column: auto; }
  .flight-derived-grid { grid-column: auto; }
  .flight-factor-list, .flight-factor-detail-grid { grid-template-columns: 1fr; }
  .flight-factor-detail-grid .flight-factor-limit { grid-column: auto; }
  .factor-chain { grid-template-columns: 1fr; }
  .flight-factors-head, .flight-factor-detail { padding: 18px; }
  .flight-factors-layout { padding: 8px; }
  .flight-model-boundary { margin: 0 8px 8px; }
  .flight-check-route { padding: 15px; }
  .flight-check-grid { grid-template-columns: 1fr; }
  .flight-check-card { min-height: 0; }
  .route-context-banner { grid-template-columns: 1fr; gap: 7px; }
  .route-context-banner button { grid-column: auto; justify-self: stretch; }
  .ground-control { grid-column: auto; }
  .vertical-flight-layout { padding: 8px; }
  .vertical-flight-head { padding: 18px; }
  .vertical-flight-visual { padding: 13px 9px 11px; }
  .flight-side-svg { min-height: 205px; }
  .glossary-top { align-items: flex-start; flex-direction: column; }
  .glossary-top > span { display: none; }
  .glossary-index section > div, .glossary-detail-grid { grid-template-columns: 1fr; }
  .glossary-detail-grid .glossary-caution { grid-column: auto; }
  .glossary-detail-head { align-items: flex-start; flex-direction: column; padding: 21px; }
  .glossary-badges { justify-content: flex-start; }
  .glossary-definition, .glossary-detail-grid section { padding: 21px; }
  .glossary-definition p { font-size: 16px; }
  .glossary-visual { padding: 10px 10px 0; }
  .glossary-visual-label { align-items: flex-start; flex-direction: column; gap: 2px; }
  .glossary-visual figcaption { grid-template-columns: 1fr; gap: 4px; }
  .evidence-warning { grid-template-columns: 1fr; gap: 4px; padding: 13px 16px; }
  .competition-mode .pressure-guide { grid-template-columns: 1fr; }
  .report-actions { flex-direction: column; }
  .report-status, .report-grid, .report-priority { grid-template-columns: 1fr; }
  .report-head { padding: 22px; }
  .report-head h1 { font-size: 34px; }
  .report-head img { width: 58px; height: 58px; }
  .report-grid article, .report-priority > div { padding: 20px; }
}

@media print {
  @page { size: A4; margin: 10mm; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { background: #fff; }
  .sidebar, .topbar, .mobile-phase-bar, .workspace-footer, .page-head p, .status-chip, .report-actions { display: none !important; }
  .app-shell { display: block; }
  .main { padding: 0; }
  .page-head { padding: 0 0 16px; }
  .work-grid { display: block; }
  .workspace-card, .insight-card, .evidence { box-shadow: none; break-inside: avoid; margin-bottom: 12px; }
  .report-page { max-width: none; padding: 0; }
  .report-sheet { border: 0; border-radius: 0; box-shadow: none; }
  .report-head { padding: 12px 18px; }
  .report-head h1 { font-size: 31px; }
  .report-head img { width: 58px; height: 58px; }
  .report-status > * { padding: 8px 12px; font-size: 11px; }
  .report-grid article, .report-priority > div { padding: 14px 16px; }
  .report-grid h2, .report-priority h2 { font-size: 19px; }
  .report-grid p, .report-priority p { font-size: 12px; line-height: 1.4; }
  .report-grid small, .report-foot { font-size: 10px; }
}

.launch-shared-controls{display:grid;gap:12px}.launch-shared-controls .flight-metric-control{margin:0;padding:16px 18px}.launch-shared-controls .flight-metric-control label{font-size:16px}.launch-shared-controls .metric-inputs{margin-top:12px}.launch-shared-controls .metric-origin{font-size:12px}
.flight-control-bounds{display:flex;justify-content:space-between;gap:12px;color:#717960;font-size:12px;margin-top:8px}.flight-control-bounds b{color:#8a5732;font-weight:600}.launch-control-context{font-size:14px!important;line-height:1.6!important;color:#65715f;margin:0}.launch-extreme-note{padding:14px;border-left:3px solid #a57345;background:#f5ecde;font-size:14px!important;line-height:1.6!important;margin:0}

/* Compact Tour reference, with published averages separate from simulated outcomes. */
.tour-reference{border:1px solid #d8dacd;border-radius:18px;background:#fffefa;padding:18px 22px;margin:0 0 22px;color:#304c38}
.tour-reference-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.tour-reference-bar strong{display:block;font-size:1.18rem;margin-top:5px}.tour-reference .eyebrow{font-size:.68rem;letter-spacing:.12em}
.tour-load-actions{display:flex;gap:8px;flex-wrap:wrap}.tour-load-actions .btn{min-height:44px;padding:10px 16px;font-size:.87rem}
.tour-reference-note,.tour-reference details p{font-size:.86rem;line-height:1.55;margin:10px 0;color:#61705c}.tour-reference summary{font-size:.86rem;cursor:pointer;padding:6px 0;font-weight:650}
.tour-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#dde1d5;border:1px solid #dde1d5;border-radius:10px;overflow:hidden;margin:14px 0}
.tour-facts>div{background:#f7f8f2;padding:12px 14px}.tour-facts span{display:block;font-size:.78rem;color:#64725f}.tour-facts strong{display:block;font-size:1.2rem;font-variant-numeric:tabular-nums;margin-top:4px}.tour-facts small{font-size:.76rem;font-weight:400}.tour-sources{display:flex;flex-wrap:wrap;gap:16px;font-size:.8rem}
@media(max-width:600px){.tour-reference{padding:15px}.tour-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.tour-load-actions{width:100%}.tour-load-actions .btn{flex:1}}

/* Shared transfer summary: compact at rest, references on demand. */
.smash-transfer{margin:12px 0;padding:14px;border:1px solid #cbd5c3;border-radius:16px;background:#f3f5ed;color:#304d38}
.smash-transfer header{display:flex;flex-direction:column;gap:4px}.smash-transfer header small,.smash-transfer>small{color:#61715a;font-size:12px;line-height:1.5;display:block}
.smash-transfer-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.smash-transfer-values>div{padding:8px;background:#fffdf7;border-radius:10px}.smash-transfer-values span{display:block;font-size:11px;line-height:1.3}.smash-transfer-values b{font-size:24px;font-variant-numeric:tabular-nums}
.smash-transfer p{font-size:13px!important;line-height:1.55!important;margin:8px 0!important}.smash-transfer details{margin-top:10px}.smash-transfer summary{font-size:13px;padding:8px 0;cursor:pointer}.smash-reference-table{overflow-x:auto}.smash-transfer table{width:100%;font-size:12px;border-collapse:collapse}.smash-transfer th,.smash-transfer td{padding:8px 5px;text-align:left;border-bottom:1px solid #d8ddce}.smash-transfer caption{text-align:left;padding:8px 0}.smash-sources{display:flex;flex-wrap:wrap;gap:8px}.smash-sources a{color:#346143;text-decoration:underline}

/* Outcome choices and explanatory comparisons stay compact and readable. */
.flight-outcome-selector{padding:22px;margin:20px 0;background:#fffef9;border:1px solid #cdd6c5;border-radius:22px}
.flight-outcome-selector header,.combination-variable-count header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.flight-outcome-selector h2,.combination-variable-count h2{font-size:1.35rem;margin:0}
.flight-outcome-selector header>strong{color:#466348;background:#ecf0e5;border-radius:100px;padding:8px 16px}
.flight-outcome-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin:18px 0 12px}
.flight-outcome-grid h3{font-size:1rem;margin:0 0 10px}
.flight-family-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.flight-family-buttons button{min-height:62px;padding:9px 4px;border:1px solid #ccd5c5;border-radius:12px;background:#fafbf6;color:#304c3a;font-weight:700}
.flight-family-buttons button small{display:block;font-size:.7rem;font-weight:400;margin-top:5px}
.flight-family-buttons button[aria-pressed=true]{background:#304c3a;color:#fffdf3;border-color:#304c3a}
.flight-outcome-selector p,.combination-variable-count small{font-size:.85rem;line-height:1.5;color:#67745e;margin:0}
.flight-reference-disclosure{margin:12px 0;border-block:1px solid #d5dccf;padding:12px}
.flight-reference-disclosure>summary{cursor:pointer;font-weight:600}
.connected-input>small{display:block;font-size:.73rem;color:#68755f;margin-top:5px}
.combination-variable-count{border:1px solid #d5dccf;border-radius:18px;padding:20px;margin:20px 0;background:#fafbf5}
.combination-variable-count header>span{font-size:.8rem;color:#7b613d}
.combination-variable-count>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.combination-variable-count p>b,.combination-variable-count p>span{display:block}
.combination-variable-count p>b{font-size:1.1rem;color:#304c3a;margin-bottom:6px}
.combination-variable-count p>span{font-size:.86rem;line-height:1.45;color:#67745e}
.combination-contact-comparison,.combination-evidence{padding:14px;border:1px solid #d5dccf;border-radius:12px;margin:14px 0;font-size:.85rem;line-height:1.5}
.combination-contact-comparison summary,.combination-evidence summary{font-weight:700;cursor:pointer}
.combination-contact-comparison table{min-width:480px;font-size:.77rem}
.combination-contact-comparison td,.combination-contact-comparison th{padding:9px}
.combination-evidence li{margin:12px 0}
@media(max-width:850px){.flight-outcome-grid{grid-template-columns:1fr;gap:16px}.combination-variable-count>div{grid-template-columns:1fr;gap:0}.flight-outcome-selector header,.combination-variable-count header{align-items:flex-start;flex-direction:column}.flight-outcome-selector{padding:16px}}
