.etfx-page{max-width:var(--marketing-shell-max);margin:0 auto;padding:0 32px 64px;overflow-x:clip;min-width:0;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans)}.etfx-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.etfx-muted{color:var(--text-faint)}.etfx-header{text-align:center;margin:20px 0 16px}.etfx-eyebrow{font-family:var(--font-mono);font-size:var(--type-eyebrow-size);font-weight:var(--type-eyebrow-weight);letter-spacing:var(--type-eyebrow-tracking);text-transform:uppercase;color:var(--text-faint);margin:0 0 8px}.etfx-title{font-size:var(--type-page-title-size);font-weight:var(--type-page-title-weight);letter-spacing:var(--type-page-title-tracking);margin:0 0 6px}.etfx-sub{font-size:var(--type-body-size);color:var(--text-muted);margin:0 auto 16px;max-width:680px}.etfx-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 28px;margin:0}.etfx-stat dt{font-size:var(--type-micro-size);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.etfx-stat dd{margin:2px 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--type-value-sm-size);font-weight:var(--type-value-sm-weight);color:var(--text-primary)}.etfx-section{margin-top:28px}.etfx-section-title{margin:0 0 4px;font-size:var(--type-section-size);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-tracking)}.etfx-note{margin:0 0 12px;font-size:var(--type-caption-size);color:var(--text-muted)}.etfx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));gap:16px}.etfx-card{min-width:0;padding:18px;background:var(--surface-card,var(--bg-primary));border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.etfx-card-title{margin:0 0 10px;font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight);letter-spacing:var(--type-card-title-tracking)}.etfx-table-wrap{overflow-x:auto}.etfx-table{width:100%;border-collapse:collapse;font-size:var(--type-body-size)}.etfx-table th{text-align:left;padding:8px 10px;font-size:var(--type-micro-size);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.etfx-table td,.etfx-table th{border-bottom:1px solid var(--border-primary);white-space:nowrap}.etfx-table td{padding:9px 10px;color:var(--text-secondary)}.etfx-table .r{text-align:right}.etfx-table tr.is-dim td{color:var(--text-faint)}.etfx-sort{border:0;background:none;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.etfx-btn:focus-visible,.etfx-input:focus-visible,.etfx-page a:focus-visible,.etfx-row-btn:focus-visible,.etfx-select:focus-visible,.etfx-sort:focus-visible{outline:2px solid var(--emerald);outline-offset:2px}.etfx-row-btn{border:0;background:none;padding:0;font:inherit;color:var(--text-primary);font-weight:600;cursor:pointer;text-align:left;min-height:32px}.etfx-row-btn:hover{color:var(--emerald)}.etfx-ticker{font-family:var(--font-mono);font-weight:700;color:var(--text-primary)}.etfx-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.etfx-input,.etfx-select{min-height:44px;padding:0 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font:inherit;font-size:var(--type-body-size)}.etfx-input{flex:1 1 260px;max-width:420px}.etfx-btn{min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-secondary);font:inherit;font-size:var(--type-body-size);font-weight:600;cursor:pointer}.etfx-btn.is-active{border-color:color-mix(in srgb,var(--emerald) 45%,var(--border-primary));color:var(--emerald);background:color-mix(in srgb,var(--emerald) 8%,transparent)}.etfx-chip{display:inline-block;padding:2px 7px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--type-micro-size);font-weight:700;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-primary)}.etfx-chip--pos{color:var(--emerald);background:color-mix(in srgb,var(--emerald) 10%,transparent);border-color:color-mix(in srgb,var(--emerald) 30%,transparent)}.etfx-chip--neg{color:var(--negative);background:color-mix(in srgb,var(--negative) 10%,transparent);border-color:color-mix(in srgb,var(--negative) 30%,transparent)}.etfx-pos{color:var(--emerald)}.etfx-neg{color:var(--negative)}.etfx-bars{list-style:none;margin:0;padding:0;display:grid;gap:8px}.etfx-bar-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) auto;gap:10px;align-items:center;font-size:var(--type-caption-size)}.etfx-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.etfx-bar-track{height:8px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--text-muted) 18%,transparent);overflow:hidden}.etfx-bar-fill{display:block;height:100%;background:var(--emerald)}.etfx-empty{padding:20px 16px;text-align:center;font-size:var(--type-body-size);color:var(--text-muted);border:1px dashed var(--border-primary);border-radius:var(--radius-lg)}.etfx-skel{height:12px;margin:10px 0;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-tertiary) 0,color-mix(in srgb,var(--text-muted) 12%,var(--bg-tertiary)) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:etfx-shimmer 1.4s ease-in-out infinite}@keyframes etfx-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.etfx-skel{animation:none}}.etfx-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 16px;margin:0;font-size:var(--type-caption-size);color:var(--text-muted)}.etfx-legend dt{display:inline;font-family:var(--font-mono);font-weight:700;color:var(--text-primary);margin-right:6px}.etfx-legend dd{display:inline;margin:0}.etfx-foot{margin-top:28px;font-size:var(--type-caption-size);color:var(--text-faint)}.etfx-foot p{margin:0 0 4px}@media (max-width:640px){.etfx-page{padding:0 16px 48px}.etfx-input{max-width:none}.etfx-bar-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}}