@charset "UTF-8";

html,
body {
    height: 100%;
}

body {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    background-color: #f0f4f8;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ========================
   ログインカード
======================== */
.form-signin {
    width: 100%;
    max-width: 400px;
    padding: 15px;
    margin: 0 auto;
}

/* ========================
   ロゴ
======================== */
.title-img {
    display: block;
    width: 100%;
    max-width: 360px;
    margin: 0 auto 32px;
}

/* ========================
   入力フィールド
======================== */
.form-signin .form-control {
    position: relative;
    box-sizing: border-box;
    height: auto;
    padding: 10px 14px;
    font-size: 15px;
    border: 1px solid #d1d9e0;
    border-radius: 8px;
    margin-bottom: 12px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    color: #2d3748;
}

.form-signin .form-control:focus {
    border-color: #1a5276;
    box-shadow: 0 0 0 3px rgba(26, 82, 118, 0.12);
    outline: none;
    z-index: 2;
}

.form-signin .form-control::placeholder {
    color: #a0aec0;
    font-size: 14px;
}

/* ========================
   多要素認証
======================== */
.mfa-guide {
    font-size: 14px;
    color: #2d3748;
    margin-bottom: 16px;
}

.form-signin .mfa-code {
    font-size: 20px;
    letter-spacing: 6px;
    text-align: center;
}

.mfa-remember {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: #2d3748;
}

.mfa-remember input {
    margin-top: 3px;
}

.mfa-remember label {
    margin-bottom: 0;
}

.mfa-back {
    text-align: center;
}

/* ========================
   パスキーでログインボタン
======================== */
.btn-passkey {
    /* Bootstrap 5 のボタンは状態ごとの色を変数で決めるため、変数にも同じ色を指定する */
    --bs-btn-color: #1a5276;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #1a5276;
    --bs-btn-hover-color: #1a5276;
    --bs-btn-hover-bg: #eaf2f8;
    --bs-btn-hover-border-color: #1a5276;
    --bs-btn-active-color: #1a5276;
    --bs-btn-active-bg: #d4e6f1;
    --bs-btn-active-border-color: #1a5276;
    --bs-btn-disabled-color: #1a5276;
    --bs-btn-disabled-bg: #fff;
    --bs-btn-disabled-border-color: #1a5276;
    --bs-btn-focus-shadow-rgb: 26, 82, 118;
    color: #1a5276;
    background-color: #fff;
    border: 1px solid #1a5276;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    padding: 11px;
    margin-top: 0.5rem;
    margin-bottom: 16px;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.btn-passkey:hover {
    color: #1a5276;
    background-color: #eaf2f8;
    box-shadow: 0 1px 4px rgba(26, 82, 118, 0.25);
}

/* ========================
   ログインボタン
======================== */
.btn-original,
.btn-original.disabled,
.btn-original:disabled {
    --bs-btn-color: #fff;
    --bs-btn-bg: #1a5276;
    --bs-btn-border-color: rgba(255, 255, 255, 0.15);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1877b0;
    --bs-btn-hover-border-color: rgba(255, 255, 255, 0.15);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #0d2b45;
    --bs-btn-active-border-color: rgba(255, 255, 255, 0.15);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #1a5276;
    --bs-btn-disabled-border-color: rgba(255, 255, 255, 0.15);
    --bs-btn-focus-shadow-rgb: 26, 82, 118;
    color: #fff;
    background: linear-gradient(135deg, #1a5276 0%, #1877b0 100%);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.4px;
    padding: 11px;
    margin-top: 8px;
    margin-bottom: 16px;
    box-shadow: 0 2px 8px rgba(26, 82, 118, 0.35);
    transition: all 0.2s ease;
    width: 100%;
}

.btn-original:hover {
    color: #fff;
    background: linear-gradient(135deg, #1877b0 0%, #2196f3 100%);
    box-shadow: 0 4px 14px rgba(26, 82, 118, 0.45);
    transform: translateY(-1px);
    text-decoration: none;
}

.btn-original:not(:disabled):not(.disabled):active,
.btn-original:not(:disabled):not(.disabled).active,
.show > .btn-original.dropdown-toggle {
    color: #fff;
    background: linear-gradient(135deg, #0d2b45 0%, #1a5276 100%);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    transform: translateY(0);
}

/* ========================
   Bootstrap 5 への更新に伴う調整
======================== */
/* ラベル（エラーメッセージ等）の下余白 */
.form-signin label {
    margin-bottom: 0.5rem;
}

/* 「ログイン画面に戻る」：通常は下線なし、マウスを乗せたときだけ下線 */
.btn-link {
    text-decoration: none;
}

.btn-link:hover {
    text-decoration: underline;
}
