/* ============================================================================
   Privacy Proxy — monochrome, premium, dimensional.
   System fonts only. No CDN. Works offline.
   Home base: black / white / greys. One earned accent = WHITE (primary action).
   Colour appears ONLY as money/status semantics (green good · amber caution · red danger).
   Depth via layered shadows + top-edge highlight, never a single flat blur.
   ========================================================================== */
:root{
  color-scheme:dark;

  /* ---- neutral ramp (OKLCH, hue 262, faint chroma — never dead grey) ---- */
  --n0:oklch(14.5% 0.006 262);   /* page floor */
  --n1:oklch(17.2% 0.007 262);   /* page */
  --n2:oklch(20.0% 0.008 262);   /* sunk wells / recessed */
  --n3:oklch(22.4% 0.009 262);   /* surface / card */
  --n4:oklch(25.2% 0.010 262);   /* raised card / hover */
  --n5:oklch(28.5% 0.011 262);   /* active / popover */
  --well:oklch(11.5% 0.005 262); /* input wells (darker than page) */

  --text:oklch(95.5% 0.004 262);
  --text-muted:oklch(76% 0.006 262);
  --text-faint:oklch(60% 0.008 262);
  --text-dim:oklch(48% 0.008 262);

  /* alpha borders composite over any surface; dark mode borders do shadow's job */
  --line:oklch(100% 0 0 / 0.08);
  --line-2:oklch(100% 0 0 / 0.12);
  --line-strong:oklch(100% 0 0 / 0.20);
  --hi:oklch(100% 0 0 / 0.06);   /* top-edge highlight */
  --hi-2:oklch(100% 0 0 / 0.09);

  /* ONE earned accent = near-white, for the primary action + focus */
  --primary:oklch(97% 0.003 262);
  --primary-hover:oklch(100% 0 0);
  --primary-ink:oklch(17% 0.006 262);
  --focus:oklch(85% 0.02 262);

  /* semantic — muted, used ONLY for money & status meaning */
  --good:oklch(74% 0.115 158);
  --good-dim:oklch(66% 0.10 158);
  --amber:oklch(80% 0.105 82);
  --amber-dim:oklch(72% 0.10 82);
  --danger:oklch(68% 0.145 25);
  --danger-dim:oklch(62% 0.14 25);
  --good-soft:oklch(74% 0.115 158 / 0.10);
  --amber-soft:oklch(80% 0.105 82 / 0.10);
  --danger-soft:oklch(68% 0.145 25 / 0.11);

  --ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","SFMono-Regular",Menlo,Consolas,"DejaVu Sans Mono",monospace;

  /* radius scale (nested law: inner = outer − padding) */
  --r-xs:6px; --r-sm:8px; --r-md:10px; --r-lg:14px; --r-xl:18px; --r-2xl:24px; --r-full:999px;

  /* layered elevation (contact + ambient, low alpha) + top highlight */
  --e1:0 1px 2px oklch(0% 0 0/0.45), inset 0 1px 0 var(--hi);
  --e2:0 1px 2px oklch(0% 0 0/0.40), 0 4px 10px oklch(0% 0 0/0.38), inset 0 1px 0 var(--hi);
  --e3:0 1px 2px oklch(0% 0 0/0.45), 0 8px 20px oklch(0% 0 0/0.40), 0 20px 40px oklch(0% 0 0/0.34), inset 0 1px 0 var(--hi-2);
  --e4:0 2px 4px oklch(0% 0 0/0.5), 0 16px 36px oklch(0% 0 0/0.5), 0 40px 72px oklch(0% 0 0/0.4), inset 0 1px 0 var(--hi-2);

  --ease:.22s cubic-bezier(.2,.7,.2,1);
  --ease-out:.18s cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1100px 620px at 82% -14%, oklch(100% 0 0 / 0.035), transparent 60%),
    radial-gradient(900px 560px at -6% -6%, oklch(100% 0 0 / 0.02), transparent 55%),
    var(--n1);
  color:var(--text);
  font-family:var(--ui);
  font-size:16px;line-height:1.5;letter-spacing:-.011em;
  -webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  min-height:100vh;
}
/* ---- MATERIAL PASS (ported from the approved A4 mockup) ----
   Film grain + vignette are the two cheapest wins against a flat CSS look.
   Fixed overlays, pointer-events:none, so they never intercept a click. */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.28;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.42'/></svg>");
  mix-blend-mode:overlay;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:98;
  background:radial-gradient(120% 90% at 50% 40%, transparent 54%, oklch(0% 0 0/.40) 100%);
}

a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-2);transition:var(--ease-out)}
a:hover{border-bottom-color:var(--text-muted)}
code{color:var(--text-muted);font-family:var(--mono);font-size:.92em}
b{color:var(--text);font-weight:640}
::selection{background:oklch(100% 0 0 / 0.16)}
[hidden]{display:none !important}

/* ---- inline SVG icon primitive ---- */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-0.14em;flex:none;
  stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ico-15{stroke-width:1.5}

/* ============================= HEADER ============================= */
header{
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  padding:16px 24px;background:oklch(15.5% 0.006 262 / 0.7);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:11px}
.brand .logo{display:inline-flex;align-items:center;gap:9px;font-weight:680;font-size:18px;
  letter-spacing:-.02em;color:var(--text)}
.brand .logo .ico{width:20px;height:20px;color:var(--text)}
.brand .sub{color:var(--text-dim);font-size:12.5px;letter-spacing:0;font-weight:450}
.status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);
  background:var(--n3);border:1px solid var(--line);padding:6px 12px;border-radius:var(--r-full);box-shadow:var(--e1)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--text-dim);transition:var(--ease)}
.dot.ok{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.dot.bad,.dot.err{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}

/* ============================= SAFEBAR (monochrome) ============================= */
.safebar{
  display:flex;align-items:center;gap:9px;justify-content:center;
  background:var(--n1);color:var(--text-muted);
  padding:10px 20px;font-size:12.5px;font-weight:480;letter-spacing:-.005em;
  border-bottom:1px solid var(--line);
}
/* The safety line is important but it is not the product. Keep it quiet and
   compact on desktop so it does not read as the page's headline. */
@media (min-width:1024px){
  .safebar{padding:7px 20px;font-size:11.5px;color:var(--text-dim)}
  .walletbar{padding:9px 24px;gap:11px}
  .pk-warn-text{font-size:11.5px;margin:4px 0;color:var(--text-muted)}
  .pk-warn-text b{color:var(--amber)}
  /* Redundant with the pasted-key panel sitting directly beneath it. The burner
     warning itself is NEVER hidden - that is the one real risk on this page. */
  .wallet-warn{display:none}
  .pk-box details>summary{padding:2px 0}
}

/* ============ CONNECT STRIP: one compact row, not three stacked bars ============
   Flash: "connect wallet / connect key bars are taking space and not looking
   good". The safety line, the wallet button and the pasted-key panel were three
   full-width blocks stacked above the product. They now sit on ONE row that
   wraps gracefully, and the key panel is collapsed until it is actually needed.
   The burner warning is never removed - it is the one real risk on this page. */
@media (min-width:900px){
  .safebar{
    display:flex;order:2;flex:1 1 320px;min-width:0;justify-content:flex-start;
    background:transparent;border:0;padding:0;margin:0;
    font-size:11px;line-height:1.4;color:var(--text-dim);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .safebar .ico{width:13px;height:13px}

  .walletbar{
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
    padding:10px 24px 10px calc(206px + 24px);
    background:linear-gradient(180deg, var(--n2), var(--n1));
    border-bottom:1px solid var(--line);
  }
  .walletbar #wallet-connect{order:1;flex:none;padding:8px 14px;font-size:13px}
  .walletbar .wallet-info{order:1}
  .pk-box{order:3;flex:0 1 auto;width:auto;margin:0}

  /* collapsed: a quiet pill. open: a proper panel on its own line. */
  .pk-box details>summary{
    display:inline-flex;align-items:center;gap:7px;padding:7px 12px;
    border:1px solid var(--line-2);border-radius:var(--r-full);
    background:var(--n3);color:var(--text-muted);font-size:12px;white-space:nowrap;
    box-shadow:var(--e1);transition:var(--ease-out);
  }
  .pk-box details>summary:hover{color:var(--text);border-color:var(--line-strong)}
  .pk-box details[open]{flex-basis:100%;width:100%}
  .pk-box details[open]>summary{margin-bottom:9px}
  .pk-box details[open]{
    padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);
    background:var(--well);box-shadow:var(--e1)
  }
  #pk-enabled-ui .controls{gap:8px}
  #pk-key{min-width:min(420px,48vw)}
}

/* The safety line is not the headline. Keep it quiet and out of the way. */
@media (max-width:899px){
  .safebar{padding:8px 16px;font-size:11px;line-height:1.45;color:var(--text-dim);text-align:left}
  .walletbar{padding:10px 16px;gap:10px}
  .pk-box details>summary{font-size:12.5px}
}
.safebar .ico{width:14px;height:14px;color:var(--text-faint)}

/* ============================= WALLET BAR ============================= */
.walletbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:12px 24px;background:var(--n0);border-bottom:1px solid var(--line)}
.wallet-info{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px}
.wallet-info .wl{display:flex;align-items:center;gap:7px}
.wallet-info .wl .k{color:var(--text-dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.wallet-info b{color:var(--text)}
.wallet-warn{color:var(--text-muted);font-size:12.5px}

/* ============================= BUTTONS ============================= */
button{
  cursor:pointer;font-family:var(--ui);font-size:14px;font-weight:560;letter-spacing:-.01em;
  padding:11px 17px;border-radius:var(--r-md);
  border:1px solid var(--line-2);background:var(--n4);color:var(--text);
  transition:var(--ease-out);box-shadow:var(--e1);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
}
button .ico{width:15px;height:15px}
button:hover{background:var(--n5);border-color:var(--line-strong)}
button:active{transform:translateY(1px);box-shadow:var(--e1)}
button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* PRIMARY = the one earned accent: near-white, dimensional */
button.primary{
  background:linear-gradient(180deg,var(--primary-hover),var(--primary));
  border:1px solid oklch(100% 0 0 / 0.6);color:var(--primary-ink);font-weight:640;
  box-shadow:0 1px 2px oklch(0% 0 0/0.5),0 6px 16px oklch(0% 0 0/0.35),inset 0 1px 0 oklch(100% 0 0/0.9);
}
button.primary:hover{filter:brightness(1.02);box-shadow:0 2px 4px oklch(0% 0 0/0.5),0 10px 24px oklch(0% 0 0/0.4),inset 0 1px 0 oklch(100% 0 0/0.9)}
button.primary:focus-visible{outline:none;box-shadow:0 0 0 2px var(--n1),0 0 0 4px var(--focus),var(--e2)}
button.big{font-size:15px;padding:14px 24px;border-radius:var(--r-md)}
button.warn{background:var(--amber-soft);border-color:oklch(80% 0.105 82 / 0.28);color:var(--amber);box-shadow:var(--e1)}
button.warn:hover{background:oklch(80% 0.105 82 / 0.16)}
button.ghost{background:transparent;border-color:var(--line-2);color:var(--text-muted);padding:8px 14px;font-size:13px;box-shadow:none}
button.ghost:hover{color:var(--text);border-color:var(--line-strong);background:oklch(100% 0 0/0.03)}
button:disabled{opacity:.4;cursor:not-allowed;filter:none;transform:none;box-shadow:none}

/* ============================= NAV TABS ============================= */
nav#tabs{display:flex;gap:2px;padding:0 20px;background:var(--n0);border-bottom:1px solid var(--line);
  flex-wrap:wrap;overflow-x:auto;scrollbar-width:none}
nav#tabs::-webkit-scrollbar{display:none}
.tab{background:transparent;border:none;box-shadow:none;color:var(--text-dim);padding:14px 15px;
  font-size:13px;font-weight:560;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;border-radius:0}
.tab:hover{color:var(--text);background:transparent;border-color:transparent}
.tab.active{color:var(--text);border-bottom-color:var(--text)}
.tab:focus-visible{outline:2px solid var(--focus);outline-offset:-4px;border-radius:var(--r-xs)}

/* ============================= LAYOUT ============================= */
/* Two-column shell: the wizard keeps its comfortable 720px measure and the
   rail sits beside it. Below 1180px the rail is hidden and the horizontal
   strip above takes over, so nothing is lost on a phone. */
.shell{display:block}
main{padding:28px 20px 72px;max-width:720px;margin:0 auto}

/* ===================== CONSOLE LAYOUT (Concept A, approved) =====================
   Sections live in a fixed LEFT sidebar (Flash: "tabs on the top left").
   The right rail keeps the live sale + Start. Breakpoint is 1024px: at 1180 the
   whole thing vanished on a normal laptop window and Flash saw the old design.
   Below 1024 the sidebar hides and the horizontal #tabs strip takes over. */
#sidebar{display:none}

@media (min-width:1024px){
  nav#tabs{display:none}
  header{padding-left:calc(206px + 24px)}
  .safebar,.walletbar,.pk-banner{padding-left:calc(206px + 24px)}

  #sidebar{
    display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:206px;z-index:40;
    padding:15px 11px;
    background:linear-gradient(180deg, var(--n2) 0%, var(--n1) 44%, var(--n0) 100%);
    border-right:1px solid var(--line);
    box-shadow:14px 0 34px -18px oklch(0% 0 0/.85), inset -1px 0 0 oklch(0% 0 0/.35);
  }
  #sidebar::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:oklch(100% 0 0/.10)}

  .shell{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:24px;
    max-width:1300px;margin:0 auto;padding:0 24px 0 calc(206px + 24px);align-items:start}
  main{padding:22px 0 90px;max-width:none;margin:0;min-width:0}
  #rail{position:sticky;top:14px;padding:22px 0 0;display:flex;flex-direction:column;gap:12px}
  /* The rail's "Your sale" card IS the stepper on desktop - keeping the sticky
     horizontal stepper too was duplication that ate the first screen. */
  .wprogress{display:none}
}
@media (min-width:1440px){
  .shell{grid-template-columns:minmax(0,1fr) 300px;gap:30px;max-width:1400px}
}

#rail{display:none}
@media (min-width:1024px){#rail{display:flex}}

/* ---- sidebar internals ---- */
.sb-logo{display:flex;align-items:center;gap:10px;font-weight:690;font-size:14.5px;
  letter-spacing:-.022em;padding:0 5px 14px;color:var(--text)}
.sb-badge{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex:none;
  background:linear-gradient(160deg, var(--n5,oklch(30% .011 262)), var(--n3) 55%, var(--n2));
  border:1px solid var(--line-2);
  box-shadow:0 1px 2px oklch(0% 0 0/.42), 0 6px 14px -3px oklch(0% 0 0/.40),
             inset 0 1px 0 oklch(100% 0 0/.10), 0 0 20px -6px oklch(100% 0 0/.35)}
.sb-badge .ico{width:15px;height:15px;filter:drop-shadow(0 1px 1px oklch(0% 0 0/.6))}
.sb-kicker{font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--text-faint);padding:0 5px 8px}
.sb-nav{display:flex;flex-direction:column;gap:2px}
.sb-tab{position:relative;display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--text-muted);
  font-family:var(--ui);font-size:13px;font-weight:560;padding:8px 10px;cursor:pointer;
  transition:var(--ease-out);box-shadow:none}
.sb-tab .ico{width:15px;height:15px;color:var(--text-dim);transition:var(--ease-out)}
.sb-tab:hover{background:oklch(100% 0 0/.045);border-color:var(--line);color:var(--text);transform:translateX(1px)}
.sb-tab:hover .ico{color:var(--text)}
.sb-tab.active{color:var(--text);border-color:var(--line-2);
  background:linear-gradient(158deg, oklch(30% .011 262), var(--n3) 62%, var(--n2));
  box-shadow:0 1px 2px oklch(0% 0 0/.42), 0 6px 14px -3px oklch(0% 0 0/.40),
             inset 0 1px 0 oklch(100% 0 0/.10), 0 0 24px -8px oklch(100% 0 0/.32)}
.sb-tab.active .ico{color:var(--text);filter:drop-shadow(0 1px 2px oklch(0% 0 0/.7))}
.sb-tab.active::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2.5px;
  border-radius:var(--r-full);
  background:linear-gradient(180deg, oklch(100% 0 0/.95), oklch(100% 0 0/.35));
  box-shadow:0 0 12px oklch(100% 0 0/.7)}
.sb-tab:focus-visible{outline:none;box-shadow:0 0 0 2px var(--n1),0 0 0 4px var(--focus)}
.sb-foot{margin-top:auto;padding:10px 6px 0;border-top:1px solid var(--line)}
.sb-chain{display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--text-dim);line-height:1.35}
.sb-led{width:6px;height:6px;border-radius:50%;background:var(--good);flex:none;
  box-shadow:0 0 0 3px oklch(74% .115 158/.16), 0 0 12px oklch(74% .115 158/.9);
  animation:sbPulse 2.6s ease-in-out infinite}
.sb-led.bad{background:var(--danger);box-shadow:0 0 0 3px oklch(68% .145 25/.16), 0 0 12px oklch(68% .145 25/.9)}
@keyframes sbPulse{50%{opacity:.5;transform:scale(.92)}}

.rail-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--n2);
  padding:14px 14px 15px;box-shadow:var(--e1)}
.rail-title{color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;margin:0 0 10px;padding:0 2px}

/* --- rail navigation --- */
.rail-nav{padding:14px 8px 10px}
.rail-nav .rail-title{padding-left:8px}
.rail-tab{display:grid;grid-template-columns:18px 1fr;gap:2px 11px;width:100%;text-align:left;
  background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--r-md);
  padding:9px 10px;margin:0;cursor:pointer;transition:var(--ease-out);color:var(--text-muted)}
.rail-tab .ico{width:17px;height:17px;grid-row:1/3;align-self:center;color:var(--text-dim);transition:var(--ease-out)}
.rail-tab-t{font-size:13.5px;font-weight:600;color:var(--text-muted);letter-spacing:-.012em;line-height:1.3}
.rail-tab-s{font-size:11px;color:var(--text-dim);line-height:1.35}
.rail-tab:hover{background:oklch(100% 0 0/0.035);border-color:var(--line)}
.rail-tab:hover .rail-tab-t,.rail-tab:hover .ico{color:var(--text)}
.rail-tab.active{background:linear-gradient(155deg,var(--n4),var(--n3));border-color:var(--line-2);
  box-shadow:var(--e1),inset 2px 0 0 var(--text)}
.rail-tab.active .rail-tab-t{color:var(--text)}
.rail-tab.active .ico{color:var(--text)}
.rail-tab:focus-visible{outline:none;box-shadow:0 0 0 2px var(--n1),0 0 0 4px var(--focus)}

/* --- rail step list (mirrors the wizard stepper) ---
   NOTE: these rows also carry `.wstep` so they reuse the stepper's dot styling
   and its existing click/keyboard handlers. `.wstep` is declared LATER in this
   file, so a bare `.rail-step` selector loses the cascade at equal specificity
   and the rows collapse into the horizontal stepper's centred column layout.
   Every layout rule below is therefore scoped to `.rail-steps` to win. */
.rail-steps{list-style:none;margin:0;padding:0;position:relative}
.rail-steps::before{content:"";position:absolute;left:14px;top:16px;bottom:16px;width:1px;background:var(--line-2)}
.rail-steps .rail-step{flex:none;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;
  padding:7px 6px;border-radius:var(--r-sm);cursor:default;position:relative;transition:var(--ease-out)}
.rail-steps .rail-step .wstep-dot{position:relative;z-index:1}
.rail-steps .rail-step-b{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0}
.rail-steps .rail-step-n{font-size:13px;font-weight:600;color:var(--text-dim);letter-spacing:-.012em}
.rail-steps .rail-step-s{font-size:11px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rail-steps .rail-step.done,.rail-steps .rail-step.active{cursor:pointer}
.rail-steps .rail-step.done:hover,.rail-steps .rail-step.active:hover{background:oklch(100% 0 0/0.035)}
.rail-steps .rail-step.done .rail-step-n{color:var(--text-muted)}
.rail-steps .rail-step.active .rail-step-n{color:var(--text)}
.rail-steps .rail-step:focus-visible{outline:none;box-shadow:0 0 0 2px var(--n1),0 0 0 4px var(--focus)}

/* --- rail run mirror --- */
.rail-run-status{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;
  color:var(--text-muted);margin-bottom:9px}
.rail-run-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-dim);flex:none}
.rail-run-status.live::before{background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft);animation:runnerPulse 1.6s ease-in-out infinite}
.rail-run-status.good::before{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.rail-run-status.bad::before{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
.rail-run-bar{height:6px;border-radius:var(--r-full);background:var(--well);border:1px solid var(--line);overflow:hidden}
.rail-run-fill{height:100%;width:0;background:linear-gradient(90deg,var(--text-faint),var(--text));transition:width .35s var(--ease)}
.rail-run-metric{margin-top:8px;font-size:11.5px;color:var(--text-dim);line-height:1.5}
.rail-jump{width:100%;margin-top:11px;justify-content:center}
.panel{display:none;animation:fade .3s var(--ease)}
.panel.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

h2{font-size:22px;margin:0 0 14px;font-weight:680;color:var(--text);letter-spacing:-.022em}
h2 .hint{color:var(--text-dim);font-weight:400;font-size:12.5px;margin-left:10px;letter-spacing:0}
.helper{color:var(--text-muted);font-size:14px;margin:0 0 16px;max-width:62ch;line-height:1.55}

/* ============================= HERO / INTRO ============================= */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(168deg,var(--n4),var(--n3) 60%,var(--n2));
  border:1px solid var(--line);border-radius:var(--r-xl);
  padding:28px 28px 24px;margin-bottom:22px;box-shadow:var(--e3);
}
/* On a laptop the marketing block was pushing the FIRST control below the fold
   (measured: step 1 began at y=595, "Find my token" at y=805 on a 1280x800
   window). The product must start on the first screen. */
@media (min-width:1024px){
  .hero{padding:20px 24px 18px;margin-bottom:16px}
  .hero h1{font-size:23px;margin:0 0 6px}
  .hero .lede{font-size:13.5px;max-width:66ch}
  details.hero-more{margin-top:11px;padding-top:10px}
  .hero .dollar-row{margin-top:11px !important}
}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(420px 150px at 100% 0%, oklch(100% 0 0/0.05), transparent 70%)}
.hero>*{position:relative}
.hero h1{font-size:29px;line-height:1.08;margin:0 0 10px;font-weight:720;letter-spacing:-.032em;color:var(--text)}
.hero .lede{font-size:15px;color:var(--text-muted);margin:0;max-width:54ch;line-height:1.55}
.hero .lede b{color:var(--text)}
details.hero-more{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
details.hero-more>summary{cursor:pointer;color:var(--text-muted);font-size:13px;font-weight:560;
  list-style:none;user-select:none;display:inline-flex;align-items:center;gap:7px;transition:var(--ease-out)}
details.hero-more>summary::-webkit-details-marker{display:none}
details.hero-more>summary .chev{transition:var(--ease);width:14px;height:14px;color:var(--text-faint)}
details.hero-more[open]>summary .chev{transform:rotate(90deg)}
details.hero-more>summary:hover{color:var(--text)}
details.hero-more .more-body{padding-top:12px}
details.hero-more p{margin:0 0 10px;font-size:13.5px;color:var(--text-muted);line-height:1.6}
details.hero-more p b{color:var(--text)}
.hero .honest{color:var(--amber);background:var(--amber-soft);border:1px solid oklch(80% 0.105 82 / 0.2);
  border-radius:var(--r-sm);padding:11px 14px;margin-top:4px;font-size:13px;line-height:1.6}

.dollar-row{margin:16px 0 0}
.dollar-row label{flex-direction:row;flex-wrap:wrap;align-items:center;gap:9px;text-transform:none;
  color:var(--text-muted);font-size:13px;letter-spacing:0;font-weight:450}
.dollar-row label .ico{width:15px;height:15px;color:var(--text-faint)}
.dollar-row input{max-width:130px}
.dollar-row .muted{color:var(--text-dim)}

/* ============================= CONTROLS / INPUTS ============================= */
.controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:14px 0}
.controls.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--text-dim);
  letter-spacing:.05em;text-transform:uppercase;font-weight:600}
label.inline{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:450;color:var(--text-muted)}
.big-label{font-size:12.5px;color:var(--text-muted);text-transform:none;letter-spacing:.01em}
label.grow{flex:1}

input[type=text],input[type=number],input[type=password],input[type=datetime-local],textarea,select{
  background:var(--well);border:1px solid var(--line-2);color:var(--text);
  padding:12px 14px;font-size:15px;border-radius:var(--r-sm);width:100%;
  transition:var(--ease-out);font-family:var(--mono);box-shadow:inset 0 1px 2px oklch(0% 0 0/0.3);
}
select,textarea{font-family:var(--ui)}
input::placeholder,textarea::placeholder{color:var(--text-dim)}
input[type=text],input[type=password]{min-width:200px}
input[type=number]{min-width:110px}
input:hover,textarea:hover,select:hover{border-color:var(--line-strong)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent;background:var(--n0)}
input[type=range]{min-width:240px;height:26px;padding:0;background:transparent;border:none;box-shadow:none;accent-color:var(--text);cursor:pointer}
input[type=checkbox],input[type=radio]{accent-color:var(--text);width:16px;height:16px}

/* ============================= STATS ============================= */
.stats{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.stats:empty{display:none}
.stat{background:var(--n3);border:1px solid var(--line);border-radius:var(--r-md);
  padding:13px 15px;min-width:128px;flex:1 1 auto;box-shadow:var(--e1);transition:var(--ease-out)}
.stat:hover{border-color:var(--line-2)}
.stat .k{font-size:10.5px;color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.stat .v{font-size:19px;color:var(--text);margin-top:5px;word-break:break-word;font-weight:640;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat.good .v{color:var(--good)}
.stat.bad .v{color:var(--danger)}
.stat.warn .v{color:var(--amber)}

/* ============================= TABLES ============================= */
table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px}
th,td{text-align:right;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--text-dim);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  position:sticky;top:0;background:var(--n2)}
td:first-child,th:first-child{text-align:left}
tr:hover td{background:oklch(100% 0 0/0.02)}
.num{font-variant-numeric:tabular-nums;font-family:var(--mono)}
.loss-lo{color:var(--good)}
.loss-mid{color:var(--amber)}
.loss-hi{color:var(--danger);font-weight:680}
.mono-addr{font-size:12px;color:var(--text-muted);font-family:var(--mono)}
.tablebox{overflow:auto;max-height:460px;border:1px solid var(--line);border-radius:var(--r-md)}

/* ============================= MESSAGES (icon via CSS mask) ============================= */
.msg{margin-top:14px;font-size:13.5px;line-height:1.55;color:var(--text-muted)}
.msg:empty{margin-top:0}
.msg.err{color:var(--danger)}
.msg.ok{color:var(--good)}
.msg.warn{color:var(--amber)}
.msg.ok:not(:empty)::before,.msg.err:not(:empty)::before,.msg.warn:not(:empty)::before{
  content:"";display:inline-block;width:1em;height:1em;vertical-align:-0.14em;margin-right:.45em;
  background:currentColor;-webkit-mask:center/contain no-repeat var(--mi);mask:center/contain no-repeat var(--mi)}
.msg.ok{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.msg.err{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5'/%3E%3Cpath d='M12 16.5h.01'/%3E%3C/svg%3E")}
.msg.warn{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20L12 3Z'/%3E%3Cpath d='M12 10v4'/%3E%3Cpath d='M12 16.5h.01'/%3E%3C/svg%3E")}
.spin{color:var(--text-muted);position:relative;padding-left:22px;display:inline-block}
.spin::before{content:"";position:absolute;left:0;top:50%;width:13px;height:13px;margin-top:-7px;
  border:2px solid var(--line-strong);border-top-color:var(--text);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.muted{color:var(--text-dim);font-size:12.5px}
.good{color:var(--good)}
.bad{color:var(--danger)}

.danger-box{background:var(--danger-soft);border:1px solid oklch(68% 0.145 25 / 0.28);border-left:2px solid var(--danger);
  padding:14px 16px;border-radius:var(--r-sm);margin-bottom:16px;color:oklch(84% 0.08 25);font-size:13.5px;line-height:1.65}
.danger-box code{color:oklch(80% 0.1 25)}

footer{color:var(--text-dim);font-size:12px;text-align:center;padding:28px;border-top:1px solid var(--line);margin-top:44px}

/* ============================================================================
   STICKY PROGRESS HEADER
   ========================================================================== */
.wprogress{position:sticky;top:0;z-index:30;margin:-28px -20px 24px;padding:15px 20px 0;
  background:var(--n1);box-shadow:0 10px 26px -14px oklch(0% 0 0/0.9);border-bottom:1px solid var(--line)}
.wprogress-inner{max-width:720px;margin:0 auto}
.wsteps{list-style:none;display:flex;justify-content:space-between;gap:6px;margin:0;padding:0}
.wstep{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;background:transparent;border:none;
  box-shadow:none;padding:2px 0 13px;cursor:default;position:relative}
.wstep .wstep-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:640;color:var(--text-faint);background:var(--n3);
  border:1px solid var(--line-2);transition:var(--ease);box-shadow:var(--e1);font-variant-numeric:tabular-nums}
.wstep .wstep-dot .ico{width:14px;height:14px;display:none}
.wstep .wstep-name{font-size:11px;font-weight:550;letter-spacing:0;color:var(--text-dim);text-transform:none;transition:var(--ease)}
.wstep.done{cursor:pointer}
.wstep.done .wstep-dot{background:var(--n4);border-color:var(--line-strong);color:var(--text)}
.wstep.done .wstep-dot span{display:none}
.wstep.done .wstep-dot .ico{display:block}
.wstep.done .wstep-name{color:var(--text-muted)}
.wstep.active .wstep-dot{background:linear-gradient(180deg,var(--primary-hover),var(--primary));
  border-color:oklch(100% 0 0/0.7);color:var(--primary-ink);
  box-shadow:0 0 0 4px oklch(100% 0 0/0.08),0 2px 8px oklch(0% 0 0/0.5);transform:scale(1.04)}
.wstep.active .wstep-name{color:var(--text)}
.wstep.done:hover .wstep-dot{border-color:var(--text-faint)}
.wstep:focus-visible{outline:none}
.wstep:focus-visible .wstep-dot{outline:2px solid var(--focus);outline-offset:2px}
.wbar{height:2px;background:var(--line);border-radius:var(--r-full);overflow:hidden;margin:0 0 -1px}
.wbar-fill{height:100%;width:0;border-radius:var(--r-full);
  background:linear-gradient(90deg,var(--text-faint),var(--text));transition:width .45s var(--ease)}

/* ============================================================================
   STEPPER CARDS
   ========================================================================== */
.step{border:1px solid var(--line);border-radius:var(--r-xl);margin-bottom:14px;background:var(--n2);
  overflow:hidden;transition:var(--ease);box-shadow:var(--e1)}
.step.active{border-color:var(--line-2);box-shadow:var(--e3);background:linear-gradient(180deg,var(--n3),var(--n2))}
.step.locked{opacity:.46;pointer-events:none}
.step.locked .step-body,.step.done .step-body{display:none}
.step-head{display:flex;align-items:center;gap:14px;padding:18px 22px;cursor:default}
.step.active .step-head{padding-bottom:6px}
.step-n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;
  border-radius:50%;background:var(--n4);color:var(--text-muted);font-weight:680;font-size:13px;
  border:1px solid var(--line-2);box-shadow:var(--e1);font-variant-numeric:tabular-nums}
.step.active .step-n{background:linear-gradient(180deg,var(--primary-hover),var(--primary));color:var(--primary-ink);border-color:oklch(100% 0 0/0.6)}
.step.done .step-n{color:var(--text)}
.step.done .step-n span{display:none}
.step.done .step-n::after{content:"";width:14px;height:14px;background:currentColor;
  -webkit-mask:center/contain no-repeat var(--mi-check);mask:center/contain no-repeat var(--mi-check)}
:root{--mi-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.step-t{font-size:17.5px;color:var(--text);font-weight:660;letter-spacing:-.022em}
.step-summary{color:var(--text-muted);font-size:13px;margin-left:2px;font-variant-numeric:tabular-nums}
.step.done .step-summary::before{content:"";display:inline-block;width:.85em;height:.85em;margin-right:.35em;
  vertical-align:-0.05em;background:var(--good);-webkit-mask:center/contain no-repeat var(--mi-check);mask:center/contain no-repeat var(--mi-check)}
.edit-btn{margin-left:auto;background:transparent;border-color:var(--line-2);color:var(--text-muted);
  padding:7px 15px;font-size:12px;border-radius:var(--r-full);box-shadow:none}
.edit-btn:hover{color:var(--text);border-color:var(--line-strong);background:transparent}
.step-body{padding:6px 22px 22px}
.step.active .step-body{animation:fade .3s var(--ease)}
.step-body>.helper{margin-top:8px}

/* choice pills */
.choice-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}
.choice{flex-direction:row;align-items:center;gap:9px;font-size:14px;color:var(--text);
  background:var(--n3);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:11px 15px;cursor:pointer;
  transition:var(--ease-out);text-transform:none;letter-spacing:0;font-weight:450;box-shadow:var(--e1)}
.choice:hover{border-color:var(--line-strong);background:var(--n4)}
.choice:has(input:checked){border-color:var(--line-strong);background:var(--n4);box-shadow:0 0 0 1px var(--line-2),var(--e1)}
.bignum{font-size:28px;color:var(--text);font-variant-numeric:tabular-nums;min-width:84px;text-align:center;font-weight:680;letter-spacing:-.035em;font-family:var(--mono)}

.confirm-line{font-size:14.5px;color:var(--good);margin:14px 0 0;font-weight:500;display:flex;align-items:center;gap:8px}
.confirm-line:empty{margin:0}
.confirm-line .ico{width:16px;height:16px}
.confirm-line .muted{margin-left:2px}

/* ============================================================================
   MONEY MOMENT — the single most important element
   ========================================================================== */
.money-card{margin:18px 0}
.money-card:empty{display:none}
.money-hero{position:relative;overflow:hidden;border:1px solid var(--line-2);border-radius:var(--r-lg);
  background:linear-gradient(168deg,var(--n4),var(--n3) 55%,var(--n2));box-shadow:var(--e3);padding:22px 24px}
.money-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(360px 130px at 100% -10%, var(--good-soft), transparent 72%)}
.money-hero>*{position:relative}
.mh-cap{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);font-weight:640;margin-bottom:6px}
.mh-value{font-family:var(--mono);font-size:44px;line-height:1;font-weight:600;letter-spacing:-.04em;
  color:var(--good);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:4px}
.mh-value .cur{font-size:24px;color:var(--text-muted);font-weight:500;letter-spacing:-.02em}
.mh-value .cents{color:var(--good-dim)}
.mh-sub{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.mh-item{flex:1 1 140px;background:var(--well);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 14px;
  box-shadow:inset 0 1px 0 var(--hi)}
.mh-item .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}
.mh-item .n{font-family:var(--mono);font-size:17px;margin-top:4px;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:550}
.mh-item.loss .n{color:var(--amber)}
.mh-item .pct{font-size:12px;color:var(--text-dim);margin-left:5px}
.money-hero.danger{border-color:oklch(68% 0.145 25 / 0.4)}
.money-hero.danger::before{background:radial-gradient(360px 130px at 100% -10%, var(--danger-soft), transparent 72%)}
.money-hero.danger .mh-value{color:var(--danger)}
.money-hero.danger .mh-value .cents{color:var(--danger-dim)}
.money-note{margin-top:12px;font-size:12.5px;color:var(--text-muted);line-height:1.55;max-width:56ch}
.money-note.warn{color:var(--amber)}

/* pool share bar */
.poolbar-wrap{margin:14px 0 4px}
.poolbar-wrap:empty{display:none}
.poolbar-lbl{font-size:12.5px;color:var(--text-muted);margin-bottom:7px}
.poolbar-lbl b{font-family:var(--mono);font-variant-numeric:tabular-nums}
.poolbar{height:8px;background:var(--well);border:1px solid var(--line);border-radius:var(--r-full);overflow:hidden;box-shadow:inset 0 1px 2px oklch(0% 0 0/0.3)}
.poolbar-fill{height:100%;background:linear-gradient(90deg,var(--text-faint),var(--text));border-radius:var(--r-full);min-width:3px;transition:width .5s var(--ease)}
.poolbar-fill.over{background:linear-gradient(90deg,var(--danger-dim),var(--danger))}

/* ============================= SPEED PRESETS ============================= */
/* ===================== LIVE MARKET PANEL =====================
   Ported from the approved A4 mockup. Every value is filled from /api/market
   (real reserves, real supply, real Swap events) - never hardcoded. */
.market{position:relative;border-radius:var(--r-xl);padding:13px 15px 10px;overflow:hidden;margin-top:18px;
  background:linear-gradient(168deg, var(--n3) 0%, var(--n2) 55%, oklch(12.5% .005 262) 100%);
  border:1px solid var(--line-2);
  box-shadow:0 2px 4px oklch(0% 0 0/.46), 0 14px 34px -8px oklch(0% 0 0/.55),
             inset 0 1px 0 oklch(100% 0 0/.21), inset 0 0 60px -20px oklch(0% 0 0/.9)}
.market::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(165deg, oklch(100% 0 0/.07), transparent 40%)}
.mk-head{position:relative;display:flex;align-items:baseline;gap:9px;margin-bottom:3px;flex-wrap:wrap}
.mk-t{font-size:12.5px;font-weight:650;letter-spacing:-.015em;color:var(--text)}
.mk-s{font-size:10.5px;color:var(--text-dim)}
.mk-lg{margin-left:auto;display:flex;align-items:center;gap:11px;font-size:10px;color:var(--text-dim)}
.mk-lg i{display:inline-flex;align-items:center;gap:5px;font-style:normal}
.mk-dot-sell{width:7px;height:7px;border-radius:50%;background:oklch(100% 0 0/.95);box-shadow:0 0 7px oklch(100% 0 0/.8)}
.mk-dot-buy{width:6px;height:6px;border-radius:50%;border:1px solid oklch(100% 0 0/.5)}
.mk-dot-plan{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 8px oklch(80% .105 82/.9)}
.mk-wrap{position:relative;height:118px;margin-top:5px}
.mk-wrap svg{display:block;width:100%;height:118px;overflow:visible}
.mk-scan{position:absolute;top:0;bottom:0;width:110px;pointer-events:none;z-index:1;
  background:linear-gradient(90deg,transparent,oklch(100% 0 0/.05),transparent);
  animation:mkScan 7s linear infinite}
@keyframes mkScan{0%{left:-110px}100%{left:100%}}
.mk-foot{position:relative;display:flex;gap:16px;margin-top:7px;padding-top:8px;
  border-top:1px solid var(--line);flex-wrap:wrap}
.mk-c .k{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint)}
.mk-c .v{font-size:12.5px;font-weight:640;letter-spacing:-.02em;margin-top:2px;color:var(--text);
  font-family:var(--mono);font-variant-numeric:tabular-nums}
.mk-c .v small{font-size:10px;color:var(--text-dim);font-weight:500}

.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:10px 0;perspective:900px}
/* Selected preset physically lifts and tilts toward the top-left key light,
   matching the approved mockup. transform-style keeps the tilt real. */
.preset-grid .preset{transform-style:preserve-3d;transition:var(--ease)}
.preset-grid .preset:hover{transform:translateY(-2px)}
.preset-grid .preset.on,.preset-grid .preset.active,.preset-grid .preset[aria-pressed="true"]{
  transform:translateY(-4px) rotateX(2.4deg) scale(1.018);
  box-shadow:0 3px 6px oklch(0% 0 0/.5), 0 26px 60px -12px oklch(0% 0 0/.68),
             inset 0 1px 0 oklch(100% 0 0/.21), 0 0 36px -10px oklch(100% 0 0/.42);
}
.preset{position:relative;background:var(--n3);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:20px 16px 18px;cursor:pointer;text-align:center;transition:var(--ease);outline:none;box-shadow:var(--e1)}
.preset:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:var(--e3);background:var(--n4)}
.preset:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.preset.selected{border-color:var(--line-strong);background:var(--n4);box-shadow:0 0 0 1px var(--line-strong),var(--e3)}
.preset.selected::after{content:"";position:absolute;top:11px;right:12px;width:19px;height:19px;border-radius:50%;box-shadow:0 1px 3px oklch(0% 0 0/0.5);
  background:var(--primary) center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23151519' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.preset-emoji{display:flex;align-items:center;justify-content:center;height:34px;color:var(--text)}
.preset-emoji .ico{width:26px;height:26px;stroke-width:1.5}
.preset-name{font-size:16px;font-weight:680;color:var(--text);margin-top:8px;letter-spacing:-.02em}
.preset-tag{font-size:11.5px;color:var(--text-dim);margin-top:5px;min-height:32px;line-height:1.4}
.preset-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--text-muted)}
.preset .pd-line{margin:3px 0}
.preset .pd-line b{color:var(--text);font-family:var(--mono);font-variant-numeric:tabular-nums}
.preset .pd-keep{margin-top:7px;color:var(--good);font-size:11.5px;font-weight:550}
.preset .pd-keep b{color:var(--good);font-family:var(--mono)}
.preset-badge{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:var(--n5);color:var(--text-muted);
  font-size:9.5px;font-weight:660;padding:3px 10px;border-radius:var(--r-full);letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--line-strong);box-shadow:var(--e1)}

.plan-bars{margin-top:16px}
.plan-bars:empty{display:none}
.bar-wrap{display:flex;align-items:center;gap:10px;margin:4px 0}
.bar-lbl{width:40px;color:var(--text-dim);font-size:11px;text-align:right;flex:0 0 40px;font-family:var(--mono)}
.bar{height:9px;background:linear-gradient(90deg,var(--text-faint),var(--text-muted));border-radius:var(--r-full);min-width:3px;transition:width .4s var(--ease)}
.bar.tail{background:linear-gradient(90deg,var(--amber-dim),var(--amber))}
.bar-val{color:var(--text-dim);font-size:11px;font-family:var(--mono);white-space:nowrap}

/* ============================= PAY CARDS ============================= */
.pay-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.paycard{flex-direction:row;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}
.paycard input{position:absolute;opacity:0;pointer-events:none}
.paycard-in{flex:1;border:1px solid var(--line-2);border-radius:var(--r-lg);padding:15px 18px;background:var(--n3);
  transition:var(--ease-out);position:relative;box-shadow:var(--e1)}
.paycard:hover .paycard-in{border-color:var(--line-strong);background:var(--n4)}
.paycard.sel .paycard-in{border-color:var(--line-strong);background:var(--n4);box-shadow:0 0 0 1px var(--line-strong),var(--e2)}
.paycard.sel .paycard-in::after{content:"";position:absolute;top:15px;right:16px;width:19px;height:19px;border-radius:50%;
  box-shadow:0 1px 3px oklch(0% 0 0/0.5);
  background:var(--primary) center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23151519' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.paycard-title{font-size:15px;font-weight:650;color:var(--text);display:flex;align-items:center;gap:8px}
.paycard-title .good{background:var(--good-soft);color:var(--good);font-size:9.5px;font-weight:660;padding:2px 8px;
  border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.06em;border:1px solid oklch(74% 0.115 158 / 0.25)}
.paycard-note{font-size:13px;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;gap:6px}
.paycard-note .ico{width:14px;height:14px;flex:none}
.paycard-note.good{color:var(--good)}
.paycard-note.bad{color:var(--amber)}

.backup-box{background:var(--amber-soft);border:1px solid oklch(80% 0.105 82 / 0.28);border-left:2px solid var(--amber);
  border-radius:var(--r-sm);padding:14px 16px;margin:12px 0;color:oklch(86% 0.07 82);font-size:13.5px;line-height:1.65}
.backup-box b{color:var(--amber)}
.backup-box .ico{width:15px;height:15px;vertical-align:-.15em}

/* ============================= REVIEW / DEPLOY CARDS ============================= */
.deploy-card{border:1px solid var(--line);border-left:2px solid var(--text-faint);border-radius:var(--r-lg);
  padding:18px 20px;margin:14px 0;background:var(--n3);box-shadow:var(--e1)}
.deploy-card h4{margin:0 0 8px;font-size:15px;color:var(--text);font-weight:660;letter-spacing:-.015em}
.deploy-card p{margin:0 0 12px;color:var(--text-muted);font-size:13px;line-height:1.55}
pre.txdata{background:var(--well);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;
  font-size:12px;color:var(--text-muted);overflow:auto;max-height:220px;white-space:pre-wrap;word-break:break-all;font-family:var(--mono)}
ul.steps{margin:10px 0 0;padding-left:18px;color:var(--text-muted);font-size:13px;line-height:1.8}

/* Sequential create → fund → run workflow. Only the current action is bright;
   completed cards recede, so the seller always knows exactly what to press. */
.workflow-stack{position:relative;margin-top:18px;padding-left:20px}
.workflow-stack::before{content:"";position:absolute;left:7px;top:22px;bottom:22px;width:1px;background:var(--line-2)}
.workflow-stack>.deploy-card{position:relative;margin:0 0 12px}
.workflow-stack>.deploy-card::before{content:"";position:absolute;left:-20px;top:23px;width:13px;height:13px;border-radius:50%;
  background:var(--n3);border:2px solid var(--text-dim);box-shadow:0 0 0 4px var(--n1)}
.workflow-stack>.deploy-card.current{border-left-color:var(--text);background:linear-gradient(155deg,var(--n4),var(--n3));box-shadow:var(--e2)}
.workflow-stack>.deploy-card.current::before{background:var(--primary);border-color:var(--primary)}
.workflow-stack>.deploy-card.complete{opacity:.72;border-left-color:var(--good)}
.workflow-stack>.deploy-card.complete::before{background:var(--good);border-color:var(--good)}

/* LOCKED: the step is visible from the start so the seller can see the whole
   path before committing, but it is clearly not yet actionable. Flash reported
   six times that there was "no start button" - because it was created only
   after two confirmations. Showing it locked is the fix. */
.workflow-stack>.deploy-card.locked{border-left-color:var(--line-2);background:var(--n2)}
.workflow-stack>.deploy-card.locked::before{background:var(--n2);border-color:var(--line-strong)}
.workflow-stack>.deploy-card.locked h4{color:var(--text-muted)}
.workflow-stack>.deploy-card.locked .action-kicker{color:var(--text-dim)}
.runner-gate{margin-top:10px;padding:9px 12px;border:1px dashed var(--line-2);border-radius:var(--r-sm);
  background:var(--well);color:var(--text-dim);font-size:12.5px;line-height:1.5}
.action-kicker{color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.12em;margin-bottom:7px}
.runner-status{display:inline-flex;align-items:center;gap:8px;margin:2px 0 12px;padding:7px 11px;border-radius:var(--r-full);
  border:1px solid var(--line-2);background:var(--well);color:var(--text-muted);font-size:12.5px;font-weight:600}
.runner-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-dim)}
.runner-status.live::before{background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft);animation:runnerPulse 1.6s ease-in-out infinite}
.runner-status.good::before{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.runner-status.bad::before{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
@keyframes runnerPulse{50%{opacity:.45}}
.runner-progress{height:9px;overflow:hidden;border-radius:var(--r-full);background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1px 2px oklch(0% 0 0/.35)}
.runner-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--text-faint),var(--text));transition:width .35s var(--ease)}
.runner-metrics{margin:7px 0 2px;color:var(--text-muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.runner-log{margin:12px 0 0;min-height:70px;max-height:180px;overflow:auto;background:var(--well);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:11px 13px;color:var(--text-muted);font:11.5px/1.55 var(--mono);white-space:pre-wrap;word-break:break-word}
.runner-receipts{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.receipt-link{display:inline-flex;padding:6px 9px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--n2);
  color:var(--text-muted);font:11px var(--mono)}
.receipt-link:hover{color:var(--text);border-color:var(--line-strong)}

details.adv{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
details.adv>summary{cursor:pointer;color:var(--text-muted);font-size:12.5px;font-weight:560;list-style:none;user-select:none;
  display:inline-flex;align-items:center;gap:7px;transition:var(--ease-out)}
details.adv>summary::-webkit-details-marker{display:none}
details.adv>summary::before{content:"";width:13px;height:13px;flex:none;background:currentColor;
  -webkit-mask:center/contain no-repeat var(--mi-chev);mask:center/contain no-repeat var(--mi-chev);transition:var(--ease)}
details.adv[open]>summary::before{transform:rotate(90deg)}
details.adv>summary:hover{color:var(--text)}
:root{--mi-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E")}

/* ============================= RUN MONITOR ============================= */
.runcard{background:var(--n3);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;margin-bottom:14px;box-shadow:var(--e1)}
.runcard h3{margin:0 0 12px;font-size:14.5px;color:var(--text);display:flex;justify-content:space-between;gap:10px;align-items:center;font-weight:660}
.pill{display:inline-block;padding:3px 11px;border-radius:var(--r-full);font-size:10.5px;letter-spacing:.03em;font-weight:600;border:1px solid var(--line-2)}
.pill.done{background:var(--good-soft);color:var(--good);border-color:oklch(74% 0.115 158 / 0.25)}
.pill.running{background:var(--n4);color:var(--text-muted)}
.pill.inflight{background:var(--amber-soft);color:var(--amber);border-color:oklch(80% 0.105 82 / 0.25)}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:13px}
.kv .k{color:var(--text-dim)}
.progress{height:20px;background:var(--well);border:1px solid var(--line);border-radius:var(--r-full);overflow:hidden;margin:10px 0 4px;box-shadow:inset 0 1px 2px oklch(0% 0 0/0.3)}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--text-faint),var(--text-muted));color:var(--primary-ink);
  font-size:11px;line-height:20px;text-align:center;white-space:nowrap;transition:width .4s var(--ease);min-width:0;font-weight:600}
.progress-bar.done{background:linear-gradient(90deg,var(--good-dim),var(--good));color:var(--n0)}
.progress-meta{color:var(--text-muted);font-size:12px;margin-bottom:8px}

/* ============================= VERIFY CHECKS ============================= */
.checkrow{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--r-sm);margin-bottom:8px;background:var(--n3);font-size:13.5px;box-shadow:var(--e1)}
.checkrow .mark{display:inline-flex;width:18px;height:18px;flex:none}
.checkrow .mark .ico{width:18px;height:18px}
.checkrow.pass{border-left:2px solid var(--good)}
.checkrow.pass .mark{color:var(--good)}
.checkrow.fail{border-left:2px solid var(--danger)}
.checkrow.fail .mark{color:var(--danger)}

/* ============================= TOOLTIPS ============================= */
.ttip{color:var(--text-muted);cursor:help;font-size:12.5px;white-space:nowrap;user-select:none;display:inline-flex;align-items:center;gap:4px;border-bottom:1px dotted var(--line-strong)}
.ttip .ico{width:13px;height:13px;color:var(--text-faint)}
.tip-bubble{position:absolute;z-index:60;max-width:290px;background:var(--n5);border:1px solid var(--line-strong);
  color:var(--text);font-size:12.5px;line-height:1.5;padding:11px 13px;border-radius:var(--r-sm);box-shadow:var(--e4)}

/* ============================= MANUAL SCHEDULE ============================= */
.mode-switch{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}
.mode-switch .choice{padding:12px 18px}
.mini{min-width:52px !important;width:64px !important;padding:6px 8px !important;font-size:13px !important;display:inline-block;margin:0 2px}
select.mini{width:auto !important;min-width:0 !important}
.prefill-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:6px 0 14px}
.prefill-row .ghost{display:inline-flex;align-items:center;gap:4px}
.prefill-row .ghost input,.prefill-row .ghost select{pointer-events:auto}
table.manual-table td,table.manual-table th{vertical-align:top;white-space:nowrap}
table.manual-table td:first-child,table.manual-table th:first-child{text-align:center;color:var(--text-dim)}
.manual-table input[type=text],.manual-table input[type=number],.manual-table input[type=datetime-local]{min-width:0;width:auto;padding:8px 9px;font-size:13px}
.manual-table .amt-in{width:120px}
.manual-table .amt-unit{width:auto;min-width:0;padding:8px 6px}
.manual-table .when-dt{width:200px;font-family:var(--mono)}
.manual-table .when-delay{width:90px}
.manual-table .row-note{font-size:11px;color:var(--text-dim);margin-top:4px;white-space:normal;max-width:220px;font-family:var(--mono)}
.manual-table .row-note.err{color:var(--danger)}
.manual-table .cell-est,.manual-table .cell-drop{font-variant-numeric:tabular-nums;font-family:var(--mono)}
.manual-table tr.row-over td{background:var(--danger-soft)}
.manual-table tr.row-over .cell-drop{color:var(--danger);font-weight:680}
.manual-table .drop-flag{display:block;font-size:10.5px;color:var(--danger);white-space:normal;max-width:120px}
.manual-table .rowbtn{padding:6px 9px;font-size:12px;margin:1px}
.manual-table .rowbtn .ico{width:13px;height:13px}
.manual-table .rowbtn.rm{color:var(--danger);border-color:oklch(68% 0.145 25 / 0.3)}
.manual-totals{margin:14px 0 4px;font-size:14.5px;padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--n3);line-height:1.7;box-shadow:var(--e1)}
.manual-totals .ok{color:var(--good);font-weight:640}
.manual-totals .bad{color:var(--danger);font-weight:640}
.manual-totals b{color:var(--text);font-family:var(--mono)}
.sched-list{list-style:none;margin:10px 0 0;padding:0}
.sched-list li{padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:6px;background:var(--n3);
  font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sched-list li.over{border-color:oklch(68% 0.145 25 / 0.35);border-left:2px solid var(--danger)}
.sched-list .s-when{color:var(--text-muted);font-family:var(--mono)}
.sched-list .s-drop{color:var(--amber);font-family:var(--mono)}
.sched-list .s-drop.hi{color:var(--danger);font-weight:680}

/* ============================= PRIVATE-KEY MODE ============================= */
.pk-box{width:100%;margin-top:2px}
.pk-box details>summary{cursor:pointer;color:var(--text-muted);font-size:13px;padding:5px 0;list-style:none;user-select:none;
  display:inline-flex;align-items:center;gap:8px}
.pk-box details>summary::-webkit-details-marker{display:none}
.pk-box summary .ico{width:15px;height:15px;color:var(--text-faint)}
.pk-box summary:hover{color:var(--text)}
.pk-warn-text{color:var(--amber);font-size:12.5px;margin:6px 0;line-height:1.6}
#pk-key{flex:1 1 280px;font-family:var(--mono)}
.pk-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--danger-soft);
  border-bottom:1px solid oklch(68% 0.145 25 / 0.3);color:oklch(86% 0.06 25);padding:11px 18px;font-weight:480;font-size:13px}
.pk-banner .ico{width:16px;height:16px;color:var(--danger);flex:none}
.pk-banner .pk-banner-txt{flex:1 1 340px;display:flex;align-items:center;gap:9px}
.pk-banner .pk-banner-info{font-family:var(--mono);font-weight:450;color:oklch(78% 0.05 25);font-size:12px}
.pk-banner .pk-banner-info a{color:oklch(86% 0.06 25);border-bottom-color:oklch(68% 0.145 25 / 0.4)}
.pk-banner #pk-countdown{color:var(--text)}

/* ============================= CONTRACT MODE ============================= */
.contract-mode{border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;margin:14px 0;background:var(--n3);box-shadow:var(--e1)}
.contract-mode .cmode-title{font-weight:660;margin-bottom:10px;color:var(--text)}
.contract-mode .choice{display:flex;margin:8px 0}
#w-cmode-note{margin-top:10px;font-size:12.5px;color:var(--text-muted)}

/* ============================================================================
   ADMIN DASHBOARD
   ========================================================================== */
.admin-wrap{max-width:900px}
.admin-hero{position:relative;overflow:hidden;background:linear-gradient(168deg,var(--n4),var(--n3) 60%,var(--n2));
  border:1px solid var(--line);border-radius:var(--r-xl);padding:24px 26px;margin-bottom:20px;box-shadow:var(--e3)}
.admin-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px 150px at 100% 0%, oklch(100% 0 0/0.05), transparent 70%)}
.admin-hero>*{position:relative}
.admin-hero h1{font-size:24px;margin:0 0 8px;font-weight:700;letter-spacing:-.025em;color:var(--text);display:flex;align-items:center;gap:11px}
.admin-hero h1 .ico{width:22px;height:22px;color:var(--text)}
.admin-hero p{margin:0;color:var(--text-muted);font-size:13.5px;max-width:60ch;line-height:1.55}
.admin-hero .tag-danger{font-size:9.5px;font-weight:660;background:var(--amber-soft);color:var(--amber);
  padding:3px 10px;border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.06em;border:1px solid oklch(80% 0.105 82 / 0.25)}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}
.admin-card{background:var(--n2);border:1px solid var(--line);border-radius:var(--r-xl);padding:22px 24px;margin-bottom:16px;box-shadow:var(--e2)}
.admin-card h3{margin:0 0 4px;font-size:16px;color:var(--text);font-weight:680;border:none;padding:0;display:flex;align-items:center;gap:9px;letter-spacing:-.015em}
.admin-card h3 .ico{width:18px;height:18px;color:var(--text-muted)}
.admin-card .sub{color:var(--text-dim);font-size:12.5px;margin:0 0 16px;line-height:1.55}
.admin-card .sub b{color:var(--text-muted)}
#admin h3{margin:22px 0 10px;color:var(--text);font-weight:660;font-size:15px}
.admin-block{background:var(--n3);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:14px}
.admin-block textarea{width:100%;background:var(--well);color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:11px;font-family:var(--mono);font-size:13px}
.fee-hero{background:var(--n3);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:22px 24px;margin-bottom:16px;text-align:center;box-shadow:inset 0 1px 0 var(--hi)}
.fee-hero .fee-num{font-size:54px;font-weight:640;letter-spacing:-.045em;color:var(--text);line-height:1;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.fee-hero .fee-cap{color:var(--text-muted);font-size:12.5px;margin-top:10px}
.fee-hero .fee-cap b{color:var(--text)}
#admin-fee-slider{width:100%;margin-top:8px;max-width:420px}
#admin-fee-bps{white-space:nowrap;color:var(--text);font-weight:640}
.fee-lock-card{border-color:var(--line-2)}

/* legacy intro-card / card (kept for any reuse) */
.intro-card{background:linear-gradient(168deg,var(--n3),var(--n2));border:1px solid var(--line);border-radius:var(--r-xl);
  padding:20px 22px;margin-bottom:18px;box-shadow:var(--e2)}
.intro-card h2{margin-bottom:8px;font-size:18px}
.intro-card p{margin:0 0 10px;font-size:13.5px;color:var(--text-muted)}
.intro-card .honest{color:var(--amber);background:var(--amber-soft);border-radius:var(--r-sm);padding:11px 14px;margin-top:4px;font-size:13px;border:1px solid oklch(80% 0.105 82 / 0.2)}
.card{background:var(--n3);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--e1)}
.card h2{font-size:18px}

/* ============================= LOADING SHIMMER ============================= */
.shimmer{position:relative;overflow:hidden;background:var(--n3);border-radius:var(--r-sm);min-height:16px}
.shimmer::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,oklch(100% 0 0/0.06),transparent);
  transform:translateX(-100%);animation:shimmer 1.3s infinite}
@keyframes shimmer{to{transform:translateX(100%)}}

/* ============================= MOBILE ============================= */
@media (max-width:680px){
  body{font-size:15.5px}
  main{padding:20px 14px 48px}
  header{padding:13px 16px}
  .walletbar,.safebar{padding:11px 16px}
  nav#tabs{padding:0 12px}
  .tab{padding:13px 11px;font-size:12.5px}
  .wprogress{margin:-20px -14px 20px;padding:13px 14px 0}
  .wstep .wstep-name{font-size:10px}
  .wstep .wstep-dot{width:26px;height:26px;font-size:12px}
  .hero{padding:22px 18px}
  .hero h1{font-size:24px}
  .money-hero{padding:20px 18px}
  .mh-value{font-size:38px}
  .mh-value .cur{font-size:21px}
  .preset-grid{grid-template-columns:1fr;gap:10px}
  .preset{display:flex;align-items:center;text-align:left;gap:14px;flex-wrap:wrap;padding:16px}
  .preset-emoji{height:auto}
  .preset-name{margin-top:0}
  .preset-tag{min-height:0;flex:1 1 100%;margin-top:2px}
  .preset-detail{flex:1 1 100%;margin-top:10px;padding-top:10px}
  .preset.selected .selmark{top:14px;right:14px}
  .kv{grid-template-columns:1fr;gap:0}
  .kv .k{margin-top:8px}
  .step-body{padding:6px 16px 18px}
  .step-head{padding:16px}
  .step-t{font-size:15.5px}
  .bignum{font-size:24px}
  button.big{width:100%}
  .controls{gap:10px}
  .manual-table .when-dt{width:150px}
  .manual-table .amt-in{width:90px}
  .fee-hero .fee-num{font-size:44px}
  .admin-grid{grid-template-columns:1fr}
  .workflow-stack{padding-left:16px}
  .workflow-stack>.deploy-card::before{left:-16px}
  .runner-card .controls{display:grid;grid-template-columns:1fr 1fr}
  .runner-card .controls button.big{width:100%;padding-inline:12px}
}

/* ============================= REDUCED MOTION ============================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .preset:hover{transform:none}
}
@media (prefers-contrast:more){
  :root{--line:oklch(100% 0 0/0.2);--line-2:oklch(100% 0 0/0.3);--text-muted:oklch(85% 0.005 262)}
}

/* Inline line-icons replacing emoji (archive rule: custom SVG only, never emoji). */
.ic{width:1em;height:1em;display:inline-block;vertical-align:-0.125em;flex:0 0 auto}

/* implied $ rate on each speed card */
.pd-rate{color:var(--text);opacity:.9}
.pd-rate b{font-variant-numeric:tabular-nums}
