/* Touch layouts follow Apple HIG sizing and safe-area conventions. */
.touch-flight{position:absolute;inset:0;z-index:8;pointer-events:none;user-select:none;-webkit-user-select:none}
.touch-fire-zone{position:absolute;inset:0 0 33.333333%}
.touch-fire,.touch-pause{position:absolute;pointer-events:auto;touch-action:none;-webkit-touch-callout:none;min-width:52px;min-height:52px;padding:6px;color:#e6f8ff;background:#142838b8;border:1px solid #a4d9ff70;border-radius:18px;box-shadow:0 3px 12px #0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;place-content:center;gap:0;font:600 20px/1 system-ui}
.touch-fire{width:60px;height:60px}.touch-fire span{font-size:30px;line-height:30px}.touch-fire small{font:600 9px/15px system-ui;letter-spacing:.07em}
.touch-fire.top-left{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}
.touch-fire.top-right{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
.touch-fire.bottom-left{bottom:12px;left:max(12px,env(safe-area-inset-left))}
.touch-fire.bottom-right{bottom:12px;right:max(12px,env(safe-area-inset-right))}
.touch-pause{top:max(16px,env(safe-area-inset-top));right:calc(max(12px,env(safe-area-inset-right)) + 72px);width:52px;height:52px}
.touch-fire:is(:active,.is-held),.touch-pause:active{background:#398cffb8;border-color:#bfe7ff;box-shadow:0 0 0 4px #3b93ff38,0 0 24px #42acff80}
.swipe-steering{position:absolute;inset:66.666667% 0 0;pointer-events:auto;touch-action:none;background:linear-gradient(#194d7410,#07132138);border-top:1px solid #b3dbff30;display:flex;justify-content:center;align-items:flex-start;padding-top:15px}
.swipe-steering span{font:600 11px system-ui;letter-spacing:.08em;color:#d9ecff9c;pointer-events:none;background:#0b182962;border-radius:14px;padding:7px 14px}
.swipe-steering.is-held{border-color:#9cdaff80;background:linear-gradient(#28639a18,#16305342)}
.secondary{width:100%;background:#102b3e;color:#b9e4ff;border:1px solid #406985;border-radius:6px;min-height:44px;margin-bottom:9px}
body:not([data-touch=true]) .touch-help{display:none}
body:not([data-touch=true]) #quit{display:none}
body[data-touch=true]{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;overscroll-behavior:none}
body[data-touch=true] #flight{height:100dvh;min-height:0}
body[data-touch=true].playing header,body[data-touch=true].playing footer{display:none}
body[data-touch=true].menu-open header,body[data-touch=true].menu-open footer{display:none}
body[data-touch=true] .keyboard-help{display:none}
body[data-touch=true] .mission-readout{top:calc(max(12px,env(safe-area-inset-top)) + 8px);left:86px;right:148px;gap:12px;justify-content:center;z-index:4}
body[data-touch=true] .mission-readout div{gap:4px}
body[data-touch=true] .mission-readout span{font:500 9px system-ui;letter-spacing:.05em;color:#b5cad8}
body[data-touch=true] .mission-readout output{font:600 16px system-ui;letter-spacing:0;color:#e2f7ff}
body[data-touch=true] .hud-marker{display:none}
body[data-touch=true] #flight .flight-menu{width:min(760px,calc(100% - 24px));top:calc(50% + (env(safe-area-inset-top) - env(safe-area-inset-bottom))/2);max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));padding:24px;border:1px solid #9ab8d22e;border-radius:24px;background:#17222bf2;box-shadow:0 24px 100px #0009;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;font:16px/1.4 -apple-system,BlinkMacSystemFont,system-ui,sans-serif;color:#e6eef5}
body[data-touch=true] .flight-menu h2{font-size:28px;font-weight:700;letter-spacing:-.6px;margin:10px 0}
body[data-touch=true] .flight-menu p,body[data-touch=true] .flight-menu .menu-note{font:14px/1.45 -apple-system,BlinkMacSystemFont,system-ui,sans-serif;color:#acbbc8;letter-spacing:0}
body[data-touch=true] .flight-menu .eyebrow{font:600 11px system-ui;letter-spacing:.1em;color:#9cbed4}
body[data-touch=true] .setup-grid{gap:0;grid-template-columns:1fr;margin:20px 0;background:#ffffff09;border:1px solid #ffffff0d;border-radius:14px;overflow:hidden}
body[data-touch=true] .setup-grid label{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1.2fr);align-items:center;gap:12px;padding:8px 12px;min-height:60px;border-bottom:1px solid #ffffff14;letter-spacing:0;font:15px system-ui;color:#e3eaf1}
body[data-touch=true] .setup-grid label:last-child{border-bottom:0}
body[data-touch=true] .setup-grid :is(select,input){font:16px -apple-system,BlinkMacSystemFont,system-ui,sans-serif;min-height:44px;padding:9px 8px;border:1px solid #a5c0d12e;background:#263746;color:#9bd3ff;border-radius:9px;width:100%;accent-color:#0a84ff}
body[data-touch=true] .bonus-setting{grid-column:auto}
body[data-touch=true] .primary{min-height:50px;border-radius:13px;font:600 17px system-ui;background:#0a84ff;color:#fff;padding:13px}
body[data-touch=true] .secondary{min-height:48px;border-radius:13px;font:600 16px system-ui;border-color:#7d9ab340;color:#a9d5ff;background:#ffffff0a}
body[data-touch=true] .scenario-actions{gap:10px;flex-wrap:wrap}
body[data-touch=true] .scenario-actions button{min-height:48px;padding:12px;border-radius:12px;font:500 14px system-ui;border-color:#7d9ab340;background:#ffffff08}
body[data-touch=true] .lab-link{display:block;min-height:44px;padding:12px 0;font:15px system-ui;color:#94cfff}
body[data-touch=true] .leaderboard{border-color:#ffffff20}.leaderboard #initials-form button{min-height:44px}
body[data-touch=true] .leaderboard th{font:500 12px system-ui}body[data-touch=true] .leaderboard td{font:16px system-ui}
@media(max-width:650px){body[data-touch=true] #flight .flight-menu{padding:20px}.touch-fire{width:56px;height:56px}body[data-touch=true] .mission-readout{top:calc(max(12px,env(safe-area-inset-top)) + 67px);left:80px;right:80px;gap:16px}body[data-touch=true] .mission-readout output{font-size:14px}body[data-touch=true] .mission-readout span{font-size:8px}}
@media(max-height:500px){body[data-touch=true] #flight .flight-menu{padding:18px 24px}body[data-touch=true] .ready-layout{grid-template-columns:minmax(0,1fr) 180px}body[data-touch=true] .leaderboard{border-left:1px solid #ffffff20;border-top:0;padding:0 0 0 18px}.swipe-steering{padding-top:6px}.swipe-steering span{font-size:10px;padding:5px 12px}}
