:root {
  color-scheme: light;
  --ink: #29413b;
  --muted: #71837d;
  --line: rgba(69, 101, 91, 0.18);
  --sage: #729988;
  --sage-dark: #4e7868;
  --paper: rgba(255, 255, 255, 0.88);
  --shadow: 0 28px 80px rgba(54, 82, 72, 0.18);
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  color: var(--ink);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Yu Gothic",
    "Hiragino Kaku Gothic ProN",
    sans-serif;
  background:
    radial-gradient(circle at 16% 14%, rgba(255, 227, 169, 0.68), transparent 31%),
    radial-gradient(circle at 83% 18%, rgba(182, 220, 193, 0.56), transparent 30%),
    linear-gradient(145deg, #f7f1e8 0%, #edf4ee 48%, #e3eee9 100%);
}

.login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 32px 18px;
}

.login-card {
  width: min(100%, 520px);
  padding: clamp(34px, 7vw, 64px);
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 38px;
  background: var(--paper);
  box-shadow: var(--shadow);
  backdrop-filter: blur(24px);
}

.login-card__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 34px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 54px;
  font-style: italic;
  line-height: 1;
  letter-spacing: 0.04em;
}

.login-card__brand span:last-child {
  font-family: inherit;
  font-size: 22px;
  font-style: normal;
}

.login-card__eyebrow {
  margin: 0 0 10px;
  color: var(--sage-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.28em;
}

.login-card h1 {
  margin: 0;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(34px, 7vw, 48px);
  font-weight: 500;
  letter-spacing: 0.05em;
}

.login-card__lead {
  margin: 18px 0 36px;
  color: var(--muted);
  line-height: 1.9;
}

.login-form {
  display: grid;
  gap: 20px;
}

.login-form label {
  display: grid;
  gap: 9px;
  font-size: 14px;
  font-weight: 700;
}

.login-form input {
  width: 100%;
  min-height: 54px;
  padding: 0 17px;
  border: 1px solid var(--line);
  border-radius: 16px;
  outline: none;
  background: rgba(255, 255, 255, 0.84);
  color: var(--ink);
  font: inherit;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.login-form input:focus {
  border-color: var(--sage);
  box-shadow: 0 0 0 4px rgba(114, 153, 136, 0.14);
}

.login-form__message {
  min-height: 24px;
  margin: -4px 0 0;
  font-size: 14px;
  line-height: 1.7;
}

.login-form__message[data-state="error"] {
  color: #a45151;
}

.login-form__message[data-state="success"] {
  color: var(--sage-dark);
}

.login-form button {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  border: 0;
  border-radius: 18px;
  color: white;
  background: linear-gradient(135deg, var(--sage), var(--sage-dark));
  box-shadow: 0 14px 30px rgba(78, 120, 104, 0.2);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.login-form button:disabled {
  cursor: wait;
  opacity: 0.66;
}

.login-card__note {
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.8;
  text-align: center;
}



.login-form__support {
  margin-top: -8px;
  text-align: right;
}

.login-form__support a,
.password-reset-card__back {
  color: var(--sage-dark);
  font-size: 13px;
  font-weight: 700;
  text-underline-offset: 4px;
}

.login-form__support a:hover,
.password-reset-card__back:hover {
  color: var(--ink);
}

.password-reset-card__actions {
  display: grid;
  gap: 16px;
  margin-top: 8px;
}

.password-reset-card__back {
  justify-self: center;
}

.password-reset-card__hint {
  margin: -6px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

@media (max-width: 560px) {
  .login-page {
    padding: 14px;
  }

  .login-card {
    padding: 34px 24px;
    border-radius: 28px;
  }
}

.google-auth-button{width:100%;min-height:56px;display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 20px;padding:0 20px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.google-auth-button:disabled{opacity:.6;cursor:wait}.google-auth-button__mark{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;font-family:Arial,sans-serif;font-size:15px;font-weight:700}.login-divider{display:flex;align-items:center;gap:12px;margin:0 0 20px;color:var(--muted);font-size:11px}.login-divider::before,.login-divider::after{content:"";height:1px;flex:1;background:var(--line)}

.login-card__new{display:grid;gap:8px;margin-top:30px;padding:22px;border:1px solid rgba(114,153,136,.22);border-radius:20px;background:rgba(238,246,240,.72);text-align:center}.login-card__new-eyebrow{margin:0;color:var(--sage-dark);font-size:13px;font-weight:800}.login-card__new p:not(.login-card__new-eyebrow){margin:0;color:var(--muted);font-size:13px;line-height:1.7}.login-card__new a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:4px;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--sage),var(--sage-dark));font-size:14px;font-weight:800;text-decoration:none}
