/* ── AUTH MODAL — identical to apps dashboard ── */
.modal-bg{
  position:fixed;inset:0;z-index:500;
  background:rgba(10,6,2,.85);
  display:flex;align-items:center;justify-content:center;
  padding:20px;opacity:0;pointer-events:none;
  transition:opacity .25s;
}
.modal-bg.on{opacity:1;pointer-events:all;}
.modal-bg .modal{
  background:var(--nv-cream);border-radius:16px;
  padding:30px 26px;width:100%;max-width:400px;
  position:relative;transform:translateY(16px);
  transition:transform .25s;
  max-height:90vh;overflow-y:auto;
}
.modal-bg.on .modal{transform:translateY(0);}
.modal-x{
  position:absolute;top:14px;right:16px;
  background:none;border:none;font-size:1.3rem;
  color:var(--nv-muted);cursor:pointer;padding:4px;
}
.modal-x:hover{color:var(--nv-text);}
.modal-bg .modal h2{
  font-family:'Playfair Display',serif;
  font-size:1.4rem;color:var(--nv-dark);margin-bottom:4px;
}
.modal-sub{color:var(--nv-muted);font-size:.83rem;margin-bottom:18px;}
.tabs{
  display:flex;background:var(--nv-bg);
  border-radius:8px;padding:3px;margin-bottom:20px;gap:3px;
}
.tab{
  flex:1;background:none;border:none;
  font-family:'DM Sans',sans-serif;font-size:.84rem;font-weight:500;
  color:var(--nv-muted);padding:8px;border-radius:6px;cursor:pointer;transition:all .2s;
}
.tab.active{background:var(--nv-dark);color:var(--nv-gold);}
.field{margin-bottom:13px;}
.field label{
  display:block;font-size:.74rem;font-weight:600;
  color:var(--nv-text);margin-bottom:5px;
}
.field input{
  width:100%;background:#fff;border:1px solid var(--nv-border);
  border-radius:8px;padding:11px 13px;
  font-family:'DM Sans',sans-serif;font-size:.9rem;
  color:var(--nv-text);outline:none;transition:border-color .2s;
  -webkit-appearance:none;
}
.field input:focus{border-color:var(--nv-gold);}
.btn-auth{
  width:100%;background:var(--nv-gold);color:var(--nv-dark);
  border:none;font-family:'DM Sans',sans-serif;
  font-size:.93rem;font-weight:700;padding:13px;
  border-radius:8px;cursor:pointer;transition:all .2s;margin-top:4px;
}
.btn-auth:hover{background:var(--nv-gold-light);}
.btn-auth:disabled{opacity:.55;cursor:not-allowed;}
.btn-google{
  width:100%;background:#fff;color:#3c4043;
  border:1px solid #dadce0;font-family:'DM Sans',sans-serif;
  font-size:.9rem;font-weight:500;padding:11px 16px;
  border-radius:8px;cursor:pointer;transition:all .2s;
  display:flex;align-items:center;justify-content:center;
  gap:10px;margin-bottom:16px;
}
.btn-google:hover{background:#f8f9fa;border-color:#bdc1c6;box-shadow:0 1px 6px rgba(60,64,67,.12);}
.btn-google:disabled{opacity:.6;cursor:not-allowed;}
.btn-google svg{flex-shrink:0;}
.auth-divider{
  display:flex;align-items:center;gap:10px;margin-bottom:16px;
}
.auth-divider::before,.auth-divider::after{
  content:'';flex:1;height:1px;background:var(--nv-border);
}
.auth-divider-text{font-size:.72rem;color:var(--nv-muted);white-space:nowrap;}
.auth-note{text-align:center;margin-top:9px;font-size:.74rem;color:var(--nv-muted);}
.forgot{text-align:center;margin-top:8px;}
.forgot a{font-size:.74rem;color:var(--nv-muted);text-decoration:none;}
.forgot a:hover{color:var(--nv-gold);}
.err{
  background:#FEF2F2;border:1px solid #FECACA;color:#DC2626;
  font-size:.77rem;padding:9px 12px;border-radius:8px;
  margin-bottom:12px;display:none;
}
.err.on{display:block;}
.ok-msg{
  background:#F0FDF4;border:1px solid #BBF7D0;color:#15803D;
  font-size:.77rem;padding:9px 12px;border-radius:8px;
  margin-bottom:12px;display:none;
}
.ok-msg.on{display:block;}
/* hero CTA button (replaces inline auth card) */
.hero-auth-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(90deg,var(--nv-gold),var(--nv-gold-amber));
  color:var(--nv-dark);border:none;border-radius:var(--r);
  padding:15px 32px;font-size:.9rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  transition:opacity .2s,transform .15s;
  font-family:'DM Sans',sans-serif;
}
.hero-auth-cta:hover{opacity:.9;transform:translateY(-1px);}
.hero-auth-secondary{
  display:block;margin-top:10px;
  font-size:.75rem;color:rgba(255,255,255,.28);cursor:pointer;
}
.hero-auth-secondary:hover{color:var(--nv-gold-light);}

/* Report cards (landing) */
.reports-section{background:var(--nv-dark-mid);padding:52px 24px;}
.reports-section-inner{max-width:920px;margin:0 auto;}
.section-head{text-align:center;margin-bottom:28px;}
.section-h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(20px,4vw,28px);font-weight:700;color:#fff;margin-bottom:6px;
}
.section-sub{font-size:.82rem;color:rgba(255,255,255,.28);}
.reports-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:12px;
}
.rcard{
  background:rgba(255,255,255,.03);border:1px solid rgba(201,168,76,.14);
  border-radius:var(--rlg);padding:20px 16px;cursor:pointer;
  transition:all .2s;display:flex;flex-direction:column;gap:10px;
  position:relative;overflow:hidden;
}
.rcard::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--nv-gold),transparent);
  opacity:0;transition:opacity .2s;
}
.rcard:hover{
  border-color:rgba(201,168,76,.35);
  background:rgba(201,168,76,.04);
  transform:translateY(-2px);
}
.rcard:hover::before{opacity:1;}
.rcard-icon{font-size:1.6rem;line-height:1;}
.rcard-name{
  font-family:'Playfair Display',serif;
  font-size:.95rem;font-weight:700;color:#fff;
}
.rcard-sub{font-size:.72rem;color:rgba(255,255,255,.3);line-height:1.5;}
.rcard-foot{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:auto;
}
.rcard-price{
  font-family:'Playfair Display',serif;
  font-size:.95rem;font-weight:700;color:var(--nv-gold);
}
.rcard-status{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.status-avail{color:rgba(255,255,255,.2);}
.status-ready{color:var(--nv-green);}
.status-gen{color:var(--nv-gold);}

/* Token packs (landing) */
.packs-section{background:var(--nv-dark);padding:52px 24px;}
.packs-inner{max-width:700px;margin:0 auto;}
.packs-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:14px;margin-top:28px;
}
.lpack{
  background:rgba(255,255,255,.03);border:1px solid rgba(201,168,76,.15);
  border-radius:var(--rlg);padding:22px 16px;text-align:center;
  position:relative;overflow:hidden;transition:all .2s;
}
.lpack:hover{border-color:rgba(201,168,76,.35);transform:translateY(-2px);}
.lpack.pop{border-color:rgba(201,168,76,.28);}
.lpack.pop::before{
  content:'Most Popular';position:absolute;top:10px;right:-24px;
  background:var(--nv-gold);color:var(--nv-dark);
  font-size:7px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 28px;transform:rotate(45deg);
}
.lpack-tokens{
  font-size:.68rem;color:rgba(255,255,255,.28);
  text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:6px;
}
.lpack-price{
  font-family:'Playfair Display',serif;
  font-size:1.7rem;font-weight:700;color:var(--nv-gold);
  display:block;margin-bottom:3px;
}
.lpack-save{font-size:.68rem;color:var(--nv-green);display:block;margin-bottom:14px;min-height:16px;}
.lpack-btn{
  display:block;width:100%;padding:9px;
  background:rgba(201,168,76,.1);border:1px solid rgba(201,168,76,.3);
  border-radius:var(--r);color:var(--nv-gold);
  font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;transition:all .2s;
}
.lpack-btn:hover{background:var(--nv-gold);color:var(--nv-dark);}

/* ══════════════════════════════════════════════
   SCREEN: OTP (email verification)
══════════════════════════════════════════════ */
.center-wrap{
  min-height:calc(100vh - 96px);
  display:flex;align-items:center;justify-content:center;
  padding:40px 24px;
}
.otp-card{
  background:rgba(255,255,255,.04);border:1px solid rgba(201,168,76,.2);
  border-radius:var(--rlg);padding:40px 32px;
  max-width:420px;width:100%;text-align:center;
}
.otp-icon{font-size:2.8rem;display:block;margin-bottom:18px;}
.otp-title{
  font-family:'Playfair Display',serif;
  font-size:1.4rem;font-weight:700;color:#fff;margin-bottom:8px;
}
.otp-sub{
  font-size:.85rem;color:rgba(255,255,255,.35);
  line-height:1.65;margin-bottom:24px;
}
.otp-sub span{color:var(--nv-gold-light);}
.otp-digits{
  display:flex;gap:8px;justify-content:center;margin-bottom:16px;
}
.otp-digit{
  width:46px;height:54px;
  background:rgba(255,255,255,.05);border:1px solid rgba(201,168,76,.22);
  border-radius:var(--r);text-align:center;
  font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;
  color:var(--nv-gold);outline:none;
  transition:border-color .2s;
}
.otp-digit:focus{border-color:var(--nv-gold);}
.otp-resend{
  font-size:.74rem;color:rgba(255,255,255,.2);margin-bottom:20px;
}
.otp-resend a{color:var(--nv-gold);cursor:pointer;}
.otp-alt{
  margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07);
  font-size:.72rem;color:rgba(255,255,255,.2);
}
.otp-alt a{color:var(--nv-gold-light);cursor:pointer;}

