:root{--bg:#f5f7fb;--panel:#fff;--ink:#172033;--muted:#687386;--line:#dce2ec;--blue:#246bce;--green:#149b72;--orange:#d66b24;--red:#c74444;}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,"Noto Sans CJK SC",sans-serif}
main{max-width:1320px;margin:0 auto;padding:24px 18px 44px}h1{margin:0 0 5px;font-size:26px}h2{font-size:17px;margin:0 0 12px}h3{font-size:14px;margin:0 0 8px}.sub{color:var(--muted);margin:0 0 20px}.notice{padding:10px 13px;border-left:4px solid var(--blue);background:#eaf2ff;border-radius:6px;margin-bottom:18px;color:#30415e}
.layout{display:grid;grid-template-columns:330px 1fr;gap:18px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;box-shadow:0 3px 13px #2538580b}.controls{position:static}.group{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.group:first-of-type{border-top:0;padding-top:0;margin-top:0}.field{display:grid;grid-template-columns:1fr 112px;gap:8px;align-items:center;margin:8px 0}.field label{color:#3c4658}.field small{display:block;color:var(--muted);font-size:11px}.field input,.field select{width:100%;padding:6px 7px;border:1px solid #cbd3e0;border-radius:5px;background:#fff;color:var(--ink)}.field input:focus{outline:2px solid #bdd5fb;border-color:var(--blue)}
button{border:0;border-radius:6px;padding:9px 13px;cursor:pointer;font-weight:600}.primary{background:var(--blue);color:#fff}.secondary{background:#e9eef7;color:#2d4568}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.status{min-height:22px;margin-top:10px;color:var(--muted)}.status.error{color:var(--red)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:16px}.card{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fff}.card .label{font-size:12px;color:var(--muted)}.card strong{display:block;font-size:20px;margin-top:3px}.card em{font-style:normal;font-size:12px;color:var(--muted)}
.chart{width:100%;height:270px;border:1px solid var(--line);border-radius:8px;background:#fff;display:block}.chart-title{margin:16px 0 7px;font-weight:600}.ranking-curves{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,370px),1fr));gap:14px;margin:12px 0 18px}.ranking-curve{min-width:0}.ranking-curve .chart{height:220px}.legend{color:var(--muted);font-size:12px;margin-top:5px}.legend span{margin-right:16px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.blue{background:var(--blue)}.green{background:var(--green)}.orange{background:var(--orange)}.red{background:var(--red)}
.ranking-curve .line-key{display:inline-block;width:26px;height:0;margin-right:6px;border-top:3px solid;vertical-align:middle}.ranking-curve .line-key.dynamic{border-color:var(--green)}.ranking-curve .line-key.fixed{border-color:var(--orange);border-top-style:dashed}.ranking-curve .line-key.hold{border-color:var(--blue);border-top-style:dotted}.ranking-curve .curve-dates{display:block;margin-top:3px}
.table-wrap{overflow:auto;max-height:350px;border:1px solid var(--line);border-radius:7px}table{border-collapse:collapse;width:100%;font-size:12px;background:#fff}th,td{padding:6px 8px;border-bottom:1px solid #edf0f5;white-space:nowrap;text-align:right}th:first-child,td:first-child{text-align:left}th{position:sticky;top:0;background:#f1f4f9;color:#42516a}.downloads{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.downloads a{color:var(--blue);text-decoration:none;background:#edf4ff;padding:6px 9px;border-radius:5px}
.recommend-result{border:1px solid #bdd5fb;border-radius:7px;background:#f7faff;padding:10px;margin-top:10px;font-size:12px}.recommend-result p{margin:6px 0}.recommend-result ul{margin:8px 0;padding-left:18px;color:#714b15}.recommend-result #recommend_numbers{font-variant-numeric:tabular-nums;white-space:pre-line;line-height:1.75}.recommend-result button{margin:6px 0}
.price-up,.switch-on{color:#c74444;font-weight:700}.price-down,.switch-off{color:#149b72;font-weight:700}.level-change{display:block;font-size:11px;line-height:1.2;margin-top:1px}
[hidden]{display:none!important}
.quick-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.quick-nav a{background:#fff;border:1px solid var(--line);border-radius:7px;color:#244775;padding:8px 11px;text-decoration:none;font-weight:600}
.quick-nav a:hover,.quick-nav a:focus-visible{background:#eaf2ff}
.disclosure>summary{cursor:pointer;font-weight:650;color:#294e7c;list-style-position:inside}
.disclosure[open]>summary{margin-bottom:12px}
.subgroup{border-top:1px dashed var(--line);padding-top:12px;margin-top:14px}
.controls textarea{width:100%;resize:vertical;border:1px solid #cbd3e0;border-radius:5px;padding:7px}
.layout>section{min-width:0}
.layout>section:last-child>.panel{margin-bottom:16px}
button:disabled{opacity:.6;cursor:wait}
button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #76aaf1;outline-offset:2px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-nav a{flex:1 1 42%;text-align:center}.table-wrap{max-width:100%}}
@media(max-width:480px){main{padding:16px 10px 32px}.panel{padding:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card strong{font-size:16px}.field{grid-template-columns:minmax(0,1fr) 108px}.quick-nav a{font-size:12px}}
@media(max-width:900px){#watchlist_panel .watchlist-close-gs,#holdings_panel .holdings-close-gs{display:none}}
.gs-state{display:inline-block;padding:0 6px;border-radius:3px;font-size:12px;white-space:nowrap}
.gs-g1{background:#c62828;color:#fff}.gs-g2{background:#fde0dc;color:#b71c1c}
.gs-s2{background:#dcedc8;color:#1b5e20}.gs-s1{background:#2e7d32;color:#fff}.gs-none{color:#999}
.holdings-actions{display:flex;gap:8px;flex-wrap:wrap}.holdings-form{padding:16px 0;border-top:1px solid var(--line);margin-top:12px}.holdings-basis{display:block;color:var(--muted);margin-top:8px}.workspace-footer{margin-top:24px;text-align:center;font-size:12px;color:var(--muted)}.status:empty{display:none}.holdings-panel .table-wrap{max-height:420px}.controls>div.group>small{display:block;margin-top:8px;color:var(--muted)}.layout:not(:has(#research_results>div:not([hidden]))){grid-template-columns:1fr}.layout:not(:has(#research_results>div:not([hidden])))>.controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.layout:not(:has(#research_results>div:not([hidden])))>.controls>h2,.layout:not(:has(#research_results>div:not([hidden])))>.controls>details,.layout:not(:has(#research_results>div:not([hidden])))>.controls>#status{grid-column:1/-1}.layout:not(:has(#research_results>div:not([hidden])))>.controls>.group{margin:0;padding-top:12px;border-top:1px solid var(--line)}@media(max-width:700px){.layout:not(:has(#research_results>div:not([hidden])))>.controls{grid-template-columns:1fr}.holdings-heading{flex-wrap:wrap}}
.controls .field:has(#history_window){grid-template-columns:1fr 165px}#watchlist_rows td button:not([data-watchlist-remove]){background:transparent;color:var(--blue);font-weight:500;padding:3px 0}.holding-close-date{display:block;color:var(--muted);font-size:10px}.account-totals{font-size:13px;color:#344a5c;margin:14px 0 6px}.holdings-form #holding_quote_status{grid-column:1/-1;margin:0}.holdings-form input[readonly]{background:#f4f6f9;color:#546779}.account-apply>input{padding:7px;border:1px solid var(--line);border-radius:5px}.watchlist-code{background:transparent;color:var(--blue);padding:0;text-decoration:underline}
.workspace-header,.holdings-heading{display:flex;justify-content:space-between;align-items:start;gap:16px}.workspace-header .brand-en{font-size:18px;font-weight:450}.session-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.session-controls .status{margin:0}.holdings-panel{margin-bottom:20px}.holdings-heading .sub{margin-bottom:12px}.holdings-form{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:12px;align-items:end}.holdings-form .field{display:block;margin:0}.holdings-form label{display:block;margin-bottom:6px;font-size:12px}.account-apply{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px}.account-apply .field{grid-template-columns:150px 160px}.holdings-panel tbody button{padding:5px 10px;margin-left:5px}.holdings-panel #account_status{white-space:pre-line}@media(max-width:900px){.holdings-form{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-header{flex-direction:column;margin-bottom:20px}.workspace-header .sub{margin-bottom:0}}@media(max-width:480px){.holdings-form{grid-template-columns:1fr}.holdings-heading{align-items:center}.account-apply .field{grid-template-columns:1fr 130px}}

.panel.sg-viz{color-scheme:light;--sg-surface:#fff;--sg-ink:#172033;--sg-muted:#687386;--sg-grid:#e5eaf1;--sg-up:#e02424;--sg-down:#00a3ff;--sg-rise:#d23f3f;--sg-fall:#2f8f5b;--sg-band-up:#e08214;--sg-band-down:#149b72;--sg-t:#a64ce6;color:var(--sg-ink);background:var(--sg-surface)}
.sg-chart-card{min-width:0}.sg-chart-card p{color:var(--sg-muted);font-size:12px;margin:5px 0}.sg-chart-card svg.chart{width:100%;height:220px;display:block;touch-action:pan-y}.sg-chart-card svg text{fill:var(--sg-muted);font:11px system-ui,sans-serif}.sg-chart-card .legend{color:var(--sg-muted);display:flex;flex-wrap:wrap;gap:5px}.sg-chart-card .legend span{margin-right:8px}.sg-key{display:inline-block;width:24px;margin-right:5px;vertical-align:middle;border-top:2px solid var(--sg-ink)}.sg-key.up{border-color:var(--sg-up)}.sg-key.down{border-color:var(--sg-down)}.sg-key.rise,.sg-key.fall{height:8px;width:8px;border:0;background:var(--sg-rise)}.sg-key.fall{background:var(--sg-fall)}.sg-key.grid-up{border-color:var(--sg-band-up);border-top-style:dashed}.sg-key.grid-down{border-color:var(--sg-band-down);border-top-style:dashed}.sg-readout{min-height:50px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.sg-chart-card details{margin-top:12px}#sg_results{overflow-x:auto;max-width:100%}
@media(forced-colors:active){.panel.sg-viz{--sg-surface:Canvas;--sg-ink:CanvasText;--sg-muted:CanvasText;--sg-grid:GrayText;--sg-up:CanvasText;--sg-down:CanvasText;--sg-rise:CanvasText;--sg-fall:CanvasText;--sg-band-up:CanvasText;--sg-band-down:CanvasText;--sg-t:CanvasText}.sg-key.down{border-top-style:dashed}}
