/* 고도 관제 게임 (alt-control) — 자족 스타일 (2026-09-01 신설)
   ⚠ 호스트 전역 button{width:100%}에 대비해 이 모듈의 버튼은 전부 width:auto를 명시한다
     (holding-watch v11이 같은 결함을 겪었다 — 닫기 X가 머리 폭 전체가 됐던 문제). */

/* 관리자 메뉴관리에서 숨김 처리 (2026-09-04) — features/nav-menu가 서버(/nav/state)의
   hidden에 'altctrl'이 있으면 이 클래스를 단다. alt-control.js는 그대로 자기 버튼을 만들지만
   (⛔ 이 모듈은 fetch 없음이 최상위 제약이라 스스로 서버에 묻지 않는다), CSS가 화면에서만
   지운다 — 기능은 그대로 남아 있고 진입점만 없앤다(nav_menu.py의 원칙과 같다). */
body.hide-altctrl .acg-launch,
body.hide-altctrl .acg-panel{ display:none!important; }

.acg-launch{
  position:fixed; right:14px; bottom:170px; z-index:1200;
  width:auto; padding:7px 12px; border-radius:20px; border:1px solid #22b8cf;
  background:rgba(11,18,32,.92); color:#e7f5ff; font-size:12px; font-weight:600;
  cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.35);
}
.acg-launch:hover{ background:rgba(34,184,207,.18); }

.acg-panel{
  position:fixed; right:14px; bottom:215px; z-index:1201;
  width:352px; max-height:70vh; display:flex; flex-direction:column;
  background:rgba(11,18,32,.95); border:1px solid #2b3a55; border-radius:10px;
  color:#e7f5ff; font-size:12px; box-shadow:0 6px 24px rgba(0,0,0,.45);
  overflow:hidden;
}
.acg-head{
  display:flex; align-items:center; gap:8px; padding:8px 10px;
  background:rgba(34,184,207,.12); border-bottom:1px solid #2b3a55;
  cursor:move; user-select:none; touch-action:none;
}
.acg-head b{ font-size:13px; }
/* «모의» 알약 — 상시 표기. GNSS 「축척 아님」·강수 「임의 고도」와 같은 정직성 장치 — 지우면 화면이 거짓말을 한다 */
.acg-pill{
  padding:1px 7px; border-radius:9px; border:1px solid #ffd43b; color:#ffd43b;
  font-size:10px; font-weight:700; white-space:nowrap;
}
.acg-sub{ color:#8b93a7; font-size:11px; }
.acg-x{
  margin-left:auto; width:auto; padding:0 8px; border:0; background:none; color:#8b93a7;
  font-size:16px; cursor:pointer;
}
.acg-x:hover{ color:#fff; }
.acg-note{ padding:5px 10px; color:#8b93a7; font-size:10px; border-bottom:1px solid #1c2740; }

.acg-ctlrow{ display:flex; align-items:center; gap:8px; padding:8px 10px; }
.acg-btn{
  width:auto; padding:5px 10px; border-radius:6px; border:1px solid #22b8cf;
  background:rgba(34,184,207,.15); color:#e7f5ff; font-size:12px; cursor:pointer;
}
.acg-btn:disabled{ opacity:.4; cursor:default; }
.acg-mini{
  width:auto; padding:2px 7px; border-radius:5px; border:1px solid #3d4d6b;
  background:none; color:#aab4c8; font-size:10px; cursor:pointer;
}
.acg-mini:hover{ border-color:#8b93a7; color:#fff; }
.acg-mini.on{ border-color:#22b8cf; color:#fff; background:rgba(34,184,207,.22); }   /* 경로 제어 중 표시 */

.acg-slot{
  display:flex; align-items:center; gap:8px; padding:6px 10px;
  border-top:1px solid #1c2740; cursor:pointer;
}
.acg-slot.focus{ background:rgba(255,255,255,.05); }
.acg-slot.empty{ cursor:default; opacity:.55; }
.acg-slot i{ width:10px; height:10px; border-radius:50%; flex:none; }
.acg-si{ display:flex; flex-direction:column; min-width:0; flex:1; }
.acg-si b{ font-size:12px; }
.acg-si .bad{ color:#ffa8a8; }
.acg-si .warn{ color:#ffd43b; }
.acg-tgt{ display:flex; align-items:center; gap:4px; flex:none; }
.acg-tgt b{ font-family:"IBM Plex Mono",Consolas,monospace; font-size:11px; min-width:48px; text-align:center; }
.acg-tgt button{
  width:22px; height:22px; padding:0; border-radius:5px; border:1px solid #3d4d6b;
  background:none; color:#e7f5ff; font-size:13px; cursor:pointer; line-height:1;
}
.acg-tgt button:hover{ border-color:#22b8cf; }

#acgProf{ margin:6px 8px 2px; border:1px solid #1c2740; border-radius:6px; background:rgba(0,0,0,.25); }

.acg-evhead{
  display:flex; align-items:center; justify-content:space-between;
  padding:6px 10px 2px; font-weight:700; font-size:11px; color:#aab4c8;
}
#acgEvents{ overflow-y:auto; max-height:130px; padding-bottom:6px; }
.acg-ev{ padding:3px 10px; font-size:11px; border-top:1px solid #141d31; }

.acg-toast{
  position:fixed; left:50%; bottom:150px; transform:translateX(-50%) translateY(8px);
  z-index:1300; padding:8px 14px; border-radius:8px;
  background:rgba(11,18,32,.95); border:1px solid #2b3a55; color:#e7f5ff; font-size:12px;
  opacity:0; pointer-events:none; transition:opacity .2s,transform .2s;
}
.acg-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.acg-toast.warn{ border-color:#e03131; color:#ffa8a8; }

.acg-replay{
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); z-index:1250;
  width:456px; background:rgba(11,18,32,.97); border:1px solid #2b3a55; border-radius:10px;
  color:#e7f5ff; font-size:12px; box-shadow:0 8px 30px rgba(0,0,0,.55); overflow:hidden;
}
.acg-replay canvas{ display:block; margin:6px 8px 0; border:1px solid #1c2740; border-radius:6px; }
.acg-rpbar{ display:flex; align-items:center; gap:8px; padding:8px 10px; }
.acg-rpbar input[type=range]{ flex:1; }
