:root{--up: #f5414f;--down: #21c17a;--flat: #8a94a6;--text: #1b1f27;--text-sub: #596273;--text-weak: #7d8798;--bg: #f7f8fa;--card: rgba(255, 255, 255, .94);--card-solid: #ffffff;--border: rgba(27, 31, 39, .1);--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--radius: 14px;--shadow: 0 6px 24px rgba(20, 30, 60, .11);--tabbar-height: calc(33px + env(safe-area-inset-bottom, 0px)) ;--app-drag-height: 8px;--page-head-height: 54px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Helvetica,Arial,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;background:transparent;user-select:none}.app{display:flex;flex-direction:column;height:100vh;background:var(--bg);border-radius:12px;overflow:hidden}.app-drag{height:var(--app-drag-height);-webkit-app-region:drag;flex:0 0 auto}.app:has(.watchlist-manager) .app-drag{background:var(--card-solid)}html[data-runtime=web] body{background:var(--bg);overflow:hidden;overscroll-behavior:none}html[data-runtime=web]{--web-top-inset: max(16px, env(safe-area-inset-top, 0px))}html[data-runtime=web] .app{height:100dvh;border-radius:0}html[data-runtime=web] .app-drag{height:var(--web-top-inset);-webkit-app-region:no-drag}html[data-runtime=web] .page-head,html[data-runtime=web] .secondary-page-head{top:var(--web-top-inset)}html[data-runtime=web] input,html[data-runtime=web] select,html[data-runtime=web] textarea{font-size:16px}html[data-runtime=web] .app-body.fixed-list-body>.oscroll-view{overflow:hidden;padding-bottom:0}html[data-runtime=web] .app-body.fixed-list-body>.oscroll-view>.oscroll-content{height:100%;min-height:0}html[data-runtime=web] .fixed-list-body .tab-panel.active{min-height:0}html[data-runtime=web] .holdings-page,html[data-runtime=web] .watchlist-page{display:flex;height:100%;min-height:0;overflow:hidden;flex-direction:column}html[data-runtime=web] .holdings-fixed-content,html[data-runtime=web] .watchlist-fixed-content{flex:0 0 auto}html[data-runtime=web] .page-list-scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding-bottom:12px;overscroll-behavior:none;overflow-anchor:none;touch-action:pan-y;-webkit-overflow-scrolling:touch}.app-body{flex:1 1 auto;min-height:0}.app-body>.oscroll-view{padding:0 14px 12px}.app-body.profile-body>.oscroll-view{overflow:hidden;padding-bottom:0}.app-body.profile-body>.oscroll-view>.oscroll-content{height:100%;min-height:0}.app-body.profile-body>.oscroll-bar{display:none}.app-body,.modal,.modal-mask,.search-results,.page-list-scroll,.oscroll-view{scrollbar-width:none}.app-body::-webkit-scrollbar,.modal::-webkit-scrollbar,.modal-mask::-webkit-scrollbar,.search-results::-webkit-scrollbar,.page-list-scroll::-webkit-scrollbar,.oscroll-view::-webkit-scrollbar{width:0;height:0;display:none}.oscroll{position:relative;min-height:0}.oscroll-view{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.oscroll-bar{position:absolute;top:0;right:2px;bottom:0;width:8px;pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:120}.oscroll-bar.show{opacity:1}.oscroll-thumb{position:absolute;top:0;right:0;width:6px;border-radius:6px;background:#78788073;pointer-events:auto;cursor:default;transition:background .15s ease}.oscroll-bar:hover .oscroll-thumb,.oscroll-thumb:active{width:8px;background:#787880b3}.loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-sub)}.tab-panel{display:none}.tab-panel.active{display:block;height:100%}.profile-panel.active{overflow-x:hidden;overflow-y:hidden}.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--flat)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-top:12px}.section-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;color:var(--text);margin:16px 2px 2px}.section-title .more{font-size:12px;color:var(--text-weak);cursor:pointer}.fund-search-entry{width:100%;display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid var(--border);border-radius:10px;background:var(--card-solid);color:var(--text-weak);font-size:13px;cursor:pointer}.search-icon{width:13px;height:13px;border:1.6px solid currentColor;border-radius:50%;position:relative}.search-icon:after{content:"";position:absolute;width:5px;height:1.6px;right:-4px;bottom:-2px;background:currentColor;transform:rotate(45deg);border-radius:2px}.fund-search-page{min-height:100%;padding:12px 0 24px}.fund-search-head{display:flex;align-items:center;gap:10px;padding-bottom:10px}.fund-search-head .back{flex:0 0 36px;height:42px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:28px;cursor:pointer}.fund-search-input{display:flex;flex:1;min-width:0;align-items:center;gap:9px;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--card-solid);color:var(--text-weak)}.fund-search-input:focus-within{border-color:var(--accent)}.fund-search-input input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;outline:none}.fund-search-state{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-weak);text-align:center}.fund-search-state strong{color:var(--text);font-size:15px}.fund-search-state>span:last-child{max-width:260px;font-size:12px}.fund-search-error-detail{max-width:260px;font-size:12px}.fund-search-state-icon{width:22px;height:22px;margin-bottom:5px}.fund-search-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:fund-search-spin .8s linear infinite}@keyframes fund-search-spin{to{transform:rotate(360deg)}}.fund-search-error-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#ff4d5b1a;color:var(--up);font-weight:700}.fund-search-error button{margin-top:4px;border:0;background:transparent;color:var(--accent);font-weight:650;cursor:pointer}.fund-search-results{margin-top:0}.fund-search-results-title{margin:0 2px 8px;color:var(--text-weak);font-size:12px}.fund-search-results-card{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--card-solid)}.search-result{width:100%;min-height:62px;display:flex;align-items:center;gap:10px;padding:10px 14px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer}.search-result:last-child{border-bottom:0}.search-result-type{flex:0 0 36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:650}.search-result-copy{min-width:0;flex:1;display:grid;gap:4px}.search-result-name{overflow:hidden;color:var(--text);font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.search-result-copy small{color:var(--text-weak);font-size:11px}.search-result-chevron{color:var(--text-weak);font-size:18px}.watchlist-placeholder,.watchlist-page{padding-top:12px}.watchlist-page .fund-search-entry{margin:0;width:100%}.watchlist-group-card,.watchlist-data-card{background:var(--card-solid);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 24px #141e3c0d}.watchlist-group-card,.watchlist-data-card{margin-top:12px;overflow:hidden}.watchlist-groups{display:flex;align-items:center;min-width:0}.watchlist-group-tabs{display:flex;flex:1;gap:18px;min-width:0;padding:0 14px;overflow-x:auto;scrollbar-width:none;cursor:grab}.watchlist-group-tabs:active,.watchlist-group-tabs:active button{cursor:grabbing}.watchlist-group-tabs::-webkit-scrollbar{display:none}.watchlist-group-tabs button,.watchlist-manage,.watchlist-manager button{border:0;border-radius:8px;padding:0;background:transparent;color:var(--text-sub);white-space:nowrap;cursor:pointer}.watchlist-group-tabs button{position:relative;height:46px;font-size:13px;cursor:grab}.watchlist-group-tabs button:after{content:"";position:absolute;right:22%;bottom:0;left:22%;height:3px;border-radius:99px 99px 0 0;background:transparent}.watchlist-group-tabs button.active{color:var(--accent);font-weight:650}.watchlist-group-tabs button.active:after{background:var(--accent)}.watchlist-manage{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:28px;margin:0 10px 0 0;padding:0 8px;border-left:1px solid var(--border);border-radius:0;font-size:11px}.watchlist-manage span:first-child{color:var(--accent);font-size:16px}.watchlist-table{display:flex;min-width:0;overflow:hidden;background:var(--card-solid)}.watchlist-identity-column{flex:0 0 158px;min-width:0;z-index:1}.watchlist-metrics-scroll{flex:1;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab}.watchlist-metrics-scroll:active{cursor:grabbing}.watchlist-metrics-scroll::-webkit-scrollbar{display:none}.watchlist-metrics-grid{display:grid;grid-template-columns:var(--watchlist-nav-width, 132px) repeat(8,92px)}.watchlist-cell{min-height:72px;padding:10px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}.watchlist-cell:last-child{border-bottom:0}.watchlist-header{min-height:42px;padding-top:0;padding-bottom:0;background:#2f6bff06;color:var(--text-weak);font-size:11px;font-weight:600}.watchlist-fund{width:100%;border-top:0;border-right:0;border-left:0;background:transparent;color:var(--text);flex-direction:column;align-items:flex-start;gap:7px;text-align:left;cursor:pointer}.watchlist-fund:hover{background:var(--accent-soft)}.watchlist-fund>strong{width:100%;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650}.watchlist-fund-meta{display:flex;align-items:center;gap:6px;color:var(--text-weak);font-size:11px}.watchlist-held-badge{padding:2px 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-weight:600}.watchlist-metric{flex-direction:column;gap:5px;color:var(--text-sub);font-size:12px;font-variant-numeric:tabular-nums}.watchlist-metric small{color:var(--text-weak);font-size:9px}.watchlist-nav-value{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.watchlist-nav-value>strong{font-size:14px;font-weight:650}.watchlist-nav-date{flex:0 0 auto}.watchlist-metric.up,.watchlist-metric .up{color:var(--up)}.watchlist-metric.down,.watchlist-metric .down{color:var(--down)}.watchlist-estimate-pill{border-radius:999px;padding:3px 7px;background:color-mix(in srgb,currentColor 10%,transparent);white-space:nowrap}.watchlist-state{display:flex;min-height:248px;margin-top:12px;padding:32px 20px;border:1px solid var(--border);border-radius:14px;background:var(--card-solid);align-items:center;justify-content:center;flex-direction:column;text-align:center;box-shadow:0 8px 24px #141e3c0d}.watchlist-state-icon{display:grid;width:44px;height:44px;margin-bottom:14px;border-radius:14px;background:var(--accent-soft);color:var(--accent);place-items:center;font-size:24px}.watchlist-error-state .watchlist-state-icon{background:#f5414f1a;color:var(--up)}.watchlist-state strong{color:var(--text);font-size:14px}.watchlist-state p{margin:8px 0 18px;color:var(--text-weak);font-size:12px}.watchlist-state button{min-width:108px;height:36px;border:0;border-radius:10px;background:var(--accent);color:#fff;cursor:pointer}.watchlist-refresh-warning{display:flex;min-height:38px;margin-top:12px;padding:7px 10px;border:1px solid rgba(245,65,79,.14);border-radius:10px;background:#f5414f0f;color:var(--up);align-items:center;justify-content:space-between;gap:10px;font-size:11px}.watchlist-refresh-warning button{flex:0 0 auto;border:0;background:transparent;color:var(--up);cursor:pointer;font-weight:650}.watchlist-skeleton{padding-bottom:2px}.watchlist-skeleton-header{height:42px;background:#2f6bff06}.watchlist-skeleton-row{display:grid;height:72px;padding:14px;border-top:1px solid var(--border);grid-template-columns:34% 22% 22%;align-items:center;justify-content:space-between}.watchlist-skeleton-row span{height:10px;border-radius:99px;background:linear-gradient(90deg,var(--border),var(--card-solid),var(--border));background-size:220% 100%;animation:watchlist-shimmer 1.4s ease-in-out infinite}@keyframes watchlist-shimmer{to{background-position:-220% 0}}.watchlist-manager{min-height:100%;padding:0 0 28px;background:var(--bg)}.watchlist-manager-head{display:grid;grid-template-columns:40px 1fr auto;align-items:center;margin:0 -14px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--card-solid)}.watchlist-manager-head>strong{color:var(--text);text-align:center;font-size:15px}.watchlist-manager-head .back{justify-self:start;border:0;border-radius:8px;padding:0;background:transparent;color:var(--text);font-size:28px;line-height:1;cursor:pointer}.watchlist-manager-create{display:grid;width:32px;height:32px;justify-self:end;border-radius:8px;color:var(--accent)!important;place-items:center}.watchlist-manager-list{display:grid;gap:12px;margin-top:14px}.watchlist-manager-section-title{display:flex;padding:2px 2px 0;align-items:baseline;justify-content:space-between;color:var(--text-weak);font-size:11px}.watchlist-manager-section-title strong{color:var(--text);font-size:13px}.watchlist-manager-system-card,.watchlist-manager-custom-card{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--card-solid);box-shadow:0 8px 24px #141e3c0d}.watchlist-manager-system-row{display:flex;min-height:50px;padding:0 12px;align-items:center;gap:10px}.watchlist-manager-system-row+.watchlist-manager-system-row{border-top:1px solid var(--border)}.watchlist-manager-system-row>strong{flex:1;color:var(--text);font-size:14px}.watchlist-manager-lock{display:grid;width:28px;height:28px;border-radius:8px;background:var(--bg);color:var(--text-weak);place-items:center;font-size:11px}.watchlist-manager-lock-icon{width:14px;height:14px;fill:currentColor}.watchlist-manager-lock-icon path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.watchlist-manager-card-head{display:flex;min-height:42px;padding:10px 12px 4px;align-items:center;justify-content:space-between;gap:10px}.watchlist-manager-card-head strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px}.watchlist-manager-count{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px}.watchlist-manager-actions{display:flex;min-height:40px;padding:0 8px 8px;align-items:center;gap:4px}.watchlist-manager-actions button{display:grid;width:28px;height:28px;padding:0;border-radius:8px;background:var(--accent-soft);color:var(--accent);place-items:center}.watchlist-manager-actions button.danger,.watchlist-member-editor-actions button.danger{background:#f5414f17;color:var(--up)}.watchlist-manager-action-spacer{flex:1}.watchlist-manager-empty{min-height:52px;padding:0 12px;color:var(--text-weak);font-size:13px;line-height:52px}.watchlist-manager button:disabled{cursor:default;opacity:.4}.watchlist-member-editor{position:fixed;z-index:60;inset:0;display:grid;padding:18px;background:#0f172a6b;place-items:center}.watchlist-member-editor-panel{display:flex;overflow:hidden;width:min(440px,100%);max-height:min(680px,calc(100vh - 36px));border:1px solid var(--border);border-radius:16px;background:var(--card-solid);box-shadow:0 24px 70px #0f172a3d;flex-direction:column}.watchlist-member-editor-head{display:grid;min-height:50px;padding:0 12px;border-bottom:1px solid var(--border);grid-template-columns:64px 1fr 64px;align-items:center}.watchlist-member-editor-head strong{overflow:hidden;color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.watchlist-member-editor-head button{color:var(--accent);font-weight:650}.watchlist-member-editor-head button:first-child{justify-self:start;color:var(--text-sub)}.watchlist-member-editor-head button:last-child{justify-self:end}.watchlist-member-editor-body{overflow-y:auto;padding:8px 12px 16px}.watchlist-member-editor-body h3{margin:12px 2px 6px;color:var(--text-weak);font-size:11px;font-weight:600}.watchlist-member-editor-row{display:flex;width:100%;min-height:48px;padding:6px 8px;border-top:1px solid var(--border);align-items:center;justify-content:space-between;gap:8px;color:var(--text);text-align:left}.watchlist-member-editor-row>span:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.watchlist-member-editor-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.watchlist-member-editor-row small{color:var(--text-weak);font-size:10px}.watchlist-member-editor-actions{display:flex;flex:0 0 auto;gap:4px}.watchlist-member-editor-actions button{width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent)}.operation-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.watchlist-member-editor-add{border-right:0;border-bottom:0;border-left:0;border-radius:0;background:transparent;cursor:pointer}.watchlist-member-editor-add>.operation-icon{flex:0 0 auto;color:var(--accent)}.watchlist-member-editor-empty{padding:28px 12px;color:var(--text-weak);text-align:center;font-size:12px}.intraday-section-head .intraday-head-right{display:flex;align-items:center;gap:8px}.intraday-latest-time,.pnl-trend-latest-time{color:var(--text-weak);font-size:11px;font-variant-numeric:tabular-nums}.chart-mode-toggle{display:inline-flex;padding:2px;border-radius:12px;background:#0000000d;gap:2px}.chart-mode-toggle button{border:none;background:transparent;color:var(--text-sub);font-size:11px;font-weight:600;line-height:1;padding:4px 8px;border-radius:10px;cursor:pointer;min-width:26px}.chart-mode-toggle button.active{background:var(--card);color:var(--text);box-shadow:0 1px 2px #00000014}.page-head{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:baseline;justify-content:flex-end;min-height:var(--page-head-height);margin:0;padding:18px 30px 8px;background:#f7f8faf0;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px)}.page-head h1{font-size:17px;margin:0;font-weight:700}.page-head .sub{font-size:12px;color:var(--text-weak);min-width:70px;text-align:right}.page-head-actions{display:flex;align-items:center;gap:8px}.secondary-page-head{position:fixed;top:0;right:0;left:0;z-index:80;display:grid;grid-template-columns:70px 1fr 70px;min-height:var(--page-head-height);padding:8px 14px;border-bottom:1px solid var(--border);background:var(--card-solid);align-items:center}.secondary-page-head h1{justify-self:center;margin:0;color:var(--text);font-size:15px;font-weight:700}.secondary-page-head .back{width:32px;height:32px;justify-self:start;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font-size:28px;line-height:1}.secondary-page-head .back:hover{background:#0000000d}.secondary-page-head .sub{justify-self:end;color:var(--text-weak);font-size:11px;white-space:nowrap}.main-page{padding-top:0}.summary{display:flex;flex-direction:column;gap:6px}.summary-top{display:flex;justify-content:space-between;align-items:flex-start}.summary-asset .label,.summary-today .label{font-size:11px;color:var(--text-sub)}.summary-asset .value{font-size:26px;font-weight:700;letter-spacing:.3px;font-variant-numeric:tabular-nums}.summary-holding-profit{display:flex;align-items:baseline;gap:7px;margin-top:8px;font-variant-numeric:tabular-nums;white-space:nowrap}.summary-holding-profit .label{font-size:11px;color:var(--text-sub)}.summary-holding-profit .amount{font-size:14px;font-weight:700}.summary-pending{display:flex;align-items:baseline;gap:7px;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap}.summary-pending .label{font-size:11px;color:var(--text-sub)}.summary-pending .amount{font-size:13px;font-weight:700;color:var(--text-sub)}.summary-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:118px}.summary-today{text-align:right}.summary-today-button{border:none;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;border-radius:8px}.summary-today-button:hover{background:#2f6bff0f}.summary-today .value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.inline-loading{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid rgba(132,146,166,.25);border-top-color:#2f6bffd9;vertical-align:-3px;animation:spin .8s linear infinite}.inline-loading.small{width:14px;height:14px;border-width:1.5px;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}.summary-today-rate{margin-top:2px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.summary-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 10px;margin-top:10px}.summary-metrics-compact{grid-template-columns:minmax(0,1fr)}.metric .label{font-size:11px;color:var(--text-sub)}.metric .row{display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}.metric .row .main{font-size:16px;font-weight:700}.badge{font-size:11px;font-weight:600;padding:1px 6px;border-radius:6px}.badge.up{background:#f5414f1f}.badge.down{background:#21c17a1f}.badge.flat{background:#8a94a624}.summary-chart{margin-top:6px;display:flex;justify-content:center}.actions{display:flex;gap:10px;margin-top:12px}.btn{flex:1;border:1px solid var(--border);background:var(--card-solid);color:var(--text);border-radius:10px;padding:9px 10px;font-size:13px;cursor:pointer;transition:.15s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.05);color:#fff}.btn.danger{color:var(--up)}.btn:disabled{opacity:.5;cursor:not-allowed}.holding-row{display:grid;grid-template-columns:minmax(0,1fr) 92px 92px;gap:6px;padding:11px 4px;align-items:center}.holding-name{overflow:hidden}.holding-name .name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.holding-name .amount{font-size:11px;color:var(--text-sub);margin-top:3px;font-variant-numeric:tabular-nums}.holding-name .tag{display:inline-block;font-size:10px;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 4px;margin-top:4px}.col{text-align:right;font-variant-numeric:tabular-nums}.col .main{font-size:13px;font-weight:600}.col .sub{font-size:11px;margin-top:3px}.col>.rolling-market-number{display:flex;width:100%;justify-content:flex-end}.col-head{display:grid;grid-template-columns:minmax(0,1fr) 92px 92px;gap:6px;padding:4px 4px 8px;font-size:11px;color:var(--text-weak);border-bottom:1px dashed var(--border)}.col-head .col{text-align:right}.holding-item+.holding-item{border-top:1px dashed var(--border)}.holding-list-card{position:relative}.row-remove{position:absolute;right:6px;top:6px}.holding-item{position:relative;cursor:grab;transition:background .15s,opacity .15s,box-shadow .15s}.holding-item.dragging{opacity:.55;cursor:grabbing}.holding-item.drag-over{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.holding-touch-drag{display:none}html[data-runtime=web] .holding-row{padding-left:18px}html[data-runtime=web] .holding-touch-drag{position:absolute;z-index:2;left:-8px;top:50%;display:flex;width:26px;height:38px;padding:0;transform:translateY(-50%);align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-weak);font-size:18px;line-height:1;cursor:grab;touch-action:none}html[data-runtime=web] .holding-touch-drag:active,html[data-runtime=web] .holding-item.dragging .holding-touch-drag{color:var(--accent);cursor:grabbing}.holding-item .del{opacity:0;position:absolute;right:2px;top:8px;border:none;background:transparent;color:var(--text-weak);cursor:pointer;font-size:14px;transition:.15s}.holding-item:hover .del{opacity:1}.holding-item .del:hover{color:var(--up)}.holding-pills{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:4px}.holding-day-main{display:flex;align-items:center;justify-content:flex-end;min-width:0}.holding-day-value{position:relative;display:inline-flex}.holding-day-estimate{position:absolute;top:50%;right:calc(100% + 4px);transform:translateY(-50%);padding:1px 4px;border-radius:5px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:8px;font-weight:650;line-height:1.4;white-space:nowrap}.pending-pill{display:inline-flex;align-items:center;height:22px;font-size:10px;font-weight:600;line-height:1;padding:1px 6px;border-radius:6px;color:var(--accent);background:var(--accent-soft)}.cleared-pill{display:inline-flex;align-items:center;height:22px;font-size:10px;font-weight:600;line-height:1;padding:1px 6px;border-radius:6px;color:var(--text-weak);background:var(--bg-soft)}.empty{text-align:center;color:var(--text-weak);padding:28px 10px;font-size:13px}.index-card{width:100%;position:relative;height:46px;min-height:46px;padding:0 16px;overflow:hidden;color:inherit;cursor:pointer;border-radius:16px}.market-index-collapsed{overflow-anchor:none}.market-index-collapsed .index-cell{border:0;background:transparent;min-height:46px}.market-index-ticker{position:relative;width:100%;height:46px;overflow:hidden}.market-index-ticker-row{position:absolute;inset:0;transition:transform .42s cubic-bezier(.22,.72,.25,1);will-change:transform}.market-index-ticker-row-outgoing{transform:translateY(0)}.market-index-ticker-row-incoming{transform:translateY(100%)}.market-index-ticker.rolling .market-index-ticker-row-outgoing{transform:translateY(-100%)}.market-index-ticker.rolling .market-index-ticker-row-incoming{transform:translateY(0)}.index-cell{min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px;text-align:center}.index-cell-collapsed{width:100%;height:46px;display:grid;grid-template-columns:minmax(96px,1fr) repeat(3,minmax(60px,auto));gap:8px;justify-content:start;padding:0 28px 0 4px;align-items:center;text-align:right}.index-cell-collapsed .name{min-width:96px;overflow:visible;white-space:nowrap;color:var(--text);font-size:12px;font-weight:650;text-align:left}.index-cell-collapsed .price,.index-cell-collapsed .change,.index-cell-collapsed .pct{margin:0;font-size:14px;font-weight:650}.market-index-collapsed .index-cell-collapsed .name{color:var(--text-sub);font-size:12px;font-weight:650}.market-index-collapsed .index-cell-collapsed .price,.market-index-collapsed .index-cell-collapsed .change,.market-index-collapsed .index-cell-collapsed .pct{margin:0;justify-content:flex-end;font-size:14px;font-weight:650}.index-expand-chevron{position:absolute;right:17px;top:50%;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;color:var(--text-weak);transform:translateY(-70%) rotate(45deg)}.market-index-error{width:100%;color:var(--text-weak);text-align:center;font-size:13px}.index-empty{flex:1 0 100%}.market-refresh-warning{display:flex;margin:6px 14px 0;color:var(--text-weak);align-items:center;justify-content:flex-end;gap:8px;font-size:11px}.market-refresh-warning button{border:0;padding:0;background:transparent;color:var(--accent);cursor:pointer;font:inherit}.index-cell .name{font-size:11px;color:var(--text-sub)}.index-cell .price{font-size:15px;font-weight:700;margin-top:1px;font-variant-numeric:tabular-nums}.index-cell .chg{font-size:10px;margin-top:1px;font-variant-numeric:tabular-nums}.market-update-time{color:var(--text-weak);font-size:10px;font-weight:400}.market-index-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-start;justify-content:center;padding:34px 14px 18px;background:#14171f52;backdrop-filter:blur(4px)}.market-index-overlay-card{width:min(520px,100%);max-height:calc(100vh - 52px);overflow-y:auto;padding:18px 16px 16px;border:0;border-radius:20px;background:var(--card-solid);box-shadow:0 18px 50px #14171f2e}.market-index-overlay-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.market-index-overlay-head>div{display:flex;align-items:baseline;gap:10px}.market-index-overlay-head strong{color:var(--text);font-size:18px}.market-index-overlay-head span{color:var(--text-weak);font-size:11px}.market-index-overlay-head button{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--text-sub);font-size:18px;cursor:pointer}.market-index-groups{display:flex;gap:28px;margin:0 4px 14px}.market-index-groups button{position:relative;border:0;padding:0 0 8px;background:transparent;color:var(--text-weak);cursor:pointer;font-size:14px}.market-index-groups button.active{color:var(--text);font-weight:650}.market-index-groups button.active:after{position:absolute;right:7px;bottom:0;left:7px;height:2px;border-radius:999px;background:var(--up);content:""}.market-index-overlay-pages{overflow:hidden;touch-action:pan-y}.market-index-overlay-track{display:flex;align-items:flex-start;transition:transform .26s cubic-bezier(.22,.72,.25,1);will-change:transform}.market-index-overlay-track.dragging{transition:none}.market-index-overlay-grid{flex:0 0 100%;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.index-cell-expanded{min-height:92px;align-items:flex-start;border:0;border-radius:8px;padding:10px 11px;color:#fff;cursor:pointer;font:inherit;text-align:left;background:linear-gradient(160deg,#ff6975,#e94351)}.index-cell-expanded.down{background:linear-gradient(160deg,#35cda0,#159c74)}.index-cell-expanded.flat{background:linear-gradient(160deg,#aab2c0,#828c9e)}.index-cell-expanded .name{color:#fff;font-size:13px;font-weight:650}.index-cell-expanded .pct{width:6ch;justify-content:flex-end;margin-top:5px;color:#fff;font-size:19px;font-weight:750}.index-cell-expanded .price{margin-top:1px;color:#ffffffeb;font-size:12px;font-weight:650}.market-section-error-card{margin-top:0}.market-section-error{display:grid;min-height:92px;padding:16px;grid-template-columns:34px 1fr auto;gap:11px;align-items:center}.market-section-error-icon{display:grid;width:34px;height:34px;border-radius:11px;background:#f5414f1a;color:var(--up);place-items:center;font-size:17px;font-weight:750}.market-section-error div{display:flex;min-width:0;flex-direction:column;gap:3px;text-align:left}.market-section-error strong{color:var(--text);font-size:13px}.market-section-error small{color:var(--text-weak);font-size:10px}.market-section-error button{height:30px;border:0;border-radius:9px;padding:0 11px;background:var(--accent-soft);color:var(--accent);cursor:pointer;font-size:11px;font-weight:650}.rolling-market-number{--rolling-line-height: 1.3em;display:inline-flex;height:var(--rolling-line-height);line-height:var(--rolling-line-height);overflow:hidden;font-variant-numeric:tabular-nums;white-space:nowrap}.rolling-market-character,.rolling-market-digit,.rolling-market-digit-track>span{display:block;height:var(--rolling-line-height);line-height:var(--rolling-line-height)}.rolling-market-static-digit{width:1ch;flex:0 0 1ch}.rolling-market-digit{width:1ch;overflow:hidden}.rolling-market-digit-track{display:flex;flex-direction:column;transition:transform var(--rolling-duration) cubic-bezier(.2,.72,.2,1) var(--rolling-delay);will-change:transform}.rolling-market-digit.increase .rolling-market-digit-track{transform:translateY(var(--rolling-offset))}.rolling-market-digit.increase.rolling .rolling-market-digit-track,.rolling-market-digit.decrease .rolling-market-digit-track{transform:translateY(0)}.rolling-market-digit.decrease.rolling .rolling-market-digit-track{transform:translateY(var(--rolling-offset))}.dist-bar{display:flex;height:8px;border-radius:5px;overflow:hidden;margin-top:10px;background:#0000000d}.dist-bar .seg-down{background:var(--down)}.dist-bar .seg-up{background:var(--up)}.dist-legend{display:flex;justify-content:space-between;font-size:11px;line-height:13px;margin-top:6px;color:var(--text-sub)}.market-breadth-card{padding:12px 10px}.market-breadth-card-action{cursor:pointer}.market-breadth-open-title{padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.market-breadth-content{height:131px}.market-breadth-content>.empty,.market-breadth-content>.market-section-error{height:100%}.market-breadth-content>.empty{display:grid;padding:0;place-items:center}.market-section-head{margin:0 2px 10px}.market-breadth-chart{height:94px;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));align-items:end;gap:2px}.market-breadth-bucket{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px}.market-breadth-bucket>span,.market-breadth-bucket>small{max-width:100%;color:var(--text-weak);font-size:8px;white-space:nowrap}.market-breadth-bucket i{width:min(14px,80%);min-height:4px;border-radius:3px 3px 1px 1px;background:var(--accent);opacity:.7}.market-breadth-bucket:nth-child(-n+5) i{background:var(--up)}.market-breadth-bucket:nth-child(6) i{background:var(--flat)}.market-breadth-bucket:nth-last-child(-n+5) i{background:var(--down)}.section-title-action,.section-title .more{padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.section-title .more{color:var(--text-weak);font-size:12px}.sector-metric-tabs{display:flex;align-items:center;gap:6px;margin:8px 2px}.sector-metric-tabs button{padding:5px 10px;border:0;border-radius:8px;background:transparent;color:var(--text-sub);font-size:12px;cursor:pointer}.sector-metric-tabs button.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.sector-metric-tabs .market-update-time{margin-left:auto}.sector-summary-card{padding:10px;border-radius:18px}.sector-summary-card .sector-metric-tabs{margin:0 2px 10px}.sector-tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;overflow:hidden;border-radius:14px}.sector-tile{min-width:0;min-height:62px;padding:10px 12px;border:1px solid transparent;border-radius:0;text-align:left;cursor:pointer}.sector-tile-top-left{border-top-left-radius:14px}.sector-tile-top-right{border-top-right-radius:14px}.sector-tile-bottom-left{border-bottom-left-radius:14px}.sector-tile-bottom-right{border-bottom-right-radius:14px}.sector-tile>span,.sector-tile>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sector-tile>span{color:var(--text);font-size:11px;font-weight:500}.sector-tile>strong{margin-top:4px;font-size:13px}.sector-tile-up{background:#e84c3d24;color:var(--up)}.sector-tile-flat{background:#8a94a624;color:var(--flat)}.sector-tile-down{background:#24a05d24;color:var(--down)}.market-rank-card,.sector-list-card{padding:4px 12px;margin-top:8px}.market-rank-card .list-row{width:100%;border-right:0;border-bottom:0;border-left:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.sector-list-page{padding:var(--page-head-height) 0 20px}.sector-list-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:12px 0 8px;padding:4px;border-radius:12px;background:#0000000a}.sector-list-tabs button{min-height:34px;border-radius:9px}.sector-list-tabs button.active{background:var(--card-solid);color:var(--text);box-shadow:0 1px 3px #141e3c14}.sector-list-card{margin-top:0;padding:0 12px;border-radius:18px}.sector-list-row{position:relative;min-height:58px;border-top:0}.sector-list-row+.sector-list-row:before{position:absolute;top:0;right:0;left:28px;height:1px;background:var(--border);content:""}.sector-list-row .chg{white-space:nowrap}.sector-trends-card{margin-top:12px;padding:14px 12px;border-radius:18px}.sector-trends-toolbar{display:flex;gap:6px;align-items:center;justify-content:flex-end;min-width:0;margin-bottom:8px}.sector-trends-toolbar>span{color:var(--text-weak);font-size:10px;white-space:nowrap}.sector-trends-open-large{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--accent);cursor:pointer}.sector-trends-open-large svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.sector-trends-metric-tabs{display:flex!important;padding:2px;border-radius:9px;background:#0000000b}.sector-trends-metric-tabs button{height:24px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--text-weak);cursor:pointer;font-size:10px;font-weight:650}.sector-trends-metric-tabs button.active{background:var(--card-solid);color:var(--accent);box-shadow:0 1px 3px #141e3c1a}.sector-trends-kind-tabs{display:flex;min-width:0;gap:2px;margin:0;padding:2px;overflow-x:auto;border-radius:9px;background:#0000000b;scrollbar-width:none}.sector-trends-kind-tabs::-webkit-scrollbar{display:none}.sector-trends-kind-tabs button{flex:0 0 auto;height:24px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--text-weak);cursor:pointer;font-size:10px;font-weight:650}.sector-trends-kind-tabs button.active{background:var(--card-solid);color:var(--accent);box-shadow:0 1px 3px #141e3c1a}.sector-trends-chart{display:flex;justify-content:center;min-height:290px;overflow:hidden}.sector-trends-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.sector-trends-legend button{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:7px;align-items:center;min-width:0;height:34px;padding:0 8px;border:1px solid transparent;border-radius:9px;background:color-mix(in srgb,var(--series-color) 8%,transparent);color:var(--text);cursor:pointer}.sector-trends-legend button.active{background:color-mix(in srgb,var(--series-color) 13%,transparent);box-shadow:inset 0 0 0 1.2px var(--series-color)}.sector-trends-legend button.hovered{box-shadow:inset 0 0 0 1px var(--series-color)}.sector-trends-legend i{width:7px;height:7px;border-radius:50%;background:var(--series-color);opacity:.75}.sector-trends-legend button.active i,.sector-trends-legend button.hovered i{opacity:1}.sector-trends-legend button>span{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600}.sector-trends-legend strong{font-size:10px;white-space:nowrap}.sector-trends-legend-heading{color:var(--text-weak);font-size:10px;font-weight:650}.sector-trends-large{height:100vh;padding:0;overflow:hidden;background:var(--bg)}.sector-trends-large .sector-trends-card{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto minmax(0,1fr) auto;gap:12px 18px;height:calc(100vh - 32px);margin:16px;padding:18px}.sector-trends-large .sector-trends-toolbar{grid-column:1 / -1;margin:0}.sector-trends-large .sector-trends-chart{min-height:0;height:100%;overflow:hidden}.sector-trends-large .sector-trends-chart .sparkline{height:100%!important}.sector-trends-large .sector-trends-card>.empty{display:flex;grid-column:1 / -1;align-items:center;justify-content:center;align-self:stretch}.sector-trends-large .sector-trends-legend{grid-template-columns:minmax(0,1fr);gap:4px;align-content:start;min-height:0;margin:0;overflow-y:auto;scrollbar-width:none}.sector-trends-large .sector-trends-legend::-webkit-scrollbar{display:none}.sector-trends-large .sector-trends-legend button{grid-template-columns:7px minmax(0,1fr) auto;width:100%;height:28px}.sector-trends-large .sector-trends-legend-heading{display:flex;align-items:end;min-height:16px;padding:0 8px 1px}.sector-trends-large .market-refresh-warning{grid-column:1 / -1}.market-breadth-detail-page{padding:var(--page-head-height) 0 24px}.index-switcher{display:flex;gap:8px;margin:10px 0 12px;padding-bottom:2px;overflow-x:auto;touch-action:pan-y;user-select:none;cursor:grab;scrollbar-width:none}.index-switcher:active{cursor:grabbing}.index-switcher::-webkit-scrollbar{display:none}.index-switcher button{flex:0 0 auto;min-width:92px;height:48px;padding:5px 12px;border:1px solid var(--border);border-radius:12px;background:var(--card-solid);color:var(--text-sub);cursor:pointer}.index-switcher button>span:first-child{display:block;font-size:11px}.index-switcher button>.rolling-market-number{margin-top:3px}.index-switcher button.active{border-color:#1b1f273d;background:#1b1f2714;color:var(--text);box-shadow:inset 0 0 0 1px #1b1f270f}.market-detail-trend-card,.market-turnover-card{margin-top:12px;padding:14px 12px;border-radius:18px}.market-detail-card-head,.market-live-turnover{display:flex;align-items:center;justify-content:space-between}.market-detail-card-head{margin-bottom:8px;font-size:14px}.market-detail-card-head>span{color:var(--text-weak);font-size:11px;font-weight:500}.market-index-quote-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:2px 0 8px;padding:9px 10px;border-radius:11px;background:#00000006}.market-index-quote-stats>div>span,.market-index-quote-stats>div>strong{display:block;text-align:center}.market-index-quote-stats>div>span{color:var(--text-weak);font-size:9px}.market-index-quote-stats>div>strong{margin-top:3px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.market-detail-chart-empty{height:230px}.market-live-turnover>div>span,.market-live-turnover>div>strong{display:block}.market-live-turnover>div>span{color:var(--text-sub);font-size:12px;font-weight:600}.market-live-turnover>div>strong{margin-top:5px;font-size:22px}.market-live-turnover small{color:var(--text-weak);font-size:11px}.market-turnover-compare{margin-top:4px;color:var(--text-weak);font-size:10px}.market-turnover-compare strong{margin-left:4px}.market-turnover-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}.market-turnover-metrics div{padding:8px 4px;border-radius:9px;background:#00000006;text-align:center}.market-turnover-metrics>div>span,.market-turnover-metrics>div>strong{display:block}.market-turnover-metrics>div>span{color:var(--text-weak);font-size:9px}.market-turnover-metrics>div>strong{margin-top:3px;font-size:10px}.market-turnover-divider{height:1px;margin:14px 0;background:var(--border)}.market-turnover-card h2{margin:0;font-size:13px}.market-turnover-bars{display:flex;align-items:flex-end;gap:6px;height:118px;margin-top:10px}.market-turnover-bars>div{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;gap:5px}.market-turnover-bars span,.market-turnover-bars small{color:var(--text-weak);font-size:8px;white-space:nowrap}.market-turnover-bars i{width:min(18px,80%);min-height:8px;border-radius:4px 4px 2px 2px;background:#2f6bffb8}.market-detail-breadth-card{margin-top:12px;padding:14px 12px;border-radius:18px}.market-detail-breadth-chart{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));align-items:end;height:92px;gap:2px}.market-detail-breadth-chart>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;gap:2px}.market-detail-breadth-chart span,.market-detail-breadth-chart small{max-width:100%;overflow:hidden;color:var(--text-weak);font-size:8px;text-overflow:clip;white-space:nowrap}.market-detail-breadth-chart i{width:min(14px,80%);min-height:5px;border-radius:3px 3px 1px 1px}.market-detail-breadth-chart .up i{background:var(--up)}.market-detail-breadth-chart .flat i{background:var(--flat)}.market-detail-breadth-chart .down i{background:var(--down)}@media (prefers-reduced-motion: reduce){.market-index-ticker-row,.rolling-market-digit-track{transition:none}.market-index-ticker-row-outgoing{display:none}.market-index-ticker-row-incoming,.rolling-market-digit.increase .rolling-market-digit-track{transform:translateY(0)}.rolling-market-digit.decrease .rolling-market-digit-track{transform:translateY(var(--rolling-offset))}}.list-row{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-top:1px solid var(--border)}.list-row:first-child{border-top:none}.list-row .left{display:flex;align-items:center;gap:8px;overflow:hidden}.list-row .rank-no{width:18px;text-align:center;font-size:12px;color:var(--text-weak);font-weight:700}.list-row .info .name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.list-row .info .meta{font-size:11px;color:var(--text-weak);margin-top:2px}.list-row .chg{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.seg-tabs{display:flex;gap:6px;margin:8px 2px 0}.seg-tabs button{border:none;background:transparent;color:var(--text-sub);font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer}.seg-tabs button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.profile-page{height:100%;display:flex;flex-direction:column;margin:0;padding:0 0 8px;min-height:0;overflow:hidden;background:transparent}.profile-head{display:flex;align-items:center;gap:12px;padding:6px 2px 2px}.avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#cdd8ff,#aeb9ff);display:flex;align-items:center;justify-content:center;color:#4a5bd6;font-size:22px;font-weight:700}.profile-head .who .nick{font-size:16px;font-weight:700}.profile-head .who .sub{font-size:12px;color:var(--text-weak);margin-top:3px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:12px 2px;border-top:1px solid var(--border);font-size:13px}.info-row:first-child{border-top:none}.info-row .k{color:var(--text-sub)}.info-row .v{color:var(--text);font-variant-numeric:tabular-nums}.profile-editor{display:grid;grid-template-columns:58px minmax(0,1fr) 38px;align-items:center;gap:12px;margin:8px 0 0;padding:14px;border-radius:var(--radius);background:var(--card);box-shadow:none}.profile-avatar{position:relative;width:58px;height:58px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;padding:0;overflow:hidden;background:linear-gradient(135deg,#d9e5ff,#aebdff);color:#4157db;font-size:22px;font-weight:800;cursor:pointer}.profile-avatar img{width:100%;height:100%;display:block;object-fit:cover}.profile-avatar-loading{position:absolute;inset:0;background:#ffffff73}.profile-editor-body{min-width:0}.profile-nick-line{display:flex;align-items:center;gap:6px;min-width:0}.profile-nick-text{min-width:0;color:var(--text);border:none;font-size:18px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-editor-meta{margin-top:3px;color:var(--text-weak);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-icon-btn,.profile-tool-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:9px;background:var(--card-solid);color:var(--text-sub);cursor:pointer}.profile-filter-card .profile-tool-btn{width:28px;height:28px;border-radius:8px}.profile-icon-btn:hover,.profile-tool-btn:hover,.profile-tool-btn.active{border-color:var(--accent);color:var(--accent)}.profile-logout{color:var(--up)}.profile-sticky-controls{position:sticky;top:0;z-index:70;flex:0 0 auto;margin:12px 0 10px;padding:8px;border-radius:var(--radius);background:var(--card);box-shadow:none;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px)}.profile-sticky-controls.with-filters{padding-bottom:8px}.profile-tabs-row{display:block}.profile-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:10px;background:#0000000a}.profile-tabs button{border:none;border-radius:7px;padding:8px 6px;background:transparent;color:var(--text-sub);font-size:13px;font-weight:650;cursor:pointer}.profile-tabs button.active{background:var(--card-solid);color:var(--accent);box-shadow:0 2px 10px #141e3c14}.profile-filter-card{margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--card-solid)}.profile-filter-card.expanded{padding-bottom:8px}.profile-filter-card .trade-filter-row{flex-wrap:nowrap;gap:6px}.profile-filter-card .trade-filter{padding:5px 11px;white-space:nowrap}.profile-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;margin-top:8px}.profile-filter-grid label{min-width:0}.profile-filter-grid span{display:block;margin-bottom:5px;color:var(--text-weak);font-size:11px}.profile-filter-grid input{width:100%;height:34px;min-width:0;border:1px solid var(--border);border-radius:8px;padding:0 6px;background:var(--card-solid);color:var(--text);font-size:11px}.trade-filter-row{align-items:center;margin-bottom:0;min-height:30px}.trade-filter-spacer{flex:1 1 auto;min-width:0}.profile-list-card{flex:1 1 auto;min-height:0;overflow:hidden;padding:12px 14px;margin:0 0 2px;display:flex;flex-direction:column;box-shadow:none}.profile-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px;gap:10px}.profile-section-head span,.profile-section-actions span{color:var(--text-weak);font-size:12px;font-weight:500}.profile-section-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.profile-list-scroll{flex:1 1 auto;min-height:0;margin-right:-8px;padding-right:8px}.profile-tab-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding-bottom:2px}.profile-empty{padding:26px 0 18px;color:var(--text-weak);font-size:13px;text-align:center}.profile-plan-list{display:flex;flex-direction:column}.profile-plan-row{padding:13px 0;border-top:1px solid var(--border);cursor:pointer}.profile-plan-row:first-child{border-top:none;padding-top:2px}.profile-plan-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.profile-plan-name{min-width:0;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-plan-status{padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700}.profile-plan-status.ongoing{background:var(--accent-soft);color:var(--accent)}.profile-plan-status.paused{background:#8a94a624;color:var(--text-sub)}.profile-plan-status.terminated{background:#f5414f1a;color:var(--up)}.profile-plan-desc{margin-top:5px;color:var(--text-sub);font-size:12px}.profile-plan-metrics{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;color:var(--text-weak);font-size:12px}.profile-plan-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px}.profile-plan-actions button{height:30px;border:1px solid var(--border);border-radius:8px;background:var(--card-solid);color:var(--text-sub);font-size:12px;font-weight:650;cursor:pointer}.profile-plan-actions button.ongoing{border-color:var(--accent);background:var(--accent);color:#fff}.profile-plan-actions button.paused{border-color:#8a94a629;background:#8a94a61a;color:var(--text-sub)}.profile-plan-actions button.terminated{border-color:#f5414f47;background:#f5414f14;color:var(--up)}.nick-modal{width:min(300px,calc(100vw - 52px));padding:16px}.field{display:flex;flex-direction:column;gap:6px;margin-top:12px}.field label{font-size:12px;color:var(--text-sub)}.field input{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;outline:none;background:var(--card-solid);color:var(--text)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.select-wrap{position:relative;width:100%}.select-wrap:after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:1.5px solid var(--text-sub);border-bottom:1.5px solid var(--text-sub);transform:translateY(-65%) rotate(45deg);pointer-events:none}.field-select,.field select{width:100%;appearance:none;-webkit-appearance:none;border:1px solid var(--border);border-radius:10px;padding:10px 36px 10px 12px;font-size:14px;outline:none;background:var(--card-solid);color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .15s}.field-select:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-select:hover,.field select:hover{border-color:#2f6bff59}.code-row{display:flex;gap:8px}.code-row input{flex:1}.code-row .btn{flex:0 0 auto;width:110px}.tip{font-size:11px;color:var(--text-weak);margin-top:8px;line-height:1.5}.fee-hint{font-size:12px;color:var(--text-sub);margin-top:8px;line-height:1.5}.fee-rate-input{width:52px;border:none;border-bottom:1px solid var(--text-weak);background:transparent;color:var(--accent);font-size:12px;text-align:center;padding:0 2px;margin:0 2px;font-variant-numeric:tabular-nums}.fee-rate-input:focus{outline:none;border-bottom-color:var(--accent)}.trade-time-row{display:flex;gap:8px}.trade-time-row input{flex:1;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;background:var(--card-solid);color:var(--text)}.trade-time-row .select-wrap{flex:1}.trade-time-row .field-select{width:100%}.trade-hint{font-size:11px;color:var(--text-weak);margin-top:6px}.pending-block{margin-top:12px;padding:10px;border-radius:10px;background:#00000008}.pending-modal-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px;font-size:12px;color:var(--text-sub)}.pending-modal-tag{font-size:11px;font-weight:600;color:var(--accent)}.estimate-block{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f5414f0f;border:1px solid rgba(245,65,79,.14)}.estimate-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.estimate-title{font-size:12px;font-weight:600;color:var(--text-sub)}.estimate-total{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.estimate-pct{margin-left:6px;font-size:12px;font-weight:600}.estimate-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:11px;color:var(--text-weak);font-variant-numeric:tabular-nums}.estimate-lag{opacity:.85}.pending-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.pending-title{font-size:13px;font-weight:600;color:var(--text)}.pending-total{font-size:13px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.pending-row{display:flex;align-items:center;gap:8px;min-height:24px}.pending-row.clickable{cursor:pointer}.pending-row.clickable:active{opacity:.7}.pending-row-amt{margin-left:auto;font-size:13px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.pending-order-badge{flex:none;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600}.pending-order-date{min-width:0;font-size:12px;color:var(--text-sub);font-variant-numeric:tabular-nums}.cycle-picks{display:flex;flex-wrap:wrap;gap:6px}.cycle-pick{flex:1;min-width:52px;border:1px solid var(--border);background:var(--card-solid);color:var(--text-sub);border-radius:8px;padding:7px 4px;font-size:12px;cursor:pointer}.cycle-pick.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);font-weight:600}.smart-invest-card{margin-top:12px;padding:12px;border-radius:12px;background:linear-gradient(180deg,#2f6bff0f,#2f6bff05);border:1px solid rgba(47,107,255,.12)}.smart-invest-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.smart-invest-title{font-size:14px;font-weight:700;color:var(--text)}.smart-invest-sub{font-size:11px;color:var(--text-sub);margin-top:4px;line-height:1.4}.smart-invest-body{margin-top:10px;padding-top:10px;border-top:1px solid rgba(47,107,255,.1)}.smart-range{font-size:12px;color:var(--text);line-height:1.6;font-variant-numeric:tabular-nums}.smart-range.sub{font-size:11px;color:var(--text-sub)}.toggle{position:relative;width:44px;height:26px;border:none;border-radius:999px;background:#d1d5db;cursor:pointer;padding:0;flex-shrink:0;transition:background .2s}.toggle.on{background:var(--accent)}.toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000002e;transition:transform .2s}.toggle.on .toggle-knob{transform:translate(18px)}.link-btn{margin-top:10px;border:none;background:none;color:var(--accent);font-size:12px;cursor:pointer;padding:0}.smart-rules-table{margin-top:10px;border-radius:10px;overflow:hidden;background:var(--card-solid);border:1px solid var(--border)}.smart-rules-head,.smart-rules-row{display:grid;grid-template-columns:1.4fr .8fr;gap:8px;padding:8px 10px;font-size:11px}.smart-rules-head{background:#00000008;color:var(--text-sub);font-weight:600}.smart-rules-row{border-top:1px solid var(--border);font-variant-numeric:tabular-nums}.smart-rules-row .up{color:var(--up)}.smart-rules-row .down{color:var(--down)}.smart-rules-note{padding:8px 10px 10px;font-size:10px;color:var(--text-weak);line-height:1.5;border-top:1px solid var(--border)}.invest-plan-card{margin-top:12px;padding:14px;border-radius:12px;background:var(--accent-soft);border:1px solid rgba(47,107,255,.15);cursor:pointer}.invest-plan-name{font-size:15px;font-weight:700;color:var(--accent)}.invest-plan-rows{margin-top:12px}.invest-plan-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-top:1px solid rgba(47,107,255,.1);font-size:13px}.invest-plan-row .k{color:var(--text-sub)}.invest-plan-row .v{font-weight:600;font-variant-numeric:tabular-nums}.invest-plan-actions{display:flex;gap:10px;margin-top:14px}.invest-plan-actions .btn{flex:1}.error-text{color:var(--up);font-size:12px;margin-top:8px}.confirm-mask{position:fixed;inset:0;background:#00000052;display:flex;align-items:center;justify-content:center;padding:20px;z-index:180}.confirm-dialog{width:280px;background:var(--card-solid);border-radius:14px;box-shadow:0 16px 40px #00000038;padding:20px 18px 16px;text-align:center}.confirm-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.45}.confirm-message{margin-top:8px;font-size:13px;color:var(--text-sub);line-height:1.5}.confirm-actions{display:flex;gap:10px;margin-top:18px}.confirm-actions .btn{flex:1}.modal-mask{position:fixed;inset:0;background:#00000047;display:flex;align-items:flex-start;justify-content:center;padding:14px;overflow-y:auto;z-index:120}.modal{width:340px;max-height:calc(100vh - 28px);background:var(--card-solid);border-radius:16px;box-shadow:0 18px 50px #00000040;padding:14px;display:flex;flex-direction:column;overflow-y:auto}.edit-holding-modal{overflow:hidden;padding:0}.modal h3{margin:0 0 10px;font-size:15px}.search-results{margin-top:10px;overflow-y:auto;flex:1}.search-results.compact{max-height:180px;flex:0 0 auto}.search-item{display:flex;justify-content:space-between;align-items:center;padding:9px 6px;border-radius:8px;cursor:pointer}.search-item:hover{background:var(--accent-soft)}.search-item .code{font-size:11px;color:var(--text-weak)}.modal-actions{display:flex;gap:8px;margin-top:12px;position:sticky;bottom:-14px;background:var(--card-solid);padding:10px 0 2px}.edit-holding-head{flex:0 0 auto;padding:14px 14px 0}.edit-holding-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 14px 12px;scrollbar-width:none}.edit-holding-body::-webkit-scrollbar{display:none}.edit-holding-modal .modal-actions{flex:0 0 auto;position:static;margin-top:0;padding:10px 14px 14px;box-shadow:0 -10px 18px #ffffffeb}.edit-summary{display:flex;justify-content:space-between;gap:8px;margin-top:12px;padding:10px 12px;background:#00000008;border-radius:10px}.edit-summary .metric .label{font-size:11px;color:var(--text-sub)}.edit-summary .metric .main{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin-top:12px;overflow:hidden;padding:3px;border:1px solid rgba(138,148,166,.14);border-radius:10px;background:#00000009}.action-grid::-webkit-scrollbar{display:none}.action-btn{min-width:0;border:1px solid transparent;background:transparent;border-radius:7px;min-height:30px;padding:6px 2px;font-size:10px;font-weight:650;cursor:pointer;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.action-btn.active{border-color:var(--accent);color:#fff;background:var(--accent);box-shadow:0 2px 8px #2f6bff33}.action-btn.add.active{color:var(--up);border-color:var(--up);background:#f5414f14}.action-btn.reduce.active{color:var(--down);border-color:var(--down);background:#21c17a14}.action-btn.convert.active{color:#0f8f5c;border-color:#10a66a;background:#10a66a17}.action-btn.invest.active{color:#e54545;border-color:#e54545;background:#e5454514}.action-btn.add.active,.action-btn.reduce.active,.action-btn.convert.active,.action-btn.invest.active{color:#fff;border-color:var(--accent);background:var(--accent)}.detail-top{position:sticky;top:0;z-index:5;margin:0 -14px;padding:0 14px 8px;background:#f5f6f8}.detail-top .card{margin-top:10px}.detail-head{display:flex;align-items:center;gap:8px;padding:2px 0 4px}.detail-head .back{border:none;background:transparent;font-size:20px;cursor:pointer;color:var(--text);padding:2px 6px;border-radius:8px}.detail-head .back:hover{background:#0000000d}.detail-head .title .name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.detail-head .title .code{font-size:11px;color:var(--text-weak)}.detail-head .title{min-width:0;flex:1}.fund-detail-page.has-entry-actions{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.fund-entry-actions{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;gap:10px;padding:8px 14px calc(8px + env(safe-area-inset-bottom,0px));background:var(--card-solid);border-top:1px solid var(--border)}.fund-entry-watchlist{flex:0 0 72px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;padding:0;background:transparent;color:var(--text-sub);font-size:10px;font-weight:500;cursor:pointer}.fund-entry-watchlist-icon{color:var(--accent);font-size:20px;line-height:1}.fund-entry-watchlist:disabled{cursor:default;opacity:.6}.fund-entry-trade-actions{flex:1;display:flex;min-width:0;overflow:hidden;border-radius:999px;background:var(--accent-soft)}.fund-entry-trade-actions button{flex:1;min-height:44px;border:0;padding:0 18px;font-size:15px;font-weight:600;cursor:pointer}.fund-entry-invest{background:var(--accent-soft);color:var(--accent)}.fund-entry-buy{background:var(--accent);color:#fff}.detail-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 8px}.detail-hero .cell .label{font-size:11px;color:var(--text-sub)}.detail-hero .cell .val{font-size:15px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.detail-tabs{display:flex;gap:3px;margin:14px 0 0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.detail-tabs::-webkit-scrollbar{display:none}.detail-tabs button{border:none;background:transparent;color:var(--text-sub);font-size:12px;padding:6px 2px;border-radius:8px;cursor:pointer;font-weight:600;flex:1 1 0;min-width:52px;white-space:nowrap;text-align:center}.detail-tabs button.active{background:var(--accent-soft);color:var(--accent)}.sparkline{overflow:visible}.sparkline-reveal-clip{transform-box:fill-box;transform-origin:left center;animation:sparkline-reveal .68s cubic-bezier(.22,1,.36,1) both}.sparkline-live-endpoint{transform-box:fill-box;transform-origin:center;animation:sparkline-live-endpoint-pulse 1.35s ease-in-out infinite}@keyframes sparkline-reveal{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes sparkline-live-endpoint-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.28;transform:scale(.82)}}@media (prefers-reduced-motion: reduce){.sparkline-reveal-clip,.sparkline-live-endpoint{animation:none}}.sparkline-hit{cursor:crosshair}.sparkline-series-line{transition:opacity .12s ease,stroke-width .12s ease}.sparkline-grid-line{stroke:var(--text-weak);stroke-dasharray:4 3;opacity:.48;stroke-width:1}.sparkline-crosshair-v{stroke:var(--text-weak);stroke-dasharray:4 3;stroke-width:1;opacity:.75}.sparkline-scrub-label{font-size:10px;fill:var(--text-sub);font-weight:600;font-variant-numeric:tabular-nums}.sparkline-axis-label{font-size:10px;fill:var(--text-sub);font-weight:500;font-variant-numeric:tabular-nums}.sparkline-axis-title{font-size:9px;fill:var(--text-weak);font-weight:600}.sparkline-zero-line{stroke:var(--text-weak);stroke-dasharray:4 3;opacity:.55}.sparkline-value-label{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.range-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.range-pill{border:none;background:#0000000a;color:var(--text-sub);font-size:12px;padding:5px 12px;border-radius:14px;cursor:pointer;font-weight:500}.range-pill.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.trade-filter-row{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.trade-filter{border:none;background:#0000000a;color:var(--text-sub);font-size:12px;padding:5px 14px;border-radius:14px;cursor:pointer;font-weight:500}.trade-filter.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.profit-detail-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;font-size:12px;color:var(--text-weak)}.profit-detail-head>span:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.profit-detail-list{margin-top:2px}.profit-detail-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid var(--border)}.profit-detail-row.clickable{cursor:pointer}.profit-detail-row.clickable:active{opacity:.72}.profit-detail-row:first-child{border-top:none;padding-top:2px}.profit-detail-date{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums}.profit-detail-vals{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.profit-detail-val{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.profit-detail-cumulative{font-size:11px;font-weight:500;color:var(--text-weak);font-variant-numeric:tabular-nums}.profit-detail-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--text-weak);text-align:center}.profit-detail-hint{color:var(--text-weak)}.profit-tab-body.has-float-btn{padding-bottom:58px}.trade-list{margin-top:4px}.trade-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--border);cursor:default;user-select:none}.trade-row.clickable{cursor:pointer}.trade-row:active{background:#00000005}.trade-list-foot{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;color:var(--text-weak);text-align:center}.trade-row:first-child{border-top:none;padding-top:4px}.trade-badge{flex:0 0 auto;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;color:#fff}.trade-badge.add{background:#ff8a00}.trade-badge.reduce{background:#2f6bff}.trade-badge.invest{background:#e54545}.trade-badge.convert{background:#10a66a}.trade-body{flex:1;min-width:0}.trade-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trade-conversion-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;line-height:1.35}.trade-conversion-arrow{display:inline-block;width:13px;height:13px;margin:0 5px -2px;position:relative}.trade-conversion-arrow:before{content:"";position:absolute;left:3px;top:6px;width:6px;height:1.5px;background:#10a66a;border-radius:999px}.trade-conversion-arrow:after{content:"";position:absolute;left:6px;top:4px;width:4px;height:4px;border-top:1.5px solid #10a66a;border-right:1.5px solid #10a66a;transform:rotate(45deg)}.trade-time{font-size:11px;color:var(--text-weak);margin-top:2px}.trade-amount{flex:0 0 auto;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.trade-tab-body.has-float-btn{padding-bottom:58px}.trade-add-float{position:fixed;left:0;right:0;bottom:var(--tabbar-height);z-index:30;padding:0 14px 6px;pointer-events:none}.trade-add-float .trade-add-btn{pointer-events:auto;width:100%;margin:0;padding:13px;border:1px solid rgba(47,107,255,.14);border-radius:var(--radius);background:#e8efff;color:var(--accent);font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #2f6bff24}.trade-add-float .trade-add-btn:hover{background:#dce8ff}.trade-type-row{display:flex;gap:8px;margin:12px 0 4px}.trade-type-btn{flex:1;border:1px solid var(--border);background:#fff;color:var(--text-sub);font-size:13px;font-weight:600;padding:8px 0;border-radius:8px;cursor:pointer}.trade-type-btn.active{border-color:transparent;color:#fff}.trade-type-btn.active.add{background:#ff8a00}.trade-type-btn.active.reduce{background:#2f6bff}.trade-type-btn.active.invest{background:#e54545}.trade-type-btn.active.convert{background:#10a66a}.trend-chart-card{padding-top:8px}.trend-chart-wrap{display:flex;justify-content:center;overflow:hidden}.fund-trend-chart{display:block;overflow:hidden}.trend-legend-label{font-size:12px;fill:var(--text-sub)}.trend-legend-label .up{fill:var(--up);font-weight:700}.trend-legend-label .down{fill:var(--down);font-weight:700}.trend-grid{stroke:var(--text-weak);stroke-dasharray:4 3;stroke-width:1;opacity:.35}.trend-axis-y,.trend-axis-x{font-size:10px;fill:var(--text-weak);font-variant-numeric:tabular-nums}.hist-card{margin-top:10px}.hist-sub-tabs{display:flex;gap:20px;border-bottom:1px solid var(--border);margin-bottom:8px}.hist-sub-tabs button{border:none;background:transparent;color:var(--text-sub);font-size:14px;font-weight:600;padding:8px 0;cursor:pointer;position:relative}.hist-sub-tabs button.active{color:var(--text)}.hist-sub-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);border-radius:1px}.hist-table-head,.hist-table-row{display:grid;font-variant-numeric:tabular-nums;padding:8px 2px;font-size:13px}.hist-table-head{font-size:11px;color:var(--text-weak);padding-bottom:4px}.hist-table-head.perf,.hist-table-row.perf{grid-template-columns:1fr 1fr}.hist-table-head.nav,.hist-table-row.nav{grid-template-columns:1.1fr 1fr .9fr}.hist-table-row{border-top:1px solid var(--border)}.hist-pct{font-weight:700}.hist-table-row span:last-child,.hist-table-head span:last-child{text-align:right}.hist-table-head.nav span:nth-child(2),.hist-table-row.nav span:nth-child(2){text-align:right}.stock-row{display:grid;grid-template-columns:1.3fr .9fr .9fr .9fr;gap:4px;padding:9px 2px;border-top:1px solid var(--border);align-items:center;font-variant-numeric:tabular-nums}.stock-row:first-child{border-top:none}.stock-row .sname{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stock-row .scode{font-size:10px;color:var(--text-weak)}.stock-row .c{text-align:right;font-size:12px}.stock-head{display:grid;grid-template-columns:1.3fr .9fr .9fr .9fr;gap:4px;padding:2px;font-size:11px;color:var(--text-weak)}.stock-head .c{text-align:right}.ind-row{display:flex;align-items:center;gap:10px;padding:7px 2px}.ind-row .ind-name{width:70px;font-size:12px;flex:0 0 auto}.ind-row .bar{flex:1;height:10px;background:#0000000d;border-radius:5px;overflow:hidden}.ind-row .bar>span{display:block;height:100%;background:linear-gradient(90deg,#6f97ff,#2f6bff);border-radius:5px}.ind-row .ind-val{width:54px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-sub)}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tag-row .tag{font-size:11px;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:3px 8px}.tabbar{flex:0 0 auto;display:flex;align-items:stretch;gap:4px;padding:3px 10px calc(3px + env(safe-area-inset-bottom,0px));background:#ffffffb8;border-top:1px solid var(--border);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.tab{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:5px;padding:5px 0;border:none;background:transparent;border-radius:10px;color:var(--text-weak);font-size:11px;font-weight:500;cursor:pointer;transition:color .18s ease,background .18s ease,transform .12s ease;-webkit-app-region:no-drag}.tab svg{width:17px;height:17px;transition:transform .18s ease}.tab span{letter-spacing:.2px}.tab:hover{color:var(--text-sub);background:#0000000a}.tab:hover svg{transform:translateY(-1px)}.tab:active{transform:scale(.94)}.tab.active{color:var(--accent);font-weight:600;background:var(--accent-soft)}.tab.active:hover{color:var(--accent);background:var(--accent-soft)}.tab.active svg{transform:translateY(-1px)}.metric-link{border:none;background:transparent;padding:0;text-align:left;cursor:pointer;border-radius:8px}.metric-link:hover{background:#2f6bff0f}.pnl-detail-head{position:relative;z-index:2}.pnl-detail-head .title{flex:1;min-width:0}.pnl-source-wrap{position:relative;flex-shrink:0;z-index:1}.pnl-source-wrap.open{z-index:50}.pnl-source-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(27,31,39,.12);background:#ffffff80;box-shadow:inset 0 0 0 1px #ffffff6b;color:inherit;font-size:12px;padding:4px 8px;border-radius:8px;cursor:pointer;white-space:nowrap}.pnl-source-wrap.source-loading .pnl-source-btn{border-color:#2f6bff3d}.source-spinner{width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(132,146,166,.28);border-top-color:#2f6bffe6;animation:spin .8s linear infinite}.pnl-source-btn .chev{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4.5px solid currentColor;opacity:.8;transform:translateY(1px);transition:transform .16s ease}.pnl-source-wrap.open .pnl-source-btn .chev{transform:translateY(0) rotate(180deg)}.pnl-source-btn:hover{border-color:#1b1f272e;background:#ffffffad}.pnl-source-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:220px;padding:6px;border-radius:10px;background:var(--card-solid);border:1px solid var(--border);box-shadow:0 8px 24px #00000029}.pnl-source-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text)}.pnl-source-menu button:hover{background:#0000000a}.pnl-source-menu button.active{background:#2f6bff1a}.pnl-source-menu .name{font-size:13px;font-weight:600}.pnl-source-menu .endpoint{font-size:11px;color:var(--text-weak);word-break:break-all}.pnl-page{margin:0 -14px}.app.pnl-fullbleed .app-drag{display:none}.pnl-content{padding:0 14px 12px}.pnl-content .card{margin-top:10px}.pnl-hero{position:sticky;top:0;z-index:10;background:var(--accent);color:#fff;padding:8px 14px 12px;margin-bottom:4px;-webkit-app-region:drag}.pnl-hero:before{content:"";position:absolute;left:0;right:0;top:-40px;height:40px;background:var(--accent);pointer-events:none}.pnl-hero .back,.pnl-hero .pnl-period-tabs,.pnl-hero .pnl-period-tabs button,.pnl-hero .pnl-source-wrap,.pnl-hero .pnl-source-btn,.pnl-hero .pnl-source-menu,.pnl-hero .pnl-source-menu button{-webkit-app-region:no-drag}.pnl-hero .detail-head .back,.pnl-hero .detail-head .title .name{color:#fff}.pnl-hero .pnl-source-btn{border-color:#ffffff73;background:#ffffff24;box-shadow:none}.pnl-hero .pnl-source-btn:hover{border-color:#ffffff9e;background:#ffffff38}.pnl-hero .detail-head .back:hover{background:#ffffff1f}.pnl-hero-main{position:relative;z-index:1;text-align:center;padding:8px 0 14px}.pnl-hero-main .label{font-size:13px;opacity:.92}.pnl-hero-main .hero-val{font-size:32px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.pnl-hero-main .hero-val.up,.pnl-hero-main .hero-val.down,.pnl-hero-main .hero-val.flat{color:#fff}.pnl-hero-main .hero-sub{font-size:12px;margin-top:6px;opacity:.92}.pnl-hero-main .hero-sub .up,.pnl-hero-main .hero-sub .down,.pnl-hero-main .hero-sub .flat{color:#fff}.pnl-period-tabs{position:relative;z-index:1;display:flex;gap:4px;background:#ffffff24;border-radius:10px;padding:3px}.pnl-period-tabs button{flex:1;border:none;background:transparent;color:#ffffffd1;font-size:12px;touch-action:manipulation;font-weight:600;padding:7px 4px;border-radius:8px;cursor:pointer}.pnl-period-tabs button.active{background:#fff;color:var(--accent)}.pnl-section{margin-top:10px}.pnl-section-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.pnl-section-head .bar{width:3px;height:14px;border-radius:2px;background:var(--accent)}.pnl-section-head .title{flex:1;font-size:14px;font-weight:700}.pnl-section-head .title .pnl-trend-ref-day{font-size:12px;font-weight:500;color:var(--text-sub)}.pnl-section-head .more{font-size:12px;color:var(--text-weak)}.pnl-section-head .link-btn{border:none;background:transparent;color:var(--accent);font-size:11px;cursor:pointer;padding:0}.pnl-cal-mode-toggle{display:inline-flex;gap:2px;padding:2px;border-radius:8px;background:#0000000d}.pnl-cal-mode-toggle button{border:none;background:transparent;color:var(--text-sub);font-size:13px;font-weight:700;line-height:1;cursor:pointer;width:28px;height:24px;border-radius:6px;padding:0}.pnl-cal-mode-toggle button.active{background:var(--accent);color:#fff}.pnl-trend-legend{display:flex;gap:14px;font-size:11px;color:var(--text-sub);margin-bottom:6px}.pnl-trend-body{height:160px}.pnl-trend-body>.empty{display:flex;height:100%;padding:0;align-items:center;justify-content:center}.pnl-trend-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:-1px}.pnl-trend-legend .dot.up{background:var(--up)}.pnl-trend-legend .dot.index{background:var(--accent)}.pnl-trend-foot{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text-sub);margin-top:8px}.seg-tabs{display:flex;gap:8px;background:#0000000a;border-radius:10px;padding:3px;margin-bottom:10px}.seg-tabs.small button{flex:1;font-size:12px;padding:6px 8px}.seg-tabs.rank button{flex:1;font-size:13px;padding:8px 10px}.seg-tabs button{border:none;background:transparent;color:var(--text-sub);border-radius:8px;cursor:pointer;font-weight:600;touch-action:manipulation}.seg-tabs button.active{background:var(--accent);color:#fff}.pnl-cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.month-picker{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-sub)}.month-picker .nav{border:none;background:#0000000a;width:24px;height:24px;border-radius:6px;cursor:pointer;color:var(--text)}.month-picker .nav:disabled{opacity:.35;cursor:default}.pnl-cal-weekdays{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:4px;font-size:11px;color:var(--text-weak);text-align:center}.pnl-cal-grid{display:grid;gap:4px}.pnl-cal-grid.day{grid-template-columns:repeat(5,1fr)}.pnl-cal-grid.week{grid-template-columns:repeat(3,1fr)}.pnl-cal-grid.week .pnl-cal-cell .day{font-size:9px}.pnl-cal-grid.month{grid-template-columns:repeat(4,1fr)}.pnl-cal-grid.year{grid-template-columns:repeat(3,1fr)}.pnl-cal-cell{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:8px;background:#00000005;padding:2px;font-size:10px}.pnl-cal-cell.empty{background:transparent}.pnl-cal-cell-body{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;text-align:center}.pnl-cal-cell .day{font-size:11px;font-weight:600;line-height:1.2;color:var(--text-sub)}.pnl-cal-cell .val,.pnl-cal-cell .sub{font-size:9px;font-weight:600;line-height:1.15;word-break:break-all;padding:0 1px}.pnl-cal-cell .sub{font-size:10px;color:var(--text-weak)}.pnl-cal-cell.today{background:var(--up);color:#fff}.pnl-cal-cell.today .day{color:#ffffffeb}.pnl-cal-cell.today .val,.pnl-cal-cell.today .sub{color:#fff}.pnl-cal-cell.holiday{background:#00000008}.pnl-cal-cell.future{opacity:.45}.pnl-cal-cell.has-data{cursor:pointer;touch-action:manipulation}.pnl-cal-cell.has-data:active{transform:scale(.97)}.pnl-cal-cell.selected:not(.today){box-shadow:inset 0 0 0 2px var(--accent)}.pnl-cal-cell.today.selected{box-shadow:inset 0 0 0 2px #ffffffd9}.pnl-cal-footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;color:var(--text-sub)}.pnl-rank-list{margin-top:4px}.pnl-rank-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.pnl-rank-row:first-child{border-top:none;padding-top:2px}.rank-badge{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:#0000000f;color:var(--text-sub);flex:0 0 auto}.rank-badge.r1{background:linear-gradient(135deg,#ffd76a,#f5a623);color:#fff}.rank-badge.r2{background:linear-gradient(135deg,#d8dde6,#a8b0bf);color:#fff}.rank-badge.r3{background:linear-gradient(135deg,#f0c4a0,#d4885a);color:#fff}.rank-body{flex:1;min-width:0}.rank-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.rank-top .name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-top .val{font-size:13px;font-weight:700;flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.rank-top .val .pct{font-size:10px;font-weight:600}.rank-bar{margin-top:6px;height:6px;background:#0000000d;border-radius:3px;overflow:hidden}.rank-bar>span{display:block;height:100%;border-radius:3px}.donut-wrap{display:flex;align-items:flex-start;gap:12px}.donut-center{font-size:10px;fill:var(--text-sub);font-weight:600}.donut-legend{flex:1;min-width:0}.donut-legend-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:11px}.donut-legend-row .dot{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.donut-legend-row .name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.donut-legend-row .val{flex:0 0 auto;color:var(--text-sub);font-variant-numeric:tabular-nums}
