/* 지표 설정 창 (js/indsettings.js) — 트레이딩뷰식 입력값 · 스타일 · 표시 */
.ind-ov { position: fixed; inset: 0; z-index: 90; background: transparent; display: none; align-items: flex-start; justify-content: center; padding-top: 10vh; }
.ind-ov.on { display: flex; }
.ind-dlg {
  position: relative; width: min(440px, calc(100vw - 32px)); max-height: min(620px, 82vh); display: flex; flex-direction: column;
  background: var(--win); border: 0; border-radius: 6px; box-shadow: 0 2px 4px rgba(0, 0, 0, .4); font-variant-numeric: tabular-nums;
}
:root[data-theme="light"] .ind-dlg { box-shadow: 0 2px 4px rgba(0, 0, 0, .2); }
/* 휴대폰 아래 시트일 때만 바탕을 어둡게 */
@media (max-width: 560px) { .ind-ov { background: rgba(0, 0, 0, .45); } }
.is-h { display: flex; align-items: center; gap: 8px; padding: 12px 10px 4px 18px; cursor: move; user-select: none; }
.is-h .tool { cursor: pointer; }
.is-h h3 { margin: 0; font-size: var(--fs-lg); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.is-h h3 .dim { font-weight: 500; margin-left: 4px; }
.is-h .sp, .is-f .sp { flex: 1; }
.is-tabs { display: flex; gap: 2px; padding: 0 12px; border-bottom: 1px solid var(--line); }
.is-tabs button { position: relative; padding: 10px 8px 9px; margin: 0 4px; color: var(--text-2); font-weight: 600; font-size: var(--fs); }
.is-tabs button:hover { color: var(--text); }
.is-tabs button.on { color: var(--text); }
.is-tabs button.on::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px; background: var(--brand-2); }
.is-b { flex: 1; overflow: auto; padding: 10px 18px 14px; min-height: 180px; }
.is-list { display: grid; gap: 2px; }
.is-row { display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 2px 0; }
.is-lab { flex: 1; min-width: 0; color: var(--text); font-size: var(--fs); display: grid; gap: 1px; }
.is-lab small { font-size: var(--fs-xs); }
.is-ctl { display: inline-flex; align-items: center; gap: 8px; flex: none; }
.is-num { width: 104px; text-align: right; font-variant-numeric: tabular-nums; }
.is-num.bad { border-color: var(--down); }
.is-ctl small { min-width: 52px; font-size: var(--fs-xs); }
.is-sel { width: 130px; padding: 0 6px; }
.is-x { width: 26px; height: 26px; }
.is-x .ico { width: 14px; height: 14px; }
.is-add { margin-top: 8px; }
.is-empty { padding: 36px 8px; text-align: center; color: var(--text-3); font-size: var(--fs-sm); line-height: 1.6; }
.is-sub { margin: 12px 0 2px; font-size: var(--fs-xs); color: var(--text-3); font-weight: 600; }
.is-chk { display: inline-flex; align-items: center; gap: 9px; flex: 1; min-width: 0; cursor: pointer; }
.is-chk input { width: 16px; height: 16px; accent-color: var(--brand-2); flex: none; margin: 0; }
.is-chkrow { justify-content: space-between; }
.is-line.off .is-ctl { opacity: .4; pointer-events: none; }
.is-sw { width: 30px; height: 26px; border-radius: 5px; border: 1px solid var(--line-2); background: var(--win-2); display: grid; place-items: center; padding: 0; }
.is-sw i { width: 18px; height: 14px; border-radius: 3px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(128, 128, 128, .25); }
.is-sw:hover { border-color: var(--text-3); }
.is-w button { width: 26px; height: 22px; padding: 0; display: grid; place-items: center; }
.is-w button i { display: block; width: 14px; background: currentColor; border-radius: 1px; }
.is-ls button { padding: 3px 7px; }
.is-f { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line); }
.is-pal { position: absolute; z-index: 5; background: var(--win); border: 1px solid var(--line-2); border-radius: 8px; box-shadow: var(--shadow); padding: 8px; display: grid; gap: 6px; }
.is-pal-g { display: grid; grid-template-columns: repeat(10, 20px); gap: 5px; }
.is-pal-g button { width: 20px; height: 20px; padding: 0; border-radius: 4px; background: var(--c); border: 1px solid rgba(128, 128, 128, .35); }
.is-pal-g button:hover { transform: scale(1.12); }
.is-pal-g button.on { outline: 2px solid var(--brand-2); outline-offset: 1px; }
.is-pal-c { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); color: var(--text-2); cursor: pointer; padding: 2px 0; }
.is-pal-c input { width: 28px; height: 22px; padding: 0; border: 1px solid var(--line-2); border-radius: 4px; background: none; cursor: pointer; }
/* 입력값 · 스타일 탭 추가분 (소스 · 이동평균 종류 · 모양 · 가격선 · 채우기 · 막대 색) */
.is-opts { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line); }
.is-opts .is-sel { width: 176px; }
.is-time { width: 196px; }
.is-line { flex-wrap: wrap; row-gap: 4px; }
.is-ctl2 { width: 100%; justify-content: flex-end; gap: 10px; }
.is-plot { width: 112px; height: 26px; }
.is-pl { flex: none; gap: 6px; font-size: var(--fs-sm); color: var(--text-2); }
.is-pl input { width: 14px; height: 14px; }
.is-op { width: 96px; accent-color: var(--brand-2); }
.is-opv { min-width: 34px !important; text-align: right; }
.is-bars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; padding: 4px 0; }
.is-bar { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); color: var(--text); min-height: 32px; }
/* 지표 고르기 창: 누를 때마다 하나 더 (트레이딩뷰식) */
.ind-add { width: 18px; height: 18px; border-radius: 4px; border: 1.5px solid var(--line-2); display: grid; place-items: center; font-size: 14px; line-height: 1; color: var(--text-3); flex: none; }
.ind-row:hover .ind-add { border-color: var(--brand-2); color: var(--brand-2); }
.ind-row.on .ind-add { background: var(--brand); border-color: var(--brand); color: #fff; }
.ind-cnt { font-size: var(--fs-xs); color: var(--brand-2); font-weight: 600; white-space: nowrap; }
@media (max-width: 560px) {
  .ind-ov { padding-top: 0; align-items: flex-end; }
  .is-ctl2 { justify-content: flex-start; padding-left: 25px; }
  .is-bars { grid-template-columns: 1fr; }
  .is-time { width: 170px; }
  .is-h { cursor: default; }
  .ind-dlg { width: 100vw; max-height: 88vh; border-radius: 14px 14px 0 0; border-bottom: 0; }
  .is-b { padding: 8px 16px 12px; }
  .is-line { flex-wrap: wrap; gap: 6px 12px; padding: 6px 0; }
  .is-line .is-ctl { width: 100%; padding-left: 25px; }
  .is-num { width: 96px; }
  .is-f { padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
  .is-f .btn:not(.sm) { min-width: 64px; justify-content: center; }
}

/* ---------- 트레이딩뷰식 범례 · 가격축 라벨 · 차트 종류 · 차트 설정 (js/chartui.js) ---------- */
#chartTitle { display: none !important; }
.cu-ico { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex: none; }
#typeBtn .cu-ico { width: 19px; height: 19px; }
.kc-wm { position: absolute; inset: 0; z-index: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; pointer-events: none; color: var(--text); opacity: .07; text-align: center; padding-bottom: 8%; }
.kc-wm b { font-size: clamp(28px, 6vw, 72px); font-weight: 800; letter-spacing: -.01em; line-height: 1.1; }
.kc-wm span { font-size: clamp(13px, 1.6vw, 20px); font-weight: 600; }

.lg { position: absolute; inset: 0; z-index: 4; pointer-events: none; font-size: 12px; color: var(--text-2); font-variant-numeric: tabular-nums; }
.lg-p { position: absolute; left: 6px; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; overflow: hidden; }
.lg-row { display: flex; align-items: center; flex-wrap: wrap; gap: 0 6px; min-height: 21px; padding: 1px 4px; border-radius: 4px; border: 1px solid transparent; white-space: nowrap; max-width: 100%; }
.lg-p.bg .lg-row { background: color-mix(in srgb, var(--win) 72%, transparent); }
.lg-sym { gap: 0 10px; }
.lg-t { color: var(--text-2); pointer-events: auto; cursor: pointer; font-size: 13px; }
.lg-t b { color: var(--text); font-weight: 700; }
.lg-t:hover b { color: var(--brand-2); }
.lg-ohlc { display: inline-flex; gap: 0 3px; }
.lg-ohlc i, .lg-vol i { font-style: normal; color: var(--text-2); }
.lg-ohlc b { font-weight: 500; margin-right: 6px; }
.lg-ohlc b:last-child { margin-right: 0; }
.lg-ch, .lg-vol b { font-weight: 500; }
.lg-vol { display: inline-flex; gap: 3px; }
.lg-ind { pointer-events: auto; cursor: default; }
.lg-ind:hover, .lg-ind.act { border-color: var(--line-2); background: var(--win) !important; }
.lg-name { color: var(--text); font-weight: 500; }
.lg-args { color: var(--text-2); font-weight: 400; }
.lg-vals { display: inline-flex; gap: 0 7px; }
.lg-vals b { font-weight: 500; }
.lg-btns { display: none; align-items: center; gap: 1px; margin: -2px 0; }
.lg-ind:hover .lg-btns, .lg-ind.act .lg-btns { display: inline-flex; }
.lg-btns button { width: 22px; height: 20px; display: grid; place-items: center; border-radius: 4px; color: var(--text-2); }
.lg-btns button:hover { background: var(--hover); color: var(--text); }
.lg-btns button[data-a="del"]:hover { color: var(--down); }
.lg-btns .cu-ico { width: 15px; height: 15px; }
.lg-ind.off .lg-name, .lg-ind.off .lg-args { color: var(--text-3); }
.lg-inds { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.lg-inds.hide { display: none; }
.lg-tog { pointer-events: auto; display: inline-flex; align-items: center; gap: 2px; height: 18px; padding: 0 5px; margin: 1px 0 0 2px; border-radius: 4px; color: var(--text-3); border: 1px solid var(--line-2); background: var(--win); font-size: 11px; }
.lg-tog:hover { color: var(--text); }
.lg-tog .cu-ico { width: 13px; height: 13px; }

.ax-tags { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.ax-tag { position: absolute; height: 17px; line-height: 17px; font-size: 11px; padding: 0 4px; border-radius: 2px; overflow: hidden; white-space: nowrap; font-variant-numeric: tabular-nums; font-family: var(--font); }
.countdown { z-index: 5; }

.pop.cu-types { min-width: 200px; }
.pop .cu-type { gap: 10px; }
.pop .cu-type.on { background: var(--brand-bg); }
.pop hr.cu-hr { border: 0; border-top: 1px solid var(--line); margin: 4px 2px; }
.pop .cu-ico { width: 18px; height: 18px; }
.pop.cu-pal-pop { min-width: 0; padding: 8px; }
.cu-pal { display: grid; grid-template-columns: repeat(10, 20px); gap: 5px; }
.pop .cu-pal button { width: 20px; height: 20px; padding: 0; border-radius: 4px; background: var(--c); border: 1px solid rgba(128, 128, 128, .35); display: block; }
.pop .cu-pal button:hover { transform: scale(1.12); background: var(--c); }
.pop .cu-pal button.on { outline: 2px solid var(--brand-2); outline-offset: 1px; }
.cu-pal-c { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); color: var(--text-2); cursor: pointer; padding: 8px 2px 2px; }
.cu-pal-c input { width: 28px; height: 22px; padding: 0; border: 1px solid var(--line-2); border-radius: 4px; background: none; cursor: pointer; }
.pop .cu-pal-def { margin-top: 4px; font-size: var(--fs-sm); color: var(--text-2); justify-content: center; }

/* 차트 설정 창 */
.modal.cs-modal { width: min(680px, calc(100vw - 32px)); max-height: min(640px, 84vh); }
.cs-modal .modal-b { display: flex; flex-direction: column; overflow: hidden; }
.cs { display: flex; flex: 1; min-height: 0; }
.cs-nav { width: 168px; flex: none; padding: 10px 8px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; }
.cs-nav button { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 6px; color: var(--text-2); font-weight: 600; text-align: left; }
.cs-nav button:hover { background: var(--hover); color: var(--text); }
.cs-nav button.on { background: var(--brand-bg); color: var(--text); }
.cs-nav button.on .cu-ico { color: var(--brand-2); }
.cs-body { flex: 1; min-width: 0; overflow: auto; padding: 6px 20px 16px; height: min(460px, 60vh); }
.cs-sub { margin: 14px 0 4px; font-size: var(--fs-xs); color: var(--text-3); font-weight: 700; letter-spacing: .02em; }
.cs-sub small { font-weight: 400; margin-left: 6px; }
.cs-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 38px; padding: 3px 0; }
.cs-lab { display: grid; gap: 1px; color: var(--text); }
.cs-lab small, .cs-chk small { display: block; color: var(--text-3); font-size: 11px; max-width: 320px; white-space: normal; }
.cs-ctl { display: inline-flex; align-items: center; gap: 8px; flex: none; }
.cs-chk { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; color: var(--text); }
label.cs-row.cs-chk { display: flex; justify-content: flex-start; }
.cs-chk input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--brand-2); flex: none; }
.cs-chk span { display: grid; gap: 1px; }
.cs-chks { display: inline-flex; gap: 22px; }
.cs-legend { display: flex; justify-content: flex-end; gap: 14px; font-size: 11px; color: var(--text-3); margin: -2px 0 4px; }
.cs-sw { width: 34px; height: 28px; border-radius: 5px; border: 1px solid var(--line-2); background: var(--win-2); display: grid; place-items: center; padding: 0; }
.cs-sw i { width: 20px; height: 16px; border-radius: 3px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(128, 128, 128, .25); }
.cs-sw:hover { border-color: var(--text-3); }
.cs-num { display: inline-flex; align-items: center; gap: 6px; }
.cs-num input { width: 76px; text-align: right; font-variant-numeric: tabular-nums; }
.cs-num small { color: var(--text-3); }
.cs-tz { display: grid; gap: 1px; }
.cs-tz button { display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: 6px; text-align: left; }
.cs-tz button:hover { background: var(--hover); }
.cs-tz button.on { background: var(--brand-bg); }
.cs-tz .n { color: var(--text); font-weight: 600; }
.cs-tz .t { margin-left: auto; color: var(--text-2); }
.cs-tz .ck { width: 14px; color: var(--brand-2); }
.cs-foot { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line); }
.cs-foot .sp { flex: 1; }
@media (max-width: 640px) {
  .lg-t { display: none; }
  .lg { font-size: 11px; }
  .lg-row { min-height: 19px; }
}
@media (max-width: 560px) {
  .modal.cs-modal { width: 100vw; max-height: 90vh; }
  .cs { flex-direction: column; }
  .cs-nav { width: auto; flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 6px 8px; }
  .cs-nav button { padding: 7px 10px; white-space: nowrap; }
  .cs-nav button .cu-ico { display: none; }
  .cs-body { padding: 4px 16px 14px; height: 58vh; }
  .cs-legend { display: none; }
}

/* 설정 창: 디폴트 ▾ 메뉴 · 타임프레임 묶음 */
.is-defw { position: relative; }
.is-defb { display: inline-flex; align-items: center; gap: 6px; }
.is-defb.on { border-color: var(--text-3); }
.is-caret { width: 9px; height: 6px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.is-defb.on .is-caret { transform: rotate(180deg); }
.is-defm { position: absolute; left: 0; bottom: calc(100% + 6px); z-index: 6; min-width: 190px; padding: 4px; display: grid; gap: 1px; background: var(--win); border: 1px solid var(--line-2); border-radius: 8px; box-shadow: var(--shadow); }
.is-defm button { text-align: left; padding: 8px 10px; border-radius: 5px; color: var(--text); font-size: var(--fs); white-space: nowrap; }
.is-defm button:hover { background: var(--hover); }
.is-defm hr { border: 0; border-top: 1px solid var(--line); margin: 3px 2px; }
.is-tfo { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.is-tfo .is-sel { width: 130px; }

/* 지표 고르기 창 (트레이딩뷰 '인디케이터'식) */
.modal.tvi-modal { width: min(820px, calc(100vw - 32px)); height: min(640px, 80vh); }
.tvi { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.tvi-s { position: relative; display: flex; align-items: center; margin: 12px 16px 6px; height: 40px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--win); }
.tvi-s:focus-within { border-color: var(--line-2); } /* 초점이 와도 회색 한 겹 (트레이딩뷰) */
.tvi-s > .ico { width: 18px; height: 18px; margin: 0 4px 0 12px; color: var(--text-2); flex: none; }
.tvi-s input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 15px; padding: 0 8px; }
.tvi-clr[hidden] { display: none; }
.tvi-clr { width: 28px; height: 28px; margin-right: 6px; border-radius: 50%; display: grid; place-items: center; color: var(--text-2); }
.tvi-clr:hover { background: var(--hover); color: var(--text); }
.tvi-clr .ico { width: 14px; height: 14px; }
.tvi-body { flex: 1; min-height: 0; display: grid; grid-template-columns: 196px minmax(0, 1fr); }
.tvi-nav { padding: 2px 8px 10px 12px; display: flex; flex-direction: column; gap: 1px; overflow: auto; }
.tvi-nav .grp { padding: 12px 10px 4px; font-size: 11px; color: var(--text-3); font-weight: 600; }
.tvi-nav button { display: flex; align-items: center; gap: 8px; text-align: left; padding: 8px 10px; border-radius: 6px; color: var(--text); font-weight: 500; }
.tvi-nav button small { margin-left: auto; color: var(--text-3); font-size: 11px; font-variant-numeric: tabular-nums; }
.tvi-nav button:hover { background: var(--hover); }
.tvi-nav button.on { background: var(--hover); font-weight: 700; }
.tvi-nav button.coba-cat { color: var(--warn); }
.tvi-main { display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--line); }
.tvi-tabs { display: flex; gap: 4px; padding: 6px 12px 6px; overflow-x: auto; scrollbar-width: none; flex: none; }
.tvi-tabs[hidden] { display: none; }
.tvi-tabs button { padding: 5px 10px; border-radius: 6px; color: var(--text-2); font-weight: 600; white-space: nowrap; font-size: var(--fs-sm); }
.tvi-tabs button:hover { color: var(--text); background: var(--hover); }
.tvi-tabs button.on { color: var(--text); background: var(--hover); }
.tvi-list { flex: 1; overflow: auto; padding: 2px 0 10px; }
.tvi-h { padding: 8px 18px 4px; font-size: 11px; color: var(--text-3); font-weight: 600; }
.tvi-row { display: flex; align-items: center; gap: 10px; min-height: 34px; padding: 0 12px 0 14px; cursor: pointer; color: var(--text); font-weight: 400; }
.tvi-row:hover, .tvi-list.kb .tvi-row.act { background: var(--hover); }
.tvi-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tvi-nm mark, .tvi-sh mark { background: none; color: var(--brand-2); font-weight: 600; }
.tvi-sh { color: var(--text-2); font-size: var(--fs-sm); }
.tvi-row .sp { flex: 1; }
.tvi-add { width: 18px; height: 18px; flex: none; display: grid; place-items: center; border-radius: 4px; font-size: 15px; line-height: 1; color: var(--brand-2); visibility: hidden; }
.tvi-star { width: 26px; height: 26px; flex: none; display: grid; place-items: center; border-radius: 5px; color: var(--text-3); visibility: hidden; }
.tvi-star svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
.tvi-star:hover { color: var(--text); background: var(--win-2); }
.tvi-star.on { visibility: visible; color: var(--warn); }
.tvi-star.on svg { fill: currentColor; }
.tvi-row:hover .tvi-add, .tvi-row:hover .tvi-star { visibility: visible; }
.tvi-cnt { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: grid; place-items: center; font-size: 11px; font-weight: 700; color: var(--brand-2); background: var(--brand-bg); font-variant-numeric: tabular-nums; }
.tvi-empty { padding: 48px 16px; text-align: center; color: var(--text-3); font-size: var(--fs-sm); }
@media (hover: none) { .tvi-add, .tvi-star { visibility: visible; } }
@media (max-width: 560px) {
  .modal.tvi-modal { width: 100vw; height: 90vh; max-height: 90vh; border-radius: 14px 14px 0 0; }
  #indOv:has(.tvi-modal) { align-items: flex-end; padding-top: 0; }
  .tvi-s { margin: 10px 12px 4px; }
  .tvi-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .tvi-nav { flex-direction: row; overflow-x: auto; padding: 4px 12px; gap: 4px; scrollbar-width: none; }
  .tvi-nav .grp { display: none; }
  .tvi-nav button { white-space: nowrap; padding: 6px 10px; border: 1px solid var(--line-2); flex: none; }
  .tvi-nav button small { margin-left: 4px; }
  .tvi-main { border-left: 0; border-top: 1px solid var(--line); }
  .tvi-row { min-height: 42px; }
}

/* 지표 고르기 창 트레이딩뷰 맞추기 (6차): 왼쪽 묶음 아이콘 · '지표' 알약 · '스크립트 이름' 머리 */
.tvi-ni { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; color: var(--text-2); }
.tvi-nav button.on .tvi-ni { color: var(--text); }
.tvi-nav button.coba-cat .tvi-ni { color: var(--warn); }
.tvi-nav button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tvi-tabs .tvi-pill { border-radius: 16px; padding: 5px 12px; background: var(--hover); color: var(--text); cursor: default; }
.tvi-tabs .tvi-pill.on { background: var(--text); color: var(--win); }
.tvi-list .tvi-h { padding: 6px 18px 4px; }
@media (max-width: 560px) { .tvi-nav .tvi-ni { width: 16px; height: 16px; } }
@media (max-width: 640px) { #indTplBtn { display: none; } }
/* 범례 더보기 메뉴: 지표 이름이 들어간 긴 줄은 좁은 화면에서 줄바꿈 (chartui.js indMenu) */
#pop .cu-mw button:is([data-m="alert"], [data-m="addOn"]) .cu-ml { max-width: 520px; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 560px) { #pop .cu-mw button:is([data-m="alert"], [data-m="addOn"]) .cu-ml { white-space: normal; overflow-wrap: anywhere; max-width: none; } }
#pop .cu-mw button[data-m="alert"] .cu-key { white-space: nowrap; flex: none; }

/* ---------- 7차: 지표 설정 창 트레이딩뷰 맞추기 (js/indsettings.js) ---------- */
/* 화면 세로 가운데 (트레이딩뷰). 휴대폰은 아래 시트 그대로 */
@media (min-width: 561px) { .ind-ov.overlay { align-items: center; padding-top: 0; z-index: 90; } }
.ind-ov.overlay { z-index: 90; }
/* 고르기 칸: 숨긴 select + 단추 + 목록 */
.is-ddw { position: relative; display: inline-flex; }
.is-native { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.is-dd { height: 34px; min-width: 96px; width: 100%; padding: 0 8px 0 10px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line-2); border-radius: 6px; background: transparent; color: var(--text); font-size: var(--fs); cursor: pointer; }
.is-dd:hover, .is-dd.open { border-color: var(--text-3); }
.is-dd .dd-l { flex: 1; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.is-dd .is-caret { width: 10px; height: 6px; flex: none; transition: transform .12s; }
.is-dd.open .is-caret { transform: rotate(180deg); }
.is-ddw.is-sel { width: 176px; }
.is-tfo .is-ddw.is-sel { width: 130px; }
.is-ddw.is-prec { width: 112px; }
.is-ddw.is-plot { width: 112px; }
.is-ddw.is-plot .is-dd { height: 28px; }
.is-ddm { position: fixed; z-index: 130; padding: 6px 0; min-width: 96px; max-height: min(320px, 50vh); overflow: auto; background: var(--tv-menu, var(--win)); border-radius: 6px; box-shadow: var(--tv-shadow, var(--shadow)); color: var(--text); }
.is-ddm button { display: flex; align-items: center; width: 100%; min-height: 32px; padding: 4px 14px; font-size: var(--fs); text-align: left; color: inherit; white-space: nowrap; border-radius: 0; }
.is-ddm button:hover, .is-ddm button:focus-visible { background: var(--hover); outline: none; }
.is-ddm button.on { background: var(--tv-accent, var(--brand)); color: #fff; }
/* 모습 탭 '출력 값' · '입력 값' 머리 */
.is-b .is-sub { margin-top: 16px; }
.is-empty-s { padding: 12px 4px 4px; }
/* 보임 탭: 체크 · 시작 칸 · 양끝 슬라이더 · 끝 칸 */
.is-vis { display: grid; gap: 6px; }
.is-vrow { display: grid; grid-template-columns: 76px 72px minmax(80px, 1fr) 72px; align-items: center; gap: 10px; min-height: 38px; }
.is-vrow1 { grid-template-columns: 1fr; }
.is-vrow .is-vn { height: 34px; width: 72px; text-align: left; padding: 0 8px; font-variant-numeric: tabular-nums; }
.is-vrow.off .is-vn, .is-vrow.off .is-dual { opacity: .4; pointer-events: none; }
.is-dual { position: relative; height: 22px; display: block; }
.is-dual-t, .is-dual-f { position: absolute; top: 50%; height: 4px; margin-top: -2px; border-radius: 2px; pointer-events: none; }
.is-dual-t { left: 0; right: 0; background: var(--line-2); }
.is-dual-f { background: var(--text); }
.is-dual .is-rng { position: absolute; inset: 0; width: 100%; height: 22px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; pointer-events: none; }
.is-rng::-webkit-slider-runnable-track { height: 4px; background: transparent; }
.is-rng::-moz-range-track { height: 4px; background: transparent; }
.is-rng::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 14px; height: 14px; margin-top: -5px; border-radius: 50%; background: var(--win); border: 2px solid var(--text); box-sizing: border-box; cursor: pointer; }
.is-rng::-moz-range-thumb { pointer-events: auto; width: 14px; height: 14px; border-radius: 50%; background: var(--win); border: 2px solid var(--text); box-sizing: border-box; cursor: pointer; }
.is-rng:focus { outline: none; }
.is-rng:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 35%, transparent); }
@media (max-width: 560px) {
  .is-vrow { grid-template-columns: 64px 56px minmax(60px, 1fr) 56px; gap: 6px; }
  .is-vrow .is-vn { width: 56px; }
  .is-ddw.is-sel { width: 150px; }
}
/* 즐겨찾는 지표 및 지표 템플릿 (chartview.js indTplMenu) */
.pop.itpl-pop { width: 300px; padding: 6px; }
.pop .itpl-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 0 0 6px; }
.pop .itpl-seg button { justify-content: center; min-height: 30px; border-radius: 6px; color: var(--text-2); font-weight: 600; }
.pop .itpl-seg button.on { background: var(--hover); color: var(--text); }
.pop .itpl-empty { padding: 44px 16px 52px; text-align: center; color: var(--text-2); font-size: var(--fs); }
.pop .itpl-list { display: grid; max-height: 50vh; overflow: auto; }
/* 쓰지 않는 입력 (트레이딩뷰 active=false): 흐리게 — 스무딩 '없음'일 때 길이, 볼린저 밴드가 아닐 때 BB 표준편차 */
.is-row.is-dis { opacity: .45; }
.is-row.is-dis input, .is-row.is-dis .is-dd { pointer-events: none; }
/* 지표 고르기: 트레이딩뷰에 없는 '추가 지표' 묶음 제목 */
.tvi-h.tvi-xh { margin-top: 8px; border-top: 1px solid var(--line, rgba(128,128,128,.2)); padding-top: 10px; }
.tvi-h.tvi-xh small { font-weight: 400; color: var(--text-3); margin-left: 6px; }
/* 한 줄 여러 칸 (트레이딩뷰 inline): [✓] 어퍼 디비에이션 [2] · P [색][✓] · [✓] [0.236] [색] */
.is-row.is-inl { gap: 8px; flex-wrap: wrap; row-gap: 4px; }
.is-inl .is-chk2 { flex: 1; }
.is-inl .is-chk2.is-chk0 { flex: none; }
.is-inl .is-chk0 + .is-num, .is-inl .is-chk0 + .is-lab2 { margin-left: 0; }
.is-inl .is-lab2 { flex: 1; }
.is-inl .is-num { width: 96px; }
.is-inl input:disabled, .is-dis1 { opacity: .45; }
.is-dis1 { pointer-events: none; display: inline-flex; }
.is-dis1 .is-ddw { pointer-events: none; }
/* 기준선 값 칸 (모습 탭) */
.is-lvn { width: 72px; height: 28px; padding: 0 6px; text-align: right; font-variant-numeric: tabular-nums; }
.is-lvn.bad { border-color: var(--down); }
.is-guide .is-ls button { padding: 3px 6px; }
/* 색 고르기 불투명도 */
.is-pal-a { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); color: var(--text-2); }
.is-pal-a input { flex: 1; accent-color: var(--brand-2); }
.is-pal-a small { min-width: 34px; text-align: right; }
@media (max-width: 560px) {
  .is-inl .is-num { width: 84px; }
  .is-lvn { width: 64px; }
}
.is-guide .is-lab { white-space: nowrap; }
.is-guide .is-w button { width: 22px; }
.is-guide .is-ls button { padding: 3px 5px; }
.is-guide .is-lvn { width: 60px; }
