:root{
  --bg:#0b0c10;
  --panel:#12131a;
  --line:#222433;
  --txt:#eaeaea;
  --muted:#a6a6b3;

  /* Brand */
  --brand1:#6D5BFF;     /* indigo */
  --brand2:#3F8CFF;     /* blue */
  --accent:#20E3B2;     /* mint */
  --glow: rgba(109,91,255,.22);

  --danger:#ff8b8b;
  --r:16px;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--txt);
}

a{color:inherit}

.wrap{
  max-width:980px;
  margin:0 auto;
  padding:28px 18px 60px;
}

.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
}

.muted{color:var(--muted)}
.error{color:#ff6b6b}

.h2{
  font-weight:800;
  font-size:18px;
  margin:0 0 8px;
}

.row{display:flex; gap:12px; flex-wrap:wrap}
.grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px}
.grid3{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px}
.split{display:grid; grid-template-columns:1fr 1fr; gap:12px}

.section{margin-top:14px}
.main{padding:0 0 60px}

.ph{
  height:120px;
  border-radius:14px;
  margin-top:12px;
  border:1px dashed rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);
}
.ph--big{height:240px}

/* ---------- NAVBAR ---------- */

.nav{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(11,12,16,.75);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.nav__inner{
  max-width:980px;
  margin:0 auto;
  padding:14px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
}

.brand__mark{
  width:36px;
  height:36px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--brand1),var(--brand2));
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
}

.brand__tag{
  font-size:12px;
  color:var(--muted);
  margin-top:2px;
}

.nav__actions{
  display:flex;
  align-items:center;
  gap:14px;
}

.nav__link{
  color:#cfcfe6;
  text-decoration:none;
  font-weight:600;
}

.nav__link--danger{
  color:var(--danger);
}

.usernav{
  display:flex;
  align-items:center;
  gap:14px;
}

.usernav__email{
  font-size:13px;
  color:var(--muted);
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  max-width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ---------- HERO ---------- */

.hero{
  padding:24px 0 12px;
}

.hero__card{
  margin-top:12px;
}

/* ---------- RESPONSIVE ---------- */

@media (max-width:900px){
  .grid3{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
}

/* Brand polish */
.brand__mark{
  box-shadow: 0 12px 40px var(--glow);
}

.nav__link:hover{
  color:#ffffff;
  text-shadow: 0 0 18px rgba(63,140,255,.18);
}

/* HERO search bar: white input + attached button */
.hero__search{
  display:flex;
  gap:0;
  align-items:stretch;
  margin-top:8px;
  width:100%;
}

.hero__search > div:first-child{
  flex:1;
  min-width: 280px;
}

.hero__search #url{
  width:100%;
  background:#ffffff;
  color:#111318;
  border:1px solid rgba(255,255,255,.12);
  border-right:0;
  border-radius:40px 0 0 40px;
  padding:12px 14px;
  font-size:14px;
  outline:none;
}

.hero__search #url::placeholder{
  color: rgba(17,19,24,.55);
}

.hero__search #url:focus{
  box-shadow: 0 0 0 4px rgba(109,91,255,.18);
  border-color: rgba(109,91,255,.55);
}

.hero__search #btn{
  border-radius:0 40px 40px 0;
  padding:12px 14px;
  border:1px solid rgba(109,91,255,.65);
  background: linear-gradient(135deg, var(--brand1), var(--brand2));
  color:#fff;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}

.hero__search #btn:hover{
  filter: brightness(1.04);
}

.small-text {
  font-size: 14px;
}

.pt-16 {
  padding-top: 16px;
}

/* ---------- Buttons & Inputs (shared) ---------- */

.btn{
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: var(--txt);
  padding:10px 12px;
  border-radius:40px;
  font-weight:700;
  cursor:pointer;
  transition: transform .08s ease, filter .2s ease, border-color .2s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }

.btn--primary{
  border-color: rgba(109,91,255,.55);
  background: linear-gradient(135deg, var(--brand1), var(--brand2));
  color:#fff;
  box-shadow: 0 16px 40px rgba(63,140,255,.14);
}

.input{
  width:100%;
  background: rgba(255,255,255,.06);
  color: var(--txt);
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  padding:12px 12px;
  outline:none;
  transition: box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.input::placeholder{ color: rgba(234,234,234,.55); }
.input:focus{
  border-color: rgba(109,91,255,.55);
  box-shadow: 0 0 0 4px rgba(109,91,255,.16);
  background: rgba(255,255,255,.08);
}

/* ---------- Links ---------- */

.link{
  text-decoration:none;
  font-weight:700;
}
.link--muted{
  color:#cfcfe6;
}
.link--muted:hover{
  color:#ffffff;
  text-shadow: 0 0 18px rgba(63,140,255,.16);
}

/* ---------- Modal ---------- */

.modal{
  position:fixed;
  inset:0;
  z-index:9999;
  background: radial-gradient(900px 500px at 20% 10%, rgba(109,91,255,.22), transparent 55%),
              radial-gradient(900px 500px at 80% 0%, rgba(63,140,255,.20), transparent 55%),
              rgba(0,0,0,.92); /* ↑ leggermente più solido */
  backdrop-filter: blur(5px); /* ↓ appena meno blur */
  display:none; /* JS lo mette a block */
}

.modal__wrap{
  max-width: 560px;
  margin: 10vh auto;
  padding: 0 16px;
}

.modal__card{
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 25px 80px rgba(0,0,0,.45);
}

.modal__head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}

.modal__close{
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  color:#cfcfe6;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
.modal__close:hover{
  filter: brightness(1.08);
}

.modal__actions{
  display:flex;
  gap:10px;
  margin-top:14px;
  justify-content:flex-end;
  align-items:center;
}

/* spacing inside modal */
#authSubtitle{ line-height:1.5; }
#authFooterCopy{ line-height:1.45; }

/* small screens */
@media (max-width: 520px){
  .modal__wrap{ margin: 8vh auto; }
  .modal__actions{ flex-direction:column; align-items:stretch; }
  .modal__actions .btn{ width:100%; }
  #toggleAuthMode{ margin-right:0 !important; }
}

/* Full-width primary action in auth modal */
#authActions .btn{
  width:100%;
  justify-content:center;
}

.modal__actions{
  display:flex;
  flex-direction:column;   /* invece di row */
  gap:10px;
  margin-top:16px;
  align-items:stretch;
}

#authForgotLink{
  font-size:12px;
  opacity:.75;
}

#authForgotLink:hover{
  opacity:1;
}

#authTitle{
  font-size:22px;
  font-weight:800;
  letter-spacing:-0.01em;
}

#authSubtitle{
  font-size:14px;
  color:var(--muted);
}
/* Forgot password MUST be right after password */
#authForgotLink{
  font-size:12px;
  opacity:.75;
  margin-top:6px;
  margin-bottom:8px;
}

#authForgotLink:hover{
  opacity:1;
}

#toggleAuthMode{
  font-size:14px;
  opacity:.9;
  margin-top: 12px;
}
#toggleAuthMode:hover{
  opacity:1;
}

/* Put primary button above the "Create account" link INSIDE authActions */
#authActions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}

#authActions #authPrimaryBtn{
  order: 1;
  width:100%;
  justify-content:center;
}

#authActions #toggleAuthMode{
  order: 2;
  margin-right:0 !important;   /* annulla inline margin-right:auto */
  margin-top:6px;
  opacity:.9;
}

/* ===== Report Preview (modern) ===== */
.preview-card{
  margin-top:14px;
  padding:18px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
}

.preview-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}

.preview-title{
  font-size:18px;
  font-weight:800;
  margin:0;
}

.preview-sub{
  margin-top:6px;
  color:var(--muted);
  line-height:1.45;
}

.preview-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:12px;
  margin-top:12px;
}
@media (max-width:900px){ .preview-grid{ grid-template-columns:1fr; } }

.block{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding:14px;
}

.block h4{
  margin:0 0 8px;
  font-size:15px;
  font-weight:800;
  color:#eaeaea;
}

/* Teaser decision */
.teaser{
  position:relative;
  overflow:hidden;
}
.teaser .meta-line{
  color:var(--muted);
  font-size:12px;
  margin-bottom:8px;
}
.teaser .big{
  font-size:14px;
  line-height:1.5;
  color:#d8d8e6;
}
.teaser .why{
  margin-top:10px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

/* CTA card */
.cta-card{
  margin-top:12px;
  border-radius:18px;
  border:1px solid rgba(109,91,255,.25);
  background: radial-gradient(600px 220px at 10% 0%, rgba(109,91,255,.18), transparent 55%),
              rgba(255,255,255,.03);
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cta-card b{ color:#fff; }
.cta-card .muted{ display:block; margin-top:4px; }

.cta-btn{
  text-decoration:none;
  font-weight:800;
  color:#ffffff;
  padding:10px 12px;
  border-radius:14px;
  background: linear-gradient(135deg, var(--brand1), var(--brand2));
  border:1px solid rgba(255,255,255,.12);
  white-space:nowrap;
}
.cta-btn:hover{ filter:brightness(1.05); }

.badge--risk-high{
  border-color: rgba(255,107,107,.35);
  background: rgba(255,107,107,.12);
  color:#ffb4b4;
}
.badge--risk-med{
  border-color: rgba(255,186,73,.35);
  background: rgba(255,186,73,.12);
  color:#FFBA49;
}
.badge--risk-low{
  border-color: rgba(32,227,178,.28);
  background: rgba(32,227,178,.10);
  color:#9ff4dd;
}

/* parte extra "più ricca" che suggerisce contenuto */
.locked-more{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.10);
}

.locked-more__title{
  font-size:16px;
  font-weight:800;
  margin-bottom:12px;
  color:#ffffff;
}

.locked-more__list{
  font-size:15px;
  line-height:1.65;
  color:rgba(255,255,255,.85);
}

/* ===== Primary CTA full width ===== */
.cta-card--primary{
  flex-direction:column;
  align-items:stretch;
  gap:12px;
}

.cta-title{
  font-weight:900;
  font-size:16px;
  line-height:1.2;
  margin-bottom:6px;
}

.cta-btn--full{
  display:block;
  width:100%;
  text-align:center;
  padding:14px 16px;
  border-radius:16px;
  font-size:15px;
}

.cta-foot{
  font-size:12px;
  opacity:.85;
}

/* ===== One-column report preview layout (less crowded) ===== */
.preview-stack{
  margin-top:40px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Sezioni senza container (niente border/background/padding) */
.preview-section{
  padding:0;
  border:0;
  background:transparent;
}

.preview-section h4{
  margin:0 0 8px;
  font-size:16px;   /* ↑ leggermente più importante di prima */
  font-weight:800;
  color:#eaeaea;
}

.preview-lead{
  line-height:1.55;
  font-size:14px;
}

/* ===== Teaser: more "hero" impact ===== */
.teaser-hero{ margin-bottom:12px; }

.teaser-headline{
  margin-top:24px;
  font-size:16px;   /* ↓ leggermente meno dominante */
  font-weight:950;
  line-height:1.2;
  color:#fff;
}
.teaser-sub{
  margin-top:6px;
  line-height:1.45;
  font-size: 14px;
}

.teaser-lines{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}
.tline{ display:flex; gap:12px; align-items:flex-start; line-height:1.45; }
.tlabel{
  width:56px;
  font-size:12px;
  color:var(--muted);
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.tvalue{ flex:1; color:#d8d8e6; }

.teaser-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.lock-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.22);
  color:#eaeaea;
}

/* ===== CTA inside teaser (above fade) ===== */
.teaser--locked{
  position: relative;
  overflow: hidden;
  padding-bottom: 80px; /* spazio per CTA + fade */
}

/* Fade sotto */
.teaser--locked:after{
  z-index: 1;
}

/* Se avevi anche :before con "Continue reading..." ti conviene spegnerlo per non affollare */
.teaser--locked:before{
  content: none !important;
}

/* CTA sopra il fade */
.teaser-cta{
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 3;
}

.cta-btn--in-teaser{
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
  padding: 14px 16px;
  border-radius: 50px;
  font-weight: 900;
}

.cta-btn--in-teaser .btn-main{
  font-size: 15px;
  line-height: 1.1;
}

.cta-btn--in-teaser .btn-sub{
  font-size: 12px;
  font-weight: 700;
  opacity: .9;
  line-height: 1.2;
}
.signals-label{
  margin-top:32px;
  margin-bottom:6px;
  font-size:13px;
  font-weight:800;
  color:#eaeaea;
  letter-spacing:.01em;
}

/* ===== Categorized signals chips ===== */
.chips{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:12px;
  margin-top:12px;
}

.chip{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;

  min-height:72px;
  padding:14px 16px;

  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color:#eaeaea;
  text-align:left;
}

.chip-dot{
  width:12px;
  height:12px;
  border-radius:999px;
  flex:0 0 12px;
  box-shadow:0 0 0 4px rgba(255,255,255,.06);
}

.chip-title{
  font-weight:850;
  font-size:14px;
  line-height:1.25;
  color:#eaeaea;
  white-space:normal; /* permette wrap */
}


/* Category colors (subtle, aligned with your brand) */
.chip--clarity .chip-dot{
  background: linear-gradient(135deg, var(--brand1), var(--brand2));
}
.chip--clarity{
  border-color: rgba(109,91,255,.22);
  background: rgba(109,91,255,.07);
}

.chip--conversion .chip-dot{
  background: linear-gradient(135deg, #20e3b2, #2dd4bf);
}
.chip--conversion{
  border-color: rgba(32,227,178,.22);
  background: rgba(32,227,178,.06);
}

.chip--trust .chip-dot{
  background: linear-gradient(135deg, #60a5fa, #22c55e);
}
.chip--trust{
  border-color: rgba(96,165,250,.22);
  background: rgba(96,165,250,.06);
}

.chip--unknown .chip-dot{
  background: rgba(156,163,175,.9);
}
.chip--unknown{
  border-color: rgba(156,163,175,.18);
  background: rgba(156,163,175,.04);
}

/* ===== Teaser readability + subtle color accents ===== */

.teaser-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  background:linear-gradient(
    90deg,
    rgba(99,102,241,.18),
    rgba(99,102,241,.05)
  );
  border:1px solid rgba(99,102,241,.35);
  color:#c7ccff;
}

.priority-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
  color:#f2efff;
  border:1px solid rgba(109,91,255,.35);
  background: linear-gradient(135deg, rgba(109,91,255,.28), rgba(74,222,253,.10));
  box-shadow: 0 8px 22px rgba(109,91,255,.12);
}

.kicker-sep{
  opacity:.6;
}

/* Improve Focus/Why readability (more structure) */
.teaser-lines{
  margin-top:14px;
  gap:10px;
}

.tlabel{
  opacity:.9;
}

/* Metrics: same style, different accents */
.metric{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  font-size:13px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color:#d8d8e6;
}

.metric b{
  font-weight:900;
  color:#ffffff;
}

/* Accent borders + subtle background tint */
.metric--impact{
  border-color: rgba(32,227,178,.22);
  background: rgba(32,227,178,.06);
}
.metric--impact b{
  color:#b9fbe8;
}

.metric--effort{
  border-color: rgba(96,165,250,.20);
  background: rgba(96,165,250,.06);
}
.metric--effort b{
  color:#cfe6ff;
}

.metric--risk{
  border-color: rgba(255,186,73,.20);
  background: rgba(255,186,73,.07);
}
.metric--risk b{
  color:#ffe0b2;
}

/* Optional: slightly increase line-height for the Why text */
.tvalue{
  line-height:1.5;
}

/* ===== Confidence bar (subtle, premium) ===== */
.confidence{
  margin-top:24px;
  max-width:80%;
}

.confidence__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:6px;
}

.confidence__label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--muted);
  text-transform:uppercase;
}

.confidence__value{
  font-size:12px;
  font-weight:900;
  color:#eaeaea;
}

/* ===== Signal confidence: dynamic color ===== */

/* Base bar (already there, but we enhance it) */
.confidence__bar{
  height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  overflow:hidden;
}

/* Default fill (fallback) */
.confidence__fill{
  display:block;
  height:100%;
  border-radius:999px;
  transition: width .4s ease, background .3s ease;
}

/* LOW confidence — amber */
.confidence--low .confidence__fill{
  background: linear-gradient(90deg, #fbbf24, #f59e0b);
  box-shadow: 0 6px 18px rgba(245,158,11,.25);
}

/* MEDIUM confidence — brand purple */
.confidence--medium .confidence__fill{
  background: linear-gradient(90deg, var(--brand1), var(--brand2));
  box-shadow: 0 8px 22px rgba(109,91,255,.25);
}

/* HIGH confidence — teal/green */
.confidence--high .confidence__fill{
  background: linear-gradient(90deg, #22c55e, #2dd4bf);
  box-shadow: 0 8px 22px rgba(34,197,94,.28);
}

/* Micro explanatory note */
.confidence__note{
  margin-top:6px;
  font-size:14px;
  line-height:1.4;
  color:var(--muted);
}

/* ===== Badges (base) ===== */
.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color:#eaeaea;
  line-height:1;
  white-space:nowrap;
}

.badge .badge-icon{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
}

/* Business model chip */
.badge--model{
  border-color: rgba(109,91,255,.28);
  background: rgba(109,91,255,.10);
  color:#d9d4ff;
}

/* Keep your risk styles, but make them work on .badge */
.badge--risk-high{
  border-color: rgba(255,107,107,.35);
  background: rgba(255,107,107,.12);
  color:#ffb4b4;
}
.badge--risk-med{
  border-color: rgba(255,186,73,.35);
  background: rgba(255,186,73,.12);
  color:#FFBA49;
}
.badge--risk-low{
  border-color: rgba(32,227,178,.28);
  background: rgba(32,227,178,.10);
  color:#9ff4dd;
}
/* ===== Signals list (2 columns) ===== */
.signals-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:12px;
}

@media (max-width:900px){
  .signals-grid{ grid-template-columns:1fr; }
}

.signal-row{
  display:flex;
  align-items:flex-start;
  gap:12px;

  padding:14px 16px;
  min-height:92px;          /* stessa altezza */
  border-radius:18px;

  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}

.signal-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  flex:0 0 10px;
  margin-top:6px;
  box-shadow:0 0 0 5px rgba(255,255,255,.05);
}

.signal-body{
  flex:1;
  min-width:0;
}

.signal-title{
  font-weight:900;
  font-size:14px;
  line-height:1.25;
  color:#eaeaea;
}

.signal-desc{
  margin-top:6px;
  font-size:13px;
  line-height:1.35;
  color:rgba(234,234,234,.72);
}

.signal-meta{
  display:flex;
  gap:8px;
  align-items:center;
  margin-top:10px;
}

.signal-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color:#cfcfe6;
  white-space:nowrap;
}

/* category tints */
.signal--clarity{
  border-color: rgba(109,91,255,.18);
  background: rgba(109,91,255,.07);
}
.signal--clarity .signal-dot{ background: linear-gradient(135deg, var(--brand1), var(--brand2)); }

.signal--conversion{
  border-color: rgba(32,227,178,.18);
  background: rgba(32,227,178,.06);
}
.signal--conversion .signal-dot{ background: linear-gradient(135deg, #20e3b2, #2dd4bf); }

.signal--trust{
  border-color: rgba(96,165,250,.18);
  background: rgba(96,165,250,.06);
}
.signal--trust .signal-dot{ background: linear-gradient(135deg, #60a5fa, #22c55e); }

/* priority pills */
.signal-pill--high{
  border-color: rgba(255,107,107,.28);
  background: rgba(255,107,107,.10);
  color:#ffb4b4;
}
.signal-pill--med{
  border-color: rgba(255,186,73,.26);
  background: rgba(255,186,73,.10);
  color:#ffd09a;
}
.signal-pill--low{
  border-color: rgba(32,227,178,.22);
  background: rgba(32,227,178,.08);
  color:#a8f7e4;
}
.report-section {
  margin-top:10px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.mt-16 {
  margin-top: 16px;
}

.mt-24 {
  margin-top: 24px;
}

.mt-32 {
  margin-top: 32px;
}

.mt-40 {
  margin-top: 40px;
}

/* =========================
   DASHBOARD (scoped)
   ========================= */
body.dash { background:#0b0c10; color:#eaeaea; }

body.dash a { color:inherit; }

body.dash .layout{display:flex; min-height:100vh}

body.dash .sidebar{
  width:260px;
  background:#0f1016;
  border-right:1px solid #222433;
  padding:16px;
  box-sizing:border-box
}

body.dash .brand{font-weight:900; letter-spacing:.4px}

body.dash .navitem{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 10px;
  border-radius:12px;
  cursor:pointer;
  color:#cfcfe6
}
body.dash .navitem:hover{background:#12131a}
body.dash .lock{opacity:.7; font-size:12px}

body.dash .main{flex:1; display:flex; flex-direction:column}

body.dash .topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  border-bottom:1px solid #222433;
  background:#0b0c10;
  position:sticky;
  top:0;
  z-index:10
}
body.dash .topbar .right{display:flex; gap:12px; align-items:center}

body.dash .content{padding:18px; max-width:1100px}

body.dash .row{display:flex; gap:12px; flex-wrap:wrap; align-items:center}

body.dash input,
body.dash select{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #2b2e42;
  background:#0f1016;
  color:#eaeaea
}

/* IMPORTANT: qui NON ridefinisco button globali se vuoi evitare impatti sulla index.
   Se in dashboard vuoi un look diverso, useremo classi tipo .dashBtn (vedi sotto). */
body.dash .dashBtn{
  padding:12px 14px;
  border-radius:12px;
  border:0;
  background:#5b5df0;
  color:#fff;
  font-weight:700;
  cursor:pointer
}
body.dash .dashBtn:disabled{opacity:.6; cursor:not-allowed}

body.dash .muted{color:#a6a6b3; font-size:13px; line-height:1.45}
body.dash .grid{display:grid; gap:12px; margin-top:12px}

body.dash .reportItem{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:12px;
  border-radius:12px;
  border:1px solid #25283a;
  background:#10111a;
  cursor:pointer
}
body.dash .reportItem:hover{border-color:#3a3e5a}
body.dash .reportTitle{font-weight:800; color:#eaeaea; font-size:13px}
body.dash .reportMeta{color:#a6a6b3; font-size:12px}

body.dash .err{color:#ffb4b4; white-space:pre-wrap; margin-top:10px}
body.dash .ok{color:#a8ffcc}

body.dash .split{
  display:grid;
  grid-template-columns: 420px 1fr;
  gap:12px;
  margin-top:12px
}
@media (max-width: 980px){
  body.dash .sidebar{display:none}
  body.dash .split{grid-template-columns:1fr}
}

body.dash .sectionTitle{font-weight:900; margin:0 0 8px}

body.dash .reportFrame{
  min-height:420px;
  border-radius:14px;
  border:1px solid #222433;
  overflow:auto;
  background:#0f1016
}
body.dash iframe{width:100%; height:80vh; min-height:640px; border:0; display:block}

body.dash .plansFrame{
  width:100%;
  height:70vh;
  min-height:520px;
  border:0;
  display:block;
  border-radius:14px;
}

body.dash .smallbtn{background:#2b2e42}

/* Plans modal (scoped) */
body.dash .modalOverlay{
  position:fixed; inset:0;
  background:rgba(0,0,0,.55);
  display:flex; align-items:center; justify-content:center;
  padding:18px;
  z-index:9999;
}
body.dash .modalCard{
  width:min(920px, 100%);
  max-height:85vh;
  overflow:auto;
  background:#12131a;
  border:1px solid #222433;
  border-radius:16px;
  padding:16px;
  box-shadow: 0 24px 60px rgba(0,0,0,.45);
}
body.dash .modalHeader{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
body.dash .modalTitle{ font-weight:700; font-size:18px; }
body.dash .iconBtn{
  border:1px solid #2b2e42;
  background:#0f1016;
  color:#eaeaea;
  border-radius:10px;
  padding:8px 10px;
  cursor:pointer;
}

/* === Dashboard: top search matches index (scoped) === */
body.dash .topbarCreate{
  display:flex;
  align-items:center;
  gap:12px;
  flex:1;
}

body.dash .dashSearch{
  display:flex;
  align-items:stretch;
  gap:0;
  flex:1;
  max-width: 720px;
}

body.dash .dashSearch #urlTop{
  flex:1;
  background:#ffffff;
  color:#111318;
  border:1px solid rgba(255,255,255,.12);
  border-right:0;
  border-radius:40px 0 0 40px;
  padding:12px 14px;
  font-size:14px;
  outline:none;
}

body.dash .dashSearch #urlTop::placeholder{
  color: rgba(17,19,24,.55);
}

body.dash .dashSearch #urlTop:focus{
  box-shadow: 0 0 0 4px rgba(109,91,255,.18);
  border-color: rgba(109,91,255,.55);
}

body.dash .dashSearch #createBtnTop{
  border-radius:0 40px 40px 0;
  padding:12px 14px;
  border:1px solid rgba(109,91,255,.65);
  background: linear-gradient(135deg, var(--brand1), var(--brand2));
  color:#fff;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}

body.dash .dashSearch #createBtnTop:hover{
  filter: brightness(1.04);
}
/* Dashboard: stack layout (reports bar on top, report full width below) */
body.dash .dashStack{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:12px;
}

body.dash .dashReportsBar{ width:100%; }
body.dash .dashReportPanel{ width:100%; }

/* Make viewer really use the width */
body.dash .dashReportPanel .reportFrame{
  width:100%;
}
/* Dashboard: reports dropdowns on one row */
body.dash .reportsRow{
  display:flex;
  gap:12px;
  align-items:flex-end;
}

body.dash .reportsRow > div{
  flex:1;
  min-width:220px;
}

/* Mobile: stack dropdowns */
@media (max-width: 720px){
  body.dash .reportsRow{
    flex-direction:column;
  }
}
/* Dashboard: make Report dropdown visually primary */
body.dash .reportsRow{
  display:flex;
  gap:12px;
  align-items:flex-end;
}

body.dash .reportsRow > div{
  flex:1;
  min-width:220px;
}

/* Give more weight to Report column */
body.dash .reportsRow .reportCol{
  flex: 1.35;               /* Report più largo del Site */
}

/* Stronger styling only for the report select */
body.dash #reportSelect{
  border-color: rgba(109,91,255,.38);
  background: rgba(109,91,255,.08);
}

body.dash #reportSelect:focus{
  box-shadow: 0 0 0 4px rgba(109,91,255,.16);
  border-color: rgba(109,91,255,.60);
}

/* Label row: align badge to the right */
body.dash .reportLabelRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
/* Latest badge */
body.dash .latestBadge{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  border:1px solid rgba(32,227,178,.28);
  background: rgba(32,227,178,.10);
  color:#9ff4dd;
  line-height:1;
  margin-bottom: 4px;
}

/* =========================
   REPORT (scoped)
   ========================= */
.page-report .wrap{ max-width: 980px; }
.page-report .report-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.page-report .report-kpis{
  margin-top:12px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}
@media (max-width:900px){
  .page-report .report-kpis{ grid-template-columns:1fr; }
}
.page-report .kpi{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding:14px;
}
.page-report .kpi .kpi-label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--muted);
  text-transform:uppercase;
}
.page-report .kpi .kpi-value{
  margin-top:8px;
  font-size:16px;
  font-weight:900;
}
.page-report .section{ margin-top:18px; }
.page-report .section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.page-report .section-title .h2{ margin:0; }
.page-report .sublead{
  margin-top:8px;
  color:var(--muted);
  line-height:1.5;
}
.page-report .risk-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  font-weight:800;
  font-size:13px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}

.page-report .risk-badge .dot{
  width:9px; height:9px; border-radius:50%;
  background: currentColor;
  opacity:.95;
}

.page-report .risk-high{
  color:#ff8a8a;
  border-color: rgba(255,138,138,.35);
  background: rgba(255,138,138,.08);
}
.page-report .risk-med{
  color:#ffd28a;
  border-color: rgba(255,210,138,.35);
  background: rgba(255,210,138,.08);
}
.page-report .risk-low{
  color:#9ff4dd;
  border-color: rgba(159,244,221,.28);
  background: rgba(159,244,221,.08);
}
/* Locked decision cards in report */
.page-report .decision--locked{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(109,91,255,.22);
  background: radial-gradient(700px 220px at 10% 0%, rgba(109,91,255,.14), transparent 55%),
              rgba(255,255,255,.03);
}

.page-report .decision--locked .lockFade{
  position:absolute;
  left:0; right:0; bottom:0;
  height:72px;
  background: linear-gradient(to bottom, rgba(18,19,26,0), rgba(18,19,26,.92));
  pointer-events:none;
}

/* =========================
   Ranked decisions (cards)
   ========================= */

.page-report .grid{
  margin-top: 12px;
}

.page-report .decision{
  position: relative;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding: 16px;
  overflow: hidden;
}

.page-report .decision .top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom: 10px;
}

.page-report .decision .title{
  font-weight: 900;
  font-size: 16px;
  line-height: 1.35;
  margin-top: 2px;
}

.page-report .decision .why{
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.page-report .decision .meta{
  margin-top: 12px;
  display:flex;
  flex-wrap: wrap;
  gap: 8px;                 /* ✅ questo risolve “Risk: MediumImpact: …” */
}

.page-report .pill{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(234,234,234,.92);
  white-space: nowrap;
}

.page-report .decision--locked{
  border-color: rgba(109,91,255,.28);
  background:
    radial-gradient(900px 300px at 30% -10%, rgba(109,91,255,.18), transparent 60%),
    rgba(255,255,255,.03);
}

.page-report .decision--locked .pill{
  border-color: rgba(109,91,255,.30);
  background: rgba(109,91,255,.08);
}

.page-report .decision--locked .why{
  max-width: 56ch;
}

.page-report .decision--locked .lockFade{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(11,12,16,0) 0%, rgba(11,12,16,.55) 70%, rgba(11,12,16,.75) 100%);
  pointer-events:none;
}
.page-report .decision--locked .pill:last-child{
  border-color: rgba(32,227,178,.35);
  background: rgba(32,227,178,.10);
  color: rgba(32,227,178,.95);
}

/* Primary ranked decision */
.page-report .decision--primary{
  border-color: rgba(109,91,255,.45);
  background:
    radial-gradient(600px 220px at 10% 0%, rgba(109,91,255,.22), transparent 55%),
    rgba(255,255,255,.04);
  box-shadow: 0 12px 36px rgba(109,91,255,.18);
}

.decision-hint{
  display:inline-block;
  margin-bottom:6px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#c7ccff;
  opacity:.9;
}

.pill--impact{
  border-color: rgba(32,227,178,.35);
  background: rgba(32,227,178,.10);
  color:#b9fbe8;
}

.pill--effort{
  border-color: rgba(96,165,250,.35);
  background: rgba(96,165,250,.10);
  color:#cfe6ff;
}

.pill--risk{
  border-color: rgba(255,186,73,.35);
  background: rgba(255,186,73,.12);
  color:#ffe0b2;
}

.pill--confidence{
  border-color: rgba(109,91,255,.35);
  background: rgba(109,91,255,.10);
  color:#d9d4ff;
}
.page-report .decision{
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease;
}

.page-report .decision:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(0,0,0,.35);
  border-color: rgba(255,255,255,.22);
}

.page-report .decision:hover .title{
  color:#ffffff;
}
/* =========================
   Decision accordion
   ========================= */

.decision-actions{
  margin-top: 12px;
  display:flex;
  gap:10px;
  flex-wrap: wrap;
}

.decision-btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  color: rgba(234,234,234,.92);
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .01em;
  cursor:pointer;
  transition: transform .12s ease, border-color .2s ease, background .2s ease;
}

.decision-btn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.06);
}

.decision-panel{
  margin-top: 10px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  border-radius: 14px;
  padding: 12px;
  display:none;
}

.decision-panel.is-open{
  display:block;
}

.decision-panel h4{
  margin: 0 0 6px 0;
  font-size: 13px;
  font-weight: 950;
}

.decision-panel p{
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(234,234,234,.78);
}

.decision-panel ul{
  margin: 8px 0 0 18px;
  padding: 0;
  color: rgba(234,234,234,.78);
  font-size: 13px;
  line-height: 1.5;
}

.decision-panel li{
  margin: 4px 0;
}

/* =========================
   Decision tabs (Step 4)
   ========================= */

.decision-tabs{
  margin-top: 14px;
  display: inline-flex;
  gap: 8px;
  padding: 6px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}

.tab{
  appearance:none;
  border: 1px solid transparent;
  background: transparent;
  color: rgba(234,234,234,.70);
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .01em;
  cursor:pointer;
  transition: transform .12s ease, background .2s ease, border-color .2s ease, color .2s ease;
}

.tab:hover{
  transform: translateY(-1px);
  color: rgba(234,234,234,.88);
  background: rgba(255,255,255,.04);
}

.tab--active{
  color: rgba(234,234,234,.95);
  border-color: rgba(109,91,255,.32);
  background: rgba(109,91,255,.10);
}

.tab-panel{
  margin-top: 10px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  border-radius: 14px;
  padding: 12px;
}

.tab-panel h4{
  margin: 0 0 6px 0;
  font-size: 13px;
  font-weight: 950;
}

.tab-panel p{
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(234,234,234,.78);
}

.tab-panel ol{
  margin: 8px 0 0 18px;
  padding: 0;
  color: rgba(234,234,234,.78);
  font-size: 13px;
  line-height: 1.5;
}

.tab-panel li{
  margin: 4px 0;
}
/* =========================
   Pricing modal
   ========================= */
.modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.modal.is-open{ display:block; }

.modal__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(8px);
}

.modal__panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(980px, calc(100vw - 28px));
  height: min(82vh, 760px);
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(15,16,22,.92);
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.6);
}

.modal__close{
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(234,234,234,.9);
  cursor:pointer;
}

.modal__frame{
  width: 100%;
  height: 100%;
  border: 0;
}

/* prevent background scroll */
body.modal-open{ overflow:hidden; }

/* Upgrade CTA button */
.cta-upgrade{
  appearance:none;
  border:1px solid rgba(32,227,178,.35);
  background: rgba(32,227,178,.10);
  color: rgba(32,227,178,.95);
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 950;
  cursor:pointer;
}
.cta-upgrade:hover{
  background: rgba(32,227,178,.14);
}
/* =========================
   Ranked decisions: stepper layout
   ========================= */

.page-report #decisions{
  display:flex;
  flex-direction: column;
  gap: 14px;
}

.step{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  overflow: hidden;
}

.step__head{
  width:100%;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  cursor:pointer;
  background: transparent;
  border: 0;
  color: rgba(234,234,234,.95);
  text-align:left;
}

.step__head:hover{
  background: rgba(255,255,255,.03);
}

.step__left{
  display:flex;
  flex-direction: column;
  gap: 6px;
}

.step__kicker{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.step__title{
  font-size: 18px;
  font-weight: 950;
  line-height: 1.25;
}

.step__pill{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  font-size: 12px;
  font-weight: 900;
  color: rgba(234,234,234,.92);
  white-space: nowrap;
}

.step__right{
  display:flex;
  align-items:center;
  gap: 10px;
}

.step__chev{
  opacity:.7;
  font-weight: 900;
}

.step__body{
  display:none;
  padding: 0 16px 16px;
}

.step.is-open .step__body{
  display:block;
}

/* Locked step */
.step--locked{
  border-color: rgba(109,91,255,.28);
  background:
    radial-gradient(900px 300px at 30% -10%, rgba(109,91,255,.18), transparent 60%),
    rgba(255,255,255,.03);
}

.locked-msg{
  margin-top: 10px;
  border: 1px solid rgba(109,91,255,.22);
  background: rgba(109,91,255,.08);
  border-radius: 14px;
  padding: 12px;
  color: rgba(234,234,234,.82);
}
.locked-actions{
  margin-top: 12px;
  display:flex;
  justify-content:flex-end;
}

/* Example box inside Next steps */
.example-box{
  margin-top: 10px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  border-radius: 14px;
  padding: 10px 12px;
}

.example-title{
  font-size: 12px;
  font-weight: 950;
  opacity: .85;
  margin-bottom: 8px;
}

.example-row{
  display:flex;
  align-items:center;
  gap: 8px;
  margin: 6px 0;
}

.ex-label{
  min-width: 54px;
  font-size: 12px;
  opacity: .7;
}

.ex-chip{
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  font-size: 12px;
  font-weight: 900;
}

.small-text {
  font-size: 14px;
}
/* iframe pricing inside dashboard modal */
.plansFrame{
  width: 100%;
  height: min(78vh, 720px);
  border: 0;
  border-radius: 14px;
  background: transparent;
}

/* =========================
   PRICING (modal page)
   ========================= */
.pricingPage{
  background: transparent;
}

.pricingWrap{
  padding: 18px 18px 22px;
}

.pricingHead{
  margin-bottom: 14px;
}

.pricingTitle{
  margin: 0;
  font-size: 26px;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.pricingSubtitle{
  margin: 8px 0 0 0;
  color: rgba(234,234,234,.72);
  line-height: 1.5;
  max-width: 980px;
}

/* 3 columns */
.planGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

@media (max-width: 980px){
  .planGrid{ grid-template-columns: 1fr; }
}

.planCard{
  position: relative;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding: 16px;
  overflow: hidden;
  min-height: 250px;
}

.planTop{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 12px;
}

.planName{
  font-size: 18px;
  font-weight: 950;
}

.planTag{
  margin-top: 4px;
  font-size: 12px;
  color: rgba(234,234,234,.70);
}

.planChip{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(32,227,178,.35);
  background: rgba(32,227,178,.10);
  color: rgba(32,227,178,.95);
  font-weight: 950;
  font-size: 12px;
  white-space: nowrap;
}

.planFeatures{
  margin: 14px 0 0 0;
  padding: 0 0 0 16px;
  color: rgba(234,234,234,.84);
  line-height: 1.55;
}

.planFeatures li{
  margin: 6px 0;
}

.planCta{
  margin-top: 14px;
  width: 100%;
  appearance:none;
  border:1px solid rgba(109,91,255,.35);
  background: rgba(109,91,255,.16);
  color: rgba(234,234,234,.95);
  padding: 12px 14px;
  border-radius: 14px;
  font-weight: 950;
  cursor:pointer;
  transition: transform .12s ease, background .2s ease, border-color .2s ease;
}

.planCta:hover{
  transform: translateY(-1px);
  background: rgba(109,91,255,.20);
  border-color: rgba(109,91,255,.48);
}

.planCta--ghost{
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
}

.planCta--ghost:hover{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.22);
}

/* Most popular glow */
.planCard--popular{
  border-color: rgba(32,227,178,.25);
}

.planGlow{
  position:absolute;
  inset: -120px -120px auto -120px;
  height: 240px;
  background: radial-gradient(circle at 40% 40%, rgba(32,227,178,.22), transparent 60%);
  pointer-events:none;
}

.planCard--popular::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: 18px;
  border: 1px solid rgba(32,227,178,.16);
  pointer-events:none;
}

/* Compare table */
.compare{
  margin-top: 16px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  overflow: hidden;
}

.compareTitle{
  padding: 14px 16px;
  font-weight: 950;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.compareTable{
  display:flex;
  flex-direction: column;
}

.compareRow{
  display:grid;
  grid-template-columns: 1.6fr repeat(3, 1fr);
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  align-items: center;
}

.compareRow:last-child{
  border-bottom: 0;
}

.compareRow--head{
  background: rgba(255,255,255,.02);
  color: rgba(234,234,234,.78);
  font-weight: 950;
}

.compareCell{
  color: rgba(234,234,234,.86);
}

.compareCell--feature{
  color: rgba(234,234,234,.92);
  font-weight: 900;
}
