.holding-research{overflow:hidden}
/* One compact toolbar row (持股個股 selector, date range, 資訊/均線, 全螢幕)
   -- previously two visually stacked bands (.research-controls then
   .research-ma-controls as separate block-level siblings); now all four
   groups are children of a single flex-wrap row so they align on one
   line at typical desktop widths and wrap as whole groups, never as a
   forced two-band stack, when space runs out (e.g. on mobile). */
.research-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:14px 20px;border-bottom:1px solid var(--line)}
.research-selector{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.research-selector select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:13px}
.research-ranges{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.research-ranges button{height:32px;padding:0 12px;background:#edf3f7;color:#456078;font-size:12px}
.research-ranges button.active{background:var(--blue);color:#fff}
.research-ma-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.research-ma-controls strong{margin-right:2px;color:var(--ink)}
.research-toolbar>.chart-fullscreen-toggle{margin-left:auto}
.ma-toggle{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 8px;border:1px solid var(--line);background:#fff;color:#68788a;font-size:12px}
.ma-toggle.active{border-color:#91a9bb;background:#edf3f7;color:var(--ink)}
.research-control-separator{width:1px;height:20px;margin-inline:3px;background:var(--line)}
.ma-sample{display:inline-block;width:18px;height:0;border-top:2px solid}
.ma-5{border-color:#8e44ad}
.ma-10{border-color:#e67e22;border-top-style:dashed}
.ma-20{border-color:#2874a6;border-top-style:dotted}
.ma-60{border-color:#7d6608}
.ma-120{border-color:#566573;border-top-style:dashed}
.ma-240{border-color:#ad1457;border-top-style:dotted}
.research-status{margin:12px 20px 0;color:var(--muted);font-size:13px}
.research-status.error{color:#9a3434}
.kline-chart{position:relative;margin:12px 20px 0;height:440px;border:1px solid var(--line);border-radius:8px;background:#fbfdff;overflow:hidden;touch-action:pan-y}
.kline-chart canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.kline-tooltip{position:absolute;z-index:2;max-width:min(320px,85%);padding:8px 10px;border-radius:6px;background:#173650;color:#fff;font-size:12px;line-height:1.5;white-space:pre-line;pointer-events:none;box-shadow:0 3px 14px #0003}
.tooltip-market,.tooltip-ma,.tooltip-holding{white-space:pre-line}
.tooltip-ma,.tooltip-holding{margin-top:8px;padding-top:8px;border-top:1px solid #ffffff55}
.tooltip-ma{font-weight:500}
.tooltip-holding{font-weight:650}
.research-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:12px 20px 18px;color:var(--muted);font-size:12px}
.event-key{font-weight:700}
.event-key.new{color:var(--viz-cyan,#20b8c4)}
.event-key.buy{color:var(--viz-orange,#ee8a2d)}
.event-key.sell{color:var(--viz-violet,#7568c8)}
.event-key.exit{color:var(--viz-axis,#60788d)}
.mobile-helper{display:none}
.holding-research>.empty{padding:20px}
@media(max-width:700px){
  /* Same single .research-toolbar container -- each control group wraps
     onto its own full-width line (natural wrap, not a rigid forced
     column split into two separate bands) so nothing overflows and every
     control stays reachable, grouped, and visible. */
  .research-toolbar{padding:12px;gap:8px}
  .research-selector,.research-ranges,.research-ma-controls,.research-toolbar>.chart-fullscreen-toggle{width:100%}
  .research-selector select{width:100%}
  .research-ranges{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}
  .research-ranges button{min-width:0;height:40px;padding-inline:3px}
  .research-ma-controls{flex-wrap:wrap}
  .ma-toggle{min-height:38px}
  .research-toolbar>.chart-fullscreen-toggle{margin-left:0;height:40px}
  .kline-chart{height:clamp(360px,105vw,400px);margin-inline:10px}.kline-tooltip{display:none}
  .research-legend{padding-inline:12px}
  .desktop-helper{display:none}
  .mobile-helper{display:inline}
}
