@font-face{font-family:JetBrains Mono;src:local("Consolas")}*{box-sizing:border-box}:root{--bg: #07111f;--bg-deep: #050b15;--panel: #0c1728;--panel-soft: #101d31;--border: #1d3557;--border-soft: #183052;--text: #d9e7ff;--muted: #7d91ad;--blue: #2f80ed;--cyan: #00d4ff;--green: #14f195;--red: #ff5c7a;--amber: #fbbf24;--violet: #8fb3ff;color:var(--text);background:var(--bg);font-family:JetBrains Mono,Consolas,Microsoft YaHei UI,monospace;font-synthesis:none;text-rendering:optimizeLegibility}body{margin:0;min-width:1180px;min-height:100vh;overflow:hidden;background:linear-gradient(rgba(29,53,87,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(29,53,87,.6) 1px,transparent 1px),radial-gradient(circle at 50% 0%,rgba(47,128,237,.16),transparent 44%),var(--bg);background-size:22px 22px,22px 22px,100% 100%,100% 100%}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px}.auth-panel{width:min(460px,calc(100vw - 48px));padding:28px;border:1px solid var(--border);background:#0c1728f5;box-shadow:0 24px 70px #00000059}.auth-brand{margin-bottom:24px}.auth-panel h1{margin:0;font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:24px;letter-spacing:0}.auth-panel p{margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin:22px 0;border:1px solid var(--border);background:var(--bg-deep)}.auth-tabs button{height:38px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);font-weight:900}.auth-tabs button:last-child{border-right:0}.auth-tabs button.active{background:#2f80ed57;color:var(--cyan)}.auth-form{display:grid;gap:16px}.auth-error{margin:0;color:#ff9caf}button,input,select,textarea{font:inherit}button{border:1px solid var(--border);color:var(--text);cursor:pointer;transition:border-color .16s ease,filter .16s ease,transform .16s ease}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.52}.terminal-shell{width:100vw;height:100vh;padding:0 20px 20px}.topbar{height:60px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#050b15f2}.brand{display:flex;align-items:center;gap:10px;font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:22px;font-weight:900;letter-spacing:0;text-shadow:0 0 12px rgba(0,212,255,.18)}.brand strong{color:var(--cyan);margin-left:0}.brand em{padding:5px 10px;border:1px solid var(--border);border-radius:3px;color:var(--muted);font-size:10px;font-style:normal;letter-spacing:1px}.status-line{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px}.status-line span:not(:last-of-type):after{content:"|";margin-left:12px;color:#35557f}.lang{height:24px;min-width:38px;border-radius:0;background:var(--panel-soft);font-size:11px}.lang.active{background:var(--blue);border-color:var(--cyan);color:#f8fbff;font-weight:800}.metrics-bar{height:86px;margin:26px 0 6px;padding:16px 18px;display:grid;grid-template-columns:130px 180px repeat(9,minmax(84px,1fr));gap:18px;align-items:center;border:1px solid var(--border);background:#0c1728f5}.metric{min-width:0}.metric small,h2,.slider-field span,label span,.strategy small,.terminal-head span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.8px}.metric strong{display:block;margin-top:7px;font-size:14px;white-space:nowrap}.metric.hero strong{color:#f3f8ff;font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:28px;letter-spacing:2px}.metric.hero strong.current-price{font-size:24px}.metric.hero strong.current-price.price-up{color:var(--green)}.metric.hero strong.current-price.price-down{color:var(--red)}.metric.trend strong{color:var(--red);font-size:20px}.split{color:var(--red)}.blue{color:var(--blue)}.green{color:var(--green)}.violet{color:var(--violet)}.workspace{height:calc(100vh - 178px);display:grid;grid-template-columns:475px minmax(560px,1fr) 475px;border:1px solid var(--border);background:#07111ff5}.panel{background:#0c1728f5;border-color:var(--border)}.config-panel,.terminal-panel{min-width:0;border-right:1px solid var(--border)}.terminal-panel{border-right:0;border-left:1px solid var(--border)}.config-panel{padding:22px 20px;overflow-y:auto;scrollbar-color:#27476f var(--panel)}h2{margin:0 0 20px;font-size:12px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-title h2{margin:0}.config-lock-note{margin:0 0 12px;padding:8px 10px;border:1px solid rgba(247,181,0,.32);border-radius:3px;background:#f7b50014;color:var(--amber);font-size:11px;font-weight:800;line-height:1.45}.config-tabs{display:grid;grid-template-columns:repeat(4,1fr);width:300px;border:1px solid var(--border);background:var(--bg-deep)}.config-tabs button{height:25px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);font-size:11px;font-weight:900}.config-tabs button:last-child{border-right:0}.config-tabs button.active{background:#2f80ed57;color:var(--cyan)}.config-page{min-height:0}.section-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.section-head h3{margin:0;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.8px}.section-head span{color:var(--cyan);font-size:10px;font-weight:900}.indicator-settings{display:grid;gap:10px;margin-bottom:18px}.strategy-settings{display:grid;gap:14px}.strategy-card{padding:12px;border:1px solid var(--border-soft);border-radius:4px;background:#101d31b8}.strategy-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.strategy-card strong{color:var(--text);font-size:12px}.strategy-card small{color:var(--cyan);font-size:10px;font-weight:900;text-transform:uppercase}.strategy-card pre{max-height:260px;margin:0;overflow:auto;white-space:pre-wrap;color:var(--muted);font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:12px;line-height:1.55}.loaded-strategies{display:grid;gap:8px}.loaded-strategies button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:34px;padding:7px 10px;border:1px solid var(--border-soft);border-radius:3px;background:#101d319e;color:var(--muted);text-align:left}.loaded-strategies button.active{border-color:var(--cyan);background:#00d4ff1f;color:var(--cyan)}.loaded-strategies strong{overflow:hidden;color:inherit;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.loaded-strategies span{margin:0;color:inherit;font-size:10px;font-weight:900;text-transform:uppercase}.save-message{margin:0;color:var(--cyan);font-size:11px;font-weight:800;line-height:1.45}.hidden-file{display:none}.indicator-card{padding:12px;border:1px solid var(--border-soft);border-radius:4px;background:#101d31b8}.indicator-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.indicator-card small{color:var(--muted);font-size:10px;white-space:nowrap}.switch-row{display:inline-flex;align-items:center;gap:9px;min-width:0}.switch-row input{width:15px;height:15px;padding:0;accent-color:var(--cyan)}.switch-row span{margin:0;color:var(--text);font-size:12px}.indicator-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.indicator-grid label span{margin-bottom:6px;font-size:10px}.indicator-grid input,.indicator-grid select{height:28px;padding-inline:9px}.risk-grid{margin-bottom:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 14px}.form-grid label:nth-child(1),.form-grid label:nth-child(2),.form-grid label:nth-child(3){grid-column:span 1}.form-grid:first-of-type{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:block}label span,.slider-field span{display:block;margin-bottom:6px;letter-spacing:0}input,select,textarea{width:100%;padding:0 13px;border:1px solid var(--border-soft);border-radius:3px;outline:none;background:var(--panel-soft);color:var(--cyan);font-weight:800}input,select{height:34px}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--cyan) 50%),linear-gradient(135deg,var(--cyan) 50%,transparent 50%);background-position:calc(100% - 16px) 13px,calc(100% - 11px) 13px;background-repeat:no-repeat;background-size:5px 5px}textarea{min-height:82px;padding-block:8px;resize:vertical;line-height:1.55}.config-page .llm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.config-page .llm-grid .full-field{grid-column:1 / -1}.slider-field{margin:13px 0}.slider-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.slider-row b{color:var(--muted);font-size:12px}input[type=range]{height:8px;padding:0;accent-color:var(--cyan)}.api-box{margin-top:11px;padding-top:9px;border-top:1px solid var(--border)}.api-box strong{display:block;margin-bottom:6px;color:var(--cyan);font-size:11px}.api-box label{margin-top:6px}.api-box input,.api-box select{margin-top:6px;border-color:#00d4ff73;background:linear-gradient(90deg,#2f80ed33,#101d31e6);color:#8fb3d9}.action-row,.trade-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:11px}.trade-actions{margin-top:24px}.runtime-panel{display:grid;gap:8px;margin-top:10px;padding:10px 11px;border:1px solid rgba(0,212,255,.32);border-radius:3px;background:linear-gradient(135deg,#00d4ff21,#2f80ed14);box-shadow:inset 3px 0 0 var(--cyan);color:var(--muted);font-size:11px;font-weight:800}.runtime-panel div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.runtime-panel span{min-width:0;color:#8fa7c7}.runtime-panel b{display:block;margin-top:3px;color:var(--cyan);font-size:12px}.runtime-panel strong{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:7px;border-top:1px solid rgba(0,212,255,.24);color:var(--green);font-size:12px}.runtime-panel em{color:#eafff7;font-style:normal;font-size:20px;font-weight:900;letter-spacing:0}.secondary,.primary,.disabled,.strategy button{height:39px;border-radius:3px;font-weight:900}.secondary.blue{background:#2f80ed52;border-color:var(--blue)}.secondary.amber{background:#00d4ff1f;border-color:#00d4ff80;color:var(--cyan)}.primary{background:linear-gradient(135deg,var(--blue),var(--cyan));border-color:var(--cyan);color:#03101d}.disabled,.danger{background:var(--panel-soft);color:#6f84a3}.danger:not(:disabled){border-color:#ff5c7a8c;background:#7020306b;color:#ff9caf}.center-stack{min-width:0;display:grid;grid-template-rows:minmax(390px,57vh) 132px 1fr}.tradeview{position:relative;min-height:0;display:grid;grid-template-rows:34px minmax(260px,1fr) 1px 150px;overflow:hidden;border-bottom:1px solid var(--border);background:var(--panel)}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border-bottom:1px solid var(--border);background:#07111fc2;color:#d9e7ff;font-size:11px;font-weight:800;letter-spacing:0}.chart-toolbar div{display:flex;align-items:center;gap:10px;min-width:0}.chart-toolbar span{color:#8fa7c7;white-space:nowrap}.chart{min-height:0}.chart-loading{position:absolute;inset:34px 0 151px;display:grid;place-items:center;background:#07111fa3;color:#8fa7c7;font-size:12px;font-weight:800;pointer-events:none}.chart-divider{background:var(--border)}.chart-brand{position:absolute;left:12px;bottom:30px;width:34px;height:20px;display:grid;place-items:center;border:2px solid #eef6ff;color:#eef6ff;font-family:Arial,sans-serif;font-size:18px;font-weight:900;line-height:1;transform:skew(-8deg);text-shadow:1px 1px 0 #07111f}.price-badge,.volume-badge{position:absolute;right:20px;height:20px;padding:2px 8px;color:#f7fbff;font-size:12px;font-weight:900}.price-badge.blue{top:128px;background:var(--blue)}.price-badge.green{top:150px;background:var(--green);color:#03101d}.volume-badge{right:8px;top:232px;background:var(--cyan);color:#03101d}.signal{position:absolute;color:var(--cyan);font-size:12px;font-weight:900;text-shadow:0 0 8px rgba(0,212,255,.55)}.s1{left:10%;top:30%}.s2{left:14%;top:38%}.s3{left:54%;top:9%;color:var(--red)}.s4{right:7%;top:27%}.positions,.orders{border-bottom:1px solid var(--border);padding:20px}.positions>div:not(.position-list){display:grid;height:62px;place-items:center;color:var(--muted);font-size:11px}.orders{position:relative}.empty-orders{display:grid;height:62px;place-items:center;color:var(--muted);font-size:11px}.position-list,.order-list{display:grid;gap:8px;margin-top:10px}.position-list article,.order-list article{border:1px solid rgba(91,141,239,.22);border-radius:8px;background:#101d31b3}.position-list article{padding:10px 12px}.position-list header,.position-list p{display:flex;align-items:center;justify-content:space-between;gap:10px}.position-list header{margin-bottom:8px}.position-list strong,.order-list strong{color:var(--text);font-size:13px}.position-list span,.order-list span,.order-list em{color:var(--muted);font-size:11px;font-style:normal}.position-list p{margin:0;flex-wrap:wrap}.order-list article{display:grid;grid-template-columns:1fr 56px 92px 62px;align-items:center;gap:8px;padding:9px 12px}.order-list b{color:var(--green);font-size:12px;text-align:right}.full-button{width:100%;margin-top:12px}.caption{position:absolute;left:0;right:0;top:58px;text-align:center;font-family:Microsoft YaHei UI,Arial,sans-serif;font-size:42px;font-weight:500;color:#fff;letter-spacing:2px}.terminal-panel{min-width:0;display:grid;grid-template-rows:72px 44px 1fr;overflow:hidden}.strategy{position:relative;padding:18px 18px 14px;border-bottom:1px solid var(--border)}.strategy small{color:var(--cyan)}.strategy strong{display:block;margin-top:5px;font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:15px}.strategy button{position:absolute;right:16px;top:18px;width:96px;height:32px;background:#2f80ed33;border-color:#00d4ff6b;color:var(--cyan);font-size:11px}.terminal-head{display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--border)}.terminal-tabs{display:inline-grid;grid-template-columns:repeat(2,minmax(0,82px));border:1px solid var(--border-soft);background:var(--bg-deep)}.terminal-tabs button{height:25px;padding:0;border:0;border-right:1px solid var(--border-soft);background:transparent;color:var(--muted);font-size:11px;font-weight:900}.terminal-tabs button:last-child{border-right:0}.terminal-tabs button.active{background:#00d4ff1f;color:var(--cyan)}.clear-button{padding:0;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.8px}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;background:#030810b8;z-index:20}.strategy-modal{width:min(520px,calc(100vw - 48px));padding:22px;border:1px solid var(--border);background:var(--panel);box-shadow:0 20px 80px #00000073}.strategy-modal header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.strategy-modal h2{margin:0;color:#f0f7ff;font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:18px;letter-spacing:0}.strategy-modal button{height:32px;padding:0 14px;background:#2f80ed33;border-color:#00d4ff6b;color:var(--cyan)}.strategy-modal p{margin:10px 0 0;color:#b9cbe6;font-size:13px;line-height:1.8}.strategy-modal pre{max-height:54vh;margin:14px 0 0;overflow:auto;white-space:pre-wrap;color:#b9cbe6;font-family:Arial,Microsoft YaHei UI,sans-serif;font-size:13px;line-height:1.7}.strategy-editor-actions{display:grid;grid-template-columns:84px 84px minmax(0,1fr);gap:8px;align-items:center;margin-top:12px}.strategy-editor-actions button{min-width:0;padding-inline:6px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.strategy-editor-actions span{min-width:0;color:var(--cyan);font-size:12px;font-weight:800;line-height:1.45}.log-window{overflow-y:auto;padding:12px 14px 20px 18px;color:#c5d5ec;font-size:11px;line-height:1.45;scrollbar-color:#27476f var(--panel)}.log-window p{margin:0 0 10px;white-space:pre-wrap}.log-window span{color:#6f84a3}.log-window b{margin:0 5px}.log-window .success b{color:var(--green)}.log-window .warning b{color:var(--amber)}.log-window .info b{color:var(--cyan)}.report-window{display:grid;gap:10px;overflow-y:auto;padding:12px 14px 18px;scrollbar-color:#27476f var(--panel)}.report-card{min-width:0;border:1px solid var(--border-soft);border-radius:3px;background:#101d319e}.report-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px 0}.report-card header strong{color:var(--text);font-size:11px}.report-card header span{color:var(--cyan);font-size:10px;font-weight:900}.balance-card svg{display:block;width:100%;height:118px;padding:8px 8px 0}.balance-card polyline{fill:none;stroke:var(--cyan);stroke-width:2.4;vector-effect:non-scaling-stroke}.chart-grid-line{fill:none;stroke:#7596be33;stroke-width:1;vector-effect:non-scaling-stroke}.balance-labels{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;padding:0 10px 10px;color:var(--muted);font-size:11px}.balance-labels b{font-size:12px}.balance-labels span:last-child{text-align:right}.report-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.report-card.mini{padding:9px 10px}.report-card.mini span{display:block;color:var(--muted);font-size:10px;font-weight:800}.report-card.mini strong{display:block;margin-top:5px;color:var(--text);font-size:15px}.report-card .green,.balance-labels .green{color:var(--green)}.report-card .red,.balance-labels .red{color:var(--red)}.report-card .blue{color:var(--cyan)}.report-card .split{color:var(--amber)}.rate-bars{display:grid;gap:9px;padding:12px 10px 11px}.rate-bars label{display:grid;grid-template-columns:72px 1fr 42px;gap:8px;align-items:center;color:var(--muted);font-size:10px;font-weight:800}.rate-bars b{height:7px;overflow:hidden;border-radius:999px;background:#7596be2e}.rate-bars i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.rate-bars em{color:var(--cyan);font-style:normal;text-align:right}.pnl-bars{display:flex;align-items:end;gap:5px;height:92px;padding:13px 10px 12px}.pnl-bars i{flex:1;min-width:4px;border-radius:2px 2px 0 0}.pnl-bars .win{background:var(--green)}.pnl-bars .loss{background:var(--red)}@media(max-width:1450px){.terminal-shell{padding-inline:12px}.workspace{grid-template-columns:390px minmax(520px,1fr) 390px}.metrics-bar{grid-template-columns:120px 145px repeat(9,minmax(74px,1fr));gap:12px}.caption{font-size:34px}}
