html, body { height:100%; margin:0; }
body.nftixp-auth { font-family: var(--nftixp-font, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif); }
.nftixp-auth input,
.nftixp-auth select,
.nftixp-auth textarea,
.nftixp-auth button {
  font-family: inherit;
}

.nftixp-auth-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}

.nftixp-card{
  width:100%;
  max-width:300px;
  background:#fff;
  border-radius:18px;
  padding:28px;
  box-shadow:0 0 50px rgba(0,0,0,0.5);
}

.nftixp-logo{ display:flex; justify-content:center; margin-bottom:20px; }
.nftixp-logo img{ max-width:220px; height:auto; }
.nftixp-logo-text{ font-size:44px; font-weight:900; }

.nftixp-intro{
  margin: 6px 0 14px;
  font-size: 13px;
  line-height: 1.35;
  color:#111;
}
.nftixp-intro a{ text-decoration:underline; font-weight:400; }

.nftixp-alert{ padding:10px 12px; border-radius:12px; margin:10px 0; text-align:center; font-size:12.5px; border:1px dashed currentColor; }
.nftixp-alert-success{ background:#d8ffe5; color:#065f46; }
.nftixp-alert-error{ background:#ffe0e0; color:#991b1b; }

.nftixp-turnstile{ display:flex; justify-content:center; margin:0; }

.nftixp-btn{
  width:100%;
  margin-top:14px;
  padding:14px 16px;
  border:none;
  border-radius:14px;
  background:#5a54ff;
  color:#fff;
  font-weight:800;
  font-size:16px;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transform: translateZ(0);
}
.nftixp-btn:hover{ filter:brightness(1.05); }
.nftixp-btn:active{ transform:scale(0.99); }
.nftixp-btn[disabled]{ opacity:.85; cursor:not-allowed; }

.nftixp-btn-bar{
  position:absolute;
  left:0; top:0; bottom:0;
  width:0%;
  background:#22c55e;
  opacity:.95;
}
.nftixp-btn.is-loading .nftixp-btn-bar{
  animation: nftixpFill 1.4s linear infinite;
}
@keyframes nftixpFill{
  0%{ width:0%; }
  100%{ width:100%; }
}

.nftixp-inline-link{
  font-weight:400;
  text-decoration: underline;
}
.nftixp-links{
  margin-top:10px;
  text-align:center;
}
.nftixp-link{
  font-size: 13px;
  font-weight:400;
  text-decoration: underline;
}
.nftixp-alt-link{
  margin-top:12px;
  text-align:center;
}
.nftixp-alt-link a{
  font-size:12.5px;
  font-weight:400;
  color:#111;
  text-decoration:underline;
}

/* Alerts smaller */
.nftixp-alert { font-size: 12.5px; }
.nftixp-alert div { font-size: 12.5px; }

/* Field input text bigger (labels unchanged) */
.nftixp-fieldset legend{
  font-size: 13px; /* keep label size */
}
.nftixp-fieldset input{
  font-size: 16px;  /* bigger input text */
  line-height: 1.2;
}

/* Forgot link smaller */
.nftixp-forgot{
  margin-top:10px;
  text-align:center;
}
.nftixp-forgot a{
  font-size:12.5px;
  font-weight:400;
  text-decoration:underline;
}
.nftixp-underrow{
  margin-top:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
}
.nftixp-underrow-center{
  justify-content:center;
}
.nftixp-underlink{
  font-size:11.5px;
  font-weight:400;
  text-decoration:underline;
  color: var(--nftixp-link, #111);
}
/* ---------- Compact fieldset + floating legend fix ---------- */
.nftixp-fieldset {
  position: relative;
  margin: 18px 0 12px 0;            /* tighter space BETWEEN fields */
  padding: 0;                /* remove browser padding */
  border: 0;                 /* border is handled by input */
  min-height: auto;
}
.nftixp-fieldset legend {
  position: absolute;
  top: -9px;                 /* pulls label into border */
  left: 14px;
  padding: 0 6px;
  font-size: 12px;
  line-height: 1;
  background: #fff;
  color: #666;
  pointer-events: none;
  z-index: 2;
}

.nftixp-fieldset input {
  width: 100%;
  height: 46px;              /* controls field height */
  padding: 10px 14px;        /* EVEN top/bottom padding */
  font-size: 15px;           /* bigger input text */
  line-height: 1.2;
  border-radius: 12px;
  border: 1.5px solid #bfc7ea;
  background: #fff;
  box-sizing: border-box;
}

/* Focus state */
.nftixp-fieldset input:focus {
  outline: none;
  border-color: var(--nftixp-primary, #5a54ff);
}

/* Remove extra vertical spacing caused by browser defaults */
.nftixp-fieldset::before,
.nftixp-fieldset::after {
  display: none;
}
/* ---------- Kill browser autofill background ---------- */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
  box-shadow: 0 0 0 1000px #ffffff inset !important;
  -webkit-text-fill-color: #000 !important;
  transition: background-color 9999s ease-out 0s;
}

/* Firefox */
input:-moz-autofill {
  box-shadow: 0 0 0 1000px #ffffff inset !important;
  -moz-text-fill-color: #000 !important;
}
.nftixp-field-error{
  border:1px dashed #e5b3b3 !important;
  background:#ffe0e0 !important;
}
.nftixp-helper{
  margin: -8px 0 14px;
  font-size:12px;
  color:#444;
}
.nftixp-toggle-row{
  margin-top:-4px;
  margin-bottom:6px;
  font-size:12px;
  text-align:left;
}
.nftixp-toggle-right{
  text-align:right;
}
.nftixp-pass-wrap{
  position:relative;
  display:flex;
  align-items:center;
}
.nftixp-pass-wrap input{
  width:100%;
  padding-right:42px;
}
.nftixp-eye{
  position:absolute;
  right:10px;
  background:transparent;
  border:none;
  width:26px;
  height:26px;
  cursor:pointer;
  padding:0;
  opacity:0.6;
}
.nftixp-eye::before{
  content:'\1F441';
  font-size:18px;
}
.nftixp-eye.is-on::before{
  content:'\1F441\FE0F';
  opacity:1;
}
.nftixp-btn.is-disabled{
  opacity: .65;
  cursor: not-allowed;
  transform: none !important;
}
/* Under-button links */
.nftixp-underrow{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-top:10px;
  width:100%;
}
.nftixp-underrow-center{
  justify-content:center;
}
.nftixp-underlink{
  font-size:12px;
  font-weight:400;
  text-decoration:underline;
  line-height:1.2;
  white-space:nowrap;
}
.nftixp-footnote{
  margin-top:10px;
  text-align:center;
  font-size:12px;
  color: var(--nftixp-link, #111);
}
.nftixp-footnote-sep{
  border-top:1px solid #e5e5e5;
  margin:15px 0 12px;
}
@media (max-width: 420px){
  .nftixp-underrow{
    gap:10px;
  }
  .nftixp-underlink{
    font-size:11px;
    white-space:normal;
  }
}

/* Disabled + loading button visuals */
.nftixp-btn.is-disabled{ opacity:.65; cursor:not-allowed; }
h2{ font-size:smaller; }