:root{
  --bg:#f6f7f9; --surface:#fff; --surface-2:#f9fafb; --surface-3:#f2f4f7;
  --line:#e6e8ec; --line-2:#d5d9e0;
  --text:#0d1421; --text-2:#344054; --muted:#667085; --faint:#98a2b3;
  --brand:#1f4ed8; --brand-2:#1a43bd; --brand-bg:#eef3ff; --brand-line:#c7d5fb;
  --long:#079455; --long-bg:#ecfdf3; --long-line:#abefc6;
  --short:#d92d20; --short-bg:#fef3f2; --short-line:#fecdca;
  --vip:#b54708; --vip-bg:#fffaeb; --vip-line:#fedf89;
  --warn:#b54708; --warn-bg:#fffaeb;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
  --shadow-lg:0 12px 32px -8px rgba(16,24,40,.14),0 4px 8px -4px rgba(16,24,40,.06);
  --r:12px; --r-sm:8px;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;font-feature-settings:'cv11','ss01'}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--brand)}
.num,.mono{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
svg.i{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.up{color:var(--long)!important}.down{color:var(--short)!important}

/* ---------- Header ---------- */
.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-row{max-width:1240px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:16px;letter-spacing:-.02em;color:var(--text);text-decoration:none;white-space:nowrap}
.brand-mark{width:28px;height:28px;border-radius:7px;background:#fff;box-shadow:inset 0 0 0 1px rgba(13,20,33,.1);display:grid;place-items:center}
.brand-mark img{display:block;width:22px;height:auto}
/* wordmark colours from the Tradexas logo: "Trade" navy (white on dark), "xas" blue */
.brand-x{color:#0078f8}
.demo-tag{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--muted);border:1px solid var(--line-2);padding:2px 6px;border-radius:5px}
.tabs{display:flex;gap:2px;align-self:stretch}
.tab{position:relative;border:0;background:none;color:var(--muted);padding:0 12px;font-weight:500;display:flex;align-items:center;gap:7px;white-space:nowrap}
.tab:hover{color:var(--text)}
.tab[aria-selected="true"]{color:var(--text)}
.tab[aria-selected="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--text);border-radius:2px}
.tab .short-l{display:none}
.tab .badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;font:600 11px/18px var(--sans);text-align:center}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.icon-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--muted);box-shadow:var(--shadow-sm)}
.icon-btn:hover{color:var(--text);border-color:var(--line-2)}
.vip-btn{height:36px;padding:0 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-weight:600;display:flex;align-items:center;gap:7px;white-space:nowrap;box-shadow:var(--shadow-sm)}
.vip-btn svg.i{color:var(--vip)}
.vip-btn:hover{border-color:var(--line-2)}
.vip-btn.is-vip{background:var(--vip-bg);border-color:var(--vip-line);color:var(--vip)}

/* ---------- Layout ---------- */
main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:32px 24px 56px}
h1,h2,h3{margin:0;letter-spacing:-.02em}
h1{font-size:26px;line-height:1.2;font-weight:700}
h2{font-size:15px;font-weight:600}
.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.sub{margin:4px 0 0;color:var(--muted);font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--long);flex:none;box-shadow:0 0 0 3px var(--long-bg)}
.feed-summary{display:flex;gap:18px;font-size:13px;color:var(--muted)}
.feed-summary b{color:var(--text);font-weight:600}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:36px 0 14px;flex-wrap:wrap}
.section-title h2{font-size:18px}

/* ---------- Hero / search ---------- */
.hero{padding:8px 0 28px}
.hero h1{font-size:34px;letter-spacing:-.03em;max-width:720px}
.hero .lede{margin:8px 0 0;color:var(--muted);font-size:15px;max-width:680px}
.search-row{display:flex;gap:10px;margin-top:22px;max-width:720px}
.search-box{flex:1;display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line-2);color:var(--faint);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.search-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(31,78,216,.12)}
.search-box svg.i{width:18px;height:18px}
.search-box input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;font-size:15px;color:var(--text)}
.search-box input::placeholder{color:var(--faint)}
.search-box input::-webkit-search-cancel-button{display:none}
.q-clear{border:0;background:var(--surface-3);color:var(--muted);width:24px;height:24px;border-radius:50%;font-size:15px;line-height:1;flex:none}
kbd{font:500 11px var(--sans);color:var(--muted);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;background:var(--surface-2)}
.datasrc{margin-top:12px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.datasrc b{color:var(--text-2);font-weight:500}

/* ---------- Markets table ---------- */
.card-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}
.mkt{width:100%;border-collapse:collapse;font-size:14px}
.mkt th{font-size:12px;color:var(--muted);font-weight:500;text-align:left;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
.mkt td{padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
.mkt tr:last-child td{border-bottom:0}
.mkt tbody tr{cursor:pointer;transition:background .12s}
.mkt tbody tr:hover td{background:var(--surface-2)}
.mkt .r{text-align:right}
.mkt .rank{color:var(--faint);width:36px;font-size:13px}
.asset{display:flex;align-items:center;gap:11px}
.asset b{display:block;font-weight:600}
.asset span{display:block;font-size:12.5px;color:var(--muted)}
.mkt svg.spark{width:120px;height:34px;display:block}
.mkt .px{font-weight:500}
.mkt .chg-sm{display:none;font-size:12px}
.mkt .empty-row td{text-align:center;color:var(--muted);padding:36px;cursor:default}
.mkt .empty-row:hover td{background:none}
.sigcell{display:flex;align-items:center;gap:8px;justify-content:flex-end}

/* coin avatar (real logo when available, letters otherwise) */
.coin{--c:#667085;position:relative;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;font:700 10px/1 var(--sans);color:#fff;background:var(--c);overflow:hidden;letter-spacing:-.02em}
.coin img{position:absolute;inset:0;width:100%;height:100%;background:#fff}
.coin.lg{width:44px;height:44px;font-size:12px}
.coin.sm{width:24px;height:24px;font-size:8px}

/* pills / tags */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.pill svg.i{width:12px;height:12px;stroke-width:2.5}
.p-long{background:var(--long-bg);color:var(--long);border-color:var(--long-line)}
.p-short{background:var(--short-bg);color:var(--short);border-color:var(--short-line)}
.p-vip{background:var(--vip-bg);color:var(--vip);border-color:var(--vip-line)}
.p-none{background:var(--surface-3);color:var(--muted)}
.p-warn{background:var(--warn-bg);color:var(--warn);border-color:#fedf89}.p-warn svg{width:13px;height:13px;margin-right:4px;vertical-align:-2px}
.p-brand{background:var(--brand-bg);color:var(--brand);border-color:var(--brand-line)}
.risk-Low{background:var(--long-bg);color:var(--long)}
.risk-Medium{background:var(--warn-bg);color:var(--warn)}
.risk-High{background:var(--short-bg);color:var(--short)}
.st-active{background:var(--brand-bg);color:var(--brand)}
.st-hit,.st-win{background:var(--long-bg);color:var(--long)}
.st-sl{background:var(--short-bg);color:var(--short)}
.st-exp{background:var(--surface-3);color:var(--muted)}
.tag{font-size:11px;font-weight:600;padding:2px 7px;border-radius:5px;background:var(--surface-3);color:var(--muted);white-space:nowrap}
.tag-vip{background:var(--vip-bg);color:var(--vip)}
.tag-mine{background:var(--brand-bg);color:var(--brand)}

/* ---------- Chips ---------- */
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--text-2);padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:7px;box-shadow:var(--shadow-sm)}
.chip:hover{border-color:var(--line-2)}
.chip[aria-pressed="true"]{background:var(--text);color:#fff;border-color:var(--text)}
.chip .n{font-size:12px;opacity:.6}

/* ---------- Signal cards ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden;cursor:pointer;transition:box-shadow .15s,border-color .15s}
.card:hover{box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.card.closed{background:var(--surface-2)}
.card.mine{border-color:var(--brand-line)}
.card.is-new{animation:arrive 1.2s ease-out}
@keyframes arrive{from{box-shadow:0 0 0 3px var(--brand-line)}}
.card-body{padding:18px;display:flex;flex-direction:column;gap:16px}
.card-body.blurred{filter:blur(6px);user-select:none;pointer-events:none}
.c-head{display:flex;align-items:center;gap:11px}
.pair-meta{min-width:0;flex:1}
.pair{font-weight:650;font-size:16px;letter-spacing:-.01em}
.meta-line{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;flex-wrap:wrap;margin-top:2px}
.dir{font-weight:700;font-size:12px;letter-spacing:.04em;padding:5px 10px;border-radius:6px;display:flex;align-items:center;gap:4px;flex:none}
.dir svg.i{width:13px;height:13px;stroke-width:2.6}
.dir.long{background:var(--long-bg);color:var(--long)}
.dir.short{background:var(--short-bg);color:var(--short)}
.c-live{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.c-live .big{font-size:22px;font-weight:650;letter-spacing:-.02em;display:block;margin-top:2px}
.c-live .rt{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.pnl{font-weight:600;font-size:13px}
.k{font-size:11.5px;color:var(--muted);font-weight:500}
/* progress track: SL left, TP3 right, dot = live price */
.track{padding-top:2px}
.rail{position:relative;height:6px;border-radius:3px;background:var(--surface-3)}
.rail .zone{position:absolute;top:-3px;bottom:-3px;border-radius:3px;background:var(--brand-bg);border:1px solid var(--brand-line)}
.rail .tick{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--line-2)}
.rail .tick.hit{background:var(--long)}
.rail .fill{position:absolute;top:0;bottom:0;border-radius:3px;transition:left .6s,width .6s}
.rail .fill.pos{background:var(--long)}
.rail .fill.neg{background:var(--short)}
.rail .reach{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--long);opacity:.35}
.rail .puck{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;border:2px solid var(--text);box-shadow:var(--shadow);transition:left .6s}
.rail-lbl{position:relative;height:14px;margin-top:8px;font-size:10.5px;font-weight:600;color:var(--faint)}
.rail-lbl span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.rail-lbl span:first-child{transform:none}
.rail-lbl span:last-child{transform:translateX(-100%)}
.rail-lbl .sl{color:var(--short)}.rail-lbl .tp.hit{color:var(--long)}
.lv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lv>div{padding:9px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);display:flex;flex-direction:column;gap:1px;min-width:0}
.lv b{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis}
.lv em{font-style:normal;font-size:11.5px;color:var(--long);font-weight:500}
.lv .hit{background:var(--long-bg);border-color:var(--long-line)}
.lv .hit .k{color:var(--long)}
.c-meta{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.c-meta>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.c-meta b{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.takers{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);min-width:0;flex-wrap:wrap}
.takers svg.i{width:14px;height:14px}
.exp{font-size:12px;color:var(--warn);font-weight:500}
.lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;background:rgba(255,255,255,.72);cursor:default}
.lock-ico{width:42px;height:42px;border-radius:10px;background:var(--vip-bg);border:1px solid var(--vip-line);display:grid;place-items:center;color:var(--vip)}
.lock-ico svg.i{width:19px;height:19px}
.lock h3{font-size:15px}
.lock p{margin:0;color:var(--muted);font-size:13px;max-width:250px}
.empty{grid-column:1/-1;padding:52px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface)}
.empty h3{color:var(--text);font-size:16px;margin-bottom:6px}
.empty .btn{margin-top:16px}

/* ---------- Buttons ---------- */
.btn{height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--text-2);font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background .12s,border-color .12s,opacity .12s}
.btn:hover{background:var(--surface-2);border-color:var(--faint)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-2);border-color:var(--brand-2)}
.btn-dark{background:var(--text);border-color:var(--text);color:#fff}
.btn-dark:hover{background:#1d2939;border-color:#1d2939}
.btn-long{background:var(--long);border-color:var(--long);color:#fff}
.btn-long:hover{background:#067647;border-color:#067647}
.btn-short{background:var(--short);border-color:var(--short);color:#fff}
.btn-short:hover{background:#b42318;border-color:#b42318}
.btn-vip{background:#f79009;border-color:#f79009;color:#fff}
.btn-vip:hover{background:#dc6803;border-color:#dc6803}
.btn-ghost{background:none;border-color:transparent;box-shadow:none;color:var(--muted)}
.btn-ghost:hover{color:var(--text);background:var(--surface-3);border-color:transparent}
.btn-sm{height:30px;padding:0 11px;font-size:12.5px}
.btn-lg{height:46px;padding:0 20px;font-size:14px;border-radius:10px}
.btn-block{width:100%}
.spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:rot .7s linear infinite;display:inline-block}
@keyframes rot{to{transform:rotate(360deg)}}

/* ---------- Panels ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-head p{margin:2px 0 0;color:var(--muted);font-size:12.5px}
.panel-body{padding:18px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpis.five{grid-template-columns:repeat(5,1fr)}
.kpi{padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.kpi .v{font-size:26px;font-weight:650;letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12.5px;color:var(--muted)}
.kpi .meter{height:4px;border-radius:2px;background:var(--surface-3);overflow:hidden;margin-top:6px}
.kpi .meter i{display:block;height:100%;background:var(--long)}
.seg{display:inline-flex;background:var(--surface-3);padding:3px;border-radius:8px;gap:2px}
.seg button{border:0;background:none;color:var(--muted);padding:5px 11px;border-radius:6px;font-size:13px;font-weight:500;white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.chart-meta{display:flex;gap:28px;flex-wrap:wrap;padding:14px 18px 0;font-size:12.5px;color:var(--muted)}
.chart-meta b{display:block;font-size:16px;font-weight:650;color:var(--text);margin-top:2px;font-variant-numeric:tabular-nums}
.chart-wrap{position:relative;height:300px;padding:8px 14px 14px}
.chart-fallback{display:grid;place-items:center;height:100%;color:var(--muted)}
.stats-grid{display:grid;gap:16px}
.tbl-wrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{font-size:12px;color:var(--muted);font-weight:500;text-align:left;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
table.t td{padding:11px 18px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
table.t tr:last-child td{border-bottom:0}
table.t .num{text-align:right}
.tbl-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12.5px}
.dir-tag{font-weight:700;font-size:11.5px;letter-spacing:.04em}
.dir-tag.LONG{color:var(--long)}.dir-tag.SHORT{color:var(--short)}
.pair-cell{display:flex;align-items:center;gap:9px;font-weight:600}
.callout{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;font-size:13px;background:var(--surface);border:1px solid var(--line);color:var(--text-2);margin-bottom:16px;box-shadow:var(--shadow-sm)}
.callout svg.i{margin-top:2px;color:var(--brand)}
.callout.warn{background:var(--warn-bg);border-color:var(--vip-line)}
.callout.warn svg.i{color:var(--warn)}

.admin-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;align-items:start}
.form{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.f{display:flex;flex-direction:column;gap:6px;grid-column:span 2;min-width:0}
.f.w3{grid-column:span 3}
.f label,.f>span{font-size:12.5px;font-weight:500;color:var(--text-2)}
.inp,.sel{height:38px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);padding:0 11px;width:100%;outline:none;box-shadow:var(--shadow-sm);transition:border-color .12s,box-shadow .12s}
.inp:focus,.sel:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(31,78,216,.12)}
.inp.bad{border-color:var(--short)}
.dirseg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dirseg button{height:38px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--muted);font-weight:600;font-size:13px}
.dirseg button[aria-pressed="true"][data-v="LONG"]{background:var(--long-bg);border-color:var(--long-line);color:var(--long)}
.dirseg button[aria-pressed="true"][data-v="SHORT"]{background:var(--short-bg);border-color:var(--short-line);color:var(--short)}
.switch{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;height:38px;font-size:13px;color:var(--text-2)}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch .track{width:36px;height:20px;border-radius:10px;background:var(--line-2);position:relative;transition:background .2s;flex:none;padding:0}
.switch .track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow);transition:transform .2s}
.switch input:checked+.track{background:var(--brand)}
.switch input:checked+.track::after{transform:translateX(16px)}
.switch input:focus-visible+.track{outline:2px solid var(--brand);outline-offset:2px}
.form-err{grid-column:1/-1;color:var(--short);font-size:13px;min-height:18px;margin:-4px 0 0}
.form-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}
.hint{font-size:12px;color:var(--muted)}
.endpoint{display:flex;align-items:center;gap:8px;font:12.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;overflow:hidden}
.endpoint .m{color:var(--long);font-weight:700}
.endpoint span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
pre.payload{margin:0;background:#0f172a;border-radius:8px;padding:12px 14px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#cbd5e1;overflow:auto;max-height:280px}
pre.payload .k2{color:#93c5fd}pre.payload .s2{color:#86efac}pre.payload .n2{color:#fcd34d}
.wh-log{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}
.wh-log li{display:grid;grid-template-columns:64px 40px 40px 1fr;gap:10px;align-items:center;padding:9px 18px;border-bottom:1px solid var(--line);font-size:12.5px;font-variant-numeric:tabular-nums}
.wh-log li:last-child{border-bottom:0}
.wh-log .t{color:var(--muted)}
.wh-log .ok{color:var(--long);font-weight:600}.wh-log .warn{color:var(--warn);font-weight:600}.wh-log .err{color:var(--short);font-weight:600}
.wh-log .d{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wh-empty{padding:18px;color:var(--muted);text-align:center;display:block!important}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---------- Dialogs ---------- */
dialog{padding:0;overflow-x:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 32px);box-shadow:0 24px 64px -12px rgba(16,24,40,.28)}
dialog.wide{width:min(820px,calc(100vw - 24px))}
dialog.xwide{width:min(1060px,calc(100vw - 24px))}
dialog::backdrop{background:rgba(16,24,40,.45)}
dialog[open]{animation:dlg .18s ease-out}
@keyframes dlg{from{opacity:0;transform:translateY(6px)}}
.dlg-inner{padding:24px;display:flex;flex-direction:column;gap:18px}
.dlg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dlg-head h2{font-size:19px}
.dlg-head p{margin:4px 0 0;color:var(--muted);font-size:13.5px}
.x{width:32px;height:32px;border-radius:8px;border:0;background:var(--surface-3);color:var(--muted);display:grid;place-items:center;flex:none}
.x:hover{color:var(--text)}
.plans{display:grid;grid-template-columns:1fr 1.1fr;gap:14px}
.plan{border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px}
.plan.pro{border:2px solid var(--brand)}
.plan h3{font-size:15px;display:flex;align-items:center;gap:8px}
.price{font-size:32px;font-weight:700;letter-spacing:-.03em;line-height:1}
.price small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:4px}
.feat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:13.5px}
.feat li{display:flex;gap:9px;align-items:flex-start}
.feat .yes{color:var(--long)}.feat .no{color:var(--faint)}
.feat li.off{color:var(--faint)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:10px;font-size:13px;background:var(--warn-bg);color:#93370d;border:1px solid var(--vip-line)}
.notice svg.i{margin-top:1px}
.pay-box{display:grid;grid-template-columns:160px minmax(0,1fr);gap:18px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.qr{width:160px;height:160px;border-radius:10px;background:#fff;padding:10px;border:1px solid var(--line)}
.qr svg{width:100%;height:100%;display:block}
.qr-cap{font-size:11.5px;color:var(--muted);text-align:center;margin-top:6px}
.copy-field{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:6px 6px 6px 11px}
.copy-field .mono{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.copy-btn{border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);height:28px;padding:0 9px;border-radius:6px;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500}
.copy-btn:hover{border-color:var(--line-2)}
.summary{display:grid;grid-template-columns:1fr auto;gap:9px 16px;font-size:13.5px;padding:14px 16px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);margin:0}
.summary dt{color:var(--muted)}.summary dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.summary .tot{padding-top:9px;border-top:1px solid var(--line);font-weight:600;color:var(--text)}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.steps li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--faint)}
.steps li .dot{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:none}
.steps li.run{color:var(--text)}.steps li.run .dot{border-color:var(--brand);border-right-color:transparent;animation:rot .8s linear infinite}
.steps li.done{color:var(--muted)}.steps li.done .dot{border-color:var(--long);background:var(--long);color:#fff}
.steps li.done .dot svg.i{width:12px;height:12px;stroke-width:3}
.success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:8px 0}
.success .big{width:56px;height:56px;border-radius:14px;background:var(--long-bg);display:grid;place-items:center;color:var(--long)}
.success .big svg.i{width:26px;height:26px}
.cred{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left}
.conn{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);font-size:13px}
.conn .led{width:8px;height:8px;border-radius:50%;background:var(--warn);flex:none}
.conn.ok .led{background:var(--long);box-shadow:0 0 0 3px var(--long-bg)}
.conn .r{margin-left:auto;font-size:12px;color:var(--muted)}
.alloc{display:flex;gap:8px;flex-wrap:wrap}
.alloc button{flex:1;min-width:60px;height:38px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--text-2);font-weight:600;font-size:13px}
.alloc button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-bg);color:var(--brand)}
input[type=range]{width:100%;accent-color:var(--brand)}

/* ---------- Coin signal panel ---------- */
.cs-head{display:flex;align-items:center;gap:13px}
.cs-head .t{min-width:0}
.cs-head .t h2{font-size:20px}
.cs-head .t span{color:var(--muted);font-size:13px}
.cs-head .lp{margin-left:auto;text-align:right}
.cs-head .lp b{font-size:20px;font-weight:650;display:block;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cs-head .lp span{font-size:12.5px;font-weight:500}
.coin-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.pchart{position:relative;height:360px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.pchart canvas{width:100%;height:100%;display:block}
.pchart .scan-ov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(255,255,255,.82)}
.chart-foot{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-top:8px;flex-wrap:wrap}
.shared{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2)}
.score{flex:none;width:64px;text-align:center}
.score b{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em}
.score .bar{height:4px;border-radius:2px;background:var(--line);margin:4px 0 3px;overflow:hidden}
.score .bar i{display:block;height:100%;background:var(--brand)}
.score small{font-size:10.5px;color:var(--muted);font-weight:500}
.shared p{margin:0;font-size:13px;color:var(--text-2)}
.banner{display:flex;align-items:center;gap:9px;padding:10px 13px;border-radius:10px;font-size:13px;font-weight:500}
.banner.new{background:var(--brand-bg);color:var(--brand);border:1px solid var(--brand-line)}
.banner.join{background:var(--surface-2);border:1px solid var(--line);color:var(--text-2)}
.cs-dir{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid}
.cs-dir.long{background:var(--long-bg);border-color:var(--long-line)}
.cs-dir.short{background:var(--short-bg);border-color:var(--short-line)}
.cs-big{font-size:28px;font-weight:750;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;line-height:1.1;margin-top:2px}
.cs-dir.long .cs-big{color:var(--long)}.cs-dir.short .cs-big{color:var(--short)}
.cs-dir.nr{background:var(--warn-bg);border-color:#fedf89}.cs-dir.nr .cs-big{color:var(--text-2)}
.cs-steps.nr .num,.cs-steps.nr .line{color:var(--text-2)}
.cs-big svg.i{width:22px;height:22px;stroke-width:2.6}
.cs-big small{font-size:12px;font-weight:600;letter-spacing:.04em;opacity:.85}
.cs-steps{list-style:none;margin:0;padding:0}
.cs-steps>li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.cs-steps>li:last-child{border-bottom:0}
.cs-steps .n{width:24px;height:24px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-weight:600;font-size:12px;color:var(--text-2)}
.cs-steps b.h{display:block;font-weight:600;margin-bottom:2px}
.cs-steps .line{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums}
.cs-hint{display:block;font-size:12.5px;margin-top:4px;color:var(--muted)}
.cs-hint.ok{color:var(--long)}.cs-hint.wait{color:var(--warn)}
.cs-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cs-meta>div{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.cs-meta b{font-weight:600;font-size:13.5px}
.why{border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.why summary{cursor:pointer;font-weight:600;font-size:13.5px}
.why ul{margin:10px 0 0;padding-left:18px;color:var(--text-2);font-size:13px;display:flex;flex-direction:column;gap:6px}
.cs-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}
.cs-locked{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);min-height:320px;background:var(--surface-2)}
.cs-locked .ghost{filter:blur(6px);padding:18px;display:flex;flex-direction:column;gap:12px}
.cs-locked .ghost i{display:block;height:16px;border-radius:5px;background:var(--line)}
.result{padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-size:13.5px}

/* ---------- Toasts / misc ---------- */
.toasts{position:fixed;right:20px;bottom:20px;z-index:100;display:flex;flex-direction:column;gap:10px;width:min(370px,calc(100vw - 40px));pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:11px;align-items:flex-start;padding:13px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:tin .22s ease-out}
.toast.out{animation:tout .2s ease-in forwards}
@keyframes tin{from{opacity:0;transform:translateY(8px)}}
@keyframes tout{to{opacity:0;transform:translateX(12px)}}
.toast .ti{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none;background:var(--brand-bg);color:var(--brand)}
.toast.good .ti{background:var(--long-bg);color:var(--long)}
.toast.bad .ti{background:var(--short-bg);color:var(--short)}
.toast.vip .ti{background:var(--vip-bg);color:var(--vip)}
.toast b{display:block;font-size:13.5px;font-weight:600}
.toast span{display:block;font-size:13px;color:var(--muted)}
.toast .ta{margin-left:auto;border:0;background:none;color:var(--brand);font-weight:600;font-size:13px;padding:2px 0;flex:none}
.offline{position:fixed;left:50%;top:72px;transform:translateX(-50%);z-index:60;display:flex;gap:10px;align-items:center;padding:12px 16px;border-radius:10px;background:var(--short-bg);border:1px solid var(--short-line);color:#912018;font-size:13.5px;box-shadow:var(--shadow-lg);max-width:calc(100vw - 32px)}
.offline code{font-size:12.5px;background:#fff;border:1px solid var(--short-line);padding:1px 6px;border-radius:5px}
.foot{border-top:1px solid var(--line);padding:20px 24px;text-align:center;color:var(--muted);font-size:12.5px;background:var(--surface)}

/* ---------- Responsive ---------- */
@media (max-width:1060px){
  .kpis,.kpis.five{grid-template-columns:repeat(2,1fr)}
  .admin-grid,.coin-grid{grid-template-columns:1fr}
  .pchart{height:300px}
  .mkt .hide-md{display:none}
}
@media (max-width:760px){
  .top-row{flex-wrap:wrap;height:auto;padding:10px 16px 0;gap:10px}
  .tabs{order:3;width:100%;height:42px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:1;justify-content:center;padding:0 6px}
  .tab .full-l{display:none}.tab .short-l{display:inline}
  main{padding:22px 16px 40px}
  .hero h1{font-size:26px}
  .mkt .hide-sm{display:none}
  .mkt td,.mkt th{padding:11px 10px}
  .mkt .chg-sm{display:block}
  .mkt .sigcell .pill{display:none}
  .asset{gap:9px}
  .mkt .asset span{max-width:80px;overflow:hidden;text-overflow:ellipsis}
  .card-box{overflow-x:auto}
  .mkt .coin{width:28px;height:28px}
  .mkt .btn-sm{padding:0 9px}
  .mkt td:last-child{padding-left:4px}
  .datasrc{flex-wrap:nowrap;align-items:flex-start}
  .datasrc .live-dot{margin-top:6px}
  .search-box{min-width:0}
  .search-row .btn-lg{padding:0 14px}
  .grid{grid-template-columns:1fr}
  .plans{grid-template-columns:1fr}
  .pay-box{grid-template-columns:1fr;justify-items:center}
  .pay-box>div:last-child{width:100%}
  .form{grid-template-columns:repeat(2,1fr)}
  .f,.f.w3{grid-column:span 1}
  .f.full-sm{grid-column:1/-1}
  .dlg-inner{padding:18px}
  .vip-btn .lbl{display:none}
  .cs-actions{grid-template-columns:1fr}
  .kpis.five .kpi:last-child{grid-column:1/-1}
  #qKbd{display:none}
}
@media (max-width:420px){
  .kpis{grid-template-columns:1fr}
  .c-meta{grid-template-columns:1fr 1fr}
  .c-meta>div:first-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- Landing ---------- */
.landing{background:var(--surface)}
.l-wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.lnav{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.lnav-row{max-width:1160px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;gap:28px}
.lnav-links{display:flex;gap:22px}
.lnav-links a{color:var(--text-2);text-decoration:none;font-weight:500;font-size:14px}
.lnav-links a:hover{color:var(--text)}
.lnav-cta{margin-left:auto;display:flex;gap:8px}
.lnav-cta a,.l-ctas a,.plan a.btn,.l-cta a.btn{text-decoration:none}
.l-hero{padding:72px 0 56px;background:linear-gradient(180deg,var(--surface-2),var(--surface))}
.l-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center}
.l-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--text-2);padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.l-hero h1{font-size:46px;line-height:1.08;letter-spacing:-.035em;margin:18px 0 0;max-width:620px}
.l-lede{font-size:17px;color:var(--muted);margin:16px 0 0;max-width:560px;line-height:1.6}
.l-ctas{margin-top:26px}
.l-fine{font-size:12.5px;color:var(--muted);margin:12px 0 0}
.l-live{padding:0}
.l-live-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);font-size:13px}
.l-live .mkt tbody tr{cursor:default}
.l-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-2)}
.l-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:22px 24px}
.l-stats b{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em}
.l-stats span{font-size:13px;color:var(--muted)}
.l-sec{padding:72px 0}
.l-alt{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.l-sec h2,.l-cta h2{font-size:30px;letter-spacing:-.03em}
.l-sub{color:var(--muted);font-size:15px;margin:8px 0 24px;max-width:720px}
.l-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.l-steps>div,.l-features>div{padding:22px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.l-steps .n{width:28px;height:28px;border-radius:50%;background:var(--brand-bg);color:var(--brand);display:grid;place-items:center;font-weight:700;font-size:13px}
.l-steps h3,.l-features h3{font-size:16px;margin:12px 0 6px;display:flex;align-items:center;gap:8px}
.l-features h3{margin-top:0}
.l-steps p,.l-features p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.l-features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.l-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.l-prices .plan{background:var(--surface)}
.l-faq details{border-bottom:1px solid var(--line);padding:16px 0}
.l-faq summary{cursor:pointer;font-weight:600;font-size:15px}
.l-faq p{color:var(--text-2);margin:10px 0 0;max-width:760px;line-height:1.6}
.l-faq h2{margin-bottom:12px}
.l-cta{padding:64px 0;background:var(--text);color:#fff}
.l-cta .l-sub{color:#cbd5e1;margin-left:auto;margin-right:auto}
.center{text-align:center}
.foot a{color:var(--text-2)}

/* ---------- Auth ---------- */
.auth-page{background:var(--surface)}
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1.1fr}
.auth-side{background:var(--text);color:#fff;padding:40px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.auth-side .brand{color:#fff}
.auth-side .brand-x{color:#3b95ff}
.auth-side h2{font-size:30px;line-height:1.2;letter-spacing:-.03em;max-width:440px}
.auth-points{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:12px;color:#cbd5e1}
.auth-points li::before{content:"✓";color:#4ade80;font-weight:700;margin-right:10px}
.auth-fine{font-size:12.5px;color:var(--muted);margin:14px 0 0}
.auth-side .auth-fine{color:#94a3b8}
.auth-main{display:grid;place-items:center;padding:40px 24px}
.auth-card{width:min(400px,100%);display:flex;flex-direction:column;gap:14px}
.auth-card h1{font-size:26px;margin-top:6px}
.auth-card .sub{margin:-6px 0 4px}
.auth-card form{display:flex;flex-direction:column;gap:14px}
.auth-seg{align-self:flex-start}
.or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:12.5px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.link-btn{border:0;background:none;color:var(--brand);font-size:12.5px;font-weight:500;padding:0}
.verify-bar{background:var(--warn-bg);border-bottom:1px solid var(--vip-line);color:#93370d;font-size:13px;padding:8px 24px;text-align:center}
.verify-bar button{margin-left:8px}
.user-menu{position:relative}
.user-btn{height:36px;padding:0 10px 0 4px;border-radius:999px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;gap:8px;font-weight:500;box-shadow:var(--shadow-sm)}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--brand-bg);color:var(--brand);display:grid;place-items:center;font-weight:700;font-size:12px;overflow:hidden}
.avatar img{width:100%;height:100%}
.menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:40}
.menu .who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.menu .who b{display:block;font-size:13.5px}
.menu .who span{font-size:12.5px;color:var(--muted)}
.menu button{width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:6px;font-size:13.5px;color:var(--text-2)}
.menu button:hover{background:var(--surface-2)}

@media (max-width:900px){
  .l-hero-grid,.auth-wrap{grid-template-columns:1fr}
  .auth-side{padding:24px;gap:16px}
  .auth-side h2{font-size:22px}
  .l-features,.l-prices,.l-steps{grid-template-columns:1fr}
  .l-stats{grid-template-columns:repeat(2,1fr)}
  .lnav-links{display:none}
  .l-hero{padding:40px 0}
  .l-hero h1{font-size:32px}
  .l-sec{padding:48px 0}
}

/* ---------- Strategies + checkout ---------- */
.strat-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}
.strat-grid .f{grid-column:auto}
.mk-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;max-height:168px;overflow:auto;padding:2px}
.mk-pick label{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;font-weight:500;cursor:pointer}
.mk-pick label:has(input:checked){border-color:var(--brand);background:var(--brand-bg)}
.mk-pick input{margin:0}
.sm-inp{width:72px;height:34px}
.bt-panel{background:var(--surface-2)}
.bt-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.bt-kpis>div{display:flex;flex-direction:column;gap:2px}
.bt-kpis b{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}
.strat-card{cursor:default}
.strat-card .card-body{gap:12px}
.net-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:6px}
.net-grid button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);text-align:left}
.net-grid button b{font-size:13.5px}
.net-grid button span{font-size:12px;color:var(--muted)}
.net-grid button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-bg)}
.qr svg{width:100%;height:100%}
@media (max-width:900px){ .strat-grid{grid-template-columns:1fr} .bt-kpis{grid-template-columns:repeat(2,1fr)} }

/* ---------- Position sizer, proof link, Telegram ---------- */
.sizer{border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.sizer summary{cursor:pointer;font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:8px}
.sz-in{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.sz-in .f{grid-column:auto}
.sz-out{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.sz-out>div{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.sz-out .k{font-size:12px;color:var(--muted)}
.sz-out b{font-weight:650;font-size:15px;font-variant-numeric:tabular-nums}
.sz-out em{font-style:normal;font-size:12px;color:var(--muted)}
.sizer .hint{margin:8px 0 0}
.proof-link{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);text-decoration:none;padding:2px 2px}
.proof-link:hover{color:var(--brand)}
.proof-link code{font-size:12px;color:var(--text-2)}
.tg-box{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--surface-2)}
.tg-box b{display:flex;align-items:center;gap:7px;font-size:13.5px}
.tg-box .muted{display:block;font-size:12.5px;margin-top:2px}
@media (max-width:560px){.sz-in,.sz-out{grid-template-columns:1fr}.tg-box{flex-direction:column;align-items:flex-start}}

/* ---------- Exchange connect + trade ---------- */
.ex-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px;font-size:13.5px;color:var(--text-2)}
.ex-steps code{font-size:12.5px;background:var(--surface-3);padding:1px 6px;border-radius:5px;color:var(--text)}
.ex-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;font-size:13px}
.ex-warn{display:block;font-size:12px;color:var(--warn);margin-top:2px}
#dlgExch .dlg-inner,#dlgTrade .dlg-inner{max-width:520px}

/* =====================================================================================
   App colour pass: navy top bar, dark market hero with live tiles, accented cards.
   ===================================================================================== */
body:not(.landing){--ink:#0b1220;--ink-2:#111b2e;--ink-line:#223049;--sky:#7aa2ff;--mint:#34d399;--rose:#f87171;
  background-color:var(--bg);background-image:linear-gradient(rgba(16,24,40,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(16,24,40,.035) 1px,transparent 1px);background-size:40px 40px}
body:not(.landing) .top{background:rgba(11,18,32,.97);border-bottom-color:var(--ink-line)}
body:not(.landing) .brand{color:#fff}
body:not(.landing) .brand-x{color:#3b95ff}
body:not(.landing) .demo-tag{color:#93a1b8;border-color:#2c3a55}
body:not(.landing) .tab{color:#93a1b8}
body:not(.landing) .tab:hover,body:not(.landing) .tab[aria-selected="true"]{color:#fff}
body:not(.landing) .tab[aria-selected="true"]::after{background:var(--sky);height:3px}
body:not(.landing) .icon-btn,body:not(.landing) .vip-btn,body:not(.landing) .user-btn{background:#16223a;border-color:#2c3a55;color:#c3cad6;box-shadow:none}
body:not(.landing) .icon-btn:hover,body:not(.landing) .vip-btn:hover,body:not(.landing) .user-btn:hover{border-color:#41527a;color:#fff}
body:not(.landing) .vip-btn{color:#fff}
body:not(.landing) .vip-btn.is-vip{background:rgba(247,144,9,.14);border-color:rgba(247,144,9,.45);color:#fdb022}
body:not(.landing) .avatar{background:#22335a;color:#c7d5fb}

/* market hero: dark panel with live tiles */
#view-markets .hero{position:relative;background:var(--ink);color:#e7ecf5;border-radius:18px;padding:30px 30px 24px;margin-bottom:22px;overflow:hidden;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;
  box-shadow:0 30px 60px -36px rgba(11,18,32,.6)}
#view-markets .hero h1{color:#fff;font-size:36px}
#view-markets .hero .lede{color:#a9b5c8}
.hero-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sky);margin-bottom:10px}
.hero-kicker .live-dot{background:var(--mint);box-shadow:0 0 0 3px rgba(52,211,153,.18)}
#view-markets .search-box{background:#fff;border-color:#fff}
#view-markets .datasrc{color:#93a1b8}
#view-markets .datasrc b{color:#e7ecf5}
#view-markets .callout.warn{background:rgba(247,144,9,.1);border-color:rgba(247,144,9,.35);color:#fcd9a5;box-shadow:none}
.ov{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:22px}
.ov-t{text-align:left;background:var(--ink-2);border:1px solid var(--ink-line);border-radius:12px;padding:12px 14px;color:#e7ecf5;display:flex;flex-direction:column;gap:3px;min-width:0;transition:border-color .15s,transform .15s}
.ov-t:hover{border-color:#41527a;transform:translateY(-2px)}
.ov-t .k{display:flex;align-items:center;gap:7px;font-size:12px;color:#93a1b8}
.ov-t .k svg.i{width:14px;height:14px;color:var(--sky)}
.ov-t .k .coin.sm{width:18px;height:18px;font-size:7px}
.ov-t b{font-size:20px;font-weight:700;letter-spacing:-.02em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-t>span:last-child{font-size:12px;color:#93a1b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-t .up{color:var(--mint)!important}.ov-t .down{color:var(--rose)!important}
.ov-t.warn{border-color:rgba(247,144,9,.45)}.ov-t.warn b{color:#fdb022}
.ov-t.ok b{color:var(--mint)}

/* markets table + price ticks */
.mkt tbody tr{transition:background .12s,box-shadow .12s}
.mkt tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
.px{border-radius:5px;padding:1px 4px;margin:-1px -4px}
.flash-up{animation:flashUp 1s ease}
.flash-dn{animation:flashDn 1s ease}
@keyframes flashUp{0%{background:rgba(7,148,85,.22);color:var(--long)}100%{background:transparent}}
@keyframes flashDn{0%{background:rgba(217,45,32,.18);color:var(--short)}100%{background:transparent}}

/* signal cards: direction accent and a little lift */
.card{transition:box-shadow .2s,border-color .2s,transform .2s}
.card:hover{transform:translateY(-3px)}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--line-2);z-index:1}
.card:has(.dir.long)::before{background:var(--long)}
.card:has(.dir.short)::before{background:var(--short)}
.card.closed::before{background:var(--faint)}
.view-head h1{letter-spacing:-.03em}

@media (max-width:1100px){.ov{grid-template-columns:repeat(3,minmax(0,1fr))}.ov-t:nth-child(n+4){display:none}}
@media (max-width:640px){#view-markets .hero{padding:22px 18px 18px;border-radius:14px}#view-markets .hero h1{font-size:26px}.ov{grid-template-columns:1fr 1fr}.ov-t:nth-child(4){display:flex}.ov-t:nth-child(n+5){display:none}}
@media (prefers-reduced-motion:reduce){.flash-up,.flash-dn{animation:none}.card:hover,.ov-t:hover{transform:none}}

/* ---------- Wallet & referrals ---------- */
#dlgWallet .dlg-inner{max-width:720px}
.wal-top{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:10px}
.wal-bal{grid-row:span 1;background:#0b1220;color:#e7ecf5;border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:2px;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px}
.wal-bal .k{color:#93a1b8;font-size:12px}
.wal-bal b{font-size:32px;font-weight:750;letter-spacing:-.03em;color:#fff}
.wal-bal span:last-child{font-size:12px;color:#93a1b8}
.wal-stat{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;justify-content:space-between;gap:6px;background:var(--surface-2)}
.wal-stat .k{font-size:12px;color:var(--muted)}
.wal-stat b{font-size:24px;font-weight:700}
.wal-link .k,.wal-hist .k{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px;font-weight:500}
.wal-link .row .inp{flex:1}
.wal-pay{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.wal-pay summary{cursor:pointer;font-weight:600}
.wal-pay[open] summary{margin-bottom:12px}
.wal-hist ul{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.wal-hist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13.5px}
.wal-hist li:last-child{border-bottom:0}
.wal-hist li small{display:block;color:var(--muted);font-size:12px;word-break:break-all}
.wal-po{margin-top:10px!important}
@media (max-width:640px){.wal-top{grid-template-columns:1fr 1fr}.wal-bal{grid-column:span 2}}

.tag-free{background:var(--long-bg);color:var(--long)}
#stratSig .card{cursor:default}

.free-bar{align-items:center}
.free-bar span{flex:1}
.free-bar svg.i{margin-top:0}

/* ---------- Strategy builder v2 ---------- */
#dlgStrat{max-width:1180px;width:calc(100vw - 32px)}
.sb{border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;background:var(--surface)}
.sb h3{margin:0;font-size:14px;letter-spacing:-.01em}
.sb h3 .muted{font-weight:500;font-size:12.5px}
.preset-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.preset-chips{display:flex;gap:6px;flex-wrap:wrap}
.cond-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px}
.cond-top{display:flex;align-items:center;gap:8px}
.cond-n{width:22px;height:22px;border-radius:6px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center;flex:none}
.cond-top .sel{flex:1;height:34px}
.cond-del{width:28px;height:28px}
.cond-params{display:flex;gap:8px;flex-wrap:wrap}
.cond-params label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);min-width:90px;flex:1}
.cond-params .inp,.cond-params .sel{height:34px}
.cond-help{margin:0}
.tp-grid{display:grid;grid-template-columns:auto repeat(3,1fr);gap:6px 8px;align-items:center}
.tp-grid b{font-size:12px;color:var(--muted);font-weight:600}
.tp-grid .k{font-size:12.5px;color:var(--muted)}
.day-pick{display:flex;gap:6px;flex-wrap:wrap}
.day-pick label{display:flex;align-items:center;gap:5px;border:1px solid var(--line-2);border-radius:8px;padding:5px 9px;font-size:12.5px;cursor:pointer}
.day-pick label:has(input:checked){border-color:var(--brand-line);background:var(--brand-bg);color:var(--brand)}
.day-pick input{margin:0}
.bt-side{position:sticky;top:0;align-self:start}
.bt-tabs{align-self:flex-start}
.bt-kpis{grid-template-columns:repeat(3,1fr)}
.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.month-grid div{border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:12px}
.month-grid .pos{background:var(--long-bg);color:var(--long)}
.month-grid .neg{background:var(--short-bg);color:var(--short)}
.month-grid span{color:var(--text-2)}
.month-grid b{font-size:14px}
table.t tr.cur td{background:var(--brand-bg)}
@media (max-width:900px){.bt-side{position:static}.month-grid{grid-template-columns:repeat(3,1fr)}}

/* =====================================================================================
   Portal shell: dark sidebar, light top bar, dashboard home.
   ===================================================================================== */
body.portal{display:block;min-height:100vh}
.side{position:fixed;top:0;bottom:0;left:0;width:244px;background:#0b1220;color:#c3cad6;display:flex;flex-direction:column;padding:18px 14px;z-index:45;border-right:1px solid #1b2840;overflow-y:auto}
.side .brand{color:#fff;padding:2px 8px 14px}
.side .brand-x{color:#3b95ff}
.side .demo-tag{color:#93a1b8;border-color:#2c3a55}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#5f6f89;padding:14px 10px 6px}
.side .tab{height:40px;border-radius:9px;padding:0 10px;color:#a9b5c8;display:flex;align-items:center;gap:11px;font-weight:500;width:100%;text-align:left}
.side .tab svg.i{width:18px;height:18px;opacity:.85}
.side .tab:hover{background:#16223a;color:#fff}
.side .tab[aria-selected="true"]{background:#1d2c4a;color:#fff;box-shadow:inset 3px 0 0 #7aa2ff}
.side .tab::after{display:none!important}
.side .tab .badge{margin-left:auto}
.side .tab{flex:none!important;justify-content:flex-start!important;padding:0 10px!important}
.side-nav{flex-direction:column}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:18px}
.side-plan{background:#111b2e;border:1px solid #223049;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;margin-bottom:8px}
.side-plan b{color:#fff;font-size:13.5px}
.side-plan small{color:#93a1b8;font-size:12px}
.side-plan .btn{margin-top:6px}
.side-plan .pill.p-none{background:#1b2840;color:#c3cad6;border-color:#2c3a55}
.side-link{display:block;color:#a9b5c8;font-size:13px;padding:7px 10px;border-radius:8px;text-decoration:none;background:none;border:0;text-align:left;width:100%}
.side-link:hover{background:#16223a;color:#fff}
.side-scrim{position:fixed;inset:0;background:rgba(11,18,32,.5);z-index:44}
.shell{margin-left:244px;min-height:100vh;display:flex;flex-direction:column}
body.portal .top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
body.portal .top-row{max-width:none;height:64px;padding:0 28px;gap:16px}
.top-title{font-size:18px;font-weight:700;margin:0;letter-spacing:-.02em;white-space:nowrap}
.top-search{flex:1;max-width:440px;display:flex;align-items:center;gap:8px;height:40px;border:1px solid var(--line-2);border-radius:10px;padding:0 12px;background:var(--surface-2);color:var(--faint);transition:border-color .15s,background .15s}
.top-search input{border:0;background:none;outline:none;flex:1;min-width:0;font-size:14px;color:var(--text)}
.top-search input::-webkit-search-cancel-button{display:none}
.top-search:focus-within{border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px rgba(31,78,216,.1)}
body.portal .icon-btn,body.portal .vip-btn,body.portal .user-btn{background:var(--surface);border-color:var(--line);color:var(--text-2);box-shadow:var(--shadow-sm)}
body.portal .icon-btn:hover,body.portal .vip-btn:hover,body.portal .user-btn:hover{border-color:var(--line-2);color:var(--text)}
body.portal .vip-btn{color:var(--text)}
body.portal .vip-btn.is-vip{background:var(--vip-bg);border-color:var(--vip-line);color:var(--vip)}
body.portal .avatar{background:var(--brand-bg);color:var(--brand)}
.side-toggle{display:none!important}
body.portal main{max-width:1360px;padding:26px 28px 56px}
body.portal .foot{background:transparent}

/* dashboard */
.home-band{background:#0b1220;border-radius:18px;padding:26px 26px 22px;color:#e7ecf5;margin-bottom:20px;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;box-shadow:0 30px 60px -36px rgba(11,18,32,.6)}
.home-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.home-head h2{color:#fff;font-size:30px;margin:8px 0 4px;letter-spacing:-.03em}
.home-head p{color:#a9b5c8;margin:0;font-size:14px}
.home-band .callout.warn{background:rgba(247,144,9,.1);border-color:rgba(247,144,9,.35);color:#fcd9a5;box-shadow:none;margin:16px 0 0}
.home-band .ov{margin-top:20px}
.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hp{display:flex;flex-direction:column;min-width:0}
.hp-wide{grid-column:span 2}
.hp .panel-head h2{font-size:15px;margin:0}
.hp-list{display:flex;flex-direction:column;padding:6px}
.hp-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;border:0;background:none;width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit}
.hp-row:hover{background:var(--surface-2)}
.hp-name{flex:1;min-width:0;display:flex;flex-direction:column}
.hp-name b{font-size:13.5px}
.hp-name small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hp-num{display:flex;flex-direction:column;align-items:flex-end;font-size:13px}
.hp-num small{font-size:12px;color:var(--muted)}
.hp-empty{padding:14px;color:var(--muted);font-size:13.5px;margin:0;line-height:1.55}
.hp-actions{display:flex;flex-direction:column;padding:6px;gap:2px}
.hp-act{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:10px;border:0;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}
.hp-act:hover{background:var(--surface-2)}
.hp-act svg.i{width:18px;height:18px;color:var(--brand);margin-top:2px}
.hp-act b{display:block;font-size:13.5px}
.hp-act small{color:var(--muted);font-size:12.5px}
.link-btn{border:0;background:none;color:var(--brand);font-weight:600;cursor:pointer;padding:0}
/* watchlist stars + categories */
.star-col{width:34px;padding-right:0!important}
.star{border:0;background:none;color:#cfd5df;font-size:17px;cursor:pointer;line-height:1;padding:2px}
.star.on{color:#f5a524}
.star:hover{color:#f5a524}
.cat-chips{margin:0 0 14px;flex-wrap:wrap}
.btn.taken{background:var(--long-bg);border-color:var(--long-line);color:var(--long)}
.cs-actions{grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width:1100px){.home-grid{grid-template-columns:1fr 1fr}.hp-wide{grid-column:span 2}}
@media (max-width:960px){
  .side{transform:translateX(-100%);transition:transform .25s ease;box-shadow:none}
  .side.open{transform:none;box-shadow:0 0 60px rgba(0,0,0,.5)}
  .shell{margin-left:0}
  .side-toggle{display:grid!important}
  body.portal .top-row{padding:0 14px;gap:10px}
  body.portal main{padding:18px 14px 48px}
}
@media (max-width:700px){.home-grid{grid-template-columns:1fr}.hp-wide{grid-column:auto}.top-title{display:none}.home-head h2{font-size:24px}.home-band{padding:20px 16px}}
.feed-more{grid-column:1/-1;padding:14px 16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:14px;background:#fff}
@media (max-width:760px){body.portal .top-row{flex-wrap:nowrap;height:60px;padding:0 12px;gap:8px}body.portal .top-search{min-width:0}body.portal .top-actions{gap:6px;flex:none}body.portal #soundBtn{display:none}}

.in-desktop .web-only{display:none!important}

/* referral: login page */
svg.gift{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.auth-points li.earn{color:#86efac;font-weight:600}
.auth-points li.earn::before{content:"$";color:#4ade80}
.invite-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin-bottom:16px;border-radius:12px;background:#ecfdf3;border:1px solid #abefc6;color:#05603a;font-size:13.5px;line-height:1.5}
.invite-note svg.gift{margin-top:2px}

/* referral: portal */
.earn-btn{height:36px;padding:0 13px;border-radius:8px;border:1px solid #067647;background:#067647;color:#fff;font-weight:650;display:flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer}
.earn-btn:hover{background:#05603a}
.side-ref{display:flex;align-items:center;gap:11px;width:100%;text-align:left;margin:10px 0 6px;padding:11px 12px;border-radius:12px;border:1px solid #1f6b4a;background:#0f3d2c;color:#d1fadf;cursor:pointer}
.side-ref:hover{background:#13513a}
.side-ref svg.gift{width:20px;height:20px;color:#4ade80}
.side-ref b{display:block;font-size:14px;color:#fff}
.side-ref small{display:block;font-size:12px;color:#a6f4c5;margin-top:1px}
.home-ref{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px 24px;align-items:center;margin-top:18px;padding:20px 22px;border-radius:16px;background:#ecfdf3;border:1px solid #abefc6}
.home-ref:empty{display:none}
.hr-main{display:flex;gap:14px;align-items:flex-start}
.hr-ic{width:42px;height:42px;border-radius:12px;background:#067647;color:#fff;display:grid;place-items:center;flex:none}
.hr-ic svg.gift{width:22px;height:22px}
.hr-main h3{margin:0;font-size:18px;letter-spacing:-.01em;color:#053321}
.hr-main p{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:#05603a}
.hr-link{display:flex;gap:8px}
.hr-link .inp{flex:1;min-width:0;background:#fff;border-color:#abefc6}
.btn-earn{background:#067647;border-color:#067647;color:#fff;white-space:nowrap}
.btn-earn:hover{background:#05603a;border-color:#05603a;color:#fff}
.hr-share{display:flex;gap:8px;flex-wrap:wrap}
.hr-stats{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.hr-stats b{display:block;font-size:20px;color:#053321}
.hr-stats span{font-size:12px;color:#05603a}
.hr-stats .btn{margin-left:auto}
@media (max-width:900px){.home-ref{grid-template-columns:1fr}}
@media (max-width:760px){.earn-btn span{display:none}.earn-btn{padding:0 10px}}
.hr-share a.btn,.home-ref a.btn{text-decoration:none}

/* admin: daily PnL */
.adm-pnl-k{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:12px}
.adm-pnl-k:empty{display:none}
.adm-pnl-k div{background:var(--surface);padding:12px 16px}
.adm-pnl-k span{display:block;font-size:12px;color:var(--muted)}
.adm-pnl-k b{display:block;font-size:20px;margin-top:2px;font-variant-numeric:tabular-nums}
.adm-pnl-k small{font-size:12px;color:var(--muted)}
.adm-pnl-k .up{color:var(--long)}.adm-pnl-k .down{color:var(--short)}
@media (max-width:760px){.adm-pnl-k{grid-template-columns:1fr 1fr}}

/* card payments */
.pay-btns{display:flex;flex-direction:column;gap:8px}
.card-steps li .dot{font-size:12px;font-weight:700}
.card-steps li b{color:var(--text)}
#dlgPay a.btn{text-decoration:none}

/* Telegram Stars */
.btn-stars{background:#229ed9;border-color:#229ed9;color:#fff;text-decoration:none}
.btn-stars:hover{background:#1c8cc1;border-color:#1c8cc1;color:#fff}
.stars-phone{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;background:#eef7fd;border:1px solid #bfe3f6}
.stars-phone .qr{width:96px;height:96px;background:#fff;padding:6px;border-radius:8px}
.stars-phone .qr svg{width:100%;height:100%;display:block}
.stars-phone b{font-size:13.5px;color:var(--text)}
.stars-phone p{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-2)}
@media (max-width:560px){.stars-phone{grid-template-columns:1fr}.stars-phone .qr{display:none}}
/* trade management on signal cards: partial closes and the stop moved to entry */
.rail .stopmark{position:absolute;top:-5px;bottom:-5px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--brand)}
.rail-lbl .sl.moved{text-decoration:line-through;opacity:.55}
.rail-lbl .be{color:var(--brand)}
.mgmt{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.mgmt li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2);padding:6px 10px;border-radius:8px;background:var(--surface-2)}
.mgmt li svg.i{width:14px;height:14px;flex:none}
.mgmt li.ok svg.i{color:var(--long)}.mgmt li.be svg.i{color:var(--brand)}.mgmt li.loss svg.i{color:var(--short)}
.mgmt li span{flex:1;min-width:0}
.mgmt li em{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums}
/* waiting banner: get ready for the next signal (the banners sit on dark bands) */
.callout .wait-cta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#c3cad6;font-weight:400}
.callout .wait-cta span{flex:1 1 300px}
.callout .wait-cta b{color:#fff}
.callout .wait-cta svg.i{width:16px;height:16px;flex:none;color:#7aa2ff}
.callout .wait-cta.ok svg.i{color:#34d399}

/* auto-trade */
.au-on{margin:2px 0}
.au-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.au-grid .f{grid-column:auto}
.au-how{margin:0;padding-left:18px;color:var(--text-2);font-size:13px;line-height:1.55;display:flex;flex-direction:column;gap:4px}
.au-log ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.au-log li{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:center;font-size:12.5px;padding:7px 10px;border-radius:8px;background:var(--surface-2)}
.au-log li .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.au-log li small{color:var(--faint)}
@media (max-width:560px){.au-grid{grid-template-columns:1fr}.au-log li{grid-template-columns:auto 1fr}.au-log li .muted{grid-column:1/-1;white-space:normal}}

/* position size calculator, two columns like a planning sheet */
.sz2{display:grid;grid-template-columns:1fr;gap:16px;margin-top:12px}
.sz-in2{display:flex;flex-direction:column;gap:14px}
.sz-in2 .f{display:flex;flex-direction:column;gap:4px}
.sz-in2 label{display:flex;justify-content:space-between;font-weight:600;font-size:13.5px;color:var(--text)}
.sz-in2 small{font-size:12px;color:var(--muted)}
.sz-in2 input[type=range]{width:100%;accent-color:var(--brand);margin-top:4px}
.sz-res{display:flex;flex-direction:column;gap:8px}
.sz-row{display:flex;align-items:baseline;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.sz-row span{flex:1;color:var(--text-2);font-size:13px}
.sz-row b{font-size:17px;font-variant-numeric:tabular-nums}
.sz-row em{font-style:normal;font-size:12px;color:var(--muted)}
.sz-row .vio{color:#7c3aed}
.sz-bar div{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text-2)}
.sz-bar i{display:block;height:6px;border-radius:3px;background:var(--surface-3);margin:6px 0;overflow:hidden}
.sz-bar s{display:block;height:100%;background:var(--long);text-decoration:none}
.sz-bar small{font-size:11.5px;color:var(--muted);line-height:1.4}
.sz-msg{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;border-radius:10px;font-size:13px}
.sz-msg svg.i{width:16px;height:16px;flex:none;margin-top:1px}
.sz-msg.ok{background:var(--long-bg);border:1px solid var(--long-line);color:#05603a}
.sz-msg.warn{background:#fffaeb;border:1px solid #fedf89;color:#93370d}
.sz-msg.bad{background:var(--short-bg);border:1px solid var(--short-line);color:#912018}
@media (max-width:760px){.sz2{grid-template-columns:1fr}}

/* caution signals (published while the pause is on) */
.tag-caution{background:#fffaeb;color:#93370d;border:1px solid #fedf89}
.cz-note{display:block;margin-top:6px;font-size:12.5px}

/* your wallet: sizing without an exchange */
.c-size{display:flex;gap:8px;align-items:flex-start;padding:9px 11px;border-radius:9px;background:var(--brand-bg);border:1px solid var(--brand-line);font-size:12.5px;line-height:1.5;color:var(--text-2)}
.c-size svg.i{width:15px;height:15px;flex:none;margin-top:2px;color:var(--brand)}
.c-size b{color:var(--text);font-variant-numeric:tabular-nums}.c-size b.down{color:var(--short)}
.c-size em{font-style:normal;color:#b54708}
.c-size.empty{background:var(--surface-2);border-color:var(--line)}
.c-size.empty span{flex:1}
.home-wallet:empty{display:none}
.hw{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);font-size:13.5px;color:var(--text-2)}
.hw svg.i{width:18px;height:18px;color:var(--brand);flex:none}
.hw span{flex:1 1 320px}
.hw b{color:var(--text)}
.hw .inp{width:140px}.hw .sel{width:120px}
.hw.ok{padding:10px 14px}
.wal-set{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--brand-line);border-radius:12px;background:var(--brand-bg)}
.wal-set b{display:flex;align-items:center;gap:8px}
.wal-set svg.i{width:16px;height:16px;color:var(--brand)}
.wal-set .muted{font-size:12.5px}

/* tested strategy templates */
.preset-chips .chip[aria-pressed="true"]{background:var(--brand-bg);border-color:var(--brand-line);color:var(--brand)}
.preset-info{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;line-height:1.5;color:var(--text-2)}
.preset-info svg.i{width:15px;height:15px;flex:none;margin-top:2px;color:var(--brand)}
.preset-info b{color:var(--text)}

/* AI signals */
.ai-card{padding:16px;display:flex;flex-direction:column;gap:10px}
.ai-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ai-head b{font-size:15px}
.ai-head .muted{margin-left:auto;font-size:12px}
.ai-why{margin:0;font-size:13.5px;line-height:1.55;color:var(--text-2)}
.ai-lv{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.ai-lv div{padding:8px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line)}
.ai-lv span{display:block;font-size:11px;color:var(--muted)}
.ai-lv b{font-size:13px;font-variant-numeric:tabular-nums}
.ai-foot{margin:0;font-size:11.5px;color:var(--muted)}

/* AI signals: coin grid */
.ai-coins{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:20px}
.ai-answers:not(:empty){margin-bottom:20px}
.ai-coin{position:relative;display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);font:inherit;color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,transform .15s}
.ai-coin:hover:not(:disabled){border-color:var(--brand-line);transform:translateY(-1px)}
.ai-coin:disabled{cursor:default;opacity:.7}
.ai-coin[aria-busy="true"]{border-color:var(--brand-line);background:var(--brand-bg)}
.ai-sym{display:flex;flex-direction:column;min-width:0;flex:1}
.ai-sym b{font-size:14px}
.ai-sym span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-px{display:flex;flex-direction:column;align-items:flex-end;font-size:12px}
.ai-px b{font-size:12.5px}
.ai-tag{position:absolute;top:-8px;right:8px;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:600;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.ai-tag.long{background:var(--long-bg);color:var(--long);border-color:transparent}
.ai-tag.short{background:var(--short-bg);color:var(--short);border-color:transparent}
.ai-tag.busy{background:var(--brand);color:#fff;border-color:transparent;animation:aiPulse 1.2s ease-in-out infinite}
@keyframes aiPulse{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.ai-tag.busy{animation:none}}
@media (max-width:560px){.ai-coins{grid-template-columns:repeat(2,1fr)}.ai-px{display:none}}

/* caution-mode trades in the closed signals table */
.st-cz{background:#fffaeb;color:#b54708}
.seg .seg-n{font-size:11px;color:var(--muted);font-weight:500;margin-left:2px}
