/* ============================================================================
   Stargazer v0.94 design code — ported 1:1 from the owner's reference prototype
   (Stargazer_v0.94_prototype.html). Every class carries the z- prefix so nothing
   collides with Bootstrap / MudBlazor / the legacy sg-* and ts-* sheets, which stay
   loaded only for admin and legacy pages (rendered inside .z-legacy).
   Reference notes, verbatim:
   Layout: one 560px column, hairline and dashed separators, no cards except modal sheets.
   Spacing 8 / 16 / 24 / 40. Type 11 / 13 / 15 / 17 / 20 / 32. Weights 500 / 600 / 700.
   Buttons 44 / 36 / 28, one height per row. Caps only in section labels. */
:root{color-scheme:dark;
 --bg:#06060C;--sheet:#0A0A12;--tx:#F0F1F7;--mu:#A6AAC0;--fa:#767A92;--acc:#A78BFA;
 --line:rgba(240,241,247,.09);--dash:rgba(240,241,247,.07);--accbg:rgba(167,139,250,.1);--accln:rgba(167,139,250,.4);
 --k1:#F0F1F7;--k2:#A78BFA;--k3:#7E7FA0;--k4:#3E4059;
 --s1:8px;--s2:16px;--s3:24px;--s4:40px;
 --f1:11px;--f2:13px;--f3:15px;--f35:17px;--f4:20px;--f5:32px}
/* Resets are SCOPED to the v0.94 surfaces (specificity 0 via :where), so admin / legacy pages inside
   .z-legacy keep the spacing their own stylesheets expect. The element list repeats at (0,0,1) to beat
   Bootstrap's reboot (p / headings / lists carry margins there). */
:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) *{margin:0;padding:0;box-sizing:border-box}
:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) :is(p,h1,h2,h3,h4,h5,h6,ul,ol,dl,dd,figure,blockquote,pre,fieldset,legend,label,hr){margin:0;padding:0}
html,body{background:var(--bg);height:auto;min-height:100%;overflow-x:hidden}
@supports (overflow:clip){html,body{overflow-x:clip}}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;background:var(--bg)}
/* Type scale belongs to the v0.94 shell only: the chat and account layouts (no .z-app) and legacy pages
   (.z-legacy) keep the base size / leading their own stylesheets were written against. */
.z-app,.z-menu-ov,.z-sheet,.z-toast{font-size:var(--f3);line-height:1.35;color:var(--tx)}
.z-page.z-legacy{font-size:1rem;line-height:1.5;color:var(--text,#e6e6e6)}
:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) :is(button,input,select,textarea){font-family:inherit;color:inherit}:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) button{cursor:pointer}
:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) a{color:inherit;text-decoration:none}:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) a:hover{text-decoration:none}
:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) :focus-visible{outline:1.5px solid var(--acc);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001s!important;transition-duration:.001s!important}}
:where(.z-top,.z-menu-ov,.z-sheet,.z-toast,.z-page:not(.z-legacy)) :is(u,s,i,em){text-decoration:none;font-style:normal}
.z-hide{display:none!important}
.z-sky{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 24% at 50% -3%,rgba(139,92,246,.12),transparent 70%)}
.z-wrap{position:relative;z-index:1}

/* page */
.z-page{max-width:560px;margin:0 auto;padding:var(--s4) var(--s3) 120px}
@media(max-width:640px){.z-page{padding:var(--s3) var(--s2) 120px}}
@keyframes z-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes z-pulse{0%,100%{opacity:1}50%{opacity:.25}}
.z-anim{animation:z-rise .4s cubic-bezier(.2,.7,.2,1) both}
.z-view{display:none}.z-view.z-show{display:block}

/* tabs, level 2: one style everywhere below the nav */
.z-tabs{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}
.z-tabs button{background:none;border:none;font-size:var(--f2);font-weight:600;color:var(--fa);padding:4px 0;border-bottom:1.5px solid transparent;transition:color .16s}
.z-tabs button:hover{color:var(--mu)}
.z-tabs button.z-on{color:var(--tx);border-bottom-color:var(--acc)}
.z-tabs button em{color:var(--acc);margin-left:6px;font-weight:600}
.z-tabs .z-upd{margin-left:auto;display:flex;align-items:center;gap:var(--s1);font-size:var(--f1);font-weight:600;color:var(--fa)}
.z-tabs .z-upd i{width:6px;height:6px;border-radius:100px;background:var(--acc);animation:z-pulse 1.2s infinite}

/* text roles */
.z-lab{font-size:var(--f1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fa)}
.z-sect{margin-top:var(--s4);margin-bottom:var(--s1)}
.z-empty{font-size:var(--f2);color:var(--fa);font-weight:500;padding:var(--s2) 0}
.z-mu{color:var(--fa);font-weight:500}
.z-note{font-size:var(--f2);font-weight:500;color:var(--fa);margin-top:var(--s2);line-height:1.5}
.z-addr{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--f2);color:var(--mu)}

/* buttons: 44 primary / 36 secondary / 28 compact */
.z-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);background:var(--tx);color:#0B0B12;border:none;border-radius:100px;height:44px;padding:0 var(--s3);font-size:var(--f3);font-weight:700;line-height:1;transition:background .16s,color .16s}
.z-btn:hover{background:var(--acc);color:#140A24}
.z-btn:active{transform:scale(.98)}
.z-btn.z-wide{width:100%}
.z-btn.z-dis{background:rgba(240,241,247,.07);color:var(--fa);pointer-events:none}
.z-btn2{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);background:none;border:1px solid var(--line);color:var(--mu);border-radius:100px;height:36px;padding:0 var(--s2);font-size:var(--f2);font-weight:600;line-height:1;transition:.16s;white-space:nowrap}
.z-btn2:hover{color:var(--tx);border-color:rgba(240,241,247,.26)}
.z-btn2.z-l{height:44px;padding:0 var(--s3);font-size:var(--f3)}
.z-btn2.z-sm{height:28px;padding:0 12px;font-size:var(--f2)}
.z-btn2.z-sel{color:var(--acc);border-color:var(--accln);background:var(--accbg)}
.z-btn2.z-act{color:var(--acc);border-color:var(--accln)}
.z-btn2.z-dis2{opacity:.4;pointer-events:none}
.z-btn2 b{color:var(--tx);font-weight:600}
.z-btnt{background:none;border:none;color:var(--mu);font-size:var(--f2);font-weight:600;padding:0;transition:color .16s}
.z-btnt:hover{color:var(--tx)}
.z-btnt.z-acc{color:var(--acc)}
.z-iconb{width:36px;height:36px;flex:none;border-radius:100px;border:1px solid var(--line);background:none;color:var(--mu);display:inline-flex;align-items:center;justify-content:center;transition:.16s}
.z-iconb.z-l{width:44px;height:44px}
.z-iconb:hover{color:var(--tx);border-color:rgba(240,241,247,.26)}
.z-iconb.z-on{color:var(--acc);border-color:var(--accln);background:var(--accbg)}
.z-iconb svg{width:16px;height:16px;display:block}
.z-iconb svg path,.z-iconb svg circle{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.z-actions{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap}
.z-lock{font-size:var(--f1);font-weight:600;color:var(--fa);letter-spacing:.02em}

/* pill: only for states */
.z-pill{display:inline-flex;align-items:center;height:22px;font-size:var(--f1);font-weight:600;letter-spacing:.02em;padding:0 var(--s1);border-radius:100px;color:var(--mu);border:1px solid var(--line);white-space:nowrap;line-height:1}
.z-pill.z-acc{color:var(--acc);border-color:var(--accln);background:var(--accbg)}

/* progress */
.z-pbar{height:2px;background:rgba(240,241,247,.08);position:relative;margin-top:var(--s1)}
.z-pbar u{position:absolute;left:0;top:0;height:2px;background:var(--acc)}

/* list row: min 52, caption before value */
.z-li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2);align-items:center;min-height:52px;padding:12px 0;border-top:1px dashed var(--dash)}
.z-li:first-child{border-top:none}
.z-li.z-tap{cursor:pointer}
.z-li .z-t{font-size:var(--f3);font-weight:600;display:flex;align-items:center;gap:var(--s1);flex-wrap:wrap;min-width:0}
.z-li .z-s{font-size:var(--f2);color:var(--fa);font-weight:500;margin-top:4px}
.z-li .z-k{font-size:var(--f2);color:var(--fa);font-weight:500}
.z-li .z-v{font-size:var(--f2);font-weight:600;color:var(--mu);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.z-li .z-v.z-acc{color:var(--acc)}
.z-li .z-pbar{grid-column:1/-1}
.z-li.z-tap:hover .z-t,.z-li.z-on .z-t{color:var(--tx)}
.z-li.z-off{opacity:.35;pointer-events:none}
.z-li.z-form input.z-f{background:none;border:none;border-bottom:1px solid var(--line);color:var(--tx);font-size:var(--f3);font-weight:600;width:100%;padding:4px 1px;text-align:right}
.z-li.z-form input.z-f:focus{outline:none;border-color:var(--acc)}
.z-rd{width:16px;height:16px;border-radius:100px;border:1px solid rgba(240,241,247,.24);flex:none;position:relative}
.z-on>.z-t .z-rd,.z-li.z-on .z-rd{border-color:var(--acc)}
.z-li.z-on .z-rd:after{content:'';position:absolute;inset:3px;border-radius:100px;background:var(--acc)}

/* table */
.z-thead,.z-tr{display:grid;grid-template-columns:minmax(0,1fr) 84px 84px 96px;gap:var(--s2);align-items:center}
.z-thead{padding-bottom:12px;border-bottom:1px solid var(--line)}
.z-thead i{font-size:var(--f1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fa)}
.z-thead i:not(:first-child),.z-tr i:not(:first-child){text-align:right}
.z-tr{min-height:52px;border-top:1px dashed var(--dash)}
.z-tr:nth-child(2){border-top:none}
.z-tr i{font-size:var(--f2);font-weight:600;color:var(--mu);font-variant-numeric:tabular-nums}
.z-tr i:first-child{font-size:var(--f3);color:var(--tx);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){.z-thead,.z-tr{grid-template-columns:minmax(0,1fr) 72px 84px}.z-thead i:nth-child(3),.z-tr i:nth-child(3){display:none}}

/* inputs */
.z-search{width:100%;background:none;border:none;border-bottom:1px solid var(--line);font-size:var(--f3);font-weight:500;height:44px;padding:0 1px;border-radius:0;transition:border-color .2s}
.z-search::placeholder,.z-inp::placeholder{color:var(--fa)}
.z-search:focus,.z-inp:focus{outline:none;border-color:var(--acc)}
.z-inp{width:100%;background:none;border:none;border-bottom:1px solid var(--line);font-size:var(--f3);font-weight:600;height:36px;padding:0 1px;border-radius:0;font-variant-numeric:tabular-nums}
.z-srow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2);align-items:center}
.z-duo{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.z-grp{margin-top:var(--s3)}
.z-grp>.z-lab{display:block;margin-bottom:var(--s1)}
.z-chk{display:flex;align-items:center;gap:12px;font-size:var(--f2);font-weight:500;color:var(--mu);cursor:pointer;min-height:36px;margin-top:var(--s2)}
.z-chk u{width:16px;height:16px;border:1px solid rgba(240,241,247,.24);border-radius:4px;flex:none;position:relative}
.z-chk.z-on u{background:var(--acc);border-color:var(--acc)}
.z-chk.z-on u:after{content:'';position:absolute;left:4px;top:1px;width:5px;height:9px;border-right:2px solid #140A24;border-bottom:2px solid #140A24;transform:rotate(42deg)}
.z-chk.z-on{color:var(--tx)}
.z-chk a{color:var(--tx);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--fa)}

/* filters */
.z-frow{display:flex;gap:var(--s1);flex-wrap:wrap;margin-top:var(--s2)}
.z-frow .z-btn2.z-open{border-color:var(--accln);color:var(--tx)}
.z-seg{display:flex;flex-wrap:wrap;gap:var(--s1)}
.z-fpick{margin-top:var(--s2)}
.z-fold{margin-top:var(--s3);border-top:1px solid var(--line)}
.z-fold>h4{display:flex;align-items:center;gap:var(--s1);height:52px;font-size:var(--f1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);cursor:pointer}
.z-fold>h4 .z-cv{width:7px;height:7px;border-right:1.5px solid var(--fa);border-bottom:1.5px solid var(--fa);transform:rotate(-45deg);transition:transform .2s;margin-right:4px}
.z-fold.z-open>h4 .z-cv{transform:rotate(45deg)}
.z-fold>h4:hover{color:var(--tx)}
.z-fold>.z-fb{display:none;padding-bottom:var(--s2)}
.z-fold.z-open>.z-fb{display:block}
.z-fold .z-fold{margin-top:var(--s2)}
.z-axrow{display:grid;grid-template-columns:minmax(0,1fr) 72px 72px;gap:var(--s2);align-items:center;min-height:52px;border-top:1px dashed var(--dash)}
.z-axrow.z-h{min-height:0;padding-bottom:var(--s1);border-top:none}
.z-axrow .z-cn{font-size:var(--f3);font-weight:600}
.z-axrow .z-inp,.z-axrow .z-lab{text-align:right}
.z-axrow .z-lab:first-child{text-align:left}
.z-addc{background:none;border:1px dashed rgba(240,241,247,.2);color:var(--mu);border-radius:100px;height:36px;padding:0 var(--s2);font-size:var(--f2);font-weight:600;margin-top:var(--s2)}
.z-addc:hover{color:var(--tx)}

/* swap and module primitives */
.z-amt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px var(--s2);align-items:center;padding:12px 0;border-top:1px dashed var(--dash)}
.z-mod>.z-amt:first-child,.z-mod .z-tabs+.z-amt,.z-mod .z-tabs+div>.z-amt:first-child{border-top:none}
.z-amt .z-sub{order:-1;grid-column:1/-1;display:flex;justify-content:space-between;font-size:var(--f2);color:var(--fa);font-weight:500}
.z-amt input{background:none;border:none;font-size:var(--f4);font-weight:700;width:100%;padding:0;font-variant-numeric:tabular-nums;height:32px}
.z-amt input:focus{outline:none}
.z-amt .z-tok{font-size:var(--f3);font-weight:700;color:var(--mu);white-space:nowrap}
.z-qrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2);align-items:center;min-height:52px;border-top:1px dashed var(--dash);cursor:pointer}
.z-qrow .z-p{font-size:var(--f2);font-weight:600;color:var(--mu)}
.z-qrow .z-o{font-size:var(--f3);font-weight:700;color:var(--mu);font-variant-numeric:tabular-nums}
.z-qrow.z-on .z-p{color:var(--tx)}.z-qrow.z-on .z-o{color:var(--acc)}
.z-lab.z-t{display:block;margin-top:var(--s3);margin-bottom:var(--s1)}
.z-big{font-size:var(--f5);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;line-height:1.15}
.z-rng{margin-top:var(--s3)}
.z-rng .z-tr2{position:relative;height:28px;background:rgba(240,241,247,.05);border-radius:4px;overflow:hidden}
.z-rng .z-zone{position:absolute;top:0;bottom:0;border-left:1px dashed rgba(167,139,250,.5);border-right:1px dashed rgba(167,139,250,.5);background:rgba(167,139,250,.07)}
.z-rng .z-sel{position:absolute;top:0;bottom:0;background:rgba(240,241,247,.14)}
.z-rng .z-now{position:absolute;top:0;bottom:0;width:1.5px;background:var(--acc)}
.z-rng .z-rl{display:flex;justify-content:space-between;font-size:var(--f1);color:var(--fa);font-weight:500;margin-top:var(--s1);font-variant-numeric:tabular-nums}
.z-rng .z-rl b{color:var(--tx);font-weight:600}
.z-rng .z-lg{display:flex;gap:var(--s2);margin-top:var(--s1);font-size:var(--f1);color:var(--fa);font-weight:500}
.z-rng .z-lg u{display:inline-block;width:14px;height:2px;background:rgba(240,241,247,.3);margin-right:6px;vertical-align:middle}
.z-rng .z-lg i{display:inline-block;width:14px;height:0;border-top:1px dashed rgba(167,139,250,.6);margin-right:6px;vertical-align:middle}

/* comments */
.z-cm{padding:var(--s2) 0;border-top:1px dashed var(--dash)}
.z-cm:first-child{border-top:none}
.z-cm .z-h{display:flex;align-items:center;gap:var(--s1);font-size:var(--f2)}
.z-cm .z-h .z-tm{margin-left:auto;color:var(--fa);font-weight:500}
.z-cm p{font-size:var(--f3);font-weight:500;color:var(--mu);line-height:1.5;margin-top:var(--s1);max-width:60ch}
.z-menu{display:flex;gap:var(--s1);margin-top:var(--s1)}
.z-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2);align-items:end;margin-top:var(--s2)}

/* profile */
.z-ph{display:flex;gap:var(--s2);align-items:center}
.z-pn{font-size:var(--f4);font-weight:700;display:flex;align-items:center;gap:var(--s1);flex-wrap:wrap}
.z-meta{font-size:var(--f2);font-weight:500;color:var(--fa);margin-top:4px}
.z-meta .z-btnt{font-size:var(--f2)}
.z-three{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin-top:var(--s3)}
.z-three .z-v{font-size:var(--f4);font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}
.z-pact{display:flex;gap:var(--s1);margin-top:var(--s3);align-items:center}
.z-pact .z-btn{flex:1}.z-pact .z-btn2{flex:1}
.z-links{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s1)}

.z-toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(16px);background:var(--tx);color:#0B0B12;font-size:var(--f2);font-weight:600;padding:12px var(--s3);border-radius:100px;opacity:0;pointer-events:none;transition:.25s;z-index:99;white-space:nowrap}
.z-toast.z-show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:641px){.z-toast{bottom:var(--s4)}}

/* header: logo, current section, burger */
.z-top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;display:flex;align-items:center;gap:var(--s2);height:64px;padding:0 var(--s3);background:rgba(6,6,12,.86);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.z-logo{display:flex;align-items:center;gap:var(--s1);font-weight:700;letter-spacing:.22em;font-size:var(--f2);background:none;border:none;padding:0}
.z-logo svg{width:12px;height:12px;display:block}.z-logo path{fill:var(--acc)}
.z-crumb{font-size:var(--f3);font-weight:600;color:var(--mu);margin-left:var(--s1)}
.z-burger{margin-left:auto}
.z-burger svg path{stroke-width:2}
@media(max-width:640px){.z-top{padding:0 var(--s2)}}

/* full screen menu */
.z-menu-ov{position:fixed;inset:0;z-index:95;background:var(--bg);display:none;flex-direction:column;padding:calc(env(safe-area-inset-top,0px)) 0 calc(var(--s3) + env(safe-area-inset-bottom,0px))}
.z-menu-ov.z-show{display:flex;animation:z-fade .2s both}
@keyframes z-fade{from{opacity:0}to{opacity:1}}
.z-menu-ov .z-top{position:static;background:none}
.z-mlist{max-width:560px;width:100%;margin:0 auto;padding:var(--s4) var(--s3) 0;display:flex;flex-direction:column}
.z-mlist button{background:none;border:none;text-align:left;font-size:var(--f5);font-weight:700;letter-spacing:-.02em;color:var(--mu);height:64px;border-bottom:1px solid var(--dash);transition:color .16s}
.z-mlist button:hover{color:var(--tx)}
.z-mlist button.z-on{color:var(--tx)}
.z-mlist button.z-on:after{content:'';display:inline-block;width:8px;height:8px;border-radius:100px;background:var(--acc);margin-left:12px;vertical-align:middle}
.z-mfoot{max-width:560px;width:100%;margin:auto auto 0;padding:0 var(--s3)}
@media(max-width:640px){.z-mlist,.z-mfoot{padding-left:var(--s2);padding-right:var(--s2)}}

/* screen stack */
.z-page{animation:none}
.z-page.z-push{animation:z-slidein .32s cubic-bezier(.2,.7,.2,1) both}
.z-page.z-pop{animation:z-fade .2s both}
@keyframes z-slidein{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.z-bar2{display:flex;align-items:center;gap:12px;margin-bottom:var(--s3)}
.z-bar2 .z-ttl{font-size:var(--f3);font-weight:700}
.z-bar2 .z-sp{margin-left:auto}

/* applied filters */
.z-applied{display:flex;gap:var(--s1);overflow-x:auto;scrollbar-width:none;margin-top:var(--s2);padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent)}
.z-applied::-webkit-scrollbar{display:none}
.z-chip{flex:none;display:inline-flex;align-items:center;gap:var(--s1);height:36px;padding:0 12px 0 var(--s2);border-radius:100px;background:var(--accbg);border:1px solid var(--accln);color:var(--tx);font-size:var(--f2);font-weight:600;white-space:nowrap}
.z-chip i{color:var(--acc);font-size:15px;line-height:1}
.z-chip.z-clear{background:none;border-color:transparent;color:var(--mu);padding:0 var(--s1)}

/* token list */
.z-lhead{display:flex;justify-content:space-between;margin-top:var(--s4);padding-bottom:var(--s1);border-bottom:1px solid var(--line)}
.z-tile{display:grid;grid-template-columns:44px minmax(0,1fr) auto;column-gap:14px;row-gap:10px;align-items:center;width:100%;background:none;border:none;border-top:1px dashed var(--dash);padding:var(--s2) 0;text-align:left;cursor:pointer;transition:background .16s}
.z-tile:first-child{border-top:none}
.z-tile:hover .z-tk{color:var(--acc)}
.z-tile .z-av{grid-row:1/3}
.z-tile .z-tk{font-size:var(--f35);font-weight:700;letter-spacing:-.01em}
.z-tile .z-em{font-size:var(--f4);font-weight:700;color:var(--acc);font-variant-numeric:tabular-nums;text-align:right;letter-spacing:-.01em}
.z-tile .z-meta2{display:flex;gap:12px;font-size:var(--f2);font-weight:600;color:var(--fa);font-variant-numeric:tabular-nums}
.z-tile .z-meta2 b{color:var(--mu);font-weight:600}
.z-tile .z-meta2 .z-up{color:var(--buy)}.z-tile .z-meta2 .z-dn{color:var(--sell)}
.z-tile .z-mini{justify-self:end;width:96px;height:24px}
.z-av{width:44px;height:44px;border-radius:100px;flex:none;background:#1A1728;display:flex;align-items:center;justify-content:center;font-size:var(--f1);font-weight:700;color:var(--acc)}
.z-av.z-s{width:24px;height:24px;font-size:9px;border:2px solid var(--bg)}
.z-av.z-l{width:64px;height:64px;font-size:var(--f3)}
.z-mini{display:block}

/* skeleton */
.z-sk{background:linear-gradient(90deg,rgba(240,241,247,.05),rgba(240,241,247,.1),rgba(240,241,247,.05));background-size:200% 100%;animation:z-shimmer 1.2s infinite linear;border-radius:6px}
@keyframes z-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.z-skt{display:grid;grid-template-columns:44px 1fr 96px;gap:14px;align-items:center;padding:var(--s2) 0;border-top:1px dashed var(--dash)}
.z-skt:first-child{border-top:none}

/* token screen */
.z-thead2{display:flex;align-items:center;gap:var(--s2)}
.z-thead2 .z-nm{font-size:var(--f5);font-weight:700;letter-spacing:-.02em;line-height:1.1}
.z-thead2 .z-sub{font-size:var(--f3);font-weight:500;color:var(--fa);margin-top:2px}
.z-hero{margin-top:var(--s3)}
.z-hero span{display:block;font-size:var(--f2);font-weight:500;color:var(--fa)}
.z-hero b{display:block;font-size:var(--f5);font-weight:700;letter-spacing:-.02em;color:var(--acc);line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums}
.z-chh{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s3)}
.z-chwrap{position:relative;margin-top:var(--s2);touch-action:pan-y}
.z-chart{width:100%;height:148px;display:block}
.z-scrub{position:absolute;top:0;bottom:0;width:1px;background:rgba(240,241,247,.35);pointer-events:none;display:none}
.z-scrubv{position:absolute;top:-4px;transform:translateX(-50%);font-size:var(--f1);font-weight:600;color:var(--tx);background:var(--sheet);border:1px solid var(--line);border-radius:100px;padding:3px 8px;white-space:nowrap;pointer-events:none;display:none;font-variant-numeric:tabular-nums}
.z-chf{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s1)}
.z-chf .z-v{font-size:var(--f2);font-weight:600;color:var(--mu);font-variant-numeric:tabular-nums}
.z-ctabs{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
.z-tabbody{margin-top:var(--s1)}
.z-bl{margin-top:var(--s3)}
.z-bar{display:flex;height:8px;border-radius:100px;overflow:hidden;margin-top:var(--s1)}
.z-bar u{display:block;height:8px}
.z-leg{display:grid;grid-template-columns:1fr 1fr;gap:var(--s1) var(--s3);margin-top:12px}
.z-leg i{display:flex;align-items:center;gap:var(--s1);font-size:var(--f2);font-weight:500;color:var(--mu)}
.z-leg i b{color:var(--tx);font-weight:600;margin-left:auto;font-variant-numeric:tabular-nums}
.z-dot{width:8px;height:8px;border-radius:2px;flex:none}
.z-cat{font-size:var(--f3);font-weight:700;margin-top:var(--s4)}
.z-rare{color:var(--acc);font-weight:600}
.z-common{color:var(--fa);font-weight:600}
.z-sticky-act{position:sticky;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:var(--s1);margin:var(--s4) calc(var(--s3) * -1) 0;padding:12px var(--s3) calc(12px + env(safe-area-inset-bottom,0px));background:rgba(6,6,12,.9);backdrop-filter:blur(16px);border-top:1px solid var(--line)}
@media(max-width:640px){.z-sticky-act{margin-left:calc(var(--s2) * -1);margin-right:calc(var(--s2) * -1);padding-left:var(--s2);padding-right:var(--s2)}}
.z-sticky-act .z-btn,.z-sticky-act .z-btn2{width:100%;padding:0 var(--s1)}
.z-page.z-has-act{padding-bottom:0}

/* feed event */
.z-fg{border-top:1px dashed var(--dash);padding-top:var(--s2)}
.z-fg:first-child{border-top:none;padding-top:0}
.z-fg .z-tile{border-top:none;padding-top:var(--s1)}
.z-evl{display:flex;align-items:center;gap:var(--s1);width:100%;background:none;border:none;text-align:left;min-height:32px;padding:0}
.z-face{display:flex}
.z-face .z-av{margin-left:-8px}.z-face .z-av:first-child{margin-left:0}
.z-evl .z-tx{font-size:var(--f2);font-weight:500;color:var(--mu);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.z-evl .z-tx b{color:var(--tx);font-weight:600}
.z-evl .z-tm{margin-left:auto;display:flex;gap:12px;font-size:var(--f2);font-weight:500;color:var(--fa);white-space:nowrap}
.z-evl .z-ct{color:var(--acc);font-weight:600}
.z-evl:hover .z-tx b{color:var(--acc)}
.z-evl-row{cursor:default}.z-evl-row .z-evl-main{flex:1 1 auto;min-width:0;width:auto;cursor:pointer}
.z-ct-btn{background:none;border:none;padding:0;font:inherit;color:var(--acc);font-weight:600;cursor:pointer}
.z-evl-more{padding-left:12px;border-left:2px solid var(--dash);margin:4px 0 8px}.z-evl-more .z-evl{min-height:28px}
.z-newpill{position:sticky;top:76px;z-index:30;display:flex;justify-content:center;margin-bottom:var(--s2)}
.z-newpill button{height:36px;padding:0 var(--s2);border-radius:100px;border:none;background:var(--acc);color:#140A24;font-size:var(--f2);font-weight:700}
.z-nw{animation:z-rise .5s cubic-bezier(.2,.7,.2,1) both}
.z-who{background:none;border:none;color:var(--tx);font-size:inherit;font-weight:600;padding:0;text-align:left}
.z-who:hover{color:var(--acc)}

/* people rows and leaderboard */
.z-prow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-height:64px;border-top:1px dashed var(--dash);cursor:pointer}
.z-prow:first-child{border-top:none}
.z-prow .z-nm{font-size:var(--f3);font-weight:600;display:flex;align-items:center;gap:var(--s1)}
.z-prow .z-sub{font-size:var(--f2);font-weight:500;color:var(--fa);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.z-prow .z-rk{width:24px;font-size:var(--f2);font-weight:600;color:var(--fa);font-variant-numeric:tabular-nums}
.z-prow .z-rk.z-hi{color:var(--acc)}
.z-prow .z-val{text-align:right;font-size:var(--f3);font-weight:600;font-variant-numeric:tabular-nums}
.z-prow .z-val s{display:block;font-size:var(--f2);font-weight:500;color:var(--fa);margin-top:2px}
.z-prow .z-lft{display:flex;align-items:center;gap:12px}
.z-check{width:14px;height:14px;display:inline-block}
.z-check path{fill:none;stroke:var(--acc);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.z-check circle{fill:var(--accbg);stroke:var(--accln);stroke-width:1}

/* profile */
.z-ph{display:flex;gap:var(--s2);align-items:center}
.z-pn{font-size:var(--f4);font-weight:700;display:flex;align-items:center;gap:var(--s1);flex-wrap:wrap}
.z-meta{font-size:var(--f2);font-weight:500;color:var(--fa);margin-top:4px}
.z-three{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin-top:var(--s3)}
.z-three .z-v{font-size:var(--f4);font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}
.z-pact{display:grid;grid-template-columns:1fr 1fr 44px;gap:var(--s1);margin-top:var(--s3)}
.z-pact .z-btn,.z-pact .z-btn2{width:100%}
.z-shead{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s4);margin-bottom:var(--s1)}
.z-links{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s1)}

/* sheets: bottom on phones, centered on desktop */
.z-sheet{position:fixed;inset:0;z-index:90;background:rgba(3,3,8,.72);backdrop-filter:blur(6px);display:none;align-items:flex-end;justify-content:center}
.z-sheet.z-show{display:flex;animation:z-fade .18s both}
.z-sh{width:100%;max-width:480px;max-height:88vh;overflow:auto;background:var(--sheet);border:1px solid var(--line);border-bottom:none;border-radius:24px 24px 0 0;padding:12px var(--s3) calc(var(--s3) + env(safe-area-inset-bottom,0px));animation:z-up .28s cubic-bezier(.2,.7,.2,1) both}
.z-sh.z-lg{max-width:560px}
@keyframes z-up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.z-sh .z-grab{width:36px;height:4px;border-radius:100px;background:rgba(240,241,247,.18);margin:0 auto var(--s2)}
.z-sh .z-hd{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}
.z-sh .z-ttl{font-size:var(--f4);font-weight:700}
.z-sh .z-hd .z-iconb{margin-left:auto}
.z-sh .z-foot{position:sticky;bottom:calc(-1 * (var(--s3) + env(safe-area-inset-bottom,0px)));margin:var(--s3) calc(var(--s3) * -1) calc(-1 * (var(--s3) + env(safe-area-inset-bottom,0px)));padding:var(--s2) var(--s3) calc(var(--s3) + env(safe-area-inset-bottom,0px));background:var(--sheet);border-top:1px solid var(--line)}
.z-sh .z-ac{border-top:none}
@media(min-width:641px){.z-sheet{align-items:center}.z-sh{border-radius:24px;border-bottom:1px solid var(--line);max-height:84vh}.z-sh .z-grab{display:none}}
.z-sh .z-li:first-child{border-top:none}
.z-kv{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--f2);color:var(--fa);font-weight:500}
.z-kv b{color:var(--tx);font-weight:600;font-variant-numeric:tabular-nums}
.z-cond{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:52px;border-top:1px dashed var(--dash)}
.z-cond:first-child{border-top:none}
.z-cond .z-t{font-size:var(--f3);font-weight:600}
.z-cond .z-s{font-size:var(--f2);color:var(--fa);font-weight:500;margin-top:2px}
.z-builder{margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--line)}
.z-builder .z-lab{display:block;margin:var(--s2) 0 var(--s1)}
.z-advlink{display:flex;align-items:center;gap:var(--s1);background:none;border:none;color:var(--mu);font-size:var(--f3);font-weight:600;height:52px;padding:0;margin-top:var(--s1)}
.z-advlink:hover{color:var(--tx)}
.z-advlink .z-cv{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-4px;transition:transform .2s}
.z-advlink.z-open .z-cv{transform:rotate(-135deg);margin-top:4px}
.z-toast{position:fixed;left:50%;bottom:calc(var(--s3) + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(16px);background:var(--tx);color:#0B0B12;font-size:var(--f2);font-weight:600;padding:12px var(--s3);border-radius:100px;opacity:0;pointer-events:none;transition:.25s;z-index:99;white-space:nowrap}
.z-toast.z-show{opacity:1;transform:translateX(-50%) translateY(0)}
.z-dis-look{color:var(--fa)}
a.z-btnt{text-decoration:none}
.z-toast{bottom:calc(92px + env(safe-area-inset-bottom,0px))!important}
.z-lock{margin-left:4px}
.z-btn2.z-l,.z-btn.z-l{height:44px}
@media(max-width:640px){.z-btn2.z-sm{height:36px;padding:0 14px}}

.z-switch{width:44px;height:26px;border-radius:100px;background:rgba(240,241,247,.14);position:relative;border:none;flex:none;transition:background .2s}
.z-switch:after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:100px;background:var(--tx);transition:left .2s}
.z-switch.z-on{background:var(--acc)}.z-switch.z-on:after{left:21px;background:#140A24}

/* ===== v4 ===== */
.z-modrow{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:var(--s1);margin-top:var(--s3)}
.z-modrow .z-btn,.z-modrow .z-btn2{width:100%;padding:0 var(--s1)}
.z-pos{color:var(--acc)!important}
.z-warn{color:#F5B971!important}
/* flows */
.z-flow{padding:var(--s3) 0 var(--s1);border-top:1px solid var(--line);margin-top:var(--s2)}
.z-flow:first-of-type{margin-top:var(--s1)}
.z-fh{display:flex;align-items:center;gap:var(--s1)}
.z-fh .z-fn{font-size:var(--f35);font-weight:700;margin-right:auto;margin-left:4px}
.z-f3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin:var(--s2) 0 var(--s1)}
.z-f3 span{display:block;font-size:var(--f2);font-weight:500;color:var(--fa)}
.z-f3 b{display:block;font-size:var(--f35);font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}
.z-li .z-v .z-rare{margin-right:12px;font-size:var(--f1);letter-spacing:.02em}
/* module frame */
.z-mtabs{margin:-4px 0 var(--s3)}
.z-mbody{min-height:120px}
.z-mtop{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:var(--s1);align-items:center}
.z-segc{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:rgba(240,241,247,.05);border-radius:100px;padding:3px;height:36px}
.z-segc button{background:none;border:none;border-radius:100px;font-size:var(--f2);font-weight:600;color:var(--fa);transition:.16s}
.z-segc button:hover{color:var(--tx)}
.z-segc button:disabled{opacity:.35;pointer-events:none}
.z-segc button.z-on{background:rgba(240,241,247,.12);color:var(--tx)}
.z-gearbox{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:var(--s2);padding:12px 0;border-top:1px dashed var(--dash)}
.z-mbody>.z-amt,.z-mbody>.z-segc+.z-amt,.z-mtop+.z-amt,.z-gearbox+.z-amt{margin-top:var(--s2)}
.z-mbody .z-amt{border-top:1px dashed var(--dash)}
.z-mbody .z-amt.z-first{border-top:none}
.z-amt.z-ro input{color:var(--mu)}
.z-tokb{display:inline-flex;align-items:center;gap:var(--s1);height:36px;padding:0 12px 0 var(--s2);border-radius:100px;border:1px solid var(--line);background:none;font-size:var(--f3);font-weight:700}
.z-tokb .z-cv{width:6px;height:6px;border-right:1.5px solid var(--fa);border-bottom:1.5px solid var(--fa);transform:rotate(45deg);margin:-3px 0 0 2px}
.z-tokb:hover{border-color:rgba(240,241,247,.26)}
.z-pick{margin:0 0 var(--s1);padding-left:var(--s1);border-left:1px solid var(--line)}
.z-fracs{display:flex;gap:var(--s1);align-items:center;flex-wrap:wrap;padding-bottom:12px}
.z-pdiff{margin-left:auto;font-size:var(--f2);font-weight:600;color:var(--mu);font-variant-numeric:tabular-nums}
.z-advlink .z-imp{margin-left:auto;font-size:var(--f2);font-weight:600;color:var(--fa)}
.z-rvh{font-size:var(--f4);font-weight:700;margin-bottom:var(--s1)}
.z-pend{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--s4) 0 var(--s3);gap:12px}
.z-pend .z-t{font-size:var(--f35);font-weight:700}.z-pend .z-s{font-size:var(--f2);color:var(--fa);font-weight:500}
.z-spin{width:40px;height:40px;border-radius:100px;border:2px solid rgba(240,241,247,.1);border-top-color:var(--acc);animation:z-rot 1s linear infinite}
@keyframes z-rot{to{transform:rotate(360deg)}}
.z-okc{width:56px;height:56px;border-radius:100px;background:var(--accbg);border:1px solid var(--accln);display:flex;align-items:center;justify-content:center}
.z-okc svg,.z-stp .z-n svg{width:24px;height:24px}.z-okc path,.z-stp .z-n path{fill:none;stroke:var(--acc);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.z-duo2{display:grid;grid-template-columns:1fr 2fr;gap:var(--s1)}
.z-duo2 .z-btn,.z-duo2 .z-btn2{width:100%}
.z-ord{padding-bottom:var(--s2);border-top:1px dashed var(--dash)}.z-ord:first-child{border-top:none}
.z-ord .z-li{border-top:none}.z-ord .z-kv{margin-top:4px}
.z-btn2.z-sm2,.z-btn.z-sm2{height:36px;padding:0 var(--s2);font-size:var(--f2)}
/* aqua */
.z-pairh{display:flex;align-items:center;gap:12px;min-height:52px;cursor:pointer;border-bottom:1px dashed var(--dash)}
.z-pairh .z-pn2{font-size:var(--f35);font-weight:700;margin-right:auto}
.z-pairh .z-v{font-size:var(--f2);font-weight:600;color:var(--mu)}
.z-pairh .z-cv{width:7px;height:7px;border-right:1.5px solid var(--fa);border-bottom:1.5px solid var(--fa);transform:rotate(-45deg)}
.z-pairh:hover .z-pn2{color:var(--acc)}
.z-covh{display:flex;align-items:flex-end;justify-content:space-between;margin-top:var(--s3)}
.z-rng2{margin-top:var(--s2)}
.z-rng2 .z-trk{position:relative;height:88px;touch-action:none;cursor:ew-resize;border-bottom:1px solid var(--line)}
.z-rng2 .z-hist{position:absolute;inset:8px 0 0;display:flex;align-items:flex-end;gap:2px}
.z-rng2 .z-hist i{flex:1;background:rgba(240,241,247,.09);border-radius:2px 2px 0 0;transition:background .12s}
.z-rng2 .z-hist i.z-in{background:rgba(167,139,250,.42)}
.z-rng2 .z-sel{position:absolute;top:0;bottom:0;background:rgba(167,139,250,.07);pointer-events:none}
.z-rng2 .z-zone{position:absolute;top:0;bottom:0;border-left:1px dashed rgba(167,139,250,.6);border-right:1px dashed rgba(167,139,250,.6);pointer-events:none}
.z-rng2 .z-now{position:absolute;top:0;bottom:0;width:1.5px;background:var(--acc);transform:translateX(-50%);pointer-events:none}
.z-hd2{position:absolute;top:0;bottom:-9px;width:28px;margin-left:-14px;background:none;border:none;padding:0;cursor:ew-resize}
.z-hd2:before{content:'';position:absolute;left:13px;top:0;bottom:9px;width:2px;background:var(--tx);border-radius:1px}
.z-hd2:after{content:'';position:absolute;left:5px;bottom:0;width:18px;height:18px;border-radius:50%;background:var(--tx);box-shadow:0 0 0 3px var(--bg)}
.z-rng2 .z-ax{display:flex;justify-content:space-between;margin-top:14px;font-size:var(--f1);color:var(--fa);font-weight:500;font-variant-numeric:tabular-nums}
.z-rng2 .z-lg{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s1);font-size:var(--f1);color:var(--fa);font-weight:500}
.z-rng2 .z-lg u{display:inline-block;width:10px;height:10px;border-radius:2px;background:rgba(167,139,250,.42);margin-right:6px;vertical-align:-1px}
.z-rng2 .z-lg i{display:inline-block;width:14px;height:0;border-top:1px dashed rgba(167,139,250,.7);margin-right:6px;vertical-align:middle}
.z-rng2 .z-lg b{display:inline-block;width:2px;height:10px;background:var(--acc);margin-right:6px;vertical-align:middle}
.z-mm{display:grid;grid-template-columns:1fr 1fr;margin:var(--s3) 0 var(--s1);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.z-mmc{padding:12px 0;min-width:0}
.z-mmc+.z-mmc{border-left:1px solid var(--line);padding-left:16px}
.z-mmc:first-child{padding-right:16px}
.z-mmh{display:flex;align-items:center;justify-content:space-between}
.z-mmb{display:flex;gap:6px}
.z-mmb .z-iconb{width:28px;height:28px}.z-mmb .z-iconb svg{width:12px;height:12px}
.z-mmc>b{display:block;margin-top:4px;font-size:var(--f35);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.z-mmc>s{display:block;font-size:var(--f2);font-weight:500;color:var(--fa);margin-top:2px;font-variant-numeric:tabular-nums;text-decoration:none}
.z-duoav{gap:0!important}.z-duoav .z-av{margin-left:-10px;border:2px solid var(--sheet)}.z-duoav .z-av:first-child{margin-left:0}
.z-av.z-s2{width:32px;height:32px;font-size:10px}
/* perps */
.z-otabs{margin-top:var(--s3)}
.z-tpc{display:flex;flex-direction:column;gap:var(--s1)}
.z-tpc s{font-size:var(--f2);font-weight:600;color:var(--fa);min-height:18px}
.z-acts3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s1);margin-top:var(--s3)}
.z-acts3 .z-btn2{width:100%;padding:0 var(--s1);font-size:var(--f2)}
.z-stp{display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--s2);padding:var(--s2) 0;border-top:1px dashed var(--dash)}
.z-stp:first-child{border-top:none}
.z-stp .z-n{width:32px;height:32px;border-radius:100px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:var(--f2);font-weight:700;color:var(--fa)}
.z-stp.z-cur .z-n{border-color:var(--accln);color:var(--acc);background:var(--accbg)}
.z-stp.z-done .z-n{border-color:var(--accln);background:var(--accbg)}.z-stp.z-done .z-n svg{width:16px;height:16px}
.z-stp .z-t{font-size:var(--f3);font-weight:600;margin-top:6px}.z-stp .z-s{font-size:var(--f2);color:var(--fa);font-weight:500;margin-top:2px}
.z-stp.z-done .z-t,.z-stp:not(.z-cur):not(.z-done) .z-t{color:var(--mu)}
.z-stp .z-amt{border-top:none;margin-top:var(--s1)}
.z-sheet{z-index:97}
/* follow ring and chart trades */
.z-av.z-fl{box-shadow:0 0 0 1.5px var(--acc)}
.z-face .z-av.z-fl{box-shadow:0 0 0 1.5px var(--acc)}
.z-chctl{display:flex;align-items:center;gap:var(--s2)}
.z-iconb.z-sm3{width:32px;height:32px}.z-iconb.z-sm3 svg{width:16px;height:16px}
:root{--buy:#5CD69B;--sell:#F2777F}
.z-mk{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;background:none;border:none;padding:0;z-index:2}
.z-mk i{width:18px;height:18px;border-radius:100px;background:#1A1728;color:var(--acc);font-size:7px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1.5px var(--c),0 0 0 3px var(--bg);letter-spacing:0}
.z-mk i+i{margin-left:-6px}
.z-mk.z-big{z-index:3}.z-mk.z-big i{width:22px;height:22px;font-size:8px}
.z-mk em{font-size:var(--f1);font-weight:700;color:var(--c);margin-left:4px;text-shadow:0 0 4px var(--bg)}
.z-mk.z-buy{--c:var(--buy)}.z-mk.z-sell{--c:var(--sell)}
.z-mk:hover i{background:#262138}
.z-mkl{position:absolute;width:1px;transform:translateX(-50%);opacity:.5;pointer-events:none}
.z-mkl.z-buy{background:var(--buy)}.z-mkl.z-sell{background:var(--sell)}
/* new events: a row at the top of the feed, a floating pill once scrolled */
.z-newpill{display:none}
.z-newrow{display:flex;align-items:center;justify-content:center;gap:var(--s1);width:100%;height:44px;margin-bottom:var(--s2);border-radius:100px;border:1px solid var(--accln);background:var(--accbg);color:var(--tx);font-size:var(--f2);font-weight:700}
.z-newrow:hover{border-color:var(--acc)}
.z-newfloat{position:fixed;left:50%;top:calc(76px + env(safe-area-inset-top,0px));transform:translate(-50%,-8px);z-index:45;display:flex;align-items:center;gap:var(--s1);height:40px;padding:0 var(--s2) 0 6px;border-radius:100px;border:1px solid var(--accln);background:rgba(20,16,36,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--tx);font-size:var(--f2);font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.z-newfloat.z-show{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.z-newrow .z-av.z-s,.z-newfloat .z-av.z-s{border-color:var(--sheet)}
/* avatars */
.z-av{overflow:hidden}
.z-av img{width:100%;height:100%;object-fit:cover;display:block}
.z-av .z-idc{width:100%;height:100%;display:block;background:#15122A}
/* crew cats (default wallet avatars): the webp has its own dark disc and transparent corners */
.z-av.z-cat{background:#15122A}
.z-mk i{overflow:hidden}.z-mk i .z-idc,.z-mk i img{width:100%;height:100%;display:block;object-fit:cover}
.z-avbtn{background:none;border:none;padding:0;border-radius:100px;position:relative}
.z-avbtn:after{content:'';position:absolute;right:0;bottom:0;width:20px;height:20px;border-radius:100px;background:var(--tx) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7v10M7 12h10' stroke='%230B0B12' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/14px no-repeat;box-shadow:0 0 0 3px var(--bg)}
.z-filebtn{cursor:pointer}
.z-sublink{font-size:var(--f2);font-weight:500;color:var(--fa)}.z-sublink:hover{color:var(--acc)}
.z-quotes{margin-top:var(--s1)}
.z-qrow .z-p{display:flex;align-items:center;gap:var(--s1)}
.z-qrow.z-on .z-rd{border-color:var(--acc)}.z-qrow.z-on .z-rd:after{content:'';position:absolute;inset:3px;border-radius:100px;background:var(--acc)}
.z-hd2:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
/* flows accordion */
.z-flow .z-fh{width:100%;background:none;border:none;padding:0;text-align:left;min-height:36px;color:inherit}
.z-flow .z-fh .z-fn{margin-right:0}
.z-flow .z-fh .z-pill{margin-left:auto}
.z-fnet{font-size:var(--f2);font-weight:600;color:var(--mu);font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.z-flow .z-fh .z-cv{width:7px;height:7px;border-right:1.5px solid var(--fa);border-bottom:1.5px solid var(--fa);transform:rotate(45deg);margin:-4px 2px 0 4px;transition:transform .2s}
.z-flow.z-open .z-fh .z-cv{transform:rotate(-135deg);margin-top:4px}
.z-flow{padding-bottom:var(--s2)}
/* followed comments in feed */
.z-fcm{display:flex;gap:var(--s1);align-items:flex-start;width:100%;background:none;border:none;border-left:2px solid var(--accln);padding:4px 0 4px 12px;margin:8px 0 4px;text-align:left;color:var(--mu);font-size:var(--f2);font-weight:500;line-height:1.45}
.z-fcm span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.z-fcm b{color:var(--tx);font-weight:600;margin-right:6px}
.z-fcm .z-av{flex:none;margin-top:1px}
.z-fcm:hover span{color:var(--tx)}
.z-flowmore{display:flex;align-items:center;justify-content:space-between;min-height:52px;border-top:1px solid var(--line);margin-top:var(--s1)}
.z-flowmore .z-k{font-size:var(--f2);color:var(--fa);font-weight:500}
.z-flow{padding:10px 0;margin-top:0;border-top:1px dashed var(--dash)}.z-flow:first-of-type{margin-top:0;border-top:none}.z-flow.z-open{padding-bottom:16px}.z-flow .z-fn{font-size:var(--f3)}

.z-legal{font-size:var(--f2);line-height:1.6;color:var(--mu)}
.z-legal p{margin:0 0 12px}.z-legal strong{color:var(--tx);font-weight:600}.z-legal em{color:var(--fa)}
.z-legal table{width:100%;border-collapse:collapse;margin:4px 0 14px;font-size:var(--f1);display:block;overflow-x:auto}
.z-legal th{text-align:left;color:var(--fa);font-weight:600;padding:0 10px 6px 0;border-bottom:1px solid var(--line)}
.z-legal td{padding:8px 10px 8px 0;border-bottom:1px dashed var(--dash);vertical-align:top}
.z-mnote{font-size:var(--f1);font-weight:500;color:var(--fa);margin-top:var(--s2);line-height:1.5}

.z-iconb.z-bell{width:44px;height:44px}.z-iconb.z-bell.z-sm{width:36px;height:36px}.z-iconb.z-bell svg{fill:none}.z-iconb.z-bell.z-on{color:var(--acc);border-color:var(--accln);background:var(--accbg)}.z-iconb.z-bell.z-on svg{fill:currentColor}

/* ============================================================================
   Stargazer additions — pieces the product needs that the reference prototype
   does not draw. Same vocabulary: the 8/16/24/40 spacing, the six type sizes,
   pills, hairlines and dashes. Nothing here introduces a new colour or radius.
   ============================================================================ */

/* legacy / admin pages: wide column, their own stylesheets, no v0.94 resets */
.z-page.z-wide{max-width:1240px}
.z-clip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}

/* header logo is a link here (the prototype used a button) */
a.z-logo,.z-logo{color:var(--tx);text-decoration:none}
a.z-logo:hover{color:var(--tx);text-decoration:none}

/* menu entries are links (real URLs: open in a new tab, deep-linkable) */
.z-mlist a{display:flex;align-items:center;text-align:left;font-size:var(--f5);font-weight:700;letter-spacing:-.02em;color:var(--mu);height:64px;border-bottom:1px solid var(--dash);transition:color .16s;text-decoration:none}
.z-mlist a:hover{color:var(--tx);text-decoration:none}
.z-mlist a.z-on{color:var(--tx)}
.z-mlist a.z-on:after{content:"";display:inline-block;width:8px;height:8px;border-radius:100px;background:var(--acc);margin-left:12px}
.z-menu-ov{overflow-y:auto}
.z-mfoot{padding-top:var(--s4)}
.z-mfoot .z-shead{margin-top:var(--s3)}
a.z-btn,a.z-btn2{text-decoration:none}
a.z-btn:hover{color:#140A24}

/* selects share the underline input look */
select.z-inp{appearance:none;-webkit-appearance:none;padding-right:20px;font-size:var(--f3);font-weight:600;color:var(--tx);cursor:pointer;
  background:none;background-image:linear-gradient(45deg,transparent 50%,var(--fa) 50%),linear-gradient(135deg,var(--fa) 50%,transparent 50%);
  background-position:calc(100% - 9px) 15px,calc(100% - 4px) 15px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;text-overflow:ellipsis}
select.z-inp option,select.z-inp optgroup{background:var(--sheet);color:var(--tx)}
.z-inp:disabled,.z-search:disabled{opacity:.4}
input.z-inp[type=number]{-moz-appearance:textfield}
input.z-inp[type=number]::-webkit-outer-spin-button,input.z-inp[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.z-inp,.z-search{color:var(--tx)}

/* search box with picked-token chips and the suggestion list */
.z-sbox{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1);min-height:44px;border-bottom:1px solid var(--line);transition:border-color .2s}
.z-sbox:focus-within{border-color:var(--acc)}
.z-sbox .z-search{flex:1 1 120px;width:auto;min-width:120px;border-bottom:none}
.z-sbox .z-chip{height:28px;padding:0 8px 0 12px}
.z-sbox.z-off{opacity:.4;pointer-events:none}
.z-ac{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:4px var(--s2);max-height:60vh;overflow:auto;box-shadow:0 16px 40px rgba(0,0,0,.5)}
.z-ac .z-prow{min-height:56px;width:100%;background:none;border-left:none;border-right:none;border-bottom:none;text-align:left;color:inherit}
.z-ac .z-prow:first-child{border-top:none}
.z-ac .z-prow:hover .z-nm{color:var(--acc)}
button.z-chip{cursor:pointer}

/* filter row: live toggle, disabled states */
.z-livedot{width:6px;height:6px;border-radius:100px;background:var(--fa);flex:none}
.z-btn2.z-sel .z-livedot{background:var(--acc);animation:z-pulse 1.2s infinite}
.z-btn2:disabled,.z-btnt:disabled,.z-iconb:disabled,.z-chip:disabled{opacity:.4;pointer-events:none}
.z-btn:disabled{background:rgba(240,241,247,.07);color:var(--fa);pointer-events:none}

/* token tile: states the reference has no numbers for */
.z-tile{color:inherit}
.z-tile .z-tk{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.z-tile .z-em.z-soft{font-size:var(--f2);font-weight:600;color:var(--fa);letter-spacing:0;max-width:190px;white-space:normal;text-align:right;line-height:1.3}
.z-tile .z-mini{display:block;justify-self:end;width:96px;height:24px}
.z-tile .z-mini .spk{display:block;width:96px;height:24px}
.z-tile .z-mini .spk-empty{display:none}
.z-up{color:var(--buy)}.z-dn{color:var(--sell)}
.z-more{display:flex;justify-content:center;margin-top:var(--s3)}

/* token screen */
.z-thead2 .z-nm{min-width:0;overflow-wrap:anywhere}
.z-chwrap .spk{display:block;width:100%;height:148px}
.z-chwrap .spk-empty{display:flex;align-items:center;justify-content:center;height:148px;font-size:var(--f2);font-weight:500;color:var(--fa)}
.z-chf .z-links{margin-top:0;gap:var(--s2)}
.z-flags{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s2)}
.z-pill.z-warn{color:#F5B971!important;border-color:rgba(245,185,113,.4);background:rgba(245,185,113,.08)}
.z-flow .z-fh{cursor:pointer}
.z-flow .z-acts{display:flex;justify-content:flex-end;margin-top:var(--s1)}
.z-upd{display:inline-flex;align-items:center;gap:var(--s1);font-size:var(--f1);font-weight:600;color:var(--fa)}
.z-upd i{width:6px;height:6px;border-radius:100px;background:var(--acc);animation:z-pulse 1.2s infinite}
.z-stat{display:flex;align-items:center;gap:12px;padding:var(--s2) 0;font-size:var(--f2);font-weight:500;color:var(--fa)}
.z-spin.z-sm{width:16px;height:16px;border-width:1.5px;flex:none}

/* condition builder (Attention flows sheet) */
.z-cbox{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px var(--s2);align-items:center;padding:12px 0;border-top:1px dashed var(--dash);border-radius:6px}
.z-cbox:first-child{border-top:none}
.z-cbox .z-csel{display:grid;grid-template-columns:1fr 1fr;gap:4px var(--s2)}
.z-cbox .z-csel select:first-child{grid-column:1/-1}
@media(max-width:640px){.z-cbox .z-csel{grid-template-columns:1fr}}
.z-ui-flash,.ui-flash{animation:z-flash 1.1s ease-in-out 3}
@keyframes z-flash{0%,100%{box-shadow:0 0 0 0 rgba(167,139,250,0)}50%{box-shadow:0 0 0 3px rgba(167,139,250,.55)}}
button.z-chk{background:none;border:none;text-align:left;width:100%}

/* notes, errors */
.z-err{font-size:var(--f2);font-weight:500;color:var(--sell);margin-top:var(--s2);line-height:1.5;overflow-wrap:anywhere}
.z-note.z-warn{color:#F5B971!important}
.z-note b,.z-err b{font-weight:600}
.z-note a,.z-mnote a,.z-legal a{color:var(--tx);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--fa)}

/* range slider (limit-order trigger) */
.z-range{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:none;margin-top:var(--s1)}
.z-range::-webkit-slider-runnable-track{height:2px;background:rgba(240,241,247,.14);border-radius:1px}
.z-range::-moz-range-track{height:2px;background:rgba(240,241,247,.14);border-radius:1px}
.z-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:100px;background:var(--tx);margin-top:-9px;box-shadow:0 0 0 3px var(--sheet);cursor:ew-resize}
.z-range::-moz-range-thumb{width:20px;height:20px;border:none;border-radius:100px;background:var(--tx);box-shadow:0 0 0 3px var(--sheet);cursor:ew-resize}
.z-range:focus-visible{outline:none}
.z-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--sheet),0 0 0 5px var(--acc)}

/* app-wide banner (finish your swap) */
.z-banner{display:flex;align-items:center;gap:var(--s2);min-height:44px;margin-bottom:var(--s3);padding:8px 8px 8px var(--s2);border-radius:24px;border:1px solid var(--accln);background:var(--accbg);font-size:var(--f2);font-weight:500;color:var(--mu)}
.z-banner b{color:var(--tx);font-weight:600}
.z-banner .z-sp{margin-left:auto;display:flex;gap:var(--s1);align-items:center;flex:none}

/* picker list inside a sheet (network / token) */
.z-pick .z-li{cursor:pointer}
.z-pick .z-li:hover .z-t{color:var(--acc)}

/* ranked tables (leaderboards) reuse the reference table grid with a rank column */
.z-thead.z-c3,.z-tr.z-c3{grid-template-columns:28px minmax(0,1fr) 96px}
.z-thead.z-c4,.z-tr.z-c4{grid-template-columns:28px minmax(0,1fr) 72px 96px}
@media(max-width:640px){.z-thead.z-c4,.z-tr.z-c4{grid-template-columns:28px minmax(0,1fr) 64px 84px}.z-thead.z-c4 i:nth-child(3),.z-tr.z-c4 i:nth-child(3){display:block}}
.z-tr i.z-rk,.z-thead i.z-rk{text-align:left!important;font-size:var(--f2)!important;color:var(--fa)!important}
.z-tr i.z-rk.z-hi{color:var(--acc)!important}
.z-tr.z-tap{cursor:pointer}
.z-tr .z-addr{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}

/* ── additions for the ported pages (Activity, Campaigns, Profile, Legal) ── */
.z-tabs a{font-size:var(--f2);font-weight:600;color:var(--fa);padding:4px 0;border-bottom:1.5px solid transparent;transition:color .16s}
.z-tabs a:hover{color:var(--mu)}
.z-tabs a.z-on{color:var(--tx);border-bottom-color:var(--acc)}
a.z-btn,a.z-btn2,span.z-btn2{text-decoration:none}
span.z-btn2{cursor:default}
a.z-li{color:inherit}
a.z-iconb{text-decoration:none}
button.z-prow,.z-rowb{width:100%;background:none;border:none;border-top:1px dashed var(--dash);padding:0;text-align:left;color:inherit;font:inherit}
.z-prow.z-static{cursor:default}
.z-prow .z-val .z-pill{vertical-align:middle}
.z-wdot{width:6px;height:6px;border-radius:100px;flex:none;background:var(--fa)}
.z-wdot.z-w0{background:var(--sell)}.z-wdot.z-w1{background:#F5B971}.z-wdot.z-w2{background:var(--buy)}
.z-tr i.z-nmc,.z-thead i:nth-child(2){text-align:left!important}
.z-thead.z-c3 i:nth-child(2),.z-thead.z-c4 i:nth-child(2){text-align:left}
.z-tr.z-c3 i.z-nmc,.z-tr.z-c4 i.z-nmc{font-size:var(--f3);color:var(--tx);min-width:0}
.z-pick.z-static .z-li{cursor:default;min-height:44px;padding:8px 0}
.z-pick.z-static .z-li:hover .z-t{color:inherit}
.z-h1{font-size:var(--f5);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}
.z-legal h2{font-size:var(--f3);font-weight:700;color:var(--tx);margin:24px 0 8px}
.z-legal .lg-ol{padding-left:20px;margin:0}
.z-legal .lg-ol li{margin:0 0 12px;padding-left:4px}
.z-legal .lg-tablewrap{overflow-x:auto;margin:0 0 12px}
.z-legal .lg-table{min-width:520px;display:table}
.z-pname{font-size:var(--f4)!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.z-keyb{display:block;min-width:0;width:100%;background:none;border:none;padding:0;text-align:left;color:inherit}
.z-keyb:hover .z-mono{color:var(--acc)}
.z-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--f2);font-weight:500}
.z-li .z-t .z-addr{max-width:100%}
.z-bar2 .z-btn2.z-sp{margin-left:auto}
button.z-chk{justify-content:flex-start}
.z-tr .z-nmc .z-addr{font-family:inherit;font-size:inherit;font-weight:600}
.z-li .z-t.z-clip{display:block}
.z-chf .z-v.z-up{color:var(--buy)}.z-chf .z-v.z-dn{color:var(--sell)}
.z-logo img{width:18px;height:18px;display:block;object-fit:contain}
.z-kv .z-inp.z-pct{width:96px;text-align:right;height:32px;font-size:var(--f4);font-weight:700}

/* v0.95 social layer: the "?" next to APY, the active Following button, a tappable avatar. */
.z-help{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:100px;border:1px solid var(--line);font-size:10px;font-weight:700;color:var(--fa);margin-left:4px;cursor:help;vertical-align:middle}
.z-btn2.z-act{color:var(--acc);border-color:var(--accln);background:var(--accbg)}
.z-iconb.z-on{color:var(--acc);border-color:var(--accln)}
.z-avbtn{background:none;border:none;padding:0;cursor:pointer}
.z-three>.z-cnt{background:none;border:none;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;display:block}
.z-three>div span,.z-three>.z-cnt span{display:block;font-size:var(--f1);font-weight:600;color:var(--fa);letter-spacing:.02em;text-transform:uppercase}
.z-three>div b,.z-three>.z-cnt b{display:block;font-size:var(--f4);font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.z-rowb.z-static{cursor:default}
