:root{--bg:#0a0a0b;--card:#1e1f22;--border:#ffffff14;--text:#ffffffd9;--text2:#ffffff80;--up:#0ecb81;--down:#f6465d;--accent:#1a73e8;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-shell{max-width:1100px;margin:0 auto;padding:24px 16px}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.app-header h1{font-size:22px;font-weight:700}.version{color:var(--text2);background:#ffffff0d;border-radius:6px;padding:4px 10px;font-size:13px}.status-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:40px}.status-card p{color:var(--text2);margin:12px 0;font-size:15px}.status-card button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;margin-top:12px;padding:8px 20px;font-size:14px}.status-card button:hover{background:#ffffff0d}.error-text{color:var(--down)!important}.etf-dashboard{flex-direction:column;gap:20px;display:flex}.count-card{text-align:center;background:linear-gradient(135deg,#1a73e81f,#0ccb8114);border:1px solid #1a73e840;border-radius:14px;flex-direction:column;gap:8px;padding:36px 24px;display:flex}.count-label{color:var(--text2);letter-spacing:.5px;font-size:15px}.count-number{color:var(--text);font-size:64px;font-weight:800;line-height:1}.count-source{color:var(--text2);font-size:12px;font-style:italic}.sample-section h2{color:var(--text2);margin-bottom:10px;font-size:14px;font-weight:600}.etf-table{border-collapse:collapse;width:100%;font-size:13px}.etf-table th{text-align:left;color:var(--text2);border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px;font-weight:500}.etf-table td{border-bottom:1px solid #ffffff0a;padding:8px 12px}.etf-table tr:hover td{background:#ffffff05}.etf-table .up{color:var(--up)}.etf-table .down{color:var(--down)}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color .15s}.sortable-th:hover{color:var(--text);background:#ffffff08}.sort-arrow{opacity:.35;margin-left:4px;font-size:10px;transition:opacity .15s;display:inline-block}.sort-arrow.active{opacity:1;color:var(--accent)}.sortable-th:hover .sort-arrow{opacity:.7}.full-list-section{margin-top:8px}.full-list-section summary{cursor:pointer;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);-webkit-user-select:none;user-select:none;padding:12px 16px;font-size:14px;font-weight:600}.full-list-section summary:hover{background:#1a73e814}.table-scroll{border:1px solid var(--border);border-radius:var(--radius);max-height:600px;margin-top:8px;overflow-y:auto}.full-table{font-size:12px}.full-table th{background:var(--card);z-index:1;position:sticky;top:0}.poll-controls{justify-content:center;align-items:center;gap:12px;display:flex}.poll-btn{cursor:pointer;border:1px solid var(--border);color:var(--text2);background:0 0;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .3s}.poll-btn.active{border-color:var(--up);color:var(--up);animation:2s infinite pollPulse}.poll-btn.paused{border-color:var(--text2)}@keyframes pollPulse{0%,to{box-shadow:0 0 #0ccb8166}50%{box-shadow:0 0 8px 2px #0ccb8126}}.fetch-time{color:var(--text2);font-style:normal}.refresh-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.refresh-btn:hover{background:#1a73e81a}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.app-shell{padding:16px 10px}.app-header h1{font-size:18px}.count-number{font-size:48px}}
