:root{
  --bg:#05060d; --buy:#34f5a4; --sell:#ff4d7d; --hold:#8b93b0; --accent:#5ee7ff; --accent2:#b18cff;
}
html,body{background:var(--bg);color:#e6e9f5;font-family:'Bricolage Grotesque',sans-serif;min-height:100%;}
.mono{font-family:'JetBrains Mono',monospace;}
.bg-layer{position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(600px 400px at 10% 0%, rgba(94,231,255,.13), transparent 60%),
    radial-gradient(700px 500px at 95% 20%, rgba(177,140,255,.14), transparent 60%),
    radial-gradient(800px 600px at 50% 110%, rgba(52,245,164,.08), transparent 60%),
    linear-gradient(180deg,#070917 0%,#0b0b24 50%,#020205 100%);}
.bg-layer::after{content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:40px 40px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%);}
.grad-text{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent;}
.card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(10px);border-radius:1rem;transition:transform .25s,box-shadow .25s,border-color .25s;animation:rise .5s both;}
.card:hover{transform:translateY(-3px);}
.card.BUY:hover{box-shadow:0 10px 40px -10px rgba(52,245,164,.35);border-color:rgba(52,245,164,.35);}
.card.SELL:hover{box-shadow:0 10px 40px -10px rgba(255,77,125,.35);border-color:rgba(255,77,125,.35);}
.card.HOLD:hover{box-shadow:0 10px 40px -10px rgba(139,147,176,.3);}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.flash-up{animation:fup 1.1s ease-out;}
.flash-down{animation:fdown 1.1s ease-out;}
@keyframes fup{0%{color:var(--buy);text-shadow:0 0 14px var(--buy)}100%{}}
@keyframes fdown{0%{color:var(--sell);text-shadow:0 0 14px var(--sell)}100%{}}
.pulse-dot{animation:pd 1.6s infinite;}
@keyframes pd{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.spin{animation:sp 1s linear infinite;}
@keyframes sp{to{transform:rotate(360deg)}}
.shimmer{background:linear-gradient(90deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.04) 75%);background-size:200% 100%;animation:sh 1.4s infinite;border-radius:.5rem;}
@keyframes sh{to{background-position:-200% 0}}
.badge-BUY{color:var(--buy);background:rgba(52,245,164,.1);border:1px solid rgba(52,245,164,.35);box-shadow:0 0 12px rgba(52,245,164,.2);}
.badge-SELL{color:var(--sell);background:rgba(255,77,125,.1);border:1px solid rgba(255,77,125,.35);box-shadow:0 0 12px rgba(255,77,125,.2);}
.badge-HOLD{color:var(--hold);background:rgba(139,147,176,.1);border:1px solid rgba(139,147,176,.3);}
select option{background:#0b0b24;}
a{color:var(--accent);}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;}}