:root{color-scheme:dark;--bg:#090c0e;--surface:#111619;--surface-2:#161d21;--surface-3:#0d1214;--line:#273136;--line-soft:#1c2529;--text:#f3f1ea;--muted:#9ca8a5;--subtle:#71807d;--gold:#d9b86c;--gold-2:#f0d794;--cyan:#65d7cf;--green:#45d38e;--red:#f2766b;--blue:#75a7e8;--shadow:0 16px 44px rgba(0,0,0,.28)}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-width:320px;background:linear-gradient(180deg,#101618 0,#090c0e 340px);color:var(--text);font-family:"Noto Sans TC","Microsoft JhengHei","Segoe UI",sans-serif;letter-spacing:0}
button,input,select{font:inherit;letter-spacing:0}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.55}
.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.appHeader{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(217,184,108,.14);background:rgba(9,12,14,.92);backdrop-filter:blur(16px)}
.headerInner{width:min(1360px,calc(100% - 32px));height:70px;margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;min-width:0}
.brand img{width:40px;height:40px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.32)}
.brand div{display:grid;gap:2px}.brand strong{font-size:16px}.brand span{color:var(--gold);font-size:9px;font-weight:800}
.primaryTabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px;background:#0d1214}
.primaryTab{min-width:120px;height:38px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-weight:800}
.primaryTab.is-active{background:#20282c;color:var(--text);box-shadow:inset 0 0 0 1px rgba(217,184,108,.22)}
.headerInner>.quietButton{justify-self:end}
.quietButton,.primaryButton{min-height:40px;border-radius:6px;padding:0 14px;font-weight:800}
.quietButton{border:1px solid var(--line);background:#12181b;color:#dce2df}
.quietButton:hover{border-color:#516167;color:#fff}
.primaryButton{border:1px solid #d9b86c;background:var(--gold);color:#17140d}
.primaryButton:hover{background:var(--gold-2)}
.appShell{width:min(1360px,calc(100% - 32px));margin:0 auto;padding:30px 0 54px}
.page{display:grid;gap:16px}.page[hidden],.detailPanel[hidden]{display:none}.page.is-active{animation:fade .18s ease}
@keyframes fade{from{opacity:.65;transform:translateY(3px)}to{opacity:1;transform:none}}
.pageTitle{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:10px 0 6px}
.pageTitle h1,.instrumentName h1{margin:2px 0 6px;font-size:28px;line-height:1.25}.pageTitle p,.instrumentName p{margin:0;color:var(--muted)}
.kicker{color:var(--gold)!important;font-size:10px!important;font-weight:900;text-transform:uppercase}
.dateStamp{border-left:2px solid var(--gold);padding:7px 0 7px 13px;color:var(--muted);font-size:13px}
.commandBand,.watchBand,.searchBand,.instrumentHeader,.verdictBand,.scoreStrip,.chartBand,.dayTradeBand,.detailTabs,.detailPanel,.radarLane{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}
.commandBand{display:grid;grid-template-columns:1fr minmax(280px,420px);align-items:end;gap:24px;padding:16px}
.commandGroup{display:flex;align-items:end;gap:10px}.commandGroup label{display:grid;gap:7px;color:var(--muted);font-size:12px}.commandGroup select,.searchForm input,.searchForm select{height:42px;border:1px solid var(--line);border-radius:6px;background:#0b1012;color:var(--text);outline:none;padding:0 12px}.commandGroup select:focus,.searchForm input:focus,.searchForm select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,184,108,.1)}
.scanProgress{display:grid;gap:8px;color:var(--muted);font-size:12px}.scanProgress>div{height:4px;border-radius:2px;background:#222c30;overflow:hidden}.scanProgress i{display:block;width:0;height:100%;background:var(--cyan);transition:width .18s}
.watchBand{padding:16px}.sectionHeading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.sectionHeading>div:first-child{display:flex;align-items:baseline;gap:10px;min-width:0}.sectionHeading h2{margin:0;font-size:16px}.sectionHeading span{color:var(--muted);font-size:12px}.inlineActions{display:flex!important;gap:8px!important}.fileButton{display:inline-flex;align-items:center}.fileButton input{display:none}
.watchlist{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.watchItem{display:grid;grid-template-columns:auto 30px;min-width:190px;border:1px solid var(--line-soft);border-radius:6px;background:#0d1214;overflow:hidden}.watchOpen{border:0;background:transparent;color:var(--text);text-align:left;padding:10px}.watchOpen strong{display:block;font-size:13px}.watchOpen span{display:block;margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watchRemove{border:0;border-left:1px solid var(--line-soft);background:transparent;color:var(--subtle);font-size:18px}.watchRemove:hover{color:var(--red);background:rgba(242,118,107,.08)}
.empty{display:grid;place-items:center;min-height:92px;color:var(--subtle);font-size:13px;text-align:center;padding:18px}.radarGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.radarLane{min-width:0;overflow:hidden}.radarLane>header{display:flex;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.radarLane>header span{color:var(--gold);font-size:9px;font-weight:900}.radarLane>header h2{margin:3px 0 0;font-size:15px}.radarLane>header small{color:var(--subtle);font-size:10px;text-align:right}.dayLane>header{border-top:3px solid var(--cyan);padding-top:11px}.laneBody{display:grid}.radarItem{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}.radarItem:last-child{border-bottom:0}.radarItem button{border:0;background:transparent;color:inherit;text-align:left;padding:0}.radarItem strong{display:block;font-size:13px}.radarItem span{display:block;margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radarValue{align-self:center;font-size:18px;font-weight:900}.radarValue.bull{color:var(--green)}.radarValue.bear{color:var(--red)}.radarValue.neutral{color:var(--gold)}.radarDivider{padding:7px 14px;background:#0d1214;color:var(--subtle);font-size:10px;font-weight:900}
.searchBand{display:grid;gap:10px;padding:14px}.searchForm{display:grid;grid-template-columns:minmax(220px,1fr) 138px 110px;gap:8px}.quickSymbols{display:flex;gap:7px;flex-wrap:wrap}.quickSymbols button{height:30px;border:1px solid var(--line-soft);border-radius:5px;background:#0d1214;color:var(--muted);padding:0 10px;font-size:11px}.quickSymbols button:hover{border-color:var(--gold);color:var(--text)}
.statusLine{min-height:38px;display:flex;align-items:center;padding:0 12px;border-left:3px solid var(--cyan);background:#0d1214;color:var(--muted);font-size:12px}.statusLine.error{border-color:var(--red);color:#ffc0ba}.analysisResult{display:grid;gap:14px}.instrumentHeader{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:24px;padding:18px}.instrumentName h1{font-size:24px}.quoteBlock,.qualityBlock{display:grid;gap:2px;min-width:120px;padding-left:20px;border-left:1px solid var(--line)}.quoteBlock span,.qualityBlock span{color:var(--subtle);font-size:10px}.quoteBlock strong{font-size:30px}.qualityBlock strong{font-size:26px;color:var(--gold)}.quoteBlock small,.qualityBlock small{color:var(--muted);font-size:11px}
.verdictBand{display:grid;grid-template-columns:280px 1fr;align-items:center;gap:22px;padding:18px;border-left:3px solid var(--gold)}.verdictBand div{display:grid;gap:4px}.verdictBand span{color:var(--gold);font-size:11px;font-weight:900}.verdictBand strong{font-size:20px}.verdictBand p{margin:0;color:var(--muted);line-height:1.65}
.scoreStrip{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}.scoreStrip article{display:grid;grid-template-columns:1fr auto;gap:10px;padding:18px;border-right:1px solid var(--line)}.scoreStrip article:last-child{border-right:0}.scoreStrip article>div span{display:block;font-weight:900}.scoreStrip article small{display:block;margin-top:4px;color:var(--subtle);font-size:11px}.scoreStrip article>strong{grid-row:span 2;align-self:center;font-size:34px}.scoreStrip article>p{margin:7px 0 0;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.scoreStrip em{border:1px solid var(--line);border-radius:4px;padding:2px 5px;color:var(--subtle);font-size:10px;font-style:normal}.scoreStrip article[data-tone="bull"]>strong{color:var(--green)}.scoreStrip article[data-tone="bear"]>strong{color:var(--red)}
.chartBand{padding:16px}.segmented{display:flex!important;align-items:center!important;gap:3px!important;padding:3px;border:1px solid var(--line);border-radius:6px;background:#0b1012}.segmented button{height:29px;border:0;border-radius:4px;background:transparent;color:var(--muted);padding:0 10px;font-size:11px}.segmented button.is-active{background:#263137;color:var(--text)}.chartWrap{position:relative;height:320px}.chartWrap canvas{display:block;width:100%;height:100%}.chartTooltip{position:absolute;z-index:3;pointer-events:none;border:1px solid #435056;border-radius:5px;background:rgba(8,12,14,.94);color:var(--text);padding:7px 9px;font-size:11px;line-height:1.5;box-shadow:var(--shadow)}
.dayTradeBand{display:grid;grid-template-columns:230px 1fr;overflow:hidden}.dayTradeScore{display:grid;align-content:center;gap:5px;padding:20px;border-right:1px solid var(--line);background:#0d1214}.dayTradeScore span{color:var(--muted);font-size:11px}.dayTradeScore strong{font-size:38px}.dayTradeScore em{font-style:normal;font-weight:800}.dayTradeScore.bull strong,.dayTradeScore.bull em{color:var(--green)}.dayTradeScore.bear strong,.dayTradeScore.bear em{color:var(--red)}.dayTradeDetail{padding:18px}.splitScore{display:flex!important;gap:10px!important;color:var(--muted);font-size:11px}.plainList,.warningList,.numberedList{margin:0;padding-left:20px;color:var(--muted);line-height:1.65;font-size:13px}.plainList li+li,.warningList li+li,.numberedList li+li{margin-top:5px}
.detailTabs{display:flex;overflow-x:auto;padding:4px}.detailTabs button{height:40px;min-width:110px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-weight:800}.detailTabs button.is-active{background:#232c30;color:var(--text)}.detailPanel{padding:18px}.twoColumns{display:grid;grid-template-columns:1.15fr .85fr;gap:24px}.contentSection+.contentSection{margin-top:18px}.twoColumns>.contentSection+.contentSection{margin-top:0}.numberedList{padding-left:24px}.qualityChecks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.qualityCheck{display:grid;gap:3px;border-left:2px solid var(--red);padding:6px 8px;background:#0d1214}.qualityCheck.ok{border-color:var(--green)}.qualityCheck strong{font-size:11px}.qualityCheck span{color:var(--subtle);font-size:10px}.warningList{margin-top:12px;color:#e5c391}.disclaimerInline{margin:12px 0 0;color:var(--muted);font-size:11px}.scoreTable{overflow-x:auto}.scoreTable table{width:100%;border-collapse:collapse}.scoreTable th,.scoreTable td{padding:10px 12px;border-bottom:1px solid var(--line-soft);text-align:right;font-size:12px}.scoreTable th:first-child,.scoreTable td:first-child{text-align:left}.scoreTable th{color:var(--subtle);font-weight:700}.unavailable{color:var(--subtle)}
.patternGrid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:7px;overflow:hidden}.patternColumn{min-width:0;border-right:1px solid var(--line)}.patternColumn:last-child{border-right:0}.patternColumn header{padding:12px;border-bottom:1px solid var(--line);background:#0d1214}.patternColumn header strong{display:block;font-size:13px}.patternColumn header span{display:block;margin-top:3px;color:var(--subtle);font-size:10px}.patternItem{padding:12px;border-bottom:1px solid var(--line-soft)}.patternItem:last-child{border-bottom:0}.patternTitle{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.patternTitle strong{font-size:12px}.patternTitle span{color:var(--cyan);font-size:16px;font-weight:900}.probabilityTrack{height:3px;margin:8px 0;background:#243035}.probabilityTrack i{display:block;height:100%;background:var(--cyan)}.patternItem ul{margin:0;padding-left:16px;color:var(--muted);font-size:10px;line-height:1.5}
.industrySection{padding-bottom:18px;border-bottom:1px solid var(--line)}.factorRow{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.factorRow span{border:1px solid #405157;border-radius:4px;padding:5px 8px;color:var(--cyan);font-size:10px}.newsList{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}.newsItem{display:grid;gap:5px;min-width:0;background:var(--surface);color:var(--text);text-decoration:none;padding:12px}.newsItem:hover{background:#182024}.newsMeta{display:flex;gap:7px;flex-wrap:wrap;color:var(--subtle);font-size:10px}.newsItem strong{font-size:12px;line-height:1.5}.sectionNote{margin:-4px 0 14px;color:var(--muted);font-size:11px}.riskList{display:grid;gap:8px}.riskItem{display:grid;grid-template-columns:24px 1fr;border:1px solid var(--line);border-radius:6px;padding:12px}.riskItem:has(input:checked){border-color:var(--gold);background:rgba(217,184,108,.05)}.riskItem input{margin:3px 0 0;accent-color:var(--gold)}.riskTitle{display:flex;justify-content:space-between;gap:12px}.riskTitle strong{font-size:12px}.riskTitle span{color:var(--red);font-size:10px}.riskDelta{margin:6px 0;color:#e8b0aa;font-size:10px}.riskEvidence{display:grid;gap:4px}.riskEvidence a{color:var(--cyan);font-size:10px;text-decoration:none}.riskSummary{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.riskApplied{border-left:2px solid var(--red);background:#0d1214;padding:7px 9px;font-size:10px}
.dataGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.dataGrid section h2{margin:0 0 10px;font-size:14px}.metricList{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.metric{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:11px}.metric:nth-child(odd){padding-right:14px}.metric:nth-child(even){padding-left:14px;border-left:1px solid var(--line-soft)}.metric span{color:var(--muted)}.marketList{display:grid}.marketItem{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-soft)}.marketItem strong{display:block;font-size:11px}.marketItem span{color:var(--muted);font-size:10px}.marketItem em{color:var(--gold);font-style:normal;font-weight:900}.sourceLine{display:flex;gap:12px;margin-top:20px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.sourceLine strong{color:var(--text)}.legalNote{margin:0;padding:0 6px;color:var(--subtle);font-size:10px;line-height:1.6}
@media(max-width:1100px){.radarGrid{grid-template-columns:repeat(2,1fr)}.patternGrid{grid-template-columns:repeat(2,1fr)}.patternColumn:nth-child(2){border-right:0}.patternColumn:nth-child(-n+2){border-bottom:1px solid var(--line)}.headerInner{grid-template-columns:1fr auto}.headerInner>.quietButton{display:none}.instrumentHeader{grid-template-columns:1fr auto auto}.instrumentHeader>.quietButton{grid-column:1/-1;width:100%}}
@media(max-width:760px){.headerInner{height:auto;min-height:68px;padding:10px 0;grid-template-columns:1fr}.primaryTabs{width:100%}.primaryTab{min-width:0}.appShell{width:min(100% - 20px,1360px);padding-top:18px}.pageTitle{align-items:flex-start;flex-direction:column}.dateStamp{border-left:0;border-top:2px solid var(--gold);padding:8px 0 0}.commandBand{grid-template-columns:1fr}.commandGroup{align-items:stretch;flex-direction:column}.commandGroup label,.commandGroup select,.commandGroup .primaryButton{width:100%}.radarGrid{grid-template-columns:1fr}.searchForm{grid-template-columns:1fr}.instrumentHeader{grid-template-columns:1fr 1fr;gap:14px}.instrumentName{grid-column:1/-1}.quoteBlock{border-left:0;padding-left:0}.qualityBlock{padding-left:12px}.scoreStrip{grid-template-columns:1fr}.scoreStrip article{border-right:0;border-bottom:1px solid var(--line)}.scoreStrip article:last-child{border-bottom:0}.verdictBand{grid-template-columns:1fr}.chartWrap{height:260px}.dayTradeBand{grid-template-columns:1fr}.dayTradeScore{border-right:0;border-bottom:1px solid var(--line)}.twoColumns,.dataGrid{grid-template-columns:1fr}.patternGrid{grid-template-columns:1fr}.patternColumn,.patternColumn:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.patternColumn:last-child{border-bottom:0}.newsList{grid-template-columns:1fr}.qualityChecks{grid-template-columns:repeat(2,1fr)}.metricList{grid-template-columns:1fr}.metric:nth-child(odd),.metric:nth-child(even){padding-left:0;padding-right:0;border-left:0}.riskTitle{flex-direction:column}.sectionHeading{align-items:flex-start}.sectionHeading>div:first-child{align-items:flex-start;flex-direction:column;gap:3px}.segmented{flex-direction:row!important}.watchBand .sectionHeading{align-items:center}.watchBand .sectionHeading>div:first-child{flex-direction:row;align-items:baseline}}
@media(max-width:420px){.instrumentHeader{grid-template-columns:1fr}.qualityBlock{border-left:0;padding-left:0}.chartWrap{height:230px}.qualityChecks{grid-template-columns:1fr}.quickSymbols{display:grid;grid-template-columns:repeat(3,1fr)}.quickSymbols button{padding:0 5px}.detailTabs button{min-width:96px}}
