@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&display=swap');
.aircraft-type{display:block;margin-top:2px;color:#86ad91;font:500 10px/1.2 'Noto Sans JP',sans-serif;white-space:nowrap}
.loc-status{position:absolute;top:29px;left:14px;padding:4px 7px;border:1px solid #48714d;background:#092016d9;color:#b0d7ac;font:500 9px/1.1 'DM Mono',monospace;letter-spacing:.05em;pointer-events:none}.loc-status.established{border-color:#b3f1a3;color:#d1ffc5;box-shadow:0 0 10px #a5e69a55;animation:loc-boost-pulse .8s ease-in-out infinite alternate}@keyframes loc-boost-pulse{from{border-color:#77a979;color:#b8deb3;box-shadow:0 0 5px #a5e69a44;background:#092016e8}to{border-color:#d8ffd0;color:#efffec;box-shadow:0 0 16px #baffaa99,0 0 4px #e3ffdc inset;background:#153c25f2}}@media(prefers-reduced-motion:reduce){.loc-status.established{animation:none;border-color:#d8ffd0;color:#efffec;box-shadow:0 0 12px #baffaa77}}
:root{font-family:'DM Mono','Noto Sans JP',monospace;color:#d7efe3;background:#07110f;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 50% -20%,#1c3529 0%,#07110f 55%);min-height:100dvh}.console{width:min(100%,510px);margin:auto;min-height:100dvh;padding:0 18px;display:flex;flex-direction:column}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #29443a}.brand{display:flex;align-items:center;gap:10px}.brand-mark{font-size:31px;color:#a8eab0;line-height:1}.brand strong{font:700 27px/1 'Barlow Condensed',sans-serif;letter-spacing:.16em;display:block}.brand small{display:block;font-size:8px;letter-spacing:.16em;color:#789b88;margin-top:3px}.top-right{font-size:9px;color:#a5c2ad;letter-spacing:.06em;display:flex;align-items:center;gap:8px}.live-dot{height:6px;width:6px;border-radius:50%;background:#b3f7ad;box-shadow:0 0 9px #b3f7ad}.clock{color:#698476;border-left:1px solid #345245;padding-left:8px}.status-strip{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;border-bottom:1px solid #29443a;padding:16px 0 14px;gap:6px}.status-strip>div{border-right:1px solid #254235;padding-left:12px}.status-strip>div:first-child{padding-left:0}.status-strip>div:last-child{border:0}.label{display:block;font-size:9px;letter-spacing:.17em;color:#719785;font-weight:500}.status-strip strong{display:block;font:600 22px/1.2 'Barlow Condensed',sans-serif;letter-spacing:.04em;margin-top:5px;color:#e2f4e7;white-space:nowrap}.status-strip em{font-style:normal;font:11px 'DM Mono',monospace;color:#739585}.radar-wrap{position:relative;margin:14px 0 0;border:1px solid #3e6750;background:#06150f;box-shadow:inset 0 0 35px #0a2b1a,0 0 0 4px #0a1c15;aspect-ratio:1.14/1;overflow:hidden}.radar-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,#0004 4px);opacity:.4}#radar{display:block;width:100%;height:100%}.radar-top,.radar-bottom{position:absolute;left:14px;right:14px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.11em;color:#78a88a;pointer-events:none}.radar-top{top:12px}.radar-top b{font-size:8px;color:#bff9a9}.radar-bottom{bottom:12px;color:#628b6f}.message{position:absolute;left:14px;bottom:58px;background:#0b2119e8;border-left:2px solid #b6f3ad;padding:8px 12px;max-width:calc(100% - 28px);display:flex;gap:10px;align-items:center;font-size:11px;color:#e0f6dc;transition:opacity .3s}.message-kicker{font-size:9px;color:#a9e998;letter-spacing:.1em}.control-panel{padding-top:22px;flex:1}.panel-heading{display:flex;align-items:end;justify-content:space-between}.panel-heading h1{font:600 24px/1.1 'Noto Sans JP',sans-serif;letter-spacing:.03em;margin:5px 0 0}.instruction{font-size:10px;color:#789783;padding-bottom:3px}.control-content{display:grid;grid-template-columns:47% 53%;align-items:center;padding:15px 2px 11px;min-height:224px}.dial-side{text-align:center}.dial{position:relative;width:min(42vw,184px);height:min(42vw,184px);margin:auto;border-radius:50%;border:1px solid #668a70;background:radial-gradient(circle,#243b2d 0 28%,#14261d 29% 62%,#344b37 63% 65%,#102219 66%);box-shadow:0 8px 23px #0009,inset 0 0 0 6px #0a1a12,inset 0 0 0 8px #4d6c52;touch-action:none;cursor:grab}.dial:active{cursor:grabbing}.dial-ticks{position:absolute;inset:10px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#8eb195 0deg 1deg,transparent 1deg 15deg);mask:radial-gradient(circle,transparent 0 79%,#000 80% 85%,transparent 86%)}.dial-face{position:absolute;inset:15px;border-radius:50%;border:1px solid #47654e}.dial-face span:not(.dial-pointer):not(.dial-center){position:absolute;color:#9fc0a2;font:500 12px 'DM Mono',monospace}.dial-n{top:8px;left:50%;transform:translateX(-50%)}.dial-e{right:9px;top:50%;transform:translateY(-50%)}.dial-s{bottom:8px;left:50%;transform:translateY(-50%)}.dial-w{left:9px;top:50%;transform:translateY(-50%)}.dial-pointer{position:absolute;left:50%;top:50%;width:3px;height:45%;transform-origin:50% 0;background:linear-gradient(#b6f5ae,#b6f5ae 72%,transparent);box-shadow:0 0 9px #b6f5ae}.dial-pointer:after{content:"";position:absolute;top:0;left:-5px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:11px solid #b6f5ae;transform:translateY(-8px)}.dial-center{position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50%;transform:translate(-50%,-50%);background:#b4e6ad;border:4px solid #1b3223;box-shadow:0 0 8px #b6f5ae}.dial-hint{margin-top:11px;color:#658471;font-size:9px;letter-spacing:.15em}.command-side{padding-left:15px}.selected{font:600 56px/1 'Barlow Condensed',sans-serif;letter-spacing:.03em;color:#c8f8bb;margin:5px 0 10px;text-shadow:0 0 18px #a9e89a33}.selected sup{font:25px 'Barlow Condensed',sans-serif;vertical-align:top;margin-left:3px}.adjust{display:flex;gap:8px;margin-bottom:11px}.adjust button{flex:1;background:#13271c;border:1px solid #45674e;color:#b6d6b4;border-radius:3px;height:33px;font:500 12px 'DM Mono',monospace}.issue{width:100%;background:#b6edab;border:1px solid #d4ffd1;color:#102319;border-radius:3px;height:46px;text-align:left;padding:0 13px;font:700 14px 'Noto Sans JP',sans-serif;cursor:pointer;box-shadow:0 3px 0 #5b875b}.issue span{font-size:20px;margin-right:5px}.issue small{float:right;font:500 9px 'DM Mono',monospace;letter-spacing:.07em;margin-top:6px}.issue:active{transform:translateY(2px);box-shadow:0 1px 0 #5b875b}.command-note{margin:12px 0 0;color:#7c9c85;font-size:10px;line-height:1.5}button{cursor:pointer}button:focus-visible,.dial:focus-visible{outline:2px solid #c5ffc2;outline-offset:3px}footer{border-top:1px solid #29443a;display:flex;justify-content:space-between;align-items:center;height:48px;color:#567465;font-size:9px;letter-spacing:.1em}footer button{background:none;border:0;color:#a6c9ad;font:11px 'Noto Sans JP',sans-serif}footer button span{display:inline-grid;place-items:center;border:1px solid #668a70;border-radius:50%;width:17px;height:17px;margin-left:4px}.overlay{position:fixed;inset:0;background:#020b08db;z-index:10;display:grid;place-items:center;padding:24px}.overlay[hidden]{display:none}.modal{width:min(100%,420px);border:1px solid #759b78;background:#10241a;padding:28px;box-shadow:0 18px 60px #000b}.modal h2{font:700 28px 'Noto Sans JP',sans-serif;margin:8px 0 14px}.modal p{color:#b4ceb7;line-height:1.9;font-size:13px;margin:0}.modal-info{border-top:1px solid #35543c;border-bottom:1px solid #35543c;padding:15px 0;margin:22px 0;color:#9fc5a1;font-size:12px;line-height:1.9}.modal button{width:100%;height:48px;border:0;background:#b6edab;color:#122719;font:700 14px 'Noto Sans JP',sans-serif;text-align:left;padding:0 16px}.modal button span{float:right;font-size:20px}@media(max-width:390px){.console{padding:0 13px}.topbar{height:62px}.status-strip strong{font-size:19px}.radar-wrap{margin-top:12px}.control-panel{padding-top:18px}.panel-heading h1{font-size:21px}.instruction{font-size:9px}.control-content{min-height:205px}.selected{font-size:48px}.command-side{padding-left:10px}}@media(min-height:850px){.radar-wrap{aspect-ratio:1.05/1}.control-panel{padding-top:29px}}
.dial-center{z-index:2;width:32px;height:32px;cursor:pointer;touch-action:manipulation}.dial-center:hover{box-shadow:0 0 0 5px #b6f5ae33,0 0 14px #b6f5ae}.issue.transmitting{position:relative;overflow:hidden}.issue.transmitting:before{content:"";display:inline-block;width:13px;height:13px;margin-right:8px;border:2px solid #10231955;border-top-color:#102319;border-radius:50%;vertical-align:-2px;animation:heading-loading .7s linear infinite}.issue.transmitting:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:#4d8b5f;transform-origin:left;animation:heading-progress 1.6s ease-in-out infinite}.issue.transmitting small{visibility:hidden}.issue.transmitting small:after{content:"SENDING";visibility:visible;position:absolute;right:13px}@keyframes heading-loading{to{transform:rotate(360deg)}}@keyframes heading-progress{0%{transform:scaleX(0)}75%{transform:scaleX(1)}100%{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.issue.transmitting:before,.issue.transmitting:after{animation:none}.issue.transmitting:after{transform:scaleX(1)}}
.modal-sound{display:flex;align-items:center;justify-content:space-between;margin:-8px 0 20px;color:#a9c9ad;font:500 11px 'DM Mono',monospace;letter-spacing:.12em}.modal-sound[hidden]{display:none}.modal .modal-sound button{width:64px;height:32px;padding:0;text-align:center;border:1px solid #79aa7d;border-radius:3px;background:#284c32;color:#d7f6d2;font:700 11px 'DM Mono',monospace}.modal .modal-sound button[aria-pressed="false"]{border-color:#657467;background:#243027;color:#aeb9ae}.modal.missed{border-color:#c77868;background:#291b1a;box-shadow:0 18px 60px #000b,0 0 32px #a9412826}.modal.missed .label{color:#ee9d88}.modal.missed h2{color:#ffd1c4}.modal.missed .modal-info{border-color:#7e4740;color:#ebad9f}.modal.missed #modalButton{background:#dc8c77;color:#2c1713}.modal.missed #modalButton:hover{background:#efa18d}
.heading-labels{display:flex;align-items:start;justify-content:space-between;gap:5px}.heading-labels>.label{padding-top:4px}.current-heading{text-align:right;white-space:nowrap;color:#a9c6af}.current-heading .label{font-size:8px;letter-spacing:.1em}.current-heading strong{display:block;margin-top:2px;font:600 18px/1 'Barlow Condensed',sans-serif;letter-spacing:.04em}@media(max-width:390px){.heading-labels>.label{font-size:8px}.current-heading strong{font-size:16px}}
.modal #shareScore{margin-top:10px;border:1px solid #a86d60;background:#3b2825;color:#ffd1c4;text-align:center;font:700 13px 'Noto Sans JP',sans-serif}.modal #shareScore:hover{background:#50332e}.modal #shareScore[hidden]{display:none}
.overlay{display:flex;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal{margin:auto}
.swap-controls{min-height:36px;padding:0 10px;border:1px solid #45674e;border-radius:3px;background:#13271c;color:#b6d6b4;font:500 10px 'DM Mono',monospace;letter-spacing:.04em;white-space:nowrap}.swap-controls[aria-pressed="true"]{border-color:#a8d8a5;color:#d5f5cf}.control-content.swapped{grid-template-columns:53% 47%}.control-content.swapped .dial-side{grid-column:2;grid-row:1}.control-content.swapped .command-side{grid-column:1;grid-row:1;padding-left:0;padding-right:15px}@media(max-width:390px){.control-content.swapped .command-side{padding-right:10px}}@media(min-width:800px){.control-content.swapped{grid-template-columns:56% 44%}}
.dial-center{pointer-events:none;cursor:inherit}.dial-hint{font-size:8px;letter-spacing:0;line-height:1.4}.adjust #resetHeading{flex:1.3;font-size:10px;padding:0 2px}
.dial,.dial *,.radar-wrap,.radar-wrap *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.language-control{display:flex;align-items:center;gap:5px;color:#86ad91;font:500 9px 'DM Mono','Noto Sans JP',monospace;letter-spacing:.04em}.language-control select{max-width:82px;padding:4px 3px;border:1px solid #45674e;border-radius:3px;background:#13271c;color:#d7efe3;font:11px 'Noto Sans JP',sans-serif}.language-control select:focus-visible{outline:2px solid #c5ffc2;outline-offset:2px}body:has(.overlay:not([hidden])) .language-control{position:fixed;z-index:11;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:5px 8px;border:1px solid #45674e;border-radius:3px;background:#10241a}@media(max-width:390px){.language-control span{display:none}}
.dial-s{transform:translateX(-50%)}
.dial-current-pointer{position:absolute;z-index:0;left:50%;top:50%;width:2px;height:39%;transform-origin:50% 0;background:repeating-linear-gradient(to bottom,#b8d9bc 0 5px,transparent 5px 9px);opacity:.42;pointer-events:none}.dial-current-pointer:after{content:"";position:absolute;top:-4px;left:-3px;width:6px;height:6px;border:1px solid #c5e2c8;border-radius:50%;background:#173022}.dial-pointer{z-index:1}
.dial-runway-guide{position:absolute;z-index:3;inset:3px;border-radius:50%;pointer-events:none;transform-origin:center}.dial-runway-guide:before{content:"";position:absolute;top:3px;left:50%;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:10px solid #f2bd78;filter:drop-shadow(0 0 4px #f2bd7899)}
.message{bottom:34px}
.settings-modal{width:min(100%,500px);max-height:calc(100dvh - 32px);overflow:auto}.settings-list{display:grid;gap:0;margin:18px 0;border-top:1px solid #35543c}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;border-bottom:1px solid #29483a;color:#c7dfca;font:12px 'Noto Sans JP',sans-serif}.setting-row small{display:block;margin-top:3px;color:#719785;font-size:9px}.setting-row input[type="checkbox"],.aircraft-options input{width:18px;height:18px;accent-color:#9bd696}.setting-number input{width:94px;padding:7px;border:1px solid #45674e;border-radius:3px;background:#091a12;color:#d7efe3;text-align:right;font:12px 'DM Mono',monospace}.aircraft-options{margin:12px 0;padding:12px;border:1px solid #35543c}.aircraft-options legend{padding:0 7px;color:#719785;font-size:10px;letter-spacing:.1em}.aircraft-options label{display:inline-flex;align-items:center;gap:6px;width:50%;padding:7px 0;color:#bcd5c0;font:11px 'Noto Sans JP',sans-serif}.settings-error{min-height:18px!important;margin:-8px 0 8px!important;color:#ffae9b!important;font-size:11px!important}.settings-overlay .modal button{margin-top:0}.settings-actions{display:grid;grid-template-columns:1fr 1.7fr;gap:8px}.settings-overlay .modal .settings-reset{border:1px solid #567465;background:transparent;color:#a6c9ad;font-size:11px;text-align:center}footer{gap:4px}@media(max-width:430px){footer #settingsButton,footer #helpButton{font-size:0}footer #settingsButton span,footer #helpButton span{font-size:11px;margin-left:0}.aircraft-options label{width:100%}}
