.sim-page{max-width:1250px}.sim-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.branch-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.branch-tools select{max-width:350px;padding:10px;background:#111713;color:#dbe6d7;border:1px solid #3b443d;border-radius:6px;font:inherit}.sim-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:22px 0;border-bottom:1px solid var(--line);margin-bottom:24px}.sim-summary span{display:block;color:var(--muted);font-size:12px}.sim-summary strong{display:block;font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;margin-top:5px}.trade-toggle{display:flex;border:1px solid #394a3e;border-radius:8px;padding:4px;gap:4px}.trade-toggle button{min-width:95px}.trade-toggle #mode-buy[aria-pressed=true]{background:#bbeca0;color:#162313}.trade-toggle #mode-sell[aria-pressed=true]{background:#edb49a;color:#302017}.sim-periods{display:flex;gap:4px;margin-top:10px}.sim-periods button{font-size:11px;padding:5px 8px;color:#9aaa9c}.sim-periods button[aria-pressed=true]{color:#e1ecd8;background:#2b3529}.sim-chart{height:390px;width:100%;cursor:crosshair;margin-top:16px;position:relative;touch-action:pan-y}.sim-chart svg{display:block;height:100%;width:100%}.sim-chart text{fill:#98a598;font:11px system-ui}.sim-chart .cursor{stroke:#dfe9d5;stroke-width:1;stroke-dasharray:4 4;pointer-events:none}.sim-details{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.sim-details summary{color:#a8b8a4;cursor:pointer;font-size:12px}.sim-details table{margin-top:18px}.sim-details td{padding-right:16px;white-space:nowrap}#sim-message{min-height:28px;margin-bottom:10px}dialog{background:#1b241d;color:#e3ecdf;border:1px solid #52634c;border-radius:12px;padding:26px;width:min(440px,calc(100vw - 28px));max-height:90vh;overflow:auto}dialog::backdrop{background:#050a08b8}.sell-all{display:flex;align-items:center;gap:8px}.sell-all input{width:auto;margin:0}#trade-value{font-size:25px;font-variant-numeric:tabular-nums}#trade-error{margin-top:12px}@media(max-width:650px){.sim-summary{grid-template-columns:1fr 1fr;gap:14px}.sim-summary strong{font-size:21px}.sim-chart{height:290px}.branch-tools{width:100%}.branch-tools select{flex:1;min-width:0;max-width:100%;width:160px}.sim-page>.panel{padding:16px}.trade-toggle button{min-width:75px}.chart-heading{align-items:flex-start}.sim-toolbar .pill{font-size:10px}}
/* Simulator console controls. SVG units match CSS pixels, including labels. */
.branch-tools select{background:#081929;border-color:#355e7b;color:#d0edff}.sim-summary{border-color:#2a455c}.sim-summary span{color:#91b0c8}.sim-summary strong{color:#dfF4ff}.sim-summary #sim-cash{color:#70e2ff}.balance-context{padding:10px 13px;background:#0a2638;border-left:2px solid #44caee;color:#95cbe1;font-size:12px}.balance-context.preview{border-color:#e3ae66;background:#29251d;color:#dfc69c}.trade-toggle{background:#081523;border-color:#375d77;border-radius:5px}.trade-toggle #mode-buy[aria-pressed=true]{background:linear-gradient(#69dfff,#259fce);color:#051d2b;box-shadow:0 0 14px #38c8ff22}.trade-toggle #mode-sell[aria-pressed=true]{background:linear-gradient(#ffd698,#d7994a);color:#2a1b0b}.sim-periods{flex-wrap:wrap;justify-content:flex-end}.sim-periods button{color:#85a7c0}.sim-periods button[aria-pressed=true]{background:#164562;color:#8ce5ff}.sim-chart text{fill:#93b7d3;font:12px ui-monospace,SFMono-Regular,Consolas,monospace}.sim-chart .cursor{stroke:#c4eaff}.sim-details{border-color:#29465f}.sim-details summary{color:#8fbdd9}.chart-navigation{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;padding:10px 0;border-top:1px solid #28435a}.zoom-buttons{display:flex;align-items:center;gap:5px}.chart-navigation button{border:1px solid #355a74;background:#10283d;color:#a1d7f3;padding:5px 10px;min-width:32px}.chart-navigation button:hover{border-color:#5acbfa}.chart-navigation #follow-live[aria-pressed=true]{border-color:#287d98;background:#0d354a;color:#72e3ff}.zoom-buttons span{color:#8aadc8;font-size:11px;margin-left:7px;font-variant-numeric:tabular-nums}dialog{background:linear-gradient(135deg,#142d45,#0b192a);border-color:#3c769a;color:#dfedfa;box-shadow:0 16px 70px #0009}dialog::backdrop{background:#020814c9}@media(max-width:650px){.chart-navigation{flex-wrap:wrap}.chart-navigation button{padding:5px 8px}.zoom-buttons span{font-size:10px}.sim-chart text{font-size:11px}.chart-heading>div:last-child{max-width:200px}.sim-periods button{padding:5px 6px}}
@media(max-width:650px){.chart-heading>div:first-child{flex:1;min-width:125px}.chart-heading>div:last-child{width:156px;max-width:156px}.chart-heading .market-price{font-size:28px}.trade-toggle button{min-width:0;flex:1;padding:8px}.sim-periods{justify-content:flex-start}.sim-summary{padding:16px 0;margin-bottom:18px}}
.session-profit{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:16px;background:#081a2a;border:1px solid #2b526d;border-radius:6px}.session-profit span{display:block;color:#94b6cd;font-size:12px}.session-profit strong{display:block;margin-top:7px;font-size:24px;font-variant-numeric:tabular-nums}.session-profit .profit-positive{color:#73efab}.session-profit .profit-negative{color:#ffb777}.fill-tags{display:flex;flex-wrap:wrap;gap:8px;max-height:140px;overflow:auto}.fill-tag{font-size:11px;padding:8px 10px;border:1px solid #356c58;border-radius:4px;color:#73efab;background:#0a2525}.fill-tag.sell{color:#ffb777;border-color:#745333;background:#29221e}.trade-marker{pointer-events:none}@media(max-width:650px){.session-profit{grid-template-columns:1fr;gap:12px}.session-profit>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.session-profit strong{font-size:20px;margin:0}}
.fill-tags{max-height:350px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.fill-tag{min-width:0}.fill-tag>p{margin:7px 0}.trade-costs{margin-top:8px;padding-top:8px;border-top:1px solid #42607566;font-size:11px;color:#b7cde0}.trade-costs>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:6px 0}.trade-costs b{white-space:nowrap;font-variant-numeric:tabular-nums;color:#e0f0fa}.trade-costs>div:last-child{border-top:1px solid #42607566;padding-top:7px}#trade-cost-preview{border:1px solid #355a74;border-radius:5px;padding:10px;margin:12px 0}#trade-cost-preview .trade-costs{font-size:12px}
.sim-chart .trade-marker .trade-label{font:11px monospace}.sim-chart .trade-marker.buy .trade-label{fill:#73efab}.sim-chart .trade-marker.sell .trade-label{fill:#ffb777}.sim-chart .time-grid{fill:none;stroke:#9dc7e4;stroke-width:1;pointer-events:none}.sim-chart .time-grid.minor{opacity:.055}.sim-chart .time-grid.major{opacity:.14}.sim-chart .time-tick{font-size:10px;fill:#789bb7}
.cursor-sale-tag{pointer-events:none}.cursor-sale-tag rect{fill:#081b29;fill-opacity:.97;stroke:#60839b}.sim-chart .cursor-sale-tag text{font:10px monospace;fill:#bed6e7}.sim-chart .cursor-sale-tag .sale-result{font-weight:bold}.cursor-sale-tag.positive rect{stroke:#73efab}.sim-chart .cursor-sale-tag.positive .sale-result{fill:#73efab}.cursor-sale-tag.negative rect{stroke:#ffb777}.sim-chart .cursor-sale-tag.negative .sale-result{fill:#ffb777}
#replay-source{min-width:180px;flex:1}#replay-trade .branch-tools{margin-top:12px}#replay-buy{background:#15543f;color:#a7f7cb;border:1px solid #468b6c}#replay-sell,#replay-all{background:#49321e;color:#ffd09f;border:1px solid #82603f}#replay-play,#replay-step{white-space:nowrap}#replay-position{accent-color:#50d9ff}
.chart-navigation:has(#replay-play) .zoom-buttons{flex-wrap:wrap}
.break-even-marker{pointer-events:none}.break-even-marker path{stroke:#cfb3ff;stroke-width:1.5;stroke-dasharray:9 5;fill:none}.break-even-marker rect{stroke:#cfb3ff;fill:#1b1931}.sim-chart .break-even-marker text{font:11px monospace;fill:#e0cfff}
.sim-chart .trade-reference .trade-label{font:11px monospace}.sim-chart .trade-reference.buy .trade-label{fill:#73efab}.sim-chart .trade-reference.sell .trade-label{fill:#ffb777}.trade-reference,.trade-dot{pointer-events:none}.chart-navigation .zoom-buttons{flex-wrap:wrap}
.fill-tags{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px;max-height:none;overflow:visible}.trip-summary{grid-column:1/-1;margin:4px 0;color:#b7cde0}.trip-summary b{font-variant-numeric:tabular-nums}
.trip{border:1px solid #2f4d63;border-left:4px solid #6f8ea5;border-radius:6px;padding:14px 16px;background:#0a1c2b;color:#d6e8f5;font-size:13px}.trip.won{border-left-color:#73efab}.trip.lost{border-left-color:#ffb777}.trip.open{border-left-color:#8ce5ff}
.trip header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.trip-result{font-weight:600;font-variant-numeric:tabular-nums}.trip.won .trip-result{color:#73efab}.trip.lost .trip-result{color:#ffb777}.trip.open .trip-result{color:#8ce5ff}
.trip ol{list-style:none;padding:0;margin:10px 0 6px}.trip li{margin:6px 0}.trip li small{display:block;color:#8aa9bf;margin-top:2px}.trip-side{display:inline-block;min-width:60px;font-weight:600;color:#8ce5ff}.trip-side.buy{color:#73efab}.trip-side.sell{color:#ffb777}
.trip details{margin-top:8px;border-top:1px solid #42607566;padding-top:8px}.trip summary{cursor:pointer;color:#8fbdd9;font-size:12px}.trip details>p{margin:10px 0 0}
