:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--bg-subtle:#faf9fc;--bg-raised:#fff;--border:#e5e4e7;--accent:#aa3bff;--accent-bg:#aa3bff1a;--up:#1a7f37;--up-bg:#1a7f371a;--down:#cf222e;--down-bg:#cf222e1a;--shadow:0 1px 2px #140a1e0a, 0 8px 24px #140a1e0f;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--radius:12px;--radius-sm:8px;font:15px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--bg-subtle:#1b1c24;--bg-raised:#1e2029;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc26;--up:#3fb950;--up-bg:#3fb95026;--down:#f85149;--down-bg:#f8514926;--shadow:0 1px 2px #0003, 0 8px 24px #0000004d}}*{box-sizing:border-box}body{background:linear-gradient(180deg, var(--bg-subtle), var(--bg) 320px);margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--sans);color:var(--text-h);margin:0;font-weight:600}table{border-collapse:collapse;width:100%;font-size:14px}button{font:inherit}.page{max-width:1100px;margin:0 auto;padding:20px 16px 48px}.topbar{background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.topbar h1{letter-spacing:-.01em;font-size:20px}@media (width>=640px){.page{padding:28px 24px 56px}.topbar{padding:16px 24px}.topbar h1{font-size:22px}}.section{margin-bottom:24px}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin:0 0 8px 2px;font-size:13px;font-weight:600}.btn-refresh{border:1px solid var(--border);background:var(--bg-raised);color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-size:13px;font-weight:500;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-refresh:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg)}.btn-refresh:disabled{cursor:default;color:var(--text);opacity:.75}.btn-refresh .spinner{opacity:.7;border:2px solid;border-top-color:#0000;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert{color:var(--down);background:var(--down-bg);border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 14px;font-size:14px}.status-line{color:var(--text);padding:24px 4px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table thead th{background:var(--bg-raised);text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.data-table thead th[data-sortable]{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.data-table thead th[data-sortable]:hover{color:var(--text-h)}.data-table thead th[data-active]{color:var(--accent)}.data-table thead th[data-align=right],.data-table td[data-align=right]{text-align:right}.data-table tbody td{border-bottom:1px solid var(--border);color:var(--text-h);padding:12px 14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr[data-clickable]{cursor:pointer;transition:background-color .12s}.data-table tbody tr[data-clickable]:hover{background:var(--bg-subtle)}.data-table tbody tr[data-selected]{background:var(--accent-bg)}.data-table .ticker-cell{font-family:var(--mono);font-size:13px}.data-table .estimate-row td{background:var(--bg-subtle);font-weight:600}.data-table [data-trend=up]{color:var(--up)}.data-table [data-trend=down]{color:var(--down)}.data-table .name-cell{background:inherit;background-color:var(--bg-raised);position:sticky;left:0}.data-table tbody tr[data-clickable]:hover .name-cell{background-color:var(--bg-subtle)}.data-table tbody tr[data-selected] .name-cell{background-color:var(--accent-bg)}.data-table .estimate-row .name-cell{background-color:var(--bg-subtle)}@media (width<=639px){.data-table thead th,.data-table tbody td{padding:10px;font-size:13px}.data-table tbody tr[data-clickable] td{padding-top:13px;padding-bottom:13px}.data-table{table-layout:fixed}.mobile-hidden{display:none}.holdings-table .name-cell{width:42%}.holdings-table .weight-cell,.holdings-table .price-cell,.holdings-table .change-cell{width:19.34%}.watchlist-table .name-cell{width:40%}.watchlist-table .ticker-cell{width:16%}.watchlist-table .price-cell,.watchlist-table .change-cell{width:22%}}
