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

/* 認証関連ページのボディスタイル */
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,
.login-form input[type="number"],
.login-form input[type="datetime-local"] {
  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-text a {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
}

.flash-text a:hover {
  text-decoration: none;
}

.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; /* テキストを左揃えに */
}

/* ==============================================================================
   サインアップ画面の改善スタイル
   ============================================================================== */
.signup-container {
  max-width: 380px;
}

.signup-header {
  margin-bottom: 24px;
}

.signup-header h1 {
  font-size: 22px;
  margin-bottom: 8px;
}

.signup-subtitle {
  font-size: 14px;
  color: #65676b;
  margin: 0;
}

.signup-form .form-field {
  margin-bottom: 12px;
}

.form-field-hint {
  font-size: 11px;
  color: #8a8d91;
  margin: 4px 0 0 2px;
  text-align: left;
}

.form-field-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.form-field-footer .form-field-hint {
  margin: 4px 0 0 2px;
  flex: 1;
}

.info-button {
  background: none;
  border: none;
  padding: 2px;
  cursor: pointer;
  color: #8a8d91;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
  flex-shrink: 0;
}

.info-button:hover {
  color: #1877f2;
}

/* インフォメーションモーダル */
.info-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  justify-content: center;
  align-items: center;
  padding: 20px;
  box-sizing: border-box;
}

.info-modal.active {
  display: flex;
}

.info-modal-content {
  background-color: #fff;
  border-radius: 12px;
  max-width: 320px;
  width: 100%;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  animation: info-modal-in 0.2s ease-out;
}

@keyframes info-modal-in {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.info-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid #e4e6eb;
}

.info-modal-title {
  font-size: 15px;
  font-weight: 600;
  color: #1c1e21;
}

.info-modal-close {
  background: none;
  border: none;
  font-size: 24px;
  line-height: 1;
  color: #65676b;
  cursor: pointer;
  padding: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background-color 0.2s;
}

.info-modal-close:hover {
  background-color: #f0f2f5;
  color: #1c1e21;
}

.info-modal-body {
  padding: 16px;
  font-size: 14px;
  color: #65676b;
  line-height: 1.6;
  margin: 0;
}

.form-divider {
  height: 1px;
  background-color: #e4e6eb;
  margin: 16px 0;
}

.form-section {
  background-color: #f7f8fa;
  border-radius: 8px;
  padding: 12px;
  margin-top: 16px;
}

.form-section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e4e6eb;
}

.form-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #1c1e21;
}

.form-section-note {
  font-size: 11px;
  color: #65676b;
}

.form-section .form-field {
  margin-bottom: 8px;
}

.form-section .form-field:last-child {
  margin-bottom: 0;
}

.form-section input[type="text"] {
  background-color: #fff;
}

.signup-submit {
  margin-top: 8px;
  padding: 12px !important;
  font-size: 15px !important;
}

.signup-terms {
  font-size: 11px;
  color: #8a8d91;
  margin-top: 12px;
  line-height: 1.5;
}

.signup-terms a {
  color: #1877f2;
  text-decoration: none;
}

.signup-terms a:hover {
  text-decoration: underline;
}

.login-links-text {
  font-size: 13px;
  color: #65676b;
  margin-right: 4px;
}

/* プライバシーポリシーリンクのスタイル */
.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;
}

/* ===========================================
   メール送信完了画面
   =========================================== */
.confirmation-sent {
  text-align: center;
}

.confirmation-sent-icon {
  margin-bottom: 24px;
}

.confirmation-sent h1 {
  font-size: 20px;
  color: #1c1e21;
  margin-bottom: 16px;
}

.confirmation-sent-message {
  font-size: 14px;
  color: #606770;
  margin-bottom: 12px;
  line-height: 1.6;
}

.confirmation-sent-email {
  font-size: 16px;
  font-weight: 600;
  color: #1877f2;
  background-color: #f0f2f5;
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 16px;
  word-break: break-all;
}

.confirmation-sent-hint {
  font-size: 13px;
  color: #8a8d91;
  margin-bottom: 24px;
}

.confirmation-sent-actions {
  margin-bottom: 24px;
}

.confirmation-sent-link {
  display: inline-block;
  padding: 10px 24px;
  background-color: #1877f2;
  color: #ffffff;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
  transition: background-color 0.2s;
}

.confirmation-sent-link:hover {
  background-color: #166fe5;
}

.confirmation-sent-resend {
  padding-top: 16px;
  border-top: 1px solid #dddfe2;
}

.confirmation-sent-resend p {
  font-size: 13px;
  color: #8a8d91;
  margin-bottom: 8px;
}

.confirmation-sent-resend a {
  font-size: 14px;
  color: #1877f2;
  text-decoration: none;
}

.confirmation-sent-resend a:hover {
  text-decoration: underline;
}
