@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600&family=Roboto+Mono:wght@400;500;600&display=swap";:root{--bg-color:#0f1623;--bg-body:#0f1623;--bg-surface:#141d2e;--bg-raised:#1a2540;--panel-bg:#141d2e;--color-background:#0f1623;--border-color:#1e2d45;--border-subtle:#182035;--text-primary:#c9d4e8;--text-secondary:#6aacff;--text-muted:#4a5878;--color-up:#ff4d4d;--color-down:#00c896;--up:#ff4d4d;--dn:#00c896;--acc:#4a90e2;--acc-lt:#6aacff;--acc-bg:#4a90e224;--color-highlight:#4a90e212;--color-selected:#4a90e224;--font-ui:"Noto Sans TC", system-ui, sans-serif;--font-num:"Roboto Mono", monospace;--shadow-panel:0 4px 20px #00000080;--shadow-cta:0 2px 8px #4a90e24d;--cyan:#4a90e2;--cyan2:#6aacff;--glow:0 2px 8px #4a90e24d}body.theme-nimbus{--bg-color:#94a3b8;--bg-body:#94a3b8;--bg-surface:#ffffff8c;--panel-bg:#ffffffad;--border-color:#ffffffbf;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--color-background:#94a3b8;--color-up:#dc2626;--color-down:#16a34a;--color-highlight:#3b82f614;--color-selected:#3b82f626;--cyan:#2563eb;--cyan2:#3b82f6;--glow:0 0 12px #3b82f640;background-color:var(--bg-color);color:var(--text-primary);background-image:radial-gradient(at 0 0,#bfdbfe 0,#0000 55%),radial-gradient(at 100% 0,#e0e7ff 0,#0000 55%),linear-gradient(135deg,#94a3b8 0%,#cbd5e1 100%);background-size:auto}body.theme-nimbus .panel,body.theme-nimbus .panel:before{-webkit-backdrop-filter:blur(20px)}body.theme-nimbus .panel:before{background:linear-gradient(90deg,#0000,#fff9,#0000)}body.theme-nimbus .header{border-bottom-color:#ffffff80;box-shadow:0 1px #ffffff4d}body.theme-nimbus th{color:#3b82f6}body.theme-nimbus .styled-select{color:var(--text-primary)}body.theme-nimbus tr:hover td{background:#3b82f60f}body.theme-nimbus tr.selected td{background:#3b82f61f}body.theme-nimbus .app-tab-btn{color:#64748b}body.theme-nimbus .app-tab-btn.active{color:#2563eb;border-bottom-color:#2563eb}@font-face{font-family:NumericFont;src:local(Arial),local(Helvetica Neue),local("sans-serif");unicode-range:U+30-39,U+2E,U+2C,U+25,U+2B,U+2D}body{font-family:var(--font-ui);background-color:var(--bg-color);color:var(--text-primary);box-sizing:border-box;justify-content:center;height:100vh;margin:0;padding:0 20px;display:flex;overflow:hidden}#root{flex-direction:column;gap:0;width:100%;max-width:1800px;height:100%;display:flex}.header{border-bottom:1px solid var(--border-color);background-color:#0000;flex-shrink:0;justify-content:space-between;align-items:center;margin-top:0;padding:32px 0 16px;display:flex}.header h1{color:var(--acc);letter-spacing:2px;margin:0;font-size:24px;font-weight:600}.last-update{color:var(--text-secondary);font-size:13px}.content-grid{flex:1;grid-template-columns:70% calc(30% - 24px);align-items:stretch;gap:24px;padding-bottom:24px;display:grid;overflow:hidden}.chart-section{flex-direction:column;gap:12px;width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.table-section{scrollbar-width:thin;zoom:1.5;width:100%;height:100%;overflow-y:auto}.strategy-selector{color:var(--text-secondary);align-items:center;gap:12px;font-size:14px;display:flex}.styled-select{background:var(--panel-bg);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:6px;outline:none;padding:8px 12px;font-size:14px}.styled-select:focus{border-color:var(--acc);box-shadow:var(--shadow-cta)}.loading-indicator{color:var(--text-muted);font-size:12px}.panel{background:var(--panel-bg);border:1px solid var(--border-color);box-shadow:var(--shadow-panel);border-radius:12px;position:relative;overflow:hidden}.panel:before{content:"";background:linear-gradient(90deg, transparent, var(--border-color), transparent);opacity:.8;height:1px;position:absolute;top:0;left:10%;right:10%}.chart-wrapper{padding:24px}.chart-title{color:#cfdee3;text-shadow:none;align-items:center;gap:8px;margin:0 0 16px;font-size:25px;font-weight:500;display:flex}.chart-title-tag{color:#cfdee3;font-size:25px}table{border-collapse:collapse;width:100%}th{text-align:right;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:16px 10px;font-size:11px;font-weight:600}th.left{text-align:left}td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;white-space:nowrap;padding:16px 10px;transition:background-color .2s}tr{cursor:pointer}tr:hover td{background:var(--color-highlight)}tr.selected td{background:var(--color-selected)}.stock-cell{align-items:center;gap:12px;display:flex}.stock-code{color:var(--text-muted);font-size:13px;font-weight:400}tr:nth-child(2n) .stock-code{color:var(--text-secondary)}.stock-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;width:4em;font-size:14px;font-weight:400;overflow:hidden}.price{text-align:right;color:var(--text-primary);font-size:14px;font-weight:400}.change-cell{flex-direction:column;justify-content:center;align-items:flex-end;display:flex}.change-pct{font-size:13px;font-weight:400}.change-val{opacity:.8;margin-top:4px;font-size:11px}.up{color:var(--color-up)}.down{color:var(--color-down)}.amplitude{text-align:right;color:var(--text-secondary);font-size:15px;font-weight:400}.amount-cell{flex-direction:column;align-items:flex-end;display:flex}.amount-val{color:var(--text-secondary);font-size:15px;font-weight:400}.amount-unit{color:var(--text-muted);margin-top:4px;font-size:12px}.impact-cell{flex-direction:column;align-items:flex-end;display:flex}.impact-val{font-size:14px;font-weight:400}.impact-pts{opacity:.8;margin-top:4px;font-size:12px}.weight{text-align:right;color:var(--text-secondary);font-size:14px;font-weight:400}.loading,.error,.empty{text-align:center;color:var(--text-secondary);padding:60px;font-size:15px}.error{color:var(--color-up)}.app-tabs{align-items:center;gap:2px;display:flex}.app-tab-btn{height:32px;color:var(--text-muted);font-size:13px;font-family:var(--font-ui);cursor:pointer;letter-spacing:.3px;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 14px;transition:color .15s,border-color .15s}.app-tab-btn:hover{color:var(--text-primary)}.app-tab-btn.active{color:var(--text-primary);border-bottom-color:var(--acc);font-weight:500}.disposal-scroll{scrollbar-width:thin;scrollbar-color:#334155 #0f172a;scrollbar-gutter:stable}.disposal-scroll::-webkit-scrollbar{width:8px;height:8px}.disposal-scroll::-webkit-scrollbar-track{background:#0f172a;border-radius:999px}.disposal-scroll::-webkit-scrollbar-thumb{background:#334155;border:2px solid #0f172a;border-radius:999px}.disposal-scroll::-webkit-scrollbar-thumb:hover{background:#475569}.screener-container{background:var(--bg-surface,#0f1220);height:100%;color:var(--text-primary,#d0d4e8);font-family:var(--font-ui,"Noto Sans TC", sans-serif);flex-direction:column;font-size:13px;display:flex;overflow:hidden}.screener-header{border-bottom:1px solid var(--border-color,#1c2236);background:var(--bg-body,#07080f);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:7px 12px;display:flex}.screener-header h2{color:var(--text-primary,#d0d4e8);margin:0;font-size:14px;font-weight:600}.run-btn{background:var(--acc,#3e7cff);color:#fff;height:26px;font-size:12px;font-family:var(--font-ui,"Noto Sans TC", sans-serif);cursor:pointer;border:none;border-radius:3px;padding:0 12px;transition:opacity .12s}.run-btn:hover{opacity:.85}.run-btn:disabled{opacity:.4;cursor:default}.cond-list{flex-direction:column;gap:4px;display:flex}.cond-row{flex-wrap:wrap;align-items:center;gap:6px;padding:3px 0;display:flex}.cond-op{background:var(--bg-body,#07080f);border:1px solid var(--border-color,#1c2236);height:26px;color:var(--text-primary,#d0d4e8);font-size:12px;font-family:var(--font-num,"JetBrains Mono", monospace);cursor:pointer;border-radius:3px;outline:none;padding:0 6px}.cond-op:focus{border-color:var(--acc,#3e7cff)}.cond-pct{width:80px}.fp-wrap{position:relative}.fp-btn{background:var(--bg-body,#07080f);border:1px solid var(--border-color,#1c2236);height:26px;color:var(--text-primary,#d0d4e8);font-size:12px;font-family:var(--font-ui,"Noto Sans TC", sans-serif);cursor:pointer;white-space:nowrap;border-radius:3px;align-items:center;gap:4px;padding:0 8px;transition:border-color .12s;display:inline-flex}.fp-btn:hover,.fp-btn.open{border-color:var(--acc,#3e7cff);color:var(--acc-lt,#6aacff)}.fp-btn-label{text-overflow:ellipsis;max-width:90px;overflow:hidden}.fp-btn-arrow{opacity:.6;font-size:9px}.fp-dropdown{z-index:200;background:var(--bg-raised,#141828);border:1px solid var(--border-color,#1c2236);border-radius:3px;min-width:480px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000080}.fp-grid{grid-template-columns:repeat(3,1fr);gap:0;display:grid}.fp-col{border-right:1px solid var(--border-color,#1c2236);padding:8px}.fp-col:last-child{border-right:none}.fp-group-hdr{letter-spacing:.05em;border-bottom:1px solid;margin-bottom:4px;padding:4px 0 6px;font-size:10px;font-weight:600}.fp-item{cursor:pointer;color:var(--text-muted,#5a607c);border-radius:2px;padding:3px 6px;font-size:12px;transition:background .1s,color .1s}.fp-item:hover{color:var(--text-primary,#d0d4e8);background:#3e7cff14}.fp-item.active{background:var(--acc-bg,#3e7cff1c);color:var(--acc-lt,#6aacff);font-weight:500}.fp-slot-row{align-items:center;gap:4px;margin-bottom:2px;display:flex}.fp-slot-time{width:38px;font-size:11px;font-family:var(--font-num,"JetBrains Mono", monospace);color:var(--text-muted,#5a607c);flex-shrink:0}.fp-slot-btn{border:1px solid var(--border-color,#1c2236);height:20px;color:var(--text-muted,#5a607c);cursor:pointer;font-size:10px;font-family:var(--font-ui,"Noto Sans TC", sans-serif);background:0 0;border-radius:2px;flex:1;transition:all .1s}.fp-slot-btn:hover{border-color:var(--acc,#3e7cff);color:var(--acc-lt,#6aacff)}.fp-slot-btn.active{background:var(--acc-bg,#3e7cff1c);border-color:var(--acc,#3e7cff);color:var(--acc-lt,#6aacff)}.preset-grid{border-bottom:1px solid var(--border-color,#1c2236);background:var(--bg-raised,#141828);flex-wrap:wrap;gap:6px;padding:8px 12px;display:flex}.p-card{background:var(--bg-surface,#0f1220);border:1px solid var(--border-color,#1c2236);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:3px;min-width:140px;max-width:220px;padding:8px 10px;transition:border-color .12s,background .12s}.p-card:hover{border-color:var(--border-strong,#252d48)}.p-card.active{border-color:var(--acc,#3e7cff);background:#3e7cff0f}.p-card.drag-over{border-color:var(--acc,#3e7cff);opacity:.7;border-style:dashed}.p-card-header{color:var(--text-primary,#d0d4e8);justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px;font-size:12px;font-weight:500;display:flex}.p-tag{border-radius:2px;flex-shrink:0;align-items:center;height:14px;padding:0 4px;font-size:9px;font-weight:600;display:inline-flex}.p-desc{color:var(--text-muted,#5a607c);font-size:11px;line-height:1.5;font-family:var(--font-num,"JetBrains Mono", monospace)}.p-card-actions{border-top:1px solid var(--border-color,#1c2236);gap:4px;margin-top:6px;padding-top:6px;display:flex}.p-card-actions button{border:1px solid var(--border-color,#1c2236);height:20px;color:var(--text-muted,#5a607c);cursor:pointer;font-size:10px;font-family:var(--font-ui,"Noto Sans TC", sans-serif);background:0 0;border-radius:2px;padding:0 8px;transition:all .1s}.p-card-actions button:hover{border-color:var(--acc,#3e7cff);color:var(--acc-lt,#6aacff);background:var(--acc-bg,#3e7cff14)}.add-preset-btn{border:1px dashed var(--border-color,#1c2236);min-width:100px;height:56px;color:var(--text-muted,#5a607c);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;transition:all .12s;display:flex}.add-preset-btn:hover{border-color:var(--acc,#3e7cff);color:var(--acc-lt,#6aacff);background:var(--acc-bg,#3e7cff0d)}.dist-chart{background:var(--bg-body,#07080f);border:1px solid var(--border-color,#1c2236);border-radius:3px}.dist-header{color:var(--text-primary,#d0d4e8);cursor:pointer;border-bottom:1px solid var(--border-color,#1c2236);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:7px 10px;font-size:12px;font-weight:500;display:flex}.dist-header:hover{background:#ffffff05}.dist-body{padding:6px 4px}.dist-separator{background:var(--border-color,#1c2236);height:1px;margin:4px 8px}.dist-row{cursor:pointer;border-left:2px solid #0000;border-radius:2px;align-items:center;gap:6px;padding:2px 8px;transition:background .1s;display:flex}.dist-row:hover{background:#ffffff08}.dist-row.active{border-left-color:var(--acc,#3e7cff);background:#3e7cff14}.dist-label{width:48px;color:var(--text-muted,#5a607c);text-align:right;font-size:10px;font-family:var(--font-num,"JetBrains Mono", monospace);flex-shrink:0}.dist-bar-track{background:var(--bg-raised,#141828);border-radius:2px;flex:1;height:6px;overflow:hidden}.dist-bar-fill{border-radius:2px;height:100%;transition:width .3s}.dist-count{width:22px;font-size:10px;font-family:var(--font-num,"JetBrains Mono", monospace);text-align:right;flex-shrink:0;font-weight:600}.dist-footer{border-top:1px solid var(--border-color,#1c2236);font-size:11px;font-family:var(--font-num,"JetBrains Mono", monospace);justify-content:space-between;margin-top:4px;padding:4px 8px 2px;font-weight:600;display:flex}.screener-table-container{flex:1;min-height:0;overflow-y:auto}.screener-table{border-collapse:collapse;width:100%}.screener-table thead th{background:var(--bg-raised,#141828);height:28px;color:var(--text-muted,#5a607c);letter-spacing:.04em;border-bottom:1px solid var(--border-color,#1c2236);z-index:1;white-space:nowrap;font-size:11px;font-weight:500;font-family:var(--font-ui,"Noto Sans TC", sans-serif);padding:0 8px;position:sticky;top:0}.screener-table tbody td{border-bottom:1px solid var(--border-subtle,#13162a);height:28px;font-family:var(--font-num,"JetBrains Mono", monospace);white-space:nowrap;padding:0 8px;font-size:12px}.screener-table tbody tr{cursor:pointer}.screener-table tbody tr:hover td{background:#ffffff06}.pos-text{color:var(--up,#e8343f)}.neg-text{color:var(--dn,#12a870)}.screener-table-container::-webkit-scrollbar{width:4px}.screener-table-container::-webkit-scrollbar-track{background:var(--bg-body,#07080f)}.screener-table-container::-webkit-scrollbar-thumb{background:var(--border-color,#1c2236);border-radius:2px}.screener-table-container::-webkit-scrollbar-thumb:hover{background:var(--border-strong,#252d48)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
