:root{color:#20252b;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f6f7;font-family:Inter,Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{background:#f4f5f6;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}h1,h2,p{margin:0}.app-shell{width:min(1440px,100%);margin:0 auto;padding:22px 28px 28px}.topbar,.brand-block,.toolbar,.section-heading,.panel-title,.table-title,.operation-title,.search-box,.alert{align-items:center;display:flex}.topbar{justify-content:space-between;gap:24px;padding:12px 0 20px}.brand-block{gap:12px}.brand-mark{color:#04756f;background:#e7f6f4;border:1px solid #c7e9e4;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}h1{color:#18222d;letter-spacing:0;font-size:22px;font-weight:780;line-height:1.2}.brand-block p,.section-heading p,.table-title p,.disclaimer,.muted{color:#65717d}.brand-block p{margin-top:4px;font-size:13px}.toolbar{flex-wrap:wrap;justify-content:flex-end;gap:10px}.compact-toolbar{flex-wrap:nowrap}.control{color:#5b6672;gap:5px;min-width:174px;font-size:12px;font-weight:680;display:grid}.wide-control{min-width:min(420px,100%)}.control span{align-items:center;gap:5px;display:inline-flex}select,input{color:#20252b;background:#fff;border:1px solid #d8dee6;border-radius:8px;outline:none;height:36px}select{padding:0 34px 0 12px}input{padding:0 12px 0 0}select:focus,input:focus{border-color:#07847d;box-shadow:0 0 0 3px #07847d1f}.icon-button{color:#2d3945;cursor:pointer;background:#fff;border:1px solid #d8dee6;border-radius:8px;align-self:end;place-items:center;width:36px;height:36px;display:grid}.icon-button:disabled{cursor:progress;opacity:.6}.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert{color:#8f2e2e;background:#fff1f1;border:1px solid #f2c8c8;border-radius:8px;gap:8px;margin-bottom:14px;padding:12px 14px}.loading-banner{z-index:5;color:#254568;background:#eef6ff;border:1px solid #cfe2f5;border-radius:8px;align-items:center;gap:8px;margin-bottom:14px;padding:11px 14px;font-size:13px;font-weight:720;display:flex;position:sticky;top:0;box-shadow:0 6px 18px #354f6a14}.section-panel{background:#fff;border:1px solid #e2e6ea;border-radius:12px;margin-bottom:18px;overflow:hidden}.section-panel.is-updating{opacity:.72;transition:opacity .18s}.section-heading{border-bottom:1px solid #e5e9ef;justify-content:space-between;gap:18px;padding:18px 18px 16px}.section-heading h2{color:#18222d;align-items:center;gap:8px;font-size:21px;font-weight:780;line-height:1.25;display:inline-flex}.section-heading p{margin-top:6px;font-size:13px}.eyebrow{color:#365586;margin-bottom:6px;font-size:12px;font-weight:780;display:block}.market-kpis,.summary-cards,.operation-cards{gap:12px;padding:16px 18px;display:grid}.market-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-cards{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:0}.operation-cards{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:0}.kpi,.operation-panel,.panel,.holdings-panel,.history-disclosure{background:#fff;border:1px solid #e2e6ea;border-radius:10px}.section-panel>.operation-panel,.section-panel>.holdings-panel,.section-panel>.history-disclosure{margin:0 18px 16px}.kpi{min-height:92px;padding:16px 18px}.kpi span{color:#6a7480;font-size:12px;font-weight:680;display:block}.kpi strong{white-space:nowrap;margin-top:9px;font-size:clamp(30px,3vw,44px);font-weight:780;line-height:1;display:inline-block}.kpi em{color:#65717d;margin-top:10px;font-size:14px;font-style:normal;font-weight:650;display:block}.term-with-help{vertical-align:middle;align-items:center;gap:5px;width:fit-content;max-width:100%;display:inline-flex;position:relative;overflow:visible}.kpi .term-with-help,.operation-head .term-with-help,.signal-head .term-with-help,.premium-head .term-with-help{color:inherit;font-size:inherit;font-weight:inherit;display:inline-flex}.help-button{color:#52606c;cursor:help;background:#f4f7f9;border:1px solid #c8d1da;border-radius:50%;flex:none;place-items:center;width:17px;height:17px;padding:0;font-size:11px;font-weight:800;line-height:1;display:inline-grid}.help-button:focus{border-color:#07847d;outline:0;box-shadow:0 0 0 3px #07847d24}.help-popover{z-index:20;color:#26313b;opacity:0;pointer-events:none;text-align:left;white-space:normal;background:#fff;border:1px solid #d8dee6;border-radius:8px;width:min(280px,100vw - 40px);padding:10px 11px;font-size:12px;font-weight:650;line-height:1.55;transition:opacity .12s;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 10px 28px #20252b24}.help-popover.align-right{left:auto;right:calc(100% + 8px)}.term-with-help:hover .help-popover,.term-with-help:focus-within .help-popover{opacity:1}.skeleton-card span,.skeleton-card strong,.skeleton-card em,.skeleton-row span{color:#0000;background:linear-gradient(90deg,#eef1f4 25%,#f8fafb 37%,#eef1f4 63%) 0 0/400% 100%;border-radius:6px;animation:1.2s ease-in-out infinite skeletonShimmer;display:block}.skeleton-card span{width:54%;height:14px}.skeleton-card strong{width:72%;height:38px;margin-top:14px}.skeleton-card em{width:44%;height:14px;margin-top:12px}.skeleton-row span{width:82%;height:16px}@keyframes skeletonShimmer{0%{background-position:100%}to{background-position:0}}.operation-cards .kpi{border-width:2px;min-height:108px}.operation-cards .kpi span{font-size:19px}.operation-cards .kpi strong{margin-top:18px}.operation-cards .kpi em{text-align:right}.delete-card{background:#f5f5f5;border-color:#a6abb1}.add-card{background:#fff0f0;border-color:#d85b5c}.cut-card{background:#eef8f4;border-color:#64b49f}.report-heading{align-items:flex-end}.report-controls{min-width:min(430px,100%)}.report-controls .control,.report-controls select{width:100%}.report-identity{align-items:baseline;gap:10px;padding:15px 18px 8px;display:flex}.report-identity b{color:#18222d;font-size:28px;font-weight:800}.report-identity span{color:#4f5964;font-size:19px;font-weight:720}.report-identity small{color:#87909a;font-size:13px;font-weight:650}.operation-panel{overflow:hidden}.operation-title{color:#8a939e;border-bottom:1px solid #e5e9ef;justify-content:space-between;gap:12px;padding:14px 16px}.operation-title h2,.operation-title span{align-items:center;gap:5px;font-size:15px;font-weight:760;display:inline-flex}.operation-table,.signal-table,.holdings-table,.premium-table{width:100%}.operation-head,.operation-row{grid-template-columns:minmax(160px,1.25fr) 110px minmax(110px,.8fr) minmax(110px,.8fr) minmax(120px,.9fr);align-items:center;gap:12px;display:grid}.operation-head{color:#2e3338;background:#f8fafb;border-bottom:1px solid #e6ebef;padding:11px 16px;font-size:13px;font-weight:760}.operation-row{background:#fff;border-bottom:1px solid #edf1f4;min-height:72px;padding:10px 16px;font-size:20px}.operation-stock,.weight-stack{gap:3px;display:grid}.operation-stock b,.weight-stack b{font-weight:760}.operation-stock small,.weight-stack small{color:#8a939e;font-size:17px}.status-pill{border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-width:74px;height:34px;padding:0 16px;font-size:18px;font-weight:760;display:inline-flex}.status-pill.delete{color:#6d7278;background:#eceeef}.status-pill.increase{color:#d45a5c;background:#fff1f1}.status-pill.decrease{color:#5cad98;background:#eef8f4}.status-pill.new{color:#9c8522;background:#fbf7df}.operation-number{font-weight:760}.operation-number.increase,.increase-number{color:#d45a5c;font-weight:760}.operation-number.decrease,.decrease-number{color:#5cad98;font-weight:760}.operation-number.delete{color:#6d7278}.history-disclosure{overflow:hidden}.history-disclosure summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;min-height:50px;padding:13px 16px;list-style:none;display:flex}.history-disclosure summary::-webkit-details-marker{display:none}.history-disclosure summary span{color:#18222d;align-items:center;gap:7px;font-size:15px;font-weight:760;display:inline-flex}.history-disclosure summary small{color:#87909a;font-size:13px;font-weight:650}.premium-chart{background:linear-gradient(#edf1f4 1px,#0000 1px) 0 0/100% 25%,#fff;border-top:1px solid #e8edf1;min-height:216px;padding:18px 18px 12px;position:relative}.premium-chart.empty{justify-content:center;align-items:center}.premium-chart p{color:#7b858f;font-size:14px;font-weight:650}.premium-zero{background:#a8b0b8;height:1px;position:absolute;left:4px;right:4px}.premium-bars{grid-auto-columns:minmax(4px,1fr);grid-auto-flow:column;gap:3px;height:162px;display:grid;position:relative}.premium-bar-slot{min-width:3px;position:relative}.premium-bar{border-radius:2px;width:min(10px,82%);min-height:3px;position:absolute;left:50%;transform:translate(-50%)}.premium-bar.positive{background:#d45a5c}.premium-bar.negative{background:#5cad98}.premium-axis{color:#6f7983;justify-content:space-between;gap:12px;padding-top:10px;font-size:12px;font-weight:700;display:flex}.premium-head,.premium-row{grid-template-columns:repeat(4,minmax(90px,1fr));align-items:center;gap:12px;display:grid}.premium-head{color:#2e3338;background:#f8fafb;border-top:1px solid #e6ebef;border-bottom:1px solid #e6ebef;padding:12px 16px;font-size:13px;font-weight:760}.premium-row{border-bottom:1px solid #eef2f5;min-height:54px;padding:10px 16px;font-size:18px}.signal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 18px 16px;display:grid}.panel{min-height:356px;overflow:hidden}.panel-title{border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:14px 16px 12px}.panel-title h2,.table-title h2{align-items:center;gap:7px;font-size:15px;font-weight:760;line-height:1.2;display:inline-flex}.panel-title.positive{color:#d45a5c}.panel-title.negative{color:#5cad98}.signal-head,.signal-row{grid-template-columns:minmax(132px,1.5fr) repeat(5,minmax(72px,.75fr));align-items:center;gap:8px;display:grid}.signal-head,.holdings-head{color:#68737e;background:#f8fafb;border-bottom:1px solid #e7ebf0;padding:9px 16px;font-size:11px;font-weight:760}.signal-row{border-bottom:1px solid #eef2f5;min-height:40px;padding:8px 16px;font-size:13px;position:relative;overflow:hidden}.signal-row>span{z-index:1;position:relative}.stock-cell{align-items:baseline;gap:8px;min-width:0;display:flex}.stock-cell b{font-variant-numeric:tabular-nums;font-weight:780}.score{color:#1f2b35;background:#f1f5f7;border-radius:6px;justify-content:center;align-items:center;width:34px;height:24px;font-weight:760;display:inline-flex}.magnitude{z-index:0;opacity:.48;position:absolute;top:7px;bottom:7px;left:0}.positive-bg{background:linear-gradient(90deg,#d45a5c29,#d45a5c00)}.negative-bg{background:linear-gradient(90deg,#5cad9829,#5cad9800)}.empty-row{color:#68737e;padding:18px 16px;font-size:13px}.holdings-panel{overflow:hidden}.table-title{border-bottom:1px solid #e5e9ef;justify-content:space-between;gap:16px;padding:15px 16px}.market-panel .table-title{border-top:1px solid #edf1f4}.table-title p{margin-top:5px;font-size:12px}.search-box{background:#fff;border:1px solid #d8dee6;border-radius:8px;gap:8px;width:min(320px,100%);padding:0 11px}.search-box input{width:100%;box-shadow:none;border:0}.holdings-head,.holding-row{grid-template-columns:minmax(150px,1.4fr) repeat(4,minmax(110px,1fr));align-items:center;gap:12px;display:grid}.holding-row{border-bottom:1px solid #eef2f5;min-height:43px;padding:9px 16px;font-size:13px}.holding-row:nth-child(2n){background:#fbfcfd}.impact-split{color:#8a939e;margin-top:3px;font-size:12px;font-weight:650;display:block}.disclaimer{padding:14px 2px 0;font-size:12px;line-height:1.6}.term-with-help>.help-popover{color:#26313b;font-size:12px;font-weight:650;display:block;position:absolute}@media (width<=1040px){.topbar,.section-heading,.report-heading{flex-direction:column;align-items:flex-start}.toolbar,.report-controls{justify-content:flex-start;width:100%}.market-kpis,.summary-cards,.signal-grid{grid-template-columns:1fr}}@media (width<=760px){.app-shell{background:#f4f5f6;padding:0 0 18px}.topbar{background:#fff;border-bottom:1px solid #eef1f3;gap:12px;padding:14px 18px 12px}.brand-mark{width:32px;height:32px}h1{font-size:19px}.brand-block p{display:none}.compact-toolbar{grid-template-columns:1fr 38px;gap:8px;display:grid}.control{min-width:0}select{width:100%;padding:0 25px 0 10px;font-size:12px}.section-panel{border-left:0;border-right:0;border-radius:0}.section-heading{padding:17px 18px 14px}.section-heading h2{font-size:21px}.section-heading p{font-size:12px}.market-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px 18px}.market-kpis .kpi{min-height:96px;padding:12px 10px}.market-kpis .kpi strong{font-size:clamp(24px,8vw,34px)}.summary-cards{grid-template-columns:1fr;gap:10px;padding:0 18px 14px}.summary-cards .kpi{min-height:104px}.operation-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 18px 16px}.operation-cards .kpi{border-radius:10px;min-height:104px;padding:12px 8px 10px}.operation-cards .kpi span{font-size:clamp(16px,4.7vw,22px)}.operation-cards .kpi strong{margin-top:22px;font-size:clamp(30px,9vw,42px)}.operation-cards .kpi em{font-size:14px}.report-identity{gap:2px;padding:14px 18px 12px;display:grid}.report-identity b{font-size:26px}.report-identity span{font-size:18px}.section-panel>.operation-panel,.section-panel>.holdings-panel,.section-panel>.history-disclosure{border-left:0;border-right:0;border-radius:0;margin:0 0 14px}.operation-title{flex-direction:column;align-items:flex-start;padding:13px 18px}.operation-head,.operation-row{grid-template-columns:minmax(70px,1.08fr) minmax(54px,.7fr) minmax(62px,.86fr) minmax(64px,.82fr) minmax(70px,.92fr);gap:5px;padding-left:12px;padding-right:12px}.operation-head{font-size:11px}.operation-row{min-height:82px;font-size:clamp(16px,4.25vw,19px)}.operation-stock small,.weight-stack small{font-size:clamp(13px,3.8vw,16px)}.status-pill{min-width:52px;height:30px;padding:0 8px;font-size:clamp(14px,3.9vw,17px)}.signal-grid{display:none}.signal-table,.holdings-table,.premium-table{overflow-x:auto}.signal-head,.signal-row{min-width:760px}.holdings-head,.holding-row{min-width:680px}.premium-chart{min-height:220px}.premium-head,.premium-row{grid-template-columns:.8fr 1fr 1fr 1fr;min-width:0;font-size:16px}.table-title{flex-direction:column;align-items:stretch}.search-box{width:100%}.help-popover,.help-popover.align-right{width:min(260px,100vw - 36px);top:calc(100% + 8px);left:0;right:auto;transform:none}}
