:root{color-scheme:dark;--bg:#111714;--panel:#171e1a;--border:#303930;--text:#edf0e6;--muted:#9ca69b;--lime:#d4f88b;--left:#d4f88b;--right:#b5b7ff;--avg:#f2b686}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}header{height:84px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 4%;gap:24px}.brand{font-weight:900;font-size:34px;letter-spacing:-3px}.brand span{color:var(--lime);margin-left:4px}.exchange,.eyebrow,.muted,.connection,.badge,.ranges button,th,.chart-footer,footer>span{font-family:monospace;font-size:11px;letter-spacing:1px}.exchange{color:var(--muted)}.header-right{margin-left:auto;display:flex;gap:30px;align-items:center}.header-right>a{font-size:12px;color:#c2cbbd}.connection{color:var(--muted)}.connection.live{color:var(--lime)}.connection:before{content:'●';margin-right:8px;font-size:9px}main{max-width:1500px;margin:auto;padding:0 4%}.intro{padding:55px 0 38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{color:var(--muted);margin:0 0 13px}h1{font-size:clamp(46px,6vw,80px);letter-spacing:-5px;margin:0 0 16px;font-weight:500;line-height:1}.lime{color:var(--lime)}.subtitle{color:var(--muted);font-size:15px;margin:0}.status{display:flex;align-items:center;gap:13px;border-left:1px solid var(--border);padding-left:28px}.pulse{height:9px;width:9px;background:var(--lime);border-radius:50%;box-shadow:0 0 0 6px #d4f88b0d}.status strong{font-size:15px;font-weight:400;display:block}.status small{display:block;color:var(--muted);margin-top:9px}.ticker-row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);margin-bottom:24px;background:var(--panel)}.ticker{padding:24px 26px;position:relative}.ticker+.ticker{border-left:1px solid var(--border)}.ticker-label{display:flex;align-items:center;gap:12px;font-family:monospace;font-size:12px}.ticker-label span{color:var(--muted);font-family:Arial;font-size:12px}.ticker-price{font-size:42px;letter-spacing:-2px;margin:18px 0 9px;font-variant-numeric:tabular-nums}.ticker-price small{font-size:18px;color:var(--muted);letter-spacing:0;margin-left:4px}.ticker-change{font:11px monospace;color:var(--muted)}.mini-line{position:absolute;right:23px;bottom:25px;width:100px;height:40px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.panel{border:1px solid var(--border);background:var(--panel)}.panel-head{padding:24px 25px 0;display:flex;justify-content:space-between;gap:12px;align-items:center}h2{font-size:20px;font-weight:500;letter-spacing:-.5px;margin:0}.panel-head .eyebrow{font-size:10px;margin-bottom:10px}.ranges{display:flex;gap:3px}.ranges button{background:transparent;border:0;color:var(--muted);padding:8px 10px}.ranges button.active{color:var(--lime);background:#d4f88b12}.legend{padding:27px 25px 0;display:flex;gap:22px;font-size:11px;color:var(--muted)}.legend>span:not(.unit):before{content:'';display:inline-block;height:6px;width:6px;border-radius:50%;background:var(--left);margin-right:7px}.legend>.right-dot:before{background:var(--right)!important}.legend>.avg-dot:before{background:var(--avg)!important}.unit{margin-left:auto;font:9px monospace}.chart-wrap{position:relative;padding:12px 12px 0;min-height:280px}#chart{width:100%;display:block;min-height:280px}#chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#171e1a44}#chart-empty[hidden]{display:none}#chart-empty>span{font-size:35px;color:var(--lime);margin-bottom:13px}#chart-empty strong{font-weight:400;font-size:16px}#chart-empty p{color:var(--muted);font-size:12px}.chart-footer{display:flex;justify-content:space-between;padding:18px 25px;border-top:1px solid var(--border);color:var(--muted);font-size:9px}.chart-footer span+span{font-family:Arial;letter-spacing:0}.trading .panel-head{padding:24px 22px 0;align-items:start}.trading .eyebrow{font-size:8px;letter-spacing:.7px}.badge{font-size:8px;white-space:nowrap;color:var(--lime);border:1px solid #d4f88b40;padding:5px}.trade-desc{color:var(--muted);font-size:12px;margin:16px 22px 0}#join-box,#portfolio-box{padding:0 22px}.starting{font-size:48px;letter-spacing:-2px;margin:28px 0}.starting span{font-size:12px;letter-spacing:0;display:block;color:var(--muted);margin-top:7px}.primary{border:0;color:#1b2815;background:var(--lime);padding:14px 18px;font-weight:600;font-size:12px}.primary:hover{background:#e5ffb4}button:disabled{opacity:.45;cursor:wait}.trading .primary{width:100%}.fine{font-size:10px;color:var(--muted);margin:13px 0 20px}details{border-top:1px solid var(--border);padding:18px 22px;color:var(--muted);font-size:11px;line-height:1.7}summary{cursor:pointer;color:#d7dfd1}.balance{padding:22px 0 18px}.balance>span{display:block;color:var(--muted);font-size:11px}.balance strong{display:block;font-size:32px;letter-spacing:-1px;margin:7px 0}.balance small{color:var(--lime);font:11px monospace}.cashline{display:flex;justify-content:space-between;margin:15px 0;font-size:11px;color:var(--muted)}.cashline b{color:var(--text);font-weight:400;font-family:monospace}label{display:block;font-size:11px;color:var(--muted);margin:14px 0 8px}input,select{width:100%;color:var(--text);background:#111714;border:1px solid #3d473b;padding:12px;border-radius:0;min-width:0}input:focus,select:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.order-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}#holdings{color:var(--muted);font:10px monospace;line-height:1.8;margin:17px 0}#trade-message{font-size:12px;padding:0 22px;color:var(--avg);line-height:1.5}.log-panel{margin-top:24px}.log-panel .panel-head{padding-bottom:24px}.muted{color:var(--muted);font-size:10px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-weight:400;font-size:9px;color:var(--muted);padding:14px 25px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}td{padding:17px 25px;border-bottom:1px solid #30393077;font:12px monospace}td:last-child{font:12px Arial;white-space:normal;min-width:180px;color:var(--muted)}td:nth-child(2){color:var(--left)}td:nth-child(3){color:var(--right)}td:nth-child(4){color:var(--avg)}#log-empty{padding:25px;color:var(--muted);font-size:12px}.console-panel{margin-top:24px;padding-bottom:22px}.console-panel form,.console-panel>p{margin:20px 25px}.login-row{display:flex;gap:12px}.login-row input{max-width:400px}.reading-fields{display:grid;grid-template-columns:1fr 1fr 2fr;gap:15px;margin-bottom:20px}.console-panel .muted{font:12px Arial;line-height:1.6}#logout{background:transparent;border:1px solid var(--border);color:var(--text);padding:9px 15px}#console-message{color:var(--avg)}footer{display:flex;align-items:center;gap:25px;padding:35px 0 45px;color:var(--muted)}footer p{font-size:10px;line-height:1.7}footer>span{margin-left:auto;font-size:9px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--lime);color:#111714;padding:14px 24px;box-shadow:0 5px 30px #0004;font-size:12px}svg text{font-family:monospace;font-size:11px;fill:#85917f}@media(min-width:1300px){.chart-wrap{min-height:340px}}@media(max-width:950px){.layout{grid-template-columns:minmax(0,1fr) 290px}.panel-head{padding:20px 18px 0}.unit{display:none}.mini-line{width:60px}.status{max-width:220px}.ticker{padding:20px}.ticker-price{font-size:36px}}@media(max-width:720px){header{height:68px;gap:15px}.exchange{display:none}.header-right{gap:18px}.connection{font-size:9px}.header-right>a{font-size:11px}.intro{padding:35px 0 25px;display:block}h1{font-size:56px;letter-spacing:-3px}.subtitle{font-size:12px}.status{border:0;padding:0;margin-top:25px;max-width:none}.status strong{font-size:13px}.status small{font-size:10px}.ticker-row{margin-bottom:16px}.ticker{padding:16px 12px}.ticker-label{font-size:11px;display:block}.ticker-label span{display:block;font-size:10px;margin-top:5px}.ticker-price{font-size:29px;margin:15px 0 10px}.ticker-price small{font-size:12px}.ticker-change{font-size:9px;line-height:1.5}.mini-line{display:none}.layout{grid-template-columns:1fr;gap:16px}.chart-wrap,#chart{min-height:240px}.legend{padding:23px 18px 0;gap:20px}.chart-footer{padding:15px 18px}.trading .panel-head{align-items:center}.trading .eyebrow{font-size:9px}.starting{margin:20px 0}.log-panel{margin-top:16px}.log-panel .muted{display:none}th,td{padding:14px 18px}.reading-fields{grid-template-columns:1fr 1fr}.note-field{grid-column:1/-1}.login-row{flex-direction:column}footer{align-items:start;gap:18px}footer>span{display:none}footer p{margin:0}.ranges button{padding:8px}h2{font-size:18px}#chart-empty strong{font-size:14px}#chart-empty p{font-size:10px}}

.ticker-left{color:var(--left)}.ticker-right{color:var(--right)}.ticker-average{color:var(--avg)}

#language-toggle{background:transparent;color:var(--lime);border:1px solid var(--border);padding:7px 10px;font-size:11px;white-space:nowrap}html[lang="zh-HK"] body{font-family:Arial,"PingFang HK","Noto Sans TC",sans-serif}html[lang="zh-HK"] h1{letter-spacing:-2px}html[lang="zh-HK"] .eyebrow{letter-spacing:1.5px}html[lang="zh-HK"] .ticker-change{font-size:10px}@media(max-width:720px){.header-right{gap:12px}#language-toggle{padding:6px 8px}}

body.console-page main> :not(#console-panel):not(footer){display:none}body.console-page #console-panel{margin-top:40px}

.chart-tools{padding:22px 25px 0;display:flex;justify-content:space-between;gap:16px;align-items:end}.chart-symbols{display:flex;gap:6px}.chart-symbols button{background:transparent;border:1px solid var(--border);color:var(--muted);padding:10px 13px;font:12px monospace}.chart-symbols button span{display:block;font:10px Arial;margin-top:5px}.chart-symbols button.active{background:#d4f88b12;border-color:#d4f88b80;color:var(--lime)}.interval-control label{margin:0 0 6px;font-size:10px}.interval-control select{padding:9px;font-size:11px}.ohlc-heading{padding:21px 25px 0;display:flex;gap:16px;align-items:center;font:11px monospace;color:var(--muted)}.ohlc-heading strong{color:var(--text);font-weight:400}.ohlc-heading span:last-child{margin-left:auto;font-size:9px}.ohlc{padding:12px 25px 0;display:flex;gap:17px;font:11px monospace}.ohlc b{color:var(--muted);font-weight:400}.ohlc>span:last-child{margin-left:auto;font-size:9px;color:var(--muted)}.candle{outline:none;cursor:crosshair}.candle:focus>rect:first-child,.candle:hover>rect:first-child{fill:#ffffff0a;stroke:#ffffff33;stroke-width:1}.candle-note{font-size:10px;color:var(--muted);line-height:1.7;margin:0;padding:0 25px 17px}.chart-footer{border-bottom:0}@media(max-width:950px){.chart-tools{padding:20px 18px 0;gap:10px}.chart-symbols button{padding:9px}.ohlc{padding:12px 18px 0;gap:12px}.ohlc>span:last-child{display:none}.ohlc-heading{padding:20px 18px 0;gap:10px}.candle-note{padding:0 18px 17px}}@media(max-width:400px){.chart-symbols button{padding:8px}.chart-tools{gap:8px}.ohlc-heading{flex-wrap:wrap}.ohlc-heading span:last-child{margin-left:0}.ohlc{gap:9px;font-size:10px}}
