:root{--bg-app:#f0f2f5;--bg-glass:#ffffffb3;--bg-glass-hover:#ffffffd9;--text-primary:#1a202c;--text-secondary:#64748b;--text-tertiary:#94a3b8;--border-light:#fff9;--border-dim:#0000000f;--up:#f04438;--up-bg:#f044381a;--down:#12b76a;--down-bg:#12b76a1a;--flat:#64748b;--flat-bg:#64748b1a;--accent:#3b82f6;--shadow-sm:0 2px 8px #0000000a;--shadow-card:0 8px 24px -4px #00000014;--bg-main:var(--bg-app);--bg-soft:#e8ecf1;--panel:var(--bg-glass);--panel-strong:#fffffff2;--ink:var(--text-primary);--ink-soft:var(--text-secondary);--line:var(--border-dim);--bg-glow-a:#3b82f62e;--bg-glow-b:#f044381f;--hero-orb:#3b82f640;--button-primary-text:#fff;--accent-soft:#3b82f624;--accent-strong:#2563eb;--neutral:var(--flat);--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--shadow-soft:var(--shadow-sm);--shadow-panel:var(--shadow-card);--shadow-float:0 12px 32px #0000001f}:root[data-theme=dark]{--bg-app:#0f172a;--bg-glass:#1e293ba6;--bg-glass-hover:#1e293bcc;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--border-light:#ffffff1a;--border-dim:#0003;--up:#f97066;--up-bg:#f9706626;--down:#32d583;--down-bg:#32d58326;--flat:#94a3b8;--flat-bg:#94a3b826;--accent:#60a5fa;--shadow-sm:0 2px 8px #0003;--shadow-card:0 8px 32px #0006;--bg-main:var(--bg-app);--bg-soft:#1e293b;--panel:var(--bg-glass);--panel-strong:#0f172af0;--ink:var(--text-primary);--ink-soft:var(--text-secondary);--line:var(--border-dim);--bg-glow-a:#60a5fa38;--bg-glow-b:#f9706633;--hero-orb:#60a5fa4d;--button-primary-text:#fff;--accent-soft:#60a5fa33;--accent-strong:#3b82f6;--neutral:var(--flat);--shadow-soft:var(--shadow-sm);--shadow-panel:var(--shadow-card);--shadow-float:0 12px 40px #00000080}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 92% 8%,var(--bg-glow-a),transparent 28%),radial-gradient(circle at 8% 18%,var(--bg-glow-b),transparent 24%),linear-gradient(160deg,var(--bg-main)0%,var(--bg-soft)100%);font-family:Source Han Sans SC,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}.page-shell{width:min(1380px,94vw);margin:0 auto;padding:36px 0 56px}.hero-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-strong);box-shadow:var(--shadow-panel);margin-bottom:22px;padding:26px;position:relative;overflow:visible}.theme-toggle-btn{border:1px solid var(--border-light);background:var(--bg-glass);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;z-index:10;-webkit-backdrop-filter:blur(4px);border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.theme-toggle-btn:hover{background:var(--bg-glass-hover);color:var(--accent);transform:rotate(15deg)scale(1.1);box-shadow:0 4px 12px #0000001a}.theme-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-theme{width:20px;height:20px}@media (max-width:768px){.theme-toggle-btn{width:32px;height:32px;top:1rem;right:1rem}.icon-theme{width:16px;height:16px}}.hero-panel:after{content:"";background:radial-gradient(circle,var(--hero-orb)0%,#0f8f9a00 72%);pointer-events:none;border-radius:50%;width:160px;height:160px;position:absolute;inset:auto -42px -42px auto}.hero-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);align-items:stretch;gap:18px;display:grid}.hero-main{min-width:0}.hero-main .fund-search{max-width:620px}.hero-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 6px;font-size:11px;font-weight:600}.page-title{letter-spacing:-.02em;margin:0;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,serif;font-size:clamp(30px,4.4vw,46px);line-height:1.08}.hero-subtitle{max-width:920px;color:var(--ink-soft);margin:12px 0 20px;font-size:14px;line-height:1.65}.hero-metrics{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.metric-chip{border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffffa3;flex-direction:column;gap:4px;min-width:110px;padding:10px 12px;display:flex}.metric-label{color:var(--ink-soft);font-size:11px}.metric-value{color:var(--accent-strong);font-size:18px;font-weight:700}.comparison-card{border:1px solid var(--line);border-radius:var(--radius-md);min-width:0;box-shadow:var(--shadow-soft);background:#ffffffc7;flex-direction:column;padding:14px;display:flex}.comparison-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.comparison-kicker{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:11px}.comparison-title{margin:0;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,serif;font-size:18px}.comparison-excess{color:var(--ink-soft);margin:6px 0 0;font-size:12px;font-weight:600}.comparison-excess.positive{color:var(--up)}.comparison-excess.negative{color:var(--down)}.comparison-controls{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.comparison-select{border:1px solid var(--line);color:var(--ink);background:#ffffffe6;border-radius:999px;padding:6px 10px;font-size:12px}.comparison-select:focus{outline-offset:1px;outline:2px solid #0f8f9a3d}.comparison-legend{align-items:center;gap:14px;margin-top:10px;display:flex}.legend-item{color:var(--ink-soft);align-items:center;gap:6px;font-size:12px;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot.portfolio{background:#c3412f}.legend-dot.benchmark{background:#0f8f9a}.comparison-chart{min-height:230px;margin-top:8px}.comparison-loading,.comparison-empty{min-height:230px;color:var(--ink-soft);text-align:center;justify-content:center;align-items:center;font-size:13px;display:flex}.control-panel{margin-bottom:18px}.summary-strip{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-soft);gap:12px;margin-bottom:12px;padding:12px;display:flex}.summary-item{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.summary-label{color:var(--ink-soft);font-size:11px}.summary-value{font-size:18px;font-weight:700}.summary-value.positive{color:var(--up)}.summary-value.negative{color:var(--down)}.control-main{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-soft);justify-content:space-between;align-items:center;gap:16px;padding:12px;display:flex}.tab-container{align-items:center;gap:8px;display:inline-flex}.tab-item{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#ffffffb3;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.tab-item:hover{transform:translateY(-1px)}.tab-item.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#0f8f9a61}.tab-count{background:#0f8f9a2e;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.refresh-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.sort-select,.input{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#ffffffe0;padding:9px 12px;font-size:13px}.sort-select:focus,.input:focus{outline-offset:1px;outline:2px solid #0f8f9a47}.countdown-text{color:var(--ink-soft);font-size:12px}.button{color:#fff;cursor:pointer;background:linear-gradient(#16a4b0 0%,#0f8f9a 100%);border:1px solid #0f8f9a42;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:600;transition:transform .16s,box-shadow .16s,opacity .16s}.button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f8f9a47}.button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.refresh-button{padding:9px 12px}.refresh-button.loading{opacity:.7}.refresh-icon{transition:transform .3s;display:inline-block}.refresh-icon.spinning{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-secondary{color:var(--ink);border-color:var(--line);background:#fff}.settings-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-soft);margin-top:10px;margin-bottom:18px;padding:12px}.settings-content{align-items:center;gap:10px;display:flex}.settings-label{color:var(--ink-soft);font-size:13px}.settings-input{width:120px}.fund-search{position:relative}.search-input-shell{border:1px solid var(--line);background:#ffffffc2;border-radius:999px;padding:4px}.search-input{background:0 0;border:none;border-radius:999px;width:100%;padding:10px 14px}.search-input:focus{outline:none}.search-results{z-index:20;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);background:#fffcf6fa;max-height:320px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.search-result-item{text-align:left;border:none;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;gap:10px;width:100%;padding:11px 14px;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--accent-soft)}.result-code{min-width:72px;color:var(--accent-strong);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-weight:700}.result-name{color:var(--ink);flex:1}.search-loading,.search-empty{color:var(--ink-soft);padding:12px 14px;font-size:13px}.fund-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.fund-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px)saturate(180%);box-shadow:inset 0 1px 0 0 var(--border-light),inset 0 0 0 1px var(--border-dim),var(--shadow-card);border:1px solid #0000;border-radius:16px;flex-direction:column;gap:14px;padding:16px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.fund-card:hover{background:var(--bg-glass-hover);box-shadow:inset 0 1px 0 0 #ffffff4d,inset 0 0 0 1px var(--accent),0 12px 40px -8px #00000026;transform:translateY(-2px)}.fund-card.status-up{border-bottom:2px solid var(--up)}.fund-card.status-up:hover{box-shadow:0 10px 30px -5px var(--up-bg)}.fund-card.status-down{border-bottom:2px solid var(--down)}.fund-card.status-down:hover{box-shadow:0 10px 30px -5px var(--down-bg)}.text-up{color:var(--up);text-shadow:0 0 15px var(--up-bg)}.text-down{color:var(--down);text-shadow:0 0 15px var(--down-bg)}.text-flat{color:var(--flat)}.fund-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fund-info{min-width:0}.fund-name{margin:0;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,serif;font-size:18px;line-height:1.3}.fund-code{color:var(--ink-soft);margin:4px 0 0;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px}.fund-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.fund-tag{border:1px solid var(--line);color:var(--ink-soft);background:#ffffffd1;border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;line-height:1.2;display:inline-flex}.fund-tag-status.open{color:#1f8f55;background:#1f8f551f;border-color:#1f8f555c}.fund-tag-status.pending{color:#8a5c18;background:#b0721b1f;border-color:#b0721b5c}.fund-tag-status.break,.fund-tag-status.closed{color:#4f6274;background:#5a6d7e1f;border-color:#5a6d7e57}.fund-tag-sector{color:var(--accent-strong);background:#0f8f9a1f;border-color:#0f8f9a5c}.fund-tag-type{border-color:#1e425c42}.fund-actions{align-items:center;gap:6px;display:flex}.icon-button{border:1px solid var(--line);width:30px;height:30px;color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:999px;font-size:15px;line-height:1;transition:all .2s}.icon-button.confirm-state{background-color:var(--up);color:#fff;border-radius:12px;width:auto;padding:0 8px;font-size:13px;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.icon-button.active{color:#d29a18}.icon-button.danger{color:#b05646}.fund-data,.fund-holdings{border-radius:var(--radius-sm);background:#ffffffa3;border:1px solid #1e425c1a;padding:10px}.data-row,.holdings-row{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.data-row:last-child,.holdings-row:last-child{margin-bottom:0}.data-label{color:var(--ink-soft);font-size:12px}.data-value{font-size:18px;font-weight:700}.change-value.up,.profit-value.positive,.stock-change.up{color:var(--up)}.change-value.down,.profit-value.negative,.stock-change.down{color:var(--down)}.fund-meta-wrap{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.fund-meta{color:var(--ink-soft);border:1px solid var(--line);background:#fffc;border-radius:999px;padding:3px 8px;font-size:11px}.text-button{color:var(--accent-strong);cursor:pointer;pointer-events:auto;background:0 0;border:none;padding:0;font-weight:700}.amount-input,.price-input{border:1px solid var(--line);border-radius:var(--radius-sm);width:118px;padding:6px 8px}.action-buttons{flex-wrap:wrap;gap:8px;display:flex}.favorite-button,.toggle-button{flex:1;min-width:0}.favorite-button.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#0f8f9a6b}.favorite-setup-backdrop{z-index:80;background:#11202a70;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.favorite-setup-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-strong);width:min(420px,92vw);box-shadow:var(--shadow-panel);padding:16px}.favorite-setup-title{margin:0;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,serif;font-size:20px}.favorite-setup-subtitle{color:var(--ink-soft);margin:6px 0 0;font-size:13px}.favorite-setup-form{flex-direction:column;gap:10px;margin-top:12px;display:flex}.favorite-setup-field{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:12px;display:flex}.favorite-setup-input{width:100%}.favorite-setup-error{color:#b74332;margin:0;font-size:12px}.favorite-setup-actions{justify-content:flex-end;gap:8px;margin-top:2px;display:flex}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .button-secondary,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .period-button,:root[data-theme=dark] .sort-select,:root[data-theme=dark] .input,:root[data-theme=dark] .comparison-select,:root[data-theme=dark] .search-input-shell,:root[data-theme=dark] .search-results,:root[data-theme=dark] .tab-item,:root[data-theme=dark] .fund-data,:root[data-theme=dark] .fund-holdings,:root[data-theme=dark] .fund-meta,:root[data-theme=dark] .holdings-container,:root[data-theme=dark] .fund-chart,:root[data-theme=dark] .metric-chip,:root[data-theme=dark] .comparison-card,:root[data-theme=dark] .favorite-setup-card{border-color:var(--line);color:var(--ink);background:#182532c7}:root[data-theme=dark] .stock-table th{background:#0f8f9a29}:root[data-theme=dark] .fund-tag{background:#14212ee0}:root[data-theme=dark] .fund-tag-status.open{color:#7ce0a6;background:#1f8f553d;border-color:#49c97d70}:root[data-theme=dark] .fund-tag-status.pending{color:#f0cc88;background:#b0721b3d;border-color:#e0a85070}:root[data-theme=dark] .fund-tag-status.break,:root[data-theme=dark] .fund-tag-status.closed{color:#afc1d2;background:#5a6d7e33;border-color:#95acc259}:root[data-theme=dark] .fund-tag-sector{color:#8fe7ee;background:#0f8f9a47;border-color:#4ab6bf80}:root[data-theme=dark] .hero-theme-toggle{color:#d8f5f8;background:linear-gradient(#168f9a57 0%,#168f9a29 100%);border-color:#168f9a8f;box-shadow:0 12px 24px #02091080}:root[data-theme=dark] .button{color:var(--button-primary-text)}.collapsible-content{max-height:0;transition:max-height .28s;overflow:hidden}.collapsible-content.expanded{max-height:2000px}.holdings-container{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffb8;margin-top:10px;overflow:hidden}.stock-table{border-collapse:collapse;width:100%;font-size:12px}.stock-table th,.stock-table td{border-bottom:1px solid var(--line);padding:8px 10px}.stock-table th{text-align:left;color:var(--ink-soft);background:#0f8f9a12;font-weight:600}.stock-table tr:last-child td{border-bottom:none}.stock-price{font-weight:700}.empty-holdings,.loading-holdings{color:var(--ink-soft);margin-top:8px;font-size:12px}.fund-chart{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffc2;padding:10px}.chart-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.chart-title{margin:0;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,serif;font-size:14px}.period-selector{flex-wrap:wrap;gap:6px;display:flex}.period-button{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:999px;padding:5px 9px;font-size:11px}.period-button.active{color:var(--accent-strong);background:var(--accent-soft);border-color:#0f8f9a6b}.chart-container{min-height:280px}.chart-loading,.chart-empty{height:280px;color:var(--ink-soft);justify-content:center;align-items:center;font-size:13px;display:flex}.empty-state{border-radius:var(--radius-md);background:var(--panel);text-align:center;color:var(--ink-soft);border:1px dashed #1e425c3d;padding:28px}.empty-state h2{color:var(--ink);margin:0 0 8px;font-size:20px}.empty-state p{margin:0}@media (min-width:1180px){.fund-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fund-card{gap:12px;padding:14px}.fund-name{font-size:16px}.fund-code{font-size:11px}.data-value{font-size:16px}.data-row{margin-bottom:6px}}@media (min-width:1400px){.fund-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:980px){.hero-layout{grid-template-columns:1fr}.hero-main .fund-search{max-width:100%}.control-main{flex-direction:column;align-items:stretch}.refresh-controls{justify-content:flex-start}}@media (max-width:768px){.page-shell{width:min(94vw,560px);padding-top:20px}.hero-panel{padding:18px}.hero-theme-toggle{padding:8px 12px}.hero-subtitle{font-size:13px}.comparison-header{flex-direction:column;align-items:stretch}.comparison-controls{align-items:stretch}.comparison-select{width:100%}.comparison-legend{margin-top:8px}.comparison-chart,.comparison-loading,.comparison-empty{min-height:210px}.fund-grid{grid-template-columns:1fr}.summary-strip{flex-direction:column}.tab-container{width:100%}.tab-item{flex:1;justify-content:space-between}.settings-content{flex-direction:column;align-items:stretch}.settings-input{width:100%}.data-value{font-size:16px}.favorite-setup-actions{flex-direction:column}.favorite-setup-actions .button{width:100%}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--line)transparent}.fund-card{transition:transform .18s,box-shadow .18s,border-color .18s;position:relative}:root[data-theme=dark] .fund-card{border:1px solid #ffffff0d}:root[data-theme=dark] .fund-card:hover{border-color:#ffffff1a;box-shadow:0 20px 40px #0000004d,0 0 0 1px #ffffff0d}.fund-card:hover{border-color:var(--accent);transform:translateY(-4px)scale(1.01);box-shadow:0 20px 40px #0000001a}body,.fund-card,.comparison-card,.sector-card,.control-panel,.hero-panel{transition:background .4s,color .4s,border-color .4s,box-shadow .4s}.page-shell:before{content:"";pointer-events:none;z-index:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");position:fixed;inset:0}.data-value,.metric-value,.change-value,.profit-value,.summary-value,.stock-price,.amount-input,.price-input{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono-Regular,Consolas,monospace}@keyframes value-flash-up{0%{background-color:#0000}10%{background-color:#0f8f9a26}to{background-color:#0000}}.mobile-hidden{opacity:.6;font-size:.85rem;display:flex}@media (max-width:768px){.mobile-hidden{display:none}.fund-card.expanded .mobile-hidden{margin-top:8px;display:flex}}@keyframes value-flash-down{0%{background-color:#0000}10%{background-color:#c3412f26}to{background-color:#0000}}@keyframes value-flash-neutral{0%{background-color:#0000}10%{background-color:#78909c26}to{background-color:#0000}}.value-flash-wrapper{border-radius:4px;padding:2px 6px;transition:background-color .15s;display:inline-block}.value-flash{animation:.6s value-flash-neutral}.value-flash-wrapper.up .value-flash{animation:.6s value-flash-up}.value-flash-wrapper.down .value-flash{animation:.6s value-flash-down}
.toast-container{z-index:1200;flex-direction:column;gap:8px;max-width:min(420px,90vw);display:flex;position:fixed;top:14px;right:14px}.toast{color:#1a2a36;cursor:pointer;background:#fffcf6f5;border:1px solid #1e425c33;border-left:4px solid #1e425c66;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;animation:.18s toast-enter;display:flex;box-shadow:0 14px 28px #1b344a24}.toast-success{border-left-color:#1f8f55}.toast-error{border-left-color:#c3412f}.toast-warning{border-left-color:#b4780f}.toast-info{border-left-color:#0f8f9a}.toast-icon{background:#1e425c14;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:inline-flex}.toast-message{flex:1;font-size:13px;line-height:1.45}.toast-close{color:#1a2a368f;cursor:pointer;background:0 0;border:none;padding:0;font-size:18px;line-height:1}.toast-close:hover{color:#1a2a36db}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:768px){.toast-container{max-width:none;top:10px;left:10px;right:10px}}
.error-boundary{background:radial-gradient(circle at 85% 20%,#c3412f1f,#0000 30%),linear-gradient(160deg,#f5f1e8 0%,#ece4d4 100%);place-items:center;min-height:100vh;padding:20px;display:grid}.error-content{background:#fffcf6f2;border:1px solid #1e425c29;border-radius:20px;width:min(680px,92vw);padding:24px;box-shadow:0 20px 36px #1b344a24}.error-tag{letter-spacing:.14em;text-transform:uppercase;color:#a63d2c;margin:0 0 8px;font-size:11px;font-weight:700}.error-title{margin:0;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,serif;font-size:30px;line-height:1.1}.error-message{color:#1a2a36c7;margin:10px 0 0;line-height:1.55}.error-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.error-details{margin-top:16px}.error-details summary{cursor:pointer;color:#1a2a36bf;font-size:13px}.error-stack{color:#1a2a36c2;white-space:pre-wrap;background:#1a2a360f;border:1px solid #1e425c29;border-radius:10px;margin-top:8px;padding:10px;font-size:12px;overflow:auto}
.sector-card{background:#fff;border:1px solid #0f2c431f;border-radius:16px;margin-bottom:20px;padding:16px;box-shadow:0 2px 12px #0f2c4314}.sector-header{margin-bottom:16px}.sector-kicker{color:#122b3fad;text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;font-size:12px;font-weight:600}.sector-title{color:#122f43;margin:0 0 8px;font-size:20px;font-weight:700}.sector-total{color:#122b3fad;margin:0;font-size:14px}.sector-empty{color:#122b3f7a;margin:0;font-size:14px}.sector-content{align-items:flex-start;gap:20px;display:flex}.sector-chart{flex-shrink:0;width:220px}.sector-legend{flex-direction:column;flex:1;gap:8px;max-height:220px;display:flex;overflow-y:auto}.sector-legend-item{align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.sector-legend-color{border-radius:2px;flex-shrink:0;width:12px;height:12px}.sector-legend-name{color:#2c3e50;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.sector-legend-value{color:#2c3e50;white-space:nowrap;font-weight:600}.sector-legend-percent{color:#122b3fad;text-align:right;white-space:nowrap;min-width:50px;font-weight:500}.sector-loading{color:#122b3fad;justify-content:center;align-items:center;height:220px;font-size:14px;display:flex}[data-theme=dark] .sector-card{background:#1c1e21f5;border-color:#ffffff14;box-shadow:0 2px 12px #0000004d}[data-theme=dark] .sector-kicker,[data-theme=dark] .sector-total,[data-theme=dark] .sector-empty{color:#fff9}[data-theme=dark] .sector-title{color:#ffffffeb}[data-theme=dark] .sector-legend-name,[data-theme=dark] .sector-legend-value{color:#ffffffdb}[data-theme=dark] .sector-legend-percent{color:#ffffff80}[data-theme=dark] .sector-loading{color:#fff9}@media (max-width:768px){.sector-content{flex-direction:column}.sector-chart{width:100%;max-width:300px;margin:0 auto}.sector-legend{max-height:none}}
