/* ==========================================================================
   Acceso único (/admin/login): equipo TST y clientes de la tienda.
   Cabecera, menú hamburguesa y pie son los de la home (lib/siteChrome.js);
   aquí solo va la tarjeta de acceso, con el mismo verde del pie.
   ========================================================================== */
body.tst-login-page { background: #1f6f63; }
.tst-login-page .login-wrap {
  display: grid; place-items: center; min-height: calc(100svh - 90px);
  padding: calc(var(--store-header-h, 89px) + 2rem) 1.2rem 3rem;
  background: #1f6f63;
  background-image: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.4px);
  background-size: 30px 30px;
}
.tst-login-page .login-card {
  width: 100%; max-width: 430px; padding: 2.4rem 2.1rem;
  border: 1px solid #ffffff1f; border-radius: 22px; color: #fff;
  background: #0e2e2a; background-image: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.4px); background-size: 30px 30px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
}
.tst-login-page .login-logo { display: block; height: 52px; margin: 0 auto 1.2rem; }
.tst-login-page .login-card h1 { margin: 0 0 .35rem; color: #fff; font: 800 1.45rem Montserrat, sans-serif; text-align: center; letter-spacing: -.01em; }
.tst-login-page .login-sub { margin: 0 0 1.6rem; color: #c1d8d0; font-size: .9rem; text-align: center; }
.tst-login-page .field { margin-bottom: 1.05rem; }
.tst-login-page .field label { display: block; margin-bottom: .45rem; color: #c1d8d0; font-size: .76rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.tst-login-page .field input {
  width: 100%; min-height: 48px; padding: .8rem 1rem; border: 1px solid #ffffff1f; border-radius: 12px;
  color: #fff; background: #0a2523; font: inherit; font-size: .98rem; box-sizing: border-box;
}
.tst-login-page .field input:focus { border-color: #a8ebd0; outline: none; box-shadow: 0 0 0 3px rgba(0, 212, 170, .15); }
.tst-login-page .field input:-webkit-autofill { -webkit-box-shadow: inset 0 0 0 1000px #0a2523; -webkit-text-fill-color: #fff; caret-color: #fff; }
.tst-login-page .login-submit {
  display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; min-height: 50px; margin-top: .4rem;
  border: 0; border-radius: 999px; color: #fff; background: linear-gradient(135deg, #3fae9a, #1f6f63);
  font: 700 .95rem Inter, sans-serif; cursor: pointer; box-shadow: 0 10px 24px rgba(0, 0, 0, .25);
}
.tst-login-page .login-submit:hover { filter: brightness(1.08); }
.tst-login-page .alert { margin-bottom: 1.1rem; padding: .75rem 1rem; border: 1px solid rgba(255, 78, 78, .4); border-radius: 10px; color: #ffb4b4; background: rgba(255, 78, 78, .12); font-size: .88rem; text-align: center; overflow-wrap: anywhere; line-height: 1.5; }
.tst-login-page .alert-info { border-color: rgba(0, 212, 170, .4); color: #8fe9d4; background: rgba(0, 212, 170, .12); }
.tst-login-page .password-hint { margin: -.3rem 0 1rem; color: #c1d8d0; font-size: .8rem; line-height: 1.5; }
.tst-login-page .login-help { display: flex; justify-content: center; flex-wrap: wrap; gap: .2rem 1.2rem; margin-top: 1rem; }
.tst-login-page .login-help a { display: inline-flex; align-items: center; gap: .45rem; min-height: 40px; color: #a8ebd0; font-size: .88rem; text-decoration: none; }
.tst-login-page .login-help a:hover { color: #fff; }
.tst-login-page .login-register { margin: 1.1rem 0 0; padding-top: 1.1rem; border-top: 1px solid #ffffff1a; color: #c1d8d0; font-size: .9rem; text-align: center; }
.tst-login-page .login-register a { color: #8ff3d9; font-weight: 700; text-decoration: underline; }
.tst-login-page .login-foot { margin: 1.2rem 0 0; color: #8fb0a8; font-size: .76rem; text-align: center; }

/* Google / Facebook sobre la tarjeta oscura */
.tst-login-page .social-login { display: grid; gap: .6rem; }
.tst-login-page .social-btn { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .6rem 1rem; border: 0; border-radius: 999px; color: #1f1f1f; background: #fff; font: 700 .92rem Inter, sans-serif; text-decoration: none; }
.tst-login-page .social-btn--facebook { color: #fff; background: #1877f2; }
.tst-login-page .social-btn--facebook i { font-size: 1.2rem; }
.tst-login-page .social-divider { display: flex; align-items: center; gap: .8rem; margin: 1.1rem 0; color: #8fb0a8; font-size: .78rem; }
.tst-login-page .social-divider::before, .tst-login-page .social-divider::after { content: ""; flex: 1; height: 1px; background: #ffffff24; }

@media (max-width: 560px) {
  .tst-login-page .login-card { padding: 2rem 1.3rem; }
  .tst-login-page .field input { font-size: 16px; }
}
.tst-login-page .login-help a:focus-visible, .tst-login-page .login-register a:focus-visible { outline: 2px solid #a8ebd0; outline-offset: 5px; border-radius: 4px; }
/* Registro de clientes (/tienda/cuenta/registro): misma tarjeta, algo más ancha. */
.tst-login-page .login-card--wide { max-width: 480px; }
.tst-login-page .field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .8rem; }
.tst-login-page .field-optional { color: #8fb0a8; font-weight: 500; text-transform: none; letter-spacing: 0; }
@media (max-width: 480px) { .tst-login-page .field-grid { grid-template-columns: 1fr; } }
