/* Mastery: restrained telemetry, generous type, and a local pilot dossier. */
.pilot-links { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); }
.pilot-links button { background: none; border: 0; padding: 16px 0; text-align: left; }
.pilot-links button + button { border-left: 1px solid var(--line); padding-left: 22px; }
.pilot-links .mono { display: block; font-size: calc(12px * var(--text-scale, 1)); letter-spacing: 1px; color: var(--text); }
.pilot-links small { display: block; margin-top: 7px; color: var(--muted); font-size: calc(12px * var(--text-scale, 1)); }
.pilot-links button:hover .mono { color: var(--mint); }
.contract-hud { display: flex; align-items: center; justify-content: center; gap: 8px; color: #acbec3; font: calc(12px * var(--text-scale, 1)) Consolas, monospace; margin-top: 11px; padding-top: 9px; border-top: 1px solid var(--line); line-height: 1.5; }
.contract-mark { font-size: calc(16px * var(--text-scale, 1)); color: var(--gold); }
.contract-hud small { display: block; font-size: calc(12px * var(--text-scale, 1)); letter-spacing: .8px; color: #9aaba5; margin-bottom: 3px; }
.contract-hud.done { color: var(--gold); }
.contract-hud.failed { color: var(--muted); }
.sector-report { display: flex; align-items: center; text-align: left; gap: 24px; max-width: 660px; margin: 25px auto 30px; padding: 20px 26px; border: 1px solid var(--line); background: linear-gradient(110deg,#a2ffd70e,transparent); }
.sector-grade { font: 900 64px/1 "Segoe UI",sans-serif; color: var(--mint); min-width: 60px; }
.sector-grade[data-grade="S"] { color: var(--gold); text-shadow: 0 0 30px #edff9b22; }
.sector-report-copy { flex: 1; }
.sector-report-copy > span { font: calc(12px * var(--text-scale, 1)) Consolas,monospace; color: var(--muted); letter-spacing: 1.5px; }
.sector-report-copy > strong { display: block; margin-top: 7px; font-size: calc(14px * var(--text-scale, 1)); }
.sector-report-copy p { font-size: calc(12px * var(--text-scale, 1)); color: #9eb4bb; margin: 7px 0 0; line-height: 1.6; }
.sector-reward { color: var(--gold); font: calc(12px * var(--text-scale, 1)) Consolas,monospace; white-space: nowrap; line-height: 1.9; text-align: right; }
.sector-route { display: flex; gap: 6px; margin-top: 12px; }
.sector-route i { width: 16px; height: 3px; background: #a2ffd72b; }
.sector-route i.passed { background: var(--mint); }
.sector-route i.boss { background: var(--pink); }
.end-achievements { border: 1px solid #edff9b35; padding: 13px 15px; margin: 18px 0; color: var(--gold); background: #edff9b05; font-size: calc(12px * var(--text-scale, 1)); line-height: 1.7; }
.end-achievements .mono { display: block; font-size: calc(12px * var(--text-scale, 1)); letter-spacing: 1.3px; margin-bottom: 4px; }
.archive-end { display: block; margin: 15px auto 0; font-size: calc(12px * var(--text-scale, 1)); }
.training-panel { position: absolute; z-index: 16; bottom: 34px; left: 34px; width: 440px; max-width: calc(100% - 160px); background: linear-gradient(130deg,#14272ef5,#0a141cf5); border: 1px solid #a2ffd744; padding: 20px 24px; box-shadow: 0 15px 60px #0005; }
.training-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.training-top .mono { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: 1.2px; color: var(--mint); }
.training-top .text-btn { font-size: calc(12px * var(--text-scale, 1)); padding: 4px 0; }
.training-steps { display: flex; gap: 5px; margin: 14px 0 20px; }
.training-steps i { width: 28px; height: 3px; background: #a2ffd721; }
.training-steps i.active { background: var(--mint); }
.training-panel h2 { font-size: 28px; letter-spacing: -1px; margin: 0 0 10px; }
.training-panel p { color: #a7bec5; font-size: calc(13px * var(--text-scale, 1)); line-height: 1.7; margin: 0; }
.training-panel .primary-btn { margin-top: 20px; }
body.training .controls-hint, body.training .loadout, body.training .hud-score, body.training #comboBadge { visibility: hidden; }
.pilot-archive { color: var(--text); background: #0b151c; border: 1px solid #9bffd539; padding: 0; width: min(1060px,calc(100% - 48px)); max-width: none; max-height: calc(100% - 64px); box-shadow: 0 30px 120px #0009; scrollbar-color: #45685f #0b151c; }
.pilot-archive::backdrop { background: #03090ee8; backdrop-filter: blur(12px); }
.archive-header { position: sticky; top: 0; z-index: 2; background: #0c171ff5; padding: 18px 30px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.archive-body { padding: 36px 40px 24px; }
.archive-title { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.archive-title .mono { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: 2px; color: var(--mint); }
.archive-title h2 { font-size: clamp(34px,5vw,62px); line-height: 1; letter-spacing: -2px; margin: 19px 0 30px; }
.archive-title em { font-style: normal; color: var(--mint); }
.pilot-seal { display: grid; place-content: center; width: 110px; height: 110px; flex-shrink: 0; border: 1px solid #a2ffd74a; border-radius: 50%; outline: 1px dashed #a2ffd72b; outline-offset: 9px; color: var(--mint); text-align: center; font-size: 36px; font-weight: 800; }
.pilot-seal span { display: block; font: calc(12px * var(--text-scale, 1)) Consolas,monospace; letter-spacing: 2px; margin-top: 5px; }
.pilot-totals { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 22px 0; }
.pilot-totals > div + div { border-left: 1px solid var(--line); padding-left: 30px; }
.pilot-totals strong { font-size: 32px; letter-spacing: -1px; }
.pilot-totals span { display: block; font: calc(12px * var(--text-scale, 1)) Consolas,monospace; letter-spacing: 1px; color: var(--muted); margin-top: 5px; }
.archive-section-title { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 32px 0 16px; }
.archive-section-title h3 { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: 2px; margin: 0; }
.archive-section-title .mono { font-size: calc(12px * var(--text-scale, 1)); color: #78959c; }
.pilot-badges { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.pilot-badge { display: flex; gap: 13px; padding: 20px 16px; border: 1px solid #90b8ba16; background: #90b8ba03; }
.badge-symbol { color: #78969e; font: 500 26px/1.2 Consolas,monospace; width: 32px; flex-shrink: 0; }
.badge-state { font: calc(12px * var(--text-scale, 1)) Consolas,monospace; letter-spacing: 1.4px; color: #7e969f; }
.pilot-badge h3 { font-size: calc(13px * var(--text-scale, 1)); margin: 7px 0; font-weight: 600; }
.pilot-badge p { font-size: calc(12px * var(--text-scale, 1)); line-height: 1.6; margin: 0; color: #8ba3ab; }
.pilot-badge.earned { border-color: #a2ffd746; background: linear-gradient(130deg,#a2ffd70c,transparent); }
.pilot-badge.earned .badge-symbol, .pilot-badge.earned .badge-state { color: var(--mint); }
.run-table-head, .run-row { display: grid; grid-template-columns: 2.5fr 1.2fr .8fr .7fr; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.run-table-head { font: calc(12px * var(--text-scale, 1)) Consolas,monospace; letter-spacing: 1px; color: var(--muted); padding-top: 0; }
.run-row { font-size: calc(12px * var(--text-scale, 1)); }
.run-row strong { font: calc(12px * var(--text-scale, 1)) Consolas,monospace; letter-spacing: 1px; }
.run-row small { display: block; font-size: calc(12px * var(--text-scale, 1)); color: #809ba4; margin-top: 5px; }
.run-row b { color: var(--mint); font-size: calc(16px * var(--text-scale, 1)); }
.archive-empty { padding: 24px; text-align: center; border: 1px dashed var(--line); }
.archive-empty > span { font-size: 28px; color: var(--mint); }
.archive-empty h3 { font-size: calc(16px * var(--text-scale, 1)); font-weight: 500; }
.archive-empty p, .archive-note { font-size: calc(12px * var(--text-scale, 1)); line-height: 1.6; color: var(--muted); }
.archive-note { margin: 24px 0 0; }
/* Let tall results and choices scroll from the top on every viewport. */
.modal-screen > .panel, .modal-screen > .upgrade-panel { margin-top: auto; margin-bottom: auto; }
@media (max-width: 760px) {
  .pilot-links .mono { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: .4px; }
  .pilot-links small { font-size: calc(12px * var(--text-scale, 1)); }
  .pilot-links button + button { padding-left: 14px; }
  .contract-hud { margin-top: 6px; padding-top: 5px; font-size: calc(12px * var(--text-scale, 1)); }
  .sector-report { gap: 14px; padding: 16px; margin: 20px 0; flex-wrap: wrap; }
  .sector-grade { font-size: 48px; min-width: 35px; }
  .sector-report-copy > strong { font-size: calc(12px * var(--text-scale, 1)); }
  .sector-reward { width: 100%; text-align: left; border-top: 1px solid var(--line); padding-top: 8px; }
  .training-panel { bottom: 20px; left: 16px; width: calc(100% - 32px); max-width: none; padding: 15px 18px; }
  body.training .nova-button { bottom: 214px; right: 0; width: 72px; height: 72px; }
  .training-panel h2 { font-size: 24px; }
  .training-panel p { font-size: calc(12px * var(--text-scale, 1)); }
  .training-steps { margin: 10px 0 14px; }
  .pilot-archive { width: calc(100% - 24px); max-height: calc(100% - 24px); }
  .archive-header { padding: 14px 18px; }
  .archive-body { padding: 26px 20px 20px; }
  .archive-title .mono { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: 1px; }
  .archive-title h2 { font-size: 37px; }
  .pilot-seal { display: none; }
  .pilot-totals strong { font-size: 26px; }
  .pilot-totals span { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: .5px; }
  .pilot-totals > div + div { padding-left: 14px; }
  .pilot-badges { grid-template-columns: 1fr; }
  .pilot-badge { padding: 16px; }
  .archive-section-title .mono { display: none; }
  .run-table-head, .run-row { grid-template-columns: 1.7fr 1.1fr .6fr .6fr; gap: 8px; }
  .run-row b { font-size: calc(13px * var(--text-scale, 1)); }
  .run-row small { font-size: calc(12px * var(--text-scale, 1)); }
}
@media (max-height: 540px) and (min-aspect-ratio: 7/5) {
  .training-panel { bottom: 12px; left: 16px; width: min(340px,42vw); padding: 14px 18px; }
  .training-panel h2 { font-size: calc(22px * var(--text-scale, 1)); }
  .training-panel p { font-size: calc(12px * var(--text-scale, 1)); }
  body.training .nova-button { bottom: 0; right: 0; width: 64px; height: 64px; }
  .training-top .mono { font-size: calc(12px * var(--text-scale, 1)); letter-spacing: .4px; }
}
