/* ===== CSS ===== */
.fr-card{
  max-width:520px;
  margin:20px auto;
  background: linear-gradient(180deg,#072635 0%, #0b2f43 100%);
  border-radius:14px;
  padding:20px;
  color:#ffffff;
  font-family:system-ui, -apple-system, Roboto, Arial, sans-serif;
  box-shadow:0 10px 30px rgba(3,10,18,0.6);
  border:1px solid rgba(255,255,255,0.03);
}

.fr-card h1{ margin:0 0 16px; line-height:1.1; }

.fr-field{ margin-bottom:14px; }

.fr-field label{
  display:block;
  font-size:14px;
  margin-bottom:6px;
  color:#e1eef0;
}

.fr-field select,
.fr-field input{
  width:100%;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.03);
  color:#ffffff;
  font-size:15px;
  outline:none;
  transition:box-shadow .15s, border-color .15s, transform .06s;
}

.fr-field select:focus,
.fr-field input:focus{
  box-shadow:0 6px 18px rgba(0,194,168,0.08);
  border-color: rgba(0,194,168,0.35);
  transform: translateY(-1px);
}

.fr-btn{
  width:100%;
  padding:14px;
  border-radius:10px;
  border:0;
  background:linear-gradient(90deg,#00c2a8,#6c7cff);
  color:#002427;
  font-weight:800;
  cursor:pointer;
  font-size:16px;
  margin-top:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:transform .08s ease, box-shadow .12s ease, opacity .12s;
}

/* pressed visual */
.fr-btn:active{ transform:translateY(1px) scale(0.998); }

/* disabled state */
.fr-btn[aria-disabled="true"]{ opacity:0.7; cursor:not-allowed; transform:none; }

/* spinner inserted inside button */
.fr-spinner{
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.25);
  border-top-color: #002427;
  animation:spin .85s linear infinite;
  display:inline-block;
  box-sizing:border-box;
}

@keyframes spin{ to { transform:rotate(360deg); } }

/* Success box */
.fr-success{
  display:none;
  margin-top:14px;
  padding:14px;
  border-radius:12px;
  background: linear-gradient(180deg, rgba(11,179,122,0.10), rgba(11,179,122,0.06));
  color:#0bf0c5;
  text-align:center;
  font-weight:700;
  font-size:15px;
  box-shadow: 0 8px 24px rgba(11,179,122,0.06);
  align-items:center;
  justify-content:center;
  gap:10px;
}

/* tick + texts inside success */
.tick-wrap{ display:flex; align-items:center; justify-content:center; margin-bottom:6px; }
.tick{ width:44px; height:44px; }

/* titles */
.succ-title{ color:#0bf0c5; font-weight:800; font-size:16px; margin-bottom:4px; }
.succ-sub{ color: rgba(255,255,255,0.9); font-weight:600; font-size:14px; }

/* animation for success reveal */
.fr-success.show{
  display:flex;
  flex-direction:column;
  animation:popIn .36s cubic-bezier(.2,.9,.3,1);
}
@keyframes popIn{
  0%{ opacity:0; transform:translateY(10px) scale(.98); }
  60%{ opacity:1; transform:translateY(-6px) scale(1.02); }
  100%{ transform:translateY(0) scale(1); }
}

.fr-error{
  color:#ff9c9c;
  font-size:13px;
  margin-top:6px;
}

/* Responsive tweaks */
@media (max-width:520px){
  .fr-card{ padding:16px; margin:14px; }
  .fr-btn{ font-size:15px; padding:12px; }
  .tick{ width:40px; height:40px; }
}
