/* ===================================================================
   Utilities.css
   ユーティリティクラス、ヘルパークラス
   ================================================================ */

/* ------------------------------------------------------------------
   必須マーク
   ------------------------------------------------------------------ */

.clsRequired {
    color: #dc3545;
    font-size: 14px;
}

.clsFormLabel .clsRequired {
    color: #dc3545;
    font-size: 14px;
}

.clsBadgeRequired {
    color: #dc3545;
}

/* ------------------------------------------------------------------
   テキストユーティリティ
   ------------------------------------------------------------------ */

.clsTextMuted {
    color: #6c757d;
}

.clsTextDanger {
    color: #dc3545;
}

.clsTextCenter {
    text-align: center;
}

.clsFontMono {
    font-family: 'Courier New', Courier, monospace;
}

/* ------------------------------------------------------------------
   エラー・ヘルプメッセージ
   ------------------------------------------------------------------ */

.clsErrorMessage {
    font-size: 14px;
    color: #dc3545;
    margin-top: 8px;
}

.clsHelper {
    font-size: 14px;
    color: #6c757d;
    margin-top: 8px;
}

.clsHelpText {
    font-size: 14px;
    color: #6c757d;
    margin-top: 4px;
}

/* ------------------------------------------------------------------
   アクセシビリティ
   ------------------------------------------------------------------ */

/* スクリーンリーダー専用テキスト */
.clsSrOnly {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ------------------------------------------------------------------
   IME制御
   ------------------------------------------------------------------ */

.clsImeOffDefault {
    ime-mode: inactive;
}

/* ------------------------------------------------------------------
   値表示
   ------------------------------------------------------------------ */

.clsValueList ul {
    list-style: none;
    margin: 0;
    padding-left: 18px;
}

.clsValueNote {
    white-space: pre-wrap;
    min-height: 48px;
}

/* ------------------------------------------------------------------
   レイアウトユーティリティ
   ------------------------------------------------------------------ */

.clsFlex {
    display: flex;
}

.clsFlexBetween {
    display: flex;
    justify-content: space-between;
}

.clsFlexCenter {
    display: flex;
    align-items: center;
}

.clsFlexBetweenCenter {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.clsFlexEnd {
    display: flex;
    justify-content: flex-end;
}

/* ------------------------------------------------------------------
   スペーシングユーティリティ
   ------------------------------------------------------------------ */

.clsMb1 {
    margin-bottom: 8px;
}

.clsMb2 {
    margin-bottom: 16px;
}

.clsMb3 {
    margin-bottom: 24px;
}

.clsMt1 {
    margin-top: 8px;
}

.clsMt2 {
    margin-top: 16px;
}

.clsMt3 {
    margin-top: 24px;
}

/* ------------------------------------------------------------------
   アラート
   ------------------------------------------------------------------ */

.clsAlert {
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 16px;
    border: 1px solid transparent;
}

.clsAlertSuccess {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
}

.clsAlertWarning {
    background-color: #fff3cd;
    border-color: #ffeeba;
    color: #856404;
}

.clsAlertDanger {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    color: #721c24;
}

.clsAlertInfo {
    background-color: #d1ecf1;
    border-color: #bee5eb;
    color: #0c5460;
}

