/* pro.css — présentation v2 : même univers sombre et vert, plus lisible et plus vivant.
   Chargé après live.css ; ne touche qu'aux classes de ui-v2.js et aux finitions globales. */
:root{--ok:#5dde8a;--wait:#e4bc69;--risk:#ff7788;--none:#8b95a1;--surface:#0f1519;--edge:#222d34;--ink:#f3f7f4;--muted:#8d9aa3;--ease:cubic-bezier(.2,.8,.2,1)}
.topbar-right{display:flex;align-items:center;gap:8px}
.lang-switch{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #3c4752;border-radius:99px;background:#141b16}
.lang-flag{width:26px;height:26px;border-radius:50%;border:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.5;filter:grayscale(60%);transition:opacity .2s,filter .2s,background .2s;overflow:hidden;padding:0}
.lang-flag svg{width:17px;height:12px;border-radius:2px;display:block}
.lang-flag:hover{opacity:.85}
.lang-flag.on{opacity:1;filter:none;background:#20281f;box-shadow:0 0 0 1px rgba(93,222,138,.5) inset}

/* Lueur d'ambiance discrète */
.phone-shell::before{content:"";position:absolute;inset:-18% -12% auto -12%;height:360px;background:radial-gradient(60% 100% at 30% 0%,rgba(93,222,138,.11),transparent 70%);animation:drift 16s ease-in-out infinite alternate;pointer-events:none}
@keyframes drift{to{transform:translateX(9%) scale(1.1)}}
main,.topbar{position:relative;z-index:1}

/* En-têtes de page */
.pg-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin:6px 0 16px}
.pg-head h1{margin:0;font-size:29px;font-weight:800;letter-spacing:-1px;color:var(--ink)}
.pg-head p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.pg-head-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.advice-pill{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:6px 12px;border:1px solid rgba(111,179,255,.32);border-radius:99px;background:linear-gradient(135deg,rgba(111,179,255,.14),rgba(111,179,255,.04));color:#bfe0ff;font-size:10.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 4px 14px rgba(111,179,255,.1)}
.advice-pill i{font-style:normal;line-height:1}
.premium-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.premium-actions .ghost-btn{flex:0 0 auto;border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.05)!important;color:#d8e2e7!important;font:700 11px 'Schibsted Grotesk'!important;border-radius:10px!important;padding:10px 12px!important}
.live-pill{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:6px 10px;border:1px solid rgba(93,222,138,.28);border-radius:99px;background:rgba(93,222,138,.07);color:#a9efc0;font-size:11px;font-weight:600;white-space:nowrap}
.live-pill i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:livePulse 2s infinite}
.live-pill.warn{border-color:rgba(228,188,105,.35);background:rgba(228,188,105,.08);color:#f0d18a}
.live-pill.warn i{background:var(--wait);animation:none}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(93,222,138,.55)}70%{box-shadow:0 0 0 8px rgba(93,222,138,0)}100%{box-shadow:0 0 0 0 rgba(93,222,138,0)}}

/* Compteurs, filtres, recherche */
.pulse-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}
.pulse-row>div{padding:12px 10px;border:1px solid var(--edge);border-radius:14px;background:linear-gradient(160deg,#111a1c,#0e1316);text-align:center}
.pulse-row b{display:block;font-size:23px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.pulse-row span{display:block;margin-top:2px;font-size:11px;color:var(--muted)}
.pulse-row .ok b{color:var(--ok)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 12px;scrollbar-width:none}
.chips::-webkit-scrollbar,.sorts::-webkit-scrollbar{display:none}
.seg{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid var(--edge);border-radius:99px;background:#0f1519;color:#a8b3ba;font-size:12px;font-weight:600;transition:.2s var(--ease)}
.seg em{font-style:normal;font-size:10px;color:#6f7d86;padding:2px 6px;border-radius:99px;background:#182126}
.seg:hover{border-color:#37505a;color:#dbe6ea;transform:translateY(-1px)}
.seg.on{border-color:rgba(93,222,138,.6);background:rgba(93,222,138,.12);color:#c9f7d8}
.seg.on em{background:rgba(93,222,138,.22);color:#9beab3}
.sorts{display:flex;align-items:center;gap:6px;overflow-x:auto;margin:0 0 12px;scrollbar-width:none}
.sorts span{flex:0 0 auto;color:#6f7d86;font-size:11px;margin-right:2px}
.sort{flex:0 0 auto;padding:6px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:#8d9aa3;font-size:12px;font-weight:600;transition:.2s}
.sort:hover{color:#dbe6ea}
.sort.on{background:#182126;border-color:#2a3840;color:#e9f1ee}
.search{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:0 14px;border:1px solid var(--edge);border-radius:14px;background:#0f1519;transition:.2s}
.search:focus-within{border-color:rgba(93,222,138,.55);box-shadow:0 0 0 4px rgba(93,222,138,.08)}
.search span{color:#7f8c95;font-size:18px}
.search input{flex:1;min-width:0;background:transparent!important;border:0!important;outline:0!important;color:var(--ink)!important;padding:13px 0!important;margin:0!important;font-size:14px}

/* Carte token : l'essentiel */
.tk{--accent:var(--none);--rgb:139,149,161;position:relative;margin:0 0 10px;padding:14px 14px 13px 17px;border:1px solid var(--edge);border-radius:18px;background:linear-gradient(160deg,#111a1c 0%,#0d1215 70%);overflow:hidden;cursor:pointer;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
.tk-ok{--accent:var(--ok);--rgb:93,222,138}.tk-wait{--accent:var(--wait);--rgb:228,188,105}.tk-risk{--accent:var(--risk);--rgb:255,119,136}
.tk::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.tk::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 0% 0%,rgba(var(--rgb),.11),transparent 55%);pointer-events:none}
.tk:hover{transform:translateY(-3px);border-color:rgba(var(--rgb),.5);box-shadow:0 14px 34px rgba(0,0,0,.45),0 0 0 1px rgba(var(--rgb),.14)}
.tk:active{transform:scale(.99)}
.tk:focus-visible{outline:2px solid rgba(var(--rgb),.7);outline-offset:2px}
.tk-top{display:flex;align-items:center;gap:11px;position:relative;z-index:1}
.tk-id{min-width:0;flex:1}
.tk-id b{display:block;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-id small{display:block;margin-top:2px;color:var(--muted);font-size:11.5px}
.tk-id em{font-style:normal;color:#c9a95a}
.tk-nums{position:relative;z-index:1;display:grid;grid-template-columns:1.25fr 1fr 1fr 34px;gap:8px;align-items:end;margin-top:14px}
.tk-nums small{display:block;margin-bottom:3px;color:#7f8c95;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}
.tk-nums b{font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.tk-fav{width:34px;height:34px;border:1px solid var(--edge);border-radius:11px;background:#0d1417;color:#8d9aa3;font-size:15px;transition:.2s var(--ease)}
.tk-fav:hover{border-color:rgba(255,119,136,.5);color:#ffb3bd;transform:scale(1.08)}
.tk-fav.on{color:#ff8fa0;border-color:rgba(255,119,136,.45);background:rgba(255,119,136,.1)}
.tk-score{position:relative;z-index:1;display:flex;align-items:center;gap:9px;margin-top:12px;color:var(--muted);font-size:11px}
.tk-score .track{flex:1;height:5px;border-radius:9px;background:#1b252b!important;overflow:hidden}
.tk-score .track i{display:block;height:100%;width:var(--c);border-radius:9px;background:linear-gradient(90deg,#3aa863,var(--ok))}
.tk-score b{color:var(--ink);font-size:12px}
.token-grid .tk{margin:0 0 10px}
@media (min-width:760px){.token-grid .tk{margin:0}.token-grid{gap:12px!important}}

/* Logo (image DEX Screener si disponible, sinon initiales) */
.logo{position:relative;flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,var(--coin,#2a3a33),#141c1a);border:1px solid rgba(255,255,255,.09);overflow:hidden;font-size:13px;font-weight:800;color:#0c1410;text-transform:uppercase}
.logo span{position:relative}
.logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#0d1215}
.logo.sm{flex-basis:30px;width:30px;height:30px;border-radius:9px;font-size:10px}
.logo.lg{flex-basis:64px;width:64px;height:64px;border-radius:20px;font-size:18px}

/* Badge de verdict */
.chip{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:6px 10px 6px 7px;border-radius:99px;border:1px solid transparent;font-size:11.5px;font-weight:700;line-height:1;white-space:nowrap}
.chip i{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;font-style:normal;font-size:10px;font-weight:800}
.chip-ok{color:#b9f6ce;background:rgba(93,222,138,.13);border-color:rgba(93,222,138,.4);animation:chipGlow 3.2s ease-in-out infinite}
.chip-ok i{background:var(--ok);color:#06210f}
.chip-wait{color:#f3d891;background:rgba(228,188,105,.12);border-color:rgba(228,188,105,.38)}
.chip-wait i{background:var(--wait);color:#2a1f05}
.chip-risk{color:#ffb3bd;background:rgba(255,119,136,.08);border-color:rgba(255,119,136,.3)}
.chip-risk i{background:var(--risk);color:#2c060c}
.chip-none{color:#aab4bb;background:rgba(139,149,161,.1);border-color:rgba(139,149,161,.28)}
.chip-none i{background:#3a444c;color:#c8d0d6}
.chip-lock{color:#c3ccd2;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);cursor:pointer;transition:.2s}
.chip-lock:hover{border-color:rgba(93,222,138,.5);color:#c9f7d8}
.chip-lock i{width:auto;height:auto;background:none;font-size:11px}
@keyframes chipGlow{0%,100%{box-shadow:0 0 0 0 rgba(93,222,138,0)}50%{box-shadow:0 0 16px 0 rgba(93,222,138,.28)}}

/* Le prix clignote une fois quand il change */
.price{border-radius:6px;padding:0 3px;margin:0 -3px}
.flash-up{animation:flashUp 1.3s ease-out}
.flash-down{animation:flashDown 1.3s ease-out}
@keyframes flashUp{0%{background:rgba(93,222,138,.2);color:#eafff1}100%{background:transparent}}
@keyframes flashDown{0%{background:rgba(255,119,136,.2);color:#fff0f2}100%{background:transparent}}

/* Fiche token */
.dt{max-width:760px;margin:0 auto}
.dt-bar{display:flex;align-items:center;gap:10px;margin:2px 0 14px}
.dt-bar .live-pill{margin-left:auto}
.dt-bar .watch{margin-left:0}
.watch.on{border-color:rgba(255,119,136,.5)!important;color:#ffb3bd!important;background:rgba(255,119,136,.1)!important}
.dt-hero{display:flex;align-items:center;gap:14px;margin:0 0 6px}
.dt-hero h1{margin:0;font-size:25px;font-weight:800;letter-spacing:-.6px}
.dt-hero p{margin:3px 0 0;color:var(--muted);font-size:13px}
.dt-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;margin:8px 0 16px}
.dt-price>.price{font-size:33px;font-weight:800;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.pill{padding:5px 10px;border-radius:99px;font-size:13px;font-weight:700}
.pill.up{color:#aef2c4!important;background:rgba(93,222,138,.13)}.pill.down{color:#ffb9c1!important;background:rgba(255,119,136,.13)}.pill.flat{color:#b9c2c8!important;background:rgba(255,255,255,.07)}
.dt-verdict{--rgb:139,149,161;position:relative;display:flex;align-items:center;gap:14px;padding:16px;border-radius:20px;border:1px solid rgba(var(--rgb),.45);background:linear-gradient(135deg,rgba(var(--rgb),.16),rgba(var(--rgb),.04) 60%),#0e1416;overflow:hidden}
.dt-ok{--rgb:93,222,138}.dt-wait{--rgb:228,188,105}.dt-risk{--rgb:255,119,136}
.dt-vicon{flex:0 0 46px;width:46px;height:46px;display:grid;place-items:center;border-radius:15px;font-size:22px;font-weight:800;background:rgba(var(--rgb),.92);color:#07130b}
.dt-none .dt-vicon{color:#0e1416}
.dt-verdict b{display:block;font-size:19px;font-weight:800;letter-spacing:-.4px}
.dt-verdict p{margin:3px 0 0;font-size:13px;line-height:1.45;color:#c2cbd0}
.dt-ok::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.07) 50%,transparent 70%);transform:translateX(-100%);animation:sheen 5s ease-in-out infinite;pointer-events:none}
@keyframes sheen{0%,60%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.ring{position:relative;flex:0 0 60px;width:60px;height:60px;margin-left:auto}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:5}
.ring-bg{stroke:rgba(255,255,255,.1)}
.ring-fg{stroke:var(--ok);stroke-linecap:round;stroke-dasharray:var(--full);stroke-dashoffset:var(--to);animation:ringFill 1.1s var(--ease) both}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:16px;font-weight:800}
@keyframes ringFill{from{stroke-dashoffset:var(--full)}}
.dt-flags{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.dt-flags li{padding:9px 12px;border-radius:12px;background:rgba(255,119,136,.09);border:1px solid rgba(255,119,136,.28);color:#ffc7cd;font-size:12.5px}
.dt-checks{display:grid;gap:8px;margin:14px 0}
.ck{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--edge);border-radius:15px;background:var(--surface)}
.ck i{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:13px;font-weight:800}
.ck b{display:block;font-size:14px;font-weight:700}
.ck span{display:block;margin-top:2px;color:var(--muted);font-size:12.5px;line-height:1.35}
.ck-ok i{background:rgba(93,222,138,.18);color:var(--ok)}
.ck-warn i{background:rgba(228,188,105,.18);color:var(--wait)}
.ck-bad{border-color:rgba(255,119,136,.35);background:rgba(255,119,136,.06)}
.ck-bad i{background:rgba(255,119,136,.2);color:var(--risk)}
.ck-wait i{background:rgba(139,149,161,.16);color:#a9b3ba}
.dt-notes{margin:0 0 6px;color:#a9b4bb;font-size:12.5px}
.dt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}
.dt-grid>div{padding:13px;border:1px solid var(--edge);border-radius:15px;background:var(--surface)}
.dt-grid small{display:block;margin-bottom:4px;color:#7f8c95;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}
.dt-grid b{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
@media (min-width:760px){.dt-grid{grid-template-columns:repeat(4,1fr)}.dt-chart iframe{height:420px!important}}
.dt-chart{margin:12px 0;border:1px solid var(--edge);border-radius:18px;overflow:hidden;background:#080c0f}
.dt-chart iframe{display:block;width:100%;height:320px;border:0}
.dt-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.dt-links a,.dt-links .copy{padding:10px 13px;border:1px solid var(--edge);border-radius:12px;background:#111a1e;color:#d8e2e7;font-size:12.5px;font-weight:600;text-decoration:none!important;transition:.2s var(--ease)}
.dt-links a:hover,.dt-links .copy:hover{border-color:rgba(93,222,138,.5);color:#c9f7d8!important;transform:translateY(-1px)}
.dt-legal{margin:18px 0 6px;text-align:center;color:#6f7d86;font-size:11.5px}

/* Sections repliables */
.more,.how{margin:10px 0;border:1px solid var(--edge);border-radius:16px;background:var(--surface);overflow:hidden}
.more>summary,.how>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:14px;font-weight:700}
.more>summary::-webkit-details-marker,.how>summary::-webkit-details-marker{display:none}
.more>summary::after,.how>summary::after{content:"+";font-size:20px;color:var(--muted);transition:transform .25s var(--ease)}
details[open]>summary::after{transform:rotate(45deg)}
.more>div,.how>div{padding:0 16px 16px;color:#b7c1c7;font-size:13px;line-height:1.55;animation:fadeIn .3s ease}
.more p,.how p{margin:9px 0}
.more b,.how b{color:var(--ink)}
.more h4{margin:16px 0 6px;font-size:13px;color:var(--ink)}
.more .card{margin:10px 0 0;box-shadow:none}
.fine{color:#8d9aa3!important;font-size:12px!important}
.linkish{background:none;border:0;padding:0;color:#9eeab5;font-weight:700;text-decoration:underline}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* Écran « Radar réservé à Pro » */
.gate{padding:20px;border:1px solid rgba(93,222,138,.3);border-radius:22px;background:radial-gradient(120% 80% at 90% 0%,rgba(93,222,138,.13),transparent 55%),#0e1416;text-align:center}
.gate-mark{width:54px;height:54px;margin:0 auto 12px;display:grid;place-items:center;border-radius:18px;background:var(--ok);color:#07130b;font-size:24px;animation:floaty 3s ease-in-out infinite}
@keyframes floaty{50%{transform:translateY(-5px)}}
.gate h2{margin:0 0 14px;font-size:20px}
.gate-list{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:9px;text-align:left}
.gate-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:#cfd9de}
.gate-list i{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(93,222,138,.18);color:var(--ok);font-style:normal;font-size:12px;font-weight:800}
.gate-preview{display:grid;gap:8px;margin:0 0 16px;filter:blur(2.5px);opacity:.75;pointer-events:none}
.gate-preview>div{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--edge);border-radius:14px;background:#0a1013}
.gate-preview span{color:var(--ok);font-size:11px}
.gate-preview b{flex:1;text-align:left}
.cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border:0;border-radius:14px;background:linear-gradient(135deg,#7df0a3,#4fd382);color:#062010;font-size:14px;font-weight:800;box-shadow:0 10px 26px rgba(93,222,138,.25);transition:.2s var(--ease)}
.cta:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(93,222,138,.32)}
.cta.small{width:auto;margin-left:auto;padding:9px 13px;font-size:12px}
.ghost{margin-top:10px;background:none;border:0;color:#9eeab5;font-size:13px;font-weight:600}

/* Barre du bas */
.tab{transition:color .2s,transform .25s var(--ease)}
.tab.active{color:#c9f7d8!important;transform:translateY(-2px)}
.tab.active i{filter:drop-shadow(0 0 8px rgba(93,222,138,.6))}

/* Entrée en scène : une seule fois à chaque changement de page */
.view-enter .pg-head,.view-enter .pulse-row,.view-enter .chips,.view-enter .search,.view-enter .sorts,.view-enter .gate,.view-enter .catalog-summary{animation:riseIn .55s var(--ease) both}
.view-enter .tk,.view-enter .legend-card{animation:riseIn .6s var(--ease) both;animation-delay:calc(var(--i,0)*55ms + 120ms)}
.view-enter .dt>*{animation:riseIn .55s var(--ease) both}
.view-enter .dt>:nth-child(2){animation-delay:.05s}.view-enter .dt>:nth-child(3){animation-delay:.1s}.view-enter .dt>:nth-child(4){animation-delay:.15s}.view-enter .dt>:nth-child(5){animation-delay:.2s}.view-enter .dt>:nth-child(n+6){animation-delay:.28s}
.view-enter .ck{animation:riseIn .5s var(--ease) both;animation-delay:calc(var(--i)*60ms + 260ms)}
@keyframes riseIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Barre d'indice de confiance : colorée pour Pro, floutée avec badge PRO sinon */
.tk-score{width:100%;padding:0;border:0;background:none;text-align:left;font-family:inherit}
.tk-score.sc-high .track i{background:linear-gradient(90deg,#3aa863,var(--ok))!important}
.tk-score.sc-mid .track i{background:linear-gradient(90deg,#b48a2c,var(--wait))!important}
.tk-score.sc-low .track i{background:linear-gradient(90deg,#b34a58,var(--risk))!important}
.view-enter .tk-score .track i{animation:barGrow .9s var(--ease) .3s both}
@keyframes barGrow{from{width:0}}
.tk-score.locked{cursor:pointer;position:relative}
.tk-score.locked .track{filter:blur(2.5px);opacity:.75}
.tk-score.locked .track i{background:linear-gradient(90deg,#4b5a55,#8da39a)!important}
.tk-score.locked b{filter:blur(3px);opacity:.8}
.tk-score.locked em{font-style:normal;padding:3px 6px;border:1px solid rgba(93,222,138,.45);border-radius:6px;background:rgba(93,222,138,.1);color:#9beab3;font-size:9px;font-weight:800;letter-spacing:.06em;transition:.2s}
.tk-score.locked:hover em{background:rgba(93,222,138,.22)}
.cell-score{min-width:170px}
.cell-score .tk-score{margin-top:0}
.ring-locked{border:0;background:none;padding:0;cursor:pointer}
.ring-locked .ring-fg{stroke:#6f817a;animation:none}
.ring-locked svg{filter:blur(1.5px);opacity:.7}
.ring-locked b{filter:blur(3px);opacity:.75}
.ring-locked em{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);font-style:normal;padding:2px 6px;border:1px solid rgba(93,222,138,.5);border-radius:6px;background:#0e1416;color:#9beab3;font-size:9px;font-weight:800;letter-spacing:.06em}

/* Tableau Explorer (ordinateur) : compact, sans défilement, compteur de confiance d'origine */
.ux-table .market-table{min-width:0!important;width:100%}
.ux-table .market-table th,.ux-table .market-table td{padding:0 10px}
.ux-table .market-table th:first-child,.ux-table .market-table td:first-child{padding-left:16px}
.ux-table .market-table td{height:58px}
.ux-table .market-token{min-width:0;gap:10px}
.ux-table .market-token b{max-width:150px}
.ux-table .cell-score{width:150px}
.ux-table .table-confidence-meter{grid-template-columns:78px auto!important;min-width:0!important;gap:8px}
.ux-table .chip{padding:4px 10px 4px 5px;font-size:11px}
.ux-table .chip i{width:15px;height:15px;font-size:9px}
.ux-table .market-price .price{font-weight:700}
/* Formes décoratives déjà invisibles : elles ne doivent plus élargir la page. */
.ambient{display:none!important}
body{overflow-x:hidden}


/* Repère de risque discret dans le tableau (pas de colonne dédiée). */
.mini-risk{margin-left:6px;padding:2px 7px;border:1px solid rgba(255,119,136,.3);border-radius:99px;background:rgba(255,119,136,.08);color:#ffb3bd;font-size:10px;font-style:normal;font-weight:700;vertical-align:1px;white-space:nowrap}
.ux-table .cell-score{width:190px}


/* ============ Nouvelles sections : scanner, bilan, apprendre, plus, pro ============ */
.chips-label{flex:0 0 auto;align-self:center;color:#6f7d86;font-size:11px;margin-right:2px}
.seg.theme{padding:8px 12px}
.seg-risk em{background:rgba(255,119,136,.14);color:#ffb3bd}
.seg-risk.on{border-color:rgba(255,119,136,.6);background:rgba(255,119,136,.12);color:#ffc7cd}
.pulse-4{grid-template-columns:repeat(4,1fr)}
.pulse-4 span{font-size:10.5px}
.pulse-row .risky b{color:#ffb3bd}
.pulse-lock{padding:12px 10px;border:1px dashed rgba(93,222,138,.4);border-radius:14px;background:rgba(93,222,138,.05);text-align:center;color:inherit;cursor:pointer;transition:.2s var(--ease)}
.pulse-lock:hover{background:rgba(93,222,138,.1);transform:translateY(-2px)}
.pulse-lock b{display:block;font-size:20px}
.pulse-lock span{display:block;margin-top:3px;font-size:10.5px;color:#9beab3}
@media (max-width:420px){.pulse-4{grid-template-columns:repeat(2,1fr)}}

/* Profil de prudence */
.profile-bar{display:flex;align-items:center;gap:6px;margin:0 0 4px}
.profile-bar>span{color:#6f7d86;font-size:11px;margin-right:4px}
.pf{flex:1;padding:9px 6px;border:1px solid var(--edge);border-radius:11px;background:#0f1519;color:#a8b3ba;font-size:12px;font-weight:700;transition:.2s var(--ease)}
.pf:hover{border-color:#37505a;color:#dbe6ea}
.pf.on{border-color:rgba(93,222,138,.6);background:rgba(93,222,138,.12);color:#c9f7d8}
.profile-hint{margin:0 0 12px;color:#7f8c95;font-size:11.5px}

/* Scanner */
.scan-form{display:flex;gap:8px;margin:0 0 8px}
.scan-form input{flex:1;min-width:0;padding:14px 14px!important;margin:0!important;border:1px solid var(--edge)!important;border-radius:14px!important;background:#0f1519!important;color:var(--ink)!important;font-size:14px;transition:.2s}
.scan-form input:focus{outline:0;border-color:rgba(93,222,138,.6)!important;box-shadow:0 0 0 4px rgba(93,222,138,.08)}
.scan-form .cta{width:auto;padding:0 20px;white-space:nowrap}
.scan-quota{margin:0 0 12px;font-size:12px;color:var(--muted)}
.quota.pro{color:#9beab3}
.scan-name{margin:0;font-size:25px;font-weight:800;letter-spacing:-.6px}
.scan-result{margin-top:14px;max-width:760px}
.scan-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;padding:14px 16px;border:1px solid var(--edge);border-radius:16px;background:linear-gradient(135deg,#111a1c,#0e1316)}
.scan-cta b{display:block;font-size:14px}
.scan-cta span{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.pro-cta{border-color:rgba(93,222,138,.35);background:linear-gradient(135deg,rgba(93,222,138,.1),#0e1316)}
.ghost-btn{flex:0 0 auto;padding:10px 14px;border:1px solid var(--edge);border-radius:12px;background:#111a1e;color:#d8e2e7;font-size:12.5px;font-weight:700;transition:.2s var(--ease)}
.ghost-btn:hover{border-color:rgba(93,222,138,.5);color:#c9f7d8;transform:translateY(-1px)}

/* Analyse approfondie et coup d'œil sécurité (fiche) */
.deep{margin:14px 0;padding:16px;border:1px solid rgba(93,222,138,.28);border-radius:18px;background:radial-gradient(120% 90% at 100% 0%,rgba(93,222,138,.08),transparent 55%),#0e1416}
.deep-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.deep-head h3{margin:4px 0 0;font-size:16px}
.deep .dt-checks{margin:0}
.deep-blur{filter:blur(3.5px);opacity:.7;pointer-events:none;user-select:none;display:grid;gap:8px;margin-bottom:14px}
.deep-locked .cta{margin-top:2px}
.fiche-quick{margin:14px 0;padding:14px;border:1px solid var(--edge);border-radius:16px;background:var(--surface)}
.fiche-quick .split{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.fq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media (min-width:760px){.fq-grid{grid-template-columns:repeat(4,1fr)}}
.fq{padding:11px;border:1px solid var(--edge);border-radius:13px;background:#0b1013}
.fq small{display:block;margin-bottom:4px;color:#7f8c95;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.fq b{font-size:16px;font-weight:800}
.fq.good{border-color:rgba(93,222,138,.3)}.fq.good b{color:#aef2c4}
.fq.warn{border-color:rgba(228,188,105,.35)}.fq.warn b{color:#f3d891}
.fq.bad{border-color:rgba(255,119,136,.4)}.fq.bad b{color:#ffb3bd}

/* Bilan */
.rec-hero{margin:0 0 14px;padding:18px;border:1px solid rgba(93,222,138,.28);border-radius:20px;background:radial-gradient(120% 90% at 0% 0%,rgba(93,222,138,.1),transparent 55%),#0e1416}
.rec-hero h2{margin:0 0 6px;font-size:20px;letter-spacing:-.4px}
.rec-hero p{margin:0;color:#b7c1c7;font-size:13px;line-height:1.55}
.rec-wait{margin:0 0 14px;padding:16px;border:1px solid var(--edge);border-radius:18px;background:var(--surface)}
.rec-wait-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rec-wait-top b{font-size:22px;font-variant-numeric:tabular-nums}
.rec-wait p{margin:12px 0 0;color:#b7c1c7;font-size:13px;line-height:1.55}
.rec-wait .track,.checklist .track{height:6px;border-radius:9px;background:#1b252b!important;overflow:hidden}
.rec-wait .track i,.checklist .track i{display:block;height:100%;width:var(--c);border-radius:9px;background:linear-gradient(90deg,#3aa863,var(--ok))!important;animation:barGrow .9s var(--ease) both}
.rec-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}
@media (min-width:760px){.rec-grid{grid-template-columns:repeat(2,1fr)}}
.rec-card{padding:16px;border:1px solid var(--edge);border-radius:18px;background:var(--surface)}
.rec-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.rec-card small{color:var(--muted);font-size:11.5px}
.rec-big b{display:block;font-size:34px;font-weight:800;letter-spacing:-1px}
.rec-risk .rec-big b{color:#ffb3bd}.rec-ok .rec-big b{color:#aef2c4}
.rec-big span{color:var(--muted);font-size:12px}
.rec-lines{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.rec-lines small{display:block;font-size:10.5px}
.rec-lines b{font-size:15px}
.rec-list{margin:0 0 12px;padding:14px;border:1px solid var(--edge);border-radius:16px;background:var(--surface)}
.rec-list h3{margin:0 0 8px;font-size:13px}
.rec-list>div{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #1c262c;font-size:13px}
.rec-list>div:first-of-type{border-top:0}
.rec-list span{flex:1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-list em{font-style:normal;font-weight:800}
.rec-list em.up{color:var(--ok)!important}.rec-list em.down{color:var(--risk)!important}

/* Apprendre */
.learn-hero{margin:0 0 12px;padding:16px;border:1px solid rgba(228,188,105,.3);border-radius:18px;background:linear-gradient(135deg,rgba(228,188,105,.08),#0e1416)}
.learn-hero b{display:block;margin-bottom:4px;font-size:14px}
.learn-hero p{margin:0;color:#c2cbd0;font-size:13px;line-height:1.55}
.lesson-n{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:10px;border-radius:8px;background:rgba(93,222,138,.15);color:var(--ok);font-size:12px;font-weight:800}
.more>summary{justify-content:flex-start}
.more>summary::after{margin-left:auto}
.checklist{margin:14px 0;padding:16px;border:1px solid var(--edge);border-radius:18px;background:var(--surface)}
.checklist .split{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.checklist h3{margin:0;font-size:15px}
.check-count{font-size:13px;color:#9beab3}
.check-item{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-top:1px solid #1c262c;color:#c2cbd0;font-size:13px;line-height:1.45;cursor:pointer}
.check-item input{position:absolute;opacity:0;pointer-events:none}
.check-item span{flex:0 0 20px;width:20px;height:20px;margin-top:1px;border:1.5px solid #3a4a52;border-radius:7px;transition:.2s var(--ease)}
.check-item.on{color:#9aa6ad}
.check-item.on span{border-color:var(--ok);background:var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23062010' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}

/* Page « Plus » */
.more-grid{display:grid;gap:10px;margin-bottom:14px}
.more-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--edge);border-radius:18px;background:linear-gradient(160deg,#111a1c,#0d1215);color:inherit;text-align:left;transition:.25s var(--ease)}
.more-card:hover{transform:translateY(-2px);border-color:rgba(93,222,138,.4)}
.more-card>i{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:rgba(93,222,138,.12);color:var(--ok);font-style:normal;font-size:18px}
.more-card b{display:block;font-size:15px}
.more-card span{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.more-card>div{flex:1;min-width:0}
.more-card>div span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.more-card em{font-style:normal;color:var(--muted);font-size:18px}

/* Notifications */
.notify-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:16px;border:1px solid rgba(93,222,138,.3);border-radius:18px;background:linear-gradient(135deg,rgba(93,222,138,.09),#0e1416)}
.notify-card h3{margin:4px 0;font-size:15px}
.notify-card p{margin:0;color:#b7c1c7;font-size:12.5px;line-height:1.5}
.notify-card .cta,.notify-card .ghost-btn{flex:0 0 auto;width:auto}

/* Page Pro */
.pw{max-width:760px;margin:0 auto}
.pw-title{margin:8px 0 10px;font-size:32px;font-weight:800;letter-spacing:-1.2px;line-height:1.1}
.pw-title em{color:var(--ok);font-style:italic}
.pw-sub{margin:0 0 16px;color:#b7c1c7;font-size:14px;line-height:1.55}
.pw-price{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border:1px solid rgba(93,222,138,.4);border-radius:20px;background:radial-gradient(120% 90% at 100% 0%,rgba(93,222,138,.14),transparent 55%),#0e1416}
.pw-price b{display:block;margin:4px 0;font-size:28px;font-weight:800;letter-spacing:-.8px;color:#c9f7d8}
.pw-price small{color:var(--muted);font-size:11.5px}
.pw-price .cta{width:auto;flex:0 0 auto;padding:14px 20px}
.pw-note{margin:8px 2px 16px}
.pw-features{display:grid;gap:10px;margin:0 0 16px}
@media (min-width:760px){.pw-features{grid-template-columns:repeat(2,1fr)}}
.pw-features article{display:flex;gap:12px;padding:14px;border:1px solid var(--edge);border-radius:16px;background:var(--surface)}
.pw-features i{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:rgba(93,222,138,.13);color:var(--ok);font-style:normal;font-size:16px}
.pw-features b{display:block;font-size:14px}
.pw-features p{margin:3px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}
.pw-compare{margin:0 0 14px;border:1px solid var(--edge);border-radius:18px;background:var(--surface);overflow:hidden}
.pw-row{display:grid;grid-template-columns:1fr 84px 84px;align-items:center;gap:8px;padding:11px 14px;border-top:1px solid #1c262c;font-size:13px}
.pw-row:first-child{border-top:0}
.pw-row>span:first-child{color:#c2cbd0}
.pw-row>:not(:first-child){text-align:center}
.pw-head{background:#0b1013;font-size:12px}
.pw-head .pro{color:var(--ok)}
.pw-row .yes{color:var(--ok);font-weight:800}
.pw-row .no{color:#55636b}
.pw-row .lim{color:#f3d891;font-size:11.5px;font-weight:700}
.pw-trust{margin:0 0 14px;padding:16px;border:1px solid var(--edge);border-left:3px solid var(--ok);border-radius:0 16px 16px 0;background:var(--surface)}
.pw-trust b{display:block;margin-bottom:4px}
.pw-trust p{margin:0;color:#b7c1c7;font-size:13px;line-height:1.55}
.gate-proof{margin:0 0 14px;padding:9px 12px;border:1px solid rgba(255,119,136,.28);border-radius:12px;background:rgba(255,119,136,.07);color:#ffc7cd;font-size:12.5px}
.gate-proof b{color:#fff}

/* Barre du bas : 5 onglets, le Scanner au centre */
.tab-scan i{width:38px;height:38px;margin-top:-14px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#7df0a3,#4fd382);color:#062010!important;font-weight:800;box-shadow:0 8px 20px rgba(93,222,138,.35)}
.tab-scan.active i{filter:none!important;box-shadow:0 8px 26px rgba(93,222,138,.55)}
.tab-scan span{margin-top:2px}

/* ================= Finitions : bugs d'affichage + style « pro » ================= */
/* Cartes : jamais plus étroites que leur contenu (le cœur ne déborde plus). */
@media (min-width:760px){.token-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important}}
.tk-id small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-top .chip{flex:0 0 auto}
.tk-nums>div{min-width:0}
/* display:inline seul empêche l'ellipse de fonctionner : sans ça, un très
   grand nombre (variation à +148 147 %) passait à la ligne au milieu. */
.tk-nums b{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
/* display:inline-block sur un <td> le sortait de la mise en page du tableau
   (colonne mal alignée, cellule remontée en haut de la ligne au lieu de
   centrée comme ses voisines) : un <td> reste un <td>, juste avec une
   troncature propre si le texte est trop long. */
.ux-table td.change-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.tk-nums{grid-template-columns:minmax(0,1.3fr) minmax(0,1.1fr) minmax(0,1fr) 34px}

/* Favoris dont la paire a quitté le flux */
.fav-gone-list{display:grid;gap:8px;margin:0 0 12px}
.fav-gone{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px dashed #2f3d45;border-radius:14px;background:#0e1418}
.fav-gone div{flex:1;min-width:0}
.fav-gone b{display:block;font-family:ui-monospace,Consolas,monospace;font-size:13px}
.fav-gone small{color:var(--muted);font-size:11.5px}
.fav-gone .tk-fav{flex:0 0 34px}

/* ---------- Style : profondeur, lumière, mouvement ---------- */
html{scroll-behavior:smooth}
::selection{background:rgba(93,222,138,.28);color:#fff}
*{scrollbar-width:thin;scrollbar-color:#2a3840 transparent}
button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid rgba(93,222,138,.7);outline-offset:2px}

/* Titres : dégradé discret, plus « produit » */
/* Un titre en dégradé (background-clip:text) rend le texte plus flou sur
   beaucoup d'écrans Windows : on garde une couleur pleine, nette. */

/* Boutons principaux : reflet qui traverse, flèche qui avance, appui physique */
.cta,.onboard-next,.pw-price .cta{position:relative;overflow:hidden;transition:transform .2s var(--ease),box-shadow .3s var(--ease),filter .2s}
.cta::after,.onboard-next::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.38) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
.cta:hover::after,.onboard-next:hover::after{transform:translateX(120%);transition:transform .75s var(--ease)}
.cta:hover,.onboard-next:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(93,222,138,.38)}
.cta:active,.onboard-next:active{transform:translateY(0) scale(.97);box-shadow:0 4px 14px rgba(93,222,138,.3);transition-duration:.08s}
.cta span,.onboard-next span,.table-open{transition:transform .25s var(--ease)}
.cta:hover span,.onboard-next:hover span{transform:translateX(5px)}

/* Boutons secondaires, pastilles, filtres, tris */
.ghost-btn,.ghost,.seg,.pf,.sort,.source-button,.copy,.workspace-refresh,.link{transition:transform .2s var(--ease),border-color .2s,background .2s,color .2s,box-shadow .25s}
.ghost-btn:active,.ghost:active,.seg:active,.pf:active,.sort:active,.source-button:active,.copy:active,.workspace-refresh:active{transform:scale(.95);transition-duration:.07s}
.ghost-btn:hover,.ghost:hover,.source-button:hover,.copy:hover,.workspace-refresh:hover{box-shadow:0 6px 18px rgba(0,0,0,.35),0 0 0 1px rgba(93,222,138,.12)}
.workspace-refresh:hover{border-color:rgba(93,222,138,.5)}
.workspace-refresh:active{transform:scale(.95) rotate(-4deg)}
.seg.on{box-shadow:0 0 0 1px rgba(93,222,138,.12),0 6px 18px rgba(93,222,138,.12)}
.pf.on,.sort.on{animation:pop .3s var(--ease)}
@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:scale(1)}}

/* Navigation : l'onglet actif se remplit, les autres s'éclairent */
.workspace-tabs button{position:relative;transition:color .2s,background .25s var(--ease),transform .2s var(--ease)}
.workspace-tabs button:not(.selected):hover{background:rgba(255,255,255,.05);color:#fff;transform:translateY(-1px)}
.workspace-tabs button:active{transform:scale(.95)}
.workspace-tabs button.selected{box-shadow:0 4px 16px rgba(93,222,138,.22)}
.tabbar .tab{transition:transform .2s var(--ease),color .2s}
.tabbar .tab:active{transform:scale(.88)}

/* Cœur des favoris : petit rebond quand on l'active */
.tk-fav.on{animation:heartPop .45s var(--ease)}
@keyframes heartPop{0%{transform:scale(.7)}45%{transform:scale(1.35)}100%{transform:scale(1)}}
.tk-fav:active{transform:scale(.85)}

/* Cartes : liseré lumineux au survol, logo qui réagit */
.tk{background:linear-gradient(160deg,#121c1f 0%,#0c1114 72%);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 1px 0 rgba(0,0,0,.4)}
.tk .logo{transition:transform .35s var(--ease)}
.tk:hover .logo{transform:scale(1.08) rotate(-3deg)}
.tk-score .track i,.tk-score .track{transition:width .8s var(--ease)}

/* Tableau Explorer : ligne éclairée, flèche qui avance */
.ux-table tbody tr{transition:background .2s,box-shadow .25s}
.ux-table tbody tr:hover{background:linear-gradient(90deg,rgba(93,222,138,.07),transparent 70%);box-shadow:inset 3px 0 0 var(--ok)}
.ux-table tbody tr:hover .table-open{transform:translateX(3px);border-color:rgba(93,222,138,.55);color:#c9f7d8}
.ux-table tbody tr:active{background:rgba(93,222,138,.1)}

/* Compteurs : léger relief */
.pulse-row>div{transition:transform .25s var(--ease),border-color .25s;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.pulse-row>div:hover{transform:translateY(-2px);border-color:#33464f}

/* Accordéons « À savoir » : ouverture douce */
details.how{transition:border-color .2s}
details.how:hover{border-color:#33464f}
details.how[open]>div{animation:riseIn .35s var(--ease)}
details.how summary{transition:color .2s}

/* Chargement : squelettes qui brillent */
.skeleton{background:linear-gradient(100deg,#10171b 30%,#18232a 50%,#10171b 70%)!important;background-size:220% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-220% 0}}

/* Notifications toast et badges */
.chip{transition:transform .2s var(--ease),box-shadow .25s}
.chip-lock:hover{transform:scale(1.06);box-shadow:0 0 16px rgba(93,222,138,.25)}
.chip-ok{box-shadow:0 0 0 1px rgba(93,222,138,.1)}

@media (prefers-reduced-motion:reduce){
  .cta::after,.onboard-next::after{display:none}
  .pf.on,.sort.on,.tk-fav.on,.skeleton,details.how[open]>div{animation:none!important}
  html{scroll-behavior:auto}
}

/* ================= Relief 3D et animations ================= */
/* Cartes : profondeur réelle. Sans overflow:hidden, les éléments intérieurs
   peuvent « sortir » de la carte quand elle s'incline. */
.tk{overflow:visible;transform-origin:50% 60%}
.tk::after{border-radius:inherit}
.tk[data-tilt]{
  transform:perspective(900px) translateY(-4px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transform-style:preserve-3d;
  transition:transform .12s linear,border-color .25s,box-shadow .25s;
  box-shadow:0 26px 44px rgba(0,0,0,.5),0 0 0 1px rgba(var(--rgb),.18),inset 0 1px 0 rgba(255,255,255,.06)}
.tk[data-tilt]::after{background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.11),transparent 62%),radial-gradient(120% 90% at 0% 0%,rgba(var(--rgb),.12),transparent 55%)}
.tk .tk-top,.tk .tk-nums,.tk .tk-score,.tk .chip{transition:transform .3s var(--ease)}
.tk[data-tilt] .tk-top{transform:translateZ(9px)}
.tk[data-tilt] .tk-nums{transform:translateZ(6px)}
.tk[data-tilt] .tk-score{transform:translateZ(4px)}
.tk[data-tilt] .chip{transform:translateZ(5px)}
.legend-card,.pulse-row>div,.pw-features article,.gate,.pw-price,.price-panel{transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
.legend-card[data-tilt],.pulse-row>div[data-tilt],.pw-features article[data-tilt],.gate[data-tilt],.pw-price[data-tilt],.price-panel[data-tilt]{
  transform:perspective(900px) translateY(-3px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .12s linear,border-color .25s,box-shadow .25s;
  box-shadow:0 22px 40px rgba(0,0,0,.45),0 0 0 1px rgba(93,222,138,.14)}

/* Entrée en perspective : les cartes se redressent et se posent */
/* Les cartes apparaissent en fondu + léger glissement : un vrai effet 3D en
   rotation sur du texte le rend flou pendant l'animation. Le relief 3D reste
   réservé au survol (ci-dessus), qui est bref et volontaire. */
.view-enter .tk,.view-enter .legend-card{animation:riseIn .55s var(--ease) both;animation-delay:calc(var(--i,0)*45ms + 80ms)}
.view-enter .pulse-row>div{animation:riseIn .45s var(--ease) both}
.view-enter .pulse-row>div:nth-child(2){animation-delay:.05s}.view-enter .pulse-row>div:nth-child(3){animation-delay:.1s}.view-enter .pulse-row>div:nth-child(4){animation-delay:.15s}
.view-enter .ux-table tbody tr{animation:rowIn .5s var(--ease) both}
.view-enter .ux-table tbody tr:nth-child(1){animation-delay:.05s}.view-enter .ux-table tbody tr:nth-child(2){animation-delay:.09s}.view-enter .ux-table tbody tr:nth-child(3){animation-delay:.13s}.view-enter .ux-table tbody tr:nth-child(4){animation-delay:.17s}.view-enter .ux-table tbody tr:nth-child(5){animation-delay:.21s}.view-enter .ux-table tbody tr:nth-child(6){animation-delay:.25s}.view-enter .ux-table tbody tr:nth-child(7){animation-delay:.29s}.view-enter .ux-table tbody tr:nth-child(8){animation-delay:.33s}.view-enter .ux-table tbody tr:nth-child(n+9){animation-delay:.37s}
@keyframes rowIn{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}

/* Logo du token : retournement de pièce au survol */
.tk:hover .logo{transform:none;animation:coinFlip .8s var(--ease)}
@keyframes coinFlip{0%{transform:perspective(300px) rotateY(0)}100%{transform:perspective(300px) rotateY(360deg)}}

/* Pièce Pro qui tourne (page Radar réservé) */
.gate-mark{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b8ffd0,var(--ok) 55%,#2f9a58);box-shadow:0 0 34px rgba(93,222,138,.55),inset 0 -6px 10px rgba(0,0,0,.25),inset 0 4px 8px rgba(255,255,255,.45);animation:coinSpin 5.5s ease-in-out infinite}
@keyframes coinSpin{0%{transform:perspective(420px) translateY(0) rotateY(0)}50%{transform:perspective(420px) translateY(-7px) rotateY(180deg)}100%{transform:perspective(420px) translateY(0) rotateY(360deg)}}
.pro-orbit{animation:coinSpin 7s ease-in-out infinite}

/* Grille en perspective qui défile derrière le contenu : s'arrête vers le
   milieu de la page et devient de plus en plus floue en s'approchant de ce
   point (trois calques du même motif, chacun plus flou et masqué plus bas
   que le précédent, pour simuler une profondeur de champ). */
.grid-floor{position:absolute;left:-45%;right:-45%;top:0;height:56vh;pointer-events:none;z-index:0;overflow:hidden}
.grid-floor i{position:absolute;inset:0;display:block;font-style:normal;
  background-image:linear-gradient(rgba(93,222,138,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(93,222,138,.13) 1px,transparent 1px);
  background-size:46px 46px;transform-origin:50% 0;transform:perspective(440px) rotateX(62deg);
  animation:gridFlow 4s linear infinite}
.grid-floor i:nth-child(1){opacity:.5;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 35%,transparent 55%);mask-image:linear-gradient(180deg,#000 0%,#000 35%,transparent 55%)}
.grid-floor i:nth-child(2){opacity:.5;filter:blur(3px);-webkit-mask-image:linear-gradient(180deg,transparent 25%,#000 45%,#000 65%,transparent 80%);mask-image:linear-gradient(180deg,transparent 25%,#000 45%,#000 65%,transparent 80%)}
.grid-floor i:nth-child(3){opacity:.45;filter:blur(9px);-webkit-mask-image:linear-gradient(180deg,transparent 55%,#000 75%,transparent 100%);mask-image:linear-gradient(180deg,transparent 55%,#000 75%,transparent 100%)}
@keyframes gridFlow{from{transform:perspective(440px) rotateX(62deg) translateY(0)}to{transform:perspective(440px) rotateX(62deg) translateY(46px)}}

/* Boutons principaux « touches » en relief */
.cta,.onboard-next{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 4px 0 #2b8f52,0 14px 26px rgba(93,222,138,.28)}
.cta:hover,.onboard-next:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 6px 0 #2b8f52,0 20px 34px rgba(93,222,138,.4)}
.cta:active,.onboard-next:active{transform:translateY(4px) scale(.99);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 0 #2b8f52,0 5px 12px rgba(93,222,138,.25);transition-duration:.06s}
.cta[disabled]{box-shadow:none;transform:none}

/* Onde au clic */
.cta,.onboard-next,.ghost-btn,.ghost,.seg,.pf,.sort,.source-button,.copy,.workspace-refresh,.workspace-tabs button{position:relative;overflow:hidden}
.ripple{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.4),rgba(93,222,138,.18) 45%,transparent 70%);transform:scale(0);opacity:.9;pointer-events:none;animation:ripple .7s var(--ease) forwards}
@keyframes ripple{to{transform:scale(1);opacity:0}}

/* Barres de confiance : un reflet les traverse */
.tk-score.sc-high .track,.tk-score.sc-mid .track{position:relative}
.tk-score.sc-high .track::after,.tk-score.sc-mid .track::after{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);transform:translateX(-120%);animation:barSweep 3.6s ease-in-out infinite}
.token-grid>.tk:nth-child(2n) .track::after{animation-delay:-.9s}.token-grid>.tk:nth-child(3n) .track::after{animation-delay:-1.8s}.token-grid>.tk:nth-child(5n) .track::after{animation-delay:-2.7s}
@keyframes barSweep{0%{transform:translateX(-120%)}55%,100%{transform:translateX(330%)}}

/* Pastilles de statut vivantes */
.chip-wait i{animation:spinSlow 7s linear infinite}
.chip-risk i{animation:blink 1.8s ease-in-out infinite}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes blink{50%{opacity:.45}}

/* Point « en direct » : onde qui s'étend */
.live-pill i{position:relative}
.live-pill:not(.warn) i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(93,222,138,.6);animation:liveRing 2s ease-out infinite}
@keyframes liveRing{from{transform:scale(.6);opacity:.9}to{transform:scale(2.4);opacity:0}}

/* Prix : la valeur qui vient de bouger « claque » */
.flash-up,.flash-down{display:inline-block;transform-origin:left center}
.flash-up{animation:flashUp .9s var(--ease)}.flash-down{animation:flashDown .9s var(--ease)}

/* Alertes et lignes de liste : glissement à l'arrivée */
.view-enter .alert,.view-enter .fav-gone,.view-enter .scan-cta,.view-enter .notify-card{animation:rowIn .5s var(--ease) both}

@media (prefers-reduced-motion:reduce){
  .grid-floor i,.gate-mark,.pro-orbit,.tk-score .track::after,.live-pill i::after,.chip-wait i,.chip-risk i,.ripple{animation:none!important}
  .tk[data-tilt],.legend-card[data-tilt],.pulse-row>div[data-tilt]{transform:none}
  .view-enter .tk,.view-enter .legend-card,.view-enter .pulse-row>div,.view-enter .ux-table tbody tr{animation:none}
}
@media (hover:none){.grid-floor{opacity:.7}}

/* ---------- Bilan du jour ---------- */
.rc-list,.rc-hours-card{margin:0 0 12px;padding:14px;border:1px solid var(--edge);border-radius:18px;background:linear-gradient(160deg,#111a1c,#0d1215)}
.rc-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.rc-list-head h3{margin:0;font-size:14px}
.rc-list-head small{color:var(--muted);font-size:11px;text-align:right}
.rc-row{display:flex;align-items:center;gap:11px;width:100%;padding:9px 6px;border:0;border-top:1px solid #1c262c;border-radius:10px;background:transparent;color:inherit;text-align:left;text-decoration:none;font-family:inherit;cursor:pointer;transition:background .2s,transform .2s var(--ease)}
.rc-row:first-of-type{border-top:0}
.rc-row:hover{background:rgba(93,222,138,.06);transform:translateX(3px)}
.rc-rank{flex:0 0 18px;color:#6f7d86;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.rc-id{flex:1;min-width:0}
.rc-id b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-id small{display:block;margin-top:2px;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-row em{flex:0 0 auto;font-style:normal;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.rc-row em.up{color:var(--ok)}.rc-row em.down{color:var(--risk)}.rc-row em.flat{color:var(--ink)}
.rc-hours{display:grid;grid-template-columns:repeat(24,1fr);align-items:end;gap:3px;height:96px;padding-top:6px}
.rc-hours i{display:block;height:var(--h);min-height:2px;border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,#3aa863,#1f5a37);transform-origin:bottom;transition:filter .2s,transform .2s var(--ease)}
.rc-hours i.peak{background:linear-gradient(180deg,#9df5bd,var(--ok));box-shadow:0 0 14px rgba(93,222,138,.45)}
.rc-hours i.future{background:#1a242a}
.rc-hours i:hover{filter:brightness(1.3);transform:scaleY(1.06)}
.view-enter .rc-hours i{animation:barUp .7s var(--ease) both}
@keyframes barUp{from{transform:scaleY(0)}}
.rc-hours-axis{display:flex;justify-content:space-between;margin-top:6px;color:#6f7d86;font-size:10.5px}
.rc-note{margin:0 0 12px;text-align:center}
.view-enter .rc-list,.view-enter .rc-hours-card,.view-enter .rec-hero{animation:rowIn .5s var(--ease) both}
@media (min-width:760px){.rc-list{display:block}}
.rc-num{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.rc-num small{font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
.rc-num.up small{color:#8fdcae}
.rc-num small.rc-neon{margin-top:2px;color:#7dffb0;font-size:11px;font-weight:800;text-shadow:0 0 5px #7dffb0,0 0 12px rgba(93,222,138,.85),0 0 22px rgba(93,222,138,.5);animation:rcNeonPulse 1.8s ease-in-out infinite}
@keyframes rcNeonPulse{0%,100%{opacity:1}50%{opacity:.72}}

/* Pic le plus haut (fiche) */
.peak-card .fq-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.fq em{display:block;margin-top:3px;font-style:normal;color:var(--muted);font-size:11px;line-height:1.3;font-weight:500}
.pk-bar{position:relative;height:8px;margin:14px 0 6px;border-radius:9px;background:#1b252b;overflow:hidden}
.pk-bar i{display:block;height:100%;width:var(--c);border-radius:9px;background:linear-gradient(90deg,#b34a58,#e4bc69 55%,var(--ok));animation:barGrow .9s var(--ease) both}
.pk-axis{display:flex;justify-content:space-between;color:#6f7d86;font-size:10.5px;margin-bottom:8px}
@media (max-width:520px){.peak-card .fq-grid{grid-template-columns:1fr 1fr}.peak-card .fq:first-child{grid-column:1/-1}}

/* Le graphique DEX Screener n'a plus d'écran de chargement à nous : juste
   l'iframe, comme au tout début (voir marketChart dans app.js). */

/* Flamme : un token qui décolle vraiment, visible partout où il apparaît */
.is-hot{color:#ffb15a!important;text-shadow:0 0 12px rgba(255,177,90,.35)}
.tk-nums .is-hot,.ux-table .is-hot{animation:hotPulse 1.6s ease-in-out infinite}
@keyframes hotPulse{50%{opacity:.72}}
@media (prefers-reduced-motion:reduce){.tk-nums .is-hot,.ux-table .is-hot{animation:none}}

/* Carte « content de te revoir » */
.welcome-back{position:relative;display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;padding:15px 40px 15px 15px;border:1px solid rgba(93,222,138,.3);border-radius:16px;background:radial-gradient(120% 140% at 0% 0%,rgba(93,222,138,.1),transparent 60%),var(--surface)}
.welcome-back .wb-icon{flex:0 0 auto;font-size:22px;line-height:1}
.welcome-back b{color:var(--ink)}
.welcome-back p{margin:4px 0 8px;color:#b7c1c7;font-size:12.5px;line-height:1.5}
.welcome-back .link{padding:0;font-size:12px;font-weight:700}
.wb-close{position:absolute;top:10px;right:10px;width:26px;height:26px;border:0;border-radius:8px;background:transparent;color:#6f7d86;font-size:13px;transition:.2s}
.wb-close:hover{background:#182126;color:#dbe6ea}
.view-enter .welcome-back{animation:riseIn .5s var(--ease) both}

/* ================= Bandeau défilant « Ça monte » ================= */
.market-ticker{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:0 0 0 12px;border:1px solid rgba(255,177,90,.25);border-radius:12px;background:linear-gradient(90deg,rgba(255,177,90,.09),transparent 60%),#0e1215;overflow:hidden;position:relative}
.market-ticker[hidden]{display:none}
.ticker-label{flex:0 0 auto;padding:9px 0;color:#ffb15a;font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.market-ticker::after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;background:linear-gradient(90deg,transparent,#0e1215);pointer-events:none}
.ticker-track{display:flex;align-items:center;gap:26px;padding:9px 20px 9px 14px;border-left:1px solid rgba(255,177,90,.18);white-space:nowrap;animation:tickerScroll 32s linear infinite}
.market-ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tickerScroll{to{transform:translateX(-50%)}}
.ticker-item{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;color:inherit;text-decoration:none;font-size:12.5px;cursor:pointer}
.ticker-item i{font-size:11px}
.ticker-item b{color:var(--ink);font-weight:700}
.ticker-item .change-value{font-weight:700}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none;overflow-x:auto}}
@media (max-width:520px){.ticker-label{display:none}}

/* Badge « créateur récidiviste » */
.chip-serial{color:#f0cf84;background:rgba(228,188,105,.13);border-color:rgba(228,188,105,.4)}
.tk-serial{margin:8px 0 0}
.tk-serial .chip{width:100%;justify-content:center}
.rt-serial{color:#f0cf84;font-weight:700}

/* Bilan : ligne d'outils (jours + export) */
.rc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.rc-toolbar .chips{margin:0}
.rc-export{flex:0 0 auto}

/* ================= Rafraîchissement visuel : moins sombre, moins mono-vert ================= */
/* Un ami a trouvé le site monotone et fatigant pour les yeux : fond un peu
   moins noir (moins de contraste brutal avec le texte clair), une seconde
   couleur d'accent (bleu) pour tout ce qui est « navigation », en gardant le
   vert uniquement pour ce qui veut vraiment dire « positif / confirmé ». */
:root{--surface:#131920;--edge:#242d36;--ink:#f5f8fa;--muted:#9aa7b2;--accent2:#6fb3ff}
body,body[style]{background:#0a0e13!important}
.phone-shell{background:radial-gradient(ellipse 90% 42% at 50% -5%,#1b2a29 0%,#0d1217 47%,#0a0e13 100%)!important}
@media (min-width:760px){body{background:radial-gradient(circle at 50% -15%,#1a2924 0,#0a0e13 48%,#080b0f 100%)!important}}
.card,.stat,.live-chart,.proof-card,.live-limit,.research-metrics>div,.catalog-summary div,.alert-summary,.hero-score,.token-card,.tk,.rc-list,.rc-hours-card,.welcome-back,.notify-card,.pulse-row>div{background-color:#141b22}
.tk{background:linear-gradient(160deg,#151d24 0%,#10151b 72%)}

/* Deuxième accent : navigation et repères neutres, pas « ça monte » */
.brand img{filter:drop-shadow(0 0 12px rgba(111,179,255,.4))}
.workspace-tabs button.selected{background:linear-gradient(135deg,#eaf4ff,#cfe6ff)!important;color:#0b2036!important}
.workspace-tabs button.pro-tab{color:#8fd0ff!important}
.tab.active{color:var(--accent2)!important}
.tab.active i{text-shadow:0 0 13px rgba(111,179,255,.5)!important}
.tab-scan i{background:linear-gradient(135deg,#9ecbff,#5ea6f5)!important;color:#08223f!important;box-shadow:0 8px 20px rgba(111,179,255,.35)!important}
.live-pill:not(.warn){border-color:rgba(111,179,255,.3);background:rgba(111,179,255,.08);color:#bfe0ff}
.live-pill:not(.warn) i{background:var(--accent2)}
.live-pill:not(.warn) i::after{border-color:rgba(111,179,255,.6)}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(111,179,255,.55)}70%{box-shadow:0 0 0 8px rgba(111,179,255,0)}100%{box-shadow:0 0 0 0 rgba(111,179,255,0)}}
.eyebrow,.guide-number{color:#8fcaff!important}
.ticker-label{color:#ffb15a}

/* Texte plus lisible sur fond sombre */
.sub,.profile-hint,.fine{color:#a7b2bb}
.workspace-account small,.workspace-badge{color:#a7b2bb!important}

@media (prefers-reduced-motion:reduce){.brand img{filter:none}}

/* Prix compact (DEX Screener / Birdeye) : le compte de zeros en indice */
.price sub,.dt-price sub{font-size:.62em;opacity:.75;bottom:-.15em}

/* Barre de concentration des détenteurs (inspirée de Bubblemaps) */
.holderbar{margin:0 0 16px}
.holderbar-track{display:flex;height:14px;border-radius:8px;overflow:hidden;background:#182126;border:1px solid var(--edge)}
.holderbar-fill{display:block;height:100%;width:var(--w);transition:width .6s var(--ease)}
.holderbar-fill.ok{background:linear-gradient(90deg,#3aa863,var(--ok))}
.holderbar-fill.warn{background:linear-gradient(90deg,#b48a2c,var(--wait))}
.holderbar-fill.bad{background:linear-gradient(90deg,#b34a58,var(--risk))}
.holderbar-labels{display:flex;justify-content:space-between;margin-top:7px;font-size:11.5px;color:var(--muted)}
.holderbar-labels b{font-size:13px}
.hb-top.ok b{color:var(--ok)}.hb-top.warn b{color:var(--wait)}.hb-top.bad b{color:var(--risk)}

/* ================= Police : le site tournait en Arial sur Windows ================= */
/* L'ancienne pile ("-apple-system, SF Pro...") ne donne rien sur Windows : le
   navigateur retombe sur Arial, d'où l'impression de police fade. 'Schibsted Grotesk' est
   deja charge (styles.css) ; Space Grotesk est ajoute pour les titres, plus
   type, coherent avec le reste du design (utilise aussi dans la pub 20s). */
body,button,input,textarea,select{font-family:'Schibsted Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif!important;font-variant-numeric:tabular-nums}
.h1,.pg-head h1,.wordmark,.brand,.s7 h2,.rc-num em,.radial b,.radarfoot b,.dt-price .price,.tk-nums b.price,.market-price .price{font-family:'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;letter-spacing:-.02em}

/* ================= Un peu de vrai relief 3D, mais jamais sur du texte ================= */
/* Le logo tourne en continu comme une pastille radar - aucune lettre dedans,
   donc aucun risque de flou pendant la rotation. */
.brand img{display:inline-block;transform-style:preserve-3d;animation:brandSpin3d 7s ease-in-out infinite}
@keyframes brandSpin3d{
  0%,100%{transform:perspective(200px) rotateY(0deg)}
  25%{transform:perspective(200px) rotateY(28deg)}
  50%{transform:perspective(200px) rotateY(0deg)}
  75%{transform:perspective(200px) rotateY(-28deg)}
}
/* Anneau de confiance (fiche token) : le tangage 3D touche seulement le
   cercle SVG, jamais le <b> du chiffre a l'interieur (sinon le chiffre se
   floute pendant le mouvement, exactement le probleme corrige plus tot). */
.ring svg{transform-style:preserve-3d;animation:ringTilt3d 5s ease-in-out infinite}
@keyframes ringTilt3d{
  0%,100%{transform:perspective(300px) rotateX(0deg) rotateY(0deg)}
  50%{transform:perspective(300px) rotateX(10deg) rotateY(12deg)}
}
/* Logos de token dans les cartes : un peu plus de relief au survol qu'avant,
   toujours confine a l'icone (jamais au nom ni au prix). */
.tk:hover .logo{animation:coinFlip3d .9s var(--ease)}
@keyframes coinFlip3d{
  0%{transform:perspective(260px) rotateY(0) translateZ(0)}
  45%{transform:perspective(260px) rotateY(200deg) translateZ(14px) scale(1.08)}
  100%{transform:perspective(260px) rotateY(360deg) translateZ(0) scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .brand img,.radial{animation:none!important}
  .tk:hover .logo{animation:none!important}
}

/* ================= Verre liquide : essai visuel ================= */
/* Les deux formes d'ambiance (a1/a2) servent maintenant de source de couleur
   pour l'effet de verre : elles bougent lentement derrière les cartes, qui
   les floutent via backdrop-filter. Contenues par overflow:hidden sur
   .phone-shell, donc aucun risque de scroll horizontal. */
.ambient{display:block!important;opacity:.6!important;filter:none!important;mix-blend-mode:screen;animation:liquidDrift 19s ease-in-out infinite alternate}
.a1{width:640px!important;height:640px!important;top:-200px!important;right:-280px!important;background:radial-gradient(circle at 40% 40%,rgba(184,255,87,.4),rgba(79,211,130,.15) 50%,transparent 78%)!important}
.a2{width:580px!important;height:580px!important;bottom:-200px!important;left:-260px!important;background:radial-gradient(circle at 60% 40%,rgba(111,179,255,.34),rgba(47,111,176,.13) 50%,transparent 78%)!important;animation-duration:24s;animation-delay:-7s}
@keyframes liquidDrift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(26px,-30px) scale(1.12)}100%{transform:translate(-20px,16px) scale(.95)}}

@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .card,.stat,.tk,.token-card,.hero-score,.rc-list,.rc-hours-card,.welcome-back,.notify-card,
  .pulse-row>div,.research-metrics>div,.catalog-summary div,.alert-summary,.live-chart,.proof-card,
  .live-limit,.pw-price,.pw-features article,.rec-card,.rec-hero,.rec-wait,.rec-list,.gate,
  .price-panel,.deep,.fiche-quick,.fq,.more,.how,.checklist,.scan-cta,.dt-verdict,.dt-grid>div,.ck,
  .plan,.premium,.more-card,.provider-strip,.research-queue,.pro-preview,.value-statement,
  .research-trace,.account-journey>div,.confidence-method-locked,.radar-pro-hero,.radar-lock-card,
  .radar-pro-benefits>div,.gate-preview>div{
    background:linear-gradient(155deg,rgba(255,255,255,.07),rgba(255,255,255,.015) 60%),rgba(12,17,20,.5)!important;
    -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
    border-color:rgba(255,255,255,.09)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 0 1px rgba(255,255,255,.02),0 10px 30px rgba(0,0,0,.35)!important;
  }
  .tabbar{background:rgba(9,12,16,.5)!important;-webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 -14px 40px rgba(0,0,0,.4)}
  .lang-switch{background:rgba(255,255,255,.05)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .advice-pill{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .avatar{background:rgba(255,255,255,.06)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .search,.scan-form input{-webkit-backdrop-filter:blur(14px)!important;backdrop-filter:blur(14px)!important}
}

/* Reflet de verre : lumière posée en haut à gauche des cartes (jamais sur
   .tk/.token-card, dont les ::before/::after servent déjà à l'accent et au
   halo qui suit le curseur). */
.card,.stat,.hero-score,.rec-card,.rec-hero,.plan,.more-card,.pw-price{position:relative}
.card::before,.stat::before,.hero-score::before,.rec-card::before,.rec-hero::before,.plan::before,.more-card::before,.pw-price::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(130px 95px at 15% 0%,rgba(255,255,255,.10),transparent 65%)
}

/* Boutons : calotte de verre en haut, comme posée sur un liquide. */
.cta,.onboard-next{position:relative}
.cta::before,.onboard-next::before{
  content:"";position:absolute;left:6%;right:6%;top:2px;height:42%;pointer-events:none;
  border-radius:999px 999px 60% 60%/100% 100% 14% 14%;
  background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,0));opacity:.85
}

@media (prefers-reduced-motion:reduce){.ambient{animation:none!important}}

/* Cartes token sur mobile : la barre de confiance suffit, le badge
   "Risque"/"Confirmée" dans le coin encombre la carte sans rien ajouter. */
@media (max-width:759px){.tk-top .chip{display:none}.tk::before,.tk::after{display:none}}

/* Sur mobile, les mêmes tailles de halo qu'en desktop couvraient tout
   l'écran (640px de large sur un téléphone de 375px) et noyaient la grille
   3D dessous : ici ils reprennent leur rôle de simple lueur de coin, comme
   prévu, et la grille redevient lisible par-dessus. */
@media (max-width:759px){
  .a1{width:260px!important;height:260px!important;top:-70px!important;right:-110px!important}
  .a2{width:220px!important;height:220px!important;bottom:-80px!important;left:-90px!important}
  .ambient{opacity:.45!important}
}

/* Plus humain : même direction, moins de « template » (moins de brillance, moins de halo, rayons moins uniformes) */
.cta::before{display:none!important}
.cta,.scan-cta{box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 14px -8px rgba(0,0,0,.6)!important;background:linear-gradient(180deg,#86f2ab,#45d17f)!important;border-radius:14px!important;font-weight:700}
.cta:active,.scan-cta:active{transform:translateY(1px)}
.gate-mark{box-shadow:none!important;filter:none!important}
.card,.token-card,.legend-card,.stat,.proof-card,.gate,.premium,.rec-hero,.rc-hours-card{border-radius:16px!important}
.stat-grid .stat,.pulse-row>*{border-radius:12px!important}
.chip,.live-pill,.advice-pill,.workspace-badge{border-radius:8px!important}
.pg-head h1{letter-spacing:-.035em}
.live-pill,.advice-pill{box-shadow:none!important}

/* Signature LaunchRadar : même ambiance, mais des détails qu'on ne voit pas ailleurs (thème radar / viseur) */
.pg-head h1,.brand,.gate h2,.rec-hero h2,.learn-hero h2{font-family:'Bricolage Grotesque','Schibsted Grotesk',sans-serif!important;font-weight:800!important;letter-spacing:-.03em!important}
/* règle graduée sous les titres de page, comme l'échelle d'un écran radar */
.pg-head{position:relative;padding-bottom:16px!important}
.pg-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:7px;opacity:.55;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(93,222,138,.75) 0 1px,transparent 1px 8px),
             repeating-linear-gradient(90deg,rgba(93,222,138,.9) 0 1px,transparent 1px 40px);
  background-size:100% 4px,100% 7px;background-repeat:no-repeat;background-position:0 100%,0 100%;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 85%);mask-image:linear-gradient(90deg,#000,transparent 85%)}
/* cartes de tokens : coins de viseur au lieu d'un simple cadre */
.token-card,.legend-card{position:relative}
.token-card::before,.legend-card::before{content:"";position:absolute;inset:7px;pointer-events:none;border-radius:8px;opacity:.5;
  background:
   linear-gradient(#5dde8a,#5dde8a) top left/10px 1.5px no-repeat,linear-gradient(#5dde8a,#5dde8a) top left/1.5px 10px no-repeat,
   linear-gradient(#5dde8a,#5dde8a) bottom right/10px 1.5px no-repeat,linear-gradient(#5dde8a,#5dde8a) bottom right/1.5px 10px no-repeat}
.brand>span>span{font-style:normal}
@media (max-width:759px){.pg-head::after{opacity:.4}}

/* « En clair » sur la fiche token */
.plain-read{margin:14px 0;padding:16px 18px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.1);border-left:3px solid #5dde8a;background:rgba(255,255,255,.03)}
.plain-read h3{margin:0 0 8px;font:800 15px 'Bricolage Grotesque','Schibsted Grotesk',sans-serif;letter-spacing:-.01em}
.plain-read ul{margin:0;padding:0;list-style:none;display:grid;gap:7px}
.plain-read li{font-size:14px;line-height:1.5;color:#dbe4de;padding-left:14px;position:relative}
.plain-read li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:#5dde8a;opacity:.8}
.plain-read p{margin:10px 0 0;font-size:12px;color:#8f9b95}

/* Fini les petites phrases en police « terminal » majuscule : elles font tout de suite « généré ». On les écrit en texte normal. */
.workspace-account small,.workspace-badge,.eyebrow,small.eyebrow,.token-symbol,.token-source,.chart-live,.research-check-state,.proof,.chips-label,.sorts>span,.rc-note,label,.fine{
  font-family:'Schibsted Grotesk',system-ui,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
.workspace-badge{font-size:11px!important;font-weight:700!important}
.eyebrow,small.eyebrow{font-size:12px!important;font-weight:700!important;color:#8fe6ae!important}
.workspace-account small{font-size:12px!important;color:#9aa8a1!important}
.research-check-state{font-weight:700!important}

/* Outil « Impact d'un achat » */
.impact-tool{margin:14px 0;padding:16px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.impact-tool h3{margin:0 0 4px;font:800 15px 'Bricolage Grotesque','Schibsted Grotesk',sans-serif;letter-spacing:-.01em}
.impact-tool>p{margin:0 0 12px;font-size:13px;line-height:1.45;color:#9aa8a1}
.im-row{display:grid;grid-template-columns:72px 1fr 64px;align-items:center;gap:10px;margin:8px 0;font-size:14px}
.im-row span{font-weight:700}.im-row em{font-style:normal;text-align:right;font-weight:700}
.im-row i{display:block;height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.im-row i b{display:block;height:100%;min-width:3px;border-radius:99px;background:#5dde8a}
.im-row.mid i b{background:#ffbb69}.im-row.high i b{background:#ff7582}
.im-row.mid em{color:#ffbb69}.im-row.high em{color:#ff7582}
.im-custom{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:#9aa8a1}
.im-custom input{width:110px;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:inherit;font:inherit}
.im-actions{margin-top:14px}

#view p,#view li,.plain-read,.plain-read *,.impact-tool,.impact-tool *{font-family:'Schibsted Grotesk',system-ui,sans-serif!important}
.plain-read h3,.impact-tool h3{font-family:'Bricolage Grotesque','Schibsted Grotesk',sans-serif!important}

/* Les chiffres alignés en colonnes élargissaient aussi les points et les deux-points des phrases : on ne les garde que sur les vrais chiffres. */
html body{font-variant-numeric:normal!important}
#view p,#view li,#view small,.plain-read *,.impact-tool>p{font-variant-numeric:normal!important}
.metric b,.price-value,.market-price,.price,.change-value,.rc-num,.cell-score,.im-row span,.im-row em,.stat b,.market-table td{font-variant-numeric:tabular-nums!important}

/* Petites lignes secondaires (symbole · ancienneté) : plus grandes et plus claires */
.token-symbol,.token-head small,.market-token small,.legend-card small{font-size:12.5px!important;color:#b4c0ba!important;font-weight:500!important;opacity:1!important}
.tk .token-symbol{font-size:13px!important}

.tk-id small,.tk small{font-size:13px!important;color:#c3cec8!important;font-weight:500!important}
.tk .tk-id b,.tk-id>b{font-size:16px}

/* Tableau Explorer : la colonne du nom ne doit jamais s'écraser (les logos restaient seuls, sans nom ni symbole) */
.ux-table .market-table th:first-child,.ux-table .market-table td:first-child{min-width:215px}
.ux-table .market-token{min-width:190px!important}
.ux-table .market-token b,.ux-table .market-token small{max-width:150px}
.ux-table .market-table th,.ux-table .market-table td{padding:0 8px}
@media (min-width:760px) and (max-width:1100px){.ux-table .market-table th:nth-child(4),.ux-table .market-table td:nth-child(4){display:none}}

/* Repli sous le graphique DEX Screener */
.dexscreener-chart>.token-source{display:none}
.chart-fallback{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;justify-content:space-between;margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04)}
.chart-fallback p{margin:0;font-size:13.5px;line-height:1.45;color:#c3cec8;flex:1 1 260px}
.chart-fallback p b{display:block;color:#eaf3ee;font-size:14px}
.chart-fallback .cta{flex:0 0 auto;padding:11px 16px;font-size:14px;text-decoration:none;text-align:center}
.chart-fallback.slow{border-color:rgba(255,187,105,.6);background:rgba(255,187,105,.09)}
.chart-fallback.slow p b{color:#ffcf95}
@media (max-width:759px){.chart-fallback .cta{width:100%}}

/* Fiche : sections repliées */
.fold-label{margin:22px 4px 8px;font:800 15px 'Bricolage Grotesque','Schibsted Grotesk',sans-serif;color:#c3cec8;letter-spacing:-.01em}
.fold-more{margin:8px 0;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden}
.fold-more>summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:700;font-size:14.5px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#eaf3ee}
.fold-more>summary::-webkit-details-marker{display:none}
.fold-more>summary::after{content:"+";font-size:20px;font-weight:500;color:#8fe6ae;line-height:1}
.fold-more[open]>summary::after{content:"–"}
.fold-more>section{margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;border-top:1px solid rgba(255,255,255,.08)!important}
.fold-more>section>.split:first-child,.fold-more>section>h3:first-child{display:none}

/* Fiche : espacements plus propres, résumé et simulateur plus compacts */
.advice-pill{margin:0 0 14px!important}
.detail-head+.advice-pill{margin-top:10px!important}
.advice-pill+.stat-grid{margin-top:4px}
.stat-grid+.dt-links{margin-top:12px}
.dt-links{margin-bottom:12px}
.plain-read{padding:12px 14px 10px!important;margin:12px 0!important}
.plain-read h3{font-size:14px!important;margin-bottom:6px!important}
.plain-read li{font-size:13px!important;line-height:1.45!important}
.plain-read ul{gap:5px!important}
.plain-read p{font-size:11.5px!important;margin-top:8px!important}
.impact-tool{padding:12px 14px!important;margin:12px 0!important}
.impact-tool h3{font-size:14px!important}
.impact-tool>p{font-size:12.5px!important;margin-bottom:8px!important}
.impact-tool .im-row{margin:5px 0!important;font-size:13px!important}
.impact-tool .im-custom{margin-top:8px!important}
.impact-tool .im-actions{margin-top:10px!important}

/* Chiffres des cartes : pas de chasse fixe (elle écartait les points : « $64 . 6K »), libellés en police normale */
.stat b,.fiche-quick b,.metric b,.stat strong,.pk-bar b,.price-value{font-variant-numeric:normal!important;font-feature-settings:normal!important}
.stat label,.fiche-quick label,.stat>span,.fiche-quick>div>span,.metric label,.peak-card label{font-family:'Schibsted Grotesk',system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important;font-size:12.5px!important}
.stat b,.fiche-quick b{font-family:'Schibsted Grotesk',system-ui,sans-serif!important;font-weight:800!important}
@media (max-width:759px){.stat-grid .stat:last-child:nth-child(odd){grid-column:1/-1}}

/* ---------- Téléphone : plein écran, tout visible sans défiler inutilement, vert plus doux ---------- */
@media (max-width:759px){
  .phone-shell{width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:12px 16px 92px!important;min-height:100vh!important}
  #view,.market-mobile-catalog,.token-grid,.more-list{width:100%;max-width:100%}
  .pg-head h1{font-size:34px!important}
  .pg-head p{font-size:14px!important}
  .pg-head-right{gap:8px!important}

  /* Radar réservé à Pro : la page entière tient à l'écran, le bouton est visible sans défiler */
  .gate{padding:16px 16px 14px!important;margin-top:8px!important}
  .gate-mark{width:46px!important;height:46px!important;margin:0 auto 8px!important;font-size:20px!important;background:linear-gradient(145deg,#4f9a72,#2f6f52)!important;box-shadow:none!important;color:#eafff2!important}
  .gate h2,.gate h3{font-size:22px!important;margin:4px 0 10px!important}
  .gate-list{gap:8px!important;margin:0 0 10px!important}
  .gate-list li{font-size:14px!important;line-height:1.3!important;gap:10px!important}
  .gate-list li i{width:22px!important;height:22px!important;flex:0 0 22px;font-size:12px!important;background:rgba(93,222,138,.10)!important;color:#a9e8c0!important;border:1px solid rgba(93,222,138,.25)!important}
  .gate-preview{margin:6px 0 10px!important;gap:6px!important;max-height:98px;overflow:hidden}
  .gate-preview>*:nth-child(n+3){display:none!important}
  .gate .cta{width:100%;padding:13px 16px!important;font-size:15px!important;background:linear-gradient(180deg,#6dc793,#3f9f6c)!important;color:#06200f!important}
  .gate .ghost{margin-top:6px!important;padding:8px!important}
}
@media (max-width:759px) and (max-height:760px){
  .gate-list li:nth-child(n+4){display:none}
}
@media (max-width:759px){
  .pg-head-right{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center;justify-content:flex-start!important;gap:8px!important;margin:10px 0 0!important;width:100%}
  .pg-head-right>*{margin:0!important}
  .pg-head{flex-direction:column;align-items:stretch!important}
}
@media (max-width:759px){
  .more-grid,.token-grid,.legend-grid,.rc-list{grid-template-columns:minmax(0,1fr)!important}
  .more-grid>*,.token-grid>*,.legend-grid>*{min-width:0;max-width:100%}
  .more-card{width:100%}
  .more-card>div{min-width:0}
}
.more-card *{font-variant-numeric:normal!important}
@media (max-width:759px){
  .more-card small,.more-card span,.more-card p,.more-card div>*{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
}

button,b,strong,span,a,small,label,em{font-variant-numeric:normal}
.change-value,.rc-num,.cell-score,.im-row span,.im-row em,.market-table td,.price,.market-price{font-variant-numeric:tabular-nums}

/* Bandeau « Radar Pro » : plus discret (le fond vert vif rendait le texte illisible) */
.scan-cta.pro-cta{background:linear-gradient(135deg,rgba(63,159,108,.16),rgba(255,255,255,.03))!important;border:1px solid rgba(93,222,138,.28)!important;box-shadow:none!important;color:#eaf3ee!important}
.scan-cta.pro-cta b{color:#f3faf6!important;font-size:16px!important}
.scan-cta.pro-cta span,.scan-cta.pro-cta div>span{color:#b4c0ba!important;font-size:13.5px!important;line-height:1.4!important;opacity:1!important}
.scan-cta.pro-cta .cta{background:linear-gradient(180deg,#6dc793,#3f9f6c)!important;color:#06200f!important;box-shadow:none!important}

/* ---------- Alertes : lisibles, une couleur par type ---------- */
.alert{padding:12px 14px!important;border-left-width:4px!important;--ac:#8fa39a}
.alert[data-atype="new"]{--ac:#6db3ff;border-left-color:#6db3ff!important}
.alert[data-atype="up"]{--ac:#5dde8a;border-left-color:#5dde8a!important}
.alert[data-atype="down"]{--ac:#ff7582;border-left-color:#ff7582!important}
.alert[data-atype="risk"]{--ac:#ffb35c;border-left-color:#ffb35c!important}
.alert .split{display:flex;align-items:center;gap:10px}
.alert .alert-type{font-size:12px!important;font-weight:800;letter-spacing:0!important;text-transform:none!important;color:var(--ac)!important;background:color-mix(in srgb,var(--ac) 16%,transparent);padding:3px 9px;border-radius:8px;font-family:'Schibsted Grotesk',sans-serif!important}
.alert .alert-badge{margin-left:auto;font-size:16px;font-weight:800;color:var(--ac)}
.alert .token-symbol{font-size:12px!important;color:#9aa8a1!important;margin-left:0}
.alert h3{font-size:15px!important;line-height:1.3!important;margin:8px 0 2px!important;font-weight:700!important}
.alert-more{margin-top:6px}
.alert-more>summary{cursor:pointer;list-style:none;font-size:13px;color:#8fa39a;padding:4px 0}
.alert-more>summary::-webkit-details-marker{display:none}
.alert-more>summary::after{content:" +";color:var(--ac)}
.alert-more[open]>summary::after{content:" –"}
.alert-more p.sub{font-size:13px!important;line-height:1.5!important;margin:6px 0!important;color:#b4c0ba!important}
.alert-summary{padding:10px 14px!important}
.alert-summary b{font-size:15px}

/* ---------- Glissement entre pages (téléphone) ---------- */
@keyframes swipeInR{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes swipeInL{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
#view.swipe-from-right{animation:swipeInR .22s ease-out}
#view.swipe-from-left{animation:swipeInL .22s ease-out}
@media (prefers-reduced-motion:reduce){#view.swipe-from-right,#view.swipe-from-left{animation:none}}

/* ---------- Téléphone : moins de hauteur perdue, tokens visibles tout de suite, couleurs plus reposantes ---------- */
@media (max-width:759px){
  .pg-head{margin-bottom:8px!important;padding-bottom:10px!important}
  .pg-head h1{font-size:30px!important;line-height:1.05!important}
  .pg-head p{display:none!important}
  .pg-head-right{margin-top:6px!important}
  .live-pill,.advice-pill{padding:5px 9px!important;font-size:12px!important}
  .pulse-row{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;margin:8px 0!important}
  .pulse-row>*:nth-child(4){display:none!important}
  .pulse-row>*{padding:8px 6px!important;min-height:0!important;border-radius:12px!important}
  .pulse-row>*>*:first-child{font-size:20px!important;line-height:1.1!important}
  .pulse-row>* small,.pulse-row>* span{font-size:12px!important;line-height:1.2!important}
  .search{margin:6px 0!important}
  .search input{padding:10px 12px!important;font-size:15px!important}
  .chips{flex-wrap:nowrap!important;overflow-x:auto;gap:8px!important;margin:6px 0!important;padding-bottom:2px;scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .chips .seg,.sorts .sort{flex:0 0 auto;white-space:nowrap}
  .sorts{display:flex!important;overflow-x:auto;gap:8px!important;margin:4px 0 8px!important;scrollbar-width:none}
  .sorts>span{display:none!important}
  .tk,.token-card{margin-bottom:10px!important}
  /* couleurs : le vert n'est plus partout, il redevient un signal */
  .eyebrow{color:#93a59c!important}
  .token-source,.linkish{color:#b8c8bf!important}
  .stat-grid .stat b,.fiche-quick b{color:#f1f6f3}
  .desktop-workspace{display:none!important}
}
@media (max-width:759px){
  .notify-card{padding:12px 14px!important;gap:10px!important}
  .notify-card p{display:none!important}
  .notify-card h3{font-size:15px!important;margin:2px 0 0!important}
  .notify-card .eyebrow{font-size:11.5px!important}
}

/* ---------- Téléphone : plus fluide, et plus de zoom quand on touche un champ ---------- */
@media (max-width:759px){
  /* Sur iPhone, un champ dont le texte fait moins de 16 px déclenche un zoom qui reste après la fermeture du clavier. */
  input,select,textarea,.search input,.im-custom input,[data-impact-input]{font-size:16px!important}
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{touch-action:pan-y pinch-zoom;-webkit-tap-highlight-color:transparent}
  button,a,.tk,.token-card,.more-card,.tab{touch-action:manipulation}
  /* Le flou d'arrière-plan sur chaque carte ralentit le défilement des téléphones : on le garde seulement sur la barre du bas. */
  .tk,.token-card,.card,.stat,.gate,.more-card,.notify-card,.alert-summary,.pulse-row>*,.scan-cta,.fold-more,.impact-tool,.chart-fallback{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .ambient,.grid-floor i{will-change:auto}
}

/* Carte « Vérifie ta boîte mail » */
.confirm-card{border:1px solid rgba(93,222,138,.35)!important;background:linear-gradient(135deg,rgba(63,159,108,.14),rgba(255,255,255,.03))!important}
.confirm-card h3{margin:0 0 6px!important;font-size:17px!important}
.confirm-card .sub{color:#c3cec8!important;font-size:14px!important;line-height:1.5!important}
.confirm-card b{color:#f1f6f3;word-break:break-all}
.confirm-actions{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:12px}
