/* ============ ChartPro — TradingView style (dark) ============ */
.chartpro-wrap {
  --tv-bg:        #131722;
  --tv-bg-2:      #1e222d;
  --tv-border:    #2a2e39;
  --tv-text:      #d1d4dc;
  --tv-text-dim:  #787b86;
  --tv-text-bright:#ffffff;
  --tv-blue:      #2962ff;
  --tv-green:     #26a69a;
  --tv-red:       #ef5350;
  --tv-yellow:    #ffb74d;
  --tv-purple:    #ab47bc;

  position: relative;
  background: var(--tv-bg);
  color: var(--tv-text);
  border: 1px solid var(--tv-border);
  margin-bottom: 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,.18);
  font-family: -apple-system, BlinkMacSystemFont, 'Trebuchet MS', Tahoma, sans-serif;
}
.chartpro-wrap::before { display: none; }
.chartpro-wrap.fs {
  position: fixed; inset: 0; z-index: 100;
  margin: 0;
}

/* Toolbar */
.cp-toolbar {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 12px;
  background: var(--tv-bg);
  border-bottom: 1px solid var(--tv-border);
}
.cp-symbol {
  display: flex; align-items: baseline; gap: 6px;
  padding-right: 12px;
  border-right: 1px solid var(--tv-border);
}
.cp-symbol .num {
  font-family: -apple-system, sans-serif;
  font-size: 18px; font-weight: 700;
  color: var(--tv-text-bright);
}
.cp-symbol .kai {
  font-family: 'BiauKai', '標楷體', sans-serif;
  font-size: 16px;
  color: var(--tv-text-bright);
  font-weight: 600;
}
.cp-exchange {
  font-size: var(--fs-nano);
  color: var(--tv-text-dim);
  font-style: normal;
  font-variant: normal;
  letter-spacing: 0;
}

/* Timeframe pills */
.cp-tf { display: flex; gap: 1px; background: var(--tv-bg-2); padding: 2px; border-radius: 4px; }
.cp-tf-btn {
  padding: 4px 12px;
  background: transparent;
  border: none;
  font-family: inherit;
  font-size: 12px;
  font-style: normal;
  color: var(--tv-text-dim);
  cursor: pointer;
  letter-spacing: 0;
  font-weight: 500;
  border-radius: 3px;
  transition: all .12s ease;
}
.cp-tf-btn:hover { background: var(--tv-border); color: var(--tv-text); }
.cp-tf-btn.on {
  background: var(--tv-blue);
  color: #fff;
  font-weight: 600;
}

/* Chart type icons */
.cp-type { display: flex; gap: 1px; padding-left: 8px; border-left: 1px solid var(--tv-border); }
.cp-type-btn {
  width: 28px; height: 28px;
  background: transparent;
  border: none;
  font-size: 14px;
  color: var(--tv-text-dim);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  border-radius: 3px;
  transition: all .12s ease;
}
.cp-type-btn:hover { background: var(--tv-border); color: var(--tv-text); }
.cp-type-btn.on {
  background: var(--tv-blue); color: #fff;
}

/* Fullscreen */
.cp-fs-btn {
  margin-left: auto;
  width: 28px; height: 28px;
  background: transparent;
  border: none;
  font-size: 14px;
  color: var(--tv-text-dim);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  border-radius: 3px;
  transition: all .12s ease;
}
.cp-fs-btn:hover { background: var(--tv-border); color: var(--tv-text); }

/* Indicator chip row */
.cp-ind-row {
  display: flex; align-items: center; gap: 4px;
  padding: 6px 12px;
  background: var(--tv-bg-2);
  border-bottom: 1px solid var(--tv-border);
  flex-wrap: wrap;
}
.cp-ind-label {
  font-family: inherit;
  font-variant: normal;
  font-style: normal;
  font-size: var(--fs-nano);
  letter-spacing: 0;
  font-weight: 600;
  color: var(--tv-text-dim);
  padding-right: 8px;
  border-right: 1px solid var(--tv-border);
  margin-right: 4px;
  text-transform: uppercase;
}
.cp-ind-label .kai { color: var(--tv-text); font-weight: 600; }
.cp-ind-chip {
  padding: 3px 8px;
  background: transparent;
  border: 1px solid var(--tv-border);
  font-family: inherit;
  font-size: var(--fs-nano);
  color: var(--tv-text-dim);
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px;
  font-style: normal;
  border-radius: 3px;
  transition: all .12s ease;
}
.cp-ind-chip:hover { border-color: var(--tv-text-dim); color: var(--tv-text); background: var(--tv-bg); }
.cp-ind-chip.on {
  background: var(--tv-bg);
  border-color: var(--tv-blue);
  color: var(--tv-text-bright);
}
.cp-ind-chip .chip-mark { color: var(--tv-blue); font-size: var(--fs-nano); }
.cp-ind-chip .chip-cn { font-family: 'BiauKai', '標楷體', sans-serif; font-size: var(--fs-nano); letter-spacing: 0; color: var(--tv-text-dim); }
.cp-ind-chip.on .chip-cn { color: var(--tv-text); }

.cp-ind-tfchg {
  margin-left: auto;
  font-family: inherit;
  font-style: normal;
  font-size: 12px;
  color: var(--tv-text-dim);
}
.cp-ind-tfchg b { font-weight: 600; }
.cp-ind-tfchg .bull-c { color: var(--tv-green) !important; }
.cp-ind-tfchg .bear-c { color: var(--tv-red) !important; }

/* Floating OHLCV legend */
.cp-legend {
  display: flex; justify-content: space-between; align-items: center;
  padding: 6px 12px;
  background: var(--tv-bg);
  border-bottom: 1px solid var(--tv-border);
  flex-wrap: wrap;
  gap: 12px;
}
.cp-leg-l {
  display: inline-flex; align-items: baseline; gap: 12px;
  font-family: inherit;
  font-size: 12px;
}
.cp-leg-l i {
  font-style: normal;
  font-size: var(--fs-nano);
  color: var(--tv-text-dim);
  font-variant: normal;
  letter-spacing: 0;
  margin-right: 3px;
  font-weight: 600;
}
.cp-leg-l b { font-weight: 600; color: var(--tv-text-bright); }
.cp-leg-l .bull-c { color: var(--tv-green) !important; }
.cp-leg-l .bear-c { color: var(--tv-red) !important; }
.cp-leg-l > span { display: inline-flex; align-items: baseline; }
.cp-leg-day {
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 0;
  color: var(--tv-text);
  font-weight: 600;
  padding-right: 10px;
  border-right: 1px solid var(--tv-border);
}
.cp-leg-r {
  display: inline-flex; gap: 14px;
  font-family: inherit;
  font-size: var(--fs-nano);
  color: var(--tv-text-dim);
}
.cp-leg-r b { font-weight: 600; color: var(--tv-text); margin-left: 2px; }
.chartpro-wrap.fs .cp-legend { padding: 10px 18px; font-size: 13px; }

/* SVG override for dark theme */
.chartpro-wrap svg text { fill: var(--tv-text-dim); }

