/* ===== Veort terminal — landing + dashboard (Solana edition) ===== */
:root{
  /* Solana brand palette: deep indigo + cyber teal + pink-magenta accent */
  --bg:#06061a; --bg-2:#0b0a26; --surface:#11102e; --surface-2:#1a1840;
  --line:#23214a; --line-2:#322f60; --text:#eef0ff; --muted:#8b8db0;
  --primary:#14f195;        /* solana green */
  --primary-2:#00d18c;
  --accent:#9945ff;         /* solana purple */
  --accent-2:#19fb9b;
  --magenta:#ff5cf3;
  --cyan:#00e0ff;
  --warn:#ffb84d; --danger:#ff5577;
  --up:#14f195; --down:#ff5577;
  --orange:#ff8b3d;
  --shadow:0 18px 50px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif; background:var(--bg); color:var(--text); font-size:14px; min-height:100vh; overflow-x:hidden}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace; font-feature-settings:"tnum" on,"lnum" on}
.display, h1, h2, h3{font-family:'Bricolage Grotesque',sans-serif; letter-spacing:-0.01em; font-weight:700}
.muted{color:var(--muted)} .small{font-size:12px} .up{color:var(--up)} .down{color:var(--down)}
.hidden{display:none !important}
.row{display:flex; flex-wrap:wrap; align-items:center} .row.gap{gap:10px} .mt{margin-top:10px}
.page{min-height:100vh; position:relative; z-index:1}

/* ===== Animated canvas background (candles) ===== */
#candles-bg{position:fixed; inset:0; width:100%; height:100%; z-index:-3; opacity:.55; pointer-events:none}

.bg-grid{position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(1100px 600px at 18% -8%, rgba(20,241,149,0.07), transparent 60%),
    radial-gradient(900px 540px at 100% 8%, rgba(153,69,255,0.10), transparent 65%),
    radial-gradient(800px 500px at 80% 95%, rgba(255,92,243,0.05), transparent 60%),
    linear-gradient(180deg, #050414 0%, #06061a 50%, #050414 100%);
}
.bg-grid::after{content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(153,69,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,241,149,0.04) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse at top, black 25%, transparent 80%);
}
.bg-glow{position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(420px 420px at 8% 30%, rgba(153,69,255,0.18), transparent 70%),
    radial-gradient(380px 380px at 92% 70%, rgba(20,241,149,0.14), transparent 70%);
  animation: glow-shift 14s ease-in-out infinite alternate;
}
@keyframes glow-shift{
  0%{transform:translate(0,0)}
  100%{transform:translate(-30px,20px)}
}

/* ===== brand ===== */
.brand{display:flex; align-items:center; gap:10px}
.brand-mark{width:38px; height:38px; border-radius:11px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);
  display:grid; place-items:center; font-weight:800; color:#08051c;
  box-shadow:0 6px 22px rgba(153,69,255,.45), inset 0 0 0 1px rgba(255,255,255,0.2);
  font-family:'Bricolage Grotesque',sans-serif; position:relative; overflow:hidden}
.brand-mark::after{content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  animation:shine 3.6s linear infinite}
@keyframes shine{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.brand-name{font-family:'Bricolage Grotesque',sans-serif; font-weight:800; letter-spacing:3px;
  background:linear-gradient(120deg,#fff 0%,#cbd0ff 50%,#fff 100%); -webkit-background-clip:text; background-clip:text; color:transparent}
.brand-sub{font-size:10.5px; color:var(--muted); letter-spacing:1.5px; text-transform:uppercase}
.brand.small .brand-mark{width:34px; height:34px; border-radius:9px}

/* ===== buttons ===== */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:11px 16px; border-radius:10px; border:1px solid transparent; cursor:pointer;
  font-family:inherit; font-size:13px; font-weight:600; letter-spacing:.3px;
  background:#1a1a3d; color:#cfd6e6; transition:transform .14s ease, box-shadow .25s ease, background .2s, border-color .2s;
  position:relative; overflow:hidden}
.btn:hover{transform:translateY(-2px)} .btn:active{transform:translateY(0)}
.btn.full{width:100%; margin-top:14px}
.btn.big{padding:15px 22px; font-size:14px}
.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%); color:#08051c;
  box-shadow:0 10px 28px rgba(20,241,149,.30), 0 0 0 1px rgba(255,255,255,0.06) inset}
.btn-primary:hover{box-shadow:0 14px 38px rgba(153,69,255,.45), 0 0 0 1px rgba(255,255,255,0.10) inset}
.btn-primary::before{content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  transform:translateX(-100%); transition:transform .6s ease}
.btn-primary:hover::before{transform:translateX(100%)}
.btn-success{background:linear-gradient(135deg,#14f195,#0f9f72); color:#012}
.btn-warn{background:linear-gradient(135deg,#ffb84d,#ff8e2b); color:#211}
.btn-danger{background:linear-gradient(135deg,#ff5577,#d83a5d); color:#fff}
.btn-ghost{background:rgba(255,255,255,0.02); border:1px solid var(--line); backdrop-filter:blur(10px)}
.btn-ghost:hover{border-color:var(--primary); color:var(--primary); background:rgba(20,241,149,0.05)}
.x{background:none; border:none; color:var(--muted); font-size:22px; cursor:pointer}
.x:hover{color:var(--text)}
.link{background:none; border:none; color:var(--primary); cursor:pointer; padding:0; font-family:inherit}

/* ===== LANDING ===== */
.lp-nav{display:flex; align-items:center; justify-content:space-between; padding:22px 6%; max-width:1400px; margin:0 auto; position:relative; z-index:5}
.lp-nav-links{display:flex; gap:32px}
.lp-nav-links a{color:var(--muted); text-decoration:none; font-size:14px; transition:color .15s; position:relative}
.lp-nav-links a:hover{color:var(--text)}
.lp-nav-links a::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px;
  background:linear-gradient(90deg,var(--primary),var(--accent)); transform:scaleX(0); transform-origin:left; transition:transform .25s}
.lp-nav-links a:hover::after{transform:scaleX(1)}
@media (max-width:780px){.lp-nav-links{display:none}}

.hero{display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; padding:60px 6% 80px; max-width:1400px; margin:0 auto; position:relative}
@media (max-width:980px){.hero{grid-template-columns:1fr; gap:40px; padding:30px 6% 60px}}

.kicker{display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border-radius:999px;
  background:rgba(20,241,149,0.06); border:1px solid rgba(20,241,149,0.30); color:var(--primary);
  font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:24px;
  backdrop-filter:blur(10px); box-shadow:0 0 24px rgba(20,241,149,0.10)}
.live-dot{width:7px; height:7px; border-radius:50%; background:var(--primary); box-shadow:0 0 10px var(--primary); animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1)}50%{opacity:.4; transform:scale(0.85)}}

.display{font-size:clamp(40px,6.4vw,86px); line-height:1.02; margin:0 0 22px; font-weight:800}
.grad{background:linear-gradient(120deg,var(--primary) 0%, var(--cyan) 35%, var(--accent) 70%, var(--magenta) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  background-size:200% 100%; animation:grad-shift 6s ease infinite}
@keyframes grad-shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.under{position:relative; display:inline-block}
.under::after{content:""; position:absolute; left:0; right:0; bottom:6px; height:14px;
  background:linear-gradient(90deg, rgba(20,241,149,.0), rgba(153,69,255,.45), rgba(20,241,149,.0));
  z-index:-1; border-radius:8px; animation:slide-glow 3s ease-in-out infinite}
@keyframes slide-glow{0%,100%{transform:scaleX(0.8); opacity:.6}50%{transform:scaleX(1); opacity:1}}
.lead{font-size:17px; line-height:1.6; color:#aab4cc; max-width:540px; margin:0 0 28px}
.trust{display:flex; gap:38px; margin-top:42px; flex-wrap:wrap}
.t-num{font-size:24px; font-weight:700;
  background:linear-gradient(120deg,var(--primary),var(--accent)); -webkit-background-clip:text; background-clip:text; color:transparent}
.t-l{font-size:11px; letter-spacing:1.4px; text-transform:uppercase}

/* ===== terminal mock ===== */
.terminal-stack{display:flex; flex-direction:column; gap:14px}
.ticker-row{overflow:hidden; border-radius:10px; border:1px solid var(--line);
  background:linear-gradient(90deg, rgba(11,10,38,.95), rgba(17,16,46,.95));
  backdrop-filter:blur(10px); padding:10px 0; position:relative}
.ticker-row::before, .ticker-row::after{content:""; position:absolute; top:0; bottom:0; width:60px; z-index:2; pointer-events:none}
.ticker-row::before{left:0; background:linear-gradient(90deg, rgba(11,10,38,1), transparent)}
.ticker-row::after{right:0; background:linear-gradient(-90deg, rgba(11,10,38,1), transparent)}
.ticker-track{display:flex; gap:34px; white-space:nowrap; animation:tick 32s linear infinite; font-family:'JetBrains Mono',monospace; font-size:12.5px; padding-left:20px}
.ticker-track .tick{display:inline-flex; gap:6px; align-items:center}
.ticker-track .sym{color:var(--muted); letter-spacing:1px}
.ticker-track .pos{color:var(--primary)}
.ticker-track .neg{color:var(--danger)}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.terminal{border:1px solid var(--line-2); border-radius:14px;
  background:linear-gradient(180deg,rgba(8,8,32,.92),rgba(5,5,20,.92));
  box-shadow:var(--shadow), 0 0 0 1px rgba(153,69,255,0.10) inset;
  overflow:hidden; position:relative; backdrop-filter:blur(14px)}
.terminal::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(420px 220px at 80% 0%, rgba(20,241,149,0.14), transparent 70%),
             radial-gradient(420px 220px at 0% 100%, rgba(153,69,255,0.14), transparent 70%)}
.terminal::after{content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 3px)}
.term-h{display:flex; align-items:center; gap:14px; padding:12px 14px; border-bottom:1px solid var(--line); background:rgba(5,5,20,0.6); position:relative; z-index:1}
.dots{display:flex; gap:6px}
.dots i{width:11px; height:11px; border-radius:50%; background:#243151}
.dots i:nth-child(1){background:#ff5577} .dots i:nth-child(2){background:#ffb84d} .dots i:nth-child(3){background:var(--primary)}
.term-title{font-size:11.5px; color:var(--muted); letter-spacing:.5px; flex:1}
.term-tag{font-size:10.5px; color:var(--primary); letter-spacing:2px;
  background:rgba(20,241,149,0.08); border:1px solid rgba(20,241,149,0.30); padding:3px 8px; border-radius:999px;
  animation:pulse 2s infinite}
.term-body{padding:18px 18px; font-size:12.5px; min-height:340px; line-height:2.0; position:relative; z-index:1}
.tl{display:flex; gap:14px; align-items:center}
.tl-t{color:var(--muted)}
.tl-ok{color:var(--primary)} .tl-up{color:var(--up)} .tl-down{color:var(--down)}
.tk{color:var(--cyan); font-weight:600}
.cur{display:inline-block; margin-left:4px; animation:blink 1s steps(2) infinite; color:var(--primary)}
@keyframes blink{50%{opacity:0}}

/* sections */
.section-h{text-align:center; max-width:680px; margin:0 auto 50px}
.section-h h2{font-size:clamp(30px,3.4vw,42px); margin:0 0 14px}
.section-h p{font-size:15px; line-height:1.5}
.eyebrow{display:inline-block; font-size:11px; letter-spacing:2.5px; text-transform:uppercase;
  background:linear-gradient(120deg,var(--primary),var(--accent)); -webkit-background-clip:text; background-clip:text; color:transparent;
  padding:6px 12px; border:1px solid rgba(153,69,255,.30); border-radius:999px; margin-bottom:18px}

.features{padding:80px 6%; max-width:1400px; margin:0 auto; position:relative}
.feat-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px}
.feat{padding:22px; border-radius:14px;
  background:linear-gradient(180deg,rgba(17,16,46,.85),rgba(11,10,38,.85));
  border:1px solid var(--line); transition:transform .25s, border-color .25s, box-shadow .25s;
  backdrop-filter:blur(10px); position:relative; overflow:hidden}
.feat::before{content:""; position:absolute; top:0; left:-100%; width:100%; height:1px;
  background:linear-gradient(90deg, transparent, var(--primary), transparent); transition:left .6s ease}
.feat:hover{transform:translateY(-4px); border-color:rgba(20,241,149,.35); box-shadow:0 22px 50px rgba(0,0,0,.5), 0 0 0 1px rgba(20,241,149,0.10) inset}
.feat:hover::before{left:100%}
.feat-icon{width:42px; height:42px; border-radius:10px;
  background:linear-gradient(135deg, rgba(20,241,149,0.15), rgba(153,69,255,0.15));
  border:1px solid rgba(20,241,149,.25); display:grid; place-items:center; color:var(--primary);
  font-size:18px; margin-bottom:14px; font-weight:700}
.feat h4{margin:0 0 6px; font-size:15.5px; font-family:'Bricolage Grotesque',sans-serif; font-weight:600}
.feat p{margin:0; color:var(--muted); font-size:13px; line-height:1.55}

.how{padding:60px 6%; max-width:1100px; margin:0 auto}
.steps{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.steps li{padding:24px 22px; border-radius:14px;
  background:linear-gradient(180deg,rgba(17,16,46,.85),rgba(11,10,38,.85));
  border:1px solid var(--line); position:relative; backdrop-filter:blur(10px);
  transition:transform .25s, border-color .25s}
.steps li:hover{transform:translateY(-3px); border-color:rgba(153,69,255,.35)}
.num{font-family:'Bricolage Grotesque',sans-serif; font-size:32px; font-weight:800; color:transparent; -webkit-text-stroke:1.2px var(--primary); margin-bottom:14px}
.steps h3{margin:0 0 6px; font-size:15.5px; font-weight:600}
.steps p{margin:0; font-size:13px; line-height:1.55}

.cta{padding:80px 6%; max-width:1400px; margin:0 auto}
.cta-card{padding:60px 40px; border-radius:22px;
  background:radial-gradient(700px 320px at 30% 30%, rgba(20,241,149,0.16), transparent 70%),
             radial-gradient(700px 320px at 70% 80%, rgba(153,69,255,0.20), transparent 70%),
             linear-gradient(135deg, rgba(13,11,40,.95), rgba(6,6,26,.95));
  border:1px solid var(--line-2); text-align:center; backdrop-filter:blur(14px); position:relative; overflow:hidden}
.cta-card::before{content:""; position:absolute; inset:-2px; border-radius:24px; padding:2px;
  background:linear-gradient(120deg, transparent 30%, rgba(20,241,149,0.4) 50%, transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  animation:rotate-border 8s linear infinite; pointer-events:none}
@keyframes rotate-border{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
.cta-card h2{font-size:clamp(30px,3.4vw,42px); margin:0 0 12px}
.cta-card p{margin:0 0 26px; max-width:540px; margin-left:auto; margin-right:auto}
.cta-card .row{justify-content:center}

.lp-foot{display:flex; justify-content:space-between; padding:36px 6%; border-top:1px solid var(--line); color:var(--muted); font-size:13px; max-width:1400px; margin:0 auto; flex-wrap:wrap; gap:14px}

/* ===== APP / dashboard ===== */
.sidebar{position:fixed; left:0; top:0; bottom:0; width:240px;
  background:linear-gradient(180deg,rgba(10,9,32,.92) 0%, rgba(6,6,20,.95) 100%);
  border-right:1px solid var(--line); display:flex; flex-direction:column; padding:20px 14px; z-index:10;
  backdrop-filter:blur(14px); overflow-y:auto; overscroll-behavior:contain}
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12); border-radius:3px}
.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(20,241,149,0.4)}
.brand.small{padding:6px 6px 22px; border-bottom:1px solid var(--line); margin-bottom:14px}
.nav{display:flex; flex-direction:column; gap:2px; margin-top:6px}
.nav-item{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; color:#b3becf; cursor:pointer; user-select:none; font-size:13.5px; transition:background .15s, color .15s}
.nav-item:hover{background:rgba(255,255,255,0.04); color:#fff}
.nav-item.active{background:linear-gradient(90deg, rgba(20,241,149,0.15), rgba(153,69,255,0.05)); color:#fff; box-shadow:inset 2px 0 0 var(--primary)}
.nav-item .dot{width:6px; height:6px; border-radius:50%; background:#445}
.nav-item.active .dot{background:var(--primary); box-shadow:0 0 12px var(--primary)}
.sidebar-foot{margin-top:auto; padding-top:14px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:10px}
.net-pill{display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; background:rgba(20,241,149,0.08); color:var(--primary); border:1px solid rgba(20,241,149,0.2); font-size:11.5px; letter-spacing:1px; text-transform:uppercase; width:fit-content}
.user-foot{display:flex; justify-content:space-between; align-items:center; gap:8px}

.topbar{position:fixed; top:0; left:240px; right:0; height:72px; background:rgba(6,6,20,.78); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 28px; z-index:9}
.route-title{font-size:18px; font-weight:600} .route-sub{font-size:12px; margin-top:2px}
.topbar-right{display:flex; align-items:center; gap:10px}
.balance-pill{display:flex; align-items:center; gap:8px; padding:9px 14px; border-radius:999px; background:var(--surface); border:1px solid var(--line); font-family:'JetBrains Mono',monospace}
.bal-sol{font-weight:600} .bal-usd{color:var(--muted)}

.content{margin-left:240px; padding:96px 28px 60px; max-width:1400px}
.view{animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0; transform:translateY(6px)}to{opacity:1}}
@media (max-width:980px){
  .sidebar{transform:translateX(-100%); transition:transform .25s ease; width:260px}
  .sidebar.open{transform:translateX(0)}
  .topbar,.content{left:0; margin-left:0}
}

.grid{display:grid; gap:16px; margin-bottom:16px}
.grid-2{grid-template-columns:1fr 1fr} .grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.grid-2,.grid-4{grid-template-columns:1fr}}
.card{background:linear-gradient(180deg,rgba(17,16,46,.85),rgba(11,10,38,.85));
  border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow:var(--shadow); backdrop-filter:blur(10px)}
.card.narrow{max-width:560px; margin:0 auto}
.card-h{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; gap:10px}
.card-h h3{margin:0; font-size:15px; font-weight:600}
.badge{font-size:11px; letter-spacing:1px; text-transform:uppercase; padding:4px 10px; border-radius:999px; background:rgba(255,184,77,.12); color:var(--warn); border:1px solid rgba(255,184,77,.3)}
.badge.running{background:rgba(20,241,149,.12); color:var(--primary); border-color:rgba(20,241,149,.3)}

.stat .stat-label{color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:1.5px}
.stat .stat-value{font-size:24px; font-weight:700; margin-top:6px; font-family:'JetBrains Mono',monospace; word-break:break-all}
.stat .stat-sub{font-size:12px; margin-top:6px}
.row-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:8px 0 14px}
.row-grid .big{font-size:18px; font-weight:600; margin-top:4px}
.kv{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--line)} .kv:last-child{border-bottom:0}

.lbl{display:block; color:var(--muted); font-size:12px; margin:14px 0 6px; letter-spacing:.4px}
.inp{width:100%; padding:11px 12px; border-radius:10px; background:rgba(6,6,26,0.6); color:var(--text); border:1px solid var(--line); outline:none; transition:border-color .2s, box-shadow .2s; font-size:13.5px; font-family:inherit}
.inp:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(20,241,149,0.15)}
textarea.inp{resize:vertical}

.table-wrap{overflow:auto; border-radius:10px; border:1px solid var(--line)}
table.data{width:100%; border-collapse:collapse; font-size:13px}
table.data th, table.data td{padding:11px 14px; text-align:left}
table.data thead th{background:rgba(6,6,26,0.6); color:var(--muted); text-transform:uppercase; letter-spacing:1.5px; font-size:11px; font-weight:500; border-bottom:1px solid var(--line)}
table.data tbody tr{border-bottom:1px solid var(--line)} table.data tbody tr:last-child{border-bottom:0}
table.data tbody tr:hover{background:rgba(255,255,255,0.02)}
table.data .empty td{text-align:center; color:var(--muted); padding:34px 12px}

.logs{max-height:340px; overflow:auto; font-family:'JetBrains Mono',monospace; font-size:12px}
.logs.big{max-height:60vh}
.log{display:flex; gap:12px; padding:8px 4px; border-bottom:1px dashed var(--line)}
.log .ts{color:var(--muted); white-space:nowrap}
.log .lvl{padding:1px 6px; border-radius:6px; font-size:10.5px; height:fit-content; margin-top:2px}
.lvl.info{background:rgba(124,140,255,.15); color:#9aa6ff}
.lvl.warn{background:rgba(255,184,77,.15); color:var(--warn)}
.lvl.error{background:rgba(255,85,119,.15); color:var(--danger)}
.log .msg{flex:1; word-break:break-word; color:#cfd8e6}
.output{background:#04040f; color:#9be7c8; border:1px solid var(--line); border-radius:10px; padding:14px; margin-top:14px; max-height:480px; overflow:auto; font-size:12.5px; font-family:'JetBrains Mono',monospace; white-space:pre-wrap; line-height:1.7}

/* modals */
.modal{position:fixed; inset:0; background:rgba(2,2,12,.82); backdrop-filter:blur(8px); display:grid; place-items:center; z-index:100; animation:fadeIn .2s ease}
.modal-card{width:min(500px, 92vw)}
.warn{margin-top:14px; padding:10px 12px; border-radius:8px; background:rgba(255,85,119,.08); border:1px solid rgba(255,85,119,.25); color:#ffb0c0; font-size:12px}
.auth-tabs{display:flex; gap:0; background:rgba(6,6,26,0.6); padding:4px; border-radius:10px; border:1px solid var(--line)}
.tab{padding:8px 14px; border:0; background:transparent; color:var(--muted); cursor:pointer; border-radius:8px; font-family:inherit; font-size:13px; font-weight:500}
.tab.active{background:var(--surface); color:var(--text); box-shadow:inset 0 0 0 1px var(--line-2)}
.auth-err{margin-top:10px; color:var(--danger); font-size:12.5px; min-height:18px}

#toasts{position:fixed; right:20px; bottom:20px; display:flex; flex-direction:column; gap:8px; z-index:200}
.toast{padding:12px 16px; border-radius:10px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); min-width:240px; max-width:380px; animation:slideIn .25s ease}
.toast.success{border-left:3px solid var(--primary)} .toast.error{border-left:3px solid var(--danger)} .toast.info{border-left:3px solid var(--accent)}
@keyframes slideIn{from{transform:translateX(40px); opacity:0}to{transform:translateX(0); opacity:1}}

::selection{background:rgba(153,69,255,.45); color:#fff}
::-webkit-scrollbar{width:10px; height:10px} ::-webkit-scrollbar-track{background:#070620} ::-webkit-scrollbar-thumb{background:#1a1a3d; border-radius:8px} ::-webkit-scrollbar-thumb:hover{background:#2a2a55}

/* Inline result states (swap/transfer/rug) */
.output .ok{color:#21d07a;font-weight:600;margin:6px 0}
.output .err{color:#ff5577;font-weight:600;margin:6px 0}
.output .warn{color:#ffb84d;font-weight:600;margin:6px 0;background:transparent;border:0;padding:0}
.output .small{font-size:12px;margin-top:4px}
.output .link{color:#7af0d6;text-decoration:underline;word-break:break-all}
.output pre.small{background:rgba(255,255,255,.04);padding:8px;border-radius:6px;max-height:160px;overflow:auto;white-space:pre-wrap;color:#a9adbb;margin-top:6px}
/* === Veort v10 — additions for rich token cards & layout polish === */

/* Balance pill — fixed width, no shake */
.balance-pill {
    display: inline-flex; gap: 8px; align-items: baseline;
    padding: 8px 14px; border-radius: 999px;
    background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
    font-variant-numeric: tabular-nums;
    min-width: 240px; justify-content: center;
}
.balance-pill .bal-sol { font-family: 'JetBrains Mono', monospace; font-weight: 700; color: #14f195; min-width: 110px; display: inline-block; text-align: right; }
.balance-pill .bal-usd { font-family: 'JetBrains Mono', monospace; color: #c8c5e0; min-width: 70px; display: inline-block; text-align: right; }

/* Token card — Dexscreener style */
.tcard {
    background: linear-gradient(135deg, rgba(20,241,149,0.04), rgba(99,102,241,0.04));
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px; padding: 16px; margin-bottom: 14px;
    transition: border-color .15s ease, transform .15s ease;
}
.tcard:hover { border-color: rgba(20,241,149,0.35); }
.tcard-h { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.tcard .t-img, .tcard .t-img-fallback { width: 48px; height: 48px; border-radius: 12px; flex-shrink: 0; object-fit: cover; }
.tcard .t-img-fallback { background: linear-gradient(135deg,#6366f1,#14f195); display:flex; align-items:center; justify-content:center; font-weight:800; color:#0a0820; }
.tcard-meta { flex: 1; min-width: 0; }
.tcard-name { font-size: 16px; }
.tcard-name .t-symbol { color: #14f195; font-weight: 600; margin-left: 6px; font-size: 13px; padding: 2px 6px; background: rgba(20,241,149,0.1); border-radius: 4px; }
.tcard-price { text-align: right; }
.tcard-pusd { font-size: 16px; font-weight: 700; }
.tcard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 12px 16px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,0.06); border-bottom: 1px solid rgba(255,255,255,0.06); }
.tcard-grid > div { min-width: 0; }
.tcard-socials { display: flex; gap: 6px; margin-top: 12px; flex-wrap: wrap; }
.t-soc { padding: 4px 10px; border-radius: 6px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); font-size: 11px; font-weight: 700; text-decoration: none; color: #c8c5e0; transition: all .15s; }
.t-soc:hover { background: rgba(20,241,149,0.15); color: #14f195; border-color: #14f195; }
.tcard-warns { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.warn-pill { padding: 3px 9px; border-radius: 6px; background: rgba(245,158,11,0.12); color: #f59e0b; font-size: 11px; font-weight: 600; }
.tcard-actions { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.tcard-compact .tcard-grid { grid-template-columns: repeat(4, 1fr); gap: 8px 12px; padding: 10px 0; }
.tcard-compact .t-img, .tcard-compact .t-img-fallback { width: 40px; height: 40px; }

/* Rug result card */
.rug-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.rug-pct { display: flex; align-items: baseline; gap: 10px; font-size: 32px; font-weight: 800; margin-bottom: 8px; }
.rug-pct.ok { color: #14f195; }
.rug-pct.warn { color: #f59e0b; }
.rug-pct.err { color: #ef4444; }
.rug-row { padding: 4px 0; font-size: 14px; }
.rug-verdict { margin-top: 8px; padding: 8px 12px; border-radius: 8px; background: rgba(255,255,255,0.04); }

/* Color helpers */
.up { color: #14f195 !important; }
.down { color: #ef4444 !important; }
.warn { color: #f59e0b !important; }
.ok { color: #14f195 !important; }
.err { color: #ef4444 !important; }

/* Badges for sell history */
.badge-manual { background: rgba(99,102,241,0.15); color: #a5b4fc; }
.badge-panic { background: rgba(239,68,68,0.15); color: #fca5a5; }
.badge-auto { background: rgba(20,241,149,0.15); color: #6ee7b7; }

/* Buttons small */
.btn.small { padding: 6px 12px; font-size: 13px; }

/* Swap preview slot */
.swap-preview { margin: 10px 0 14px; }
.swap-preview:empty { display: none; }

/* Output area */
.output { background: rgba(0,0,0,0.25); border: 1px solid rgba(255,255,255,0.06); border-radius: 8px; padding: 12px; margin-top: 12px; font-family: 'JetBrains Mono', monospace; font-size: 12px; white-space: pre-wrap; word-break: break-all; max-height: 400px; overflow-y: auto; }

/* Dashboard tweaks */
.stat-value { font-variant-numeric: tabular-nums; }
.bal-sol, .bal-usd, .stat-value { font-feature-settings: "tnum"; }

/* Hide trade legacy */
table.data th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }


/* ===== MOBILE TOPBAR + HAMBURGER ===== */
.sb-toggle{display:none; flex-direction:column; justify-content:space-between; width:26px; height:20px; background:transparent; border:0; padding:0; cursor:pointer; margin-right:4px}
.sb-toggle span{display:block; height:2px; width:100%; background:#e6e8f5; border-radius:2px; transition:transform .2s, opacity .2s}
.sb-toggle.active span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.sb-toggle.active span:nth-child(2){opacity:0}
.sb-toggle.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.sb-backdrop{position:fixed; inset:0; background:rgba(2,2,10,.55); backdrop-filter:blur(4px); z-index:9; opacity:0; pointer-events:none; transition:opacity .25s ease}
.sb-backdrop.open{opacity:1; pointer-events:auto}

@media (max-width:980px){
  .sb-toggle{display:flex}
  .topbar{padding:0 14px; gap:8px; height:64px}
  .topbar-left{display:flex; align-items:center; gap:10px; min-width:0; flex:1}
  .route-title{font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
  .route-sub{display:none}
  .topbar-right{gap:6px; flex-shrink:0}
  .balance-pill{padding:7px 10px; gap:6px; font-size:12px}
  .balance-pill .muted.small{display:none}
  .balance-pill .bal-sol{min-width:auto; font-size:12px}
  .balance-pill .bal-usd{min-width:auto; font-size:12px}
  #refreshBtn{padding:8px 10px; min-width:0}
  #connectBtn{padding:8px 12px; font-size:12px; white-space:nowrap}
  .content{padding:84px 16px 40px}
  .sidebar{z-index:20}
}

@media (max-width:520px){
  .balance-pill{padding:6px 8px}
  .balance-pill .bal-usd{display:none}
  #connectBtn{font-size:11px; padding:7px 10px}
  .route-title{font-size:15px}
  .content{padding:80px 12px 40px}
}


/* ==== SIGNALS UI ==== */
.signals-btn{display:inline-flex; align-items:center; gap:7px; padding:9px 12px; position:relative}
.signals-btn .sg-ico{color:var(--primary); font-weight:700}
.sg-badge{display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:linear-gradient(135deg,#14f195,#9945ff); color:#06061a; font-size:11px; font-weight:700; font-family:'JetBrains Mono',monospace}
.sg-badge.pulse{animation:sgPulse 1.2s ease-out}
.sg-badge-sm{display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:rgba(20,241,149,0.18); color:#14f195; font-size:10px; font-weight:700; margin-left:6px}
@keyframes sgPulse{0%{transform:scale(1); box-shadow:0 0 0 0 rgba(20,241,149,.7)}70%{transform:scale(1.25); box-shadow:0 0 0 10px rgba(20,241,149,0)}100%{transform:scale(1)}}
.signal-row{display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:rgba(20,241,149,0.04); font-family:'JetBrains Mono',monospace; font-size:13px; gap:10px; flex-wrap:wrap}
.signal-row .sg-symbol{font-weight:700; color:#14f195}
.signal-row .sg-score{padding:3px 8px; border-radius:999px; background:rgba(20,241,149,0.12); border:1px solid rgba(20,241,149,0.25); font-size:11px}
.signal-row .sg-addr{color:var(--muted); font-size:11px; word-break:break-all}
.field{display:flex; flex-direction:column; gap:6px}
.field input{background:var(--surface); border:1px solid var(--line); color:#e6e8f5; padding:10px 12px; border-radius:10px; font-family:'JetBrains Mono',monospace; font-size:13px; outline:none; transition:border-color .15s}
.field input:focus{border-color:var(--primary)}
@media (max-width:980px){ .signals-btn span:not(.sg-badge):not(.sg-ico){display:none} .signals-btn{padding:8px 10px} }

/* ============ FULL-PAGE DASHBOARD: ANALYSE & SEARCH ============ */
.page-toolbar{display:flex; flex-direction:column; gap:8px; padding:18px 22px; border:1px solid var(--line); background:linear-gradient(180deg, rgba(20,241,149,0.04), rgba(255,255,255,0.01)); border-radius:14px; margin-bottom:18px}
.page-toolbar-row{display:flex; gap:10px; align-items:center}
.page-search-inp{flex:1; min-width:0; padding:14px 16px; font-size:14px; background:rgba(0,0,0,0.35); border:1px solid var(--line); color:#e6e8f5; border-radius:10px; outline:none; transition:border-color .15s, box-shadow .15s; font-family:'JetBrains Mono',monospace}
.page-search-inp:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(20,241,149,0.12)}
.page-search-btn{white-space:nowrap; padding:14px 22px; font-weight:600; font-size:14px}
.page-toolbar-hint{padding-left:2px}
.dash-out{display:block}
.dash-empty{padding:80px 20px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:14px; background:rgba(255,255,255,0.01)}
.dash-empty .dot-big{font-size:42px; margin-bottom:10px; opacity:.5}

/* token detail full-page dashboard layout */
.tdash{display:grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap:18px}
@media (max-width:1080px){ .tdash{grid-template-columns:1fr} }
.tdash-col{display:flex; flex-direction:column; gap:18px}
.tpanel{border:1px solid var(--line); background:var(--surface); border-radius:14px; padding:18px 20px}
.tpanel-h{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px}
.tpanel-h h4{margin:0; font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted)}
.tpanel-h .pill{font-size:11px; padding:3px 9px; border-radius:999px; background:rgba(255,255,255,0.05); border:1px solid var(--line); color:#cfd2e0; font-family:'JetBrains Mono',monospace}

/* hero - token header */
.thero{display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.thero-img, .thero-fallback{width:64px; height:64px; border-radius:16px; flex-shrink:0; object-fit:cover; border:1px solid rgba(255,255,255,0.08)}
.thero-fallback{background:linear-gradient(135deg,#9945ff,#14f195); display:flex; align-items:center; justify-content:center; font-weight:800; color:#0a0820; font-size:20px}
.thero-meta{flex:1; min-width:200px}
.thero-name{font-size:22px; font-weight:700; line-height:1.2}
.thero-name .t-symbol{color:#14f195; font-weight:600; margin-left:8px; font-size:13px; padding:3px 8px; background:rgba(20,241,149,0.1); border-radius:6px; vertical-align:middle}
.thero-addr{margin-top:6px; font-size:12px; color:var(--muted); display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.thero-addr .copy-btn{background:transparent; border:1px solid var(--line); color:#cfd2e0; padding:3px 8px; border-radius:6px; font-size:11px; cursor:pointer; font-family:'JetBrains Mono',monospace}
.thero-addr .copy-btn:hover{border-color:var(--primary); color:var(--primary)}
.thero-price{text-align:right; min-width:140px}
.thero-pusd{font-size:22px; font-weight:700; font-family:'JetBrains Mono',monospace}
.thero-chg{font-size:13px; font-family:'JetBrains Mono',monospace; margin-top:2px}

/* metric grids */
.tgrid{display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap:14px}
.tgrid-cell{padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,0.015)}
.tgrid-cell .lbl{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px}
.tgrid-cell .val{font-size:16px; font-family:'JetBrains Mono',monospace; font-weight:600}
.tgrid-cell .sub{font-size:11px; color:var(--muted); margin-top:2px; font-family:'JetBrains Mono',monospace}

/* tx flow (per period) */
.ttx-row{display:grid; grid-template-columns: 60px 1fr 1fr 1fr; gap:12px; padding:10px 0; border-bottom:1px dashed rgba(255,255,255,0.06); align-items:center; font-family:'JetBrains Mono',monospace; font-size:13px}
.ttx-row:last-child{border-bottom:none}
.ttx-row .ttx-period{color:var(--muted); font-weight:600; text-transform:uppercase; font-size:11px; letter-spacing:.05em}
.ttx-row .ttx-bs{display:flex; gap:8px; align-items:center}
.ttx-row .ttx-up{color:#14f195}
.ttx-row .ttx-down{color:#ff5c8a}

/* safety panel */
.tsafe{display:flex; flex-direction:column; gap:14px}
.tsafe-score{display:flex; align-items:center; gap:14px}
.tsafe-ring{position:relative; width:96px; height:96px; flex-shrink:0}
.tsafe-ring svg{width:100%; height:100%; transform:rotate(-90deg)}
.tsafe-ring .bg{stroke:rgba(255,255,255,0.06); fill:none; stroke-width:10}
.tsafe-ring .fg{fill:none; stroke-width:10; stroke-linecap:round; transition:stroke-dashoffset .6s ease}
.tsafe-ring .num{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace}
.tsafe-ring .num b{font-size:22px; line-height:1}
.tsafe-ring .num span{font-size:10px; color:var(--muted); margin-top:2px; text-transform:uppercase; letter-spacing:.06em}
.tsafe-info{flex:1}
.tsafe-info .lvl{font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.05em}
.tsafe-info .lvl-sub{font-size:12px; color:var(--muted); margin-top:4px}

.tcheck-row{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px dashed rgba(255,255,255,0.06); font-size:13px}
.tcheck-row:last-child{border-bottom:none}
.tcheck-row .ck-l{color:#cfd2e0}
.tcheck-row .ck-v{font-family:'JetBrains Mono',monospace; font-weight:600}
.tcheck-row .ck-v.ok{color:#14f195}
.tcheck-row .ck-v.bad{color:#ff5c8a}
.tcheck-row .ck-v.warn{color:#ffb454}
.tcheck-row .ck-v.muted{color:var(--muted)}

.twarn{display:flex; flex-direction:column; gap:8px}
.twarn-pill{padding:9px 12px; border-radius:8px; background:rgba(255,92,138,0.07); border:1px solid rgba(255,92,138,0.25); color:#ffb4c4; font-size:13px; line-height:1.45}
.twarn-pill.ok{background:rgba(20,241,149,0.07); border-color:rgba(20,241,149,0.25); color:#bff5dd}

.tlinks{display:flex; flex-wrap:wrap; gap:8px}
.tlink-pill{padding:7px 12px; border:1px solid var(--line); border-radius:999px; font-size:12px; color:#cfd2e0; text-decoration:none; transition:border-color .15s, color .15s; background:rgba(255,255,255,0.02)}
.tlink-pill:hover{border-color:var(--primary); color:var(--primary)}

.tactions{display:flex; gap:10px; flex-wrap:wrap; margin-top:4px}

/* search results list */
.search-meta{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; flex-wrap:wrap; gap:10px}
.search-list{display:flex; flex-direction:column; gap:10px}
.srow{display:grid; grid-template-columns: 44px minmax(140px,1.4fr) repeat(5, minmax(80px,1fr)) 110px; gap:14px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); transition:border-color .15s, transform .15s; cursor:pointer}
.srow:hover{border-color:rgba(20,241,149,0.4); transform:translateY(-1px)}
.srow .s-img{width:36px; height:36px; border-radius:10px; object-fit:cover; border:1px solid rgba(255,255,255,0.08)}
.srow .s-img-fb{width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,#9945ff,#14f195); display:flex; align-items:center; justify-content:center; font-weight:700; color:#06061a; font-size:13px}
.srow .s-name{display:flex; flex-direction:column; min-width:0}
.srow .s-name b{font-size:14px; truncate:overflow}
.srow .s-name span{font-size:11px; color:var(--muted); font-family:'JetBrains Mono',monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.srow .s-cell{font-family:'JetBrains Mono',monospace; font-size:13px}
.srow .s-cell-h{font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:2px; display:block}
.srow .s-act{display:flex; gap:6px; justify-content:flex-end}

@media (max-width:980px){ .srow{grid-template-columns:44px 1fr 1fr; gap:10px} .srow > .s-cell:nth-child(n+5){display:none} }

/* ===== Rug verifier — full-page layout ===== */
.rug-page { display: flex; flex-direction: column; gap: 18px; }
.rug-page-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.rug-stat {
    display: flex; flex-direction: column; gap: 6px;
    padding: 14px 16px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px;
}
.rug-stat b { font-size: 18px; font-weight: 700; }
.rug-stat .muted { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.rug-raw {
    padding: 18px 20px;
    background: rgba(0,0,0,.35);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
}
.rug-raw-h {
    font-size: 10px; letter-spacing: .28em; text-transform: uppercase;
    color: #9ca3af; margin-bottom: 10px;
    display: flex; align-items: center; gap: 8px;
}
.rug-raw-h::before {
    content: ""; width: 6px; height: 6px; border-radius: 999px;
    background: #14f195; box-shadow: 0 0 8px #14f195;
}
.rug-raw-body {
    margin: 0;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 12.5px; line-height: 1.55;
    color: #cfd6cb;
    background: transparent;
    border: none;
    max-height: 320px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
}
@media (max-width: 760px) {
    .rug-page-stats { grid-template-columns: repeat(3, 1fr); }
    }

/* ===== Rug verifier — hero ring ===== */
.rug-hero {
    display: flex; align-items: center; gap: 32px;
    padding: 28px 32px;
    background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)), rgba(20,21,28,.55);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    flex-wrap: wrap;
}
.rug-ring {
    --pct: 0;
    --ring-color: #14f195;
    --ring-bg: rgba(255,255,255,.06);
    width: 220px; height: 220px;
    flex-shrink: 0;
    position: relative;
    border-radius: 999px;
    background: conic-gradient(var(--ring-color) calc(var(--pct) * 1%), var(--ring-bg) 0);
    transition: background .8s cubic-bezier(.4,.0,.2,1), filter .6s;
    filter: drop-shadow(0 0 32px color-mix(in srgb, var(--ring-color) 30%, transparent));
    animation: rug-ring-in .65s cubic-bezier(.34,1.56,.64,1) both;
}
.rug-ring-ok   { --ring-color: #14f195; }
.rug-ring-warn { --ring-color: #f59e0b; }
.rug-ring-err  { --ring-color: #ef4444; }
.rug-ring-muted{ --ring-color: #6b7280; }
.rug-ring::after {
    content: "";
    position: absolute; inset: 14px;
    border-radius: 999px;
    background: #0e0f15;
    border: 1px solid rgba(255,255,255,.06);
}
.rug-ring-inner {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    z-index: 1;
}
.rug-ring-pct { font-weight: 800; font-size: 56px; line-height: 1; letter-spacing: -.02em; display: flex; align-items: baseline; gap: 2px; }
.rug-ring-pct.ok   { color: #14f195; }
.rug-ring-pct.warn { color: #f59e0b; }
.rug-ring-pct.err  { color: #ef4444; }
.rug-ring-pct.muted{ color: #9ca3af; }
.rug-ring-pct b { font-weight: 800; }
.rug-ring-pct i { font-style: normal; font-size: 28px; opacity: .85; margin-left: 2px; font-weight: 700; }
.rug-ring-label { margin-top: 6px; font-size: 10px; letter-spacing: .28em; text-transform: uppercase; color: #9ca3af; }
@keyframes rug-ring-in { 0% { transform: scale(.85); opacity: 0; } 100% { transform: none; opacity: 1; } }

.rug-hero-meta { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 12px; }
.rug-decision {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 10px 22px;
    border-radius: 999px;
    font-weight: 800; letter-spacing: .22em; font-size: 13px;
    border: 1px solid rgba(255,255,255,.1);
    transition: all .2s;
}
.rug-decision .dot { width: 8px; height: 8px; border-radius: 999px; background: currentColor; box-shadow: 0 0 0 0 currentColor; animation: rug-pulse 1.6s infinite; }
@keyframes rug-pulse { 0%{box-shadow:0 0 0 0 currentColor} 70%{box-shadow:0 0 0 12px transparent} 100%{box-shadow:0 0 0 0 transparent} }
.rug-decision-buy  { color: #0a0c08; background: #14f195; border-color: #14f195; box-shadow: 0 0 28px rgba(20,241,149,.35); }
.rug-decision-skip { color: #fff;    background: #ef4444; border-color: #ef4444; box-shadow: 0 0 28px rgba(239,68,68,.30); }
.rug-decision-warn { color: #1a1500; background: #f59e0b; border-color: #f59e0b; box-shadow: 0 0 28px rgba(245,158,11,.30); }

.rug-hero-meta .rug-verdict {
    margin: 0;
    padding: 12px 16px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 10px;
    font-size: 16px; font-weight: 600;
}
.rug-hero-meta .rug-verdict.ok   { color: #14f195; }
.rug-hero-meta .rug-verdict.warn { color: #f59e0b; }
.rug-hero-meta .rug-verdict.err  { color: #ef4444; }

.rug-token { font-family: ui-monospace, Menlo, monospace; word-break: break-all; }

@media (max-width: 760px) {
    .rug-hero { padding: 22px; gap: 22px; justify-content: center; }
    .rug-ring { width: 180px; height: 180px; }
    .rug-ring-pct { font-size: 44px; }
    .rug-hero-meta { align-items: center; text-align: center; }
    .rug-decision { align-self: center; }
}

/* ===== Rug verifier — verification trace (cards) ===== */
.trace-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.trace-card {
    padding: 14px 16px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 12px;
    display: flex; flex-direction: column; gap: 10px;
    transition: border-color .2s, background .2s;
}
.trace-card:hover { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.045); }
.trace-card-wide { grid-column: 1 / -1; }
.trace-card-err  { border-color: rgba(239,68,68,.4); background: rgba(239,68,68,.06); }
.trace-card-h {
    font-size: 10px; letter-spacing: .28em; text-transform: uppercase;
    color: #9ca3af;
    display: flex; align-items: center; gap: 8px;
}
.trace-card-h::before {
    content: ""; width: 5px; height: 5px; border-radius: 999px;
    background: #14f195; box-shadow: 0 0 6px #14f195;
}
.trace-card-v { font-size: 13px; color: #e5e7eb; word-break: break-all; }
.trace-card-v.err { color: #ef4444; }
.trace-card-v.mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; }

.trace-srcs { display: flex; gap: 10px; flex-wrap: wrap; }
.trace-src {
    flex: 1 1 140px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(0,0,0,.3);
    display: flex; flex-direction: column; gap: 4px;
    position: relative;
    transition: all .2s;
}
.trace-src::before {
    content: ""; position: absolute; top: 10px; right: 12px;
    width: 8px; height: 8px; border-radius: 999px; background: #6b7280;
}
.trace-src-hit  { border-color: rgba(20,241,149,.45); background: rgba(20,241,149,.06); box-shadow: inset 0 0 0 1px rgba(20,241,149,.15); }
.trace-src-hit::before  { background: #14f195; box-shadow: 0 0 8px #14f195; }
.trace-src-miss { border-color: rgba(245,158,11,.35); background: rgba(245,158,11,.05); }
.trace-src-miss::before { background: #f59e0b; }
.trace-src-skip { opacity: .55; }
.trace-src-name { font-weight: 700; font-size: 14px; letter-spacing: .02em; }
.trace-src-status { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #9ca3af; }
.trace-src-hit  .trace-src-status { color: #14f195; }
.trace-src-miss .trace-src-status { color: #f59e0b; }

.trace-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.trace-chip {
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 11.5px; font-weight: 600;
    background: rgba(245,158,11,.12);
    color: #fbbf24;
    border: 1px solid rgba(245,158,11,.35);
}
.trace-chip-good { background: rgba(20,241,149,.10); color: #14f195; border-color: rgba(20,241,149,.4); }
.trace-chip-warn { background: rgba(245,158,11,.12); color: #fbbf24; border-color: rgba(245,158,11,.35); }
.trace-chip-bad  { background: rgba(239,68,68,.10);  color: #f87171; border-color: rgba(239,68,68,.4); }

@media (max-width: 760px) {
    .trace-grid { grid-template-columns: 1fr; }
}

/* ========== NEW FEATURES STYLES ========== */
.mcap-card { padding: 18px; }
.mcap-box { background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.06); border-radius: 10px; padding: 14px; }
.mcap-box-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); padding-bottom: 8px; }
.mcap-box-h h4 { margin: 0; font-size: 15px; }
.proof-list { list-style: none; padding: 0; margin: 0; }
.proof-list li { padding: 6px 0; font-size: 13px; color: #ff8a8a; border-bottom: 1px dashed rgba(255,107,107,0.2); }
.proof-list li:last-child { border-bottom: 0; }
.badge.up { background: #0d3d1e; color: #14f195; }
.badge.down { background: #3d0d14; color: #ff6b6b; }

/* Trending grid for landing page */
.hero-trending { padding: 40px 24px; max-width: 1280px; margin: 0 auto; }
.lp-tr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; padding: 0 24px; max-width: 1280px; margin: 0 auto; }
.lp-tr-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 14px; text-decoration: none; color: inherit; transition: transform 0.2s, border-color 0.2s; display: block; }
.lp-tr-card:hover { transform: translateY(-2px); border-color: rgba(20,241,149,0.4); }
.lp-tr-sym { font-weight: 700; font-size: 15px; letter-spacing: 0.5px; }
.lp-tr-px { font-size: 14px; margin-top: 8px; }
.tr-tab.active { background: rgba(20,241,149,0.12); color: #14f195; border-color: rgba(20,241,149,0.3); }
.tx-tab.active { background: rgba(20,241,149,0.12); color: #14f195; }

/* Connect modal tabs (reuse .auth-tabs) */
.modal-card .hidden { display: none; }
.kv.small span { font-size: 12px; }


/* BOOT_HIDDEN_v1 — avoid landing-page flash before /api/auth/me resolves */
html.boot-pending #landing, html.boot-pending #app { display: none !important; }
html.boot-pending body::before { content: ''; position: fixed; inset: 0; background: #0b0b14; z-index: 99999; }


/* ve-copy — small copy-to-clipboard chip next to every address */
.ve-addr-chip{display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:1px 6px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);font-family:ui-monospace,monospace;font-size:11px;color:#cfd6e4;transition:background .12s ease,border-color .12s ease}
.ve-addr-chip:hover{background:rgba(20,241,149,.08);border-color:rgba(20,241,149,.35);color:#14f195}
.ve-addr-chip .ic{opacity:.6;font-size:11px}
.ve-addr-chip:active{transform:scale(.97)}
.ve-copy-ok{color:#14f195!important;border-color:rgba(20,241,149,.45)!important;background:rgba(20,241,149,.14)!important}

/* full-width pages for action tools (swap/transfer/reclaim/route) */
.view-fullpage{max-width:980px}
.view-fullpage .action-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
@media (max-width:820px){.view-fullpage .action-grid{grid-template-columns:1fr}}
.view-fullpage .panel{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px}
.view-fullpage h3{margin:0 0 8px}

/* copytrade master — per-client drawer */
.ct-client-card{display:flex;flex-direction:column;gap:8px;padding:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px}
.ct-client-card .row-t{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ct-client-card .row-t .name{font-weight:700}
.ct-client-card .tag{font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.06);color:#aeb7c9}
.ct-client-card .tag.banned{background:rgba(255,77,79,.15);color:#ff7875;border:1px solid rgba(255,77,79,.35)}
.ct-client-card .tag.ok{background:rgba(20,241,149,.12);color:#14f195}
.ct-client-card .ct-actions{display:flex;gap:6px;flex-wrap:wrap}
.ct-drawer{border-top:1px dashed rgba(255,255,255,.08);padding-top:10px;margin-top:6px;display:flex;flex-direction:column;gap:10px}
.ct-chat{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;padding:8px;background:rgba(0,0,0,.2);border-radius:8px;border:1px solid rgba(255,255,255,.04)}
.ct-chat .msg{padding:6px 10px;border-radius:10px;max-width:80%;font-size:13px;line-height:1.4}
.ct-chat .msg.master{align-self:flex-end;background:rgba(20,241,149,.16);color:#c8fbe3}
.ct-chat .msg.client{align-self:flex-start;background:rgba(255,255,255,.08)}
.ct-chat .ts{font-size:10px;opacity:.55;margin-top:2px}
.ct-invoice{padding:10px;border:1px solid rgba(255,193,7,.25);background:rgba(255,193,7,.06);border-radius:8px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ct-invoice.paid{border-color:rgba(20,241,149,.35);background:rgba(20,241,149,.06)}
.ct-invoice .ti{flex:1;min-width:180px}

/* === Veort feature extensions === */
.toast { position: fixed; bottom: 20px; right: 20px; padding: 10px 16px; border-radius: 8px; background: #222; color: #fff; box-shadow: 0 4px 20px rgba(0,0,0,.4); z-index: 9999; animation: toastIn .2s ease; }
.toast.ok { border-left: 3px solid #4ade80; }
.toast.err { border-left: 3px solid #ef4444; }
@keyframes toastIn { from { transform: translateY(10px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
#toasts > .toast + .toast { margin-bottom: 8px; }
.scroll-area::-webkit-scrollbar { width: 8px; }
.scroll-area::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 4px; }
#commJitsi iframe { width: 100% !important; border: 0; }
.nav-item .sg-badge-sm { margin-left: auto; }

/* RECLAIM_REAL_CSS_V1 */
.reclaim-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:14px 0; }
.rs-tile { padding:12px 14px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); border-radius:10px; }
.rs-lbl { font-size:11px; opacity:0.7; text-transform:uppercase; letter-spacing:0.05em; }
.rs-val { font-size:20px; font-weight:600; margin-top:4px; }
.rs-sub { font-size:11px; opacity:0.65; margin-top:2px; }
.rs-usd { font-size:11px; opacity:0.55; margin-top:2px; color:#9ca3af; }

.rs-good { border-color:rgba(80,220,120,0.35); }
.rs-warn { border-color:rgba(240,170,60,0.4); }
.rs-total{ border-color:rgba(120,170,255,0.45); background:rgba(120,170,255,0.06); }
.reclaim-actions { display:flex; gap:12px; margin:8px 0 14px; flex-wrap:wrap; }
.reclaim-actions .btn { flex:1; min-width:200px; display:flex; flex-direction:column; align-items:center; padding:12px 16px; line-height:1.2; }
.reclaim-actions .btn-sub { display:block; font-size:11px; font-weight:400; opacity:0.7; margin-top:4px; }
.btn-danger { background:#c0392b; color:#fff; border:1px solid #c0392b; }
.btn-danger:hover:not(:disabled) { background:#a8342a; }
.btn:disabled { opacity:0.4; cursor:not-allowed; }
.badge.ok   { background:rgba(80,220,120,0.15); color:#8be3a3; border:1px solid rgba(80,220,120,0.35); padding:2px 6px; border-radius:6px; font-size:11px; }
.badge.warn { background:rgba(240,170,60,0.15); color:#f3c171; border:1px solid rgba(240,170,60,0.4);  padding:2px 6px; border-radius:6px; font-size:11px; }
.reclaim-rpc { margin-top:12px; }
.reclaim-rpc summary { cursor:pointer; }
.reclaim-rpc div { padding:2px 0; }
@media (max-width:760px) { .reclaim-stats { grid-template-columns:repeat(2,1fr); } }

/* ===== Custom dialog (replaces native confirm/alert) ===== */
.v-dialog{position:fixed; inset:0; background:rgba(2,2,12,.78); backdrop-filter:blur(10px); display:grid; place-items:center; z-index:9999; animation:vDlgFade .18s ease}
.v-dialog.v-dialog-out{animation:vDlgFadeOut .14s ease forwards}
.v-dialog-card{width:min(460px,92vw); padding:0; overflow:hidden; border:1px solid var(--line-2); background:linear-gradient(180deg, rgba(26,24,64,0.96), rgba(11,10,38,0.96)); box-shadow:0 30px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,0.04) inset; animation:vDlgPop .22s cubic-bezier(.2,.9,.3,1.2)}
.v-dialog-head{display:flex; align-items:center; gap:14px; padding:20px 22px 6px}
.v-dialog-icon{width:38px; height:38px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-family:'Bricolage Grotesque',sans-serif; font-size:18px; flex:0 0 auto}
.v-dialog-icon.danger{background:rgba(255,85,119,0.14); color:#ff7a96; border:1px solid rgba(255,85,119,0.4); box-shadow:0 0 24px rgba(255,85,119,0.25)}
.v-dialog-icon.info{background:rgba(20,241,149,0.12); color:var(--primary); border:1px solid rgba(20,241,149,0.4); box-shadow:0 0 24px rgba(20,241,149,0.18)}
.v-dialog-title{font-family:'Bricolage Grotesque',sans-serif; font-size:18px; font-weight:700; color:var(--text); letter-spacing:.2px}
.v-dialog-body{padding:8px 22px 18px; color:var(--muted); font-size:14px; line-height:1.55; max-height:50vh; overflow:auto}
.v-dialog-pre{white-space:pre-wrap; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; color:var(--text)}
.v-dialog-actions{display:flex; justify-content:flex-end; gap:10px; padding:14px 22px 20px; border-top:1px solid rgba(255,255,255,0.04); background:rgba(0,0,0,0.18)}
.v-dialog-actions .btn{padding:10px 18px; font-size:13px; min-width:108px}
@keyframes vDlgFade{from{opacity:0} to{opacity:1}}
@keyframes vDlgFadeOut{from{opacity:1} to{opacity:0}}
@keyframes vDlgPop{from{transform:translateY(8px) scale(.96); opacity:0} to{transform:translateY(0) scale(1); opacity:1}}
@media(max-width:520px){.v-dialog-actions{flex-direction:column-reverse}.v-dialog-actions .btn{width:100%}}

/* ====== TX DETAILS MODAL (TXHIST_DETAILS_V1) ====== */
.tx-d-modal { position: fixed; inset: 0; background: rgba(2,6,23,.72); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; z-index: 9999; padding: 16px; }
.tx-d-modal.hidden { display: none; }
.tx-d-card { width: 100%; max-width: 560px; background: #0f172a; border: 1px solid rgba(148,163,184,.2); border-radius: 14px; box-shadow: 0 30px 60px rgba(0,0,0,.5); display: flex; flex-direction: column; max-height: 85vh; }
.tx-d-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid rgba(148,163,184,.15); }
.tx-d-head h3 { margin: 0; font-size: 16px; font-weight: 600; color: #e2e8f0; letter-spacing: .2px; }
.tx-d-body { padding: 12px 18px; overflow-y: auto; }
.tx-d-row { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px dashed rgba(148,163,184,.1); }
.tx-d-row:last-child { border-bottom: none; }
.tx-d-l { color: #94a3b8; font-size: 12.5px; flex: 0 0 38%; }
.tx-d-v { color: #e2e8f0; font-size: 13px; text-align: right; word-break: break-all; flex: 1; }
.tx-d-v.up { color: #34d399; }
.tx-d-v.down { color: #f87171; }
.tx-d-v.warn { color: #fbbf24; }
.tx-d-v.neutral { color: #cbd5e1; }
.tx-d-err { margin-top: 12px; padding: 10px 12px; background: rgba(248,113,113,.08); border: 1px solid rgba(248,113,113,.25); border-radius: 8px; color: #fca5a5; word-break: break-word; }
.tx-d-foot { padding: 12px 18px; border-top: 1px solid rgba(148,163,184,.15); display: flex; justify-content: flex-end; }
.tx-row:hover { background: rgba(99,102,241,.06); }

/* Quick access tiles on Dashboard (Waves 1-7) */
#dash-quick-access .qa-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:12px;
  margin-top:8px;
}
#dash-quick-access .qa-tile{
  display:flex; flex-direction:column; gap:6px;
  padding:14px 14px 12px;
  background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  cursor:pointer;
  text-decoration:none;
  color:inherit;
  transition:transform .15s ease, border-color .15s ease, background .15s ease;
  position:relative;
  overflow:hidden;
}
#dash-quick-access .qa-tile::after{
  content:'›'; position:absolute; right:12px; top:10px;
  opacity:.35; font-size:20px;
}
#dash-quick-access .qa-tile:hover{
  transform:translateY(-2px);
  border-color:rgba(120,200,255,.45);
  background:linear-gradient(180deg,rgba(120,200,255,.06),rgba(120,200,255,.02));
}
#dash-quick-access .qa-ic{ font-size:22px; line-height:1; }
#dash-quick-access .qa-t{ font-size:13px; line-height:1.3; opacity:.85 }
#dash-quick-access .qa-t b{ font-size:15px; font-weight:600; color:#e9eef5 }
#dash-quick-access .qa-d{ font-size:11.5px; opacity:.55; line-height:1.35 }


/* Veort: hide DexScreener branding band on embedded chart */
.wa-chart-wrap{ position:relative; overflow:hidden; border-radius:12px; background:#0b0f17; }
.wa-chart-wrap::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:42px;
  background:#0b0f17;
  z-index:3;
  pointer-events:auto;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.wa-chart-wrap::after{
  content:"VEORT CHARTS";
  position:absolute; top:0; left:0; right:0; height:42px;
  display:flex; align-items:center; padding:0 14px;
  font-family:Inter,system-ui,sans-serif; font-size:13px; font-weight:600;
  letter-spacing:.4px; color:#dde6f3;
  z-index:4;
  pointer-events:none;
}
.wa-chart-iframe{ display:block; width:100%; height:600px; border:0; }
.wa-chart-loading{ display:none !important; }
.wa-chart-tfs button#tcRefresh, .wa-chart-tfs button#tcReset{ background:transparent; border:1px solid rgba(255,255,255,.12); color:#cfd6e4; font:600 12px system-ui; padding:6px 12px; border-radius:8px; cursor:pointer; transition:all .15s ease; }
.wa-chart-tfs button#tcRefresh:hover, .wa-chart-tfs button#tcReset:hover{ background:linear-gradient(135deg,#14f195,#9945ff); color:#0b0d12; border-color:transparent; }


/* Veort: extra overlays to mask in-iframe DexScreener brand + Volume indicator */
.wa-chart-wrap { position: relative; }
/* bottom 'Tracked by DEXSCREENER' strip */
.wa-chart-wrap .wa-mask-bottom{
  position:absolute; left:0; right:0; bottom:0; height:62px;
  background:#0b0f17; border-top:1px solid rgba(255,255,255,.06);
  z-index:5; pointer-events:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 18px; font-family:Inter,system-ui,sans-serif;
  font-size:12px; color:#7d8aa3; letter-spacing:.4px;
}
.wa-chart-wrap .wa-mask-bottom .right{ color:#dde6f3; font-weight:600 }
/* Volume study strip just under the chart toolbar */
.wa-chart-wrap .wa-mask-volume{ display:none !important; }
/* symbol-info row: hide right portion that shows 'dexscreener.com' */
.wa-chart-wrap .wa-mask-symbright{ display:none !important; }


/* Veort: platform-wallet transaction history */
.wa-tx-row{
  display:grid; grid-template-columns: 110px 1fr 110px; align-items:center; gap:12px;
  padding:12px 14px; border-bottom:1px solid rgba(255,255,255,0.05);
}
.wa-tx-row:last-child{ border-bottom:0; }
.wa-tx-pill{
  display:inline-flex; align-items:center; justify-content:center;
  font:800 10px/1 system-ui; letter-spacing:.16em; padding:6px 10px; border-radius:999px;
  text-transform:uppercase;
}
.wa-tx-pill.in { background:rgba(35,196,131,.15); color:#23c483; border:1px solid rgba(35,196,131,.35); }
.wa-tx-pill.out{ background:rgba(255,92,138,.12); color:#ff7da3; border:1px solid rgba(255,92,138,.35); }
.wa-tx-pill.fail{ background:rgba(255,92,92,.15); color:#ff7d7d; border:1px solid rgba(255,92,92,.5); }
.wa-tx-mid .wa-tx-amt{ font:700 14px/1.2 'JetBrains Mono', ui-monospace, monospace; }
.wa-tx-mid .wa-tx-meta{ color:#8b95aa; font:500 11px/1.4 system-ui; margin-top:2px; }
.wa-tx-sig{ text-align:right; font:600 12px 'JetBrains Mono', ui-monospace, monospace; }
@media (max-width:640px){
  .wa-tx-row{ grid-template-columns: 90px 1fr; }
  .wa-tx-sig{ grid-column: 1/3; text-align:left; padding-top:4px }
}
