/* =====================================================
   hellmode-theme.css — 🔥 헬모드 대회 전용 테마 (v2.46.1)
   style.css(01~10 체인) 로드 "위에" 오버라이드만 얹는다.
   운영자 결정: 헬모드 디폴트 배경 스킨 = 메인 사이트 하사(NCO) 테마 그대로 적용.
   hellmode.html <html data-map="nco"> 로 css/01-base.css 의 --map-* 변수(부사관 성 팔레트)를
   상시 활성화하고, 아래 --hell-* 는 전부 그 변수를 참조 — 마일스톤/토글 없음(항상 이 스킨).
===================================================== */

:root {
  --hell-accent:      var(--map-ring, #ff4d6d);
  --hell-accent-soft: rgba(255, 77, 109, 0.16);
  --hell-ember:       var(--map-accent, #f85d7a);
  --hell-gold:        #ffb02e;
  --hell-dead:        #7a7f8c;
}

/* ── 페이지 골격: index 와 동일 flex column (nav 없이 헤더→trading-area) ── */
body.hellmode {
  height: 100vh;
  overflow: hidden;
  background:
    radial-gradient(1200px 300px at 50% -80px, rgba(255, 77, 109, 0.14), transparent 70%),
    var(--map-bg, #2e0e1a);
}
body.hellmode .trading-area { flex: 1; min-height: 0; }

/* ── 상단 헤더 ── */
.hell-header {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--hell-accent-soft);
  background: linear-gradient(180deg, rgba(255, 77, 109, 0.10), rgba(255, 77, 109, 0.02));
}
.hell-title {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fff;
  text-shadow: 0 0 8px rgba(255, 77, 109, 0.85), 0 0 22px rgba(255, 93, 143, 0.45);
  animation: hellGlow 2.2s ease-in-out infinite alternate;
  white-space: nowrap;
}
@keyframes hellGlow {
  from { text-shadow: 0 0 6px rgba(255, 77, 109, 0.7), 0 0 16px rgba(255, 93, 143, 0.3); }
  to   { text-shadow: 0 0 12px rgba(255, 77, 109, 1), 0 0 30px rgba(255, 93, 143, 0.6); }
}
.hell-countdown {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  font-size: 14px;
  color: var(--hell-ember);
  background: var(--hell-accent-soft);
  border: 1px solid rgba(255, 77, 109, 0.35);
  border-radius: 6px;
  padding: 3px 10px;
  white-space: nowrap;
}
.hell-mystat {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
  font-size: 12px;
  overflow: hidden;
  white-space: nowrap;
}
.hell-mystat b { font-variant-numeric: tabular-nums; }
.hell-back-link {
  flex: 0 0 auto;
  color: var(--text-muted, #8a8f9d);
  text-decoration: none;
  font-size: 12px;
  border: 1px solid var(--border, #2a2e39);
  border-radius: 6px;
  padding: 4px 10px;
}
.hell-back-link:hover { color: #fff; border-color: var(--hell-accent); }

/* ── 우측 사이드 (랭킹 보드 + 치킨 배너) — .trading-area 의 chat 그리드 슬롯 재사용 ── */
.hell-side {
  grid-area: chat;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  background: var(--bg-panel, #1c2030);
  border-left: 1px solid var(--border, #2a2e39);
}
.hell-chicken-banner {
  flex: 0 0 auto;
  margin: 10px;
  padding: 12px 12px;
  border-radius: 10px;
  background: linear-gradient(135deg, #3a1206 0%, #7a2410 45%, #b8451a 100%);
  border: 1px solid rgba(255, 154, 60, 0.5);
  box-shadow: inset 0 0 24px rgba(255, 77, 46, 0.25);
  text-align: center;
}
.hell-chicken-banner .hcb-emoji { font-size: 26px; display: block; margin-bottom: 4px; }
.hell-chicken-banner .hcb-title { font-size: 14px; font-weight: 800; color: var(--hell-gold); }
.hell-chicken-banner .hcb-sub   { font-size: 11px; color: #f3d9c4; margin-top: 2px; }
/* ── 대회 가이드 요약 (치킨 배너 아래, 입장 오버레이 규칙 요약본) ── */
.hell-guide {
  flex: 0 0 auto;
  margin: 0 10px 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 77, 109, 0.06);
  border: 1px solid var(--hell-accent-soft);
}
.hell-guide .hg-title {
  font-size: 11px;
  font-weight: 800;
  color: var(--hell-ember);
  margin-bottom: 6px;
}
.hell-guide .hg-list {
  margin: 0;
  padding-left: 16px;
  list-style: disc;
  font-size: 11px;
  line-height: 1.55;
  color: #d8c7bd;
}
.hell-guide .hg-list b { color: #fff; }
.hell-rank-head {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 12px 6px;
  font-size: 12px;
  font-weight: 800;
  color: var(--hell-ember);
  border-bottom: 1px solid var(--border, #2a2e39);
}
.hell-rank-head .hrh-count { font-weight: 600; color: var(--text-muted, #8a8f9d); }
.hell-rank-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 4px 6px 10px;
}
.hell-rank-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.3;
}
.hell-rank-row .hr-rank { flex: 0 0 26px; font-weight: 800; color: var(--text-muted, #8a8f9d); font-variant-numeric: tabular-nums; }
.hell-rank-row.top1 .hr-rank { color: var(--hell-gold); }
.hell-rank-row .hr-nick { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hell-rank-row .hr-pnl  { flex: 0 0 auto; font-variant-numeric: tabular-nums; font-weight: 700; }
.hell-rank-row.me {
  background: var(--hell-accent-soft);
  border: 1px solid rgba(255, 77, 109, 0.4);
}
.hell-rank-row.dead { opacity: 0.5; }
.hell-rank-row.dead .hr-nick { text-decoration: line-through; }
.hell-pnl-pos { color: var(--green, #0ecb81); }
.hell-pnl-neg { color: var(--red, #f6465d); }

/* ── 🕶️ 암전(페이즈4) — 종반 순위 차단 안내 (v2.60.0 정보공개 페이즈) ── */
.hell-rank-blackout {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 28px 16px;
  text-align: center;
  font-size: 34px;
  color: var(--text-muted, #8a8f9d);
}
.hell-rank-blackout .hrb-msg { font-size: 13px; font-weight: 700; color: var(--hell-text, #e8eaed); }
.hell-rank-blackout .hrb-alive { font-size: 13px; }
.hell-rank-blackout .hrb-alive b { color: var(--hell-gold); font-variant-numeric: tabular-nums; }
.hell-rank-blackout .hrb-sub { font-size: 11px; opacity: 0.75; }

/* ── 레버리지 슬라이더 (1~50) ── */
.hell-lev-row { display: flex; flex-direction: column; gap: 4px; margin: 6px 0; }
.hell-lev-row .op-label { display: flex; justify-content: space-between; }
.hell-lev-row #hell-lev-val { color: var(--hell-ember); font-weight: 800; }
#hell-lev-range { width: 100%; accent-color: var(--hell-accent); cursor: pointer; }

/* ── 탈락(관전) 배너 ── */
.hell-dead-banner {
  position: fixed;
  top: 52px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 400;
  background: rgba(20, 12, 12, 0.95);
  border: 1px solid var(--hell-accent);
  color: #ffd9d0;
  font-size: 13px;
  font-weight: 700;
  border-radius: 8px;
  padding: 8px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.5);
}
.hell-dead-banner.hidden { display: none; }

/* 주문 패널 비활성 (탈락/종료/미참가) */
.order-panel.hell-disabled { position: relative; }
.order-panel.hell-disabled::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 14, 0.55);
  z-index: 10;
  cursor: not-allowed;
}

/* 매수/매도 제출 중 스피너 — hellModeOrder 콜러블 왕복(수백ms~1s) 동안 "멈춘 느낌" 완화 */
.trade-btn.hell-btn-loading { position: relative; opacity: 0.75; }
.trade-btn.hell-btn-loading .btn-main,
.trade-btn.hell-btn-loading .btn-sub { visibility: hidden; }
.trade-btn.hell-btn-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: hell-btn-spin 0.6s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .trade-btn.hell-btn-loading::after { animation: none; }
}
@keyframes hell-btn-spin { to { transform: rotate(360deg); } }

/* ── 풀스크린 오버레이 (미참가/미로그인/종료/대회없음) ── */
.hell-overlay {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 6, 10, 0.82);
  backdrop-filter: blur(3px);
  padding: 16px;
}
.hell-overlay.hidden { display: none; }
/* v2.58.4 — 세션 킥 잠금 오버레이는 TP/SL 모달(.modal-overlay z100000) 위에 떠야 함
   (하부는 JS 에서 inert 처리 — 이 규칙은 z-index 승격만 담당) */
.hell-overlay.hell-kick-lock { z-index: 2147483000; }
.hell-overlay-card {
  width: min(460px, 94vw);
  max-height: 86vh;
  overflow-y: auto;
  background: linear-gradient(180deg, #221016, #15141c 55%);
  border: 1px solid rgba(255, 77, 109, 0.45);
  border-radius: 14px;
  box-shadow: 0 0 40px rgba(255, 77, 109, 0.25);
  padding: 22px 20px;
  text-align: center;
}
.hell-overlay-card h2 { margin: 0 0 10px; font-size: 19px; color: #fff; text-shadow: 0 0 10px rgba(255, 77, 109, 0.8); }
.hell-overlay-card .hoc-sub { font-size: 12px; color: var(--text-muted, #8a8f9d); margin-bottom: 14px; }
.hell-rules {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  text-align: left;
  font-size: 13px;
  line-height: 1.5;
}
.hell-rules li {
  padding: 6px 10px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}
.hell-rules li::before { content: '🔥 '; }
.hell-join-btn {
  width: 100%;
  padding: 12px;
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #ff4d6d, #a3123f);
  border: none;
  border-radius: 10px;
  cursor: pointer;
  box-shadow: 0 0 16px rgba(255, 77, 109, 0.5);
}
.hell-join-btn:hover:not(:disabled) { filter: brightness(1.12); }
.hell-join-btn:disabled { opacity: 0.55; cursor: wait; }
.hell-overlay-link {
  display: inline-block;
  margin-top: 12px;
  color: var(--hell-ember);
  font-size: 12px;
  text-decoration: underline;
}
.hell-final-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 8px; }
.hell-final-table th, .hell-final-table td { padding: 5px 6px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); text-align: left; }
.hell-final-table th { color: var(--text-muted, #8a8f9d); font-weight: 600; }
.hell-final-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.hell-final-table tr.top1 td { color: var(--hell-gold); font-weight: 800; }

/* ── 토스트 ── */
.hell-toast {
  position: fixed;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 600;
  background: rgba(18, 16, 22, 0.95);
  border: 1px solid var(--hell-accent);
  color: #fff;
  font-size: 13px;
  border-radius: 8px;
  padding: 9px 16px;
  max-width: 90vw;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.5);
  transition: opacity 0.25s ease;
}
.hell-toast.hidden { display: none; }

/* TP/SL 수정 모달 분할 비율 칩 (스킬 게이트 없음 — 상시 노출) */
.hell-ratio-chips { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.hell-ratio-chip {
  font-size: 11px; padding: 3px 9px; border-radius: 5px;
  border: 1px solid var(--border, #2a2e39); background: var(--bg-input, #0e1118);
  color: var(--text-secondary, #9aa3b2); cursor: pointer;
}
.hell-ratio-chip.active { border-color: var(--hell-accent); color: #fff; background: var(--hell-accent-soft); }
.hell-ratio-custom {
  width: 56px; font-size: 11px; padding: 3px 6px; border-radius: 5px;
  border: 1px solid var(--border, #2a2e39); background: var(--bg-input, #0e1118); color: var(--text-primary, #e4e7eb);
}

/* 하단 테이블 작업 버튼 */
.hell-act-btn {
  font-size: 11px;
  padding: 2px 8px;
  margin-right: 4px;
  border-radius: 4px;
  border: 1px solid var(--border, #2a2e39);
  background: var(--bg-input, #0e1118);
  color: var(--text-primary, #e4e7eb);
  cursor: pointer;
}
.hell-act-btn:hover { border-color: var(--hell-accent); color: var(--hell-ember); }
.hell-ord-px { cursor: pointer; text-decoration: underline dotted; }
.hell-ord-px:hover { color: var(--hell-ember); }

/* ── 🔮 AI 가격 예측 패널 (v2.52.0) — 랭킹 리스트 아래 고정 슬롯.
   데스크톱 .hell-side 는 고정 높이 flex column + .hell-rank-list{flex:1} 내부스크롤(v2.49.2 설계)
   — 이 패널은 flex:0 0 auto 자연 높이만 차지 (자체 max-height 금지, 내부스크롤 침범 금지).
   모바일은 기존 블록이 .hell-rank-list 만 flex:0 0 auto 로 풀고 이 패널은 원래 자연 높이라 추가 규칙 불필요. */
.hell-forecast {
  flex: 0 0 auto;
  border-top: 1px solid var(--border, #2a2e39);
  padding: 8px 12px 10px;
}
.hell-forecast .hf-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  font-weight: 800;
  color: var(--hell-ember);
  margin-bottom: 6px;
}
.hell-forecast .hf-tf {
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted, #8a8f9d);
  border: 1px solid var(--border, #2a2e39);
  border-radius: 4px;
  padding: 1px 6px;
}
.hell-forecast .hf-body { display: flex; flex-direction: column; gap: 6px; }
.hell-forecast .hf-lead { font-size: 12px; font-weight: 700; line-height: 1.45; color: var(--text-primary, #eaecef); }
.hell-forecast .hf-desc { font-size: 10.5px; line-height: 1.6; color: var(--text-secondary, #9aa3b2); }
.hell-forecast .hf-msg { font-size: 11px; line-height: 1.5; color: var(--text-secondary, #9aa3b2); }
.hell-forecast .hf-msg .hf-sub { font-size: 10px; color: var(--text-muted, #8a8f9d); }
.hell-forecast .hf-msg.hf-error { color: var(--red, #f6465d); }
.hell-forecast .hf-cta {
  width: 100%;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #ff4d6d, #a3123f);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(255, 77, 109, 0.35);
}
.hell-forecast .hf-cta:hover:not(:disabled) { filter: brightness(1.12); }
.hell-forecast .hf-cta:disabled { opacity: 0.55; cursor: wait; }
.hell-forecast .hf-dir-row { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.hell-forecast .hf-dir { font-weight: 800; font-variant-numeric: tabular-nums; }
.hell-forecast .hf-dir-up   { color: var(--green, #0ecb81); }
.hell-forecast .hf-dir-down { color: var(--red, #f6465d); }
.hell-forecast .hf-dir-flat { color: var(--text-muted, #8a8f9d); }
.hell-forecast .hf-stale-badge {
  font-size: 10px;
  font-weight: 700;
  color: var(--hell-dead);
  border: 1px solid var(--border, #2a2e39);
  border-radius: 4px;
  padding: 0 5px;
}
.hell-forecast .hf-count-wrap { margin-left: auto; font-size: 10px; color: var(--text-muted, #8a8f9d); white-space: nowrap; }
.hell-forecast .hf-count-wrap b { color: var(--hell-ember); font-weight: 700; font-variant-numeric: tabular-nums; }
.hell-forecast .hf-spark { display: block; width: 100%; height: 64px; }
.hell-forecast .hf-spark .hf-band { fill: rgba(255, 154, 60, 0.14); stroke: none; }
.hell-forecast .hf-spark .hf-mid { fill: none; stroke: var(--hell-ember); stroke-width: 1.5; }
.hell-forecast .hf-spark .hf-mid.hf-dir-up   { stroke: var(--green, #0ecb81); }
.hell-forecast .hf-spark .hf-mid.hf-dir-down { stroke: var(--red, #f6465d); }
.hell-forecast .hf-range { font-size: 11px; color: var(--text-secondary, #9aa3b2); font-variant-numeric: tabular-nums; }
.hell-forecast .hf-notice { font-size: 10px; color: var(--hell-gold); }
.hell-forecast .hf-note {
  margin-top: 6px;
  font-size: 9px;
  line-height: 1.4;
  color: var(--text-muted, #8a8f9d);
  opacity: 0.7;
}

/* ── v2.53.0 — 예측/결과 시각 라벨 + result 뷰(채점 뱃지·실측 오버레이·적중률).
   패널 자체 max-height 금지 유지 — .hell-rank-list{flex:1} 내부스크롤 불침범(v2.49.2 설계). */
.hell-forecast .hf-when { font-size: 10px; color: var(--text-muted, #8a8f9d); font-variant-numeric: tabular-nums; }
.hell-forecast .hf-time-row {
  display: flex;
  justify-content: space-between;
  font-size: 9.5px;
  color: var(--text-muted, #8a8f9d);
  font-variant-numeric: tabular-nums;
}
/* 실측선 — 예측선(ember/green/red)·밴드 음영과 확실히 구분되는 밝은 톤 */
.hell-forecast .hf-spark .hf-actual { fill: none; stroke: var(--text-primary, #eaecef); stroke-width: 1.5; }
.hell-forecast .hf-result-row { display: flex; gap: 6px; flex-wrap: wrap; }
.hell-forecast .hf-result-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid transparent;
}
.hell-forecast .hf-result-badge.hf-hit  { color: var(--green, #0ecb81); border-color: rgba(14, 203, 129, 0.35); background: rgba(14, 203, 129, 0.10); }
.hell-forecast .hf-result-badge.hf-miss { color: var(--red, #f6465d); border-color: rgba(246, 70, 93, 0.35); background: rgba(246, 70, 93, 0.10); }
.hell-forecast .hf-stats-line { font-size: 10px; color: var(--text-muted, #8a8f9d); }
/* 실측 재시도 — 패널 error 상태(hf-cta 재시도)와 분리된 보조 버튼 */
.hell-forecast .hf-retry {
  align-self: flex-start;
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid var(--border, #2a2e39);
  background: var(--bg-input, #0e1118);
  color: var(--text-secondary, #9aa3b2);
  cursor: pointer;
}
.hell-forecast .hf-retry:hover { border-color: var(--hell-accent); color: var(--hell-ember); }

/* ── 모바일: 세로 스택 (04-responsive .trading-area flex 전환에 .hell-side 편입) ── */
@media (max-width: 768px) {
  body.hellmode { overflow-y: auto; height: auto; min-height: 100vh; }
  .hell-header { flex-wrap: wrap; gap: 8px; position: sticky; top: 0; z-index: 100; background: #17121a; }
  .hell-mystat { flex-basis: 100%; order: 5; }
  .hell-side {
    grid-area: unset !important;
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
    border-left: none;
    border-top: 1px solid var(--border, #2a2e39);
    /* v2.49.0 — .trading-area 는 모바일에서 flex column(css/04-responsive.css:323)이고
       css/05-chat.css:2283-2287 가 메인 채팅용으로 chart:1/order-panel:2/bottom-panel:3/chat-panel:4
       를 지정하는데, .hell-side 는 이 규칙 대상이 아니라 기본값 order:0 이라 차트보다 먼저 렌더링
       되고 있었다(실제 버그). order:5 로 전부 뒤로 보내 "제일 아래로 배치" 요구 충족. */
    order: 5;
    /* v2.49.2 — 데스크톱은 .hell-side 가 그리드 사이드바(고정 높이)라 overflow:hidden+내부 스크롤이
       맞지만, 모바일은 페이지 자체가 스크롤(body.hellmode overflow-y:auto)되므로 max-height 로
       가두면 랭킹이 1~2명만 보이고 내부 스크롤이 생긴다. 높이 제약을 풀어 콘텐츠만큼 자연스럽게
       늘어나게(전원 스크롤 없이 노출). */
    max-height: none;
    overflow: visible;
  }
  .hell-rank-list {
    flex: 0 0 auto;   /* 부모가 더 이상 고정 높이가 아니라 flex:1 무의미 — 내용 높이 그대로 */
    overflow-y: visible;
    max-height: none;
  }
}

/* ── 🔴 장고 LIVE (힐링 라이브 캠, v2.59.0) — 사이드바 최상단, .hell-side flex column 의 첫 자식.
   flex:0 0 auto (랭킹 리스트 flex:1 내부스크롤 불침범 — forecast 패널과 동일 규칙).
   순수 클라 시각 위젯 (js/hellmode/hell-live.js). */
.hell-live {
  flex: 0 0 auto;
  margin: 0 10px 10px;   /* 위 간격은 치킨 배너의 margin-bottom(10)이 담당 → 치킨↔장고 = 장고↔랭킹 = 10px 균등 */
  border-radius: 10px;
  overflow: hidden;
  background: #0a0d14;
  border: 1px solid var(--hell-accent-soft);
}
.hlv-head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px 6px 10px;
  cursor: pointer;
  user-select: none;
  background: linear-gradient(180deg, rgba(255, 77, 109, 0.12), rgba(255, 77, 109, 0.03));
  border-bottom: 1px solid var(--hell-accent-soft);
}
.hell-live.collapsed .hlv-head { border-bottom: none; }
.hlv-live {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: #ff5470;
}
.hlv-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #ff3b3b;
  box-shadow: 0 0 6px #ff3b3b;
  animation: hlvPulse 1.4s ease-in-out infinite;
}
@keyframes hlvPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.35; transform: scale(0.7); } }
.hlv-title { font-size: 12px; font-weight: 800; color: #fff; }
.hlv-tod   { font-size: 12px; margin-left: 1px; }
.hlv-clock {
  margin-left: auto;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: var(--text-secondary, #9aa3b2);
}
.hlv-collapse {
  flex: 0 0 auto;
  width: 22px; height: 20px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  border: none;
  background: transparent;
  color: var(--text-muted, #8a8f9d);
  border-radius: 4px;
  cursor: pointer;
}
.hlv-collapse:hover { color: var(--hell-ember); background: rgba(255, 77, 109, 0.10); }

.hlv-body { position: relative; }
.hell-live.collapsed .hlv-body { display: none; }
.hlv-stage {
  position: relative;
  height: 200px;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
#hlv-video {
  height: 100%;
  width: auto;
  max-width: 100%;
  display: block;
}
/* 낮밤 톤 오버레이 — JS(applyTone)가 background 갱신 (알파 색 워시) */
.hlv-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: transparent;
  transition: background 0.8s ease;
}
/* 탭하여 재생 (모바일/데이터세이버 — .hlv-need-tap 일 때만 노출) */
.hlv-tap {
  position: absolute;
  inset: 0;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: rgba(0, 0, 0, 0.45);
  cursor: pointer;
}
.hell-live.hlv-need-tap .hlv-tap { display: flex; }
.hlv-tap .hlv-tap-ico { font-size: 26px; line-height: 1; }
.hlv-shorts {
  display: block;
  padding: 6px 10px;
  font-size: 10.5px;
  font-weight: 700;
  text-align: center;
  color: var(--hell-gold);
  text-decoration: none;
  border-top: 1px solid var(--hell-accent-soft);
}
.hlv-shorts:hover { color: #fff; background: rgba(255, 176, 46, 0.08); }

/* ── 대회 가이드 접이식 (v2.59.0 — 운영자 요청, 라이브 캠과 같은 사이드바 접이식 패턴) ── */
.hell-guide .hg-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  cursor: pointer;
  user-select: none;
}
.hell-guide .hg-head .hg-title { margin-bottom: 0; }
.hg-collapse {
  flex: 0 0 auto;
  width: 20px; height: 18px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  border: none;
  background: transparent;
  color: var(--text-muted, #8a8f9d);
  border-radius: 4px;
  cursor: pointer;
}
.hg-collapse:hover { color: var(--hell-ember); background: rgba(255, 77, 109, 0.10); }
.hell-guide.collapsed .hg-head { margin-bottom: 0; }
.hell-guide.collapsed .hg-list { display: none; }
/* 주문 패널 하단 배치용 — 사이드바 margin(0 10px 10px) 대신 패널 padding/gap 에 맞춤 */
.hell-guide.hg-inpanel { margin: 4px 0 0; flex: 0 0 auto; }

@media (prefers-reduced-motion: reduce) {
  .hlv-dot { animation: none; }
  .hlv-overlay { transition: none; }
}
@media (max-width: 768px) {
  .hlv-stage { height: 260px; }
}
