:root{--ink:#0b0d0e;--muted:#5c636a;--line:#e6e8ea;--paper:#f7f8f9;--white:#fff;--green:#00c805;--green-dark:#067a09;--red:#e5484d;--amber:#f5a623;--navy:#0b0d0e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}.wrap{width:min(1120px,calc(100% - 40px));margin-inline:auto}.nav{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:700 21px "Space Grotesk"}.brand-mark{width:34px;height:34px;display:block;border-radius:9px;overflow:hidden}.brand-mark svg{width:100%;height:100%;display:block}.brand em{font:700 10px "DM Sans";letter-spacing:.12em;background:#dff9dc;color:var(--green-dark);padding:4px 6px;border-radius:4px}.network{font-size:13px;font-weight:600;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 12px}.network i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:7px;box-shadow:0 0 0 3px #d7f8d8}.network span{color:var(--muted);margin-left:7px}.hero{padding:90px 0 62px;text-align:center}.eyebrow{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.17em}.eyebrow span{color:var(--green-dark);margin-right:5px}.hero h1{font:700 clamp(52px,8vw,92px)/.92 "Space Grotesk";letter-spacing:-.065em;margin:23px 0}.hero h1 span{color:var(--green-dark)}.lede{max-width:600px;margin:0 auto 38px;color:var(--muted);font-size:19px;line-height:1.55}.scanner{max-width:790px;margin:auto;padding:22px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 18px 60px rgba(18,39,29,.09)}.scanner label{display:block;font-size:10px;font-weight:700;letter-spacing:.14em;margin:0 0 9px}.input-row{display:flex;gap:10px}.input-row input{min-width:0;flex:1;border:1px solid #cbd3cf;background:#fafbf9;border-radius:10px;padding:17px 16px;font:500 16px "DM Sans";outline:none}.input-row input:focus{border-color:var(--green-dark);box-shadow:0 0 0 3px #dcf8dd}.input-row button,.secondary{border:0;background:var(--green);color:#071408;font:700 15px "DM Sans";border-radius:10px;padding:0 23px;cursor:pointer}.input-row button:hover{background:#00b905}.input-row button b{margin-left:17px}.form-foot{display:flex;justify-content:space-between;color:#87908c;font-size:11px;margin-top:11px}.proof{display:flex;justify-content:center;gap:70px;margin-top:50px}.proof div{display:flex;flex-direction:column}.proof b{font:700 24px "Space Grotesk"}.proof span{color:var(--muted);font-size:12px;margin-top:3px}.hidden{display:none!important}.loading{min-height:480px;display:grid;place-items:center;align-content:center;text-align:center}.loading h2{font:700 30px "Space Grotesk";margin:25px 0 4px}.loading p{color:var(--muted)}.loader-mark{position:relative;width:120px;height:120px;display:grid;place-items:center}.loader-tile{position:relative;z-index:1;width:100%;height:100%;border-radius:24px;overflow:hidden;filter:drop-shadow(0 6px 18px rgba(204,255,0,.45))}.loader-img{width:100%;height:100%;display:block}.loader-halo{position:absolute;inset:-16px;border-radius:50%;background:radial-gradient(circle,rgba(204,255,0,.55),transparent 66%);animation:haloPulse 1.8s ease-in-out infinite}@keyframes haloPulse{0%,100%{transform:scale(.82);opacity:.45}50%{transform:scale(1.14);opacity:1}}.loader-scanbar{position:absolute;left:0;right:0;top:0;height:16px;z-index:2;background:linear-gradient(180deg,rgba(11,13,14,0),rgba(11,13,14,.55),rgba(11,13,14,0));box-shadow:0 0 12px 2px rgba(204,255,0,.5);animation:scanBar 1.6s ease-in-out infinite}@keyframes scanBar{0%{transform:translateY(-16px);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateY(120px);opacity:0}}.report{padding:62px 0 80px}.report-head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.report-head h2{font:700 clamp(32px,5vw,52px) "Space Grotesk";letter-spacing:-.04em;margin:8px 0}.report-head h2 small{color:var(--muted);font-size:.45em}.report-head a{color:var(--muted);font-size:13px}.score-card{width:150px;padding:16px;border:1px solid var(--line);border-top:5px solid var(--amber);background:#fff;border-radius:12px}.score-card span{font-size:9px;letter-spacing:.13em;font-weight:700;color:var(--muted)}.score-card strong{display:block;font:700 42px "Space Grotesk"}.score-card b{font-size:12px}.score-card.high{border-top-color:var(--red)}.score-card.low{border-top-color:var(--green)}.notice{margin:30px 0 18px;padding:14px 17px;background:#fff8e6;border:1px solid #f0d797;border-radius:9px;color:#6b581d;font-size:13px}.report-grid{display:grid;grid-template-columns:1fr 320px;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px}.panel h3{font:700 18px "Space Grotesk";margin:0 0 20px}.panel-title{display:flex;justify-content:space-between}.panel-title span{font-size:12px;color:var(--muted)}.finding{display:grid;grid-template-columns:30px 1fr;gap:11px;padding:17px 0;border-top:1px solid #edf0ee}.finding i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700}.finding.danger i{background:#fee7e5;color:var(--red)}.finding.warn i{background:#fff2d5;color:#9a6d00}.finding.good i{background:#e4f9e2;color:var(--green-dark)}.finding.unknown i{background:#edf0ee;color:#77817c}.finding b{font-size:14px}.finding p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.facts dl{margin:0}.facts dl div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid #edf0ee;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}.secondary,.ghost{width:100%;padding:13px;margin-top:18px}.ghost{border:1px solid var(--line);background:transparent;border-radius:9px;font-weight:600;cursor:pointer}.method{text-align:center;color:var(--muted);font-size:11px;margin:18px}.how{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:70px}.how div{background:#fff;padding:30px}.how span{font:700 11px "Space Grotesk";color:var(--green-dark)}.how h3{font:700 20px "Space Grotesk";margin:16px 0 6px}.how p{color:var(--muted);font-size:14px;margin:0;line-height:1.5}footer{border-top:1px solid var(--line);min-height:80px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}@media(max-width:760px){.hero{padding-top:65px}.input-row{flex-direction:column}.input-row button{padding:16px}.form-foot{gap:10px}.proof{gap:26px}.report-head{align-items:stretch}.score-card{width:120px}.report-grid{grid-template-columns:1fr}.how{grid-template-columns:1fr}.report-head h2{font-size:30px}footer{flex-direction:column;justify-content:center}.network span{display:none}}@media(max-width:470px){.wrap{width:min(100% - 24px,1120px)}.network{font-size:0}.network i{margin:0}.brand{font-size:18px}.hero h1{font-size:49px}.proof{justify-content:space-between;gap:5px}.scanner{padding:15px}.report-head{display:block}.score-card{margin-top:20px;width:100%;display:grid;grid-template-columns:1fr auto;align-items:center}.score-card strong{grid-row:1/4;grid-column:2}.report-grid .panel{padding:19px}}

/* ---- rebuilt report: verdict card, coverage, concentration, info status ---- */
.score-card{width:210px}
.score-card strong{display:block;font:700 42px "Space Grotesk";line-height:1}
.score-card #verdict{display:block;font:700 15px "Space Grotesk";letter-spacing:-.01em;margin-top:8px}
.score-card em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:2px}
.score-card small{display:block;font-size:10px;color:var(--muted);margin-top:8px;letter-spacing:.04em}
.score-card{border-top:5px solid var(--amber)}
.score-card.high{border-top-color:var(--red)}.score-card.high #verdict{color:var(--red)}
.score-card.warn{border-top-color:var(--amber)}.score-card.warn #verdict{color:#9a6d00}
.score-card.low{border-top-color:var(--green)}.score-card.low #verdict{color:var(--green-dark)}
.score-card.unknown{border-top-color:#8a94a6}.score-card.unknown #verdict{color:#5b6472}
.notice.high{background:#fdeceb;border-color:#f2b8b3;color:#8a2018}
.notice.unknown{background:#eef1f6;border-color:#cfd6e2;color:#3d4657}
.report-grid{grid-template-columns:1fr 320px;align-items:start}
.report-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.finding.info i{background:#e9eef7;color:#3f5b93}
.finding .evi{display:inline-block;margin-left:2px;color:var(--green-dark);font-weight:600;font-size:12px;white-space:nowrap}
.muted-note{color:var(--muted);font-size:12px;margin:0 0 14px}
.conc .panel-title{margin-bottom:4px}
.conc-row{display:grid;grid-template-columns:34px 120px 1fr 52px;align-items:center;gap:10px;padding:7px 0;font-size:12px}
.conc-rank{color:var(--muted);font-weight:700}
.conc-addr{color:var(--ink);text-decoration:none;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conc-addr:hover{color:var(--green-dark)}
.conc-track{height:8px;background:#edf0ee;border-radius:5px;overflow:hidden}
.conc-fill{display:block;height:100%;border-radius:5px;background:var(--green)}
.conc-fill.warn{background:var(--amber)}.conc-fill.high{background:var(--red)}
.conc-pct{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:760px){.report-grid{grid-template-columns:1fr}.score-card{width:100%}.conc-row{grid-template-columns:28px 100px 1fr 46px}}

/* ---- deployer reputation panel ---- */
.dep-score{font:700 14px "Space Grotesk";padding:5px 10px;border-radius:999px}
.dep-score.low{background:#e4f9e2;color:var(--green-dark)}
.dep-score.warn{background:#fff2d5;color:#9a6d00}
.dep-score.high{background:#fee7e5;color:var(--red)}
.dep-wallet{display:flex;gap:28px;flex-wrap:wrap;padding:10px 0 14px;border-bottom:1px solid #edf0ee;margin-bottom:10px}
.dep-wallet a{color:var(--ink);font-weight:600;text-decoration:none;font-size:13px}
.dep-wallet a:hover{color:var(--green-dark)}
.dep-label{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:3px}
.dep-meta{color:var(--muted);font-size:12px;margin-left:8px}
.dep-row{display:grid;grid-template-columns:minmax(80px,1fr) auto auto auto;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #f2f4f2;font-size:13px}
.dep-row .dep-meta{margin-left:0;text-align:right;white-space:nowrap}
.dep-sym{color:var(--ink);font-weight:700;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dep-sym:hover{color:var(--green-dark)}
.chip{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.chip.low{background:#e4f9e2;color:var(--green-dark)}
.chip.warn{background:#fff2d5;color:#9a6d00}
.chip.high{background:#fee7e5;color:var(--red)}
.chip.muted{background:#edf0ee;color:#77817c}
.dep-overlap{font-size:12px;color:#8a2018;background:#fdeceb;border:1px solid #f2b8b3;border-radius:8px;padding:10px 12px;margin:12px 0 0}
.dep-overlap a{color:#8a2018;font-weight:700}
.dep-foot{margin:12px 0 0}
@media(max-width:470px){.dep-row{grid-template-columns:1fr auto;row-gap:2px}.dep-row .dep-meta{text-align:left}}

/* ---- swap panel ---- */
.swap-panel{margin-top:18px;padding:19px;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.swap-panel h3{font:700 16px "Space Grotesk";margin:0 0 12px}
.swap-panel .panel-title{margin-bottom:12px}
.swap-gate{background:#fff8e6;border:1px solid #f0d797;border-radius:9px;padding:14px}
.swap-gate.high{background:#fdeceb;border-color:#f2b8b3}
.swap-gate p{margin:0 0 12px;font-size:13px;color:#6b581d;line-height:1.5}
.swap-gate.high p{color:#8a2018}
.secondary.sm{width:auto;padding:8px 14px;margin:0;font-size:12px}
.swap-tabs{display:flex;gap:6px;margin-bottom:14px;background:#f1f3f0;border-radius:9px;padding:4px}
.swap-tab{flex:1;border:0;background:transparent;padding:9px;border-radius:7px;font:700 13px "DM Sans";cursor:pointer;color:var(--muted)}
.swap-tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(18,39,29,.08)}
.swap-label{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px}
.swap-input{width:100%;border:1px solid #cbd3cf;background:#fafbf9;border-radius:10px;padding:14px;font:600 18px "Space Grotesk";outline:none;box-sizing:border-box}
.swap-input:focus{border-color:var(--green-dark);box-shadow:0 0 0 3px #dcf8dd}
#swap-estimate{margin:8px 0 14px}
.swap-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.swap-row label{font-size:11px;font-weight:700;color:var(--muted)}
.slip-opts{display:flex;gap:6px}
.chip-btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 9px;font:700 11px "DM Sans";cursor:pointer;color:var(--muted)}
.chip-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.input-row-button.swap-go{width:100%;border:0;background:var(--green);color:#071408;font:700 15px "DM Sans";border-radius:10px;padding:15px;cursor:pointer}
.input-row-button.swap-go:hover{background:#00b905}
.input-row-button.swap-go:disabled{opacity:.6;cursor:default}
#swap-status{min-height:16px}

/* ---- navbar: post-scan links + new scan ---- */
.nav-right{display:flex;align-items:center;gap:16px}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{color:var(--muted);text-decoration:none;font-weight:600;font-size:13px;padding:8px 12px;border-radius:8px;transition:background .15s,color .15s}
.nav-links a:hover{color:var(--ink);background:#eef0f2}
.nav-btn{border:0;background:var(--ink);color:#fff;font:700 13px "DM Sans";border-radius:9px;padding:9px 15px;cursor:pointer;white-space:nowrap;transition:transform .12s,background .15s}
.nav-btn:hover{background:#000;transform:translateY(-1px)}
.brand{transition:opacity .15s}.brand:hover{opacity:.75}
@media(max-width:640px){.nav-links a{padding:8px 9px;font-size:12px}.nav-btn{padding:8px 11px;font-size:12px}}
@media(max-width:470px){.nav-links a[data-nav="report"]{display:none}.nav-right{gap:9px}}

/* ---- score card: risk-tuned animated glow ---- */
.score-card{position:relative;isolation:isolate;overflow:visible;transition:border-color .3s;
  --glow:rgba(0,200,5,.36);--glowStrong:rgba(0,200,5,.55)}
.score-card::before{content:"";position:absolute;inset:-2px;border-radius:14px;z-index:-1;
  background:radial-gradient(120% 120% at 50% 0%,var(--glowStrong),transparent 70%);
  opacity:.0;animation:scoreGlow 2.8s ease-in-out infinite}
.score-card{animation:scoreLift 2.8s ease-in-out infinite}
.score-card.high{--glow:rgba(229,72,77,.5);--glowStrong:rgba(229,72,77,.7)}
.score-card.warn{--glow:rgba(245,166,35,.5);--glowStrong:rgba(245,166,35,.68)}
.score-card.unknown{--glow:rgba(138,148,166,.42);--glowStrong:rgba(138,148,166,.55)}
.score-card.low{--glow:rgba(0,200,5,.42);--glowStrong:rgba(0,200,5,.6)}
.score-card strong{transition:color .3s;text-shadow:0 0 22px var(--glow)}
.score-card.high strong{color:var(--red)}.score-card.warn strong{color:#c07d00}
.score-card.low strong{color:var(--green-dark)}.score-card.unknown strong{color:#5b6472}
@keyframes scoreGlow{0%,100%{opacity:.35;box-shadow:0 6px 26px -10px var(--glow)}50%{opacity:.9;box-shadow:0 14px 48px -8px var(--glowStrong)}}
@keyframes scoreLift{0%,100%{box-shadow:0 4px 18px -10px var(--glow)}50%{box-shadow:0 12px 40px -8px var(--glowStrong)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .score-card,.score-card::before,.loader-halo,.loader-scanbar,.nav-btn{animation:none;transition:none}
  .score-card::before{opacity:.5}
}

/* ---- swap: wallet balances + MAX (Uniswap-style) ---- */
.swap-wallet{display:flex;align-items:center;gap:8px}
.swap-wallet .addr{font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;color:var(--ink);background:#eef0f2;border-radius:999px;padding:5px 10px;cursor:pointer;border:1px solid var(--line)}
.swap-wallet .addr:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
.swap-wallet .addr:hover{border-color:var(--red);color:var(--red)}
.swap-wallet .addr .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px;vertical-align:middle}
.swap-balrow{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px;font-size:12px;color:var(--muted)}
.swap-balrow b{color:var(--ink);font-weight:600}
.max-btn{border:1px solid var(--green-dark);background:#e8fbe6;color:var(--green-dark);font:700 10px "DM Sans";letter-spacing:.04em;border-radius:6px;padding:3px 8px;cursor:pointer;margin-left:8px}
.max-btn:hover{background:var(--green-dark);color:#fff}
.impact.ok{color:var(--muted)}.impact.warn{color:#c07d00;font-weight:600}.impact.high{color:var(--red);font-weight:700}
.swap-holding{font-size:11px;color:var(--muted);margin:8px 0 0}

/* Official Ruginhood brand system */
:root{--green:#ccff00;--green-dark:#587000}
.brand-mark{background:#ccff00 url("ruginhood-logo.svg") center/cover no-repeat}
.brand-mark svg{visibility:hidden}
.brand em{background:#efffc0;color:#3f5100}
.network i{background:#ccff00;box-shadow:0 0 0 3px rgba(204,255,0,.25)}
.input-row button:hover,.input-row-button.swap-go:hover{background:#b7e600}
.input-row input:focus,.swap-input:focus{border-color:#7b9900;box-shadow:0 0 0 3px rgba(204,255,0,.24)}
.loader-mark{background:url("ruginhood-logo.svg") center/contain no-repeat;filter:drop-shadow(0 8px 20px rgba(204,255,0,.48))}
.loader-mark svg{visibility:hidden}
.loader-halo{background:radial-gradient(circle,rgba(204,255,0,.56),transparent 66%)}
.loader-mark::after{content:"";position:absolute;z-index:3;left:8%;right:8%;top:8%;height:3px;border-radius:4px;background:#ccff00;box-shadow:0 0 10px #ccff00,0 0 24px #ccff00;animation:brandScan 1.7s ease-in-out infinite}
@keyframes brandScan{0%{transform:translateY(0);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateY(100px);opacity:0}}
.conc-fill,.score-card.low{--glow:rgba(204,255,0,.46);--glowStrong:rgba(204,255,0,.68)}
@media(prefers-reduced-motion:reduce){.loader-mark::after{animation:none;top:50%}}

/* ---- technical detail panels: economics, taxes, contract, distribution, buyers ---- */
.econ-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}
.econ-cell{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.econ-cell span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.econ-cell b{font:700 15px "Space Grotesk";overflow-wrap:anywhere}
.econ-impact{margin-top:18px}
.econ-impact .impact-pt{display:inline-flex;flex-direction:column;gap:2px;margin:8px 22px 0 0;font-size:13px}
.impact-pt b{font-size:12px;color:var(--muted);font-weight:600}
.econ-tax{margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chip.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:none;font-weight:600}
.ctr-facts{margin:0}
.ctr-facts div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid #edf0ee;font-size:13px}
.ctr-facts dt{color:var(--muted)}.ctr-facts dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.ctr-priv{margin-top:14px}
.conc-dist,.conc-buyers{margin-top:20px}
.dist-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:8px 0}
.dist-seg{display:block}
.dist-seg.high{background:var(--red)}.dist-seg.warn{background:var(--amber)}.dist-seg.ok{background:#9bcc00}.dist-seg.low{background:#e0f5a3}
.dist-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}
.dist-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
.dot.high{background:var(--red)}.dot.warn{background:var(--amber)}.dot.ok{background:#9bcc00}.dot.low{background:#e0f5a3}
.buyer-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.buyer{display:inline-flex;align-items:center;gap:5px;font-size:12px;background:#f1f3f0;border:1px solid var(--line);border-radius:7px;padding:5px 9px;text-decoration:none;color:var(--ink)}
.buyer:hover{border-color:var(--green-dark)}
.buyer.flag{background:#fdeceb;border-color:#f2b8b3;color:#8a2018;font-weight:700}
.buyer em{font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.04em;opacity:.85}

/* ---- approvals & revoke ---- */
.swap-approvals{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.appr-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.appr-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #edf0ee}
.appr-row b{font-size:13px}.appr-row .dep-meta{display:block;margin:2px 0 0}
.revoke-btn{border:1px solid var(--red);background:#fdeceb;color:#b0322c;font:700 12px "DM Sans";border-radius:8px;padding:7px 14px;cursor:pointer;white-space:nowrap}
.revoke-btn:hover{background:var(--red);color:#fff}
.revoke-btn:disabled{opacity:.6;cursor:default}
#revoke-status{min-height:14px;margin-top:8px}

/* ---- loader: inline animated mascot (overrides the background-image approach) ---- */
.loader-mark{background:none!important;filter:none!important}
.loader-mark::after{display:none!important}
.loader-svg{position:relative;z-index:1;width:100%;height:100%;overflow:hidden;border-radius:24px;filter:drop-shadow(0 8px 22px rgba(204,255,0,.5));transform-origin:center;animation:mBreathe 2.6s ease-in-out infinite}
@keyframes mBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.m-eye{transform-box:fill-box;transform-origin:center;animation:mEye 2s ease-in-out infinite}
@keyframes mEye{0%,100%{opacity:.78}45%{opacity:1}}
.m-knife{animation:mGlint 2.4s ease-in-out infinite}
@keyframes mGlint{0%,100%{opacity:1}50%{opacity:.7}}
.m-scan{opacity:.9;mix-blend-mode:overlay;animation:mScan 1.7s ease-in-out infinite}
@keyframes mScan{0%{transform:translateY(-6px);opacity:0}12%{opacity:.95}88%{opacity:.95}100%{transform:translateY(100px);opacity:0}}
@media(prefers-reduced-motion:reduce){.loader-svg,.m-eye,.m-knife,.m-scan{animation:none}}

.loader-mark svg.loader-svg{visibility:visible!important}

/* ---- rebuilt contract details ---- */
.ctr-badge{font:700 12px "Space Grotesk";padding:4px 10px;border-radius:999px}
.ctr-badge.ok{background:#e8fbe6;color:var(--green-dark)}
.ctr-badge.no{background:#f1f3f0;color:var(--muted)}
.ctr-section{margin-top:16px}
.ctr-section:first-of-type{margin-top:14px}
.ctr-facts{margin:6px 0 0}
.ctr-facts div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid #edf0ee;font-size:13px}
.ctr-facts dt{color:var(--muted);white-space:nowrap}
.ctr-facts dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.ctr-facts dd a{color:var(--green-dark);text-decoration:none;font-weight:600}
.ctr-facts dd a:hover{text-decoration:underline}
.ctr-facts .unk{color:#98a0a6;font-weight:500;font-style:italic}
.ctor-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-top:1px solid #f2f4f2;font-size:12px}
.ctor-k{color:var(--muted)}.ctor-k em{font-style:normal;opacity:.7;font-size:11px}
.ctor-v{font-weight:600;text-align:right;overflow-wrap:anywhere;max-width:60%}
.ctor-raw{font-size:11px;word-break:break-all;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:9px;margin:6px 0 0}

/* ---- swap section: now shown above the report, right after a scan ---- */
.swap-section{padding:34px 0 6px}
.swap-panel-top{margin-top:0;padding:26px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 40px -14px rgba(0,0,0,.14)}
.swap-panel-top .panel-title h3{font:700 20px "Space Grotesk"}
@media(max-width:470px){.swap-panel-top{padding:18px}}

/* ---- footer social links ---- */
footer{flex-direction:column;align-items:stretch;padding:20px 0;gap:0}
.footer-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;width:100%}
.social-links{display:flex;align-items:center;gap:16px}
.social-links a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:600}
.social-links a:hover{color:var(--ink)}
.social-links svg{flex:none}
@media(max-width:640px){.footer-row{flex-direction:column;align-items:flex-start;gap:10px}.social-links{flex-wrap:wrap}}

/* ---- ecosystem growth section (landing) ---- */
.ecosystem{padding:24px 0 70px;text-align:center}
.eco-live{display:inline-flex;align-items:center;gap:7px;font:700 11px "DM Sans";letter-spacing:.14em;color:var(--green-dark);background:#eefbe6;border:1px solid #d6f2b8;border-radius:999px;padding:6px 13px}
.eco-live i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(0,200,5,.18);animation:ecoPulse 1.6s ease-in-out infinite}
@keyframes ecoPulse{50%{box-shadow:0 0 0 6px rgba(0,200,5,0)}}
.eco-head h2{font:700 clamp(30px,5vw,50px)/1.02 "Space Grotesk";letter-spacing:-.04em;margin:18px 0 12px}
.eco-head h2 span{color:var(--green-dark)}
.eco-head p{max-width:560px;margin:0 auto 34px;color:var(--muted);font-size:17px;line-height:1.5}
.eco-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.eco-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 10px;transition:transform .15s,border-color .15s}
.eco-stat:hover{transform:translateY(-2px);border-color:#cfe0b8}
.eco-stat b{display:block;font:700 clamp(22px,2.4vw,30px) "Space Grotesk";letter-spacing:-.02em;line-height:1;overflow-wrap:anywhere}
.eco-stat span{display:block;color:var(--muted);font-size:12px;margin-top:8px;font-weight:600}
.eco-stat.accent{background:#0b0d0e;border-color:#0b0d0e}
.eco-stat.accent b{color:var(--green)}
.eco-stat.accent span{color:#c9d0cf}
.eco-foot{color:#8b938f;font-size:11px;margin-top:20px}
@media(max-width:900px){.eco-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:470px){.eco-grid{grid-template-columns:repeat(2,1fr);gap:10px}.eco-stat{padding:18px 8px}}

/* ---- live deployment monitor ---- */
.live{padding:10px 0 70px}
.live-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.live-title{display:flex;align-items:center;gap:10px}
.live-title h2{font:700 clamp(22px,3vw,30px) "Space Grotesk";letter-spacing:-.03em;margin:0}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgba(229,72,77,.2)}
.live-dot.on{background:var(--green);box-shadow:0 0 0 3px rgba(0,200,5,.22);animation:ecoPulse 1.4s ease-in-out infinite}
.nav-live-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-weight:600;font-size:13px;padding:8px 12px;border-radius:8px}
.nav-live-link:hover{color:var(--ink);background:#eef0f2}
.nav-live-link .live-dot{width:7px;height:7px;box-shadow:none}
.live-controls{display:flex;gap:8px}
.live-btn{border:1px solid var(--line);background:#fff;color:var(--ink);font:700 12px "DM Sans";border-radius:9px;padding:8px 13px;cursor:pointer;white-space:nowrap}
.live-btn:hover{border-color:#cbd3cf}
.live-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.live-btn.on{background:#eefbe6;border-color:#c7ec9e;color:var(--green-dark)}
.live-sub{color:var(--muted);font-size:15px;margin:12px 0 22px;max-width:620px}
.live-feed{display:flex;flex-direction:column;gap:8px;min-height:80px}
.live-empty{color:var(--muted);font-size:14px;text-align:center;padding:34px;border:1px dashed var(--line);border-radius:12px}
.live-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 16px}
.live-row.fresh{animation:liveIn .5s ease}
@keyframes liveIn{from{opacity:0;transform:translateY(-8px);border-color:var(--green)}to{opacity:1;transform:none}}
.live-tok{min-width:0}
.live-sym{font:700 15px "Space Grotesk";display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-addr{color:var(--muted);font-size:12px;text-decoration:none}
.live-addr:hover{color:var(--green-dark)}
.live-liq{font-size:12px;font-weight:700;text-align:right;white-space:nowrap}
.live-liq.real{color:var(--green-dark)}.live-liq.empty{color:#98a0a6}
.live-age{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:44px;text-align:right}
.live-scan{border:0;background:var(--green);color:#0b1a02;font:700 12px "DM Sans";border-radius:8px;padding:8px 12px;cursor:pointer;white-space:nowrap}
.live-scan:hover{background:#b7e600}
@media(max-width:560px){.live-row{grid-template-columns:1fr auto;gap:6px 12px}.live-age{grid-column:2;grid-row:1}.live-liq{grid-column:1;grid-row:2;text-align:left}.live-scan{grid-column:2;grid-row:2}}

/* ---- live feed filters ---- */
.live-filters{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.live-filter{border:1px solid var(--line);background:#fff;color:var(--muted);font:700 12px "DM Sans";border-radius:999px;padding:7px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.live-filter:hover{border-color:#cbd3cf;color:var(--ink)}
.live-filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.live-filter span{background:rgba(0,0,0,.08);border-radius:999px;padding:1px 7px;font-size:11px;min-width:18px;text-align:center}
.live-filter.active span{background:rgba(255,255,255,.2)}
/* accessibility: kill the new pulsing dots for reduced-motion users */
@media(prefers-reduced-motion:reduce){.eco-live i,.live-dot,.live-dot.on{animation:none}}

/* ---- token launch interface ---- */
.nav-launch-link{display:inline-flex;align-items:center;color:var(--ink);text-decoration:none;font-weight:700;font-size:13px;padding:8px 13px;border-radius:9px;background:var(--green);}
.nav-launch-link:hover{background:#b7e600}
.launch{padding:20px 0 74px}
.launch-head{text-align:center;max-width:640px;margin:0 auto 30px}
.launch-head h2{font:700 clamp(28px,4.5vw,46px)/1.03 "Space Grotesk";letter-spacing:-.04em;margin:14px 0 12px}
.launch-head h2 span{color:var(--green-dark)}
.launch-head p{color:var(--muted);font-size:16px;line-height:1.55}
.launch-grid{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.launch-form{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}
.lf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lf-field{margin-bottom:14px;display:flex;flex-direction:column}
.lf-field label{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;text-transform:uppercase}
.lf-field label em{text-transform:none;font-style:normal;font-weight:500;opacity:.7}
.lf-field input,.lf-field textarea{border:1px solid #cbd3cf;background:#fafbf9;border-radius:10px;padding:12px 13px;font:500 15px "DM Sans";outline:none;resize:vertical}
.lf-field input:focus,.lf-field textarea:focus{border-color:#7b9900;box-shadow:0 0 0 3px rgba(204,255,0,.24)}
.lf-tick-wrap{display:flex;align-items:center;border:1px solid #cbd3cf;background:#fafbf9;border-radius:10px;padding:0 13px}
.lf-tick-wrap:focus-within{border-color:#7b9900;box-shadow:0 0 0 3px rgba(204,255,0,.24)}
.lf-tick-wrap span{font-weight:700;color:var(--muted)}
.lf-tick-wrap input{border:0;background:transparent;padding:12px 4px;box-shadow:none!important;text-transform:uppercase;font-weight:700;letter-spacing:.03em}
.lf-costs{display:flex;flex-direction:column;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:13px;margin:6px 0 14px;font-size:13px}
.lf-costs div{display:flex;justify-content:space-between}
.lf-costs .lf-total{font-weight:700;border-top:1px solid var(--line);padding-top:8px}
.lf-launch-btn{width:100%;border:0;background:var(--ink);color:#fff;font:700 15px "DM Sans";border-radius:11px;padding:15px;cursor:pointer}
.lf-launch-btn:hover{background:#000}
.lf-launch-btn:disabled{opacity:.6;cursor:default}
.lf-launch-btn.ready{background:var(--green);color:#0b1a02}
.lf-launch-btn.ready:hover{background:#b7e600}
.lf-disclaimer{border-top:1px solid #edf0ee;padding-top:12px;margin-top:12px;line-height:1.5}
.launch-preview{background:#0b0d0e;border-radius:16px;padding:22px;position:sticky;top:16px}
.launch-preview .dep-label{color:#c9d0cf}
.lp-chart{margin:12px 0 16px}
.lp-chart svg{width:100%;height:auto;display:block}
.lp-stats{margin:0}
.lp-stats div{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid rgba(255,255,255,.08);font-size:13px}
.lp-stats dt{color:#9aa2a0}.lp-stats dd{margin:0;color:#fff;font-weight:700}
.lp-stats dd.accent{color:var(--green)}
@media(max-width:820px){.launch-grid{grid-template-columns:1fr}.launch-preview{position:static}}
@media(max-width:470px){.lf-row{grid-template-columns:1fr}}

/* ---- economics: no-liquidity warning ---- */
.econ-cell.dim b{color:#98a0a6}
.econ-liqwarn{margin:14px 0 0;background:#fdeceb;border:1px solid #f2b8b3;color:#8a2018;border-radius:10px;padding:11px 13px;font-size:12px;line-height:1.5}
.econ-noliq{color:var(--red);font-weight:700;font-size:12px}

/* ---- live widget: floating, collapsible, scrollable side panel ---- */
.live-widget{position:fixed;right:18px;bottom:18px;width:320px;max-width:calc(100vw - 24px);z-index:60;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px -14px rgba(0,0,0,.3);overflow:hidden}
.live-widget.flash{animation:lwFlash .9s ease}
@keyframes lwFlash{0%,100%{box-shadow:0 18px 50px -14px rgba(0,0,0,.3)}30%{box-shadow:0 0 0 3px var(--green),0 18px 50px -14px rgba(0,0,0,.32)}}
.lw-header{display:flex;align-items:center;gap:9px;width:100%;border:0;background:var(--ink);color:#fff;padding:12px 14px;cursor:pointer;font:700 14px "Space Grotesk"}
.lw-header .live-dot{width:8px;height:8px;box-shadow:none}
.lw-title{flex:1;text-align:left}
.lw-count{background:var(--green);color:#0b1a02;font:700 12px "DM Sans";border-radius:999px;padding:1px 8px;min-width:20px;text-align:center}
.lw-chev{color:#c9d0cf;font-size:11px}
.lw-body{max-height:min(62vh,520px);display:flex;flex-direction:column}
.live-widget.collapsed .lw-body{display:none}
.lw-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}
.lw-actions{display:flex;gap:6px}
.lw-icon{border:1px solid var(--line);background:#fff;border-radius:8px;width:32px;height:30px;cursor:pointer;font-size:13px;display:grid;place-items:center;line-height:1}
.lw-icon:hover{border-color:#cbd3cf}
.lw-icon.on{background:#eefbe6;border-color:#c7ec9e}
.live-feed{overflow-y:auto;padding:5px;flex:1;display:block;min-height:0}
.live-empty{padding:22px 14px;font-size:12px}
.live-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:9px 8px;border:0;border-radius:9px;background:transparent}
.live-row:hover{background:var(--paper)}
.live-row+.live-row{border-top:1px solid #f1f3ef}
.live-row.fresh{animation:liveIn .5s ease}
.lr-tok{min-width:0}
.live-sym{font:700 14px "Space Grotesk";display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.lr-sub{display:flex;align-items:center;gap:8px;margin-top:2px}
.live-addr{color:var(--muted);font-size:11px;text-decoration:none}
.live-addr:hover{color:var(--green-dark)}
.live-liq{font-size:11px;font-weight:700;white-space:nowrap}
.live-liq.real{color:var(--green-dark)}.live-liq.empty{color:#a4acaa}
.lr-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.live-age{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.live-scan{border:0;background:var(--green);color:#0b1a02;font:700 11px "DM Sans";border-radius:7px;padding:5px 11px;cursor:pointer}
.live-scan:hover{background:#b7e600}
.live-filters{gap:5px;margin:0;flex-wrap:nowrap}
.live-filter{padding:5px 9px;font-size:11px}
.live-filter span{padding:0 5px;font-size:10px;min-width:14px}
.lw-foot{margin:0;padding:8px 12px;border-top:1px solid var(--line);color:#98a0a6;font-size:10.5px;text-align:center}
@media(max-width:760px){.live-widget{right:10px;bottom:10px;width:280px}.lw-body{max-height:54vh}}

/* ---- primary nav tabs ---- */
.nav-primary{display:flex;gap:2px;background:#eef0f2;border-radius:11px;padding:3px}
.nav-tab{padding:8px 16px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:700;font-size:14px;transition:background .15s,color .15s}
.nav-tab:hover{color:var(--ink)}
.nav-tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
@media(max-width:560px){.nav-tab{padding:7px 12px;font-size:13px}}

/* ---- beginner-friendly hero ---- */
.hero .eyebrow span{color:var(--green-dark);margin-right:6px;font-size:9px}
.hero h1{margin:20px 0 18px}
.lede b{color:var(--ink);font-weight:700}
.scanner label{text-transform:none;font-size:13px;letter-spacing:0;color:var(--muted);font-weight:600}
.hero-example{border:0;background:transparent;color:var(--green-dark);font:700 12px "DM Sans";cursor:pointer;padding:0}
.hero-example:hover{text-decoration:underline}
.hero-trust{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 22px;margin-top:34px}
.hero-trust span{color:var(--muted);font-size:13px;font-weight:600}
@media(max-width:560px){.hero-trust{gap:8px 14px;font-size:12px}.hero-trust span{font-size:12px}}

/* ---- wanted list ---- */
.wanted{padding:20px 0 74px}
.wanted-head{text-align:center;max-width:620px;margin:0 auto 30px}
.wanted-head .eyebrow span{margin-right:6px}
.wanted-head h2{font:700 clamp(28px,4.5vw,44px) "Space Grotesk";letter-spacing:-.04em;margin:14px 0 12px}
.wanted-head p{color:var(--muted);font-size:16px;line-height:1.55}
.wanted-list{display:flex;flex-direction:column;gap:10px;max-width:760px;margin:0 auto}
.wanted-empty{text-align:center;color:var(--muted);font-size:14px;line-height:1.6;padding:34px;border:1px dashed var(--line);border-radius:14px;max-width:760px;margin:0 auto}
.wanted-row{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.wanted-row:hover{border-color:#f2b8b3}
.wanted-main{min-width:0}
.wanted-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.wanted-kind{font:700 10px "DM Sans";letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 9px}
.wanted-kind.deployer{background:#fdeceb;color:#8a2018}
.wanted-kind.contract{background:#fff2d5;color:#9a6d00}
.wanted-addr{color:var(--ink);font-weight:700;text-decoration:none;font-size:14px}
.wanted-addr:hover{color:var(--red)}
.wanted-sym{color:var(--muted);font-weight:600;font-size:13px}
.wanted-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.wanted-reasons span{background:#fdeceb;color:#8a2018;font-size:11px;font-weight:600;border-radius:6px;padding:3px 8px}
.wanted-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px;white-space:nowrap}
.wanted-count{color:var(--muted);font-size:12px;font-weight:600}
.wanted-scan{border:1px solid var(--ink);background:var(--ink);color:#fff;font:700 12px "DM Sans";border-radius:8px;padding:7px 13px;cursor:pointer;text-decoration:none;display:inline-block}
.wanted-scan:hover{background:#000}
.wanted-scan.alt{background:#fff;color:var(--ink)}
.wanted-foot{text-align:center;color:#98a0a6;font-size:12px;margin-top:20px}
@media(max-width:560px){.wanted-row{flex-direction:column;align-items:flex-start}.wanted-meta{flex-direction:row;align-items:center}}

/* ---- swap as a floating side widget (bottom-left, opposite the live widget) ---- */
.swap-widget{position:fixed;left:18px;bottom:18px;width:340px;max-width:calc(100vw - 24px);z-index:60;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px -14px rgba(0,0,0,.3);overflow:hidden;max-height:min(82vh,660px);display:flex;flex-direction:column}
.swap-widget.sw-flash{animation:lwFlash .9s ease}
.sw-header{display:flex;align-items:center;gap:9px;width:100%;border:0;background:var(--green);color:#0b1a02;padding:12px 15px;cursor:pointer;font:700 15px "Space Grotesk"}
.sw-header:hover{background:#b7e600}
.sw-icon{font-size:16px}
.sw-title{flex:1;text-align:left}
.sw-chev{font-size:12px}
.sw-body{overflow-y:auto;padding:16px;flex:1;min-height:0}
.swap-widget.collapsed .sw-body{display:none}
/* neutralise the old inline-panel chrome + drop redundant inner headings */
.swap-widget .swap-panel{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.swap-widget .swap-panel h3{display:none}
.swap-widget .swap-gate{margin-top:0}
@media(max-width:760px){.swap-widget{left:10px;bottom:10px;width:300px}}
@media(max-width:640px){
  /* on small screens the two corner widgets can crowd — keep them slim when collapsed */
  .swap-widget.collapsed,.live-widget.collapsed{width:auto}
  .swap-widget:not(.collapsed){width:calc(100vw - 20px);left:10px}
  .live-widget:not(.collapsed){width:calc(100vw - 20px);right:10px}
}

/* ---- responsive nav: prevent overflow on narrow screens ---- */
body{overflow-x:hidden}
.nav-right{min-width:0}
@media(max-width:960px){.network{display:none}}
@media(max-width:720px){.nav-links{display:none}.nav-tab{padding:7px 11px;font-size:13px}.nav-live-link{padding:8px 9px}}
@media(max-width:460px){.nav-primary{gap:1px;padding:2px}.nav-tab{padding:6px 9px;font-size:12px}.brand span:not(.brand-mark){font-size:16px}.brand em{display:none}}

/* ============ App-style mobile shell ============ */
.tabbar{display:none}
@media(max-width:720px){
  /* Native-app bottom tab bar */
  .tabbar{
    display:grid;grid-template-columns:repeat(4,1fr);
    position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(14px);
    -webkit-backdrop-filter:saturate(1.4) blur(14px);
    border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom);
    box-shadow:0 -8px 30px -18px rgba(0,0,0,.35)}
  .tabbar-btn{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    border:0;background:none;cursor:pointer;color:var(--muted);
    font:600 10.5px "DM Sans";letter-spacing:.01em;padding:9px 0 8px;min-height:54px}
  .tabbar-btn svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;
    stroke-linecap:round;stroke-linejoin:round}
  .tabbar-btn.active{color:var(--green-dark)}
  .tabbar-btn:active{transform:scale(.94)}
  .tabbar-live{width:23px;height:23px;display:grid;place-items:center}
  .tabbar-live .live-dot{width:9px;height:9px}

  /* Hand the primary nav to the tab bar; keep only brand + live pill up top */
  .nav-primary{display:none}
  .nav-live-link{display:none}
  .nav{height:60px}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}

  /* Widgets become docked bottom sheets sitting above the tab bar */
  .live-widget{left:0;right:0;bottom:0;width:100%;max-width:100%;
    border-radius:18px 18px 0 0;border-bottom:0;
    margin-bottom:calc(58px + env(safe-area-inset-bottom));
    box-shadow:0 -14px 44px -18px rgba(0,0,0,.4)}
  .swap-widget{left:0;right:0;bottom:0;width:100%;max-width:100%;
    border-radius:18px 18px 0 0;border-bottom:0;
    margin-bottom:calc(58px + env(safe-area-inset-bottom));
    max-height:min(76vh,620px)}
  .lw-body{max-height:52vh}
  /* Full-width tap targets, comfortable hit areas */
  .input-row button,.secondary,.ghost{min-height:52px}
  .live-scan{min-height:34px;padding:0 14px}
}
@media(max-width:720px) and (min-width:561px){
  /* mid-size: keep widgets as floating cards but lift above the tab bar */
  .live-widget,.swap-widget{left:auto;right:12px;width:320px;border-radius:16px;
    margin-bottom:calc(58px + env(safe-area-inset-bottom))}
  .swap-widget{left:12px;right:auto}
}
/* Respect the tab-bar space when the on-screen keyboard/scroll settles */
@supports(padding:max(0px)){
  @media(max-width:720px){.tabbar{padding-bottom:max(env(safe-area-inset-bottom),4px)}}
}

/* ============ Launchpad token explorer ============ */
.tokens{padding:56px 0 80px}
.tokens-head{text-align:center;max-width:640px;margin:0 auto 26px}
.tokens-head h2{font:700 clamp(30px,4.5vw,44px) "Space Grotesk";letter-spacing:-.04em;margin:10px 0 8px}
.tokens-head p{color:var(--muted);font-size:15px;line-height:1.55;margin:0}
.tokens-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;max-width:820px;margin:0 auto 14px}
.tokens-filters{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px}
.tokens-filter{border:0;background:none;border-radius:999px;padding:7px 14px;font:600 13px "DM Sans";color:var(--muted);cursor:pointer}
.tokens-filter.active{background:var(--green);color:#071408}
.tokens-filter span{opacity:.7;margin-left:4px}
.tokens-status{color:var(--muted);font-size:12px;text-align:right}
.tokens-sortwrap{display:flex;align-items:center;gap:6px}
.tokens-sortlabel{color:var(--muted);font:600 12px "DM Sans"}
.tokens-sort{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font:600 13px "DM Sans";color:var(--ink,#111);cursor:pointer}
.tokens-list{display:flex;flex-direction:column;gap:8px;max-width:820px;margin:0 auto}
.tokens-empty{text-align:center;color:var(--muted);font-size:14px;padding:34px;border:1px dashed var(--line);border-radius:14px}
.token-row{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 16px}
.token-row:hover{border-color:var(--green-dark)}
.tr-main{display:flex;align-items:baseline;gap:10px;min-width:0}
.tr-sym{font:700 15px "Space Grotesk";white-space:nowrap}
.tr-name{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.tr-addr a{color:var(--muted);font-size:12px;text-decoration:none}
.tr-addr a:hover{color:var(--green-dark);text-decoration:underline}
.tr-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}
.tr-liq{font-size:12px;font-weight:700}
.tr-liq.real{color:var(--green-dark)}
.tr-liq.empty{color:#9aa39e}
.tr-age{color:var(--muted);font-size:12px}
.tr-creator a{color:var(--muted);font-size:12px;text-decoration:none}
.tr-creator a:hover{color:var(--green-dark)}
.tr-scan{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 13px;font:600 12px "DM Sans";cursor:pointer}
.tr-scan:hover{background:var(--green);border-color:var(--green)}
.tokens-more{max-width:820px;display:block;margin:14px auto 0}
@media(max-width:640px){
  .token-row{flex-direction:column;align-items:stretch;gap:8px}
  .tr-meta{justify-content:space-between}
  .tr-creator{display:none}
  .tokens-bar{flex-direction:column;align-items:stretch}
  .tokens-status{text-align:center}
}
/* 5-tab bottom bar */
@media(max-width:720px){.tabbar-5{grid-template-columns:repeat(5,1fr)}.tabbar-5 .tabbar-btn{font-size:10px}}

/* ============ Explorer v2: hybrid aggregator cards ============ */
.tokens-head h2 span{color:var(--green-dark)}
.tokens-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:820px;margin:0 auto 18px}
.tokens-stats div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 10px;text-align:center}
.tokens-stats b{display:block;font:700 22px "Space Grotesk"}
.tokens-stats span{color:var(--muted);font-size:11px}
.tokens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;max-width:980px;margin:0 auto}
.tokens-grid .tokens-empty{grid-column:1/-1}
.token-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s}
.token-card:hover{border-color:var(--green-dark);box-shadow:0 10px 30px -18px rgba(18,39,29,.35)}
.token-card.is-rh{border-color:var(--green);box-shadow:0 0 0 1px var(--green),0 10px 34px -18px rgba(140,180,0,.5)}
.tc-top{display:flex;gap:11px;align-items:center}
.tc-avatar{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;
  font:700 19px "Space Grotesk";color:#071408;
  background:linear-gradient(135deg,hsl(var(--h) 85% 72%),hsl(calc(var(--h) + 45) 85% 55%))}
.tc-id{min-width:0}
.tc-line1{display:flex;align-items:center;gap:7px;min-width:0}
.tc-sym{font:700 15px "Space Grotesk";overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}
.tc-badge{font:700 9.5px "DM Sans";letter-spacing:.05em;padding:3px 7px;border-radius:999px;white-space:nowrap}
.tc-badge.rh{background:var(--green);color:#071408}
.tc-badge.funded{background:#e4f9e2;color:var(--green-dark)}
.tc-badge.empty{background:#f0f2f0;color:#8a948e}
.tc-addr{color:var(--muted);font-size:11.5px;text-decoration:none}
.tc-addr:hover{color:var(--green-dark);text-decoration:underline}
.tc-barrow{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--muted)}
.tc-barrow b{font:700 13px "Space Grotesk";color:var(--ink)}
.tc-bar{height:8px;border-radius:999px;background:#eef1ee;overflow:hidden}
.tc-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#a5d600,var(--green));
  box-shadow:0 0 8px 1px rgba(204,255,0,.55);transition:width .4s}
.tc-stats{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;border-top:1px solid #f0f2f0;padding-top:10px}
.tc-stats span{display:block;color:var(--muted);font-size:10px;letter-spacing:.04em}
.tc-stats b{font:600 12.5px "DM Sans"}
.tc-stats b a{color:inherit;text-decoration:none}
.tc-stats b a:hover{color:var(--green-dark)}
.tc-cta .tr-scan{padding:8px 15px}
@media(max-width:640px){
  .tokens-stats{grid-template-columns:repeat(2,1fr)}
  .tokens-grid{grid-template-columns:1fr}
}

/* bonding-curve graduation */
.tc-badge.grad{background:#0b0d0e;color:var(--green)}
.tc-bar.grad i{background:linear-gradient(90deg,var(--green),#eaff70);box-shadow:0 0 12px 2px rgba(204,255,0,.75)}
.token-card.is-grad{border-color:#c9d69a}
.tc-stats{grid-template-columns:1fr 1fr 1fr auto}
@media(max-width:400px){.tc-stats{grid-template-columns:1fr 1fr;row-gap:10px}.tc-cta{grid-column:2;justify-self:end}}
@media(max-width:640px){
  .tokens-filters{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tokens-filters::-webkit-scrollbar{display:none}
  .tokens-filter{white-space:nowrap;flex-shrink:0}
}

/* anti-rug panel on the launch page */
.lp-antirug{margin-top:16px;border-top:1px solid #edf0ee;padding-top:14px}
.lp-antirug-head{font:700 13px "Space Grotesk";margin-bottom:9px}
.lp-antirug ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.lp-antirug li{font-size:12px;color:var(--muted);line-height:1.5;padding-left:16px;position:relative}
.lp-antirug li::before{content:"✓";position:absolute;left:0;color:var(--green-dark);font-weight:700}
.lp-antirug li b{color:var(--ink)}

/* creator-trust chips + community wanted tag */
.tc-dev{font:700 9.5px "DM Sans";padding:2px 6px;border-radius:999px;vertical-align:1px;white-space:nowrap}
.tc-dev.ok{background:#e4f9e2;color:var(--green-dark)}
.tc-dev.bad{background:#fee7e5;color:var(--red)}
.tc-dev.warn{background:#fff2d5;color:#9a6d00}
.tc-dev.mid{background:#f0f2f0;color:#6a746e}
.wanted-src{font:700 9px "DM Sans";letter-spacing:.05em;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#4756b8;text-transform:uppercase}
.wanted-src.mine{background:#e4f9e2;color:var(--green-dark)}

/* ============ Score card v2: gauge + explainer ============ */
.score-card{width:190px;position:relative}
.score-card strong{display:inline-block}
.sc-outof{font:700 15px "Space Grotesk";color:var(--muted);text-decoration:none;margin-left:2px}
.sc-gauge{position:relative;height:7px;border-radius:999px;margin:8px 0 9px;
  background:linear-gradient(90deg,#e5484d 0%,#e5484d 45%,#f2a900 46%,#f2a900 75%,#3fbf46 76%,#3fbf46 100%)}
.sc-gauge i{position:absolute;top:-3.5px;width:3px;height:14px;border-radius:2px;background:var(--ink);
  box-shadow:0 0 0 2px #fff;transform:translateX(-50%);transition:left .5s ease}
.sc-hint{display:inline-grid;place-items:center;width:14px;height:14px;margin-left:4px;border-radius:50%;
  background:#e8ebe8;color:#5c636a;font:700 9px "DM Sans";font-style:normal;cursor:help;position:relative;vertical-align:1px}
.sc-hint:hover .sc-tip,.sc-hint:focus .sc-tip{display:block}
.sc-tip{display:none;position:absolute;top:20px;right:-12px;z-index:30;width:240px;
  background:#0b0d0e;color:#e8ebe8;font:400 11.5px/1.55 "DM Sans";letter-spacing:0;text-align:left;
  padding:11px 13px;border-radius:10px;box-shadow:0 12px 34px -10px rgba(0,0,0,.5)}
.sc-tip b{color:#ccff00}
@media(max-width:470px){.sc-tip{right:auto;left:-80px}}
@media(max-width:470px){
  .score-card{display:block;width:100%}
  .score-card strong{grid-row:auto;grid-column:auto;font-size:38px;margin-right:2px}
  .score-card b{display:inline-block;margin-right:8px}
  .score-card em{display:inline}
  .score-card small{display:block;margin-top:4px}
}

/* DexScreener chart panel */
.chart .panel-title a{color:var(--muted);font-size:12px;text-decoration:none}
.chart .panel-title a:hover{color:var(--green-dark)}
.chart-load{margin-top:0}
.chart-frame{border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.chart-frame iframe{display:block;width:100%;height:460px;border:0}
@media(max-width:640px){.chart-frame iframe{height:380px}}

/* incomplete-evidence scans: the trust number must not read as a verdict */
.score-card.unknown strong,.score-card.unknown .sc-outof{color:#9aa39e}
.score-card.unknown .sc-gauge{opacity:.3}
.score-card.unknown .sc-gauge i{background:#9aa39e}

/* clean-token launch preview */
.clean-token{display:flex;gap:14px;align-items:center;background:#f7fbef;border:1px solid #e3efc9;border-radius:12px;padding:16px}
.ct-badge{font-size:30px;line-height:1}
.ct-lines{display:flex;flex-direction:column;gap:6px}
.ct-lines span{font-size:12.5px;color:var(--green-dark);font-weight:600}

/* ============ Hero v2: single-viewport scan + ecosystem ============ */
.hero{min-height:calc(100vh - 82px);display:flex;flex-direction:column;justify-content:center;
  gap:clamp(28px,5vh,60px);padding:24px 0 34px;text-align:center}
.hero-top{display:flex;flex-direction:column;align-items:center;gap:22px}
.hero h1{font:700 clamp(38px,6.2vw,72px)/1 "Space Grotesk";letter-spacing:-.055em;margin:0}
.hero h1 span{color:var(--green-dark)}
.hero .scanner{width:min(660px,100%);margin:0}
.hero .lede{display:none}
.hero-eco{width:100%;background:linear-gradient(180deg,rgba(204,255,0,.05),transparent);
  border:1px solid var(--line);border-radius:18px;padding:20px 20px 22px;
  box-shadow:0 18px 60px -30px rgba(18,39,29,.18)}
.hero-eco .eco-live{justify-content:center;margin-bottom:16px}
.eco-foot-inline{color:var(--muted);font-weight:500;letter-spacing:0;text-transform:none;margin-left:8px;font-size:11px}
.hero-eco .eco-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0}
.hero-eco .eco-stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 8px;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}
.hero-eco .eco-stat:hover{transform:translateY(-4px);border-color:var(--green);box-shadow:0 12px 26px -14px rgba(140,180,0,.5)}
.hero-eco .eco-stat.accent{background:linear-gradient(160deg,#f4ffcf,#fff)}
.hero-eco .eco-stat b{font:700 clamp(18px,2vw,26px) "Space Grotesk";display:block;line-height:1.05}
.hero-eco .eco-stat span{font-size:11px;color:var(--muted);margin-top:4px;display:block}
@media(max-width:900px){.hero-eco .eco-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.hero{min-height:calc(100vh - 60px);padding-bottom:20px}}
@media(max-width:480px){
  .hero-eco .eco-grid{grid-template-columns:repeat(3,1fr);gap:7px}
  .hero-eco{padding:16px 12px}
  .hero-eco .eco-stat{padding:12px 4px}
  .hero h1{font-size:34px}
  .hero{gap:26px}
}
@media(max-width:560px){.eco-foot-inline{display:none}.hero-eco .eco-live{margin-bottom:12px}}

/* ============ Scan report: dashboard motion ============ */
@media (prefers-reduced-motion: no-preference){
  @keyframes rhUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes rhPop{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}
  @keyframes rhGlow{0%,100%{box-shadow:0 0 0 0 var(--rh-glow,transparent)}50%{box-shadow:0 0 26px 2px var(--rh-glow,transparent)}}
  #report:not(.hidden) .report-head{animation:rhUp .5s both cubic-bezier(.2,.8,.2,1)}
  #report:not(.hidden) .score-card{animation:rhPop .55s .05s both cubic-bezier(.2,.8,.2,1)}
  #report:not(.hidden) #verdict-note{animation:rhUp .5s .12s both}
  #report:not(.hidden) .report-main > .panel{animation:rhUp .55s both cubic-bezier(.2,.8,.2,1)}
  #report:not(.hidden) .report-main > .panel:nth-child(1){animation-delay:.16s}
  #report:not(.hidden) .report-main > .panel:nth-child(2){animation-delay:.22s}
  #report:not(.hidden) .report-main > .panel:nth-child(3){animation-delay:.28s}
  #report:not(.hidden) .report-main > .panel:nth-child(4){animation-delay:.34s}
  #report:not(.hidden) .report-main > .panel:nth-child(5){animation-delay:.40s}
  #report:not(.hidden) .report-main > .panel:nth-child(6){animation-delay:.46s}
  #report:not(.hidden) aside.facts{animation:rhUp .55s .26s both}
  .findings .finding{animation:rhUp .45s both;animation-delay:calc(var(--i,0)*42ms + .18s)}
  .econ-grid .econ-cell{animation:rhPop .4s both}
  /* score number gets a gentle pop as it counts */
  #report:not(.hidden) #score{display:inline-block;animation:rhPop .5s .1s both}
}
/* dashboard-style hover motion on every panel */
.report .panel{transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,border-color .22s}
.report .panel:hover{transform:translateY(-3px);box-shadow:0 16px 40px -22px rgba(18,39,29,.4);border-color:#d6dccf}
/* score-card tone glow */
.score-card{transition:box-shadow .3s}
.score-card.high{--rh-glow:rgba(229,72,77,.35)}
.score-card.warn{--rh-glow:rgba(242,169,0,.32)}
.score-card.low{--rh-glow:rgba(63,191,70,.34)}
@media (prefers-reduced-motion: no-preference){
  .score-card.high,.score-card.warn,.score-card.low{animation:rhGlow 2.6s ease-in-out 1s 2}
}
/* the gauge needle already transitions on left; make it smooth for the count-up */
.sc-gauge i{transition:left .05s linear}

/* ============ Report dashboard hero (score + KPIs + chart) ============ */
.report-hero{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;margin-bottom:24px}
.report-hero-left{display:flex;flex-direction:column;gap:18px}
.report-hero .report-head{margin:0}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 13px;transition:transform .2s,border-color .2s}
.kpi:hover{transform:translateY(-2px);border-color:var(--green)}
.kpi span{font-size:10px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
.kpi b{display:block;font:700 18px "Space Grotesk";margin-top:4px;overflow-wrap:anywhere}
.kpi b.pos{color:var(--green-dark)}
.kpi b.neg{color:var(--red)}
#chart.chart{padding:0;overflow:hidden;min-height:420px}
#chart .panel-title{padding:16px 18px 10px}
.chart-frame{background:#0b1220;border-radius:0 0 14px 14px;overflow:hidden}
.chart-frame iframe{display:block;width:100%;height:420px;border:0}
@media(max-width:900px){
  .report-hero{grid-template-columns:1fr}
  #chart.chart{min-height:0}
  .chart-frame iframe{height:360px}
}
@media(max-width:470px){.hero-stats{grid-template-columns:repeat(2,1fr)}}
/* economics source tags */
.econ-cell b .src{font:600 9px "DM Sans";font-style:normal;color:var(--muted);background:#f0f2f0;border-radius:4px;padding:1px 5px;margin-left:5px;vertical-align:1px;letter-spacing:.02em}
/* first-buyers panel reuses buyer chips */
.buyers .buyer-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.buyers .buyer{display:inline-flex;align-items:center;gap:5px;font:600 12px "DM Sans";color:var(--ink);background:#f6f8f4;border:1px solid var(--line);border-radius:8px;padding:6px 9px;text-decoration:none}
.buyers .buyer:hover{border-color:var(--green-dark)}
.buyers .buyer.flag{background:#fee7e5;border-color:#f3b0ab;color:#8a2b26}
.buyers .buyer em{font-style:normal;font-size:9px;font-weight:700;text-transform:uppercase;opacity:.75}
/* chart animates into the hero */
@media (prefers-reduced-motion: no-preference){
  #report:not(.hidden) .report-hero #chart{animation:rhUp .55s .12s both cubic-bezier(.2,.8,.2,1)}
  #report:not(.hidden) .hero-stats .kpi{animation:rhPop .45s both}
  #report:not(.hidden) .hero-stats .kpi:nth-child(2){animation-delay:.04s}
  #report:not(.hidden) .hero-stats .kpi:nth-child(3){animation-delay:.08s}
  #report:not(.hidden) .hero-stats .kpi:nth-child(4){animation-delay:.12s}
  #report:not(.hidden) .hero-stats .kpi:nth-child(5){animation-delay:.16s}
  #report:not(.hidden) .hero-stats .kpi:nth-child(6){animation-delay:.20s}
}

/* token-card venue chips (multi-DEX) */
.tc-venues{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.tc-venue{font:700 9px "DM Sans";letter-spacing:.03em;background:#eef2ff;color:#4756b8;border-radius:5px;padding:2px 6px}
.live-venue{font:700 8px "DM Sans";background:#eef2ff;color:#4756b8;border-radius:4px;padding:1px 4px;margin-left:5px;vertical-align:1px;letter-spacing:.02em}

/* ============ Dedicated Swap page ============ */
.swap-page{padding:48px 0 90px}
.swap-page-head{text-align:center;max-width:600px;margin:0 auto 26px}
.swap-page-head h2{font:700 clamp(30px,4.5vw,46px) "Space Grotesk";letter-spacing:-.04em;margin:10px 0 8px}
.swap-page-head p{color:var(--muted);font-size:15px;line-height:1.55;margin:0}
.swap-page-inner{max-width:460px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 18px 60px -30px rgba(18,39,29,.18)}
.swap-token-select{display:flex;gap:8px}
.swap-token-select input{flex:1;min-width:0;border:1px solid #cbd3cf;background:#fafbf9;border-radius:10px;padding:13px 14px;font:500 14px "DM Sans";outline:none}
.swap-token-select input:focus{border-color:var(--green-dark);box-shadow:0 0 0 3px #dcf8dd}
.swap-token-select .secondary{width:auto;padding:0 20px;margin:0}
#swap-token-msg{margin:8px 2px 0;font-size:12px;min-height:15px}
.swap-page-inner .swap-panel{margin-top:14px}
.report-trade{margin-left:12px;border:0;background:var(--green);color:#071408;font:700 13px "DM Sans";border-radius:8px;padding:8px 14px;cursor:pointer;vertical-align:2px}
.report-trade:hover{background:#00b905}
@media(max-width:470px){.swap-page-inner{padding:15px}}

/* swap page: chart beside the panel + token logo in the title */
.swap-page-grid{display:grid;grid-template-columns:460px 1fr;gap:22px;align-items:start;max-width:1000px;margin:0 auto}
.swap-page-grid .swap-page-inner{margin:0}
#swap-chart.chart{padding:0;overflow:hidden;min-height:420px}
#swap-chart .panel-title{padding:16px 18px 10px}
#swap-chart .panel-title a{color:var(--muted);font-size:12px;text-decoration:none}
#swap-chart .panel-title a:hover{color:var(--green-dark)}
#swap-chart .chart-frame{background:#0b1220;border-radius:0 0 14px 14px;overflow:hidden}
#swap-chart .chart-frame iframe{display:block;width:100%;height:440px;border:0}
.swap-title-img{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;overflow:hidden;vertical-align:-7px;margin-right:10px;background:#eef2ef}
.swap-title-img img{width:100%;height:100%;object-fit:cover;display:block}
.swap-title-img.mono{font:700 15px "Space Grotesk";color:#071408;background:linear-gradient(135deg,hsl(var(--h,90) 85% 72%),hsl(calc(var(--h,90) + 45) 85% 55%))}
@media(max-width:820px){.swap-page-grid{grid-template-columns:1fr;max-width:460px}#swap-chart.chart{min-height:0}#swap-chart .chart-frame iframe{height:360px}}

/* active load-screen progress */
.loading-bar-track{width:min(300px,80%);height:6px;border-radius:999px;background:#e6e8ea;margin:18px auto 10px;overflow:hidden}
.loading-bar-track i{display:block;height:100%;width:8%;border-radius:999px;background:linear-gradient(90deg,#a5d600,var(--green));box-shadow:0 0 10px 1px rgba(204,255,0,.5);transition:width .5s cubic-bezier(.3,.9,.3,1)}
.loading-meta{color:var(--muted);font-size:12px;margin:0}
#loading-elapsed{font-variant-numeric:tabular-nums;font-weight:600}

/* real token logos on explorer cards */
.tc-avatar.has-img{background:#eef2ef;padding:0}
.tc-avatar.has-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:12px}

/* token logo in the scan-report header */
.token-logo{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;overflow:hidden;vertical-align:-9px;margin-right:12px;background:#eef2ef}
.token-logo:empty{display:none}
.token-logo img{width:100%;height:100%;object-fit:cover;display:block}
.token-logo.mono{font:700 20px "Space Grotesk";color:#071408;background:linear-gradient(135deg,hsl(var(--h,90) 85% 72%),hsl(calc(var(--h,90) + 45) 85% 55%))}
@media(max-width:470px){.token-logo{width:34px;height:34px;vertical-align:-6px;margin-right:8px}}

/* ============ Revoke page: approval checkup ============ */
.revoke-head{max-width:820px;margin:0 auto 20px;text-align:center}
.revoke-head h2{font:700 clamp(24px,4vw,34px) "Space Grotesk";margin:8px 0}
.revoke-head p{color:var(--muted);font-size:14px;line-height:1.6;max-width:640px;margin:0 auto}
.revoke-connect{text-align:center;padding:38px 20px;border:1px dashed var(--line);border-radius:16px;max-width:560px;margin:0 auto}
.revoke-connect .primary{font:700 15px "Space Grotesk";padding:13px 26px;border-radius:12px;border:0;background:var(--green);color:#071408;cursor:pointer}
.revoke-connect .primary:hover{background:var(--green-dark);color:#fff}
.revoke-connect .muted-note{margin-top:12px}
.revoke-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:820px;margin:0 auto 14px}
.revoke-wallet{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font:600 13px "DM Sans"}
.revoke-stats{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.rv-stat{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font:600 12px "DM Sans";color:var(--muted)}
.rv-stat.crit{color:#b3261e;border-color:#f2b8b5}
.rv-stat.high{color:#8a5a00;border-color:#eed49f}
.revoke-progress{max-width:820px;margin:0 auto 12px;color:var(--muted);font-size:13px;min-height:18px}
.revoke-list{display:flex;flex-direction:column;gap:10px;max-width:820px;margin:0 auto}
.rv-row{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:13px;padding:14px 16px}
.rv-critical{border-left-color:#d93025}
.rv-high{border-left-color:#e8930c}
.rv-medium{border-left-color:#e3c000}
.rv-low{border-left-color:#9db4a4}
.rv-info{border-left-color:var(--green)}
.rv-done{opacity:.55}
.rv-main{min-width:0}
.rv-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rv-sym{font:700 15px "Space Grotesk"}
.rv-arrow{color:var(--muted)}
.rv-spender{font:600 13px "DM Sans";color:var(--green-dark);text-decoration:none}
.rv-spender:hover{text-decoration:underline}
.rv-chip{font:700 10px "DM Sans";text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:3px 8px}
.rv-chip-critical{background:#fbd3d0;color:#b3261e}
.rv-chip-high{background:#fde8c8;color:#8a5a00}
.rv-chip-medium{background:#f6efc0;color:#6d5c00}
.rv-chip-low{background:#e5ece7;color:#4c5f53}
.rv-chip-info{background:#d9f2e2;color:#116932}
.rv-chip-unl{background:#efe3fb;color:#5f2ba5}
.rv-chip-idle{background:#e8e8e8;color:#555}
.rv-reason{color:var(--muted);font-size:13px;line-height:1.5;margin:6px 0 4px}
.rv-meta{color:var(--muted);font-size:11.5px}
.rv-meta a{color:var(--green-dark)}
.rv-btn{border:1px solid #d93025;background:#fff;color:#d93025;font:700 13px "DM Sans";border-radius:10px;padding:9px 18px;cursor:pointer;white-space:nowrap}
.rv-btn:hover{background:#d93025;color:#fff}
.rv-btn:disabled{opacity:.6;cursor:wait}
.rv-revoked{color:var(--green-dark);font:700 13px "DM Sans";white-space:nowrap}
.revoke-foot{max-width:820px;margin:14px auto 0}
@media(max-width:640px){.rv-row{flex-direction:column;align-items:stretch}.rv-btn{width:100%}}
/* 6-tab bottom bar */
@media(max-width:720px){.tabbar{grid-template-columns:repeat(6,1fr)}.tabbar .tabbar-btn{font-size:10px}}
.wanted-src.auto{background:#fde8c8;color:#8a5a00}

/* ============ Homepage FAQ ============ */
.faq{max-width:740px;margin-inline:auto;padding:10px 0 70px}
.faq h2{font:700 clamp(24px,3.6vw,34px) "Space Grotesk";letter-spacing:-.03em;text-align:center;margin:0 0 22px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 18px;margin-bottom:10px}
.faq summary{cursor:pointer;font:700 15px "Space Grotesk";padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:700 18px "Space Grotesk";color:var(--green-dark);flex:none}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 16px;color:var(--muted);font-size:14px;line-height:1.6}
.faq details a{color:var(--green-dark);font-weight:600}
.faq-more{text-align:center;color:var(--muted);font-size:13px;margin-top:18px}
.faq-more a{color:var(--green-dark);font-weight:600}

/* ============ Blog ============ */
.blog{padding:56px 0 80px}
.blog-head{text-align:center;max-width:680px;margin:0 auto 40px}
.blog-head h1{font:700 clamp(32px,5vw,52px) "Space Grotesk";letter-spacing:-.045em;margin:14px 0 12px}
.blog-head h1 span{color:var(--green-dark)}
.blog-head p{color:var(--muted);font-size:16px;line-height:1.55}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;max-width:1000px;margin:0 auto}
.blog-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;text-decoration:none;color:var(--ink);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,border-color .2s}
.blog-card:hover{transform:translateY(-3px);border-color:var(--green-dark);box-shadow:0 16px 40px -22px rgba(18,39,29,.35)}
.blog-tag{display:inline-flex;align-self:flex-start;font:700 10px "DM Sans";letter-spacing:.08em;text-transform:uppercase;color:var(--green-dark);background:#eefbe6;border-radius:999px;padding:4px 10px}
.blog-card h2{font:700 20px "Space Grotesk";letter-spacing:-.01em;margin:0;line-height:1.25}
.blog-card p{color:var(--muted);font-size:14px;line-height:1.55;margin:0}
.blog-meta{color:#98a0a6;font-size:12px;margin-top:auto;padding-top:6px}
.blog-cta{padding:44px 0;text-align:center;background:#0b0d0e;border-radius:20px;margin-top:50px;max-width:1000px;margin-inline:auto}
.blog-cta h2{color:#fff;font:700 clamp(24px,3.4vw,34px) "Space Grotesk";margin:0 0 10px}
.blog-cta p{color:#c9d0cf;font-size:14px;margin:0 0 20px}
.blog-cta a{display:inline-block;border:0;background:var(--green);color:#071408;font:700 15px "DM Sans";border-radius:10px;padding:13px 26px;text-decoration:none}
.blog-cta a:hover{background:#b7e600}

.article{padding:50px 0 80px}
.article-head{max-width:740px;margin:0 auto 30px}
.article-head .blog-tag{margin-bottom:14px}
.article-head h1{font:700 clamp(28px,4.6vw,44px)/1.1 "Space Grotesk";letter-spacing:-.03em;margin:0 0 14px}
.article-head p{color:var(--muted);font-size:16px;line-height:1.55;margin:0 0 14px}
.article-meta{color:#98a0a6;font-size:12px;display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.article-body{max-width:740px;margin:0 auto;font-size:16px;line-height:1.75;color:#22262a}
.article-body h2{font:700 26px "Space Grotesk";letter-spacing:-.02em;margin:40px 0 14px}
.article-body h3{font:700 19px "Space Grotesk";margin:28px 0 10px}
.article-body p{margin:0 0 18px}
.article-body ul,.article-body ol{margin:0 0 18px;padding-left:22px}
.article-body li{margin-bottom:8px}
.article-body a{color:var(--green-dark);font-weight:600;text-decoration:underline}
.article-body strong{color:var(--ink)}
.article-body blockquote{margin:24px 0;padding:14px 20px;border-left:3px solid var(--green);background:var(--paper);border-radius:0 10px 10px 0;color:var(--muted);font-style:italic}
.article-callout{max-width:740px;margin:30px auto;background:#eefbe6;border:1px solid #d6f2b8;border-radius:14px;padding:20px 22px}
.article-callout b{display:block;font:700 15px "Space Grotesk";color:var(--green-dark);margin-bottom:6px}
.article-callout p{margin:0 0 12px;color:#3f5100;font-size:14px;line-height:1.55}
.article-callout a{display:inline-block;border:0;background:var(--ink);color:#fff;font:700 13px "DM Sans";border-radius:9px;padding:10px 18px;text-decoration:none}
.article-callout a:hover{background:#000}
.article-nav{max-width:740px;margin:40px auto 0;display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:20px}
.article-nav a{color:var(--muted);font-size:13px;font-weight:600;text-decoration:none}
.article-nav a:hover{color:var(--green-dark)}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}.article-meta{flex-direction:column;gap:4px}}

/* ============ Mobile interface polish ============ */
/* crisper taps: no gray flash, no 300ms double-tap-zoom delay */
button,a,.nav-tab,.tabbar-btn,.live-filter,.tokens-filter,.rv-btn,.wanted-scan,.live-scan,.tc-cta{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
@media(max-width:720px){
  /* the tab bar is ~61px tall (54 min + padding) — 58px clearance left widgets
     overlapping it by a few px. Give everything the true height + breathing room. */
  body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  .live-widget,.swap-widget{margin-bottom:calc(62px + env(safe-area-inset-bottom))}
  /* iOS zooms the page when a focused input's font is under 16px — never let one be */
  input,select,textarea{font-size:16px!important}
  /* smooth momentum scrolling inside docked sheets */
  .lw-body,.live-feed{-webkit-overflow-scrolling:touch}
  /* comfortable one-thumb hit areas on list actions */
  .rv-btn,.wanted-scan,.tokens-filter,.live-filter{min-height:40px}
  .tokens-sort{min-height:40px}
  /* section headings scale down gracefully */
  .revoke-head h2,.wanted-head h2,.tokens-head h2,.swap-page-head h2{font-size:clamp(24px,7vw,30px)}
  .revoke-head p,.wanted-head p,.tokens-head p,.swap-page-head p{font-size:13.5px}
  /* keep the revoke summary bar tidy on narrow screens */
  .revoke-bar{flex-direction:column;align-items:stretch;gap:10px}
  .revoke-bar .secondary{width:100%}
  .revoke-stats{justify-content:center}
  /* wanted rows: full-width re-scan buttons for thumbs */
  .wanted-scan{padding:9px 16px}
}
@media(max-width:720px) and (min-width:561px){
  .live-widget,.swap-widget{margin-bottom:calc(62px + env(safe-area-inset-bottom))}
}
