*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #05070a;--bg-glass: rgba(15, 20, 30, .7);--bg-header: rgba(30, 35, 45, .8);--border-glass: rgba(255, 255, 255, .08);--text-primary: #e0e6ed;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-up: #FF4B4B;--accent-down: #26A69A;--accent-highlight: #F2C94C;--glass-blur: blur(12px);--panel-shadow: 0 8px 32px 0 rgba(0, 0, 0, .8)}body{font-family:Inter,Microsoft JhengHei,sans-serif;background:radial-gradient(circle at top right,#1e293b,#05070a);color:var(--text-primary);overflow:hidden;font-size:13px;min-height:100vh}#root{width:100vw;height:100vh}.app-container{display:flex;width:100%;height:calc(100vh - 32px);margin-top:32px;padding:8px;gap:8px;background:var(--bg-primary)}.top-toolbar{position:fixed;top:0;left:0;right:0;height:32px;background:var(--bg-header);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-glass);display:flex;justify-content:space-between;align-items:center;padding:0 16px;z-index:2000}.app-logo{font-size:16px;font-weight:800;background:linear-gradient(135deg,#f2c94c,#f2994a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:1px}.stock-search-form{display:flex;align-items:center;gap:8px}.stock-display-box{color:#60a5fa;font-size:12px;font-weight:500;white-space:nowrap;padding:0 8px;height:24px;display:flex;align-items:center;letter-spacing:.5px}.nav-stock-btn{background:#ffffff14;border:1px solid var(--border-glass);color:#fff;width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.nav-stock-btn:hover{background:#3b82f64d;border-color:#3b82f6}.toolbar-center{display:flex;align-items:center;gap:6px}.stock-search-input-fancy{background:#ffffff0d;border:1px solid var(--border-glass);border-radius:16px;padding:2px 16px;color:#fff;width:200px;height:24px;font-size:13px;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.stock-search-input-fancy:focus{outline:none;width:300px;background:#ffffff1a;border-color:#3b82f6;box-shadow:0 0 20px #3b82f64d}.sync-button-fancy{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:2px 12px;height:24px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .3s}.sync-button-fancy:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #3b82f680;filter:brightness(1.1)}.glass-panel{background:var(--bg-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-glass);border-radius:8px;box-shadow:var(--panel-shadow);overflow:hidden}.sync-button-container{position:fixed;top:12px;right:360px;z-index:1000;display:flex;gap:12px;align-items:center;background:var(--bg-header);padding:5px 10px;border-radius:16px;border:1px solid var(--border-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sync-button{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:5px 12px;border-radius:12px;cursor:pointer;font-size:11px;font-weight:600;transition:all .3s}.sync-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.sync-button:disabled{background:#334155;opacity:.6;cursor:not-allowed}.current-stock{color:var(--accent-highlight);font-size:11px;font-weight:700}.flex-col-wrap{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.flex-col-wrap>.chart-column,.flex-col-wrap>.right-panel{flex:1 1 auto;width:100%;min-height:0}.col-splitter{flex:0 0 2px;background:#ffffff0f;cursor:col-resize;transition:background .15s;align-self:stretch}.col-splitter:hover,.col-splitter:active{background:#ffffff40}.row-splitter{flex:0 0 2px;background:#ffffff0f;cursor:row-resize;transition:background .15s;width:100%}.row-splitter:hover,.row-splitter:active{background:#ffffff40}.chart-column{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1 1 auto}.main-chart-section{flex:0 0 55%;border-bottom:1px solid var(--border-glass);position:relative}.sub-charts-container{flex:1;display:flex;flex-direction:column;gap:0;overflow-y:auto;max-height:45%}.sub-charts-container::-webkit-scrollbar{width:10px}.sub-charts-container::-webkit-scrollbar-track{background:#ffffff08;border-radius:5px}.sub-charts-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:5px;border:2px solid transparent;background-clip:padding-box}.sub-charts-container::-webkit-scrollbar-thumb:hover{background:#ffffff59;border:2px solid transparent;background-clip:padding-box}.sub-chart-item{flex:1;border-bottom:1px solid var(--border-glass);position:relative;background:#ffffff03;min-height:50px;overflow:hidden}.resize-handle{flex:0 0 5px;cursor:row-resize;background:transparent;position:relative;z-index:20;transition:background .15s}.resize-handle:hover,.resize-handle:active{background:#56ccf266}.resize-handle:after{content:"";position:absolute;left:30%;right:30%;top:50%;transform:translateY(-50%);height:2px;border-top:1px dotted rgba(255,255,255,.25)}.chart-header{position:absolute;top:6px;left:10px;z-index:10;display:flex;flex-direction:column;gap:2px;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.05)}.stock-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.stock-info{color:var(--accent-highlight);font-weight:700;font-size:13px}.chart-timeframe{color:var(--text-secondary);font-weight:500;font-size:12px}.stock-title .symbol{color:var(--accent-highlight);font-weight:700;font-size:13px}.stock-title .name{color:var(--text-primary);font-weight:500;font-size:12px}.price-info{display:flex;align-items:center;gap:8px}.price-info .price{font-size:16px;font-weight:700;font-family:JetBrains Mono,monospace}.price-info .change{font-size:11px;font-weight:600}.change.up,.up{color:var(--accent-up)}.change.down,.down{color:var(--accent-down)}.sub-header{position:absolute;top:4px;left:8px;z-index:5;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.chart-wrapper{width:100%;height:100%}.right-panel{width:100%;display:flex;flex-direction:column;gap:0;min-height:0;overflow:hidden}.right-section{display:flex;flex-direction:column}.market-section{flex:0 0 auto}.detail-section{flex:1;min-height:0;overflow:hidden}.watchlist-section{flex:0 0 220px;overflow:hidden}.market-index-section{padding:8px}.market-index-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.index-name{color:var(--text-muted);font-size:11px}.index-price{font-size:14px;font-weight:700;font-family:JetBrains Mono,monospace}.index-change{font-size:11px;font-weight:600}.market-index-chart{height:120px;position:relative}.stock-detail-panel{display:flex;flex-direction:column;height:100%}.stock-intraday-section{flex:0 0 auto;padding:8px;border-bottom:1px solid var(--border-glass)}.stock-intraday-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.stock-symbol{color:var(--accent-highlight);font-weight:700;font-size:12px}.stock-name{color:var(--text-secondary);font-size:11px}.stock-intraday-chart{height:140px}.stock-detail-row{flex:1;display:flex;gap:1px;min-height:0;overflow:hidden}.order-book{flex:1;display:flex;flex-direction:column;background:#0003;overflow:hidden}.order-book-title{padding:4px 8px;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-glass)}.order-book-content{flex:1;overflow-y:auto;font-size:11px}.order-row{display:grid;grid-template-columns:24px 1fr 50px;padding:3px 6px;position:relative}.volume-bar{position:absolute;top:0;right:0;height:100%;opacity:.15}.ask-bar{background:var(--accent-down)}.bid-bar{background:var(--accent-up)}.order-label{color:var(--text-muted);font-size:10px}.order-price{text-align:right;font-family:JetBrains Mono,monospace}.order-price.sell{color:var(--accent-down)}.order-price.buy{color:var(--accent-up)}.order-volume{text-align:right;color:var(--text-secondary)}.order-divider{padding:4px 6px;text-align:center;background:#ffffff08;border-top:1px solid var(--border-glass);border-bottom:1px solid var(--border-glass)}.current-price{font-size:12px;font-weight:700;color:var(--accent-highlight);font-family:JetBrains Mono,monospace}.trade-list{flex:1;display:flex;flex-direction:column;background:#0003;overflow:hidden}.trade-list-title{padding:4px 8px;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-glass)}.trade-list-header{display:grid;grid-template-columns:1fr 1fr 50px;padding:3px 6px;font-size:10px;color:var(--text-muted);border-bottom:1px solid var(--border-glass)}.trade-list-content{flex:1;overflow-y:auto}.trade-row{display:grid;grid-template-columns:1fr 1fr 50px;padding:2px 6px;font-size:11px}.trade-time{color:var(--text-muted)}.trade-price{text-align:right;font-family:JetBrains Mono,monospace}.trade-price.buy{color:var(--accent-up)}.trade-price.sell{color:var(--accent-down)}.trade-volume{text-align:right;color:var(--text-secondary)}.watchlist-title{padding:6px 10px;font-size:11px;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-glass);background:#ffffff05}.watchlist-header{display:grid;grid-template-columns:50px 1fr 55px 60px 60px;gap:8px;padding:6px 8px;font-size:10px;color:var(--text-muted);border-bottom:1px solid var(--border-glass);align-items:center}.sort-btn{background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;text-align:right;padding:2px 4px;font-weight:500;transition:all .2s}.sort-btn:hover{color:#60a5fa}.watchlist-content{flex:1;overflow-y:auto}.watchlist-row{display:grid;grid-template-columns:50px 1fr 55px 60px 60px;gap:8px;padding:6px 8px;align-items:center;cursor:pointer;transition:all .15s;border-bottom:1px solid rgba(255,255,255,.02);font-size:11px}.watchlist-row:hover{background:#ffffff0d}.watchlist-row.active{background:#3b82f626;border-left:2px solid #3b82f6}.watchlist-row.limit-up{background:#ff32321f;box-shadow:inset 0 0 12px #ff323226,0 0 6px #ff32321a;border-left:2px solid #FF4B4B;animation:limit-up-pulse 2s ease-in-out infinite}.watchlist-row.limit-up .wl-symbol,.watchlist-row.limit-up .wl-name{color:#ff4b4b;font-weight:700}.watchlist-row.limit-down{background:#26a69a1f;box-shadow:inset 0 0 12px #26a69a26,0 0 6px #26a69a1a;border-left:2px solid #26A69A;animation:limit-down-pulse 2s ease-in-out infinite}.watchlist-row.limit-down .wl-symbol,.watchlist-row.limit-down .wl-name{color:#26a69a;font-weight:700}@keyframes limit-up-pulse{0%,to{box-shadow:inset 0 0 12px #ff323226,0 0 6px #ff32321a}50%{box-shadow:inset 0 0 18px #ff323240,0 0 10px #ff323233}}@keyframes limit-down-pulse{0%,to{box-shadow:inset 0 0 12px #26a69a26,0 0 6px #26a69a1a}50%{box-shadow:inset 0 0 18px #26a69a40,0 0 10px #26a69a33}}.wl-symbol{color:var(--accent-highlight);font-weight:600}.wl-name{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wl-price{text-align:right;font-family:JetBrains Mono,monospace;font-weight:500}.wl-buy,.wl-sell{text-align:right;color:var(--text-muted);font-size:10px}.wl-change,.wl-pct{text-align:right;font-family:JetBrains Mono,monospace;font-weight:500}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#fff3}[class*=attribution],[class*=watermark],a[href*="tradingview.com"]{display:none!important;visibility:hidden!important;opacity:0!important}.chart-wrapper [class*=price-axis-last-value],.chart-wrapper [class*=pane-legend],.chart-wrapper [class*=floating]{display:none!important}.indicator-legend{display:flex;align-items:center;gap:8px;font-size:11px;font-family:JetBrains Mono,monospace}.indicator-name{color:var(--text-secondary);font-weight:600}.indicator-value{font-weight:500}.settings-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;padding:2px 4px;opacity:.6;transition:opacity .2s}.settings-btn:hover{opacity:1;color:var(--accent-highlight)}.sub-header-legend{position:absolute;top:2px;left:8px;z-index:10;background:#0006;padding:2px 6px;border-radius:3px}.ma-legend{display:flex;flex-wrap:wrap;gap:6px;font-size:9px;font-family:JetBrains Mono,monospace;max-width:400px}.ma-legend span{opacity:.8}.settings-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.settings-modal{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:12px;padding:20px;min-width:280px;box-shadow:0 10px 40px #00000080}.settings-modal h3{margin:0 0 16px;color:var(--text-primary);font-size:14px}.settings-form{display:flex;flex-direction:column;gap:12px}.settings-form label{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-size:12px}.settings-form input{width:60px;padding:6px 8px;background:var(--bg-primary);border:1px solid var(--border-glass);border-radius:6px;color:var(--text-primary);font-family:JetBrains Mono,monospace;text-align:center}.settings-buttons{display:flex;gap:8px;margin-top:16px}.settings-modal button{flex:1;padding:8px;background:var(--bg-tertiary);border:1px solid var(--border-glass);border-radius:6px;color:var(--text-primary);cursor:pointer;font-weight:600;transition:background .2s}.settings-modal button:hover{background:var(--bg-secondary)}.settings-modal button.apply-btn{background:var(--accent-primary);border:none;color:#fff}.settings-modal button.apply-btn:hover{background:var(--accent-secondary)}.stock-search-input{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:6px;padding:6px 12px;color:var(--text-primary);font-size:13px;width:120px;transition:border-color .2s,box-shadow .2s}.stock-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #00d4ff33}.stock-search-input::placeholder{color:var(--text-secondary);opacity:.6}.strategy-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;margin-right:8px;flex:1}.strategy-tabs::-webkit-scrollbar{height:2px}.tab-btn{background:#ffffff0d;border:1px solid var(--border-glass);color:var(--text-secondary);padding:2px 8px;border-radius:4px;font-size:10px;cursor:pointer;white-space:nowrap;transition:all .2s}.tab-btn:hover{background:#ffffff1a;color:var(--text-primary)}.tab-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 0 10px #3b82f666}.watchlist-title{display:flex;align-items:center;justify-content:space-between;padding:6px 8px}.history-date-select{background:#1e293b;border:1px solid var(--border-glass);color:var(--accent-highlight);font-size:10px;padding:1px 4px;border-radius:4px;outline:none;cursor:pointer}.no-data{padding:20px;text-align:center;color:var(--text-muted);font-style:italic;font-size:11px}.news-section{padding:12px;overflow-y:auto;height:100%}.news-list{display:flex;flex-direction:column;gap:12px}.news-card{background:#0f141e99;border:1px solid var(--border-glass);border-radius:8px;padding:12px;transition:all .3s;display:flex;flex-direction:column;gap:8px}.news-card:hover{background:#0f141ecc;border-color:#ffffff26;box-shadow:0 4px 12px #0006}.news-title-row{display:flex;align-items:flex-start}.news-title{color:#3b82f6;text-decoration:none;font-weight:500;font-size:13px;line-height:1.4;transition:color .2s;flex:1}.news-title:hover{color:#60a5fa;text-decoration:underline}.news-meta-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px}.news-source{background:#3b82f633;padding:3px 8px;border-radius:4px;color:#60a5fa;white-space:nowrap}.news-date{color:var(--text-muted);white-space:nowrap}.news-sentiment-badge{padding:2px 6px;border-radius:4px;font-weight:600;font-size:12px}.news-sentiment-badge.positive{background:#ef444433;color:#ef4444}.news-sentiment-badge.negative{background:#22c55e33;color:#22c55e}.news-sentiment-badge.neutral{background:#94a3b833;color:#94a3b8}.news-summary{font-size:12px;line-height:1.5;color:var(--text-secondary);max-height:72px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.news-stocks{display:flex;gap:6px;flex-wrap:wrap}.stock-tag-btn{background:#3b82f626;border:1px solid rgba(59,130,246,.4);color:#60a5fa;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s}.stock-tag-btn:hover{background:#3b82f64d;border-color:#60a5fa;box-shadow:0 0 8px #3b82f64d;transform:translateY(-1px)}.stock-tag-btn:active{transform:translateY(0)}
