:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f7fb;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}html,body,#root{min-height:100%}body{background:radial-gradient(circle at top,#3b82f614,#0000 28%),#f4f7fb;min-width:320px;margin:0}a{color:inherit;text-decoration:none}:root{color:#333;background:linear-gradient(135deg,#f0f8ff 0%,linen 200%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}body{background:linear-gradient(135deg,#f0f8ff 0%,linen 200%);min-width:320px;min-height:100vh;margin:0}*{box-sizing:border-box}button,input{font:inherit}.hidden-file-input{display:none}.page-shell{min-height:100vh;padding:15px}.app-shell{max-width:1478px;margin:0 auto}.header-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border-radius:12px;margin-bottom:18px;padding:19px;box-shadow:0 6px 25px #0000001a}.brand-hero{align-items:center;gap:14px;margin-bottom:0;display:flex}.compact-brand-hero h1{letter-spacing:-.02em;font-size:24px}.beta-badge{color:#6d28d9;vertical-align:middle;background:#7c3aed1f;border-radius:999px;align-items:center;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #4f46e538}.header-top-row{justify-content:space-between;align-items:center;gap:16px;display:flex}h1{color:#333;margin:0;font-size:22px;line-height:1.3}.header-live-strip{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.header-live-text{color:#64748b;font-size:11px}.live-status-badge,.fund-estimate-status{border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.live-status-badge.muted,.fund-estimate-status.muted{color:#64748b;background:#f1f5f9}.live-status-badge.fresh,.fund-estimate-status.fresh{color:#15803d;background:#16a34a1a}.live-status-badge.aging,.fund-estimate-status.aging{color:#b45309;background:#f59e0b1f}.live-status-badge.stale,.fund-estimate-status.stale{color:#dc2626;background:#dc26261a}.header-status-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.header-link-button{color:#333;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.sync-pill{border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:10px;font-weight:500;display:inline-flex}.sync-pill.offline{color:#999;background:#f5f5f5}.sync-pill.offline:before{content:"";background:#999;border-radius:50%;width:6px;height:6px}.controls-row{justify-content:space-between;align-items:center;gap:12px;margin-top:15px;display:flex}.search-group{flex:1;gap:10px;min-width:0;display:flex}.search-input{color:#333;background:#fff;border:2px solid #e0e0e0;border-radius:8px;flex:1;height:42px;padding:0 12px}.search-input:focus,.editor-input:focus{border-color:#667eea;outline:none}.header-actions-group{flex-wrap:wrap;gap:8px;display:flex}.primary-button,.ghost-button,.sort-button,.sort-icon-button,.section-chip,.chip{cursor:pointer;border:none;transition:transform .15s,box-shadow .15s,background .15s}.primary-button:hover,.ghost-button:hover,.sort-button:hover,.sort-icon-button:hover,.section-chip:hover,.chip:hover,.mini-button:hover,.mode-tab:hover{transform:translateY(-1px)}.primary-button{color:#fff;white-space:nowrap;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;height:42px;padding:0 16px;font-size:14px;font-weight:500}.ghost-button,.sort-button{color:#333;background:#ffffffd9;border:1px solid #e0e0e0;border-radius:8px;height:42px;padding:0 14px;font-size:13px}.toggle-button.active{color:#4c51bf;background:#667eea14;border-color:#667eea59}.sort-icon-button{color:#333;background:#ffffffd9;border:1px solid #e0e0e0;border-radius:8px;min-width:78px;height:38px;padding:0 10px;font-size:12px;font-weight:600}.section-tabs-row{flex-wrap:wrap;gap:8px;margin-top:15px;display:flex}.section-chip,.chip{color:#666;background:#ffffffb3;border-radius:6px;padding:9px 18px;font-size:13px;font-weight:500}.section-chip.active,.chip.active{color:#fff;background:#667eea;box-shadow:0 3px 9px #667eea4d}.header-error,.error-text{color:#dc2626;margin:12px 0 0;font-size:14px;font-weight:600}.summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid #ffffffb8;border-radius:12px;box-shadow:0 4px 16px #0000000d}.stat-card{border:1px solid #e2e8f0e6;flex-direction:column;justify-content:space-between;gap:7px;min-height:112px;padding:14px 14px 13px;display:flex;box-shadow:0 10px 24px #0f172a0f}.stat-label,.metric-label,.fund-code,.stat-footnote,.section-header p{color:#64748b}.stat-label{letter-spacing:.02em;font-size:11px;font-weight:700}.stat-footnote{color:#94a3b8;font-size:10px;line-height:1.4}.stat-card strong{letter-spacing:-.02em;color:#0f172a;font-size:24px;line-height:1.05}.install-card strong{font-size:24px}.pwa-install-card{position:relative}.mini-action-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb,#4f46e5);border:none;border-radius:999px;align-self:flex-start;height:32px;margin-top:10px;padding:0 12px;font-size:12px;font-weight:600;box-shadow:0 10px 24px #2563eb33}.mini-action-button:hover{filter:brightness(1.03)}.board-section{padding:16px}.section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.fund-card h3{font-size:13px;line-height:1.3}.section-header p{margin:4px 0 0;font-size:12px}.fund-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.rebalance-layout{gap:10px;display:grid}.rebalance-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.rebalance-summary-grid.compact{gap:8px}.rebalance-summary-card{background:#f8fbff;border:1px solid #e8edf3;border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex}.rebalance-summary-card.compact{gap:4px;padding:10px 12px}.rebalance-summary-label,.rebalance-summary-footnote{color:#64748b}.rebalance-summary-card strong{color:#0f172a;font-size:20px;line-height:1.2}.rebalance-summary-label,.rebalance-summary-footnote{font-size:11px}.rebalance-summary-footnote.compact{font-size:10px}.rebalance-total-input-wrap,.rebalance-total-input-wrap.compact{display:grid}.rebalance-total-input{color:#0f172a;background:#fff;border:1px solid #d9e1ec;border-radius:8px;width:100%;height:36px;padding:0 10px;font-size:14px;font-weight:600}.rebalance-total-input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1f}.rebalance-table-card{background:#fff;border:1px solid #e8edf3;border-radius:12px;overflow:hidden}.rebalance-table-card.compact{border-radius:10px}.rebalance-table-head,.rebalance-row{grid-template-columns:1.6fr 1.2fr .9fr .95fr 1fr .9fr;align-items:center;gap:12px;display:grid}.rebalance-table-head{color:#64748b;background:#f8fafc;padding:12px 14px;font-size:11px;font-weight:600}.rebalance-sort-head{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.rebalance-sort-head em{color:#94a3b8;font-size:11px;font-style:normal}.rebalance-table-head.compact{padding:10px 12px;font-size:10px}.rebalance-table-head.compact .rebalance-sort-head{font-size:10px}.rebalance-table-body{flex-direction:column;gap:8px;display:flex}.rebalance-table-body.flat{gap:0}.rebalance-group{background:#fff;border:1px solid #eef2f7;border-radius:14px;overflow:hidden}.rebalance-group.compact{border-radius:12px}.rebalance-group-bar{background:linear-gradient(135deg,#eff6ff 0%,#f8fbff 100%);border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.rebalance-group-bar.compact{gap:8px;padding:10px 12px}.rebalance-group-title-wrap{flex-direction:column;gap:4px;display:flex}.rebalance-group-title-wrap.compact{gap:2px}.rebalance-group-title-wrap strong{color:#1e293b;font-size:14px;line-height:1.2}.rebalance-group-title-wrap span,.rebalance-group-summary span{color:#64748b;font-size:12px}.rebalance-group-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.rebalance-group-summary.compact{gap:10px}.rebalance-group-summary strong{font-size:12px}.rebalance-row{border-top:1px solid #eef2f7;padding:14px}.rebalance-row.compact{gap:10px;padding:10px 12px}.rebalance-row-flat{border-top:1px solid #eef2f7}.rebalance-table-body.flat .rebalance-row-flat:first-child{border-top:none}.rebalance-total-row{background:#f8fafc;border-top:1px solid #dbe4ee}.rebalance-target-total-cell{gap:2px;display:grid}.rebalance-target-total-cell strong{color:#0f172a;font-size:12px}.rebalance-target-total-cell span{color:#64748b;font-size:11px}.rebalance-group .rebalance-row:first-of-type{border-top:none}.rebalance-fund-cell,.rebalance-action-cell{gap:4px;min-width:0;display:grid}.rebalance-fund-cell.compact,.rebalance-action-cell.compact{gap:2px}.rebalance-fund-cell strong,.rebalance-action-cell strong{color:#111827;font-size:13px}.rebalance-fund-cell span,.rebalance-action-cell span,.rebalance-value-cell,.rebalance-percent-cell,.rebalance-diff-cell{font-size:12px}.rebalance-fund-cell span,.rebalance-action-cell span{color:#64748b}.rebalance-fund-trend-line{flex-wrap:wrap;gap:6px;line-height:1.35;display:flex;font-size:10px!important}.trend-chip{color:#94a3b8;background:#f8fafc;border-radius:999px;align-items:center;padding:1px 6px;display:inline-flex}.trend-chip.up{color:#dc2626;background:#ef44441a}.trend-chip.down{color:#16a34a;background:#22c55e1a}.trend-chip.flat{color:#64748b;background:#94a3b81f}.rebalance-amount-stack,.rebalance-budget-cell{gap:2px;display:grid}.rebalance-amount-stack strong,.rebalance-budget-cell strong{color:#0f172a;font-size:12px}.rebalance-amount-stack span,.rebalance-budget-cell span{color:#64748b;font-size:11px}.rebalance-value-cell,.rebalance-percent-cell,.rebalance-diff-cell{color:#0f172a;font-weight:600}.rebalance-diff-cell{gap:4px;display:grid}.rebalance-diff-cell span{color:#64748b;font-size:11px}.rebalance-target-cell{align-items:center;gap:6px;display:flex}.rebalance-target-cell.stack{justify-content:flex-start}.rebalance-target-input{color:#0f172a;background:#fff;border:1px solid #d9e1ec;border-radius:8px;width:72px;height:32px;padding:0 8px;font-size:12px;font-weight:600}.rebalance-target-input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1f}.rebalance-target-cell span{color:#64748b;font-size:12px}.rebalance-diff-cell.over,.rebalance-action-cell strong.over,.rebalance-budget-cell.over strong{color:#dc2626}.rebalance-diff-cell.under,.rebalance-action-cell strong.under,.rebalance-budget-cell.under strong{color:#16a34a}.empty-state{text-align:center;color:#666;background:#f8f9fa;border:1px dashed #d9d9d9;border-radius:10px;padding:24px}.fund-card{background:#fff;border:1px solid #ededed;border-radius:10px;padding:8px;box-shadow:0 1px 4px #00000008}.fund-main{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.compact-fund-main{align-items:center}.fund-title-block{min-width:0}.section-header h2,.fund-card h3{color:#333;margin:0}.fund-card h3{font-size:12px;font-weight:500;line-height:1.25}.fund-code{color:#8c8c8c;margin-top:2px;font-size:10px}.fund-sector-tag{color:#4f46e5;background:#eef2ff;border-radius:999px;align-items:center;margin-top:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.fund-sync-warning{color:#d97706;margin:4px 0 0;font-size:10px}.fund-market-value-inline{margin-top:6px}.fund-market-value-inline span{color:#8c8c8c;font-size:10px;display:block}.fund-market-value-inline strong{color:#111827;margin-top:2px;font-size:18px;font-weight:700;line-height:1.1;display:block}.fund-price-block{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;display:flex}.fund-change-rate{letter-spacing:-.02em;font-size:24px;font-weight:900;line-height:.95}.fund-realtime-value-label,.fund-realtime-profit-label{color:#cbd5e1;font-size:8px}.fund-realtime-value{color:#1e293b;font-size:14px;font-weight:700;line-height:1}.fund-realtime-profit{font-size:14px;font-weight:700;line-height:1}.fund-price-meta{color:#cbd5e1;font-size:8px;line-height:1.15}.fund-estimate-value{color:#333;font-size:14px;font-weight:600;line-height:1}.fund-change-badge{background:#f5f5f5;border-radius:999px;justify-content:center;align-items:center;min-height:16px;padding:0 5px;font-size:9px;font-weight:600;display:inline-flex}.fund-change-rate.up,.fund-change-badge.up{color:#ef4444;background:#ef44441a}.fund-change-rate.down,.fund-change-badge.down{color:#16a34a;background:#16a34a1a}.fund-card-body,.detail-only-body{margin-top:8px}.fund-card-tabs{background:#f5f7fa;border-radius:7px;gap:4px;margin-top:8px;padding:2px;display:inline-flex}.fund-card-tab{color:#7a7a7a;cursor:pointer;background:0 0;border:none;border-radius:6px;height:24px;padding:0 10px;font-size:10px;font-weight:500}.fund-card-tab.active{color:#333;background:#fff;box-shadow:0 1px 2px #0000000f}.fund-card-main-column,.fund-detail-column{min-width:0}.detail-only-column{width:100%}.detail-chart-card{padding:7px}.fund-detail-card{background:#fbfcfd;border:1px solid #eef2f6;border-radius:7px;height:100%;padding:6px 7px}.fund-detail-header{color:#8c8c8c;margin-bottom:5px;font-size:9px;font-weight:500}.fund-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;display:grid}.detail-tab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fund-networth-chart-wrap{background:linear-gradient(#fff 0%,#f8fbff 100%);border:1px solid #eef2f6;border-radius:8px;margin-top:8px;padding:6px;position:relative}.fund-networth-chart{width:100%;height:120px;display:block}.fund-chart-tooltip{color:#fff;pointer-events:none;z-index:2;background:#0f172ae6;border-radius:6px;gap:1px;min-width:74px;padding:5px 6px;display:grid;position:absolute;top:8px;transform:translate(-50%);box-shadow:0 4px 12px #0f172a33}.fund-chart-tooltip strong{font-size:10px;line-height:1.2}.fund-chart-tooltip span{color:#fffc;font-size:8px}.chart-axis-label{fill:#94a3b8;dominant-baseline:middle;font-size:8px}.chart-grid-line{fill:none;stroke:#94a3b83d;stroke-width:1px}.chart-axis-line{fill:none;stroke:#94a3b85c;stroke-width:1px}.chart-cost-line{fill:none;stroke:#f59e0b8c;stroke-width:1.25px;stroke-dasharray:4 3}.chart-cost-label{fill:#d97706b8;font-size:8px;font-weight:600}.chart-net-cost-line{fill:none;stroke:#a855f78c;stroke-width:1.25px;stroke-dasharray:5 3}.chart-net-cost-label{fill:#7e22ceb8;font-size:8px;font-weight:600}.chart-price-line{fill:none;stroke:#2f6fed;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chart-crosshair-line{fill:none;stroke:#2f6fed59;stroke-width:1px;stroke-dasharray:3 3}.chart-active-dot{fill:#2f6fed;stroke:#fff;stroke-width:1.5px}.chart-trade-dot{stroke:#fff;stroke-width:1.5px}.chart-trade-dot.buy{fill:#dc2626}.chart-trade-dot.sell{fill:#16a34a}.chart-hover-layer{fill:#0000;cursor:crosshair}.chart-tooltip-trade{font-weight:700}.chart-tooltip-trade.buy{color:#dc2626}.chart-tooltip-trade.sell{color:#16a34a}.fund-chart-empty{color:#a0a7b4;justify-content:center;align-items:center;height:120px;font-size:10px;display:flex}.fund-chart-info-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.fund-chart-range-tabs{gap:8px;margin-top:10px;display:flex}.fund-chart-range-tab{color:#64748b;cursor:pointer;background:#f8fafc;border:1px solid #d9e1ec;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.fund-chart-range-tab.active{color:#fff;background:#2f6fed;border-color:#2f6fed}.fund-chart-info-item{background:#f6f8fb;border:1px solid #edf1f5;border-radius:6px;min-width:0;padding:5px 6px}.fund-chart-info-item span{color:#8c8c8c;font-size:9px;display:block}.fund-chart-info-item strong{color:#333;margin-top:2px;font-size:10px;font-weight:500;display:block}.fund-detail-item{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.fund-detail-item span{color:#8c8c8c;font-size:9px}.fund-detail-item strong{white-space:nowrap;font-size:10px;font-weight:500}.fund-mini-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.mini-metric{background:#fafbfc;border:1px solid #f1f3f5;border-radius:6px;padding:5px 6px}.mini-metric strong{color:#333;margin-top:2px;font-size:11px;font-weight:500;line-height:1.25;display:block}.mini-metric-subtext{color:#7b8794;margin-top:2px;font-size:9px;line-height:1.25;display:block}.fund-tags{flex-wrap:wrap;gap:4px;display:flex}.tag{color:#667eea;background:#667eea1a;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.fund-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.metric-label{margin-bottom:2px;font-size:10px;display:block}.quick-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.position-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px;display:grid}.position-box{background:#fbfcfd;border:1px solid #eef2f6;border-radius:7px;padding:6px}.position-box strong{color:#333;margin-top:2px;font-size:11px;font-weight:500;line-height:1.25;display:block}.position-box-profit{grid-column:span 2}.compact-position-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-position-box-wide{grid-column:span 2}.transaction-history{background:#f8fafc;border:1px solid #e5edf7;border-radius:12px;margin-top:16px;padding:14px}.transaction-history-header{color:#333;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.transaction-history-header span{color:#64748b;font-size:13px}.transaction-list{gap:8px;display:grid}.transaction-item{color:#334155;background:#fff;border:1px solid #e5edf7;border-radius:10px;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:10px;padding:10px 12px;font-size:13px;display:grid}.history-modal{width:min(860px,100%)}.history-summary{color:#475569;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:14px;display:flex}.history-filter-row{justify-content:flex-end;margin-top:10px;display:flex}.history-list{gap:12px;max-height:60vh;margin-top:16px;display:grid;overflow:auto}.history-item{background:#f8fafc;border:1px solid #e5edf7;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.history-item-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.history-item-main{color:#334155;gap:4px;font-size:14px;display:grid}.history-item-main strong{color:#333;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.history-tag{border-radius:999px;align-items:center;height:18px;padding:0 6px;font-size:10px;font-weight:700;display:inline-flex}.history-tag.sold{color:#64748b;background:#94a3b829}.position-subtext{color:#64748b;margin-top:2px;font-size:9px;line-height:1.3;display:block}.compact-meta-row{align-items:center;margin-top:6px}.ultra-compact-meta-row{gap:6px}.compact-actions{gap:4px}.ultra-compact-actions{gap:3px}.fund-actions.compact-actions .mini-button{background:#fafafa;border-color:#ededed;border-radius:6px;height:22px;padding:0 6px;font-size:9px}.fund-meta-row{color:#64748b;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:9px;display:flex}.fund-meta-info-group{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.fund-estimate-status{min-height:18px;padding:0 6px;font-size:9px}.fund-actions{flex-wrap:wrap;gap:8px;display:flex}.mini-button{color:#555;cursor:pointer;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;height:30px;padding:0 10px;font-size:12px}.mini-button:hover{background:#f5f5f5}.mini-button:disabled,.primary-button:disabled{opacity:.7;cursor:not-allowed}.mini-button.danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.position-editor{background:#f8fafc;border:1px solid #dbe3ef;border-radius:16px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;padding:18px;display:grid}.editor-title-row{grid-column:1/-1}.editor-title-row h4{color:#333;margin:0}.editor-title-row p{color:#64748b;margin:6px 0 0;font-size:14px}.editor-field{flex-direction:column;gap:8px;display:flex}.editor-field label{color:#475569;font-size:14px}.editor-field small{color:#64748b;font-size:12px}.editor-input{color:#333;background:#fff;border:1px solid #dbe3ef;border-radius:12px;height:42px;padding:0 12px}.editor-preview{background:#fff;border:1px dashed #bfdbfe;border-radius:14px;flex-direction:column;justify-content:center;padding:14px;display:flex}.editor-preview strong{color:#667eea;margin-top:6px;font-size:22px}.editor-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;display:flex}.modal-backdrop{z-index:50;background:#0f172a8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{width:min(720px,100%);padding:24px;position:relative}.import-preview-modal{width:min(560px,100%)}.modal-close{color:#334155;cursor:pointer;background:#eef2ff;border:none;border-radius:999px;width:36px;height:36px;font-size:22px;line-height:1;position:absolute;top:14px;right:14px}.modal-header h3{color:#333;margin:0}.modal-header p{color:#64748b;margin:8px 0 0}.mode-tabs,.trade-type-tabs{gap:10px;margin-top:18px;display:flex}.mode-tab{color:#333;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:999px;height:40px;padding:0 16px}.mode-tab.active{color:#fff;background:#667eea;border-color:#667eea}.modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.modal-preview{margin-top:16px}.modal-actions{justify-content:flex-end;gap:12px;margin-top:18px;display:flex}.import-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.import-preview-item{background:#f8fafc;border:1px solid #e5edf7;border-radius:12px;gap:6px;padding:12px 14px;display:grid}.import-preview-item span{color:#64748b;font-size:12px}.import-preview-item strong{color:#0f172a;font-size:18px}.import-preview-item.muted strong{color:#475569}.import-preview-note{color:#1e3a8a;background:#eff6ff;border-radius:12px;margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.5}.import-preview-funds-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.import-preview-fund-actions{flex-wrap:wrap;gap:8px;display:flex}.import-preview-fund-list{gap:10px;max-height:320px;margin-top:12px;display:grid;overflow:auto}.import-preview-fund-row{background:#fff;border:1px solid #e5edf7;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.import-preview-fund-row input{width:18px;height:18px}.import-preview-fund-main{gap:4px;display:grid}.import-preview-fund-main strong{color:#0f172a}.import-preview-fund-main span,.import-preview-fund-meta{color:#64748b;font-size:13px}.modal-primary{height:44px}.up{color:#dc2626!important}.down{color:#16a34a!important}@media (width<=1200px){.fund-list{grid-template-columns:repeat(3,minmax(0,1fr))}.fund-mini-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.fund-detail-grid,.detail-tab-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fund-chart-info-bar{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.header-top-row,.controls-row,.section-header,.fund-main,.search-group,.fund-meta-row{flex-direction:column}.fund-list,.summary-strip,.fund-metrics,.position-grid,.position-editor,.modal-grid,.transaction-item{grid-template-columns:repeat(2,minmax(0,1fr))}.history-item{flex-direction:column;align-items:stretch}.history-item-actions{justify-content:flex-start}.position-box-profit{grid-column:span 1}.header-actions-group,.search-group,.section-tabs-row,.header-live-strip,.fund-meta-info-group,.fund-meta-row{width:100%}.fund-meta-row{flex-direction:column;align-items:flex-start}.mode-tabs,.trade-type-tabs,.modal-actions{flex-direction:column}.import-preview-fund-row{grid-template-columns:auto 1fr}.import-preview-fund-meta{grid-column:2}.modal-primary,.mode-tab,.section-chip,.ghost-button,.sort-button,.sort-icon-button,.primary-button{width:100%}}@media (width<=640px){.fund-list,.summary-strip,.fund-metrics,.position-grid,.position-editor,.modal-grid,.transaction-item,.fund-mini-metrics,.fund-detail-grid,.detail-tab-grid,.fund-chart-info-bar{grid-template-columns:1fr}.position-box-profit,.compact-position-box-wide{grid-column:span 1}.mini-action-button{justify-content:center;width:100%}}
