:root{--bg: #0b0f14;--panel: #121820;--line: #1e2836;--text: #e8eef7;--muted: #8b9bb4;--accent: #3d8bfd;--good: #2ecc71;--bad: #e74c3c;--warn: #f39c12;--font: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(1200px 600px at 10% -10%,#1a2740 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#142018 0%,transparent 50%),var(--bg);color:var(--text);font-family:var(--font)}#app{max-width:1280px;margin:0 auto;padding:16px 18px 28px}.top{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:16px}.brand{display:flex;gap:12px;align-items:center}.logo{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#3d8bfd,#1f4f9a);font-weight:700;font-size:22px}.brand h1{margin:0;font-size:20px;letter-spacing:.02em}.sub{margin:2px 0 0;color:var(--muted);font-size:12px}.search-row{display:flex;gap:8px;align-items:flex-start}.search-box{position:relative}.search-box input{width:220px}.suggest-list{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px 0;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:240px;overflow:auto;box-shadow:0 8px 24px #00000059}.suggest-list li{display:flex;justify-content:space-between;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px}.suggest-list li:hover,.suggest-list li.active{background:#ffffff0f}.suggest-list li small{color:var(--muted);font-variant-numeric:tabular-nums}input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;width:160px}button{border:0;border-radius:8px;padding:10px 14px;background:var(--accent);color:#fff;cursor:pointer;font-weight:600}button.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed}.layout{display:grid;grid-template-columns:280px 1fr;gap:14px}@media(max-width:900px){.layout{grid-template-columns:1fr}.side-toggle{display:flex}.side:not(.open) .side-body{display:none}.side.open .side-toggle .chevron{transform:rotate(180deg)}}.side-toggle{display:none;width:100%;align-items:center;justify-content:space-between;margin-bottom:8px;background:#182131;color:var(--text);font-weight:600}.side-toggle .chevron{transition:transform .15s ease}.panel-toggle{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--text);padding:0;cursor:pointer;font-weight:600}.panel-toggle h2{margin:0;font-size:14px}.panel-toggle .chevron{color:var(--muted);font-size:12px;transition:transform .15s ease}.panel-toggle[aria-expanded=false] .chevron{transform:rotate(-90deg)}.panel-body.collapsed{display:none}.mark-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.mark-btn{padding:8px 12px;font-size:13px}.mark-btn.active[data-side=buy]{background:var(--bad)}.mark-btn.active[data-side=sell]{background:var(--good);color:#0b0f14}.pos-summary{font-size:12px}.replay-bar{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:6px;padding:4px 10px;border-radius:8px;border:1px solid #5a4a1a;background:#f39c121f;color:#f5d98a;font-size:11px;line-height:1.3;min-height:0}.replay-bar #replayText{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-actions{display:flex;gap:6px;flex-shrink:0}.replay-actions .mark-btn{padding:4px 8px;font-size:11px}.replay-bar[hidden]{display:none!important}.crosshair-panel{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin-bottom:8px;padding:8px 12px;background:#121a24;border:1px solid var(--line);border-radius:10px;font-size:12px;line-height:1.45;min-height:38px;font-variant-numeric:tabular-nums}.crosshair-panel.active{color:var(--text)}.crosshair-panel .chip{display:inline-flex;gap:4px;align-items:baseline;white-space:nowrap}.crosshair-panel .chip b{font-weight:600;color:var(--text)}.crosshair-panel .chip .k{color:var(--muted)}.crosshair-panel .up{color:#e74c3c}.crosshair-panel .down{color:#2ecc71}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}.modal[hidden]{display:none!important}.modal-backdrop{position:absolute;inset:0;background:#04080eb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{position:relative;width:min(420px,100%);background:linear-gradient(180deg,#161e2a,#10161f);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 48px #00000073;overflow:hidden}.modal-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}.modal-hd h3{margin:0;font-size:16px}.modal-x{background:transparent;border:0;color:var(--muted);font-size:22px;line-height:1;padding:0 4px;cursor:pointer}.modal-bd{padding:4px 16px 8px;display:flex;flex-direction:column;gap:12px}.modal-ft{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px 16px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.field input,.field select{width:100%;background:#0c121a;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;font-size:14px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.seg{display:flex;gap:6px}.seg-btn{flex:1;background:#182131;color:var(--muted);border:1px solid var(--line);padding:8px 10px;font-size:13px}.seg-btn.active{background:#243552;color:var(--text);border-color:#3d8bfd}@media(max-width:480px){.field-grid{grid-template-columns:1fr}}.journal-list li{flex-direction:column;align-items:stretch;gap:6px}.journal-list .j-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.journal-list .j-meta{color:var(--muted);font-size:11px;line-height:1.4}.journal-list .j-actions{display:flex;flex-wrap:wrap;gap:6px}.journal-list .j-actions button{padding:4px 8px;font-size:11px;font-weight:500}.journal-list .tag{font-size:11px;padding:2px 6px;border-radius:999px;background:#243044;color:var(--muted)}.journal-list .tag.sim{background:#3a2e16;color:var(--warn)}.journal-list .tag.buy,.journal-list .tag.live{background:#3a2222;color:#ff8a80}.journal-list .tag.sell,.journal-list .tag.good{background:#1e3d2f;color:var(--good)}.journal-list .tag.bad{background:#3a2222;color:var(--bad)}.panel{background:color-mix(in srgb,var(--panel) 92%,black);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}.panel-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.panel-hd h2{margin:0;font-size:14px}.list{list-style:none;margin:0;padding:0;max-height:280px;overflow:auto}.list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer}.list li .sym{display:flex;flex-direction:column;gap:2px;min-width:0}.list li .sym strong{font-size:13px;font-weight:600}.list li .sym small{color:var(--muted);font-size:11px}.list li:hover,.list li.active{background:#1a2433}.list li .rm{opacity:.55;font-size:12px;border:0;background:transparent;color:var(--muted);padding:0 4px}.hits li{border-left:3px solid var(--good)}.muted{color:var(--muted);font-size:12px}.tabs{display:flex;gap:8px;margin-bottom:8px}.tab{background:#182131;color:var(--muted)}.tab.active{background:#243552;color:var(--text)}.chart-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0f1419;height:520px;touch-action:none}.ghost-tab{margin-left:auto;background:transparent!important;border:1px solid var(--line);color:var(--muted)!important;font-weight:500}#chart{width:100%;height:100%;display:block}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:13px}.checklist li:last-child{border-bottom:0}.dot{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}.dot.ok{background:#1e3d2f;color:var(--good)}.dot.no{background:#3a2222;color:var(--bad)}.badge{font-size:12px;padding:4px 8px;border-radius:999px;background:#243044;color:var(--muted)}.badge.hit{background:#1e3d2f;color:var(--good)}.badge.miss{background:#3a2222;color:var(--bad)}.foot{margin-top:10px;color:var(--muted);font-size:12px;text-align:center}
