/* 지구비행(flyworld) UI */
* { box-sizing: border-box; }
html, body { margin:0; padding:0; height:100%; overflow:hidden; background:#05070d; font-family:'Noto Sans KR','Malgun Gothic',sans-serif; color:#eaf2ff; -webkit-user-select:none; user-select:none; -webkit-tap-highlight-color:transparent; }
#fw-root { position:fixed; inset:0; background:#000; }
canvas { display:block; touch-action:none; }
/* 더블탭 페이지 확대 차단(지구본 더블탭 다이브와 충돌 — iOS는 user-scalable=no 무시라 CSS로도 차단) */
html, body { touch-action:manipulation; }
/* Cesium 기본 UI 잔여 숨김 */
.cesium-viewer-bottom, .cesium-widget-credits { display:none !important; }
#fw-credit { position:absolute; left:8px; bottom:6px; z-index:12; font-size:10px; color:#9fb3c8cc; pointer-events:none; text-shadow:0 1px 2px #000; }

/* 로딩 */
#fw-loading { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; background:radial-gradient(circle at 50% 40%, #10213f, #05070d); z-index:50; }
#fw-loading .spin { width:54px; height:54px; border:4px solid #24406e; border-top-color:#5ab0ff; border-radius:50%; animation:fwspin 1s linear infinite; }
#fw-loading .msg { margin-top:16px; color:#9fc3ff; font-size:15px; }
@keyframes fwspin { to { transform:rotate(360deg); } }

/* 상단 HUD */
#fw-hud { position:absolute; top:0; left:0; right:0; padding:10px 14px; display:flex; align-items:center; gap:12px; z-index:20; pointer-events:none;
  background:linear-gradient(#00030a99, transparent); }
#fw-hud .pill { background:#0b1830cc; border-radius:20px; padding:6px 12px; font-size:13px; font-weight:600; backdrop-filter:blur(4px); border:1px solid #294b7e; }
#fw-hud .grow { flex:1; }
#fw-hud button { pointer-events:auto; }
.fw-btn { pointer-events:auto; background:#12325fcc; border:1px solid #3b6bb0; color:#eaf2ff; border-radius:20px; padding:7px 14px; font-size:13px; font-weight:700; cursor:pointer; }
.fw-btn:active { transform:scale(.96); }
.fw-btn.green { background:#1a5c3acc; border-color:#3ec27f; }
.fw-btn.gold { background:#6b551acc; border-color:#e3c071; }

/* 하단 안내/속도 */
#fw-bottom { position:absolute; left:0; right:0; bottom:0; padding:10px 14px 14px; z-index:15; pointer-events:none; display:flex; align-items:flex-end; gap:12px; }
#fw-speed { pointer-events:none; flex:0 1 auto; min-width:0; font-size:12px; color:#bcd6ff; background:#0b1830aa; border:1px solid #294b7e; border-radius:12px; padding:6px 10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 하단 액션 버튼: 남는 폭을 채우되 좁으면 자동 줄바꿈(오른쪽 정렬) → 어떤 화면폭에서도 버튼이 안 잘림 */
.fw-actions { flex:1 1 auto; min-width:0; display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; align-items:flex-end; pointer-events:none; }
.fw-actions .fw-btn { pointer-events:auto; }

/* 🎞 비행 플레이어(지나온 길 돌려보기 시크바) */
#fw-player { position:absolute; left:50%; transform:translateX(-50%); bottom:118px; z-index:15; display:none; align-items:center; gap:6px;
  background:#0b1830aa; border:1px solid #294b7e; border-radius:14px; padding:5px 10px; width:min(560px, 86vw); }
#fw-player button { background:#16305acc; color:#dfe9ff; border:1px solid #3a6ea8; border-radius:8px; font-size:14px; padding:3px 9px; cursor:pointer; touch-action:none; flex:0 0 auto; }
#fw-player.rp { border-color:#8a63d6; }
#fw-player.rp button { background:#5a3aa0cc; border-color:#8a63d6; }
#fw-player input[type=range] { flex:1 1 auto; min-width:0; accent-color:#ffd34d; }
#fw-player #fw-rp-info { flex:0 0 auto; font-size:11px; color:#bcd6ff; white-space:nowrap; }

/* 모바일 조종기 */
#fw-touch { position:absolute; inset:0; z-index:16; display:none; pointer-events:none; }
#fw-touch.on { display:block; }
.fw-stick { position:absolute; bottom:26px; width:132px; height:132px; border-radius:50%; background:#0d1c34aa; border:2px solid #3b6bb0aa; pointer-events:auto; touch-action:none; }
.fw-stick.left { left:20px; }
.fw-stick.right { right:20px; }
.fw-stick .knob { position:absolute; left:50%; top:50%; width:56px; height:56px; margin:-28px 0 0 -28px; border-radius:50%; background:#2f6bbecc; border:2px solid #9fd0ff; }
.fw-stick .lbl { position:absolute; left:0; right:0; top:-22px; text-align:center; font-size:11px; color:#9fc3ff; }
#fw-throttle { position:absolute; right:24px; bottom:170px; display:flex; flex-direction:column; gap:8px; pointer-events:auto; }
#fw-throttle button { width:52px; height:44px; border-radius:12px; background:#12325fdd; border:1px solid #3b6bb0; color:#eaf2ff; font-size:18px; font-weight:800; }

/* ➤ 네비 마커 */
#fw-nav { position:absolute; z-index:18; transform:translate(-50%,-50%); pointer-events:auto; cursor:pointer; text-align:center; } /* 탭=안내 숨김 */
#fw-nav .arr { display:inline-block; font-size:26px; color:#7fe0ff; text-shadow:0 0 10px #2af, 0 1px 3px #000; }
#fw-nav .txt { display:block; margin-top:2px; font-size:11px; font-weight:700; color:#cfeaff; background:#0b183099; border:1px solid #39c8ff66; border-radius:10px; padding:2px 8px; white-space:nowrap; text-shadow:0 1px 2px #000; }

/* 버튼 활성 상태(자동항법·정지) */
.fw-btn.act { background:#1a5c3acc; border-color:#3ec27f; box-shadow:0 0 10px #3ec27f66; }

/* 지구본 선택 화면 */
#fw-globe { position:absolute; inset:0; z-index:30; display:none; pointer-events:none; }
#fw-globe.on { display:block; }
#fw-globe .globe-btns { position:absolute; top:122px; right:14px; display:flex; flex-direction:column; gap:8px; max-height:calc(100dvh - 140px); overflow-y:auto; pointer-events:auto; scrollbar-width:none; } /* 버튼 많아 작은 화면 넘침 → 세로 스크롤(컨테이너는 내용 크기만큼만 차지) */
#fw-globe .globe-btns::-webkit-scrollbar { display:none; }
#fw-globe .globe-btns .fw-btn { pointer-events:auto; }
#fw-place-card, #fw-place-card * { pointer-events:auto; }
#fw-globe .title { position:absolute; top:60px; left:0; right:0; text-align:center; font-size:18px; font-weight:800; text-shadow:0 2px 8px #000; pointer-events:none; }
#fw-globe .hint { position:absolute; top:88px; left:0; right:0; text-align:center; font-size:12px; color:#9fc3ff; pointer-events:none; }
#fw-place-card { position:absolute; left:50%; bottom:22px; transform:translateX(-50%); width:min(92vw,420px); background:#0b1830ee; border:1px solid #3b6bb0; border-radius:16px; padding:14px 16px; display:none; box-shadow:0 8px 30px #000a; }
#fw-place-card.on { display:block; }
#fw-place-card h3 { margin:0 0 4px; font-size:18px; }
#fw-place-card .country { font-size:12px; color:#8fb6ee; }
#fw-place-card .fact { font-size:13px; color:#cfe0ff; margin:8px 0 12px; line-height:1.5; }
#fw-place-card .row { display:flex; gap:8px; align-items:center; }
#fw-place-card .visited { font-size:11px; color:#3ec27f; margin-left:auto; }

/* 엽서(도착 보상) */
#fw-postcard { position:absolute; inset:0; z-index:40; display:none; align-items:center; justify-content:center; background:#000b; }
#fw-postcard.on { display:flex; }
.fw-card { width:min(92vw,460px); background:#fffdf6; color:#222; border-radius:14px; overflow:hidden; box-shadow:0 20px 60px #000c; transform:rotate(-1.2deg); }
.fw-card .photo { width:100%; height:230px; object-fit:cover; background:#dfe7f0; display:block; }
.fw-card .photo-fallback { width:100%; height:230px; display:flex; align-items:center; justify-content:center; font-size:15px; color:#557; background:linear-gradient(135deg,#c9e0ff,#eef5ff); }
.fw-card .body { padding:14px 16px 16px; }
.fw-card .stamp { float:right; border:2px dashed #b33; color:#b33; font-size:11px; font-weight:800; padding:6px 8px; border-radius:6px; transform:rotate(6deg); }
.fw-card h2 { margin:0 0 2px; font-size:22px; }
.fw-card .c { color:#667; font-size:13px; }
.fw-card .f { margin:10px 0 4px; font-size:14px; line-height:1.55; color:#334; }
.fw-card .credit { font-size:10px; color:#99a; margin-top:8px; }
.fw-card .acts { display:flex; gap:8px; padding:0 16px 16px; }
.fw-card .acts button { flex:1; padding:11px; border:0; border-radius:10px; font-weight:800; font-size:14px; cursor:pointer; }
.fw-card .acts .next { background:#2563eb; color:#fff; }
.fw-card .acts .stay { background:#e8eef7; color:#334; }

/* 시작/포인트 모달 */
#fw-modal { position:absolute; inset:0; z-index:60; display:none; align-items:center; justify-content:center; background:#000c; }
#fw-modal.on { display:flex; }
.fw-modal-box { width:min(92vw,400px); background:#0d1830; border:1px solid #3b6bb0; border-radius:16px; padding:22px; text-align:center; }
.fw-modal-box h2 { margin:0 0 8px; font-size:20px; }
.fw-modal-box p { color:#bcd6ff; font-size:14px; line-height:1.6; margin:0 0 16px; }
.fw-modal-box .big { display:block; width:100%; padding:13px; border:0; border-radius:12px; background:#2563eb; color:#fff; font-size:16px; font-weight:800; cursor:pointer; margin-bottom:8px; }
.fw-modal-box .sub { display:block; width:100%; padding:11px; border:1px solid #3b6bb0; border-radius:12px; background:transparent; color:#cfe0ff; font-size:14px; cursor:pointer; }
.fw-toast { position:absolute; top:64px; left:50%; transform:translateX(-50%); background:#0b1830ee; border:1px solid #e3c071; color:#ffe6a8; padding:8px 16px; border-radius:20px; font-size:13px; font-weight:700; z-index:45; opacity:0; transition:opacity .3s; pointer-events:none; }
.fw-toast.on { opacity:1; }

/* ⛽ 재급유 · 🖼 앨범 모달 */
#fw-fuel-modal, #fw-album-modal { position:absolute; inset:0; z-index:61; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:16px; }
#fw-fuel-modal.on, #fw-album-modal.on { display:flex; }
.fw-tabs { display:flex; gap:8px; justify-content:center; margin:10px 0 6px; }
#fw-album-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; max-height:56vh; overflow-y:auto; margin-top:10px; }
.fw-ph.fw-post { cursor:pointer; }
.fw-ph .pc { height:72px; display:flex; align-items:center; justify-content:center; font-size:34px; background:linear-gradient(135deg,#16305c,#25488a); }
.fw-ph { background:#0b1830; border:1px solid #294b7e; border-radius:10px; overflow:hidden; }
.fw-ph img { width:100%; height:96px; object-fit:cover; display:block; }
.fw-ph .m { font-size:11px; color:#bcd6ff; padding:5px 7px 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fw-ph .a { display:flex; justify-content:space-between; align-items:center; padding:4px 7px 7px; }
.fw-ph .a a { color:#9fd0ff; font-size:12px; text-decoration:none; }
.fw-ph .a button { background:none; border:0; cursor:pointer; font-size:13px; }

/* 📸 셔터 플래시 */
#fw-flash { position:absolute; inset:0; z-index:44; background:#fff; opacity:0; pointer-events:none; }
#fw-flash.shot { animation:fwflash .45s ease-out; }
@keyframes fwflash { 0%{opacity:.85;} 100%{opacity:0;} }

/* 도움말 */
#fw-help-modal { position:absolute; inset:0; z-index:62; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:20px; }
#fw-help-modal.on { display:flex; }
.fw-help-sec { margin:12px 0; }
.fw-help-sec b { color:#9fd0ff; font-size:15px; }
.fw-help-sec ul { margin:6px 0 0; padding-left:18px; }
.fw-help-sec li { font-size:14px; line-height:1.7; color:#dbe8ff; }
.fw-help-sec li b { color:#ffe6a8; font-size:14px; }
#fw-help-modal .sub { margin-top:8px; }

/* 🧭 나침반(비행 중, 상단 중앙) — 로즈가 회전, 글자는 수평 유지 */
#fw-compass { position:absolute; top:56px; left:50%; transform:translateX(-50%); width:58px; height:58px; z-index:16; pointer-events:none; }
#fw-compass .rose { position:absolute; inset:0; border-radius:50%; background:#0b1830b3; border:1px solid #294b7e; backdrop-filter:blur(3px);
  transform:rotate(var(--r,0deg)); box-shadow:0 2px 10px #0008; }
#fw-compass .rose span { position:absolute; left:50%; top:50%; font-size:12px; font-weight:800; color:#cfeaff; text-shadow:0 1px 2px #000; }
#fw-compass .rose .n { color:#ff8577; transform:translate(-50%,-50%) translateY(-19px) rotate(calc(-1 * var(--r,0deg))); }
#fw-compass .rose .e { transform:translate(-50%,-50%) translateX(19px)  rotate(calc(-1 * var(--r,0deg))); }
#fw-compass .rose .s { transform:translate(-50%,-50%) translateY(19px)  rotate(calc(-1 * var(--r,0deg))); }
#fw-compass .rose .w { transform:translate(-50%,-50%) translateX(-19px) rotate(calc(-1 * var(--r,0deg))); }
#fw-compass .needle { position:absolute; top:-13px; left:50%; transform:translateX(-50%); font-style:normal; font-size:11px; color:#7fe0ff; text-shadow:0 0 8px #2af, 0 1px 2px #000; }

/* 🗺 미니맵(세계지도 + 내 위치) */
#fw-map-toggle { position:absolute; top:56px; right:10px; z-index:16; pointer-events:auto; }
#fw-map-toggle.act { background:#1d3c6e; border-color:#4d86d8; }
#fw-minimap { position:absolute; top:96px; right:10px; z-index:16; width:220px; height:110px; border-radius:10px; overflow:hidden;
  border:1px solid #294b7e; box-shadow:0 4px 14px #000a; display:none; pointer-events:auto; cursor:pointer; background:#06101f; }
#fw-minimap.on { display:block; }
#fw-minimap canvas { width:100%; height:100%; display:block; }
@media (max-width:480px) { #fw-minimap { width:168px; height:84px; top:94px; } }

/* 📍 지점 선회 */
#fw-orbit-modal { position:absolute; inset:0; z-index:61; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:16px; }
#fw-orbit-modal.on { display:flex; }
/* 🧭 경로 만들기 — 도킹 패널(배경=선택 지점의 실시간 항공뷰가 보이게 어두운 덮개 없음)
   PC=왼쪽 세로 패널, 폰=하단 시트. 지점 탭 → 뒤 화면이 그 지점 항공뷰로 바뀌고 고도·방향 즉시 반영 */
#fw-route-modal { position:absolute; inset:0; z-index:61; display:none; pointer-events:none; }
#fw-route-modal.on { display:block; }
#fw-route-modal .fw-modal-box { pointer-events:auto; position:absolute; left:12px; top:12px; bottom:12px;
  width:min(430px, 92vw); overflow-y:auto; overscroll-behavior:contain; text-align:left; background:#0d1830f2; }
#fw-rt-title { display:flex; align-items:center; gap:6px; margin-bottom:8px; }
#fw-rt-title b { font-size:15px; color:#dbe8ff; white-space:nowrap; }
/* 📱 3단 구성(사장님 요청): 위=항공뷰(빈 공간) / 가운데=지점 지도 / 아래=제어.
   폰·폴더폰(≤900px)은 하단 시트 — 위쪽 최소 38vh를 항공뷰가 차지 */
@media (max-width:900px){
  #fw-route-modal .fw-modal-box { left:0; right:0; top:auto; bottom:0; width:100%; max-height:60vh;
    border-radius:16px 16px 0 0; padding:8px 12px 12px; border-left:0; border-right:0; border-bottom:0; }
  #fw-rt-wrap { height:23vh; }               /* 지도 밴드 고정 높이(캔버스가 박스 크기에 맞춰 재조정됨) */
  #fw-route-cv { width:100%; height:100%; }
  #fw-rt-title { margin-bottom:6px; }
  #fw-route-modal .fw-rt-row { margin:6px 0; }
}
#fw-rt-alt-label { width:auto; min-width:34px; white-space:nowrap; }
/* ❓ 사용법 모달 */
#fw-rt-helpmodal { position:fixed; inset:0; z-index:88; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:16px; }
#fw-rt-helpmodal.on { display:flex; }
/* 경로 편집 중: 배경=항공뷰 전용 화면 — 지구본 제목·버튼·검색 숨김(시각 정리+오클릭 방지) */
body.rt-edit #fw-globe .title, body.rt-edit #fw-globe .hint,
body.rt-edit #fw-globe .globe-btns, body.rt-edit #fw-search { display:none; }
#fw-rt-wrap { position:relative; border:1px solid #294b7e; border-radius:12px; overflow:hidden; }
#fw-route-cv { display:block; width:100%; height:auto; cursor:crosshair; touch-action:none; }
#fw-rt-zoom { position:absolute; right:8px; top:8px; display:flex; flex-direction:column; gap:6px; }
#fw-rt-zoom button { width:36px; height:36px; border-radius:9px; border:1px solid #3b6bb0; background:#0d1830dd; color:#fff; font-size:18px; font-weight:800; cursor:pointer; }
.fw-rt-row { display:flex; align-items:center; gap:10px; margin:10px 2px 0; }
.fw-rt-row label { width:38px; font-size:14px; color:#bcd6ff; }
.fw-rt-row input[type=range] { flex:1; accent-color:#3ea0ff; }
.fw-rt-row b { width:86px; text-align:right; font-size:14px; color:#ffe6a8; }
.fw-rt-btns { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; justify-content:center; }

/* 📁 내 경로 목록(기기 저장) · 🗓 타임라인 날짜 선택 */
#fw-rtlist, #fw-daypick, #fw-shared { position:absolute; inset:0; z-index:64; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:16px; }
#fw-rtlist.on, #fw-daypick.on, #fw-shared.on { display:flex; }
#fw-shared-items { max-height:52vh; overflow-y:auto; }
#fw-daypick-items { max-height:52vh; overflow-y:auto; }

/* 🗓 구글 타임라인 가져오기 안내 */
#fw-tl-modal { position:absolute; inset:0; z-index:62; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:16px; }
#fw-tl-modal.on { display:flex; }
.fw-tl-step { display:flex; align-items:flex-start; gap:10px; padding:9px 2px; border-bottom:1px solid #1d3557; font-size:14.5px; color:#dbe8ff; line-height:1.55; }
.fw-tl-step > b { flex-shrink:0; width:26px; height:26px; border-radius:50%; background:#2563eb; color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; }
#fw-rtlist-items { max-height:52vh; overflow-y:auto; }
.fw-rtlist-item { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 4px; border-bottom:1px solid #1d3557; }
.fw-rtlist-item .ttl { min-width:0; }
.fw-rtlist-item .ttl b { display:block; font-size:15px; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fw-rtlist-item .ttl span { font-size:12px; color:#9db8e0; }
.fw-rtlist-item .btns { display:flex; gap:6px; flex-shrink:0; }
.fw-rtlist-item .btns .fw-btn { padding:7px 10px; font-size:13px; }

/* ⛽ 자동 재급유 선택 */
select.fw-af { background:#0d1830; color:#dbe8ff; border:1px solid #3b6bb0; border-radius:8px; padding:6px 8px; font-size:13px; cursor:pointer; }

/* ⚙ 설정 모달 */
#fw-set-modal { position:absolute; inset:0; z-index:63; display:none; align-items:center; justify-content:center; background:#000c; overflow:auto; padding:16px; }
#fw-set-modal.on { display:flex; }
.fw-set-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 2px; border-bottom:1px solid #1d3557; cursor:pointer; font-size:15px; color:#dbe8ff; }
.fw-set-row input { width:20px; height:20px; accent-color:#3ea0ff; cursor:pointer; }
.fw-set-hint { font-size:12px !important; color:#7d9cc9 !important; margin:4px 2px 2px !important; }

/* 📱 좁은 화면 대응: 글자 세로꺾임·겹침 방지 */
.fw-btn, #fw-hud .pill, #fw-bottom .pill { white-space:nowrap; }
@media (max-width:640px){
  #fw-hud { gap:5px; padding:6px 6px; }
  #fw-hud .fw-btn { font-size:11px; padding:5px 7px; }
  #fw-hud .pill { font-size:11px; padding:4px 7px; }
  #fw-place { max-width:23vw; overflow:hidden; text-overflow:ellipsis; }
  #fw-compass { top:48px; transform:translateX(-50%) scale(.8); }
  #fw-map-toggle { top:48px; }
  #fw-minimap { top:86px; }
  /* 왼쪽 조종스틱(z16)이 버튼줄을 가리지 않게 스틱 폭만큼 왼쪽 여백 확보 — 버튼은 오른쪽에서만 줄바꿈 */
  #fw-bottom { gap:5px; padding:8px 8px 10px 152px; }
  #fw-bottom .fw-btn { font-size:12px; padding:7px 9px; } /* 10px 아이콘은 폰에서 식별 불가(정지 버튼 못 찾음) */
  .fw-actions { gap:5px; }
  /* 속도 표시는 조종스틱 위에 띄우고(절대배치), 버튼줄은 하단 폭을 온전히 써서 자동 줄바꿈 */
  #fw-speed { position:absolute; left:8px; bottom:128px; margin:0; font-size:10px; max-width:60vw; }
  #fw-plane-vis, #fw-cam-plane { display:none; } /* ⚙ 설정에서 조절 가능 */
  #fw-player { bottom:156px; width:92vw; padding:4px 8px; gap:4px; }
  #fw-player button { font-size:12px; padding:3px 7px; }
  #fw-player #fw-rp-info { font-size:10px; }
}

/* 📱 좁은 화면: 지구본 제목이 상단 버튼과 겹치지 않게 아래로 */
@media (max-width:640px){
  #fw-globe .title { top:52px; font-size:16px; }
  #fw-globe .hint { top:78px; }
  #fw-globe .globe-btns { top:104px; right:10px; }
}
#fw-minimap { touch-action:none; } /* 드래그 이동 지원 */

/* ✥ 조종 스틱 이동 손잡이: 끌면 스틱 이동(위치 기억), 탭=원위치 */
.fw-drag-handle { position:absolute; top:-16px; right:-10px; width:32px; height:32px; border-radius:50%;
  background:#0d1830dd; border:1px solid #3b6bb0; color:#9fc3ff; display:flex; align-items:center; justify-content:center;
  font-size:16px; font-style:normal; pointer-events:auto; touch-action:none; cursor:grab; z-index:3; }

/* 🔍 사진 크게 보기(앨범 라이트박스) */
#fw-photo-view { position:absolute; inset:0; z-index:64; display:none; align-items:center; justify-content:center; background:#000e; }
#fw-photo-view.on { display:flex; }
#fw-pv-img { max-width:92vw; max-height:74vh; border-radius:10px; box-shadow:0 8px 30px #000; touch-action:pan-y; }
.fw-pv-nav { position:absolute; top:50%; transform:translateY(-50%); width:46px; height:64px; border:0; border-radius:12px;
  background:#0d1830cc; color:#cfe0ff; font-size:20px; cursor:pointer; z-index:2; }
#fw-pv-prev { left:8px; } #fw-pv-next { right:8px; }
#fw-pv-cap { position:absolute; bottom:76px; left:0; right:0; text-align:center; font-size:13px; color:#bcd6ff; text-shadow:0 1px 3px #000; }
#fw-pv-btns { position:absolute; bottom:22px; left:0; right:0; display:flex; gap:10px; justify-content:center; }
#fw-pv-btns .fw-btn { pointer-events:auto; text-decoration:none; }
.fw-ph img { cursor:zoom-in; }

/* 🔍 주소·지명 검색(지구본) */
#fw-search { position:absolute; top:108px; left:10px; width:min(60vw,330px); z-index:31; display:flex; gap:6px; pointer-events:auto; }
#fw-search input { flex:1; min-width:0; padding:8px 12px; border-radius:12px; border:1px solid #3b6bb0; background:#0d1830dd; color:#eaf2ff; font-size:13px; outline:none; }
#fw-search input::placeholder { color:#7d9cc9; }
#fw-search-list { position:absolute; top:40px; left:0; right:0; background:#0d1830f2; border:1px solid #3b6bb0; border-radius:12px; overflow:hidden; display:none; }
#fw-search-list.on { display:block; }
#fw-search-list .it { padding:9px 12px; font-size:13px; color:#dbe8ff; cursor:pointer; border-bottom:1px solid #1d3557; }
#fw-search-list .it:last-child { border-bottom:0; }
#fw-search-list .it:hover { background:#16305c; }
#fw-search-list .it small { display:block; color:#7d9cc9; font-size:11px; margin-top:2px; }
@media (max-width:640px){ #fw-search { top:100px; width:calc(100vw - 130px); } }
.fw-set-row select { background:#0d1830; color:#dbe8ff; border:1px solid #3b6bb0; border-radius:9px; padding:6px 10px; font-size:13px; }
