/* /public/css/login-reset.css */

.reset-page {
   min-height: 100dvh;
   display: grid;
   place-items: center;
   position: relative;
   padding: 28px 16px;
   overflow: hidden;
}

.reset-glow {
   position: absolute;
   inset: -20%;
   z-index: 0;
   pointer-events: none;
   background:
      radial-gradient(820px 420px at 14% 20%, rgba(59, 130, 246, .14), transparent 60%),
      radial-gradient(900px 520px at 86% 18%, rgba(255, 255, 255, .08), transparent 62%),
      radial-gradient(900px 520px at 58% 88%, rgba(99, 102, 241, .12), transparent 60%),
      linear-gradient(180deg, rgba(0, 0, 0, .16), rgba(0, 0, 0, 0));
   filter: blur(1px);
   opacity: .96;
}

.reset-wrap {
   width: min(560px, 100%);
   display: grid;
   gap: 14px;
   position: relative;
   z-index: 1;
}

.reset-card {
   border-radius: 26px;
   padding: 28px;
   background:
      linear-gradient(180deg,
         color-mix(in oklab, var(--panel), #fff 4%),
         color-mix(in oklab, var(--panel), #000 3%));
}

.reset-head {
   display: flex;
   align-items: flex-start;
   gap: 14px;
   margin-bottom: 18px;
}

.reset-mark {
   width: 50px;
   height: 50px;
   border-radius: 16px;
   display: grid;
   place-items: center;
   border: 1px solid var(--border);
   background: color-mix(in oklab, var(--panel), #fff 6%);
   box-shadow: var(--shadow-sm);
   font-size: 24px;
}

.reset-head-copy {
   flex: 1;
   min-width: 0;
}

.reset-title {
   margin: 0;
   font-size: 1.5rem;
   line-height: 1.1;
   font-weight: 800;
   letter-spacing: -0.03em;
}

.reset-sub {
   margin: 8px 0 0 0;
   color: var(--muted);
   font-size: .95rem;
   line-height: 1.5;
}

.reset-steps {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 10px;
   margin-bottom: 18px;
}

.reset-step {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   min-height: 42px;
   border-radius: 14px;
   border: 1px solid var(--border);
   background: color-mix(in oklab, var(--panel), #fff 3%);
   color: var(--muted);
   font-size: .9rem;
   font-weight: 700;
}

.reset-step.is-active {
   color: var(--text);
   border-color: color-mix(in oklab, var(--brand), #fff 20%);
   background: color-mix(in oklab, var(--brand), transparent 88%);
}

.reset-step.is-done {
   color: var(--text);
   border-color: color-mix(in oklab, var(--brand), #fff 14%);
}

.reset-step-num {
   width: 22px;
   height: 22px;
   border-radius: 999px;
   display: grid;
   place-items: center;
   font-size: .78rem;
   font-weight: 800;
   background: color-mix(in oklab, var(--panel), #000 8%);
}

.reset-step.is-active .reset-step-num {
   background: color-mix(in oklab, var(--brand), #000 6%);
   color: #fff;
}

.reset-section {
   display: grid;
   gap: 14px;
}

.reset-section.hidden {
   display: none;
}

.input-row {
   position: relative;
   display: flex;
   align-items: center;
}

.input-row .input {
   padding-left: 48px;
   height: 50px;
   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;
}

.code-input {
   padding-left: 18px !important;
   text-align: center;
   letter-spacing: .35em;
   font-size: 1.12rem;
   font-weight: 800;
}

.reset-note {
   color: var(--muted);
   font-size: .9rem;
   line-height: 1.5;
}

.reset-meta {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 12px;
   font-size: .88rem;
   color: var(--muted);
}

.reset-actions {
   display: flex;
   justify-content: flex-end;
   gap: 10px;
}

.reset-actions.split {
   justify-content: space-between;
}

.reset-actions .btn {
   min-width: 152px;
}

.link-btn {
   background: transparent;
   border: 0;
   padding: 0;
   margin: 0;
   color: var(--muted);
   cursor: pointer;
   font: inherit;
   text-decoration: underline;
}

.link-btn:hover {
   color: var(--text);
}

.link-btn:disabled {
   opacity: .55;
   cursor: not-allowed;
   text-decoration: none;
}

.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);
}

.reset-footer-links {
   margin-top: 18px;
   padding-top: 18px;
   border-top: 1px solid var(--border);
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 12px;
}

.back-login-link {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   color: var(--text);
   text-decoration: none;
   font-weight: 650;
   opacity: .94;
   transition: all .15s ease;
}

.back-login-link:hover {
   text-decoration: none;
   opacity: 1;
   transform: translateY(-1px);
}

.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;
}

.reset-footer {
   text-align: center;
   opacity: .9;
}

@media (max-width: 560px) {
   .reset-card {
      padding: 22px;
   }

   .reset-head {
      align-items: center;
   }

   .reset-steps {
      grid-template-columns: 1fr;
   }

   .reset-actions,
   .reset-actions.split,
   .reset-footer-links {
      flex-direction: column;
      align-items: stretch;
   }

   .reset-actions .btn,
   .reset-footer-links .btn,
   .back-login-link {
      width: 100%;
      justify-content: center;
   }

   .reset-meta {
      flex-direction: column;
      align-items: flex-start;
   }
}