/* ============================================================
   Explore — three column terminal (design data and live data
   share this shell; live-markets.css only adds live states)
   ============================================================ */
.shell{display:grid;grid-template-columns:204px minmax(0,1fr) 352px;gap:var(--gap);padding:var(--gap) var(--page-x) 32px;align-items:start;max-width:1920px;margin:0 auto}

/* ── sidebar ───────────────────────────────────────────── */
.side{position:sticky;top:calc(var(--header-h) + 14px);display:flex;flex-direction:column;gap:10px}
.snav{background:var(--card);box-shadow:var(--e1);border-radius:var(--r-md);padding:6px}
.snav a{display:flex;align-items:center;gap:9px;padding:0 10px;height:34px;border-radius:var(--r-xs);color:var(--ink-2);
  font-weight:600;font-size:var(--fs-13);transition:var(--fast);position:relative}
.snav a:hover{background:var(--hover);color:var(--ink)}
.snav a[aria-current="true"]{background:var(--jade-wash);color:var(--jade-deep)}
.snav a[aria-current="true"]::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--jade)}
.snav .ic{width:16px;text-align:center;color:var(--ink-4);flex:none;font-size:13px}
.snav a[aria-current="true"] .ic{color:var(--jade)}
.snav .cnt{margin-left:auto;font-size:var(--fs-11);color:var(--ink-3);font-weight:600;background:var(--sunk);padding:1px 6px;border-radius:4px;font-variant-numeric:tabular-nums}
.snav a[aria-current="true"] .cnt{background:transparent;color:var(--jade-deep)}
.sgroup{background:var(--card);box-shadow:var(--e1);border-radius:var(--r-md);padding:10px 6px 6px}
.sgroup h4{margin:0 0 6px;padding:0 10px;font-family:var(--font-sans);font-size:10px;color:var(--ink-3);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.sgroup button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:0 10px;height:32px;
  border-radius:var(--r-xs);font-size:var(--fs-13);color:var(--ink-2);font-weight:500;transition:var(--fast)}
.sgroup button:hover{background:var(--hover);color:var(--ink)}
.sgroup button[aria-pressed="true"]{background:var(--sunk);color:var(--ink);font-weight:650;box-shadow:0 0 0 1px var(--line)}
.sgroup .cnt{margin-left:auto;font-size:var(--fs-11);color:var(--ink-3)}
.universe-directory{display:flex;justify-content:space-between;align-items:center;margin:6px 4px 0;padding:8px 6px 4px;border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--fs-12);font-weight:600}
.universe-directory:hover{color:var(--jade-deep)}
.engine{background:var(--card);box-shadow:var(--e1);border-radius:var(--r-md);padding:12px}
.engine .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.engine .hd b{font-size:var(--fs-12);font-weight:700}
.engine .row{display:flex;justify-content:space-between;font-size:var(--fs-12);color:var(--ink-3);padding:4px 0;border-top:1px dashed var(--line)}
.engine .row b{color:var(--ink-2);font-weight:600}
.engine .engine-note,.engine>div:last-child:not(.row):not(.hd){font-size:var(--fs-11);color:var(--ink-4);line-height:1.45;margin-top:8px}

/* ── main column ───────────────────────────────────────── */
.main{display:flex;flex-direction:column;gap:var(--gap);min-width:0}

/* Hero is a compact launch band, not a marketing block. */
.hero{position:relative;overflow:hidden;background:var(--card);box-shadow:var(--e1);border-radius:var(--r-lg);
  padding:14px 18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(520px 160px at 100% 0%,var(--jade-wash),transparent 70%)}
.hero>div:first-child{position:relative;display:flex;align-items:center;gap:16px;min-width:0;flex-wrap:wrap}
.hero-kicker{display:none}
.hero h1{font-size:var(--fs-20);line-height:1.1;letter-spacing:-.03em;max-width:none;white-space:nowrap;font-weight:650}
.hero h1 em{font-style:normal;color:var(--jade);font-weight:650}
.hero p{display:none;margin:0;color:var(--ink-3);font-size:var(--fs-12);line-height:1.45;max-width:46ch;flex:1;min-width:220px}
.hero .acts{display:flex;gap:8px;margin:0;flex-wrap:wrap;margin-left:auto}
.hstats{position:relative;display:flex;gap:6px}
.hstat{background:var(--sunk);box-shadow:0 0 0 1px var(--line);border-radius:var(--r-sm);padding:7px 11px;min-width:0}
.hstat .k{font-size:10px;color:var(--ink-3);font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.hstat .v{font-family:var(--font-display);font-size:var(--fs-17);font-weight:700;letter-spacing:-.02em;margin-top:1px;line-height:1.15;white-space:nowrap}
.hstat .d{display:none;font-size:var(--fs-11);color:var(--ink-3);margin-top:1px;white-space:nowrap}
@media (min-width:1900px){.hero p{display:block}.hstat .d{display:block}}

/* ── board container ───────────────────────────────────── */
.tablewrap{background:var(--card);box-shadow:var(--e1);border-radius:var(--r-lg);overflow:hidden}
.thead{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.thead h2{font-size:var(--fs-15);margin-right:auto;display:flex;align-items:center;gap:8px}
.thead h2::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--jade);box-shadow:0 0 0 3px var(--jade-wash)}
.viewtog{display:flex;gap:2px;background:var(--sunk);border-radius:var(--r-sm);padding:3px;box-shadow:0 0 0 1px var(--line)}
.viewtog button{width:30px;height:26px;border-radius:6px;color:var(--ink-3);display:grid;place-items:center;transition:var(--fast)}
.viewtog button:hover{color:var(--ink)}
.viewtog button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong)}
.filterbtn{display:flex;align-items:center;gap:6px;padding:0 11px;min-height:32px;border-radius:var(--r-sm);background:var(--sunk);
  box-shadow:0 0 0 1px var(--line);font-size:var(--fs-12);color:var(--ink-2);font-weight:600;transition:var(--fast)}
.filterbtn:hover{color:var(--ink);box-shadow:0 0 0 1px var(--line-strong)}
.filterbtn[aria-expanded="true"]{background:var(--jade-wash);color:var(--jade-deep);box-shadow:0 0 0 1px var(--jade-soft)}
.fcount{font-size:10px;font-weight:800;background:var(--jade);color:var(--on-accent);border-radius:var(--r-pill);padding:1px 6px}
.fpanel{margin:10px 14px 0;background:var(--sunk);box-shadow:0 0 0 1px var(--line);border-radius:var(--r-md);padding:10px 12px}
.frow{display:flex;align-items:center;gap:6px;padding:4px 0;flex-wrap:wrap}
.frow .fk{font-size:var(--fs-11);color:var(--ink-3);width:84px;flex:none;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.fchip{padding:4px 10px;border-radius:var(--r-pill);font-size:var(--fs-12);color:var(--ink-2);background:var(--card);box-shadow:0 0 0 1px var(--line);transition:var(--fast)}
.fchip:hover{color:var(--ink)}
.fchip[aria-pressed="true"]{background:var(--jade-wash);color:var(--jade-deep);box-shadow:0 0 0 1px var(--jade-soft)}
.fclear{margin-left:auto;font-size:var(--fs-12);color:var(--ink-3);padding:4px 8px;border-radius:6px}
.fclear:hover{color:var(--coral);background:var(--coral-wash)}

.market-pair-heading{display:flex;align-items:center;gap:10px;padding:10px 14px 0;font-size:var(--fs-11);color:var(--ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.market-pair-heading a{margin-left:auto;text-transform:none;letter-spacing:0;font-size:var(--fs-12);color:var(--ink-2);font-weight:600;display:flex;gap:6px}
.market-pair-heading a:hover{color:var(--jade-deep)}
.market-pair-heading select{display:none}
.pairfilter{display:flex;gap:6px;padding:8px 14px 12px;overflow-x:auto;scrollbar-width:none;position:relative;min-width:0}
.pairfilter::-webkit-scrollbar{display:none}
.pairfilter.slider{display:block;overflow:visible}
.pairfilter .slider__track{align-items:center;cursor:auto}
.pf{display:inline-flex;align-items:center;gap:7px;padding:0 11px 0 6px;height:32px;border-radius:var(--r-pill);background:var(--sunk);
  box-shadow:0 0 0 1px var(--line);font-size:var(--fs-12);font-weight:650;color:var(--ink-2);white-space:nowrap;flex:none;transition:var(--fast)}
.pf:hover{color:var(--ink);box-shadow:0 0 0 1px var(--line-strong)}
.pf[aria-pressed="true"]{background:var(--jade-wash);color:var(--jade-deep);box-shadow:0 0 0 1px var(--jade-soft)}
.pf[data-p="all"],.pf[data-pair="all"]{padding-left:11px}
.pf .plogo{width:18px;height:18px}
.pf .swatch:not(.plogo){margin-left:5px}
.pf .badge--beta{font-size:9px;padding:1px 5px}
.pf--preview{background:transparent;color:var(--ink-3)}
.pf--preview:hover{background:var(--sunk)}
.pf small{font-size:9px;font-weight:600;color:var(--ink-3);background:var(--card);padding:2px 5px;border-radius:4px;box-shadow:0 0 0 1px var(--line)}
.pair-catalog-label{align-self:center;font-size:10px;color:var(--ink-4);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0 6px 0 10px;border-left:1px solid var(--line);margin-left:4px;white-space:nowrap}
.pf--more{color:var(--ink-3);font-weight:500}
.pf--more:hover{color:var(--ink)}

/* ── list rows ─────────────────────────────────────────── */
.cols,.mrow{display:grid;grid-template-columns:minmax(236px,2.2fr) 100px 100px 74px 100px 72px 118px 30px 104px;align-items:center;gap:12px;padding:0 14px}
.cols{height:34px;font-size:10px;color:var(--ink-3);font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--sunk);border-block:1px solid var(--line)}
.cols .r,.mrow .r{text-align:right}
.cols button{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--ink-3);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 5px;border-radius:5px;transition:var(--fast)}
.cols button:hover{color:var(--ink)}
.cols button[data-on="true"]{color:var(--ink);background:var(--card);box-shadow:0 0 0 1px var(--line)}
.cols .r button{margin-left:auto}
.arw{font-size:8px;opacity:.8}
.mrow{width:100%;text-align:left;min-height:64px;border-bottom:1px solid var(--line);font-size:var(--fs-13);transition:background var(--fast);position:relative;cursor:pointer}
.mrow:hover{background:var(--hover)}
.mrow[data-selected="true"],.mrow[aria-selected="true"]{background:var(--jade-wash)}
.mrow[data-selected="true"]::before,.mrow[aria-selected="true"]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--jade)}
.mrow.is-stock[data-selected="true"],.mrow.is-stock[aria-selected="true"]{background:var(--peri-wash)}
.mrow.is-stock[data-selected="true"]::before,.mrow.is-stock[aria-selected="true"]::before{background:var(--peri)}
.mrow .col-spark{display:flex;justify-content:flex-end}
.mrow .col-spark svg{display:block}
.mrow .col-buy,.mrow .col-quick-buy{display:flex;justify-content:flex-end}
.mkt{display:flex;align-items:center;gap:11px;min-width:0;text-align:left}
.mkt>.token-art{width:40px;height:40px}
.market-select{padding:0;text-align:left;min-width:0;border-radius:6px;flex:1}
.mname{min-width:0;display:block;overflow:hidden}
.mname .t{font-weight:650;font-size:var(--fs-14);letter-spacing:-.01em;display:flex;align-items:center;gap:7px;line-height:1.3;color:var(--ink);white-space:nowrap;overflow:hidden;min-width:0}
.mname .t .badge{flex:none}
.mname .s{font-size:var(--fs-12);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin-top:2px}
.mname .s b{color:var(--ink-2);font-weight:600}
.mrow .r{font-weight:650;overflow-wrap:anywhere;min-width:0}
.mrow .r.col-vol,.mrow .r.col-holders{color:var(--ink-2);font-weight:500}
.mrow .col-vol small{display:block;font-size:10px;color:var(--ink-3)}
.curve-mini{display:grid;gap:5px;width:100%;text-align:right;font-size:var(--fs-11);font-weight:650;color:var(--ink-2);font-variant-numeric:tabular-nums}
.curve-mini progress{appearance:none;width:100%;height:4px;border:0;overflow:hidden;border-radius:4px;background:var(--bg-2);display:block}
.curve-mini progress::-webkit-progress-bar{background:var(--bg-2)}
.curve-mini progress::-webkit-progress-value{background:var(--jade);border-radius:4px}
.curve-mini progress::-moz-progress-bar{background:var(--jade)}

/* ── grid cards ────────────────────────────────────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:10px;padding:10px 14px 14px}
.gcard{background:var(--sunk);box-shadow:0 0 0 1px var(--line);border-radius:var(--r-md);padding:8px;text-align:left;
  transition:var(--mid);display:flex;flex-direction:column;gap:9px;position:relative;cursor:pointer;min-width:0}
.gcard:hover{box-shadow:0 0 0 1px var(--line-strong),0 12px 32px -18px rgba(0,0,0,.6);transform:translateY(-2px)}
.gcard[data-selected="true"],.gcard[aria-selected="true"]{box-shadow:0 0 0 1.5px var(--jade-soft);background:var(--jade-wash)}
.gcard.is-stock[data-selected="true"],.gcard.is-stock[aria-selected="true"]{box-shadow:0 0 0 1.5px var(--peri-soft);background:var(--peri-wash)}
.gart{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1;background:var(--bg-2)}
.gart .art,.gart>.token-art{display:block;width:100%;height:100%;border-radius:0;box-shadow:none}
.gart>.token-art{display:grid}
.gart>.token-art img{width:100%;height:100%;object-fit:cover}
.gtags{position:absolute;top:7px;left:7px;display:flex;gap:4px;flex-wrap:wrap;max-width:calc(100% - 44px)}
.gtag{font-size:10px;font-weight:700;padding:3px 7px;border-radius:5px;background:rgba(8,12,16,.62);color:#fff;backdrop-filter:blur(6px);
  display:inline-flex;align-items:center;gap:5px;line-height:1.25;letter-spacing:.02em;text-transform:uppercase}
.gtag .swatch{width:6px;height:6px}
.gtag .plogo{width:12px;height:12px}
.gtag--beta,.gtag--near{background:rgba(245,184,75,.92);color:#2A1C05}
.gtag--grad{background:rgba(61,224,160,.92);color:#04231A}
.gtag--fresh{background:rgba(167,139,250,.92);color:#0E0D26}
.gtags .badge{background:rgba(8,12,16,.62);color:#fff;box-shadow:none;backdrop-filter:blur(6px)}
.gstar{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:13px;line-height:1;
  background:rgba(8,12,16,.55);color:rgba(255,255,255,.75);backdrop-filter:blur(6px);transition:var(--fast);cursor:pointer}
.gstar:hover,.gstar.on{color:var(--amber)}
.gname{min-width:0;width:100%;display:block;text-align:left}
.gname .t{font-weight:650;font-size:var(--fs-14);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--ink);overflow-wrap:normal}
.gname .s{font-size:var(--fs-12);color:var(--ink-3);margin-top:1px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gname .s b{font-weight:600;color:var(--ink-4)}
.gmc{display:flex;align-items:baseline;gap:5px}
.gmc .v{font-family:var(--font-display);font-size:var(--fs-17);font-weight:700;letter-spacing:-.02em}
.gmc .k{font-size:10px;color:var(--ink-3);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.gmc .d{margin-left:auto;font-size:var(--fs-12);font-weight:650}
.gprog{display:flex;align-items:center;gap:8px}
.gbar{flex:1;height:4px;border-radius:4px;background:var(--bg-2);overflow:hidden}
.gbar i{display:block;height:100%;border-radius:4px;transition:width var(--mid)}
.gprog .pct{font-size:var(--fs-11);color:var(--ink-2);font-weight:650;min-width:36px;text-align:right;font-variant-numeric:tabular-nums}
.gmeta{display:flex;align-items:center;gap:8px;font-size:var(--fs-11);color:var(--ink-4)}
.gmeta .addr{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-size:10.5px}
.gmeta .ago{color:var(--ink-3);font-weight:600;flex:none}
.gcard .qbuy--card,.gcard .quick-buy-button,.gcard>.quick-buy-button{margin-top:auto;width:100%;min-height:36px}
.emptystate{padding:40px 20px;text-align:center;color:var(--ink-3)}
.emptystate .t{font-size:var(--fs-15);color:var(--ink);margin-bottom:4px;font-weight:650}
.emptystate .d{font-size:var(--fs-13);margin:0 0 12px}

/* ── right trade panel ─────────────────────────────────── */
.panel{position:sticky;top:calc(var(--header-h) + 14px);background:var(--card);box-shadow:var(--e1);border-radius:var(--r-lg);overflow:hidden;
  max-height:calc(100vh - var(--header-h) - 28px);overflow-y:auto;scrollbar-width:thin}
.panel__head{padding:14px 16px 0}
.phrow{display:flex;align-items:center;gap:11px}
.phrow>div{min-width:0}
.phrow>.token-art{width:44px;height:44px}
.phrow h2{font-size:var(--fs-15);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phrow .s{font-size:var(--fs-12);color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phrow .s b{color:var(--ink-2);font-weight:650}
.phrow .iconbtn{flex:none}
.bigprice{display:flex;align-items:baseline;gap:10px;margin-top:12px;flex-wrap:wrap}
.bigprice .p{font-family:var(--font-display);font-size:var(--fs-24);font-weight:700;letter-spacing:-.03em;line-height:1}
.bigprice .c{font-size:var(--fs-12);font-weight:700;padding:3px 7px;border-radius:5px}
.bigprice .c.pos{background:var(--jade-wash);color:var(--jade-deep)}
.bigprice .c.neg{background:var(--coral-wash);color:var(--coral-deep)}
.live-price-note{font-size:var(--fs-11);color:var(--ink-4)}
.chartbox{padding:8px 16px 0}
.chartbox svg{display:block;width:100%;height:auto}
.live-chart-placeholder{min-height:110px;display:grid;place-items:center;align-content:center;gap:2px;border:1px dashed var(--line-strong);border-radius:var(--r-sm);
  background:repeating-linear-gradient(0deg,transparent 0 27px,var(--line) 27px 28px),var(--sunk);color:var(--ink-4);font-size:var(--fs-11);text-align:center;padding:8px}
.live-chart-placeholder b{color:var(--ink-3);font-size:var(--fs-14);font-weight:500}
.live-chart-caption{font-size:var(--fs-11);color:var(--ink-4);margin:6px 0 0}
.quad{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px 16px 0}
.curvebox{margin:10px 16px 0;background:var(--sunk);box-shadow:0 0 0 1px var(--line);border-radius:var(--r-md);padding:12px 13px}
.curvebox .hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.curvebox .hd .a{font-size:var(--fs-11);color:var(--ink-3);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.curvebox .hd .b{font-family:var(--font-display);font-size:var(--fs-17);font-weight:700;color:var(--jade-deep)}
.curvebox svg{display:block;width:100%;height:auto}
.curvebox progress{display:block;width:100%;height:5px;appearance:none;border:0;border-radius:4px;overflow:hidden;margin:6px 0 2px;background:var(--bg-2)}
.curvebox progress::-webkit-progress-bar{background:var(--bg-2)}
.curvebox progress::-webkit-progress-value{background:var(--jade);border-radius:4px}
.curvebox progress::-moz-progress-bar{background:var(--jade)}
.curvebox .ft{display:flex;justify-content:space-between;font-size:var(--fs-11);color:var(--ink-3);margin-top:8px;gap:8px;flex-wrap:wrap}
.curvebox .ft span{overflow-wrap:anywhere;min-width:0}
.curvebox .ft b{color:var(--ink);font-weight:650}
.panel .trade,.panel .live-trade{padding:12px 16px 14px}
.panel .tabs{padding:0 16px}
.tabbody{padding:10px 16px 16px;font-size:var(--fs-13)}
