:root{
  --upspert-primary:#2A903A;
  --upspert-bg:#0B0B0C;
}

.upspert-cta-wrap{
  display:flex;
  justify-content:center;
  margin:24px 0 32px;
}

.upspert-cta-btn{
  background: var(--upspert-primary);
  color: #0B0B0C;
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  padding: 18px 24px;
  border-radius: 18px;
  border: none;
  cursor: pointer;
  max-width: 480px;
  width: 100%;
  box-shadow: 0 12px 30px rgba(0,0,0,0.25);
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

.upspert-cta-btn span{
  display:block;
  font-size:12px;
  font-weight:700;
  margin-top:6px;
  opacity:.85;
}

.upspert-cta-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0,0,0,0.35);
}

.upspert-modal{
  display:none;
  position:fixed;
  inset:0;
  background: rgba(0,0,0,0.75);
  z-index:99999;
  align-items:center;
  justify-content:center;
  padding: 16px;
}

.upspert-modal[aria-hidden="false"]{ display:flex; }

.upspert-modal-content{
  position:relative;
  width:100%;
  max-width:520px;
  background: var(--upspert-bg);
  color:#fff;
  border-radius: 20px;
  padding: 18px 18px 14px;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 24px 60px rgba(0,0,0,0.6);
}

.upspert-x{
  position:absolute;
  top:10px;
  right:12px;
  width:40px;
  height:40px;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  color:#fff;
  font-size:22px;
  cursor:pointer;
}

.upspert-stepbar{
  margin: 4px 0 10px;
  font-size: 12px;
  opacity: .75;
}

.upspert-h{
  margin: 4px 0 6px;
  font-size: 18px;
  font-weight: 900;
}

.upspert-p{
  margin: 0 0 12px;
  font-size: 13px;
  opacity: .82;
  line-height: 1.35;
}

.upspert-card{
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.05);
  border-radius: 16px;
  padding: 14px;
  margin: 12px 0;
}

.upspert-qtitle{
  font-weight: 900;
  margin-bottom: 10px;
}

.upspert-options{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.upspert-option{
  width:100%;
  text-align:left;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color:#fff;
  font-weight: 800;
  cursor:pointer;
}

.upspert-option:hover{
  background: rgba(27,191,114,0.20);
  border-color: rgba(27,191,114,0.45);
}

.upspert-meter-bar{
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.10);
  overflow:hidden;
  margin: 10px 0 10px;
}
.upspert-meter-fill{
  height:100%;
  background: var(--upspert-primary);
  border-radius: 999px;
}
.upspert-meter-label{
  font-size: 13px;
  opacity: .9;
}

.upspert-form .upspert-row{ margin-bottom: 10px; }
.upspert-form label{ display:block; font-size: 12px; opacity:.85; margin-bottom: 4px; font-weight: 800; }
.upspert-form input{
  width:100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(0,0,0,0.25);
  color: #fff;
}
.upspert-req{ color: var(--upspert-primary); }

.upspert-consent{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size: 12px;
  opacity: .85;
  margin: 10px 0 12px;
}
.upspert-consent input{ margin-top: 3px; }

.upspert-submit{
  width:100%;
  padding: 12px 14px;
  border-radius: 14px;
  border:none;
  background: var(--upspert-primary);
  color:#0B0B0C;
  font-weight: 900;
  cursor:pointer;
}
.upspert-submit:hover{ opacity:.92; }

.upspert-msg{
  margin-top: 10px;
  font-size: 12px;
  opacity: .9;
}

.upspert-footer{
  margin-top: 8px;
  text-align:center;
  opacity: .6;
  font-size: 11px;
}
