:root{--role-illustration-0:#f18b71;--role-illustration-1:#e9c275;--role-illustration-2:#b4a4f7;--role-illustration-3:#db9bd5;--role-illustration-4:#a93824;--role-illustration-5:#895a10;--role-illustration-6:#6842b9;--role-illustration-7:#933984;--role-illustration-8:#eb9c61;--wallet-label-color-0:#6cc9fb;--wallet-label-color-1:#bba0ff;--wallet-label-color-2:#65d9c5;--wallet-label-color-3:#f1bd66;--wallet-label-color-4:#145c91;--wallet-label-color-5:#693ca9;--wallet-label-color-6:#0f7060;--wallet-label-color-7:#935d0b;--wallet-label-color-8:#0003;--wallet-label-color-9:#17121e}
/* GMGN-style workspace, direction v7 (Owner, 1 Oct 2026): GMGN placement, General Sans (Aeonik look-alike), black/white
   surfaces with the Phantom lavender accent. Loaded last: it re-points the legacy colour tokens used by style.css, theme.css
   and track.css (Overview, Track, Manager panels, dialogs, login) to the new palette, flattens legacy controls and styles
   the new components. Custom properties: --bb / --bbh are a component's background and hover background. */
/* 3 Oct 2026 Owner 3A: light --up #0c7c37, 5.31:1 on white, 4.59:1 on --raise-2; dark unchanged. --green, --signal, --candle-up and
   --series-2 keep the old green: they colour dots and chart graphics (3.41:1 passes the 3:1 non-text floor). */
:root{
  --font:'General Sans';--hdr:56px;--dock:460px;
  --bg:#ffffff;--raise:#f7f7f9;--raise-2:#eeeef2;--raise-3:#e2e2e8;--btn:#ededf1;--btn-h:#e2e2e8;--hover:#f5f5f8;
  --text-1:#121214;--text-2:#55555f;--text-3:#6f6f7a;
  --card-burn:#b45309;--status-dex:#168cba;--accent:#ab9ff2;--on-accent:#141414;--accent-ink:#5b4fd1;--accent-soft:rgb(171 159 242/.22);--up:#0c7c37;--down:#dc2646;--hot:#b8780a;--hot-ink:#946000;--ath:#ca8a04;--edge-ring:rgb(0 0 0/.10);
  --ushadow:0 16px 40px rgb(0 0 0/.16),0 0 0 1px var(--line);
  --page:#ffffff;--surface:#ffffff;--surface-soft:#f7f7f9;--surface-inset:#eeeef2;--ink:#121214;--muted:#55555f;--quiet:#6f6f7a;
  --line:#e8e8ee;--line-2:#d6d6df;--line-soft:#f1f1f4;--purple:#7c6be0;--purple-light:#efecfd;--accent-text:#5b4fd1;--green:#13a04a;--red:#dc2646;
  --button:#ededf1;--button-hover:#e2e2e8;--primary:#ab9ff2;--primary-ink:#141414;--primary-hover:#9c8eef;--danger-surface:#fdecef;--danger-ink:#dc2646;
  --focus:#7c6be0;--focus-halo:#ab9ff240;--shadow:none;--shadow-hover:none;--menu-shadow:var(--ushadow);--overlay:rgb(0 0 0/.35);--nav-glass:#ffffff;
  --signal:#13a04a;--signal-halo:#e3f3ec;--chart-text:#6f6f7a;--chart-grid:#e8e8ee;--chart-crosshair:#b4b4bd;--chart-label:#2a2a33;--candle-up:#13a04a;--candle-down:#dc2646;
  --series-1:#5b4fd1;--series-2:#13a04a;--series-3:#b8780a;--series-4:#1d7fd6;--series-5:#c2418f;--series-6:#0e8f7a;--series-7:#8a5a2b;--series-8:#6b6b75;
}
:root[data-theme=dark]{
  --bg:#0c0c0e;--raise:#121215;--raise-2:#1a1a1f;--raise-3:#2b2b33;--btn:#232329;--btn-h:#2e2e36;--hover:#141418;
  --text-1:#f4f4f5;--text-2:#a8a8b3;--text-3:#84848f;
  --card-burn:#fb923c;--status-dex:#38bdf8;--accent-ink:#c3baff;--accent-soft:rgb(171 159 242/.16);--up:#3ddc84;--down:#f0506e;--hot:#f2b544;--hot-ink:#f2b544;--ath:#facc15;--edge-ring:rgb(255 255 255/.16);
  --ushadow:0 18px 48px rgb(0 0 0/.7),0 0 0 1px #2b2b33;
  --page:#0c0c0e;--surface:#0c0c0e;--surface-soft:#121215;--surface-inset:#1a1a1f;--ink:#f4f4f5;--muted:#a8a8b3;--quiet:#84848f;
  --line:#1e1e23;--line-2:#2b2b33;--line-soft:#18181d;--purple:#ab9ff2;--purple-light:#231f33;--accent-text:#c3baff;--green:#3ddc84;--red:#f0506e;
  --button:#232329;--button-hover:#2e2e36;--primary:#ab9ff2;--primary-ink:#141414;--primary-hover:#bcb2f5;--danger-surface:#2a1318;--danger-ink:#f0506e;
  --focus:#ab9ff2;--focus-halo:#ab9ff230;--overlay:rgb(0 0 0/.55);--nav-glass:#0c0c0e;
  --signal:#3ddc84;--signal-halo:#10261c;--chart-text:#84848f;--chart-grid:#1e1e23;--chart-crosshair:#4a4a55;--chart-label:#2a2a33;--candle-up:#3ddc84;--candle-down:#f0506e;
  --series-1:#c3baff;--series-2:#3ddc84;--series-3:#f2b544;--series-4:#5aa9ff;--series-5:#ff7ac6;--series-6:#4fd1c5;--series-7:#e0a070;--series-8:#a8a8b3;
}
html{scrollbar-gutter:stable;background:var(--bg)}
body{background:var(--bg);color:var(--text-2);font:500 13px/1.35 var(--font),'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-synthesis:none;font-variant-numeric:tabular-nums}
button,input,select,textarea{font-family:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
sub{font-size:.7em;line-height:0;vertical-align:baseline;position:relative;top:.35em}
.i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.up{color:var(--up)}.down{color:var(--down)}.t3{color:var(--text-3)}.t2{color:var(--text-2)}.t1{color:var(--text-1)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mobile-only{display:none}.phone-only{display:none!important}
.r{text-align:right}

/* Legacy controls: flat, no hover lift, smaller radii. */
button:hover:not(:disabled),.button:hover{transform:none;box-shadow:none}
button:active:not(:disabled){transform:none}
button.primary:hover:not(:disabled){box-shadow:none}
.panel{border-radius:12px;box-shadow:none}
dialog{border-radius:16px}
.workspace-heading,footer{display:none}

/* New components reset the legacy button look; each sets --bb (background) and --bbh (hover background). */
:where(.ux) button{background:var(--bb,transparent);color:inherit;border:0;border-radius:0;padding:0;gap:0;font-weight:inherit;line-height:inherit;box-shadow:none;transform:none;cursor:pointer}
:where(.ux) button:hover:not(:disabled){background:var(--bbh,var(--bb,transparent));box-shadow:none;transform:none}
:where(.ux) button:disabled{cursor:default}
.ghost{width:32px;height:32px;border-radius:8px!important;display:inline-grid!important;place-items:center;color:var(--text-2);--bbh:var(--raise-2)}
.ghost:hover:not(:disabled){color:var(--text-1)}
.ubtn{height:32px;padding:0 12px!important;border-radius:8px!important;display:inline-flex!important;align-items:center;gap:6px!important;font-weight:700!important;font-size:13px;white-space:nowrap;flex:none;color:var(--text-1);text-decoration:none;--bb:var(--btn);--bbh:var(--btn-h)}
a.ubtn{background:var(--btn)}a.ubtn:hover{background:var(--btn-h)}
.ubtn.accent{--bb:var(--accent);--bbh:#9c8eef;color:var(--on-accent)}
.ubtn.danger{color:var(--down)}
.ubtn.sm{height:30px;padding:0 11px!important;font-size:12px}
.ubtn:disabled{opacity:.5}
.ubtn .i{width:15px;height:15px}
.ubtn.phone-only{display:none!important}
.trade-actions .ubtn{font-size:13px}

/* Header (GMGN: bold text nav, filled search with a / shortcut, small right actions) */
.topbar{position:sticky;top:0;z-index:30;height:var(--hdr);display:flex;align-items:center;gap:6px;padding:0 20px;background:var(--bg);border-bottom:1px solid var(--line)}
.topbar>*{flex-shrink:0}
.topbar .mark{display:flex;align-items:center;gap:9px;margin-right:22px;color:var(--text-1);font-weight:700;font-size:15px;letter-spacing:-.01em;text-decoration:none}
.topbar .mark b{width:24px;height:24px;border-radius:7px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:13px;font-weight:700}
.topbar .navs{display:flex;gap:18px;position:static;background:none;border:0;padding:0;backdrop-filter:none}
.topbar .navs .nav{height:36px;display:flex;align-items:center;padding:0;border-radius:0;color:var(--text-1);font-weight:700;font-size:14px;flex:none;box-shadow:none;--bb:transparent;--bbh:transparent}
.topbar .navs .nav:hover:not(:disabled){color:var(--accent-ink)}
.topbar .navs .nav[aria-current=page],.topbar .navs .nav.active{color:var(--accent-ink);background:none}
.hsearch{margin-left:auto;display:flex;flex-direction:row;align-items:center;gap:8px;height:32px;flex:0 1 280px;min-width:160px;padding:0 9px 0 11px;border-radius:8px;background:var(--raise-2);color:var(--text-3);font-size:13px}
.hsearch:focus-within{box-shadow:0 0 0 2px var(--accent)}
.hsearch input{border:0;outline:0;background:none;color:var(--text-1);font:inherit;width:100%;min-width:0;padding:0;border-radius:0;box-shadow:none}
.hsearch input:focus{box-shadow:none;border:0}
.hsearch input::placeholder{color:var(--text-3)}
.hsearch input::-webkit-search-cancel-button{opacity:.6}
.hsearch kbd{font:inherit;font-size:11px;color:var(--text-3);border:1px solid var(--line-2);border-radius:4px;padding:0 5px;line-height:17px}
.hright{margin-left:10px;display:flex;align-items:center;gap:4px}
.status{display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;margin-right:2px;border-radius:8px;background:none;font-size:12px;color:var(--text-3);white-space:nowrap}
.status .lbl{display:none}.status.warn .lbl{display:inline}.status:has(.dot.bad) .lbl{color:var(--down)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);flex:none}
.dot.connected,.fresh .dot{background:var(--up)}.dot.bad,.fresh .dot.bad{background:var(--down)}
/* GMGN rate-limit pause (audit step 8, 2 Oct 2026): amber dot and label with the countdown; not an error. */
.dot.cool,.fresh .dot.cool{background:var(--hot)}.status:has(.dot.cool) .lbl{color:var(--hot-ink)}
/* The same pause as a page note on phones only (no sync pill there); wide screens keep it in the pill. --hot-ink: amber text that
   keeps 4.5:1 contrast in the light theme (the --hot dot colour is too light for 12 px text there). */
p.sync-error.cool{color:var(--hot-ink)}
@media(min-width:701px){p.sync-error.cool{display:none}}
.bellwrap{position:relative}
.bell{position:relative}
.bell .badge{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--down);box-shadow:0 0 0 2px var(--bg)}
.theme-btn .theme-sun{display:none}:root[data-theme=dark] .theme-btn .theme-sun{display:block}:root[data-theme=dark] .theme-btn .theme-moon{display:none}

/* Notifications: anchored to the bell */
.notif{position:absolute;z-index:2;top:calc(100% + 8px);right:-8px;width:360px;max-height:min(560px,calc(100dvh - 80px));overflow:auto;border-radius:10px;background:var(--surface);box-shadow:var(--ushadow);text-align:left}
.notif h3{display:flex;align-items:center;gap:8px;margin:0;padding:12px 14px;font-size:13px;font-weight:700;color:var(--text-1);border-bottom:1px solid var(--line)}
.notif h3 button{margin-left:auto;font-size:12px;font-weight:500;color:var(--accent-ink);padding:6px 8px!important;margin-right:-8px;border-radius:6px!important}
.notif .item{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);--ring-bg:var(--surface)}
.notif .item:last-child{border-bottom:0}
.notif .item.unread{background:var(--raise);--ring-bg:var(--raise)}
.notif .item b{display:block;color:var(--text-1);font-weight:700;font-size:13px}
.notif .item small{display:block;color:var(--text-3);font-size:12px;line-height:17px}
.notif .item .act{margin-top:6px;height:28px;padding:0 10px!important;border-radius:7px!important;color:var(--text-1);font-size:12px;font-weight:700;--bb:var(--btn);--bbh:var(--btn-h)}
.notif .empty{padding:32px 20px;text-align:center;color:var(--text-3);font-size:12px}
.notif .empty .i{width:24px;height:24px;margin-bottom:8px;display:block;margin-inline:auto}
.notif .empty b{display:block;color:var(--text-1);font-weight:700;margin-bottom:4px}

/* Page frame. One control row on wide screens (tabs · sort pills · chips · count · view), two rows below 1300 px. */
main{max-width:none;margin:0;padding:0 20px 60px}
@media(min-width:701px){main{container:main/inline-size}}
.tabsrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;min-height:54px;padding:6px 0;border-bottom:1px solid var(--line)}
.bigtabs{display:flex;gap:22px;min-width:0;order:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.bigtabs::-webkit-scrollbar{display:none}
.bigtab{height:auto;display:flex!important;align-items:center;gap:6px!important;padding:2px 0!important;font-size:19px;font-weight:700!important;letter-spacing:-.015em;color:var(--text-3)!important;position:relative;white-space:nowrap;flex:none;--bb:transparent;--bbh:transparent}
.bigtab[aria-selected=true]{color:var(--text-1)!important}
.bigtab .lock{width:14px;height:14px;stroke-width:2}
.bigtab .soon{display:none}
.tabsrow .right{order:2;margin-left:auto;display:flex;align-items:center;gap:10px}
/* The filter bar never clips or masks: the chip menus (.umenu) are positioned inside it. */
.tabsrow .fbar{order:3;flex:1 1 100%;padding:0;min-height:40px;flex-wrap:wrap}
@container main (min-width:1300px){.tabsrow .fbar{order:2;flex:0 1 auto;margin-left:6px}.tabsrow .right{order:3}}
.pillset .short{display:none}
.fbar .pillset:not(:has(button:not(:disabled))){display:none}
.pagebar{display:flex;align-items:center;gap:20px;min-height:54px;border-bottom:1px solid var(--line)}
.pagetitle{margin:0;font-size:19px;font-weight:700;letter-spacing:-.015em;color:var(--text-1)}
.pagebar .right{margin-left:auto;display:flex;align-items:center;gap:10px}
.count{color:var(--text-3);font-size:12px;white-space:nowrap}
.fresh{display:none}
.viewtoggle{display:flex;padding:2px;gap:2px;border-radius:8px;background:var(--raise-2)}
.viewtoggle button{width:28px;height:24px;border-radius:6px!important;display:grid!important;place-items:center;color:var(--text-3)}
.viewtoggle button[aria-pressed=true]{--bb:var(--raise-3);--bbh:var(--raise-3);color:var(--text-1)}
.trade-actions{display:flex;gap:8px}
.fbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0}
.pillset{display:flex;align-items:center;gap:2px;padding:2px;border-radius:8px;background:var(--raise-2);flex:none}
.pillset button{height:26px;padding:0 10px!important;border-radius:6px!important;color:var(--text-3);font-weight:500!important;font-size:12px;white-space:nowrap;--bb:transparent;--bbh:var(--raise-3)}
.pillset button[aria-pressed=true]{--bb:var(--raise-3);--bbh:var(--raise-3);color:var(--text-1);font-weight:700!important}
.pillset button:disabled{opacity:.45}
.pillset .rk{display:none}
.menus{display:contents}
.chipwrap{position:relative;flex:none}
.fchip{display:flex!important;align-items:center;gap:6px!important;height:30px;padding:0 9px!important;border-radius:8px!important;color:var(--text-1);font-weight:500!important;font-size:12px;white-space:nowrap;flex:none;--bb:var(--raise-2);--bbh:var(--raise-3)}
.fchip .i{width:14px;height:14px;color:var(--text-3)}
.fchip .cd,.fchip .vb,.fchip .av{width:16px;height:16px}
.umenu{position:absolute;z-index:9;top:calc(100% + 6px);left:0;min-width:240px;max-height:min(440px,70vh);overflow:auto;padding:6px;border-radius:10px;background:var(--surface);box-shadow:var(--ushadow);--ring-bg:var(--surface)}
.umenu button{display:flex!important;align-items:center;gap:10px!important;width:100%;height:38px;padding:0 10px!important;border-radius:7px!important;color:var(--text-1);font-size:13px;font-weight:500!important;text-align:left;white-space:nowrap;justify-content:flex-start!important;--bbh:var(--raise)}
.umenu button[aria-checked=true]{--bb:var(--raise)}
.umenu button.zero{color:var(--text-3)}
.umenu .cd,.umenu .av{width:20px;height:20px}
.umenu .wch{display:inline-flex;align-items:center;gap:4px;color:var(--text-3);font-size:12px;font-weight:500}
.umenu .wch .cd{width:14px;height:14px}
.umenu .n{margin-left:auto;color:var(--text-3);font-size:12px;font-weight:500}
.umenu .ok{color:var(--up);visibility:hidden}.umenu button[aria-checked=true] .ok{visibility:visible}
.msep{padding:10px 10px 4px;font-size:11px;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.umenu-scrim{display:none}
.unote{margin:0 0 10px;font-size:12px;line-height:18px;color:var(--text-3)}
.pnl-method{margin:10px 0 0;padding-left:10px}
.pnl-method summary{cursor:pointer;color:var(--text-2)}
#sort-note.unote{margin:10px 0 0;padding-left:10px}
.pnl-method p{margin-top:6px;font-size:12px}
.upager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;color:var(--text-3);font-size:12px}
.upager>div{display:flex;gap:6px}
.uempty{padding:64px 16px;text-align:center;color:var(--text-3)}
.uempty .empty-icon{display:block;font-size:22px;margin-bottom:8px;color:var(--text-3)}
.uempty h3{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--text-1)}
.uempty p{margin:0 auto;max-width:520px;font-size:13px;line-height:19px;color:var(--text-3)}
.uempty .acts{display:flex;justify-content:center;gap:8px;margin-top:14px;flex-wrap:wrap}

/* Token table: dense rows, stacked value / sub-value pairs that hug the right, one action per row (GMGN placement). */
.tkhead,.tkrow{display:grid;grid-template-columns:minmax(250px,1fr) repeat(4,minmax(118px,170px)) 84px;align-items:center;column-gap:12px}
.tkhead{position:sticky;top:var(--hdr);z-index:4;height:34px;padding:0 10px;background:var(--bg);border-bottom:1px solid var(--line);font-size:12px;color:var(--text-3);font-weight:500}
.tkhead span{text-align:right;white-space:nowrap}.tkhead span:first-child,.tkhead .wc{text-align:left}
.tkhead em,.mhead em,.wlhead em{font-style:normal;color:var(--text-3);opacity:.7}
.tkrow{position:relative;height:72px;padding:0 10px;cursor:pointer;border-bottom:1px solid var(--line);--ring-bg:var(--bg)}
@media(hover:hover){.tkrow:where(:not(.exited)):hover{background:var(--hover);--ring-bg:var(--hover)}}
.tkrow[aria-current=true]{background:var(--accent-soft);--ring-bg:var(--bg)}
.tkrow:focus-visible,.mrow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.cell{text-align:right;min-width:0}
.cell b{display:block;color:var(--text-1);font-weight:700;font-size:13px;line-height:18px;white-space:nowrap}
.cell b.t3{color:var(--text-3);font-weight:500}.cell b.quiet{color:var(--hot)}
/* Profit green, loss red in list figures (Track profile and address PnL; Owner, 1 Oct 2026). */
.cell b.up{color:var(--up)}.cell b.down{color:var(--down)}
.cell small{display:block;color:var(--text-3);font-size:12px;line-height:16px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell small.quiet{color:var(--hot)}
/* Last trade from a check older than 10 minutes (audit step 5): kept, muted, with the check's age below. */
.cell b.stale:not(.quiet){color:var(--text-2);font-weight:500}
.cell .pair{color:var(--text-3);font-weight:500;font-size:12px;margin-left:2px}
.qa{display:inline-flex!important;align-items:center;justify-content:center;gap:5px!important;height:28px;min-width:28px;padding:0 10px!important;border-radius:8px!important;color:var(--text-1);font-weight:700!important;font-size:12px;white-space:nowrap;flex:none;--bb:var(--btn);--bbh:var(--accent)}
.qa:hover:not(:disabled){color:var(--on-accent)}
.qa .i{width:14px;height:14px;stroke-width:2}
.qa.on{--bb:var(--accent);--bbh:var(--accent);color:var(--on-accent)}
.tkrow .qa span,.tkrow .qa .lbl{display:none}
.tkrow .qa{margin-left:auto}
@container main (min-width:1300px){.tkrow .qa span{display:inline}}
@container main (max-width:899px){
  .tkhead,.tkrow{grid-template-columns:minmax(240px,1fr) repeat(3,minmax(96px,120px)) 40px;column-gap:10px}
  .col-price{display:none}
}
/* Wide screens keep the stacked pairs and add a real column: the followed wallets and whether they still hold. */
.wc{display:none}
@container main (min-width:1760px){
  .tkhead,.tkrow{grid-template-columns:minmax(300px,1.1fr) minmax(220px,.9fr) repeat(4,minmax(150px,210px)) 96px;column-gap:16px}
  .wc{display:block;text-align:left}
  .wc .wcl{display:flex;align-items:center;gap:6px;color:var(--text-1);font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .wc small{text-align:left}
  .tkrow .l2 .stack,.tkrow .l2 .nm{display:none}
  .tkrow .cell.holders small{display:none}
}
.lt .pl{display:none}
.tk{display:flex;align-items:center;gap:12px;min-width:0;text-align:left}
.tk .n{min-width:0;flex:1}
.tk .l1{display:flex;align-items:baseline;gap:6px;min-width:0}
.tk .l1 b{color:var(--text-1);font-weight:700;font-size:15px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto;max-width:100%}
.tk .l1 b.sh{flex:0 1 auto;min-width:0}
.tk .l1 .tn{flex:0 1000 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:12px}
.tk .l1 .strat,.tk .l1 .more{flex:none}
.tk .l2{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:12px;color:var(--text-3);white-space:nowrap;min-width:0;overflow:hidden}
.tk .l2>*{flex:none}
.tk .l2 .nm{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}
.tk .l2 .cd.sm{width:14px;height:14px;position:relative;right:auto;bottom:auto;border:0}
.tk .l2 .lt{display:inline-flex;align-items:center;gap:4px;min-width:0}
.tk .l2 .lt .t3{color:var(--text-3)}
.act{font-weight:700}
.tklogo{position:relative;display:inline-block;vertical-align:middle;width:48px;height:48px;flex:none}
.tklogo>img,.tklogo>.ph{width:100%;height:100%;border-radius:9px;object-fit:cover;background:var(--raise-2);display:grid;place-items:center;color:var(--text-1);font-weight:700;font-size:17px;box-shadow:0 0 0 1px var(--edge-ring)}
.tklogo.round>img,.tklogo.round>.ph{border-radius:50%}
.tklogo.lg{width:44px;height:44px}
.stack{display:inline-flex;align-items:center;vertical-align:middle}
.av{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ring-bg,var(--bg));background:var(--raise-2);object-fit:cover;display:inline-grid;place-items:center;font-size:9px;font-weight:700;color:var(--text-1);flex:none}
.stack .av{margin-left:-5px}.stack .av:first-child{margin-left:0}
/* Launchpad / DEX badge (vb) and chain disc (cd) on the art: a hairline edge keeps dark discs visible on dark rows. */
.vb,.cd{position:absolute;right:-4px;bottom:-4px;width:19px;height:19px;border-radius:50%;border:2px solid var(--ring-bg,var(--bg));display:grid;place-items:center;overflow:hidden;flex:none;color:#fff;font-size:9px;font-weight:700;line-height:1}
.vb:after,.cd:after{content:'';position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px var(--edge-ring);pointer-events:none}
.vb img{width:100%;height:100%;object-fit:cover}
.vb.pad img{width:72%;height:72%;object-fit:contain}
.cd img{width:72%;height:72%;object-fit:contain}.cd img.fill{width:100%;height:100%;object-fit:cover}
.vb.unknown{background:var(--raise-2);color:var(--text-3)}
.vb.unknown .i{width:11px;height:11px}
.vb .ph,.cd .ph{background:none;box-shadow:none;font-size:9px}
.static{position:relative!important;right:auto!important;bottom:auto!important;border:0!important}
.cd.chain-dot{position:relative;right:auto;bottom:auto;border:0;width:18px;height:18px;display:inline-grid;vertical-align:middle;margin-right:6px}
/* Optional chain stripe on the row edge (off by default; the chain is the small disc in the row). */
body.stripe .tkrow:before,body.stripe .mrow:before,body.stripe .wlrow:before,body.stripe .wmrow:before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 2px 2px 0;background:var(--edge,transparent)}
body.stripe .tk .l2 .cd.sm{display:none}
:root:not([data-theme=dark]) body.stripe :is(.tkrow,.mrow,.wlrow,.wmrow):before{background:var(--edge-l,var(--edge,transparent))}

/* Cards: compact, no KPI tiles. */
.tkc{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;padding-top:12px}
.tkcard{position:relative;border-radius:10px!important;border:1px solid var(--line)!important;padding:12px!important;display:flex!important;flex-direction:column;align-items:stretch!important;gap:10px!important;cursor:pointer;text-align:left;overflow:hidden;color:inherit;--bb:var(--raise);--bbh:var(--hover);--ring-bg:var(--raise)}
.tkcard:hover{--ring-bg:var(--hover)}
.tkcard[aria-current=true]{border-color:var(--accent)!important}
.tkcard .cprice{display:flex;align-items:baseline;gap:8px;font-size:15px}
.tkcard .cprice b{font-size:15px;font-weight:700;color:var(--text-1)}
.tkcard .cprice .up,.tkcard .cprice .down,.tkcard .cprice>.t3:last-child{margin-left:auto;font-size:12px;font-weight:700}
.tkcard .cstats{display:flex;justify-content:space-between;gap:12px}
.tkcard .cstats div{flex:none}
.tkcard .cstats span{display:block;font-size:11px;color:var(--text-3);white-space:nowrap}
.tkcard .cstats b{display:block;font-size:13px;font-weight:700;color:var(--text-1);white-space:nowrap}

/* Token detail (v8): a centred box; the page behind it blurs and is inert. Chart and tracked wallets on the left,
   holder mix, top holders and dev & security on the right; one column below 980 px. */
.dp-back{position:fixed;inset:0;z-index:40;background:rgb(0 0 0/.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .2s;cursor:pointer}
:root:not([data-theme=dark]) .dp-back{background:rgb(30 30 40/.35)}
.dp{position:fixed;z-index:41;left:50%;top:50%;width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 32px);transform:translate(-50%,-48%) scale(.98);opacity:0;visibility:hidden;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s,visibility 0s linear .22s;display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:16px;background:var(--bg);box-shadow:0 30px 80px -20px rgb(0 0 0/.6);color:var(--text-2);--ring-bg:var(--bg)}
.dp-open .dp-back{opacity:1;pointer-events:auto}
.dp-open .dp{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s,visibility 0s}
body.dp-open{overflow:hidden}
.dp-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex:none}
.dp-head>.n{flex:1;min-width:0}
.dp-head h2{margin:0;font-size:19px;line-height:24px;font-weight:700;color:var(--text-1);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
.dp-head h2 .q{color:var(--text-3);font-weight:500;font-size:13px}
.dp-head .sub{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:12px;line-height:16px;color:var(--text-3);white-space:nowrap;min-width:0;overflow:hidden}
.dp-head .sub .cd{width:16px;height:16px}
.dp-head .sub .nm{min-width:0;overflow:hidden;text-overflow:ellipsis}
.dp-head .dp-price{margin-left:auto;text-align:right;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:0}
.dp-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--raise-2) transparent;min-height:0}
.dp-main{padding:12px 16px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px;min-width:0}
.dp-side{padding:12px 16px 16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.dp-main>*,.dp-side>*{flex:none}
.dp-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dp-tools .hint{margin-left:auto}
.dp-trade{display:flex;align-items:center;gap:6px;padding-top:4px}
.dp-trade .ubtn{flex:1;justify-content:center;opacity:.55;cursor:not-allowed}
.dp-trade .unote{margin:0 0 0 6px}
.dp-price b{font-size:20px;line-height:26px;font-weight:700;color:var(--text-1)}
.dp-price .t3{font-size:12px}
.res{display:flex;flex:none;gap:2px;padding:2px;border-radius:8px;background:var(--raise-2);width:max-content;max-width:100%;flex-wrap:nowrap;overflow:auto;scrollbar-width:none}
.quick-sell{margin-top:0}
@media(max-width:980px){.dp-body{grid-template-columns:1fr}.dp-main{border-right:0;border-bottom:1px solid var(--line)}}
.res button{height:26px;padding:0 9px!important;border-radius:6px!important;color:var(--text-3);font-weight:500!important;font-size:12px;--bb:transparent;--bbh:var(--raise-3)}
.res button[aria-pressed=true]{--bb:var(--raise-3);--bbh:var(--raise-3);color:var(--text-1);font-weight:700!important}
.chartbox{height:clamp(300px,38vh,420px);border:1px solid var(--line);border-radius:9px;background:var(--raise);overflow:hidden;flex:none;touch-action:pan-y}
/* Phones: the page scrolls on a vertical drag; a horizontal drag and a pinch go to the chart (pan and zoom). Reset button next
   to the scale toggle: price scale back to automatic and the latest candles at their normal width (2 Oct 2026). */
.chart-reset{width:30px;height:30px;border-radius:8px!important;display:inline-grid!important;place-items:center;padding:0!important;color:var(--text-2);flex:none;--bb:var(--raise-2);--bbh:var(--raise-3)}
.chart-reset .i{width:15px;height:15px}
.dp-credit{display:flex;justify-content:space-between;gap:10px;margin-top:-6px;font-size:11px;color:var(--text-3);white-space:nowrap}
.dp-credit span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.dp-credit a{color:var(--text-3);text-decoration:underline;text-underline-offset:2px;flex:none}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden}
.stats>div{min-width:0;padding:10px 12px;border-right:1px solid var(--line)}
.stats>div:last-child{border-right:0}
.stats .k{display:block;font-size:11px;color:var(--text-3)}
.stats b{display:block;font-size:14px;font-weight:700;color:var(--text-1);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv{border-top:1px solid var(--line);--ring-bg:var(--surface)}
.kv>div{display:flex;align-items:center;gap:8px;min-height:40px;padding:0;border-bottom:1px solid var(--line);min-width:0;font-size:13px}
.kv .k{font-size:12px;color:var(--text-3);flex:none;width:120px}
.kv .wn{color:var(--text-1);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kv .v{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-1);font-weight:500;white-space:nowrap}
.kv .v>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.kv .v .t3{font-weight:500}
.kv .vb.static{width:18px;height:18px}
.quick-sell{display:flex;gap:4px}
.quick-sell button{height:26px;padding:0 9px!important;border-radius:6px!important;font-size:12px;font-weight:500!important;color:var(--text-3);flex:none;--bb:var(--raise-2)}
.quick-sell button:disabled{opacity:.6}
.links{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--text-2)}
.links a{display:inline-flex;align-items:center;gap:4px;color:var(--text-2);text-decoration:none;font-weight:500}
.links a:hover{color:var(--text-1)}
.links a .i{width:13px;height:13px}
.dp-body .unote{margin:0}

/* Copywallet: one Copy button per wallet plus a menu; hidden-from-Terminal is a small icon in the row. */
.wlhead,.wlrow{display:grid;grid-template-columns:minmax(240px,1fr) repeat(2,minmax(110px,160px)) minmax(110px,150px) minmax(90px,110px) 110px 40px;align-items:center;column-gap:12px}
.wlhead{position:sticky;top:var(--hdr);z-index:4;height:34px;padding:0 10px;background:var(--bg);border-bottom:1px solid var(--line);font-size:12px;color:var(--text-3);font-weight:500}
.wlhead span{text-align:right;white-space:nowrap}.wlhead span:first-child{text-align:left}.wlhead .c{text-align:center}
.wlrow{position:relative;height:72px;padding:0 10px;border-bottom:1px solid var(--line);--ring-bg:var(--bg)}
@media(hover:hover){.wlrow:hover{background:var(--hover);--ring-bg:var(--hover)}}
.wlrow .c{display:flex;justify-content:center;position:relative}
.wlrow .qa{padding:0 12px!important}
.strat{display:inline-flex!important;align-items:center;gap:5px!important;height:18px;padding:0 6px!important;border-radius:5px!important;color:var(--text-2);font-size:11px;font-weight:500!important;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;align-self:center;--bb:var(--raise-2);--bbh:var(--raise-3)}
.strat:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}
.strat.paused:before{background:var(--text-3)}
.strat .sn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk .l2 .hid{width:13px;height:13px;color:var(--text-3)}
.more{width:30px;height:30px;border-radius:8px!important;display:inline-grid!important;place-items:center;color:var(--text-2);--bbh:var(--raise-2)}
.more[aria-expanded=true]{--bb:var(--raise-2);color:var(--text-1)}
.wmenu{position:absolute;z-index:12;top:calc(100% + 4px);right:0;min-width:220px;padding:6px;border-radius:10px;background:var(--surface);box-shadow:var(--ushadow);text-align:left}
.strat-more{color:var(--text-3);font-size:12px;align-self:center}
.wmenu button{display:flex!important;align-items:center;gap:10px!important;width:100%;height:38px;padding:0 10px!important;border-radius:7px!important;color:var(--text-1);font-size:13px;font-weight:500!important;text-align:left;white-space:nowrap;justify-content:flex-start!important;--bbh:var(--raise)}
.wmenu button .i{width:15px;height:15px;color:var(--text-3)}
.wmenu button:disabled{color:var(--text-3)}
@container main (max-width:1119px){.wlhead,.wlrow{grid-template-columns:minmax(200px,1fr) repeat(2,96px) 96px 64px 96px 40px;column-gap:10px}}
@container main (max-width:899px){.wlhead,.wlrow{grid-template-columns:minmax(160px,1fr) repeat(2,88px) 80px 84px 40px;column-gap:8px}.wlhead .tokens,.wlrow .tokens{display:none}}

/* Manager */
.msection{margin-top:22px}
.msection>h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:15px;font-weight:700;letter-spacing:0;color:var(--text-1)}
.msection>h2 small{font-size:12px;font-weight:500;color:var(--text-3);white-space:nowrap}
.vtable{border-top:0}
.vrow{display:grid;grid-template-columns:36px minmax(0,1.6fr) 72px minmax(0,1fr) 56px minmax(0,110px) 118px;align-items:center;column-gap:14px;min-height:56px;padding:0 10px;border-bottom:1px solid var(--line);--ring-bg:var(--bg)}
.vrow>*{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vrow>:nth-child(5),.vrow>:last-child{overflow:visible}
.vrow>:last-child{justify-self:end}
.vrow.vhead{min-height:34px;font-size:12px;color:var(--text-3)}
.vrow b{color:var(--text-1);font-weight:700}
.vrow .ctx{display:none}
@container main (min-width:1760px){.vrow{grid-template-columns:36px minmax(220px,480px) 90px minmax(140px,300px) 80px 140px 1fr}}
.upl{height:28px;padding:0 11px;border-radius:7px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:12px;display:inline-flex;flex-direction:row;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.upl:hover{background:#9c8eef}
.upl .i{width:13px;height:13px}
.upl:focus-within{outline:2px solid var(--accent-ink);outline-offset:2px}
.vgrid .upl{height:24px;padding:0 9px;margin-left:auto;font-size:11px}
.tlink{color:var(--accent-ink)!important;text-decoration:underline;text-underline-offset:2px;font-weight:500!important;padding:2px 4px!important;margin:-2px -4px;border-radius:6px!important}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
@container main (min-width:1300px){.vgrid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@container main (min-width:1760px){.vgrid{grid-template-columns:repeat(8,minmax(0,1fr))}}
.vgrid>div{display:flex;align-items:center;gap:9px;height:40px;padding:0 10px;border-radius:8px;background:var(--raise);font-size:13px;color:var(--text-1);min-width:0;--ring-bg:var(--raise)}
.vgrid .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vgrid small{margin-left:auto;color:var(--text-3);font-size:11px;flex:none}
#manager .connection-banner,#manager .wallet-cards{margin-top:0}
#manager .manager-grid{margin-top:22px}
#manager .manager-grid .eyebrow{display:none}
#manager .manager-grid h2{font-size:15px;font-weight:700;letter-spacing:0;color:var(--text-1);margin-bottom:8px}
#manager .manager-grid .panel{background:var(--raise);border:0}
#manager .status-badge{font-size:12px;padding:4px 10px;border-radius:7px;background:var(--raise-2);color:var(--text-3)}
#manager .connection-row small,#manager .connection-steps p{font-size:12px;color:var(--text-3)}
#manager .connection-steps b{font-size:13px}
#manager .wallet-cards button.primary,#manager .wallet-cards button.secondary{padding:8px 14px;border-radius:8px;font-size:13px}

/* Phone navigation (flat GMGN bar) */
.mnav{display:none}

/* Login */
.login .brand .logo{background:var(--accent);color:var(--on-accent)}
.login button.primary{background:var(--accent);color:var(--on-accent);border-radius:8px}

@media(max-width:1120px) and (min-width:701px){.topbar .navs{gap:14px}.topbar .navs .nav{font-size:13px}.topbar .mark{margin-right:14px}.hsearch{flex-basis:220px;min-width:140px}}
@media(max-width:900px) and (min-width:701px){.topbar .mark span{display:none}.topbar .mark{margin-right:10px}}
@media(max-width:700px){
  :root{--hdr:48px}
  .topbar{height:var(--hdr);padding:0 12px;gap:6px}
  .topbar .navs,.topbar .status,.topbar .mark span,.hsearch kbd{display:none}
  .topbar .mark{margin:0}.topbar .mark b{width:26px;height:26px;border-radius:7px;font-size:13px}
  .hsearch{margin:0 0 0 8px;flex:1 1 auto;width:auto;min-width:0;height:34px;font-size:16px;padding:0 10px}
  .ghost{width:36px;height:36px}
  .hright{gap:0}
  .notif{position:fixed;top:var(--hdr);left:0;right:0;width:auto;max-height:calc(100dvh - 140px);border-radius:0}
  main{padding:0 0 calc(76px + env(safe-area-inset-bottom))}
  .tabsrow{padding:4px 14px;min-height:48px;gap:8px 16px}
  .bigtabs{flex:1;gap:18px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
  .bigtab{font-size:17px}
  .tabsrow .right .viewtoggle,.tabsrow .right .count,.tabsrow .right>.ubtn{display:none!important}
  .tabsrow .fbar{height:46px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  .tabsrow .fbar::-webkit-scrollbar{display:none}
  .tabsrow .fbar>.ubtn{order:-3}.tabsrow .fbar [data-clear-venue]{order:-4}
  .ubtn.phone-only{display:inline-flex!important}
  .pillset button{height:34px;padding:0 10px!important}.pillset .long{display:none}.pillset .short{display:inline}
  .fchip{height:34px}
  .res button{height:32px}
  .quick-sell button{height:32px}
  .pagebar{padding:0 14px;min-height:48px}
  .pagetitle{font-size:17px}
  .pagebar .right>.ubtn{width:36px;padding:0!important;justify-content:center}.pagebar .right>.ubtn .lbl{display:none}
  .phone-only{display:inline-flex!important}
  .umenu{position:fixed;left:12px;right:12px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom));min-width:0;max-height:min(60vh,460px);overscroll-behavior:contain;z-index:33;border-radius:14px}
  .umenu button{height:44px}
  .umenu-scrim{display:block;position:fixed;inset:0;z-index:31;background:var(--overlay);cursor:pointer}
  .unote{padding:0 14px}
  .pnl-method{padding:0 14px}
  .upager{padding:12px 14px}
  .desktop-only{display:none!important}
  .mobile-only{display:block}
  #terminal .viewtoggle{display:none}
  .mhead{position:sticky;top:var(--hdr);z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto 40px;column-gap:10px;padding:0 14px;height:30px;align-items:center;font-size:12px;color:var(--text-3);background:var(--bg);border-bottom:1px solid var(--line)}
  .mhead span{text-align:right;white-space:nowrap}.mhead span:first-child{text-align:left}
  .mrow{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 40px;column-gap:10px;align-items:center;height:72px;padding:0 14px;cursor:pointer;border-bottom:1px solid var(--line);--ring-bg:var(--bg)}
  .mrow[aria-current=true]{background:var(--accent-soft)}
  .mrow .tk{gap:10px}
  .mrow .l1:not(.short) .tn{display:none}
  .mrow .l2 .lt{flex:none}.mrow .l2 .nm{color:var(--text-2);flex:0 1 auto;min-width:0}.mrow .stack .av:nth-child(n+2){display:none}
  .mrow .cell b{font-size:14px}
  .mrow .qa{width:40px;height:36px;padding:0!important;margin:0}
  .mrow .qa span,.mrow .qa .lbl{display:none}
  .tkc{grid-template-columns:1fr;padding:12px 14px}
  .wlm{display:block}
  .wmrow{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;column-gap:12px;align-items:center;height:72px;padding:0 14px;border-bottom:1px solid var(--line);--ring-bg:var(--bg)}
  .wmrow .tk .l1 b{font-size:15px}
  .wmrow .cell b{font-size:13px}
  .wmrow .qa{height:34px;padding:0 12px!important;margin:0}
  .wmrow .l2{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wmrow .l2 .nm.strat-nm{display:none}
  .wmrow .l2 .hid{vertical-align:-2px;margin-left:4px}
  .more{width:36px;height:36px}
  .wmenu{position:fixed;left:12px;right:12px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom));min-width:0;z-index:33;border-radius:14px}
  .wmenu button{height:44px}
  .msection{padding:0 14px}
  .vrow{grid-template-columns:36px minmax(0,1fr) auto;min-height:56px;padding:10px 0;row-gap:4px}
  .vrow>:nth-child(3),.vrow>:nth-child(4),.vrow>:nth-child(5),.vrow>:nth-child(6),.vrow.vhead{display:none}
  .vrow>:nth-child(2){white-space:normal}.vrow>:nth-child(2) b{overflow-wrap:anywhere}.vrow .ctx{display:block;font-size:12px;color:var(--text-3);font-weight:500}
  .vgrid{grid-template-columns:1fr;gap:0;border-radius:10px;background:var(--raise)}
  .vgrid>div{border-radius:0;background:none;border-bottom:1px solid var(--line)}.vgrid>div:last-child{border-bottom:0}
  #manager .manager-grid{padding:0 14px}
  .mnav{display:grid;position:fixed;left:0;right:0;top:auto;bottom:0;z-index:25;grid-template-columns:repeat(5,1fr);gap:0;height:calc(56px + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);border:0;border-top:1px solid var(--line);border-radius:0;background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
  .mnav button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px!important;font-size:10px;font-weight:500!important;color:var(--text-3);border-radius:0!important;margin:0;padding:0!important;flex:none;--bb:transparent;--bbh:transparent}
  .mnav button[aria-current=page],.mnav button.active{color:var(--accent-ink);font-weight:700!important;background:none;box-shadow:none}
  .mnav .i{width:23px;height:23px;stroke-width:1.5}
  .dp{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:14px}
  .dp-head{padding:10px 12px;flex-wrap:wrap;gap:8px 10px}
  .dp-head>.n{flex:1 1 100%;order:3}
  .dp-head .dp-price{margin-left:0;order:2;align-items:flex-start;text-align:left;flex:1}
  .dp-head #close-chart{order:1;margin-left:auto}
  .dp-head #dp-logo{order:0}
  .dp-head .sub{white-space:normal;flex-wrap:wrap;row-gap:4px}
  .dp-main,.dp-side{padding:10px 12px 12px}
  .dp-tools .hint{display:none}
  .dp-trade{flex-wrap:wrap}.dp-trade .unote{flex-basis:100%;margin:4px 0 0}
  .chartbox{height:250px}
  .chart-reset{width:36px;height:36px}
  .stats>div{padding:8px 8px}
  .stats b{font-size:13px}
  .links a{display:inline-flex;align-items:center;min-height:40px}
  #toast{bottom:calc(72px + env(safe-area-inset-bottom))}
}
@media(max-width:360px){
  .mrow,.wmrow{padding:0 10px;column-gap:8px}.tabsrow,.mhead{padding-left:10px;padding-right:10px}
  .pillset button{padding:0 8px!important}
  .mrow .l2 .stack{display:none}
  .tklogo{width:44px;height:44px}
  .bigtab{font-size:16px}.bigtabs{gap:14px}
  .topbar{gap:4px}.topbar .ghost{width:34px;height:34px}.hsearch{padding:0 9px;gap:6px}
}
.bigtabs.ovf{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
@media(prefers-reduced-motion:reduce){.dp,.dp-back{transition:none}}
/* Legacy rules that still match the new markup (kept class names: .terminal-sort for tests, nav buttons, .active). */
.ux nav button.active,.ux nav button[aria-current=page]{background:var(--bb,transparent);box-shadow:none}
.fbar .terminal-sort{display:flex;padding:2px;background:var(--raise-2);border:0;border-radius:8px;grid-column:auto;grid-row:auto;justify-self:auto;justify-content:flex-start;min-width:auto}
.fbar .pillset button{height:26px;padding:0 10px;border:0;border-radius:6px;background:var(--bb);color:var(--text-3);font-size:12px;font-weight:500;gap:0;box-shadow:none;--bb:transparent;--bbh:var(--raise-3)}
.fbar .pillset button:hover:not(:disabled){background:var(--bbh)}
.fbar .pillset button[aria-pressed=true],.fbar .pillset button[aria-pressed=true]:hover:not(:disabled){--bb:var(--raise-3);--bbh:var(--raise-3);background:var(--raise-3);color:var(--text-1);font-weight:700}
.theme-btn .theme-sun,.theme-btn .theme-moon{opacity:1;transform:none;transition:none}
button:focus-visible{outline-color:var(--accent)}
#login,#overview,#track,#manager .connection-banner,#manager .wallet-cards,#manager .manager-grid,dialog{color:var(--text-1)}
.topbar .status.warn .lbl{display:inline}
.sync-error{color:var(--down)}
.cd .ph{color:var(--text-1)}
.topbar{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
main{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
@media(max-width:700px){
  .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  main{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .tabsrow .right .trade-actions{display:none!important}
  .msection .unote,.dp-body .unote{padding-inline:0}
}

/* ===================== Direction v8 (1 Oct 2026): monitor cards, token modal content, Track / Automation / Finder /
   Overview lists, animations. ===================== */
/* Motion: card arrival with a chain-coloured glow, changed values flash, switches slide, the refresh bar fills. */
.ux button:active:not(:disabled){transform:scale(.97)}
.topbar .navs .nav{position:relative}
.topbar .navs .nav::after{content:'';position:absolute;left:0;right:0;bottom:-10px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transition:transform .2s}
.topbar .navs .nav[aria-current=page]::after,.topbar .navs .nav.active::after{transform:scaleX(1)}
.pillset button,.viewtoggle button,.fchip,.tog,.rowbtn,.rule,.nav{transition:background-color .15s,color .15s,transform .12s}
@media(prefers-reduced-motion:reduce){.topbar .navs .nav::after,.tog,.tog::after,.dp,.dp-back{transition:none}}

/* Small pieces: tags, socials, watcher count, rule chips, switches, row buttons, chain discs in a row. */
.tag{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:5px;background:var(--raise-2);color:var(--text-2);font-size:11px;font-weight:700;white-space:nowrap;vertical-align:middle;flex:none}
.tag.og{background:rgb(242 181 68/.18);color:var(--hot)}
.tag.kol{background:var(--accent-soft);color:var(--accent-ink)}
.tag.smart{background:rgb(61 220 132/.14);color:var(--up)}
.soc{display:inline-flex;gap:4px;flex:none}
.soc a{width:20px;height:20px;border-radius:5px;display:inline-grid;place-items:center;color:var(--text-3);background:var(--raise-2)}
.soc a:hover{color:var(--text-1);background:var(--raise-3)}
.soc .i{width:12px;height:12px}
.eye{display:inline-flex;align-items:center;gap:4px;color:var(--text-3);font-size:12px;flex:none}
.eye .i{width:13px;height:13px}
.rule{display:inline-flex!important;align-items:center;gap:6px!important;height:26px;max-width:100%;padding:0 8px!important;border-radius:6px!important;background:var(--raise-2);color:var(--text-2);font-size:11px;font-weight:500!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;--bb:var(--raise-2);--bbh:var(--raise-3)}
.rule span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.rule .i{width:12px;height:12px;color:var(--text-3);flex:none}
.rule.none{color:var(--text-3);background:transparent;border:1px dashed var(--line-2);--bb:transparent;--bbh:var(--raise)}
.rule.auto{background:var(--accent-soft);color:var(--accent-ink);--bb:var(--accent-soft);--bbh:var(--accent-soft)}
.rule.auto .i{color:var(--accent-ink)}
.tog{width:34px;height:20px;border-radius:10px!important;background:var(--btn);position:relative;flex:none;padding:0!important;--bb:var(--btn);--bbh:var(--btn-h);transition:background-color .2s}
.tog::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text-3);transition:transform .2s,background-color .2s}
.tog[aria-checked=true]{--bb:var(--accent);--bbh:var(--accent);background:var(--accent)}
.tog[aria-checked=true]::after{transform:translateX(14px);background:var(--on-accent)}
.tog:disabled{opacity:.5}
.lrow:has(.wmenu),.wlrow:has(.wmenu),.wmrow:has(.wmenu){z-index:13}
.wmenu{z-index:14}
.rowbtn{width:30px;height:30px;border-radius:8px!important;display:inline-grid!important;place-items:center;color:var(--text-3);--bbh:var(--raise-2)}
.rowbtn:hover:not(:disabled){color:var(--text-1)}
.rowbtn[aria-expanded=true]{color:var(--accent-ink)}
.rowbtn[aria-expanded=true] .i{transform:rotate(180deg)}
.rowbtn .i{transition:transform .2s}
.rowbtn[aria-pressed=false]{color:var(--text-3)}
.discs{display:inline-flex;align-items:center}
.discs .cd{position:relative;right:auto;bottom:auto;width:18px;height:18px;border:2px solid var(--bg)}
.discs .cd+.cd{margin-left:-6px}
.discs small{margin-left:6px;color:var(--text-3);font-size:12px}
.pnlrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;min-width:0}
.pnlrow>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.pnlrow b{font-weight:700;font-size:13px}
.pnlrow small{color:var(--text-3);font-size:11px}
.pnlrow .cd.sm{position:relative;right:auto;bottom:auto;border:0;width:14px;height:14px}
.tklogo.sm{width:28px;height:28px}.tklogo.sm>img,.tklogo.sm>.ph{font-size:12px}
.mark-m{width:36px;height:36px;border-radius:9px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;flex:none}
.hint{font-size:12px;color:var(--text-3)}

/* Monitor cards (GMGN monitor look): chain-coloured left edge and border tint, art with chain disc, OG, socials,
   watcher count, holders, market cap and 24 h, the followed wallets' last actions, then liquidity / top 10 / dev / fresh. */
.mon{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;padding-top:12px}
.mcard{position:relative;border:1px solid color-mix(in srgb,var(--edge) 28%,var(--line));border-left:3px solid var(--edge);border-radius:12px;background:var(--raise);padding:12px 12px 10px 13px;display:flex;flex-direction:column;gap:10px;min-width:0;cursor:pointer;text-align:left;color:inherit;--ring-bg:var(--raise)}
:root:not([data-theme=dark]) .mcard{border-left-color:var(--edge-l)}
@media(hover:hover){.mcard:where(:not(.exited)):hover{background:var(--hover);--ring-bg:var(--hover)}}
.mcard[aria-current=true]{border-color:var(--accent)}
.mcard:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.mcard .ch{display:flex;gap:10px;align-items:flex-start;min-width:0}
.mcard .ttl{min-width:0;flex:1}
.mcard .ttl .l1{display:flex;align-items:center;gap:6px;min-width:0}
.mcard .ttl .l1 b{font-size:15px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.mcard .ttl .l1 .tn{color:var(--text-3);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1000 auto}
/* One line: an item that does not fit wraps to a second line that is clipped, so it is left out whole, never cut. */
.mcard .ttl .l2{display:flex;align-items:center;gap:4px 8px;margin-top:4px;color:var(--text-3);font-size:12px;flex-wrap:wrap;height:20px;overflow:hidden;overflow:clip}
.mcard .ttl .l2>*{flex:none;height:20px;display:inline-flex;align-items:center;white-space:nowrap}
.mcard .ttl .l2 .cd.sm{position:relative;right:auto;bottom:auto;border:0;width:14px;height:14px;display:grid;place-items:center}
.mcard .mc{text-align:right;flex:none}
.mcard .mc b{font-size:15px;display:block;color:var(--text-1)}
.mcard .mc span{font-size:12px;font-weight:700}
.mcard .acts{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:8px}
.mcard .act{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}
.mcard .act .who{display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.mcard .act .who b{font-size:12px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mcard .act .who>span{color:var(--text-3);flex:none}
.mcard .act .amt{font-weight:700;flex:none}
.mcard .act .amt.buy{color:var(--up)}.mcard .act .amt.sell{color:var(--down)}
.mcard .act .when{color:var(--text-3);width:34px;text-align:right;flex:none}
/* Trade pill (Owner, 1 Oct 2026): the tracker's whole trade on the token, "+53%" while holding, "TP +12%" / "CL -30%" once sold out. */
.mcard .act .bag{flex:none;font-size:11px;font-weight:700;line-height:16px;padding:0 5px;border:0;border-radius:5px;background:var(--raise-2);color:var(--text-2);cursor:pointer;transition:none}
.mcard .act .bag:hover{background:var(--raise-3)}
.mcard .act .bag{position:relative}.mcard .act .bag::after{content:'';position:absolute;inset:-3px -4px}
/* Trade detail (Owner, 1 Oct 2026): tap a trade pill; a popover by the pill on wide screens, a bottom sheet on phones. */
.tdetail{position:fixed;z-index:33;width:272px;padding:12px 12px 10px;border-radius:10px;background:var(--surface);box-shadow:var(--ushadow);font-size:12px;color:var(--text-2);text-align:left}
.tdetail[hidden],.tdetail-scrim[hidden]{display:none}
.tdetail .td-hd{display:flex;align-items:center;gap:7px;min-width:0}
.tdetail .td-hd .av{width:18px;height:18px;flex:none}
.tdetail .td-hd b{font-size:13px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.tdetail .td-hd>span{color:var(--text-3);font-weight:600;flex:0 4 auto;min-width:0;max-width:45%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tdetail .td-x{margin-left:auto;width:28px;height:28px;border-radius:7px;display:inline-grid;place-items:center;color:var(--text-3);flex:none;--bbh:var(--raise-2)}
.tdetail .td-res{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:8px 0;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tdetail .td-res span{color:var(--text-3)}.tdetail .td-res b{font-size:17px;font-weight:700;white-space:nowrap}
.tdetail dl{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:0}
.tdetail dt{color:var(--text-3)}.tdetail dd{margin:0;text-align:right;color:var(--text-1);font-weight:600;font-variant-numeric:tabular-nums}
.tdetail dd.up{color:var(--up)}.tdetail dd.down{color:var(--down)}.tdetail dd.tot{font-weight:700}
.tdetail .td-note{margin:9px 0 0;font-size:11px;line-height:15px;color:var(--text-3)}
.tdetail-scrim{display:none}
@media(max-width:700px){.tdetail{left:12px!important;right:12px;top:auto!important;bottom:calc(76px + env(safe-area-inset-bottom));width:auto;max-height:calc(100dvh - 88px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;padding:14px 14px 12px;border-radius:14px;font-size:13px}.tdetail .td-res b{font-size:19px}.tdetail .td-x{width:36px;height:36px}.tdetail-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:31;background:var(--overlay);cursor:pointer;touch-action:none}}
.mcard .act .bag.up{color:var(--up)}.mcard .act .bag.down{color:var(--down)}.mcard .act .bag.flat{color:var(--text-3)}
/* MOVED (2 Oct 2026): tokens sent to another wallet, neutral. */
.mcard .act .bag.moved{color:var(--text-2);letter-spacing:.02em}
/* Updating (audit step 7, 2 Oct 2026): the result from before the tracker's latest trade, outlined and grey until the new check. */
.mcard .act .bag.pending,.mcard .act .bag.pending.up,.mcard .act .bag.pending.down,.mcard .act .bag.pending.moved{background:none;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text-3)}
/* Price change row (Owner, 1 Oct 2026): 5 m, 1 h and 6 h from GMGN, one line. */
.mcard .chg{display:flex;gap:4px 14px;font-size:12px;color:var(--text-3);height:18px;line-height:18px;overflow:hidden;flex-wrap:wrap;margin-top:-4px}
.mcard .chg>span{flex:none;white-space:nowrap}.mcard .chg>span>span{font-weight:700}
/* "+N more" sits on the divider above the actions, so a fourth wallet never makes the card taller. */
.mcard .acts{position:relative}
.mcard .acts-more{position:absolute;top:-8px;right:0;padding:0 6px;border-radius:6px;background:var(--raise);color:var(--text-3);font-size:11px;line-height:15px}
@media(hover:hover){.mcard:where(:not(.exited)):hover .acts-more{background:var(--hover)}}
/* Every card is as tall as a three-wallet card, phones included (Owner, 1 Oct 2026). */
.mcard .acts{min-height:calc(3*18px + 2*6px + 9px)}
/* VIP (Owner, 1 Oct 2026): three or more followed wallets on a token. The border glows in the chain colour and the light
   turns slowly; the delay set in terminal.js keeps the turn continuous across repaints. No motion for reduced motion. */
@property --vip-a{syntax:'<angle>';initial-value:0deg;inherits:false}
.mcard.vip{--vip-bg:var(--raise);--vip-c:var(--edge);--vip-hi:color-mix(in srgb,var(--edge) 45%,#fff);border:2px solid transparent;padding:11px 11px 9px 14px;background:linear-gradient(var(--vip-bg),var(--vip-bg)) padding-box,conic-gradient(from var(--vip-a),color-mix(in srgb,var(--vip-c) 30%,transparent) 0deg,var(--vip-c) 60deg,var(--vip-hi) 90deg,var(--vip-c) 120deg,color-mix(in srgb,var(--vip-c) 30%,transparent) 200deg 360deg) border-box;box-shadow:0 0 24px -6px color-mix(in srgb,var(--vip-c) 75%,transparent);animation:vip-turn 4s linear infinite;animation-delay:var(--vip-delay,0s)}
@media(hover:hover){.mcard.vip:where(:not(.exited)):hover{--vip-bg:var(--hover)}.mcard.vip:where(:not(.exited)):hover .acts-more{background:var(--hover)}}
.mcard.vip .acts-more{background:var(--vip-bg)}
.mcard.vip[aria-current=true]{outline:2px solid var(--accent);outline-offset:1px}
/* Light theme: the chain colour made for white backgrounds, a darker highlight, and the left stripe rule switched off so
   all four sides turn. Phones keep the phone insets (the VIP border is 2 px on every side). */
:root:not([data-theme=dark]) .mcard.vip{--vip-c:var(--edge-l);--vip-hi:color-mix(in srgb,var(--edge-l) 65%,#000);border-left-color:transparent}
@media(max-width:700px){.mcard.vip{padding:10px 9px 8px 12px}}
@keyframes vip-turn{to{--vip-a:360deg}}
@media(prefers-reduced-motion:reduce){.mcard.vip{animation:none}}
/* List rows (desktop table and phone rows) get the same VIP treatment (Owner, 1 Oct 2026): a tint, an inner glow and the
   same turning ring, drawn inside the row (::after with a ring mask) so the fixed 72 px rows never move. */
:is(.tkrow,.mrow).vip{--vip-c:var(--edge);--vip-hi:color-mix(in srgb,var(--edge) 45%,#fff);background:color-mix(in srgb,var(--vip-c) 7%,transparent);box-shadow:inset 0 0 22px -10px var(--vip-c)}
:root:not([data-theme=dark]) :is(.tkrow,.mrow).vip{--vip-c:var(--edge-l);--vip-hi:color-mix(in srgb,var(--edge-l) 65%,#000)}
:is(.tkrow,.mrow).vip[aria-current=true]{background:var(--accent-soft)}
@media(hover:hover){:is(.tkrow,.mrow).vip:where(:not(.exited)):hover{background:color-mix(in srgb,var(--vip-c) 12%,var(--hover))}}
:is(.tkrow,.mrow).vip::after{content:'';position:absolute;inset:3px 2px;border-radius:10px;padding:2px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--vip-c),var(--vip-hi),var(--vip-c),transparent) var(--vip-x) 0/30% 50% no-repeat,linear-gradient(90deg,transparent,var(--vip-c),var(--vip-hi),var(--vip-c),transparent) calc(100% - var(--vip-x)) 100%/30% 50% no-repeat,color-mix(in srgb,var(--vip-c) 30%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:vip-sweep 4s linear infinite;animation-delay:var(--vip-delay,0s)}
/* A wide row cannot use the card's centred turn (the light would jump between the row halves): the light runs along the
   top edge to the right and along the bottom edge to the left at an even speed, so it travels round the row. */
@property --vip-x{syntax:'<percentage>';initial-value:0%;inherits:false}
@keyframes vip-sweep{from{--vip-x:-45%}to{--vip-x:145%}}
@media(prefers-reduced-motion:reduce){:is(.tkrow,.mrow).vip::after{animation:none}}
/* Stats sit at the card's foot (cards in a row share one height) and stay one line, like .l2 above. */
.mcard .cs{display:flex;gap:4px 12px;font-size:12px;color:var(--text-3);flex-wrap:wrap;height:18px;overflow:hidden;margin-top:auto}
.mcard .cs>span{flex:none;height:18px;line-height:18px;white-space:nowrap}
.mcard .cs b{color:var(--text-2);font-weight:500}
.mcard .av{width:18px;height:18px;font-size:9px}

/* Modal content: sections, tracked wallets, holder mix chips, top holders, dev & security. */
.sec{display:flex;flex-direction:column;gap:8px;min-width:0}
.sec h4{margin:0;font-size:12px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sec h4 span{margin-left:auto;font-weight:500;text-transform:none;letter-spacing:0}
.tw{display:flex;align-items:center;gap:8px;font-size:12px;padding:7px 0;border-bottom:1px solid var(--line);min-width:0}
.tw:last-child{border-bottom:0}
.tw .av{width:22px;height:22px;font-size:10px}
.tw .nm{flex:1;min-width:0}
.tw .nm b{display:block;color:var(--text-1);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tw .nm span{display:block;color:var(--text-3);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Phones: the entry, market cap and last trade wrap onto a second line instead of being cut (2 Oct 2026). */
@media(max-width:700px){.tw .nm span{white-space:normal;line-height:15px}}
.tw .v i{font-style:normal}
.tw .v{text-align:right;flex:none}
.tw .v b{display:block;font-size:13px}
.tw .v span{font-size:11px;color:var(--text-3)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips .tag{height:22px;font-size:11px}
.legend{margin:4px 0 0;font-size:11px;color:var(--text-3);line-height:1.6}
.kv2{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;font-size:12px}
.kv2>div{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);min-width:0}
.kv2 span{color:var(--text-3);white-space:nowrap}
.kv2 b{color:var(--text-1);white-space:nowrap}
.kv2 b.hot{color:var(--hot)}
.kv .wn{color:var(--text-1)}

/* Lists (Track, Automation, Overview leaderboard): grid rows on laptops and up, two-line flex rows on phones. */
.lst{display:flex;flex-direction:column;max-width:1720px}
.lhead,.lrow{display:grid;align-items:center;column-gap:12px;padding:0 10px;border-bottom:1px solid var(--line);--ring-bg:var(--bg)}
.lhead{position:sticky;top:var(--hdr);z-index:4;height:34px;background:var(--bg);font-size:12px;color:var(--text-3);font-weight:500;white-space:nowrap}
.lhead span{text-align:right}.lhead span:first-child,.lhead span:nth-child(2),.lhead span:nth-child(3){text-align:left}.lhead .c{text-align:center}
.lrow{position:relative;min-height:60px}
@media(hover:hover){.lrow:hover{background:var(--hover);--ring-bg:var(--hover)}}
.lrow.sub{min-height:50px;background:color-mix(in srgb,var(--raise) 70%,transparent);padding-left:52px}
.lrow.sub .id .cd{position:relative;right:auto;bottom:auto;border:0;width:22px;height:22px;flex:none}
.lrow.found{opacity:.85}
.lrow.dim .id,.lrow.dim .cell{opacity:.6}
.lrow .id{display:flex;align-items:center;gap:12px;min-width:0}
.lrow .id .tklogo{width:36px;height:36px}.lrow .id .tklogo>img,.lrow .id .tklogo>.ph{font-size:14px}
.lrow .id .nm{min-width:0;flex:1}
.lrow .id .l1{display:flex;align-items:center;gap:6px;min-width:0}
.lrow .id .l1 b{color:var(--text-1);font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.lrow .id .l2{margin-top:3px;font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}
.lrow .cell{text-align:right;min-width:0}
.lrow .cell.rl,.lrow .cell.chains,.lrow .cell.pnls,.lrow .cell.wallet{text-align:left;display:flex;align-items:center;min-width:0}
.lrow .cell.wallet .wcl{display:inline-flex;align-items:center;gap:8px;min-width:0}
.lrow .cell.wallet .tklogo{width:24px;height:24px}
.lrow .cell.wallet b{color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .c{display:flex;justify-content:center;position:relative}
.lrow>b{text-align:right;white-space:nowrap}
.lhead.prof,.lrow.prof{grid-template-columns:minmax(220px,1.4fr) minmax(110px,.6fr) minmax(260px,1.6fr) minmax(90px,.5fr) 44px 36px}
.lhead.addr,.lrow.addr{grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) minmax(150px,1fr) minmax(80px,.5fr) minmax(90px,.5fr) 44px 36px}
.lhead.auto,.lrow.auto{grid-template-columns:minmax(220px,1.3fr) minmax(220px,1.6fr) minmax(160px,1fr) 100px 40px}
.lhead.lead,.lrow.lead{grid-template-columns:28px minmax(200px,1.4fr) repeat(var(--cols,1),minmax(90px,.6fr))}
.lhead.lead span:nth-child(2){text-align:left}
.lrow.lead{min-height:50px}
@container main (max-width:1119px){
  .lhead.prof,.lrow.prof{grid-template-columns:minmax(200px,1.3fr) minmax(90px,.5fr) minmax(220px,1.4fr) 80px 40px 36px}
  .lhead.addr,.lrow.addr{grid-template-columns:minmax(200px,1.3fr) minmax(130px,1fr) minmax(130px,1fr) 70px 80px 40px 36px}
  .lhead.auto,.lrow.auto{grid-template-columns:minmax(200px,1.2fr) minmax(180px,1.4fr) minmax(140px,1fr) 90px 40px}
}
@container main (max-width:899px){
  .lhead{display:none}
  .lrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 10px}
  .lrow>*{min-width:0}
  .lrow .id{flex:1 1 0;order:0}
  .lrow .cell{order:1;flex:none}
  .lrow .cell.rl,.lrow .cell.pnls{order:3;flex:1 1 100%}
  .lrow.prof .cell.chains{display:none}
  .lrow .c{order:2;flex:none}
  .lrow.sub{padding-left:18px}
  .lrow .cell.wallet{order:1}
  .lrow.lead>b{order:1}
}

/* Track specifics */
/* Track 2400 px and wider: the Profiles list left, the picked profile's addresses docked right (profiles.js). */
.tdock{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:24px;align-items:start}
.tdock .lst{max-width:none}
.tdock .lrow.prof.sel{outline:1px solid var(--accent);outline-offset:-1px}
.rowbtn.dockbtn .i{transform:rotate(-90deg)}
.rowbtn.dockbtn[aria-pressed=true]{color:var(--accent-ink)}
/* The pane may only stick inside .tdock, which ends above main's 60 px bottom padding and the pager (about 56 px); a
   taller pane would be pushed under the top bar at the page end. */
.tpane{position:sticky;top:calc(var(--hdr) + 10px);max-height:calc(100vh - var(--hdr) - 136px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--raise)}
.tpane .lrow{--ring-bg:var(--raise)}
@media(hover:hover){.tpane .lrow:hover{--ring-bg:var(--hover)}}
.tpane .lrow.sub{padding-left:22px;background:transparent}
.tpane .lrow:last-child{border-bottom:0}
/* A row menu opened near the pane's end gets room inside the pane instead of being cut off (app.js scrolls it in). */
.tpane:has(.wmenu)>.lst{padding-bottom:132px}
.qual{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--text-2)}
.qual .ok{display:flex;align-items:center;gap:8px;color:var(--up);font-weight:700}
.qual .ok.t2{color:var(--text-1)}
.qual ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.qual li{display:flex;align-items:center;gap:8px}
.qual li .cd{width:16px;height:16px}
.qual .hint{line-height:1.5}
.track-dialog .dialog-footer{display:flex;align-items:center;gap:10px;justify-content:flex-end}
.track-dialog .dialog-footer small{margin-right:auto;font-size:11px;color:var(--text-3)}
.track-dialog .error{color:var(--down);font-size:12px}

/* Finder chooser (replaces the tracked-wallet sidebar): current wallet chip, search, sort pills, research button; the
   wallet list drops down under the search while it has focus. */
.track-roots{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 0 0;border:0;background:none;max-height:none}
.track-roots .track-root-toggle{display:inline-flex!important;align-items:center;gap:8px!important;height:32px;padding:0 10px 0 6px!important;border-radius:8px!important;background:var(--accent-soft);color:var(--accent-ink);font-weight:700!important;font-size:12px;max-width:min(320px,100%);min-width:0;--bb:var(--accent-soft);--bbh:var(--accent-soft)}
.track-roots .track-root-toggle .chevron{color:var(--accent-ink);font-size:11px;transition:transform .2s}
.track-roots.is-open .track-root-toggle .chevron{transform:rotate(180deg)}
.track-root-toggle-label{display:flex;align-items:center;gap:6px;min-width:0}
.track-root-toggle-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-root-toggle .track-root-age{display:none}
.track-roots .track-root-search{display:flex;align-items:center;gap:8px;height:32px;width:min(300px,100%);padding:0 10px;border-radius:8px;background:var(--raise-2);color:var(--text-3);border:0;box-shadow:none;max-width:none}
.track-roots .track-root-search:focus-within{box-shadow:0 0 0 2px var(--accent)}
.track-roots .track-root-search input{border:0;outline:0;background:none;color:var(--text-1);font:inherit;font-size:13px;padding:0;width:100%;min-width:0;box-shadow:none}
.track-roots .track-root-search input:focus{box-shadow:none}
.track-roots .track-root-sort{display:flex}
.track-roots .track-root-sort button{flex:none}
.track-roots .count{margin-left:2px}
.track-roots-panel{display:none;position:absolute;z-index:12;top:calc(100% + 6px);left:0;width:min(420px,100%);max-height:min(460px,60vh);overflow:auto;padding:6px;border-radius:10px;background:var(--surface);box-shadow:var(--ushadow);border:0;margin:0;flex-direction:column;gap:4px}
.track-roots.is-open .track-roots-panel{display:flex}
.track-roots .track-root-list{max-height:none;overflow:visible;gap:2px}
.track-roots .track-root-item{border-radius:7px;padding:8px 10px}
.track-roots .track-root-item[aria-current=true]{background:var(--raise)}
.track-roots .track-root-item[aria-current=true]:before{display:none}
.track-roots .track-roots-note{padding:6px 10px 4px;font-size:11px;color:var(--text-3)}
.track-roots .track-roots-archive{padding:0 4px}
.track-roots-empty{margin:4px 8px 8px;font-size:12px;color:var(--text-3)}
.track-root-age{font-size:11px;color:var(--text-3)}
.track-root-age.is-quiet{color:var(--hot);background:transparent}
#finder .track-layout{display:block}
#finder .track-main{min-width:0;margin-top:12px}
#finder .track-focus{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
#finder .root-node{flex:1 1 320px;min-width:0}
#finder .root-orbit{display:none}
#finder .root-title h3{font-size:15px;color:var(--text-1)}
#finder .root-title .chain-pill{background:var(--raise-2);color:var(--text-2)}
#finder .root-source{font-size:12px;color:var(--text-3)}
#finder .root-address .track-address{font-size:12px;color:var(--text-3)}
#finder .track-focus-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
#finder .track-root-archive{height:26px;padding:0 9px;border-radius:6px;background:var(--raise-2);color:var(--text-2);font-size:11px;font-weight:700}
#finder .track-meta{flex:1 1 100%;display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;padding:0;border:0;font-size:12px;color:var(--text-3)}
#finder .track-status{margin:0}
#finder .track-auto-state{color:var(--text-2)}
#finder .connection-map{margin-top:14px}
#finder .flow-heading{padding:0 2px 8px}
#finder .flow-heading h3{color:var(--text-1);font-size:13px}
#finder .flow-heading>span:first-child{color:var(--accent-ink)}
#finder .flow-list{max-height:none;overflow:visible;padding-right:0}
#finder .connection-card{border-radius:10px;background:var(--raise);border-color:var(--line);padding:10px 12px}
#finder .connection-card>header strong{color:var(--text-1)}
#finder .connection-stats b{color:var(--text-1)}
#finder .connection-note{background:var(--raise-2)}
#finder .connection-note summary{color:var(--text-1)}
#finder .track-caveat{max-width:900px;margin-top:18px;line-height:1.7}
#finder .discovery-form,#finder .discovery-filters{margin:16px 0 10px}
#finder .discovery-form label,#finder .discovery-filters label{color:var(--text-3);font-size:12px}
#finder .discovery-form input{min-height:36px;border-radius:8px;background:var(--raise-2);border:0;color:var(--text-1)}
#finder .trader-row{border-radius:10px;background:var(--raise);border-color:var(--line);padding:12px 14px;margin-bottom:8px}
#finder .trader-heading{padding:10px 14px;color:var(--text-3)}
#finder .trader-identity strong{color:var(--text-1)}
#finder .trader-actions button{height:28px;padding:0 10px;border-radius:7px;background:var(--btn);color:var(--text-1);font-size:12px;font-weight:700}
#finder .trader-row .positive{color:var(--up)}#finder .trader-row .negative{color:var(--down)}
#finder .track-lane-switch{display:none;margin:12px 0 0}
#finder .track-lane-switch button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}
#finder .track-lane-switch span{color:var(--text-3)}

/* Overview: line chart in percent, line-end labels, focus card, per-chain leaderboard. */
.ov{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;padding-top:12px;max-width:1720px}
.perf{border:1px solid var(--line);border-radius:12px;background:var(--raise);padding:12px;min-width:0}
.perf .top{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.perf .top b{font-size:22px;color:var(--text-1)}
.perf .top b.up{color:var(--up)}.perf .top b.down{color:var(--down)}
.perf .top span{font-size:12px;color:var(--text-3)}
.perf .top .hint{margin-left:auto}
.pc{height:320px;position:relative}
.pc .lbl{position:absolute;right:62px;transform:translateY(-50%);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;padding:1px 6px;border-radius:5px;background:var(--bg);border:1px solid var(--line);pointer-events:none;transition:opacity .25s;z-index:2}
.pc .lbl.dim{opacity:.35}
.pc .lbl.on{border-color:var(--line-2)}
.focus{border:1px solid var(--line);border-radius:12px;background:var(--raise);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0;--ring-bg:var(--raise)}
.focus .empty{color:var(--text-3);font-size:12px;line-height:1.5}
.focus .who{display:flex;align-items:center;gap:10px;min-width:0}
.focus .who .tklogo{width:36px;height:36px}
.focus .who .nm{min-width:0;flex:1}
.focus .who b{display:block;font-size:14px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus .who span{font-size:11px;color:var(--text-3)}
.focus .big{font-size:26px;font-weight:700;color:var(--text-1)}
.focus .big.up{color:var(--up)}.focus .big.down{color:var(--down)}.focus .big.t3{color:var(--text-3)}
.focus .big small{display:block;font-size:12px;color:var(--text-3);font-weight:500}
.bychain{display:flex;flex-direction:column}
.bychain>div{display:flex;align-items:center;gap:8px;font-size:12px;padding:6px 0;border-bottom:1px solid var(--line);min-width:0}
.bychain>div:last-child{border-bottom:0}
.bychain .cd{position:relative;right:auto;bottom:auto;border:0;width:18px;height:18px;flex:none}
.bychain .nm{flex:1;min-width:0;color:var(--text-1)}
.bychain .nm small{display:block;color:var(--text-3);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bychain .v{font-weight:700;white-space:nowrap}
.lead{padding-top:6px}
.lead h4{margin:0;padding:16px 10px 4px;font-size:12px;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lead h4 .hint{text-transform:none;letter-spacing:0;font-weight:500}
.ov2{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:14px;align-items:start;max-width:1720px}
.ovl{min-width:0}
#overview .analyst-panel{margin-top:16px;background:var(--raise);border:0;border-radius:12px;position:sticky;top:calc(var(--hdr) + 12px)}
@media(max-width:1100px){.ov2{grid-template-columns:1fr}#overview .analyst-panel{position:static}}
#overview .analyst-panel h2{font-size:15px;color:var(--text-1)}
@media(max-width:1100px){.ov{grid-template-columns:1fr}.pc{height:260px}}

/* Phones */
@media(max-width:700px){
  .mon{grid-template-columns:1fr;gap:8px;padding:10px 12px}
  .mcard{padding:11px 10px 9px 11px}
  .lhead{display:none}
  .lrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px}
  .lrow>*{min-width:0}
  .lrow .id{flex:1 1 0;order:0}
  .lrow .cell{order:1;flex:none}
  .lrow .cell.rl,.lrow .cell.pnls{order:3;flex:1 1 100%}
  .lrow.prof .cell.chains{display:none}
  .lrow .c{order:2;flex:none}
  .lrow.sub{padding-left:20px}
  .lrow .cell.wallet{order:1}
  .lrow.lead>b{order:1}
  .ov{padding:10px 12px 0}
  .lead{padding:0 12px}
  .pc .lbl{right:48px}
  .track-roots{padding:10px 14px 0}
  .track-roots .track-root-search{width:100%;order:-1}
  .track-roots-panel{left:14px;right:14px;width:auto}
  #finder .track-layout,#finder .track-main{padding:0 14px}
  #finder .track-main{margin-top:8px}
  #finder .track-lane-switch{display:flex}
  #finder .connection-map{grid-template-columns:minmax(0,1fr);margin-top:12px}
  #finder .connection-map[data-lane=in] .flow-lane[data-direction=out],#finder .connection-map[data-lane=out] .flow-lane[data-direction=in]{display:none}
  #finder .flow-heading{display:none}
  #finder #track-discovery{padding:0 14px}
  #overview .analyst-panel{margin:12px 12px 0}
  .dp-trade .ubtn{height:36px}
}
@media(max-width:360px){.mon{padding:8px 10px}.lrow{padding:10px 10px}.track-roots{padding:10px 10px 0}}

/* Find from a trade (Track dialog): field captions for pill groups, the result rows, and the candidate picker. */
.track-form-fields.tsub{padding:0;overflow:visible}
.track-form-fields .tfield{display:flex;flex-direction:column;gap:9px;font-size:11px;color:var(--muted)}
.qual .tm,.qual .tcand{display:flex;align-items:flex-start;gap:8px}
.qual .tm>span,.qual .tcand>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.qual .tcand{width:100%;text-align:left;padding:6px 8px!important;border-radius:8px!important;--bb:transparent;--bbh:var(--raise-2);color:var(--text-2);font-weight:500!important;font-size:12px;outline:1px solid transparent}
.qual .tcand[aria-pressed=true]{outline-color:var(--accent)}
.qual .tm b,.qual .tcand b{color:var(--text-1)}
/* Above the phone layout the .ux button reset left Track dialog buttons without padding or radius (they read as
   highlighted text: Check address, Save filter). */
@media(min-width:601px){.track-dialog .dialog-footer button.primary,.track-dialog .dialog-footer .ubtn{min-height:36px;padding:0 16px;border-radius:10px;font-weight:700;display:inline-flex;align-items:center;gap:6px}}

/* No periodic animations (Owner, 1 Oct 2026): the sync dot, the analyst loading shimmer, the login mark, Finder's
   detection pulse and its row entrance stop looping. */
.live-label i,.ai-output.loading,.login-orbit>span,.track-auto-state.is-detecting:before,.trader-row{animation:none}
/* Weakened signal (Owner, 1 Oct 2026): every followed wallet sold out of the token; remain dim on pointer hover; clear on keyboard focus (also of the
   Chart button inside a row) and as soon as any followed wallet buys it again. No transition: the list is rebuilt on every
   15 s poll, and an animated opacity would blink under a resting pointer or focus. */
.mcard.exited,:is(.tkrow,.mrow).exited{opacity:.42}

.mcard.exited:focus-visible,:is(.tkrow,.mrow).exited:focus-visible,:is(.mcard,.tkrow,.mrow).exited:has(:focus-visible),.mcard.exited[aria-current=true],:is(.tkrow,.mrow).exited[aria-current=true]{opacity:1}

/* Track rows: the name keeps its room on every width; the handle and source tags shorten first. (The GMGN follow badge was removed
   on 2 Oct 2026 with the follow feed: Owner, "hapus aja kita udah ga pake".) */
.lrow .id .l1{overflow:hidden}.lrow .id .l1 b{flex:0 0 auto;max-width:70%}.lrow .id .l1 .tag{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;display:block;line-height:18px}
/* Phones: the name line never spills into the numbers, and the name keeps its room while the tags after it shorten. */
@media(max-width:700px){.lrow .id .l1{overflow:hidden}
  .lrow .id .l1 b{flex:0 0 auto;max-width:100%}.lrow .id .l1 .tag{display:none}} /* phones: the name alone (handle and source are on Profiles) */
/* Token modal: pool rows and Dev launches (3 Oct 2026, Owner: "total liq dan liq yang di burn jika dia dari dex, juga ... recent launch
   jadi gw bisa liat kualitas dev"; mockup approved with "go" after two corrections: launches by the largest ATH market cap, no fees).
   LP pill: burned in the profit green, locked plain, neither in amber. A launch row is a two-line grid: name and ATH on top, the
   details on a full-width second line that shortens first on phones (the name and "this token" keep their room). */
#dp-venues .kv .v .lp{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--raise-2);color:var(--text-2)}
#dp-venues .kv .v .lp.burn{color:var(--up)}#dp-venues .kv .v .lp.lock{color:var(--text-1)}#dp-venues .kv .v .lp.none{color:var(--hot)}
#dp-venues .kv .v .amt{color:var(--text-1)}
#dp-venues .kv .k.side{display:flex;align-items:center;min-width:0;overflow:hidden;white-space:nowrap}
.sec .kv2 b a.addr,.dev-l .dmeta a.addr{color:var(--text-1);text-decoration:none}.sec .kv2 b a.addr:hover,.dev-l .dmeta a.addr:hover{text-decoration:underline}
.dev-l .dmeta{margin:0;font-size:12px;color:var(--text-3)}.dev-l .dmeta b{color:var(--text-1);font-weight:600}.dev-l .dmeta b.t3{color:var(--text-3)}
.dev-l .dl{display:grid;grid-template-columns:28px minmax(0,1fr) auto;column-gap:8px;row-gap:2px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;min-width:0}
.dev-l .dl:last-of-type{border-bottom:0}.dev-l .dl:hover .nm b{text-decoration:underline}
.dev-l .dl .tklogo{grid-row:1/3}
.dev-l .dl .nm{display:flex;align-items:center;gap:6px;min-width:0}
.dev-l .dl .nm b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1);font-size:13px}
.dev-l .dl .nm .tag{flex:none;font-size:10px;line-height:15px;padding:0 6px}
.dev-l .dl .ath{font-size:13px;font-weight:600;color:var(--text-1);white-space:nowrap}.dev-l .dl .ath .t3{font-size:11px;font-weight:500}
.dev-l .dl .sub{grid-column:2/4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:11px}
.dev-l .dl .sub i{font-style:normal}.dev-l .dl .sub i.up{color:var(--up)}
.dev-l .dl-more{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;font-size:12px;color:var(--text-2);text-decoration:none}.dev-l .dl-more:hover{color:var(--text-1);text-decoration:underline}
/* Review 3 Oct 2026: a long value (the dev wallet at 320 px) is clipped in its cell, its title keeps it whole; the pool's age gives way
   to the DEX name on narrow phones. */
.kv2 b{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media(max-width:420px){#dp-venues .kv .v .opened{display:none}}

/* ===================== Tidy plan (3 Oct 2026, Owner: approved tidy plan + mockup decisions 1A/2A/3A). Sub-blocks in a fixed order;
   each build step adds rules only inside its own: (0) Shared, (1) Token modal stats, (2) Token modal holders, (3) Terminal,
   (4) Track, Finder and Manager. The token modal sits outside main, so no @container main rule may target it. ===================== */
/* (0) Shared (tidy plan 3 Oct 2026, Owner: approved tidy plan; mockup 2A wide modal, approved shot holders/13). Text colours of the
   shared tags: danger tags red, a caution tag and a young wallet's age amber (--hot-ink keeps 4.5:1 in light), first buy green and full
   exit red; the native-balance (ammo) icon cell; the holder column as a container (hside) for its own narrow-column rules. From a
   1760 px viewport the token modal grows to 1600 px and its side column to 480 px; below that the 1120 / 340 px modal stays. */
.tag.risk{color:var(--down)}.tag.warn{color:var(--hot-ink)}
.tag.first-buy{color:var(--up)}.tag.full-exit{color:var(--down)}
.wage.young{color:var(--hot-ink)}
.ammo{display:inline-flex;width:20px;justify-content:center;flex:none}
#dp-side{container:hside/inline-size}
@media(min-width:1760px){.dp{width:min(1600px,calc(100vw - 64px))}.dp-body{grid-template-columns:minmax(0,1fr) 480px}}
/* (1) Token modal, stats (mock-stats) (3 Oct 2026, Owner: tidy plan, build step 2). Dev launches have their own slot, #dp-dev, placed
   by grid areas only (no script moves a node): under the main column on wide screens since build step 7, last on one-column screens,
   where it keeps today's spacing: 14 px after the last side block (the side column's 16 px bottom padding less 2, on phones its 12 px
   plus 2), the side column's padding, and no room at all while empty. A main column that spans a flexible row loses its automatic
   minimum height; from 981 px it keeps its content height, so a short side column never lets the chart column spill (1920 px: 7 px). */
.dp-main{grid-area:main}.dp-side{grid-area:side}.dp-dev{grid-area:dev;align-self:start;min-width:0;padding:0 16px 16px;margin-top:-2px}
.dp-dev:empty{display:none}
.dp-body{grid-template-areas:'main act' 'main side' 'dev side';grid-template-rows:auto minmax(min-content,auto) 1fr}
@media(min-width:981px){.dp-main{min-height:min-content}}
@media(max-width:980px){.dp-body{grid-template-areas:'act' 'main' 'side' 'dev';grid-template-rows:none}.dp-act{padding-bottom:10px}}
@media(max-width:700px){.dp-dev{padding:0 12px 12px;margin-top:2px}}
/* (1) Trading activity strip (3 Oct 2026 plan Trading activity, Owner: tidy plan rows #15-#17, build step 4; spec-stats.mjs, approved
   shots stats/1-act-390 and 11-modal-3440). The strip tops the right column from 981 px and the body on one-column screens (above
   the chart; the grid areas above), with a hairline under it. Tabs: the label over the % change, the chosen tab on --raise-2 and bold;
   under them Vol | Buys | Sells | Net for the chosen tab, Net the one bold figure; at 360 px and below the four cells go 2 x 2 (Buys |
   Sells over Vol | Net). The header shows the price only and the stats row three cells: the strip carries the 24h change and volume. */
.dp-act{grid-area:act;min-width:0;padding:12px 16px;border-bottom:1px solid var(--line)}
@media(max-width:700px){.dp-act{padding:10px 12px}}
.act-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}
.act-tabs button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px!important;min-height:42px;padding:4px 2px!important;border-radius:8px!important;--bb:transparent;--bbh:var(--raise);transition:background-color .15s}
@media(hover:hover){.act-tabs button:hover{background:var(--bbh)}}
.act-tabs .k{font-size:11px;line-height:14px;color:var(--text-3)}
.act-tabs .v{font-size:13px;line-height:17px;white-space:nowrap}
.act-tabs [aria-selected=true]{--bb:var(--raise-2);--bbh:var(--raise-2)}
.act-tabs [aria-selected=true] .k{color:var(--text-1);font-weight:700}
.act-tabs [aria-selected=true] .v{font-weight:700}
.act-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px;margin-top:8px;padding:0 4px}
.act-row>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.act-row>.buys,.act-row>.sells{align-items:center}.act-row>.net{align-items:flex-end}
.act-row .k{font-size:11px;line-height:14px;color:var(--text-3)}
.act-row .v{font-size:12px;line-height:17px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.act-row .sl{color:var(--text-3);margin:0 2px}
.act-row>.net .v{font-size:13px;font-weight:700}
@media(max-width:360px){.act-row{grid-template-columns:1fr 1fr;row-gap:6px}.act-row>.buys{order:1;align-items:flex-start}.act-row>.sells{order:2;align-items:flex-end}.act-row>.vol{order:3}.act-row>.net{order:4}}
@media(prefers-reduced-motion:reduce){.act-tabs button{transition:none}}
#token-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
/* (1) Dev & security grid (3 Oct 2026 plan Dev & security, Owner: tidy plan rows #18-#24, build step 5; spec-stats.mjs, approved shot
   stats/18-sol-security-390). GMGN's label-over-value grid: four columns as wide as their widest cell with the spare width between
   them (a 320 px phone keeps 8 px between "No honeypot" and "No blacklist"), the 2nd and 3rd centred, the 4th right; values 13 px
   regular, red risk values bold; checks are icons (green check, red cross a little heavier) with the word in a hidden span. At 360 px
   and below three columns (the plan's choice; four at 320 px is an Owner question). Chips: red risk tags bold, neutral info tags regular
   in --text-2. The old .kv2 rules stay (pinned). A label clips 1 px outside its text (padding pulled back by a negative margin): at
   1300 px the clip box snapped to whole pixels cut the last glyph of the right-hand labels ("Bundler", "Freeze off"). */
.secg{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:12px 8px}
.secg>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.secg>div:nth-child(4n+2),.secg>div:nth-child(4n+3){align-items:center;text-align:center}
.secg>div:nth-child(4n){align-items:flex-end;text-align:right}
.secg .k{font-size:11px;line-height:14px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;box-sizing:content-box;padding:0 1px;margin:0 -1px}
.secg .v{display:flex;align-items:center;gap:4px;font-size:13px;line-height:18px;color:var(--text-1);white-space:nowrap;max-width:100%}
.secg .v b{font-weight:700}
.secg .hot{color:var(--hot-ink)}.secg .ok{color:var(--up);display:inline-flex}.secg .no{color:var(--down);display:inline-flex}
.secg .no .i{stroke-width:2.25}
.secg .tag{height:16px;font-size:10px;padding:0 5px}
@media(max-width:360px){.secg{grid-template-columns:repeat(3,auto)}.secg>div:nth-child(n){align-items:flex-start;text-align:left}.secg>div:nth-child(3n+2){align-items:center;text-align:center}.secg>div:nth-child(3n){align-items:flex-end;text-align:right}}
.secchips{gap:6px}
.secchips .tag:not(.risk){font-weight:500;color:var(--text-2)}
/* (1) Pool history and Discord (3 Oct 2026 plan Pool and socials, Owner: tidy plan rows #25-#26, build step 6; spec-stats.mjs, approved
   shot stats/18-sol-security-390). A pool value over a smaller grey second line (Liquidity "initial $20.5K · +895%", Pool "a deeper
   pool exists"), right-aligned. Phones: the socials sit at the end of the name line (#dp-soc, after the symbol) and the subline copy is
   hidden; wide screens keep the subline copy and hide #dp-soc, so one copy is in the tab order. When the symbol and the icons do not
   fit on one line the icons wrap below it whole; the symbol is never shortened for them. The 20 px icons get a 34 px tap area. */
#dp-venues .kv .v.v2{flex-direction:column;align-items:flex-end;justify-content:center;gap:1px;padding:5px 0}
#dp-venues .kv .v2 .l1{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}
#dp-venues .kv .v2 .l1>span:not(.t3){flex:none}
#dp-venues .kv .v2 .l2{font-size:11px;line-height:14px;color:var(--text-3);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:700px){.dp-head>.n{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px}.dp-head>.n>h2{flex:0 1 auto;min-width:0}.dp-head>.n>.sub{flex:1 1 100%}.dp-head>.n>.soc-n{display:flex;flex:none}
  #dp-sub .soc{display:none}.dp-head .soc{gap:14px}.dp-head .soc a{position:relative}.dp-head .soc a::before{content:'';position:absolute;inset:-7px}}
@media(min-width:701px){#dp-soc{display:none}}
#dp-soc:empty{display:none}
/* (1) Dev launches (3 Oct 2026 plan Dev launches, Owner: tidy plan rows #27-#32, build step 7; spec-stats.mjs, approved shots
   stats/18-sol-security-390 and 11-modal-3440). From 981 px the slot sits directly under Buy / Sell in the left column (grid area dev,
   under main; the side column spans the rows beside both), with a hairline above it and the main column's divider continued on its
   right; with the slot empty the main column takes its row again. The middle row (the areas line in the step 2 block) is at least the
   main column's content less the strip (minmax(min-content,auto)): as a plain auto row the browser shrank it to fit the height-capped
   modal body, and the launches overlapped Buy / Sell (1920 x 1080: 137 px). One-column screens keep the slot last ('act' 'main' 'side'
   'dev'). From 1152 px (the full 1120 px modal) the rows run in two columns of about a phone row's width. Heading counts bold, the rest
   small grey; the meta line at most two lines, each item with its own 14 px separator (the inner row sits 14 px left so the separator
   that starts a line is clipped); tags after the symbol and the grey sub-line drop whole items instead of wrapping; at 360 px and below
   the tags after the first fold into "+N" (4 px gaps, so it fits beside "bundled 41%" at 320 px). Neutral tags regular weight in
   --text-2; only red risk tags stay bold. */
@media(min-width:981px){.dp-dev{align-self:stretch;margin-top:0;padding:12px 16px 16px;border-top:1px solid var(--line);border-right:1px solid var(--line)}.dp-body:has(>.dp-dev:empty){grid-template-areas:'main act' 'main side' 'main side'}}
@media(min-width:1152px){#dp-dev .dls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}#dp-dev .dls>.dl:nth-last-child(2):nth-child(odd){border-bottom:0}}
.dev-l h4 .dlc{font-size:11px;color:var(--text-3)}.dev-l h4 .dlc b{font-size:13px;font-weight:700;color:var(--text-1)}
.dev-l .dmeta{max-height:36px;line-height:18px;overflow:hidden}
.dev-l .dmeta .in{display:flex;flex-wrap:wrap;align-items:center;margin-left:-14px;white-space:nowrap}
.dev-l .dmeta .in>span{display:inline-flex;align-items:center}
.dev-l .dmeta .in>span::before{content:'·';display:inline-block;width:14px;text-align:center;color:var(--text-3)}
.dev-l .dmeta .hot{color:var(--hot-ink)}.dev-l .dmeta .tag{height:16px;font-size:10px;padding:0 5px}
.dev-l .dl .nm b{flex:none;max-width:60%}
.dev-l .dl .nm .tg{display:flex;flex-wrap:wrap;gap:4px;height:18px;min-width:0;overflow:hidden;align-items:center}
.dev-l .dl .nm .tag:not(.risk){font-weight:500;color:var(--text-2)}
.dev-l .dl .nm .tag.fold{display:none}
@media(max-width:360px){.dev-l .dl .nm .tag.x2{display:none}.dev-l .dl .nm .tag.fold{display:inline-flex}.dev-l .dl .nm{gap:4px}.dev-l .dl .nm .tg .tag{padding:0 4px}}
.dev-l .dl .sub{display:flex;flex-wrap:wrap;height:15px;line-height:15px}
.dev-l .dl .sub>span+span::before{content:'·';margin:0 4px;color:var(--text-3)}
.dev-l .dl .sub .quiet{color:var(--text-3)}
/* (2) Token modal, holders: mock-holders rev 2 (3 Oct 2026, Owner: approved holder design + tidy plan rows #1-#14, build step 9; approved
   shots holders/1, 3 and 13). Two-line row: % owned 13 px 500 over its value now (11 px grey); the type icon and the native-balance tier;
   line 1 the subject 13 px 500 with grey labels on one 18 px line that wraps into a hidden second line, so a label shows whole or drops,
   never cut; PnL the one bold figure (13 px 700, green / red, its % and "est." 11 px 500) with a chevron; line 2 trade facts, line 3
   wallet facts, both 11 px 500 (buy text green, sell text red, same funder and moved out amber via --hot-ink, which keeps 4.5:1 in light);
   the tap line (.open) realized / open / last active. Phones (700 px and below): the subject is plain text, so a tap anywhere opens the
   row, and a 34 px lavender GMGN link ends the tap line. "0 sells" only when the holder column is 420 px or wider (the 480 px wide-modal
   column). The row compaction at 360 px and below waits for the Owner (unapproved shots holders/5 and 6). */
.hlist{display:flex;flex-direction:column}
.hrow.h2{display:grid;grid-template-columns:50px 20px 20px minmax(0,1fr) auto;column-gap:6px;row-gap:2px;align-items:center;min-width:0;padding:8px 0;font-size:12px;border-bottom:1px solid var(--line);cursor:pointer}
.hlist>.hrow.h2:last-child{border-bottom:0}
.hrow.h2.pool{cursor:default}
.hrow.h2>.pct{grid-area:1/1;font-size:13px;font-weight:500;color:var(--text-1);white-space:nowrap}
.hrow.h2>.val{grid-area:2/1;align-self:start;font-size:11px;line-height:15px;color:var(--text-3);white-space:nowrap}
.hrow.h2>.em{grid-area:1/2;text-align:center}
.hrow.h2>.bal{grid-area:1/3;text-align:center;font-size:13px}
.hrow.h2>.who{grid-area:1/4;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;height:18px;line-height:18px;overflow:hidden;font-size:11px;color:var(--text-3)}
.hrow.h2>.who>*{flex:none;white-space:nowrap}
.hrow.h2>.who>.sj{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:500;color:var(--text-1);text-decoration:none}
.hrow.h2>.who>a.sj:hover{text-decoration:underline}
.hrow.h2>.who>.sj-t{display:none}
.hrow.h2>.who>.lb+.lb::before{content:'·';margin-right:6px}
.hrow.h2>.pl{display:flex;align-items:center;gap:4px;grid-area:1/5;justify-self:end;white-space:nowrap;font-size:13px;font-weight:700;line-height:18px}
.hrow.h2>.pl .hpc,.hrow.h2>.pl .est{font-size:11px;font-weight:500}
.hrow.h2>.pl .est{color:var(--text-3)}
.hrow.h2>.pl .chev{width:10px;height:10px;stroke-width:2.25;color:var(--text-3)}
.hrow.h2.open>.pl .chev{transform:rotate(180deg)}
.hrow.h2>.ln{grid-column:2/6;min-width:0;font-size:11px;line-height:15px;color:var(--text-3);font-weight:500}
.hrow.h2>.ln .g{white-space:nowrap}
.hrow.h2>.ln .warn{color:var(--hot-ink)}
.hrow.h2>.ln .sf{font-weight:700}
.hrow.h2>.hx{display:none;align-items:center;column-gap:8px;margin-top:2px}
.hrow.h2.open>.hx{display:flex}
.hrow.h2>.hx>.hxt{flex:1 1 auto;min-width:0}
.hrow.h2>.hx b{font-weight:500;color:var(--text-2)}
.hrow.h2>.hx>.gl{display:none;flex:none;align-items:center;gap:4px;height:34px;padding:0 2px 0 8px;font-size:12px;font-weight:700;color:var(--accent-ink);text-decoration:none}
.hrow.h2>.hx>.gl .i{width:12px;height:12px}
@container hside (max-width:419px){.hrow.h2>.ln .zs{display:none}}
.sec .hchips{margin:-2px 0 0}
.dp .hmore{align-self:flex-start;height:34px;font-size:12px;font-weight:700;color:var(--accent-ink)}
.dp .hmore:hover{text-decoration:underline}
@media(max-width:700px){.hrow.h2:not(.pool)>.who>.sj-a{display:none}.hrow.h2:not(.pool)>.who>.sj-t{display:block}.hrow.h2>.hx>.gl{display:inline-flex}}
/* (2) KOL / smart money badge in the modal subline (3 Oct 2026, Owner: tidy plan row #58 with decision 3A, build step 10; approved shots
   holders/1 and 13). Only "KOL bought" carries the buy colour (sold: red) and the weight; amount, market cap and age stay quiet, and at
   700 px and below the amount and market cap drop ("KOL bought 3m ago"). The subline stays on one line where it does not wrap: every item
   keeps its width and only the token name shortens, so the badge is never cut mid-text. */
.dp-head .sub .kolb{font-weight:500;color:var(--text-3)}
.dp-head .sub .kolb>b{font-weight:700}
.dp-head .sub .kolb>b.up{color:var(--up)}.dp-head .sub .kolb>b.down{color:var(--down)}
.dp-head .sub>*:not(.nm){flex:none}
@media(max-width:700px){.dp-head .sub .kolb .long{display:none}}

/* 4 Oct 2026 — approved Terminal cards/popover and Track profile mockups; additions 11–12. */
.mcard .ttl .l2>.tag.risk{height:18px}
.mcard .act .who>span.vrb.buy{color:var(--up)}.mcard .act .who>span.vrb.sell{color:var(--down)}
.mcard .act .who b{font-weight:500}.mcard .act .amt{font-weight:500}
.tdetail dd{font-weight:500}.tdetail dd.buy{color:var(--up)}.tdetail dd.sell{color:var(--down)}.tdetail dd.zero{color:var(--text-3)}
.tdetail dd .mcat{color:var(--text-3);font-weight:500;margin-right:6px}

/* Followed-wallet trade evidence: compact, neutral when unknown. */
.tdetail .td-last{flex-wrap:wrap;gap:6px}
.tdetail .td-last .pf,.tw .nm .pf,.tw .nm i{font-weight:500;font-style:normal}
.tdetail .td-last .pf.up,.tw .nm .pf.up{color:var(--up)}
.tdetail .td-last .pf.down,.tw .nm .pf.down{color:var(--down)}
.tdetail .mcat{display:block;font-size:11px;font-weight:500;color:var(--text-3)}
.mcard .act .who>span.vrb.ev-launch,.tw .nm .ev-launch{color:var(--text-1)}
.mcard .act .who>span.vrb.ev-claim,.mcard .act .amt.ev-claim,.tw .nm .ev-claim,.td-last .ev-claim{color:var(--hot-ink)}
.mcard .act .who>span.vrb.ev-burn,.tw .nm .ev-burn{color:var(--text-3)}
.mcard .act .who>span.vrb.ev-remove,.mcard .act .amt.ev-remove,.tw .nm .ev-remove,.td-last .ev-remove{color:var(--down)}
.tw .nm span.tag.first-buy,.tw .nm span.tag.full-exit{display:inline-flex}
.tdetail .td-last .tag,.tw .nm span.tag.first-buy,.tw .nm span.tag.full-exit{height:16px;padding:0 5px;font-size:11px;align-self:center}
.tdetail .td-last{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 5px;margin-top:9px;min-width:0;font-size:12px}
.tdetail .td-last b{font-weight:700}.tdetail .td-last .buy{color:var(--up)}.tdetail .td-last .sell{color:var(--down)}.tdetail .td-last .when{margin-left:auto;color:var(--text-3)}
.lrow .rls,.lrow .rlc{display:contents}
.lrow .cell small .wr{color:var(--text-2)}.lrow .cell small.few .wr{color:var(--text-3)}
.pnlrow>span.wr{font-size:11px;color:var(--text-2);font-weight:500}.pnlrow>span.wr.few{color:var(--text-3)}
@media(max-width:700px){.lrow.addr.sub .rls{display:flex;align-items:center;gap:10px;order:3;flex:1 1 100%;min-width:0}.lrow.addr.sub .rlc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;flex:1 1 0;min-width:0}.lrow.addr.sub .rlc .cell.rl{flex:none;order:0}.lrow.addr.sub .rls>.cell{flex:none;order:0}.lrow .cell small .long{display:none}}
@container main (max-width:899px){.lrow.addr.sub .rls{display:flex;align-items:center;gap:10px;order:3;flex:1 1 100%;min-width:0}.lrow.addr.sub .rlc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;flex:1 1 0;min-width:0}.lrow.addr.sub .rlc .cell.rl{flex:none;order:0}.lrow.addr.sub .rls>.cell{flex:none;order:0}}
.psum{display:flex;flex-direction:column;gap:6px;padding:12px 10px 13px 58px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--raise) 70%,transparent);font-size:11px;line-height:16px;color:var(--text-3);min-width:0}
.tpane .psum{padding:12px 14px 14px 22px;background:transparent}
.psum .ps1{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:8px;row-gap:4px}
.psum .lab{font-size:11px;color:var(--text-3)}
.psum .big{font-size:20px;font-weight:700;line-height:24px;letter-spacing:-.01em}
.psum .win{font-size:13px;font-weight:500;color:var(--text-2);margin-left:6px}
.psum .ln{display:flex;flex-wrap:wrap;align-items:center;row-gap:2px;min-width:0}
.psum .ln>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}

/* 4 Oct 2026 — approved discovery facts and Manager balance values (steps 13/15). */
.lrow.addr.facts{grid-template-columns:minmax(160px,1.4fr) minmax(0,2fr) minmax(90px,1fr) auto}
.ffacts{display:flex;flex-wrap:wrap;gap:3px 10px;color:var(--text-3);font-size:11px;min-width:0}.ffacts>span{white-space:nowrap}
.cell.pair>small{color:var(--text-3);font-size:11px}.cell.pair b{font-size:13px}.cell.pair b small{font-size:11px;color:var(--text-3);margin-right:6px;font-weight:500}
.lrow .cell.pair>small .up,.qrow .cell.pair>small .up{color:var(--up)}.lrow .cell.pair>small .down,.qrow .cell.pair>small .down{color:var(--down)}
.qrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start}.qrow .qaid{min-width:0}.qrow .qaid>small{display:block;color:var(--text-3)}.qrow .cell.pair{text-align:right}
.trace-coins ul{list-style:none;padding:0}.trace-coins li{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;border-bottom:1px solid var(--line);padding:8px 0}.trace-coins li b{font-size:13px;font-weight:500}.trace-coins li small{color:var(--text-3)}.trace-coins li>span{margin-left:auto;font-size:11px;color:var(--text-3)}
#manager .mtot{font-size:13px;font-weight:500;color:var(--text-1)}#manager .mtot small{font-size:11px;color:var(--text-3)}#manager .usd{font-size:12px;font-weight:500;color:var(--text-3);margin-left:6px;letter-spacing:0}#manager .balance .usd{font-size:13px}
@media(max-width:700px){.lrow.addr.facts{display:flex;flex-wrap:wrap}.lrow.addr.facts .id{flex:1 1 55%}.lrow.addr.facts .ffacts{flex:1 1 100%;order:3}.lrow.addr.facts>.ubtn{order:2}}

/* 4 Oct 2026 — approved expanded Track summary, one column; no unverified average-hold unit. */
.psum .ln{column-gap:12px}.psum .ln i{font-style:normal}.psum .hot{color:var(--hot-ink)}
.psum .dbar{display:inline-flex;width:180px;height:4px;overflow:hidden}.psum .dbar i{display:block;height:4px}
.psum .g1{color:var(--up)}.psum .g2{color:var(--up)}.psum .r1,.psum .r2{color:var(--down)}
.psum .dbar .g1{background:var(--up)}.psum .dbar .g2{background:color-mix(in srgb,var(--up) 55%,var(--raise))}.psum .dbar .r1{background:color-mix(in srgb,var(--down) 55%,var(--raise))}.psum .dbar .r2{background:var(--down)}
@media(max-width:700px){.psum{padding-left:12px;padding-right:12px}.psum .dbar{width:140px}.psum .ps1{column-gap:6px}}

/* 4 Oct 2026 — approved Finder rows, separate realized/unrealized; no detail-sheet proposal. */
#finder .ttl{display:flex;flex-direction:column;margin-top:2px}
#finder .tth{display:none}
#finder .ttr{position:relative;display:flex;flex-direction:column;gap:5px;padding:10px 10px;border-bottom:1px solid var(--line);min-width:0}
@media(hover:hover){#finder .ttr:hover{background:var(--hover)}}
/* one owner for display: the desktop cells are hidden by a rule at least as specific as any rule that shows them */
#finder .ttr>.dk,#finder .ttr>.dk.acts{display:none}
#finder .ttr .m1{display:flex;align-items:center;gap:6px;min-width:0}
#finder .ttr .rk{font-size:11px;color:var(--text-3);min-width:14px;flex:none}
#finder .ttr .ammo{flex:none;width:18px;text-align:center;font-size:13px;line-height:18px}
#finder .ttr .who{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
#finder .ttr .who .nl{display:flex;align-items:center;gap:6px;min-width:0}
#finder .ttr a.nm{font-size:13px;font-weight:500;color:var(--text-1);text-decoration:none;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;line-height:17px}
#finder .ttr a.nm:hover{text-decoration:underline}
#finder .ttr a.trk{font-size:11px;color:var(--accent-ink);text-decoration:none;white-space:nowrap;flex:none}
#finder .ttr .who .hs{display:block;font-size:11px;line-height:15px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#finder .ttr .pv{text-align:right;white-space:nowrap;flex:none}
#finder .ttr .pv b{display:block;font-size:13px;font-weight:700;line-height:16px}
#finder .ttr .pv small{display:block;font-size:11px;line-height:14px}
#finder .ttr .ma{display:flex;align-items:center;gap:6px;flex:none}
#finder .ttr .fol{width:36px;height:34px;padding:0!important;justify-content:center;--bb:var(--accent-soft);--bbh:var(--accent);color:var(--accent-ink)}
#finder .ttr .fol .i{color:var(--accent-ink)}
#finder .ttr .fol .lbl{display:none}
#finder .ttr .more{width:34px;height:34px}
/* each detail line is one line; an item that does not fit is dropped whole (like the card stat rows), never cut */
#finder .ttr .ln{display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:0;height:18px;overflow:hidden;font-size:11px;line-height:18px;color:var(--text-3);min-width:0;padding-left:44px}
#finder .ttr .ln>span{white-space:nowrap;display:inline-flex;align-items:center;gap:4px;height:18px}
#finder .ttr .ln>span.bd{gap:4px}
#finder .ttr .v2{color:var(--text-2)}#finder .ttr .hot{color:var(--hot-ink)}
#finder .ttr .tag.sus{background:rgb(240 80 110/.14);color:var(--down)}
#finder .ttr .tag.fund{font-weight:700;color:var(--hot-ink)}
#finder .tpools{font-size:12px}
@media(max-width:700px){#finder .ttr{padding:10px 0}}
/* 360 px and below: the rank number gives its room to the name (the order still shows the rank), "ago" drops from the hold state */
@media(max-width:360px){#finder .ttr .ln{padding-left:0;column-gap:10px}#finder .ttr .m1{gap:5px}#finder .ttr .m1 .rk{display:none}#finder .ttr .who .hs .ago{display:none}}
/* From 1200 px of Finder width: real columns with the same tokens; the phone lines are not rendered there */
@container main (min-width:1200px){
  #finder .tth,#finder .ttr{display:grid;grid-template-columns:minmax(180px,2fr) repeat(8,minmax(68px,1fr)) 104px;column-gap:10px;align-items:center;padding:0 10px}
  #finder .tth{position:sticky;top:var(--hdr);z-index:4;height:34px;background:var(--bg);font-size:12px;color:var(--text-3);white-space:nowrap;border-bottom:1px solid var(--line)}
  #finder .tth>span{text-align:right;overflow:hidden;text-overflow:ellipsis}#finder .tth>span:first-child{text-align:left}
  #finder .ttr{min-height:58px;padding-top:8px;padding-bottom:8px;gap:0}
  #finder .ttr>.mb{display:none}
  #finder .ttr>.dk{display:block}
  #finder .ttr>.dk.xw,#finder .tth>.xw{display:none}
  #finder .ttr .tid{min-width:0}
  #finder .ttr .tid .l1{display:flex;align-items:center;gap:6px;min-width:0}
  /* the name keeps its room; a badge that does not fit is dropped whole */
  #finder .ttr .tid a.nm{flex:none}
  #finder .ttr .tid .bdg{display:flex;flex-wrap:wrap;gap:4px;height:18px;overflow:hidden;min-width:0;flex:1 1 0}
  #finder .ttr .tid .l2{display:flex;flex-wrap:wrap;height:15px;overflow:hidden;margin-top:3px;padding-left:44px;font-size:11px;line-height:15px;color:var(--text-3);white-space:nowrap;min-width:0}
  #finder .ttr .tid .l2>span+span:before{content:'·';margin:0 5px}
  #finder .ttr .val{text-align:right;min-width:0;white-space:nowrap}
  #finder .ttr .val b{display:block;font-size:12px;font-weight:500;color:var(--text-2);line-height:16px;overflow:hidden;text-overflow:ellipsis}
  #finder .ttr .val b i{font-style:normal;font-size:11px}
  #finder .ttr .val b.lb{font-size:11px}
  #finder .ttr .val small{display:block;font-size:11px;color:var(--text-3);line-height:14px;margin-top:2px;overflow:hidden;text-overflow:ellipsis}
  #finder .ttr .val.pnl b{font-size:13px;font-weight:700}
  #finder .ttr .val b.up,#finder .ttr .val small .up,#finder .ttr .val small.up{color:var(--up)}#finder .ttr .val b.down,#finder .ttr .val small .down,#finder .ttr .val small.down{color:var(--down)}
  #finder .ttr .val b.t3,#finder .ttr .val small .t3{color:var(--text-3)}#finder .ttr .val .hot{color:var(--hot-ink)}
  #finder .ttr>.dk.acts{display:flex;justify-content:flex-end;align-items:center;gap:6px}
  #finder .ttr .fol{width:auto;padding:0 10px!important;height:30px}
  #finder .ttr .fol .lbl{display:inline}
  #finder .ttr .more{width:30px;height:30px}
}
/* 3440-class widths: Last active and Wallet age get dedicated columns. */
@container main (min-width:2400px){
  /* the width is spread over every column (no gap opening after the Trader cell) */
  #finder .tth,#finder .ttr{grid-template-columns:minmax(360px,1.8fr) repeat(10,minmax(90px,1fr)) 130px}
  #finder .ttr>.dk.xw,#finder .tth>.xw{display:block}
  #finder .ttr .val .nx,#finder .ttr .tid .l2 .nx{display:none}
}


#finder .ttr .trk{font-size:11px;color:var(--accent-ink);padding:0;white-space:nowrap}#finder .ttr .more{padding:0;width:34px;justify-content:center}#finder .ttr .more>.i:last-child{display:none}#finder .ttr .umenu{text-align:left}#finder .ttr .tid a.nm{flex:0 1 auto}#finder .ttr .wage{white-space:nowrap}

/* Owner 4 Oct 2026: exited tokens retain snapshots and GMGN-only access. */
.mcard.exited,.tkrow.exited,.mrow.exited{cursor:default}
.cs.frozen{justify-content:space-between}
.gmgn-paused{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;text-decoration:none;color:inherit}
.cs.frozen .gmgn-paused{margin-left:auto}
.gmgn-paused svg{width:12px;height:12px}
@media(max-width:700px){.mrow .gmgn-paused{min-height:34px;font-size:9px}}

/* Manual wallet labels: background-only, owner selected; chain borders and VIP retain their meanings. */
:is(.mcard,.tkrow,.mrow):has(>.wallet-role-bg){position:relative;isolation:isolate;overflow:hidden}
.wallet-role-bg{position:absolute!important;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
:is(.mcard,.tkrow,.mrow):has(>.wallet-role-bg)>:not(.wallet-role-bg):not(.vh){position:relative;z-index:1}
.wallet-role-bg svg{position:absolute;right:-4px;top:32px;width:200px;height:172px;opacity:.15;color:var(--bg-role)}
.wallet-role-bg .bg-sniper{--bg-role:var(--wallet-label-color-0)}.wallet-role-bg .bg-genius{--bg-role:var(--wallet-label-color-1)}.wallet-role-bg .bg-scalper{--bg-role:var(--wallet-label-color-2)}.wallet-role-bg .bg-kol{--bg-role:var(--wallet-label-color-3)}
.wallet-role-bg svg:nth-child(2){right:83px;top:60px;width:145px;height:125px}.wallet-role-bg svg:nth-child(3){right:-25px;top:70px;width:135px;height:120px}.wallet-role-bg svg:nth-child(4){right:145px;top:10px;width:110px;height:100px}
.wallet-role-bg.mixed svg:first-child{right:161px;top:52px;width:130px;height:120px}.wallet-role-bg.mixed svg{opacity:.12}
:root:not([data-theme=dark]) .wallet-role-bg svg{opacity:.14}:root:not([data-theme=dark]) .wallet-role-bg .bg-sniper{--bg-role:var(--wallet-label-color-4)}:root:not([data-theme=dark]) .wallet-role-bg .bg-genius{--bg-role:var(--wallet-label-color-5)}:root:not([data-theme=dark]) .wallet-role-bg .bg-scalper{--bg-role:var(--wallet-label-color-6)}:root:not([data-theme=dark]) .wallet-role-bg .bg-kol{--bg-role:var(--wallet-label-color-7)}
.mrow .wallet-role-bg svg{top:-21px;right:65px;width:125px;height:109px;opacity:.10}.mrow .wallet-role-bg.mixed svg:first-child{right:175px}.mrow .wallet-role-bg svg:nth-child(2){right:117px}.mrow .wallet-role-bg svg:nth-child(3){right:58px}.mrow .wallet-role-bg svg:nth-child(4){right:15px}
.tkrow .wallet-role-bg svg{top:-23px;width:130px;height:115px}
.wallet-label-button{display:inline-flex;align-items:center;gap:6px;margin-top:4px;max-width:100%;padding:4px 7px;border:1px solid var(--line-2);border-radius:6px;background:var(--raise);color:var(--text-2);font:inherit;font-size:11px;text-align:left;white-space:normal}
.wallet-label-button span{margin-left:auto}.wallet-label-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wallet-label-picker{position:fixed;z-index:100;box-sizing:border-box;padding:12px;background:var(--raise);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 12px 28px var(--wallet-label-color-8);color:var(--text-1);font-size:12px;max-height:calc(100dvh - 24px);overflow:auto}
.wallet-label-heading{display:flex;align-items:center;justify-content:space-between}.wallet-label-heading button{width:26px;height:26px;border-radius:5px;color:var(--text-2)}
.wallet-label-scope{font-size:11px;color:var(--text-3);margin:2px 0 10px;overflow-wrap:anywhere}
.wallet-label-options{display:grid;grid-template-columns:1fr 1fr;gap:6px}.wallet-label-options button{display:flex;align-items:center;justify-content:space-between;padding:8px;border:1px solid var(--line-2);border-radius:6px;min-height:38px;color:var(--text-2)}
.wallet-label-options button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.wallet-label-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.wallet-label-footer small{color:var(--text-3);font-size:10px}.wallet-label-footer button{padding:7px 12px;border-radius:6px;background:var(--accent);color:var(--accent-contrast,var(--wallet-label-color-9));font-weight:700}
.wallet-label-error{color:var(--down);margin:8px 0 0}.wallet-label-picker button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:700px){.wallet-label-button{min-height:34px}.wallet-label-options button{min-height:40px}}


/* Owner 5 Oct: trim token modal statistics, keep holder identities and both emoji types readable. */
.act-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:6px 0}
.act-summary>div{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.act-summary .k{font-size:11px;color:var(--text-3)}.act-summary .v{font-size:12px;font-weight:700}
.hrow.h2.hclean{grid-template-columns:52px 18px 18px minmax(0,1fr);cursor:default}
.hrow.h2.hclean>.who{grid-column:4/-1;height:auto;min-height:18px;overflow:visible;row-gap:2px}
.hrow.h2.hclean>.who>.sj{overflow-wrap:anywhere;white-space:normal;overflow:visible;text-overflow:clip}
.hrow.h2.hclean>.ln{grid-column:2/-1}
@media(max-width:700px){.hrow.h2.hclean:not(.pool)>.who>.sj-a{display:block;min-height:34px;display:flex;align-items:center}.hrow.h2.hclean:not(.pool)>.who>.sj-t{display:none}}

/* Owner 5 Oct 2026: burn/lock status stays with Liquidity, including on phones. */
.liq-with-lp{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0;text-align:right}.liq-with-lp .lp{max-width:100%;white-space:normal}

/* Owner 5 Oct: right summary, two holder columns, emphasis on current bags. */
.dp-summary{grid-area:act;min-width:0;padding:12px 16px 0}.dp-summary .dp-act{padding:12px 0 10px;margin-top:4px}
.dp-summary #token-meta{margin:0;border-radius:0;border:0}.dp-summary #token-meta>div{padding:8px;min-width:0}.dp-summary #token-meta .liq-with-lp{align-items:flex-start;text-align:left;gap:3px}
.dp-summary #token-meta .v{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.dp-summary #token-meta .l1{display:flex;flex-wrap:wrap;gap:4px}.dp-summary #token-meta .l2{font-size:10px;color:var(--text-3)}.dp-summary #token-meta .lp{font-size:10px}
.header-launchpad{display:inline-flex;align-items:center;gap:4px;margin-left:5px;white-space:nowrap}
.holder-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.holder-columns.single{grid-template-columns:1fr}.holder-column{min-width:0}.holder-column h5{margin:0 0 4px;color:var(--text-3);font-size:10px;font-weight:500}
.holder-columns .hrow.h2.hclean{grid-template-columns:43px 14px 14px minmax(0,1fr);column-gap:3px;font-size:11px}.holder-columns .hrow.h2.hclean>.who{column-gap:3px}.dp .hmore{display:none}
.tw>.v>b:first-child{font-size:15px;font-weight:700;color:var(--text-1)}.tw>.v>b.up{color:var(--up)}.tw>.v>b.down{color:var(--down)}.tw>.v>b.t3{color:var(--text-3)}.tw>.v{max-width:48%;white-space:normal;text-align:right}.tw>.v i{font-style:normal;font-weight:700}
@media(max-width:700px){.dp-summary{padding:10px 12px 0}.holder-columns{grid-template-columns:1fr}.holder-columns:not(.second)>.holder-column:nth-child(2),.holder-columns.second>.holder-column:first-child{display:none}.holder-columns.single>.holder-column:first-child{display:block}.dp .hmore{display:block}.holder-columns .hrow.h2.hclean{grid-template-columns:52px 18px 18px minmax(0,1fr);column-gap:6px;font-size:12px}.tw>.v{max-width:47%}.tw>.v>b:first-child{font-size:15px}}

/* Owner 5 Oct: clear table boundaries and a restrained 13/12px wallet hierarchy. */
.dp-head .dp-price{gap:2px}.dp-price .mc-label{font-size:11px;line-height:14px;color:var(--text-3);font-weight:500}.dp-price b{font-size:18px;line-height:22px}
.dp-summary #token-meta{border:1px solid var(--line);border-bottom:0;border-radius:0;align-items:stretch;overflow:hidden}
.dp-summary #token-meta>div{padding:10px 8px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--line)}.dp-summary #token-meta>div:last-child{border-right:0}
.dp-summary #token-meta .k{font-size:11px;line-height:15px;margin:0}.dp-summary #token-meta b{font-size:13px;line-height:18px}.dp-summary #token-meta .l1{align-items:baseline;gap:3px}.dp-summary #token-meta .l1>.t3{font-size:11px;line-height:15px}.dp-summary #token-meta .l2,.dp-summary #token-meta .lp{font-size:11px;line-height:15px}
.dp-summary .dp-act{margin:0;padding:0;border:1px solid var(--line)}.dp-summary .act-summary{gap:0;padding:0}.dp-summary .act-summary>div{padding:8px 2px;min-height:49px;justify-content:center;border-right:1px solid var(--line)}.dp-summary .act-summary>div:last-child{border-right:0}.dp-summary .act-summary .k{font-size:11px;line-height:15px}.dp-summary .act-summary .v{font-size:12px;line-height:17px}
#dp-wallets .tw>.nm>b,#dp-wallets .tw>.v>b:first-child,#dp-wallets .tw>.v>b{font-size:13px;line-height:18px;font-weight:700}
#dp-wallets .tw>.nm>span,#dp-wallets .tw>.v>span{font-size:12px;line-height:17px}#dp-wallets .tw>.v>span i{font-size:12px;line-height:17px;font-weight:500}#dp-wallets .tw>.v{display:flex;flex-direction:column;gap:2px}

/* Owner 5 Oct: supplied GMGN wordmark links from the modal header; no bottom link/PnL row. */
.dp-head{position:relative}.dp-head .gmgn-token-link{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:110px;height:44px;border-radius:5px;overflow:hidden}.gmgn-token-link img{display:block;width:110px;height:auto;object-fit:contain}.gmgn-token-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(min-width:701px){.dp-head>.n{max-width:calc(50% - 135px)}}
@media(max-width:700px){.dp-head .gmgn-token-link{position:static;transform:none;order:1;width:88px;height:44px;flex:none}.gmgn-token-link img{width:88px}.dp-head #close-chart{order:2;margin-left:0}.dp-head .dp-price{order:1;margin-left:auto;flex:1;align-items:flex-end;text-align:right}.dp-head #dp-logo{order:0}}
.dev-l .dmeta .dev-funder{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:0 3px;white-space:normal}.dev-l .dmeta .dev-funder a{white-space:nowrap}

/* Owner 5 Oct 2026: compact GMGN-like glyphs, ticker socials and event-driven motion. */
.gm-icon{display:inline-block;width:13px;height:13px;vertical-align:-2px;flex:none;overflow:visible}
.gm-dev,.gm-lock{color:var(--text-2)}.gm-bundler,.gm-wealth,.gm-kol{color:var(--hot-ink)}.gm-sniper,.gm-smart,.gm-rat{color:var(--accent-ink)}.gm-fresh{color:var(--up)}.gm-shrimp,.gm-burn{color:var(--down)}.gm-fish,.gm-dolphin,.gm-whale,.gm-pool{color:var(--accent-ink)}
.dex-paid{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:700;line-height:15px}.dex-paid.yes{background:color-mix(in srgb,var(--up) 20%,var(--surface));color:var(--up);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--up) 35%,transparent)}.dex-paid.no{background:color-mix(in srgb,var(--down) 20%,var(--surface));color:var(--down);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--down) 35%,transparent)}
.dp-head>.n{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px}.dp-head>.n>h2{min-width:0;flex:0 1 auto}.dp-head>.n>.sub{flex:1 1 100%}.dp-head>.n>#dp-soc{display:flex;flex:none}.dp-head>.n>#dp-soc:empty{display:none}.dp-head .soc{display:flex;gap:2px}.dp-head .soc a{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:4px;color:var(--text-3)}.dp-head .soc a::before{display:none}.dp-head .soc .i{width:14px;height:14px}.dp-head .soc a:hover{background:var(--surface-2);color:var(--text-1)}.dp-head .soc a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:700px){.dp-head .soc a{width:36px;height:36px}.dp-head>.n{column-gap:6px}}
@media(prefers-reduced-motion:no-preference){
 .dp-head .soc a,.gmgn-token-link img,#intervals button,#chart-unit button,.hmore,.dl,.tw{transition:background-color 160ms ease,color 160ms ease,box-shadow 180ms ease,filter 180ms ease}
 .gmgn-token-link:hover img{filter:brightness(1.25) drop-shadow(0 0 5px color-mix(in srgb,var(--up) 45%,transparent))}.gmgn-token-link:active img{scale:.94;filter:brightness(1.4)}.gmgn-token-link img{transition:scale 130ms ease,filter 180ms ease}
 #intervals button:active,#chart-unit button:active,.hmore:active,.dp-head .soc a:active{scale:.94}
 #intervals button[aria-pressed=true],#chart-unit button[aria-pressed=true]{animation:terminal-select 220ms ease-out}
 .dp-open #chart-detail{animation:terminal-open 180ms ease-out}
 .tw:hover,.dl:hover{background:color-mix(in srgb,var(--text-3) 5%,transparent)}
 @keyframes terminal-select{from{box-shadow:inset 0 0 0 1px var(--accent)}to{box-shadow:inset 0 0 0 1px transparent}}
 @keyframes terminal-open{from{opacity:.75;translate:0 4px}to{opacity:1;translate:0 0}}
}
@media(prefers-reduced-motion:reduce){.gmgn-token-link img,.dp-head .soc a,#intervals button,#chart-unit button,.hmore,.dl,.tw{transition:none;animation:none}}

/* Owner 5 Oct: pictorial socials, proportional result grid, clearer chart controls. */
.soc .social-picture{display:block;width:20px;height:20px;object-fit:contain;flex:none}.dp-head .soc a{--bb:transparent;--bbh:var(--raise);background:transparent}.dp-head .soc a:hover{background:var(--raise)}
#dp-wallets .tw{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(300px,38%);gap:10px;align-items:center}#dp-wallets .tw>.nm{min-width:0}
.wallet-outcome{display:grid;grid-template-columns:1.05fr 1fr 1fr;align-items:stretch;border-left:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}
.outcome-cell{min-width:0;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:2px 10px;gap:2px;border-right:1px solid var(--line)}.outcome-cell:last-child{padding-right:0;border-right:0}
.outcome-label,.outcome-cell small{font-size:11px;line-height:15px;color:var(--text-3);font-weight:500}.outcome-cell b{font-size:14px;line-height:20px;font-weight:700}.outcome-cell .outcome-percent{font-size:16px;line-height:20px}.outcome-cell .up{color:var(--up)}.outcome-cell .down{color:var(--down)}
.chart-compact{height:28px;padding:4px 8px;font-size:11px;border-radius:5px;--bb:var(--raise);--bbh:var(--raise-2);color:var(--text-2)}.chart-compact[aria-pressed=true]{color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--line-2)}
@media(max-width:700px){#dp-wallets .tw{grid-template-columns:24px minmax(0,1fr);gap:5px 8px;padding:12px 0}#dp-wallets .wallet-outcome{grid-column:1/-1;width:100%;margin-top:5px;border-top:1px solid var(--line);border-left:0;padding-top:7px}.outcome-cell{align-items:flex-start;text-align:left;padding:0 10px}.outcome-cell:first-child{padding-left:0}.outcome-cell:last-child{padding-left:12px}.chart-compact{min-height:32px}}

/* Owner 5 Oct: four compact totals, common desktop headings and icon-only progress. */
#dp-wallets .tw{grid-template-columns:22px minmax(120px,1fr) minmax(400px,52%);padding:8px 0;gap:8px}
.wallet-grid-head{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:max(400px,52%);margin-left:auto;text-align:right;color:var(--text-3);font-size:10px;line-height:14px;padding-bottom:4px}
.wallet-grid-head span{padding-right:10px}.wallet-grid-head span:last-child{padding-right:0}
.wallet-outcome{grid-template-columns:repeat(4,minmax(0,1fr));min-height:34px}.outcome-cell{padding:0 10px;gap:0;justify-content:flex-start;position:relative}
.wallet-outcome .outcome-label{display:none}.outcome-cell b{font-size:13px;line-height:18px}.outcome-cell .outcome-percent{font-size:14px;line-height:18px}.outcome-cell small{font-size:10px;line-height:14px}.outcome-cell .outcome-usd{font-size:10px}
.outcome-loading{width:12px;height:12px;display:inline-block;vertical-align:-2px;color:var(--text-3)}
@media(prefers-reduced-motion:no-preference){.outcome-loading{animation:outcome-spin 900ms linear infinite}@keyframes outcome-spin{to{transform:rotate(360deg)}}}
@media(max-width:1100px){#dp-wallets .tw{grid-template-columns:22px minmax(90px,1fr) minmax(320px,56%)}.wallet-grid-head{width:max(320px,56%)}}
@media(max-width:700px){#dp-wallets .tw{grid-template-columns:20px minmax(0,1fr);padding:8px 0;gap:3px 7px}.wallet-grid-head{display:none}#dp-wallets .wallet-outcome{padding-top:4px;margin-top:2px;min-height:0}.wallet-outcome .outcome-label{display:block;font-size:9px;line-height:13px;white-space:nowrap}.outcome-cell{padding:0 6px}.outcome-cell:last-child{padding-left:6px}.outcome-cell b{font-size:12px;line-height:17px}.outcome-cell .outcome-percent{font-size:13px;line-height:17px}.outcome-cell small{font-size:9px;line-height:12px}#dp-wallets .tw>.nm>span{font-size:10px;line-height:13px}}

/* Owner 5 Oct: reveal already-loaded trackers locally; preserve reading position. */
.wallet-more{display:flex;align-items:center;justify-content:center;gap:5px;margin:4px auto 0;min-height:32px;padding:3px 12px;font-size:11px;color:var(--text-3);border-radius:5px;--bb:transparent;--bbh:var(--raise)}
.wallet-more svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5}.wallet-more[aria-expanded=true] svg{transform:rotate(180deg)}.wallet-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html,.dp-body{overflow-anchor:none}
@media(max-width:700px){.wallet-more{min-height:36px}}
@media(prefers-reduced-motion:no-preference){.wallet-more{transition:color 140ms,background-color 140ms}.wallet-more svg{transition:transform 160ms}}

/* Owner 5 Oct: slim disclosure and low-contrast decorative modal ambience. */
#dp-wallets .sec{row-gap:4px}#dp-wallets .wallet-more{min-height:20px;height:20px;margin:0 auto;padding:0 10px;font-size:10px;line-height:16px;position:relative}
#dp-wallets .wallet-more::after{content:'';position:absolute;inset:-7px -5px}#dp-wallets .wallet-more svg{width:12px;height:12px}
.dp-main:has(.wallet-more){padding-bottom:7px}
.dp{isolation:isolate;overflow:clip}
.dp::before{content:'';position:absolute;inset:-8%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 18% 64%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 52%),radial-gradient(ellipse at 84% 25%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 48%);opacity:.25;transform:translate3d(-2%,-1%,0)}
@media(prefers-reduced-motion:no-preference){.dp-open .dp::before{animation:terminal-ambient 28s ease-in-out infinite alternate}@keyframes terminal-ambient{to{transform:translate3d(2%,2%,0);opacity:.5}}}
.terminal-motion-paused .dp::before,.dp.ambient-paused::before{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.dp::before{display:none;animation:none}}
@media(pointer:coarse){#dp-wallets .wallet-more::after{inset:-8px -8px}}

/* Owner, 5 Oct 2026: taller cards use the ordinary monitor's spare vertical room.
   Keep auto-fill columns, compact phone/tablet cards and ultrawide density. */
@media (min-width:1001px) and (max-width:2799px) {
  #terminal .mcard { min-height:clamp(228px,calc(25dvh - 48px),270px); }
}

/* The cached quote symbol is secondary to the base symbol; unknown pairs stay absent. */
.mcard .ttl .l1 .card-quote{font-size:11px;font-weight:500;color:var(--text-3);line-height:1.2;flex:0 1 auto;max-width:42%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Owner 5 Oct: card social artwork matches the adjacent chain disc. */
.mcard .ttl .l2 .card-age{font-weight:700}
.mcard .ttl .l2 .soc{gap:4px;align-items:center}
.mcard .ttl .l2 .soc a{width:18px;height:20px;background:transparent}
.mcard .ttl .l2 .soc .social-picture{width:14px;height:14px}

.mcard .card-statuses{display:inline-flex;align-items:center;gap:4px;flex:none;margin-left:auto}
.mcard .card-status{width:13px;height:13px;display:inline-flex;flex:none}
.mcard .card-status svg{width:100%;height:100%}
.mcard .card-status.cto{color:var(--hot-ink)}
.mcard .card-status.dex{color:var(--status-dex)}
.mcard .card-statuses .tag.og{font-size:9px;line-height:14px;padding:0 3px;background:color-mix(in srgb,var(--up) 18%,transparent);color:var(--up)}

.mcard .ttl .l1 b{flex-shrink:0;max-width:60%}

/* Owner: aligned footer cells, current curve versus DEX state. */
.mcard .cs.card-facts{display:grid;grid-template-columns:.7fr .75fr 1.65fr .85fr 1.15fr;gap:0;height:auto;min-height:36px;border-top:1px solid var(--line);overflow:visible;font-size:11px;align-items:stretch}
.mcard .card-facts>.card-fact{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;height:auto;min-width:0;max-width:100%;padding:5px 3px 1px;line-height:14px;white-space:normal}
.mcard .card-facts>.card-fact+.card-fact{border-left:1px solid var(--line)}
.mcard .card-facts .fact-label{font-size:10px;line-height:13px;color:var(--text-3);font-weight:500}
.mcard .card-facts .fact-value{font-size:11px;line-height:14px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcard .card-facts b.up{color:var(--up)}.mcard .card-facts b.down{color:var(--down)}
.mcard .card-lp,.mcard .card-lp>span{display:inline-flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap;max-width:100%;font-size:10px;line-height:12px}
.mcard .card-facts .gm-icon{width:11px;height:11px;flex:none}
.mcard .card-lp .card-burn{color:var(--card-burn)}
.mcard .card-facts .card-venue{margin-left:0;text-align:center}

/* Keep the compact facts at the card foot, with space after the tracker list. */
.mcard .card-trackers{min-width:0;display:flex;flex-direction:column;gap:3px}
.mcard .card-trackers-more{align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:22px;padding:1px 10px;border:0;background:transparent;color:var(--text-3);font:inherit;font-size:10px;line-height:18px;cursor:pointer}
.mcard .card-trackers-more:hover{color:var(--text)}
.mcard .card-trackers-more:focus-visible{outline:1px solid var(--accent);outline-offset:1px;border-radius:4px}
.mcard .cs.card-facts{margin-top:auto}
.mcard:has(.card-facts){row-gap:12px}
.mcard .fact-liquidity-value{display:flex;align-items:center;justify-content:center;gap:4px;max-width:100%;min-width:0}
.mcard .fact-liquidity-value .fact-value{flex-shrink:0}
.mcard .card-lp,.mcard .card-lp>span{flex-wrap:nowrap;white-space:nowrap}
@media(pointer:coarse){.mcard .card-trackers-more{min-height:28px;padding-inline:16px}}

/* Approved card layout on phones: symbol/pair first, reachable local disclosure. */
@media(max-width:700px){
 .mcard .ttl .l1 .tn{display:none}
 .mcard .card-trackers-more{min-height:36px;min-width:112px;font-size:11px}
 .mcard .ttl .l2 .soc a{width:24px;height:24px}
 .mcard .ttl .l2 .soc{gap:2px}
 .mcard .card-facts>.card-fact{padding-inline:2px}
 .mcard .fact-liquidity-value{gap:3px}
}

/* Phone landscape: let search shrink before it pushes header controls off-screen. */
@media(min-width:701px) and (max-width:1000px) and (max-height:500px) and (pointer:coarse){.topbar .hsearch{min-width:64px;flex-shrink:1}}

/* Owner approved6Oct2026: manual role background illustrations; zero layout height. */
.scene-sniper{--v-color:var(--role-illustration-0)}.scene-kol{--v-color:var(--role-illustration-1)}.scene-genius{--v-color:var(--role-illustration-2)}.scene-scalper{--v-color:var(--role-illustration-3)}
[data-theme=light] .scene-sniper{--v-color:var(--role-illustration-4)}[data-theme=light] .scene-kol{--v-color:var(--role-illustration-5)}[data-theme=light] .scene-genius{--v-color:var(--role-illustration-6)}[data-theme=light] .scene-scalper{--v-color:var(--role-illustration-7)}.role-art{position:absolute;right:0;top:0;width:104px;height:78px;color:var(--v-color);opacity:.8;pointer-events:none}.role-art svg{width:100%;height:100%;overflow:visible}.role-art .v-fill{fill:color-mix(in srgb,var(--v-color) 13%,var(--surface))}.v-eye{stroke-width:3}.v-target{opacity:.55}.v-caution{stroke:var(--role-illustration-8)}.v-bolt{fill:currentColor;stroke-width:0}
.role-art svg>g,.role-art svg>path{transform-box:fill-box;transform-origin:center;animation-duration:4s;animation-iteration-count:infinite;animation-play-state:paused;animation-timing-function:ease-in-out}
.role-motion-active .role-art svg>g,.role-motion-active .role-art svg>path{animation-play-state:running}
.role-art .v-trails{animation-name:v-dash;animation-duration:1.8s}.role-art .v-target{animation-name:v-lock;animation-duration:2.8s}.role-art .v-hood{animation-name:v-lean;animation-duration:2.8s}
.role-art .v-crown{animation-name:v-lift;animation-duration:4.6s}.role-art .v-broadcast{animation-name:v-speak;animation-duration:4.6s}.role-art .v-price{animation-name:v-price;animation-duration:4.6s}.role-art .v-caution{animation-name:v-caution;animation-duration:4.6s}
.role-art .v-orbit{animation-name:v-orbit;animation-duration:12s;animation-timing-function:linear}.role-art .v-brain{animation-name:v-think;animation-duration:4.2s}.role-art .v-spark{animation-name:v-discover;animation-duration:4.2s}
.role-art .v-ape{animation-name:v-impulse;animation-duration:3.4s}.role-art .v-scramble{animation-name:v-scramble;animation-duration:3.4s}.role-art .v-bolt{animation-name:v-bolt;animation-duration:3.4s}
@keyframes v-dash{0%{transform:translateX(12px);opacity:0}30%{opacity:.75}100%{transform:translateX(-14px);opacity:0}}
@keyframes v-lock{0%,100%{transform:translate(9px,-4px) scale(1.08);opacity:.35}45%,70%{transform:translate(-9px,10px) scale(.84);opacity:.9}}
@keyframes v-lean{0%,100%{transform:translateX(0)}45%{transform:translateX(3px)}}
@keyframes v-lift{0%,100%{transform:translateY(0)}45%{transform:translateY(-3px)}}
@keyframes v-speak{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(-3deg)}}
@keyframes v-price{0%,100%{opacity:.3;transform:translateY(3px)}50%{opacity:.8;transform:translateY(-3px)}}
@keyframes v-caution{0%,25%,100%{opacity:.45}55%,80%{opacity:1}}
@keyframes v-orbit{to{transform:rotate(360deg)}}
@keyframes v-think{0%,100%{transform:translateY(2px)}50%{transform:translateY(-2px)}}
@keyframes v-discover{0%,100%{transform:scale(.65);opacity:.35}50%{transform:scale(1.1);opacity:1}}
@keyframes v-impulse{0%,30%,65%,100%{transform:rotate(0) translateY(0)}38%{transform:rotate(-7deg) translateY(-2px)}47%{transform:rotate(5deg)}55%{transform:rotate(-3deg)}}
@keyframes v-scramble{0%,30%,75%,100%{opacity:.25;transform:translateY(0)}45%,60%{opacity:.85;transform:translateY(-4px)}}
@keyframes v-bolt{0%,25%,80%,100%{opacity:.25;transform:translateY(-2px)}45%,60%{opacity:1;transform:translateY(2px)}}
/* Owner correction: artwork is entirely out of layout flow; no added card height. */
#token-list .mcard>.role-vignette{position:absolute;inset:78px 10px 47px;margin:0;z-index:0;pointer-events:none;display:flex;flex-direction:row;gap:5px;overflow:hidden;min-height:0}
#token-list .role-vignette>.role-scene{position:relative;flex:1;min-width:0;min-height:0;border:0;border-radius:0;background:none;overflow:hidden}
#token-list .role-vignette .role-art{position:absolute;left:auto;right:0;top:auto;bottom:-5px;width:144px;height:108px;opacity:.29}
#token-list .role-vignette .role-caption{position:absolute;left:4px;bottom:0;padding:0;gap:0;opacity:.8;z-index:1}
#token-list .role-vignette .role-caption strong{font-size:10px;line-height:13px;font-weight:700;letter-spacing:.04em}
#token-list .role-vignette .role-caption span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#token-list .role-vignette:has(>.role-scene + .role-scene) .role-art{width:104px;height:78px;left:auto;right:0;top:auto;bottom:4px}
[data-theme=light] #token-list .role-vignette .role-art{opacity:.25}

/* Keep artwork out of layout flow in cards and existing compact phone/table rows. */
#token-list .role-vignette .role-art svg{position:static;inset:auto;width:100%;height:100%;opacity:1}
#token-list :is(.tkrow,.mrow)>.role-vignette{position:absolute;inset:0 60px 0 auto;width:126px;z-index:0;display:flex;flex-direction:row;pointer-events:none;overflow:hidden}
#token-list :is(.tkrow,.mrow) .role-scene{position:relative;flex:1;min-width:0;overflow:hidden;color:var(--v-color)}
#token-list :is(.tkrow,.mrow) .role-art{width:100px;height:75px;bottom:-5px;opacity:.2}
#token-list :is(.tkrow,.mrow) .role-caption{display:none}
#token-list .role-vignette .role-caption strong{color:var(--v-color)}
.role-motion-hidden .role-art svg>*{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.role-art svg>*{animation:none!important;transform:none!important;opacity:1}}

/* Owner approved6Oct2026: grouped token filters, browser-local pins, interaction motion. */
#terminal>.tabsrow{min-height:44px;padding:4px 0;border-bottom:0;gap:8px 20px}#terminal>.tabsrow .right{margin-left:auto}#terminal>.tabsrow .bigtabs{gap:22px}
#terminal>.refine-row{display:flex;align-items:center;gap:18px;min-height:48px;padding:5px 0 11px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow:visible;flex-wrap:wrap}
#terminal .terminal-sort{position:relative;display:flex;align-items:center;gap:0;isolation:isolate;padding:3px;background:var(--raise);border:0;border-radius:8px;flex:none;min-height:34px}
#terminal .terminal-sort button{position:relative;z-index:1;border:0;background:transparent!important;box-shadow:none!important;font-size:12px;font-weight:500;line-height:20px;min-height:28px;padding:4px 12px;color:var(--text-3);border-radius:5px;white-space:nowrap}
#terminal .terminal-sort button[aria-pressed=true]{color:var(--text-1);font-weight:600}
.control-glider{position:absolute;left:0;top:3px;bottom:3px;background:var(--hover);border:1px solid var(--line);border-radius:5px;z-index:0;pointer-events:none;box-sizing:border-box;transition:transform 200ms cubic-bezier(.2,.7,.2,1),width 200ms cubic-bezier(.2,.7,.2,1)}
#terminal #token-menus{display:flex;gap:6px;margin-left:auto;flex:none}#terminal #token-menus>.menu>button,#terminal #token-menus>.menuwrap>button{min-height:32px}
.extra-filters{display:flex;flex:none;align-items:center;padding-left:18px;border-left:1px solid var(--line)}.extra-filters #extra-filter-panel{display:flex;gap:7px;align-items:center}
.extra-filters button{font-family:inherit;font-size:12px;font-weight:500;line-height:20px;border:0;cursor:pointer;color:var(--text-3);white-space:nowrap;box-shadow:none;background:transparent;padding:5px 10px;border-radius:6px;min-height:32px}
.extra-filters svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none;flex:none}
.extra-filters .status-control{position:relative;display:flex;gap:0;padding:3px;isolation:isolate;border-radius:8px;background:var(--raise)}.status-control button{position:relative;z-index:1;min-height:28px;padding:4px 11px;border-radius:5px}
.status-control .control-glider{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 20%,transparent)}.extra-filters .status-control button[aria-pressed=true]{color:var(--accent-ink);font-weight:600}
.extra-filters .filter-toggle{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;min-height:34px}.extra-filters .filter-toggle[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.extra-filters #pinned-filter[aria-pressed=true]>svg{fill:currentColor}.toggle-dot{width:4px;height:4px;background:currentColor;border-radius:50%;opacity:0;transform:scale(.4);transition:opacity 160ms,transform 180ms}.filter-toggle[aria-pressed=true] .toggle-dot{opacity:1;transform:scale(1)}
.refine-divider{height:18px;width:1px;background:var(--line);margin:0 3px}.extra-filters #filters-clear{display:grid;place-items:center;width:28px;min-height:28px;padding:4px;border-radius:50%;color:var(--text-3)}.extra-filters [hidden]{display:none!important}
.extra-filters button:focus-visible,#terminal .terminal-sort button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.filter-sheet-head,.filter-sheet-note,.extra-filters #mobile-filters,.extra-filters .filter-backdrop{display:none}
@media(hover:hover){.extra-filters button:hover,#terminal .terminal-sort button:hover{color:var(--text-1);background:var(--hover)}.extra-filters .status-control button:hover{background:transparent}}
@media(prefers-reduced-motion:no-preference){.extra-filters button,#terminal .terminal-sort button{transition:color 140ms,background-color 160ms,transform 100ms}.extra-filters button:active{transform:scale(.97)}.filter-toggle.just-selected>svg{animation:filter-settle 240ms ease-out}@keyframes filter-settle{0%{transform:scale(.84) rotate(-9deg)}65%{transform:scale(1.12) rotate(3deg)}100%{transform:scale(1) rotate(0)}}}
#token-list .token-pin{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-3);padding:0;width:23px;height:23px;flex:none;cursor:pointer;position:relative;z-index:2}#token-list .token-pin svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}#token-list .token-pin[aria-pressed=true]{color:var(--accent-ink)}#token-list .token-pin[aria-pressed=true] svg{fill:currentColor}#token-list .token-pin:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:4px}#token-list .mcard .mc{display:flex;align-items:center;gap:3px;flex-wrap:wrap;justify-content:flex-end}#token-list .mcard .mc>.mcv{display:inline-block}#token-list .mcard .mc>span{flex-basis:100%}
@media(max-width:1100px) and (min-width:701px){#terminal>.refine-row{gap:8px 12px}.extra-filters{padding-left:12px}}
@media(max-width:700px){
 #terminal>.tabsrow{padding:4px 12px;min-height:46px;flex-wrap:nowrap;gap:6px}#terminal>.tabsrow .right{display:none}#terminal>.tabsrow .bigtabs{gap:12px;flex:1;min-width:0}#terminal>.tabsrow .bigtab{font-size:14px;white-space:nowrap}
 #terminal>.refine-row{min-height:44px;margin-bottom:8px;padding:3px 12px 9px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:10px}#terminal .terminal-sort{min-height:32px}#terminal .terminal-sort button{font-size:11px;padding:3px 9px;min-height:27px}#terminal #token-menus{margin-left:0;gap:5px}
 .extra-filters{order:2;margin-left:auto;border:0;padding:0}.extra-filters #mobile-filters{display:flex;align-items:center;gap:6px;padding:5px 7px;color:var(--text-2);min-height:38px;background:var(--raise);border-radius:7px}.extra-filters #mobile-filters svg{width:16px;height:16px}.extra-filters #filter-total:not(:empty){display:grid;place-items:center;min-width:16px;height:16px;background:var(--accent);color:var(--on-accent);border-radius:4px;font-size:10px}
 .extra-filters #extra-filter-panel{display:none}.extra-filters.sheet-open #extra-filter-panel{display:flex;flex-wrap:wrap;position:fixed;z-index:181;inset:auto 10px max(12px,env(safe-area-inset-bottom));max-height:85dvh;overflow-y:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:18px;gap:16px 8px;box-shadow:0 12px 40px color-mix(in srgb,var(--text-1) 12%,transparent)}
 .extra-filters.sheet-open .filter-backdrop{display:block;position:fixed;z-index:180;inset:0;width:100%;height:100%;border-radius:0;padding:0;background:color-mix(in srgb,var(--bg) 72%,transparent);cursor:default}
 .extra-filters .filter-sheet-head{display:flex;align-items:center;justify-content:space-between;flex-basis:100%;color:var(--text-1);font-size:14px}.extra-filters #filter-done{display:grid;place-items:center;min-height:36px;width:36px;padding:0;background:var(--raise);border-radius:50%}
 .extra-filters .status-control{width:100%;padding:3px}.extra-filters .status-control button{flex:1;min-height:40px;font-size:13px}.extra-filters .refine-divider{display:none}.extra-filters .filter-toggle{min-height:42px;padding:8px 12px;background:var(--raise);font-size:13px;flex:1;justify-content:center}.extra-filters .filter-toggle[aria-pressed=true]{background:var(--accent-soft)}.extra-filters #filters-clear{width:32px;min-height:32px;margin-left:auto}.extra-filters .filter-sheet-note{display:block;margin:0;flex-basis:100%;font-size:11px;color:var(--text-3);line-height:16px}
 #token-list .token-pin{width:30px;height:30px}#token-list .mrow .token-pin{margin-left:auto}
 @media(prefers-reduced-motion:no-preference){.sheet-open #extra-filter-panel{animation:filter-sheet-enter 210ms cubic-bezier(.2,.7,.2,1)}.sheet-open .filter-backdrop{animation:filter-backdrop-enter 160ms ease-out}@keyframes filter-sheet-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes filter-backdrop-enter{from{opacity:0}to{opacity:1}}}
}
@media(prefers-reduced-motion:reduce){.control-glider,.toggle-dot,.extra-filters button{transition:none!important}.extra-filters svg,.sheet-open #extra-filter-panel,.sheet-open .filter-backdrop{animation:none!important}}

#terminal .extra-filters[hidden],#terminal>.refine-row[hidden]{display:none!important}

/* Owner-approved Profiles clarity, 6 Oct 2026. Loaded-data disclosure and event-driven motion. */
#track-rows>.lst{max-width:none}
#track>.tabsrow{min-height:52px;border-bottom:0}
#track>#track-filters{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--line);overflow:visible;flex-wrap:wrap}
#track-filters .pillset{padding:3px;border-radius:8px}
#track-filters .pillset button{min-height:30px;padding:0 12px;border-radius:5px;transition:background-color .18s,color .18s,box-shadow .18s}
#track-filters .pillset button[aria-pressed=true]{box-shadow:0 1px 3px color-mix(in srgb,var(--text-1) 10%,transparent)}
#track-filters .pillset button:active{transform:scale(.97)}
#track .lhead.prof,#track .lrow.prof{display:grid;grid-template-columns:minmax(260px,1fr) minmax(112px,.55fr) minmax(100px,.45fr) minmax(110px,.45fr) 72px 48px;gap:20px;padding:0 14px}
#track .lhead.prof{height:36px;color:var(--text-3);font-size:11px}
#track .lhead.prof .tr-number{text-align:right}
#track .lhead.prof small{font-size:inherit}
#track .lrow.prof{min-height:78px;border-radius:0;position:relative}
#track .lrow.prof>.cell{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;gap:3px;min-width:0;padding:5px 0;border-radius:4px;order:initial}
#track .lrow.prof>.cell b{font-size:15px;line-height:1.3}
#track .lrow.prof>.cell small{font-size:11px}
#track .lrow.prof .id{min-width:0;gap:12px;order:initial;max-width:none}
#track .lrow.prof .tklogo{width:38px;height:38px;flex:0 0 38px}
#track .lrow.prof .nm{min-width:0}
#track .lrow.prof .l1{gap:6px}
#track .lrow.prof .l1 b{font-size:14px}
#track .lrow.prof .l2{font-size:11px;margin-top:3px}
#track .tr-chains{display:flex;align-items:center;gap:5px;margin-top:5px;color:var(--text-3);font-size:10px;line-height:12px}
#track .tr-chains .cd{position:static;width:12px;height:12px;margin:0;box-shadow:none}
#track .tr-mobile-label{display:none}
#track .lrow.prof>.c{order:initial;margin:0;min-width:0}
#track .lrow.prof .rowbtn{width:34px;height:34px;border-radius:7px;transition:color .18s,background-color .18s}
#track .lrow.prof .rowbtn .i{transition:transform .24s}
#track [data-profile-expand][aria-expanded=true] .i,#track [data-profile-expand][aria-pressed=true] .i{transform:rotate(180deg)}
#track .tr-details{border-bottom:1px solid var(--line);padding:14px 14px 18px;background:var(--surface-2,var(--bg));min-width:0}
#track .tr-detail-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;font-size:12px}
#track .tr-detail-title>span{font-size:11px;color:var(--text-3)}
#track .tr-chain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 24px;margin-bottom:20px}
#track .tr-chain{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);min-width:0;font-size:12px}
#track .tr-chain>span:first-child{display:grid;grid-template-columns:16px 1fr;gap:4px 7px;align-items:center}
#track .tr-chain>span:first-child small{grid-column:2;color:var(--text-3)}
#track .tr-chain>span:last-child{text-align:right;display:grid;gap:3px}
#track .tr-chain .cd{position:static;margin:0;width:15px;height:15px}
#track .tr-chain small{font-size:10px}
#track .tpane .lrow.prof{grid-template-columns:minmax(200px,1fr) 110px 90px 100px 40px 0;gap:12px}
@media(min-width:701px){#track>.tabsrow .right{display:flex}#track .tdock{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}}
@container(max-width:1119px){#track .lhead.prof,#track .lrow.prof{grid-template-columns:minmax(185px,1fr) 100px 85px 85px 42px 34px;gap:12px;padding-left:8px;padding-right:8px}}
@media(max-width:700px){
 #track>.tabsrow{display:flex;flex-wrap:nowrap;gap:8px;min-height:52px}
 #track>.tabsrow .right{display:flex;margin-left:auto}#track>.tabsrow .right .count{display:none}
 #track>.tabsrow [data-track-add]{font-size:11px;padding:0 9px;min-height:32px}
 #track>#track-filters{display:grid;grid-template-columns:auto 1fr;gap:9px;margin-bottom:2px;padding-bottom:10px}
 #track-filters>.pillset:first-child{grid-column:1/-1;display:flex;width:100%}
 #track-filters>.pillset:first-child button{flex:1;padding:0 5px;font-size:11px;white-space:nowrap;min-height:34px}
 #track-filters>.pillset:nth-child(2){justify-self:start;display:flex}
 #track-filters>#track-menus{justify-self:end;display:flex;max-width:100%}
 #track .lhead.prof{display:none}
 #track .lrow.prof{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:10px 12px;min-height:145px;padding:14px 4px 12px}
 #track .lrow.prof>.id{grid-column:1/-1;padding-right:66px;max-width:none;width:auto;min-width:0;gap:9px}
 #track .lrow.prof .tklogo{width:34px;height:34px;flex-basis:34px}
 #track .lrow.prof .l1{flex-wrap:wrap;gap:4px}#track .lrow.prof .l1 .sh{white-space:normal;overflow-wrap:anywhere;font-size:13px}
 #track .lrow.prof .l2{font-size:10px;white-space:normal;overflow-wrap:anywhere}
 #track .lrow.prof>.cell{grid-row:2;align-items:flex-start;text-align:left;padding:0;order:initial;flex:initial;gap:3px}
 #track .lrow.prof>.cell.tr-last{align-items:flex-end;text-align:right}
 #track .lrow.prof>.cell b{font-size:14px}#track .lrow.prof>.cell small{font-size:10px}
 #track .tr-mobile-label{display:block;font-size:10px;color:var(--text-3);margin-bottom:1px}
 #track .lrow.prof>.tr-visibility,#track .lrow.prof>.tr-expand{position:absolute;top:15px;width:30px;height:34px;display:flex;align-items:center;justify-content:center}
 #track .lrow.prof>.tr-visibility{right:34px}#track .lrow.prof>.tr-expand{right:0}
 #track .lrow.prof .rowbtn{width:30px;height:34px}
 #track .tr-details{padding:14px 7px}#track .tr-detail-title{align-items:flex-start;gap:6px}#track .tr-detail-title>span{font-size:10px;text-align:right}
 #track .tr-chain-grid{grid-template-columns:1fr;gap:0}
}
@media(prefers-reduced-motion:reduce){#track-filters .pillset button,#track .lrow.prof .rowbtn,#track .lrow.prof .rowbtn .i{transition:none}#track-filters .pillset button:active{transform:none}}

#track .tr-find-sol{padding-top:12px}

#track .tr-add-short{display:none}
@media(max-width:700px){#track>.tabsrow .right>[data-track-add]{display:inline-flex!important}#track .tr-add-label{display:none}#track .tr-add-short{display:inline}#track>#track-filters{padding-left:12px;padding-right:12px}#track .lrow.prof{padding-left:12px;padding-right:12px}#track .lrow.prof>.tr-visibility{right:42px}#track .lrow.prof>.tr-expand{right:8px}}

/* Track address review, 6 Oct 2026: concise wallet rows; configuration appears on request. */
#track .tr-sort-head{min-width:0}
#track .tr-sort-head>button{display:inline-flex;align-items:center;gap:7px;color:var(--text-3);font-size:11px;padding:7px 0;white-space:nowrap;transition:color .16s}
#track .tr-sort-head>button:hover,#track .tr-sort-head>button[aria-pressed=true]{color:var(--accent-ink)}
#track .tr-sort-head>button>span{font-size:12px;opacity:.6}
#track .tr-sort-head>button[aria-pressed=true]>span{opacity:1}
#track .tr-sort-head.tr-number{text-align:right}#track .tr-sort-head.c{text-align:center}
#track .tr-phone-sort{display:none}
#track .tr-address-head,#track .tr-address{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(145px,.65fr) minmax(100px,.5fr) minmax(100px,.5fr) 62px 36px;column-gap:20px;align-items:center;padding:0 14px;border-bottom:1px solid var(--line)}
#track .tr-address-head{min-height:36px;color:var(--text-3);font-size:11px}
#track .tr-address{min-height:65px;position:relative}
#track .tr-wallet-id{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 0}
#track .tr-wallet-id>div{min-width:0}
#track .tr-wallet-id b{display:block;font-size:13px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#track .tr-wallet-id small{display:block;color:var(--text-3);font-size:11px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#track .tr-wallet-id>.tklogo{width:32px;height:32px;flex:0 0 32px}
#track .tr-wallet-id>.cd{position:static;width:20px;height:20px;flex:0 0 20px;margin:0}
#track .tr-hidden .tr-wallet-id,#track .tr-hidden .tr-labels{opacity:.55}
#track .tr-labels{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
#track .tr-wallet-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-2);line-height:20px;white-space:nowrap}
#track .tr-wallet-label:before{content:'';width:4px;height:4px;border-radius:50%;background:var(--accent-ink)}
#track .tr-wallet-label+.tr-wallet-label{margin-left:5px}
#track .tr-no-label{color:var(--text-3);opacity:.6}
#track .tr-wallet-pnl,#track .tr-wallet-last{text-align:right;display:grid;gap:3px;padding:4px 0;border-radius:4px;min-width:0}
#track .tr-wallet-pnl>b,#track .tr-wallet-last>b{font-size:13px;line-height:17px}
#track .tr-wallet-pnl>small,#track .tr-wallet-last>small{font-size:10px;color:var(--text-3);line-height:13px}
#track .tr-wallet-show,#track .tr-wallet-settings{display:flex;justify-content:center;align-items:center;position:relative}
#track .tr-wallet-settings .rowbtn{width:32px;height:32px;border-radius:6px;color:var(--text-3);transition:background-color .16s,color .16s}
#track .tr-wallet-settings .rowbtn[aria-expanded=true]{color:var(--accent-ink);background:var(--raise-2)}
#track .tr-address-mobile-label{display:none}
#track .tr-wallet-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;padding:14px 20px 16px;background:var(--raise);border-bottom:1px solid var(--line)}
#track .tr-wallet-controls>div{display:grid;gap:6px;min-width:0}
#track .tr-wallet-controls>div>span{font-size:10px;color:var(--text-3)}
#track .tr-wallet-controls .tr-wallet-more{margin-left:auto;position:relative;display:flex;align-self:flex-end}
#track .tr-wallet-controls .tr-wallet-win b{font-size:12px}#track .tr-wallet-controls small{font-size:10px;color:var(--text-3)}
#track .tr-wallet-controls .ubtn{max-width:100%;white-space:normal}
#track .tr-detail-clean{padding-top:10px;padding-bottom:10px}
#track .tr-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
#track .tr-detail-tabs{display:flex;align-items:center;gap:18px}
#track .tr-detail-tabs>button{display:flex;align-items:center;gap:5px;padding:8px 0;border-bottom:2px solid transparent;color:var(--text-3);font-size:12px;font-weight:700;transition:color .18s,border-color .18s}
#track .tr-detail-tabs>button[aria-pressed=true]{color:var(--text-1);border-bottom-color:var(--accent)}
#track .tr-detail-tabs small{font-size:10px;font-weight:500;color:var(--text-3)}
#track .tr-detail-scope{font-size:10px;color:var(--text-3)}
#track .tr-detail-clean .tr-chain-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;margin:0 0 8px}
#track .tr-detail-clean .tr-address{min-height:56px}
#track .tr-show-addresses{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 0;font-size:11px;color:var(--text-3);min-height:28px}
#track .tr-show-addresses .i{width:12px;height:12px;transition:transform .2s}
#track .tr-show-addresses[aria-expanded=true] .i{transform:rotate(180deg)}
#track .tr-found{margin-top:10px;font-size:11px;color:var(--text-3)}#track .tr-found>summary{cursor:pointer;padding:7px 0}
@container(max-width:1119px){#track .tr-address-head,#track .tr-address{grid-template-columns:minmax(170px,1fr) minmax(90px,.6fr) 85px 80px 40px 32px;column-gap:10px;padding-left:8px;padding-right:8px}}
@media(max-width:700px){
 #track>#track-filters{grid-template-columns:auto 1fr}#track-filters>#track-menus{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;grid-column:1/-1;justify-self:stretch}
 #track-filters>.pillset:nth-child(2){grid-row:2;grid-column:1;z-index:1}#track-filters>#track-menus{grid-row:2;padding-left:80px}
 #track #track-menus .fchip{padding:0 8px;min-height:31px;font-size:10px}#track .tr-phone-sort{display:inline-flex}
 #track .tr-address-head{display:none}
 #track .tr-address{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px 14px;padding:12px;min-height:120px}
 #track .tr-wallet-id{grid-column:1/-1;padding:0 78px 0 0;gap:8px}
 #track .tr-wallet-id b{font-size:12px;white-space:normal;overflow-wrap:anywhere}
 #track .tr-wallet-id small{font-size:10px}
 #track .tr-labels{grid-column:1/-1;padding-left:40px;margin-top:-2px}#track .tr-sub .tr-labels{padding-left:28px}
 #track .tr-labels:has(.tr-no-label){display:none}
 #track .tr-wallet-label{font-size:10px;line-height:16px}
 #track .tr-wallet-pnl{grid-column:1;text-align:left;padding:4px 0 0}#track .tr-wallet-last{grid-column:2;text-align:right;padding:4px 0 0}
 #track .tr-wallet-pnl>b,#track .tr-wallet-last>b{font-size:13px}
 #track .tr-address-mobile-label{display:block;font-size:10px;color:var(--text-3);line-height:14px}
 #track .tr-wallet-show,#track .tr-wallet-settings{position:absolute;top:14px;width:32px;height:32px}
 #track .tr-wallet-show{right:46px}#track .tr-wallet-settings{right:10px}
 #track .tr-detail-clean .tr-address{min-height:116px;padding-left:4px;padding-right:4px}
 #track .tr-wallet-controls{padding:12px;gap:14px;display:grid;grid-template-columns:1fr 1fr}
 #track .tr-wallet-controls .tr-wallet-more{margin:0;justify-self:end;grid-column:2}
 #track .tr-wallet-controls .ubtn{font-size:10px;padding:6px 8px}
 #track .tr-detail-clean .tr-chain-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
 #track .tr-chain>span:first-child{grid-template-columns:14px 1fr;gap:4px}#track .tr-chain{font-size:10px;gap:4px}#track .tr-chain small{font-size:9px}
 #track .tr-detail-clean .tr-wallet-id{padding-right:78px}
}
@media(prefers-reduced-motion:reduce){#track .tr-sort-head>button,#track .tr-wallet-settings .rowbtn,#track .tr-detail-tabs>button,#track .tr-show-addresses .i{transition:none}}

/* Owner-approved Automation workspace, 6 October 2026. */
#automation #target-rows,#automation #target-rows .lst{max-width:none;width:100%}
#automation .auto-refined .lhead.auto,#automation .auto-refined .lrow.auto{grid-template-columns:minmax(240px,1.2fr) minmax(190px,.9fr) minmax(240px,1.3fr) 120px 36px;gap:22px}
#automation .auto-refined .lrow{min-height:66px;padding-block:12px}
#automation .auto-refined .rule{border:0;padding:0;border-radius:0;font-size:12px;line-height:1.65;background:none;white-space:normal}
#automation .auto-refined button.rule{display:inline-flex;align-items:center;gap:7px;min-height:36px;color:var(--text-1)}
#automation .auto-refined [data-has-method=false] button.rule{color:var(--accent-ink)}
#automation .auto-refined .id .l1{font-size:14px}#automation .auto-refined .id .l2{font-size:11px;margin-top:4px}
#editor.editor-dialog{width:min(1280px,94vw);max-width:1280px;height:min(880px,90dvh);max-height:90dvh;border-radius:16px;padding:0;background:var(--bg);border:1px solid var(--line)}
#editor #wallet-form{height:100%;display:flex;flex-direction:column;min-height:0}
#editor .drawer-header{padding:22px 28px;min-height:88px;flex-shrink:0;border-bottom:1px solid var(--line)}
#editor .drawer-header .eyebrow{font-size:12px;letter-spacing:0;font-weight:500;text-transform:none;color:var(--text-3)}
#editor .drawer-header h2{font-size:23px;margin-top:4px}#editor .icon-button{width:36px;height:36px}
#editor .editor-scroll{flex:1;min-height:0;overflow:hidden;padding:0}
#editor .strategy-workspace{display:grid;grid-template-columns:240px minmax(0,1fr);height:100%;min-height:0}
#editor .strategy-sidebar{position:static;overflow:auto;border-right:1px solid var(--line);padding:24px 18px;background:var(--surface);height:100%}
#editor .strategy-sidebar .panel-head{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:16px}
#editor .strategy-sidebar .panel-head h3{font-size:14px;margin:0}
#editor .strategy-sidebar #add-strategy{width:100%;min-height:38px;height:auto;border-radius:7px;background:var(--surface-2);color:var(--text-1);font-size:12px;text-align:left;padding:10px 12px}
#editor .strategy-tab{padding:13px 12px;border-radius:8px;min-height:60px;font-size:13px;margin-bottom:6px;line-height:1.4}
#editor .strategy-tab small{font-size:11px;margin-top:4px;line-height:1.4}
#editor .strategy-sidebar .footnote{font-size:11px;line-height:1.7;color:var(--text-3);padding:8px 10px}
#method-wallet-details{margin:24px 4px 0;border-top:1px solid var(--line);padding-top:16px;font-size:12px}
#method-wallet-details summary{cursor:pointer;color:var(--text-2);padding-block:6px}
#editor .wallet-basics{padding:16px 0 0;display:grid;grid-template-columns:1fr;gap:14px;border:0;background:none}
#editor .wallet-basics label{font-size:11px;line-height:1.5}#editor .wallet-basics input{min-width:0;width:100%;font-size:12px}#editor .wallet-basics small{display:none}
#editor #strategy-content{padding:24px 32px;overflow-y:auto;min-width:0;scrollbar-gutter:stable}
#editor .strategy-title{margin-bottom:18px;display:flex;gap:12px;align-items:center}
#editor .strategy-title input{font-size:21px;padding:10px 0;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;flex:1;min-width:0;text-align:left}
#editor #remove-strategy{color:var(--text-3);font-size:20px}
#editor .method-tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:0 0 25px}
#editor .method-tabs button{font-size:13px;min-height:44px;padding:10px 0;position:relative;border:0;border-radius:0;background:none;color:var(--text-3);white-space:nowrap}
#editor .method-tabs button[aria-selected=true]{color:var(--text-1);font-weight:700}
#editor .method-tabs button::after{content:'';height:2px;background:var(--accent);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0);transition:transform 150ms ease}
#editor .method-tabs button[aria-selected=true]::after{transform:scaleX(1)}
#editor .method-panel[hidden]{display:none!important}
#editor .method-panel:not([hidden]){animation:method-panel-in 160ms ease-out}
#editor .method-general,#editor .method-fields{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;row-gap:20px}
#editor .method-general{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
#editor .field-row{display:flex;flex-direction:column;align-items:stretch;justify-content:start;gap:8px;padding:0;border:0;min-width:0}
#editor .field-row .field-label{font-size:13px;max-width:none;line-height:1.5;font-weight:500;text-align:left}
#editor .field-label small{font-size:11px;line-height:1.5;margin-top:3px;min-height:0;color:var(--text-3)}
#editor .field-row input:not([type=checkbox]),#editor .field-row .select-wrap{width:100%;max-width:none;text-align:left;font-size:14px;padding:11px 13px;min-height:43px;margin-top:auto;box-sizing:border-box}
#editor .field-row .select-wrap{padding:0}#editor .select-trigger{min-height:43px;font-size:13px;padding:10px 12px}
#editor input::placeholder{font-size:12px;color:var(--text-3)}
#editor .strategy-section{margin:0 0 28px;padding:0;border:0}
#editor .strategy-section>h3,#editor .method-sizing>h3,#editor .method-mirror>h3{font-size:14px;line-height:1.4;margin:22px 0 16px;padding:0;font-weight:700;border:0}
#editor .strategy-section>h3::before{display:none}
#editor .method-help{font-size:12px;line-height:1.6;color:var(--text-3);margin:14px 0 18px}
#editor .method-help summary{cursor:pointer;width:fit-content;padding:6px 0}
#editor .explanation{font-size:12px;line-height:1.7;padding:12px 14px;background:var(--surface);border-radius:6px;margin:6px 0}
#editor .method-mirror{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:22px}
#editor .method-mirror .field-row{display:flex;flex-direction:row;align-items:center;gap:24px;justify-content:space-between}
#editor input[type=checkbox]{width:19px;height:19px;accent-color:var(--accent);flex-shrink:0}
#editor .tier-row,#editor .exit-stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);background:none;border-radius:0}
#editor .exit-stage{grid-template-columns:1fr 1fr auto}
#editor .tier-row label,#editor .exit-stage label{font-size:11px;line-height:1.6;min-width:0}
#editor .tier-row input,#editor .exit-stage input{width:100%;min-width:0;min-height:40px;padding:9px 11px;font-size:13px}
#editor .tier-row button,#editor .exit-stage button{align-self:end;min-height:40px;font-size:11px}
#editor .add-row{font-size:12px;min-height:36px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;margin-top:4px;background:var(--surface)}
#editor .dialog-footer{padding:17px 28px;border-top:1px solid var(--line);flex-shrink:0;background:var(--bg);min-height:76px}
#editor .dialog-footer small{font-size:12px;line-height:1.5;color:var(--text-3)}
#editor .dialog-footer .primary{font-size:13px;min-height:42px;padding:12px 24px;border-radius:8px;flex-shrink:0}
#editor button:focus-visible,#editor summary:focus-visible,#editor input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@keyframes method-panel-in{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:2400px){#editor.editor-dialog{width:1460px;max-width:1460px;height:min(1000px,86dvh)}#editor .strategy-workspace{grid-template-columns:280px minmax(0,1fr)}#editor #strategy-content{padding:28px 46px}}
@media(max-width:1000px) and (min-width:701px){#automation .auto-refined .lhead.auto,#automation .auto-refined .lrow.auto{grid-template-columns:minmax(180px,1fr) minmax(150px,1fr) minmax(150px,1fr) 80px 30px;gap:12px}#editor .strategy-workspace{grid-template-columns:185px minmax(0,1fr)}#editor #strategy-content{padding:20px}#editor .method-tabs{gap:18px}}
@media(max-width:700px){
 #automation .auto-refined .lhead{display:none!important}#automation .auto-refined .lrow.auto{display:grid;grid-template-columns:minmax(0,1fr) auto 30px;gap:8px 12px;padding:16px 0;min-height:0}
 #automation .auto-refined .lrow>.id{grid-column:1/3;grid-row:1}#automation .auto-refined .lrow>.cell.rl:nth-child(2){grid-column:1;grid-row:2;display:block}#automation .auto-refined .lrow>.cell.rl:nth-child(3){grid-column:1/4;grid-row:3;display:block;padding-left:0}
 #automation .auto-refined .lrow[data-has-method=false]>.cell.rl:nth-child(3){display:none}#automation .auto-refined .lrow>.c:nth-child(4){grid-column:2;grid-row:2}#automation .auto-refined .lrow>.c:last-child{grid-column:3;grid-row:1}
 #automation .auto-refined .id .tag{display:none}#automation .auto-refined .rule{font-size:11px}#automation .auto-refined .lrow>.cell.wallet{grid-column:1/3;grid-row:2}
 #editor.editor-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;inset:0;border-radius:0;border:0}
 #editor .drawer-header{min-height:74px;padding:15px 18px}#editor .drawer-header h2{font-size:19px}#editor .drawer-header .eyebrow{font-size:11px}
 #editor .editor-scroll{overflow:auto}#editor .strategy-workspace{display:flex;flex-direction:column;height:auto;min-height:100%}
 #editor .strategy-sidebar{padding:12px 16px;border-right:0;border-bottom:1px solid var(--line);height:auto;overflow:visible;flex-shrink:0}
 #editor .strategy-sidebar .panel-head{flex-direction:row;align-items:center;margin:0 0 10px;gap:10px}#editor .strategy-sidebar #add-strategy{width:auto;min-height:36px;padding:8px 10px}
 #editor #strategy-list{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}#editor .strategy-tab{min-width:145px;max-width:220px;width:auto;min-height:50px;padding:9px 11px;margin:0;font-size:12px}#editor .strategy-tab small{font-size:10px;margin-top:3px}
 #editor .strategy-sidebar .footnote{display:none}#method-wallet-details{margin:8px 0 0;padding-top:4px;border:0;font-size:11px}
 #editor .wallet-basics{grid-template-columns:1fr 1fr}#editor .wallet-basics>label:first-child{grid-column:1/-1}
 #editor #strategy-content{padding:17px 18px 26px;overflow:visible;scrollbar-gutter:auto}
 #editor .strategy-title{margin-bottom:10px}#editor .strategy-title input{font-size:18px;padding:7px 0}
 #editor .method-tabs{gap:0;justify-content:space-between;margin-bottom:20px}#editor .method-tabs button{font-size:12px;min-height:44px}
 #editor .method-general{grid-template-columns:1fr;gap:16px;padding-bottom:19px;margin-bottom:20px}
 #editor .method-fields{grid-template-columns:1fr;gap:18px}#editor .field-row .field-label{font-size:13px}#editor .field-label small{font-size:11px}
 #editor .field-row input:not([type=checkbox]){font-size:16px;min-height:44px}#editor .select-trigger{font-size:13px;min-height:44px}
 #editor .strategy-section>h3{margin-top:18px}#editor .method-help{font-size:11px;margin-block:12px}
 #editor .tier-row,#editor .exit-stage{grid-template-columns:1fr 1fr}#editor .tier-row button,#editor .exit-stage button{justify-self:end}#editor .tier-row input,#editor .exit-stage input{font-size:16px}
 #editor .dialog-footer{padding:12px 16px max(12px,env(safe-area-inset-bottom));gap:12px;min-height:80px}#editor .dialog-footer small{font-size:10px;line-height:1.6}#editor .dialog-footer .primary{font-size:12px;padding:11px 15px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){#editor .method-panel:not([hidden]){animation:none}#editor .method-tabs button::after{transition:none}}

/* Interaction-only motion; no periodic animation or data demand. */
#editor button,#automation button{transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease,transform 120ms ease}
#editor button:active:not(:disabled),#automation button:active:not(:disabled){transform:scale(.97)}
#editor .method-help[open] .explanation,#method-wallet-details[open] .wallet-basics{animation:method-panel-in 160ms ease-out}
#editor .primary[aria-busy=true]::before{content:'';display:inline-block;width:10px;height:10px;margin-right:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:method-saving 700ms linear infinite}
@keyframes method-saving{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#editor button,#automation button{transition:none}#editor button:active,#automation button:active{transform:none}#editor .method-help[open] .explanation,#method-wallet-details[open] .wallet-basics,#editor .primary[aria-busy=true]::before{animation:none}}

@media(max-width:700px){
 #automation .auto-methods .lrow.auto>.cell.rl:nth-child(2){grid-column:1/-1;grid-row:3}
 #automation .auto-methods .lrow.auto>.cell.wallet{grid-column:1;grid-row:2}
 #automation .auto-methods .lrow.auto>.c:nth-child(4){grid-column:2;grid-row:2}
}
