:root{--sms-cyan:#00d5ff;--sms-bg:#050914;--sms-card:#0c1728;--sms-border:rgba(0,213,255,.22)}
body{min-height:100vh;background:radial-gradient(circle at 70% 20%,rgba(0,213,255,.18),transparent 28%),linear-gradient(135deg,#040711,#081426 50%,#050914);color:#eafaff;font-family:Inter,Segoe UI,Arial,sans-serif}.front-nav{background:rgba(2,8,18,.66);backdrop-filter:blur(16px);border-bottom:1px solid var(--sms-border)}.glow{color:#fff;text-shadow:0 0 12px rgba(0,213,255,.85),0 0 32px rgba(0,213,255,.35)}.hero{padding:90px 0 70px}.hero-card,.front-card{background:linear-gradient(145deg,rgba(12,23,40,.94),rgba(7,13,26,.88));border:1px solid var(--sms-border);border-radius:24px;box-shadow:0 0 35px rgba(0,213,255,.12),inset 0 1px 0 rgba(255,255,255,.04)}.btn-neon{background:linear-gradient(90deg,#00d5ff,#5eead4);border:0;color:#00111b;font-weight:800;box-shadow:0 0 18px rgba(0,213,255,.35)}.btn-neon:hover{filter:brightness(1.08);color:#00111b}.feature{border:1px solid var(--sms-border);border-radius:18px;background:rgba(8,16,31,.75);padding:22px;height:100%}.form-control{background:#07111f;border:1px solid rgba(0,213,255,.25);color:#eafaff}.form-control:focus{background:#07111f;color:#fff;border-color:#00d5ff;box-shadow:0 0 0 .2rem rgba(0,213,255,.15)}.small-muted{color:#9bdcff}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 14px}.auth-card{width:min(520px,100%);padding:30px}.code-box{font-size:1.2rem;letter-spacing:.2em;text-align:center}.footer-line{border-top:1px solid var(--sms-border);color:#7fb8cc}.badge-soft{background:rgba(0,213,255,.12);border:1px solid rgba(0,213,255,.25);color:#9df2ff}
.qr-box{background:#fff;border-radius:16px;padding:10px;max-width:260px;width:100%;height:auto;box-shadow:0 0 30px rgba(0,213,255,.25)}
.auth-card-wide{max-width:760px!important;width:min(760px,95vw)!important}

.app-badge-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.app-store-badge-link{display:inline-flex;align-items:center;text-decoration:none;opacity:.96;transition:transform .16s ease,filter .16s ease,opacity .16s ease}
.app-store-badge-link:hover{transform:translateY(-1px);filter:drop-shadow(0 0 12px rgba(0,213,255,.35));opacity:1}
.app-store-badge{height:42px;width:auto;max-width:160px;display:block}
@media (max-width:576px){.app-store-badge{height:38px;max-width:145px}}


/* App store badge layout fix */
.app-badge-row{display:flex;flex-wrap:nowrap;gap:10px;align-items:center;width:100%;}
.app-badge-row-split{justify-content:space-between;}
.app-badge-row-split .app-store-badge-link:first-child{justify-content:flex-start;}
.app-badge-row-split .app-store-badge-link:last-child{justify-content:flex-end;}
.app-store-badge-link,.app-store-badge-link:link,.app-store-badge-link:visited,.app-store-badge-link:hover,.app-store-badge-link:active,.app-store-badge-link:focus{display:flex;align-items:center;text-decoration:none!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;line-height:0!important;min-width:0;}
.app-store-badge{height:44px;width:auto;max-width:100%;display:block;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;}
@media (max-width:576px){.app-badge-row{gap:8px}.app-store-badge{height:38px}.app-badge-row-split{justify-content:space-between}}


/* Highlight expired verification-code resend action */
.btn-resend-pulse {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 193, 7, .85);
  background: linear-gradient(90deg, #ffcc33, #ff7a18, #ffcc33);
  background-size: 200% 100%;
  color: #120800 !important;
  font-weight: 900;
  letter-spacing: .01em;
  box-shadow: 0 0 0 rgba(255, 193, 7, .0), 0 0 24px rgba(255, 193, 7, .38);
  animation: resendPulse 1.45s ease-in-out infinite, resendGradient 2.8s linear infinite;
}
.btn-resend-pulse:hover,
.btn-resend-pulse:focus {
  color: #120800 !important;
  filter: brightness(1.08);
  border-color: rgba(255, 235, 59, 1);
  box-shadow: 0 0 0 .22rem rgba(255, 193, 7, .22), 0 0 34px rgba(255, 193, 7, .58);
}
.btn-resend-pulse::after {
  content: "";
  position: absolute;
  top: 0;
  left: -80%;
  width: 55%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
  transform: skewX(-18deg);
  animation: resendShine 2.2s ease-in-out infinite;
}
.btn-resend-pulse i,
.btn-resend-pulse span {
  position: relative;
  z-index: 1;
}
@keyframes resendPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 20px rgba(255, 193, 7, .36); }
  50% { transform: scale(1.025); box-shadow: 0 0 0 .18rem rgba(255, 193, 7, .18), 0 0 42px rgba(255, 193, 7, .72); }
}
@keyframes resendGradient {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
@keyframes resendShine {
  0% { left: -80%; opacity: 0; }
  20% { opacity: 1; }
  55% { left: 125%; opacity: 0; }
  100% { left: 125%; opacity: 0; }
}


/* Password reset TOTP information */
.totp-reset-box{
  border:1px solid rgba(0,213,255,.22);
  border-radius:18px;
  background:rgba(3,10,22,.42);
  padding:18px;
  height:100%;
}
.manual-key-box{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-all;
  font-size:1rem;
  line-height:1.45;
  font-weight:800;
  letter-spacing:.06em;
  color:#ffb86b;
  background:rgba(255,184,107,.10);
  border:1px solid rgba(255,184,107,.32);
  border-radius:12px;
  padding:12px 14px;
}
