/* /public/css/login.css */

.login-page {
   min-height: 100dvh;
   display: grid;
   place-items: center;
   position: relative;
   padding: 28px 16px;
   overflow: hidden;
}

.login-glow {
   position: absolute;
   inset: -20%;
   z-index: 0;
   pointer-events: none;
   background:
      radial-gradient(820px 420px at 18% 22%, rgba(59, 130, 246, .12), transparent 60%),
      radial-gradient(900px 520px at 85% 18%, rgba(255, 255, 255, .07), transparent 62%),
      radial-gradient(900px 520px at 58% 88%, rgba(99, 102, 241, .10), transparent 60%),
      linear-gradient(180deg, rgba(0, 0, 0, .16), rgba(0, 0, 0, 0));
   filter: blur(1px);
   opacity: .95;
}

.login-wrap {
   width: min(460px, 100%);
   display: grid;
   gap: 14px;
   position: relative;
   z-index: 1;
}

.login-card {
   border-radius: 24px;
   padding: 28px;
   background:
      linear-gradient(180deg,
         color-mix(in oklab, var(--panel), #fff 4%),
         color-mix(in oklab, var(--panel), #000 3%));
}

.login-head-simple {
   display: grid;
   gap: 6px;
}

.login-h2 {
   font-size: 1.45rem;
   font-weight: 780;
   letter-spacing: -0.02em;
   line-height: 1.1;
   text-align: center;
}

.login-help {
   text-align: center;
   font-size: .94rem;
   color: var(--muted);
}

.input-row {
   position: relative;
   display: flex;
   align-items: center;
}

.input-row .input {
   padding-left: 48px;
   height: 48px;
   border-radius: 16px;
}

.input-ico {
   position: absolute;
   left: 14px;
   top: 50%;
   transform: translateY(-50%);
   width: 22px;
   height: 22px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   font-size: 22px;
   line-height: 1;
   color: var(--muted);
   pointer-events: none;
}

.login-row {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 12px;
}

.remember {
   display: flex;
   align-items: center;
   gap: 10px;
   user-select: none;
}

.btn-link {
   height: 36px;
   padding: 0 10px;
   border-radius: 12px;
   display: inline-flex;
   align-items: center;
   gap: 8px;
}

.btn-link i {
   font-size: 22px;
   line-height: 1;
}

.btn-primary {
   height: 50px;
   border-radius: 16px;
   background: linear-gradient(180deg,
         color-mix(in oklab, var(--brand), #fff 10%),
         color-mix(in oklab, var(--brand), #000 10%));
   box-shadow: 0 14px 36px rgba(0, 0, 0, .35);
}

.btn-primary:hover {
   filter: brightness(1.06);
   transform: translateY(-1px);
}

.login-forgot-row {
   display: flex;
   justify-content: center;
   margin-top: 6px;
}

.forgot-link {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   text-decoration: none;
   color: var(--text);
   font-weight: 650;
   font-size: .95rem;
   opacity: .94;
}

.forgot-link i {
   font-size: 20px;
   line-height: 1;
}

.forgot-link {
   transition: all .15s ease;
}

.forgot-link:hover {
   opacity: 1;
   text-decoration: none;
   transform: translateY(-1px);
}

.footer-hint {
   text-align: center;
   margin-top: 10px;
   font-size: .82rem;
   color: var(--muted);
}

.login-footer {
   text-align: center;
   opacity: .9;
}

@media (max-width: 420px) {
   .login-card {
      padding: 22px;
   }
}