/* bot.memelabs.tech: the sniper's admin, built on memelabs.tech's own system (its app.css): one 1180px measure,
   a sticky chrome (appbar 52 / toolbar 50 / metabar 30), tables as the main object, hairline rules, mono values,
   small boxed chips. Colour means something and is never decoration: lime = the thing to look at, green = profit /
   running, red = loss, gold = waiting, orange = real money. */
:root {
  color-scheme: dark;
  --bg: #121211; --surface: #1a1a18; --surface-2: #201f1d; --surface-3: #26251f;
  --line: #262521; --line-soft: #1f1e1b; --frame: #3a3935;
  --ink: #f2f1ed; --ink-2: #97958e; --ink-3: #6f6d67;
  --accent: #a3e635; --accent-lit: #bef264; --go: #4ade80; --maybe: #e3b341; --brand: #ea6a2a; --off: #6f6d67; --stop: #f2555a;
  --go-bg: color-mix(in srgb, var(--go) 14%, transparent);
  --maybe-bg: color-mix(in srgb, var(--maybe) 14%, transparent);
  --stop-bg: color-mix(in srgb, var(--stop) 12%, transparent);
  --accent-bg: color-mix(in srgb, var(--accent) 15%, transparent);
  --brand-bg: color-mix(in srgb, var(--brand) 14%, transparent);
  --rule: color-mix(in srgb, var(--ink) 12%, transparent);
  --s1: 2px; --s2: 4px; --s3: 6px; --s4: 8px; --s5: 12px; --s6: 16px; --s7: 24px; --s8: 32px;
  --r1: 4px; --r2: 6px; --r3: 10px; --row-h: 36px; --measure: 1180px;
  --mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --sans: Geist, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --t-fast: 90ms; --ease: cubic-bezier(.2, .7, .3, 1);
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f8f7f4; --surface: #ffffff; --surface-2: #f5f3ef; --surface-3: #efece5;
  --line: #efece5; --line-soft: #f3f1ec; --frame: #dad6cc;
  --ink: #1a1a18; --ink-2: #696762; --ink-3: #85837e;
  --accent: #4d7c0f; --accent-lit: #3f6212; --go: #2e7d4f; --maybe: #9a6b12; --brand: #c2410c; --off: #85837e; --stop: #be123c;
  --rule: color-mix(in srgb, var(--ink) 14%, transparent);
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: var(--bg); color: var(--ink); font: 400 13px/1.4 var(--sans); -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; color: inherit; }
a { color: inherit; }
[hidden] { display: none !important; }
:where(a, button, input, select, [tabindex]):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r1); }
.sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.dash { color: var(--ink-3); }
.pos { color: var(--go); } .neg { color: var(--stop); } .wait { color: var(--maybe); }

/* ── chrome ─────────────────────────────────────────────────────────────── */
.chrome { position: sticky; top: 0; z-index: 40; background: var(--bg); }
.bar { max-width: calc(var(--measure) + 2 * var(--s6)); margin-inline: auto; padding-inline: var(--s6); display: flex; align-items: center; gap: var(--s4); }
.appbar { border-bottom: 1px solid var(--line); }
.appbar .bar { display: grid; grid-template-columns: 1fr auto 1fr; height: 52px; }
.brand { display: inline-flex; align-items: center; gap: 10px; justify-self: start; color: var(--ink); text-decoration: none; }
.wordmark { font: 600 15px/1 var(--sans); letter-spacing: -.015em; }
.brand .tagc { font: 600 9.5px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); border: 1px solid var(--rule); border-radius: var(--r1); padding: 1px 6px; }
.logo { width: 24px; height: 24px; display: block; flex: none; }
.logo svg { width: 100%; height: 100%; overflow: visible; }
.lg-glass, .lg-neck { fill: none; stroke: var(--ink-2); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.lg-fill { fill: var(--accent); animation: lg-tide 5.5s ease-in-out infinite; }
.lg-b { fill: var(--bg); opacity: .85; animation: lg-rise 2.6s ease-in infinite; }
.lg-b2 { animation-duration: 3.4s; animation-delay: .7s; }
.lg-b3 { animation-duration: 2.1s; animation-delay: 1.3s; }
@keyframes lg-tide { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2.5px); } }
@keyframes lg-rise { 0% { transform: translateY(0) scale(.6); opacity: 0; } 25% { opacity: .85; } 100% { transform: translateY(-11px) scale(1); opacity: 0; } }
.brand:hover .lg-fill { fill: var(--accent-lit); }
.tabs { display: flex; align-items: stretch; align-self: stretch; gap: var(--s7); }
.tabs a { position: relative; display: flex; align-items: center; padding-inline: var(--s1); color: var(--ink-3); text-decoration: none; font: 500 13px/1 var(--sans); transition: color var(--t-fast) var(--ease); }
.tabs a:hover, .tabs a[aria-current="page"] { color: var(--ink); }
.tabs a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--accent); border-radius: 2px 2px 0 0; }
.actions { display: flex; align-items: center; gap: var(--s1); justify-self: end; }
.vsep { width: 1px; height: 16px; background: var(--line); margin-inline: var(--s5) var(--s3); }
.live { display: inline-flex; align-items: center; gap: var(--s3); font: 500 12px/1 var(--sans); color: var(--ink-3); white-space: nowrap; }
.live .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--off); flex: none; }
.live[data-state="on"] .dot { background: var(--go); box-shadow: 0 0 0 3px var(--go-bg); animation: beat 2.6s ease-in-out infinite; }
.live[data-state="on"] .txt { color: var(--ink-2); }
.live[data-state="warn"] .dot { background: var(--maybe); } .live[data-state="warn"] .txt { color: var(--maybe); }
@keyframes beat { 50% { opacity: .45; } }
.ib { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; background: none; border: 0; border-radius: 6px; color: var(--ink-3); cursor: pointer; transition: color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.ib svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.ib:hover { color: var(--ink); background: var(--surface-2); }

/* toolbar */
.toolbar .bar { height: 50px; }
.toolbar .grow { flex: 1; }
.ttl { flex: none; display: flex; align-items: baseline; gap: var(--s4); font: 600 14px/1 var(--sans); }
.ttl .count { font: 500 12px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-3); }
.segc { flex: none; display: inline-flex; gap: 2px; padding: 2px; background: var(--surface); border: 1px solid var(--frame); border-radius: 6px; }
.segc button { display: inline-flex; align-items: center; gap: var(--s3); height: 26px; padding: 0 var(--s5); background: none; border: 0; border-radius: 4px; color: var(--ink-3); font: 500 12.5px/1 var(--sans); white-space: nowrap; cursor: pointer; transition: color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.segc button:hover { color: var(--ink); }
.segc button[aria-selected="true"] { background: var(--surface-3); color: var(--ink); }
.segc .n { font: 500 11px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-3); }
.segc button[aria-selected="true"] .n { color: var(--accent); }
.segc.mode button[data-v="live"][aria-selected="true"] { background: var(--brand-bg); color: var(--brand); }
.qbox { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: var(--s4); height: 32px; padding: 0 var(--s4) 0 var(--s5); background: var(--surface); border: 1px solid var(--frame); border-radius: 6px; cursor: text; transition: border-color var(--t-fast) var(--ease); }
.qbox:focus-within { border-color: var(--ink-3); }
.qbox svg { width: 14px; height: 14px; flex: none; fill: none; stroke: var(--ink-3); stroke-width: 1.5; stroke-linecap: round; }
.qbox input { flex: 1; min-width: 0; height: 100%; padding: 0; background: none; border: 0; font-size: 13px; }
.qbox input:focus { outline: none; }
.qbox input::placeholder { color: var(--ink-3); }
kbd { flex: none; padding: 2px 6px; border: 1px solid var(--frame); border-radius: 4px; font: 500 10.5px/1 var(--mono); color: var(--ink-3); background: none; }
.qbox:focus-within kbd { visibility: hidden; }
.tbtn { flex: none; display: inline-flex; align-items: center; gap: var(--s3); height: 32px; padding: 0 var(--s5); background: var(--surface); border: 1px solid var(--frame); border-radius: 6px; color: var(--ink-2); font: 500 12.5px/1 var(--sans); white-space: nowrap; cursor: pointer; text-decoration: none; transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.tbtn:hover { color: var(--ink); border-color: var(--ink-3); }
.tbtn[data-active="1"] { color: var(--ink); border-color: color-mix(in srgb, var(--accent) 55%, var(--frame)); }
.tbtn.primary { background: var(--accent); border-color: var(--accent); color: #11140b; font-weight: 600; }
.tbtn.primary:hover { background: var(--accent-lit); border-color: var(--accent-lit); }
.tbtn.primary:disabled { opacity: .45; cursor: default; }
.tbtn.danger:hover { color: var(--stop); border-color: var(--stop); }
.sw { position: relative; width: 26px; height: 15px; border-radius: 99px; background: var(--surface-3); border: 1px solid var(--frame); flex: none; transition: background var(--t-fast) var(--ease); }
.sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 9px; height: 9px; border-radius: 50%; background: var(--ink-3); transition: transform 160ms var(--ease), background 160ms var(--ease); }
.tbtn[aria-pressed="true"] .sw { background: var(--go-bg); border-color: color-mix(in srgb, var(--go) 55%, var(--frame)); }
.tbtn[aria-pressed="true"] .sw::after { transform: translateX(11px); background: var(--go); }
.dirty { font: 500 11px/1 var(--sans); color: var(--maybe); }

/* meta line */
.metabar { border-bottom: 1px solid var(--line); }
.metabar .bar { height: 30px; justify-content: space-between; gap: var(--s7); font: 400 11.5px/1 var(--sans); color: var(--ink-3); }
.stats { display: flex; gap: var(--s6); margin: 0; min-width: 0; overflow: hidden; }
.stats > div { display: flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.stats dd { margin: 0; font: 500 11.5px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.stats dd.pos { color: var(--go); } .stats dd.neg { color: var(--stop); }
.stats dt { color: var(--ink-3); }
.legend { flex: none; display: flex; align-items: center; gap: var(--s6); margin: 0; white-space: nowrap; }
.lgi { display: inline-flex; align-items: center; gap: 5px; }
.lgi i { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }

/* ── page ───────────────────────────────────────────────────────────────── */
main { padding: 0 var(--s6) var(--s8); }
.wrap { max-width: var(--measure); margin-inline: auto; }
.view { display: block; }

/* the working set: memelabs' watchlist panel */
.watchpanel { max-width: var(--measure); margin: var(--s5) auto 0; border: 1px solid var(--frame); border-radius: var(--r3); background: var(--surface); }
.wphead { display: flex; align-items: center; gap: var(--s4); padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line-soft); }
.wphead b { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.wpcount { font: 500 11px/1 var(--mono); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.wphint { color: var(--ink-3); font-size: 11px; margin-left: auto; }
.wplist { list-style: none; margin: 0; padding: var(--s4) var(--s5) var(--s5); display: flex; flex-wrap: wrap; gap: var(--s3); }
.wpempty { color: var(--ink-3); font-size: 11.5px; }
.wpitem { display: grid; gap: var(--s2); min-width: 280px; max-width: 460px; flex: 1 1 300px; border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s4) var(--s5); }
.wpitem[data-s="open"], .wpitem[data-s="buying"] { border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); }
.wpitem[data-s="trail"] { border-color: color-mix(in srgb, var(--go) 50%, var(--line)); background: color-mix(in srgb, var(--go) 6%, transparent); }
.wpitem[data-s="closing"] { border-color: color-mix(in srgb, var(--brand) 50%, var(--line)); }
.wptop { display: flex; align-items: center; gap: var(--s3); min-width: 0; }
.wpsym { font: 600 13px/1.2 var(--mono); color: var(--ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wpsym:hover { text-decoration: underline; text-underline-offset: 2px; }
.wpstate { margin-left: auto; font: 600 10.5px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); border: 1px solid var(--line); border-radius: var(--r1); padding: 3px 6px; white-space: nowrap; }
.wpstate[data-s="wait"], .wpstate[data-s="armed"] { color: var(--maybe); border-color: color-mix(in srgb, var(--maybe) 45%, transparent); }
.wpstate[data-s="open"], .wpstate[data-s="buying"] { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.wpstate[data-s="trail"] { color: var(--bg); background: var(--go); border-color: var(--go); }
.wpstate[data-s="closing"] { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 45%, transparent); }
.drop { background: none; border: 0; color: var(--ink-3); cursor: pointer; font-size: 16px; line-height: 1; padding: 0 2px; }
.drop:hover { color: var(--stop); }
.wpwhat { font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.wpwhat b { color: var(--ink); font-weight: 600; font-family: var(--mono); font-size: 13px; }
.wpbar { position: relative; height: 2px; background: var(--rule); margin: var(--s2) 0; }
.wpbar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--maybe); }
.wpitem[data-s="open"] .wpbar i, .wpitem[data-s="buying"] .wpbar i { background: var(--accent); }
.wpitem[data-s="trail"] .wpbar i { background: var(--go); }
.wpbar u { position: absolute; top: -3px; width: 1px; height: 8px; background: var(--ink-3); text-decoration: none; }
.wpwhen { display: flex; gap: var(--s4); flex-wrap: wrap; font: 400 11.5px/1.3 var(--mono); color: var(--ink-3); }
.wpwhen a { color: var(--ink-3); text-decoration: none; } .wpwhen a:hover { color: var(--accent); }
.watchpanel[data-empty="1"] { background: none; border: 0; }
.watchpanel[data-empty="1"] .wphead { padding-inline: 0; border-bottom: 0; }
.watchpanel[data-empty="1"] .wplist { padding: 0 0 var(--s2); }

/* the feed: memelabs' table */
table.feed { width: 100%; max-width: var(--measure); margin: var(--s5) auto 0; border-collapse: collapse; table-layout: fixed; }
.feed thead th { text-align: left; padding: var(--s4); font: 600 9.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); border-bottom: 1.5px solid var(--ink-3); white-space: nowrap; }
.feed td { padding: 0 var(--s4); height: var(--row-h); border-bottom: 1px solid var(--rule); vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.feed td:first-child, .feed th:first-child { padding-left: var(--s5); }
.feed td:last-child, .feed th:last-child { padding-right: var(--s5); }
.feed .r { text-align: right; }
.row { cursor: pointer; }
.row:hover td { background: var(--surface-2); }
.row[data-k="win"] td:first-child { box-shadow: inset 2px 0 0 var(--go); }
.row[data-k="loss"] td:first-child { box-shadow: inset 2px 0 0 var(--stop); }
.row[data-k="skip"] td { color: var(--ink-3); }
.row[data-k="skip"] td:first-child { box-shadow: inset 2px 0 0 var(--rule); }
.c-age { width: 58px; } .c-tok { width: 250px; } .c-io { width: 150px; } .c-pk { width: 74px; } .c-held { width: 70px; } .c-why { width: auto; } .c-sol { width: 120px; } .c-res { width: 96px; }
.age { font: 500 12px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.age[data-fresh="hot"] { color: var(--go); } .age[data-fresh="warm"] { color: var(--maybe); }
.c-tok .inner { display: grid; grid-template-columns: 16px 11px minmax(0, auto) 1fr; align-items: center; column-gap: var(--s3); min-width: 0; }
.disc { background: none; border: 0; padding: 0; cursor: pointer; color: var(--ink-3); display: grid; place-items: center; }
.disc svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--t-fast) var(--ease); }
.row[aria-expanded="true"] .disc svg { transform: rotate(90deg); }
.status { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--off); justify-self: center; }
.status[data-k="win"] { background: var(--go); } .status[data-k="loss"] { background: var(--stop); } .status[data-k="skip"] { background: none; border: 1px solid var(--ink-3); }
.sym { font: 500 14px/1 var(--mono); letter-spacing: -.01em; color: var(--ink); overflow: hidden; text-overflow: ellipsis; }
.row[data-k="skip"] .sym { color: var(--ink-2); }
.badges { display: flex; gap: var(--s2); min-width: 0; overflow: hidden; }
.chip { display: inline-block; font: 600 9.5px/1.5 var(--mono); letter-spacing: .03em; padding: 1px var(--s3); border-radius: var(--r1); color: var(--ink-3); background: none; border: 1px solid var(--rule); white-space: nowrap; text-transform: uppercase; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.chip[data-k="live"] { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 45%, transparent); }
.chip[data-k="q"] { color: var(--ink-2); }
.chip[data-k="trail"] { color: var(--go); border-color: color-mix(in srgb, var(--go) 45%, transparent); }
.chip[data-k="time"] { color: var(--maybe); border-color: color-mix(in srgb, var(--maybe) 45%, transparent); }
.chip[data-k="stop"] { color: var(--stop); border-color: color-mix(in srgb, var(--stop) 45%, transparent); }
.chip[data-k="why"] { text-transform: none; font-family: var(--sans); font-weight: 400; font-size: 11px; letter-spacing: 0; }
.io { font: 400 12px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.io b { color: var(--ink); font-weight: 500; }
.c-res .meter { display: inline-block; width: 30px; height: 2px; background: var(--rule); vertical-align: middle; margin-right: var(--s3); overflow: hidden; }
.c-res .meter i { display: block; height: 100%; background: var(--off); }
.row[data-k="win"] .meter i { background: var(--go); } .row[data-k="loss"] .meter i { background: var(--stop); }
.num { font: 600 13px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.row[data-k="win"] .num { color: var(--go); } .row[data-k="loss"] .num { color: var(--stop); }
.sol { font: 400 12px/1 var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.detail td { background: var(--surface); border-bottom: 1px solid var(--line); padding: var(--s5) var(--s6) var(--s6) 38px; height: auto; white-space: normal; cursor: default; }
.dcols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5) var(--s8); }
.dsec { margin: 0 0 var(--s4); font: 600 14px/1.2 var(--sans); color: var(--ink); }
.dgrid { display: grid; grid-template-columns: 108px 1fr; gap: var(--s3) var(--s5); align-items: baseline; margin: 0; }
.dgrid dt { color: var(--ink-3); font: 600 10px/1.5 var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.dgrid dd { margin: 0; word-break: break-word; }
.dgrid dd a { color: var(--accent); text-decoration: none; } .dgrid dd a:hover { text-decoration: underline; text-underline-offset: 2px; }
.ev { font-family: var(--mono); font-size: 11.5px; color: var(--ink-2); }
.dacts { display: flex; gap: var(--s3); margin-top: var(--s5); flex-wrap: wrap; }
.dacts a, .dacts button { font-size: 11px; text-decoration: none; padding: var(--s3) var(--s5); border: 1px solid var(--line); border-radius: var(--r2); color: var(--ink-2); background: none; cursor: pointer; }
.dacts a:hover, .dacts button:hover { color: var(--ink); border-color: var(--accent); }
.copy { display: inline-flex; align-items: center; height: 18px; vertical-align: middle; background: none; border: 1px solid var(--line); border-radius: var(--r1); color: var(--ink-3); cursor: pointer; font-size: 10px; padding: 1px var(--s3); margin-left: var(--s3); }
.copy:hover { color: var(--ink); border-color: var(--ink-3); }
.empty { color: var(--ink-3); text-align: center; padding: var(--s8) var(--s6); margin: 0; }
.hint { text-align: center; color: var(--ink-3); font-size: 11px; margin: var(--s7) auto 0; max-width: var(--measure); }

/* settings, wallet: the detail panel's grid as a page */
.page { max-width: var(--measure); margin: var(--s5) auto 0; display: grid; gap: var(--s5); }
.sec { border: 1px solid var(--frame); border-radius: var(--r3); background: var(--surface); }
.sechead { display: flex; align-items: baseline; gap: var(--s4); padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line-soft); }
.sechead b { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.sechead span { color: var(--ink-3); font-size: 11px; margin-left: auto; }
.setlist { margin: 0; }
.set { display: grid; grid-template-columns: 220px 200px 1fr; gap: var(--s5); align-items: center; padding: var(--s3) var(--s5); border-bottom: 1px solid var(--line-soft); min-height: 46px; }
.set:last-child { border-bottom: 0; }
.set dt { color: var(--ink-2); font: 500 12.5px/1.3 var(--sans); }
.set dd { margin: 0; }
.set .help { color: var(--ink-3); font-size: 11.5px; line-height: 1.4; }
.fld { display: flex; align-items: center; height: 32px; background: var(--bg); border: 1px solid var(--frame); border-radius: 6px; transition: border-color var(--t-fast) var(--ease); }
.fld:focus-within { border-color: var(--ink-3); }
.fld input { flex: 1; min-width: 0; height: 100%; background: none; border: 0; padding: 0 var(--s4); font: 500 13px/1 var(--mono); font-variant-numeric: tabular-nums; outline: none; }
.fld em { font-style: normal; color: var(--ink-3); font: 500 11px/1 var(--mono); padding-right: var(--s4); white-space: nowrap; }
.fld.wide { max-width: 520px; }
.set[data-bad="1"] .fld { border-color: var(--stop); }
.tog { display: inline-flex; align-items: center; gap: var(--s4); background: none; border: 0; padding: 0; cursor: pointer; color: var(--ink-2); font: 500 12.5px/1 var(--sans); }
.tog[aria-pressed="true"] { color: var(--ink); }
.tog[aria-pressed="true"] .sw { background: var(--go-bg); border-color: color-mix(in srgb, var(--go) 55%, var(--frame)); }
.tog[aria-pressed="true"] .sw::after { transform: translateX(11px); background: var(--go); }
.plan { list-style: none; margin: 0; padding: var(--s4) var(--s5) var(--s5); display: grid; gap: var(--s3); counter-reset: st; }
.plan li { display: grid; grid-template-columns: 22px 1fr; gap: var(--s3); color: var(--ink-2); font-size: 13px; line-height: 1.5; counter-increment: st; }
.plan li::before { content: counter(st); font: 600 11px/1.9 var(--mono); color: var(--ink-3); }
.plan b { color: var(--ink); font: 600 12.5px/1 var(--mono); }
.bal { font: 600 26px/1 var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.bal small { font: 500 12px/1 var(--mono); color: var(--ink-3); margin-left: var(--s4); letter-spacing: 0; }
.addr { font: 500 13px/1.3 var(--mono); word-break: break-all; }
.secfoot { display: flex; align-items: center; justify-content: flex-end; gap: var(--s5); padding: var(--s4) var(--s5); border-top: 1px solid var(--line-soft); }
.secfoot .note { margin-right: auto; color: var(--ink-3); font-size: 11.5px; }

/* log: memelabs' pre-launch table */
table.list { width: 100%; max-width: var(--measure); margin: var(--s5) auto 0; border-collapse: collapse; table-layout: fixed; }
table.list th { text-align: left; font: 500 11px/1 var(--mono); color: var(--ink-3); text-transform: uppercase; letter-spacing: .04em; padding: 8px 10px; border-bottom: 1px solid var(--rule); }
table.list td { padding: 8px 10px; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
table.list tbody tr:hover { background: color-mix(in srgb, var(--ink) 4%, transparent); }
table.list .c-t { width: 110px; } table.list .c-k { width: 110px; }
table.list .t { font: 400 11.5px/1 var(--mono); color: var(--ink-3); white-space: nowrap; }
.kind { font: 600 9.5px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.kind[data-k="buy"], .kind[data-k="trail"] { color: var(--accent); }
.kind[data-k="sell"] { color: var(--go); } .kind[data-k="error"] { color: var(--stop); } .kind[data-k="launch"] { color: var(--maybe); } .kind[data-k="withdraw"] { color: var(--brand); }
table.list .txt { color: var(--ink-2); }

/* dialog, toasts */
dialog { background: var(--surface); color: var(--ink); border: 1px solid var(--frame); border-radius: 8px; padding: 0; width: min(424px, calc(100% - 24px)); }
dialog::backdrop { background: rgb(0 0 0 / .55); }
dialog form { padding: var(--s6); display: grid; gap: var(--s5); }
dialog h3 { margin: 0; font: 600 13px/1.3 var(--sans); }
dialog p { margin: 0; color: var(--ink-2); font-size: 12.5px; line-height: 1.5; }
dialog p b { color: var(--ink); font-family: var(--mono); }
dialog .row2 { display: flex; justify-content: flex-end; gap: var(--s3); }
.err { color: var(--stop); font-size: 12px; margin: 0; }
.toasts { position: fixed; right: var(--s6); bottom: var(--s6); z-index: 60; display: flex; flex-direction: column-reverse; gap: var(--s3); max-width: 340px; }
.toast { background: var(--surface-2); border: 1px solid var(--frame); border-left: 3px solid var(--accent); border-radius: var(--r2); padding: var(--s4) var(--s5); animation: tin 180ms var(--ease); }
.toast b { display: block; font: 600 12px/1.3 var(--mono); }
.toast span { color: var(--ink-2); font-size: 11px; }
.toast[data-kind="err"] { border-left-color: var(--stop); }
@keyframes tin { from { opacity: 0; transform: translateY(6px); } }
@keyframes settle { from { background: var(--accent-bg); } }
.row.fresh td { animation: settle 1.8s var(--ease); }

/* login, 404 */
.login-page { display: grid; place-items: center; min-height: 100vh; padding: var(--s6); }
.login { width: min(340px, 100%); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r3); padding: var(--s7); }
.login .brand { margin-bottom: var(--s6); }
.brandtext b { display: block; font: 600 14px/1.1 var(--sans); letter-spacing: .02em; }
.brandtext small { color: var(--ink-3); font-size: 11.5px; }
.login label { display: block; font-size: 11px; color: var(--ink-3); text-transform: uppercase; letter-spacing: .07em; margin-bottom: var(--s2); }
.login input { width: 100%; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s4) var(--s5); margin-bottom: var(--s5); }
.login input:focus { outline: none; border-color: var(--accent); }
.login button { width: 100%; margin-top: var(--s3); background: var(--accent); border: 0; color: #11140b; font-weight: 600; padding: var(--s4); border-radius: var(--r2); cursor: pointer; }
.login button:disabled { opacity: .6; cursor: default; }
.login .err { margin-top: var(--s5); }
.nf { text-align: center; display: grid; gap: var(--s5); justify-items: center; }
.nf .code { font: 600 56px/1 var(--mono); color: var(--accent); letter-spacing: -.04em; }
.nf p { margin: 0; color: var(--ink-2); }

@media (max-width: 1000px) {
  .legend { display: none; }
  .c-pk, .c-held { display: none; }
  .set { grid-template-columns: 180px 170px 1fr; }
}
@media (max-width: 760px) {
  .appbar .bar { grid-template-columns: auto 1fr; height: auto; padding-block: var(--s4); row-gap: var(--s3); }
  .tabs { grid-column: 1 / -1; grid-row: 2; gap: var(--s6); overflow-x: auto; height: 32px; }
  .actions { grid-column: 2; grid-row: 1; }
  .live .txt { display: none; }
  .toolbar .bar { height: auto; padding-block: var(--s4); flex-wrap: wrap; }
  .toolbar .qbox { order: 9; flex-basis: 100%; }
  .metabar .bar { height: auto; padding-block: var(--s3); }
  .stats { flex-wrap: wrap; row-gap: var(--s3); }
  .c-io, .c-why, .c-sol { display: none; }
  .c-tok { width: auto; }
  .dcols { grid-template-columns: 1fr; }
  .detail td { padding-left: var(--s5); }
  .set { grid-template-columns: 1fr; gap: var(--s3); padding-block: var(--s4); }
  .wpitem { min-width: 0; }
  table.list .c-k { width: 72px; } table.list .c-t { width: 64px; }
}
@media (prefers-reduced-motion: reduce) { .lg-fill, .lg-b, .live .dot, .row.fresh td { animation: none !important; } }
.set [data-span="2"] { grid-column: span 2; }
.lgi i.lg-win { background: var(--go); } .lgi i.lg-loss { background: var(--stop); } .lgi i.lg-skip { border: 1px solid var(--ink-3); }
@media (max-width: 760px) { .set [data-span="2"] { grid-column: auto; } }
#rules { display: grid; gap: var(--s5); }
@media (max-width: 760px) { .chrome { position: static; } }
