/* 認証フォーム用のスタイル設定 */

/* 認証関連ページのボディスタイル */
body.auth-forms {
  background-color: #f0f2f5;
  font-family: var(--font-family-base);
}

/* ログインコンテナのスタイル */
.login-container {
  background-color: #ffffff; /* 背景色 */
  padding: 40px; /* 内側の余白 */
  border-radius: 8px; /* 角の丸み */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* ボックスシャドウ */
  width: 100%; /* 幅100% */
  max-width: 400px; /* 最大幅 */
  text-align: center; /* テキストの中央揃え */
  margin: 20px auto; /* 上下に余白、左右は中央配置 */
  box-sizing: border-box; /* paddingやborderをwidthに含める */
}

/* スマホ対応 */
@media (max-width: 600px) {
  .login-container {
    padding: 20px;
    max-width: 100%; /* スマホでは最大幅を100%に */
  }
}

/* ログインコンテナ内のh1要素のスタイル */
.login-container h1 {
  font-size: 24px; /* フォントサイズ */
  margin-bottom: 24px; /* 下部の余白 */
  color: #1c1e21; /* 文字色 */
}

/* ログインフォーム内のフォームフィールドのスタイル */
.login-form .form-field {
  margin-bottom: 8px; /* 下部の余白を小さく */
}

/* ログインフォーム内のメールアドレスとパスワード入力欄のスタイル */
.login-form input[type="email"],
.login-form input[type="password"],
.login-form input[type="text"],
.login-form textarea, /* textareaにもスタイル適用 */
.login-form input[type="number"] { /* number型にもスタイル適用 */
  width: 100%; /* 幅100% */
  padding: 12px; /* 内側の余白 */
  border: 1px solid #dddfe2; /* 枠線 */
  border-radius: 6px; /* 角の丸み */
  font-size: 16px; /* フォントサイズ */
  box-sizing: border-box; /* ボックスモデルの指定 */
}

/* ログインフォーム内の送信ボタンと現在地取得ボタンのスタイル */
.login-form input[type="submit"],
.login-form button.login-form__submit { /* buttonタグにもスタイル適用 */
  width: 100%; /* 幅100% */
  padding: 8px; /* 内側の余白 */
  background-color: #1877f2; /* 背景色 */
  border: none; /* 枠線なし */
  border-radius: 6px; /* 角の丸み */
  color: #ffffff; /* 文字色 */
  font-size: 16px; /* フォントサイズ */
  font-weight: bold; /* フォントの太さ */
  cursor: pointer; /* カーソルをポインターに */
  transition: background-color 0.3s; /* 背景色の変化にアニメーション */
}

/* ログインフォーム内の送信ボタンのホバー時のスタイル */
.login-form input[type="submit"]:hover,
.login-form button.login-form__submit:hover { /* buttonタグにもスタイル適用 */
  background-color: #166fe5; /* 背景色 */
}

/* ログイン関連リンクのコンテナスタイル */
.login-links {
  margin-top: 20px; /* 上部の余白 */
}

/* ログイン関連リンクのスタイル */
.login-links a {
  color: #1877f2; /* 文字色 */
  text-decoration: none; /* 下線なし */
  font-size: 14px; /* フォントサイズ */
}

/* ログイン関連リンクのホバー時のスタイル */
.login-links a:hover {
  text-decoration: underline; /* 下線を表示 */
}

/* フラッシュメッセージ（アラート）のスタイル */
.flash-alert {
  color: #fa383e; /* 文字色 */
  background-color: #ffebe6; /* 背景色 */
  padding: 10px; /* 内側の余白 */
  border-radius: 6px; /* 角の丸み */
  margin-bottom: 16px; /* 下部の余白 */
}

/* フラッシュメッセージ（通知）のスタイル */
.flash-notice {
  color: #1877f2; /* 文字色 */
  background-color: #e7f3ff; /* 背景色 */
  padding: 10px; /* 内側の余白 */
  border-radius: 6px; /* 角の丸み */
  margin-bottom: 16px; /* 下部の余白 */
}

/* グローバルなフラッシュメッセージのスタイル */
.flash-message {
  position: fixed; /* 画面に固定 */
  top: 0; /* 上端に配置 */
  left: 0; /* 左端に配置 */
  width: 100%; /* 幅全体 */
  padding: 12px 16px; /* 内側の余白 */
  text-align: center; /* テキストの中央揃え */
  z-index: var(--z-index-notification); /* 他の要素の上に表示 */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); /* 軽い影 */
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  animation: flash-slide-in 0.3s ease-out;
}

.flash-message.flash-notice {
  background-color: #e7f3ff;
  color: #1877f2;
  border-bottom: 1px solid #c2dbf5;
}

.flash-message.flash-alert {
  background-color: #f8d7da;
  color: #721c24;
  border-bottom: 1px solid #f5c6cb;
}

.flash-text {
  flex: 1;
  max-width: 600px;
}

.flash-close {
  background: none;
  border: none;
  font-size: 1.5em;
  line-height: 1;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s;
  padding: 0 4px;
  color: inherit;
}

.flash-close:hover {
  opacity: 1;
}

/* フェードアウトアニメーション */
.flash-fade-out {
  animation: flash-slide-out 0.3s ease-out forwards;
}

/* フラッシュメッセージのスライドインアニメーション */
@keyframes flash-slide-in {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* フラッシュメッセージのスライドアウトアニメーション */
@keyframes flash-slide-out {
  from {
    transform: translateY(0);
    opacity: 1;
  }
  to {
    transform: translateY(-100%);
    opacity: 0;
  }
}

/* フォームフィールドの説明テキストのスタイル */
.form-field-info {
  font-size: 12px; /* フォントサイズ */
  color: #606770; /* 文字色 */
  margin-top: 4px; /* 上部の余白 */
  text-align: left; /* テキストを左揃えに */
}

/* プライバシーポリシーリンクのスタイル */
.policy-links {
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid #dddfe2;
}

.policy-links a {
  color: #606770;
  text-decoration: none;
  font-size: 12px;
}

.policy-links a:hover {
  text-decoration: underline;
}
