/* =============================
   Infinity Global Elementary - Bootstrap 5 Theme
   基調色はロゴ由来のブルー（#4B6C98）
   ============================= */

/* ベースの色変数：BootstrapのCSS変数を上書き */
:root {
    --bs-primary: #4B6C98;
    /* Brand Blue */
    --bs-primary-rgb: 75, 108, 152;

    --bs-secondary: #5F8BB3;
    /* Light Blue */
    --bs-secondary-rgb: 95, 139, 179;

    --bs-info: #3B82F6;
    /* 補助（情報） */
    --bs-info-rgb: 59, 130, 246;

    --bs-body-bg: #F8FAFC;
    /* 背景 */
    --bs-body-color: #1E293B;
    /* 文字 */
    --bs-border-color: #E2E8F0;
    /* 境界線 */

    --igs-radius: .75rem;
    /* 角丸 */
    --igs-shadow: 0 6px 18px rgba(0, 0, 0, .06);

    --igs-head-bg: rgba(75, 108, 152, .08);
    /* テーブルヘッダ淡色 */
}

/* ベース */
body {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.card,
.modal-content {
    border-radius: var(--igs-radius);
    border-color: var(--bs-border-color);
}

.card.shadow-sm,
.modal-content {
    box-shadow: var(--igs-shadow);
}

.page-header {
    padding: .75rem 0 1rem;
}

/* リンク（ブランドトーン） */
.brand-link {
    color: var(--bs-primary);
    text-decoration: none;
}


/* ボタン（主にprimaryの調整） */
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: rgba(var(--bs-primary-rgb), .90);
    --bs-btn-hover-border-color: rgba(var(--bs-primary-rgb), .90);
    --bs-btn-active-bg: rgba(var(--bs-primary-rgb), .85);
    --bs-btn-active-border-color: rgba(var(--bs-primary-rgb), .85);
    border-radius: .6rem;
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    border-radius: .6rem;
}

.btn-info {
    --bs-btn-color: #fff;
    border-radius: .6rem;
}

.btn-warning,
.btn-secondary {
    border-radius: .6rem;
}

/* 入力・選択 */
.form-control,
.form-select {
    border-color: var(--bs-border-color);
    border-radius: .6rem;
}

/* テーブル */
.table-head-brand {
    background-color: var(--igs-head-bg);
}

.table> :not(caption)>*>* {
    border-color: var(--bs-border-color);
}

.table-hover tbody tr:hover {
    background-color: rgba(148, 163, 184, .1);
}

/* ページネーション */
.pagination .page-link {
    border-color: var(--bs-border-color);
    color: var(--bs-primary);
}

.pagination .page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

/* モーダルのバックドロップ（見やすく） */
.modal-backdrop.show {
    opacity: .35;
}

/* TitleBox 内のリフレッシュボタン高さ合わせ（任意） */
.titlebox .btn {
    height: 36px;
}

/* 旧 .e-btn 系の置き換え（後方互換が必要なら残す） */
.e-btn {
    background-color: #fff;
    color: #000;
    border: 1px solid var(--bs-primary);
    padding: 8px 16px;
    border-radius: .6rem;
    font-size: 14px;
    transition: all .2s ease;
}

.e-btn:hover {
    background-color: var(--bs-primary);
    color: #fff;
    border-color: var(--bs-primary);
}

.e-btn[disabled] {
    background-color: #f0f0f0;
    color: #aaa;
    border-color: #ddd;
    cursor: not-allowed;
}

.e-buttongroup .e-btn {
    margin-right: 8px;
}

/* ===== Brand Buttons (統一トーン) ===== */
.btn-brand {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: rgba(var(--bs-primary-rgb), .92);
    --bs-btn-hover-border-color: rgba(var(--bs-primary-rgb), .92);
    --bs-btn-active-bg: rgba(var(--bs-primary-rgb), .86);
    --bs-btn-active-border-color: rgba(var(--bs-primary-rgb), .86);
    border-radius: .6rem;
}

/* ===== Brand Buttons (修正版) ===== */
.btn-brand-outline {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    /* Hover時は濃い青 */
    --bs-btn-hover-border-color: var(--bs-primary);
    border-radius: .6rem;
}

.btn-brand-soft {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-bg: rgba(var(--bs-primary-rgb), .10);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    border-radius: .6rem;
}

/* アイコン専用の小ボタン（高さ/当たり判定を統一） */
.btn-icon-sm {
    padding: .375rem .55rem;
    line-height: 1;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 既存の色ボタンを使う場面の最小調整（成功/危険系はそのまま意味重視） */
.btn-success,
.btn-danger {
    border-radius: .6rem;
}