/* Quiver Labs — Pulse discovery screen.
   Layers on home.css (shared :root tokens, nav, .phead, .newpill, .live.paused). Adds the
   3-column launchpad-lifecycle layout, the Pulse card, per-launchpad brand chips, and the
   graduation progress bar. No emoji; single-stroke SVG icons only. */

.pulse-shell{max-width:1440px; margin:0 auto; padding:14px 18px 26px;}

.pulse-cols{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:start;}

.pulse-col{
  background:var(--raised); border:1px solid var(--border); border-radius:12px;
  display:flex; flex-direction:column; overflow:hidden; min-width:0;
}
.pulse-col .phead{position:sticky; top:0; z-index:4; background:var(--raised);}

.pulse-list-wrap{position:relative; min-height:80px;}
.pulse-list{
  overflow-y:auto; overflow-x:hidden;
  max-height:calc(100vh - 150px); min-height:80px;
  scrollbar-width:thin; scrollbar-color:var(--border) transparent;
}
.pulse-list::-webkit-scrollbar{width:8px;}
.pulse-list::-webkit-scrollbar-thumb{background:var(--border); border-radius:4px;}

.pulse-empty{padding:26px 15px; text-align:center; color:var(--tm); font-size:12px;}
.pulse-empty.err{color:var(--red);}

/* the "N new" pill sits at the top-center of the list (no thead to pin to like home) */
.pulse-list-wrap .newpill{top:16px;}

/* ---------- CARD ---------- */
.pcard{
  display:flex; gap:10px; align-items:center;
  padding:10px 13px; border-bottom:1px solid var(--hair);
  cursor:pointer; transition:background .15s; min-width:0;
}
.pcard:hover{background:var(--rowhov);}
.pcard:last-child{border-bottom:0;}

.pc-av{position:relative; flex:0 0 auto;}
.pc-av-box{
  width:38px; height:38px; border-radius:10px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:var(--card); border:1px solid var(--border);
}
.pc-av-box img{width:100%; height:100%; object-fit:cover;}
.pc-av-letter{font-family:var(--sans); font-weight:700; font-size:16px; color:var(--ts);}
.pc-av-proto{
  position:absolute; bottom:-4px; right:-4px;
  font-family:var(--mono); font-size:8.5px; font-weight:700; letter-spacing:.02em;
  color:var(--tp); background:var(--card); border:1px solid var(--border);
  border-radius:5px; padding:0 3px; line-height:1.35;
}

.pc-main{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:5px;}
.pc-r1{display:flex; align-items:center; gap:6px; min-width:0;}
.pc-sym{font-size:13px; font-weight:600; color:var(--tp); max-width:40%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.pc-q{font-size:11px; color:var(--tm); font-weight:400; flex:0 0 auto;}
.pc-age{margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ts); flex:0 0 auto;}

.pc-r2{display:flex; align-items:center; gap:13px; min-width:0;}
.pc-m{display:flex; flex-direction:column; gap:1px; min-width:0;}
.pc-m i{font-style:normal; font-size:9px; letter-spacing:.08em; color:var(--tm); text-transform:uppercase;}
.pc-m b{font-family:var(--mono); font-size:11.5px; font-weight:600; color:var(--tp); font-variant-numeric:tabular-nums; white-space:nowrap;}
.pc-px{margin-left:auto; text-align:right;}
.pc-px i,.pc-px b{text-align:right;}

/* ---------- LAUNCHPAD CHIP ---------- */
.lp-chip{
  display:inline-flex; align-items:center; gap:3px; flex:0 0 auto;
  font-family:var(--mono); font-size:9.5px; font-weight:700; letter-spacing:.02em;
  padding:1px 6px 1px 5px; border-radius:6px;
  color:var(--ts); background:rgba(255,255,255,.05); border:1px solid var(--hair);
}
.lp-chip svg{width:10px; height:10px; flex:0 0 auto;}
.lp-noxa{color:#7cc6ff; background:rgba(124,198,255,.12); border-color:rgba(124,198,255,.28);}
.lp-virtuals{color:#b39cff; background:rgba(179,156,255,.12); border-color:rgba(179,156,255,.28);}
.lp-clanker{color:#ffb27c; background:rgba(255,178,124,.12); border-color:rgba(255,178,124,.28);}
.lp-klik{color:#4fd6b8; background:rgba(79,214,184,.12); border-color:rgba(79,214,184,.28);}
.lp-bankr{color:#00d179; background:rgba(0,209,121,.13); border-color:rgba(0,209,121,.30);}
.lp-doppler{color:#f0a6ce; background:rgba(240,166,206,.12); border-color:rgba(240,166,206,.28);}
.lp-flap{color:#e3d24c; background:rgba(227,210,76,.12); border-color:rgba(227,210,76,.28);}
.lp-trench{color:#86c06a; background:rgba(134,192,106,.12); border-color:rgba(134,192,106,.28);}
.lp-poolstrade{color:#22d3ee; background:rgba(34,211,238,.12); border-color:rgba(34,211,238,.28);}
.lp-sushi{color:#fa52a0; background:rgba(250,82,160,.12); border-color:rgba(250,82,160,.30);}
.lp-sushi-pools{color:#c084fc; background:rgba(192,132,252,.12); border-color:rgba(192,132,252,.30);} /* pools.fun — Sushi-branded, distinct from Pools.trade cyan + Sushi pink */
.lp-stock{color:#8fd97a; background:rgba(143,217,122,.12); border-color:rgba(143,217,122,.28);}
.lp-memefactory{color:#ff8fa3; background:rgba(255,143,163,.12); border-color:rgba(255,143,163,.28);}
.lp-banger{color:#ffd166; background:rgba(255,209,102,.12); border-color:rgba(255,209,102,.28);}
.lp-letscash{color:#22d3a6; background:rgba(34,211,166,.12); border-color:rgba(34,211,166,.28);}

/* ---------- RISK ROW (dev% / sniper% / top10%) ---------- */
.pc-r3{display:flex; align-items:center; gap:12px; margin-top:1px;}
.rk{display:inline-flex; align-items:baseline; gap:4px; min-width:0;}
.rk i{font-style:normal; font-size:8.5px; letter-spacing:.08em; color:var(--tm); text-transform:uppercase;}
.rk b{font-family:var(--mono); font-size:10.5px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap;}
.rk b.rk-ok{color:var(--teal);}
.rk b.rk-bad{color:var(--red);}
.rk b.rk-na{color:var(--tm);}

/* ---------- GRADUATION PROGRESS (Final Stretch) ---------- */
.pc-prog{position:relative; height:6px; border-radius:999px; background:rgba(255,255,255,.06); overflow:hidden; margin-top:1px;}
.pc-prog-bar{position:absolute; left:0; top:0; bottom:0; border-radius:999px;
  background:linear-gradient(90deg,var(--teal),var(--lime));}
.pc-prog i{
  position:absolute; right:5px; top:50%; transform:translateY(-50%);
  font-style:normal; font-family:var(--mono); font-size:8px; font-weight:700; color:var(--tp);
  text-shadow:0 0 3px rgba(0,0,0,.7);
}

/* ---------- flash-in for freshly-arrived cards ---------- */
@keyframes pcardIn{from{background:rgba(212,227,76,.14);}to{background:transparent;}}
.pcard.f-in{animation:pcardIn 1.2s ease-out;}

@media (max-width:1080px){
  .pulse-cols{grid-template-columns:1fr;}
  .pulse-list{max-height:none;}
  .pulse-col .phead{position:static;}
}
@media (prefers-reduced-motion:reduce){
  .pcard.f-in{animation:none;}
}
