/* Perfect Landing Pro: level grid, approach guide and score card (shared 3D styles live in /simulation-games/_shared/sim3d.css) */
.pl-setup .sim-controls-help { margin-top: 14px; }
.pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-bottom: 12px; }
.pl-level { position: relative; text-align: left; padding: 10px 10px 9px; min-height: 92px; }
.pl-level strong { display: block; padding-right: 26px; line-height: 1.2; }
.pl-level small { display: block; margin-top: 3px; }
.pl-level .pl-cond { letter-spacing: 1px; }
.pl-level[disabled] { opacity: .5; cursor: not-allowed; }
.pl-num { position: absolute; right: 8px; top: 7px; font: 800 12px/22px system-ui, sans-serif; width: 22px; height: 22px; text-align: center; border-radius: 50%; background: rgba(255, 255, 255, .1); }
.pl-dim { opacity: .25; }
.pl-brief { background: var(--color-bg-alt, #1c1f27); border: 1px solid var(--color-border, #2c313c); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; line-height: 1.45; }
.pl-brief span { opacity: .85; font-size: 14px; }

/* approach guide (glide slope + localizer) */
.pl-guide { position: absolute; right: 10px; top: 140px; text-align: center; pointer-events: none; }
.pl-guide small { display: block; font: 700 10px system-ui, sans-serif; text-transform: uppercase; letter-spacing: .08em; opacity: .8; margin-top: 3px; text-shadow: 0 1px 3px #000; }
.pl-guide__box { position: relative; width: 92px; height: 92px; border-radius: 12px; background: rgba(8, 16, 28, .6); border: 1px solid rgba(255, 255, 255, .2); }
.pl-guide__h, .pl-guide__v { position: absolute; background: rgba(255, 255, 255, .35); }
.pl-guide__h { left: 8px; right: 8px; top: 50%; height: 2px; margin-top: -1px; }
.pl-guide__v { top: 8px; bottom: 8px; left: 50%; width: 2px; margin-left: -1px; }
.pl-guide__dot { position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: #ff5ad1; box-shadow: 0 0 8px rgba(255, 90, 209, .8); transition: left .12s, top .12s; }
.pl-guide__dot.is-good { background: #4ade80; box-shadow: 0 0 8px rgba(74, 222, 128, .9); }
@container (max-width: 480px) { .pl-guide { top: 96px; right: 8px; } .pl-guide__box { width: 64px; height: 64px; } .pl-guide small { display: none; } }

/* score card */
.pl-card { min-width: 280px; }
.pl-line { display: flex; justify-content: space-between; gap: 18px; font-size: 14px; margin: 3px 0; text-align: left; }
.pl-line b { font-variant-numeric: tabular-nums; }
.pl-total { font-size: 18px; margin-top: 8px !important; border-top: 1px solid rgba(255, 255, 255, .15); padding-top: 6px; }
