/*
 * 業務システム共通スタイル
 * 全レイアウト（layouts/app, layouts/user/app, layouts/admin/app）から読み込まれる。
 *
 * 方針
 * - 最低文字サイズ 16px（Bootstrap の縮小系クラスも 16px 未満にしない）
 * - 補助テキスト（.text-muted 等）は薄すぎるとコントラスト不足で読みにくいため濃くする
 * - プレースホルダーは「入力値ではなくヒント」と分かるよう、本文より薄くする
 */

:root {
    /* 最低文字サイズ */
    --app-font-size-min: 16px;

    /* 補助テキスト色（Bootstrap 既定の #6c757d は白背景でコントラスト不足のため濃くする） */
    --app-text-muted: #343a40;

    /* プレースホルダー色。入力済みの値と見間違えないよう本文より薄くする */
    --app-placeholder: #bcc2c8;
}

html,
body {
    font-size: var(--app-font-size-min);
}

/* ------------------------------------------------------------------
 * 最低文字サイズ 16px
 * Bootstrap 5 で 1rem 未満になるクラスを 16px まで引き上げる
 * ------------------------------------------------------------------ */

small,
.small,
.form-text,
.figure-caption,
.blockquote-footer,
.valid-feedback,
.invalid-feedback,
.valid-tooltip,
.invalid-tooltip,
.col-form-label-sm,
.form-control-sm,
.form-select-sm,
.input-group-sm > .form-control,
.input-group-sm > .form-select,
.input-group-sm > .input-group-text,
.input-group-sm > .btn,
.btn-sm,
.btn-group-sm > .btn,
.pagination-sm .page-link,
.badge,
.tooltip,
.popover,
.popover-header,
.popover-body,
.dropdown-menu,
.dropdown-item,
.table,
.table td,
.table th,
.nav-link,
.breadcrumb,
.alert,
.card-header,
.card-body,
.list-group-item,
.form-label,
.form-check-label,
h6,
.h6 {
    font-size: var(--app-font-size-min);
}

/* select2（jQuery ライブラリ側の指定を上書き） */
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__choice,
.select2-container--default .select2-results__option,
.select2-container--default .select2-search--dropdown .select2-search__field {
    font-size: var(--app-font-size-min);
}

/* ------------------------------------------------------------------
 * 補助テキストのコントラスト改善
 * ------------------------------------------------------------------ */

.text-muted,
.text-secondary,
.form-text,
.figure-caption,
.blockquote-footer {
    color: var(--app-text-muted) !important;
}

/* 背景色付き要素の上の補助テキストは既定色を維持する（可読性が落ちるため） */
.bg-primary .text-muted,
.bg-secondary .text-muted,
.bg-dark .text-muted,
.navbar .text-muted {
    color: inherit !important;
}

/* ------------------------------------------------------------------
 * プレースホルダー
 * 入力済みの値と見分けられるよう、本文より薄い色にする
 * （読み上げ・入力の手がかりであって値ではないため）
 * ------------------------------------------------------------------ */

.form-control::placeholder,
.form-select::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--app-placeholder) !important;
    opacity: 1; /* Firefox は既定で opacity を下げるため揃える */
}

/* select2 の検索欄・未選択表示も同じ扱いにする */
.select2-container--default .select2-selection__placeholder,
.select2-container--default .select2-search__field::placeholder {
    color: var(--app-placeholder) !important;
}

/* ------------------------------------------------------------------
 * サイドメニューの開閉（マスタなど、日々は触らない項目をまとめる）
 * 開いているか閉じているかを矢印の向きで示す
 * ------------------------------------------------------------------ */

.list-group-item[data-bs-toggle="collapse"] .fa-chevron-down {
    transition: transform 0.2s;
}

.list-group-item[data-bs-toggle="collapse"].collapsed .fa-chevron-down {
    transform: rotate(-90deg);
}
