/* Sinner — dark operations console. No external fonts/scripts (strict CSP). */
@font-face { font-family: "Inter"; src: url("fonts/inter-var.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
:root {
  --bg: #07080a;
  --bg-1: #0a0b0e;
  --bg-2: #0e1014;
  --panel: rgba(18, 20, 26, 0.62);
  --panel-2: rgba(24, 27, 34, 0.7);
  --panel-solid: #111318;
  --input: rgba(8, 9, 12, 0.72);
  --hover: rgba(255, 255, 255, 0.028);
  --border: rgba(255, 255, 255, 0.068);
  --border-2: rgba(255, 255, 255, 0.11);
  --border-3: rgba(255, 255, 255, 0.17);
  --text: #e8eaef;
  --text-2: #a3a9b5;
  --text-3: #6d7380;
  --text-4: #4a4f5a;
  --accent: #a594ff;
  --accent-2: #7c6cf0;
  --accent-soft: rgba(165, 148, 255, 0.12);
  --accent-line: rgba(165, 148, 255, 0.35);
  --ok: #3ddc97;
  --ok-soft: rgba(61, 220, 151, 0.11);
  --warn: #f5b84b;
  --warn-soft: rgba(245, 184, 75, 0.11);
  --err: #ff6b7a;
  --err-soft: rgba(255, 107, 122, 0.11);
  --info: #5eb1ff;
  --info-soft: rgba(94, 177, 255, 0.11);
  --cyan: #45d4e6;
  --muted-soft: rgba(255, 255, 255, 0.05);
  --radius: 12px;
  --radius-sm: 8px;
  --sidebar-w: 224px;
  --topbar-h: 54px;
  --font: "Inter", "Inter var", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: "JetBrains Mono", "SF Mono", ui-monospace, "Cascadia Code", Menlo, Consolas, "DejaVu Sans Mono", monospace;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 13px/1.45 var(--font);
  font-feature-settings: "cv11", "ss01";
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
}
body::before {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(900px 520px at 12% -8%, rgba(124, 108, 240, 0.13), transparent 60%),
    radial-gradient(700px 480px at 100% 110%, rgba(69, 212, 230, 0.07), transparent 60%),
    radial-gradient(600px 400px at 70% 10%, rgba(165, 148, 255, 0.05), transparent 60%);
}
#root { position: relative; z-index: 1; height: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: rgba(165, 148, 255, 0.3); }
.mono { font-family: var(--mono); font-size: 0.92em; letter-spacing: -0.01em; }
.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--text-2); }
.dim { color: var(--text-3); }
.faint { color: var(--text-4); }
.ok { color: var(--ok); } .warn { color: var(--warn); } .err { color: var(--err); } .info { color: var(--info); } .accent { color: var(--accent); }
.hidden { display: none !important; }
.mb { margin-bottom: 16px; }
.mt { margin-top: 16px; }
.nowrap { white-space: nowrap; }
.right { text-align: right; }
.grow { flex: 1; min-width: 0; }
.row { display: flex; align-items: center; gap: 8px; }
.row-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.stack { display: flex; flex-direction: column; gap: 12px; }
.stack-sm { display: flex; flex-direction: column; gap: 6px; }
.sep { width: 1px; height: 18px; background: var(--border-2); }
.spacer { flex: 1; }

/* scrollbars */
* { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.12) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.09); border-radius: 10px; border: 3px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: rgba(255,255,255,0.16); }

/* icons */
.i { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }
.i-sm { width: 13px; height: 13px; vertical-align: -2px; }
.i-lg { width: 20px; height: 20px; }
.i-xl { width: 28px; height: 28px; stroke-width: 1.5; }

/* ---------------------------------------------------------------- shell */
.app { display: grid; grid-template-columns: var(--sidebar-w) minmax(0, 1fr); height: 100%; transition: grid-template-columns 0.22s var(--ease); }
.app.rail { --sidebar-w: 64px; }
.sidebar {
  display: flex; flex-direction: column; min-height: 0;
  background: linear-gradient(180deg, rgba(14, 15, 20, 0.78), rgba(10, 11, 14, 0.7));
  border-right: 1px solid var(--border);
  backdrop-filter: blur(18px) saturate(130%);
}
.brand { display: flex; align-items: center; gap: 10px; height: var(--topbar-h); padding: 0 18px; border-bottom: 1px solid var(--border); flex: none; }
.brand-mark {
  width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; flex: none;
  background: radial-gradient(circle at 30% 25%, #cfc6ff, #7c6cf0 55%, #3b2f9e);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.12) inset, 0 6px 18px rgba(124, 108, 240, 0.35);
  color: #0b0a14;
}
.brand-mark .i { stroke-width: 2.2; width: 15px; height: 15px; }
.brand-name { font-weight: 650; letter-spacing: -0.01em; font-size: 14px; white-space: nowrap; }
.brand-name span { color: var(--text-3); font-weight: 500; margin-left: 4px; }
.nav { padding: 12px 10px; display: flex; flex-direction: column; gap: 2px; overflow-y: auto; flex: 1; }
.nav-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.09em; color: var(--text-4); padding: 10px 10px 6px; white-space: nowrap; }
.nav a {
  position: relative; display: flex; align-items: center; gap: 11px; height: 34px; padding: 0 10px; border-radius: 8px;
  color: var(--text-2); white-space: nowrap; transition: background 0.15s, color 0.15s;
}
.nav a:hover { background: var(--hover); color: var(--text); }
.nav a.active { background: linear-gradient(90deg, rgba(165,148,255,0.14), rgba(165,148,255,0.04)); color: var(--text); }
.nav a.active::before { content: ""; position: absolute; left: -10px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.nav a.active .i { color: var(--accent); }
.nav a .badge-count { margin-left: auto; font-size: 10.5px; padding: 1px 6px; border-radius: 10px; background: var(--accent-soft); color: var(--accent); font-variant-numeric: tabular-nums; }
.sidebar-foot { border-top: 1px solid var(--border); padding: 10px; display: flex; flex-direction: column; gap: 6px; }
.whoami { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px; min-width: 0; }
.avatar { width: 28px; height: 28px; border-radius: 50%; flex: none; display: grid; place-items: center; font-weight: 650; font-size: 11.5px; color: var(--accent); background: var(--accent-soft); border: 1px solid var(--accent-line); }
.whoami .who { min-width: 0; line-height: 1.25; }
.whoami .who b { display: block; font-weight: 550; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.whoami .who span { font-size: 11px; color: var(--text-3); }
.rail-toggle { display: flex; align-items: center; gap: 10px; height: 30px; padding: 0 10px; border-radius: 8px; border: 0; background: none; color: var(--text-3); cursor: pointer; white-space: nowrap; }
.rail-toggle:hover { color: var(--text); background: var(--hover); }
.app.rail .brand { padding: 0; justify-content: center; }
.app.rail .brand-name, .app.rail .nav-label, .app.rail .nav a span, .app.rail .nav a .badge-count, .app.rail .whoami .who, .app.rail .rail-toggle span { display: none; }
.app.rail .nav a { justify-content: center; padding: 0; }
.app.rail .whoami, .app.rail .rail-toggle { justify-content: center; padding: 6px 0; }
.app.rail .nav a.active::before { left: -10px; }

.main { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.topbar {
  height: var(--topbar-h); flex: none; display: flex; align-items: center; gap: 14px; padding: 0 20px 0 24px;
  border-bottom: 1px solid var(--border);
  background: rgba(9, 10, 13, 0.55); backdrop-filter: blur(18px) saturate(130%);
}
.crumbs { display: flex; align-items: center; gap: 8px; color: var(--text-3); font-size: 13px; white-space: nowrap; }
.crumbs .i { color: var(--text-4); }
.topbar h1 { font-size: 13px; font-weight: 560; margin: 0; color: var(--text); white-space: nowrap; }
.topbar .crumb { color: var(--text-3); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb-group { display: flex; align-items: center; gap: 8px; padding: 0 12px; height: 30px; border-radius: 8px; border: 1px solid var(--border); background: rgba(255,255,255,0.018); white-space: nowrap; font-size: 12px; color: var(--text-2); }
.tb-group .lbl { color: var(--text-3); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
.tb-slot b { color: var(--text); font-weight: 560; font-variant-numeric: tabular-nums; font-family: var(--mono); font-size: 12px; }
.health-dots { display: flex; gap: 5px; align-items: center; }
.hdot { width: 7px; height: 7px; border-radius: 50%; background: var(--text-4); position: relative; }
.hdot.ok { background: var(--ok); box-shadow: 0 0 6px rgba(61, 220, 151, 0.55); }
.hdot.degraded { background: var(--warn); box-shadow: 0 0 6px rgba(245, 184, 75, 0.5); }
.hdot.down { background: var(--err); box-shadow: 0 0 6px rgba(255, 107, 122, 0.55); }
.cmds { display: flex; gap: 6px; overflow: hidden; min-width: 0; }
.cmd-chip { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 8px; border-radius: 6px; font-size: 11px; font-family: var(--mono); color: var(--text-2); background: rgba(255,255,255,0.03); border: 1px solid var(--border); white-space: nowrap; animation: fadein 0.2s var(--ease); }
.cmd-chip:hover { border-color: var(--border-3); color: var(--text); }
.cmd-chip .spin { width: 10px; height: 10px; }
.cmd-chip.done { color: var(--ok); } .cmd-chip.failed { color: var(--err); }
.tb-session.warn { color: var(--warn); border-color: rgba(245,184,75,0.3); }
.tb-session b { font-variant-numeric: tabular-nums; color: var(--text); font-weight: 560; }
.tb-session.warn b { color: var(--warn); }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); position: relative; flex: none; }
.live-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid var(--ok); opacity: 0; animation: ping 2.4s var(--ease) infinite; }
.live-dot.off { background: var(--text-4); } .live-dot.off::after { display: none; }
.live-dot.warn { background: var(--warn); } .live-dot.warn::after { border-color: var(--warn); }
@keyframes ping { 0% { transform: scale(0.6); opacity: 0.7; } 80%, 100% { transform: scale(1.6); opacity: 0; } }
@keyframes fadein { from { opacity: 0; transform: translateY(2px); } to { opacity: 1; transform: none; } }
@keyframes spin { to { transform: rotate(360deg); } }
.spin { animation: spin 0.9s linear infinite; }

.content { flex: 1; overflow: auto; padding: 22px 24px 48px; min-height: 0; }
.page { max-width: 1480px; margin: 0 auto; animation: fadein 0.25s var(--ease); }
.page-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.page-head h2 { margin: 0; font-size: 20px; font-weight: 640; letter-spacing: -0.02em; }
.page-head p { margin: 4px 0 0; color: var(--text-3); font-size: 12.5px; }

/* ---------------------------------------------------------------- panels */
.panel {
  background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius);
  backdrop-filter: blur(16px) saturate(125%);
  box-shadow: 0 1px 0 rgba(255,255,255,0.03) inset, 0 12px 32px -18px rgba(0,0,0,0.6);
  min-width: 0;
}
.panel-h { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 16px; border-bottom: 1px solid var(--border); }
.panel-h h3 { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: -0.005em; white-space: nowrap; }
.panel-h .sub { color: var(--text-3); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.panel-b { padding: 16px; }
.panel-b.tight { padding: 0; }
.panel + .panel { margin-top: 16px; }
.grid > .panel + .panel, .grid > * + .panel, .row > .panel + .panel { margin-top: 0; }
.grid { display: grid; gap: 16px; }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.g-side { grid-template-columns: minmax(0, 1fr) 440px; align-items: start; }
.g-side-l { grid-template-columns: 380px minmax(0, 1fr); align-items: start; }
.sticky { position: sticky; top: 0; }
.g-side > .sticky { top: 0; }
.section-title { font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); margin: 0 0 10px; }

/* stat tiles */
.tile { padding: 14px 16px; position: relative; overflow: hidden; }
.tile .k { font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; display: flex; align-items: center; gap: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile .v { font-size: 22px; font-weight: 600; letter-spacing: -0.02em; margin-top: 6px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile .v small { font-size: 12px; color: var(--text-3); font-weight: 500; margin-left: 3px; letter-spacing: 0; }
.tile .s { font-size: 11.5px; color: var(--text-3); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile .spark { position: absolute; right: 14px; top: 40px; opacity: 0.95; }

/* key/value lists */
.kv { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 7px 18px; font-size: 12.5px; }
.kv dt { color: var(--text-3); white-space: nowrap; }
.kv dd { margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kv.cols-2 { grid-template-columns: max-content minmax(0, 1fr) max-content minmax(0, 1fr); }

/* ---------------------------------------------------------------- tables */
.tbl-wrap { overflow: auto; }
table.tbl { width: 100%; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
.tbl th { position: sticky; top: 0; z-index: 1; text-align: left; font-weight: 550; font-size: 10.5px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-3); padding: 9px 12px; border-bottom: 1px solid var(--border); background: rgba(13, 14, 18, 0.92); white-space: nowrap; }
.tbl td { padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,0.045); white-space: nowrap; vertical-align: middle; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl tbody tr { transition: background 0.12s; }
.tbl tbody tr:hover { background: var(--hover); }
.tbl tbody tr.click { cursor: pointer; }
.tbl tbody tr.dimrow td { opacity: 0.5; }
.tbl tbody tr.sel { background: rgba(165, 148, 255, 0.06); }
.tbl th.r, .tbl td.r { text-align: right; }
.tbl td.wrap { white-space: normal; }
.tbl th .nc { text-transform: none; letter-spacing: 0; font-weight: 450; }
.tbl td.tm { font-size: 11px; white-space: pre; }
.tbl .errtxt { color: var(--err); font-size: 11.5px; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tbl .tok { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tbl .tok b { font-weight: 580; }
.tok-ico.lg { width: 38px; height: 38px; font-size: 13px; border-radius: 10px; }
img.tok-ico { object-fit: cover; background: rgba(255,255,255,0.05); }
.tok-ico { width: 26px; height: 26px; border-radius: 50%; flex: none; display: grid; place-items: center; font-size: 10.5px; font-weight: 700; color: rgba(0,0,0,0.75); }
.cell-2 { line-height: 1.25; }
.cell-2 small { display: block; color: var(--text-3); font-size: 11px; }

/* value-change flash */
@keyframes flash-up { from { background-color: rgba(61, 220, 151, 0.18); } to { background-color: transparent; } }
@keyframes flash-down { from { background-color: rgba(255, 107, 122, 0.16); } to { background-color: transparent; } }
@keyframes flash-n { from { background-color: rgba(165, 148, 255, 0.16); } to { background-color: transparent; } }
.flash-up { animation: flash-up 1.1s var(--ease); border-radius: 4px; }
.flash-down { animation: flash-down 1.1s var(--ease); border-radius: 4px; }
.flash { animation: flash-n 1.1s var(--ease); border-radius: 4px; }

/* ---------------------------------------------------------------- addresses */
.addr { display: inline-flex; align-items: center; gap: 4px; font-family: var(--mono); font-size: 12px; color: var(--text); white-space: nowrap; }
.addr a { color: var(--text); border-bottom: 1px dotted transparent; }
.addr a:hover { color: var(--accent); border-bottom-color: var(--accent-line); }
.addr .copy, .icon-btn { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 5px; border: 0; background: none; color: var(--text-3); cursor: pointer; padding: 0; opacity: 0.7; transition: opacity 0.12s, color 0.12s, background 0.12s; }
.addr .copy:hover, .icon-btn:hover { opacity: 1; color: var(--text); background: rgba(255,255,255,0.06); }
.addr .copy.copied { color: var(--ok); opacity: 1; }
.addr.empty { color: var(--text-4); }

/* ---------------------------------------------------------------- pills & badges */
.pill { display: inline-flex; align-items: center; gap: 5px; height: 21px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 560; white-space: nowrap; background: var(--muted-soft); color: var(--text-2); border: 1px solid rgba(255,255,255,0.06); letter-spacing: 0.01em; }
.pill .i { width: 12px; height: 12px; stroke-width: 2; }
.pill.ok { background: var(--ok-soft); color: var(--ok); border-color: rgba(61,220,151,0.2); }
.pill.warn { background: var(--warn-soft); color: var(--warn); border-color: rgba(245,184,75,0.2); }
.pill.err { background: var(--err-soft); color: var(--err); border-color: rgba(255,107,122,0.2); }
.pill.info { background: var(--info-soft); color: var(--info); border-color: rgba(94,177,255,0.2); }
.pill.accent { background: var(--accent-soft); color: var(--accent); border-color: rgba(165,148,255,0.22); }
.pill.cyan { background: rgba(69,212,230,0.1); color: var(--cyan); border-color: rgba(69,212,230,0.2); }
.pill.solid-ok { background: var(--ok); color: #03140c; border-color: transparent; }
.pill.live .dotp { width: 6px; height: 6px; border-radius: 50%; background: currentColor; animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
.venue { display: inline-flex; align-items: center; gap: 6px; height: 21px; padding: 0 8px 0 7px; border-radius: 6px; font-size: 11px; font-weight: 580; white-space: nowrap; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); color: var(--text); }
.venue i { width: 7px; height: 7px; border-radius: 2px; display: inline-block; }
.kbd { font-family: var(--mono); font-size: 11px; padding: 1px 5px; border-radius: 4px; background: rgba(255,255,255,0.06); border: 1px solid var(--border-2); color: var(--text-2); }
.tag { font-size: 10.5px; padding: 1px 6px; border-radius: 4px; background: rgba(255,255,255,0.05); color: var(--text-2); border: 1px solid var(--border); white-space: nowrap; }

/* tx status pill states */
.tx-built { color: #b3b8c3; }
.tx-simulated { background: var(--info-soft); color: var(--info); border-color: rgba(94,177,255,0.2); }
.tx-signed { background: var(--accent-soft); color: var(--accent); border-color: rgba(165,148,255,0.22); }
.tx-submitted { background: var(--warn-soft); color: var(--warn); border-color: rgba(245,184,75,0.2); }
.tx-processed { background: rgba(69,212,230,0.1); color: var(--cyan); border-color: rgba(69,212,230,0.2); }
.tx-confirmed { background: var(--ok-soft); color: var(--ok); border-color: rgba(61,220,151,0.2); }
.tx-finalized { background: rgba(61,220,151,0.2); color: #7ff0bf; border-color: rgba(61,220,151,0.38); }
.tx-failed { background: var(--err-soft); color: var(--err); border-color: rgba(255,107,122,0.22); }
.tx-expired { background: rgba(255,107,122,0.06); color: #c98d95; border-color: rgba(255,107,122,0.14); }
.tx-submitted .i, .tx-processed .i { animation: pulse 1.4s ease-in-out infinite; }

/* ---------------------------------------------------------------- buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 32px; padding: 0 13px; border-radius: 8px;
  border: 1px solid var(--border-2); background: rgba(255,255,255,0.035); color: var(--text); cursor: pointer; white-space: nowrap;
  font-weight: 540; font-size: 12.5px; transition: background 0.15s, border-color 0.15s, box-shadow 0.15s, opacity 0.15s, transform 0.08s;
}
.btn:hover { background: rgba(255,255,255,0.06); border-color: var(--border-3); }
.btn:active { transform: translateY(0.5px); }
.btn:focus-visible, .input:focus-visible, .seg button:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent-line); }
.btn[disabled] { opacity: 0.42; cursor: not-allowed; }
.btn.primary { background: linear-gradient(180deg, #b0a2ff, #8a78f5); border-color: rgba(255,255,255,0.18); color: #0e0b24; box-shadow: 0 6px 18px -8px rgba(124,108,240,0.8), 0 1px 0 rgba(255,255,255,0.35) inset; }
.btn.primary:hover { background: linear-gradient(180deg, #bcb0ff, #9585f7); }
.btn.danger { background: rgba(255,107,122,0.1); border-color: rgba(255,107,122,0.28); color: var(--err); }
.btn.danger:hover { background: rgba(255,107,122,0.16); }
.btn.go { background: linear-gradient(180deg, #52e6a8, #2fbf82); border-color: rgba(255,255,255,0.18); color: #03140c; box-shadow: 0 6px 18px -8px rgba(61,220,151,0.7), 0 1px 0 rgba(255,255,255,0.3) inset; }
.btn.ghost { background: none; border-color: transparent; color: var(--text-2); }
.btn.ghost:hover { background: rgba(255,255,255,0.05); color: var(--text); }
.btn.sm { height: 26px; padding: 0 9px; font-size: 12px; border-radius: 7px; }
.btn.lg { height: 38px; padding: 0 18px; font-size: 13px; }
.btn.block { width: 100%; }
.btn .spin { width: 13px; height: 13px; }

/* ---------------------------------------------------------------- forms */
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field > label, .lbl-row { font-size: 11.5px; color: var(--text-2); font-weight: 520; display: flex; align-items: center; gap: 6px; }
.field .hint { font-size: 11px; color: var(--text-3); }
.field .hint.err { color: var(--err); }
.field .counter { margin-left: auto; color: var(--text-4); font-size: 10.5px; font-variant-numeric: tabular-nums; }
.input, select.input, textarea.input {
  width: 100%; height: 34px; padding: 0 11px; border-radius: 8px; border: 1px solid var(--border-2); background: var(--input); color: var(--text);
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s; min-width: 0;
}
textarea.input { height: auto; min-height: 76px; padding: 9px 11px; resize: vertical; line-height: 1.45; }
.input::placeholder { color: var(--text-4); }
.input:hover { border-color: var(--border-3); }
.input:focus { outline: none; border-color: var(--accent-line); box-shadow: 0 0 0 3px rgba(165,148,255,0.12); background: rgba(8,9,12,0.9); }
.input.bad { border-color: rgba(255,107,122,0.5); box-shadow: 0 0 0 3px rgba(255,107,122,0.08); }
.input.mono { font-family: var(--mono); font-size: 12.5px; }
select.input { appearance: none; padding-right: 30px; background-image: linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%); background-position: calc(100% - 15px) 15px, calc(100% - 10px) 15px; background-size: 5px 5px; background-repeat: no-repeat; }
select.input option { background: #111318; }
.input-group { display: flex; align-items: stretch; }
.input-group .input { border-radius: 8px 0 0 8px; }
.input-group .addon { display: flex; align-items: center; padding: 0 10px; border: 1px solid var(--border-2); border-left: 0; border-radius: 0 8px 8px 0; background: rgba(255,255,255,0.03); color: var(--text-3); font-size: 12px; white-space: nowrap; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 14px; }
.form-grid .span-2 { grid-column: span 2; }
.form-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }

.seg { display: inline-flex; padding: 2px; border-radius: 9px; background: rgba(0,0,0,0.35); border: 1px solid var(--border); gap: 2px; }
.seg button { height: 26px; padding: 0 11px; border: 0; border-radius: 7px; background: none; color: var(--text-2); cursor: pointer; font-size: 12px; font-weight: 540; white-space: nowrap; transition: background 0.15s, color 0.15s; }
.seg button:hover { color: var(--text); }
.seg button.on { background: rgba(255,255,255,0.085); color: var(--text); box-shadow: 0 1px 0 rgba(255,255,255,0.06) inset, 0 1px 3px rgba(0,0,0,0.4); }
.seg button .n { color: var(--text-3); margin-left: 5px; font-variant-numeric: tabular-nums; font-size: 11px; }

.switch { position: relative; width: 32px; height: 18px; flex: none; border-radius: 10px; background: rgba(255,255,255,0.1); border: 1px solid var(--border-2); cursor: pointer; transition: background 0.18s, border-color 0.18s; padding: 0; }
.switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: #c9ccd4; transition: transform 0.18s var(--ease), background 0.18s; }
.switch.on { background: rgba(61,220,151,0.28); border-color: rgba(61,220,151,0.45); }
.switch.on::after { transform: translateX(14px); background: var(--ok); }
.switch[disabled] { opacity: 0.4; cursor: not-allowed; }

input[type=range].range { -webkit-appearance: none; appearance: none; width: 100%; height: 22px; background: transparent; cursor: pointer; }
input[type=range].range::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--accent) var(--p, 50%), rgba(255,255,255,0.1) var(--p, 50%)); }
input[type=range].range::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; margin-top: -6px; border-radius: 50%; background: #fff; border: 3px solid var(--accent-2); box-shadow: 0 0 0 4px rgba(165,148,255,0.15); }
input[type=range].range::-moz-range-track { height: 4px; border-radius: 4px; background: rgba(255,255,255,0.1); }
input[type=range].range::-moz-range-progress { height: 4px; border-radius: 4px; background: var(--accent); }
input[type=range].range::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid var(--accent-2); }

.check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: var(--text-2); font-size: 12.5px; user-select: none; }

/* drop zone */
.drop { display: flex; align-items: center; gap: 14px; padding: 12px; border-radius: 10px; border: 1px dashed var(--border-3); background: rgba(255,255,255,0.015); cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.drop:hover, .drop.over { border-color: var(--accent-line); background: var(--accent-soft); }
.drop .thumb { width: 56px; height: 56px; border-radius: 10px; flex: none; display: grid; place-items: center; background: rgba(255,255,255,0.04); border: 1px solid var(--border); overflow: hidden; color: var(--text-3); }
.drop .thumb img { width: 100%; height: 100%; object-fit: cover; }

/* ---------------------------------------------------------------- venue picker */
.venues { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.vcard { position: relative; text-align: left; padding: 10px 11px; border-radius: 10px; border: 1px solid var(--border); background: rgba(255,255,255,0.02); cursor: pointer; transition: border-color 0.15s, background 0.15s; min-width: 0; }
.vcard:hover { border-color: var(--border-3); background: rgba(255,255,255,0.04); }
.vcard.on { border-color: var(--accent-line); background: linear-gradient(180deg, rgba(165,148,255,0.12), rgba(165,148,255,0.03)); box-shadow: 0 0 0 1px rgba(165,148,255,0.2) inset; }
.vcard[disabled] { cursor: not-allowed; opacity: 0.5; }
.vcard .vn { display: flex; align-items: center; gap: 7px; font-weight: 580; font-size: 12.5px; white-space: nowrap; overflow: hidden; }
.vcard .vn i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.vcard .vm { margin-top: 5px; font-size: 11px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vcard .vt { position: absolute; top: 9px; right: 9px; }
.notice { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 9px; font-size: 12px; color: var(--text-2); background: rgba(255,255,255,0.025); border: 1px solid var(--border); }
.notice .i { margin-top: 1px; color: var(--text-3); }
.notice.info { background: var(--info-soft); border-color: rgba(94,177,255,0.18); } .notice.info .i { color: var(--info); }
.notice.warn { background: var(--warn-soft); border-color: rgba(245,184,75,0.2); color: #e8c98f; } .notice.warn .i { color: var(--warn); }
.notice.err { background: var(--err-soft); border-color: rgba(255,107,122,0.22); color: #f3a7af; } .notice.err .i { color: var(--err); }

/* ---------------------------------------------------------------- pipeline / stepper */
.stepper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 14px 16px 12px; border-bottom: 1px solid var(--border); }
.step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-3); }
.step::before { content: ""; position: absolute; top: 11px; left: calc(-50% + 14px); right: calc(50% + 14px); height: 1px; background: var(--border-2); }
.step:first-child::before { display: none; }
.step .dot { width: 23px; height: 23px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--border-2); background: var(--bg-2); color: var(--text-3); font-size: 11px; font-weight: 600; position: relative; z-index: 1; }
.step.done { color: var(--text-2); } .step.done .dot { background: var(--ok-soft); border-color: rgba(61,220,151,0.45); color: var(--ok); }
.step.done::before, .step.cur::before { background: linear-gradient(90deg, rgba(61,220,151,0.5), rgba(61,220,151,0.25)); }
.step.cur { color: var(--text); } .step.cur .dot { border-color: var(--accent); color: var(--accent); box-shadow: 0 0 0 4px rgba(165,148,255,0.12); }
.step.bad .dot { border-color: rgba(255,107,122,0.5); color: var(--err); background: var(--err-soft); }
.checks { display: flex; flex-direction: column; }
.chk { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,0.04); font-size: 12.5px; }
.chk:last-child { border-bottom: 0; }
.chk .ci { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.chk .ci .i { width: 11px; height: 11px; stroke-width: 2.6; }
.chk.ok .ci { background: var(--ok-soft); color: var(--ok); }
.chk.warn .ci { background: var(--warn-soft); color: var(--warn); }
.chk.err .ci { background: var(--err-soft); color: var(--err); }
.chk .cn { font-family: var(--mono); font-size: 11.5px; color: var(--text-2); min-width: 128px; }
.chk .cd { color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; text-align: right; }
.txcard { border: 1px solid var(--border); border-radius: 10px; background: rgba(0,0,0,0.18); overflow: hidden; }
.txcard + .txcard { margin-top: 10px; }
.txcard-h { display: flex; align-items: center; gap: 10px; padding: 10px 12px; }
.txcard-h .idx { width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; font-size: 10.5px; font-weight: 650; color: var(--text-2); background: rgba(255,255,255,0.06); flex: none; }
.txcard-h b { font-weight: 580; font-family: var(--mono); font-size: 12px; }
.txmeta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.txmeta > div { padding: 8px 12px; border-right: 1px solid var(--border); min-width: 0; }
.txmeta > div:last-child { border-right: 0; }
.txmeta .k { font-size: 10px; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-3); }
.txmeta .v { font-size: 12.5px; font-variant-numeric: tabular-nums; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.txsub { padding: 8px 12px; border-top: 1px solid var(--border); font-size: 11.5px; color: var(--text-3); display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
.sizebar { display: block; width: 100%; max-width: 90px; height: 3px; border-radius: 3px; background: rgba(255,255,255,0.08); overflow: hidden; margin-top: 5px; }
.sizebar > i { display: block; height: 100%; background: var(--info); border-radius: 3px; }
.sizebar.hot > i { background: var(--warn); }
pre.logs { margin: 0; padding: 10px 12px; max-height: 190px; overflow: auto; font: 11px/1.55 var(--mono); color: #b9bfcc; background: rgba(0,0,0,0.35); border-top: 1px solid var(--border); white-space: pre; }
pre.logs .lg-ok { color: var(--ok); } pre.logs .lg-err { color: var(--err); } pre.logs .lg-dim { color: var(--text-3); }
details.fold > summary { list-style: none; cursor: pointer; padding: 7px 12px; border-top: 1px solid var(--border); font-size: 11.5px; color: var(--text-3); display: flex; align-items: center; gap: 6px; user-select: none; }
details.fold > summary::-webkit-details-marker { display: none; }
details.fold > summary:hover { color: var(--text); }
details.fold[open] > summary .chev { transform: rotate(90deg); }
.chev { transition: transform 0.15s; }

/* timeline (per-tx state progression) */
.tl { display: flex; align-items: center; gap: 0; padding: 12px 12px 10px; border-top: 1px solid var(--border); }
.tl-s { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; position: relative; font-size: 10.5px; color: var(--text-4); min-width: 0; }
.tl-s::before { content: ""; position: absolute; top: 5px; right: 50%; left: -50%; height: 2px; background: rgba(255,255,255,0.07); }
.tl-s:first-child::before { display: none; }
.tl-s .d { width: 12px; height: 12px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.14); background: var(--bg-2); position: relative; z-index: 1; }
.tl-s.done { color: var(--text-2); } .tl-s.done .d { border-color: var(--ok); background: var(--ok); }
.tl-s.done::before { background: rgba(61,220,151,0.55); }
.tl-s.cur { color: var(--text); } .tl-s.cur .d { border-color: var(--warn); background: rgba(245,184,75,0.3); animation: pulse 1.3s ease-in-out infinite; }
.tl-s.cur::before { background: linear-gradient(90deg, rgba(61,220,151,0.55), rgba(245,184,75,0.55)); }
.tl-s.fail .d { border-color: var(--err); background: var(--err); } .tl-s.fail { color: var(--err); }
.tl-s .t { font-variant-numeric: tabular-nums; color: var(--text-3); font-size: 10px; }

/* progress */
.prog { height: 6px; border-radius: 6px; background: rgba(255,255,255,0.07); overflow: hidden; position: relative; }
.prog > i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--accent-2), var(--accent)); transition: width 0.6s var(--ease); }
.prog.ok > i { background: linear-gradient(90deg, #26b377, var(--ok)); }
.prog.warn > i { background: linear-gradient(90deg, #d8942a, var(--warn)); }
.prog.thin { height: 4px; }
.prog-cell { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.prog-cell .prog { flex: 1; min-width: 60px; }
.prog-cell span { font-size: 11.5px; color: var(--text-2); min-width: 38px; text-align: right; font-variant-numeric: tabular-nums; }

/* lifecycle */
.lc-states { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.lc-state { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border); background: rgba(255,255,255,0.02); }
.lc-state .k { font-size: 10.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; }
.lc-state .v { margin-top: 5px; }
.lc-flow { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-3); flex-wrap: wrap; }
.lc-flow .on { color: var(--text); font-weight: 560; }
.lc-flow .past { color: var(--ok); }

/* ---------------------------------------------------------------- grinder */
.pattern { font-family: var(--mono); font-size: 15px; letter-spacing: 0.02em; white-space: nowrap; }
.pattern .hl { color: var(--accent); font-weight: 650; text-shadow: 0 0 14px rgba(165,148,255,0.45); }
.pattern .fill { color: var(--text-4); }
.eta-big { font-size: 30px; font-weight: 620; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; line-height: 1.1; }
.eta-big small { font-size: 13px; color: var(--text-3); font-weight: 500; letter-spacing: 0; margin-left: 6px; }
.est-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.est-grid .k { font-size: 10.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; }
.est-grid .v { font-size: 14px; font-variant-numeric: tabular-nums; margin-top: 3px; font-weight: 540; }
.job { padding: 16px; }
.job + .job { border-top: 1px solid var(--border); }
.job-top { display: flex; align-items: center; gap: 10px; min-width: 0; }
.job-top .pattern { font-size: 14px; overflow: hidden; text-overflow: clip; min-width: 0; }
.job-sub { display: flex; gap: 12px; align-items: center; margin-top: 6px; font-size: 11.5px; color: var(--text-3); white-space: nowrap; overflow: hidden; }
.notice .pattern { font-size: 13px; overflow: hidden; display: block; min-width: 0; }
.notice.pv { overflow: hidden; }
.job-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.job-stats .k { font-size: 10.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; white-space: nowrap; }
.job-stats .v { font-size: 15px; font-weight: 560; font-variant-numeric: tabular-nums; margin-top: 3px; white-space: nowrap; }
.job-stats .v small { font-size: 11px; color: var(--text-3); font-weight: 500; }
.job-foot { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; margin-top: 14px; align-items: center; }
.cdf { width: 100%; height: 64px; display: block; }
.match { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: linear-gradient(90deg, rgba(61,220,151,0.1), rgba(61,220,151,0.02)); border: 1px solid rgba(61,220,151,0.25); }
.match .addr { font-size: 13px; }

/* ---------------------------------------------------------------- toolbar / filters */
.toolbar { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.toolbar .input { width: auto; }
.toolbar select.input { min-width: 150px; }
.toolbar .search .input { width: 280px; }
.toolbar .search.grow .input { width: 100%; }
.toolbar form.row .input.mono { width: 330px; }
.search { position: relative; }
.search .i { position: absolute; left: 10px; top: 9px; color: var(--text-3); width: 14px; height: 14px; }
.search .input { padding-left: 31px; height: 32px; }

/* ---------------------------------------------------------------- drawer / modal / toast */
.scrim { position: fixed; inset: 0; background: rgba(3, 4, 6, 0.58); backdrop-filter: blur(3px); z-index: 50; animation: fade 0.18s var(--ease); }
@keyframes fade { from { opacity: 0; } }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 92vw); z-index: 51; display: flex; flex-direction: column; background: rgba(14, 15, 20, 0.94); border-left: 1px solid var(--border-2); backdrop-filter: blur(24px); box-shadow: -30px 0 60px rgba(0,0,0,0.5); animation: slidein 0.24s var(--ease); }
@keyframes slidein { from { transform: translateX(24px); opacity: 0; } }
.drawer-h { display: flex; align-items: center; gap: 10px; padding: 0 16px 0 20px; height: 58px; border-bottom: 1px solid var(--border); flex: none; }
.drawer-h h3 { margin: 0; font-size: 15px; font-weight: 620; }
.drawer-b { flex: 1; overflow: auto; padding: 18px 20px 28px; }
.modal-wrap { position: fixed; inset: 0; z-index: 52; display: grid; place-items: center; padding: 20px; }
.modal { width: min(520px, 100%); background: rgba(16, 17, 23, 0.97); border: 1px solid var(--border-2); border-radius: 14px; box-shadow: 0 30px 80px rgba(0,0,0,0.6), 0 1px 0 rgba(255,255,255,0.05) inset; animation: pop 0.2s var(--ease); overflow: hidden; }
@keyframes pop { from { transform: translateY(6px) scale(0.985); opacity: 0; } }
.modal-h { padding: 18px 20px 0; }
.modal-h h3 { margin: 0; font-size: 16px; font-weight: 630; letter-spacing: -0.01em; }
.modal-h p { margin: 5px 0 0; color: var(--text-3); font-size: 12.5px; }
.modal-b { padding: 16px 20px; }
.modal-f { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px 16px; border-top: 1px solid var(--border); background: rgba(0,0,0,0.15); }
.cost { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.cost > div { display: flex; justify-content: space-between; padding: 8px 12px; border-bottom: 1px solid var(--border); font-variant-numeric: tabular-nums; font-size: 12.5px; }
.cost > div:last-child { border-bottom: 0; background: rgba(255,255,255,0.03); font-weight: 620; }
.cost > div span:first-child { color: var(--text-2); }
.toasts { position: fixed; bottom: 18px; right: 18px; z-index: 60; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.toast { display: flex; align-items: flex-start; gap: 10px; max-width: 420px; padding: 10px 14px; border-radius: 10px; background: rgba(20, 22, 28, 0.96); border: 1px solid var(--border-2); box-shadow: 0 12px 30px rgba(0,0,0,0.5); font-size: 12.5px; animation: pop 0.2s var(--ease); backdrop-filter: blur(12px); }
.toast.ok .i { color: var(--ok); } .toast.err .i { color: var(--err); } .toast.warn .i { color: var(--warn); } .toast.info .i { color: var(--info); }
.toast .cid { display: block; font-family: var(--mono); font-size: 10.5px; color: var(--text-3); margin-top: 2px; }
.toast.out { opacity: 0; transform: translateY(4px); transition: opacity 0.2s, transform 0.2s; }

/* empty / degraded / skeleton */
.empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 42px 20px; color: var(--text-3); text-align: center; }
.empty .ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,0.03); border: 1px solid var(--border); color: var(--text-3); margin-bottom: 4px; }
.empty b { color: var(--text-2); font-weight: 560; font-size: 13px; }
.empty p { margin: 0; max-width: 380px; font-size: 12px; }
.degraded { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; background: rgba(245,184,75,0.06); border: 1px solid rgba(245,184,75,0.2); color: #e2c48c; font-size: 12.5px; }
.degraded .i { color: var(--warn); }
.degraded .mono { color: var(--text-3); font-size: 11px; }
.skel { border-radius: 6px; background: linear-gradient(90deg, rgba(255,255,255,0.03), rgba(255,255,255,0.07), rgba(255,255,255,0.03)); background-size: 200% 100%; animation: shimmer 1.4s linear infinite; height: 12px; }
@keyframes shimmer { to { background-position: -200% 0; } }

/* tabs */
.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--border); padding: 0 12px; }
.tabs button { position: relative; height: 42px; padding: 0 12px; border: 0; background: none; color: var(--text-3); cursor: pointer; font-weight: 550; font-size: 12.5px; }
.tabs button:hover { color: var(--text); }
.tabs button.on { color: var(--text); }
.tabs button.on::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--accent); }

/* logs */
.loglist { font: 12px/1.5 var(--mono); }
.logrow { display: grid; grid-template-columns: 94px 52px 78px minmax(0, 1fr) 190px; gap: 12px; padding: 5px 14px; border-bottom: 1px solid rgba(255,255,255,0.035); align-items: baseline; cursor: pointer; }
.logrow:hover { background: var(--hover); }
.logrow .t { color: var(--text-3); font-variant-numeric: tabular-nums; }
.logrow .m { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--font); font-size: 12.5px; }
.logrow .c { text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logrow .c a { color: var(--text-3); } .logrow .c a:hover { color: var(--accent); }
.logrow .f { grid-column: 1 / -1; color: var(--text-3); white-space: pre-wrap; word-break: break-all; padding: 4px 0 4px 0; font-size: 11px; }
.lvl { font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.lvl-debug { color: var(--text-4); } .lvl-info { color: var(--info); } .lvl-warn { color: var(--warn); } .lvl-error { color: var(--err); }
.svc { color: var(--text-2); }

/* waterfall */
.wf { font-size: 12px; }
.wf-row { display: grid; grid-template-columns: 300px minmax(0, 1fr); align-items: center; border-bottom: 1px solid rgba(255,255,255,0.035); min-height: 30px; }
.wf-row:hover { background: var(--hover); }
.wf-name { padding: 5px 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; align-items: center; gap: 7px; }
.wf-name .svc-dot { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.wf-track { position: relative; height: 30px; margin-right: 14px; }
.wf-bar { position: absolute; top: 9px; height: 12px; border-radius: 3px; min-width: 2px; opacity: 0.9; }
.wf-bar.err { outline: 1px solid var(--err); }
.wf-lbl { position: absolute; top: 7px; font-size: 10.5px; color: var(--text-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.wf-axis { display: grid; grid-template-columns: 300px minmax(0, 1fr); border-bottom: 1px solid var(--border); font-size: 10.5px; color: var(--text-3); }
.wf-axis .ticks { position: relative; height: 26px; margin-right: 14px; }
.wf-axis .ticks span { position: absolute; top: 6px; transform: translateX(-50%); font-variant-numeric: tabular-nums; }
.wf-axis .ticks span.first { transform: none; }
.wf-axis .ticks span.last { transform: translateX(-100%); }
.wf-lbl.in { color: rgba(0,0,0,0.72); font-weight: 600; }

/* health grid */
.svc-card { padding: 14px; }
.svc-card .top { display: flex; align-items: center; gap: 8px; }
.svc-card .top b { font-weight: 600; text-transform: capitalize; }
.svc-card .meta { margin-top: 8px; display: flex; gap: 12px; font-size: 11.5px; color: var(--text-3); }
.svc-card .checks-l { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 5px; }

/* latency */
.lat { padding: 14px 16px; }
.lat .hd { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.lat .hd b { font-weight: 580; font-size: 12.5px; }
.lat .hd span { font-size: 11px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.lat .qs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.lat .qs div { line-height: 1.2; }
.lat .qs small { font-size: 10px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; display: block; }
.lat .qs span { font-size: 16px; font-weight: 580; font-variant-numeric: tabular-nums; }
.lat .qs span em { font-style: normal; font-size: 11px; color: var(--text-3); margin-left: 2px; font-weight: 500; }
.lat svg { margin-top: 10px; display: block; width: 100%; height: 44px; }
.legend { display: flex; gap: 12px; font-size: 11px; color: var(--text-3); }
.legend i { display: inline-block; width: 10px; height: 2px; border-radius: 2px; vertical-align: middle; margin-right: 5px; }

/* permissions matrix */
.perm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px; }
.perm { display: flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius: 7px; font-family: var(--mono); font-size: 11.5px; border: 1px solid var(--border); background: rgba(255,255,255,0.015); color: var(--text-4); }
.perm.on { color: var(--text); border-color: rgba(61,220,151,0.2); background: rgba(61,220,151,0.04); }
.perm .i { width: 12px; height: 12px; stroke-width: 2.4; }
.perm.on .i { color: var(--ok); }
.code { font: 12px/1.6 var(--mono); padding: 12px 14px; border-radius: 9px; background: rgba(0,0,0,0.35); border: 1px solid var(--border); color: #c9cedb; white-space: pre; overflow: auto; }
.code .c { color: var(--text-3); }
.tree { font: 12px/1.7 var(--mono); }
.tree .k { color: var(--text-3); }
.tree .s { color: #9ee6c3; } .tree .n { color: #f5c67a; } .tree .b { color: var(--accent); }
.tree .ind { padding-left: 16px; border-left: 1px solid rgba(255,255,255,0.05); margin-left: 3px; }

/* ---------------------------------------------------------------- login */
.login { height: 100%; display: grid; place-items: center; padding: 20px; position: relative; overflow: hidden; }
.login::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse 60% 50% at 50% 45%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 60% 50% at 50% 45%, #000 20%, transparent 75%); }
.login-card { position: relative; width: min(400px, 100%); padding: 30px 28px 24px; border-radius: 16px; background: rgba(16, 17, 23, 0.72); border: 1px solid var(--border-2); backdrop-filter: blur(22px) saturate(140%); box-shadow: 0 40px 100px -30px rgba(0,0,0,0.8), 0 1px 0 rgba(255,255,255,0.06) inset; animation: pop 0.35s var(--ease); }
.login-card .brand-mark { width: 44px; height: 44px; border-radius: 12px; margin-bottom: 18px; }
.login-card .brand-mark .i { width: 22px; height: 22px; }
.login-card h1 { margin: 0; font-size: 20px; font-weight: 650; letter-spacing: -0.02em; }
.login-card .field { margin-bottom: 12px; }
.login-card p { margin: 6px 0 22px; color: var(--text-3); font-size: 12.5px; }
.login-card .foot { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border); font-size: 11.5px; color: var(--text-3); display: flex; gap: 8px; align-items: center; }
.login-err { margin-top: 12px; }

/* boot */
.boot { display: grid; place-items: center; }

/* ---------------------------------------------------------------- responsive */
@media (max-width: 1360px) {
  .g-side { grid-template-columns: minmax(0, 1fr) 400px; }
  .job-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1279px) {
  .app:not(.rail-off) { --sidebar-w: 64px; }
  .app:not(.rail-off) .brand { padding: 0; justify-content: center; }
  .app:not(.rail-off) .brand-name, .app:not(.rail-off) .nav-label, .app:not(.rail-off) .nav a span, .app:not(.rail-off) .nav a .badge-count, .app:not(.rail-off) .whoami .who, .app:not(.rail-off) .rail-toggle span { display: none; }
  .app:not(.rail-off) .nav a { justify-content: center; padding: 0; }
  .app:not(.rail-off) .whoami, .app:not(.rail-off) .rail-toggle { justify-content: center; padding: 6px 0; }
  .g-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .topbar .cmds { display: none; }
}
@media (max-width: 1100px) {
  .g-side, .g-side-l { grid-template-columns: minmax(0, 1fr); }
  .g-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sticky { position: static; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* launch pipeline column: header, stepper and actions stay put; the body scrolls */
.panel.pipe { display: flex; flex-direction: column; max-height: calc(100vh - var(--topbar-h) - 40px); }
.panel.pipe .pipe-body { overflow: auto; min-height: 0; flex: 1; }
.pipe-actions { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-bottom: 1px solid var(--border); background: rgba(0,0,0,0.14); flex: none; }
.panel.pipe > .panel-h, .panel.pipe > .stepper { flex: none; }
.section-title.nomb { margin: 0; }
details.fold.panel > summary { border-top: 0; padding: 10px 12px; }
.checks.pf { padding: 0 12px 6px; border-top: 1px solid var(--border); }
fieldset.fs { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.fs[disabled] .panel { opacity: 0.72; }
fieldset.fs[disabled] .vcard, fieldset.fs[disabled] .drop { cursor: default; }
.pipe-actions .btn { height: 30px; padding: 0 11px; }
.pipe-actions .btn.ghost { padding: 0 8px; }

/* ---------------------------------------------------------------- trading module (dense) */
.page.wide { max-width: 1680px; }
.page-head.compact { margin-bottom: 12px; align-items: center; }
.page-head.compact h2 { font-size: 17px; }
.page-head.compact p { margin-top: 2px; font-size: 12px; }
.pos { color: var(--ok); } .neg { color: var(--err); }
.strip { display: flex; align-items: stretch; margin-bottom: 12px; overflow: hidden; }
.strip > div { flex: 1; min-width: 0; padding: 9px 14px; border-right: 1px solid var(--border); }
.strip > div:last-child { border-right: 0; }
.strip .k { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.strip .v { font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -0.01em; }
.strip .v small { font-size: 11px; color: var(--text-3); font-weight: 500; margin-left: 4px; }
.toolbar.tight { padding: 7px 10px; gap: 8px; min-height: 44px; }
.toolbar.tight .input, .toolbar.tight select.input { height: 28px; font-size: 12px; }
.toolbar.tight select.input { min-width: 0; background-position: calc(100% - 13px) 12px, calc(100% - 8px) 12px; padding-right: 24px; }
.toolbar.tight .search .input { height: 28px; width: 220px; }
.toolbar.tight .search .i { top: 7px; }
.toolbar.tight .seg button { height: 22px; padding: 0 9px; font-size: 11.5px; }
.toolbar .lbl-s { font-size: 10.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; white-space: nowrap; }

.tbl-wrap.fill { max-height: calc(100vh - var(--topbar-h) - 210px); min-height: 180px; }
.tbl.dense { font-size: 12px; }
.tbl.dense th { padding: 0 10px; height: 28px; font-size: 10px; background: rgba(13, 14, 18, 0.97); z-index: 2; }
.tbl.dense td { padding: 0 10px; height: 30px; border-bottom-color: rgba(255,255,255,0.04); }
.tbl.dense tbody tr { transition: none; }
.tbl.dense .addr { font-size: 11.5px; }
.tbl.dense .addr .copy { width: 18px; height: 18px; }
.tbl.dense .pill { height: 18px; font-size: 10.5px; padding: 0 7px; gap: 4px; }
.tbl.dense .pill .i { width: 11px; height: 11px; }
.tbl.dense .venue { height: 18px; font-size: 10.5px; }
.tbl.dense th.c, .tbl.dense td.c { text-align: center; width: 30px; padding: 0 4px 0 10px; }
.tbl.dense tr.kf > td { background: rgba(165, 148, 255, 0.075); }
.tbl.dense tr.kf > td:first-child { box-shadow: inset 2px 0 0 var(--accent); }
.tbl.dense tr.rsel > td { background: rgba(165, 148, 255, 0.045); }
.tbl.dense tr.sib > td { background: rgba(45, 212, 191, 0.05); box-shadow: inset 0 0 0 1px rgba(45, 212, 191, 0.35); }
.tbl.dense tr.sib > td:first-child { box-shadow: inset 3px 0 0 var(--ok), inset 0 0 0 1px rgba(45, 212, 191, 0.35); }
.tbl.dense tr.grp > td { background: rgba(255, 255, 255, 0.022); height: 28px; cursor: pointer; border-bottom-color: var(--border); }
.tbl.dense tr.grp:hover > td { background: rgba(255, 255, 255, 0.04); }
.grp-row { display: flex; align-items: center; gap: 10px; font-size: 12px; }
.grp-row .chev { color: var(--text-3); }
.grp-row.closed .chev { transform: rotate(-90deg); }
.grp-row .gv { margin-left: auto; display: flex; gap: 18px; font-variant-numeric: tabular-nums; color: var(--text-2); }
.grp-row .gv b { color: var(--text); font-weight: 580; }
.tbl.dense tfoot td { position: sticky; bottom: 0; z-index: 2; background: rgba(15, 16, 21, 0.98); border-top: 1px solid var(--border-2); height: 30px; padding: 0 10px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tokc, .walc { display: inline-flex; align-items: baseline; gap: 7px; white-space: nowrap; }
.tokc b, .walc b { font-weight: 580; }
.tokc .mono, .walc .mono { font-size: 10.5px; }
.venue.sm { height: 18px; font-size: 10.5px; padding: 0 6px; gap: 5px; border-radius: 5px; }
.venue.sm i { width: 6px; height: 6px; }
.tag.g { font-size: 10px; padding: 0 5px; line-height: 16px; border-radius: 4px; color: var(--accent); border-color: rgba(165,148,255,0.2); background: rgba(165,148,255,0.06); }
.tags { display: inline-flex; gap: 4px; flex-wrap: nowrap; }
input.cb { appearance: none; -webkit-appearance: none; width: 14px; height: 14px; margin: 0; border-radius: 4px; border: 1px solid var(--border-3); background: rgba(0,0,0,0.3); cursor: pointer; display: inline-grid; place-items: center; vertical-align: -2px; }
input.cb:checked { background: var(--accent); border-color: var(--accent); }
input.cb:checked::after { content: ""; width: 7px; height: 4px; border-left: 2px solid #0e0b24; border-bottom: 2px solid #0e0b24; transform: translateY(-1px) rotate(-45deg); }
input.cb:indeterminate { background: var(--accent-soft); border-color: var(--accent); }
input.cb:disabled { opacity: 0.35; cursor: not-allowed; }
.inp-sm { height: 24px; padding: 0 7px; font-size: 12px; border-radius: 6px; border: 1px solid var(--border-2); background: var(--input); color: var(--text); width: 72px; text-align: right; font-variant-numeric: tabular-nums; font-family: var(--font); }
.inp-sm:focus { outline: none; border-color: var(--accent-line); box-shadow: 0 0 0 2px rgba(165,148,255,0.12); }
.inp-sm.bad { border-color: rgba(255,107,122,0.55); }
.inp-sm.w-s { width: 54px; } .inp-sm.w-m { width: 84px; } .inp-sm.w-l { width: 120px; text-align: left; }
select.inp-sm { text-align: left; width: auto; padding-right: 4px; }
.unit { font-size: 10.5px; color: var(--text-3); margin-left: 4px; }
.cellflex { display: flex; align-items: center; gap: 4px; }

/* pipeline stage bar */
.stagebar { display: inline-flex; gap: 2px; vertical-align: middle; }
.stagebar .sg { width: 11px; height: 6px; border-radius: 2px; background: rgba(255,255,255,0.08); }
.stagebar .sg.done { background: var(--ok); opacity: 0.85; }
.stagebar .sg.cur { background: var(--warn); animation: pulse 1.2s ease-in-out infinite; }
.stagebar .sg.fail { background: var(--err); }
.stagebar .sg.skip { background: rgba(94,177,255,0.35); }
.stimes { font-family: var(--mono); font-size: 10.5px; color: var(--text-3); white-space: pre; }
.stimes b { color: var(--text-2); font-weight: 500; }

/* preset buttons (sell) */
.presets { display: inline-flex; gap: 2px; }
.presets button { height: 22px; min-width: 30px; padding: 0 5px; border-radius: 5px; border: 1px solid var(--border-2); background: rgba(255,255,255,0.03); color: var(--text-2); font-size: 11px; font-weight: 560; cursor: pointer; font-variant-numeric: tabular-nums; }
.presets button:hover { color: var(--text); border-color: var(--border-3); background: rgba(255,255,255,0.07); }
.presets button.on { color: #0e0b24; background: var(--accent); border-color: var(--accent); }
.presets button[disabled] { opacity: 0.35; cursor: not-allowed; }
.presets button kbd { display: none; }
tr.kf .presets button kbd { display: inline; font: 9px var(--mono); color: var(--text-4); margin-right: 3px; }
tr.kf .presets button.on kbd { color: rgba(14,11,36,0.6); }

/* buy page layout */
.trade-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 12px; align-items: start; }
.trade-side { position: sticky; top: 0; display: flex; flex-direction: column; gap: 12px; }
.mint-bar { display: flex; align-items: center; gap: 10px; padding: 10px 12px; }
.mint-bar .input { height: 34px; font-family: var(--mono); font-size: 12.5px; }
.tokinfo { display: flex; align-items: center; gap: 14px; white-space: nowrap; font-size: 12px; color: var(--text-2); }
.tokinfo b { color: var(--text); font-weight: 600; }
.vpick { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 12px 10px; }
.vpick button { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 9px; border-radius: 7px; border: 1px solid var(--border-2); background: rgba(255,255,255,0.02); color: var(--text-2); font-size: 11.5px; cursor: pointer; white-space: nowrap; }
.vpick button:hover { border-color: var(--border-3); color: var(--text); }
.vpick button.on { border-color: var(--accent-line); background: var(--accent-soft); color: var(--text); }
.vpick button[disabled] { opacity: 0.4; cursor: not-allowed; }
.vpick button small { color: var(--text-3); font-variant-numeric: tabular-nums; font-size: 10.5px; }
.vpick button .best { color: var(--ok); font-size: 10px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.05em; }
.qgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.qgrid > div { padding: 8px 14px; border-bottom: 1px solid var(--border); min-width: 0; }
.qgrid > div:nth-child(odd) { border-right: 1px solid var(--border); }
.qgrid .k { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
.qgrid .v { font-size: 14px; font-weight: 580; font-variant-numeric: tabular-nums; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qgrid .v small { font-size: 10.5px; color: var(--text-3); font-weight: 500; margin-left: 3px; }
.qfoot { display: flex; align-items: center; gap: 8px; padding: 8px 14px; font-size: 11.5px; color: var(--text-3); }
.age.warn { color: var(--warn); } .age.err { color: var(--err); }
.form-rows { display: flex; flex-direction: column; }
.form-rows > .fr { display: flex; align-items: center; gap: 10px; padding: 7px 14px; border-bottom: 1px solid var(--border); font-size: 12px; min-height: 38px; }
.form-rows > .fr:last-child { border-bottom: 0; }
.form-rows > .fr > label { color: var(--text-2); flex: 1; }
.form-rows .inp-sm[type=datetime-local] { width: 170px; text-align: left; }
.sumrow { display: flex; justify-content: space-between; padding: 6px 14px; font-size: 12px; font-variant-numeric: tabular-nums; }
.sumrow span:first-child { color: var(--text-3); }
.sumrow.big { font-size: 14px; font-weight: 620; padding-top: 8px; }
.exec-actions { display: flex; gap: 8px; padding: 10px 14px 12px; border-top: 1px solid var(--border); }
.apply-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.apply-bar .btn.sm { height: 24px; padding: 0 8px; font-size: 11.5px; }
.batch-h { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.batch-h .prog { width: 160px; }
.batch-sum { display: flex; gap: 14px; font-size: 11.5px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.batch-sum b { color: var(--text); font-weight: 600; }
.errcell { color: var(--err); font-size: 11px; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.confirm-list { max-height: 320px; overflow: auto; border: 1px solid var(--border); border-radius: 9px; }
.confirm-list .tbl td, .confirm-list .tbl th { height: 26px; }
.modal.wide { width: min(720px, 100%); }
.keys-sheet { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; }
.keys-sheet > div:last-child { grid-column: span 2; }
.keys-sheet .kcol { width: 110px; white-space: nowrap; }
.keys-sheet .tbl td { height: 26px; padding: 0 8px; }
.sel-bar { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--border); background: rgba(165,148,255,0.05); font-size: 12px; }
.chips { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.chips button { height: 22px; padding: 0 8px; border-radius: 11px; border: 1px solid var(--border-2); background: none; color: var(--text-2); font-size: 11px; cursor: pointer; white-space: nowrap; }
.chips button:hover { color: var(--text); border-color: var(--border-3); }
.chips button.on { color: var(--accent); border-color: var(--accent-line); background: var(--accent-soft); }
.chips button .n { color: var(--text-3); margin-left: 4px; font-variant-numeric: tabular-nums; }
.wf-avg { display: flex; height: 18px; border-radius: 4px; overflow: hidden; margin: 6px 0 10px; }
.wf-avg > i { display: block; height: 100%; min-width: 2px; }
.wf-legend { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 4px 16px; font-size: 11.5px; }
.wf-legend span { display: flex; align-items: center; gap: 6px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wf-legend span i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.wf-legend span b { margin-left: auto; font-weight: 560; }
.bars { display: flex; flex-direction: column; gap: 6px; }
.bars .b { display: grid; grid-template-columns: 90px minmax(0, 1fr) 52px; align-items: center; gap: 8px; font-size: 11.5px; }
.bars .b .prog { height: 8px; }
.bars .b span:last-child { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 1360px) { .trade-grid { grid-template-columns: minmax(0, 1fr) 320px; } }
@media (max-width: 1100px) { .trade-grid { grid-template-columns: minmax(0, 1fr); } .trade-side { position: static; } }
.tbl.dense tr.grp > td { font-weight: 560; }
.tbl.dense tr.grp > td b { font-weight: 620; }
.held { padding: 0 12px 8px; }
.held:empty { display: none; }
.panel-b.tight-x { padding: 2px 12px 10px; }
.panel-b.tight-y { padding: 6px 0 8px; }
.panel-b.tight-y .notice { margin: 6px 14px 0; }
.tbl-wrap.fill.small { max-height: 420px; }
select.input.sm-sel { height: 30px; width: auto; min-width: 200px; font-size: 12px; }
.stimes-h { text-transform: none; letter-spacing: 0; }
.stimes-h .stimes { color: var(--text-3); font-size: 10px; }
.stack > .panel + .panel { margin-top: 0; }
.sel-bar { position: sticky; bottom: 0; z-index: 3; }
.tbl.dense .flash-up, .tbl.dense .flash-down { animation-duration: 0.7s; }
.inp-sm.w-xs { width: 42px; }
.keys-sheet .tbl td { white-space: normal; }
.keys-sheet .tbl td.kcol { white-space: nowrap; }
.cellflex .errcell { max-width: 170px; }

/* ---------------------------------------------------------------- HyperTrader */
.nav-sub { display: flex; flex-direction: column; gap: 1px; margin: 1px 0 6px 22px; padding-left: 8px; border-left: 1px solid var(--border); }
.nav-sub:empty { display: none; }
.nav .nav-sub a { height: 26px; gap: 8px; padding: 0 8px; font-size: 12px; color: var(--text-3); }
.nav .nav-sub a span { overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1; }
.nav .nav-sub a em { font-style: normal; font-family: var(--mono); font-size: 10px; color: var(--text-4); }
.nav .nav-sub a.active { background: rgba(165,148,255,0.08); color: var(--text); }
.nav .nav-sub a.active::before { display: none; }
.nav .nav-sub a.new { color: var(--text-4); }
.nav .nav-sub a.new:hover { color: var(--accent); }
.phd { width: 6px; height: 6px; border-radius: 50%; flex: none; background: var(--text-4); }
.phd.info { background: var(--info); } .phd.warn { background: var(--warn); } .phd.ok { background: var(--ok); box-shadow: 0 0 6px rgba(61,220,151,0.6); }
.app.rail .nav-sub { display: none; }
@media (max-width: 1279px) { .app:not(.rail-off) .nav-sub { display: none; } }
.mini-rail { display: inline-flex; gap: 3px; }
.mini-rail i { width: 16px; height: 5px; border-radius: 3px; background: rgba(255,255,255,0.09); }
.mini-rail i.done { background: var(--ok); opacity: 0.85; } .mini-rail i.cur { background: var(--accent); } .mini-rail i.bad { background: var(--err); }

.hp-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; min-height: 44px; }
.hp-head h2 { margin: 0; font-size: 18px; font-weight: 640; letter-spacing: -0.02em; }
.hp-head .back { padding: 0 6px; }
.hp-sub { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 3px; font-size: 11.5px; color: var(--text-3); align-items: center; }
.hp-sub .addr { font-size: 11px; }
.hp-head .stream { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--text-3); padding: 0 10px; height: 26px; border: 1px solid var(--border); border-radius: 13px; text-transform: lowercase; }
.hp-head .stream.live { color: var(--ok); border-color: rgba(61,220,151,0.25); }
.hp-head .stream.down { color: var(--warn); border-color: rgba(245,184,75,0.3); }
.skel.w40 { width: 40%; height: 18px; }
.hp-rail { margin-bottom: 12px; }
.hp-steps { border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); padding: 12px 8px 10px; }
.hp-steps .step { border: 0; background: none; cursor: pointer; font: inherit; color: inherit; padding: 0; }
.hp-steps .step[disabled] { cursor: default; }
.hp-steps .step > span { font-size: 12px; font-weight: 560; }
.hp-steps .step small { font-size: 10.5px; color: var(--text-4); max-width: 90%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: -3px; }
.hp-steps .step.cur small { color: var(--accent); }
.hp-steps .step:not([disabled]):hover .dot { border-color: var(--border-3); }

.phases { display: flex; flex-direction: column; gap: 10px; }
.phase { border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); backdrop-filter: blur(16px) saturate(125%); overflow: clip; transition: border-color 0.2s; }
.phase.current { border-color: rgba(165,148,255,0.28); box-shadow: 0 0 0 1px rgba(165,148,255,0.06) inset, 0 16px 40px -24px rgba(124,108,240,0.35); }
.phase.locked { opacity: 0.55; }
.ph-h { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 14px; cursor: pointer; user-select: none; }
.phase.locked .ph-h { cursor: default; }
.ph-h:hover { background: rgba(255,255,255,0.015); }
.phase.open .ph-h { border-bottom: 1px solid var(--border); }
.ph-h > b { font-size: 13.5px; font-weight: 620; white-space: nowrap; }
.ph-n { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 650; flex: none; border: 1px solid var(--border-2); color: var(--text-3); background: var(--bg-2); }
.ph-n.done { background: var(--ok-soft); color: var(--ok); border-color: rgba(61,220,151,0.45); }
.ph-n.cur { color: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 3px rgba(165,148,255,0.12); }
.ph-n.bad { color: var(--err); border-color: rgba(255,107,122,0.5); background: var(--err-soft); }
.ph-sum { font-size: 12.5px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ph-sum.ok .i { color: var(--ok); }
.chev-b { color: var(--text-3); display: grid; place-items: center; width: 18px; }
.ph-b { padding: 14px; animation: fadein 0.2s var(--ease); }
.ph-inner { display: flex; flex-direction: column; gap: 12px; }
.ph-actions { display: flex; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border); }
.ph-actions .notice { padding: 7px 10px; }
.token-form .fs.stack > .panel { margin: 0; }
.token-form .fs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.token-form .fs > .panel:nth-child(2) { grid-row: span 3; }
.token-form .fs > .panel:first-child { grid-column: span 2; }
@media (max-width: 1100px) { .token-form .fs { grid-template-columns: minmax(0, 1fr); } .token-form .fs > .panel:first-child { grid-column: auto; } .token-form .fs > .panel:nth-child(2) { grid-row: auto; } }

.wal-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 12px; align-items: start; }
.wal-side { position: sticky; top: 0; }
@media (max-width: 1200px) { .wal-grid { grid-template-columns: minmax(0, 1fr); } .wal-side { position: static; } }
.wal-grid .panel + .panel { margin-top: 0; }
.input.num.w-num { width: 64px; flex: none; }
.inp-sm.src { width: 180px; }
.notice.rec { align-items: flex-start; }
.rec-list { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.rec-chip { display: inline-flex; align-items: center; gap: 6px; height: 20px; padding: 0 7px; border-radius: 5px; font-size: 11px; color: var(--text); background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); }
.rec-chip .mono { color: var(--text-3); font-size: 10px; }
.rec-chip b { color: var(--warn); font-weight: 600; font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.tag.role-c { color: var(--warn); border-color: rgba(245,184,75,0.25); background: rgba(245,184,75,0.07); }
.tag.err { color: var(--err); border-color: rgba(255,107,122,0.25); }
.bview { max-height: 360px; }
.sumrow b.err { color: var(--err); }

.launch-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 12px; align-items: start; }
@media (max-width: 1250px) { .launch-grid { grid-template-columns: minmax(0, 1fr); } }
.launch-grid .panel.pipe { max-height: calc(100vh - var(--topbar-h) - 60px); }
.sum-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sum-tiles .panel + .panel { margin-top: 0; }
.sum-tiles .tile { padding: 11px 13px; }
.sum-tiles .tile .v { font-size: 18px; margin-top: 4px; }
.cost-mini { display: flex; flex-wrap: wrap; gap: 2px 8px; white-space: normal !important; }
@media (max-width: 1400px) { .sum-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* anti-sniper */
.as-panel .as-sec { border-top: 1px solid var(--border); }
.as-panel .panel-h + .as-sec { border-top: 0; }
.as-h { display: flex; align-items: center; gap: 10px; padding: 11px 14px; flex-wrap: wrap; }
.as-h > b { font-size: 13px; font-weight: 600; }
.as-h .dim { font-size: 12px; }
.as-sec.on .as-h { background: rgba(165,148,255,0.035); }
.as-b { padding: 0 14px 14px; display: flex; flex-direction: column; gap: 10px; }
.as-ctl { display: flex; align-items: center; gap: 8px 16px; flex-wrap: wrap; font-size: 12px; color: var(--text-2); }
.as-ctl label { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.as-b .tbl-wrap { border: 1px solid var(--border); border-radius: 9px; max-height: 420px; }
.as-tbl tfoot td { font-size: 11.5px; }
.bundle-chip { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px; border-radius: 11px; font-size: 11.5px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ok); background: var(--ok-soft); border: 1px solid rgba(61,220,151,0.25); }
.bundle-chip.bad { color: var(--err); background: var(--err-soft); border-color: rgba(255,107,122,0.35); }
.as-foot { display: flex; align-items: center; gap: 6px 16px; flex-wrap: wrap; font-size: 11.5px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.as-foot b { color: var(--text); font-weight: 600; }
.txsz { display: inline-grid; grid-template-columns: auto auto; gap: 1px 8px; align-items: center; padding: 4px 8px; border: 1px solid var(--border); border-radius: 7px; background: rgba(0,0,0,0.15); }
.txsz span:first-child { font-family: var(--mono); font-size: 10.5px; color: var(--text-3); }
.txsz .sizebar { grid-column: span 2; max-width: none; margin-top: 2px; }
.txsz.hot b { color: var(--warn); } .txsz.bad b { color: var(--err); }
.simrun { padding: 10px 12px; border: 1px solid rgba(165,148,255,0.25); border-radius: 9px; background: var(--accent-soft); display: flex; flex-direction: column; gap: 8px; }
.prog.indet > i { width: 35% !important; animation: indet 1.3s ease-in-out infinite; }
@keyframes indet { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } }
.mt8 { margin-top: 8px; }
.b0-report { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.b0-report .tbl-wrap { border: 1px solid var(--border); border-radius: 9px; }
.b0-verdict { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 11px; }
.b0-verdict b { display: block; font-size: 16px; font-weight: 650; letter-spacing: -0.01em; }
.b0-verdict .grow > span { display: block; font-size: 11.5px; color: var(--text-2); margin-top: 2px; }
.b0-verdict .right b { font-size: 18px; }
.b0-verdict.ok { background: linear-gradient(90deg, rgba(61,220,151,0.16), rgba(61,220,151,0.03)); border: 1px solid rgba(61,220,151,0.35); }
.b0-verdict.ok > .i { color: var(--ok); } .b0-verdict.ok b { color: #b9f5d8; }
.b0-verdict.bad { background: linear-gradient(90deg, rgba(255,107,122,0.16), rgba(255,107,122,0.03)); border: 1px solid rgba(255,107,122,0.35); }
.b0-verdict.bad > .i { color: var(--err); } .b0-verdict.bad b { color: #ffc2c9; }
.b0-live > summary { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.b0-live > summary .dim { font-size: 12px; }

/* live phase */
.hp-strip { margin-bottom: 0; }
.hp-strip .v small { font-size: 10.5px; }
.hp-strip .bond .prog-cell { min-width: 0; }
.hp-strip .bond .v { padding-top: 3px; }
.hp-strip .team { background: rgba(245,184,75,0.04); }
.hp-strip .team .k { color: var(--warn); }
.hp-tabs { border: 1px solid var(--border); border-radius: 10px 10px 0 0; border-bottom: 0; background: var(--panel); margin-bottom: -12px; position: relative; z-index: 1; }
.hp-tabs + div > .panel, .hp-tabs ~ div > .panel { border-top-left-radius: 0; border-top-right-radius: 0; }
#v-post .panel, #v-post { margin: 0; }
.mx { margin: 8px 12px 0; }
.hgrid-wrap { max-height: calc(100vh - var(--topbar-h) - 150px); }
.hgrid td.tot b { font-weight: 640; }
.hgrid small.sp { display: inline-block; margin-left: 6px; font-size: 10.5px; color: var(--text-3); min-width: 36px; }
.hgrid .sub-pct { font-size: 11px; margin-left: 2px; }
.hgrid tr.pend > td { background: rgba(165,148,255,0.05); }
.hgrid tbody tr { will-change: auto; }
.hgrid .sidelbl { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.05em; }
.hgrid th.ctl-h { width: 1%; }
.keys-hint { font-size: 11px; color: var(--text-3); display: inline-flex; gap: 4px; align-items: center; white-space: nowrap; }
.keys-hint .kbd { font-size: 10px; padding: 0 4px; }
@media (max-width: 1500px) { .keys-hint { display: none; } }
.ctl { display: inline-flex; align-items: center; gap: 4px; }
.tgl { height: 22px; min-width: 38px; padding: 0 7px; border-radius: 5px; border: 1px solid var(--border-2); background: rgba(255,255,255,0.04); color: var(--text-2); font-size: 11px; font-weight: 650; cursor: pointer; letter-spacing: 0.01em; }
.tgl:hover { border-color: var(--border-3); color: var(--text); }
.tgl.side.buy { color: #06180f; background: var(--ok); border-color: var(--ok); }
.tgl.side.sell { color: #22070b; background: var(--err); border-color: var(--err); }
.tgl.unit { min-width: 34px; font-family: var(--mono); font-weight: 600; }
.ctl .presets button { min-width: 36px; }
.ctl.buy .presets button:not([disabled]):hover { border-color: rgba(61,220,151,0.5); color: var(--ok); background: var(--ok-soft); }
.ctl.sell .presets button:not([disabled]):hover { border-color: rgba(255,107,122,0.5); color: var(--err); background: var(--err-soft); }
.ctl.buy .presets button:active { background: var(--ok); color: #06180f; }
.ctl.sell .presets button:active { background: var(--err); color: #22070b; }
.ctl .custom { display: inline-flex; }
.ctl .custom .inp-sm { border-radius: 5px 0 0 5px; height: 22px; }
.ctl .custom .go { height: 22px; width: 22px; border: 1px solid var(--border-2); border-left: 0; border-radius: 0 5px 5px 0; background: rgba(255,255,255,0.05); color: var(--text-2); cursor: pointer; display: grid; place-items: center; padding: 0; }
.ctl .custom .go:hover:not([disabled]) { color: var(--text); background: rgba(255,255,255,0.1); }
.ctl .custom .go[disabled] { opacity: 0.35; cursor: not-allowed; }
.sel-bar.bulk { gap: 12px; background: linear-gradient(90deg, rgba(165,148,255,0.12), rgba(165,148,255,0.05)); border-top-color: rgba(165,148,255,0.3); }
.sel-bar.bulk .bsum { display: inline-flex; gap: 10px; align-items: baseline; }
.side-buy { color: var(--ok); font-weight: 560; } .side-sell { color: var(--err); font-weight: 560; } .side-transfer { color: var(--info); }
.hgrid td { height: 38px; padding: 0 7px; }
.hgrid th { padding: 0 7px; }
.hgrid .c2 { display: flex; flex-direction: column; line-height: 1.2; gap: 1px; }
.hgrid td.r .c2 { align-items: flex-end; }
.hgrid .c2 small { font-size: 10.5px; color: var(--text-3); }
.hgrid .c2 .addr { font-size: 10.5px; color: var(--text-3); }
.hgrid .c2 .addr a { color: var(--text-3); }
.hgrid .c2 .addr .copy { width: 16px; height: 16px; }
.hgrid .walc { gap: 6px; }
.hgrid .walc .tag { font-size: 9.5px; padding: 0 4px; line-height: 14px; }
.hgrid .ctl { gap: 3px; }
.hgrid .tgl { min-width: 34px; padding: 0 5px; }
.hgrid .tgl.unit { min-width: 30px; }
.hgrid .ctl .presets button { min-width: 33px; padding: 0 3px; }
.hgrid .ctl .custom .inp-sm { width: 46px; }
.hgrid tfoot td { padding: 0 7px; }
.hp-steps { display: flex; align-items: center; gap: 0; padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); }
.hstep { display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; color: var(--text-3); font: inherit; cursor: pointer; padding: 4px 8px; border-radius: 8px; min-width: 0; white-space: nowrap; }
.hstep:not([disabled]):hover { background: rgba(255,255,255,0.04); }
.hstep[disabled] { cursor: default; opacity: 0.6; }
.hstep .dot { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--border-2); background: var(--bg-2); font-size: 11px; font-weight: 650; flex: none; }
.hstep .lb { font-size: 12.5px; font-weight: 580; color: var(--text-2); }
.hstep small { font-size: 11px; color: var(--text-4); overflow: hidden; text-overflow: ellipsis; }
.hstep.done .dot { background: var(--ok-soft); border-color: rgba(61,220,151,0.45); color: var(--ok); }
.hstep.cur .dot { border-color: var(--accent); color: var(--accent); box-shadow: 0 0 0 3px rgba(165,148,255,0.14); }
.hstep.cur .lb { color: var(--text); } .hstep.cur small { color: var(--accent); }
.hstep.bad .dot { border-color: rgba(255,107,122,0.5); color: var(--err); background: var(--err-soft); }
.hp-steps .conn { flex: 1; height: 1px; min-width: 20px; background: var(--border-2); margin: 0 4px; }
.hp-steps .conn.done { background: linear-gradient(90deg, rgba(61,220,151,0.5), rgba(61,220,151,0.25)); }
.hp-head { margin-bottom: 10px; }
.hp-rail { margin-bottom: 10px; }
.phases { gap: 8px; }
.ph-h { min-height: 42px; }
.tgl.side.buy { color: var(--ok); background: var(--ok-soft); border-color: rgba(61,220,151,0.4); }
.tgl.side.sell { color: var(--err); background: var(--err-soft); border-color: rgba(255,107,122,0.42); }
tr.kf .tgl.side.buy { color: #06180f; background: var(--ok); border-color: var(--ok); }
tr.kf .tgl.side.sell { color: #22070b; background: var(--err); border-color: var(--err); }
.hp-strip .v .pill { vertical-align: 2px; }
/* HyperTrader funding */
.fund-bar { display: flex; align-items: center; gap: 10px 14px; padding: 8px 12px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.fund-bar.sub { padding: 6px 12px; background: rgba(0,0,0,0.12); }
.fund-bar .fb { display: inline-flex; align-items: center; gap: 7px; }
.fund-bar .seg button { height: 24px; font-weight: 620; }
.fund-bar .btn.primary { height: 30px; }
.fb-bal b { color: var(--text); font-variant-numeric: tabular-nums; }
.alloc { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-variant-numeric: tabular-nums; }
.allocbar { width: 110px; height: 6px; border-radius: 4px; background: rgba(255,255,255,0.08); overflow: hidden; }
.allocbar > i { display: block; height: 100%; background: var(--accent); border-radius: 4px; transition: width 0.25s var(--ease); }
.allocbar.full > i { background: var(--ok); } .allocbar.over > i { background: var(--err); }
.ftbl td { height: 38px; padding: 0 8px; }
.ftbl th { padding: 0 8px; }
.ftbl .c2 { display: flex; flex-direction: column; line-height: 1.2; }
.ftbl .c2 .addr { font-size: 10.5px; } .ftbl .c2 .addr a { color: var(--text-3); }
.ftbl tr.rfail > td { background: rgba(255,107,122,0.045); }
select.inp-sm.rsel { max-width: 176px; font-size: 11.5px; padding-right: 2px; }
.rcell .rd { display: inline-flex; }
.rdot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--text-4); flex: none; }
.rdot.ok { background: var(--ok); } .rdot.warn { background: var(--warn); } .rdot.err { background: var(--err); }
.via { font-family: var(--mono); font-size: 10.5px; color: var(--text-3); padding: 0 5px; border: 1px solid var(--border); border-radius: 4px; line-height: 16px; white-space: nowrap; }
.rerun { gap: 6px; } .rerun .errcell { max-width: 240px; }
.pctc .inp-sm { width: 56px; }
.rstrip { display: flex; align-items: center; gap: 6px 8px; flex-wrap: wrap; padding: 7px 10px; border: 1px solid var(--border); border-radius: 10px; background: rgba(255,255,255,0.015); font-size: 11px; }
.rstrip .faint { font-size: 10.5px; }
.rchip { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 7px; border-radius: 10px; border: 1px solid var(--border); color: var(--text-2); font-family: var(--mono); font-size: 10.5px; cursor: default; }
.rchip em { font-style: normal; font-family: var(--font); font-size: 9.5px; color: var(--accent); text-transform: uppercase; letter-spacing: 0.05em; }
.rchip small { color: var(--text-4); font-size: 10px; }
.rchip.warn { border-color: rgba(245,184,75,0.3); } .rchip.err { border-color: rgba(255,107,122,0.35); color: var(--err); }
.dep-b { display: flex; gap: 14px; align-items: flex-start; }
.qrbox { width: 116px; height: 116px; flex: none; border-radius: 8px; overflow: hidden; background: #fff; }
.qrbox svg { width: 100%; height: 100%; display: block; }
.dep-addr { font-size: 11.5px; word-break: break-all; line-height: 1.35; color: var(--text); }
.dep-bal { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; margin-top: 6px; font-size: 12px; }
.dep-bal > div { display: flex; justify-content: space-between; gap: 6px; }
.dep-bal .tot { grid-column: span 2; border-top: 1px solid var(--border); padding-top: 4px; }
.inp-sm.ext { width: 220px; }
.fview td { height: 32px; }
.fview tr.rfail > td { background: rgba(255,107,122,0.045); }
.errcell.wide { max-width: 420px; }
.wal-side .row .input { flex: 1; width: auto; min-width: 0; }
.wal-side .row .input.w-num { flex: none; width: 60px; }
.wal-side .row .btn { flex: none; }
.rstack { display: flex; flex-direction: column; gap: 2px; padding: 2px 0; }
.rstack select.inp-sm.rsel { height: 20px; width: 172px; font-size: 11px; }
.rstack .nosel { display: inline-block; width: 172px; font-size: 10.5px; line-height: 20px; }
.ftbl td { height: 48px; }
.hgrid .ctl .presets button kbd, .hgrid tr.kf .presets button kbd { display: none; }
.hgrid .ctl .presets button { min-width: 31px; }
.sel-bar.bulk { background: linear-gradient(90deg, #1d1935, #15141f); box-shadow: 0 -10px 24px -12px rgba(0,0,0,0.8); }
.hgrid-panel .sel-bar { background: #15141d; }
.ftbl .rerun { gap: 3px; }
.ftbl .rerun .errcell { max-width: 250px; }
.ftbl .rerun select.inp-sm.rsel { height: 20px; width: 160px; font-size: 11px; }
.ftbl .rerun .btn.sm { height: 20px; padding: 0 7px; font-size: 11px; }
.gctl { gap: 8px; }
.hgrid .errcell { max-width: 96px; }
.hgrid .tgl { min-width: 31px; padding: 0 4px; }
.hgrid .tgl.unit { min-width: 28px; }
.hgrid .ctl .presets button { min-width: 29px; padding: 0 2px; }
.hgrid .ctl .custom .inp-sm { width: 42px; }
.hgrid .c2.st { align-items: flex-start; gap: 3px; }
.hgrid .c2.st .stagebar .sg { width: 8px; height: 4px; }
.hgrid .c2.st .errcell { max-width: 110px; font-size: 10.5px; }

/* ---- Admin treasury console ------------------------------------------------ */
.tile-xl { padding: 18px 20px; }
.tile-xl .row.wrap { display: flex; align-items: flex-end; gap: 26px; flex-wrap: wrap; }
.tile-xl .v.xl { font-size: 34px; font-weight: 680; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.tile-xl .v.xl small { font-size: 14px; color: var(--text-3); font-weight: 500; margin-left: 6px; }
.tile-xl .k { font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; display: flex; align-items: center; gap: 6px; }
.tile-xl .stat { min-width: 96px; }
.tile-xl .stat .k { margin-bottom: 4px; }
.tile-xl .stat .v { font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.tile-xl .stat .s { font-size: 11px; color: var(--text-3); }
.tile-xl .notice { margin-top: 14px; }
.row.wrap { flex-wrap: wrap; }
.breakall { word-break: break-all; }
.btn.xs { height: 22px; padding: 0 8px; font-size: 11px; border-radius: 6px; gap: 4px; }
.su { border-top: 1px solid var(--border); }
.su:first-child { border-top: 0; }
.su-head { display: flex; align-items: center; gap: 14px; padding: 12px 14px; background: rgba(255,255,255,0.014); }
.su-head h3 { margin: 0; font-size: 14px; display: flex; align-items: center; gap: 7px; }
.su-total { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.su-total .num { font-size: 15px; }
.proj { padding: 0 14px 12px; }
.proj-head { display: flex; align-items: center; gap: 10px; padding: 9px 2px 6px; }
.proj-head .lbl-s { font-size: 10.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; display: flex; align-items: center; gap: 5px; }
.proj .tbl-wrap { border: 1px solid var(--border); border-radius: var(--radius-sm); }

/* ============================================================================
   HyperTrader — progressive disclosure + motion system  (appended; additive)
   ============================================================================ */
:root {
  --dur-1: 120ms; --dur-2: 200ms; --dur-3: 320ms; --dur-4: 560ms;
  --ease-spring: cubic-bezier(0.34, 1.4, 0.5, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --glow-accent: 0 0 0 1px rgba(165,148,255,0.35), 0 8px 26px -10px rgba(124,108,240,0.55);
}
@keyframes hp-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes hp-rise-sm { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes hp-pop { 0% { transform: scale(0.6); opacity: 0; } 60% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }
@keyframes hp-shimmer { 100% { transform: translateX(100%); } }
@keyframes hp-glow-in { from { box-shadow: 0 0 0 0 rgba(165,148,255,0); } to { box-shadow: var(--glow-accent); } }
@keyframes hp-check-draw { to { stroke-dashoffset: 0; } }
@keyframes hp-ring { 0% { transform: scale(0.5); opacity: 0.6; } 100% { transform: scale(1.9); opacity: 0; } }
@keyframes hp-indet2 { 0% { left: -40%; } 100% { left: 100%; } }
@keyframes hp-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

/* staggered reveal: elements set --i for delay */
.hp-reveal { animation: hp-rise var(--dur-3) var(--ease-out) both; animation-delay: calc(var(--i, 0) * 55ms); }
.hp-reveal-sm { animation: hp-rise-sm var(--dur-2) var(--ease-out) both; animation-delay: calc(var(--i, 0) * 40ms); }

/* shimmer skeletons */
.sk { position: relative; overflow: hidden; background: rgba(255,255,255,0.045); border-radius: 6px; }
.sk::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,0.09), transparent); animation: hp-shimmer 1.35s var(--ease-io) infinite; }
.sk-line { height: 11px; margin: 6px 0; }
.sk-line.w60 { width: 60%; } .sk-line.w40 { width: 40%; } .sk-line.w80 { width: 80%; }
.skel, .skel.w40 { position: relative; overflow: hidden; }
.skel::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent); animation: hp-shimmer 1.35s var(--ease-io) infinite; }

/* animated number counter target */
.count { font-variant-numeric: tabular-nums; transition: color var(--dur-2) var(--ease-out); }
.count.bump { color: var(--accent); }

/* ---- token mode picker ------------------------------------------------- */
.mode-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 820px) { .mode-cards { grid-template-columns: 1fr; } }
.mode-card { position: relative; text-align: left; padding: 20px 18px 18px; border-radius: 14px; border: 1px solid var(--border); cursor: pointer; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.028), rgba(255,255,255,0.005)); color: var(--text);
  transition: border-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-spring), box-shadow var(--dur-3) var(--ease-out), background var(--dur-2); }
.mode-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 80% at 20% 0%, rgba(165,148,255,0.12), transparent 60%); opacity: 0; transition: opacity var(--dur-3) var(--ease-out); pointer-events: none; }
.mode-card:hover { border-color: var(--border-3); transform: translateY(-3px); box-shadow: 0 16px 34px -22px rgba(0,0,0,0.9); }
.mode-card:hover::before { opacity: 1; }
.mode-card:active { transform: translateY(-1px) scale(0.995); }
.mode-card.on { border-color: var(--accent-line); box-shadow: var(--glow-accent); background: linear-gradient(180deg, rgba(165,148,255,0.1), rgba(165,148,255,0.02)); }
.mode-card .mc-ico { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; margin-bottom: 14px; color: var(--accent);
  background: var(--accent-soft); border: 1px solid var(--accent-line); transition: transform var(--dur-3) var(--ease-spring); }
.mode-card:hover .mc-ico { transform: translateY(-2px) rotate(-4deg); }
.mode-card .mc-ico.ok { color: var(--ok); background: var(--ok-soft); border-color: rgba(61,220,151,0.3); }
.mode-card .mc-ico.dim { color: var(--text-2); background: rgba(255,255,255,0.04); border-color: var(--border-2); }
.mode-card h4 { margin: 0 0 5px; font-size: 15px; font-weight: 640; letter-spacing: -0.01em; }
.mode-card p { margin: 0; font-size: 12px; color: var(--text-3); line-height: 1.5; }
.mode-card .mc-go { position: absolute; right: 16px; bottom: 16px; color: var(--text-4); transition: transform var(--dur-2) var(--ease-out), color var(--dur-2); }
.mode-card:hover .mc-go { color: var(--accent); transform: translateX(3px); }
.mode-head { display: flex; align-items: center; gap: 10px; margin-bottom: 2px; }
.mode-head .back { padding: 0 8px; }
.mode-head h3 { margin: 0; font-size: 14px; font-weight: 620; }
.mode-head .sub { color: var(--text-3); font-size: 12px; }
.mode-panel { animation: hp-rise var(--dur-3) var(--ease-out) both; }

/* existing-token CA entry */
.ca-panel { display: flex; flex-direction: column; gap: 14px; max-width: 760px; }
.ca-field { display: flex; gap: 8px; align-items: stretch; }
.ca-input { flex: 1; font-family: var(--mono); font-size: 14px; height: 46px; letter-spacing: -0.01em; }
.ca-detect { border: 1px solid var(--border); border-radius: 12px; padding: 16px; background: rgba(255,255,255,0.015); display: flex; gap: 14px; align-items: center; animation: hp-rise var(--dur-3) var(--ease-out) both; }
.ca-detect .tok-ico.lg { width: 46px; height: 46px; }
.ca-detect .cd-main b { font-size: 15px; font-weight: 640; }
.ca-detect .cd-main .dim { font-size: 12px; }
.ca-detect .cd-stat { text-align: right; } .ca-detect .cd-stat b { font-size: 16px; font-variant-numeric: tabular-nums; }
.ca-stages { display: flex; flex-direction: column; gap: 9px; }
.ca-stage { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--text-3); transition: color var(--dur-2); }
.ca-stage .cs-dot { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--border-2); flex: none; color: var(--text-4); background: var(--bg-2); }
.ca-stage.run { color: var(--text); } .ca-stage.run .cs-dot { border-color: var(--accent); color: var(--accent); }
.ca-stage.done { color: var(--text-2); } .ca-stage.done .cs-dot { border-color: rgba(61,220,151,0.45); color: var(--ok); background: var(--ok-soft); }

/* token chosen summary (inside phase body after Edit) */
.tok-chosen { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; background: linear-gradient(90deg, rgba(61,220,151,0.07), transparent); }

/* ---- progressive wallets flow ----------------------------------------- */
.wf-wrap { gap: 14px; }
.wf-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wf-top .rec { flex: 1; min-width: 260px; }
.wf-create { white-space: nowrap; }
.wf { display: flex; flex-direction: column; gap: 12px; position: relative; }
.wf::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; background: linear-gradient(180deg, var(--border-2), transparent); z-index: 0; }
.wf-step { position: relative; z-index: 1; border: 1px solid var(--border); border-radius: 14px; background: var(--panel); backdrop-filter: blur(16px) saturate(125%);
  overflow: clip; transition: border-color var(--dur-3) var(--ease-out), opacity var(--dur-3), box-shadow var(--dur-3), transform var(--dur-3) var(--ease-out); }
.wf-step.active { border-color: rgba(165,148,255,0.28); box-shadow: 0 0 0 1px rgba(165,148,255,0.06) inset, 0 18px 44px -26px rgba(124,108,240,0.5); }
.wf-step.locked { opacity: 0.52; filter: saturate(0.7); pointer-events: none; }
.wf-step.locked .wf-head { cursor: default; }
.wf-head { display: flex; align-items: center; gap: 12px; padding: 0 16px; min-height: 56px; cursor: pointer; user-select: none; }
.wf-head:hover { background: rgba(255,255,255,0.012); }
.wf-num { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: 12.5px; font-weight: 680; flex: none;
  border: 1px solid var(--border-2); color: var(--text-3); background: var(--bg-2); position: relative; transition: all var(--dur-3) var(--ease-spring); }
.wf-step.active .wf-num { color: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px rgba(165,148,255,0.13); }
.wf-step.done .wf-num { color: var(--ok); border-color: rgba(61,220,151,0.5); background: var(--ok-soft); }
.wf-num .ring { position: absolute; inset: -1px; border-radius: 50%; border: 1px solid var(--accent); opacity: 0; }
.wf-step.active .wf-num .ring { animation: hp-ring 2.2s var(--ease-out) infinite; }
.wf-htext { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wf-htext b { font-size: 13.5px; font-weight: 630; }
.wf-htext .wf-sub { font-size: 11.5px; color: var(--text-3); }
.wf-sum { font-size: 12.5px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wf-sum.ok { color: var(--text-2); } .wf-sum.ok b { color: var(--ok); }
.wf-body { border-top: 1px solid var(--border); padding: 16px; display: flex; flex-direction: column; gap: 14px; animation: hp-rise var(--dur-3) var(--ease-out) both; }
.wf-step.collapsed .wf-body { display: none; }
.wf-lockmsg { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-4); }

/* funder card */
.funder { display: grid; grid-template-columns: 116px minmax(0,1fr) auto; gap: 16px; align-items: center; }
@media (max-width: 720px) { .funder { grid-template-columns: 1fr; } }
.funder .qrbox { width: 116px; height: 116px; }
.funder-mid { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.funder-addr { font-family: var(--mono); font-size: 11.5px; word-break: break-all; line-height: 1.4; color: var(--text); }
.funder-bals { display: flex; gap: 18px; flex-wrap: wrap; }
.funder-bal { display: flex; flex-direction: column; }
.funder-bal .k { font-size: 10.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.06em; }
.funder-bal .v { font-size: 18px; font-weight: 620; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.funder-bal.tot .v { color: var(--accent); }
.funder-right { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.funder-empty { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border: 1px dashed var(--border-2); border-radius: 12px; color: var(--text-3); font-size: 12.5px; animation: hp-float 3s var(--ease-io) infinite; }
.src-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12.5px; }

/* contextual sweep bar */
.sweep-bar { position: sticky; bottom: 12px; z-index: 5; display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-top: 4px;
  border: 1px solid rgba(255,107,122,0.28); border-radius: 14px; background: linear-gradient(90deg, rgba(40,22,28,0.96), rgba(24,20,28,0.96)); backdrop-filter: blur(12px);
  box-shadow: 0 18px 40px -18px rgba(0,0,0,0.85); animation: hp-rise var(--dur-3) var(--ease-spring) both; }
.sweep-bar .sb-count { font-weight: 640; font-size: 13px; }
.sweep-bar .sb-count b { color: var(--err); }
.sweep-bar .fr { display: inline-flex; align-items: center; gap: 6px; }
.sweep-bar .fr > label { font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.05em; }
.sweep-bar .seg button { height: 24px; }

/* success confirm burst */
.step-done-burst { position: absolute; top: 14px; left: 14px; width: 30px; height: 30px; pointer-events: none; z-index: 4; }
.step-done-burst i { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid var(--ok); animation: hp-ring 0.7s var(--ease-out) forwards; }
.chk-svg { width: 15px; height: 15px; }
.chk-svg path { stroke: currentColor; stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 20; stroke-dashoffset: 20; }
.wf-step.done .wf-num .chk-svg path { animation: hp-check-draw var(--dur-3) var(--ease-out) forwards; }

/* multi-stage progress bar */
.mstage { display: flex; gap: 4px; }
.mstage i { flex: 1; height: 4px; border-radius: 2px; background: rgba(255,255,255,0.08); overflow: hidden; position: relative; }
.mstage i.done { background: var(--ok); }
.mstage i.run { background: rgba(165,148,255,0.2); }
.mstage i.run::after { content: ""; position: absolute; top: 0; bottom: 0; width: 40%; background: var(--accent); border-radius: 2px; animation: hp-indet2 1s var(--ease-io) infinite; }

/* rail: skipped launch step */
.hstep.skip { opacity: 0.5; }
.hstep.skip .dot { border-style: dashed; color: var(--text-4); }
.hstep.skip .lb { color: var(--text-4); }
.mini-rail i.skip { background: repeating-linear-gradient(90deg, rgba(255,255,255,0.13) 0 3px, transparent 3px 6px); }
.ph-sum.skip { color: var(--text-4); font-style: italic; }
.phase.skipped { opacity: 0.62; }
.phase.skipped .ph-h { cursor: default; }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  .hp-reveal, .hp-reveal-sm, .mode-card, .mode-panel, .ca-detect, .wf-body, .sweep-bar, .wf-step, .wf-num, .funder-empty,
  .sk::after, .skel::after, .mstage i.run::after, .wf-num .ring, .chk-svg path, .step-done-burst i, .count {
    animation: none !important; transition-duration: 1ms !important; }
}

/* HyperTrader limit sells */
.hgrid .tgl.lim { margin-left: 6px; height: 19px; min-width: 0; font-size: 10.5px; padding: 0 6px; }
.hgrid .tgl.lim.on { color: var(--accent); border-color: var(--accent-line); }
.hgrid .tgl.lim .n { margin-left: 4px; font-variant-numeric: tabular-nums; }
.lim { display: flex; flex-direction: column; gap: 14px; }
.lim-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin-bottom: 10px; }
.lim-grid .field.wide { grid-column: 1 / -1; }
.lim-grid .cellflex { flex-wrap: wrap; }
.lim-strip { margin-bottom: 0; }
.lim-strip .v { font-size: 14.5px; }
@media (max-width: 640px) { .lim-grid { grid-template-columns: minmax(0, 1fr); } }

/* ================================================================ HyperTrader flow (phase by phase, centered) */
.phases.flow { max-width: 760px; margin: 0 auto; transition: max-width 0.35s var(--ease); }
.phases.flow.wide { max-width: none; }
.phases.flow .phase { border: 0; background: none; box-shadow: none; margin: 0; }
.phases.flow .phase > .ph-h { display: none; }
.phases.flow .phase:not(.open) { display: none; }
.phases.flow .phase.open > .ph-b { animation: flowin 0.42s var(--ease) both; padding: 0; }
@keyframes flowin { from { opacity: 0; transform: translateY(10px) scale(0.995); } to { opacity: 1; transform: none; } }

.hp-head { max-width: 760px; margin: 0 auto 6px; }
.hp-head .hp-sub { margin-top: 2px; }
.hp-rail { display: flex; justify-content: center; margin: 10px 0 26px; }
.hp-steps { display: flex; align-items: center; gap: 0; background: none; border: 0; padding: 0; }
.hp-steps .conn { width: 56px; height: 2px; border-radius: 2px; background: var(--border-2); position: relative; overflow: hidden; }
.hp-steps .conn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ok), var(--accent)); transform: scaleX(0); transform-origin: left; transition: transform 0.6s var(--ease); }
.hp-steps .conn.done::after { transform: scaleX(1); }
.hstep { display: flex; flex-direction: column; align-items: center; gap: 7px; background: none; border: 0; padding: 4px 10px; cursor: pointer; color: var(--text-3); font-size: 12px; font-weight: 560; }
.hstep:disabled { cursor: default; opacity: 0.45; }
.hstep .dot { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--border-3); background: rgba(255,255,255,0.02); font-variant-numeric: tabular-nums; transition: all 0.3s var(--ease); }
.hstep.done .dot { border-color: var(--ok); color: var(--ok); background: color-mix(in srgb, var(--ok) 12%, transparent); }
.hstep.cur .dot { border-color: var(--accent); color: var(--text); box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 14%, transparent); }
.hstep.bad .dot { border-color: var(--err); color: var(--err); }
.hstep.on { color: var(--text); }
.hstep.on .dot { transform: scale(1.08); }
.hstep .lb { letter-spacing: 0.01em; }

/* wallets flow */
.wf-wrap { gap: 14px; }
.wf-wrap .wf-top { display: flex; justify-content: flex-end; margin-bottom: -6px; }
.wf { display: flex; flex-direction: column; gap: 10px; }
.wf-step { border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,0.015); transition: border-color 0.3s, background 0.3s, opacity 0.3s; overflow: hidden; }
.wf-step.active { border-color: var(--accent-line); background: rgba(255,255,255,0.03); box-shadow: 0 20px 50px -30px color-mix(in srgb, var(--accent) 45%, transparent); }
.wf-step.locked { opacity: 0.45; }
.wf-step .wf-head { padding: 14px 18px; gap: 12px; }
.wf-step .wf-htext b { font-size: 14px; font-weight: 620; }
.wf-step .wf-sum { color: var(--text-2); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.wf-step .wf-sum.ok { color: var(--ok); }
.wf-step .wf-body { padding: 4px 18px 20px; animation: flowin 0.35s var(--ease) both; }
.wf-lockmsg { color: var(--text-4); }
.st-wait { display: inline-flex; align-items: center; gap: 8px; color: var(--text-2); }
.st-wait i { width: 7px; height: 7px; border-radius: 50%; background: var(--warn); box-shadow: 0 0 0 0 color-mix(in srgb, var(--warn) 60%, transparent); animation: stpulse 1.6s ease-out infinite; }
@keyframes stpulse { 70% { box-shadow: 0 0 0 7px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.st-ok { display: inline-flex; align-items: center; gap: 6px; color: var(--ok); }
.st-warn { color: var(--warn); }
.src-row { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 14px; }
.src-sel { min-width: 200px; }

/* deposit card: centered, value first, QR, tap-to-copy address, asset marks */
.dep-card { display: flex; justify-content: center; }
.dep { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 6px 0 4px; }
.dep-tot b { font-size: 34px; font-weight: 680; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.dep .qrbox { width: 168px; height: 168px; padding: 10px; border-radius: 16px; background: #fff; box-shadow: 0 18px 40px -20px rgba(0,0,0,0.8); }
.dep .qrbox svg { width: 100%; height: 100%; display: block; }
.dep-addr { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12.5px; color: var(--text-2); background: rgba(255,255,255,0.04); border: 1px solid var(--border-2); border-radius: 999px; padding: 6px 14px; cursor: pointer; transition: color 0.2s, border-color 0.2s; }
.dep-addr:hover { color: var(--text); border-color: var(--border-3); }
.dep-assets { display: flex; gap: 10px; }
.dep-asset { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: rgba(255,255,255,0.03); border: 1px solid var(--border); font-variant-numeric: tabular-nums; font-size: 13px; }
.aic { width: 22px; height: 22px; flex: none; }
.ph-actions { justify-content: center; gap: 14px; }
.wf::before { display: none; }
.tm-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.tm-add { margin-bottom: 12px; gap: 8px; }
.tm-fund { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px; margin-bottom: 12px; border-radius: 14px; background: rgba(0,0,0,0.25); border: 1px solid var(--border); flex-wrap: wrap; }
.aseg button { padding: 0 8px; display: grid; place-items: center; }
.aseg button .aic { width: 20px; height: 20px; opacity: 0.55; transition: opacity 0.2s, transform 0.2s; }
.aseg button.on .aic { opacity: 1; transform: scale(1.08); }
.tm-amt { display: inline-flex; align-items: center; gap: 6px; }
.tm-amt input { width: 130px; font-size: 16px; font-weight: 600; text-align: right; }
.tm-fund .alloc { display: inline-flex; align-items: center; gap: 8px; min-width: 120px; }
.tm-fund .allocbar { width: 80px; }
.tm-adv { display: flex; align-items: center; gap: 12px; justify-content: center; margin: -4px 0 12px; flex-wrap: wrap; animation: flowin 0.3s var(--ease) both; }
.tm-go { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 14px; }
.icon-btn.on { color: var(--accent); border-color: var(--accent-line); }
.hp-head.wide { max-width: none; }
.mode-cards { gap: 14px; }
.mode-card { align-items: center; text-align: center; padding: 26px 18px 22px; gap: 10px; }
.mode-card .mc-ico { margin: 0 auto; }
.mode-card p, .mode-card .mc-sub { font-size: 12.5px; }
/* launch inside the centered flow: pipeline (the action) first, then summary, then anti-sniper */
.phases.flow .launch-grid { display: flex; flex-direction: column; gap: 14px; }
.phases.flow .launch-grid > .sticky { order: -1; position: static; }
.phases.flow .sum-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.phases.flow .sum-tiles .tile .s { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.phases.flow .pipe .empty { padding: 22px 0 18px; }
.phases.flow .launch-grid > * { width: 100%; min-width: 0; max-width: 100%; }
.phases.flow .launch-grid .pipe { width: 100%; }
.phases.flow .sum-tiles > .tile { min-width: 0; }
.phases.flow .ph-b .panel { max-width: 100%; min-width: 0; }
.phases.flow .ph-b .tbl-wrap { overflow-x: auto; }

/* ================================================================ token mode cards v2 */
.mode-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.mode-card { --hue: 252; --mx: 50%; --my: 30%; position: relative; display: flex; flex-direction: column; align-items: stretch; text-align: left; gap: 0;
  min-height: 300px; padding: 0; border-radius: 22px; border: 1px solid rgba(255,255,255,0.07); cursor: pointer; overflow: hidden; isolation: isolate;
  background: linear-gradient(180deg, hsla(var(--hue), 60%, 60%, 0.07), rgba(255,255,255,0.012) 55%), #0d0e13;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.3s, box-shadow 0.45s; }
.mode-card.mc-existing { --hue: 190; }
.mode-card.mc-create { --hue: 258; }
.mode-card.mc-skip { --hue: 220; }
.mode-card::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity 0.35s;
  background: radial-gradient(420px circle at var(--mx) var(--my), hsla(var(--hue), 90%, 70%, 0.16), transparent 45%); }
.mode-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; opacity: 0; transition: opacity 0.35s;
  background: radial-gradient(300px circle at var(--mx) var(--my), hsla(var(--hue), 95%, 72%, 0.7), transparent 60%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.mode-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px hsla(var(--hue), 80%, 50%, 0.45), 0 10px 30px -18px rgba(0,0,0,0.9); border-color: rgba(255,255,255,0.1); }
.mode-card:hover::before, .mode-card:hover::after { opacity: 1; }
.mode-card:active { transform: translateY(-3px) scale(0.99); }
.mode-card.on { border-color: hsla(var(--hue), 90%, 70%, 0.45); box-shadow: 0 0 0 1px hsla(var(--hue), 90%, 70%, 0.25), 0 30px 60px -34px hsla(var(--hue), 80%, 55%, 0.6); }

.mc-art { position: relative; flex: 1; display: grid; place-items: center; min-height: 180px;
  background: radial-gradient(60% 70% at 50% 45%, hsla(var(--hue), 80%, 60%, 0.22), transparent 70%); }
.mc-art::before { content: ""; position: absolute; inset: 0; opacity: 0.35;
  background-image: radial-gradient(rgba(255,255,255,0.35) 1px, transparent 1.2px); background-size: 16px 16px;
  -webkit-mask: radial-gradient(55% 60% at 50% 45%, #000, transparent 75%); mask: radial-gradient(55% 60% at 50% 45%, #000, transparent 75%); }
.mc-ring { position: absolute; width: 118px; height: 118px; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 55%, hsla(var(--hue), 95%, 72%, 0.9) 75%, transparent 90%);
  -webkit-mask: radial-gradient(circle, transparent 57px, #000 58px); mask: radial-gradient(circle, transparent 57px, #000 58px);
  animation: mcspin 6s linear infinite; }
.mode-card:hover .mc-ring { animation-duration: 2.2s; }
@keyframes mcspin { to { transform: rotate(1turn); } }
.mc-orb { position: relative; width: 78px; height: 78px; border-radius: 50%; display: grid; place-items: center; color: hsl(var(--hue), 95%, 80%);
  background: radial-gradient(circle at 35% 30%, hsla(var(--hue), 90%, 75%, 0.35), hsla(var(--hue), 70%, 30%, 0.25) 60%, rgba(0,0,0,0.3));
  border: 1px solid hsla(var(--hue), 90%, 75%, 0.35); box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 12px 40px -10px hsla(var(--hue), 90%, 60%, 0.6);
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); }
.mode-card:hover .mc-orb { transform: translateY(-4px) scale(1.06); }
.mc-orb .i { width: 30px; height: 30px; }

.mc-txt { display: block; padding: 0 22px 24px; }
.mode-card h4 { margin: 0 0 6px; font-size: 19px; font-weight: 660; letter-spacing: -0.02em; color: var(--text); }
.mode-card p { margin: 0; font-size: 13px; color: var(--text-3); line-height: 1.4; }
.mode-card .mc-go { position: absolute; right: 18px; bottom: 22px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  color: var(--text-3); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); }
.mode-card:hover .mc-go { color: #0b0b10; background: hsl(var(--hue), 95%, 78%); border-color: transparent; transform: translateX(3px); }
.mc-check { position: absolute; top: 14px; right: 14px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  background: hsl(var(--hue), 95%, 72%); color: #0b0b10; box-shadow: 0 0 0 4px hsla(var(--hue), 95%, 72%, 0.18); animation: mcpop 0.4s cubic-bezier(0.3, 1.6, 0.5, 1) both; }
.mc-check .i { width: 14px; height: 14px; stroke-width: 2.6; }
@keyframes mcpop { from { transform: scale(0.4); opacity: 0; } }
@media (max-width: 760px) { .mode-cards { grid-template-columns: minmax(0, 1fr); } .mode-card { min-height: 220px; } }
@media (prefers-reduced-motion: reduce) { .mc-ring { animation: none; } }

/* ================================================================ pills v2: quieter, crisper */
.pill { height: 22px; padding: 0 9px; gap: 5px; border-radius: 999px; font-size: 11.5px; font-weight: 600; letter-spacing: 0.005em;
  border: 0; box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent); background: color-mix(in srgb, currentColor 9%, transparent); }
.pill:not(.ok):not(.warn):not(.err):not(.info):not(.accent):not(.cyan):not(.solid-ok) { color: var(--text-2); }
.pill.ok, .pill.warn, .pill.err, .pill.info, .pill.accent, .pill.cyan { background: color-mix(in srgb, currentColor 10%, transparent); border-color: transparent; }
.pill.solid-ok { box-shadow: none; }
.tag { border-radius: 6px; border: 0; box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent); background: color-mix(in srgb, currentColor 8%, transparent); font-weight: 600; }
.phases.flow { max-width: 1040px; }
.hp-head { max-width: 1040px; }
.phases.flow .wf-wrap, .phases.flow .launch-grid { max-width: 760px; margin-left: auto; margin-right: auto; }
.mode-cards { gap: 20px; margin-top: 8px; }
.mode-card { min-height: min(62vh, 520px); border-radius: 26px; }
.mc-art { min-height: 260px; }
.mc-ring { width: 176px; height: 176px; -webkit-mask: radial-gradient(circle, transparent 86px, #000 87px); mask: radial-gradient(circle, transparent 86px, #000 87px); }
.mc-orb { width: 116px; height: 116px; }
.mc-orb .i { width: 44px; height: 44px; stroke-width: 1.4; }
.mc-txt { padding: 0 28px 30px; }
.mode-card h4 { font-size: 24px; margin-bottom: 8px; }
.mode-card p { font-size: 14px; }
.mode-card .mc-go { right: 24px; bottom: 30px; width: 40px; height: 40px; }
.mc-check { top: 18px; right: 18px; width: 30px; height: 30px; }

/* ================================================================ deposit card v3: styled QR + chain + full address */
.dep-card { display: block; }
.dep { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; padding: 8px 4px 6px; }
.dep-qr { position: relative; width: 216px; height: 216px; padding: 6px; border-radius: 24px; isolation: isolate;
  background: radial-gradient(120% 120% at 30% 20%, #1b1830, #0a0a10 70%);
  box-shadow: inset 0 0 0 1px rgba(184,166,255,0.22), inset 0 1px 0 rgba(255,255,255,0.06), 0 24px 60px -28px rgba(140,110,255,0.55); }
.dep-qr .qr-styled { position: relative; width: 100%; height: 100%; display: block; z-index: 1; }
.dep-qr-glow { position: absolute; inset: -1px; border-radius: inherit; z-index: 0; padding: 1px; pointer-events: none;
  background: conic-gradient(from var(--qa, 0deg), transparent 0 70%, rgba(184,166,255,0.9) 85%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: qrsweep 5s linear infinite; }
@property --qa { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes qrsweep { to { --qa: 360deg; } }
.dep-info { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; min-width: 0; }
.dep-chain { display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 12px 0 5px; border-radius: 999px; font-size: 13px;
  background: linear-gradient(90deg, rgba(153,69,255,0.16), rgba(20,241,149,0.1)); box-shadow: inset 0 0 0 1px rgba(153,69,255,0.3); }
.dep-chain .aic { width: 20px; height: 20px; }
.dep-chain b { font-weight: 640; }
.dep-chain span { font-size: 10.5px; font-weight: 650; letter-spacing: 0.06em; color: var(--text-3); }
.dep-tot b { font-size: 38px; line-height: 1; }
.dep-addr { max-width: 100%; border-radius: 12px; padding: 9px 12px; gap: 10px; font-size: 13px; text-align: left; }
.dep-addr .mono { overflow-wrap: anywhere; word-break: break-all; color: var(--text); letter-spacing: 0.01em; }
.dep-addr .i { flex: none; }
.dep-addr.copied { border-color: var(--ok); color: var(--ok); }
.dep-assets { flex-wrap: wrap; }
@media (max-width: 700px) { .dep { grid-template-columns: minmax(0, 1fr); justify-items: center; } .dep-info { align-items: center; } }
@media (prefers-reduced-motion: reduce) { .dep-qr-glow { animation: none; } }
.step-next { display: flex; justify-content: flex-end; margin-top: 14px; }
.step-next .btn .i { margin: 0 -2px 0 2px; }
.tm-bar { flex-wrap: wrap; }
.tm-new, .tm-exist { display: inline-flex; align-items: center; gap: 6px; }
.tm-new input { width: 56px; text-align: center; }
.tm-exist select { min-width: 190px; }
input.capped { animation: capflash 0.6s ease-out; }
@keyframes capflash { 0% { box-shadow: 0 0 0 2px var(--warn); border-color: var(--warn); } 100% { box-shadow: 0 0 0 0 transparent; } }
.via-sel { min-width: 128px; }
.via-direct { color: var(--text-3); font-size: 12px; }
/* creator top-up row */
.cr-fund { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin: 12px 0 2px; padding: 12px 14px; border-radius: 14px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--warn) 8%, transparent), rgba(0,0,0,0.2)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 22%, transparent); animation: flowin 0.35s var(--ease) both; }
.cr-lbl { font-size: 12px; font-weight: 620; color: var(--warn); letter-spacing: 0.02em; margin-right: 2px; }
.cr-amt-t { background: none; border: 0; border-bottom: 1px dashed var(--border-3); padding: 2px 2px; font-size: 18px; font-weight: 660; color: var(--text); cursor: text; font-variant-numeric: tabular-nums; }
.cr-amt-t span { font-size: 12px; color: var(--text-3); font-weight: 560; }
.cr-amt-t:hover { border-bottom-color: var(--accent); }
.cr-amt-t.err { color: var(--err); }
.cr-amt { display: inline-flex; align-items: center; gap: 6px; }
.cr-amt input { width: 120px; font-size: 16px; font-weight: 640; text-align: right; }
.cr-fund .via-sel { min-width: 0; max-width: 140px; }
.cr-fund #cr-send { max-width: 128px; }
.cr-fund .aseg button { padding: 0 6px; }

/* ================================================================ overview (step 4): cost model */
.ov-hero { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 16px; margin-bottom: 14px; }
.ov-hero.ok { background: linear-gradient(90deg, color-mix(in srgb, var(--ok) 14%, transparent), transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ok) 28%, transparent); }
.ov-hero.short { background: linear-gradient(90deg, color-mix(in srgb, var(--warn) 14%, transparent), transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 28%, transparent); }
.ov-mark { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.ov-hero.ok .ov-mark { background: var(--ok); color: #03140c; }
.ov-hero.short .ov-mark { background: var(--warn); color: #1a1203; }
.ov-mark svg { width: 20px; height: 20px; }
.ov-h { display: flex; flex-direction: column; gap: 3px; }
.ov-h b { font-size: 16px; font-weight: 660; }
.ov-h span { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.ov-topups { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.ov-top { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; background: rgba(0,0,0,0.25); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 25%, transparent); font-size: 13px; }
.ov-top b { font-variant-numeric: tabular-nums; color: var(--warn); }
.ov-top em { margin-left: auto; font-style: normal; font-size: 11.5px; color: var(--text-3); }
.ov-top .aic { width: 20px; height: 20px; }
.ov-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.ov-card { padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,0.02); box-shadow: inset 0 0 0 1px var(--border); }
.ov-card.short { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 35%, transparent); }
.ov-k { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 640; margin-bottom: 8px; }
.ov-row { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; font-variant-numeric: tabular-nums; padding: 2px 0; }
.ov-row b.err { color: var(--err); }
.ov-row.sub { font-size: 11.5px; color: var(--text-3); }
.ov-row.in { color: var(--ok); }
/* L2 funder: chain toggle + chain badge */
.chain-seg button { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 12px 0 6px; }
.chain-seg .aic { width: 20px; height: 20px; }
.dep-chain.arbitrum { background: linear-gradient(90deg, rgba(18,170,255,0.16), rgba(33,49,71,0.3)); box-shadow: inset 0 0 0 1px rgba(18,170,255,0.35); }
.dep-chain.base { background: linear-gradient(90deg, rgba(0,82,255,0.2), rgba(0,82,255,0.05)); box-shadow: inset 0 0 0 1px rgba(0,82,255,0.45); }
.dep-chain .aic + b + .aic { margin-left: 6px; }
.dep-skel { padding: 18px 0; display: flex; flex-direction: column; gap: 8px; }
.cr-pay { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-3); padding: 0 4px; }
.cr-pay b { color: var(--text); font-variant-numeric: tabular-nums; }
.cr-pay b.err { color: var(--err); }
.cr-pay .aic { width: 18px; height: 18px; }
.dep-asset.warn { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 55%, transparent); }
.dep-gas { font-size: 12px; min-height: 0; }
.ov-k .aic { width: 16px; height: 16px; }
.dep-asset.err { box-shadow: inset 0 0 0 1px var(--err), 0 0 0 3px color-mix(in srgb, var(--err) 18%, transparent); animation: capflash 0.8s ease-out 2; }
.dep-asset.err b { color: var(--err); }
.gas-err { display: inline-flex; align-items: center; gap: 6px; color: var(--err); font-size: 12.5px; font-weight: 600; }
.gas-err .aic { width: 16px; height: 16px; }
.cr-min { background: none; border: 0; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 620; color: var(--warn); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 40%, transparent); cursor: pointer; }
.cr-min:hover { background: color-mix(in srgb, var(--warn) 12%, transparent); }

/* ---- HyperTrader wallets: single top-up notice (overview) ---- */
.tu-card { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 26px 20px 22px; margin: 0 auto 16px; max-width: 520px; border-radius: 20px;
  background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--warn) 10%, transparent), transparent 70%), rgba(255,255,255,0.02); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 26%, transparent); }
.tu-card.enter { animation: hp-rise 0.35s ease both; }
.tu-card.ok { background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--ok) 12%, transparent), transparent 70%), rgba(255,255,255,0.02); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ok) 28%, transparent); }
.tu-card.ok.quiet { padding: 16px 20px; gap: 6px; }
.tu-marks { display: flex; align-items: center; justify-content: center; }
.tu-marks .aic { width: 44px; height: 44px; border-radius: 50%; box-shadow: 0 0 0 3px var(--bg-2, #0d0e14), 0 10px 24px -10px rgba(0,0,0,0.8); }
.tu-marks .aic + .aic { margin-left: -12px; }
.tu-title { font-size: 17px; font-weight: 680; letter-spacing: -0.01em; }
.tu-amts { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; }
.tu-amt { font-size: 14px; color: var(--text-2); }
.tu-amt b { font-size: 22px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; margin-left: 4px; }
.tu-sub { font-size: 12.5px; color: var(--text-3); }
.tu-wait { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-2); }
.tu-spin { width: 12px; height: 12px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--warn) 30%, transparent); border-top-color: var(--warn); animation: spin 0.9s linear infinite; }
.tu-more { display: flex; flex-direction: column; gap: 4px; width: 100%; padding-top: 10px; border-top: 1px solid var(--border); font-size: 12px; color: var(--text-2); }
.tu-more span { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.tu-more .aic { width: 14px; height: 14px; }
.tu-more em { font-style: normal; color: var(--text-3); }
.tu-check { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--ok); color: #03140c; }
.tu-card.quiet .tu-check { width: 34px; height: 34px; }
.tu-check .chk-svg { width: 60%; height: 60%; }
.tu-check .chk-svg path { stroke-width: 3; stroke-dashoffset: 0; }
.tu-card.celebrate .tu-check { animation: hp-pop 0.5s cubic-bezier(.2,1.4,.4,1) both; }
.tu-card.celebrate .chk-svg path { stroke-dashoffset: 20; animation: hp-check-draw 0.45s 0.2s ease-out forwards; }
.tu-card .dep-qr { width: 188px; height: 188px; }
.step-next { gap: 8px; }

/* team card footer: selection controls left, Fund / Review right */
.tm-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.tm-sel { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.tm-sel:empty { display: none; }
.tm-sel .sel-count { font-size: 12.5px; color: var(--text-2); margin-right: 2px; }
.tm-sel .sel-count b { color: var(--text); font-weight: 680; }
.sw-opts { display: flex; flex-direction: column; gap: 12px; }
.sw-opts .field > label { font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.05em; }
.sw-tok { display: flex; align-items: center; justify-content: space-between; }

/* HyperTrader wallets: creator step — one focused card when set, the picker only when unset / changing */
.cr-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 24px 20px 20px; margin: 0 auto; max-width: 560px; border-radius: 20px;
  background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--ok) 9%, transparent), transparent 70%), rgba(255,255,255,0.02); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ok) 24%, transparent); }
.cr-card.short { background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--warn) 10%, transparent), transparent 70%), rgba(255,255,255,0.02); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 26%, transparent); }
.cr-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ok); color: #03140c; }
.cr-card.short .cr-mark { background: var(--warn); color: #1a1203; }
.cr-mark .chk-svg { width: 22px; height: 22px; }
.cr-mark .chk-svg path { stroke-width: 3; stroke-dashoffset: 0; }
.cr-name { font-size: 18px; font-weight: 680; letter-spacing: -0.01em; }
.cr-bal { display: flex; align-items: baseline; gap: 6px; }
.cr-bal b { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; }
.cr-bal span { font-size: 13px; color: var(--text-3); font-weight: 600; }
.cr-state { font-size: 12.5px; color: var(--text-2); }
.cr-card.short .cr-state b { color: var(--warn); }
.cr-card .cr-fund { margin-top: 6px; width: 100%; justify-content: center; }
.cr-pick { display: flex; flex-direction: column; gap: 12px; max-width: 560px; margin: 0 auto; }
.cr-pick .seg { align-self: center; }
.cr-new { display: flex; align-items: center; gap: 12px; justify-content: space-between; }

/* HyperTrader wallets: overview — stat strip, funder card, per-wallet flow cards */
.ov-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 4px 0 14px; }
.ovs { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,0.025); box-shadow: inset 0 0 0 1px var(--border); min-width: 0; }
.ovs-k { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-3); }
.ovs-k .aic, .ovs-k .i { width: 14px; height: 14px; }
.ovs-v { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ovs-s { font-size: 11.5px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ovs.err { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--err) 45%, transparent); }
.ovs.err .ovs-v { color: var(--err); }
.ov-grid2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.ovc { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012)); box-shadow: inset 0 0 0 1px var(--border); min-width: 0; }
.ovc.short { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warn) 40%, transparent); }
.ovc-src { background: linear-gradient(180deg, rgba(18,170,255,0.07), rgba(255,255,255,0.012)); }
.ovc-h { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 13px; }
.ovc-h b { font-weight: 650; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ovc-h .aic { width: 18px; height: 18px; flex: none; }
.ovc-h .mono { margin-left: auto; font-size: 11px; }
.ovc-flow { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; padding: 10px; border-radius: 12px; background: rgba(0,0,0,0.25); }
.ovc-flow .fl-a, .ovc-flow .fl-b { display: inline-flex; align-items: center; gap: 6px; }
.ovc-flow .aic { width: 18px; height: 18px; }
.ovc-flow b { font-size: 14px; font-weight: 680; color: var(--text); }
.ovc-flow .fl-b b { color: var(--ok); }
.fl-via { display: flex; align-items: center; gap: 6px; min-width: 0; }
.fl-via i { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 70%, transparent), transparent); min-width: 8px; }
.fl-via em { font-style: normal; font-size: 10.5px; font-weight: 600; letter-spacing: 0.03em; color: var(--accent); padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 12%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 110px; }
.ovc-fee { display: flex; justify-content: space-between; align-items: center; font-size: 11.5px; color: var(--text-3); }
.ovc-fee b { color: var(--text-2); font-weight: 650; }
.ovc-fee .ok { display: inline-flex; align-items: center; gap: 4px; color: var(--ok); }
.ovc-m { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 10px; font-size: 12px; color: var(--text-2); }
.ovc-m > span { display: inline-flex; align-items: center; gap: 6px; }
.ovc-m .aic { width: 14px; height: 14px; }
.ovc-m b { font-weight: 680; color: var(--text); font-variant-numeric: tabular-nums; }
.ovc-m b em { font-style: normal; font-weight: 500; color: var(--text-3); }
.ovc-m b.err { color: var(--err); }
.ovm { grid-column: 1 / -1; height: 4px; border-radius: 999px; background: rgba(255,255,255,0.07); overflow: hidden; }
.ovm i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, color-mix(in srgb, var(--ok) 60%, transparent), var(--ok)); transition: width 0.5s var(--ease-out, ease); }
.ovm.err i { background: linear-gradient(90deg, color-mix(in srgb, var(--err) 60%, transparent), var(--err)); }
.ovc-items { display: flex; flex-direction: column; gap: 3px; padding-top: 8px; border-top: 1px dashed var(--border); font-size: 11.5px; color: var(--text-3); }
.ovc-items > div { display: flex; justify-content: space-between; gap: 8px; }
.ovc-items .num { color: var(--text-2); }
@media (max-width: 760px) { .ov-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------------------------------------------------------------- Sinner launch view (assets/launchhero.js)
   Logo = two layers: the dimmed original (base) + a liquid fill clipped by sinner-mask.webp (alpha x luminance of the
   logo, so only the silver strokes carry colour). --p (0..1) is set via CSSOM from the real launch progress. */
.hp-hero { margin: 2px 0 18px; }
.lh { --p: 0; position: relative; display: grid; justify-items: center; gap: 12px; padding: 26px 16px 16px; border: 1px solid var(--border); border-radius: 18px; overflow: hidden;
  background: radial-gradient(560px 380px at 50% 32%, rgba(124, 108, 240, 0.16), transparent 70%), var(--panel); animation: lh-enter 0.6s var(--ease) both; }
.lh.done { background: radial-gradient(560px 380px at 50% 32%, rgba(61, 220, 151, 0.13), transparent 70%), var(--panel); }
.lh-stage { position: relative; width: min(440px, 72vw); aspect-ratio: 1; }
.lh-logo { position: absolute; inset: 0; filter: drop-shadow(0 0 26px rgba(124, 108, 240, 0.26)); transition: filter 0.9s var(--ease); }
.lh-base, .lh-fill { position: absolute; inset: 0; }
.lh-base { background: url("sinner-logo.webp") center / contain no-repeat; filter: grayscale(1) brightness(0.4) contrast(1.2); opacity: 0.85; }
.lh-fill { -webkit-mask: url("sinner-mask.webp") center / contain no-repeat; mask: url("sinner-mask.webp") center / contain no-repeat; }
.lh-liquid { position: absolute; left: 0; right: 0; bottom: 0; height: 100%;
  transform: translateY(calc((1 - var(--p)) * (100% + 18px))); transition: transform 1.2s cubic-bezier(0.22, 0.8, 0.24, 1);
  background: linear-gradient(to bottom, #efeaff 0, #b9acff 3%, #9383fa 12%, #7c6cf0 32%, #5d4ddc 62%, #3d34b8 100%); }
.lh-done-layer { position: absolute; inset: 0; opacity: 0; transition: opacity 0.9s var(--ease);
  background: linear-gradient(to bottom, #e6fff4 0, #8af0c4 4%, #3ddc97 22%, #22b87c 60%, #13875b 100%); }
.lh.done .lh-done-layer { opacity: 1; }
.lh-wave { position: absolute; left: 0; top: -13px; width: 200%; height: 14px; background-repeat: repeat-x; background-size: 50% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'%3E%3Cpath d='M0 8 Q15 1 30 8 T60 8 T90 8 T120 8 V14 H0 Z' fill='%23efeaff'/%3E%3C/svg%3E");
  animation: lh-wave 3.4s linear infinite; }
.lh-wave.w2 { top: -10px; opacity: 0.45; animation-duration: 5.2s; animation-direction: reverse; }
.lh-surface { position: absolute; left: 0; right: 0; top: -6px; height: 26px; pointer-events: none;
  background: linear-gradient(90deg, transparent 0, rgba(255, 255, 255, 0.85) 50%, transparent 100%) -60% 0 / 40% 8px no-repeat, linear-gradient(to bottom, rgba(255, 255, 255, 0.5), transparent);
  animation: lh-shimmer 2.6s ease-in-out infinite; mix-blend-mode: screen; }
.lh.done .lh-wave, .lh.done .lh-surface { opacity: 0; transition: opacity 0.6s; }
.lh.done .lh-logo { filter: drop-shadow(0 0 34px rgba(61, 220, 151, 0.5)); animation: lh-pulse 1.3s var(--ease) 1; }
.lh.failed .lh-liquid { filter: grayscale(0.6) sepia(0.5) hue-rotate(-50deg) saturate(2.2) brightness(0.85); }
.lh.failed .lh-logo { filter: drop-shadow(0 0 26px rgba(255, 107, 122, 0.3)); }
.lh-burst { position: absolute; inset: 0; pointer-events: none; }
.lh-burst i { position: absolute; left: 50%; top: 50%; width: 42%; aspect-ratio: 1; border-radius: 50%; border: 2px solid var(--ok); opacity: 0; transform: translate(-50%, -50%) scale(0.2); }
.lh-burst.go i { animation: lh-burst 1.15s cubic-bezier(0.2, 0.7, 0.2, 1) forwards; }
.lh-burst.go i:nth-child(2) { animation-delay: 0.18s; border-color: rgba(165, 148, 255, 0.85); }
.lh-text { display: grid; justify-items: center; gap: 6px; width: min(760px, 100%); text-align: center; }
.lh-kicker { display: flex; align-items: baseline; gap: 10px; color: var(--text-3); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; }
.lh-pct { color: var(--accent); font-size: 16px; letter-spacing: 0; }
.lh.done .lh-pct { color: var(--ok); }
.lh.failed .lh-pct { color: var(--err); }
.lh-title { margin: 0; font-size: clamp(36px, 5.4vw, 60px); font-weight: 760; letter-spacing: -0.035em; line-height: 1.06; padding-bottom: 2px;
  background: linear-gradient(180deg, #ffffff 10%, #c8bdff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lh.done .lh-title { background-image: linear-gradient(180deg, #f0fff8 10%, #3ddc97); }
.lh.failed .lh-title { background-image: linear-gradient(180deg, #ffe6e9 10%, #ff6b7a); }
.lh-title.lh-swap { animation: lh-title 0.55s var(--ease) backwards; }
.lh-feed { list-style: none; margin: 4px 0 0; padding: 0; width: 100%; height: 96px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; overflow: hidden; }
.lh-act { display: flex; align-items: center; gap: 10px; max-width: 100%; min-height: 30px; font-size: 18px; font-weight: 500; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: opacity 0.45s var(--ease), transform 0.45s var(--ease), font-size 0.45s var(--ease); animation: lh-in 0.45s var(--ease) backwards; }
.lh-act::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.lh-act.ok::before { background: var(--ok); box-shadow: 0 0 10px var(--ok); }
.lh-act.warn::before { background: var(--warn); box-shadow: 0 0 10px var(--warn); }
.lh-act.err { color: var(--err); }
.lh-act.err::before { background: var(--err); box-shadow: 0 0 10px var(--err); }
.lh-act[data-age="1"] { opacity: 0.55; font-size: 15px; }
.lh-act[data-age="2"] { opacity: 0.26; font-size: 13px; }
.lh-act.gone { opacity: 0; transform: translateY(-14px); font-size: 12px; }
.lh-foot { display: flex; gap: 8px; margin-top: 2px; opacity: 0.8; }
.hp-hero.lh-leaving .lh { animation: lh-leave 0.5s var(--ease) forwards; }
@keyframes lh-enter { from { opacity: 0; transform: translateY(8px) scale(0.985); } to { opacity: 1; transform: none; } }
@keyframes lh-leave { to { opacity: 0; transform: scale(0.985); } }
@keyframes lh-wave { to { transform: translateX(-50%); } }
@keyframes lh-shimmer { 0% { background-position: -60% 0, 0 0; } 100% { background-position: 160% 0, 0 0; } }
@keyframes lh-burst { 0% { opacity: 0.95; transform: translate(-50%, -50%) scale(0.2); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(2.5); } }
@keyframes lh-pulse { 0% { filter: drop-shadow(0 0 0 rgba(61, 220, 151, 0)); } 40% { filter: drop-shadow(0 0 60px rgba(61, 220, 151, 0.85)); } 100% { filter: drop-shadow(0 0 34px rgba(61, 220, 151, 0.5)); } }
@keyframes lh-title { from { opacity: 0; transform: translateY(12px) scale(0.98); filter: blur(5px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes lh-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .lh, .lh *, .lh *::before, .lh *::after { animation: none !important; transition: none !important; }
}
/* launch view: a taller liquid edge so the wave reads at full logo size */
.lh-wave { top: -19px; height: 20px; }
.lh-wave.w2 { top: -15px; }
.lh-liquid { transform: translateY(calc((1 - var(--p)) * (100% + 24px))); }

/* HyperTrader anti-sniper: LaunchFlow editor (sellers -> sell % -> up to 5 buyers each) */
#as-flow { display: flex; flex-direction: column; gap: 12px; }
#as-flow .flow-stage { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 14px; background: rgba(255,255,255,0.02); box-shadow: inset 0 0 0 1px var(--border); }
.fs-h { display: flex; align-items: center; gap: 10px; }
.fs-n { font-weight: 680; font-size: 13px; }
.fs-delay { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-3); }
.fs-src { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; }
.fs-src > .dim { margin-right: 4px; text-transform: uppercase; font-size: 10.5px; letter-spacing: 0.05em; }
.fs-src .chip { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--border-2); background: transparent; color: var(--text-2); font-size: 12px; cursor: pointer; }
.fs-src .chip em { font-style: normal; color: var(--text-3); font-size: 11px; }
.fs-src .chip.on { color: var(--text); border-color: color-mix(in srgb, var(--accent) 55%, transparent); background: color-mix(in srgb, var(--accent) 14%, transparent); }
.fs-src .chip:disabled { cursor: default; opacity: 0.6; }
.fs-empty { font-size: 12px; }
.fg { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 12px; background: rgba(0,0,0,0.22); }
.fg-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12.5px; }
.fg-h b { font-weight: 650; }
.fg-sale { margin-left: auto; color: var(--text-2); }
.fg-sale b { color: var(--text); }
.fg-buys { display: flex; flex-direction: column; gap: 6px; padding-left: 8px; }
.fb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; }
.fb .fb-arrow { color: var(--text-3); }
.fb select { min-width: 150px; }
.fb .fb-sol b { color: var(--ok); }
.fb .fb-bal { margin-left: auto; font-size: 11.5px; display: inline-flex; align-items: center; gap: 4px; }
.fb.bad .fb-bal { color: var(--err); }
.fb-add { display: flex; align-items: center; gap: 10px; font-size: 12px; }

/* ---- Portfolio "By project" accounts + Withdraw flow (ui/assets/withdraw.js) ---- */
.aglyph.pfg { display: inline-flex; width: 15px; height: 15px; flex: none; vertical-align: -3px; }
.aglyph.pfg svg { width: 100%; height: 100%; }
.aglyph.pfg.tokg { align-items: center; justify-content: center; border-radius: 50%; font-size: 7.5px; font-weight: 700; color: var(--text); background: var(--accent-soft); border: 1px solid var(--accent-line); }
.strip .k .aglyph.pfg { width: 13px; height: 13px; margin-right: 1px; }
.chainb { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-2); white-space: nowrap; }
.chainb i { width: 7px; height: 7px; border-radius: 50%; background: var(--text-3); box-shadow: 0 0 0 2px rgba(255,255,255,0.04); }
.chainb.solana i { background: linear-gradient(135deg, #9945ff, #14f195); }
.chainb.base i { background: #2f6bff; }
.chainb.arbitrum i { background: #28a0f0; }
.tag.role-f { color: var(--cyan); border-color: rgba(69,212,230,0.25); background: rgba(69,212,230,0.07); }
.tag.role-d { color: var(--info); border-color: rgba(94,177,255,0.22); background: var(--info-soft); }
.acc-tbl td:first-child { display: flex; align-items: center; gap: 8px; }
.acc-tbl td:first-child .addr { font-size: 11px; opacity: 0.85; }
.acc-tbl tr.acct.off > td { opacity: 0.5; }
.acc-tbl tr.acct:hover > td { background: rgba(255,255,255,0.018); }
.acc-tbl .nc { font-size: 10px; color: var(--text-3); }
.acc-tbl .grp-row .tag { font-weight: 520; }
.wd-toks { display: inline-flex; gap: 5px; align-items: center; }
.tok-chip { font-size: 11px; padding: 1px 6px; border-radius: 5px; background: rgba(255,255,255,0.04); border: 1px solid var(--border); white-space: nowrap; }
.tok-chip .num { color: var(--text-2); }
.btn.sm.wd-btn { gap: 5px; }
.btn.sm.wd-btn .i { width: 13px; height: 13px; }
.btn.sm.wd-ico { width: 26px; padding: 0; justify-content: center; }
.btn.wd-btn[disabled] { opacity: 0.35; cursor: not-allowed; }
.wd .field > label .counter { font-variant-numeric: tabular-nums; }
.wd-from { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 9px; background: rgba(255,255,255,0.025); border: 1px solid var(--border); font-size: 12px; flex-wrap: wrap; }
.wd-assets { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.wd-a { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 9px; border: 1px solid var(--border); background: rgba(255,255,255,0.02); color: var(--text); cursor: pointer; text-align: left; transition: border-color 0.15s, background 0.15s; min-width: 0; }
.wd-a:hover { border-color: var(--border-3); }
.wd-a.on { border-color: var(--accent-line); background: var(--accent-soft); box-shadow: 0 0 0 1px var(--accent-line) inset; }
.wd-a[data-empty] { opacity: 0.5; }
.wd-a .aglyph.pfg { width: 20px; height: 20px; }
.wd-an { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.wd-an b { font-size: 12px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wd-an small { font-size: 10.5px; color: var(--text-3); }
.wd-amt { display: flex; align-items: center; gap: 6px; }
.wd-amt .input { flex: 1; min-width: 0; }
.wd-sym { font-size: 12px; color: var(--text-3); min-width: 34px; }
.wd-sum { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 11px; background: linear-gradient(180deg, rgba(165,148,255,0.08), rgba(165,148,255,0.02)); border: 1px solid var(--accent-line); }
.wd-sum .aglyph.pfg { width: 30px; height: 30px; }
.wd-big { font-size: 20px; font-weight: 640; letter-spacing: -0.01em; }
.wd-big small { font-size: 12px; color: var(--text-2); font-weight: 560; }
.wd-kv dd.wd-full { white-space: normal; word-break: break-all; font-size: 11.5px; }
.wd-kv dd.wd-dest { color: var(--text); background: rgba(255,255,255,0.035); border: 1px solid var(--border-2); border-radius: 6px; padding: 4px 7px; letter-spacing: 0.02em; }
.wd-kv dd.wd-wrap, .wd-res dd.wd-wrap { white-space: normal; }
.wd-res dd.err { color: var(--err); }
.acc-tbl td:first-child { display: table-cell; }
.acc-w { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.acc-w .addr { font-size: 11px; opacity: 0.85; }

/* a step that is both done and current (e.g. Overview after Set wallets) still shows its check: the base rule hides
   the path until the .done draw animation, which the active step never got */
.wf-step .wf-num .chk-svg path { animation: hp-check-draw var(--dur-3, 0.4s) var(--ease-out, ease-out) forwards; }

/* team table: "min X" under Receives is a button that sets the smallest % clearing the bridge minimum */
.min-btn { height: 22px; padding: 0 8px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--err) 45%, transparent); background: color-mix(in srgb, var(--err) 10%, transparent); color: var(--err); font-size: 11.5px; font-weight: 600; cursor: pointer; font-variant-numeric: tabular-nums; }
.min-btn:hover { background: color-mix(in srgb, var(--err) 18%, transparent); }
.tm-why { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--warn); }
.tm-why:empty { display: none; }
.fg-inc { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--warn); }

/* HyperTrader: live 1s mcap candles in place of the phase stepper once the token is live */
.hp-rail.live { padding: 0; }
.cndl { position: relative; height: 150px; border-radius: 16px; overflow: hidden; background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.01)); box-shadow: inset 0 0 0 1px var(--border); }
.cndl canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.cndl-hud { position: absolute; left: 14px; top: 10px; display: flex; align-items: baseline; gap: 10px; pointer-events: none; }
.cndl-v { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--text); }
.cndl-d { font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.cndl-d.up { color: var(--ok); } .cndl-d.dn { color: var(--err); }
.cndl-k { font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
.cndl-wait { position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; color: var(--text-3); }
.hp-rail.live { display: block; width: 100%; }
.hp-rail.live .cndl { width: 100%; }

/* new-project dialog: wallets choice for "Start from" a copy */
.np-wallets { display: flex; flex-direction: column; gap: 6px; }
.np-lbl { font-size: 12px; font-weight: 550; color: var(--text-2); }
.np-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.np-choice > button { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px 12px; border-radius: 12px; text-align: left; cursor: pointer;
  background: rgba(255,255,255,0.02); border: 1px solid var(--border-2); color: var(--text-2); font: inherit; }
.np-choice > button b { font-size: 13px; font-weight: 650; color: var(--text); }
.np-choice > button span { font-size: 11.5px; line-height: 1.4; color: var(--text-3); }
.np-choice > button:hover { border-color: color-mix(in srgb, var(--accent) 40%, transparent); }
.np-choice > button.on { border-color: color-mix(in srgb, var(--accent) 70%, transparent); background: color-mix(in srgb, var(--accent) 12%, transparent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent) inset; }
.np-choice > button.on b { color: var(--accent); }
@media (max-width: 560px) { .np-choice { grid-template-columns: 1fr; } }

/* ==========================================================================================================
   HyperLaunch design system (hl-*.js). Calm navy fintech surfaces, one indigo accent, generous spacing.
   Everything is scoped under .hl; inside it the legacy tokens (--panel, --border, --accent…) are re-pointed at the
   navy palette so hosted legacy editors (token form, wallets flow, anti-sniper) inherit the same look.
   ========================================================================================================== */
.hl {
  --hl-bg: #0b0e16;
  --hl-s0: #0d1019;          /* inset / wells */
  --hl-s1: #10131d;          /* panels */
  --hl-s2: #141826;          /* cards */
  --hl-s3: #1a1f30;          /* raised / hover */
  --hl-sel: #1a1f38;         /* selected card */
  --hl-line: #1f2433;
  --hl-line2: #2a3044;
  --hl-line3: #394059;
  --hl-ink: #e9ebf3;
  --hl-ink2: #a3a9bd;
  --hl-ink3: #707790;
  --hl-ink4: #4d5369;
  --hl-acc: #8d91ff;
  --hl-acc2: #7479f5;
  --hl-acc-ink: #0c0e1d;
  --hl-acc-soft: rgba(141, 145, 255, 0.12);
  --hl-acc-line: rgba(141, 145, 255, 0.62);
  --hl-acc-glow: 0 0 0 1px rgba(141, 145, 255, 0.28), 0 10px 34px -14px rgba(120, 126, 255, 0.55);
  --hl-ok: #6fdca6; --hl-ok-bg: #12261f; --hl-ok-line: rgba(111, 220, 166, 0.18);
  --hl-warn: #f2c270; --hl-warn-bg: #2a2317; --hl-err: #ff8391; --hl-err-bg: #2c1820; --hl-info: #9fb4ff; --hl-info-bg: #161c33;
  --hl-r: 14px; --hl-r-md: 11px; --hl-r-sm: 8px;
  --hl-cap: 10.5px;
  /* legacy tokens re-pointed (hosted editors) */
  --panel: var(--hl-s1); --panel-2: var(--hl-s2); --panel-solid: var(--hl-s1); --input: var(--hl-s0); --hover: rgba(141, 145, 255, 0.045);
  --border: var(--hl-line); --border-2: var(--hl-line2); --border-3: var(--hl-line3);
  --text: var(--hl-ink); --text-2: var(--hl-ink2); --text-3: var(--hl-ink3); --text-4: var(--hl-ink4);
  --accent: var(--hl-acc); --accent-2: var(--hl-acc2); --accent-soft: var(--hl-acc-soft); --accent-line: var(--hl-acc-line);
  max-width: 1400px; margin: 0 auto; color: var(--hl-ink);
}
.content:has(.hl) { background: radial-gradient(1200px 520px at 30% -10%, rgba(116, 121, 245, 0.07), transparent 60%), #0a0d15; }
.page:has(.hl) { max-width: 1480px; }
.hl .num { font-variant-numeric: tabular-nums; }

/* ---- header ---- */
.hl-head { display: flex; align-items: center; gap: 14px; padding: 2px 2px 18px; }
.hl-back { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; color: var(--hl-ink3); border: 1px solid var(--hl-line); background: var(--hl-s1); transition: color .15s, border-color .15s; }
.hl-back:hover { color: var(--hl-ink); border-color: var(--hl-line2); }
.hl-tok { width: 40px; height: 40px; border-radius: 12px; object-fit: cover; flex: none; display: grid; place-items: center; font-weight: 700; font-size: 14px; color: #0c0e1d; background: linear-gradient(135deg, #a7abff, #6d72f6); }
.hl-title { display: flex; align-items: center; gap: 10px; }
.hl-title h2 { margin: 0; font-size: 19px; font-weight: 640; letter-spacing: -0.02em; }
.hl-sym { font-family: var(--mono); font-size: 11.5px; color: var(--hl-ink3); letter-spacing: .04em; }
.hl-subt { display: flex; align-items: center; gap: 8px; margin-top: 3px; font-size: 12px; color: var(--hl-ink3); }
.hl-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--hl-ink4); }
.hl-stream { display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 11px; border-radius: 99px; border: 1px solid var(--hl-line); background: var(--hl-s1); font-size: 11.5px; color: var(--hl-ink3); }
.hl-stream i { width: 6px; height: 6px; border-radius: 50%; background: var(--hl-ink4); }
.hl-stream.live i { background: var(--hl-ok); box-shadow: 0 0 0 3px rgba(111, 220, 166, .14); }
.hl-stream.down i { background: var(--hl-warn); }

/* ---- top tabs ---- */
.hl-tabs { display: flex; gap: 6px; padding: 6px; margin-bottom: 18px; border: 1px solid var(--hl-line); border-radius: var(--hl-r); background: rgba(16, 19, 29, .72); backdrop-filter: blur(8px); position: sticky; top: -22px; z-index: 5; }
.hl-tab { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 18px; border: 0; border-radius: 9px; background: none; cursor: pointer;
  font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--hl-ink3); transition: color .15s, background .15s; }
.hl-tab:hover:not(:disabled) { color: var(--hl-ink2); background: rgba(255, 255, 255, .025); }
.hl-tab.on { color: var(--hl-ink); background: #232945; box-shadow: inset 0 0 0 1px rgba(141, 145, 255, .16); }
.hl-tab:disabled { opacity: .4; cursor: not-allowed; }
.hl-tab-ok { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: rgba(111, 220, 166, .14); color: var(--hl-ok); }
.hl-tab-ok .i { width: 10px; height: 10px; }
.hl-tab-live { width: 7px; height: 7px; border-radius: 50%; background: var(--hl-ok); box-shadow: 0 0 0 3px rgba(111, 220, 166, .15); animation: hlpulse 2s infinite; }
@keyframes hlpulse { 50% { box-shadow: 0 0 0 6px rgba(111, 220, 166, 0); } }

/* ---- layout: content | plan ---- */
.hl-grid { display: grid; grid-template-columns: minmax(0, 1fr) 328px; gap: 20px; align-items: start; }
.hl-grid.wide { grid-template-columns: minmax(0, 1fr); }
.hl-grid.wide .hl-plan { display: none; }
.hl-card { border: 1px solid var(--hl-line); border-radius: var(--hl-r); background: var(--hl-s1); overflow: hidden; }
.hl-grid.wide .hl-card { background: none; border: 0; overflow: visible; }
.hl-content { padding: 26px 30px 34px; min-height: 420px; }
.hl-grid.wide .hl-content { padding: 0; }
.hl-content.t-token, .hl-content.t-funding { padding: 22px 24px 28px; }
@media (max-width: 1180px) { .hl-grid { grid-template-columns: minmax(0, 1fr); } .hl-plan { position: static !important; } }

/* ---- numbered sub-steps ---- */
.hl-steps { display: grid; gap: 6px; padding: 6px; margin: 0; border-bottom: 1px solid var(--hl-line); background: var(--hl-s0); }
.hl-steps.c2 { grid-template-columns: repeat(2, 1fr); } .hl-steps.c3 { grid-template-columns: repeat(3, 1fr); } .hl-steps.c4 { grid-template-columns: repeat(4, 1fr); }
.hl-stepb { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; height: 44px; border: 0; border-radius: 10px; background: none; cursor: pointer; color: var(--hl-ink3); font-size: 13px; transition: background .15s, color .15s; }
.hl-stepb .n { font-family: var(--mono); font-size: 10.5px; color: var(--hl-ink4); letter-spacing: .04em; }
.hl-stepb:hover:not(:disabled) { color: var(--hl-ink2); background: rgba(255, 255, 255, .02); }
.hl-stepb.on { background: #20263f; color: var(--hl-ink); box-shadow: inset 0 0 0 1px rgba(141, 145, 255, .14); }
.hl-stepb.on .n { color: var(--hl-acc); }
.hl-stepb .d { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: rgba(111, 220, 166, .12); color: var(--hl-ok); }
.hl-stepb .d .i { width: 10px; height: 10px; }
.hl-stepb .d.w { width: 7px; height: 7px; background: var(--hl-warn); }
.hl-stepb:disabled { opacity: .45; cursor: not-allowed; }

/* ---- sections ---- */
.hl-stack { display: flex; flex-direction: column; gap: 26px; }
.hl-sec { display: flex; flex-direction: column; gap: 14px; }
.hl-sec-h { display: flex; align-items: flex-start; gap: 12px; }
.hl-q { margin: 0; font-size: 15.5px; font-weight: 620; letter-spacing: -0.012em; color: var(--hl-ink); }
.hl-lbl { margin: 0; font-size: 13.5px; font-weight: 620; color: var(--hl-ink); letter-spacing: -0.005em; }
.hl-lbl span { font-weight: 450; color: var(--hl-ink3); margin-left: 6px; }
.hl-sec.lbl .hl-sec-h { flex-direction: column; gap: 4px; }
.hl-sub { margin: 5px 0 0; font-size: 12.5px; color: var(--hl-ink3); line-height: 1.5; max-width: 640px; }
.hl-sec.lbl .hl-sub { margin: 0; }
.hl-div { border: 0; height: 1px; background: var(--hl-line); margin: 2px 0; }
.hl-hint { margin: 0; font-size: 12px; color: var(--hl-ink3); }
.hl-inline { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.hl-note { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-note b { font-size: 13.5px; font-weight: 620; }
.hl-note span { font-size: 12.5px; color: var(--hl-ink3); line-height: 1.55; }
.hl-note.warn { border-color: rgba(242, 194, 112, .22); background: var(--hl-warn-bg); } .hl-note.warn b { color: var(--hl-warn); }

/* ---- option cards ---- */
.hl-opts { display: grid; gap: 10px; }
.hl-opts.c2 { grid-template-columns: repeat(2, 1fr); } .hl-opts.c3 { grid-template-columns: repeat(3, 1fr); } .hl-opts.c4 { grid-template-columns: repeat(4, 1fr); }
.hl-opt { display: grid; grid-template-columns: auto auto; justify-content: center; align-items: center; column-gap: 10px; row-gap: 5px; min-height: 84px; padding: 16px 14px;
  border: 1px solid var(--hl-line2); border-radius: var(--hl-r-md); background: var(--hl-s2); color: var(--hl-ink); cursor: pointer; text-align: center; transition: border-color .16s, background .16s, box-shadow .2s, transform .12s; }
.hl-opt:hover:not(:disabled) { border-color: var(--hl-line3); background: var(--hl-s3); }
.hl-opt:active:not(:disabled) { transform: translateY(1px); }
.hl-opt.on { border-color: var(--hl-acc-line); background: var(--hl-sel); box-shadow: var(--hl-acc-glow); }
.hl-opt:disabled { opacity: .45; cursor: not-allowed; }
.hl-opt-ico { grid-row: 1; color: var(--hl-ink2); display: grid; place-items: center; }
.hl-opt.on .hl-opt-ico { color: var(--hl-acc); }
.hl-opt-t { grid-row: 1; font-size: 13.5px; font-weight: 620; letter-spacing: -0.005em; display: inline-flex; align-items: center; gap: 8px; }
.hl-opt-s { grid-column: 1 / -1; font-size: 12px; color: var(--hl-ink3); }
.hl-opt.on .hl-opt-s { color: var(--hl-ink2); }
.hl-gl { width: 18px; height: 18px; flex: none; }
.hl-gl .gl-fill { fill: currentColor; fill-opacity: .22; }
.hl-badge { font-style: normal; font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 99px; background: var(--hl-acc-soft); color: var(--hl-acc); letter-spacing: .02em; }

/* ---- choice rows (buying waves) ---- */
.hl-rows { display: grid; gap: 10px; padding: 8px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-rows.c2 { grid-template-columns: repeat(2, 1fr); } .hl-rows.c3 { grid-template-columns: repeat(3, 1fr); }
.hl-row { position: relative; display: flex; align-items: center; gap: 16px; min-height: 86px; padding: 18px 22px; border: 1px solid transparent; border-radius: 10px; background: none; color: var(--hl-ink); cursor: pointer; text-align: left; transition: background .15s, border-color .15s, box-shadow .2s; }
.hl-row:hover:not(:disabled) { background: rgba(255, 255, 255, .025); }
.hl-row.on { background: #20263f; border-color: var(--hl-acc-line); box-shadow: var(--hl-acc-glow); }
.hl-row:disabled { opacity: .45; cursor: not-allowed; }
.hl-row-gl { color: var(--hl-ink2); display: grid; place-items: center; width: 34px; }
.hl-row-gl .hl-gl { width: 28px; height: 28px; stroke-width: 1.4; }
.hl-row.on .hl-row-gl { color: var(--hl-acc); }
.hl-row-txt { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hl-row-txt b { font-size: 14px; font-weight: 620; }
.hl-row-txt span { font-size: 12.5px; color: var(--hl-ink3); }
.hl-row.on .hl-row-txt span { color: var(--hl-ink2); }
.hl-row-chk { position: absolute; top: 12px; right: 14px; color: var(--hl-acc); opacity: 0; transition: opacity .15s; }
.hl-row.on .hl-row-chk { opacity: 1; }

/* ---- segmented ---- */
.hl-seg { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--hl-line2); border-radius: 11px; background: var(--hl-s0); }
.hl-seg button { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-width: 96px; height: 38px; padding: 0 18px; border: 0; border-radius: 8px; background: none; color: var(--hl-ink3); font-size: 13px; font-weight: 520; cursor: pointer; transition: background .15s, color .15s; }
.hl-seg button:hover:not(:disabled) { color: var(--hl-ink2); }
.hl-seg button.on { background: #232945; color: var(--hl-ink); box-shadow: inset 0 0 0 1px rgba(141, 145, 255, .14); }
.hl-seg button:disabled { opacity: .4; cursor: not-allowed; }
.hl-seg button small { font-size: 11px; font-weight: 450; color: var(--hl-ink3); }
.hl-seg.lg button { height: 52px; min-width: 150px; }
.hl-seg.sm { flex-wrap: wrap; } .hl-seg.sm button { min-width: 0; height: 30px; padding: 0 11px; font-size: 12px; }

/* ---- chips + stepper ---- */
.hl-chips { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hl-chip { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 15px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s2); color: var(--hl-ink2); font-size: 13px; font-weight: 540; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.hl-chip small { font-size: 11px; color: var(--hl-ink3); font-weight: 450; }
.hl-chip:hover:not(:disabled) { border-color: var(--hl-line3); color: var(--hl-ink); }
.hl-chip.on { border-color: var(--hl-acc-line); background: var(--hl-sel); color: var(--hl-ink); box-shadow: var(--hl-acc-glow); }
.hl-chip-custom { padding: 0 6px 0 0; gap: 0; cursor: default; }
.hl-chip-custom > button { height: 34px; padding: 0 12px 0 14px; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.hl-chip-in { width: 64px; height: 26px; border: 1px solid var(--hl-line2); border-radius: 7px; background: var(--hl-s0); color: var(--hl-ink); font: 600 12.5px var(--font); text-align: right; padding: 0 8px; outline: none; }
.hl-chip-in:focus { border-color: var(--hl-acc-line); }
.hl-chip-in.bad { border-color: var(--hl-err); }
.hl-chip-custom i { font-style: normal; font-size: 12px; color: var(--hl-ink3); margin-left: 5px; }
.hl-stepper { display: inline-flex; align-items: center; height: 40px; border: 1px solid var(--hl-line2); border-radius: 11px; background: var(--hl-s0); overflow: hidden; }
.hl-stepper button { width: 38px; height: 100%; border: 0; background: none; color: var(--hl-ink2); cursor: pointer; display: grid; place-items: center; }
.hl-stepper button:hover:not(:disabled) { background: var(--hl-s3); color: var(--hl-ink); }
.hl-stepper button:disabled { opacity: .35; cursor: not-allowed; }
.hl-stepper input { width: 52px; height: 100%; border: 0; border-left: 1px solid var(--hl-line); border-right: 1px solid var(--hl-line); background: none; color: var(--hl-ink); text-align: center; font: 640 16px var(--font); outline: none; }
.hl-stepper input.bad { color: var(--hl-err); }

/* ---- calc strip + per-wallet bars ---- */
.hl-calc { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-calc > div { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; }
.hl-calc > div + div { border-left: 1px solid var(--hl-line); }
.hl-calc span { font-size: 12px; color: var(--hl-ink3); }
.hl-calc b { font-size: 20px; font-weight: 560; letter-spacing: -0.02em; }
.hl-calc b small { font-size: 11.5px; color: var(--hl-ink3); font-weight: 500; }
.hl-calc em { font-style: normal; font-size: 11.5px; color: var(--hl-ink4); }
.hl-bars { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 28px; padding-top: 4px; }
.hl-bar { display: grid; grid-template-columns: 76px 1fr 56px; align-items: center; gap: 12px; font-size: 12px; color: var(--hl-ink3); }
.hl-bar b { text-align: right; color: var(--hl-ink2); font-weight: 560; }
.hl-bar-t { display: block; height: 6px; border-radius: 99px; background: var(--hl-s3); overflow: hidden; }
.hl-bar-f { display: block; height: 100%; width: var(--w, 0%); border-radius: 99px; background: linear-gradient(90deg, #6d72f6, #a3a7ff); transition: width .35s var(--ease); }

/* ---- Custom disclosure ---- */
.hl-custom { border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-custom > summary { display: flex; align-items: center; gap: 14px; padding: 18px 20px; cursor: pointer; list-style: none; }
.hl-custom > summary::-webkit-details-marker { display: none; }
.hl-custom > summary b { display: block; font-size: 13.5px; font-weight: 620; }
.hl-custom > summary span:not(.hl-custom-gl):not(.hl-custom-chev) span { display: block; margin-top: 3px; font-size: 12px; color: var(--hl-ink3); }
.hl-custom-gl { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--hl-s3); color: var(--hl-ink2); }
.hl-custom-chev { color: var(--hl-ink3); transition: transform .2s; }
.hl-custom[open] > summary { border-bottom: 1px solid var(--hl-line); }
.hl-custom[open] .hl-custom-chev { transform: rotate(180deg); }
.hl-custom-b { padding: 18px 20px 20px; }
.hl-custom-b .as-panel { border: 0; background: none; }
.hl .as-sim, .hl .as-panel > .panel-h { display: none; }   /* rehearsal runs inside Launch; no developer buttons */

/* ---- plan panel ---- */
.hl-plan { position: sticky; top: 64px; border: 1px solid var(--hl-line); border-radius: var(--hl-r); background: var(--hl-s1); overflow: hidden; }
.hl-plan-in { padding: 22px 22px 6px; display: flex; flex-direction: column; gap: 18px; }
.hl-plan-h { display: flex; align-items: center; justify-content: space-between; }
.hl-cap { font-family: var(--mono); font-size: var(--hl-cap); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--hl-ink3); }
.hl-mode { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px 0 12px; border: 0; border-radius: 8px; background: #262c4b; color: var(--hl-ink); font-size: 12px; font-weight: 640; cursor: pointer; }
.hl-mode:hover { background: #2d3458; }
.hl-mode .i { width: 12px; height: 12px; color: var(--hl-ink2); }
.hl-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hl-tile { display: flex; flex-direction: column; gap: 8px; padding: 16px 16px 14px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r-md); }
.hl-tile .k { font-size: 12.5px; color: var(--hl-ink2); }
.hl-tile .v { font-size: 30px; font-weight: 400; letter-spacing: -0.03em; line-height: 1; color: var(--hl-ink); }
.hl-tile .v small { font-size: 13px; color: var(--hl-acc); margin-left: 3px; font-weight: 500; letter-spacing: 0; }
.hl-kv { display: grid; grid-template-columns: auto 1fr; gap: 14px 12px; margin: 0; font-size: 12.5px; }
.hl-kv dt { color: var(--hl-ink3); }
.hl-kv dd { margin: 0; text-align: right; font-weight: 600; color: var(--hl-ink); }
.hl-muted { color: var(--hl-ink4); font-weight: 500; }
.hl-route { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: -4px; padding: 0; border: 0; background: none; font-size: 12.5px; cursor: pointer; color: var(--hl-ink3); }
.hl-route .v { display: inline-flex; align-items: center; gap: 5px; color: var(--hl-ink); font-weight: 600; padding: 3px 4px 3px 8px; border-radius: 6px; border: 1px dashed var(--hl-line3); }
.hl-route:hover .v, .hl-route.open .v { border-color: var(--hl-acc-line); }
.hl-route .i { width: 12px; height: 12px; color: var(--hl-ink3); }
.hl-route-pick { margin-top: -8px; padding: 10px; border: 1px solid var(--hl-line); border-radius: 10px; background: var(--hl-s0); }
.hl-route-pick p { margin: 8px 2px 0; font-size: 11.5px; color: var(--hl-ink3); line-height: 1.45; }
.hl-sep { height: 1px; background: var(--hl-line); margin: 0 -22px; }
.hl-total { display: flex; align-items: baseline; justify-content: space-between; }
.hl-total span { font-size: 12.5px; color: var(--hl-ink2); }
.hl-total b { font-size: 24px; font-weight: 520; letter-spacing: -0.02em; color: var(--hl-acc); }
.hl-total b small { font-size: 11.5px; margin-left: 4px; font-weight: 600; color: var(--hl-acc); opacity: .8; }
.hl-total-sub { margin-top: -12px; text-align: right; font-size: 11.5px; color: var(--hl-ink3); }
.hl-banner { display: flex; align-items: center; gap: 9px; padding: 12px 14px; border-radius: 9px; font-size: 12.5px; font-weight: 520; }
.hl-banner .i { flex: none; }
.hl-banner.ok { background: var(--hl-ok-bg); color: var(--hl-ok); box-shadow: inset 0 0 0 1px var(--hl-ok-line); }
.hl-banner.warn { background: var(--hl-warn-bg); color: var(--hl-warn); }
.hl-banner.err { background: var(--hl-err-bg); color: var(--hl-err); }
.hl-banner.info { background: var(--hl-info-bg); color: var(--hl-info); }
.hl-more { margin: 0 -22px; border-top: 1px solid var(--hl-line); }
.hl-more > summary { display: flex; align-items: center; justify-content: space-between; padding: 15px 22px; font-size: 12.5px; color: var(--hl-ink2); cursor: pointer; list-style: none; }
.hl-more > summary::-webkit-details-marker { display: none; }
.hl-more > summary .i { width: 12px; height: 12px; transition: transform .2s; }
.hl-more[open] > summary .i { transform: rotate(180deg); }
.hl-more .hl-kv { padding: 0 22px 12px; font-size: 12px; } .hl-more .hl-kv dd { font-weight: 560; color: var(--hl-ink2); }
.hl-link { display: inline-flex; align-items: center; gap: 6px; margin: 0 22px 16px; padding: 0; border: 0; background: none; color: var(--hl-acc); font-size: 12px; cursor: pointer; }
.hl-plan-f { padding: 16px 22px 18px; border-top: 1px solid var(--hl-line); background: rgba(13, 16, 25, .6); }
.hl-cta { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 46px; border: 0; border-radius: 10px; background: var(--hl-acc); color: var(--hl-acc-ink); font-size: 14px; font-weight: 640; letter-spacing: -0.005em; cursor: pointer; box-shadow: 0 10px 30px -12px rgba(141, 145, 255, .7); transition: background .15s, transform .12s, box-shadow .2s; }
.hl-cta:hover:not(:disabled) { background: #9da1ff; box-shadow: 0 12px 36px -12px rgba(141, 145, 255, .85); }
.hl-cta:active:not(:disabled) { transform: translateY(1px); }
.hl-cta:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.hl-cta .arr { font-size: 15px; margin-left: 2px; }
.hl-cta.go { background: linear-gradient(180deg, #9296ff, #7479f5); color: #fff; }
.hl-cta.ghost { background: var(--hl-s3); color: var(--hl-ink2); box-shadow: none; }
.hl-foot { margin: 10px 0 0; text-align: center; font-size: 11px; color: var(--hl-ink4); }
.hl-confirm .hl-kv { font-size: 13px; }

/* ---- launch pre-stage progress (plan panel) ---- */
.hl-lp { list-style: none; margin: 0; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; border-radius: 10px; background: var(--hl-s0); border: 1px solid var(--hl-line); }
.hl-lp li { display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 10px; font-size: 12.5px; color: var(--hl-ink4); }
.hl-lp li.run { color: var(--hl-ink); } .hl-lp li.done { color: var(--hl-ok); } .hl-lp li.fail { color: var(--hl-err); }
.hl-lp-d { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--hl-line2); }
.hl-lp li.done .hl-lp-d { border-color: transparent; background: rgba(111, 220, 166, .14); }
.hl-lp li.fail .hl-lp-d { border-color: transparent; background: rgba(255, 131, 145, .14); }
.hl-lp li.run .hl-lp-d { border-color: transparent; }
.hl-lp em { grid-column: 2; font-style: normal; font-size: 11.5px; color: var(--hl-ink3); }
.hl-det-row { display: flex; gap: 10px; align-items: baseline; font-size: 12.5px; }

/* ---- legacy bodies hosted in the shell ---- */
.hl-legacy .ph-inner { padding: 0; }
.hl .wf-wrap, .hl .wf { max-width: none; }
.hl .mode-cards { margin: 8px 0; }
@media (max-width: 900px) { .hl-opts.c3, .hl-rows.c2, .hl-calc, .hl-bars { grid-template-columns: 1fr; } .hl-calc > div + div { border-left: 0; border-top: 1px solid var(--hl-line); } .hl-content { padding: 20px 16px; } .hl-tabs { overflow-x: auto; } }
.hp-rail:empty, #hp-deg:empty { display: none; }
.hl-rows.c2 > .hl-row:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 64px; }
.hl-sec > .hl-seg, .hl-sec > .hl-chips, .hl-sec > .hl-stepper { align-self: flex-start; }
.hl-row-gl { width: 46px; height: 46px; flex: none; border-radius: 12px; background: var(--hl-s2); border: 1px solid var(--hl-line); }
.hl-row-gl .hl-gl { width: 24px; height: 24px; }
.hl-row.on .hl-row-gl { background: rgba(141, 145, 255, .1); border-color: rgba(141, 145, 255, .28); }
.hl-rows.c2 > .hl-row:last-child:nth-child(odd) .hl-row-gl { width: 38px; height: 38px; }

/* ==== HyperLaunch · Launchpad & token (phase 2, hl-sec-token.js + hl-token-*.js) — prefix .hlt- ==== */
.hlt-region { display: contents; }
.hlt-gl { width: 18px; height: 18px; flex: none; }
.hlt-fine { margin: 0; font-size: 11.5px; color: var(--hl-ink4); line-height: 1.5; }
.hlt-hint { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; color: var(--hl-ink3); line-height: 1.5; }
.hlt-hint b { color: var(--hl-ink); font-weight: 620; }
.hlt-hint.warn { color: var(--hl-warn); }
.hlt-tag { display: inline-flex; align-items: center; gap: 4px; font-style: normal; font-size: 10px; font-weight: 640; letter-spacing: .03em; padding: 2px 7px; border-radius: 99px; background: var(--hl-s3); color: var(--hl-ink2); white-space: nowrap; }
.hlt-tag.acc { background: var(--hl-acc-soft); color: var(--hl-acc); }
.hlt-tag.ok { background: rgba(111, 220, 166, .12); color: var(--hl-ok); }
.hlt-tag .i { width: 11px; height: 11px; }

/* venue monogram */
.hlt-mark { --vc: #8d91ff; display: inline-grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 11px; font: 700 14px/1 var(--font); letter-spacing: -.02em; color: #0b0d16;
  background: radial-gradient(120% 120% at 20% 10%, color-mix(in srgb, var(--vc) 100%, #fff 35%), var(--vc) 55%, color-mix(in srgb, var(--vc) 70%, #000 30%));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 6px 18px -8px var(--vc); }
.hlt-mark.xs { width: 16px; height: 16px; border-radius: 5px; font-size: 8.5px; box-shadow: none; }
.hlt-mark.lg { width: 46px; height: 46px; border-radius: 13px; font-size: 16px; }
.hlt-mark.v-pump { --vc: #6ee7a8; } .hlt-mark.v-bonk { --vc: #f59e0b; } .hlt-mark.v-launchlab { --vc: #6c8cff; } .hlt-mark.v-moonlite { --vc: #a594ff; }
.hlt-mark.v-meteora-dbc { --vc: #f472b6; } .hlt-mark.v-bags { --vc: #34d399; } .hlt-mark.v-jup-studio { --vc: #45d4e6; } .hlt-mark.v-moonit { --vc: #facc15; }
.hlt-mark.v-heaven { --vc: #e5e7eb; } .hlt-mark.v-boop { --vc: #fb7185; } .hlt-mark.v-none { --vc: #5b6178; }
.hlt-mark { position: relative; overflow: hidden; }
.hlt-mark.logo { background: #f4f5f8 !important; color: transparent; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); }
.hlt-mark-img { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); object-fit: contain; border-radius: inherit; }
.hlt-mark.xs .hlt-mark-img { inset: 1.5px; width: calc(100% - 3px); height: calc(100% - 3px); }


/* venue cards */
.hlt-venues { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.hlt-venue { position: relative; display: flex; flex-direction: column; gap: 10px; min-height: 138px; padding: 16px 16px 14px; text-align: left; border: 1px solid var(--hl-line2); border-radius: var(--hl-r-md);
  background: linear-gradient(180deg, var(--hl-s2), var(--hl-s1)); color: var(--hl-ink); cursor: pointer; transition: border-color .16s, background .16s, box-shadow .2s, transform .12s; }
.hlt-venue:hover:not(:disabled) { border-color: var(--hl-line3); background: var(--hl-s3); }
.hlt-venue:active:not(:disabled) { transform: translateY(1px); }
.hlt-venue.on { border-color: var(--hl-acc-line); background: linear-gradient(180deg, #232a4a, var(--hl-sel)); box-shadow: var(--hl-acc-glow); }
.hlt-venue:disabled { opacity: .5; cursor: not-allowed; }
.hlt-venue-top { display: flex; align-items: center; gap: 11px; }
.hlt-venue-n { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.hlt-venue-n b { font-size: 14px; font-weight: 640; letter-spacing: -.01em; }
.hlt-venue-chk { margin-left: auto; align-self: flex-start; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--hl-acc); color: var(--hl-acc-ink); opacity: 0; transform: scale(.6); transition: opacity .15s, transform .2s; }
.hlt-venue-chk .i { width: 11px; height: 11px; }
.hlt-venue.on .hlt-venue-chk { opacity: 1; transform: none; }
.hlt-venue-s { font-size: 12.5px; color: var(--hl-ink3); line-height: 1.45; }
.hlt-venue.on .hlt-venue-s { color: var(--hl-ink2); }
.hlt-venue-f { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--hl-line); font-family: var(--mono); font-size: 10.5px; letter-spacing: .02em; color: var(--hl-ink4); }
.hlt-venue.on .hlt-venue-f { color: var(--hl-ink3); }
.hlt-venue.sk { cursor: default; gap: 12px; } .hlt-venue.sk .skel { height: 14px; } .hlt-venue.sk .skel + .skel { width: 70%; }

/* buttons + footer */
.hlt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 38px; padding: 0 16px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s2); color: var(--hl-ink); font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s, box-shadow .2s, transform .12s; }
.hlt-btn:hover:not(:disabled) { border-color: var(--hl-line3); background: var(--hl-s3); }
.hlt-btn:active:not(:disabled) { transform: translateY(1px); }
.hlt-btn:disabled { opacity: .45; cursor: not-allowed; }
.hlt-btn.pri { border-color: transparent; background: var(--hl-acc); color: var(--hl-acc-ink); box-shadow: 0 8px 24px -12px rgba(141, 145, 255, .8); }
.hlt-btn.pri:hover:not(:disabled) { background: #9da1ff; }
.hlt-btn.sm { height: 30px; padding: 0 11px; font-size: 12px; border-radius: 8px; }
.hlt-btn.lg { height: 44px; padding: 0 22px; font-size: 13.5px; }
.hlt-btn .arr { font-size: 14px; margin-left: 1px; }
.hlt-btn .i { width: 14px; height: 14px; }
.hlt-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 2px; padding: 14px 14px 14px 18px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hlt-foot.plain { padding: 0; border: 0; background: none; }
.hlt-foot-a { display: flex; align-items: center; gap: 8px; flex: none; }
.hlt-status { display: flex; align-items: center; gap: 12px; min-width: 0; }
.hlt-status > i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--hl-ink4); box-shadow: 0 0 0 4px rgba(255, 255, 255, .04); }
.hlt-status > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hlt-status b { font-size: 13px; font-weight: 620; }
.hlt-status span { font-size: 12px; color: var(--hl-ink3); line-height: 1.4; }
.hlt-status.ok > i { background: var(--hl-ok); box-shadow: 0 0 0 4px rgba(111, 220, 166, .14); } .hlt-status.ok b { color: var(--hl-ok); }
.hlt-status.saved > i { background: var(--hl-acc); box-shadow: 0 0 0 4px rgba(141, 145, 255, .16); }
.hlt-status.warn > i { background: var(--hl-warn); box-shadow: 0 0 0 4px rgba(242, 194, 112, .14); } .hlt-status.warn b { color: var(--hl-warn); }
.hlt-status.busy > i { background: var(--hl-acc); animation: hlpulse 1.4s infinite; }
.hlt-status.lock .i { color: var(--hl-ink3); flex: none; }

/* existing token: CA entry + detection */
.hlt-ca { display: flex; align-items: center; gap: 10px; height: 56px; padding: 0 8px 0 16px; border: 1px solid var(--hl-line2); border-radius: 12px; background: var(--hl-s0); transition: border-color .15s, box-shadow .2s; }
.hlt-ca:focus-within { border-color: var(--hl-acc-line); box-shadow: 0 0 0 4px rgba(141, 145, 255, .1); }
.hlt-ca.bad { border-color: rgba(255, 131, 145, .55); } .hlt-ca.ok { border-color: rgba(111, 220, 166, .45); }
.hlt-ca-ico { color: var(--hl-ink3); display: grid; }
.hlt-ca-in { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: none; color: var(--hl-ink); font: 500 15px var(--mono); letter-spacing: .01em; }
.hlt-ca-in::placeholder { color: var(--hl-ink4); }
.hlt-ca-paste, .hlt-ca-x { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s2); color: var(--hl-ink2); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.hlt-ca-x { width: 38px; padding: 0; justify-content: center; }
.hlt-ca-paste:hover, .hlt-ca-x:hover { color: var(--hl-ink); border-color: var(--hl-line3); }
.hlt-ca-msg { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 12px; color: var(--hl-ink3); }
.hlt-ca-msg.err { color: var(--hl-err); }
.hlt-detect, .hlt-tracked, .hlt-grind { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); animation: hltIn .28s var(--ease, ease-out); }
.hlt-detect > div:not(.hlt-detect-stat), .hlt-tracked > div, .hlt-grind > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hlt-detect b, .hlt-tracked b, .hlt-grind b { font-size: 13.5px; font-weight: 620; }
.hlt-detect span, .hlt-tracked > div > span, .hlt-grind > div > span { font-size: 12px; color: var(--hl-ink3); }
.hlt-detect.ok { border-color: rgba(111, 220, 166, .22); background: linear-gradient(90deg, rgba(111, 220, 166, .06), transparent 60%), var(--hl-s0); }
.hlt-detect.warn { border-color: rgba(242, 194, 112, .2); }
.hlt-detect-ico { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 11px; background: var(--hl-s3); color: var(--hl-ink2); }
.hlt-detect-ico.ok { background: rgba(111, 220, 166, .12); color: var(--hl-ok); }
.hlt-detect.warn .hlt-detect-ico { background: var(--hl-warn-bg); color: var(--hl-warn); }
.hlt-detect.run .hlt-detect-ico { color: var(--hl-acc); }
.hlt-detect-stat { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; padding-left: 18px; border-left: 1px solid var(--hl-line); }
.hlt-detect-stat span { font-size: 11px; color: var(--hl-ink3); }
.hlt-detect-stat b { font-size: 16px; font-weight: 560; letter-spacing: -.01em; }
.hlt-mini { display: block; width: 64px; height: 4px; border-radius: 99px; background: var(--hl-s3); overflow: hidden; }
.hlt-mini > i { display: block; height: 100%; width: var(--w, 0%); border-radius: 99px; background: linear-gradient(90deg, #6d72f6, #6fdca6); }
.hlt-tracked-img { width: 46px; height: 46px; border-radius: 13px; object-fit: cover; flex: none; }
@keyframes hltIn { from { opacity: 0; transform: translateY(4px); } }

/* fields */
.hlt-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.hlt-field.grow { flex: 1; }
.hlt-fl { display: flex; align-items: baseline; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--hl-ink2); }
.hlt-fl em { font-style: normal; font-weight: 450; color: var(--hl-ink4); font-size: 11.5px; }
.hlt-count { margin-left: auto; font-family: var(--mono); font-size: 10.5px; font-weight: 500; color: var(--hl-ink4); }
.hlt-count.bad { color: var(--hl-err); }
.hlt-fl .hlt-region { display: contents; }
.hlt-in { width: 100%; height: 42px; padding: 0 13px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s0); color: var(--hl-ink); font: 500 14px var(--font); outline: none; transition: border-color .15s, box-shadow .2s; }
.hlt-in.mono { font-family: var(--mono); font-size: 13px; }
.hlt-in.up { text-transform: uppercase; letter-spacing: .04em; }
.hlt-in.num { font-variant-numeric: tabular-nums; }
textarea.hlt-in { height: auto; min-height: 84px; padding: 11px 13px; line-height: 1.5; resize: vertical; }
select.hlt-in { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--hl-ink3) 50%), linear-gradient(135deg, var(--hl-ink3) 50%, transparent 50%); background-position: calc(100% - 17px) 18px, calc(100% - 12px) 18px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 30px; }
.hlt-in::placeholder { color: var(--hl-ink4); }
.hlt-in:focus { border-color: var(--hl-acc-line); box-shadow: 0 0 0 4px rgba(141, 145, 255, .1); }
.hlt-in:disabled { opacity: .55; }
.hlt-in-wrap { position: relative; display: flex; align-items: center; }
.hlt-in-wrap > i { position: absolute; left: 13px; font-style: normal; font: 600 13px var(--mono); color: var(--hl-ink3); pointer-events: none; }
.hlt-in-wrap > .hlt-in { padding-left: 27px; }
.hlt-in-wrap.pre > i { left: auto; right: 13px; }
.hlt-in-wrap.pre > .hlt-in { padding-left: 13px; padding-right: 28px; }
.hlt-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hlt-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hlt-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }

/* token details: form | live preview */
.hlt-details { display: grid; grid-template-columns: minmax(0, 1fr) 286px; gap: 28px; align-items: start; }
.hlt-details-f { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.hlt-details-p { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 12px; }
.hlt-drop { display: flex; align-items: center; gap: 18px; padding: 14px; border: 1.5px dashed var(--hl-line3); border-radius: 14px; background: radial-gradient(420px 120px at 0% 50%, rgba(141, 145, 255, .07), transparent 70%), var(--hl-s0); cursor: pointer; transition: border-color .15s, background .15s; }
.hlt-drop:hover, .hlt-drop.over { border-color: var(--hl-acc-line); background: radial-gradient(420px 140px at 0% 50%, rgba(141, 145, 255, .14), transparent 70%), var(--hl-s0); }
.hlt-drop.has { border-style: solid; border-color: var(--hl-line2); }
.hlt-drop.dis { cursor: not-allowed; opacity: .6; }
.hlt-drop-art { position: relative; display: grid; place-items: center; flex: none; width: 92px; height: 92px; border-radius: 16px; background: var(--hl-s3); color: var(--hl-acc); overflow: hidden; box-shadow: inset 0 0 0 1px var(--hl-line2); }
.hlt-drop-art .hlt-gl { width: 28px; height: 28px; }
.hlt-drop-art img { width: 100%; height: 100%; object-fit: cover; }
.hlt-drop-spin { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(10, 13, 21, .55); color: #fff; }
.hlt-drop-t { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hlt-drop-t b { font-size: 14px; font-weight: 620; }
.hlt-drop-t span { font-size: 12.5px; color: var(--hl-ink3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlt-drop-t em { font-style: normal; font-size: 11.5px; color: var(--hl-ink4); }
.hlt-urlpick { margin-top: -4px; }
.hlt-urlpick > summary { display: inline-flex; font-size: 12px; color: var(--hl-acc); cursor: pointer; list-style: none; }
.hlt-urlpick > summary::-webkit-details-marker { display: none; }
.hlt-urlpick[open] > summary { margin-bottom: 8px; }
.hlt-socials { display: flex; flex-direction: column; gap: 10px; }
.hlt-soc { display: grid; grid-template-columns: 34px 78px 1fr; align-items: center; gap: 10px; }
.hlt-soc-g { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--hl-s3); color: var(--hl-ink2); }
.hlt-soc-g .hlt-gl { width: 16px; height: 16px; }
.hlt-soc-l { font-size: 12.5px; font-weight: 600; color: var(--hl-ink2); }
.hlt-soc .hlt-in { height: 38px; }

/* live token card */
.hlt-card { display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid var(--hl-line2); border-radius: 16px;
  background: radial-gradient(260px 160px at 100% 0%, rgba(141, 145, 255, .13), transparent 70%), linear-gradient(180deg, #161b2c, #111522); box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .8); }
.hlt-card-top { display: flex; align-items: center; gap: 14px; }
.hlt-card-img { position: relative; flex: none; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, #a7abff, #6d72f6); color: #0c0e1d; font: 700 20px var(--font); }
.hlt-card-img.ph { background: var(--hl-s3); color: var(--hl-ink4); box-shadow: inset 0 0 0 1px var(--hl-line2); }
.hlt-card-img img { width: 100%; height: 100%; object-fit: cover; }
.hlt-card-up { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(10, 13, 21, .5); color: #fff; }
.hlt-card-id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hlt-card-id b { font-size: 16px; font-weight: 660; letter-spacing: -.015em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlt-card-sym { font: 600 12px var(--mono); color: var(--hl-acc); letter-spacing: .04em; }
.hlt-card-id .ph, .hlt-card-sym.ph { color: var(--hl-ink4); }
.hlt-card-venue { display: inline-flex; align-items: center; gap: 6px; margin-top: 3px; font-size: 11px; color: var(--hl-ink3); }
.hlt-card-desc { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--hl-ink2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.hlt-card-desc.ph { color: var(--hl-ink4); font-style: italic; }
.hlt-card-links { display: flex; gap: 6px; }
.hlt-card-links span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--hl-s3); color: var(--hl-ink2); }
.hlt-card-links .hlt-gl { width: 14px; height: 14px; }
.hlt-card-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 12px; border-top: 1px solid var(--hl-line); }
.hlt-card-stats div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hlt-card-stats span { font-size: 10.5px; color: var(--hl-ink4); text-transform: uppercase; letter-spacing: .08em; font-family: var(--mono); }
.hlt-card-stats b { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlt-card-bond { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; font-size: 11px; color: var(--hl-ink3); }
.hlt-card-bond > i { display: block; height: 5px; border-radius: 99px; background: var(--hl-s3); overflow: hidden; }
.hlt-card-bond > i > i { display: block; width: 3%; height: 100%; background: linear-gradient(90deg, #6d72f6, #6fdca6); }
.hlt-card-bond em { font-style: normal; font-family: var(--mono); }

/* advanced: facts strip, vanity, grinder, metadata */
.hlt-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hlt-facts > div { display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; min-width: 0; }
.hlt-facts > div + div { border-left: 1px solid var(--hl-line); }
.hlt-facts span { font-size: 12px; color: var(--hl-ink3); }
.hlt-facts b { font-size: 20px; font-weight: 540; letter-spacing: -.02em; }
.hlt-facts b.t { font-size: 14.5px; font-weight: 600; letter-spacing: -.01em; padding-top: 4px; }
.hlt-facts b small { font-size: 11.5px; color: var(--hl-ink3); font-weight: 500; margin-left: 3px; }
.hlt-facts em { font-style: normal; font-size: 11.5px; color: var(--hl-ink4); }
.hlt-vanity { display: flex; flex-direction: column; gap: 12px; padding: 18px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); animation: hltIn .25s ease-out; }
.hlt-sub-h { display: flex; align-items: baseline; gap: 10px; }
.hlt-sub-h b { font-size: 13px; font-weight: 620; }
.hlt-sub-h span { font-size: 12px; color: var(--hl-ink3); }
.hlt-keys { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.hlt-key { display: flex; align-items: center; gap: 11px; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s2); color: var(--hl-ink); cursor: pointer; text-align: left; transition: border-color .15s, background .15s, box-shadow .2s; }
.hlt-key:hover:not(:disabled) { border-color: var(--hl-line3); }
.hlt-key.on { border-color: var(--hl-acc-line); background: var(--hl-sel); box-shadow: var(--hl-acc-glow); }
.hlt-key-r { flex: none; width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid var(--hl-line3); }
.hlt-key.on .hlt-key-r { border: 4.5px solid var(--hl-acc); }
.hlt-key-l { margin-left: auto; font-size: 11px; color: var(--hl-ink4); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlt-pk { font: 500 13px var(--mono); color: var(--hl-ink3); white-space: nowrap; }
.hlt-pk b { color: var(--hl-acc); font-weight: 700; }
.hlt-pk i { font-style: normal; color: var(--hl-ink4); }
.hlt-grind-f { display: flex; align-items: flex-end; gap: 10px; }
.hlt-grind-f .hlt-btn { height: 42px; }
.hlt-grind-o { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.hlt-grind-o .hlt-fine { margin-left: 8px; }
.hlt-grind { flex-direction: column; align-items: stretch; gap: 10px; background: var(--hl-s1); }
.hlt-grind.ok, .hlt-grind:not(.run) { flex-direction: row; align-items: center; }
.hlt-grind.ok { border-color: rgba(111, 220, 166, .25); }
.hlt-grind-h { display: flex; align-items: center; gap: 10px; }
.hlt-grind-h > b { font-size: 13.5px; }
.hlt-grind-h .grow { flex: 1; }
.hlt-live { width: 8px; height: 8px; border-radius: 50%; background: var(--hl-acc); animation: hltLive 1.4s ease-in-out infinite; }
@keyframes hltLive { 50% { box-shadow: 0 0 0 6px rgba(141, 145, 255, 0); } 0%, 100% { box-shadow: 0 0 0 0 rgba(141, 145, 255, .45); } }
.hlt-bar { height: 6px; border-radius: 99px; background: var(--hl-s3); overflow: hidden; }
.hlt-bar > i { display: block; height: 100%; width: var(--w, 0%); border-radius: 99px; background: linear-gradient(90deg, #6d72f6, #a3a7ff); transition: width .6s ease-out; position: relative; }
.hlt-bar > i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent); animation: hltShine 1.6s linear infinite; }
@keyframes hltShine { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.hlt-grind-s { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; color: var(--hl-ink3); }
.hlt-grind-s b { color: var(--hl-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.hlt-meta { display: flex; flex-direction: column; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hlt-meta > * { padding: 14px 18px; }
.hlt-meta > * + * { border-top: 1px solid var(--hl-line); }
.hlt-meta-r { display: flex; align-items: center; gap: 14px; }
.hlt-meta-r > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hlt-meta-r b { font-size: 13px; font-weight: 620; }
.hlt-meta-r span { font-size: 12px; color: var(--hl-ink3); }
.hlt-meta-g { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 9px; background: var(--hl-s3); color: var(--hl-ink2); }
.hlt-meta .hlt-hint { border-top: 0; padding-top: 0; }
.hlt-customs { display: flex; flex-direction: column; gap: 10px; }
.hlt .grow { flex: 1; }
@media (max-width: 1320px) { .hlt-details { grid-template-columns: minmax(0, 1fr) 250px; gap: 22px; } }
@media (max-width: 1100px) { .hlt-venues { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hlt-details { grid-template-columns: 1fr; } .hlt-details-p { position: static; } }
@media (max-width: 700px) { .hlt-venues, .hlt-keys, .hlt-row2, .hlt-grid2, .hlt-grid3, .hlt-facts { grid-template-columns: 1fr; } .hlt-facts > div + div { border-left: 0; border-top: 1px solid var(--hl-line); }
  .hlt-foot { flex-direction: column; align-items: stretch; } .hlt-foot-a { justify-content: flex-end; flex-wrap: wrap; } .hlt-grind-f { flex-direction: column; align-items: stretch; } .hlt-detect { flex-wrap: wrap; } }
/* hlt refinements: badge beside the venue name, wrapping drop copy */
.hlt-venue-n { flex-direction: row; align-items: center; gap: 8px; flex-wrap: wrap; }
.hlt-venue { min-height: 128px; }
.hlt-drop-t span { white-space: normal; line-height: 1.45; }

/* ================================================================ HyperLaunch · Live cockpit (.hll-, phase 2) */
.hll-brand.brand-mark { background: none; box-shadow: none; padding: 0; overflow: hidden; }
.hll-brand.brand-mark img { width: 100%; height: 100%; display: block; object-fit: cover; }
.hll-brand-name.brand-name { font-size: 15px; font-weight: 680; letter-spacing: -0.015em; }
.hll {
  --buy: #45d49a; --buy-ink: #03170e; --sell: #ff6b80; --sell-ink: #1d0509;
  --mc: var(--sell); --mc-ink: var(--sell-ink);
  display: flex; flex-direction: column; gap: 16px; color: var(--hl-ink);
}
.hll.m-buy, .hll-gw.m-buy { --mc: var(--buy); --mc-ink: var(--buy-ink); }
.hll-gw.m-sell { --mc: var(--sell); --mc-ink: var(--sell-ink); }
.hll .num, .hll-pop .num { font-variant-numeric: tabular-nums; }
.hll-k { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-ink3); white-space: nowrap; }
.hll-k .i { width: 12px; height: 12px; }
.hll-sp { flex: 1; }
.hll .pos { color: var(--hl-ok); } .hll .neg { color: var(--hl-err); }

/* ---- top row: hero | take profit (one fixed height) ---- */
.hll-top { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; height: 330px; }
.hll-hero, .hll-tp, .hll-main { border: 1px solid var(--hl-line); border-radius: var(--hl-r); background: linear-gradient(180deg, rgba(20, 24, 38, .92), rgba(15, 18, 28, .92)); box-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 18px 40px -28px rgba(0, 0, 0, .8); }
.hll-hero { display: grid; grid-template-rows: 70px minmax(0, 1fr) 58px; min-width: 0; overflow: hidden; }
.hll-hero-h { display: flex; align-items: center; gap: 16px; padding: 0 18px; border-bottom: 1px solid var(--hl-line); }
.hll-id { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; }
.hll-av { width: 40px; height: 40px; border-radius: 12px; flex: none; object-fit: cover; display: grid; place-items: center; font-weight: 700; font-size: 14px; color: #0c0e1d; background: linear-gradient(135deg, #a7abff, #6d72f6); }
.hll-idt { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.hll-nm { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.hll-nm > b { font-size: 16px; font-weight: 680; letter-spacing: -0.01em; }
.hll-live { display: inline-flex; align-items: center; gap: 6px; height: 20px; padding: 0 8px; border-radius: 99px; background: rgba(111, 220, 166, .09); color: var(--hl-ok); font-size: 11px; font-weight: 600; }
.hll-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--hl-ok); animation: hlpulse 2s infinite; box-shadow: 0 0 0 3px rgba(111, 220, 166, .15); }
.hll-live span { color: var(--hl-ink3); font-weight: 500; }
.hll-ca { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--hl-ink2); height: 16px; }
.hll-mc { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 14px; align-items: baseline; justify-items: end; text-align: right; }
.hll-mc .hll-k { grid-column: 1 / 3; justify-self: end; }
.hll-mc > b { grid-column: 2; grid-row: 2; font-size: 30px; font-weight: 560; letter-spacing: -0.035em; line-height: 1.05; min-width: 150px; text-align: right; }
.hll-chg { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.hll-chg em { font-style: normal; font-size: 11.5px; font-weight: 600; color: var(--hl-ink3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.hll-chg em.up { color: var(--hl-ok); } .hll-chg em.dn { color: var(--hl-err); }
.hll-hero-b { display: grid; grid-template-columns: minmax(0, 1fr) 312px; min-height: 0; }
.hll-chart { position: relative; min-width: 0; min-height: 0; padding: 10px 6px 8px 12px; }
.hll-chart-wait { position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; color: var(--hl-ink4); }
.hll-chart .hp-rail { position: relative; z-index: 1; height: 100%; margin: 0; }
.hll-chart .hp-rail.live ~ .hll-chart-wait, .hll-chart:has(.cndl) .hll-chart-wait { display: none; }
.hll-chart .cndl { height: 100%; border-radius: 10px; background: linear-gradient(180deg, rgba(141, 145, 255, .035), rgba(141, 145, 255, 0)); box-shadow: none; }
.hll-chart .cndl-hud { top: 8px; left: 10px; }
.hll-chart .cndl-v, .hll-chart .cndl-d { display: none; }
.hll-pos { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; border-left: 1px solid var(--hl-line); }
.hll-tile2 { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 0 16px; min-width: 0; }
.hll-tile2:nth-child(odd) { border-right: 1px solid var(--hl-line); }
.hll-tile2:nth-child(-n+2) { border-bottom: 1px solid var(--hl-line); }
.hll-tile2 > b { font-size: 18px; font-weight: 600; letter-spacing: -0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-ts { font-size: 11px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-strip { display: grid; grid-template-columns: 1.1fr 1fr 1.3fr 1.3fr 1fr; border-top: 1px solid var(--hl-line); background: rgba(9, 11, 18, .35); }
.hll-strip > div { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 0 16px; min-width: 0; border-right: 1px solid var(--hl-line); }
.hll-strip > div:last-child { border-right: 0; }
.hll-strip b { font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-strip .bond { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 10px; align-content: center; }
.hll-strip .bond .hll-k { grid-column: 1 / 3; }
.hll-bond { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .06); overflow: hidden; align-self: center; }
.hll-bond i { display: block; height: 100%; width: var(--w, 0%); border-radius: inherit; background: linear-gradient(90deg, var(--hl-acc2), var(--hl-acc)); transition: width .6s ease; }
.hll-bond i.done { background: var(--hl-ok); }
.hll-strip .pill { height: 20px; font-size: 10.5px; }

/* ---- take profit card ---- */
.hll-tp { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.hll-tp-h { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 14px 16px 10px; }
.hll-tp-h div { display: flex; flex-direction: column; gap: 3px; }
.hll-tp-h b { font-size: 14px; font-weight: 650; }
.hll-tp-h span { font-size: 11.5px; color: var(--hl-ink3); }
.hll-count { font-style: normal; font-size: 11px; font-weight: 650; color: var(--hl-acc); background: var(--hl-acc-soft); border-radius: 99px; padding: 3px 8px; }
.hll-count:empty { display: none; }
.hll-tp-b { display: flex; flex-direction: column; gap: 6px; padding: 0 16px 10px; }
.hll-tp-l { font-size: 11.5px; color: var(--hl-ink2); font-weight: 520; }
.hll-tp-l.in { color: var(--hl-ink3); }
.hll-tp-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; height: 40px; }
.hll-tp-row.scope { display: flex; align-items: center; gap: 10px; height: 30px; margin-top: 2px; }
.hll-chip2 { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-width: 0; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s0); color: var(--hl-ink2); cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.hll-chip2 b { font-size: 13px; font-weight: 640; }
.hll-chip2 small { font-size: 10.5px; color: var(--hl-ink3); font-variant-numeric: tabular-nums; }
.hll-chip2:hover { border-color: var(--hl-line3); color: var(--hl-ink); }
.hll-chip2.on { border-color: var(--hl-acc-line); background: var(--hl-sel); color: var(--hl-ink); box-shadow: 0 0 0 1px rgba(141, 145, 255, .18); }
.hll-chip2.on small { color: var(--hl-acc); }
.hll-chip2.cust b { font-weight: 560; }
.hll-chip2.inp { flex-direction: row; gap: 2px; padding: 0 8px; cursor: text; }
.hll-chip2.inp input { width: 100%; min-width: 0; border: 0; background: none; color: var(--hl-ink); font: 640 13px/1 inherit; text-align: right; outline: none; font-variant-numeric: tabular-nums; }
.hll-chip2.inp i { font-style: normal; color: var(--hl-ink3); font-size: 12px; }
.hll-tp-cust { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; }
.hll-tp-in { flex: 1; min-width: 0; height: 40px; padding: 0 10px; border: 1px solid var(--hl-acc-line); border-radius: 9px; background: var(--hl-s0); color: var(--hl-ink); font: 600 13px inherit; outline: none; font-variant-numeric: tabular-nums; }
.hll-mini { display: inline-flex; gap: 2px; padding: 2px; border: 1px solid var(--hl-line2); border-radius: 8px; background: var(--hl-s0); flex: none; }
.hll-mini button { height: 26px; padding: 0 8px; border: 0; border-radius: 6px; background: none; color: var(--hl-ink3); font-size: 11.5px; font-weight: 560; cursor: pointer; white-space: nowrap; }
.hll-mini button:hover:not(:disabled) { color: var(--hl-ink); }
.hll-mini button.on { background: #262c4b; color: var(--hl-ink); box-shadow: inset 0 0 0 1px rgba(141, 145, 255, .16); }
.hll-mini button:disabled { opacity: .45; cursor: not-allowed; }
.hll-mini.wide { flex: 1; } .hll-mini.wide button { flex: 1; }
.hll-tp-cust .hll-mini button { height: 34px; }
.hll-x { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border: 1px solid var(--hl-line2); border-radius: 8px; background: none; color: var(--hl-ink3); cursor: pointer; }
.hll-x:hover { color: var(--hl-ink); border-color: var(--hl-line3); }
.hll-tp-go { height: 38px; margin-top: 4px; border: 0; border-radius: 10px; background: linear-gradient(180deg, #979bff, #7479f5); color: #0c0e1d; font-size: 12.5px; font-weight: 680; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 12px; box-shadow: 0 8px 22px -12px rgba(120, 126, 255, .8); }
.hll-tp-go:disabled { background: var(--hl-s3); color: var(--hl-ink3); box-shadow: none; cursor: not-allowed; }
.hll-tp-msg { height: 14px; font-size: 11px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-tp-msg.err { color: var(--hl-warn); }
.hll-tp-list { flex: 1; min-height: 0; overflow-y: auto; border-top: 1px solid var(--hl-line); padding: 4px 8px; background: rgba(9, 11, 18, .3); }
.hll-tp-li { display: flex; align-items: center; gap: 10px; height: 40px; padding: 0 8px; border-radius: 8px; }
.hll-tp-li:hover { background: rgba(255, 255, 255, .02); }
.hll-tp-li .grow { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
.hll-tp-li b { font-size: 12.5px; font-variant-numeric: tabular-nums; }
.hll-tp-li span { font-size: 11px; color: var(--hl-ink3); }
.hll-tp-dir { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; font-size: 12px; font-weight: 700; background: rgba(111, 220, 166, .1); color: var(--hl-ok); }
.hll-tp-dir.below { background: rgba(255, 131, 145, .1); color: var(--hl-err); }
.hll-tp-empty { display: flex; align-items: center; justify-content: center; gap: 8px; height: 100%; min-height: 40px; font-size: 11.5px; color: var(--hl-ink4); }
.hll-ghost { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px; border: 1px solid var(--hl-line2); border-radius: 8px; background: none; color: var(--hl-ink2); font-size: 12px; font-weight: 560; cursor: pointer; white-space: nowrap; }
.hll-ghost:hover:not(:disabled) { border-color: var(--hl-line3); color: var(--hl-ink); }
.hll-ghost:disabled { opacity: .45; cursor: not-allowed; }
.hll-ghost.sm { height: 26px; padding: 0 9px; font-size: 11.5px; }
.hll-ghost.on { border-color: rgba(242, 194, 112, .45); color: var(--hl-warn); background: rgba(242, 194, 112, .07); }

/* ---- main card: tabs + execution settings ---- */
.hll-main { overflow: clip; }
.hll-tabsrow { display: flex; align-items: center; gap: 12px; height: 54px; padding: 0 14px 0 8px; border-bottom: 1px solid var(--hl-line); }
.hll-tabs { display: flex; gap: 2px; height: 100%; }
.hll-tabs button { position: relative; display: inline-flex; align-items: center; gap: 7px; height: 100%; padding: 0 14px; border: 0; background: none; color: var(--hl-ink3); font-size: 13px; font-weight: 560; cursor: pointer; }
.hll-tabs button:hover { color: var(--hl-ink2); }
.hll-tabs button.on { color: var(--hl-ink); }
.hll-tabs button.on::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--hl-acc); }
.hll-tabs em { font-style: normal; font-size: 10.5px; font-weight: 650; min-width: 18px; padding: 1px 6px; border-radius: 99px; background: rgba(255, 255, 255, .06); color: var(--hl-ink3); text-align: center; font-variant-numeric: tabular-nums; }
.hll-tabs em:empty { display: none; }
.hll-tabs em.ok { background: rgba(111, 220, 166, .12); color: var(--hl-ok); } .hll-tabs em.bad { background: rgba(255, 131, 145, .12); color: var(--hl-err); }
.hll-exec { display: flex; align-items: center; gap: 8px; }
.hll-vr { width: 1px; height: 22px; background: var(--hl-line2); margin: 0 4px; }
.hll-num { display: inline-flex; align-items: center; gap: 3px; height: 30px; padding: 0 8px; border: 1px solid var(--hl-line2); border-radius: 8px; background: var(--hl-s0); }
.hll-num input { width: 30px; border: 0; background: none; color: var(--hl-ink); font: 600 12px inherit; text-align: right; outline: none; font-variant-numeric: tabular-nums; }
.hll-num.w input { width: 64px; text-align: left; }
.hll-num input:disabled { color: var(--hl-ink4); cursor: not-allowed; }
.hll-num input.bad { color: var(--hl-err); }
.hll-num i { font-style: normal; font-size: 11.5px; color: var(--hl-ink3); }
.hll-num:focus-within { border-color: var(--hl-acc-line); }
.hll-route { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; cursor: help; }
.hll-route b { font-weight: 600; color: var(--hl-ink2); }
.hll-pane { min-height: 200px; }
.hll-pad { padding: 16px; }
.hll-sub-h { display: flex; align-items: center; min-height: 44px; padding: 0 18px; font-size: 12px; color: var(--hl-ink3); border-bottom: 1px solid var(--hl-line); }
.hll-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 48px 16px; color: var(--hl-ink3); font-size: 12.5px; }
.hll-empty b { color: var(--hl-ink); font-size: 14px; }
.hll-post { margin: 0 16px 16px; border: 1px solid var(--hl-line); border-radius: 12px; overflow: hidden; }

/* ---- action area: mode switch + bulk bar, themed by the mode ---- */
.hll-gw { position: relative; }
.hll-bar { position: relative; display: flex; align-items: center; gap: 14px; height: 64px; padding: 0 16px; background: linear-gradient(90deg, color-mix(in srgb, var(--mc) 11%, transparent), transparent 55%); border-bottom: 1px solid color-mix(in srgb, var(--mc) 22%, var(--hl-line)); transition: background .25s; }
.hll-bar::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--mc); }
.hll-mode { display: inline-flex; padding: 3px; gap: 3px; border-radius: 11px; background: var(--hl-s0); border: 1px solid var(--hl-line2); flex: none; }
.hll-mode button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; width: 104px; height: 38px; border: 0; border-radius: 8px; background: none; color: var(--hl-ink3); font-size: 14px; font-weight: 700; letter-spacing: .01em; cursor: pointer; transition: background .15s, color .15s; }
.hll-mode button .i { width: 14px; height: 14px; }
.hll-mode button:hover:not(.on) { color: var(--hl-ink); }
.hll-mode button[data-hll-mode="buy"].on { background: var(--buy); color: var(--buy-ink); box-shadow: 0 6px 20px -8px rgba(69, 212, 154, .8); }
.hll-mode button[data-hll-mode="sell"].on { background: var(--sell); color: #fff; box-shadow: 0 6px 20px -8px rgba(255, 107, 128, .8); }
.hll-modehint { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hll-modehint b { font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mc); }
.hll-modehint span { font-size: 12.5px; color: var(--hl-ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-search { display: flex; align-items: center; gap: 8px; width: 240px; height: 34px; padding: 0 10px; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s0); color: var(--hl-ink3); }
.hll-search input { flex: 1; min-width: 0; border: 0; background: none; color: var(--hl-ink); font-size: 12.5px; outline: none; }
.hll-search:focus-within { border-color: var(--hl-acc-line); }
.hll-ro { display: flex; align-items: center; gap: 8px; padding: 10px 16px; font-size: 12px; color: var(--hl-warn); background: var(--hl-warn-bg); border-bottom: 1px solid var(--hl-line); }
.hll-bulk { display: flex; align-items: center; gap: 12px; height: 52px; padding: 0 16px; border-bottom: 1px solid var(--hl-line); background: rgba(9, 11, 18, .35); }
.hll-gw.has-sel .hll-bulk { background: color-mix(in srgb, var(--mc) 6%, rgba(9, 11, 18, .35)); }
.hll-all { display: inline-flex; align-items: center; gap: 10px; width: 128px; font-size: 12.5px; font-weight: 600; color: var(--hl-ink2); cursor: pointer; white-space: nowrap; }
.hll-bsum { font-size: 12px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.hll-gw.has-sel .hll-bsum { color: var(--hl-ink2); }

/* ---- the grid: fixed row height, fixed columns, patched in place ---- */
.hll-tw { overflow-x: auto; }
.hll-tw.scroll { max-height: 640px; overflow: auto; }
.hll-tbl { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12.5px; }
.hll-tbl col.c-cb { width: 44px; } .hll-tbl col.c-h { width: 116px; } .hll-tbl col.c-v { width: 124px; } .hll-tbl col.c-p { width: 112px; } .hll-tbl col.c-s { width: 116px; } .hll-tbl col.c-st { width: 132px; } .hll-tbl col.c-a { width: 404px; }
.hll-tbl th { height: 36px; padding: 0 10px; text-align: left; font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--hl-ink3); border-bottom: 1px solid var(--hl-line); white-space: nowrap; position: sticky; top: 0; background: #11141f; z-index: 1; }
.hll-tbl th.r, .hll-tbl td.r { text-align: right; }
.hll-tbl th:first-child, .hll-tbl td:first-child { padding-left: 16px; }
.hll-tbl th.hll-ah { color: var(--mc); }
.hll-sort { border: 0; background: none; padding: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
.hll-sort:hover, .hll-sort.on { color: var(--hl-ink); }
.hll-sort.on::after { content: " ↓"; }
.hll-tbl td { height: 60px; padding: 0 10px; border-bottom: 1px solid rgba(31, 36, 51, .7); vertical-align: middle; overflow: hidden; white-space: nowrap; }
.hll-tbl.lite td { height: 44px; }
.hll-tbl tbody tr { transition: background .15s; }
.hll-tbl tbody tr:hover { background: rgba(141, 145, 255, .03); }
.hll-tbl tbody tr.sel { background: color-mix(in srgb, var(--mc) 6%, transparent); }
.hll-tbl tbody tr.sel td:first-child { box-shadow: inset 3px 0 0 var(--mc); }
.hll-tbl tbody tr.kf { background: rgba(141, 145, 255, .06); }
.hll-tbl tbody tr.kf td:first-child { box-shadow: inset 3px 0 0 var(--hl-acc); }
.hll-tbl tbody tr.off { opacity: .5; }
.hll-tbl tbody tr.na td:not(.a):not(:first-child) { opacity: .55; }
.hll-c2 { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hll-c2 > b { font-weight: 600; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hll-c2 > span { font-size: 11px; color: var(--hl-ink3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; height: 15px; }
.hll-c2.w > b { display: flex; align-items: center; gap: 6px; }
.hll-c2.w .addr { font-size: 11px; }
.hll-c2.st { align-items: flex-start; }
.hll-c2.st > span { max-width: 100%; }
.hll-c2 .err { color: var(--hl-err); }
.r .hll-c2 { align-items: flex-end; }
.hll-z { font-style: normal; color: var(--hl-ink4); }
.hll-idle { font-size: 11.5px; color: var(--hl-ink4); height: 21px; line-height: 21px; }
.hll-tag { font-style: normal; font-size: 9.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 6px; border-radius: 5px; background: rgba(255, 255, 255, .06); color: var(--hl-ink3); }
.hll-tag.c { background: rgba(141, 145, 255, .12); color: var(--hl-acc); }
.hll-tag.sib { background: rgba(242, 194, 112, .12); color: var(--hl-warn); }
.hll-tag.off { background: rgba(255, 131, 145, .12); color: var(--hl-err); }
.hll-acts { display: flex; align-items: center; gap: 6px; }
.hll-act { flex: none; width: 96px; height: 34px; padding: 0 6px; border: 1px solid color-mix(in srgb, var(--mc) 40%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--mc) 11%, transparent); color: var(--mc); font-size: 12.5px; font-weight: 680; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; transition: background .12s, border-color .12s, color .12s, transform .06s; font-variant-numeric: tabular-nums; }
.hll-act:hover:not(:disabled) { background: var(--mc); color: var(--mc-ink); border-color: var(--mc); }
.hll-gw.m-sell .hll-act:hover:not(:disabled) { color: #fff; }
.hll-act:active:not(:disabled) { transform: translateY(1px); }
.hll-act.cust { width: 70px; background: none; border-color: var(--hl-line3); color: var(--hl-ink2); font-weight: 600; }
.hll-act.cust:hover:not(:disabled) { background: var(--hl-s3); color: var(--hl-ink); border-color: var(--hl-ink4); }
.hll-act:disabled { background: none; border-color: var(--hl-line); color: var(--hl-ink4); cursor: not-allowed; }
.hll-acts.bulk .hll-act { width: 104px; }
.hll-lim { position: relative; display: grid; place-items: center; width: 34px; height: 34px; flex: none; border: 1px solid var(--hl-line2); border-radius: 8px; background: none; color: var(--hl-ink3); cursor: pointer; }
.hll-lim:hover { color: var(--hl-ink); border-color: var(--hl-line3); }
.hll-lim.on { color: var(--hl-acc); border-color: var(--hl-acc-line); }
.hll-lim em { position: absolute; top: -6px; right: -6px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; font-style: normal; font-size: 10px; font-weight: 700; line-height: 16px; background: var(--hl-acc); color: #0c0e1d; }
.hll-lim em:empty { display: none; }
.hll-tbl tfoot td { height: 44px; border-bottom: 0; background: rgba(9, 11, 18, .35); font-weight: 600; }
.hll-ft { font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--hl-ink3); }
.hll-ft2 { margin-left: 6px; font-size: 11px; color: var(--hl-ink3); font-weight: 500; }
.hll-keys { display: flex; align-items: center; gap: 16px; height: 40px; padding: 0 16px; border-top: 1px solid var(--hl-line); font-size: 11.5px; color: var(--hl-ink3); }
.hll-keys > span { display: inline-flex; align-items: center; gap: 4px; }
.hll-side-lbl { font-weight: 700; text-transform: capitalize; }
.hll-side.buy, .hll-side { }
.hll-tbl .hll-side { font-weight: 650; text-transform: capitalize; }
.hll-tbl .hll-side.buy { color: var(--buy); } .hll-tbl .hll-side.sell { color: var(--sell); }

/* ---- custom amount popover ---- */
.hll-pop { position: absolute; z-index: 30; width: 300px; padding: 14px; border: 1px solid color-mix(in srgb, var(--mc) 45%, var(--hl-line2)); border-radius: 14px; background: #121624; box-shadow: 0 24px 60px -18px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .03) inset; display: flex; flex-direction: column; gap: 10px; animation: pop .16s ease; }
.hll-pop.buy { --mc: var(--buy); --mc-ink: var(--buy-ink); } .hll-pop.sell { --mc: var(--sell); --mc-ink: #fff; }
.hll-pop-h { display: flex; align-items: center; gap: 8px; }
.hll-pop-h b { font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mc); }
.hll-pop-h span { flex: 1; font-size: 12px; color: var(--hl-ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-pop .hll-x { width: 24px; height: 24px; }
.hll-pseg { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s0); }
.hll-pseg button { height: 28px; border: 0; border-radius: 6px; background: none; color: var(--hl-ink3); font-size: 12px; font-weight: 560; cursor: pointer; }
.hll-pseg button.on { background: #262c4b; color: var(--hl-ink); }
.hll-pin { display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 6px 0 12px; border: 1px solid color-mix(in srgb, var(--mc) 50%, transparent); border-radius: 10px; background: var(--hl-s0); }
.hll-pin input { flex: 1; min-width: 0; border: 0; background: none; color: var(--hl-ink); font-size: 18px; font-weight: 600; outline: none; font-variant-numeric: tabular-nums; }
.hll-pin > span { font-size: 12.5px; color: var(--hl-ink3); font-weight: 600; }
.hll-pin button { height: 30px; padding: 0 10px; border: 1px solid var(--hl-line2); border-radius: 7px; background: none; color: var(--hl-ink2); font-size: 11.5px; font-weight: 600; cursor: pointer; }
.hll-pin button:hover { color: var(--hl-ink); border-color: var(--hl-line3); }
.hll-phint { height: 16px; font-size: 11.5px; color: var(--hl-ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.hll-phint span { color: var(--hl-ink3); }
.hll-go { height: 42px; border: 0; border-radius: 10px; background: var(--mc); color: var(--mc-ink); font-size: 13.5px; font-weight: 700; cursor: pointer; font-variant-numeric: tabular-nums; }
.hll-go:disabled { background: var(--hl-s3); color: var(--hl-ink3); cursor: not-allowed; }

/* ---- confirmation (modal lives outside .hl: explicit colours) ---- */
.hll-cf { display: flex; flex-direction: column; gap: 14px; }
.hll-cf-big { display: flex; align-items: baseline; justify-content: space-between; padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(255, 107, 128, .35); background: rgba(255, 107, 128, .08); }
.hll-cf.buy .hll-cf-big { border-color: rgba(69, 212, 154, .35); background: rgba(69, 212, 154, .08); }
.hll-cf-big span { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; color: #ff6b80; }
.hll-cf.buy .hll-cf-big span { color: #45d49a; }
.hll-cf-big small { font-size: 12.5px; color: #a3a9bd; font-weight: 600; }
.hll-kv { display: grid; grid-template-columns: auto 1fr; gap: 8px 12px; margin: 0; font-size: 12.5px; }
.hll-kv dt { color: #8a90a6; } .hll-kv dd { margin: 0; text-align: right; font-weight: 600; color: #e9ebf3; }
.hll-cf-list { display: flex; flex-wrap: wrap; gap: 5px; }
.hll-cf-list span { font-size: 11px; padding: 3px 8px; border-radius: 6px; background: rgba(255, 255, 255, .05); color: #a3a9bd; }

@media (max-width: 1380px) {
  .hll-top { grid-template-columns: minmax(0, 1fr) 330px; }
  .hll-hero-b { grid-template-columns: minmax(0, 1fr) 280px; }
  .hll-tbl col.c-p { width: 100px; } .hll-tbl col.c-s { width: 104px; } .hll-tbl col.c-st { width: 118px; } .hll-tbl col.c-a { width: 384px; }
  .hll-act { width: 92px; } .hll-act.cust { width: 64px; }
  .hll-route { display: none; } .hll-exec .hll-vr:last-of-type { display: none; }
}
@media (max-width: 1180px) {
  .hll-top { grid-template-columns: minmax(0, 1fr); height: auto; }
  .hll-hero { height: 330px; } .hll-tp { height: 330px; }
  .hll-tabsrow { flex-wrap: wrap; height: auto; padding: 8px; }
}

/* ==== HyperLaunch · Wallets & funding (phase 2, hl-wallets-*.js) — prefix .hlw- ==== */
.hlw .grow, .hlw-form .grow { flex: 1; min-width: 0; }
.hlw-form, .hlw-confirm { --hl-s0: #0d1019; --hl-s1: #10131d; --hl-s2: #141826; --hl-s3: #1a1f30; --hl-sel: #1a1f38; --hl-line: #1f2433; --hl-line2: #2a3044; --hl-line3: #394059;
  --hl-ink: #e9ebf3; --hl-ink2: #a3a9bd; --hl-ink3: #707790; --hl-ink4: #4d5369; --hl-acc: #8d91ff; --hl-acc-line: rgba(141,145,255,.62); --hl-acc-glow: 0 0 0 1px rgba(141,145,255,.28), 0 10px 34px -14px rgba(120,126,255,.55);
  --hl-warn: #f2c270; --hl-warn-bg: #2a2317; --hl-err: #ff8391; --hl-r-md: 11px; }
.hlw .hl-stack { gap: 22px; }
.hlw .num { font-variant-numeric: tabular-nums; }
.hlw-hint { font-size: 11.5px; color: var(--hl-ink3); }
.hlw-lbl { font-size: 12.5px; font-weight: 600; color: var(--hl-ink2); letter-spacing: -0.003em; }
.hlw-lbl small { font-weight: 450; color: var(--hl-ink4); margin-left: 4px; font-size: 11px; }
.hlw-field { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.hlw-field > span:first-child:not(.hlw-lbl) { font-size: 12px; color: var(--hl-ink3); }

/* buttons */
.hlw-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 36px; padding: 0 15px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s2); color: var(--hl-ink); font: 560 13px var(--font); cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s, box-shadow .2s, transform .12s; }
.hlw-btn:hover:not(:disabled) { border-color: var(--hl-line3); background: var(--hl-s3); }
.hlw-btn:active:not(:disabled) { transform: translateY(1px); }
.hlw-btn:disabled { opacity: .45; cursor: not-allowed; }
.hlw-btn .i { width: 14px; height: 14px; }
.hlw-btn.ghost { background: transparent; color: var(--hl-ink2); }
.hlw-btn.ghost:hover:not(:disabled) { color: var(--hl-ink); background: rgba(255,255,255,.03); }
.hlw-btn.primary { border-color: transparent; background: var(--hl-acc); color: var(--hl-acc-ink, #0c0e1d); font-weight: 640; box-shadow: 0 10px 28px -14px rgba(141,145,255,.8); }
.hlw-btn.primary:hover:not(:disabled) { background: #9da1ff; }
.hlw-btn.danger { border-color: rgba(255,131,145,.3); background: rgba(255,131,145,.08); color: var(--hl-err); }
.hlw-btn.danger:hover:not(:disabled) { background: rgba(255,131,145,.14); border-color: rgba(255,131,145,.45); }
.hlw-btn.sm { height: 30px; padding: 0 11px; font-size: 12px; border-radius: 8px; }
.hlw-btn.lg { height: 42px; padding: 0 20px; font-size: 13.5px; }
.hlw-btn.xl { height: 48px; padding: 0 26px; font-size: 14.5px; border-radius: 12px; min-width: 220px; }
.hlw-link { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: var(--hl-acc); font: 560 12.5px var(--font); cursor: pointer; }
.hlw-link:hover { color: #b4b7ff; }
.hlw-link.muted { color: var(--hl-ink3); } .hlw-link.muted:hover { color: var(--hl-ink); }
.hlw-link .i { width: 13px; height: 13px; }
.hlw-actrow { display: flex; align-items: center; gap: 10px; }
.hlw-ic { display: inline-grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--hl-line2); border-radius: 7px; background: var(--hl-s2); color: var(--hl-ink2); cursor: pointer; }
.hlw-ic:hover { color: var(--hl-ink); border-color: var(--hl-line3); }

/* status dot line */
.hlw-dot { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--hl-ink2); }
.hlw-dot i { width: 7px; height: 7px; border-radius: 50%; background: var(--hl-ink4); flex: none; }
.hlw-dot.ok i { background: var(--hl-ok); box-shadow: 0 0 0 3px rgba(111,220,166,.14); }
.hlw-dot.warn { color: var(--hl-warn); } .hlw-dot.warn i { background: var(--hl-warn); box-shadow: 0 0 0 3px rgba(242,194,112,.14); }
.hlw-dot.err { color: var(--hl-err); } .hlw-dot.err i { background: var(--hl-err); }
.hlw-dot.wait i { background: var(--hl-acc); animation: hlpulse 1.6s infinite; }

/* ---- 01 Deposit ---- */
.hlw-dep { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 34px; align-items: center; padding: 28px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r); background: radial-gradient(120% 140% at 0% 0%, rgba(141,145,255,.08), transparent 55%), var(--hl-s2); }
.hlw-dep-qr { position: relative; display: grid; place-items: center; width: 236px; height: 236px; padding: 16px; border-radius: 18px; background: #0a0c14; border: 1px solid var(--hl-line2); box-shadow: 0 24px 60px -30px rgba(120,126,255,.6), inset 0 0 0 1px rgba(255,255,255,.02); }
.hlw-dep-qr svg { width: 100%; height: 100%; }
.hlw-dep-qrchain { position: absolute; left: 50%; top: 50%; width: 42px; height: 42px; margin: -21px 0 0 -21px; display: grid; place-items: center; border-radius: 12px; background: #0a0c14; box-shadow: 0 0 0 5px #0a0c14; }
.hlw-dep-qrchain .aic { width: 30px; height: 30px; }
.hlw-dep-b { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.hlw-dep-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.hlw-dep-top .hl-seg button { gap: 7px; flex-direction: row; min-width: 104px; }
.hlw-dep-top .hl-seg .aic, .hlw-sumline .aic, .hlw-funder .aic { width: 16px; height: 16px; }
.hlw-dep-h { margin: 2px 0 0; font-size: 21px; font-weight: 600; letter-spacing: -0.02em; }
.hlw-dep-p { margin: -6px 0 0; font-size: 12.5px; line-height: 1.55; color: var(--hl-ink3); max-width: 520px; }
.hlw-addr { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 46px; padding: 0 8px 0 16px; border: 1px solid var(--hl-line2); border-radius: 11px; background: var(--hl-s0); color: var(--hl-ink); cursor: pointer; text-align: left; transition: border-color .15s; }
.hlw-addr:hover { border-color: var(--hl-acc-line); }
.hlw-addr .mono { flex: 1; min-width: 0; font-size: 13px; letter-spacing: .01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlw-addr-c { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px; border-radius: 8px; background: var(--hl-s3); color: var(--hl-ink2); font-size: 12px; font-weight: 560; }
.hlw-bals { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hlw-bal { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px; align-items: center; padding: 14px 16px; border: 1px solid var(--hl-line); border-radius: 11px; background: var(--hl-s1); }
.hlw-bal .aic { grid-row: 1 / 3; width: 30px; height: 30px; }
.hlw-bal span { font-size: 11.5px; color: var(--hl-ink3); }
.hlw-bal b { font-size: 21px; font-weight: 520; letter-spacing: -0.02em; }
.hlw-dep-st { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-top: 2px; }
.hlw-dep-f { display: flex; justify-content: flex-end; gap: 10px; padding-top: 4px; }
.hlw-skel { display: block; border-radius: 10px; background: linear-gradient(90deg, var(--hl-s2), var(--hl-s3), var(--hl-s2)); background-size: 200% 100%; animation: hlwsk 1.4s infinite linear; }
.hlw-skel.sq { width: 100%; height: 100%; } .hlw-skel.line { height: 46px; }
@keyframes hlwsk { to { background-position: -200% 0; } }
.hlw-sumline { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r-md); background: var(--hl-s2); }
.hlw-sum-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; flex: none; background: rgba(111,220,166,.12); color: var(--hl-ok); box-shadow: inset 0 0 0 1px var(--hl-ok-line); }
.hlw-sum-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.hlw-sum-t b { font-size: 14px; font-weight: 620; }

/* ---- 02 Creator ---- */
.hlw-cr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 20px; padding: 24px 26px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r); background: radial-gradient(110% 160% at 0% 0%, rgba(141,145,255,.09), transparent 55%), var(--hl-s2); }
.hlw-cr-av { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: linear-gradient(135deg, rgba(167,171,255,.22), rgba(109,114,246,.12)); color: var(--hl-acc); box-shadow: inset 0 0 0 1px rgba(141,145,255,.28); }
.hlw-cr-av .hl-gl { width: 26px; height: 26px; }
.hlw-cr-id { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.hlw-cr-id b { font-size: 18px; font-weight: 620; letter-spacing: -0.015em; }
.hlw-cr-bal { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; padding-right: 8px; }
.hlw-cr-bal span { font-size: 11.5px; color: var(--hl-ink3); }
.hlw-cr-bal b { font-size: 28px; font-weight: 420; letter-spacing: -0.03em; line-height: 1; }
.hlw-cr-bal small { font-size: 12px; color: var(--hl-acc); margin-left: 4px; font-weight: 560; letter-spacing: 0; }
.hlw-chip-addr { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 9px; border: 1px solid var(--hl-line2); border-radius: 7px; background: var(--hl-s0); color: var(--hl-ink2); font-size: 11.5px; cursor: pointer; }
.hlw-chip-addr:hover { color: var(--hl-ink); border-color: var(--hl-line3); }
.hlw-chip-addr.sm { height: 22px; padding: 0 7px; font-size: 11px; border-color: transparent; background: none; color: var(--hl-ink3); }
.hlw-chip-addr .i { width: 12px; height: 12px; }
.hlw-need { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; border-radius: var(--hl-r-md); border: 1px solid var(--hl-line); background: var(--hl-s0); }
.hlw-need b { display: block; font-size: 13.5px; font-weight: 620; margin-bottom: 3px; }
.hlw-need span { font-size: 12.5px; color: var(--hl-ink3); line-height: 1.5; }
.hlw-need-ic { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; flex: none; }
.hlw-need.ok .hlw-need-ic { background: rgba(111,220,166,.12); color: var(--hl-ok); } .hlw-need.ok b { color: var(--hl-ok); }
.hlw-need.warn { border-color: rgba(242,194,112,.2); background: var(--hl-warn-bg); } .hlw-need.warn .hlw-need-ic { background: rgba(242,194,112,.14); color: var(--hl-warn); } .hlw-need.warn b { color: var(--hl-warn); }
.hlw-need.run .hlw-need-ic { background: var(--hl-acc-soft); color: var(--hl-acc); }
.hlw-s-cr .hl-kv { padding: 4px 4px 0; max-width: 460px; }
.hlw-picklist { display: flex; flex-direction: column; gap: 6px; max-height: 320px; overflow: auto; padding: 6px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hlw-pick { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid transparent; border-radius: 9px; background: none; color: var(--hl-ink); cursor: pointer; text-align: left; }
.hlw-pick:hover:not(:disabled) { background: rgba(255,255,255,.025); }
.hlw-pick.on { background: #20263f; border-color: var(--hl-acc-line); }
.hlw-pick-r { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--hl-line3); }
.hlw-pick.on .hlw-pick-r { border-color: var(--hl-acc); box-shadow: inset 0 0 0 3.5px #20263f, inset 0 0 0 8px var(--hl-acc); }
.hlw-pick-n { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hlw-pick-n b { font-size: 13px; font-weight: 600; } .hlw-pick-n span { font-size: 11px; color: var(--hl-ink3); }
.hlw-pick-v { font-size: 13.5px; font-weight: 560; } .hlw-pick-v small { color: var(--hl-ink3); font-weight: 500; }
.hlw-top { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 18px; }
.hlw-top .hl-hint { flex-basis: 100%; }
.hlw-top-pay { font-size: 18px; font-weight: 540; height: 40px; display: flex; align-items: center; } .hlw-top-pay.err { color: var(--hl-err); }
.hlw-top-pay small { font-size: 11.5px; color: var(--hl-ink3); margin-left: 5px; font-weight: 500; }

/* inputs */
.hlw-money { display: inline-flex; align-items: center; height: 40px; border: 1px solid var(--hl-line2); border-radius: 11px; background: var(--hl-s0); overflow: hidden; transition: border-color .15s, box-shadow .2s; }
.hlw-money:focus-within { border-color: var(--hl-acc-line); box-shadow: 0 0 0 3px rgba(141,145,255,.12); }
.hlw-money input { width: 110px; height: 100%; padding: 0 4px 0 14px; border: 0; background: none; color: var(--hl-ink); font: 600 15px var(--font); font-variant-numeric: tabular-nums; outline: none; }
.hlw-money input.bad { color: var(--hl-err); }
.hlw-money input.capped { animation: hlwcap .5s; }
@keyframes hlwcap { 30% { color: var(--hl-warn); } }
.hlw-money i { font-style: normal; font-size: 12px; color: var(--hl-ink3); padding-right: 10px; }
.hlw-money button { height: 100%; padding: 0 14px; border: 0; border-left: 1px solid var(--hl-line); background: none; color: var(--hl-ink3); font: 600 12px var(--font); cursor: pointer; }
.hlw-money button:hover:not(:disabled) { color: var(--hl-ink); }
.hlw-money button.on { color: var(--hl-acc); background: rgba(141,145,255,.08); }
.hlw-money.lg { height: 42px; } .hlw-money.lg input { width: 128px; font-size: 16px; }
.hlw-sel { height: 36px; padding: 0 30px 0 11px; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s0); color: var(--hl-ink); font: 500 12.5px var(--font); outline: none; }
.hlw-sel:focus { border-color: var(--hl-acc-line); }
.hlw-sel.sm { height: 30px; font-size: 12px; border-radius: 8px; }
.hlw-sel.bad { border-color: var(--hl-err); }
.hlw-inp { height: 38px; padding: 0 12px; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s0); color: var(--hl-ink); font: 500 13px var(--font); outline: none; }
.hlw-inp:focus { border-color: var(--hl-acc-line); } .hlw-inp.bad { border-color: var(--hl-err); } .hlw-inp.mono { font-family: var(--mono); font-size: 12px; }

/* ---- 03 Fan-out ---- */
.hlw-funder { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 12px; border: 1px solid var(--hl-line2); border-radius: 99px; background: var(--hl-s2); color: var(--hl-ink); font-size: 13px; font-weight: 600; cursor: pointer; flex: none; }
.hlw-funder small { font-size: 11px; color: var(--hl-ink3); font-weight: 500; }
.hlw-funder:hover { border-color: var(--hl-line3); }
.hlw-ctl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.25fr); gap: 18px; padding: 20px 22px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hlw-ctl .hl-chips { gap: 6px; } .hlw-ctl .hl-chip { height: 34px; padding: 0 12px; font-size: 12.5px; }
.hlw-chipbtn { height: 40px; padding: 0 14px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s2); color: var(--hl-ink2); font: 560 12.5px var(--font); cursor: pointer; }
.hlw-chipbtn:hover:not(:disabled) { color: var(--hl-ink); border-color: var(--hl-line3); }
.hlw-chipbtn.on { border-color: var(--hl-acc-line); background: var(--hl-sel); color: var(--hl-ink); box-shadow: var(--hl-acc-glow); }
.hlw-custom-on { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border: 1px solid rgba(141,145,255,.25); border-radius: var(--hl-r-md); background: rgba(141,145,255,.06); font-size: 12.5px; color: var(--hl-ink2); }

.hlw-dist { display: flex; flex-direction: column; gap: 16px; padding: 22px 22px 0; border: 1px solid var(--hl-line2); border-radius: var(--hl-r); background: linear-gradient(180deg, rgba(141,145,255,.045), transparent 60%), var(--hl-s2); overflow: hidden; }
.hlw-dist-h { display: flex; align-items: flex-end; gap: 12px; }
.hlw-dist-h .hl-cap { display: block; margin-bottom: 7px; }
.hlw-sumline-t { font-size: 19px; font-weight: 560; letter-spacing: -0.02em; }
.hlw-cols { display: flex; align-items: flex-end; gap: 8px; height: 212px; padding: 8px 2px 0; border-bottom: 1px solid var(--hl-line2); background: repeating-linear-gradient(0deg, transparent 0 51px, rgba(255,255,255,.028) 51px 52px); }
.hlw-cols.dense { gap: 3px; }
.hlw-col { --c: var(--hl-acc); flex: 1 1 0; min-width: 0; max-width: 64px; height: 100%; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; gap: 6px; position: relative; cursor: default; }
.hlw-col-v { font-size: 10.5px; color: var(--hl-ink2); text-align: center; font-weight: 560; white-space: nowrap; }
.hlw-col-bar { --h: 0%; position: relative; display: flex; flex-direction: column; justify-content: flex-end; height: calc(var(--h) * .78); min-height: 4px; border-radius: 7px 7px 2px 2px; background: color-mix(in srgb, var(--c) 34%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 45%, transparent); transition: height .55s cubic-bezier(.2,.8,.2,1); overflow: hidden; }
.hlw-col-fl { --h: 0%; display: block; height: var(--h); background: linear-gradient(180deg, color-mix(in srgb, var(--c) 100%, white 12%), var(--c)); border-top: 1px solid rgba(255,255,255,.35); }
.hlw-col:hover .hlw-col-bar { box-shadow: inset 0 0 0 1px var(--c), 0 0 22px -6px var(--c); }
.hlw-col-k { position: absolute; bottom: -22px; left: 0; right: 0; text-align: center; font-family: var(--mono); font-size: 10px; color: var(--hl-ink3); letter-spacing: .04em; }
.hlw-cols.dense .hlw-col-k { font-size: 8.5px; }
.hlw-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-top: 22px; }
.hlw-lg { --c: var(--hl-acc); display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--hl-ink2); }
.hlw-lg i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); }
.hlw-lg em { font-style: normal; color: var(--hl-ink4); font-size: 11px; }
.hlw-lg-key { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--hl-ink4); }
.hlw-lg-key i { width: 9px; height: 9px; border-radius: 2px; background: var(--hl-ink3); } .hlw-lg-key i.l { opacity: .35; margin-left: 8px; }
.hlw-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 2px -22px 0; border-top: 1px solid var(--hl-line); background: rgba(10,12,20,.35); }
.hlw-stats > div { display: flex; flex-direction: column; gap: 6px; padding: 14px 22px 16px; }
.hlw-stats > div + div { border-left: 1px solid var(--hl-line); }
.hlw-stats span { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--hl-ink3); }
.hlw-stats span .aic, .hlw-stats span .i { width: 14px; height: 14px; }
.hlw-stats b { font-size: 16px; font-weight: 560; letter-spacing: -0.01em; } .hlw-stats b small { font-size: 11px; color: var(--hl-ink3); font-weight: 500; }
.hlw-stats b.err { color: var(--hl-err); }

.hlw-act { display: flex; align-items: center; gap: 18px; min-height: 48px; }
.hlw-why, .hlw-ready { flex: 1; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; font-size: 13px; color: var(--hl-ink2); line-height: 1.45; }
.hlw-why > .i { color: var(--hl-warn); flex: none; }
.hlw-ready { color: var(--hl-ink3); font-size: 12.5px; } .hlw-ready > .i { color: var(--hl-ok); flex: none; }

/* gates + done */
.hlw-gate { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r-md); background: var(--hl-s2); }
.hlw-gate.acc { border-color: rgba(141,145,255,.35); background: rgba(141,145,255,.06); }
.hlw-gate-n { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; flex: none; background: var(--hl-s3); color: var(--hl-ink2); font: 600 13px var(--mono); }
.hlw-gate.acc .hlw-gate-n { background: rgba(141,145,255,.14); color: var(--hl-acc); }
.hlw-gate b { display: block; font-size: 14px; font-weight: 620; margin-bottom: 3px; } .hlw-gate span { font-size: 12.5px; color: var(--hl-ink3); line-height: 1.5; }
.hlw-done { display: flex; align-items: center; gap: 18px; padding: 22px 24px; border-radius: var(--hl-r); background: radial-gradient(120% 160% at 0% 0%, rgba(111,220,166,.12), transparent 60%), var(--hl-s2); border: 1px solid var(--hl-ok-line); }
.hlw-done-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: rgba(111,220,166,.14); color: var(--hl-ok); flex: none; }
.hlw-done b { display: block; font-size: 16px; font-weight: 620; margin-bottom: 4px; } .hlw-done span { font-size: 12.5px; color: var(--hl-ink3); }

/* live progress */
.hlw-prog { display: flex; flex-direction: column; gap: 14px; padding: 20px 22px 14px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r); background: var(--hl-s2); }
.hlw-prog.run { border-color: rgba(141,145,255,.35); background: radial-gradient(120% 140% at 0% 0%, rgba(141,145,255,.09), transparent 55%), var(--hl-s2); }
.hlw-prog.ok { border-color: var(--hl-ok-line); } .hlw-prog.warn { border-color: rgba(242,194,112,.25); } .hlw-prog.err { border-color: rgba(255,131,145,.25); }
.hlw-prog-h { display: flex; align-items: center; gap: 14px; }
.hlw-prog-h b { display: block; font-size: 15px; font-weight: 620; margin-bottom: 3px; } .hlw-prog-h span { font-size: 12px; color: var(--hl-ink3); }
.hlw-prog-ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; flex: none; }
.hlw-prog.run .hlw-prog-ic { background: rgba(141,145,255,.12); } .hlw-prog.ok .hlw-prog-ic { background: rgba(111,220,166,.14); color: var(--hl-ok); }
.hlw-prog.warn .hlw-prog-ic { background: rgba(242,194,112,.14); color: var(--hl-warn); } .hlw-prog.err .hlw-prog-ic { background: rgba(255,131,145,.14); color: var(--hl-err); }
.hlw-ring { width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(141,145,255,.25); border-top-color: var(--hl-acc); animation: hlwspin .9s linear infinite; }
@keyframes hlwspin { to { transform: rotate(360deg); } }
.hlw-prog-tot { display: flex; flex-direction: column; align-items: flex-end; } .hlw-prog-tot b { font-size: 24px; font-weight: 480; letter-spacing: -0.02em; color: var(--hl-ok); line-height: 1.1; } .hlw-prog-tot small { font-size: 11px; color: var(--hl-ink3); }
.hlw-track { display: block; height: 5px; border-radius: 99px; background: var(--hl-s3); overflow: hidden; }
.hlw-track i { display: block; height: 100%; width: var(--w, 0%); border-radius: 99px; background: linear-gradient(90deg, #6d72f6, var(--hl-ok)); transition: width .5s var(--ease); }
.hlw-plist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 22px; }
.hlw-prow { display: grid; grid-template-columns: minmax(0, 1fr) 92px 96px 96px 64px; align-items: center; gap: 12px; min-height: 40px; padding: 0 2px; border-bottom: 1px solid var(--hl-line); font-size: 12.5px; }
.hlw-prow-n { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .hlw-prow-n b { font-weight: 600; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hlw-prow-n em, .hlw-bsel { --c: var(--hl-acc); display: inline-flex; align-items: center; gap: 6px; font-style: normal; font-size: 11px; color: var(--hl-ink3); }
.hlw-prow-n em i, .hlw-bsel i { width: 7px; height: 7px; border-radius: 2px; background: var(--c); flex: none; }
.hlw-stg { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3px; }
.hlw-stg i { height: 5px; border-radius: 99px; background: var(--hl-s3); }
.hlw-stg i.done { background: var(--hl-ok); } .hlw-stg i.fail { background: var(--hl-err); }
.hlw-stg i.cur { background: var(--hl-acc); animation: hlpulse 1.4s infinite; }
.hlw-prow-s { color: var(--hl-ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .hlw-prow.ok .hlw-prow-s { color: var(--hl-ok); } .hlw-prow-s .err { color: var(--hl-err); }
.hlw-prow-v { text-align: right; font-weight: 560; } .hlw-prow-v small { color: var(--hl-ink3); font-weight: 500; font-size: 10.5px; }
.hlw-prow-x { font-size: 11px; color: var(--hl-warn); }
.hlw-prog-f { display: flex; align-items: center; gap: 12px; padding-top: 2px; }

/* ---- Custom table ---- */
.hlw-cx { display: flex; flex-direction: column; gap: 14px; }
.hlw-cx-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.hlw-cx-mode { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; }
.hlw-cx-rel { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--hl-ink3); margin-left: 6px; }
.hlw-tblw { border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); overflow: auto; background: var(--hl-s1); }
.hlw-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.hlw-tbl th { position: sticky; top: 0; z-index: 1; padding: 11px 12px; background: var(--hl-s0); border-bottom: 1px solid var(--hl-line); text-align: left; font: 600 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--hl-ink3); white-space: nowrap; }
.hlw-tbl td { padding: 8px 12px; border-bottom: 1px solid var(--hl-line); vertical-align: middle; white-space: nowrap; }
.hlw-tbl tbody tr:hover td { background: rgba(141,145,255,.03); }
.hlw-tbl tbody tr.on td { background: rgba(141,145,255,.07); }
.hlw-tbl tfoot td { border-bottom: 0; background: var(--hl-s0); font-weight: 600; }
.hlw-tbl .r { text-align: right; } .hlw-tbl .c { text-align: center; width: 36px; }
.hlw-tbl .err { color: var(--hl-err); }
.hlw-cb { width: 15px; height: 15px; accent-color: var(--hl-acc); cursor: pointer; }
.hlw-wal { display: inline-flex; align-items: center; gap: 8px; } .hlw-wal b { font-weight: 600; }
.hlw-role { font-style: normal; font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 99px; background: var(--hl-acc-soft); color: var(--hl-acc); } .hlw-role.err { background: rgba(255,131,145,.12); color: var(--hl-err); }
.hlw-bsel { gap: 8px; } .hlw-bsel i { width: 8px; height: 8px; }
.hlw-pct { display: inline-flex; align-items: center; height: 30px; border: 1px solid var(--hl-line2); border-radius: 8px; background: var(--hl-s0); }
.hlw-pct:focus-within { border-color: var(--hl-acc-line); }
.hlw-pct input { width: 62px; height: 100%; padding: 0 2px 0 8px; border: 0; background: none; color: var(--hl-ink); font: 600 12.5px var(--font); text-align: right; outline: none; font-variant-numeric: tabular-nums; }
.hlw-pct input.bad { color: var(--hl-err); }
.hlw-pct i { font-style: normal; color: var(--hl-ink3); font-size: 11.5px; padding: 0 8px 0 3px; }
.hlw-minbtn { height: 24px; padding: 0 8px; border: 1px dashed rgba(242,194,112,.5); border-radius: 6px; background: rgba(242,194,112,.08); color: var(--hl-warn); font: 600 11px var(--font); cursor: pointer; }
.hlw-warn { color: var(--hl-warn); font-size: 12px; } .hlw-err { display: inline-flex; align-items: center; gap: 5px; color: var(--hl-err); font-size: 12px; } .hlw-ok { display: inline-flex; align-items: center; gap: 5px; color: var(--hl-ok); font-size: 12px; }
.hlw-cell { display: inline-flex; align-items: center; gap: 8px; }
.hlw-cx-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 34px; }
.hlw-selc { font-size: 12.5px; color: var(--hl-ink2); margin-right: 4px; } .hlw-selc b { color: var(--hl-acc); }
.hlw-add { display: inline-flex; gap: 6px; }
.hlw .hl-custom-b { padding: 16px 18px 18px; }

/* dialogs */
.hlw-form { display: flex; flex-direction: column; gap: 16px; min-width: min(420px, 80vw); color: var(--hl-ink); }
.hlw-form .hl-seg { align-self: flex-start; }
.hlw-form .hlw-sel, .hlw-form .hlw-inp { width: 100%; }
.hlw-form .hl-note { padding: 14px 16px; }
.hlw-sw-sum { display: flex; align-items: baseline; justify-content: space-between; padding: 14px 16px; border-radius: 10px; background: var(--hl-s0); border: 1px solid var(--hl-line); font-size: 12.5px; color: var(--hl-ink3); }
.hlw-sw-sum b { font-size: 20px; font-weight: 520; color: var(--hl-ink); } .hlw-sw-sum small { font-size: 11px; color: var(--hl-ink3); }
.hlw-switchrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; }
.hlw-confirm { min-width: min(400px, 80vw); } .hlw-confirm .hl-kv { font-size: 13px; margin-bottom: 12px; }

@media (max-width: 1100px) { .hlw-ctl { grid-template-columns: 1fr 1fr; } .hlw-plist { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .hlw-dep { grid-template-columns: 1fr; justify-items: center; padding: 20px 16px; } .hlw-dep-qr { width: 200px; height: 200px; } .hlw-dep-b { width: 100%; }
  .hlw-cr { grid-template-columns: auto minmax(0, 1fr); } .hlw-cr-bal { align-items: flex-start; } .hlw-ctl { grid-template-columns: 1fr; } .hlw-stats { grid-template-columns: 1fr 1fr; }
  .hlw-act { flex-direction: column; align-items: stretch; } .hlw-btn.xl { width: 100%; } .hlw-prow { grid-template-columns: minmax(0,1fr) 70px 64px; } .hlw-prow-s, .hlw-prow > :last-child { display: none; } }
/* hlt: running-grind header stays a row; metadata switch never wraps */
.hlt-grind > .hlt-grind-h { flex-direction: row; align-items: center; gap: 10px; }
.hlt-grind > .hlt-grind-h > b { display: inline-flex; align-items: center; gap: 6px; }
.hlt-grind.run { gap: 12px; }
.hlt-meta-r .hl-seg { flex-wrap: nowrap; flex: none; }
/* hlw: progress rows compact + fluid budget field */
.hlw-prow { grid-template-columns: minmax(0, 1fr) 76px 92px 26px; gap: 14px; min-height: 48px; }
.hlw-prow-n em { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.hlw-prow-n .hlw-prow-s { color: var(--hl-ink3); } .hlw-prow.ok .hlw-prow-n .hlw-prow-s { color: var(--hl-ok); } .hlw-prow.run .hlw-prow-n .hlw-prow-s { color: var(--hl-acc); }
.hlw-ctl .hlw-money { width: 100%; } .hlw-ctl .hlw-money input { flex: 1; min-width: 0; width: auto; }
.hlw-ctl { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1.3fr); }
@media (max-width: 900px) { .hlw-prow { grid-template-columns: minmax(0,1fr) 70px 80px 26px; } .hlw-prow > :last-child { display: initial; } }
.hlw-prow-n b { color: var(--hl-ink); }
.hlw-prow-n em { display: block; } .hlw-prow-n em i { display: inline-block; margin-right: 6px; vertical-align: 1px; }
.hlw-ctl { grid-template-columns: auto minmax(170px, 1fr) auto; gap: 18px 26px; }
.hlw-ctl .hl-chips { flex-wrap: nowrap; }
.hlw-ctl .hl-inline { flex-wrap: nowrap; gap: 8px; }
@media (max-width: 1100px) { .hlw-ctl { grid-template-columns: auto minmax(0, 1fr); } .hlw-ctl > :last-child { grid-column: 1 / -1; } }
/* hll · pass 2: hero head = market cap first (identity is the shell header), chart clipped, grid columns */
.hll-hero-h { gap: 18px; }
.hll-hero-h .hll-mc { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; }
.hll-hero-h .hll-mc > b { font-size: 32px; font-weight: 560; letter-spacing: -0.035em; line-height: 1; min-width: 0; text-align: left; }
.hll-hero-h .hll-chg { flex-direction: row; align-items: center; gap: 8px; align-self: flex-end; margin-bottom: 3px; }
.hll-chg em { height: 24px; line-height: 24px; padding: 0 9px; border-radius: 7px; background: rgba(255, 255, 255, .04); }
.hll-chg em.up { background: rgba(111, 220, 166, .09); } .hll-chg em.dn { background: rgba(255, 131, 145, .09); }
.hll-chg em:empty { display: none; }
.hll-hero-h .hll-id { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.hll-launched { font-size: 11px; color: var(--hl-ink3); }
.hll-hero { height: 100%; min-height: 0; }
.hll-chart { overflow: hidden; }
.hll-chart .hp-rail { position: absolute; inset: 10px 6px 8px 12px; height: auto; }
.hll-top > .hll-side { display: flex; min-height: 0; } .hll-top > .hll-side > .hll-tp { flex: 1; }
.hll-tabs button { white-space: nowrap; }
.hll-tbl col.c-h { width: 104px; } .hll-tbl col.c-v { width: 112px; } .hll-tbl col.c-p { width: 100px; } .hll-tbl col.c-s { width: 100px; } .hll-tbl col.c-st { width: 116px; } .hll-tbl col.c-a { width: 410px; }
.hll-act { width: 90px; font-size: 12px; } .hll-act.cust { width: 64px; } .hll-acts.bulk .hll-act { width: 100px; }
.hll-acts { gap: 5px; }
.hll-execslot { display: flex; justify-content: flex-end; flex: none; }
.hll-exec { gap: 7px; }
.hll-tabsrow .hll-search { width: 260px; }
@media (max-width: 1500px) { .hll-route, .hll-exec .hll-vr:nth-of-type(2) { display: none; } .hll-modehint span { max-width: 230px; } }
.hll-top { height: 350px; }
.hll-tp-row { height: 38px; }
.hll-tp-b { gap: 5px; }
.hll-tp-list { min-height: 56px; }
.hlw-bal.warn { border-color: rgba(242,194,112,.35); background: var(--hl-warn-bg); } .hlw-bal.warn b { color: var(--hl-warn); }
.hll-tbl col.c-s { width: 96px; } .hll-tbl col.c-st { width: 106px; } .hll-tbl col.c-a { width: 430px; }
.hll-act { width: 96px; padding: 0 4px; }
.hll-hero-b { grid-template-columns: minmax(0, 1fr) 336px; }
.hll-tile2 { padding: 0 14px; } .hll-tile2 > b { font-size: 17px; }
@media (min-width: 1700px) { .hll-tbl col.c-a { width: 460px; } .hll-act { width: 104px; } .hll-act.cust { width: 72px; } }
.hlw-ready, .hlw-why { flex-wrap: nowrap; } .hlw-ready > span, .hlw-why > span { flex: 0 1 auto; min-width: 0; } .hlw-why > .hlw-link { flex: none; }
.hlw-ctl { gap: 18px 22px; }
.hlw-cols { justify-content: center; gap: 14px; } .hlw-cols.dense { gap: 3px; justify-content: stretch; }
.hlw-col { max-width: 84px; }
.hlw-prow { grid-template-columns: minmax(0, 1fr) 64px 88px 26px; }
/* hlt: live-updating blocks don't replay their entrance animation */
.hlt-vanity, .hlt-grind { animation: none; }
.hlw-wal { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.hlw-wal-t { display: inline-flex; align-items: center; gap: 7px; }
.hlw-wal .hlw-chip-addr.sm { padding: 0; height: 18px; }
.hlw-tbl td { padding: 7px 10px; } .hlw-tbl th { padding: 11px 10px; }
.hlw-tbl .hlw-sel.sm { width: 148px; }
.hlw-pct input { width: 50px; }
.hlw-tbl td small { font-size: 10.5px; }
/* hll · take profit: inline labels, compact header (the list keeps two rows visible) */
.hll-tp-h { padding: 13px 16px 9px; }
.hll-tp-h span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-tp-h div { min-width: 0; }
.hll-count { white-space: nowrap; flex: none; }
.hll-tp-b { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 7px 8px; padding: 0 16px 10px; }
.hll-tp-b > .hll-tp-go, .hll-tp-b > .hll-tp-msg { grid-column: 1 / -1; }
.hll-tp-l { font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--hl-ink3); }
.hll-tp-row { height: 40px; }
.hll-tp-row.scope { height: 32px; margin: 0; }
.hll-tp-go { margin-top: 2px; }
.hll-tp-cust .hll-mini button { padding: 0 7px; }
.hlw-ctl .hlw-field > .hlw-hint { width: 0; min-width: 100%; }
.hlw-form .hlw-money { align-self: flex-start; }
.hlw-prog-mini { padding: 12px 14px 12px 16px; } .hlw-prog-mini .hlw-sum-ic { width: 30px; height: 30px; } .hlw-prog-mini .hlw-sum-t b { font-size: 13.5px; }
.hll-chip2 b, .hll-chip2 small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
/* hlw: neutralise the global .ok/.warn/.err text colours on state-tagged containers */
.hlw-cr, .hlw-need, .hlw-prog, .hlw-prow, .hlw-bal { color: var(--hl-ink); }
.hlw-need.ok b { color: var(--hl-ok); } .hlw-need.warn b { color: var(--hl-warn); }
.hlw-prow.ok .hlw-prow-v { color: var(--hl-ok); }
.hll-top { grid-template-columns: minmax(0, 1fr) 384px; }
.hll-tp-b { grid-template-columns: 40px minmax(0, 1fr); }
.hll-chip2 { padding: 0 4px; } .hll-chip2 b { font-size: 12.5px; }
@media (max-width: 1380px) { .hll-top { grid-template-columns: minmax(0, 1fr) 360px; } }
/* hlt: only the text column of a metadata row stacks */
.hlt-meta-r > .hl-seg { flex-direction: row; }
.hlw-ctl .hlw-money input { padding-left: 12px; font-size: 15px; } .hlw-ctl .hlw-money i { padding-right: 8px; } .hlw-ctl .hlw-money button { padding: 0 12px; }
.hl-custom-b > .hlt-hint { margin-top: 10px; }
.hlw .rsel { height: 30px; max-width: 128px; padding: 0 24px 0 9px; border: 1px solid var(--hl-line2); border-radius: 8px; background-color: var(--hl-s0); color: var(--hl-ink); font: 500 12px var(--font); }
.hlw-cx-foot .rsel { max-width: 150px; }
.hlw-bcell { display: flex; flex-direction: column; gap: 4px; }
.hlw-rsel { padding-left: 16px; } .hlw-rsel .rsel { height: 26px; max-width: 148px; font-size: 11.5px; }
.hlw-th2 { color: var(--hl-ink4); }
.hlt-vanity > .hlt-sub-h:not(:first-child) { margin-top: 6px; }
.hlw-tbl .hlw-sel.sm { width: 136px; } .hlw-tbl td[data-hlw-rcv] small { display: block; }
.hlt-lock { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 10px; background: var(--hl-info-bg); color: var(--hl-info); font-size: 12.5px; }
.hlt-lock b { font-weight: 640; }
.hlt-lock .i { flex: none; }
.hlw .hlw-rsel .rsel, .hlw .hlw-tbl .rsel { width: 136px; min-width: 0; max-width: 136px; }
.hlw-rsel { padding-left: 16px; }
.hlw-tbl td, .hlw-tbl th { padding-left: 8px; padding-right: 8px; }
.hlw-tbl td:first-child, .hlw-tbl th:first-child { padding-left: 12px; }

/* ---- integration (lead): minimum-per-wallet warning ---- */
.hlw-hint.warn { color: var(--hl-warn); }
.crumbs.solo #tb-group, .crumbs.solo #tb-group + * { display: none; }
/* plan panel fits a 1440×900 laptop with the CTA in view; taller plans scroll inside, the CTA never leaves */
.hl-plan { display: flex; flex-direction: column; max-height: calc(100vh - 134px); }
.hl-plan-in { gap: 14px; padding-top: 18px; overflow-y: auto; min-height: 0; scrollbar-width: thin; }
.hl-plan-f { flex: none; padding: 13px 22px 13px; }
@media (max-width: 1180px) { .hl-plan { max-height: none; } }
/* Custom funding table: bridge + relayer selects fill their column (names were clipped), shares show 4 decimals */
.hlw .hlw-tbl .hlw-bsel { display: flex; }
.hlw .hlw-tbl [data-hlw-prov] { width: 176px; min-width: 0; max-width: none; text-overflow: ellipsis; }
.hlw .hlw-tbl .hlw-rsel .rsel { width: 176px; max-width: none; }
.hlw .hlw-tbl .hlw-rsel { padding-left: 16px; }
.hlw .hlw-tbl .hlw-pct input { width: 66px; padding-left: 6px; }
/* Live action bar: when the read-only route item is hidden (≤1500px), hide its divider too (nth-of-type counted spans) */
@media (max-width: 1500px) { .hll-exec .hll-vr:has(+ .hll-route) { display: none; } }
/* the 1-s candles belong to the Live cockpit; parked at home (other tabs) they stay mounted (keep sampling) but hidden */
#hp-deg ~ #hp-rail { display: none !important; }
/* narrow (≤1280): the fixed columns left the Wallet column 0 px wide — keep a readable minimum and scroll sideways */
@media (max-width: 1280px) { .hll-tw { overflow-x: auto; } .hll-tbl { min-width: 1160px; } }
/* creator needs breakdown: a full-width quiet card (values were stranded mid-card at 460px) */
.hlw .hl-stack > .hl-kv { max-width: none; width: auto; padding: 14px 18px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); gap: 11px 0; }
.hlw .hl-stack > .hl-kv dt:last-of-type, .hlw .hl-stack > .hl-kv dd:last-of-type { padding-top: 11px; border-top: 1px solid var(--hl-line); color: var(--hl-ink); }
/* while the launch stages run, the plan panel drops its secondary rows so the stage list and CTA stay in view */
.hl-plan-in.busy .hl-more, .hl-plan-in.busy .hl-total-sub { display: none; }
.hl-lp { gap: 8px; padding: 11px 14px; }

/* HyperLaunch: a failing step shows its error instead of a blank page */
.hl-sec-err { display: flex; flex-direction: column; gap: 8px; margin: 24px; padding: 18px 20px; border-radius: 14px; background: color-mix(in srgb, var(--err) 8%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--err) 35%, transparent); }
.hl-sec-err b { color: var(--err); font-size: 14px; }
.hl-sec-err span { color: var(--text); font-size: 13px; }
.hl-sec-err code { color: var(--text-3); font-size: 11px; font-family: var(--mono); word-break: break-all; }
.hl-sec-err .btn { align-self: flex-start; }

/* top-bar health dots: "degraded" is also the warning-banner class — keep dots dot-sized */
.health-dots .hdot { width: 7px; height: 7px; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 50%; display: inline-block; flex: none; gap: 0; }

/* ================================================================ supply %, 200 holders, wash waves (2026-09-29) */
.hl-tile .s { font-size: 11.5px; color: var(--hl-ink3); line-height: 1.3; }
.hl { --hl-g-b0: #8d91ff; --hl-g-wv: #6fdca6; --hl-g-po: #7f8aa8; }
/* switch */
.hl-switch { position: relative; flex: none; width: 40px; height: 24px; padding: 0; border: 1px solid var(--hl-line2); border-radius: 99px; background: var(--hl-s3); cursor: pointer; transition: background .15s, border-color .15s; }
.hl-switch i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--hl-ink3); transition: transform .18s var(--ease), background .15s; }
.hl-switch.on { background: var(--hl-acc2); border-color: var(--hl-acc-line); }
.hl-switch.on i { transform: translateX(16px); background: #fff; }
.hl-switch:disabled { opacity: .45; cursor: not-allowed; }
/* SniperProtect row (right under Buying waves) */
.hl-sp { display: flex; align-items: center; gap: 16px; margin-top: -10px; padding: 16px 20px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-sp.on { border-color: var(--hl-ok-line); background: linear-gradient(90deg, rgba(111, 220, 166, .05), transparent 60%), var(--hl-s0); }
.hl-sp-gl { display: grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 10px; background: var(--hl-s2); color: var(--hl-ink3); }
.hl-sp.on .hl-sp-gl { color: var(--hl-ok); background: var(--hl-ok-bg); }
.hl-sp-gl .hl-gl { width: 20px; height: 20px; }
.hl-sp .grow { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hl-sp b { font-size: 13.5px; font-weight: 620; }
.hl-sp .grow span { font-size: 12.5px; color: var(--hl-ink3); line-height: 1.5; }
/* wave settings */
.hl-waves { padding: 22px 24px 20px; border: 1px solid var(--hl-line); border-radius: var(--hl-r); background: var(--hl-s1); gap: 18px; }
.hl-wline { color: var(--hl-ink2); max-width: 70ch; }
.hl-wgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; }
.hl-wf { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hl-wf-l { font-size: 12px; font-weight: 560; color: var(--hl-ink2); }
.hl-wf-c { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 40px; }
.hl-wf-h { font-size: 11.5px; color: var(--hl-ink4); line-height: 1.45; }
.hl-wf .hl-chips { gap: 6px; } .hl-wf .hl-chip { height: 34px; padding: 0 12px; font-size: 12.5px; }
.hl-wf .hl-stepper { height: 36px; } .hl-wf .hl-stepper input { width: 44px; font-size: 14px; }
.hl-num { display: inline-flex; align-items: center; height: 36px; padding: 0 10px; gap: 4px; border: 1px solid var(--hl-line2); border-radius: 10px; background: var(--hl-s0); transition: border-color .15s; }
.hl-num:focus-within { border-color: var(--hl-acc-line); }
.hl-num input { width: 44px; border: 0; background: none; outline: none; color: var(--hl-ink); font: 600 14px var(--font); text-align: right; font-variant-numeric: tabular-nums; }
.hl-num i { font-style: normal; font-size: 12px; color: var(--hl-ink3); }
.hl-num input:disabled { color: var(--hl-ink3); }
.hl-range { display: inline-flex; align-items: center; gap: 8px; } .hl-range > span { font-size: 12px; color: var(--hl-ink4); }
.hl-split { display: grid; grid-template-columns: repeat(3, auto 1fr); align-items: center; gap: 6px 8px; }
.hl-split em { font-style: normal; font-size: 11.5px; color: var(--hl-ink3); white-space: nowrap; }
.hl-split .hl-num input { width: 30px; }
.hl-unit { font-size: 12px; color: var(--hl-ink3); }
.hl-wsum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-wsum > div { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; min-width: 0; }
.hl-wsum > div + div { border-left: 1px solid var(--hl-line); }
.hl-wsum span { font-size: 11.5px; color: var(--hl-ink3); }
.hl-wsum b { font-size: 18px; font-weight: 560; letter-spacing: -0.02em; } .hl-wsum b small { font-size: 11px; color: var(--hl-ink3); font-weight: 500; }
.hl-wsum em { font-style: normal; font-size: 11px; color: var(--hl-ink4); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hl-wnote { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 9px; font-size: 12.5px; line-height: 1.45; color: var(--hl-ink2); background: var(--hl-info-bg); }
.hl-wnote.warn { background: var(--hl-warn-bg); color: var(--hl-warn); }
.hl-wnote svg { flex: none; margin-top: 2px; }
/* wave timeline */
.hl-tl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.hl-tl li { display: grid; grid-template-columns: 96px minmax(0, 1fr) 54px 118px; align-items: center; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--hl-line); font-size: 12.5px; }
.hl-tl li:last-child { border-bottom: 0; }
.hl-waves > .hl-tl { border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-tl-n { position: relative; padding-left: 16px; color: var(--hl-ink2); font-weight: 560; white-space: nowrap; }
.hl-tl-n::before { content: ""; position: absolute; left: 0; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 2px; background: var(--hl-g-wv); }
.hl-tl-b0 .hl-tl-n::before { background: var(--hl-g-b0); } .hl-tl-post .hl-tl-n::before { background: var(--hl-g-po); } .hl-tl-tot .hl-tl-n::before { background: transparent; }
.hl-tl-d { color: var(--hl-ink3); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hl-tl-d b { color: var(--hl-ink2); font-weight: 560; }
.hl-tl-x { color: var(--hl-ink3); font-variant-numeric: tabular-nums; text-align: right; }
.hl-tl-net { text-align: right; color: var(--hl-ok); font-weight: 560; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hl-tl-b0 .hl-tl-net { color: var(--hl-acc); font-weight: 500; font-size: 11.5px; }
.hl-tl-tot { background: var(--hl-s2); } .hl-tl-tot .hl-tl-d { color: var(--hl-ink2); } .hl-tl-tot .hl-tl-net { color: var(--hl-ink); }
.hl-tl li.hl-tl-more { display: block; padding: 0; }
.hl-tl-more summary, .hl-bars-more summary { list-style: none; cursor: pointer; padding: 9px 12px; font-size: 12px; font-weight: 560; color: var(--hl-acc); }
.hl-tl-more summary::-webkit-details-marker, .hl-bars-more summary::-webkit-details-marker { display: none; }
.hl-tl-more details[open] summary { border-bottom: 1px solid var(--hl-line); }
.hl-tl-more .hl-tl li:last-child { border-bottom: 0; }
/* where each holder buys */
.hl-where { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-where > div { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; min-width: 0; }
.hl-where > div + div { border-left: 1px solid var(--hl-line); }
.hl-where .k { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--hl-ink2); font-weight: 560; }
.hl-where b { font-size: 24px; font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; }
.hl-where em { font-style: normal; font-size: 11.5px; color: var(--hl-ink3); line-height: 1.5; }
.hl-where > div.off b, .hl-where > div.off .k { color: var(--hl-ink4); }
.hl .dot { display: inline-block; width: 8px; height: 8px; border-radius: 2px; flex: none; }
.hl .dot.b0 { background: var(--hl-g-b0); } .hl .dot.wv { background: var(--hl-g-wv); } .hl .dot.po { background: var(--hl-g-po); }
.hl-hint-acc { color: var(--hl-ink2); }
/* % of supply */
.hl-alloc { justify-content: space-between; row-gap: 10px; }
.hl-maxw { display: inline-flex; align-items: center; gap: 10px; } .hl-maxw > span { font-size: 12px; color: var(--hl-ink3); white-space: nowrap; }
.hl-maxw .hl-chip { height: 32px; padding: 0 11px; font-size: 12px; }
.hl-maxw .hl-chip-in { width: 44px; }
.hl-calc.hl-calc-pct { grid-template-columns: 1.25fr 1fr 1fr; }
.hl-calc-pct .main { background: linear-gradient(135deg, rgba(141, 145, 255, .07), transparent 70%); border-radius: var(--hl-r-md) 0 0 var(--hl-r-md); }
.hl-calc-pct .main span { color: var(--hl-ink2); font-weight: 560; }
.hl-calc-pct .main b { color: var(--hl-ink); font-size: 24px; }
.hl-calc-pct b small { margin-left: 2px; }
.hl-calc-pct em { line-height: 1.45; }
/* grouped per-holder bars */
.hl-bargroups { display: flex; flex-direction: column; gap: 10px; }
.hl-bars-h { display: flex; align-items: baseline; gap: 8px; padding-top: 6px; font-size: 12px; }
.hl-bars-h .dot { align-self: center; }
.hl-bars-h b { font-weight: 600; color: var(--hl-ink2); } .hl-bars-h span { color: var(--hl-ink4); }
.hl-bar.wave .hl-bar-f { background: linear-gradient(90deg, #3fae7c, #6fdca6); }
.hl-bar.post .hl-bar-f { background: linear-gradient(90deg, #56607c, #8a94b3); }
.hl-bars-more { display: flex; flex-direction: column; gap: 10px; border-top: 1px dashed var(--hl-line2); }
.hl-bars-more summary { padding: 10px 0 0; }
.hl-bars-more[open] summary { padding-bottom: 4px; }
@media (max-width: 1100px) { .hl-wgrid { grid-template-columns: 1fr; } .hl-wsum { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hl-wsum > div:nth-child(3) { border-left: 0; } .hl-wsum > div:nth-child(n+3) { border-top: 1px solid var(--hl-line); } }
@media (max-width: 900px) { .hl-where, .hl-calc.hl-calc-pct { grid-template-columns: 1fr; } .hl-where > div + div { border-left: 0; border-top: 1px solid var(--hl-line); } .hl-tl li { grid-template-columns: 80px minmax(0, 1fr) 90px; } .hl-tl-x { display: none; } .hl-waves { padding: 18px 16px; } }
/* engine plan (2026-09-29, distribution engine) */
.hl-nowrap { flex-wrap: nowrap; }
.hl-wex { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 14px; border-radius: 9px; font-size: 12.5px; color: var(--hl-ok); background: var(--hl-ok-bg); border: 1px solid var(--hl-ok-line); font-variant-numeric: tabular-nums; }
.hl-eng { display: flex; flex-direction: column; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); overflow: hidden; }
.hl-eng-r { display: grid; grid-template-columns: 1.1fr .6fr 1.5fr 1.6fr .8fr 1.1fr; gap: 12px; align-items: center; padding: 12px 16px; font-size: 12.5px; color: var(--hl-ink3); border-top: 1px solid var(--hl-line); }
.hl-eng-r > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hl-eng-r > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
.hl-eng-r b { color: var(--hl-ink); font-weight: 600; }
.hl-eng-r .num { color: var(--hl-ink2); font-weight: 560; }
.hl-eng-r .r { text-align: right; }
.hl-eng-r em { font-style: normal; color: var(--hl-ink4); font-weight: 450; margin-left: 4px; }
.hl-eng-h { border-top: 0; padding-top: 10px; padding-bottom: 10px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--hl-ink4); background: var(--hl-s1); }
.hl-eng-t { background: var(--hl-s2); } .hl-eng-t .num { color: var(--hl-ink); }
.hl-eng-r.off { opacity: .45; }
.hl-bundles { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hl-bundles span { padding: 6px 10px; border: 1px solid var(--hl-line2); border-radius: 8px; font-size: 11.5px; color: var(--hl-ink3); background: var(--hl-s0); font-variant-numeric: tabular-nums; }
.hl-bundles span b { color: var(--hl-acc); font-weight: 600; margin-right: 2px; }
.hl-bundles em { font-style: normal; font-size: 11.5px; color: var(--hl-ink4); margin-left: 4px; }
.hl-dist { padding: 16px 18px; border: 1px dashed var(--hl-line2); border-radius: var(--hl-r-md); }
.hl-tl.hl-tl5 li { grid-template-columns: 84px minmax(0, 1fr) 50px 76px 78px; }
.hl-stack > .hl-sec > .hl-tl { border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-tl-px { text-align: right; font-size: 11.5px; color: var(--hl-ink3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.hl-tl-more > details > .hl-tl { border: 0; }
.hl-bar sup { margin-left: 4px; font-size: 9px; font-weight: 600; color: var(--hl-acc); }
.hl-bar { grid-template-columns: 96px 1fr 56px; }
.hl-suggest { display: flex; flex-direction: column; gap: 12px; margin-bottom: 22px; padding: 18px 20px; border: 1px solid var(--hl-acc-line); border-radius: var(--hl-r-md); background: linear-gradient(135deg, rgba(141, 145, 255, .07), transparent 65%), var(--hl-s0); }
.hl-suggest[hidden] { display: none; }
.hl-suggest-h { display: flex; flex-direction: column; gap: 3px; } .hl-suggest-h b { font-size: 13.5px; font-weight: 620; } .hl-suggest-h span { font-size: 12px; color: var(--hl-ink3); }
.hl-suggest-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.hl-suggest-g > div { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--hl-line); border-radius: 10px; background: var(--hl-s1); min-width: 0; }
.hl-suggest-g > div span { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--hl-ink2); }
.hl-suggest-g b { font-size: 18px; font-weight: 560; } .hl-suggest-g b small { font-size: 11px; color: var(--hl-ink3); }
.hl-suggest-g em { font-style: normal; font-size: 11px; color: var(--hl-ink4); }
.hl-suggest-g .tot { border-color: var(--hl-acc-line); } .hl-suggest-g .tot b { color: var(--hl-acc); }
@media (max-width: 900px) { .hl-eng-r { grid-template-columns: 1fr .5fr 1fr; } .hl-eng-r > span:nth-child(3), .hl-eng-r > span:nth-child(4) { display: none; } .hl-tl.hl-tl5 li { grid-template-columns: 70px minmax(0, 1fr) 80px; } .hl-tl-px { display: none; } }
.hl-split { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.hl-split em { margin-right: 6px; }
.hl-hint .hl-link { display: inline; padding: 0; margin: 0; height: auto; border: 0; background: none; font: inherit; color: var(--hl-acc); cursor: pointer; }
.hl-hint .hl-link:hover { text-decoration: underline; }
/* funding this plan (need-driven) */
.hl-suggest-g > div.warn b { color: var(--hl-warn); } .hl-suggest-g > div.ok b { color: var(--hl-ok); }
.hl-suggest-l { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 9px; font-size: 12.5px; line-height: 1.45; color: var(--hl-ok); background: var(--hl-ok-bg); }
.hl-suggest-l span { flex: 1; min-width: 0; } .hl-suggest-l b { font-weight: 600; }
.hl-suggest-l.warn, .hl-suggest-l:has(svg + span b) { color: var(--hl-warn); background: var(--hl-warn-bg); }
.hl-suggest .hl-link { flex: none; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--hl-acc); cursor: pointer; }
.hl-nofit { display: flex; flex-wrap: wrap; gap: 6px; } .hl-nofit span { display: inline-flex; gap: 8px; align-items: center; padding: 5px 10px; border: 1px solid var(--hl-line2); border-radius: 8px; font-size: 11.5px; color: var(--hl-ink3); } .hl-nofit em { font-style: normal; font-size: 11.5px; color: var(--hl-ink4); align-self: center; }
.hl-need summary { list-style: none; cursor: pointer; font-size: 12px; font-weight: 560; color: var(--hl-acc); } .hl-need summary::-webkit-details-marker { display: none; }
.hl-need[open] { max-height: 420px; overflow: auto; } .hl-need[open] summary { margin-bottom: 8px; }
.hl-need-r { display: grid; grid-template-columns: minmax(0, 1fr) 90px 90px 110px; gap: 12px; padding: 6px 4px; border-bottom: 1px solid var(--hl-line); font-size: 12px; color: var(--hl-ink3); }
.hl-need-r span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .hl-need-r b, .hl-need-r em { text-align: right; font-style: normal; font-weight: 560; color: var(--hl-ink2); } .hl-need-r i { font-style: normal; text-align: right; color: var(--hl-warn); } .hl-need-r.ok i { color: var(--hl-ok); }
.hl-need-hd { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; } .hl-need-hd b, .hl-need-hd em { color: var(--hl-ink4); font-weight: 500; }
/* "You need" (need-driven engine) */
.hl-need-big { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 0; border: 1px solid var(--hl-acc-line); border-radius: var(--hl-r-md); background: linear-gradient(135deg, rgba(141, 145, 255, .08), transparent 60%), var(--hl-s0); }
.hl-need-h { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-right: 1px solid var(--hl-line); min-width: 0; }
.hl-need-h > span:first-child { font-size: 12.5px; font-weight: 560; color: var(--hl-ink2); }
.hl-need-h b { font-size: 34px; font-weight: 500; letter-spacing: -0.03em; line-height: 1.05; color: var(--hl-ink); } .hl-need-h b small { font-size: 14px; color: var(--hl-acc); margin-left: 3px; font-weight: 500; }
.hl-need-h em { font-style: normal; font-size: 12px; color: var(--hl-ink3); line-height: 1.5; }
.hl-need-f { align-self: flex-start; margin-top: 4px; padding: 5px 10px; border-radius: 8px; font-size: 12px; font-weight: 560; }
.hl-need-f.ok { color: var(--hl-ok); background: var(--hl-ok-bg); } .hl-need-f.warn { color: var(--hl-warn); background: var(--hl-warn-bg); }
.hl-need-l { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; margin: 0; padding: 16px 20px; font-size: 12px; align-content: center; }
.hl-need-l dt { color: var(--hl-ink3); } .hl-need-l dd { margin: 0; text-align: right; color: var(--hl-ink2); font-weight: 560; }
.hl-need-l dt:first-of-type, .hl-need-l dd:first-of-type { color: var(--hl-ink); }
.hl-eng-r { grid-template-columns: 1fr .55fr 1.1fr 1.5fr .75fr .75fr .95fr; }
.hl-total-sub.warn { color: var(--hl-warn); } .hl-total-sub.ok { color: var(--hl-ok); }
@media (max-width: 900px) { .hl-need-big { grid-template-columns: 1fr; } .hl-need-h { border-right: 0; border-bottom: 1px solid var(--hl-line); } .hl-eng-r { grid-template-columns: 1fr .5fr .8fr .9fr; } .hl-eng-r > span:nth-child(5) { display: none; } }
.hl-dist .hl-split { gap: 6px; } .hl-dist .hl-split .hl-num { padding: 0 8px; } .hl-dist .hl-split .hl-num input { width: 24px; } .hl-dist .hl-split em { font-size: 11px; margin-right: 2px; }

/* ==== HyperLaunch · Live › Profit + SniperProtect outcome + Relaunch (hl-live-profit.js) ==== */
/* Live sub-steps (01 Trading · 02 Profit) on the wide Live layout: a compact bar, not the full-width step grid */
.hl-grid.wide .hl-steps { display: inline-grid; grid-template-columns: repeat(2, 168px); margin: 0 0 14px; padding: 5px; border: 1px solid var(--hl-line); border-radius: 12px; background: rgba(16, 19, 29, .72); }
.hl-grid.wide .hl-steps .hl-stepb { height: 36px; }

.hl-done-pill { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 8px; margin-left: 10px; border-radius: 99px; background: rgba(159, 180, 255, .1); color: var(--hl-info); font-size: 11px; font-weight: 600; }
.hl-done-pill .i { width: 12px; height: 12px; }
.hl-rof { display: inline-flex; align-items: center; gap: 5px; color: var(--hl-ink3); font-size: 12px; text-decoration: none; }
.hl-rof b { color: var(--hl-ink2); font-weight: 560; }
.hl-rof:hover b { color: var(--hl-acc); }
.hl-rof .i { width: 12px; height: 12px; }
.hl-head-rl { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 14px; border: 0; border-radius: 9px; background: var(--hl-acc); color: var(--hl-acc-ink); font-size: 12.5px; font-weight: 640; cursor: pointer; box-shadow: 0 8px 24px -12px rgba(141, 145, 255, .7); }
.hl-head-rl:hover:not(:disabled) { background: #9da1ff; }
.hl-head-rl:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.hl-cta2 { height: 38px; margin-bottom: 8px; font-size: 13px; }
.hl-profit-link { margin: 0 0 12px; }
.hl-profit-link .arr { margin-left: 2px; }
.hll-live.done { background: rgba(159, 180, 255, .1); color: var(--hl-info); }
.hll-live.done i { background: var(--hl-info); animation: none; box-shadow: none; }

.hlp { display: flex; flex-direction: column; gap: 16px; color: var(--hl-ink); }
.hlp .num { font-variant-numeric: tabular-nums; }
.hlp .pos { color: var(--hl-ok); } .hlp .neg { color: var(--hl-err); }
.hlp .dim { color: var(--hl-ink3); }
.hlp-cap { font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-ink3); white-space: nowrap; }
.hlp-muted { color: var(--hl-ink3); font-size: 12.5px; }
.hlp-head { display: flex; align-items: center; gap: 10px; padding: 0 2px; }
.hlp-head h2 { margin: 0; font-size: 18px; font-weight: 640; letter-spacing: -0.02em; }
.hlp-head p { display: flex; align-items: center; gap: 4px; margin: 3px 0 0; font-size: 12px; color: var(--hl-ink3); }
.hlp-q { display: inline-grid; place-items: center; color: var(--hl-ink4); cursor: help; }
.hlp-q .i { width: 13px; height: 13px; }
.hlp-btn { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; border: 1px solid var(--hl-line2); border-radius: 9px; background: var(--hl-s2); color: var(--hl-ink); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: background .15s, border-color .15s; }
.hlp-btn:hover:not(:disabled) { background: var(--hl-s3); border-color: var(--hl-line3); }
.hlp-btn.ghost { background: none; color: var(--hl-ink2); border-color: var(--hl-line); }
.hlp-btn.primary { background: var(--hl-acc); border-color: transparent; color: var(--hl-acc-ink); box-shadow: 0 8px 24px -12px rgba(141, 145, 255, .7); }
.hlp-btn.primary:hover:not(:disabled) { background: #9da1ff; }
.hlp-btn:disabled { opacity: .45; cursor: not-allowed; }
.hlp-link { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px; border: 1px solid var(--hl-line); border-radius: 8px; background: rgba(255, 255, 255, .02); color: var(--hl-acc); font-size: 12px; cursor: pointer; white-space: nowrap; }
.hlp-link:hover { border-color: var(--hl-acc-line); }
.hlp-est { display: inline-flex; align-items: center; height: 15px; padding: 0 5px; margin-left: 6px; border-radius: 4px; background: rgba(242, 194, 112, .1); color: var(--hl-warn); font-family: var(--mono); font-size: 9.5px; font-style: normal; font-weight: 600; letter-spacing: .02em; vertical-align: 2px; cursor: help; }
.hlp-rec { display: inline-flex; align-items: center; height: 16px; padding: 0 6px; margin-left: 6px; border-radius: 99px; background: rgba(111, 220, 166, .1); color: var(--hl-ok); font-size: 10px; font-style: normal; font-weight: 600; vertical-align: 1px; }
.hlp-card, .hlp-hero, .hlp-sp { border: 1px solid var(--hl-line); border-radius: var(--hl-r); background: linear-gradient(180deg, rgba(20, 24, 38, .92), rgba(15, 18, 28, .92)); box-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 18px 40px -28px rgba(0, 0, 0, .8); min-width: 0; }
.hlp-card-h { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 18px; border-bottom: 1px solid var(--hl-line); }
.hlp-card-h h4 { margin: 0; font-size: 13.5px; font-weight: 620; flex: 1; }
.hlp-card-h > span { font-size: 12px; color: var(--hl-ink3); }
.hlp-foot { display: flex; align-items: center; gap: 7px; margin: 0; padding: 11px 18px; border-top: 1px solid var(--hl-line); font-size: 11.5px; color: var(--hl-ink3); }
.hlp-foot .i { width: 13px; height: 13px; flex: none; }
.hlp-foot.warn { color: var(--hl-warn); }
.hlp-pad { padding: 4px 0; }
.hlp-skel { display: grid; gap: 14px; } .hlp-skel .skel { height: 120px; border-radius: var(--hl-r); }

/* hero: net | invested -> returned | all-in */
.hlp-hero { display: grid; grid-template-columns: 1.15fr 1fr 1fr; min-height: 176px; overflow: hidden; }
.hlp-h1 { display: flex; flex-direction: column; gap: 9px; padding: 20px 22px; min-width: 0; }
.hlp-h1 + .hlp-h1 { border-left: 1px solid var(--hl-line); }
.hlp-h1.net { background: radial-gradient(120% 140% at 0% 0%, rgba(111, 220, 166, .09), transparent 60%); }
.hlp-h1.net.neg { background: radial-gradient(120% 140% at 0% 0%, rgba(255, 131, 145, .09), transparent 60%); }
.hlp-h1.net:not(.pos):not(.neg) { background: none; }
.hlp-big { font-size: 38px; font-weight: 650; letter-spacing: -0.035em; line-height: 1.05; white-space: nowrap; }
.hlp-big small, .hlp-flow small, .hlp-h1 b small { margin-left: 6px; font-size: 13px; font-weight: 560; color: var(--hl-ink3); letter-spacing: 0; }
.hlp-h1.net.pos .hlp-big { color: var(--hl-ok); } .hlp-h1.net.neg .hlp-big { color: var(--hl-err); }
.hlp-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.hlp-chips em { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 7px; background: rgba(255, 255, 255, .04); color: var(--hl-ink2); font-size: 12px; font-style: normal; font-weight: 600; font-variant-numeric: tabular-nums; }
.hlp-chips em.pos { background: rgba(111, 220, 166, .1); color: var(--hl-ok); } .hlp-chips em.neg { background: rgba(255, 131, 145, .1); color: var(--hl-err); }
.hlp-sub { margin-top: auto; font-size: 11.5px; line-height: 1.45; color: var(--hl-ink3); }
.hlp-flow { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; min-width: 0; }
.hlp-flow b { font-size: 26px; font-weight: 630; letter-spacing: -0.03em; }
.hlp-flow .arr { margin: 0 8px; color: var(--hl-ink4); font-size: 18px; }
.hlp-flow.muted b { color: var(--hl-ink4); }
.hlp-flow .hlp-est { align-self: center; }
.hlp-bars { display: grid; gap: 6px; }
.hlp-bars > div { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 8px; font-size: 10.5px; color: var(--hl-ink3); font-family: var(--mono); }
.hlp-bars i { display: block; height: 7px; width: var(--w, 0%); border-radius: 4px; background: var(--hl-ink4); transition: width .5s cubic-bezier(.2, .8, .2, 1); }
.hlp-bars i.in { background: linear-gradient(90deg, #6d72f6, #8d91ff); } .hlp-bars i.out { background: linear-gradient(90deg, #3fae7f, #6fdca6); }

/* fees + groups */
.hlp-two { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.hlp-stack { display: flex; height: 10px; margin: 16px 18px 6px; border-radius: 5px; overflow: hidden; background: var(--hl-s0); gap: 2px; }
.hlp-stack i { display: block; flex: none; width: var(--w, 0%); min-width: 0; height: 100%; }
.f-bridge { background: #5eb1ff; } .f-pump { background: #8d91ff; } .f-tx { background: #6c7391; } .f-prio { background: #b48cff; }
.f-jito { background: #45d4e6; } .f-rent { background: #6fdca6; } .f-orent { background: #3f8f6c; } .f-create { background: #f2c270; }
.hlp-fl { list-style: none; margin: 0; padding: 6px 0 8px; }
.hlp-fl li { display: grid; grid-template-columns: 10px minmax(0, 1fr) 118px 70px 50px; align-items: center; gap: 12px; min-height: 44px; padding: 0 18px; }
.hlp-fl li + li { border-top: 1px solid rgba(31, 36, 51, .6); }
.hlp-fl .sw { width: 10px; height: 10px; border-radius: 3px; }
.hlp-fl .t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hlp-fl .t b { font-size: 12.5px; font-weight: 580; white-space: nowrap; }
.hlp-fl .t span { font-size: 11px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlp-fl .v { text-align: right; font-size: 12.5px; font-weight: 580; }
.hlp-fl .u { text-align: right; font-size: 11.5px; color: var(--hl-ink3); }
.hlp-fl .p { text-align: right; font-size: 11px; color: var(--hl-ink4); font-family: var(--mono); }
.hlp-fl li.rec { background: linear-gradient(90deg, rgba(111, 220, 166, .045), transparent 70%); }
.hlp-gl { list-style: none; margin: 0; padding: 6px 0; }
.hlp-gl li { display: grid; grid-template-columns: minmax(0, 1fr) 90px 104px; align-items: center; gap: 14px; min-height: 58px; padding: 0 18px; }
.hlp-gl li + li { border-top: 1px solid rgba(31, 36, 51, .6); }
.hlp-gl .t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hlp-gl .t b { font-size: 13px; font-weight: 600; }
.hlp-gl .t span { font-size: 11px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlp-gl li > b { text-align: right; font-size: 13px; font-weight: 620; white-space: nowrap; }
.hlp-gl li.none > b { color: var(--hl-ink4); }
.hlp-gl .bar { display: block; height: 6px; border-radius: 3px; background: var(--hl-s0); overflow: hidden; }
.hlp-gl .bar i { display: block; height: 100%; width: var(--w, 0%); border-radius: 3px; background: var(--hl-ink4); }
.hlp-gl .bar i.pos { background: var(--hl-ok); } .hlp-gl .bar i.neg { background: var(--hl-err); }

/* per-wallet table */
.hlp-seg { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--hl-line); border-radius: 9px; background: var(--hl-s0); }
.hlp-seg button { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border: 0; border-radius: 7px; background: none; color: var(--hl-ink3); font-size: 12px; cursor: pointer; }
.hlp-seg button em { font-style: normal; font-size: 10.5px; color: var(--hl-ink4); font-variant-numeric: tabular-nums; }
.hlp-seg button.on { background: #232945; color: var(--hl-ink); box-shadow: inset 0 0 0 1px rgba(141, 145, 255, .16); }
.hlp-seg button.on em { color: var(--hl-acc); }
.hlp-tw { overflow-x: auto; }
.hlp-tbl { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12.5px; }
.hlp-tbl col.c-w { width: 22%; } .hlp-tbl col.c-g { width: 18%; } .hlp-tbl col.c-n { width: 11%; } .hlp-tbl col.c-net { width: 16%; }
.hlp-tbl th { height: 38px; padding: 0 12px; text-align: left; font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--hl-ink3); border-bottom: 1px solid var(--hl-line); white-space: nowrap; background: #11141f; }
.hlp-tbl td { height: 50px; padding: 0 12px; border-bottom: 1px solid rgba(31, 36, 51, .7); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.hlp-tbl th.r, .hlp-tbl td.r { text-align: right; }
.hlp-tbl th:first-child, .hlp-tbl td:first-child { padding-left: 18px; }
.hlp-tbl th:last-child, .hlp-tbl td:last-child { padding-right: 18px; }
.hlp-tbl tbody tr:hover { background: rgba(141, 145, 255, .03); }
.hlp-tbl td:first-child b { display: block; font-weight: 580; overflow: hidden; text-overflow: ellipsis; }
.hlp-tbl td:first-child .mono, .hlp-tbl tfoot td:first-child span { display: block; font-size: 10.5px; color: var(--hl-ink4); margin-top: 2px; }
.hlp-tbl td.r b { display: block; font-weight: 620; }
.hlp-tbl td .u { display: block; font-size: 10.5px; color: var(--hl-ink3); margin-top: 2px; font-variant-numeric: tabular-nums; }
.hlp-tbl tr.org td { color: var(--hl-ink3); }
.hlp-tbl tr.org td.dim { font-size: 11.5px; text-align: left; padding-left: 24px; color: var(--hl-ink4); }
.hlp-tbl tfoot td { height: 54px; border-bottom: 0; border-top: 1px solid var(--hl-line2); background: rgba(141, 145, 255, .035); font-weight: 600; }
.hlp-sort { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.hlp-sort.on { color: var(--hl-acc); }
.hlp-g { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 11.5px; font-weight: 560; background: rgba(255, 255, 255, .04); color: var(--hl-ink2); }
.hlp-g.g-block0 { background: rgba(141, 145, 255, .12); color: #b9bcff; }
.hlp-g.g-wave { background: rgba(69, 212, 230, .1); color: #8ee6f1; }
.hlp-g.g-organic { background: rgba(111, 220, 166, .09); color: #9ce9c3; }
.hlp-g.g-creator { background: rgba(242, 194, 112, .11); color: var(--hl-warn); }
.hlp-g2 { display: inline-flex; margin-left: 6px; font-size: 11px; color: var(--hl-ink4); cursor: help; }
.hlp-more { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 44px; border: 0; border-top: 1px solid var(--hl-line); background: none; color: var(--hl-acc); font-size: 12.5px; font-weight: 560; cursor: pointer; border-radius: 0 0 var(--hl-r) var(--hl-r); }
.hlp-more:hover { background: rgba(141, 145, 255, .04); }

/* pending / partial */
.hlp-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 64px 16px; border: 1px dashed var(--hl-line2); border-radius: var(--hl-r); color: var(--hl-ink3); font-size: 12.5px; text-align: center; }
.hlp-empty > .i { width: 26px; height: 26px; color: var(--hl-ink4); margin-bottom: 4px; }
.hlp-empty b { color: var(--hl-ink); font-size: 15px; font-weight: 620; }
.hlp-empty span { max-width: 460px; line-height: 1.5; }
.hlp-partial { display: flex; flex-direction: column; gap: 16px; }
.hlp-partial .hlp-empty { padding: 34px 16px; }
.hlp-hero.c3 { min-height: 128px; }
.hlp-hero.c3 .hlp-h1 > b { font-size: 26px; font-weight: 630; letter-spacing: -0.03em; }
.hlp-banner { display: flex; align-items: center; gap: 9px; padding: 11px 16px; border-radius: 11px; background: var(--hl-info-bg); color: var(--hl-info); font-size: 12.5px; }
.hlp-banner b { color: var(--hl-ink); font-weight: 600; }

/* SniperProtect outcome card (neutral-info: the protection did its job) */
.hlp-sp { overflow: hidden; background: linear-gradient(180deg, rgba(22, 28, 51, .95), rgba(15, 18, 28, .95)); border-color: rgba(159, 180, 255, .22); }
.hlp-sp.warn { border-color: rgba(242, 194, 112, .3); background: linear-gradient(180deg, rgba(42, 35, 23, .6), rgba(15, 18, 28, .95)); }
.hlp-sp-h { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-bottom: 1px solid var(--hl-line); }
.hlp-sp-ic { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; background: rgba(159, 180, 255, .12); color: var(--hl-info); }
.hlp-sp.warn .hlp-sp-ic { background: rgba(242, 194, 112, .12); color: var(--hl-warn); }
.hlp-sp-ic .i { width: 20px; height: 20px; }
.hlp-sp-h h3 { margin: 0; font-size: 16px; font-weight: 650; letter-spacing: -0.015em; }
.hlp-sp-h p { margin: 3px 0 0; font-size: 12px; color: var(--hl-ink3); }
.hlp-sp-b { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(0, 1.3fr); }
.hlp-sp-b > div { padding: 16px 18px; min-width: 0; }
.hlp-sp-b > div + div { border-left: 1px solid var(--hl-line); }
.hlp-sp-col { display: flex; flex-direction: column; gap: 10px; }
.hlp-snipers { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.hlp-snipers li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px; align-items: center; padding: 8px 10px; border-radius: 9px; background: rgba(255, 131, 145, .06); border: 1px solid rgba(255, 131, 145, .14); font-size: 12px; }
.hlp-snipers li > b { color: var(--hl-err); font-weight: 620; text-align: right; }
.hlp-snipers li > span.num { font-size: 11px; color: var(--hl-ink3); }
.hlp-snipers li > :last-child:not(b):not(.num) { justify-self: end; font-size: 11px; }
.hlp-tl { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.hlp-tl::before { content: ""; position: absolute; left: 6px; right: 16%; top: 6px; height: 2px; background: linear-gradient(90deg, var(--hl-info), var(--hl-ok)); opacity: .5; }
.hlp-tl li { position: relative; display: flex; flex-direction: column; gap: 3px; padding-top: 22px; min-width: 0; }
.hlp-tl li i { position: absolute; top: 0; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--hl-s1); border: 2px solid var(--hl-info); }
.hlp-tl li:last-child i { border-color: var(--hl-ok); background: var(--hl-ok); }
.hlp-tl li.na i { border-color: var(--hl-ink4); background: var(--hl-s1); }
.hlp-tl .k { font-size: 11px; color: var(--hl-ink3); }
.hlp-tl b { font-size: 18px; font-weight: 640; letter-spacing: -0.02em; }
.hlp-tl .s { font-size: 10.5px; color: var(--hl-ink4); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlp-sp-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hlp-sp-stats > div { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hlp-sp-stats b { display: inline-flex; align-items: center; gap: 5px; font-size: 18px; font-weight: 640; letter-spacing: -0.02em; white-space: nowrap; }
.hlp-sp-stats b small { font-size: 11px; color: var(--hl-ink3); font-weight: 560; }
.hlp-sp-stats > div > span:last-child { font-size: 11px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlp-sp-stats .ok b { color: var(--hl-ok); font-size: 14.5px; } .hlp-sp-stats .warn b { color: var(--hl-warn); font-size: 14.5px; }
.hlp-sp-stats b .i { width: 15px; height: 15px; }
.hlp-sp-err { display: flex; align-items: center; gap: 7px; padding: 10px 18px; border-top: 1px solid var(--hl-line); color: var(--hl-warn); font-size: 12px; }
.hlp-sp.compact .hlp-sp-h { padding: 13px 16px; }
.hll-pad-sp { padding-bottom: 0; }
.hlp-rl { display: grid; gap: 1px; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.hlp-rl > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 14px; background: rgba(255, 255, 255, .02); font-size: 12.5px; }
.hlp-rl span { color: var(--text-3); } .hlp-rl b { font-weight: 560; text-align: right; }

/* block-0 report: bundles + waves strip, late / cancelled rows */
.b0-stages { display: flex; flex-direction: column; gap: 10px; }
.b0-bnd { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.b0-bc { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border); background: rgba(255, 255, 255, .02); font-size: 12px; }
.b0-bc .b0-bn { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-3); }
.b0-bc b { font-size: 13px; font-weight: 620; text-transform: capitalize; }
.b0-bc b em { font-style: normal; font-weight: 500; color: var(--text-3); text-transform: none; }
.b0-bc.ok { border-color: rgba(61, 220, 151, .25); } .b0-bc.ok b { color: var(--ok); }
.b0-bc.late { border-color: rgba(245, 184, 75, .28); } .b0-bc.late b { color: var(--warn); }
.b0-bc.bad { border-color: rgba(255, 107, 122, .3); } .b0-bc.bad b { color: var(--err); }
.b0-wv { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border); background: rgba(255, 255, 255, .02); }
.b0-wv-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font-size: 12px; margin-bottom: 8px; }
.b0-cx-t { color: var(--text-2); }
.b0-wv-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(30px, 1fr)); gap: 4px; }
.b0-wv-g i { display: grid; place-items: center; height: 24px; border-radius: 5px; font-style: normal; font-family: var(--mono); font-size: 10.5px; background: rgba(255, 255, 255, .04); color: var(--text-3); cursor: default; }
.b0-wv-g i.ok { background: rgba(61, 220, 151, .13); color: var(--ok); }
.b0-wv-g i.cx { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .035) 0 4px, rgba(255, 255, 255, .015) 4px 8px); color: var(--text-4); }
.b0-wv-g i.bad { background: rgba(255, 107, 122, .14); color: var(--err); }
.b0-late { display: inline-flex; margin-left: 6px; padding: 0 6px; height: 18px; align-items: center; border-radius: 5px; background: var(--warn-soft); color: var(--warn); font-size: 10.5px; font-family: var(--font, inherit); }
.pill.b0-cxp { background: rgba(255, 255, 255, .04); color: var(--text-3); border-color: rgba(255, 255, 255, .06); }
tr.b0-cx td { color: var(--text-3); }
tr.b0-cx td b { color: var(--text-2); font-weight: 500; }

@media (max-width: 1280px) {
  .hlp-hero { grid-template-columns: 1fr 1fr; } .hlp-hero .allin { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--hl-line); }
  .hlp-two { grid-template-columns: minmax(0, 1fr); }
  .hlp-sp-b { grid-template-columns: 1fr 1fr; } .hlp-sp-stats { grid-column: 1 / -1; border-left: 0 !important; border-top: 1px solid var(--hl-line); }
}
.hlp-sp-b { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr) minmax(0, 1.5fr); }
.hlp-sp-stats .ok b, .hlp-sp-stats .warn b { font-size: 13.5px; white-space: normal; line-height: 1.25; }
.hlp-g.g-cx { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .04) 0 4px, rgba(255, 255, 255, .015) 4px 8px); color: var(--hl-ink3); }
.b0-tip { display: inline-flex; align-items: center; height: 17px; margin-left: 6px; padding: 0 5px; border-radius: 4px; background: rgba(69, 212, 230, .1); color: var(--cyan); font-size: 10px; font-family: var(--mono); vertical-align: 1px; }

/* ================================================================ pre-live cockpit (zero shift) — REDESIGN.md
   The Live cockpit is mounted as soon as the plan exists and keeps ONE DOM with FIXED dimensions through
   ready → launching → live → trading. Budget at 1440×900: head 55 · tabs 52 (Trading|Profit ride in it) · hero 200 ·
   controls 88 · history tabs 40 · table head 30 · 8 rows × 40. */
.hl.on-live .hl-head { padding-bottom: 10px; }
.hl.on-live .hl-tabs { margin-bottom: 12px; }
.hl-tabs-sp { flex: 1; }
.hl-tabs .hl-steps { display: flex; gap: 4px; padding: 0; margin: 0; border: 0; background: none; }
.hl-tabs .hl-steps .hl-stepb { height: 38px; padding: 0 16px; gap: 8px; font-size: 12.5px; }
.hl-tab.live, .hl-tab.ready { min-width: 132px; justify-content: center; }
.hl-tab-rdy { width: 6px; height: 6px; border-radius: 50%; background: var(--hl-ok); opacity: .75; box-shadow: 0 0 0 3px rgba(111, 220, 166, .10); }
.hl-tab.ready:not(.on) { color: var(--hl-ink2); }

.hll.v3 { display: flex; flex-direction: column; gap: 10px; }
.hll.v3 .hll-top { height: 200px; grid-template-columns: minmax(0, 1fr) 360px; gap: 12px; }
.hll.v3 .hll-hero { grid-template-rows: 40px minmax(0, 1fr) 38px; height: 200px; }
/* hero head: market cap · change chips · status slot (fixed width) — the bottom border doubles as the launch progress line */
.hll.v3 .hll-hero-h { position: relative; gap: 12px; padding: 0 8px 0 16px; }
.hll.v3 .hll-hero-h .hll-mc { display: flex; flex-direction: row; align-items: baseline; gap: 10px; flex: none; }
.hll.v3 .hll-hero-h .hll-mc .hll-k { justify-self: auto; }
.hll.v3 .hll-hero-h .hll-mc > b { width: 128px; min-width: 0; font-size: 21px; line-height: 1; letter-spacing: -0.03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hll.v3 .hll-hero-h .hll-chg { flex: none; width: 196px; overflow: hidden; align-self: center; margin: 0; gap: 6px; }
.hll.v3 .hll-chg em { height: 22px; line-height: 22px; padding: 0 8px; font-size: 11px; }
.hll-ls { flex: none; width: 360px; height: 32px; display: grid; grid-template-columns: 8px minmax(0, 1fr) 28px 96px; align-items: center; gap: 8px; }
.hll-ls-d { width: 8px; height: 8px; border-radius: 50%; background: var(--hl-ok); opacity: .7; box-shadow: 0 0 0 3px rgba(111, 220, 166, .10); }
.hll-ls[data-phase="launching"] .hll-ls-d { background: var(--hl-acc); opacity: 1; box-shadow: 0 0 0 3px rgba(141, 145, 255, .18); animation: hlpulse 1.2s infinite; }
.hll-ls[data-phase="live"] .hll-ls-d { opacity: 1; animation: hlpulse 2s infinite; box-shadow: 0 0 0 3px rgba(111, 220, 166, .15); }
.hll-ls[data-phase="failed"] .hll-ls-d { background: var(--hl-err); opacity: 1; box-shadow: 0 0 0 3px rgba(255, 131, 145, .15); }
.hll-ls[data-phase="done"] .hll-ls-d { background: var(--hl-ink3); }
.hll-ls-tx { display: flex; flex-direction: column; justify-content: center; gap: 1px; min-width: 0; height: 32px; }
.hll-ls-tx b { font-size: 12.5px; font-weight: 650; line-height: 15px; color: var(--hl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-ls[data-phase="ready"] .hll-ls-tx b { color: var(--hl-ok); font-weight: 600; }
.hll-ls[data-phase="failed"] .hll-ls-tx b { color: var(--hl-err); }
.hll-ls-tx span { font-size: 11px; line-height: 14px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.hll-ls-bar { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: none; pointer-events: none; visibility: hidden; }
.hll-ls-bar i { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: linear-gradient(90deg, var(--hl-acc2), var(--hl-acc)); box-shadow: 0 0 8px rgba(141, 145, 255, .6); transition: width .6s ease; }
.hll-ls[data-phase="launching"] .hll-ls-bar, .hll-ls[data-phase="failed"] .hll-ls-bar { visibility: visible; }
.hll-ls[data-phase="failed"] .hll-ls-bar i { background: var(--hl-err); box-shadow: none; }
.hll-ls-det { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--hl-line2); border-radius: 8px; background: none; color: var(--hl-ink3); cursor: pointer; }
.hll-ls-det:hover { color: var(--hl-ink); border-color: var(--hl-line3); }
.hll-ls-go { width: 96px; height: 28px; padding: 0 8px; border: 1px solid var(--hl-line2); border-radius: 8px; background: none; color: var(--hl-ink2); font-size: 12px; font-weight: 620; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-ls-go:hover:not(:disabled) { color: var(--hl-ink); border-color: var(--hl-line3); }
.hll-ls-go.go { border-color: transparent; background: linear-gradient(180deg, #62dfa9, #3fc48c); color: #07140e; font-weight: 700; box-shadow: 0 6px 18px -10px rgba(69, 212, 154, .9); }
.hll-ls-go:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
/* chart: calm placeholder (planned mcap line) → candles in place; the launch view overlays the chart area only */
.hll.v3 .hll-hero-b { grid-template-columns: minmax(0, 1fr) 300px; }
.hll.v3 .hll-chart { padding: 0; }
.hll.v3 .hll-chart .hp-rail { position: absolute; inset: 6px 4px 4px 10px; height: auto; margin: 0; z-index: 1; }
.hll.v3 .hll-chart-wait { position: absolute; inset: 0; display: block; }
/* candles own their own empty state: once the rail is live (or holds a chart) the cockpit placeholder must not paint over it */
.hll.v3 .hll-chart:has(.hp-rail.live) .hll-chart-wait, .hll.v3 .hll-chart:has(.cndl) .hll-chart-wait { display: none; }
.hll-pline { position: absolute; left: 16px; right: 16px; top: 64%; border-top: 1px dashed rgba(141, 145, 255, .28); }
.hll-wait-t { position: absolute; left: 0; right: 0; top: 22%; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.hll-wait-t b { font-size: 13px; font-weight: 600; color: var(--hl-ink2); }
.hll-wait-t span { font-size: 11.5px; color: var(--hl-ink3); }
.hll-chart-ov { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.hll-chart-ov.lh-on { pointer-events: auto; background: #10131d; }
.hll-chart-ov .lh.lh-compact { height: 100%; grid-template-columns: 92px minmax(0, 1fr) auto; grid-template-rows: minmax(0, 1fr); justify-items: start; align-items: center; gap: 14px; padding: 6px 12px 6px 14px; border: 0; border-radius: 0; box-shadow: none; }
.lh-compact .lh-stage { width: 92px; }
.lh-compact .lh-logo { filter: drop-shadow(0 0 14px rgba(124, 108, 240, 0.3)); }
.lh-compact .lh-text { justify-items: start; text-align: left; gap: 2px; width: auto; min-width: 0; }
.lh-compact .lh-kicker { font-size: 10px; letter-spacing: .12em; }
.lh-compact .lh-pct { font-size: 12px; }
.lh-compact .lh-title { font-size: 20px; line-height: 1.15; }
.lh-compact .lh-feed { height: 36px; margin: 2px 0 0; align-items: flex-start; }
.lh-compact .lh-act { font-size: 12px; min-height: 18px; gap: 7px; }
.lh-compact .lh-act::before { width: 5px; height: 5px; }
.lh-compact .lh-act[data-age="1"] { font-size: 11px; }
.lh-compact .lh-act[data-age="2"] { display: none; }
.lh-compact .lh-foot { flex-direction: column; align-self: center; gap: 4px; margin: 0; }
.lh-compact .lh-foot .btn { height: 26px; font-size: 11.5px; }
.hll-chart-ov.lh-leaving .lh { animation: lh-leave 0.5s var(--ease) forwards; }
/* position tiles */
.hll.v3 .hll-tile2 { gap: 3px; padding: 0 14px; }
.hll.v3 .hll-tile2 > b { font-size: 15.5px; }
.hll.v3 .hll-tile2 .hll-k { font-size: 9.5px; }
.hll.v3 .hll-ts { font-size: 10.5px; }
.hll.v3 .hll-strip b { font-size: 12.5px; }
.hll.v3 .hll-strip > div { gap: 3px; padding: 0 14px; }
/* take profit: same card, 200 px — scope toggle in the header, one-line rows, armed list scrolls */
.hll.v3 .hll-tp { position: relative; }
.hll.v3 .hll-tp-h { justify-content: flex-start; align-items: center; height: 36px; padding: 8px 14px 4px; }
.hll.v3 .hll-tp-h div { flex-direction: row; align-items: baseline; }
.hll.v3 .hll-tp-h span { display: none; }
.hll.v3 .hll-tp-h b { font-size: 13px; }
.hll.v3 .hll-tp-b { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 4px 8px; padding: 0 14px 6px; }
.hll.v3 .hll-tp-b > .hll-tp-l:nth-of-type(3) { display: none; }
.hll.v3 .hll-tp-row { height: 30px; gap: 5px; }
.hll.v3 .hll-tp-row.scope { position: absolute; top: 6px; right: 12px; width: 206px; height: 28px; margin: 0; }
.hll.v3 .hll-tp-row.scope .hll-mini button { height: 22px; font-size: 11px; padding: 0 6px; }
.hll.v3 .hll-chip2 { flex-direction: row; gap: 5px; border-radius: 8px; }
.hll.v3 .hll-chip2 b { font-size: 12px; } .hll.v3 .hll-chip2 small { font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.hll.v3 .hll-tp-in { height: 30px; }
.hll.v3 .hll-tp-cust .hll-mini button { height: 24px; }
.hll.v3 .hll-tp-cust .hll-x { width: 26px; height: 26px; }
.hll.v3 .hll-tp-go { grid-column: 1 / -1; height: 30px; margin: 2px 0 0; font-size: 12px; }
.hll.v3 .hll-tp-msg { grid-column: 1 / -1; height: 13px; font-size: 10.5px; }
.hll.v3 .hll-tp-list { min-height: 0; padding: 2px 6px; }
.hll.v3 .hll-tp-li { height: 34px; }
.hll.v3 .hll-tp-empty { min-height: 30px; font-size: 11px; }
/* primary controls: directly under the chart, above the history tabs (never hidden by a tab switch) */
.hll.v3 .hll-main { overflow: clip; }
.hll.v3 .hll-bar { height: 46px; gap: 12px; padding: 0 12px 0 14px; }
.hll.v3 .hll-mode button { width: 92px; height: 32px; font-size: 13px; }
.hll.v3 .hll-modehint { width: 260px; flex: none; }
.hll.v3 .hll-modehint b { font-size: 10px; }
.hll.v3 .hll-modehint span { font-size: 12px; }
.hll.v3 .hll-exec .hll-mini button { height: 24px; }
.hll.v3 .hll-num { height: 28px; }
.hll.v3 .hll-bulk { height: 42px; gap: 10px; padding: 0 12px 0 16px; }
.hll.v3 .hll-bulk .hll-act, .hll.v3 .hll-bulk .hll-ghost { height: 30px; }
.hll.v3 .hll-bsum { flex: 1; }
.hll.v3 .hll-tabsrow { height: 40px; padding: 0 12px 0 6px; }
.hll.v3 .hll-tabs button { font-size: 12.5px; padding: 0 12px; }
.hll.v3 .hll-search { height: 28px; }
.hll.v3 .hll-pane { min-height: 320px; }
/* the grid: 40 px rows, fixed columns, tabular numbers; planned values quiet until they become real */
.hll.v3 .hll-tbl th { height: 30px; }
.hll.v3 .hll-tbl td { height: 40px; padding-top: 0; padding-bottom: 0; }
.hll.v3 .hll-tbl tfoot td { height: 36px; }
.hll.v3 .hll-tbl, .hll.v3 .hll-c2 { font-variant-numeric: tabular-nums; }
.hll.v3 .hll-c2 { gap: 1px; }
.hll.v3 .hll-c2 > b { font-size: 12.5px; line-height: 16px; }
.hll.v3 .hll-c2 > span { font-size: 10.5px; line-height: 13px; height: 13px; }
.hll.v3 .hll-c2.w > b { gap: 6px; }
.hll-wn { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.hll.v3 .hll-tag { flex: none; font-size: 9px; padding: 1px 5px; }
.hll-tag.g-b0 { background: rgba(141, 145, 255, .10); color: #b3b6ff; }
.hll-tag.g-wave { background: rgba(94, 200, 230, .10); color: #86d4ea; }
.hll-tag.g-organic { background: rgba(255, 255, 255, .05); color: var(--hl-ink3); }
.hll-c2.exp > b, .hll-exp { color: var(--hl-ink2); font-weight: 540; }
.hll-c2.exp > span { color: var(--hl-ink4); }
.hll.v3 .hll-act { height: 28px; }
.hll.v3 .hll-lim { width: 30px; height: 28px; }
.hll.v3 .hll-idle { height: 16px; line-height: 16px; font-size: 11px; }
.hll.v3 .hll-c2.st .pill { height: 18px; font-size: 10px; }
.hll-rdy { display: inline-flex; align-items: center; gap: 6px; height: 16px; font-size: 11px; font-weight: 600; color: var(--hl-ok); opacity: .8; }
.hll-rdy i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
/* quiet "ready": the buttons are in place with their final labels, outlined, not clickable until the mint is live */
.hll-acts.rdy .hll-act:disabled { border-style: dashed; border-color: color-mix(in srgb, var(--mc) 28%, transparent); color: color-mix(in srgb, var(--mc) 55%, var(--hl-ink4)); background: none; cursor: default; }
.hll-acts.rdy .hll-act.cust:disabled { border-color: var(--hl-line2); color: var(--hl-ink4); }
.hll-acts.rdy + .hll-lim, .hll-acts.rdy .hll-lim:disabled { opacity: .5; cursor: default; }
.hll-lim:disabled { opacity: .45; cursor: not-allowed; }
.hll-gw.pre .hll-bar::before { opacity: .55; }
.hll.v3 .hll-keys { height: 34px; }
@media (max-width: 1500px) { .hll.v3 .hll-modehint { width: 200px; } }
@media (max-width: 1400px) {
  .hll.v3 .hll-top { grid-template-columns: minmax(0, 1fr) 330px; }
  .hll.v3 .hll-hero-h .hll-chg { display: none; }
  .hll-ls { width: 340px; }
  .hll.v3 .hll-hero-b { grid-template-columns: minmax(0, 1fr) 264px; }
  .hll.v3 .hll-modehint { display: none; }
}
/* pre-live cockpit · pass 2: the header never grows when the mint appears; the hero head fits its box (overflow clip:
   a focused control can never scroll the hero sideways); planned-vs-live cells keep one height */
.hl-subt { height: 22px; }
.hl-subt .addr .copy { width: 20px; height: 20px; }
.hll.v3 .hll-hero, .hll.v3 .hll-hero-h, .hll.v3 .hll-chart, .hll.v3 .hll-top, .hll.v3 .hll-tp { overflow: clip; }
.hll.v3 .hll-hero-h .hll-chg { flex: 0 1 196px; width: auto; min-width: 0; }
.hll.v3 .hll-chg em { flex: none; max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.hll.v3 .hll-chg em[data-h="c5"] { width: 86px; text-align: center; }
.hll.v3 .hll-hero-h .hll-sp { flex: 1 1 0; min-width: 0; }
.hll-ls:not([data-phase="ready"]):not([data-phase="failed"]) .hll-ls-det { visibility: hidden; }
.hll.v3 .hll-c2.w > span { height: 14px; overflow: hidden; display: flex; align-items: center; }
.hll.v3 .hll-c2.w .addr { font-size: 10.5px; height: 14px; }
.hll.v3 .hll-c2.w .addr .copy { width: 14px; height: 14px; }
.hll.v3 .hll-c2.w .addr .copy .i { width: 11px; height: 11px; }
.hll.v3 .hll-chip2 { flex-direction: column; gap: 0; line-height: 1.15; }
.hll.v3 .hll-chip2.cust small { display: none; }
.hll.v3 .hll-chip2 small { max-width: 100%; }
/* the hero's single grid track never grows to its head's min-content (the change chips filling in at landing) */
.hll.v3 .hll-hero { grid-template-columns: minmax(0, 1fr); }
.hll.v3 .hll-hero-h > * { min-width: 0; }
.hll.v3 .hll-hero-h .hll-mc, .hll.v3 .hll-ls { flex-shrink: 0; }
/* strip cells + chart placeholder: every value slot has a fixed box (an empty pool / "—" never re-centres the label) */
.hll.v3 .hll-strip > div { justify-content: center; }
.hll.v3 .hll-strip > div > :last-child { height: 18px; line-height: 18px; display: flex; align-items: center; }
.hll.v3 .hll-strip .bond > .hll-bond { height: 6px; }
.hll.v3 .hll-strip .hll-k { height: 12px; line-height: 12px; }
.hll-wait-t b, .hll-wait-t span { display: block; width: 100%; height: 16px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hll-ls { width: 344px; }
.hll.v3 .hll-chg em { max-width: 120px; }
/* ≤1400 px: the whole grid (actions included) fits the card — no sideways scroll a button click could trigger */
@media (max-width: 1400px) {
  .hll.v3 .hll-tbl { min-width: 0; }
  .hll.v3 .hll-tbl col.c-cb { width: 38px; } .hll.v3 .hll-tbl col.c-h { width: 92px; } .hll.v3 .hll-tbl col.c-v { width: 98px; }
  .hll.v3 .hll-tbl col.c-p { width: 80px; } .hll.v3 .hll-tbl col.c-s { width: 82px; } .hll.v3 .hll-tbl col.c-st { width: 92px; } .hll.v3 .hll-tbl col.c-a { width: 372px; }
  .hll.v3 .hll-tbl th:first-child, .hll.v3 .hll-tbl td:first-child { padding-left: 12px; }
  .hll.v3 .hll-tbl th, .hll.v3 .hll-tbl td { padding-left: 7px; padding-right: 7px; }
  .hll.v3 .hll-tbl .hll-act { width: 84px; font-size: 11.5px; } .hll.v3 .hll-tbl .hll-act.cust { width: 56px; }
  .hll.v3 .hll-acts { gap: 4px; }
  .hll.v3 .hll-acts.bulk .hll-act { width: 86px; }
}
@media (max-width: 1180px) { .hll.v3 .hll-tbl { min-width: 1000px; } }
.lh-compact .lh-kicker { white-space: nowrap; overflow: hidden; max-width: 100%; }
.lh-compact .lh-text, .lh-compact .lh-feed { min-width: 0; max-width: 100%; }

/* ---- Wallets: per-chain totals + Withdraw all in SOL (20260929-withdrawall) */
.chain-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; padding: 1px 7px 1px 6px; border-radius: 5px; border: 1px solid var(--border); color: var(--text-2); background: rgba(255,255,255,0.03); white-space: nowrap; }
.chain-tag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--text-3); }
.chain-tag.c-solana::before { background: linear-gradient(135deg, #9945ff, #14f195); }
.chain-tag.c-arbitrum::before { background: #28a0f0; }
.chain-tag.c-base::before { background: #0052ff; }
.chain-tag.c-ethereum::before { background: #8a92b2; }
.chain-tbl td, .chain-tbl th { white-space: nowrap; }
.chain-tbl tr.total-row td { border-top: 1px solid var(--border-2); background: rgba(255,255,255,0.02); }
.tag.st { color: var(--ok); border-color: rgba(61,220,151,0.22); background: var(--ok-soft); }
.tag.warn { color: var(--warn); border-color: rgba(245,184,75,0.25); background: var(--warn-soft); }
.modal.xwide { width: min(1040px, 100%); }
.modal.xwide .modal-b { max-height: calc(100vh - 190px); overflow: auto; }
.wa-top { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; }
.wa-opts { gap: 14px; flex-wrap: wrap; min-height: 32px; }
.wa-sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.wa-sum > div { padding: 10px 12px; border: 1px solid var(--border); border-radius: 9px; background: rgba(255,255,255,0.02); min-width: 0; }
.wa-sum span { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-3); }
.wa-sum b { display: block; font-size: 16px; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.wa-sum em { display: block; font-style: normal; font-size: 11px; color: var(--text-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-dest { font-size: 12px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wa-dest .mono { color: var(--text); word-break: break-all; }
.wa-list { max-height: 380px; border: 1px solid var(--border); border-radius: 9px; }
.wa-tbl td { vertical-align: top; }
.wa-prog tbody tr { height: 46px; }
.wa-w { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 150px; }
.wa-steps { display: flex; gap: 4px; flex-wrap: wrap; }
.wa-chip { display: inline-flex; align-items: center; gap: 4px; height: 21px; padding: 0 7px; border-radius: 5px; font-size: 11px; border: 1px solid var(--border); color: var(--text-2); background: rgba(255,255,255,0.03); white-space: nowrap; font-variant-numeric: tabular-nums; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.wa-chip em { font-style: normal; color: var(--text-3); }
.wa-chip .i { width: 12px; height: 12px; }
.wa-chip.run { color: var(--accent); border-color: var(--accent-line); background: var(--accent-soft); }
.wa-chip.ok { color: var(--ok); border-color: rgba(61,220,151,0.25); background: var(--ok-soft); }
.wa-chip.ok em { color: var(--ok); }
.wa-chip.err { color: var(--err); border-color: rgba(255,107,122,0.3); background: var(--err-soft); }
.wa-chip.warn { color: var(--warn); border-color: rgba(245,184,75,0.3); background: var(--warn-soft); }
.wa-chip.skip { color: var(--text-4); text-decoration: line-through; text-decoration-color: rgba(255,255,255,0.25); }
.wa-warn { font-size: 11px; color: var(--warn); margin-top: 4px; }
.wa-skipped { font-size: 11.5px; line-height: 1.5; }
.wa-ack { padding: 10px 12px; border: 1px solid rgba(255,107,122,0.25); border-radius: 9px; background: var(--err-soft); color: var(--text); }
.switch.sm { width: 26px; height: 15px; }
.switch.sm::after { width: 9px; height: 9px; }
.switch.sm.on::after { transform: translateX(11px); }
@media (max-width: 760px) { .wa-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wa-top { grid-template-columns: 1fr; } }
.wa-tbl td { white-space: normal; }
.wa-tbl td:nth-child(3), .wa-prog td:nth-child(2) { width: 100%; }
.wa-warn { white-space: normal; overflow-wrap: anywhere; }
.wa-tbl td.r { white-space: nowrap; }

/* ---- budget vs funder (2026-09-30): Fan-out shortfall card, budget hint, plan panel Needs line, Settings afford hint ---- */
.hlw-short { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px; border: 1px solid rgba(242, 194, 112, .28); border-radius: var(--hl-r-md); background: var(--hl-warn-bg); }
.hlw-short-h { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; }
.hlw-short-h > .i { color: var(--hl-warn); align-self: center; flex: none; }
.hlw-short-h > b { color: var(--hl-warn); font-size: 15px; font-weight: 640; }
.hlw-short-h > span { color: var(--hl-ink2); font-size: 12.5px; }
.hlw-short > p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--hl-ink2); }
.hlw-short > p b { color: var(--hl-warn); font-weight: 600; }
.hlw-short-o { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.hlw-short-o > li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r-sm); background: var(--hl-s2); }
.hlw-short-o > li > .grow { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hlw-short-o > li > .grow > b { font-size: 13px; color: var(--hl-ink); font-weight: 600; }
.hlw-short-o > li > .grow > span { font-size: 12px; color: var(--hl-ink2); line-height: 1.45; }
.hlw-short-o > li > .grow > span b { color: var(--hl-ink); font-weight: 600; }
.hlw-short-o > li > .hlw-btn { flex: none; }
.hlw-short-n { flex: none; width: 22px; height: 22px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--hl-s3, rgba(255,255,255,.06)); color: var(--hl-ink2); font: 600 11px var(--mono, monospace); }
.hlw-short.partial { gap: 8px; }
.hlw-hint b.warn { color: var(--hl-warn); font-weight: 600; }
.hlw-short-warn { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 12px; padding: 10px 12px; border-radius: var(--hl-r-sm); background: var(--hl-warn-bg); color: var(--hl-ink2); font-size: 12.5px; line-height: 1.45; }
.hlw-short-warn > .i { color: var(--hl-warn); flex: none; margin-top: 2px; } .hlw-short-warn b { color: var(--hl-warn); }
@media (max-width: 760px) { .hlw-short-o > li { flex-wrap: wrap; } .hlw-short-o > li > .grow { flex: 1 1 calc(100% - 40px); } .hlw-short-o > li > .hlw-btn { margin-left: 34px; } }
.hl-fshort { margin-top: -6px; padding: 9px 11px; border-radius: var(--hl-r-sm); background: var(--hl-warn-bg); display: flex; flex-direction: column; gap: 2px; text-align: right; font-size: 11.5px; }
.hl-fshort > b { color: var(--hl-warn); font-size: 12.5px; font-weight: 640; }
.hl-fshort > span { color: var(--hl-ink2); }
.hl-fshort-a { display: flex; justify-content: flex-end; align-items: center; gap: 14px; margin-top: 4px; color: var(--hl-ink3); }
.hl-fshort-a .hl-link { margin: 0; font-size: 12px; font-weight: 600; }
.hl-afford { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 6px 12px; margin: 10px 0 0; padding: 10px 12px; border-radius: var(--hl-r-sm); border: 1px solid var(--hl-line2); font-size: 12.5px; line-height: 1.5; color: var(--hl-ink2); }
.hl-afford > .i { flex: none; margin-top: 3px; }
.hl-afford > span { flex: 1 1 320px; min-width: 0; }
.hl-afford b { color: var(--hl-ink); font-weight: 600; }
.hl-afford.ok > .i { color: var(--hl-ok); }
.hl-afford.warn { background: var(--hl-warn-bg); border-color: rgba(242, 194, 112, .22); } .hl-afford.warn > .i { color: var(--hl-warn); }
.hl-afford.muted > .i { color: var(--hl-ink3); }
.hl-afford .hl-link { margin: 0; font-weight: 600; align-self: center; }
/* launch failure in the plan panel (2026-09-30): wallet problems one per line + actions */
.hl-lp .hl-lp-w { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; grid-column: 1 / -1; }
.hl-lp .hl-lp-w li { display: flex; flex-wrap: wrap; gap: 2px 8px; padding: 5px 8px; border-radius: 6px; background: var(--hl-err-bg, rgba(255,131,145,.08)); font-size: 11.5px; line-height: 1.4; color: var(--hl-ink2); }
.hl-lp .hl-lp-w li b { color: var(--hl-ink); font-weight: 600; } .hl-lp .hl-lp-w li span { min-width: 0; overflow-wrap: anywhere; }
.hl-lp-act { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 10px 0 4px; }
.hl-lp-act .hl-link { margin: 0; }
.hl-ld-fail { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(255,131,145,.25); background: var(--hl-err-bg, rgba(255,131,145,.08)); }
.hl-ld-fail > b { display: inline-flex; align-items: center; gap: 6px; color: var(--hl-err, #ff8391); font-size: 13px; }
.hl-ld-fail > em { font-style: normal; font-size: 12.5px; color: var(--hl-ink2, inherit); }
.hl-ld-fail .hl-lp-w { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 3px; }
.hl-ld-fail .hl-lp-w li { display: flex; flex-wrap: wrap; gap: 2px 8px; padding: 5px 8px; border-radius: 6px; background: rgba(0,0,0,.18); font-size: 12px; line-height: 1.4; }
.hl-ld-fail .hl-lp-w li b { font-weight: 600; } .hl-ld-fail .hl-lp-w li span { min-width: 0; overflow-wrap: anywhere; }

/* ==== Wallets & funding › Fan-out — team funding card (zero shift, per-row retry) · 2026-09-30 fanoutux ==== */
.hlw-tf { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 10px; border: 1px solid var(--hl-line2); border-radius: var(--hl-r); background: var(--hl-s2); transition: border-color .3s; }
.hlw-tf.t-run { border-color: rgba(141,145,255,.35); background: radial-gradient(120% 140% at 0% 0%, rgba(141,145,255,.08), transparent 55%), var(--hl-s2); }
.hlw-tf.t-ok { border-color: var(--hl-ok-line); } .hlw-tf.t-warn { border-color: rgba(242,194,112,.25); } .hlw-tf.t-err { border-color: rgba(255,131,145,.25); }
.hlw-tf-h { display: flex; align-items: center; gap: 14px; height: 44px; }
.hlw-tf .hlw-prog-ic { transition: background .3s, color .3s; }
.hlw-tf.t-run .hlw-prog-ic { background: rgba(141,145,255,.12); } .hlw-tf.t-ok .hlw-prog-ic { background: rgba(111,220,166,.14); color: var(--hl-ok); }
.hlw-tf.t-warn .hlw-prog-ic { background: rgba(242,194,112,.14); color: var(--hl-warn); } .hlw-tf.t-err .hlw-prog-ic { background: rgba(255,131,145,.14); color: var(--hl-err); }
.hlw-tf-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.hlw-tf-t b { font-size: 15px; font-weight: 620; height: 20px; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-tf-sum { display: block; height: 17px; line-height: 17px; font-size: 12px; color: var(--hl-ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.hlw-tf .hlw-prog-tot { flex: none; width: 170px; text-align: right; align-items: stretch; } .hlw-tf .hlw-prog-tot small { white-space: nowrap; }
/* distribution strip: one bar per wallet (height = USDC share, colour = its bridge, fill = its state) */
.hlw-tf-dist { display: flex; flex-direction: column; gap: 6px; height: 88px; }
.hlw-tf-bars { display: flex; align-items: stretch; gap: 6px; height: 64px; }
.hlw-tf-bar { --c: var(--hl-acc); flex: 1 1 0; min-width: 0; max-width: 72px; display: flex; flex-direction: column; gap: 3px; }
.hlw-tf-bw { flex: 1; display: flex; align-items: flex-end; border-radius: 5px; background: var(--hl-s0); overflow: hidden; }
.hlw-tf-bw i { display: block; width: 100%; height: var(--h, 0%); border-radius: 5px 5px 0 0; background: var(--c); transition: height .4s var(--ease), opacity .3s, background .3s; }
.hlw-tf-bar.t-run .hlw-tf-bw i { opacity: .5; animation: hlwtfpulse 1.6s ease-in-out infinite; }
.hlw-tf-bar.t-err .hlw-tf-bw i { opacity: .28; box-shadow: inset 0 2px 0 var(--hl-err); } .hlw-tf-bar.t-warn .hlw-tf-bw i { opacity: .35; box-shadow: inset 0 2px 0 var(--hl-warn); }
.hlw-tf-bar.t-mute .hlw-tf-bw i { opacity: .15; }
@keyframes hlwtfpulse { 50% { opacity: .8; } }
.hlw-tf-bar em { height: 12px; line-height: 12px; font: 600 10px var(--font); font-style: normal; text-align: center; color: var(--hl-ink3); font-variant-numeric: tabular-nums; }
.hlw-tf-lg { display: flex; align-items: center; gap: 14px; height: 18px; overflow: hidden; flex-wrap: nowrap; white-space: nowrap; }
.hlw-tf-lg .hlw-lg { font-size: 11px; }
/* bulk bar: always there (disabled when nothing failed) — it never appears / disappears under the header */
.hlw-tf-bulk { display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 0 0 2px; border-top: 1px solid var(--hl-line); padding-top: 8px; box-sizing: content-box; }
.hlw-tf-all { display: inline-flex; align-items: center; gap: 8px; width: 118px; flex: none; font-size: 12px; color: var(--hl-ink2); white-space: nowrap; cursor: pointer; }
.hlw-tf-bulk .hlw-btn.sm { height: 28px; }
/* rows: fixed height, fixed columns, two fixed lines; the history expands only on request */
.hlw-tf-list { display: flex; flex-direction: column; }
.hlw-tf-row { display: grid; grid-template-columns: 18px minmax(110px, 150px) minmax(0, 1fr) 92px 178px; grid-template-rows: 56px; column-gap: 12px; align-items: center; height: 57px; box-sizing: border-box; border-bottom: 1px solid var(--hl-line); font-size: 12.5px; }
.hlw-tf-row.open { height: auto; grid-template-rows: 56px auto; }
.hlw-tf-row.on { background: rgba(141,145,255,.05); }
.hlw-tf-cb { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; }
.hlw-tf-w { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hlw-tf-w b { font-weight: 600; color: var(--hl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; height: 17px; line-height: 17px; }
.hlw-tf-w em { display: flex; align-items: center; gap: 6px; font-style: normal; font-size: 11px; color: var(--hl-ink3); height: 15px; white-space: nowrap; overflow: hidden; }
.hlw-tf-tag { display: inline-grid; place-items: center; min-width: 20px; height: 15px; padding: 0 3px; border-radius: 4px; background: var(--hl-s3); color: var(--hl-ink2); font: 600 10px var(--font); font-variant-numeric: tabular-nums; }
.hlw-tf-m { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hlw-tf-l1 { display: flex; align-items: center; gap: 9px; height: 20px; min-width: 0; white-space: nowrap; }
.hlw-tf-pill { flex: none; display: inline-block; width: 86px; height: 20px; line-height: 20px; box-sizing: border-box; border-radius: 6px; padding: 0 8px; text-align: left; font: 620 11px var(--font); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: var(--hl-s3); color: var(--hl-ink2); }
.hlw-tf-pill.t-run { background: rgba(141,145,255,.13); color: var(--hl-acc); } .hlw-tf-pill.t-ok { background: rgba(111,220,166,.13); color: var(--hl-ok); }
.hlw-tf-pill.t-err { background: rgba(255,131,145,.12); color: var(--hl-err); } .hlw-tf-pill.t-warn { background: rgba(242,194,112,.12); color: var(--hl-warn); } .hlw-tf-pill.t-mute { color: var(--hl-ink3); }
.hlw-tf-l2 .hlw-stg { flex: none; width: 86px; box-sizing: border-box; padding: 0 8px; }
.hlw-tf-at { --c: var(--hl-acc); flex: 1 1 auto; min-width: 0; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--hl-ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-tf-at i { flex: none; width: 7px; height: 7px; border-radius: 2px; background: var(--c); }
.hlw-tf-l2 { display: flex; align-items: center; gap: 9px; height: 16px; min-width: 0; font-size: 11.5px; color: var(--hl-ink3); }
.hlw-tf-tx { flex: 1 1 auto; min-width: 0; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-tf-l2.t-err .hlw-tf-tx { color: #e7a0aa; } .hlw-tf-l2.t-warn .hlw-tf-tx { color: #e2c48c; } .hlw-tf-l2.t-ok .hlw-tf-tx { color: var(--hl-ok); } .hlw-tf-l2.t-run .hlw-tf-tx { color: var(--hl-ink2); }
.hlw-tf-l2 em { font-style: normal; color: var(--hl-ink3); }
.hlw-tf-v { display: flex; flex-direction: column; align-items: stretch; gap: 3px; text-align: right; white-space: nowrap; min-width: 0; }
.hlw-tf-v b, .hlw-tf-v > small { display: block; overflow: hidden; text-overflow: ellipsis; }
.hlw-tf-row.t-err .hlw-tf-v b, .hlw-tf-row.t-warn .hlw-tf-v b, .hlw-tf-row.t-mute .hlw-tf-v b { color: var(--hl-ink3); font-weight: 500; }
.hlw-tf-v b { font-weight: 560; height: 17px; line-height: 17px; } .hlw-tf-v b small, .hlw-tf-v > small { color: var(--hl-ink3); font-weight: 500; font-size: 10.5px; }
.hlw-tf-act { display: flex; flex-direction: column; gap: 4px; align-items: stretch; width: 178px; }
.hlw-tf-a1, .hlw-tf-a2 { display: flex; align-items: center; justify-content: flex-end; gap: 5px; height: 24px; }
.hlw-tf-act .hlw-btn.sm { height: 24px; padding: 0 9px; font-size: 11.5px; border-radius: 7px; gap: 5px; }
.hlw-tf-act .hlw-ic { width: 24px; height: 24px; flex: none; }
.hlw-tf-act .hlw-ic b, .hlw-td-a .hlw-ic b { font-size: 11px; font-weight: 640; color: var(--hl-ink2); }
.hlw-tf-act .hlw-ic.none, .hlw-td-a .hlw-ic.none { visibility: hidden; }
.hlw-tf-act .hlw-sel.sm { flex: 1; min-width: 0; width: 0; height: 24px; padding: 0 22px 0 8px; font-size: 11.5px; border-radius: 7px; }
.hlw-tf-act .hlw-link { font-size: 11.5px; white-space: nowrap; }
.hlw-tf-hist { grid-column: 2 / -1; margin: 0 0 10px; padding: 8px 10px; list-style: none; border-radius: 8px; background: var(--hl-s0); display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; }
.hlw-tf-hist li { display: grid; grid-template-columns: 26px 130px minmax(0, 1fr) 70px; gap: 8px; align-items: baseline; color: var(--hl-ink3); }
.hlw-tf-hist li .n { color: var(--hl-ink4); font-variant-numeric: tabular-nums; } .hlw-tf-hist li b { color: var(--hl-ink2); font-weight: 600; }
.hlw-tf-hist li .t { color: var(--hl-ink2); white-space: normal; overflow-wrap: anywhere; } .hlw-tf-hist li.cur b { color: var(--hl-ink); } .hlw-tf-hist li.swap .t { color: var(--hl-ink3); }
.hlw-tf-hist time { text-align: right; color: var(--hl-ink4); }
.hlw-tf-f { display: flex; align-items: center; gap: 12px; height: 32px; }
.hlw-tf-note { flex: 1; min-width: 0; display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-tf.t-ok .hlw-tf-note { color: var(--hl-ok); }
.hlw-tf-f .hlw-btn.sm { height: 28px; }
.hlw-tf-dis.off { visibility: hidden; }
@media (max-width: 1360px) { .hlw-tf-row { grid-template-columns: 18px minmax(96px, 128px) minmax(0, 1fr) 84px 170px; column-gap: 10px; } .hlw-tf-act { width: 170px; } .hlw-tf .hlw-prog-tot { width: 150px; } }
/* Transfer details drawer (team-wide) — the drawer lives outside .hl: re-declare the tokens it uses */
.drawer:has(.hlw-td) { width: min(1080px, 96vw); }
.hlw-td { --hl-s0: #0d1019; --hl-s2: #141826; --hl-s3: #1a1f30; --hl-line: #1f2433; --hl-line2: #2a3044; --hl-line3: #394059; --hl-ink: #e9ebf3; --hl-ink2: #a3a9bd; --hl-ink3: #707790; --hl-ink4: #4d5369; --hl-acc: #8d91ff; --hl-ok: #6fdca6; --hl-warn: #f2c270; --hl-err: #ff8391;
  display: flex; flex-direction: column; gap: 10px; }
.hlw-td-h { display: flex; align-items: center; gap: 10px; height: 20px; font-size: 12px; color: var(--hl-ink3); white-space: nowrap; overflow: hidden; }
.hlw-td-w { overflow-x: auto; }
.hlw-td-tbl { width: 100%; min-width: 900px; table-layout: fixed; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.hlw-td-tbl th { height: 30px; text-align: left; font: 600 10.5px var(--font); letter-spacing: .04em; text-transform: uppercase; color: var(--hl-ink3); border-bottom: 1px solid var(--hl-line2); white-space: nowrap; overflow: hidden; }
.hlw-td-tbl th.r, .hlw-td-tbl td.r { text-align: right; }
.hlw-td-tbl th:nth-child(1) { width: 118px; } .hlw-td-tbl th:nth-child(2) { width: 36px; } .hlw-td-tbl th:nth-child(3) { width: 104px; } .hlw-td-tbl th:nth-child(4) { width: 66px; }
.hlw-td-tbl th:nth-child(5) { width: 96px; } .hlw-td-tbl th:nth-child(6) { width: 132px; } .hlw-td-tbl th:nth-child(7) { width: 100px; } .hlw-td-tbl th:nth-child(8) { width: 70px; } .hlw-td-tbl th:nth-child(10) { width: 62px; }
.hlw-td-tbl td { height: 40px; padding: 0 6px 0 0; border-bottom: 1px solid var(--hl-line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--hl-ink2); }
.hlw-td-tbl td b { color: var(--hl-ink); font-weight: 600; }
.hlw-td-tbl .hlw-tf-at { font-size: 12px; }
.hlw-td-tx { display: inline-flex; align-items: center; gap: 6px; } .hlw-td-tx a { color: var(--hl-acc); }
.hlw-td-st > span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .hlw-td-st em { font-style: normal; color: var(--hl-ink3); }
tr.t-err .hlw-td-st > span { color: #e7a0aa; } tr.t-warn .hlw-td-st > span { color: #e2c48c; } tr.t-ok .hlw-td-st > span { color: var(--hl-ok); }
.hlw-td-a > span { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.hlw-td-a .hlw-ic { width: 24px; height: 24px; display: inline-grid; place-items: center; border: 1px solid var(--hl-line2); border-radius: 7px; background: var(--hl-s2); color: var(--hl-ink2); cursor: pointer; }
.hlw-td-hr td { height: auto; white-space: normal; padding: 4px 0 8px; } .hlw-td-hr .hlw-tf-hist { margin: 0; }
/* the funder chip in the section header: a fixed box (a changing balance never moves it) */
.hlw-s-fan .hlw-funder { min-width: 128px; justify-content: flex-end; }
.hlw-s-fan .hlw-funder .num { min-width: 52px; text-align: right; }
/* row actions line 1: the action buttons + the history button in a fixed slot at the right */
.hlw-tf-a1 { display: grid; grid-template-columns: minmax(0, 1fr) 24px; justify-content: stretch; }
.hlw-tf-ab { display: flex; align-items: center; justify-content: flex-end; gap: 5px; min-width: 0; }
.hlw-tf-lg .hlw-lg.off { opacity: .35; } .hlw-tf-lg .hlw-lg em { min-width: 16px; }
/* the font shorthand resets line-height: pills centre their word vertically */
.hlw-tf-pill { line-height: 20px; }
.hlw-td-tbl th { padding-right: 8px; } .hlw-td-tbl td { padding-right: 8px; }
/* narrower name / amount / action columns: the status text gets the room */
.hlw-tf-row { grid-template-columns: 18px minmax(96px, 124px) minmax(0, 1fr) 86px 168px; }
.hlw-tf-act { width: 168px; }
@media (max-width: 1360px) { .hlw-tf-row { grid-template-columns: 18px minmax(88px, 112px) minmax(0, 1fr) 80px 162px; column-gap: 10px; } .hlw-tf-act { width: 162px; } }
/* narrow card (1280 and below): the amount moves under the wallet name, the status text keeps its room */
.hlw-tf-list { container-type: inline-size; }
.hlw-tf-wv { display: none; }
@container (max-width: 660px) {
  .hlw-tf-row { grid-template-columns: 18px 108px minmax(0, 1fr) 150px; column-gap: 10px; }
  .hlw-tf-v { display: none; } .hlw-tf-w em .mono { display: none; } .hlw-tf-wv { display: inline; color: var(--hl-ink2); }
  .hlw-tf-act { width: 150px; }
}
.hlw-tf-hist li .t em { font-style: normal; color: var(--hl-ink3); } .hlw-tf-hist li.retry b, .hlw-tf-hist li.retry .n { color: var(--hl-acc); } .hlw-tf-hist li.try b { color: var(--hl-ink3); font-weight: 560; }

/* ==== Fan-out team card = the whole plan (every wallet: have / need / short, status, actions) · 2026-09-30 teamcard ==== */
.hlw-tf-row { grid-template-columns: 18px minmax(96px, 124px) minmax(0, 1fr) 104px 168px; }
.hlw-tf-v b small { font-weight: 500; color: var(--hl-ink3); } .hlw-tf-v > small.ok { color: var(--hl-ok); } .hlw-tf-v > small.sh { color: #e2c48c; }
.hlw-tf-row.k-covered .hlw-tf-v b { color: var(--hl-ink); font-weight: 560; }
.hlw-tf-l2 .hlw-stg.none { visibility: hidden; }
.hlw-tf-bar.t-ok .hlw-tf-bw i { opacity: .85; }
.hlw-tf-bar.t-warn .hlw-tf-bw i { background: var(--hl-warn); opacity: .6; box-shadow: none; }
.hlw-tf-bar.t-mute .hlw-tf-bw i { opacity: 0; }
.hlw-tf-lg .hlw-lg-key { font-size: 11px; color: var(--hl-ink4); }
.hlw-tf-selh { flex: 1; min-width: 0; font-size: 11.5px; color: var(--hl-acc); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: right; }
.hlw-tf-bulk > .grow { display: none; }
.hlw-tf-gas { display: inline-flex; align-items: center; gap: 4px; min-width: 0; font-size: 11px; color: var(--hl-warn); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-tf-gas .i { flex: none; }
@media (max-width: 1360px) { .hlw-tf-row { grid-template-columns: 18px minmax(88px, 112px) minmax(0, 1fr) 96px 162px; } }
@container (max-width: 660px) { .hlw-tf-row { grid-template-columns: 18px 108px minmax(0, 1fr) 150px; } }
/* the plan section: attached to the card above (one surface, not a separate unrelated card) */
.hlw-plansec { display: flex; flex-direction: column; gap: 16px; margin-top: -10px; padding: 18px 20px 20px; border: 1px solid var(--hl-line2); border-top: 1px dashed var(--hl-line3); border-radius: 0 0 var(--hl-r) var(--hl-r); background: var(--hl-s1); }
.hlw-plansec-h { display: flex; align-items: center; gap: 12px; }
.hlw-plansec-h b { display: block; font-size: 14.5px; font-weight: 620; } .hlw-plansec-h span { font-size: 12px; color: var(--hl-ink3); }
.hlw-plansec-n { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(141,145,255,.12); color: var(--hl-acc); flex: none; }
.hlw-plansec .hlw-ctl, .hlw-plansec .hlw-dist, .hlw-plansec .hlw-act, .hlw-plansec .hlw-short { margin: 0; }
.hlw-tf:has(+ .hlw-plansec) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }

/* ---------------------------------------------------------------- wallet count & removal (walletcount, 2026-09-30) */
.modal-f { flex-wrap: wrap; }
.hl-hchoice { display: grid; gap: 10px; }
.hl-hchoice p, .hlt-rm p { display: flex; gap: 9px; align-items: flex-start; margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--text-2); }
.hl-hchoice p .i-sm, .hlt-rm p .i-sm { flex: none; margin-top: 3px; color: var(--text-3); }
.hl-hchoice b { color: var(--text); font-weight: 600; }
.hlt-rm { display: grid; gap: 10px; }
.hlt-rm-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 180px; overflow: auto; }
.hlt-rm-l li { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; padding: 5px 9px; border-radius: 7px; background: var(--warn-soft); }
.hlt-rm-l li span { color: var(--warn); font-variant-numeric: tabular-nums; }
.hlt-rm-w { color: var(--warn) !important; }
.hlt-rm-w .i-sm { color: var(--warn) !important; }
.hlt-pick { display: grid; gap: 4px; max-height: min(52vh, 420px); overflow: auto; margin: -2px 0; }
.hlt-pick-r { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 9px; cursor: pointer; }
.hlt-pick-r:hover { background: var(--hover); }
.hlt-pick-r:has(input:checked) { border-color: var(--accent-line); background: var(--accent-soft); }
.hlt-pick-n { display: flex; flex-direction: column; min-width: 0; }
.hlt-pick-n b { font-size: 13px; font-weight: 580; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlt-pick-n .mono { font-size: 11px; color: var(--text-3); }
.hlt-pick-v { font-size: 12.5px; } .hlt-pick-v small { color: var(--text-3); }

/* Fan-out gate: two explicit choices */
.hlw-gate-a { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; flex: none; max-width: 52%; }
@container (max-width: 760px) { .hlw-gate-hc { flex-wrap: wrap; } .hlw-gate-a { max-width: none; width: 100%; } }

/* team card: remove icon (always reserved in the second action line; the creator keeps an empty slot) */
.hlw-tf-a2 .hlw-tf-rm { flex: none; order: 9; width: 24px; height: 24px; color: var(--hl-ink3); }
.hlw-tf-a2 .hlw-tf-rm.none { visibility: hidden; display: inline-block; }
.hlw-tf-a2 .hlw-tf-rm:not(:disabled):hover { color: var(--hl-err); border-color: rgba(255,107,122,.4); background: var(--hl-err-bg); }
.hlw-tf-a2 .hlw-tf-rm:disabled { opacity: .35; cursor: default; }
.hlw-tf-rmsel { flex: none; }
.hlw-tf-rmsel:not(:disabled):hover { color: var(--hl-err); }
.hlw-tf-add { display: inline-flex; align-items: center; gap: 10px; flex: none; font-size: 11.5px; color: var(--hl-ink3); }
.hlw-tf-add .hlw-link { font-size: 11.5px; gap: 4px; }
.hlw-tf-add .hlw-link:disabled { color: var(--hl-ink4); cursor: default; }

/* Launch settings › Wallets & supply: the actual team, compact */
.hlt { margin-top: 12px; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s1); overflow: hidden; }
.hlt.hlt-short { border-color: rgba(245,184,75,.35); }
.hlt-h { display: flex; align-items: center; gap: 6px; padding: 9px 12px; font-size: 12.5px; border-bottom: 1px solid var(--hl-line); flex-wrap: wrap; }
.hlt-h b { font-weight: 600; } .hlt-h > span { color: var(--hl-ink3); }
.hlt-h .hlt-h-w { display: inline-flex; align-items: center; gap: 5px; color: var(--hl-warn); margin-left: 6px; }
.hlt-l { list-style: none; margin: 0; padding: 2px 0; max-height: 232px; overflow: auto; }
.hlt-r { display: grid; grid-template-columns: minmax(0, 1fr) 96px 132px 26px; align-items: center; gap: 10px; height: 32px; padding: 0 8px 0 12px; font-size: 12.5px; }
.hlt-r + .hlt-r { border-top: 1px solid var(--hl-line); }
.hlt-r-n { display: flex; align-items: center; gap: 6px; min-width: 0; }
.hlt-r-n b { font-weight: 560; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlt-r-n em { font-style: normal; font-size: 10.5px; padding: 1px 6px; border-radius: 5px; background: var(--hl-s3); color: var(--hl-ink3); }
.hlt-r-a { font-size: 11px; color: var(--hl-ink3); }
.hlt-r-s { text-align: right; font-variant-numeric: tabular-nums; } .hlt-r-s small, .hlt-r-s em { color: var(--hl-ink3); font-style: normal; }
.hlt-r-x.hlw-ic { width: 24px; height: 24px; color: var(--hl-ink3); }
.hlt-r-x.hlw-ic:not(:disabled):hover { color: var(--hl-err); border-color: rgba(255,107,122,.4); background: var(--hl-err-bg); }
.hlt-r-x.hlw-ic:disabled { opacity: .35; cursor: default; }
.hlt-add { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-top: 1px solid var(--hl-line); background: var(--hl-s2); flex-wrap: wrap; }
.hlt-add-l { font-size: 12px; font-weight: 600; color: var(--hl-ink2); margin-right: 4px; }
.hlt-add-w { font-size: 11.5px; color: var(--hl-ink3); }
@media (max-width: 560px) { .hlt-r { grid-template-columns: minmax(0, 1fr) 110px 26px; } .hlt-r-a { display: none; } }
.hl-hchoice .hl-hc { display: flex; align-items: flex-start; gap: 12px; width: 100%; height: auto; padding: 12px 14px; text-align: left; justify-content: flex-start; white-space: normal; }
.hl-hchoice .hl-hc > svg { flex: none; margin-top: 2px; }
.hl-hchoice .hl-hc span { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hl-hchoice .hl-hc b { font-size: 13.5px; font-weight: 620; color: inherit; }
.hl-hchoice .hl-hc em { font-style: normal; font-size: 12px; font-weight: 450; opacity: .78; line-height: 1.45; }
/* team card bulk bar: never overflows the card (Remove selected joined it) */
.hlw-tf-bulk { min-width: 0; }
.hlw-tf-bulk > .hlw-btn, .hlw-tf-det { flex: none; white-space: nowrap; }
@container (max-width: 720px) { .hlw-tf-det > span { display: none; } }
/* funding confirm: one line per wallet */
.hlw-cf-l { display: grid; gap: 2px; margin: 0 0 12px; max-height: 220px; overflow: auto; }
.hlw-cf-r { display: grid; grid-template-columns: minmax(0, 1fr) 96px 104px 92px; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 7px; background: rgba(255,255,255,.025); font-size: 12.5px; }
.hlw-cf-r b { font-weight: 560; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-cf-r .num { text-align: right; font-variant-numeric: tabular-nums; } .hlw-cf-r small { color: var(--text-3); }
.hlw-cf-b { --c: var(--accent); display: inline-flex; align-items: center; gap: 6px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hlw-cf-b i { width: 8px; height: 8px; border-radius: 3px; background: var(--c); flex: none; }
.hlw-cf-o { margin-top: 4px; }
/* SniperProtect thresholds (dump-or-not rule) under the switch */
.hl-sp-th { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: -4px; padding: 12px 20px 12px 72px; border: 1px solid var(--hl-ok-line); border-top: 0; border-radius: 0 0 var(--hl-r-md) var(--hl-r-md); background: var(--hl-s0); }
.hl-sp.on:has(+ .hl-sp-th) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.hl-sp-th label { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--hl-ink2); }
.hl-sp-th label > span:last-child { color: var(--hl-ink3); }
@media (max-width: 560px) { .hl-sp-th { padding-left: 16px; } }
.hl-sp-w { margin-top: -10px; } .hl-sp-w > .hl-sp { margin-top: 0; } .hl-sp-w > .hl-sp-th { margin-top: 0; }
@media (max-width: 1360px) { .hlw-tf-det > span { display: none; } .hlw-tf-bulk { gap: 6px; } }
/* completed project: the explanation under the Relaunch button (hl-live-profit.js relaunchNote) */
.hlp-rl-wrap { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; max-width: 360px; }
.hlp-rl-note { margin: 0; font-size: 11.5px; line-height: 1.4; color: var(--text-3); text-align: right; }
/* profit: "Result by group" + "Result by source" stacked in the right column; source total row */
.hlp-col2 { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.hlp-src .hlp-gl li.tot { border-top: 1px solid var(--border); padding-top: 8px; }
/* profit: launch stats + SniperProtect watch */
.hlp-stats .hlp-kv { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; border-radius: 10px; overflow: hidden; }
.hlp-stats .hlp-kv > div { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; background: rgba(255,255,255,.02); min-width: 0; }
.hlp-stats .hlp-kv span { font-size: 11px; color: var(--text-3); } .hlp-stats .hlp-kv em { font-style: normal; font-size: 11px; color: var(--text-3); }
.hlp-watch-sum { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 8px; padding: 8px 10px; border-radius: 9px; background: rgba(255,255,255,.03); font-size: 12.5px; }
.hlp-watch-sum.ok { background: var(--ok-soft); color: var(--text); } .hlp-watch-sum.warn { background: var(--warn-soft); }
.hlp-dec { margin: 0 0 8px; padding-left: 16px; font-size: 12px; color: var(--text-2); } .hlp-dec li.dump { color: var(--warn); } .hlp-dec li.clean { color: var(--text-3); }
.hlp-fail { display: flex; flex-direction: column; gap: 3px; margin: 0 0 8px; padding: 8px 10px; border-radius: 9px; background: rgba(255,255,255,.02); font-size: 12px; }
.hlp-fail > div { display: flex; gap: 10px; align-items: center; color: var(--text-2); } .hlp-fail a { color: var(--accent); }

/* unfinished relaunch bar (hl-shell.js renderRlBar) */
.hl-rlbar { display: flex; align-items: center; gap: 12px; margin: -6px 2px 16px; padding: 11px 14px; border-radius: var(--hl-r-sm, 10px); background: var(--hl-warn-bg); font-size: 12.5px; }
.hl-rlbar.run { background: color-mix(in srgb, var(--hl-acc) 14%, transparent); }
.hl-rlbar .grow { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hl-rlbar .grow span { color: var(--hl-ink3); }
.hl-rlbar-go { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 13px; border: 0; border-radius: 9px; background: var(--hl-acc); color: var(--hl-acc-ink); font-size: 12.5px; font-weight: 640; cursor: pointer; white-space: nowrap; }
.hl-rlbar-go:hover { background: #9da1ff; }
@media (max-width: 640px) { .hl-rlbar { flex-wrap: wrap; } .hl-rlbar-go { width: 100%; justify-content: center; } }

/* Sell all (hl-live-grid.js): every wallet > 1 token, no selection */
.hll-sellall { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border: 1px solid color-mix(in srgb, var(--hl-err) 55%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--hl-err) 14%, transparent); color: var(--hl-err); font-size: 12px; font-weight: 640; cursor: pointer; white-space: nowrap; }
.hll-sellall:hover:not(:disabled) { background: color-mix(in srgb, var(--hl-err) 24%, transparent); }
.hll-sellall:disabled { opacity: .45; cursor: not-allowed; }
.hll-armb { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 999px; font-size: 11px; font-weight: 620; white-space: nowrap; max-width: 74ch; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; border: 1px solid transparent; }
.hll-armb[hidden] { display: none; }
.hll-armb.ok { background: color-mix(in srgb, #22c55e 16%, transparent); color: #4ade80; border-color: color-mix(in srgb, #22c55e 40%, transparent); }
.hll-armb.part { background: color-mix(in srgb, #f59e0b 16%, transparent); color: #fbbf24; border-color: color-mix(in srgb, #f59e0b 40%, transparent); }
.hll-armb.bad { max-width: 58ch; background: color-mix(in srgb, var(--hl-err) 18%, transparent); color: var(--hl-err); border-color: color-mix(in srgb, var(--hl-err) 50%, transparent); }
.hll-armb.idle { color: var(--hl-ink3); border-color: color-mix(in srgb, var(--hl-ink3) 30%, transparent); }

/* Sniper mode pill (hl-shell plan panel) */
.hl-snipe { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 640; }
.hl-snipe.green { background: color-mix(in srgb, #22c55e 18%, transparent); color: #4ade80; }
.hl-snipe.red { background: color-mix(in srgb, var(--hl-err) 18%, transparent); color: var(--hl-err); }

/* ================================================================ Wallets page (ui-next/pages/wallets.js) */
.wp { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 0; height: calc(100vh - var(--topbar-h) - 48px); min-height: 520px; background: var(--hl-bg, #0b0e16); border: 1px solid var(--hl-line, #1f2433); border-radius: 12px; overflow: hidden; }
.wp-side { display: flex; flex-direction: column; border-right: 1px solid var(--hl-line, #1f2433); background: var(--hl-s1, #10131d); min-width: 0; }
.wp-chain { padding: 14px 14px 8px; display: flex; gap: 6px; }
.wp-chip { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--hl-line2, #2a3044); color: var(--hl-ink2, #a3a9bd); font-size: 12.5px; font-weight: 600; }
.wp-chip.on { background: var(--hl-s3, #1a1f30); color: var(--hl-ink, #e9ebf3); border-color: var(--hl-line3, #394059); }
.wp-sol { width: 14px; height: 11px; flex: none; display: inline-block; background: linear-gradient(135deg, #9945ff, #19fb9b); clip-path: polygon(14% 0, 100% 0, 86% 28%, 0 28%, 14% 36%, 100% 36%, 86% 64%, 0 64%, 14% 72%, 100% 72%, 86% 100%, 0 100%); }
.wp-sol.sm { width: 11px; height: 9px; margin-right: 6px; vertical-align: -1px; }
.wp-tree { padding: 6px 8px; display: flex; flex-direction: column; gap: 2px; overflow-y: auto; flex: 1; }
.wp-node-w { position: relative; display: flex; align-items: center; }
.wp-node-w .wp-node { flex: 1; width: auto; }
.wp-node { flex: none; width: 100%; display: flex; align-items: center; gap: 9px; height: 34px; padding: 0 10px 0 24px; border-radius: 8px; color: var(--hl-ink2, #a3a9bd); font-size: 13px; text-align: left; background: none; border: 0; cursor: pointer; min-width: 0; }
.wp-node.root { padding-left: 10px; color: var(--hl-ink, #e9ebf3); font-weight: 600; }
.wp-node span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wp-node em { margin-left: auto; font-style: normal; font-size: 11.5px; color: var(--hl-ink4, #4d5369); font-variant-numeric: tabular-nums; }
.wp-node:hover { background: var(--hl-s2, #141826); color: var(--hl-ink, #e9ebf3); }
.wp-node.on { background: var(--hl-sel, #1a1f38); color: var(--hl-ink, #e9ebf3); }
.wp-node.on em { color: var(--hl-ink2, #a3a9bd); }
.wp-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--hl-ink, #e9ebf3); box-shadow: 0 0 0 3px rgba(233,235,243,0.08); }
.wp-more { position: absolute; right: 4px; width: 24px; height: 24px; border-radius: 6px; border: 0; background: none; color: var(--hl-ink3, #707790); opacity: 0; cursor: pointer; font-size: 15px; line-height: 1; }
.wp-node-w:hover .wp-more { opacity: 1; }
.wp-node-w:hover .wp-node em { opacity: 0; }
.wp-more:hover { background: var(--hl-s3, #1a1f30); color: var(--hl-ink, #e9ebf3); }
.wp-newf { margin: 8px 6px 0; height: 36px; border-radius: 9px; border: 1px dashed var(--hl-line2, #2a3044); background: none; color: var(--hl-ink2, #a3a9bd); font-size: 12.5px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; }
.wp-newf:hover { border-color: var(--hl-acc, #8d91ff); color: var(--hl-ink, #e9ebf3); }
/* folder colors */
.wp-fi { display: inline-flex; width: 15px; height: 15px; flex: none; }
.wp-fi svg { width: 15px; height: 15px; fill: currentColor; stroke: none; }
.c-amber { color: #f0a63b; } .c-teal { color: #2ec4b6; } .c-violet { color: #9b8cff; } .c-rose { color: #ff6b8b; } .c-sky { color: #5eb1ff; } .c-lime { color: #9be15d; } .c-slate { color: #8a93a8; }
/* pre-funder card (bottom-left, like the mockup's Funder) */
.wp-pre { margin: 10px; padding: 12px; border-radius: 12px; background: linear-gradient(160deg, rgba(141,145,255,0.16), rgba(141,145,255,0.05)); border: 1px solid rgba(141,145,255,0.28); }
.wp-pre-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12.5px; font-weight: 650; color: var(--hl-ink, #e9ebf3); }
.wp-pre-h > span { display: inline-flex; align-items: center; gap: 6px; }
.wp-copy { display: inline-flex; align-items: center; gap: 4px; border: 0; background: none; color: var(--hl-ink3, #707790); font: 500 11.5px var(--mono); cursor: pointer; padding: 0; }
.wp-copy:hover { color: var(--hl-ink, #e9ebf3); }
.wp-pre-b { display: flex; align-items: baseline; gap: 5px; margin: 10px 0; font-variant-numeric: tabular-nums; }
.wp-pre-b b { font-size: 17px; font-weight: 700; color: var(--hl-ink, #e9ebf3); }
.wp-pre-b small { font-size: 11px; color: var(--hl-ink3, #707790); }
.wp-pre-b .sep { width: 1px; height: 14px; background: var(--hl-line2, #2a3044); margin: 0 6px; align-self: center; }
.wp-pre-a { display: flex; gap: 6px; }
.wp-pre-a .wp-btn { flex: 1; justify-content: center; }
.wp-pre-n { margin: 8px 0 0; font-size: 11px; line-height: 1.45; color: var(--hl-ink3, #707790); }
/* main */
.wp-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.wp-side { min-height: 0; }
.wp-bar { display: flex; align-items: center; gap: 6px; padding: 12px 14px; border-bottom: 1px solid var(--hl-line, #1f2433); flex-wrap: wrap; }
.wp-count { height: 28px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 7px; background: var(--hl-s3, #1a1f30); color: var(--hl-ink, #e9ebf3); font-size: 12px; font-weight: 650; }
.wp-search { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 7px; border: 1px solid var(--hl-line, #1f2433); background: var(--hl-s0, #0d1019); color: var(--hl-ink3, #707790); width: 240px; max-width: 100%; }
.wp-search input { border: 0; outline: 0; background: none; color: var(--hl-ink, #e9ebf3); font-size: 12.5px; width: 100%; }
.wp-selinfo { font-size: 12px; color: var(--hl-acc, #8d91ff); font-weight: 600; margin-left: 4px; }
.wp-btn { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 7px; border: 1px solid var(--hl-line2, #2a3044); background: var(--hl-s2, #141826); color: var(--hl-ink, #e9ebf3); font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.wp-btn:hover:not(:disabled) { background: var(--hl-s3, #1a1f30); border-color: var(--hl-line3, #394059); }
.wp-btn:disabled { opacity: 0.4; cursor: default; }
.wp-btn.primary { background: var(--hl-acc, #8d91ff); border-color: transparent; color: var(--hl-acc-ink, #0c0e1d); }
.wp-menu { position: relative; }
.wp-pop { display: none; position: absolute; right: 0; top: 34px; z-index: 20; min-width: 260px; padding: 6px; border-radius: 10px; background: var(--hl-s2, #141826); border: 1px solid var(--hl-line2, #2a3044); box-shadow: 0 18px 40px -12px rgba(0,0,0,0.6); }
.wp-pop.open { display: block; }
.wp-pop a, .wp-pop button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border-radius: 7px; border: 0; background: none; color: var(--hl-ink, #e9ebf3); font-size: 12.5px; text-align: left; text-decoration: none; cursor: pointer; flex-wrap: wrap; }
.wp-pop a em { flex-basis: 100%; padding-left: 22px; font-style: normal; font-size: 11px; color: var(--hl-ink3, #707790); }
.wp-pop a:hover, .wp-pop button:hover { background: var(--hl-s3, #1a1f30); }
.wp-tbl { flex: 1; overflow: auto; }
.wp-tbl table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.wp-tbl thead th { position: sticky; top: 0; z-index: 1; background: var(--hl-bg, #0b0e16); text-align: left; font-size: 11.5px; font-weight: 600; color: var(--hl-ink3, #707790); padding: 9px 12px; border-bottom: 1px solid var(--hl-line, #1f2433); white-space: nowrap; }
.wp-tbl th.sortable { cursor: pointer; } .wp-tbl th.sortable:hover, .wp-tbl th.on { color: var(--hl-ink, #e9ebf3); }
.wp-tbl td { padding: 0 12px; height: 38px; border-bottom: 1px solid rgba(31,36,51,0.55); color: var(--hl-ink, #e9ebf3); white-space: nowrap; }
.wp-tbl tbody tr { cursor: pointer; }
.wp-tbl tbody tr:hover td { background: rgba(26,31,48,0.55); }
.wp-tbl tbody tr.sel td { background: rgba(141,145,255,0.08); }
.wp-tbl tr.off td { opacity: 0.45; }
.wp-tbl .num { text-align: right; font-variant-numeric: tabular-nums; }
.wp-tbl .ctr { text-align: center; }
.wp-tbl .ck { width: 34px; padding-right: 0; }
.wp-tbl input[type=checkbox] { width: 15px; height: 15px; accent-color: var(--hl-acc, #8d91ff); cursor: pointer; }
.wp-tbl .wal { display: flex; align-items: center; gap: 7px; height: 38px; }
.wp-tbl .pk { font: 600 12.5px var(--mono); }
.wp-tbl .num b { font-weight: 650; }
.wp-tbl .num em { font-style: normal; margin-left: 6px; font-size: 11.5px; color: var(--hl-ink3, #707790); }
.wp-tbl .dim, .wp-tbl td.dim { color: var(--hl-ink4, #4d5369); }
.wp-ico { display: inline-flex; border: 0; background: none; color: var(--hl-ink4, #4d5369); cursor: pointer; padding: 2px; border-radius: 5px; }
.wp-ico:hover { color: var(--hl-ink, #e9ebf3); background: var(--hl-s3, #1a1f30); }
.wp-off { font-style: normal; font-size: 10.5px; padding: 1px 6px; border-radius: 5px; background: var(--hl-s3, #1a1f30); color: var(--hl-ink3, #707790); }
.wp-launch { display: inline-flex; width: 22px; height: 22px; border-radius: 5px; overflow: hidden; background: var(--hl-s3, #1a1f30); align-items: center; justify-content: center; }
.wp-launch img { width: 100%; height: 100%; object-fit: cover; }
.wp-launch b { font-size: 9.5px; color: var(--hl-ink2, #a3a9bd); }
.wp-fund { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; }
.wp-br { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 6px; font: 700 9.5px var(--font); font-style: normal; letter-spacing: -0.02em; color: #0b0e16; background: var(--c); box-shadow: 0 0 0 1px rgba(255,255,255,0.08) inset; }
.wp-tbl td.flash { animation: wpFlash 1s var(--ease-out, ease); }
@keyframes wpFlash { from { background: rgba(61,220,151,0.16); } to { background: transparent; } }
.wp-foot { display: flex; align-items: center; gap: 18px; padding: 10px 14px; border-top: 1px solid var(--hl-line, #1f2433); font-size: 12px; color: var(--hl-ink2, #a3a9bd); font-variant-numeric: tabular-nums; }
.wp-foot em { font-style: normal; color: var(--hl-ink3, #707790); }
.wp-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 70px 20px; color: var(--hl-ink3, #707790); text-align: center; }
.wp-empty svg { width: 26px; height: 26px; }
.wp-empty b { color: var(--hl-ink, #e9ebf3); font-size: 14px; }
.wp-empty span { font-size: 12.5px; max-width: 360px; }
/* modals */
.wp-form { display: flex; flex-direction: column; gap: 12px; min-width: 320px; }
.wp-form label { display: flex; flex-direction: column; gap: 5px; position: relative; }
.wp-form label > span { font-size: 11.5px; color: var(--text-3); font-weight: 600; }
.wp-form input, .wp-form select { height: 36px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--border-2); background: var(--input); color: var(--text); font-size: 13px; }
.wp-form .hidden { display: none; }
.wp-link { position: absolute; right: 8px; bottom: 9px; border: 0; background: none; color: var(--accent); font-size: 11.5px; font-weight: 600; cursor: pointer; }
.wp-swatches { display: flex; gap: 8px; }
.wp-swatches .sw { width: 22px; height: 22px; border-radius: 50%; border: 2px solid transparent; background: currentColor; cursor: pointer; }
.wp-swatches .sw.on { border-color: var(--text); box-shadow: 0 0 0 2px rgba(0,0,0,0.6) inset; }
.wp-note { margin: 0; font-size: 12px; color: var(--text-3); line-height: 1.5; }
.wp-dep { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 10px; background: var(--input); border: 1px solid var(--border-2); margin-bottom: 10px; }
.wp-dep code { font: 600 13px var(--mono); color: var(--text); word-break: break-all; flex: 1; }
@media (max-width: 900px) {
  .wp { grid-template-columns: 1fr; }
  .wp-side { border-right: 0; border-bottom: 1px solid var(--hl-line, #1f2433); }
  .wp-tree { flex-direction: row; flex-wrap: wrap; }
  .wp-node { padding-left: 10px; }
  .wp-search { width: 100%; }
}

/* ================================================================ Fund Wallets modal (ui-next/assets/fundmodal.js) */
.fw-scrim { position: fixed; inset: 0; z-index: 90; background: rgba(4, 5, 9, 0.66); backdrop-filter: blur(3px); }
.fw-wrap { position: fixed; inset: 0; z-index: 91; display: flex; align-items: center; justify-content: center; padding: 16px; pointer-events: none; }
.fw { pointer-events: auto; width: min(560px, 100%); max-height: calc(100vh - 32px); display: flex; flex-direction: column; background: #0d1016; border: 1px solid #1f2433; border-radius: 14px; box-shadow: 0 30px 80px -20px rgba(0,0,0,0.75); color: #e9ebf3; font-size: 13px; }
.fw-h { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #1a1f2c; font-weight: 650; font-size: 14px; }
.fw-h span { display: inline-flex; align-items: center; gap: 8px; }
.fw-x { border: 0; background: none; color: #707790; cursor: pointer; padding: 4px; border-radius: 6px; display: inline-flex; }
.fw-x:hover { color: #e9ebf3; background: #1a1f30; }
.fw-b { padding: 4px 18px 8px; overflow-y: auto; flex: 1; }
.fw-f { display: flex; justify-content: space-between; gap: 10px; padding: 14px 18px; border-top: 1px solid #1a1f2c; }
.fw-sec { padding: 16px 0; border-top: 1px solid #1a1f2c; }
.fw-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 14px 0; }
.fw-lbl { display: block; font-size: 12.5px; font-weight: 650; margin-bottom: 8px; color: #e9ebf3; }
.fw-lbl em { color: #ff6b7a; font-style: normal; margin-left: 2px; }
.fw-lbl span { color: #707790; font-weight: 500; }
.fw-chain { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px; min-width: 150px; border-radius: 9px; background: #141826; border: 1px solid #232838; font-weight: 600; }
.fw-sol { width: 14px; height: 11px; flex: none; display: inline-block; background: linear-gradient(135deg, #9945ff, #19fb9b); clip-path: polygon(14% 0, 100% 0, 86% 28%, 0 28%, 14% 36%, 100% 36%, 86% 64%, 0 64%, 14% 72%, 100% 72%, 86% 100%, 0 100%); }
.fw-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 0 16px; border-radius: 9px; border: 1px solid #232838; background: #141826; color: #e9ebf3; font-size: 12.5px; font-weight: 650; cursor: pointer; }
.fw-btn:hover:not(:disabled) { background: #1a1f30; border-color: #2f3548; }
.fw-btn.primary { background: #f4f5f8; color: #0d1016; border-color: transparent; min-width: 120px; }
.fw-btn.primary:hover:not(:disabled) { background: #fff; }
.fw-btn:disabled { opacity: 0.45; cursor: default; }
.fw-f .fw-btn { min-width: 160px; }
.fw-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.fw-type { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 76px; padding: 10px; border-radius: 10px; border: 1px solid #1f2433; background: #0f121a; color: #a3a9bd; cursor: pointer; text-align: center; }
.fw-type b { font-size: 13px; font-weight: 650; }
.fw-type small { font-size: 11px; color: #707790; }
.fw-type:hover:not(:disabled) { border-color: #2f3548; color: #e9ebf3; }
.fw-type.on { background: #1d1a10; border-color: #5b4a1a; color: #f0b33a; }
.fw-type.on small { color: #b99a52; }
.fw-type.dis { opacity: 0.45; cursor: not-allowed; }
.fw-soon { position: absolute; top: 7px; right: 8px; font-style: normal; font-size: 10px; padding: 1px 6px; border-radius: 5px; background: #232838; color: #a3a9bd; }
.fw-logos { display: inline-flex; gap: 4px; }
.fw-info { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: 9px; background: #151b33; border: 1px solid #263058; color: #8fa6ff; font-size: 12px; }
.fw-check { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; cursor: pointer; }
.fw-check b { font-size: 13.5px; font-weight: 650; }
.fw-check span { color: #707790; font-size: 12px; }
.fw input[type=checkbox] { width: 17px; height: 17px; accent-color: #8d91ff; cursor: pointer; flex: none; }
.fw-provs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 300px; overflow-y: auto; padding-right: 2px; }
.fw-prov { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; border: 1px solid #1f2433; background: #0f121a; cursor: pointer; }
.fw-prov span { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.fw-prov b { font-weight: 650; font-size: 12.5px; }
.fw-prov small { font-size: 11px; color: #707790; }
.fw-prov.on { border-color: #2f3548; background: #121624; }
.fw-prov.down { opacity: 0.4; cursor: not-allowed; }
.fw-pb { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex: none; border-radius: 7px; font: 700 10.5px var(--font); font-style: normal; letter-spacing: -0.02em; color: #0b0e16; background: #6d7380; }
.fw-pb.sm { width: 20px; height: 20px; border-radius: 6px; font-size: 9px; }
.fw-seg { display: inline-flex; padding: 3px; border-radius: 9px; background: #141826; margin-bottom: 12px; }
.fw-seg button { height: 28px; padding: 0 12px; border: 0; border-radius: 7px; background: none; color: #707790; font-weight: 650; font-size: 12.5px; cursor: pointer; }
.fw-seg button.on { background: #232838; color: #e9ebf3; }
.fw-in { display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 10px; background: #0f121a; border: 1px solid #1f2433; }
.fw-in:focus-within { border-color: #3a4160; }
.fw-in input { flex: 1; border: 0; outline: 0; background: none; color: #e9ebf3; font-size: 14px; min-width: 0; }
.fw-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fw-delay { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 46px; border-radius: 10px; background: #0f121a; border: 1px solid #1f2433; }
.fw-delay small { font-size: 9.5px; color: #707790; letter-spacing: 0.08em; }
.fw-delay input { width: 90px; border: 0; outline: 0; background: none; color: #e9ebf3; text-align: center; font-weight: 700; font-size: 14px; }
.fw-hint { margin: 8px 0 0; font-size: 11.5px; color: #707790; }
.fw-err { display: flex; align-items: center; gap: 8px; margin: 10px 0; padding: 10px 12px; border-radius: 9px; background: rgba(255,107,122,0.1); border: 1px solid rgba(255,107,122,0.3); color: #ff8391; font-size: 12px; }
.fw-err.sm { margin: 6px 0 0; padding: 6px 10px; }
.fw-load, .fw-empty { display: flex; align-items: center; gap: 8px; justify-content: center; padding: 24px; color: #707790; grid-column: 1 / -1; }
.fw-picker { margin: 0 0 14px; padding: 10px; border-radius: 10px; background: #0f121a; border: 1px solid #1f2433; }
.fw-pick-h { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.fw-chip { height: 26px; padding: 0 10px; border-radius: 7px; border: 1px solid #232838; background: #141826; color: #e9ebf3; font-size: 11.5px; cursor: pointer; }
.fw-chip:hover { border-color: #3a4160; }
.fw-pick-l { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; max-height: 180px; overflow-y: auto; }
.fw-pick-l label { display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: 7px; cursor: pointer; font-size: 12px; }
.fw-pick-l label.on { background: #151a2a; }
.fw-pick-l small { color: #707790; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fw .mono { font-family: var(--mono); }
.fw-sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 14px 0; }
.fw-sum div { display: flex; flex-direction: column; gap: 3px; padding: 10px; border-radius: 10px; background: #0f121a; border: 1px solid #1f2433; }
.fw-sum span { font-size: 11px; color: #707790; }
.fw-sum b { font-size: 14px; }
.fw-sum small { font-size: 11px; color: #707790; }
.fw-route { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 9px; background: #151b33; border: 1px solid #263058; color: #8fa6ff; font-size: 12px; margin-bottom: 12px; }
.fw-plan { max-height: 260px; overflow-y: auto; border: 1px solid #1f2433; border-radius: 10px; }
.fw-plan table { width: 100%; border-collapse: collapse; font-size: 12px; }
.fw-plan th { position: sticky; top: 0; background: #0f121a; text-align: left; font-weight: 600; color: #707790; padding: 8px 10px; font-size: 11px; }
.fw-plan td { padding: 7px 10px; border-top: 1px solid #171b27; }
.fw-via { display: inline-flex; align-items: center; gap: 7px; vertical-align: middle; }
.fw-plan .num { text-align: right; font-variant-numeric: tabular-nums; }
.fw-plan .dim { color: #707790; }
.fw-plan .warn, .fw-plan tr.bad td { color: #f5b84b; }
.fw-need { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; padding: 10px 12px; border-radius: 9px; background: rgba(61,220,151,0.08); border: 1px solid rgba(61,220,151,0.25); color: #9fe8c6; font-size: 12px; line-height: 1.5; }
.fw-need.short { background: rgba(245,184,75,0.08); border-color: rgba(245,184,75,0.3); color: #f5cf87; }
.fw-ack { display: flex; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; font-weight: 600; }
.fw-runs { display: flex; flex-direction: column; gap: 10px; padding: 14px 0; }
.fw-run { padding: 12px; border-radius: 10px; background: #0f121a; border: 1px solid #1f2433; }
.fw-run-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fw-st { font-size: 11px; padding: 2px 8px; border-radius: 6px; background: #232838; color: #a3a9bd; }
.fw-st.running { background: rgba(141,145,255,0.16); color: #a9acff; } .fw-st.completed { background: rgba(61,220,151,0.14); color: #3ddc97; }
.fw-st.failed { background: rgba(255,107,122,0.14); color: #ff8391; } .fw-st.partial, .fw-st.cancelled { background: rgba(245,184,75,0.12); color: #f5b84b; }
.fw-bar { height: 5px; border-radius: 5px; background: #1a1f2c; margin: 10px 0 8px; overflow: hidden; }
.fw-bar i { display: block; height: 100%; background: linear-gradient(90deg, #8d91ff, #3ddc97); }
.fw-run-m { display: flex; gap: 12px; align-items: center; font-size: 11.5px; color: #707790; }
.fw-link { margin-left: auto; border: 0; background: none; color: #ff8391; font-weight: 600; cursor: pointer; font-size: 11.5px; }
/* page: running funding banner + funding cell states */
.wp-banner { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 14px; border: 0; border-bottom: 1px solid rgba(141,145,255,0.3); background: linear-gradient(90deg, #7479f5, #8d91ff); color: #0c0e1d; font-size: 12.5px; cursor: pointer; text-align: left; }
.wp-banner b { font-weight: 700; }
.wp-banner-r { margin-left: auto; font-weight: 700; }
.wp-fund.scheduled span:first-child { color: var(--hl-ink2, #a3a9bd); }
.wp-fund.bridging span:first-child, .wp-fund.sending span:first-child { color: #a9acff; }
.wp-fund.failed span:first-child { color: #ff8391; }
@media (max-width: 560px) { .fw-types, .fw-provs, .fw-pick-l { grid-template-columns: 1fr; } .fw-sum { grid-template-columns: 1fr 1fr; } .fw-f .fw-btn { min-width: 0; flex: 1; } }

/* ---------------------------------------------------------------- Aged Wallets (pages/aged.js) */
.ag { display: flex; flex-direction: column; gap: 12px; }
.ag-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ag-tabs { display: inline-flex; gap: 4px; padding: 3px; border: 1px solid var(--hl-line, #1f2433); border-radius: 9px; background: var(--hl-bg, #0b0e16); }
.ag-tab { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: var(--hl-ink3, #707790); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.ag-tab.on { background: var(--hl-s2, #141826); color: var(--hl-ink, #e9ebf3); }
.ag-note { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--hl-ink3, #707790); }
.ag-stats { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ag-stat { display: flex; flex-direction: column; gap: 2px; padding: 8px 14px; border: 1px solid var(--hl-line, #1f2433); border-radius: 10px; background: var(--hl-bg, #0b0e16); min-width: 110px; }
.ag-stat small { font-size: 11px; color: var(--hl-ink3, #707790); }
.ag-stat b { font-size: 15px; color: var(--hl-ink, #e9ebf3); font-variant-numeric: tabular-nums; }
.ag-stat b.ok { color: #4ade80; } .ag-stat b.off { color: #f59e0b; }
.ag-seg { display: inline-flex; border: 1px solid var(--hl-line2, #2a3044); border-radius: 8px; overflow: hidden; }
.ag-seg button { height: 28px; padding: 0 12px; border: 0; background: var(--hl-s2, #141826); color: var(--hl-ink3, #707790); font-size: 12px; font-weight: 600; cursor: pointer; }
.ag-seg button.on { background: var(--hl-s3, #1a1f30); color: var(--hl-ink, #e9ebf3); }
.ag-tbl { border: 1px solid var(--hl-line, #1f2433); border-radius: 10px; background: var(--hl-bg, #0b0e16); max-height: calc(100vh - 300px); }
.ag-tbl td.num, .ag-tbl th.num { text-align: right; font-variant-numeric: tabular-nums; }
.ag-tbl td.r { text-align: right; }
.ag-w { display: inline-flex; align-items: center; gap: 6px; }
.ag-w a { color: var(--hl-ink, #e9ebf3); text-decoration: none; } .ag-w a:hover { text-decoration: underline; }
.ag-via { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--hl-ink2, #a9afc4); }
.ag-via.cex { color: #f0b90b; } .ag-via.bridge { color: #9b8cff; }
.ag-st { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.ag-st.ok { color: #4ade80; } .ag-st.aging { color: var(--hl-ink2, #a9afc4); }
.ag-bar { display: inline-block; width: 64px; height: 5px; border-radius: 3px; background: var(--hl-s3, #1a1f30); overflow: hidden; vertical-align: middle; }
.ag-bar.w { width: 90px; margin-right: 6px; }
.ag-bar i { display: block; height: 100%; background: var(--hl-acc, #8d91ff); border-radius: 3px; }
.ag-sol { display: block; font-size: 10.5px; color: var(--hl-ink3, #707790); }
.ag-mine { display: flex; flex-direction: column; gap: 6px; }
.ag-buy { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid var(--hl-line2, #2a3044); border-radius: 9px; background: var(--hl-s2, #141826); font-size: 12.5px; color: var(--hl-ink, #e9ebf3); }
.ag-buy.done { border-color: rgba(74,222,128,0.35); } .ag-buy.failed { border-color: rgba(248,113,113,0.45); }
.ag-buy a { color: var(--hl-acc, #8d91ff); }
.ag-err { color: #f87171; font-style: normal; }
.ag-modal { display: flex; flex-direction: column; gap: 12px; min-width: 380px; }
.ag-price b { font-size: 26px; color: var(--hl-ink, #e9ebf3); margin-right: 8px; } .ag-price span { font-size: 12.5px; color: var(--hl-ink3, #707790); }
.ag-steps { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--hl-ink2, #a9afc4); }
.ag-steps li { display: flex; gap: 8px; align-items: flex-start; } .ag-steps svg { color: #4ade80; flex: none; margin-top: 2px; }
.ag-warn, .ag-alert { display: flex; gap: 8px; align-items: center; padding: 8px 12px; border-radius: 8px; background: rgba(245,158,11,0.1); border: 1px solid rgba(245,158,11,0.35); color: #fbbf24; font-size: 12.5px; }
.ag-eng { display: flex; flex-direction: column; gap: 12px; }
.ag-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.ag-card { padding: 12px 14px; border: 1px solid var(--hl-line, #1f2433); border-radius: 10px; background: var(--hl-bg, #0b0e16); display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ag-card h4 { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--hl-ink, #e9ebf3); }
.ag-big { margin: 0; font-size: 22px; font-weight: 700; color: var(--hl-ink, #e9ebf3); } .ag-big small { font-size: 12px; color: var(--hl-ink3, #707790); }
.ag-n { margin: 0; font-size: 12px; color: var(--hl-ink3, #707790); }
.ag-pill { display: inline-block; margin: 0 6px 4px 0; padding: 2px 8px; border-radius: 999px; background: var(--hl-s2, #141826); border: 1px solid var(--hl-line2, #2a3044); font-size: 11.5px; color: var(--hl-ink2, #a9afc4); }
.ag-mini { width: 100%; border-collapse: collapse; font-size: 12px; }
.ag-mini th { text-align: left; color: var(--hl-ink3, #707790); font-weight: 600; padding: 4px 6px; border-bottom: 1px solid var(--hl-line, #1f2433); }
.ag-mini td { padding: 5px 6px; color: var(--hl-ink, #e9ebf3); border-bottom: 1px solid rgba(31,36,51,0.55); }
.ag-mini .num { text-align: right; }
.ag-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.ag-form label { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--hl-ink3, #707790); }
.ag-form input, .ag-form select { height: 28px; padding: 0 8px; border-radius: 7px; border: 1px solid var(--hl-line2, #2a3044); background: var(--hl-s2, #141826); color: var(--hl-ink, #e9ebf3); font-size: 12px; }
.ag-cfg .wp-btn { align-self: flex-start; }
@media (max-width: 720px) { .ag-modal { min-width: 0; } .ag-note { display: none; } }

.ag-dep { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 10px 16px; align-items: center; padding: 14px 16px; border: 1px solid rgba(141,145,255,0.45); border-radius: 10px; background: linear-gradient(180deg, rgba(141,145,255,0.10), rgba(141,145,255,0.03)); }
.ag-dep h4 { margin: 0 0 4px; display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--hl-ink, #e9ebf3); }
.ag-dep p { margin: 0; font-size: 12px; color: var(--hl-ink3, #707790); }
.ag-dep-a { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ag-addr { padding: 7px 10px; border-radius: 7px; background: var(--hl-bg, #0b0e16); border: 1px solid var(--hl-line2, #2a3044); font-size: 13px; color: var(--hl-ink, #e9ebf3); user-select: all; word-break: break-all; }
.ag-dep-n { grid-column: 1 / -1; display: flex; gap: 18px; flex-wrap: wrap; font-size: 12.5px; color: var(--hl-ink2, #a9afc4); }
.ag-dep-short { color: #fbbf24; font-weight: 600; } .ag-dep-ok { color: #4ade80; display: inline-flex; align-items: center; gap: 4px; }
@media (max-width: 900px) { .ag-dep { grid-template-columns: 1fr; } }

/* provider logos (assets/logos): a light tile so dark / transparent marks read on the dark UI */
.fw-pb { position: relative; overflow: hidden; }
.fw-pb.logo { background: #f4f5f8 !important; color: transparent; }
.fw-pl { position: absolute; inset: 2px; width: calc(100% - 4px); height: calc(100% - 4px); object-fit: contain; border-radius: 5px; }
.fw-pb.sm .fw-pl { inset: 1.5px; width: calc(100% - 3px); height: calc(100% - 3px); border-radius: 4px; }
.ag-prov { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--hl-ink, #e9ebf3); }
.ag-prov small { color: var(--hl-ink3, #707790); font-size: 10.5px; }
/* Full exit over N candles (Wave settings) */
.hl-fx { display: flex; flex-direction: column; gap: 8px; }
.hl-fx-l { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hl-line); border-radius: var(--hl-r-md); background: var(--hl-s0); }
.hl-fx-l li { display: grid; grid-template-columns: 84px minmax(0, 1.5fr) minmax(0, 1.2fr) 64px minmax(0, 1fr); gap: 10px; align-items: center; padding: 9px 14px; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.hl-fx-l li + li { border-top: 1px solid var(--hl-line); }
.hl-fx-c { color: var(--hl-ok); font-weight: 600; text-align: right; }
.hl-fx-n { text-align: right; color: var(--hl-ink3); } .hl-fx-n.warn { color: var(--hl-warn); }
@media (max-width: 760px) { .hl-fx-l li { grid-template-columns: 1fr 1fr; } .hl-fx-c, .hl-fx-n { text-align: left; } }
/* Pre-funder modal (2026-10-09): wider, QR + big balance left, address + last txs right */
.modal.pf-wide { width: min(1040px, 96%); }
.pf-modal { display: grid; grid-template-columns: 260px 1fr; gap: 22px; align-items: start; }
.pf-left { display: grid; justify-items: center; gap: 14px; }
.pf-bal { display: flex; align-items: baseline; gap: 6px; }
.pf-bal b { font: 700 34px/1 "Plex", ui-monospace, monospace; letter-spacing: -0.5px; }
.pf-bal span { color: var(--muted); font-weight: 600; }
.pf-right { display: grid; gap: 8px; align-content: start; }
.pf-addr { user-select: all; -webkit-user-select: all; word-break: break-all; background: rgba(255,255,255,.04); border: 1px solid var(--border-2); border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.5; }
.pf-txs { display: grid; gap: 6px; }
.pf-tx { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center; padding: 7px 10px; border: 1px solid var(--border-2); border-radius: 9px; background: rgba(255,255,255,.02); }
.pf-tx.fail { opacity: .6; }
.pf-tx-d { font: 600 13px/1 "Plex", ui-monospace, monospace; }
.pf-tx-d.pos { color: #19c37d; }
.pf-tx-d.neg { color: #ff6b6b; }
.pf-tx-m { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-tx-t { font-size: 11px; white-space: nowrap; }
.pf-tx-l { display: inline-grid; place-items: center; color: var(--muted); }
@media (max-width: 640px) { .pf-modal { grid-template-columns: 1fr; } }
