.etf-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}
.etf-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;padding:10px}
.etf-theme-card{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;cursor:pointer}
.etf-theme-card.active{border-color:var(--brand);box-shadow:none}
.etf-theme-name{font-weight:700}
.etf-theme-meta{font-size:12px;color:var(--muted);margin-top:4px}
.etf-related-funds-btn{margin-top:8px;padding:5px 9px;font-size:12px}
.etf-detail{padding:12px}
.etf-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}
.etf-detail-card{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}
.etf-detail-title{font-size:12px;color:var(--muted)}
.etf-detail-value{font-size:16px;font-weight:700;margin-top:4px}
.etf-flow-chart{width:100%;height:220px;display:block;margin-top:10px}
.etf-detail-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.etf-detail-actions{display:flex;justify-content:flex-end;margin-top:10px}
.etf-holdings-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px}
.etf-holdings-table th,.etf-holdings-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.mini-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--muted)}
.mini-legend .line{width:20px;height:3px;border-radius:2px;display:inline-block}
.chart-axis-label{font-size:11px;fill:#6c7a89}
.etf-chart-wrap{position:relative;margin-top:4px}
.etf-linked-history{display:grid;gap:8px;margin-top:2px}
.etf-sync-svg{border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.etf-axis-line{stroke:#d7e0ea;stroke-width:1}
.etf-zero-line{stroke:#c9d5e3;stroke-width:1}
.etf-price-line{fill:none;stroke:#b32727;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.etf-sync-hit{cursor:crosshair}
.etf-sync-cursor{stroke:var(--brand);stroke-width:1.2;stroke-dasharray:4 4;opacity:.85;pointer-events:none}
.etf-sync-mark{transition:opacity .15s ease,stroke-width .15s ease,filter .15s ease}
.etf-sync-mark.is-linked-active{opacity:1;stroke:var(--panel);stroke-width:2.2;filter:drop-shadow(0 1px 3px rgba(14,91,168,.28))}
.etf-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.etf-history-window-tabs{display:inline-flex;gap:4px;align-items:center;padding:3px;border:1px solid var(--line);border-radius:8px;background:#f6f8fb}
.etf-history-window-tabs button{min-width:42px;padding:5px 8px;border:0;border-radius:6px;background:transparent;color:#516173;font-size:12px;font-weight:850;cursor:pointer}
.etf-history-window-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 0 0 1px rgba(14,91,168,.14)}
.etf-price-kline{display:none;width:100%;height:clamp(260px,32vw,360px);border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden;margin-top:8px}
.etf-price-kline.is-ready{display:block}
.etf-tooltip{position:absolute;display:none;pointer-events:none;z-index:10;max-width:220px;padding:6px 8px;border-radius:8px;background:rgba(27,39,51,.92);color:#fff;font-size:12px;line-height:1.4;box-shadow:0 6px 18px rgba(0,0,0,.18)}
