/* R54 — 종목 딥다이브 팝업 (전역 인터셉트 모달).
   R58 — 라이트 톤 시트(raki-research 흰색 테마 정합). 자족적 CSS 변수(.rkpop-overlay 스코프).
   팔레트는 static/style.css :root(--bg / --text / --border / 시그널색)에서 미러.
   static/ 최상위 파일(sync_static_assets 평면 복사). */

.rkpop-overlay {
  --rk-bg:        #f6f7f9;   /* 시트 캔버스 (style.css --bg-base) */
  --rk-sheet:     #ffffff;   /* 헤더·흰 표면 (--bg-card) */
  --rk-card:      #ffffff;   /* 카드 (--bg-card) */
  --rk-card-2:    #f2f4f7;   /* 중첩/hover 서브 표면 */
  --rk-border:    #e3e6ec;   /* --border-default */
  --rk-border-2:  #d1d5db;   /* --border-strong */
  --rk-hair:      #eceff2;   /* 표 행 구분 헤어라인 */
  --rk-text:      #111827;   /* --text-primary */
  --rk-text-2:    #374151;   /* --text-secondary */
  --rk-muted:     #6b7280;   /* --text-muted */
  --rk-up:        #dc2626;   /* 상승·순매수 = 빨강 (한국 관행) */
  --rk-down:      #1d4ed8;   /* 하락·순매도 = 파랑 */
  --rk-accent:    #1d4ed8;   /* 링크·강조 (--color-info) */
  --rk-cons:      #1d4ed8;
  --rk-cons-bg:   rgba(29,78,216,.10);
  --rk-foreign:   #2563eb;
  --rk-inst:      #16a34a;

  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 40px 16px;
  background: rgba(17,24,39,.42);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  overflow-y: auto;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
  -webkit-font-smoothing: antialiased;
  animation: rkpop-fade .14s ease-out;
}
@keyframes rkpop-fade { from { opacity: 0; } to { opacity: 1; } }

.rkpop-sheet {
  width: 100%;
  max-width: 620px;
  background: var(--rk-bg);
  border: 1px solid var(--rk-border);
  border-radius: 16px;
  box-shadow: 0 20px 56px rgba(15,23,42,.20);
  color: var(--rk-text);
  overflow: hidden;
  animation: rkpop-rise .18s cubic-bezier(.2,.8,.3,1);
}
@keyframes rkpop-rise { from { transform: translateY(10px); opacity: .6; } to { transform: none; opacity: 1; } }

/* ── 헤더 ── */
.rkpop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--rk-border);
  background: var(--rk-sheet);
}
.rkpop-head-title { font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--rk-text-2); text-transform: uppercase; }
.rkpop-head-actions { display: flex; align-items: center; gap: 8px; }
.rkpop-fulllink {
  font-size: 12px; color: var(--rk-accent); text-decoration: none;
  padding: 4px 10px; border: 1px solid var(--rk-border-2); border-radius: 7px;
  white-space: nowrap;
}
.rkpop-fulllink:hover { background: var(--rk-card); }
.rkpop-close {
  background: none; border: 0; color: var(--rk-text-2); font-size: 18px;
  cursor: pointer; width: 30px; height: 30px; border-radius: 8px; line-height: 1;
}
.rkpop-close:hover { background: var(--rk-card); color: var(--rk-text); }

.rkpop-body { padding: 14px 16px 20px; }

/* ── 상단 기본 카드 ── */
.rkpop-top {
  background: var(--rk-card);
  border: 1px solid var(--rk-border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.rkpop-top-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.rkpop-name { font-size: 17px; font-weight: 800; }
.rkpop-code, .rkpop-mkt { font-size: 12.5px; font-weight: 500; color: var(--rk-muted); margin-left: 4px; }
.rkpop-mcap { font-size: 12.5px; color: var(--rk-text-2); white-space: nowrap; }
.rkpop-mcap b { color: var(--rk-text); font-size: 14px; }

.rkpop-top-row2 { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: 8px; }
.rkpop-price { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.rkpop-cprice { font-size: 26px; font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.rkpop-chg { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.rkpop-chg.up { color: var(--rk-up); }
.rkpop-chg.down { color: var(--rk-down); }
.rkpop-chg.flat { color: var(--rk-text-2); }
.rkpop-date { font-size: 11.5px; color: var(--rk-muted); }
.rkpop-status { font-size: 11px; color: var(--rk-muted); white-space: nowrap; }

/* ── RS 게이지 ── */
.rkpop-rs { margin-top: 14px; }
.rkpop-rs-bar { display: flex; align-items: center; gap: 10px; }
.rkpop-rs-label { font-size: 11.5px; color: var(--rk-text-2); white-space: nowrap; }
.rkpop-rs-track {
  position: relative; flex: 1; height: 8px; border-radius: 5px;
  background: #e9edf2; overflow: hidden;
}
.rkpop-rs-fill {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: linear-gradient(90deg, #3a7bff 0%, #8b5cf6 55%, #ff5ea8 100%);
  border-radius: 5px;
}
.rkpop-rs-val { font-size: 16px; font-weight: 800; min-width: 26px; text-align: right; font-variant-numeric: tabular-nums; }
.rkpop-rs-periods { display: flex; gap: 16px; margin-top: 7px; font-size: 11px; color: var(--rk-muted); }
.rkpop-rs-periods b { color: var(--rk-text); font-size: 12px; margin-left: 3px; font-variant-numeric: tabular-nums; }
.rkpop-rs-na { color: var(--rk-muted); font-size: 11.5px; }

/* ── R58 상단 수급 (외인·기관 순매수 당일/5일/20일) ── */
.rkpop-flows { margin-top: 13px; }
.rkpop-flows-hd { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 5px; }
.rkpop-flows-lab { font-size: 11.5px; font-weight: 700; color: var(--rk-text-2); }
.rkpop-flows-unit { font-size: 10.5px; font-weight: 500; color: var(--rk-muted); margin-left: 5px; }
.rkpop-flows-asof { font-size: 10.5px; color: var(--rk-muted); white-space: nowrap; }
.rkpop-flows-tbl { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.rkpop-flows-tbl th, .rkpop-flows-tbl td { padding: 4px 4px; white-space: nowrap; }
.rkpop-flows-tbl thead th { color: var(--rk-muted); font-weight: 600; font-size: 10.5px; text-align: right; }
.rkpop-flows-tbl thead th:first-child { text-align: left; }
.rkpop-flows-tbl tbody th { text-align: left; color: var(--rk-text-2); font-weight: 700; font-size: 11.5px; }
.rkpop-flows-tbl td.r { text-align: right; }
.rkpop-flow { font-weight: 700; }
.rkpop-flow.up { color: var(--rk-up); }
.rkpop-flow.down { color: var(--rk-down); }
.rkpop-flow.flat { color: var(--rk-text-2); }
.rkpop-flows-na { color: var(--rk-muted); }

/* ── 아코디언 ── */
.rkpop-acc { display: flex; flex-direction: column; gap: 8px; }
.rkpop-sec {
  border: 1px solid var(--rk-border);
  border-radius: 11px;
  background: var(--rk-card);
  overflow: hidden;
}
.rkpop-sec-head {
  display: flex; align-items: center; gap: 9px;
  padding: 12px 14px; cursor: pointer; user-select: none;
  width: 100%; background: none; border: 0; color: inherit; text-align: left;
}
.rkpop-sec-head:hover { background: var(--rk-card-2); }
.rkpop-sec-icon { font-size: 14px; }
.rkpop-sec-title { font-size: 13.5px; font-weight: 700; }
.rkpop-sec-chip { margin-left: auto; font-size: 11.5px; color: var(--rk-text-2); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rkpop-sec-chev { margin-left: 8px; color: var(--rk-muted); font-size: 11px; transition: transform .16s; }
.rkpop-sec.open .rkpop-sec-chev { transform: rotate(180deg); }
.rkpop-sec-body { padding: 0 14px 14px; display: none; }
.rkpop-sec.open .rkpop-sec-body { display: block; }

/* 비활성(후속 라운드 예약) 섹션 */
.rkpop-sec.disabled { opacity: .4; }
.rkpop-sec.disabled .rkpop-sec-head { cursor: default; }
.rkpop-sec.disabled .rkpop-sec-head:hover { background: none; }
.rkpop-sec.disabled .rkpop-sec-chev { visibility: hidden; }

/* ── 분기실적 표 ── */
.rkpop-qt { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.rkpop-qt th, .rkpop-qt td { padding: 7px 6px; text-align: right; white-space: nowrap; }
.rkpop-qt th { color: var(--rk-muted); font-weight: 600; font-size: 11.5px; border-bottom: 1px solid var(--rk-border-2); }
.rkpop-qt th:first-child, .rkpop-qt td:first-child { text-align: left; }
.rkpop-qt tbody td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-qt tbody tr:last-child td { border-bottom: 0; }
.rkpop-qt tr.cons td { color: var(--rk-muted); }
.rkpop-cons-badge {
  display: inline-block; margin-left: 6px; font-size: 10px; font-weight: 700;
  padding: 1px 6px; border-radius: 5px; background: var(--rk-cons-bg); color: var(--rk-cons);
}
.rkpop-qt-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.rkpop-btn {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px;
  padding: 6px 11px; border-radius: 8px; text-decoration: none;
  border: 1px solid var(--rk-border-2); color: var(--rk-text-2);
}
.rkpop-btn:hover { background: var(--rk-card-2); color: var(--rk-text); }
.rkpop-btn.naver { border-color: #86efac; color: #15803d; }

/* ── 차트 (인라인 SVG) ── */
.rkpop-chart { width: 100%; display: block; }
.rkpop-chart-cap { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--rk-muted); margin-top: 5px; }
.rkpop-legend { display: flex; gap: 14px; font-size: 11px; color: var(--rk-text-2); margin-bottom: 6px; }
.rkpop-legend i { display: inline-block; width: 10px; height: 3px; border-radius: 2px; margin-right: 5px; vertical-align: middle; }
.rkpop-note { font-size: 10.5px; color: var(--rk-muted); margin-top: 8px; line-height: 1.5; }
.rkpop-badge {
  display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px;
  border-radius: 6px; background: var(--rk-card-2); color: var(--rk-text-2);
}
.rkpop-badge.pos { background: rgba(220,38,38,.12); color: var(--rk-up); }
.rkpop-badge.neg { background: rgba(29,78,216,.12); color: var(--rk-down); }

/* ── R55 국면(RRG) ── */
.rkpop-phase {
  display: inline-block; font-size: 11px; font-weight: 700; line-height: 1;
  padding: 3px 8px; border-radius: 6px; white-space: nowrap;
}
.rkpop-sec-chip .rkpop-rrg-chip { display: inline-flex; align-items: center; gap: 7px; }
.rkpop-rrg-chip-num { font-size: 11px; color: var(--rk-text-2); font-variant-numeric: tabular-nums; }
.rkpop-rrg { margin-top: 2px; }
.rkpop-rrg-svg {
  width: 100%; height: auto; display: block; max-height: 340px;
  background: var(--rk-card-2); border-radius: 10px;
}
/* 섹터 헤더 */
.rkpop-rrg-hd { margin-bottom: 10px; }
.rkpop-rrg-hd-1 { font-size: 13.5px; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.rkpop-rrg-hd-1 b { font-size: 14.5px; font-weight: 800; }
.rkpop-rrg-hd-2 { display: flex; align-items: center; gap: 8px; margin-top: 7px; flex-wrap: wrap; }
.rkpop-rrg-hd-k { font-size: 11px; color: var(--rk-muted); }
.rkpop-rrg-hd-sep { color: var(--rk-muted); }
/* 재생 컨트롤 */
.rkpop-rrg-ctl { display: flex; align-items: center; gap: 11px; margin-top: 11px; }
.rkpop-rrg-play {
  flex: none; width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
  border: 1px solid var(--rk-border-2); background: var(--rk-card-2); color: var(--rk-text);
  font-size: 13px; line-height: 1; display: flex; align-items: center; justify-content: center;
}
.rkpop-rrg-play:hover { background: var(--rk-border); }
.rkpop-rrg-track {
  position: relative; flex: 1; height: 6px; border-radius: 4px; cursor: pointer;
  background: #e9edf2; touch-action: none;
}
.rkpop-rrg-fill {
  position: absolute; left: 0; top: 0; bottom: 0; border-radius: 4px;
  background: linear-gradient(90deg, #3a7bff 0%, #8b5cf6 55%, #ff5ea8 100%);
  pointer-events: none;
}
.rkpop-rrg-speeds { display: flex; gap: 5px; flex: none; }
.rkpop-rrg-spd {
  font-size: 11px; padding: 4px 8px; border-radius: 7px; cursor: pointer;
  border: 1px solid var(--rk-border-2); background: none; color: var(--rk-text-2);
  font-variant-numeric: tabular-nums;
}
.rkpop-rrg-spd.on { background: var(--rk-accent); color: #fff; border-color: var(--rk-accent); }
.rkpop-rrg-readout {
  font-size: 11px; color: var(--rk-text-2); margin-top: 9px; text-align: center;
  font-variant-numeric: tabular-nums;
}
/* 일별 표 */
.rkpop-rrg-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 12px; font-variant-numeric: tabular-nums; }
.rkpop-rrg-tbl th, .rkpop-rrg-tbl td { padding: 7px 6px; white-space: nowrap; }
.rkpop-rrg-tbl th { color: var(--rk-muted); font-weight: 600; font-size: 11.5px; border-bottom: 1px solid var(--rk-border-2); text-align: left; }
.rkpop-rrg-tbl th.r, .rkpop-rrg-tbl td.r { text-align: right; }
.rkpop-rrg-tbl th.c, .rkpop-rrg-tbl td.c { text-align: right; }
.rkpop-rrg-tbl tbody td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-rrg-tbl tbody tr:last-child td { border-bottom: 0; }
.rkpop-rrg-tbl tbody tr.hi td, .rkpop-rrg-tbl tbody tr.hi td { background: var(--rk-card-2); }
.rkpop-rrg-tbl tbody tr.hi td:first-child { border-left: 2px solid var(--rk-accent); }

/* ── 증권사 전망 ── */
.rkpop-bk-summary { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.rkpop-bk-cell {
  flex: 1; min-width: 96px; background: var(--rk-card-2); border-radius: 9px;
  padding: 9px 11px;
}
.rkpop-bk-cell .k { font-size: 10.5px; color: var(--rk-muted); }
.rkpop-bk-cell .v { font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; margin-top: 2px; }
.rkpop-bk-cell .v.pos { color: var(--rk-up); }
.rkpop-tbl { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.rkpop-tbl th, .rkpop-tbl td { padding: 6px 6px; text-align: right; white-space: nowrap; }
.rkpop-tbl th { color: var(--rk-muted); font-weight: 600; font-size: 11px; border-bottom: 1px solid var(--rk-border-2); }
.rkpop-tbl th:first-child, .rkpop-tbl td:first-child { text-align: left; }
.rkpop-tbl td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-tbl .up { color: var(--rk-up); }
.rkpop-tbl .down { color: var(--rk-down); }
.rkpop-tbl-wrap { overflow-x: auto; }
.rkpop-sub { font-size: 11.5px; font-weight: 700; color: var(--rk-text-2); margin: 14px 0 7px; }
.rkpop-empty { font-size: 12px; color: var(--rk-muted); padding: 6px 0; }

/* ── 로딩 ── */
.rkpop-loading { padding: 40px 0; text-align: center; color: var(--rk-text-2); font-size: 13px; }
.rkpop-spinner {
  width: 22px; height: 22px; border: 2.5px solid var(--rk-border-2);
  border-top-color: var(--rk-accent); border-radius: 50%;
  margin: 0 auto 12px; animation: rkpop-spin .7s linear infinite;
}
@keyframes rkpop-spin { to { transform: rotate(360deg); } }

/* ── R56 메자닌(CB·BW 잠재 희석) ── */
.rkpop-mz-chip { display: inline-flex; align-items: baseline; gap: 0; }
.rkpop-mz-chip b { color: var(--rk-text); font-weight: 800; }
.rkpop-mz-chip-n { color: var(--rk-muted); }
.rkpop-mz-hero { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.rkpop-mz-big { display: flex; align-items: baseline; gap: 8px; }
.rkpop-mz-big-num { font-size: 27px; font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.rkpop-mz-big-lab { font-size: 12px; color: var(--rk-text-2); }
.rkpop-mz-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.rkpop-mz-badge {
  display: inline-block; font-size: 11px; font-weight: 700; line-height: 1;
  padding: 4px 9px; border-radius: 7px; white-space: nowrap;
  background: var(--rk-card-2); color: var(--rk-text-2);
}
.rkpop-mz-badge.sm { font-size: 10px; padding: 2px 7px; }
.rkpop-mz-badge.risk { color: #dc2626; background: rgba(220,38,38,.10); }
.rkpop-mz-badge.warn { color: #b45309; background: rgba(202,138,4,.13); }
/* 정의 콜아웃 (남색) */
.rkpop-mz-def {
  background: rgba(29,78,216,.06); border: 1px solid rgba(29,78,216,.18);
  border-radius: 10px; padding: 11px 13px; margin-bottom: 12px;
}
.rkpop-mz-def-l { font-size: 11.5px; color: var(--rk-text-2); line-height: 1.55; }
.rkpop-mz-def-l + .rkpop-mz-def-l { margin-top: 4px; }
.rkpop-mz-def-k { font-weight: 800; color: var(--rk-text); }
.rkpop-mz-def-k.risk { color: #dc2626; }
.rkpop-mz-def-k.warn { color: #b45309; }
.rkpop-mz-def-k.muted { color: var(--rk-muted); font-weight: 700; }
/* 요약 라인 */
.rkpop-mz-sum { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--rk-muted); margin-bottom: 10px; }
.rkpop-mz-sum i { font-style: normal; }
.rkpop-mz-sum b { color: var(--rk-text); font-weight: 700; font-variant-numeric: tabular-nums; }
/* 회차 표 */
.rkpop-mz-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.rkpop-mz-tbl th, .rkpop-mz-tbl td { padding: 7px 6px; text-align: left; white-space: nowrap; vertical-align: top; }
.rkpop-mz-tbl th { color: var(--rk-muted); font-weight: 600; font-size: 11.5px; border-bottom: 1px solid var(--rk-border-2); }
.rkpop-mz-tbl th.r, .rkpop-mz-tbl td.r { text-align: right; }
.rkpop-mz-tbl th.c, .rkpop-mz-tbl td.c { text-align: center; }
.rkpop-mz-tbl tbody td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-mz-tbl tbody tr:last-child td { border-bottom: 0; }
.rkpop-mz-tbl td.muted { color: var(--rk-muted); }
.rkpop-mz-prc { display: block; }
.rkpop-mz-floor { display: block; font-size: 10px; color: var(--rk-muted); margin-top: 1px; }
.rkpop-mz-tag {
  display: inline-block; margin-left: 6px; font-size: 9.5px; font-weight: 700;
  padding: 1px 5px; border-radius: 4px; background: var(--rk-card-2); color: var(--rk-muted);
}
.rkpop-mz-stale {
  margin: 0 0 12px; padding: 9px 11px; border-radius: 8px;
  background: rgba(202,138,4,.10); border: 1px solid rgba(202,138,4,.30);
}
.rkpop-mz-stale-h { display: flex; align-items: flex-start; gap: 6px; font-size: 11.5px; font-weight: 700; color: #b45309; line-height: 1.45; }
.rkpop-mz-stale-ic { flex: 0 0 auto; }
.rkpop-mz-stale-l { margin-top: 5px; font-size: 11px; color: var(--rk-text-2); line-height: 1.6; }
.rkpop-mz-stale-l > div { white-space: normal; }

/* ── R57a 수출입(수출금액지수) ── */
.rkpop-tr-chip { display: inline-flex; align-items: baseline; gap: 3px; }
.rkpop-tr-chip b { font-weight: 800; }
.rkpop-tr-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.rkpop-tr-tbl th, .rkpop-tr-tbl td { padding: 8px 6px; white-space: nowrap; vertical-align: middle; }
.rkpop-tr-tbl th { color: var(--rk-muted); font-weight: 600; font-size: 11.5px; border-bottom: 1px solid var(--rk-border-2); text-align: left; }
.rkpop-tr-tbl th.r, .rkpop-tr-tbl td.r { text-align: right; }
.rkpop-tr-tbl th.c, .rkpop-tr-tbl td.c { text-align: center; }
.rkpop-tr-tbl tbody td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-tr-tbl tbody tr:last-child td { border-bottom: 0; }
.rkpop-tr-idx { font-weight: 700; }
.rkpop-tr-yoy { font-weight: 700; font-size: 11.5px; }
.rkpop-tr-yoy.up { color: var(--rk-up); }
.rkpop-tr-yoy.down { color: var(--rk-down); }
.rkpop-tr-yoy.flat { color: var(--rk-text-2); }
.rkpop-tr-badge {
  display: inline-block; margin-right: 6px; font-size: 10px; font-weight: 700;
  padding: 1px 6px; border-radius: 5px; background: var(--rk-cons-bg); color: var(--rk-cons);
}
.rkpop-tr-z {
  display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 7px;
  border-radius: 6px; background: var(--rk-card-2); color: var(--rk-text-2);
  font-variant-numeric: tabular-nums;
}
.rkpop-tr-z.warm { background: rgba(202,138,4,.13); color: #b45309; }
.rkpop-tr-z.hot { background: rgba(220,38,38,.12); color: #dc2626; }
.rkpop-tr-spark { display: inline-block; vertical-align: middle; }

/* ── R57b ETF 편입(종목→편입 ETF 역인덱스) ── */
.rkpop-etf-chip { display: inline-flex; align-items: baseline; gap: 0; }
.rkpop-etf-chip b { color: var(--rk-text); font-weight: 800; }
.rkpop-etf-chip-n { color: var(--rk-muted); }
.rkpop-etf-sub { font-size: 11px; color: var(--rk-muted); margin-bottom: 8px; }
.rkpop-etf-sub b { color: var(--rk-text-2); font-weight: 700; }
.rkpop-etf-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.rkpop-etf-tbl th, .rkpop-etf-tbl td { padding: 8px 6px; white-space: nowrap; vertical-align: middle; }
.rkpop-etf-tbl th { color: var(--rk-muted); font-weight: 600; font-size: 11.5px; border-bottom: 1px solid var(--rk-border-2); text-align: left; }
.rkpop-etf-tbl th.r, .rkpop-etf-tbl td.r { text-align: right; }
.rkpop-etf-tbl tbody td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-etf-row { cursor: pointer; }
.rkpop-etf-row:hover > td { background: var(--rk-card-2); }
.rkpop-etf-row:focus-visible { outline: 2px solid var(--rk-accent); outline-offset: -2px; }
.rkpop-etf-caret { display: inline-block; width: 13px; color: var(--rk-muted); font-size: 10px; transition: transform .15s; }
.rkpop-etf-row.open .rkpop-etf-caret { transform: rotate(90deg); color: var(--rk-accent); }
.rkpop-etf-w { font-weight: 700; }
.rkpop-etf-flow { font-weight: 700; font-size: 11.5px; }
.rkpop-etf-flow.up { color: var(--rk-up); }
.rkpop-etf-flow.down { color: var(--rk-down); }
.rkpop-etf-flow.flat { color: var(--rk-text-2); }
/* X-ray 상세행 (행 클릭 전개) */
.rkpop-etf-xr > td { padding: 0 !important; }
.rkpop-etf-xr-box { background: var(--rk-card-2); border-radius: 9px; padding: 11px 12px; margin: 2px 0 8px; }
.rkpop-etf-xr-load { font-size: 11.5px; color: var(--rk-muted); }
.rkpop-etf-xr-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--rk-muted); margin-bottom: 4px; }
.rkpop-etf-xr-meta i { font-style: normal; }
.rkpop-etf-xr-meta b { color: var(--rk-text); font-weight: 700; font-variant-numeric: tabular-nums; }
.rkpop-etf-xr-h { font-size: 11px; font-weight: 700; color: var(--rk-text-2); margin: 9px 0 5px; }
.rkpop-etf-xr-flows { display: flex; flex-wrap: wrap; gap: 5px; }
.rkpop-etf-fchip { display: inline-flex; align-items: baseline; gap: 4px; font-size: 11px; padding: 3px 8px; border-radius: 6px; background: var(--rk-bg); color: var(--rk-text); font-variant-numeric: tabular-nums; }
.rkpop-etf-fchip i { font-style: normal; color: var(--rk-muted); font-size: 10px; }
.rkpop-etf-ctbl { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.rkpop-etf-ctbl th, .rkpop-etf-ctbl td { padding: 5px 6px; white-space: nowrap; }
.rkpop-etf-ctbl th { color: var(--rk-muted); font-weight: 600; font-size: 10.5px; border-bottom: 1px solid var(--rk-border-2); text-align: left; }
.rkpop-etf-ctbl th.r, .rkpop-etf-ctbl td.r { text-align: right; }
.rkpop-etf-ctbl td { border-bottom: 1px solid var(--rk-hair); }
.rkpop-etf-ctbl tbody tr:last-child td { border-bottom: 0; }
.rkpop-etf-ctbl td.r { font-weight: 600; }

/* ── 모바일 풀스크린 시트 (R54b: 헤더 고정 + 본문 내부 스크롤) ──
   데스크톱은 오버레이(align-items:flex-start·overflow-y:auto)가 스크롤러.
   모바일에서 stretch + 시트 overflow:hidden 조합은 뷰포트 초과 콘텐츠를
   잘라 스크롤 불가 → 시트를 flex 컬럼으로, .rkpop-body 가 스크롤 영역. */
@media (max-width: 640px) {
  .rkpop-overlay { padding: 0; align-items: stretch; overflow: hidden; }
  .rkpop-sheet {
    max-width: none; border-radius: 0; border: 0;
    height: 100%; max-height: 100%;
    display: flex; flex-direction: column;
  }
  .rkpop-head { flex: 0 0 auto; }
  .rkpop-body {
    flex: 1 1 auto;
    min-height: 0;                       /* flex 자식 스크롤 필수 */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .rkpop-cprice { font-size: 23px; }
  .rkpop-top-row2 { flex-direction: column; align-items: flex-start; gap: 4px; }
}

body.rkpop-lock { overflow: hidden; }
