/* Admin: Login page
   Keep scoped to /admin/login by relying on page structure. */

:root{
  --login-ink:#0f172a;
  --login-muted:#64748b;
  --login-line:#e2e8f0;
  --login-surface:#ffffff;
  --login-shadow:0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
  --login-radius:16px;
  --login-accent:#111827;
  --login-ring:0 0 0 3px rgba(15,23,42,0.18);
}

html, body{
  height:100%;
}

body{
  margin:0;
  min-height:100vh;
  color:var(--login-ink);
  background:linear-gradient(180deg, #f5f7fa 0%, #eef2f6 100%);
  font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Roboto", "Noto Sans TC", Arial, sans-serif;
}

.login-shell{
  max-width:960px;
  margin:0 auto;
  padding:32px 18px 48px;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  align-items:center;
  justify-content:center;
}

.login-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
}
.login-brand__logo{
  width:54px;
  height:54px;
  border-radius:14px;
  object-fit:cover;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 10px 24px rgba(15,23,42,.12);
}

.login-lang{
  display:flex;
  gap:8px;
  padding:6px;
  border-radius:999px;
  border:1px solid var(--login-line);
  background:#f8fafc;
  margin-top:18px;
  justify-content:center;
}
.lang-btn{
  border:none;
  background:transparent;
  color:#475569;
  cursor:pointer;
  font-weight:700;
  font-size:12px;
  padding:8px 10px;
  border-radius:999px;
}
.lang-btn.is-active{
  color:#0f172a;
  background:#ffffff;
  box-shadow:0 2px 6px rgba(15,23,42,.12);
}

.login-card{
  width:min(520px, 100%);
  padding:32px 32px 28px;
  border-radius:var(--login-radius);
  border:1px solid var(--login-line);
  background:var(--login-surface);
  box-shadow:var(--login-shadow);
}

.login-head{
  margin-bottom:20px;
  text-align:center;
}
.login-title{
  margin:0 0 6px;
  font-size:24px;
  font-weight:800;
  letter-spacing:.2px;
}
.login-sub{
  margin:0;
  color:var(--login-muted);
  font-weight:500;
  line-height:1.55;
}

.login-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.login-label{
  font-size:12px;
  font-weight:700;
  color:#475569;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.login-link{
  font-size:12px;
  font-weight:600;
  color:#475569;
  text-decoration:none;
}
.login-link:hover{
  color:#0f172a;
}

.login-actions{
  display:grid;
  gap:12px;
  margin-top:8px;
}

.login-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:48px;
  padding:12px 16px;
  border-radius:12px;
  border:1px solid #111827;
  background:var(--login-accent);
  color:#fff;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  transition:transform .1s ease, box-shadow .14s ease, border-color .14s ease;
  position:relative;
}
.login-btn:hover{
  box-shadow:0 10px 18px rgba(15,23,42,.18);
}
.login-btn:active{
  transform:scale(0.98);
}
.login-btn:focus-visible{
  outline:none;
  box-shadow:var(--login-ring);
  border-color:#0f172a;
}
.login-btn.secondary{
  background:#ffffff;
  color:#0f172a;
  border-color:var(--login-line);
}
.login-btn[disabled]{
  cursor:not-allowed;
  opacity:.55;
  transform:none;
  box-shadow:none;
}
.btn-spinner{
  display:none;
  width:16px;
  height:16px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.5);
  border-top-color:#ffffff;
  animation:spin 0.8s linear infinite;
}
.login-btn.secondary .btn-spinner{
  border-color:rgba(15,23,42,.2);
  border-top-color:#0f172a;
}
.login-btn.is-loading .btn-label{
  opacity:0;
}
.login-btn.is-loading .btn-spinner{
  display:inline-block;
}

.login-hint{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--login-line);
  color:var(--login-muted);
  font-weight:600;
  font-size:12px;
  line-height:1.55;
}

.login-foot{
  margin-top:20px;
  text-align:center;
  color:#94a3b8;
  font-weight:700;
  font-size:12px;
}

@media(max-width:560px){
  .login-card{
    width:100%;
    padding:24px 18px;
    border-radius:14px;
  }
  .login-title{
    font-size:20px;
  }
}

@keyframes spin{
  to{ transform:rotate(360deg); }
}
