:root{
  /* Brand */
  --th-accent:#9ef01a;     /* verde */
  --th-navy:#0f172a;       /* fondo */

  /* Surfaces */
  --th-surface:#111827;
  --th-surface-2:#0b1220;
  --th-border:#1f2937;

  /* Text */
  --th-text:#e5e7eb;
  --th-muted:#94a3b8;
  --th-danger:#ef4444;

  /* Legacy (compat) */
  --th-blue: var(--th-accent);
  --th-dark: var(--th-navy);
  --th-light:#f8fafc;
  --th-green: var(--th-accent);
  --th-red: var(--th-danger);
}

/* Legacy utility classes (no rompen pantallas antiguas) */
.bg-th-blue   {background-color: var(--th-blue);}
.text-th-blue {color: var(--th-blue);}
.bg-th-dark   {background-color: var(--th-dark);}
.bg-th-light  {background-color: var(--th-light);}
.bg-th-green  {background-color: var(--th-green);}
.text-th-red  {color: var(--th-red);}

/* =========================
   TransferHub 2.0 (Mockplus)
   ========================= */
.th-page{
  min-height:100vh;
  background: radial-gradient(1200px 700px at 20% -10%, rgba(158,240,26,.10), transparent 60%),
              radial-gradient(1000px 600px at 110% 10%, rgba(14,165,233,.10), transparent 55%),
              var(--th-navy);
  color: var(--th-text);
  display:flex;
  align-items:center;
}

.th-container{
  width:100%;
  max-width:72rem;
  margin:0 auto;
  padding:2.5rem 1.5rem;
}
.th-container-sm{max-width:28rem;}

.th-brand{
  display:flex;
  align-items:center;
  gap:.75rem;
}
.th-brand img{display:block;}

.th-card{
  background: rgba(17,24,39,.62);
  border: 1px solid var(--th-border);
  border-radius: 1.25rem;
  padding: 1.5rem;
  box-shadow: 0 20px 50px rgba(0,0,0,.35);
  backdrop-filter: blur(12px);
}

.th-title{font-size:1.1rem; font-weight:700;}
.th-subtitle{margin-top:.35rem; font-size:.9rem; color:var(--th-muted);}

.th-grid{display:grid; gap:1.25rem;}
@media (min-width:768px){
  .th-grid-3{grid-template-columns:repeat(3, minmax(0,1fr));}
  .th-grid-2{grid-template-columns:repeat(2, minmax(0,1fr));}
}

.th-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.65rem 1rem;
  border-radius: .95rem;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  user-select:none;
  transition: transform .06s ease, opacity .2s ease, background-color .2s ease, border-color .2s ease;
}
.th-btn:active{transform: translateY(1px);}

.th-btn-primary{
  background: var(--th-accent);
  color: #0b1220;
}
.th-btn-primary:hover{opacity:.92;}

.th-btn-outline{
  background: transparent;
  border: 1px solid var(--th-border);
  color: var(--th-text);
}
.th-btn-outline:hover{border-color: rgba(158,240,26,.45);}

.th-input{
  width:100%;
  background: rgba(11,18,32,.9);
  color: var(--th-text);
  border: 1px solid var(--th-border);
  border-radius: .95rem;
  padding: .7rem .95rem;
}
.th-input::placeholder{color: rgba(148,163,184,.8);}
.th-input:focus{
  outline:none;
  border-color: rgba(158,240,26,.55);
  box-shadow: 0 0 0 3px rgba(158,240,26,.20);
}

.th-alert{
  border-radius: .95rem;
  padding: .75rem .9rem;
  font-size: .9rem;
  border: 1px solid;
}
.th-alert-error{
  color: #fecaca;
  background: rgba(127,29,29,.25);
  border-color: rgba(239,68,68,.35);
}

.th-link{color: var(--th-accent); font-weight:700; text-decoration:none;}
.th-link:hover{text-decoration:underline;}

/* Small helpers */
.th-muted{color: var(--th-muted);}

/* =========================
   AUTH / REGISTROS UNIFICADOS
   ========================= */

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

.th-auth-wrap{
  width:100%;
  max-width:1180px;
}

.th-auth-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-bottom:22px;
}

.th-auth-brand img{
  object-fit:contain;
}

.th-auth-card{
  background:rgba(9,18,42,.72);
  border:1px solid rgba(148,163,184,.14);
  border-radius:28px;
  box-shadow:0 20px 60px rgba(0,0,0,.28);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:28px;
}

.th-auth-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}

.th-auth-col{
  min-width:0;
}

.th-auth-col + .th-auth-col{
  border-left:1px solid rgba(148,163,184,.14);
  padding-left:28px;
}

.th-section-title{
  font-size:1.75rem;
  line-height:1.2;
  font-weight:800;
  color:#f8fafc;
  margin:0 0 8px;
}

.th-section-subtitle{
  font-size:.98rem;
  line-height:1.6;
  color:#94a3b8;
  margin:0 0 20px;
}

.th-form{
  display:grid;
  gap:16px;
}

.th-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.th-field{
  display:grid;
  gap:7px;
}

.th-label{
  font-size:.92rem;
  font-weight:700;
  color:#cbd5e1;
}

.th-help{
  font-size:.84rem;
  color:#94a3b8;
}

.th-input,
.th-select,
.th-textarea{
  width:100%;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(15,23,42,.62);
  color:#f8fafc;
  border-radius:14px;
  padding:14px 15px;
  outline:none;
  transition:.2s ease;
}

.th-input::placeholder,
.th-textarea::placeholder{
  color:#64748b;
}

.th-input:focus,
.th-select:focus,
.th-textarea:focus{
  border-color:rgba(158,240,26,.55);
  box-shadow:0 0 0 4px rgba(158,240,26,.10);
}

.th-textarea{
  min-height:110px;
  resize:vertical;
}

.th-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:6px;
}

.th-btn-full{
  width:100%;
  justify-content:center;
}

.th-divider{
  height:1px;
  background:rgba(148,163,184,.14);
  margin:8px 0 2px;
}

.th-box-note{
  border:1px solid rgba(148,163,184,.14);
  background:rgba(15,23,42,.42);
  border-radius:16px;
  padding:14px 16px;
  color:#cbd5e1;
  font-size:.92rem;
}

.th-link-muted{
  color:#93c5fd;
  text-decoration:none;
}

.th-link-muted:hover{
  text-decoration:underline;
}

@media (max-width: 980px){
  .th-auth-grid{
    grid-template-columns:1fr;
  }

  .th-auth-col + .th-auth-col{
    border-left:0;
    border-top:1px solid rgba(148,163,184,.14);
    padding-left:0;
    padding-top:26px;
  }
}

@media (max-width: 640px){
  .th-auth-card{
    padding:20px;
    border-radius:22px;
  }

  .th-form-grid{
    grid-template-columns:1fr;
  }

  .th-section-title{
    font-size:1.45rem;
  }
}