/* Tier perks: Launch Clock, Exit Depth, Ticker Collision, Watchlist Drift,
   Wallet Cohort Watch. Grid tracks use minmax(0,1fr) so long mint addresses
   cannot floor a column at min-content and overflow the page on mobile. */

.perk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.perk-panel{border-bottom:1px solid var(--line);min-width:0}
.perk-grid .perk-panel:first-child{border-right:1px solid var(--line)}
.perk-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--line)}
.perk-panel h4{margin:0;font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.13em;color:var(--gold)}
.perk-body{padding:18px 24px 22px}
.perk-body>p{margin:12px 0 0;color:var(--muted);font-size:.62rem;line-height:1.6}

.perk-stage{padding:5px 10px;border:1px solid var(--line-strong);font-size:.5rem;font-weight:900;letter-spacing:.1em;white-space:nowrap}
.perk-stage.stage-fresh-launch,.perk-stage.stage-warn{border-color:var(--red);color:var(--red)}
.perk-stage.stage-discovery{border-color:var(--gold);color:var(--gold)}
.perk-stage.stage-mature,.perk-stage.stage-ok{border-color:var(--green);color:#7fce87}
.perk-stage.stage-stale,.perk-stage.stage-unknown,.perk-stage.stage-unknown-age{border-color:var(--line-strong);color:var(--muted)}
.perk-stage.severity-ok{border-color:var(--green);color:#7fce87}
.perk-stage.severity-moderate{border-color:var(--gold);color:var(--gold)}
.perk-stage.severity-high,.perk-stage.severity-severe{border-color:var(--red);color:var(--red)}

.perk-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.perk-metrics div{display:grid;gap:6px;min-width:0}
.perk-metrics span{color:var(--muted);font-size:.52rem;font-weight:900;letter-spacing:.1em}
.perk-metrics strong{font-family:var(--sans);font-size:.9rem}

/* Wide content scrolls inside its own container; the page body never does. */
.perk-table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;white-space:nowrap}
.perk-table th,.perk-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:right;font-size:.6rem}
.perk-table th{color:var(--muted);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;font-weight:900}
.perk-table th:first-child,.perk-table td:first-child{text-align:left}
.perk-table tbody tr:last-child td{border-bottom:0}
.perk-table td.severity-ok{color:#7fce87}
.perk-table td.severity-moderate{color:var(--gold)}
.perk-table td.severity-high,.perk-table td.severity-severe{color:#ff776e}
.perk-table a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.perk-note{margin:12px 0 0;color:var(--muted);font-size:.58rem;line-height:1.65}

.collision-panel{border-bottom:1px solid var(--line)}
.collision-panel td strong{font-family:var(--sans);font-size:.68rem;font-weight:700}
.deepest-badge{margin-left:8px;padding:3px 7px;border:1px solid var(--green);color:#7fce87;font-size:.45rem;font-weight:900;letter-spacing:.09em}

/* --- Watchlist drift (Holder tier) ------------------------------------- */
.drift-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.drift-chip{display:inline-flex;align-items:baseline;gap:6px;padding:4px 8px;border:1px solid var(--line);font-size:.53rem;letter-spacing:.05em}
.drift-chip span{color:var(--muted);font-weight:900}
.drift-chip strong{font-family:var(--sans);font-weight:700}
.drift-chip.positive strong{color:#7fce87}
.drift-chip.negative strong{color:#ff776e}
.drift-flag{padding:4px 8px;border:1px solid var(--red);color:var(--red);font-size:.5rem;font-weight:900;letter-spacing:.08em}
.drift-flag.neutral{border-color:var(--line-strong);color:var(--muted)}
.drift-empty{color:var(--faint);font-size:.55rem;letter-spacing:.05em}

/* --- Wallet cohort (Whale Wave tier) ----------------------------------- */
.cohort-panel{margin-top:18px;border:1px solid var(--line);padding:18px 20px}
.cohort-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.cohort-head strong{font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.12em;color:var(--gold)}
.cohort-count{color:var(--muted);font-size:.55rem;letter-spacing:.06em}
.cohort-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cohort-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--line);min-width:0}
.cohort-list .cohort-identity{display:grid;gap:3px;min-width:0}
.cohort-list code{font-size:.58rem;color:var(--gold);overflow-wrap:anywhere}
.cohort-list small{color:var(--muted);font-size:.5rem;letter-spacing:.05em}
.cohort-empty{color:var(--faint);font-size:.56rem}
.cohort-remove{background:none;border:1px solid var(--line-strong);color:var(--muted);padding:5px 10px;font-size:.5rem;font-weight:900;letter-spacing:.08em;cursor:pointer;white-space:nowrap}
.cohort-remove:hover:not(:disabled){border-color:var(--red);color:var(--red)}
.cohort-remove:disabled{opacity:.5;cursor:not-allowed}
.cohort-track{background:none;border:1px solid var(--line-strong);color:var(--gold);padding:4px 9px;font-size:.48rem;font-weight:900;letter-spacing:.08em;cursor:pointer;white-space:nowrap}
.cohort-track:hover:not(:disabled){border-color:var(--gold);background:rgba(234,196,103,.08)}
.cohort-track:disabled{opacity:.5;cursor:not-allowed}
.cohort-match{margin-left:8px;padding:3px 7px;border:1px solid var(--gold);color:var(--gold);font-size:.45rem;font-weight:900;letter-spacing:.09em}
.cohort-note{margin:12px 0 0;color:var(--muted);font-size:.56rem;line-height:1.65}

@media (max-width:860px){
  .perk-grid{grid-template-columns:minmax(0,1fr)}
  .perk-grid .perk-panel:first-child{border-right:0}
}

@media (max-width:620px){
  .perk-panel header{padding:14px 16px}
  .perk-body{padding:15px 16px 18px}
  .cohort-panel{padding:15px 16px}
  .cohort-list li{flex-wrap:wrap}
}

@media (prefers-reduced-motion:reduce){
  .cohort-track,.cohort-remove{transition:none}
}

/* Fresh Launch Radar (holder tier). Card grid uses auto-fit with minmax(0,…)
   so a long mint address cannot floor a column and overflow the page. */

.launchpad-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}
.launchpad-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.launchpad-heading strong{font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.13em;color:var(--gold)}
.launchpad-heading p{margin:8px 0 0;max-width:52ch;color:var(--muted);font-size:.62rem;line-height:1.6}
.launchpad-results{margin-top:18px}

/* The window switch. Two states, so a pressed-button pair reads more honestly
   than a select: both options stay visible and the active one is obvious. */
.launch-bands{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.launch-band{padding:7px 14px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);font-family:var(--sans);font-size:.54rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.launch-band:hover{color:var(--fg);border-color:var(--gold)}
.launch-band.is-active{border-color:var(--gold);color:#0b0b0b;background:var(--gold)}
.launch-band:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.launch-liq{padding:3px 7px;border:1px solid var(--line-strong);font-size:.46rem;font-weight:900;letter-spacing:.09em;white-space:nowrap;cursor:help}
.launch-liq.locked{border-color:var(--green);color:#7fce87}
.launch-liq.protocol{border-color:var(--line-strong);color:var(--muted)}
.launch-liq.withdrawable{border-color:var(--red);color:var(--red)}
/* Unknown, not suspect: styled as neutral furniture so it cannot read as a warning. */
.launch-liq.unverified{border-color:var(--line);color:var(--muted);opacity:.75}

.launch-coverage{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}
.launch-coverage-badge{padding:5px 10px;border:1px solid var(--line-strong);font-size:.5rem;font-weight:900;letter-spacing:.1em;white-space:nowrap}
.launch-coverage-badge.complete{border-color:var(--green);color:#7fce87}
.launch-coverage-badge.partial{border-color:var(--gold);color:var(--gold)}
.launch-coverage-note{color:var(--muted);font-size:.58rem;line-height:1.6;min-width:0}
.launch-coverage-warning{width:100%;color:var(--red);font-size:.58rem;line-height:1.6}

.launch-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;margin-top:16px}
.launch-card{border:1px solid var(--line);padding:16px 18px;min-width:0}
.launch-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.launch-identity{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.launch-rank{font-family:var(--sans);font-size:.62rem;font-weight:900;color:var(--gold);letter-spacing:.08em}
.launch-symbol{font-family:var(--sans);font-size:.9rem;font-weight:900;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.launch-symbol:hover,.launch-symbol:focus{color:var(--gold);text-decoration:underline}
.launch-dex{padding:3px 8px;border:1px solid var(--line-strong);color:var(--muted);font-size:.48rem;font-weight:900;letter-spacing:.08em;white-space:nowrap}
.launch-score{display:flex;align-items:baseline;gap:8px}
.launch-score-label{color:var(--muted);font-size:.5rem;font-weight:900;letter-spacing:.1em}
.launch-score-value{font-family:var(--sans);font-size:1.05rem;color:var(--gold)}

.launch-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
@media (min-width:640px){.launch-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}}
.launch-metric{display:grid;gap:5px;min-width:0}
.launch-metric-label{color:var(--muted);font-size:.48rem;font-weight:900;letter-spacing:.09em}
.launch-metric-value{font-family:var(--sans);font-size:.8rem;overflow-wrap:anywhere}
.launch-metric.rising .launch-metric-value{color:#7fce87}
.launch-metric.falling .launch-metric-value{color:var(--red)}

.launch-basis{margin:14px 0 0;color:var(--muted);font-size:.55rem;line-height:1.6}
.launch-mint{display:block;margin-top:10px;color:var(--muted);font-size:.52rem;overflow-wrap:anywhere}

.launch-empty{border:1px solid var(--line);padding:20px 18px}
.launch-empty strong{font-family:var(--sans);font-size:.72rem;color:var(--gold)}
.launch-empty p{margin:10px 0 0;color:var(--muted);font-size:.6rem;line-height:1.6}

.launch-rejections{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.launch-rejections-label{color:var(--muted);font-size:.55rem;font-weight:900;letter-spacing:.08em}
.launch-rejection-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.launch-rejection-list li{padding:4px 9px;border:1px solid var(--line);color:var(--muted);font-size:.52rem}
.launch-caveat{margin:14px 0 0;color:var(--muted);font-size:.55rem;line-height:1.7}

@media (max-width:720px){
  .launchpad-heading{flex-direction:column;align-items:stretch}
  .launch-card-head{align-items:flex-start}
}
