/* generated by tools/bundle-css.py from: dash-base, dashboard, account */
/* style.css scoped under .dxp, for the Portfolio and Account pages. */
/* PipTradeDex, brand and terminal. Committed dark visual world (trading terminal). */
.dxp *{box-sizing:border-box;margin:0;padding:0}
.dxp-host{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;max-width:100%;position:relative}
/* ambient background: fine grid + two glow blobs */
.dxp a{color:inherit;text-decoration:none}
.dxp .wrap{max-width:1140px;margin:0 auto;padding:0 22px}
.dxp .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------- header ---------- */
.dxp header.nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);
  background:rgba(8,10,15,.66);border-bottom:1px solid var(--line)}
.dxp .nav .wrap{display:flex;align-items:center;gap:14px;height:64px}
.dxp .brand{display:flex;align-items:center;gap:10px;font-family:var(--dsp);font-weight:700;font-size:18px;letter-spacing:-.02em}
.dxp .nav nav{margin-left:auto;display:flex;align-items:center;gap:26px}
.dxp .nav nav a{color:var(--mut);font-size:14px;font-weight:500;transition:color .18s}
.dxp .nav nav a:hover{color:var(--ink)}
.dxp .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--body);font-weight:600;font-size:14px;
  padding:10px 18px;border-radius:11px;border:1px solid transparent;cursor:pointer;transition:.18s;white-space:nowrap}
.dxp .btn-primary{background:linear-gradient(180deg,var(--mint),var(--mint2));color:#04150d;box-shadow:0 8px 22px -8px rgba(245,166,35,.6)}
.dxp .btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 28px -8px rgba(245,166,35,.7)}
.dxp .btn-ghost{background:var(--panel);border-color:var(--line2);color:var(--ink)}
.dxp .btn-ghost:hover{border-color:var(--mint);color:var(--mint)}
.dxp .btn-tg{background:linear-gradient(180deg,#2aa7e6,#1d8fce);color:#fff}
.dxp .btn-tg:hover{transform:translateY(-1px)}

/* ---------- hero ---------- */
.dxp .hero{position:relative;padding:74px 0 40px}
.dxp .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.dxp h1{font-family:var(--dsp);font-weight:700;font-size:clamp(38px,5.4vw,60px);line-height:1.02;letter-spacing:-.03em;
  text-wrap:balance;margin-bottom:20px}
.dxp h1 .g{background:linear-gradient(96deg,var(--mint) 6%,#ffe2ad 46%,var(--iris) 98%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- section shell ---------- */
.dxp section{padding:64px 0;position:relative}
.dxp h2{font-family:var(--dsp);font-weight:700;font-size:clamp(27px,3.4vw,38px);letter-spacing:-.025em;text-wrap:balance}

/* ---------- feature cards ---------- */
.dxp .card{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--r);
  padding:26px 22px;transition:.2s;position:relative;overflow:hidden}
.dxp .card:hover{border-color:var(--line2);transform:translateY(-3px)}
.dxp .card h3{font-family:var(--dsp);font-weight:600;font-size:17px;letter-spacing:-.01em;margin-bottom:8px}
.dxp .card p{color:var(--mut);font-size:14px}

/* ---------- how it works ---------- */
.dxp .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.dxp .step{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;position:relative}
.dxp .step .n{counter-increment:s;font-family:var(--mono);color:var(--iris);font-size:13px;font-weight:600;letter-spacing:.1em}
.dxp .step .n::before{content:"0" counter(s)}
.dxp .step .spot{height:96px;margin:14px 0 16px;display:flex;align-items:center;justify-content:center}
.dxp .step h3{font-family:var(--dsp);font-weight:600;font-size:16px;margin-bottom:7px}
.dxp .step p{color:var(--mut);font-size:14px}

/* ---------- privacy band ---------- */

/* ---------- footer ---------- */
.dxp footer{border-top:1px solid var(--line);padding:44px 0;margin-top:36px;color:var(--dim);font-size:13.5px}
.dxp footer .wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.dxp footer nav{margin-left:auto;display:flex;gap:22px}
.dxp footer a{color:var(--mut)}.dxp footer a:hover{color:var(--mint)}

/* ---------- reveal (fail-safe: visible by default) ---------- */
.dxp .rv{opacity:1;transform:none}
.dxp .js .rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.dxp .js .rv.in{opacity:1;transform:none}

/* ================= TERMINAL ================= */
.dxp .trade{min-width:0}
.dxp .search{margin:12px;position:relative}
.dxp .search input{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:11px;color:var(--ink);
  font-family:var(--body);font-size:14px;padding:10px 12px 10px 36px;outline:none}
.dxp .search input:focus{border-color:var(--mint)}
.dxp .search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);opacity:.5}
.dxp .tlist{overflow-y:auto;max-height:calc(100vh - 210px)}
.dxp .trow{display:flex;align-items:center;gap:11px;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--line);transition:background .15s}
.dxp .trow:hover{background:var(--panel2)}
.dxp .trow.active{background:var(--panel2);box-shadow:inset 3px 0 0 var(--mint)}
.dxp .av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--dsp);font-weight:700;font-size:14px;color:#04150d;flex:none}
.dxp .trow .sym{font-weight:600;font-size:14px}
.dxp .trow .ch{color:var(--dim);font-size:11.5px;text-transform:capitalize}
.dxp .trow .px{margin-left:auto;text-align:right}
.dxp .trow .px .p{font-family:var(--mono);font-size:13px}
.dxp .trow .px .c{font-size:11px;color:var(--dim)}

.dxp .trade{display:flex;flex-direction:column;gap:18px}
.dxp .leg label{color:var(--mut);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:block}
.dxp .amt{margin-top:16px}
.dxp .amt input{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;color:var(--ink);
  font-family:var(--mono);font-size:22px;font-weight:500;padding:14px 16px;outline:none}
.dxp .amt input:focus{border-color:var(--mint)}
.dxp .presets{display:flex;gap:8px;margin-top:10px}
.dxp .presets button{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--mut);
  font-family:var(--mono);font-size:12px;padding:7px;cursor:pointer;transition:.15s}
.dxp .presets button:hover{color:var(--mint);border-color:var(--mint)}

.dxp .quote{margin-top:18px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:16px;min-height:70px}
.dxp .qline{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13.5px}
.dxp .qline span:first-child{color:var(--mut)}
.dxp .qline .v{font-family:var(--mono);font-variant-numeric:tabular-nums}
.dxp .qmut{color:var(--dim);font-size:12px}
.dxp .toggle{width:46px;height:26px;border-radius:100px;background:var(--panel2);border:1px solid var(--line2);
  position:relative;cursor:pointer;flex:none;transition:.2s}
.dxp .toggle::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--mut);transition:.2s}
.dxp .toggle.on{background:var(--iris);border-color:var(--iris)}
.dxp .toggle.on::after{left:22px;background:#fff}

.dxp .tradebtn{width:100%;margin-top:16px;justify-content:center;font-size:15px;padding:14px}
.dxp .hint{color:var(--dim);font-size:12px;text-align:center;margin-top:10px}

.dxp .empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:60px 20px;color:var(--mut)}
.dxp .empty svg{margin-bottom:20px}
.dxp .empty h3{font-family:var(--dsp);color:var(--ink);font-weight:600;font-size:18px;margin-bottom:6px}

/* premium modal */
.dxp .modal{position:fixed;inset:0;z-index:60;background:rgba(4,6,10,.66);backdrop-filter:blur(10px) saturate(1.1);
  display:none;align-items:flex-start;justify-content:center;padding:8vh 20px;opacity:0;transition:opacity .26s ease}
.dxp .modal.open{display:flex;opacity:1}
.dxp .mbox{position:relative;width:100%;max-width:460px;background:linear-gradient(180deg,var(--panel2),var(--panel));
  border:1px solid var(--line2);border-radius:20px;overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.03) inset;
  animation:mpop .44s cubic-bezier(.22,1.2,.36,1)}
.dxp .mbox::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--mint) 30%,var(--iris) 70%,transparent);opacity:.85}
@keyframes mpop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

/* ================= DASHBOARD ================= */
.dxp .dash{max-width:940px;margin:0 auto;padding:32px 22px 60px}
.dxp .dash-sec{margin-top:30px}
.dxp .dash-sec .lbl{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}
.dxp .dash-sec .lbl .ln{flex:1;height:1px;background:var(--line)}
.dxp .addr{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line2);border-radius:10px;padding:9px 11px}
.dxp .addr code{font-family:var(--mono);font-size:12px;color:var(--mut);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dxp .addr .cpy{background:none;border:none;color:var(--dim);cursor:pointer;padding:2px;display:flex;transition:color .15s}
.dxp .addr .cpy:hover{color:var(--mint)}
.dxp .dash-empty{background:var(--panel);border:1px dashed var(--line2);border-radius:var(--r);padding:34px;text-align:center;color:var(--mut)}
.dxp .dash-empty svg{margin-bottom:12px}
.dxp .ptd-spin{width:14px;height:14px;border:2px solid var(--line2);border-top-color:var(--mint);border-radius:50%;display:inline-block;animation:ptdspin .8s linear infinite}
@keyframes ptdspin{to{transform:rotate(360deg)}}

/* ===== deposit panel + live tracker (terminal) ===== */
.dxp .dep{display:flex;flex-direction:column}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(245,166,35,.5)}70%{box-shadow:0 0 0 7px rgba(245,166,35,0)}100%{box-shadow:0 0 0 0 rgba(245,166,35,0)}}
.dxp .ts{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10.5px;color:var(--dim);flex:none;width:54px;text-align:center}
.dxp .ts .td{width:12px;height:12px;border-radius:50%;border:2px solid var(--line2);background:var(--panel);transition:.3s}
.dxp .ts.on{color:var(--mint)}.dxp .ts.on .td{border-color:var(--mint);background:var(--mint);box-shadow:0 0 0 3px var(--mintdim)}
.dxp .tl{flex:1;height:2px;background:var(--line2);margin:5px -8px 0;transition:.3s}
.dxp .tl.on{background:var(--mint)}

/* ===== balance chip (terminal) ===== */

/* ===== wallet action buttons + modal ===== */
.dxp .wm-head{display:flex;align-items:center;padding:18px 20px 14px;border-bottom:1px solid var(--line)}
.dxp .wm-head h3{font-family:var(--dsp);font-weight:600;font-size:17px}
.dxp .wm-x{margin-left:auto;min-width:44px;min-height:44px;display:grid;place-items:center;margin-right:-10px;background:none;border:none;color:var(--mut);font-size:24px;line-height:1;cursor:pointer}
.dxp .wm-x:hover{color:var(--ink)}
.dxp .wm-body{padding:20px}
.dxp .wm-load{color:var(--mut);font-size:14px;display:flex;align-items:center;justify-content:center;gap:9px;padding:30px 0}
.dxp .wm-qr{display:inline-block;padding:12px;background:var(--bg2);border:1px solid var(--line2);border-radius:14px}
.dxp .wm-qr img{display:block;border-radius:6px}
.dxp .wm-note{color:var(--mut);font-size:13.5px;margin-top:14px}.dxp .wm-note b{color:var(--ink)}
.dxp .wm-label{display:block;color:var(--mut);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.dxp .wm-max{text-transform:none;letter-spacing:0;color:var(--dim);font-weight:500;float:right}

/* ===== landing terminal preview ===== */

/* ===== trading chart ===== */
.dxp .chart{margin:2px 0 14px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.dxp .chart canvas{width:100%;height:140px;display:block}

.dxp .btn:disabled,.dxp .btn[disabled]{opacity:.55;cursor:not-allowed}

/* ===== swap progress card (funded swap, not a bridge deposit) ===== */

/* ===== inline recipient (non-custodied destination chains) ===== */
.dxp .recip{margin:4px 0 10px}
.dxp .recip>label{display:block;font-size:12px;color:var(--mut);margin-bottom:8px}
.dxp .recip>label #recipToTok{color:var(--ink);font-weight:600}
.dxp .recip-seg{display:flex;gap:5px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:4px}
.dxp .rseg{flex:1;min-height:40px;padding:9px 10px;border:none;border-radius:9px;background:transparent;color:var(--mut);font:600 12.5px var(--sans,inherit);cursor:pointer;transition:background .15s,color .15s}
.dxp .rseg:hover{color:var(--ink)}
.dxp .rseg.on{background:var(--iris);color:#fff}
.dxp .recip-field{margin-top:9px}
.dxp .recip-field input{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:11px 13px;color:var(--ink);font-family:var(--mono);font-size:13px}
.dxp .recip-field input:focus{outline:none;border-color:var(--iris)}
.dxp .recip.need .recip-field input{border-color:var(--down)}
.dxp .recip-note{margin-top:7px;font-size:11.5px;line-height:1.45;color:var(--dim)}
.dxp .recip-note.ok{color:var(--up)}
.dxp .recip-note.bad{color:var(--down)}
.dxp .wm-input{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:11px;color:var(--ink);font-family:var(--body);font-size:15px;padding:12px 14px;outline:none}
.dxp .wm-input:focus{border-color:var(--mint)}
.dxp .wm-fine{color:var(--dim);font-size:11.5px;text-align:center;margin-top:12px}

/* ===== activity rows (dashboard) ===== */

/* ===== exchange dashboard (mobile-first) ===== */
.dxp .mkt-search{display:flex;align-items:center;gap:9px;background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:11px 14px;margin-bottom:12px;color:var(--mut)}
.dxp .mkt-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--ink);font-family:var(--body);font-size:15px}
.dxp .mkt{display:flex;flex-direction:column;gap:2px}
.dxp .mrow{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);align-items:center;gap:10px;padding:12px 12px;border-radius:12px;cursor:pointer;transition:background .12s}
.dxp .mrow:hover{background:var(--panel)}
.dxp .mrow-t{display:flex;align-items:center;gap:11px;min-width:0}
.dxp .mrow-nm{min-width:0}
.dxp .mrow-nm b{display:block;font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dxp .mrow-nm small{color:var(--dim);font-size:12px;text-transform:capitalize}
.dxp .mrow-px{font-family:var(--mono);font-size:13.5px;text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.dxp .mrow-bal{text-align:right;min-width:0}
.dxp .mrow-bal b{display:block;font-family:var(--mono);font-size:13.5px;overflow:hidden;text-overflow:ellipsis}
.dxp .mrow-bal small{color:var(--dim);font-size:12px}
.dxp .mrow-trade{font-size:12px;color:var(--iris);font-weight:600;padding:5px 12px;border:1px solid var(--line2);border-radius:100px;white-space:nowrap}
.dxp .live-dot{width:6px;height:6px;border-radius:50%;background:var(--up);animation:pulse 1.8s infinite;flex:none}
.dxp .tok-ic{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;font-family:var(--dsp);font-weight:700;color:#06140d;overflow:hidden}
.dxp .tok-ic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--panel2)}
.dxp .av{position:relative;overflow:hidden}
.dxp .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dxp .pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;color:var(--mut);font-size:13px}
.dxp .pager button{background:var(--panel2);border:1px solid var(--line2);border-radius:9px;color:var(--ink);font-weight:600;font-size:13px;padding:8px 16px;cursor:pointer}
.dxp .pager button:disabled{opacity:.4;cursor:default}

/* ===== portfolio donut ===== */
.dxp .pf{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px}
@media(min-width:640px){.dxp .pf{grid-template-columns:220px minmax(0,1fr);align-items:center}}

/* ===== token detail ===== */
.dxp .det-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.dxp .det-px{font-family:var(--dsp);font-size:26px;font-weight:700}
.dxp .det-ch{color:var(--mut);font-size:13px;text-transform:capitalize;display:flex;align-items:center;gap:6px;margin-top:2px}
.dxp .det-bal{text-align:right}
.dxp .det-bal b{display:block;font-family:var(--mono);font-size:16px}
.dxp .det-bal small{color:var(--dim);font-size:13px}
.dxp .det-actions{display:flex;gap:8px;margin:16px 0}
.dxp .det-actions .db{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--panel2);border:1px solid var(--line2);border-radius:11px;color:var(--ink);font-weight:600;font-size:13px;padding:11px 6px;cursor:pointer;text-decoration:none;transition:.15s}
.dxp .det-actions .db:hover{border-color:var(--mint);color:var(--mint)}
.dxp .det-actions .db:first-child{background:var(--mint);color:#06140d;border-color:var(--mint)}
.dxp .det-lbl{color:var(--mut);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:6px 0 10px}
.dxp .det-none{color:var(--dim);font-size:13px;text-align:center;padding:22px 10px;line-height:1.5}
.dxp .det-note{color:var(--dim);font-size:12px;line-height:1.5;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:14px}
.dxp .det-row{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line)}
.dxp .det-row:last-child{border-bottom:none}
.dxp .det-k{width:9px;height:9px;border-radius:50%;flex:none;background:var(--dim)}
.dxp .det-k.in{background:var(--mint)}.dxp .det-k.out{background:var(--iris)}.dxp .det-k.mid{background:var(--amber)}
.dxp .det-rt{flex:1;min-width:0}
.dxp .det-rt b{display:block;font-size:13.5px;font-weight:600}
.dxp .det-rt small{color:var(--dim);font-size:12px}
.dxp .det-amt{font-family:var(--mono);font-size:13px;white-space:nowrap}
.dxp .det-amt.in{color:var(--mint)}.dxp .det-amt.out{color:var(--iris)}

/* premium toast */
.dxp .toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(170%) scale(.96);z-index:90;
  display:flex;align-items:center;gap:11px;
  background:rgba(20,25,38,.85);backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid var(--line2);border-radius:14px;padding:13px 19px 13px 16px;font-size:14px;font-weight:500;color:var(--ink);
  box-shadow:0 20px 54px -16px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.03) inset;
  transition:transform .44s cubic-bezier(.22,1.2,.36,1),opacity .3s;opacity:0;max-width:90vw;pointer-events:none}
.dxp .toast::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:var(--mint);box-shadow:0 0 0 4px var(--mintdim)}
.dxp .toast.show{transform:translateX(-50%) translateY(0) scale(1);opacity:1;pointer-events:auto}
.dxp .toast.err{border-color:rgba(255,93,115,.45)}
.dxp .toast.err::before{background:var(--down);box-shadow:0 0 0 4px rgba(255,93,115,.18)}

@media(max-width:900px){
  .dxp .hero{padding:44px 0 30px}
  .dxp .hero .wrap{grid-template-columns:minmax(0,1fr);gap:24px}.dxp .steps{grid-template-columns:1fr}          /* no long inline Universe on mobile; pick via the modal */
  .dxp .tlist{max-height:44vh}
  .dxp .nav nav a.hide-sm{display:none}
  .dxp section{padding:48px 0}
}
@media(max-width:560px){
  .dxp-host{font-size:14px}
  .dxp .wrap{padding:0 16px}
  .dxp .nav .wrap{height:58px;gap:8px}
  .dxp .brand{font-size:16px;gap:8px}
  .dxp .nav nav{gap:8px}
  .dxp .nav nav .btn-primary{display:none}        /* keep only Log in in the header; hero has the CTA */
  .dxp .btn{padding:9px 13px;font-size:13px}
  .dxp .btn-primary svg,.dxp .btn-tg svg{display:none}
  .dxp h1{font-size:34px}
  .dxp .hero .wrap{min-width:0}
  .dxp .hero .wrap>div{min-width:0}               /* let grid children shrink so nothing overflows */
  .dxp .card{padding:22px 18px}
  .dxp .amt input{font-size:19px;padding:13px 14px}
  .dxp .presets{flex-wrap:wrap}.dxp .presets button{min-width:calc(25% - 6px)}
  .dxp footer .wrap{flex-direction:column;align-items:flex-start;gap:14px}.dxp footer nav{margin-left:0}
  /* mobile modals become a constrained bottom sheet (no giant over-length list) */
  .dxp .modal{padding:0;align-items:flex-end}
  .dxp .mbox{max-width:100%;max-height:84vh;display:flex;flex-direction:column;border-radius:20px 20px 0 0;animation:msheet .4s cubic-bezier(.22,1.1,.36,1)}
  .dxp .mbox .search{flex:none}
  .dxp .mbox .tlist{max-height:none;flex:1 1 auto;min-height:0}
  .dxp .dash{padding:22px 16px 50px}
}
@keyframes msheet{from{transform:translateY(100%)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.dxp *{animation:none!important;transition:none!important}}
.dxp .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dxp :is(button,a,[role=button],[tabindex],input,select,textarea,summary):focus-visible{outline:2px solid var(--mint,#f5a623);outline-offset:2px}
/* Portfolio, Activity and Account switch, shown above the framed workspace on phones */
.dxp .os-acct-switch{display:none}
@media(max-width:900px){
  .dxp .pt-os .os-workspace-stage.has-acct-switch:not([hidden]){display:flex;flex-direction:column}
  .dxp .pt-os .os-workspace-stage.has-acct-switch .os-acct-switch{display:flex;flex:none;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}
  .dxp .os-acct-switch button{flex:1;min-height:40px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--mut);font:600 13px/1 var(--body);cursor:pointer}
  .dxp .os-acct-switch button.is-active{color:var(--mint);border-color:rgba(245,166,35,.35);background:var(--mintdim)}
}


/* Portfolio and Account page styles, scoped under .dxp. */

/* ===== dashboard, scoped private-exchange app (dx-*) + premium chrome ===== */
/* subtle warm wash bleeding in from the top left, over the dark page */
.dxp-host{position:relative;min-height:100vh;background:
  radial-gradient(1020px 660px at -4% -10%, rgba(245,166,35,.11), transparent 62%),
  radial-gradient(820px 540px at 14% 6%, rgba(245,181,68,.055), transparent 58%),
  radial-gradient(900px 580px at 92% 2%, rgba(124,140,255,.07), transparent 60%),
  var(--bg);background-attachment:fixed,fixed,fixed,scroll}
/* faint hex privacy-mesh, dot grid, fixed behind content */

/* iOS: 16px+ inputs never trigger auto-zoom */
.dxp .dash input, .dxp .modal input, .dxp .wm-input, .dxp .mkt-search input, .dxp #mktQ{font-size:16px!important}

/* ---------- sticky glass nav ---------- */
.dxp .nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  background:linear-gradient(180deg,rgba(9,12,18,.9),rgba(7,10,15,.72));border-bottom:1px solid var(--line)}
.dxp .nav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(245,166,35,.4),rgba(124,140,255,.35),transparent);opacity:.6}
.dxp .nav .brand{gap:11px}
.dxp .nav .brand .tag{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:100px;padding:3px 9px;margin-left:2px}
.dxp .nav nav{gap:14px}
.dxp .nav nav a.hide-sm{color:var(--mut);font-size:14px;font-weight:500;padding:8px 12px;border-radius:9px;transition:.15s}
.dxp .nav nav a.hide-sm:hover{color:var(--ink);background:rgba(255,255,255,.05)}

/* ---------- main column ---------- */
.dxp .dash{max-width:1080px;padding:24px 20px 60px}

/* ---------- who is signed in, in the header ---------- */
.dxp .dxwho{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;margin-right:2px;
  border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03)}
.dxp .dxwho .av{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--dsp);font-weight:700;font-size:11px;color:#06110b;flex:none}
.dxp .dxwho .nm{font-size:13px;font-weight:600;color:var(--ink);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- two-panel row: welcome hero and allocation ---------- */
.dxp .dxrow{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
@media(min-width:900px){.dxp .dxrow{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr)}}
.dxp .dxcard{position:relative;background:linear-gradient(180deg,rgba(23,28,39,.92),rgba(15,19,28,.94));
  border:1px solid var(--line2);border-radius:20px;padding:26px 26px 24px;
  box-shadow:0 24px 60px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.05)}

/* hero. Everything below the change line is intentionally empty. */
.dxp .dxhero{display:flex;flex-direction:column;min-height:266px}
.dxp .dxh-k{font-family:var(--dsp);font-weight:600;font-size:15px;letter-spacing:-.01em;color:var(--ink)}
.dxp .dxh-sub{margin-top:4px;font-size:13.5px;color:var(--mut);line-height:1.45}
.dxp .dxh-v{display:block;margin-top:20px;font-family:var(--dsp);font-weight:800;color:#f2f5fa;
  font-size:clamp(38px,7.2vw,60px);line-height:1.02;letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dxp .dxseg{display:inline-flex;align-items:center;gap:4px;margin-top:18px;align-self:flex-start}
.dxp .dxseg button{appearance:none;-webkit-appearance:none;background:transparent;border:0;color:var(--mut);cursor:pointer;
  font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:5px 13px;border-radius:999px;
  transition:color .14s,background .14s;-webkit-tap-highlight-color:transparent}
.dxp .dxseg button:hover{color:var(--ink)}
.dxp .dxseg button.on,.dxp .dxseg button.on:hover{background:#f5a623;color:#1b0c02}
.dxp .dxch{display:flex;align-items:center;gap:8px;margin-top:14px;min-height:22px}
.dxp .dxch .ar{flex:none}
.dxp .dxch .pc{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.dxp .dxch .ab{font-family:var(--mono);font-size:12.5px;color:var(--mut);font-variant-numeric:tabular-nums}
.dxp .dxch.up .ar,.dxp .dxch.up .pc{color:var(--up)}
.dxp .dxch.down .ar,.dxp .dxch.down .pc{color:var(--down)}
.dxp .dxch.flat .ab{color:var(--dim)}

/* allocation */
.dxp .dxa-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dxp .dxa-h{font-family:var(--dsp);font-weight:600;font-size:15px;color:var(--ink)}
.dxp .dxa-exp{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line2);
  border-radius:999px;color:var(--mut);cursor:pointer;font-family:var(--body);font-size:12.5px;font-weight:600;
  padding:6px 13px;transition:.15s;-webkit-tap-highlight-color:transparent}
.dxp .dxa-exp:hover{color:var(--ink);border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.05)}
.dxp .dxa-body{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:center;margin-top:20px}
@media(min-width:520px){.dxp .dxa-body{grid-template-columns:158px minmax(0,1fr);gap:24px}}
.dxp .dxa-donut{position:relative;width:100%;max-width:158px;margin:0 auto;aspect-ratio:1/1}
.dxp .dxa-donut canvas{width:100%;height:100%;display:block}
.dxp .dxa-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;text-align:center;pointer-events:none;padding:0 14px}
.dxp .dxa-center span{font-size:11px;color:var(--mut);letter-spacing:.05em}
.dxp .dxa-center b{font-family:var(--dsp);font-weight:700;font-size:18px;letter-spacing:-.02em;line-height:1.15;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
/* No height cap. A capped list clipped the last chain mid-row, which reads as a bug
   rather than as a scroll affordance, and it hid the read-failed rows entirely. */
.dxp .dxa-legend{display:flex;flex-direction:column;gap:1px;min-width:0}
.dxp .dxa-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto 46px;align-items:center;gap:10px;
  padding:7px 8px;border-radius:10px;cursor:pointer;transition:background .12s}
.dxp .dxa-row:hover{background:rgba(255,255,255,.045)}
.dxp .dxa-ic{flex:none;display:block;border-radius:50%}
.dxp .dxa-nm{font-size:13.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dxp .dxa-val{font-family:var(--mono);font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.dxp .dxa-pct{font-family:var(--mono);font-size:12px;color:var(--mut);text-align:right;font-variant-numeric:tabular-nums}
.dxp .dxa-row.bad,.dxp .dxa-row.bad:hover{cursor:default;background:transparent}
.dxp .dxa-row.bad .dxa-val{color:var(--amber);font-weight:600;font-size:12px}
.dxp .dxa-note{margin-top:13px;font-size:12px;color:var(--amber);line-height:1.5}
.dxp .dxa-wait{display:flex;align-items:center;justify-content:center;min-height:188px}
.dxp .dxa-empty{text-align:center;padding:26px 10px 10px}
.dxp .dxa-empty h3{font-family:var(--dsp);font-weight:600;font-size:16px;margin:10px 0 5px}
.dxp .dxa-empty p{color:var(--mut);font-size:13px;margin-bottom:15px}

/* no-JS fallback and boot-failure notice: this page must never be a blank 200 */
.dxp .nojs-only{display:none}
.dxp .dxstatic{color:var(--dim);font-family:var(--mono)}
.dxp .dxfail{max-width:460px;margin:34px auto;padding:22px;text-align:center;border:1px solid var(--line2);
  border-radius:18px;background:linear-gradient(180deg,rgba(23,28,39,.9),rgba(15,19,28,.92))}
.dxp .dxfail h3{font-family:var(--dsp);font-weight:600;font-size:17px;margin-bottom:6px}
.dxp .dxfail p{color:var(--mut);font-size:13.5px;margin-bottom:16px}

@media(max-width:560px){.dxp .dxcard{padding:20px 18px}.dxp .dxhero{min-height:0}.dxp .dxwho .nm{display:none}}

/* ---------- pre-boot loading state ---------- */
.dxp .dl{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-height:56vh;padding:40px 20px;text-align:center}
.dxp .dl-orb{position:relative;width:118px;height:118px;perspective:800px}
.dxp .dl-ring{position:absolute;inset:0;margin:auto;border-radius:50%;border:1px dashed rgba(124,140,255,.32)}
.dxp .dl-ring.r1{width:118px;height:118px;animation:dlSpin 20s linear infinite}
.dxp .dl-ring.r2{width:84px;height:84px;top:17px;left:17px;border-color:rgba(245,166,35,.34);animation:dlSpin 13s linear infinite reverse}
@keyframes dlSpin{to{transform:rotate(360deg)}}
.dxp .dl-core{position:absolute;inset:0;margin:auto;width:66px;height:66px;border-radius:19px;
  background:linear-gradient(150deg,#0f1626,#0a0e18);border:1px solid var(--line2);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 18px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.05),0 0 30px rgba(245,166,35,.2);
  animation:dlBob 4.6s ease-in-out infinite;transform-style:preserve-3d}
@keyframes dlBob{0%,100%{transform:translateY(0) rotateZ(-3deg)}50%{transform:translateY(-6px) rotateZ(3deg)}}
.dxp .dl-core svg{filter:drop-shadow(0 4px 12px rgba(245,166,35,.4))}
.dxp .dl-sk{width:100%;max-width:420px;background:linear-gradient(180deg,rgba(21,27,38,.7),rgba(13,17,25,.72));
  border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:13px}
.dxp .dl-bar{height:12px;border-radius:7px;background:linear-gradient(100deg,rgba(255,255,255,.05) 30%,rgba(255,255,255,.11) 50%,rgba(255,255,255,.05) 70%);
  background-size:220% 100%;animation:dlShim 1.5s ease-in-out infinite}
.dxp .dl-bar.big{height:30px;width:60%}
.dxp .dl-bar.w40{width:40%}.dxp .dl-bar.w70{width:70%}.dxp .dl-bar.w90{width:90%}
.dxp .dl-row{display:flex;gap:12px;align-items:center}
.dxp .dl-dot{width:34px;height:34px;border-radius:50%;flex:none;background:linear-gradient(100deg,rgba(255,255,255,.05) 30%,rgba(255,255,255,.11) 50%,rgba(255,255,255,.05) 70%);background-size:220% 100%;animation:dlShim 1.5s ease-in-out infinite}
.dxp .dl-col{flex:1;display:flex;flex-direction:column;gap:8px}
@keyframes dlShim{0%{background-position:180% 0}100%{background-position:-80% 0}}
.dxp .dl-t{display:inline-flex;align-items:center;gap:8px;font-family:var(--dsp);font-weight:600;font-size:14px;color:var(--mut)}
.dxp .dl-t i{width:5px;height:5px;border-radius:50%;background:var(--mint);animation:dlPulse 1.2s ease-in-out infinite}
.dxp .dl-t i:nth-child(2){animation-delay:.2s}.dxp .dl-t i:nth-child(3){animation-delay:.4s}
@keyframes dlPulse{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}

/* ---------- balance card (hero) ---------- */
.dxp .dx-bal{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(22,28,40,.94),rgba(13,17,25,.95));
  border:1px solid var(--line2);border-radius:22px;padding:24px 24px 20px;
  box-shadow:0 26px 64px rgba(0,0,0,.46),inset 0 1px 0 rgba(255,255,255,.06)}
.dxp .dx-bal::before{content:"";position:absolute;right:-50px;top:-70px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(124,140,255,.2),transparent 66%);pointer-events:none}
.dxp .dx-bal::after{content:"";position:absolute;left:-60px;bottom:-90px;width:230px;height:230px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,181,68,.09),transparent 66%);pointer-events:none}
.dxp .dx-bal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative}
.dxp .dx-bal-l{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.dxp .dx-bal-l::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 3px rgba(245,166,35,.16)}
.dxp .dx-bal-v{font-family:var(--dsp);font-weight:800;font-size:clamp(30px,7vw,46px);letter-spacing:-.02em;line-height:1.1;display:block;margin-top:6px;
  background:linear-gradient(100deg,#eef2f7,#c9d3e4);-webkit-background-clip:text;background-clip:text;color:transparent}
.dxp .dx-bal-chg{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:12.5px;font-weight:600;margin-top:8px;padding:3px 9px;border-radius:100px}
.dxp .dx-bal-chg.up{color:var(--up);background:rgba(61,220,151,.12)} .dxp .dx-bal-chg.down{color:#ff5d73;background:rgba(255,93,115,.12)} .dxp .dx-bal-chg.flat{color:var(--mut);background:rgba(255,255,255,.05)}
.dxp .dx-bal-user{display:flex;align-items:center;gap:10px;flex:none}
.dxp .dx-bal-user .nm{text-align:right}.dxp .dx-bal-user .nm b{display:block;font-family:var(--dsp);font-weight:600;font-size:14px}
.dxp .dx-bal-user .nm small{color:var(--dim);font-size:11.5px}
.dxp .dx-bal-user .av{width:44px;height:44px;border-radius:14px;font-size:17px;box-shadow:0 8px 20px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.14)}
.dxp .dx-range{display:flex;gap:5px;margin:14px 0 2px}
.dxp .dx-range button{background:transparent;border:1px solid var(--line2);color:var(--mut);border-radius:8px;font-family:var(--mono);font-size:11px;font-weight:600;padding:4px 11px;cursor:pointer;transition:.14s}
.dxp .dx-range button:hover{color:var(--ink);border-color:var(--mint)}
.dxp .dx-range button.on{background:var(--mint);border-color:var(--mint);color:#07120c}
.dxp .dx-spark{height:76px;margin:6px -6px 4px}
.dxp .dx-spark svg{width:100%;height:100%;display:block;overflow:visible}

/* top movers strip */
.dxp .dx-movers{display:flex;gap:11px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.dxp .dx-movers::-webkit-scrollbar{height:0}
.dxp .dx-mover{flex:none;width:152px;scroll-snap-align:start;background:linear-gradient(180deg,rgba(18,23,33,.82),rgba(12,16,23,.82));border:1px solid var(--line);border-radius:15px;padding:13px;transition:transform .16s,border-color .16s,box-shadow .16s;text-decoration:none;color:var(--ink)}
.dxp .dx-mover:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:0 16px 34px rgba(0,0,0,.36)}
.dxp .dx-mover .mv-h{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.dxp .dx-mover .mv-h b{font-family:var(--dsp);font-weight:600;font-size:14px}
.dxp .dx-mover .mv-px{font-family:var(--mono);font-weight:600;font-size:14px}
.dxp .dx-mover .mv-ch{font-family:var(--mono);font-size:12px;font-weight:600;margin-top:1px}
.dxp .dx-mover .mv-spk{height:30px;margin-top:8px}
.dxp .dx-mover .mv-spk svg{width:100%;height:30px;display:block}

/* asset row: 24h chip under price */
.dxp .mrow-px{flex-direction:column;align-items:flex-end;gap:2px}
.dxp .mrow-px .mp{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:13.5px}
.dxp .mrow-px .mch{font-family:var(--mono);font-size:11.5px;font-weight:600}
.dxp .up{color:var(--up)}.dxp .down{color:var(--down)}
.dxp .dx-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.dxp .dx-act{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--dsp);font-weight:600;font-size:14px;
  padding:13px;border-radius:13px;border:1px solid var(--line2);background:rgba(255,255,255,.04);color:var(--ink);cursor:pointer;transition:.16s;-webkit-tap-highlight-color:transparent}
.dxp .dx-act:hover{background:rgba(255,255,255,.09);transform:translateY(-1px);border-color:var(--line2)}
.dxp .dx-act.primary{background:linear-gradient(135deg,#ffd889,#f5a623 58%,#d98910);color:#04170e;border-color:transparent;box-shadow:0 8px 22px rgba(245,166,35,.28)}
.dxp .dx-act.primary:hover{box-shadow:0 12px 30px rgba(245,166,35,.4)}
.dxp .dx-act svg{flex:none}

/* section labels */
.dxp .dash-sec{margin-top:28px}

/* portfolio, asset card polish */
.dxp .pf{background:linear-gradient(180deg,rgba(18,23,33,.82),rgba(12,16,23,.82));border-color:var(--line2);box-shadow:0 20px 46px rgba(0,0,0,.34)}
.dxp .mkt-search{background:linear-gradient(180deg,rgba(20,25,35,.82),rgba(13,17,25,.82));border-color:var(--line2);border-radius:14px}
.dxp .mkt-search:focus-within{border-color:rgba(245,166,35,.45)}
.dxp .mkt{gap:3px}
.dxp .mrow{grid-template-columns:minmax(0,1.5fr) 74px minmax(0,1fr) minmax(0,1fr);padding:12px 12px;border-radius:12px;transition:background .14s}
.dxp .mrow:hover{background:rgba(124,140,255,.07)}
.dxp .mrow-spark{height:30px;display:flex;align-items:center;justify-content:center}
.dxp .mrow-spark svg{width:66px;height:28px;display:block}
.dxp .tok-ic{position:relative;overflow:hidden;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--dsp);font-weight:700;color:#04150d;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.dxp .tok-ic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:600px){.dxp .mrow{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}.dxp .mrow-spark{display:none}}

/* pager */
.dxp .pager button{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:9px}
.dxp .pager button:hover:not([disabled]){border-color:var(--mint)}

.dxp .skip-link{position:absolute;left:12px;top:-60px;z-index:200;padding:10px 14px;border-radius:10px;background:var(--panel2);color:var(--ink);border:1px solid var(--line2);font-size:14px}
.dxp .skip-link:focus{top:12px}
/* ---- mobile app tab bar ---- */
.dxp .dx-tabs{display:none}
@media(max-width:720px){
  .dxp .dx-tabs{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:rgba(8,11,17,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);
    padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))}
  .dxp .dx-tab{appearance:none;border:0;background:none;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;color:var(--mut);font-size:10.5px;font-weight:600;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .15s}
  .dxp .dx-tab svg{width:21px;height:21px}
  .dxp .dx-tab.on{color:var(--mint)}
  .dxp .dash{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  .dxp .dx-actions{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){.dxp .dx-bal-user .nm{display:none}.dxp .dx-act{font-size:13px;padding:12px 4px;gap:6px}.dxp .dx-act svg{width:14px;height:14px}.dxp .nav .brand .tag{display:none}}
@media(max-width:380px){.dxp .dx-act svg{display:none}}

/* entrance, gentle continuous 3D float on the dashboard cards */
@keyframes dxIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes dxFloat{0%,100%{transform:perspective(1000px) translateY(0) rotateX(0deg)}50%{transform:perspective(1000px) translateY(-6px) rotateX(.8deg)}}
.dxp .dx-mover{transform-style:preserve-3d}
.dxp .dxcard{animation:dxIn .55s cubic-bezier(.2,.7,.2,1) both}
.dxp .dxrow>.dxcard:nth-child(2){animation-delay:.07s}
.dxp .dash-sec{animation:dxIn .6s cubic-bezier(.2,.7,.2,1) both}
.dxp .dash-sec:nth-of-type(2){animation-delay:.06s}.dxp .dash-sec:nth-of-type(3){animation-delay:.12s}.dxp .dash-sec:nth-of-type(4){animation-delay:.18s}
.dxp .dx-mover{animation:dxFloat 7.5s ease-in-out infinite}
.dxp .dx-mover:nth-child(2){animation-delay:.5s}.dxp .dx-mover:nth-child(3){animation-delay:1s}.dxp .dx-mover:nth-child(4){animation-delay:1.5s}.dxp .dx-mover:nth-child(5){animation-delay:2s}
@media(prefers-reduced-motion:reduce){.dxp *{animation-duration:.001s!important;transition-duration:.001s!important}}

/* ---------- $PIP on Robinhood Chain banner ---------- */
.dxp .rhbanner{position:relative;z-index:3;max-width:960px;margin:16px auto 0;padding:0 20px}
.dxp .rhbanner-in{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(100deg,rgba(0,200,5,.13),rgba(124,140,255,.09));border:1px solid rgba(0,200,5,.3);position:relative;overflow:hidden}
.dxp .rhbanner-in::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 10% 50%,rgba(0,200,5,.22),transparent 46%);pointer-events:none}
.dxp .rhbanner .ic{width:38px;height:38px;border-radius:12px;background:#0a0e18;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 18px rgba(0,200,5,.22);animation:rhbBob 4s ease-in-out infinite}
@keyframes rhbBob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}}
.dxp .rhbanner .tx{min-width:0;flex:1}
.dxp .rhbanner .tx b{font-family:'Sora',sans-serif;font-weight:700;font-size:14px;color:#eef2f6;display:flex;align-items:center;gap:7px}
.dxp .rhbanner .tx b .pill{font-size:9px;font-weight:700;color:#05070d;background:#5ff06a;border-radius:5px;padding:1px 6px;letter-spacing:.02em}
.dxp .rhbanner .tx small{color:#9aa6b8;font-size:12px}
.dxp .rhbanner .cta{flex-shrink:0;text-decoration:none;font-family:'Sora',sans-serif;font-weight:700;font-size:13px;color:#05070d;background:linear-gradient(120deg,#00c805,#5ff06a);padding:10px 14px;border-radius:11px;white-space:nowrap;box-shadow:0 8px 20px rgba(0,200,5,.25);transition:.15s}
.dxp .rhbanner .cta:hover{filter:brightness(1.06);transform:translateY(-1px)}
@media(max-width:640px){.dxp .rhbanner{padding:0 14px}.dxp .rhbanner .tx small{display:none}.dxp .rhbanner .cta{padding:9px 12px;font-size:12px}.dxp .rhbanner .ic{width:34px;height:34px}}


/* ---------- move-to-your-own-wallet card (JS-populated; brand gold/mint) ---------- */
.dxp .cdpmove{max-width:920px;margin:16px auto 0;padding:18px 20px;border:1px solid rgba(245,181,68,.34);border-radius:18px;
  background:linear-gradient(180deg,rgba(245,181,68,.1),rgba(245,166,35,.04));position:relative;overflow:hidden}
.dxp .cdpmove::before{content:"";position:absolute;right:-40px;top:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(245,181,68,.16),transparent 66%);pointer-events:none}
.dxp .cdpmove h4{margin:0 0 4px;font-family:var(--dsp);font-weight:700;font-size:15.5px;color:var(--gold)}
.dxp .cdpmove p{margin:0 0 12px;font-size:13px;color:var(--mut)}
.dxp .cdpmove .rows{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.dxp .cdpmove .chip{font-family:var(--mono);font-size:12px;padding:5px 11px;border:1px solid var(--line2);border-radius:999px;color:var(--ink);background:rgba(255,255,255,.03)}
.dxp .cdpmove .act{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dxp .cdpmove .note{font-size:12px;color:var(--mut)}
/* forced migration modal: blocking overlay, cannot be dismissed until funds are moved */
.dxp .cdp-overlay{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(4,6,10,.86);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.dxp .cdp-overlay .cdpmove{margin:0;max-width:460px;width:100%;box-shadow:0 30px 90px rgba(0,0,0,.6)}
body.cdp-locked{overflow:hidden}


/* Legal links for the mobile shell. The shell hides its own footer on a phone and cannot
   scroll, so Account carries them. A div, because the embed dressing hides every footer
   inside a frame. Desktop already shows the real footer, so this stays out of its way. */
.dxp .ptd-legal { display: none; }
@media (max-width: 900px) {
  .dxp .ptd-legal {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
    gap: 6px 16px; margin: 26px 0 0;
    /* clears the shell's fixed bottom tabs, which sit over the frame */
    padding: 18px 16px calc(84px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(255,255,255,.075);
  }
  .dxp .ptd-legal a {
    color: #8b95a6; font-size: 12.5px; text-decoration: none;
    min-height: 36px; display: inline-flex; align-items: center; padding: 0 4px;
  }
  .dxp .ptd-legal a:hover, .dxp .ptd-legal a:focus-visible { color: #e9edf4; }
  .dxp .ptd-legal span { color: #5c6675; font-size: 12.5px; }
}

/* the frame's own document: page background, mesh and dot grid, input zoom guard, spacing under the content */
.os-workspace-page.dxp-host{min-height:0;background:url("data:image/svg+xml,%3Csvg width='28' height='49' viewBox='0 0 28 49' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%237c8cff' fill-opacity='0.02925'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v11.7l10.998 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(rgba(255,255,255,.013) 1px,transparent 1px) 0 0/24px 24px,#07090d}
.dxp input,.dxp textarea,.dxp select{font-size:max(16px,1em)}
.dxp .dash{padding-bottom:60px}
.dxp .dx-tabs{display:none!important}
.dxp header.nav{display:none!important}
.dxp header.nav:has(#dxWho:not([style*="none"])){display:block!important}
.dxp header.nav .wrap{justify-content:flex-end}
.dxp.dxp-account header.nav{display:none!important}
/* the shared header hides .hide-sm on phones, the page's who-chip never did. Its own inline display still decides when it shows. */
.dxp .dxwho.hide-sm:not([style*="none"]){display:inline-flex!important}

/* Account page. Hand written, scoped under .dxp. Amber leads, Base blue is the quiet second voice, green only means good. */
.dxp .acct {
  --acct-amber: #f5a623;
  --acct-amber-soft: rgba(245, 166, 35, .13);
  --acct-blue: #4a72ff;
  --acct-line: rgba(255, 255, 255, .075);
  --acct-line-strong: rgba(255, 255, 255, .14);
  --acct-ink: #eef1f7;
  --acct-mut: #9099ab;
  --acct-faint: #646d7e;
  max-width: 1080px; margin: 0 auto; padding: 34px 24px 72px;
  color: var(--acct-ink);
}
.dxp .acct ::selection { background: rgba(245, 166, 35, .32); color: #fff; }
.dxp .acct :where(button, a, input):focus-visible { outline: 2px solid var(--acct-amber); outline-offset: 3px; border-radius: 10px; }

/* identity */
.dxp .acct-id { display: flex; align-items: center; gap: 22px; padding-bottom: 34px; border-bottom: 1px solid var(--acct-line); }
.dxp .acct-av {
  flex: none; width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center;
  font: 600 30px/1 var(--dsp, 'Sora', system-ui, sans-serif); color: var(--acct-amber); background: linear-gradient(160deg, #1a2030, #0d111a);
  box-shadow: 0 0 0 3px #07090d, 0 0 0 4px rgba(245, 166, 35, .55), 0 14px 30px -10px rgba(0, 0, 0, .7);
}
.dxp .acct-who { min-width: 0; }
.dxp .acct-main, .dxp .acct-aside { min-width: 0; }
.dxp .acct-name { font: 600 clamp(26px, 3.2vw, 36px)/1.08 var(--dsp, 'Sora', system-ui, sans-serif); letter-spacing: -.022em; margin: 0; overflow-wrap: anywhere; text-wrap: balance; }
.dxp .acct-handle { margin: 6px 0 0; color: var(--acct-mut); font-size: 14px; }
.dxp .acct-status { margin-left: auto; display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.dxp .acct-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--acct-line-strong); color: var(--acct-mut); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.dxp .acct-chip svg { width: 15px; height: 15px; flex: none; }
.dxp .acct-chip.ok { color: var(--acct-amber); border-color: rgba(245, 166, 35, .38); background: var(--acct-amber-soft); }

/* two panes: wallets, then the controls beside them */
.dxp .acct-body { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 64px; padding-top: 38px; align-items: start; }
.dxp .acct-sec + .acct-sec { margin-top: 40px; padding-top: 34px; border-top: 1px solid var(--acct-line); }
.dxp .acct-sec h2 { font: 600 18px/1.2 var(--dsp, 'Sora', system-ui, sans-serif); letter-spacing: -.01em; margin: 0 0 6px; }
.dxp .acct-sub { margin: 0 0 18px; color: var(--acct-mut); font-size: 13.5px; line-height: 1.55; max-width: 62ch; }

/* wallets */
.dxp .acct-wallets { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--acct-line); }
.dxp .acct-wallet { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 16px 4px; border-bottom: 1px solid var(--acct-line); transition: background-color .18s; }
.dxp .acct-wallet:hover { background: rgba(255, 255, 255, .025); }
.dxp .acct-chain { display: flex; align-items: center; gap: 12px; font-weight: 600; font-size: 14px; }
.dxp .acct-addr { font: 500 13px/1.5 var(--mono, 'JetBrains Mono', ui-monospace, monospace); color: #cfd5e2; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; letter-spacing: .01em; }

/* buttons */
.dxp .acct-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 40px; padding: 0 16px; border-radius: 11px;
  border: 1px solid var(--acct-line-strong); background: rgba(255, 255, 255, .03); color: var(--acct-ink); font: 600 13px/1 inherit; font-family: inherit; cursor: pointer;
  transition: border-color .18s, background-color .18s, color .18s, transform .18s;
}
.dxp .acct-btn svg { width: 16px; height: 16px; flex: none; }
.dxp .acct-btn:hover { border-color: rgba(74, 114, 255, .65); color: #fff; background: rgba(74, 114, 255, .1); }
.dxp .acct-btn:active { transform: translateY(1px); }
.dxp .acct-btn.primary { background: linear-gradient(180deg, #ffc15a, #f5a623); color: #1a1100; border-color: transparent; box-shadow: 0 10px 22px -12px rgba(245, 166, 35, .8); }
.dxp .acct-btn.primary:hover { background: linear-gradient(180deg, #ffcb73, #f8b036); color: #1a1100; }
.dxp .acct-btn.danger:hover { border-color: rgba(239, 91, 103, .6); background: rgba(239, 91, 103, .09); color: #ff8b95; }
.dxp .acct-btn.done { border-color: rgba(245, 166, 35, .5); color: var(--acct-amber); background: var(--acct-amber-soft); }
.dxp .acct-btn[disabled] { opacity: .55; cursor: default; }

/* security and invite */
.dxp .acct-state { display: flex; gap: 14px; align-items: flex-start; }
.dxp .acct-state > svg { flex: none; width: 26px; height: 26px; margin-top: 2px; color: var(--acct-amber); }
.dxp .acct-state b { display: block; font-size: 14.5px; margin-bottom: 4px; }
.dxp .acct-state p { margin: 0 0 14px; color: var(--acct-mut); font-size: 13.5px; line-height: 1.55; }
.dxp .acct-state p:last-child { margin-bottom: 0; }
.dxp .acct-link { display: flex; align-items: center; gap: 10px; padding: 6px 6px 6px 14px; border: 1px solid var(--acct-line-strong); border-radius: 12px; background: rgba(255, 255, 255, .025); }
.dxp .acct-link code { flex: 1; min-width: 0; font: 500 12.5px/1.4 var(--mono, 'JetBrains Mono', ui-monospace, monospace); color: #cfd5e2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dxp .acct-actions { display: flex; flex-direction: column; gap: 10px; }
.dxp .acct-actions .acct-btn { justify-content: flex-start; }
.dxp .acct-note { margin: 12px 0 0; color: var(--acct-faint); font-size: 12.5px; line-height: 1.5; }

/* loading and failure */
.dxp .acct-skel { height: 14px; border-radius: 7px; background: linear-gradient(90deg, rgba(255, 255, 255, .05) 25%, rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, .05) 75%); background-size: 200% 100%; }
.dxp .acct-skel + .acct-skel { margin-top: 10px; width: 70%; }
.dxp .acct-fail { color: var(--acct-mut); font-size: 13.5px; }
.dxp .acct-fail .acct-btn { margin-top: 12px; }
.dxp .acct-empty { padding: 26px 4px; color: var(--acct-mut); font-size: 14px; border-top: 1px solid var(--acct-line); border-bottom: 1px solid var(--acct-line); }

/* one authored moment: the panes rise into place once */
@media (prefers-reduced-motion: no-preference) {
  .dxp .acct-id, .dxp .acct-body > * { animation: acctRise .6s cubic-bezier(.16, 1, .3, 1) both; }
  .dxp .acct-body > :nth-child(2) { animation-delay: .08s; }
  .dxp .acct-skel { animation: acctShimmer 1.4s linear infinite; }
}
@keyframes acctRise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes acctShimmer { to { background-position: -200% 0; } }

@media (max-width: 900px) {
  .dxp .acct { padding: 22px 16px 56px; }
  .dxp .acct-id { gap: 16px; flex-wrap: wrap; }
  .dxp .acct-av { width: 60px; height: 60px; font-size: 24px; }
  .dxp .acct-status { margin-left: 0; justify-content: flex-start; width: 100%; }
  .dxp .acct-body { grid-template-columns: 1fr; gap: 0; padding-top: 28px; }
  .dxp .acct-aside { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--acct-line); }
  .dxp .acct-wallet { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; }
  .dxp .acct-wallet .acct-addr { grid-column: 1 / -1; grid-row: 2; }
  .dxp .acct-btn { min-height: 44px; }
}
