/* wapp.shop account app – builds on the variables and .btn classes in style.css */

[v-cloak] { display: none; }

body { background: var(--tint); min-height: 100vh; }
.btn:disabled { opacity: .65; cursor: not-allowed; transform: none; }
button.btn { cursor: pointer; font-family: inherit; }

/* ---------- Loading ---------- */
.loading { min-height: 100vh; display: grid; place-items: center; }
.spinner {
  width: 36px; height: 36px;
  border: 3px solid var(--line);
  border-top-color: var(--emerald);
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Auth pages ---------- */
.auth {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 16px;
  background:
    radial-gradient(600px 400px at 85% 10%, rgba(110, 226, 107, .20), transparent 70%),
    radial-gradient(500px 400px at 10% 95%, rgba(14, 122, 143, .12), transparent 70%);
}
.auth__logo { margin-bottom: 28px; }
.auth__logo img { height: 33px; width: auto; }
.auth__card {
  width: 100%;
  max-width: 440px;
  padding: 36px 32px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow);
}
.auth__card h1 { font-size: 28px; font-weight: 800; margin-bottom: 6px; }
.auth__subtitle { color: var(--ink-soft); margin-bottom: 26px; }
.auth__switch { margin-top: 22px; color: var(--ink-soft); font-size: 15px; }
.auth__switch a { color: var(--emerald); font-weight: 700; }
.auth__switch a:hover { text-decoration: underline; }

.alert {
  padding: 12px 14px;
  margin-bottom: 18px;
  border-radius: 12px;
  background: #fdecec;
  border: 1px solid #f6c6c6;
  color: #a12828;
  font-size: 14px;
  font-weight: 600;
}

/* ---------- Form fields ---------- */
.field { display: block; margin-bottom: 18px; }
.field__label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 6px; }
.field__control { position: relative; display: block; }
.field input {
  width: 100%;
  padding: 13px 14px;
  border: 1.5px solid #d3e2dd;
  border-radius: 12px;
  font: inherit;
  font-size: 16px;
  color: var(--ink);
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.field input::placeholder { color: #a5b3b8; }
.field input:focus { outline: none; border-color: var(--emerald); box-shadow: 0 0 0 4px rgba(18, 192, 138, .15); }
.field input[type="password"], .field__control:has(.field__toggle) input { padding-right: 70px; }
.field__toggle {
  position: absolute;
  right: 8px; top: 50%;
  transform: translateY(-50%);
  padding: 6px 10px;
  border: 0;
  background: none;
  color: var(--teal);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.field--error input { border-color: #e05252; }
.field__error { display: block; margin-top: 6px; color: #c03434; font-size: 13px; font-weight: 600; }
.auth form .btn { margin-top: 6px; }

/* ---------- Dashboard ---------- */
.dash { min-height: 100vh; }
.dash__bar { background: #fff; border-bottom: 1px solid var(--line); }
.dash__bar-inner { display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 12px; }
.dash__bar img { height: 27px; width: auto; }
.dash__user { display: flex; align-items: center; gap: 12px; }
.dash__avatar {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--gradient);
  color: #fff;
  font-weight: 800;
}
.dash__email { color: var(--ink-soft); font-size: 14px; font-weight: 600; }
.dash__main { padding-top: 56px; padding-bottom: 56px; }
.dash__main h1 { font-size: 34px; font-weight: 800; margin-bottom: 8px; }
.dash__lead { color: var(--ink-soft); font-size: 17px; }

@media (max-width: 560px) {
  .auth__card { padding: 28px 22px; }
  .dash__email { display: none; }
}
