/* ── global search palette (search.js) ── */
html.gs-open{overflow:hidden}
#gs{position:fixed;inset:0;z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:7vh 16px 16px}
#gs[hidden]{display:none}
#gs .gs-bg{position:absolute;inset:0;background:rgba(2,6,4,.62);backdrop-filter:blur(6px)}
#gs .gs-box{position:relative;width:min(1060px,100%);max-height:86vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-2);border-radius:calc(var(--r,6px) * 2);box-shadow:var(--shadow);overflow:hidden;animation:gs-in .14s ease-out}
@keyframes gs-in{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
#gs .gs-top{display:flex;align-items:center;gap:10px;padding:12px 14px 0;min-height:44px}
#gs .gs-chains{display:flex;align-items:center;gap:4px;padding-right:10px;border-right:1px solid var(--line)}
#gs .gs-ch{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px 0 6px;border:1px solid transparent;border-radius:var(--r,6px);background:transparent;color:var(--sub);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
#gs .gs-ch img{width:18px;height:18px;border-radius:50%}
#gs .gs-ch:hover{background:var(--hover);color:var(--text)}
#gs .gs-ch.on{background:var(--green-bg);border-color:var(--green-line);color:var(--text)}
#gs .gs-go{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 8px;color:var(--green);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
#gs .gs-go svg{width:13px;height:13px}
#gs .gs-venues{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
#gs .gs-venues::-webkit-scrollbar{display:none}
#gs .gs-v{flex:none;height:28px;padding:0 11px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--sub-2);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
#gs .gs-v:hover{background:var(--hover);color:var(--text)}
#gs .gs-v.on{background:var(--green);border-color:var(--green);color:var(--on-ink,#06110b)}
#gs .gs-ic{flex:none;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:var(--r,6px);background:transparent;color:var(--sub);cursor:pointer}
#gs .gs-ic:hover{background:var(--hover);color:var(--text)} #gs .gs-ic svg{width:16px;height:16px}
#gs .gs-in{display:flex;align-items:center;gap:12px;margin:10px 14px 0;padding:0 14px;height:52px;border:1px solid var(--line-2);border-radius:var(--r,6px);background:var(--panel-2);color:var(--dim)}
#gs .gs-in:focus-within{border-color:var(--green-line)}
#gs .gs-in svg{width:18px;height:18px;flex:none}
#gs .gs-in input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font:inherit;font-size:17px}
#gs .gs-in input::placeholder{color:var(--dim)}
#gs .gs-in kbd{font:inherit;font-size:11px;padding:2px 6px;border:1px solid var(--line-2);border-radius:4px;color:var(--sub)}
#gs .gs-body{flex:1;min-height:120px;overflow-y:auto;padding:6px 8px 10px;overscroll-behavior:contain}
#gs .gs-h{display:flex;align-items:center;gap:8px;padding:12px 8px 6px;font-size:13px;font-weight:600;color:var(--sub-2)}
#gs .gs-h svg{width:14px;height:14px;color:var(--sub)}
#gs .gs-dim{color:var(--dim);font-weight:500;margin-left:2px}
#gs .gs-clear{margin-left:auto;border:0;background:transparent;color:var(--dim);font:inherit;font-size:12px;cursor:pointer}
#gs .gs-clear:hover{color:var(--red)}
#gs .gs-spin{width:12px;height:12px;border:2px solid var(--line-2);border-top-color:var(--green);border-radius:50%;animation:gs-spin .8s linear infinite;margin-left:4px}
@keyframes gs-spin{to{transform:rotate(360deg)}}
#gs .gs-empty{padding:28px 12px;text-align:center;color:var(--sub);font-size:13px}
/* the nav button phones get instead of the box */
.gs-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel-2);color:var(--sub);cursor:pointer;padding:0}
.gs-btn svg{width:16px;height:16px} .gs-btn[hidden]{display:none}
@media(max-width:860px){
  #gs{padding:0}
  #gs .gs-box{width:100%;max-height:100vh;height:100vh;border:0;border-radius:0}
  #gs .gs-top{flex-wrap:wrap;gap:8px;padding:10px 10px 0}
  #gs .gs-chains{order:1;width:100%;border-right:0;padding-right:0;overflow-x:auto;scrollbar-width:none}
  #gs .gs-ic{order:0;margin-left:auto}
  #gs .gs-venues{order:2;width:100%}
  #gs .gs-in{margin:8px 10px 0;height:46px} #gs .gs-in input{font-size:16px}
}

/* ── row layer. #gs.gsx (set by search.js) with :not(#_) (one more id of weight) outranks the design files that load
   after this one, so these rules hold in every design: one grid, one row height, numbers right-aligned in fixed columns ── */
#gs.gsx:not(#_){--gs-av:40px;--gs-rh:60px;--gs-cols:var(--gs-av) minmax(0,1fr) 98px 98px 86px 68px;--gs-acc:var(--accent,var(--green));--gs-acc-bg:var(--accent-bg,var(--green-bg));--gs-acc-line:var(--accent-line,var(--green-line));--gs-on-acc:var(--on-accent,var(--on-ink,#06110b));--gs-mono:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace)}
/* the header never gives up height to a long list (it used to squeeze as rows streamed in) */
#gs.gsx:not(#_) .gs-top,#gs.gsx:not(#_) .gs-in,#gs.gsx:not(#_) .gs-keys{flex:none}
#gs.gsx:not(#_) .gs-in{position:relative}
#gs.gsx:not(#_) .gs-in input:focus,#gs.gsx:not(#_) .gs-in input:focus-visible{outline:0!important;box-shadow:none}
#gs.gsx:not(#_) .gs-in input{caret-color:var(--gs-acc)}
html[data-design=m2] #gs.gsx .gs-in:focus-within::after{content:'';position:absolute;left:22px;right:22px;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gs-acc-line) 25%,var(--gs-acc-line) 75%,transparent)}
#gs.gsx:not(#_) .gs-qx{flex:none;width:24px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:999px;background:var(--chip);color:var(--sub);cursor:pointer}
#gs.gsx:not(#_) .gs-qx svg{width:12px;height:12px} #gs.gsx:not(#_) .gs-qx:hover{color:var(--text);background:var(--line-2)} #gs.gsx:not(#_) .gs-qx[hidden]{display:none}
/* chips that run past the edge fade out instead of being cut */
#gs.gsx:not(#_) .gs-venues{padding-right:24px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
/* list + section headers (sticky, so the context stays while you scroll) */
#gs.gsx:not(#_) .gs-body{padding:0 8px 8px;min-height:min(372px,52vh);scroll-padding-top:36px}
#gs.gsx:not(#_) .gs-h{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;height:36px;margin:0 -8px;padding:0 20px;background:color-mix(in srgb,var(--panel) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
#gs.gsx:not(#_) .gs-h:not(:first-child){margin-top:6px;box-shadow:inset 0 1px 0 var(--hairline,var(--line))}
#gs.gsx:not(#_) .gs-ht{color:var(--sub);white-space:nowrap}
#gs.gsx:not(#_) .gs-h .gs-dim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#gs.gsx:not(#_) .gs-clear{margin-left:auto;padding:4px 0;color:var(--dim)} #gs.gsx:not(#_) .gs-clear:hover{color:var(--red)}
#gs.gsx:not(#_) .gs-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:44px 16px;text-align:center;font-size:12px;color:var(--dim)}
#gs.gsx:not(#_) .gs-empty b{color:var(--sub-2);font-weight:600;font-size:13px}
/* row */
#gs.gsx:not(#_) .gs-row{position:relative;display:grid;grid-template-columns:var(--gs-cols);align-items:center;column-gap:12px;row-gap:0;height:var(--gs-rh);min-height:0;padding:0 12px;border-radius:var(--r-sm,6px);background:transparent;box-shadow:none;color:var(--text);text-decoration:none;contain:layout;transition:background-color .12s ease}
#gs.gsx:not(#_) .gs-row:hover{background:transparent}
#gs.gsx:not(#_) .gs-row.cur{background:color-mix(in srgb,var(--gs-acc) 6%,var(--hover))}
#gs.gsx:not(#_) .gs-row.cur::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:2px;background:var(--gs-acc)}
#gs.gsx:not(#_) .gs-row:focus-visible{outline:1px solid var(--gs-acc-line)!important;outline-offset:-1px}
/* art */
#gs.gsx:not(#_) .gs-av{position:relative;width:var(--gs-av);height:var(--gs-av);border-radius:10px;background:var(--tile-bg,var(--chip));display:grid;place-items:center;overflow:visible}
#gs.gsx:not(#_) .gs-av > img:not(.gs-cl){width:100%;height:100%;border-radius:inherit;object-fit:cover}
#gs.gsx:not(#_) .gs-av > i{font:700 12.5px/1 var(--gs-mono);font-style:normal;letter-spacing:.02em;color:var(--sub-2)}
#gs.gsx:not(#_) .gs-av.addr{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2)} #gs.gsx:not(#_) .gs-av.addr > i{color:var(--sub);font-weight:600}
#gs.gsx:not(#_) .gs-av.ic{color:var(--sub-2)} #gs.gsx:not(#_) .gs-av.ic > svg{width:19px;height:19px}
#gs.gsx:not(#_) .gs-cl{position:absolute;right:-3px;bottom:-3px;width:15px!important;height:15px!important;border-radius:50%!important;border:2px solid var(--panel);background:var(--panel);object-fit:cover}
/* identity: line 1 symbol · name · badges, line 2 age · CA · holders · extras. Badges give way first: their box
   shrinks before the name does, and a badge that no longer fits drops out whole (wraps onto the hidden second line;
   the zero-width ::before keeps even the first one from being clipped half-way) */
#gs.gsx:not(#_) .gs-id{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0}
#gs.gsx:not(#_) .gs-t1{display:flex;align-items:center;gap:7px;min-width:0;height:19px;white-space:nowrap;overflow:hidden}
#gs.gsx:not(#_) .gs-sym{flex:0 0 auto;max-width:14ch;overflow:hidden;text-overflow:ellipsis;font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--text)}
#gs.gsx:not(#_) .gs-sym.mono{font:600 13px/1 var(--gs-mono);letter-spacing:-.01em}
#gs.gsx:not(#_) .gs-nm{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:var(--sub)}
#gs.gsx:not(#_) .gs-nm.mono{font:500 11.5px/1 var(--gs-mono);color:var(--dim)}
#gs.gsx:not(#_) .gs-bdg{flex:0 999 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;height:17px;overflow:hidden}
#gs.gsx:not(#_) .gs-bdg::before{content:'';width:0;height:17px}
#gs.gsx:not(#_) .gs-bdg:empty{display:none}
#gs.gsx:not(#_) .gs-bdg > i{flex:none;display:inline-flex;align-items:center;gap:3px;height:17px;margin-right:4px;padding:0 6px;border:1px solid var(--line-2);border-radius:999px;font:600 9.5px/1 var(--gs-mono);font-style:normal;letter-spacing:.03em;color:var(--sub);white-space:nowrap}
#gs.gsx:not(#_) .gs-bdg > i.gr{color:var(--gs-acc);border-color:var(--gs-acc-line)}
#gs.gsx:not(#_) .gs-bdg > i.xv{padding:0 4px;color:var(--sub-2)} #gs.gsx:not(#_) .gs-bdg > i svg{width:9px;height:9px}
#gs.gsx:not(#_) .gs-bdg > i.q{color:var(--quote,var(--sub-2))}
#gs.gsx:not(#_) .gs-t2{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:0;height:16px;overflow:hidden;font:500 11px/16px var(--gs-mono);color:var(--sub);white-space:nowrap}
#gs.gsx:not(#_) .gs-t2 > b{color:var(--gs-acc);font-weight:600}
#gs.gsx:not(#_) .gs-t2 .ca{letter-spacing:-.01em} #gs.gsx:not(#_) .gs-t2 .ca.full{flex:0 1 auto;min-width:0;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;color:var(--dim)}
#gs.gsx:not(#_) .gs-t2 .hl,#gs.gsx:not(#_) .gs-t2 .dv{display:inline-flex;align-items:center;gap:3px} #gs.gsx:not(#_) .gs-t2 .hl svg{width:12px;height:12px} #gs.gsx:not(#_) .gs-t2 .dv svg{width:9px;height:9px}
#gs.gsx:not(#_) .gs-t2 .tx,#gs.gsx:not(#_) .gs-t2 .dv{color:var(--dim)}
#gs.gsx:not(#_) .gs-cp{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:-4px;padding:0;border:0;background:transparent;color:var(--dim);cursor:pointer}
#gs.gsx:not(#_) .gs-cp svg{width:11px;height:11px} #gs.gsx:not(#_) .gs-cp:hover{color:var(--text)} #gs.gsx:not(#_) .gs-cp.ok{color:var(--gs-acc)}
/* the typed part of a symbol / name */
#gs.gsx:not(#_) .gs-row mark{background:var(--gs-acc-bg);color:var(--gs-acc);border-radius:3px;padding:0 1px;margin:0 -1px}
/* numbers: values right-aligned on one edge per column, the label hugging its value, two lines in every column */
#gs.gsx:not(#_) .gs-st{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:18px 15px;align-items:center;column-gap:8px;row-gap:3px;min-width:0;font:500 11px/1 var(--gs-mono);font-variant-numeric:tabular-nums;color:var(--sub);white-space:nowrap}
#gs.gsx:not(#_) .gs-st > i{justify-self:end;font-style:normal;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
#gs.gsx:not(#_) .gs-st > b{justify-self:end;margin:0;font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;max-width:100%}
#gs.gsx:not(#_) .gs-st > b.up{color:var(--green)}
#gs.gsx:not(#_) .gs-st > span{justify-self:end;display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--sub-2);max-width:100%;overflow:hidden}
#gs.gsx:not(#_) .gs-st > span img{width:11px;height:11px;border-radius:50%}
/* rows without market data: one quiet line over the three stat columns */
#gs.gsx:not(#_) .gs-note{grid-column:3 / span 3;display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;font:500 11px/1 var(--gs-mono);color:var(--dim);white-space:nowrap}
#gs.gsx:not(#_) .gs-note > span + span::before{content:'·';margin-right:8px;color:var(--line-2)}
/* action slot: Buy for tokens, Open for wallets and address-only entries, same width and place */
#gs.gsx:not(#_) .gs-act{grid-column:-2 / -1;display:flex;justify-content:flex-end;align-items:center;min-width:0}
#gs.gsx:not(#_) .gs-buy,#gs.gsx:not(#_) .gs-open{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;height:30px;padding:0 10px;border:1px solid var(--gs-acc-line);border-radius:999px!important;background:var(--gs-acc-bg);color:var(--gs-acc);font:700 12px/1 var(--font,inherit);cursor:pointer;white-space:nowrap;transition:background-color .12s ease,color .12s ease,border-color .12s ease}
#gs.gsx:not(#_) .gs-buy svg{width:12px;height:12px}
#gs.gsx:not(#_) .gs-row.cur .gs-buy,#gs.gsx:not(#_) .gs-buy:hover{background:var(--gs-acc);border-color:var(--gs-acc);color:var(--gs-on-acc)}
#gs.gsx:not(#_) .gs-open{border-color:var(--line-2);background:transparent;color:var(--sub-2);font-weight:600;cursor:inherit}
#gs.gsx:not(#_) .gs-open svg{width:12px;height:12px}
#gs.gsx:not(#_) .gs-row.cur .gs-open{border-color:var(--gs-acc-line);color:var(--text)}
/* placeholders while a lookup or the board is out: a token row's exact shape */
#gs.gsx:not(#_) .gs-row.gs-skel{pointer-events:none}
#gs.gsx:not(#_) .gs-row.gs-skel .gs-av{background:var(--chip)}
#gs.gsx:not(#_) .gs-bar,#gs.gsx:not(#_) .gs-st.gs-skc > *{display:block;height:9px;border-radius:4px;background:linear-gradient(90deg,var(--chip) 25%,var(--line-2) 50%,var(--chip) 75%);background-size:300% 100%;animation:gs-sh 1.4s ease-in-out infinite}
#gs.gsx:not(#_) .gs-bar.w1{width:46%;height:11px} #gs.gsx:not(#_) .gs-bar.w2{width:64%} #gs.gsx:not(#_) .gs-bar.w3{width:100%;height:30px;border-radius:999px}
#gs.gsx:not(#_) .gs-st.gs-skc > i{width:18px;height:7px} #gs.gsx:not(#_) .gs-st.gs-skc > b,#gs.gsx:not(#_) .gs-st.gs-skc > span{justify-self:end;width:46px}
@keyframes gs-sh{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){#gs .gs-box,#gs .gs-spin,#gs .gs-bar,#gs .gs-st.gs-skc > *{animation:none!important}#gs .gs-row,#gs .gs-buy,#gs .gs-open{transition:none!important}}
/* phones: art · identity · MC|ATH · action; in m2 the close button moves into the input row */
@media (max-width:720px){
  #gs.gsx:not(#_){--gs-av:36px;--gs-rh:58px;--gs-cols:var(--gs-av) minmax(0,1fr) 88px 36px}
  #gs.gsx:not(#_) .gs-row{column-gap:10px;padding:0 10px}
  #gs.gsx:not(#_) .gs-row .gs-st{display:grid} #gs.gsx:not(#_) .gs-row .gs-st ~ .gs-st,#gs.gsx:not(#_) .gs-note{display:none}
  #gs.gsx:not(#_) .gs-buy,#gs.gsx:not(#_) .gs-open{width:36px;height:32px;padding:0} #gs.gsx:not(#_) .gs-buy > span{display:none} #gs.gsx:not(#_) .gs-buy svg{width:13px;height:13px}
  #gs.gsx:not(#_) .gs-open{font-size:0;gap:0} #gs.gsx:not(#_) .gs-open svg{width:14px;height:14px}
  #gs.gsx:not(#_) .gs-sym{max-width:10ch;font-size:14px}
  #gs.gsx:not(#_) .gs-body{min-height:0;padding:0 6px 8px}
  #gs.gsx:not(#_) .gs-h{margin:0 -6px;padding:0 16px}
  html[data-design=m2] #gs.gsx .gs-in{padding-right:56px} html[data-design=m2] #gs.gsx .gs-in kbd{display:none}
  html[data-design=m2] #gs.gsx .gs-ic{position:absolute;top:12px;right:12px;z-index:3;width:32px;height:32px}
}
