/* Torchscreener — dark theme in Torch's green palette (from app.torchpad.fun dark theme tokens: accent #6ee787, accent-fill #2ed47a, bg #0a1310). */
:root{
  --bg:#0a1310;--bg2:#0c1713;--card:#0e1a15;--card2:#12211b;--line:#1b2a23;--line2:#27392f;--hover:#11201a;
  --text:#f2f7f4;--muted:#8fa39a;--faint:#5c7066;--acc:#6ee787;--acc2:#2ed47a;--accink:#06110b;--up:#3ddc97;--down:#ff6b6b;--warn:#f5b73d;--v1:#7aa2ff;--v2:#c08bff;
  --font:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--r:12px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}
body{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
button:disabled{opacity:.5;cursor:default}
h1,h2,h3{margin:0}
.mono{font-family:var(--mono);font-feature-settings:"zero" 0}
.muted{color:var(--muted)}.sm{font-size:12px}
.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}
/* header */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 20px;background:rgba(10,19,16,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:-.01em;white-space:nowrap}
.brand{font-weight:400}.brand span{color:#cfe0d6}.brand b{color:var(--text);font-weight:800;letter-spacing:-.02em}.brand b+i{font-style:normal;color:var(--acc);font-weight:500}
.search{position:relative;flex:1;max-width:560px;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0 12px;color:var(--muted)}
.search:focus-within{border-color:var(--line2);box-shadow:0 0 0 3px #6ee7871f}
.search input{flex:1;background:none;border:0;outline:0;height:38px;color:var(--text);min-width:0}
.suggest{position:absolute;left:0;right:0;top:44px;background:var(--card);border:1px solid var(--line2);border-radius:12px;box-shadow:0 20px 50px -10px #000c;overflow:hidden;max-height:70vh;overflow-y:auto}
.suggest a{display:flex;align-items:center;gap:10px;padding:9px 12px;color:var(--text);border-bottom:1px solid var(--line)}
.suggest a>span:nth-child(2){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suggest a:hover{background:var(--hover)}.suggest .all{color:var(--acc);font-weight:600;justify-content:center}
.suggest .none{padding:14px;color:var(--muted)}
.top-right{display:flex;gap:8px;margin-left:auto}
.chain-pill,.eth-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);white-space:nowrap}
.eth-pill{font-family:var(--mono);color:var(--text)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 8px var(--up)}
/* ticker */
.ticker{display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--bg2);height:36px;overflow:hidden}
.ticker .tl{flex:none;padding:0 14px;font-size:12px;font-weight:700;color:var(--warn);border-right:1px solid var(--line);height:100%;display:flex;align-items:center;white-space:nowrap}
.tt{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.tin{display:flex;gap:26px;width:max-content;animation:scroll 60s linear infinite;padding-left:20px}
.tt:hover .tin{animation-play-state:paused}
.tin a{display:flex;align-items:center;gap:7px;font-size:12.5px;white-space:nowrap}
.tin .tr{color:var(--faint);font-size:11px}
@keyframes scroll{to{transform:translateX(-50%)}}
/* layout */
.app{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:18px 20px 30px}
.loading,.empty{padding:40px;text-align:center;color:var(--muted)}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;flex-wrap:wrap}
.hero h1{font-size:24px;font-weight:800;letter-spacing:-.02em}
.hero p{margin:4px 0 0;color:var(--muted)}.hero p a{color:var(--acc)}
.stats{display:flex;gap:10px;flex-wrap:wrap}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-width:150px}
.stat span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.stat b{font-size:14px}.stat a{color:var(--acc)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0;max-width:100%}
.toolbar>*{min-width:0}
.tabs a{display:flex;gap:6px;align-items:center;padding:8px 14px;border-radius:9px;color:var(--muted);font-weight:600;white-space:nowrap}
.tabs a:hover{background:var(--card);color:var(--text)}
.tabs a.on{background:var(--card2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}
.tools{display:flex;gap:8px;align-items:center}
.seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:3px}
.seg a,.seg button{padding:5px 11px;border-radius:7px;color:var(--muted);font-size:12.5px;font-weight:600}
.seg .on{background:var(--card2);color:var(--acc);box-shadow:inset 0 0 0 1px var(--line2)}
.live{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;font-size:12.5px;font-weight:600;color:var(--muted)}
.live i{width:8px;height:8px;border-radius:50%;background:var(--faint)}
.live.on{color:var(--text)}.live.on i{background:var(--up);box-shadow:0 0 8px var(--up);animation:pulse 1.6s infinite}
.live span{font-family:var(--mono);color:var(--muted);min-width:28px}
@keyframes pulse{50%{opacity:.35}}
.qbar{margin:0 0 10px;color:var(--muted)}.qbar a{color:var(--acc);margin-left:8px}
/* table */
.tblwrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{position:sticky;top:0;background:var(--card);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;user-select:none}
.tbl th.sortable{cursor:pointer}.tbl th.sortable:hover,.tbl th.on{color:var(--acc)}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl tbody tr{cursor:pointer;transition:background .12s}
.tbl tbody tr:hover,.tbl tbody tr:focus{background:var(--hover);outline:0}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.tbl th.num{text-align:right}
.c-rank{color:var(--faint);width:36px}
.c-token{min-width:190px}
.tok{display:flex;align-items:center;gap:10px}
.tn{display:flex;flex-direction:column;min-width:0}
.tn .l1{display:flex;align-items:center;gap:6px}
.tn .l2{color:var(--muted);font-size:12px;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.tlogo{position:relative;display:inline-block;flex:none;border-radius:50%;overflow:hidden;background:var(--card2)}
.tlogo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tlogo .ph{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;font-size:.8em;color:#fff;background:linear-gradient(135deg,hsl(var(--h) 60% 38%),hsl(calc(var(--h) + 50) 60% 26%))}
.ver{font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px;letter-spacing:.03em}
.ver.v1{color:var(--v1);background:#7aa2ff1c}.ver.v2{color:var(--v2);background:#c08bff1c}
.hot{font-size:11px}
.tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--card2);color:var(--muted)}
.tag.grad{color:var(--acc2);background:#2ed47a17}
.prog{display:flex;align-items:center;gap:8px;min-width:120px}
.bar{flex:1;height:6px;border-radius:9px;background:var(--line);overflow:hidden;min-width:60px}
.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--acc2),var(--acc))}
.prog span{font-family:var(--mono);font-size:12px;color:var(--muted);min-width:44px;text-align:right}
.below{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.btn{display:inline-block;padding:9px 18px;border-radius:9px;background:var(--card2);border:1px solid var(--line2);font-weight:600}
.btn:hover{border-color:var(--acc);color:var(--acc)}
/* detail */
.back{display:inline-block;color:var(--muted);margin-bottom:12px}.back:hover{color:var(--text)}
.dhead{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.dt{display:flex;gap:14px;align-items:center;min-width:0}
.dt h1{font-size:22px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sub{display:flex;align-items:center;gap:10px;margin-top:4px;flex-wrap:wrap;color:var(--muted)}
.cp{color:var(--muted);font-size:13px;padding:2px 4px;border-radius:5px}.cp:hover{color:var(--acc)}
.cp.big{border:1px solid var(--line2);padding:3px 9px;font-size:12px;font-weight:600}
.links{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:9px;background:var(--card);border:1px solid var(--line);font-size:12.5px;font-weight:600}
.chip:hover{border-color:var(--line2);background:var(--card2)}
.chip.pri{background:linear-gradient(90deg,var(--acc2),var(--acc));color:var(--accink);border:0}
.desc{color:var(--muted);margin:6px 0 14px;max-width:900px;overflow-wrap:anywhere}
.dgrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}
.dmain{display:flex;flex-direction:column;gap:14px;min-width:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.card .ch{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.card .tblwrap{border:0;border-radius:0 0 var(--r) var(--r)}
.chartcard{padding:10px}
.ctool{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.chart{height:440px;width:100%}
.note{padding:6px 2px 0}
.side{padding:16px;display:flex;flex-direction:column;gap:14px;position:sticky;top:70px}
.pxrow{display:flex;justify-content:space-between;gap:10px}
.big{font-size:26px;font-weight:700}.mid{font-size:16px;margin-top:6px}
.kvgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kv{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:9px 10px}
.kv span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.kv b{font-family:var(--mono);font-size:15px}
.chg{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.chg div{text-align:center;padding:8px 4px;border-right:1px solid var(--line)}.chg div:last-child{border:0}
.chg span{display:block;font-size:11px;color:var(--muted)}.chg b{font-family:var(--mono);font-size:13px}
.bs{display:flex;align-items:center;gap:8px;font-size:12px}
.bsbar{flex:1;height:6px;background:var(--down);border-radius:9px;overflow:hidden}.bsbar i{display:block;height:100%;background:var(--up)}
.gradbox{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:11px;display:flex;flex-direction:column;gap:8px}
.gh{display:flex;justify-content:space-between;gap:10px;font-size:13px}.gh span{color:var(--muted)}
.gradbox.done b{color:var(--acc2);text-align:right}
.bar.big{height:9px}
.info{display:flex;flex-direction:column}
.ir{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.ir:last-child{border:0}.ir>span:first-child{color:var(--muted)}
.addr{color:var(--acc2)}.addr:hover{text-decoration:underline}
.trades td{font-size:12.5px;cursor:default}
.trades tr.buy .side{color:var(--up);font-weight:600}.trades tr.sell .side{color:var(--down);font-weight:600}
.trades tr.buy td.num:nth-child(3){color:var(--up)}.trades tr.sell td.num:nth-child(3){color:var(--down)}
.ext{color:var(--muted)}.ext:hover{color:var(--acc)}
.notfound{text-align:center;padding:60px 20px}.notfound p{margin:10px 0 20px}
.foot{border-top:1px solid var(--line);padding:16px 20px;color:var(--faint);font-size:12px;text-align:center}
.foot a{color:var(--muted);text-decoration:underline}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--acc);color:var(--accink);font-weight:700;padding:8px 16px;border-radius:9px;z-index:50}
/* responsive */
@media (max-width:1100px){.dgrid{grid-template-columns:1fr}.dmain{display:contents}.chartcard{order:1}.side{position:static;order:2}.dmain>.card:not(.chartcard){order:3}.hide-md{display:none}}
@media (max-width:720px){
  .top{flex-wrap:wrap;gap:10px;padding:10px 12px}.top-right{margin-left:auto}.chain-pill{display:none}
  .search{order:3;flex-basis:100%;max-width:none}
  .app{padding:12px 10px 24px}.hero{margin-bottom:10px}.hero h1{font-size:19px}.hero p{font-size:12.5px}.stats{width:100%;gap:6px}.stat{min-width:0;flex:1 1 30%;padding:6px 8px}.stat span{font-size:9.5px}.stat b{font-size:12px}
  .tabs a{padding:7px 10px}
  .toolbar{flex-direction:column;align-items:stretch}.tools{justify-content:space-between}
  .tbl{font-size:12.5px}.tbl td,.tbl th{padding:8px 7px}
  .c-rank{display:none}
  .tbl td.c-token,.tbl th.c-token{position:sticky;left:0;background:var(--card);z-index:1;min-width:150px;box-shadow:1px 0 0 var(--line)}
  .tn .l2{max-width:110px}
  .chart{height:320px}.big{font-size:22px}.hide-sm{display:none}
  .dt h1{font-size:18px}
}
/* Torchscreener additions */
.tag.off{background:#6ee7871c;color:var(--acc);border:1px solid #6ee78750;margin-left:4px;font-size:10px;padding:1px 6px}
a.eth-pill:hover{border-color:var(--line2)}
.ticker .tin a .up,.ticker .tin a .down,.ticker .tin a .flat{font-family:var(--mono);font-size:12px}
@media (max-width:640px){.tools{flex-wrap:wrap;gap:6px}.tools .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.tools .seg a{padding:5px 9px}}
/* main nav + coming-soon pages */
.mainnav{display:flex;gap:4px}
.mainnav a{position:relative;display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;color:var(--muted);font-weight:600;font-size:13.5px;white-space:nowrap}
.mainnav a:hover{color:var(--text);background:var(--card)}
.mainnav a.on{color:var(--text);background:var(--card2);box-shadow:inset 0 0 0 1px var(--line2)}
.mainnav a.on svg{color:var(--acc)}
.soon{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:999px;color:var(--accink);background:linear-gradient(90deg,var(--acc2),var(--acc))}
.soon.big{font-size:11px;padding:3px 9px;vertical-align:middle;margin-left:6px}
.soonpage{max-width:460px;margin:40px auto 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px}
.soonhead h1{font-size:28px;letter-spacing:-.02em}.soonhead p{margin:8px 0 0;font-size:15px}
.soonicon{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:16px;font-size:28px;color:var(--acc);margin-bottom:12px;background:radial-gradient(circle at 50% 30%,#6ee7872e,transparent 70%),var(--card);border:1px solid #6ee78740}
.sooncard{position:relative;width:100%;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px;text-align:left;overflow:hidden;user-select:none}
.sf span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.sfbox{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--faint);font-family:var(--mono)}
.sbtn{width:100%;padding:12px;background:var(--card2);color:var(--faint)}
.sbtn:disabled{opacity:1;cursor:not-allowed}
.soonveil{position:absolute;inset:0;display:grid;place-items:center;background:rgba(10,19,16,.6);backdrop-filter:blur(2px);z-index:1}
.soonveil span{font-weight:700;padding:8px 16px;border-radius:999px;border:1px solid #6ee78760;background:#6ee78717;color:var(--acc)}
.btn.pri{background:linear-gradient(90deg,var(--acc2),var(--acc));color:var(--accink);border:0}
.btn.pri:hover{color:var(--accink);filter:brightness(1.08)}
@media (max-width:1180px) and (min-width:721px){.mainnav a{padding:8px 9px}.mainnav a>span{display:none}.chain-pill{display:none}}
@media (max-width:720px){
  .mainnav{order:4;flex-basis:100%;justify-content:space-around;gap:0;margin:0 -12px -10px;padding:2px 8px;border-top:1px solid var(--line)}
  .mainnav a{flex:1;flex-direction:column;gap:2px;padding:6px 4px 7px;font-size:11px;background:none!important;box-shadow:none!important;border-radius:0}
  .mainnav a.on{color:var(--acc);box-shadow:inset 0 -2px 0 var(--acc)!important}
  .mainnav .soon{position:absolute;top:1px;left:calc(50% + 8px);font-size:8px;padding:1px 5px}
  .soonpage{margin-top:20px}
}

/* Torchscreener token CA (top bar + footer) */
.eth-pill[hidden]{display:none}
.ca-pill{display:inline-flex;align-items:center;border:1px solid #6ee78750;border-radius:999px;background:#6ee78712;white-space:nowrap;overflow:hidden}
.ca-pill a{display:inline-flex;align-items:center;gap:6px;padding:5px 4px 5px 10px;font-size:12px;color:var(--text)}
.ca-pill a:hover .mono{color:var(--acc)}
.ca-l{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--acc)}
.ca-pill .mono{font-family:var(--mono)}
.ca-cp{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);background:none;border:0;cursor:pointer;font:inherit}
.ca-pill .ca-cp{padding:5px 10px 5px 6px;align-self:stretch}
.ca-cp:hover{color:var(--acc)}
.foot-ca{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 10px;margin:0 auto 12px;padding:10px 14px;max-width:760px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.foot-ca .ca-full{font-family:var(--mono);font-size:12.5px;color:var(--text);text-decoration:none;word-break:break-all}
.foot-ca .ca-full:hover{color:var(--acc)}
.foot-ca .ca-cp{border:1px solid var(--line2);border-radius:7px;padding:4px 9px;font-size:12px;font-weight:600}
.foot-ca .ca-ext{font-size:12px}
@media (max-width:520px){.top-right .eth-pill{display:none}.brand{font-size:16px}}
.x-link{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:999px;color:var(--text);flex:none}
.x-link:hover{border-color:#6ee78760;color:var(--acc)}
.foot-ca .x-foot{display:inline-flex;align-items:center;gap:5px;text-decoration:none;color:var(--muted)}
.foot-ca .x-foot:hover{color:var(--acc)}
.top-right{align-items:center}
@media (max-width:380px){.brand{font-size:15px}.top-right{gap:6px}.ca-pill a{padding-left:8px;gap:5px}.ca-pill .ca-cp{padding-right:8px}.x-link{width:28px;height:28px}}
