/* 画面遷移時のフェードイン */
body {
    animation: fadeIn 0.5s ease 0s 1 normal;
    -webkit-animation: fadeIn 0.5s ease 0s 1 normal;
}

@keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

@-webkit-keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

/* HTMXローディング表示（汎用） */
.htmx-indicator {
    display: none;
}

.htmx-request .htmx-indicator {
    display: flex !important;
}

.htmx-request.htmx-indicator {
    display: flex !important;
}

/* ========================================
   テキスト: 改行保持ユーティリティ
   - Bootstrap 5.3に含まれないwhite-space補完
   ======================================== */
.text-pre-wrap {
    white-space: pre-wrap !important;
}

.text-pre-line {
    white-space: pre-line !important;
}

/* ========================================
   入力: 読み取り専用の視覚的無効化スタイル
   - disabled は送信されないため使用しない
   - readonly 時に本クラスを付与して無効風に見せる
   ======================================== */
.form-control.readonly-muted {
    background-color: var(--gray-200) !important; /* Bootstrap disabled に近い */
    color: var(--gray-700) !important;
    border-color: var(--gray-300) !important;
}
.form-control.readonly-muted::placeholder {
    color: var(--gray-500) !important;
}
.form-control.readonly-muted:focus {
    box-shadow: none !important;
    border-color: var(--gray-300) !important;
}
