:root{--bg:#070b12;--sidebar:#090e17;--panel:#101722;--panel-2:#131c29;--border:#223044;--muted:#8491a4;--text:#f4f7fa;--up:#ff5c6c;--down:#35c68a;--cyan:#5fd8ff;--purple:#8d78ff;--amber:#ffbe5c;--shadow:0 22px 50px rgba(0,0,0,.22)}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"Noto Sans TC",sans-serif;font-size:16px}.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px 20px;background:var(--sidebar);border-right:1px solid #172231;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 27px;color:var(--text);font-size:1.16rem;font-weight:700;text-decoration:none;letter-spacing:.02em}.brand>span:last-child>span{color:var(--cyan)}.brand-mark{width:31px;height:31px;border:1px solid #2d5666;border-radius:8px;padding:6px;display:flex;gap:3px;align-items:flex-end;background:linear-gradient(145deg,#112534,#0b141e)}.brand-mark i{display:block;width:4px;background:var(--cyan);border-radius:2px}.brand-mark i:nth-child(1){height:8px;opacity:.55}.brand-mark i:nth-child(2){height:17px}.brand-mark i:nth-child(3){height:12px;opacity:.8}.nav-list{display:flex;flex-direction:column;gap:5px}.nav-item{border:0;background:transparent;color:#91a0b4;border-radius:9px;padding:11px 12px;display:flex;gap:12px;align-items:center;font:500 .88rem inherit;cursor:pointer;text-align:left;transition:.18s}.nav-item:hover{background:#111b28;color:#dce6f1}.nav-item.active{color:var(--cyan);background:linear-gradient(90deg,rgba(95,216,255,.13),rgba(95,216,255,.04));box-shadow:inset 2px 0 var(--cyan)}.nav-item b{margin-left:auto;min-width:21px;padding:2px 5px;background:rgba(95,216,255,.13);border:1px solid rgba(95,216,255,.28);border-radius:20px;color:var(--cyan);font:500 .68rem "DM Mono",monospace;text-align:center}.nav-glyph{font-size:1.05rem;width:18px;text-align:center}.sidebar-foot{margin-top:auto;border-top:1px solid #192433;padding:20px 7px 0}.data-source{display:flex;align-items:center;gap:10px}.data-source>span,.market-clock>span{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px rgba(255,190,92,.12)}.data-source div{display:flex;flex-direction:column}.data-source strong{font-size:.78rem}.data-source small,.sidebar-foot p{color:var(--muted);font-size:.7rem}.sidebar-foot p{margin:17px 0 0}.topbar{height:68px;border-bottom:1px solid #172231;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(7,11,18,.88);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.market-clock{display:flex;gap:10px;align-items:center;font-size:.78rem}.market-clock strong{color:#dbe5ed}.market-clock time{color:var(--muted);font-family:"DM Mono",monospace;padding-left:10px;border-left:1px solid var(--border)}.top-actions{display:flex;align-items:center;gap:10px}.search{height:36px;width:225px;border:1px solid var(--border);background:#0d141e;border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 11px;color:var(--muted)}.search input{border:0;outline:0;background:transparent;color:var(--text);width:100%;font:400 .79rem inherit}.icon-btn,.avatar,.menu-btn{border:1px solid var(--border);background:#0d141e;color:var(--muted);cursor:pointer}.icon-btn{width:36px;height:36px;border-radius:8px;font-size:.43rem;color:var(--up)}.avatar{width:36px;height:36px;border-radius:50%;color:#ddecf4;font:600 .7rem "DM Mono",monospace;background:#183344}.menu-btn{display:none;width:36px;height:36px;border-radius:8px}.workspace{padding:28px 30px 42px;max-width:1540px;margin:0 auto}.page-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.page-heading p,.eyebrow{margin:0 0 6px;color:var(--cyan);font:500 .65rem "DM Mono",monospace;letter-spacing:.16em}.page-heading h1{margin:0;font-size:1.65rem;line-height:1.35}.page-heading>div>span{display:inline-block;margin-top:5px;color:var(--muted);font-size:.76rem}.heading-actions{display:flex;align-items:center;gap:10px}.heading-actions .demo-pill{margin:0;border:1px solid #3d3423;color:#d7af70;background:#18150f;border-radius:6px;padding:7px 9px;font-size:.7rem}.primary-btn{height:39px;border:1px solid #399db8;background:linear-gradient(135deg,#66e2ff,#36add1);color:#051119;border-radius:8px;padding:0 16px;font:700 .78rem inherit;cursor:pointer;box-shadow:0 8px 22px rgba(57,190,226,.16)}.index-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:var(--panel);border-radius:11px;margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow)}.index-strip article{padding:16px 19px;border-right:1px solid var(--border)}.index-strip article:last-child{border:0}.index-strip div{display:flex;justify-content:space-between;align-items:center}.index-strip span{font-size:.76rem;color:#b4c0cf}.index-strip div strong{font:500 .63rem "DM Mono",monospace;color:#627084;letter-spacing:.08em}.index-strip p{margin:9px 0 1px;font:500 1.22rem "DM Mono",monospace}.index-strip em{font:500 .71rem "DM Mono",monospace;font-style:normal}.up{color:var(--up)!important}.down{color:var(--down)!important}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(370px,.85fr);gap:16px}.panel{background:linear-gradient(145deg,var(--panel),#0e151f);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow)}.flow-panel,.ai-panel,.heat-panel,.watch-panel{padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:start}.panel-head h2{font-size:1rem;margin:0;font-weight:600}.eyebrow{display:block;font-size:.6rem;margin-bottom:4px}.eyebrow.ai{color:#a996ff}.range-toggle{display:flex;border:1px solid var(--border);padding:3px;border-radius:7px;background:#0a1018}.range-toggle button{border:0;background:transparent;color:var(--muted);font:500 .66rem inherit;border-radius:5px;padding:5px 9px;cursor:pointer}.range-toggle button.active{color:#e7f9ff;background:#1b2a39}.flow-summary{display:flex;align-items:end;justify-content:space-between;margin-top:18px}.flow-summary>div span{display:block;color:var(--muted);font-size:.72rem}.flow-summary>div strong{font:500 1.9rem "DM Mono",monospace}.flow-summary>div small{font-size:.7rem;color:var(--muted);margin-left:5px}.flow-summary ul{display:flex;gap:17px;list-style:none;margin:0;padding:0}.flow-summary li{color:var(--muted);font-size:.68rem}.flow-summary li i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.flow-summary li b{display:block;margin:3px 0 0 12px;font:500 .7rem "DM Mono",monospace}.foreign{background:var(--cyan)}.trust{background:var(--purple)}.dealer{background:var(--amber)}.chart-wrap{margin-top:5px}.flow-chart{width:100%;height:202px;overflow:visible}.grid-lines line{stroke:#263344;stroke-width:1;stroke-dasharray:3 8}.area{fill:url(#none);fill:rgba(95,216,255,.06)}.line-main{fill:none;stroke:var(--cyan);stroke-width:2}.line-alt{fill:none;stroke:var(--purple);stroke-width:1.5;stroke-dasharray:5 5;opacity:.68}.axis{display:flex;justify-content:space-between;margin:-11px 5px 0 36px;color:#5f6d7f;font:400 .61rem "DM Mono",monospace}.ai-note{display:flex;gap:7px;margin:15px 0;color:#8492a7;font-size:.7rem;padding:9px 10px;border:1px solid #2b2945;background:rgba(141,120,255,.06);border-radius:7px}.ai-note span{color:#ad9dff}.text-btn{border:0;background:transparent;color:var(--cyan);font:500 .7rem inherit;cursor:pointer}.stock-picks{display:flex;flex-direction:column}.pick-row{display:grid;grid-template-columns:26px 34px minmax(90px,1fr) 64px 68px;gap:9px;align-items:center;width:100%;padding:12px 0;border:0;border-bottom:1px solid #1e2a39;background:transparent;color:var(--text);cursor:pointer;text-align:left}.pick-row:hover{background:rgba(255,255,255,.018)}.rank{font:400 .63rem "DM Mono",monospace;color:#596779}.stock-logo{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:.72rem;font-weight:700}.stock-logo.purple{background:#2b2651;color:#bdb2ff}.stock-logo.blue{background:#153a4a;color:#80dfff}.stock-logo.orange{background:#4a321a;color:#ffc26d}.stock-name,.score,.price{display:flex;flex-direction:column}.stock-name strong{font-size:.8rem}.stock-name small,.score small{font-size:.63rem;color:var(--muted);margin-top:3px}.score{text-align:center}.score strong{font:500 .9rem "DM Mono",monospace;color:#c7bcff}.price{text-align:right}.price strong{font:500 .77rem "DM Mono",monospace}.price em{font:500 .63rem "DM Mono",monospace;font-style:normal;margin-top:3px}.outline-btn{width:100%;margin-top:14px;height:36px;border:1px solid #334357;background:#121b27;color:#dbe7f0;border-radius:7px;font:500 .74rem inherit;cursor:pointer}.lower-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px;margin-top:16px}.updated{font-size:.64rem;color:var(--muted)}.heatmap{height:128px;display:grid;grid-template-columns:1.4fr 1fr .8fr;grid-template-rows:1fr 1fr;gap:4px;margin-top:17px}.heat{border-radius:5px;padding:10px;display:flex;justify-content:space-between;align-items:start}.heat strong{font-size:.69rem}.heat span{font:500 .64rem "DM Mono",monospace}.heat.hot{grid-row:1/3;background:#5a2633}.heat.warm{background:#49282d}.heat.mild{background:#382a2d}.heat.cool{background:#1f3130}.heat.cold{background:#174033}.watch-table{margin-top:14px}.table-head,.watch-table button{display:grid;grid-template-columns:1.3fr .65fr .65fr .55fr;align-items:center;text-align:right}.table-head{padding:0 8px 8px;color:#657388;font-size:.63rem}.table-head span:first-child{text-align:left}.watch-table button{width:100%;padding:9px 8px;background:transparent;border:0;border-top:1px solid #1d2937;color:var(--text);font-family:inherit;cursor:pointer}.watch-table button>span{display:flex;gap:8px;align-items:center;text-align:left}.watch-table button strong{font-size:.77rem}.watch-table button small{color:var(--muted);font:.6rem "DM Mono",monospace}.watch-table button b{font:500 .72rem "DM Mono",monospace}.watch-table button em{font:500 .65rem "DM Mono",monospace;font-style:normal}.watch-table button i{font-style:normal;color:#aab7c6;font-size:.66rem}.toast{position:fixed;right:24px;bottom:24px;z-index:30;background:#14202d;border:1px solid #385269;color:#e9f8ff;padding:12px 16px;border-radius:8px;box-shadow:var(--shadow);font-size:.76rem;transform:translateY(30px);opacity:0;pointer-events:none;transition:.25s}.toast.show{transform:translateY(0);opacity:1}
@media(max-width:1040px){.app-shell{grid-template-columns:78px minmax(0,1fr)}.sidebar{padding-inline:12px}.brand{padding-inline:10px}.brand>span:last-child,.nav-item>span:not(.nav-glyph),.nav-item b,.sidebar-foot{display:none}.nav-item{justify-content:center}.dashboard-grid{grid-template-columns:1fr}.lower-grid{grid-template-columns:1fr}.ai-panel{min-width:0}}
@media(max-width:720px){.app-shell{display:block}.sidebar{position:fixed;z-index:20;width:240px;transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.sidebar .brand>span:last-child,.sidebar .nav-item>span:not(.nav-glyph),.sidebar .nav-item b,.sidebar .sidebar-foot{display:initial}.sidebar .nav-item{justify-content:flex-start}.topbar{padding:0 16px}.menu-btn{display:block}.market-clock strong{display:none}.search{width:42px}.search input{display:none}.workspace{padding:20px 16px 32px}.page-heading{align-items:start}.page-heading h1{font-size:1.35rem}.page-heading>div>span{font-size:.68rem}.heading-actions .demo-pill{display:none}.primary-btn{padding:0 11px}.index-strip{grid-template-columns:1fr 1fr}.index-strip article:nth-child(2){border-right:0}.index-strip article:nth-child(-n+2){border-bottom:1px solid var(--border)}.dashboard-grid{display:block}.ai-panel{margin-top:16px}.lower-grid{display:block}.watch-panel{margin-top:16px}.flow-summary{align-items:start}.flow-summary ul{display:block}.flow-summary li{margin-bottom:4px}.flow-summary li b{display:inline;margin-left:4px}.flow-chart{height:180px}.pick-row{grid-template-columns:24px 32px 1fr 56px}.score{display:none}.heatmap{height:150px}.top-actions{gap:6px}}
@media(max-width:440px){.page-heading{display:block}.heading-actions{margin-top:15px}.index-strip article{padding:13px}.index-strip p{font-size:1rem}.flow-panel,.ai-panel,.heat-panel,.watch-panel{padding:16px}.flow-summary{display:block}.flow-summary ul{margin-top:10px;display:flex;gap:8px}.flow-summary li{flex:1}.watch-table .table-head,.watch-table button{grid-template-columns:1.25fr .75fr .8fr}.watch-table .table-head span:last-child,.watch-table button i{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Analysis workspaces */
.module-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.module-heading p{margin:0 0 5px;color:var(--cyan);font:500 .65rem "DM Mono",monospace;letter-spacing:.16em}.module-heading h1{font-size:1.6rem;margin:0}.module-heading>div>span{display:block;color:var(--muted);font-size:.76rem;margin-top:5px}.demo-pill{border:1px solid #3d3423;color:#d7af70;background:#18150f;border-radius:6px;padding:7px 9px;font-size:.7rem}.module-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.segmented{display:flex;border:1px solid var(--border);padding:3px;border-radius:8px;background:#0a1018}.segmented button,.option-grid button{border:0;background:transparent;color:var(--muted);font:500 .72rem inherit;border-radius:6px;padding:7px 12px;cursor:pointer}.segmented button.active,.option-grid button.active{background:#1d2d3b;color:var(--cyan)}.toolbar-right{display:flex;gap:10px}.toolbar-right label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.7rem}.toolbar-right select,.filter-panel select,.filter-panel input{border:1px solid var(--border);background:#0c131c;color:var(--text);border-radius:7px;height:35px;padding:0 10px;font:500 .7rem inherit;outline:0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metric-card{position:relative;background:linear-gradient(145deg,var(--panel),#0e151f);border:1px solid var(--border);border-radius:10px;padding:17px;overflow:hidden}.metric-card:after{content:"";position:absolute;right:-25px;top:-30px;width:80px;height:80px;border:1px solid rgba(95,216,255,.08);border-radius:50%}.metric-card>span{display:block;color:#b5c1d0;font-size:.72rem}.metric-card>span i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.metric-card strong{display:block;font:500 1.25rem "DM Mono",monospace;margin-top:10px}.metric-card small{display:block;color:var(--muted);font-size:.67rem;margin-top:4px}.metric-card b{display:block;color:#657589;font-size:.6rem;font-weight:500;margin-top:12px;padding-top:9px;border-top:1px solid #1f2b39}.analysis-panel{padding:20px}.data-table{margin-top:16px;overflow-x:auto}.data-row{min-width:850px;display:grid;grid-template-columns:1.55fr .65fr .65fr .8fr .8fr .7fr .85fr;align-items:center;text-align:right;gap:12px}.data-head{color:#637287;font-size:.65rem;padding:0 11px 9px;border-bottom:1px solid var(--border)}.data-head span:first-child{text-align:left}.stock-data-row{width:100%;padding:11px;background:transparent;border:0;border-bottom:1px solid #1c2836;color:var(--text);font:500 .72rem "DM Mono",monospace;cursor:pointer}.stock-data-row:hover{background:#121c28}.stock-cell{display:flex;align-items:center;text-align:left;font-family:"Noto Sans TC",sans-serif}.stock-cell>i{width:32px;color:#536174;font:400 .62rem "DM Mono",monospace;font-style:normal}.stock-cell>b{display:flex;flex-direction:column;font-size:.77rem}.stock-cell small{color:var(--muted);font:400 .6rem "DM Mono",monospace;margin-top:2px}.signal{display:inline-block;font-style:normal;color:#8dcdb7;background:rgba(53,198,138,.09);border:1px solid rgba(53,198,138,.18);padding:4px 7px;border-radius:30px;font-family:"Noto Sans TC",sans-serif}.signal.strong{color:#ff9aa4;background:rgba(255,92,108,.09);border-color:rgba(255,92,108,.2)}
.ai-layout{display:grid;grid-template-columns:285px 1fr;gap:16px;align-items:start}.filter-panel{padding:19px;position:sticky;top:87px}.filter-title{display:flex;justify-content:space-between;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--border)}.filter-title h2{font-size:.95rem;margin:0}.filter-title button{border:0;background:transparent;color:var(--cyan);font:500 .67rem inherit;cursor:pointer}.filter-title>span{font-size:.64rem;color:var(--muted)}fieldset{border:0;padding:0;margin:18px 0}legend{display:flex;width:100%;justify-content:space-between;color:#aebac8;font-size:.7rem;margin-bottom:9px}legend b{color:var(--cyan);font:500 .68rem "DM Mono",monospace}.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.option-grid button{background:#0b121b;border:1px solid var(--border);padding:8px 3px}.option-grid button.active{border-color:#3f879b}.risk-options{width:100%}.risk-options button{flex:1}.filter-panel select{width:100%}.filter-panel input[type="range"]{appearance:none;width:100%;height:4px;padding:0;border:0;background:linear-gradient(90deg,var(--cyan) 65%,#263547 65%);border-radius:4px}.filter-panel input[type="range"]::-webkit-slider-thumb{appearance:none;width:15px;height:15px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(95,216,255,.12)}.screen-btn{width:100%;height:41px}.filter-disclaimer,.backtest-form fieldset p{color:#667488;font-size:.62rem;line-height:1.6;margin:12px 0 0}.results-panel{padding:20px}.result-count{font-size:.68rem;color:var(--muted)}.result-count b{color:var(--text);font:500 .9rem "DM Mono",monospace}.model-stamp{display:flex;gap:10px;align-items:center;color:#647388;font:400 .6rem "DM Mono",monospace;background:#0b121b;border:1px solid #1d2938;border-radius:6px;padding:8px 10px;margin:14px 0 6px}.model-stamp i{width:3px;height:3px;background:#43536a;border-radius:50%}.ai-result{display:grid;grid-template-columns:29px 35px minmax(230px,1fr) 76px 78px 18px;align-items:center;gap:11px;width:100%;color:var(--text);background:transparent;border:0;border-bottom:1px solid #1d2938;padding:15px 5px;cursor:pointer;text-align:left}.ai-result:hover{background:#121c28}.ai-rank{font:400 .6rem "DM Mono",monospace;color:#56657a}.ai-stock{display:flex;flex-direction:column}.ai-stock>strong{font-size:.8rem}.ai-stock>strong small{font:400 .62rem "DM Mono",monospace;color:#718096;margin-left:5px}.ai-stock>em{font-size:.62rem;color:var(--muted);font-style:normal;margin:2px 0 7px}.ai-stock>span{display:flex;gap:5px;flex-wrap:wrap}.ai-stock>span i{font-style:normal;color:#93a2b6;background:#172231;border-radius:4px;padding:3px 6px;font-size:.58rem}.score-ring{--score:80;width:63px;height:63px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(closest-side,#111923 79%,transparent 80% 100%),conic-gradient(var(--purple) calc(var(--score)*1%),#273344 0)}.score-ring b{font:500 .95rem "DM Mono",monospace}.score-ring small{color:var(--muted);font-size:.47rem}.ai-price{text-align:right}.ai-price strong{display:block;font:500 .78rem "DM Mono",monospace}.ai-price em{font:500 .63rem "DM Mono",monospace;font-style:normal}.row-arrow{color:#607086}.empty-state{padding:70px 20px;display:flex;flex-direction:column;align-items:center;color:#d8e2ec}.empty-state span{color:var(--muted);font-size:.72rem;margin-top:8px}
.backtest-layout{display:grid;grid-template-columns:315px 1fr;gap:16px;align-items:start}.backtest-form{position:sticky;top:87px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-two fieldset{margin:9px 0}.input-unit{display:flex;align-items:center;border:1px solid var(--border);background:#0c131c;border-radius:7px}.input-unit input{border:0!important;background:transparent!important;width:100%;padding-right:0!important}.input-unit span{color:var(--muted);font-size:.65rem;padding-right:9px}.check-row{display:flex;gap:9px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:7px;margin:16px 0}.check-row input{accent-color:var(--cyan)}.check-row span{display:flex;flex-direction:column}.check-row b{font-size:.7rem}.check-row small{font-size:.58rem;color:var(--muted)}.backtest-results{display:flex;flex-direction:column;gap:16px}.backtest-chart-panel,.trades-panel{padding:20px}.chart-legend{display:flex;gap:13px;color:var(--muted);font-size:.63rem}.chart-legend i{display:inline-block;width:15px;height:2px;margin:0 5px 3px 0}.strategy-dot{background:var(--cyan)}.benchmark-dot{background:var(--purple)}.backtest-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-top:15px}.backtest-metrics div{background:#0c131d;padding:12px}.backtest-metrics span{display:block;font-size:.61rem;color:var(--muted)}.backtest-metrics strong{display:block;font:500 .92rem "DM Mono",monospace;margin-top:4px}.equity-chart{width:100%;height:238px;margin-top:8px}.equity-area{fill:url(#equity-fill)}.equity-line{fill:none;stroke:var(--cyan);stroke-width:2.2;filter:drop-shadow(0 0 5px rgba(95,216,255,.28))}.benchmark-line{fill:none;stroke:var(--purple);stroke-width:1.6;stroke-dasharray:6 5;opacity:.75}.equity-axis{display:flex;justify-content:space-between;margin:-15px 5px 0 33px;color:#5f6d7f;font:400 .6rem "DM Mono",monospace}.trade-table{margin-top:15px}.trade-row{display:grid;grid-template-columns:1.2fr repeat(4,.8fr);text-align:right;align-items:center;padding:10px 8px;border-bottom:1px solid #1d2937;color:#aebac7;font:400 .67rem "DM Mono",monospace}.trade-row>span:first-child{text-align:left}.trade-row span:first-child b,.trade-row span:first-child small{display:block}.trade-row span:first-child b{color:var(--text);font-family:"Noto Sans TC",sans-serif}.trade-row span:first-child small{color:var(--muted);font-size:.58rem}
.stock-dialog{width:min(500px,calc(100% - 32px));border:1px solid #33465d;border-radius:12px;background:#101822;color:var(--text);padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.6)}.stock-dialog::backdrop{background:rgba(2,5,9,.78);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#8190a4;font-size:1.45rem;cursor:pointer}.dialog-title{display:flex;justify-content:space-between;align-items:start;margin-top:8px}.dialog-title h2{font-size:1.28rem;margin:0}.dialog-title h2 small{font:400 .7rem "DM Mono",monospace;color:var(--muted)}.dialog-title p{margin:4px 0;color:var(--muted);font-size:.68rem}.dialog-title>div:last-child{text-align:right}.dialog-title>div:last-child strong{display:block;font:500 1rem "DM Mono",monospace}.dialog-title>div:last-child em{font:500 .7rem "DM Mono",monospace;font-style:normal}.dialog-score{margin:18px 0;padding:13px;background:#0a111a;border:1px solid var(--border);border-radius:8px;display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.dialog-score span{color:var(--muted);font-size:.68rem}.dialog-score strong{font:500 1.15rem "DM Mono",monospace;color:#bfb3ff}.dialog-score div{grid-column:1/3;height:4px;background:#263244;border-radius:4px;overflow:hidden}.dialog-score i{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--cyan))}.stock-dialog h3{font-size:.75rem;margin:0 0 8px}.stock-dialog ul{list-style:none;padding:0;margin:0}.stock-dialog li{padding:7px 0;border-bottom:1px solid #1d2938;color:#c1cbd7;font-size:.7rem}.stock-dialog li span{color:var(--cyan);margin-right:8px}.dialog-chip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:15px;border:1px solid var(--border);border-radius:7px;overflow:hidden}.dialog-chip div{padding:10px;border-right:1px solid var(--border)}.dialog-chip div:last-child{border:0}.dialog-chip span,.dialog-chip b{display:block}.dialog-chip span{font-size:.58rem;color:var(--muted)}.dialog-chip b{font:500 .69rem "DM Mono",monospace;margin-top:4px}.dialog-note{margin:15px 0 0;color:#667589;font-size:.58rem}
@media(max-width:1040px){.metric-grid{grid-template-columns:1fr 1fr}.ai-layout,.backtest-layout{grid-template-columns:1fr}.filter-panel,.backtest-form{position:static}.ai-result{grid-template-columns:29px 35px minmax(190px,1fr) 70px 70px 18px}}
@media(max-width:720px){.module-heading{align-items:start}.module-heading h1{font-size:1.35rem}.module-heading .demo-pill{display:none}.module-toolbar{align-items:stretch;gap:10px;flex-direction:column}.toolbar-right{justify-content:space-between}.toolbar-right label{flex:1}.toolbar-right select{flex:1;min-width:0}.metric-grid{grid-template-columns:1fr 1fr}.analysis-panel{padding:15px}.ai-result{grid-template-columns:27px 33px 1fr 61px}.ai-result .score-ring,.row-arrow{display:none}.backtest-metrics{grid-template-columns:1fr 1fr}.trade-row{min-width:580px}.trade-table{overflow-x:auto}}
@media(max-width:440px){.metric-grid{grid-template-columns:1fr}.ai-result{grid-template-columns:24px 1fr 60px}.ai-result .stock-logo{display:none}.ai-stock>span i:nth-child(2){display:none}.form-two{grid-template-columns:1fr}.backtest-chart-panel,.trades-panel,.results-panel{padding:16px}.equity-chart{height:190px}.dialog-chip{grid-template-columns:1fr}.dialog-chip div{border-right:0;border-bottom:1px solid var(--border)}}

.mobile-nav{display:none}.plain-verdict{margin:18px 0 10px;padding:14px;background:linear-gradient(135deg,rgba(95,216,255,.09),rgba(141,120,255,.08));border:1px solid #2d4a5c;border-radius:9px}.plain-verdict span,.plain-verdict small{display:block;color:var(--muted);font-size:.65rem}.plain-verdict strong{display:block;margin:4px 0;font-size:.94rem}.plain-scorecard{border:1px solid var(--border);border-radius:9px;overflow:hidden}.plain-scorecard>div{display:grid;grid-template-columns:48px 78px 1fr;gap:9px;align-items:center;padding:10px 11px;border-bottom:1px solid #1d2938}.plain-scorecard>div:last-child{border:0}.plain-scorecard b{font-size:.7rem}.plain-scorecard p{margin:0;color:#9eabba;font-size:.67rem;line-height:1.45}.status{display:inline-grid;place-items:center;min-height:24px;border-radius:5px;font-size:.58rem;font-weight:600}.status.good{color:#7de0b3;background:rgba(53,198,138,.12)}.status.warn{color:#ffd084;background:rgba(255,190,92,.12)}.status.risk{color:#ff9ba4;background:rgba(255,92,108,.12)}.indicator-help{margin-top:12px;border:1px solid var(--border);border-radius:8px;background:#0b121b}.indicator-help summary{padding:11px;color:#bac6d3;font-size:.68rem;cursor:pointer}.indicator-help dl{margin:0;padding:0 11px 10px}.indicator-help dl>div{display:grid;grid-template-columns:65px 1fr;padding:6px 0}.indicator-help dt{color:var(--cyan);font-size:.65rem}.indicator-help dd{margin:0;color:var(--muted);font-size:.64rem;line-height:1.45}
.data-proof{margin:12px 0;padding:9px 11px;border:1px solid #294354;border-radius:7px;background:rgba(95,216,255,.045);color:#8fa9b8;font-size:.65rem;line-height:1.5}
@media(max-width:720px){body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.sidebar{display:none}.menu-btn{display:none}.topbar{height:60px}.workspace{padding-bottom:24px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:0;right:0;bottom:0;z-index:25;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:rgba(9,14,23,.96);border-top:1px solid #263548;backdrop-filter:blur(16px)}.mobile-nav-item{min-height:52px;border:0;background:transparent;color:#77869a;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit}.mobile-nav-item span{font-size:1.05rem}.mobile-nav-item b{font-size:.63rem;font-weight:500}.mobile-nav-item.active{color:var(--cyan);background:rgba(95,216,255,.08)}.primary-btn,.outline-btn,.range-toggle button,.segmented button,.option-grid button,.text-btn{min-height:44px}.pick-row,.watch-table button,.ai-result{min-height:56px}.search{width:44px;transition:.2s}.search input{display:block!important;width:1px;opacity:0;pointer-events:none}.search:focus-within{position:absolute;left:16px;right:106px;width:auto;z-index:2}.search:focus-within input{width:100%;opacity:1;pointer-events:auto}.market-clock{margin-right:auto;margin-left:2px}.toast{left:16px;right:16px;bottom:calc(78px + env(safe-area-inset-bottom));text-align:center}.stock-dialog{inset:auto 0 0 0;width:100%;max-width:none;max-height:92dvh;margin:0;overflow:auto;border-radius:18px 18px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom))}.dialog-close{width:44px;height:44px;right:6px;top:5px}.plain-scorecard>div{grid-template-columns:46px 74px 1fr}}
@media(max-width:440px){.top-actions .icon-btn{display:none}.search:focus-within{right:58px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:1.28rem}.index-strip p{font-size:.92rem}.flow-panel,.ai-panel,.heat-panel,.watch-panel{padding:14px}.plain-scorecard>div{grid-template-columns:44px 1fr}.plain-scorecard p{grid-column:2}.dialog-title{padding-right:28px}}

/* Authenticated live-data workspace */
[hidden]{display:none!important}.auth-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 10%,#152535 0,#070b12 48%)}.auth-card{width:min(410px,100%);display:flex;flex-direction:column;gap:15px;padding:30px;background:linear-gradient(145deg,#121b27,#0d141e);border:1px solid #2b3c51;border-radius:16px;box-shadow:0 35px 100px rgba(0,0,0,.55)}.auth-card .brand-mark{margin-bottom:8px}.auth-card h1{margin:0;font-size:1.55rem}.auth-card>p:not(.eyebrow){margin:0;color:var(--muted);font-size:.76rem;line-height:1.6}.auth-card label,.account-form label{display:flex;flex-direction:column;gap:7px;color:#aebac8;font-size:.7rem}.auth-card input,.account-form input{height:43px;border:1px solid var(--border);border-radius:8px;background:#091019;color:var(--text);padding:0 12px;font:500 .83rem inherit;outline:0}.auth-card input:focus,.account-form input:focus{border-color:#4ca7bf}.form-error{min-height:18px;margin:0;color:#ff8793!important;font-size:.66rem!important}.search-shell{position:relative}.search-results{position:absolute;right:0;top:43px;width:330px;max-height:420px;overflow:auto;padding:7px;background:#0d151f;border:1px solid #304156;border-radius:10px;box-shadow:0 22px 60px rgba(0,0,0,.48)}.search-results button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-bottom:1px solid #1e2a39;background:transparent;color:var(--text);padding:10px;border-radius:6px;text-align:left;cursor:pointer}.search-results button:hover{background:#14202d}.search-results button span,.search-results button strong,.search-results button small{display:block}.search-results button strong{font-size:.75rem}.search-results button small{margin-top:3px;color:var(--muted);font-size:.61rem}.search-results button>b{font:500 .7rem "DM Mono",monospace}.search-status,.loading-line{display:block;padding:14px;color:var(--muted);font-size:.68rem}.account-button{height:38px;min-width:76px;border:1px solid var(--border);background:#10202b;color:var(--text);border-radius:9px;padding:0 10px;cursor:pointer}.account-button span,.account-button small{display:block}.account-button span{font-size:.68rem}.account-button small{font-size:.53rem;color:var(--muted)}.watch-preview{margin-top:14px}.watch-preview button{display:grid;grid-template-columns:1fr .55fr .65fr;gap:10px;align-items:center;width:100%;padding:11px 8px;border:0;border-top:1px solid #1d2937;background:transparent;color:var(--text);text-align:right;cursor:pointer}.watch-preview button>span{text-align:left}.watch-preview button strong,.watch-preview button small{display:block}.watch-preview button strong{font-size:.76rem}.watch-preview button small{color:var(--muted);font-size:.6rem}.watch-preview button>b{font:500 .74rem "DM Mono",monospace}.watch-preview button>em{font-style:normal;font-size:.65rem}.overview-watch-preview{min-height:180px}.truth-list{margin-top:16px}.truth-list>div{display:flex;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #1d2938}.truth-list p,.truth-list strong,.truth-list small{display:block;margin:0}.truth-list strong{font-size:.75rem}.truth-list small{margin-top:3px;color:var(--muted);font-size:.63rem}.source-strip article p{font-family:"Noto Sans TC",sans-serif;font-size:1rem}.source-strip article em{font-family:"Noto Sans TC",sans-serif}.roadmap-panel{padding:20px}.roadmap-panel>p{font-size:.78rem;line-height:1.6}.roadmap-panel>small{color:var(--muted);font-size:.65rem}.watchlist-workspace{padding:20px}.watchlist-intro{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--border)}.watchlist-intro strong,.watchlist-intro span{display:block}.watchlist-intro strong{font-size:.82rem}.watchlist-intro div span{margin-top:4px;color:var(--muted);font-size:.67rem}.official-data-badge{padding:6px 8px;border:1px solid #285c50;border-radius:30px;color:#71d5ab;font-size:.63rem}.watchlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.watch-card{position:relative;border:1px solid var(--border);border-radius:10px;background:#0d151f;overflow:hidden}.watch-card-main{display:grid;grid-template-columns:35px 1fr auto;gap:9px;width:100%;padding:15px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.watch-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#173544;color:var(--cyan);font-weight:700}.watch-identity strong,.watch-identity small,.watch-price strong,.watch-price small{display:block}.watch-identity strong{font-size:.78rem}.watch-identity small,.watch-price small{margin-top:3px;color:var(--muted);font-size:.6rem}.watch-price{text-align:right}.watch-price strong{font:500 .8rem "DM Mono",monospace}.trend-chip{grid-column:2/4;width:max-content;padding:4px 7px;border-radius:20px;font-size:.61rem;background:#202d3c;color:#b8c3d0}.trend-chip.up{background:rgba(255,92,108,.1);color:#ff9da6}.trend-chip.down{background:rgba(53,198,138,.1);color:#75d9ad}.watch-date{grid-column:2/4;color:#647386;font-size:.58rem}.remove-watch{position:absolute;right:8px;bottom:8px;border:0;background:transparent;color:#6f7f91;font-size:.6rem;cursor:pointer}.stock-action-row{display:flex;align-items:center;gap:12px}.stock-action-row button{width:auto;margin:15px 0}.stock-action-row>span{color:var(--amber);font-size:.63rem}.technical-chart{margin:15px 0;padding:12px;background:#091019;border:1px solid var(--border);border-radius:9px}.technical-chart svg{width:100%;height:auto}.chart-labels,.chart-range{display:flex;justify-content:space-between;color:var(--muted);font-size:.58rem}.chart-labels{justify-content:flex-start;gap:12px;margin-bottom:6px}.chart-labels i{display:inline-block;width:12px;height:2px;margin:0 4px 3px 0}.price-dot{background:var(--cyan)}.ma20-dot{background:var(--purple)}.ma60-dot{background:var(--amber)}.live-price-line,.live-ma20,.live-ma60{fill:none}.live-price-line{stroke:var(--cyan);stroke-width:2}.live-ma20{stroke:var(--purple);stroke-width:1.5}.live-ma60{stroke:var(--amber);stroke-width:1.3}.technical-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.technical-grid article{padding:10px;border:1px solid var(--border);border-radius:8px;background:#0c141d}.technical-grid article b,.technical-grid article p{display:block}.technical-grid article b{margin-top:7px;font-size:.67rem}.technical-grid article p{margin:3px 0 0;color:var(--muted);font-size:.6rem}.account-dialog{width:min(470px,calc(100% - 32px));max-height:90vh;overflow:auto;border:1px solid #33465d;border-radius:12px;background:#101822;color:var(--text);padding:24px}.account-dialog::backdrop{background:rgba(2,5,9,.78);backdrop-filter:blur(4px)}.account-heading h2{margin:8px 0 0}.account-heading p{margin:4px 0 16px;color:var(--muted);font-size:.68rem}.password-notice{margin:10px 0;padding:10px;border:1px solid #5a492a;background:#1c170f;color:#f1c879;border-radius:7px;font-size:.68rem}.account-form{display:flex;flex-direction:column;gap:11px;margin-top:15px;padding-top:15px;border-top:1px solid var(--border)}.account-form h3{margin:0;font-size:.78rem}.logout-button{width:100%;margin-top:18px;height:40px;border:1px solid #50303a;background:#1b1116;color:#ff9aa5;border-radius:8px;cursor:pointer}.income-explainer{display:grid;grid-template-columns:1fr 1fr;gap:12px}.income-explainer article{padding:18px}.income-explainer h2{margin:0;font-size:.9rem}.income-explainer p{margin:7px 0 0;color:var(--muted);font-size:.7rem;line-height:1.55}.income-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.income-card{padding:17px}.income-card-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.income-card-head h2{margin:0;font-size:.95rem}.income-card-head>div:last-child{text-align:right}.income-card-head>div:last-child strong,.income-card-head>div:last-child small{display:block}.income-card-head>div:last-child strong{font:500 .85rem "DM Mono",monospace}.income-card-head>div:last-child small{margin-top:3px;color:var(--muted);font-size:.55rem}.income-metrics{margin-top:14px}.income-metric{padding:10px 0;border-top:1px solid #1d2938}.income-metric>div{display:flex;justify-content:space-between;align-items:center}.income-metric>div strong{font:500 .76rem "DM Mono",monospace}.income-metric>b{display:block;margin-top:6px;font-size:.68rem}.income-metric>p{margin:3px 0 0;color:var(--muted);font-size:.59rem;line-height:1.45}.income-card .indicator-help ul{margin:0;padding:0 25px 12px;color:var(--muted);font-size:.6rem;line-height:1.55}
@media(max-width:1100px){.income-grid{grid-template-columns:1fr}.watchlist-grid{grid-template-columns:1fr}}
@media(max-width:720px){.mobile-nav{grid-template-columns:repeat(6,1fr)}.account-button{min-width:52px;padding:0 6px}.account-button span{max-width:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-results{position:fixed;left:16px;right:16px;top:58px;width:auto}.income-explainer{grid-template-columns:1fr}.technical-grid{grid-template-columns:1fr 1fr}.watchlist-workspace{padding:14px}}

/* Formal authorization entry and explicit unavailable states */
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Microsoft JhengHei",sans-serif}
.auth-screen{padding:24px;background:#070c12}
.auth-layout{width:min(980px,100%);min-height:570px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);overflow:hidden;border:1px solid #26384a;border-radius:12px;background:#0b121a;box-shadow:0 28px 80px rgba(0,0,0,.45)}
.auth-intro{display:flex;flex-direction:column;justify-content:space-between;gap:42px;padding:46px;border-right:1px solid #26384a;background:linear-gradient(145deg,#101c28,#0b121a)}
.auth-brand{display:flex;align-items:center;gap:12px}
.auth-brand>span:last-child{display:flex;flex-direction:column}
.auth-brand strong{font-size:1rem;letter-spacing:.04em}
.auth-brand small{margin-top:3px;color:#6f8194;font:500 .59rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em}
.auth-intro>div:nth-child(2)>p:first-child,.auth-kicker{margin:0 0 10px;color:var(--cyan);font:600 .66rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em}
.auth-intro h1{max-width:480px;margin:0;font-size:2rem;line-height:1.3;letter-spacing:-.02em}
.auth-intro>div:nth-child(2)>p:last-child{max-width:470px;margin:17px 0 0;color:#a0adbc;font-size:1rem;line-height:1.75}
.auth-policy{display:grid;gap:12px;margin:0}
.auth-policy>div{display:grid;grid-template-columns:88px 1fr;gap:14px;padding-top:12px;border-top:1px solid #263443}
.auth-policy dt{color:#d8e2eb;font-size:.78rem;font-weight:600}
.auth-policy dd{margin:0;color:#8493a4;font-size:.78rem;line-height:1.55}
.auth-card{width:auto;justify-content:center;gap:17px;margin:0;padding:46px;background:#0b121a;border:0;border-radius:0;box-shadow:none}
.auth-card h2{margin:0;font-size:1.35rem;line-height:1.4}
.auth-card>p:not(.auth-kicker):not(.form-error){margin:-7px 0 5px;color:#8b9aab;font-size:.85rem;line-height:1.6}
.auth-card label{gap:8px;color:#c4ced8;font-size:.78rem}
.auth-card input{height:47px;border-color:#304256;border-radius:7px;background:#080e15;padding:0 13px;font-size:1rem}
.auth-card input:focus{border-color:#5ac5e2;box-shadow:0 0 0 3px rgba(95,216,255,.08)}
.auth-card .primary-btn{height:47px;margin-top:2px;border-radius:7px;font-size:.84rem;box-shadow:none}
.auth-notice{margin-top:5px;padding-top:16px;border-top:1px solid #22303e;color:#738294;font-size:.72rem;line-height:1.55}
.unavailable-module{min-height:240px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:34px}
.unavailable-module h2{margin:0;font-size:1.05rem}
.unavailable-module p{max-width:640px;margin:10px 0 0;color:var(--muted);font-size:.8rem;line-height:1.7}
@media(max-width:760px){.auth-screen{position:fixed;display:block;overflow:auto;padding:0;background:#080e15}.auth-layout{width:100%;min-height:100%;grid-template-columns:1fr;border:0;border-radius:0}.auth-intro{gap:24px;padding:28px 24px;border-right:0;border-bottom:1px solid #26384a}.auth-intro h1{font-size:1.5rem}.auth-intro>div:nth-child(2)>p:last-child{font-size:.9rem;line-height:1.65}.auth-policy{display:none}.auth-card{min-height:390px;padding:30px 24px 38px}.mobile-nav{grid-template-columns:repeat(3,1fr)}}
