:root{color-scheme:dark;--ink:#edf3ff;--muted:#9eb0c6;--cyan:#69d8ff;--glass:#151d2bd9}*{box-sizing:border-box}body{margin:0;background:#0d1420;color:var(--ink);font-family:Arial,sans-serif;overflow:hidden}button,select,input{font:inherit}button{cursor:pointer;touch-action:manipulation;color:var(--ink);border:1px solid #aec4e33b;background:var(--glass);border-radius:14px;min-height:46px;padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.5px;user-select:none;-webkit-user-select:none}button:hover{background:#354459}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}button:disabled{opacity:.4;cursor:default}select{background:#1b2839;color:var(--ink);border:1px solid #7891ae70;border-radius:10px;padding:12px;min-height:46px}canvas{display:block;width:100vw;height:100dvh;touch-action:none}.hidden{display:none!important}.primary{background:var(--cyan);color:#0a2538;border:0}.primary:hover{background:#acebff}.muted{color:var(--muted);font-size:12px;line-height:1.6}
.setup{position:fixed;inset:0;z-index:30;padding:max(24px,env(safe-area-inset-top)) max(32px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px;background:linear-gradient(90deg,#080e1aee,#0c1724b0 75%,#101e2b50);overflow:hidden}.setup-header{display:flex;justify-content:space-between;align-items:center}.wordmark{font-weight:800;letter-spacing:3px;font-size:15px}.wordmark span{color:var(--cyan)}#setup-progress{color:var(--muted);font:11px monospace;letter-spacing:2px}.setup h1{font-size:clamp(24px,3.7vw,48px);letter-spacing:-1px;margin:4px 0 0}.setup-intro{margin:0;color:var(--muted);font-size:13px}.setup-content{flex:1;min-height:0;overflow:auto;padding:4px 4px 12px}.selection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1100px}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:950px}.select-card{text-align:left;min-height:200px;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;border-radius:22px;border:1px solid #c5dbf05c;background:linear-gradient(145deg,#23344bbd,#111a2bea);gap:12px}.select-card strong{font-size:24px;letter-spacing:-.5px}.select-card span:not(.card-number){font-size:12px;color:#abbcd1;font-weight:400;line-height:1.5}.select-card.selected{background:#ecf4fc;color:#15273d;border:3px solid #fff;padding:22px;box-shadow:0 0 0 3px #6dcff74d}.select-card.selected span:not(.card-number){color:#4f637c}.card-number{font:36px monospace;color:#79c8e0}.select-card svg{width:100%;height:110px}.livery-preview{padding:8px 12px;border-radius:12px;text-align:center}.livery-preview svg{height:80px}.livery-preview b{font-size:14px;letter-spacing:3px}.setup-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #c6d8ee25;padding-top:16px}.setup-footer button{min-width:140px}.setup-footer small{color:var(--muted)}.airport-summary{display:flex;gap:20px;align-items:center;margin:10px 0 20px}.airport-summary span{color:var(--muted);font-size:12px}.location-options{display:flex;gap:20px;align-items:center}.location-options label{display:grid;gap:8px;font-size:12px}.airport-map{margin:20px 0 8px;padding:18px;background:#24364990;border:1px solid #b6d2e140;border-radius:20px;max-width:850px}.map-runway{background:#101725;border:2px solid #81929f;text-align:center;padding:10px;color:#d5e4f0;font:12px monospace;letter-spacing:3px}.map-taxiway{height:12px;margin:12px 0;border-bottom:2px dashed #d9c46d}.gate-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.gate{min-height:44px;padding:8px}.gate.selected{background:#e7f5ff;color:#123347;border-color:white}.map-terminal{margin-top:16px;padding:10px;background:#59778a;text-align:center;font-size:11px;letter-spacing:3px}.manifest-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;max-width:1050px}.manifest-grid section{background:#17273ce6;padding:28px;border:1px solid #a5c7ed30;border-radius:22px}.manifest-grid label{display:flex;justify-content:space-between;gap:10px;margin:0 0 16px}.manifest-grid input{width:100%;accent-color:var(--cyan);height:36px;margin-bottom:24px}.manifest-grid p{color:var(--muted);line-height:1.6;font-size:13px}.flight-summary>span{font:11px monospace;color:var(--cyan);letter-spacing:2px}.flight-summary h3{font-size:26px}.flight-summary small{color:var(--muted);line-height:1.6}.cabin-diagram{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:15px;border:1px solid #61759060;border-radius:45px}.cabin-diagram i{height:15px;background:#35455b;border-radius:4px}.cabin-diagram .occupied{background:#76cfe7}
.flight-top{position:fixed;top:max(12px,env(safe-area-inset-top));left:14px;right:14px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.flight-top>*{pointer-events:auto}.top-actions{display:flex;gap:8px}.instruments{display:flex;background:#101a29bf;border:1px solid #a9bdd34f;border-radius:18px;padding:12px 4px;backdrop-filter:blur(8px);pointer-events:none}.instrument{padding:0 15px;min-width:82px;border-right:1px solid #a5bad633}.instrument:last-child{border:0}.instrument small{display:block;font:9px monospace;color:var(--muted);margin-bottom:5px}.instrument b{font:23px monospace}.instrument em{font:9px monospace;margin-left:4px;color:var(--muted);font-style:normal}.identity{position:fixed;left:50%;top:98px;transform:translateX(-50%);font:11px monospace;letter-spacing:1px;color:#d6e7f6;text-shadow:0 1px 4px #000;white-space:nowrap}.notice{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 350px);padding:10px 14px;background:#152536d9;border:1px solid #b3d5e640;border-radius:12px;font:11px/1.5 monospace;text-align:center;pointer-events:none}.system-strip{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:16px;max-width:calc(100% - 80px);background:#172536dd;padding:10px 14px;border-radius:12px;font:10px monospace}.system-strip #system-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-rail{position:fixed;right:max(12px,env(safe-area-inset-right));top:130px;display:flex;flex-direction:column;gap:7px;max-height:calc(100dvh - 250px);overflow:auto;width:126px}.action-rail button{font-size:10px;min-height:48px;padding:8px}.action-rail .engaged{background:#3286a6}.drawer{position:fixed;right:150px;top:110px;width:290px;max-height:calc(100dvh - 150px);overflow:auto;z-index:12;background:#121f31f5;border:1px solid #b1c5df50;border-radius:18px;padding:18px;box-shadow:0 10px 30px #0007}.drawer button,.drawer select{width:100%;margin:5px 0}.drawer h2{font-size:16px;margin-top:0}.drawer p{font-size:12px;color:var(--muted);line-height:1.6}.drawer label{display:block;font-size:11px;margin-top:14px}.danger{background:#944732}.panel{position:fixed;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100vw - 30px));max-height:calc(100dvh - 40px);overflow:auto;padding:26px;background:#101e30f5;border:1px solid #a5c4e85c;border-radius:24px}.panel h2{margin:12px 0;font-size:28px}.panel p{font-size:13px;color:var(--muted);line-height:1.6}.panel .primary{width:100%}.tag{font:10px monospace;letter-spacing:2px;color:var(--cyan)}.report-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.report-totals div{padding:12px 8px;background:#ffffff0b;border-radius:12px;font-size:10px}.report-totals b{display:block;font-size:26px;margin-bottom:5px}.report-table{width:100%;font-size:11px;border-collapse:collapse;margin:16px 0}.report-table td,.report-table th{text-align:left;padding:8px 4px;border-bottom:1px solid #aec7df25}.report-table th{color:var(--muted)}.touch{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(95px,env(safe-area-inset-bottom));display:flex;gap:18px;align-items:flex-end}#joystick{width:148px;height:148px;border:2px solid #d2deef70;border-radius:50%;background:radial-gradient(circle,#74859b20,#10182495);touch-action:none;user-select:none;-webkit-user-select:none;display:grid;place-items:center;position:relative}.stick-knob{position:absolute;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#f1f5ffb0,#72849790);border:2px solid #e6edffad;pointer-events:none}.stick-axis{font:42px monospace;color:#d7e2f335}.stick-label{position:absolute;bottom:-22px;font:9px monospace;letter-spacing:1px;white-space:nowrap}.power-controls{display:flex;flex-direction:column;gap:8px}.power-controls button{width:50px;touch-action:none}.active{border-color:var(--cyan)!important}.help{position:fixed;left:20px;bottom:20px;color:var(--muted);font:10px/1.6 monospace;max-width:220px}#perf{position:fixed;bottom:3px;right:8px;font:8px monospace;color:#a2b1c1}.setup-open .hud,.setup-open .touch,.setup-open .drawer,.setup-open .help,.setup-open .panel{display:none!important}body:has(.panel:not(.hidden)) .touch{display:none}.legacy{display:none!important}
@media(min-width:1100px) and (pointer:fine){.touch{opacity:.8}}@media(max-width:700px){.setup{padding:18px 16px}.setup-header{gap:12px}.wordmark{font-size:12px;letter-spacing:1px}#setup-progress{font-size:9px;letter-spacing:1px}.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.select-card{min-height:150px;padding:16px}.select-card.selected{padding:14px}.select-card strong{font-size:19px}.select-card svg{height:65px}.setup-footer small{display:none}.manifest-grid{grid-template-columns:1fr;gap:14px}.manifest-grid section{padding:20px}.airport-summary{flex-direction:column;align-items:flex-start;gap:8px}.location-options{gap:12px}.gate-grid{gap:5px}.gate{font-size:10px}.flight-top{flex-wrap:wrap;gap:8px}.instruments{order:3;width:100%;justify-content:center;padding:8px 0}.instrument{padding:0 9px;min-width:65px}.instrument b{font-size:18px}.identity{top:138px;font-size:9px}.action-rail{top:170px;width:90px;max-height:calc(100dvh - 270px)}.notice{max-width:calc(100vw - 30px);width:max-content;bottom:55px;font-size:9px}.system-strip{bottom:12px;max-width:95%;font-size:9px;gap:10px}.help{display:none}.touch{bottom:110px;left:12px;gap:8px}#joystick{width:120px;height:120px}.stick-knob{width:48px;height:48px}.power-controls button{width:44px;min-height:42px;padding:8px}.drawer{right:12px;top:155px;width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 175px)}}
@media(max-height:540px) and (orientation:landscape){.setup{padding:12px 22px;gap:8px}.setup h1{font-size:26px}.setup-intro{display:none}.select-card{min-height:140px}.setup-footer{padding-top:8px}.action-rail{top:105px;max-height:calc(100dvh - 140px)}.touch{bottom:58px}#joystick{width:116px;height:116px}.notice{bottom:56px}.help{display:none}.identity{top:89px}.drawer{top:90px;max-height:calc(100dvh - 110px)}}

/* Tablet flight controls */
.airline-logo{width:85%;height:70px;object-fit:contain;padding:12px;background:#fff;border-radius:10px}.livery-preview{display:grid;place-items:center}.power-controls{align-items:center;gap:6px;padding:10px 8px;background:#101824bf;border:2px solid #c5c5da90;border-radius:22px}.power-controls label{font:9px monospace;letter-spacing:1px}.power-controls output{font:bold 18px monospace}.power-controls input{writing-mode:vertical-lr;direction:rtl;width:44px;height:145px;accent-color:#44c8f4;touch-action:none;margin:0}.power-controls button{border-radius:14px;min-height:44px}#engine-gauges{display:grid;grid-template-columns:repeat(2,58px);gap:5px;margin-bottom:6px}.engine-gauge{text-align:center;padding:8px 3px;border:1px solid #c5c5da90;border-radius:13px;background:#101824bf}.engine-gauge small,.engine-gauge span{display:block;font:8px monospace;color:#bbc7d8}.engine-gauge b{display:block;font:16px monospace;padding:7px 0;color:#d4f3fa}.engine-gauge.fault b{color:#ffaf62}.action-rail button{border:2px solid #c5c5da80;border-radius:19px;background:#151b2cc9}.action-rail button.engaged{background:#26b6e7;color:#071d32;border-color:#74d9f5}.navigation{position:fixed;left:20px;top:132px;width:120px;pointer-events:none}.compass{position:relative;width:120px;height:120px;border-radius:50%;background:#101824b5}.compass svg{width:100%;height:100%}.compass circle,.compass path{fill:none;stroke:#c5c5da;stroke-width:1.5}.compass text{text-anchor:middle;fill:#dce8f0;font:10px monospace}.compass .heading-bug{fill:#44c8f4;stroke:none}.compass b{position:absolute;left:0;right:0;top:51px;text-align:center;font:16px monospace}#nav-map{padding:10px;background:#101824df;border:1px solid #b3c4d677;border-radius:14px;margin-top:8px}#nav-map svg{width:100%;height:150px}#nav-map small{display:block;font:8px/1.5 monospace;color:#dce8f0}.map-pavement{stroke:#677a8c;stroke-width:6;fill:none}.map-centerline{stroke:#dce8f0;stroke-dasharray:3;fill:none}#nav-map text{fill:#dce8f0;font:9px monospace}#map-aircraft{fill:#50dfff;stroke:#071e34;stroke-width:1}.touch{gap:12px}.help{display:none}
@media(max-width:700px){.touch{gap:7px}#engine-gauges{grid-template-columns:repeat(2,44px);gap:3px}.engine-gauge b{font-size:13px}.power-controls{padding:8px 4px}.power-controls input{height:115px}.navigation{left:12px;top:170px;width:90px}.compass{width:90px;height:90px}.compass b{top:37px;font-size:13px}#nav-map svg{height:95px}.action-rail{max-height:calc(100dvh - 280px)}}
@media(max-height:540px) and (orientation:landscape){.navigation{top:100px}.compass{width:90px;height:90px}.compass b{top:37px;font-size:13px}.power-controls input{height:75px}.power-controls{gap:3px}.touch{bottom:56px}.engine-gauge{padding:5px 2px}#nav-map{position:absolute;left:125px;top:0;width:100px}#nav-map svg{height:100px}}
/* Keep the optional crash report visible without covering the scene. */
.action-rail #show-report{order:-1;background:#147fa1;border-color:#83e3fc;color:#fff;min-height:58px}
/* Ages 8–13: readable labels, generous touch targets, one clear next action. */
button{min-height:50px;font-size:14px;letter-spacing:.2px}select{min-height:50px}.select-card strong{font-size:22px}.select-card>span{font-size:14px;line-height:1.45}.plane-category{font-size:12px!important;text-transform:uppercase;letter-spacing:1.2px;color:#9eddf3}.fleet-hint{margin:0 0 14px;font-size:16px;color:#d4e9fa}.select-card svg{height:100px}.action-rail{width:155px;gap:9px;max-height:calc(100dvh - 240px)}.action-rail button{font-size:13px;min-height:54px;line-height:1.25}.action-rail #pushback,.action-rail #taxi-guide{background:#136b86}.action-rail #parking{border-color:#ffe08a}#extra-controls{display:flex;flex-direction:column;gap:9px}#extra-controls button{width:100%}.drawer{right:180px;width:330px}.drawer p,.drawer label{font-size:14px}.drawer ol{padding-left:23px;font-size:15px;line-height:1.5}.drawer li{margin-bottom:12px}.notice{font:14px/1.4 Arial,sans-serif;max-width:calc(100vw - 410px);bottom:78px}.instrument small{font-size:11px}.identity{font-size:12px}.power-controls label{font-size:11px}.power-controls button{width:66px;min-height:52px}.power-controls input{width:52px}.engine-gauge small,.engine-gauge span{font-size:10px}.engine-gauge b{font-size:18px}.stick-label{font:10px Arial,sans-serif}.system-strip{font-size:12px}#quick-start{background:#c4ee92;color:#142c16}.setup-footer{gap:10px}.setup-footer button{min-width:130px}.select-card.selected{box-shadow:0 0 0 3px #83e3fc}.select-card.selected:after{content:'SELECTED';display:block;font-size:11px;letter-spacing:1px;margin-top:8px;color:#164e68}
@media(max-width:900px){.flight-top{flex-wrap:wrap;gap:8px}.instruments{order:3;width:100%;justify-content:center;padding:8px 0}.instrument{min-width:65px;padding:0 10px}.identity{top:144px}.action-rail{top:175px;width:132px}.action-rail button{font-size:12px}.navigation{top:175px}.drawer{right:157px;top:165px;max-height:calc(100dvh - 180px)}.notice{bottom:54px;max-width:calc(100vw - 28px);font-size:13px}.system-strip{font-size:10px}.touch{bottom:122px}.setup-footer button{min-width:0;font-size:12px}.gate{min-height:48px;min-width:44px}}
@media(max-width:600px){.drawer{left:12px;right:12px;top:170px;width:auto}.select-card strong{font-size:18px}.select-card>span{font-size:13px}.select-card{padding:14px}.select-card svg{height:80px}.instrument{padding:0 6px;min-width:58px}.instrument small{font-size:9px}.power-controls button{width:52px}.touch{gap:7px}.action-rail{width:112px}.action-rail button{font-size:11px}.power-controls input{height:115px}.system-strip #system-status{display:none}.setup-footer{gap:6px}}
@media(max-height:540px) and (orientation:landscape){.flight-top{flex-wrap:nowrap}.instruments{order:0;width:auto}.identity{top:88px}.action-rail{top:110px;width:140px;max-height:calc(100dvh - 135px)}.action-rail button{min-height:48px}.touch{bottom:65px}.notice{bottom:18px;max-width:calc(100vw - 420px);left:54%;font-size:12px}.system-strip{display:none}.navigation{top:108px}.drawer{top:100px;right:165px;max-height:calc(100dvh - 115px)}.power-controls input{height:80px}}
.stick-label{white-space:normal;text-align:center;width:150px;bottom:-30px;font-size:11px;line-height:1.3}
.stick-label{left:0;width:100%;font-size:10px}
