:root{color-scheme:light;--ink:#20323b;--muted:#536671;--surface:#f8fbfc;--line:#c6d2d7;--accent:#12697e;--scope:#18384d;--cyan:#96e4ef;--orange:#ffd1a0;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;font-size:14px;color:var(--ink);background:#e9f0f3;font-variant-numeric:tabular-nums}
*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit;color:inherit}button,select,input[type=number]{border:1px solid #a8bdc7;border-radius:5px;background:#fbfdfe;min-height:36px;padding:6px 9px}button{cursor:pointer}button:hover,a.game-link:hover{background:#e8f2f5}button[aria-pressed=true]{background:#d0e6ec;border-color:var(--accent);color:#0a5365}button:disabled{cursor:default;color:#6c7c84;background:#e8edef}a{color:var(--accent);text-underline-offset:3px}a:hover{color:#0a5365}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,svg:focus-visible{outline:3px solid #087f9e;outline-offset:2px}::selection{background:#b4e0eb;color:#163a4b}input{caret-color:var(--accent)}*{scrollbar-width:thin;scrollbar-color:#9fb3bd #e9f0f3}
.chart-header{height:58px;display:flex;align-items:center;gap:18px;padding:0 18px;background:var(--surface);border-bottom:1px solid var(--line)}.chart-header h1{font-size:18px;margin:0;font-weight:700;letter-spacing:-.02em}.chart-header>span{margin-left:auto;font-size:12px;color:var(--muted)}.game-link{font-weight:700;text-decoration:none;padding:7px 0}.chart-header .game-link:after{content:" /";color:#657983;padding-left:14px}
main{display:grid;grid-template-columns:minmax(0,1fr) 390px;height:calc(100dvh - 58px)}.map-column{min-width:0;display:flex;flex-direction:column}.map-controls{display:flex;gap:10px;align-items:end;padding:12px 14px;background:var(--surface)}.map-controls label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650}.map-controls select{font-size:13px;width:100%;min-width:100px;max-width:100%}.procedure-choice{flex:1;min-width:0}
.chart-scope{flex:1;min-height:300px;position:relative;background:var(--scope);overflow:hidden}#chart-map{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#chart-map:active{cursor:grabbing}.map-view-tools{position:absolute;top:12px;left:12px;display:flex;gap:4px}.map-view-tools button{min-height:32px;background:#f8fbfc;font-size:12px}.map-legend{position:absolute;bottom:12px;left:12px;right:12px;display:flex;gap:12px;flex-wrap:wrap;color:#daeaf1;font-size:11px;pointer-events:none}.map-legend span:before{content:"";display:inline-block;width:15px;margin-right:5px;vertical-align:middle}.legend-route:before{border-top:2px solid var(--cyan)}.legend-airspace:before{border-top:1px dashed #a7bdcc}.legend-stand:before{height:4px;background:var(--orange)}.map-scale{position:absolute;right:12px;top:10px;margin:0;border-bottom:2px solid #d7e7ed;padding-bottom:5px;text-align:center;color:#e8f2f5;font-size:11px;pointer-events:none}.map-loading{position:absolute;inset:42% 20px auto;text-align:center;color:white}.map-loading a{color:var(--cyan)}.map-loading[hidden]{display:none}
.layer-controls{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:10px 14px;background:var(--surface);font-size:12px}.layer-controls label{display:flex;align-items:center;gap:5px}.layer-controls input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;margin:0}.layer-controls input[type=number]{width:85px;min-height:30px;font-size:13px}.chart-disclosure{font-size:12px;line-height:1.6;color:var(--muted);margin:0;padding:10px 14px;border-top:1px solid var(--line)}
.chart-detail{min-width:0;background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.detail-tabs{display:flex;gap:5px;padding:12px;flex-shrink:0;border-bottom:1px solid var(--line)}.detail-tabs button{flex:1;font-size:13px}#chart-detail-content{padding:17px 16px;overflow:auto;line-height:1.6}#chart-detail-content h2{font-size:20px;line-height:1.3;letter-spacing:-.02em;margin:0 0 8px}#chart-detail-content h3{font-size:14px;margin:24px 0 9px}#chart-detail-content p{margin:8px 0;font-size:13px}#chart-detail-content ul{padding-left:18px;font-size:12px}#chart-detail-content li{margin:8px 0}.detail-subtitle{color:var(--muted)}.source-link{font-size:12px}.source-info{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.source-info p{font-size:11px!important}.detail-note{background:#f5f0e6;color:#704818;padding:9px 11px;font-size:12px!important;border-radius:5px}.detail-meta{display:grid;grid-template-columns:85px 1fr;gap:5px 10px;font-size:12px;margin:12px 0}.detail-meta dt{color:var(--muted)}.detail-meta dd{margin:0;overflow-wrap:anywhere}.detail-table{border-collapse:collapse;width:100%;font-size:11px;line-height:1.5}.detail-table th{text-align:left;font-weight:650;background:#e9f0f3;padding:7px 5px;white-space:nowrap}.detail-table td{padding:8px 5px;border-bottom:1px solid #dbe4e8;vertical-align:top}.detail-table td small{display:block;color:var(--muted);font-size:10px}.detail-table .fix-button{min-height:26px;font-size:11px;padding:2px 5px;margin:0;border:0;background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.detail-table tr.is-active{background:#e5f2f5}.chart-detail details{border-top:1px solid var(--line);padding:11px 0;margin-top:14px}.chart-detail summary{font-size:13px;cursor:pointer;font-weight:650}.area-list{display:flex;flex-direction:column;gap:5px;margin:12px 0}.area-list button{text-align:left;font-size:12px}.area-list button span{display:block;font-size:11px;color:var(--muted)}.area-select-label{display:block;font-size:12px;font-weight:650;margin-top:12px}.area-select{width:100%;margin:5px 0 9px;font-size:12px}.map-fix{cursor:pointer}.map-fix:hover circle{fill:#fff}.diagram-label{paint-order:stroke;stroke:#18384d;stroke-width:4px;stroke-linejoin:round}
@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 335px}.map-controls{flex-wrap:wrap;gap:7px}.map-controls .procedure-choice{flex-basis:100%}.chart-header>span{font-size:11px}.map-view-tools{top:10px;left:8px;gap:3px}.map-view-tools button{padding:5px 7px}.map-scale{top:52px}.layer-controls{gap:10px}}
@media(max-width:700px){.chart-header{height:auto;min-height:58px;gap:10px;padding:10px 12px;flex-wrap:wrap}.chart-header h1{font-size:16px}.chart-header>span{flex-basis:100%;margin:0}main{display:flex;height:auto;flex-direction:column}.map-controls{padding:10px 12px}.map-controls label{flex:1}.map-controls select{font-size:16px}.chart-scope{height:48dvh;min-height:320px;flex:auto}.map-column{flex:none}.chart-detail{border-left:0;border-top:1px solid var(--line);overflow:visible}.detail-tabs{position:sticky;top:0;background:var(--surface);z-index:1}#chart-detail-content{overflow:visible;padding:16px}.layer-controls input[type=number]{font-size:16px;width:88px}.area-select{font-size:16px}.chart-disclosure{font-size:11px}.detail-table{font-size:12px}.map-legend{gap:8px;font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
/* Keep the map inside the desktop viewport; the SVG must not set a flex intrinsic height. */
.map-column,.chart-detail{min-height:0}#chart-map{position:absolute;inset:0}.chart-scope{flex:1 1 0}
@media(max-width:700px){.chart-scope{flex:auto}}
