.backtest-runner { margin-bottom:14px; }
.backtest-form { display:grid; grid-template-columns:1.3fr 1fr 1fr auto; gap:12px; align-items:end; }
.backtest-form label { color:var(--muted); font-size:10px; }
.backtest-form input,.backtest-form select { display:block; width:100%; height:40px; margin-top:7px; padding:0 11px; color:var(--text); background:#0c0f13; border:1px solid var(--line); color-scheme:dark; }
.backtest-hint { margin:13px 0 0; color:var(--muted); font-size:10px; }
.backtest-log { display:none; max-height:170px; overflow:auto; margin:16px 0 0; padding:13px; border:1px solid #242a33; background:#090b0e; color:#899282; font:10px/1.6 'DM Mono'; white-space:pre-wrap; }
.backtest-log.active { display:block; }
.hidden { display:none!important; }
.backtest-result { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:14px; }
.backtest-detail-head { display:flex; align-items:flex-start; gap:18px; padding:5px 0 4px; }
.backtest-back { flex:none; }
.backtest-result-meta { margin:7px 0 0; color:var(--muted); font:10px 'DM Mono'; }
.result-metrics { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.result-metrics { grid-column:1 / -1; }
.result-metrics article { padding:17px; border:1px solid var(--line); background:#11151a; }
.result-metrics small,.result-metrics strong { display:block; }
.result-metrics small { margin-bottom:12px; color:var(--muted); font-size:9px; }
.result-metrics strong { font:500 18px 'DM Mono'; }
.chart-panel { padding-bottom:14px; }
.chart-panel,.trade-panel { min-width:0; }
.chart-wrap { position:relative; height:520px; border:1px solid #202630; background:#090c10; overflow:hidden; cursor:grab; }
.chart-wrap.dragging { cursor:grabbing; }
#tradeChart { display:block; width:100%; height:100%; touch-action:none; user-select:none; }
.chart-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 14px; font:10px 'DM Mono'; }
.buy-dot { color:#62d6a0; }.sell-dot { color:#ff747b; }
.chart-tooltip { display:none; position:absolute; z-index:2; pointer-events:none; padding:8px 10px; border:1px solid #343c48; background:#11151bee; color:#d8dce1; font:10px/1.5 'DM Mono'; }
.chart-tooltip.active { display:block; }
.chart-help { margin:8px 0 0; color:#59616d; font-size:9px; text-align:right; }
.trade-table { max-height:520px; }
.trade-table thead th { position:sticky; top:0; z-index:1; background:#11151a; }
.trade-table tbody tr { cursor:pointer; }
.trade-table tbody tr:hover,.trade-table tbody tr.selected { background:#192019; }
.archive-panel { margin-top:14px; }
.backtest-item { cursor:pointer; }
.backtest-item:hover { border-color:#4b5540; }
.job-progress { color:var(--amber); }
@media(max-width:1100px) { .backtest-result { grid-template-columns:1fr; }.result-metrics { grid-column:auto; }.backtest-form { grid-template-columns:1fr 1fr; }.result-metrics { grid-template-columns:repeat(2,1fr); }.chart-wrap { height:420px; } }
@media(max-width:600px) { .backtest-form { grid-template-columns:1fr; }.backtest-detail-head { display:grid; }.result-metrics { grid-template-columns:1fr 1fr; }.chart-wrap { height:360px; } }
