/* candle-builder: every selector starts with .candle-builder- */
.candle-builder-panel { fill: var(--canvas); stroke: var(--line); stroke-width: 1; }
.candle-builder-open { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 5 4; }
.candle-builder-line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.candle-builder-line-up { stroke: var(--up); }
.candle-builder-line-down { stroke: var(--down); }
.candle-builder-guide { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 2 4; }
.candle-builder-dot { fill: var(--brand); stroke: var(--paper); stroke-width: 2; }
.candle-builder-wick { stroke-width: 2; stroke-linecap: butt; }
.candle-builder-up .candle-builder-wick { stroke: var(--up); }
.candle-builder-up .candle-builder-body { fill: var(--up); stroke: var(--up); stroke-width: 2; }
.candle-builder-down .candle-builder-wick { stroke: var(--down); }
.candle-builder-down .candle-builder-body { fill: var(--paper); stroke: var(--down); stroke-width: 2; }
.candle-builder-flat .candle-builder-wick, .candle-builder-flat .candle-builder-body { stroke: var(--ink); fill: var(--ink); }
.candle-builder-arrow { font: 700 var(--fs-chart) var(--font-ui); }
.candle-builder-up .candle-builder-arrow { fill: var(--up); }
.candle-builder-down .candle-builder-arrow { fill: var(--down); }
.candle-builder-tag { font: 400 var(--fs-chart) var(--font-ui); fill: var(--ink-2); font-variant-numeric: tabular-nums; }
.candle-builder-tag-c { fill: var(--on-ink); font-weight: 700; }
.candle-builder-ctag { fill: var(--ink); }
.candle-builder-ctag.candle-builder-up { fill: var(--up); }
.candle-builder-ctag.candle-builder-down { fill: var(--down); }
/* O H L C: four readouts (label over number under a rule), no fills */
.candle-builder-cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.candle-builder-cell { container-type: inline-size; display: grid; align-content: start; gap: 2px; min-width: 0; padding: var(--s2) 0 0; border-top: var(--rule-strong); transition: border-color var(--dur); }
.candle-builder-k { font: 700 var(--fs-small)/1.3 var(--font-ui); color: var(--ink-2); }
.candle-builder-v { font: 700 var(--fs-num-fit)/1.15 var(--font-ui); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; color: var(--ink); overflow-wrap: anywhere; }
.candle-builder-x { min-height: 1.3em; font: 700 var(--fs-small)/1.3 var(--font-ui); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.candle-builder-cell[data-tone="up"] { border-top-color: var(--up); }
.candle-builder-cell[data-tone="up"] .candle-builder-x, .candle-builder-cell[data-tone="up"] .candle-builder-v { color: var(--up); }
.candle-builder-cell[data-tone="down"] { border-top-color: var(--down); }
.candle-builder-cell[data-tone="down"] .candle-builder-x, .candle-builder-cell[data-tone="down"] .candle-builder-v { color: var(--down); }
.candle-builder-cell.is-new { animation: candle-builder-flash .6s var(--ease); }
@keyframes candle-builder-flash { 0%, 40% { border-top-color: var(--brand); } }
.candle-builder-controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s3) var(--s4); }
.candle-builder-controls .w-btn { flex: none; }
@media (min-width: 34rem) {
  .candle-builder-cells { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .candle-builder-cell.is-new { animation: none; } }
