:root{color-scheme:dark;--bg:#080b10;--panel:#10151d;--line:#222b38;--muted:#8591a3;--text:#edf3fb;--accent:#75e6b7;--red:#ff6b7a}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 0,#13231f 0,transparent 32%),var(--bg);color:var(--text);font:14px Inter,ui-sans-serif,system-ui}main{max-width:1500px;margin:auto;padding:38px 28px}header,.actions,.filters{display:flex;align-items:center}header{justify-content:space-between;gap:24px;margin-bottom:30px}.eyebrow{color:var(--accent);font-size:11px;letter-spacing:.2em;font-weight:800;margin:0}h1{font-size:38px;margin:4px 0}#summary{color:var(--muted);margin:0}.actions,.filters{gap:10px}button,input,select{border:1px solid var(--line);background:#121923;color:var(--text);padding:10px 12px;border-radius:8px}button{background:var(--accent);color:#07120e;font-weight:800;cursor:pointer}button:disabled{opacity:.5}.actions input[type=number]{width:68px}.filters{margin-bottom:16px}.filters #search{width:min(420px,55vw)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:rgba(16,21,29,.9)}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:right}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}th:first-child,td:first-child{text-align:left}.token strong,.token small{display:block}.token small{color:var(--muted);max-width:190px;overflow:hidden;text-overflow:ellipsis}.chain-icon{width:25px;height:25px;display:inline-grid;place-items:center;border-radius:50%;background:#253042;font-size:10px;font-weight:900}.positive{color:var(--accent)}.negative{color:var(--red)}.flash-up{animation:up 1.2s}.flash-down{animation:down 1.2s}@keyframes up{25%{background:#174d3a}}@keyframes down{25%{background:#5a2430}}#error{border:1px solid #78313a;background:#35171d;padding:12px;margin-bottom:12px;border-radius:8px;color:#ffb5bd}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}main{padding:24px 12px}.filters{flex-wrap:wrap}}

/* Keep pathological provider values from expanding the first column and pushing
   all market data outside the viewport. */
table{min-width:1180px;table-layout:fixed}
th,td{overflow:hidden;text-overflow:ellipsis}
th:first-child,td:first-child{width:220px}
th:nth-child(2),td:nth-child(2){width:72px;text-align:center}
th:nth-child(3),td:nth-child(3){width:105px}
th:nth-child(4),td:nth-child(4){width:120px}
th:nth-child(5),td:nth-child(5){width:135px}
th:nth-child(6),td:nth-child(6){width:125px}
th:nth-child(7),td:nth-child(7){width:105px}
th:nth-child(8),td:nth-child(8){width:110px}
th:nth-child(9),td:nth-child(9){width:90px}
th:nth-child(10),td:nth-child(10){width:170px}
.token strong,.token small{max-width:190px;overflow:hidden;text-overflow:ellipsis}
.chain-icon{display:inline-block;width:24px;height:24px;vertical-align:middle;object-fit:contain}
.chain-icon[data-chain="eth"]{filter:invert(1)}
.chain-icon[data-chain="robinhood"]{border-radius:50%}
.filters input[type="number"]{width:145px}
table{min-width:1370px}
th:first-child,td:first-child{width:310px}
.token-address{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Consolas,monospace;margin-top:3px}
.token-actions{display:flex;gap:5px;margin-top:7px}
.mini-action{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 7px;border:1px solid #303b4d;border-radius:6px;background:#18202c;color:#cbd6e6;font-size:10px;font-weight:700;text-decoration:none;cursor:pointer}
.mini-action:hover{border-color:var(--accent);color:var(--accent)}
.mini-action.copied{background:#174d3a;color:var(--accent)}
.mini-action.disabled{opacity:.35;pointer-events:none}

/* Compact rows without sacrificing the contract and quick actions. */
tbody td{padding-top:6px;padding-bottom:6px}
.token strong,.token small{display:inline-block;vertical-align:baseline;max-width:125px}
.token small{margin-left:7px}
.token-address{margin-top:1px}
.token-actions{margin-top:4px}
.mini-action{min-height:20px;padding:2px 6px}
.filters{flex-wrap:wrap}
.filters #search{flex:1 1 290px;width:auto;min-width:200px}
.filter-group{display:flex;align-items:center;gap:5px;white-space:nowrap;color:var(--muted);font-size:12px}
.filters .filter-group input[type="number"]{width:76px;min-width:0}
table{min-width:1790px;width:100%}
th:first-child,td:first-child{width:300px}
th:nth-child(6),td:nth-child(6),th:nth-child(7),td:nth-child(7),th:nth-child(8),td:nth-child(8){width:120px}
th:nth-child(9),td:nth-child(9){width:95px}
th:nth-child(10),td:nth-child(10){width:125px}
th:nth-child(11),td:nth-child(11){width:100px}
th:nth-child(12),td:nth-child(12){width:100px}
th:nth-child(13),td:nth-child(13){width:80px}
th:nth-child(14),td:nth-child(14){width:160px}
.token{position:relative;min-height:44px;padding-right:105px}
.token strong,.token small{max-width:160px}
.token-actions{position:absolute;right:0;top:50%;transform:translateY(-50%);margin:0;gap:4px}
.copy-action{width:22px;padding:2px;font-size:17px;line-height:1}
th[data-sort]::after{content:"↕";display:inline-block;margin-left:5px;color:#68788d;font-size:12px;letter-spacing:0}
th[data-sort][aria-sort="ascending"],th[data-sort][aria-sort="descending"]{color:var(--accent)}
th[data-sort][aria-sort="ascending"]::after{content:"↑";color:var(--accent)}
th[data-sort][aria-sort="descending"]::after{content:"↓";color:var(--accent)}
th[data-sort]:hover{color:var(--text)}
th[data-sort]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Column sizing follows column IDs so saved reordering never changes widths. */
main{max-width:1600px;padding:28px 20px}
table{min-width:100%;width:max-content;table-layout:auto}
th,td{padding:7px 8px}
th{font-size:10px;letter-spacing:.03em;cursor:grab;user-select:none}
th[hidden]{display:none}
th.drag-target{box-shadow:inset 3px 0 var(--accent)}
th[data-sort="symbol"],td[data-col="symbol"]{width:245px;min-width:245px;max-width:245px;text-align:left}
th[data-sort="chain"],td[data-col="chain"]{width:54px;min-width:54px;max-width:54px;text-align:center}
th[data-sort="dex"],td[data-col="dex"]{width:80px;min-width:80px;max-width:80px}
th[data-sort="priceUsd"],td[data-col="priceUsd"]{width:85px;min-width:85px;max-width:85px}
th[data-sort="marketCapUsd"],td[data-col="marketCapUsd"],th[data-sort="foundMarketCapUsd"],td[data-col="foundMarketCapUsd"],th[data-sort="athMarketCapUsd"],td[data-col="athMarketCapUsd"],th[data-sort="fdvUsd"],td[data-col="fdvUsd"]{width:78px;min-width:78px;max-width:78px}
th[data-sort="pairAge"],td[data-col="pairAge"]{width:65px;min-width:65px;max-width:65px}
th[data-sort="liquidityUsd"],td[data-col="liquidityUsd"],th[data-sort="volume"],td[data-col="volume"]{width:75px;min-width:75px;max-width:75px}
th[data-sort="change"],td[data-col="change"]{width:75px;min-width:75px;max-width:75px}
th[data-sort="txns"],td[data-col="txns"]{width:56px;min-width:56px;max-width:56px}
th[data-sort="discoveredAt"],td[data-col="discoveredAt"]{width:90px;min-width:90px;max-width:90px}
.token{padding-right:100px}
.token strong,.token small{max-width:115px}
.mini-action{padding:2px 5px}
.column-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 8px;color:var(--muted);font-size:12px}
.column-toolbar button{background:#18202c;color:var(--text);font-size:12px;padding:6px 10px}
.columns-panel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.columns-panel[hidden]{display:none}
.column-option{display:flex;align-items:center;gap:3px;border:1px solid var(--line);border-radius:6px;padding:4px 5px;background:#121923}
.column-option label{display:flex;align-items:center;gap:4px;white-space:nowrap}
.column-option input{margin:0;padding:0;accent-color:var(--accent)}
.column-move{background:#253042;color:var(--text);padding:2px 5px;font-size:12px}

/* Keep token text and actions in separate flex tracks. */
td[data-col="symbol"] .token{display:flex;align-items:center;gap:6px;width:100%;min-height:40px;padding:0}
.token-info{flex:1 1 0;min-width:0;overflow:hidden}
.token-label{display:flex;align-items:baseline;min-width:0;overflow:hidden}
.token-label strong,.token-label small{display:block;min-width:0;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.token-label strong{flex:0 1 auto}
.token-label small{flex:1 1 0;margin-left:5px}
.token-address{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td[data-col="symbol"] .token-actions{position:static;transform:none;flex:none;margin:0;gap:4px}
.copy-action{width:24px;height:22px;padding:2px;line-height:1}
.copy-action svg{display:block;flex:none}
main{padding-top:16px}
.refresh-controls{display:flex;align-items:center;gap:5px;white-space:nowrap;color:var(--muted);font-size:12px}
.refresh-controls label{display:flex;align-items:center;gap:4px}
.refresh-controls input[type="checkbox"]{margin:0;accent-color:var(--accent)}
.filters .refresh-controls input[type="number"]{width:58px;min-width:0}
.column-toolbar{flex-wrap:wrap}
#summary{margin-left:auto}
th[data-sort="priceUsd"],td[data-col="priceUsd"]{width:108px;min-width:108px;max-width:108px}
