.nav-icon {
    color: #2BA895; 
    font-size: 2.0rem !important; 
}

.sidebar .nav-sidebar .nav-link {
    color: #FFFFFF !important; 
}

.main-header .navbar-nav .nav-link[data-widget="pushmenu"] {
    color: #334155 !important;
}

.main-header .navbar-nav .nav-link[data-widget="pushmenu"]:hover {
    color: #1e293b !important;
}
.main-sidebar, .main-sidebar::before {
    width: 140px !important; 
    background-color: #1A3C5E !important;
}

.content-wrapper, .main-header, .main-footer {
    margin-left: 140px !important;
}

.brand-link {
    width: 100% !important; 
    height:58px !important;
    margin: 0 !important;   
    padding: 15px 0 !important; 
    display: flex !important;
    justify-content: center !important; 
    align-items: center !important;
    box-sizing: border-box !important; 
    box-shadow: none !important;
    background-color: #1A3C5E !important;
    border-bottom: none !important;
}

.brand-link .brand-image {
    margin: 0 !important;    
    max-height: 45px;  
}

.sidebar .nav-sidebar .nav-link {
    align-items: center !important;    
    text-align: center !important;
}

.sidebar .nav-sidebar .nav-link .nav-icon {
    width: auto !important;
    display: block !important;    
    margin: 0 !important;
    white-space: normal !important; 
    line-height: 1.2;
}

.nav-item {
    margin: 0 !important; 
    width: 100%;
    margin-left: -60px !important;   
}

.main-header{
    background-color: #FFFFFF !important;
}

.dropdown-toggle{
    width: auto;
    margin-left: 60px;
}

#user-menu-dropdown-toggler{
    color: #334155 !important;
    /* margin-right: 100px !important; */
}

.sidebar .nav-sidebar .nav-link.active {
    background-color: #2BA895 !important; 
    color: #FFFFFF !important;            
    font-weight: bold !important;         
    border-radius: 4px;                 
}

.sidebar .nav-sidebar .nav-link.active .nav-icon {
    color: #FFFFFF !important;
}

.sidebar .nav-sidebar .nav-link:not(.active):hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #FFFFFF !important;
}

.text-muted {
    color: #adb5bd !important;
}

/* チャット未読バッジ */
.chat-unread-badge {
    position: absolute;
    top: 4px;
    left: 65px;
    background-color: #dc3545;
    color: #FFFFFF;
    font-size: 0.75rem;
    font-weight: bold;
    min-width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
    border-radius: 50%;
    padding: 0 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    z-index: 10;
    display: inline-block;
}

/* アクティブ時も見やすく */
.sidebar .nav-sidebar .nav-link.active .chat-unread-badge {
    /* background-color: #FFFFFF;
    color: #dc3545;
    border: 2px solid #dc3545; */
     background-color: #dc3545;
    color: #FFFFFF;
}

/* html/bodyの背景色をcontent-wrapperに合わせる */
html, body {
    background-color: #f4f6f9 !important;
    height: 100% !important;
}

/* フロントバリデーションエラーメッセージ */
.pc-login-field-error {
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* 画面高さ800px以下: ナビバーのヘッダー・ドロップダウンを縮小 */
@media (max-height: 800px) {
    /* ページタイトル（h3） */
    .main-header .navbar-nav h3 {
        font-size: 1.4rem !important;
    }
    /* ユーザーメニュートグル（人型アイコン＋名前） */
    .main-header .nav-item.dropdown .nav-link {
        font-size: 1.0rem !important;
        padding: 0.4rem 0.6rem !important;
    }
    .main-header .nav-item.dropdown .nav-link .fa-user {
        font-size: 0.85rem !important;
    }
    /* ドロップダウン内のボタン（ログアウト等） */
    .main-header .dropdown-menu .user-footer .btn {
        font-size: 0.78rem !important;
        padding: 0.25rem 0.5rem !important;
    }
    /* セッションメッセージ */
    .content-wrapper .alert {
        font-size: 0.85rem !important;
        padding: 0.5rem 1rem !important;
        display: flex !important;
        align-items: center !important;
    }
    .content-wrapper .alert .close {
        position: static !important;
        margin-left: auto;
        padding: 0 0.5rem !important;
    }
}

/* モーダルが画面に収まるようにする */
.modal-dialog {
    max-height: calc(100vh - 20px);
    margin: 10px auto;
}

.modal-content {
    max-height: calc(100vh - 20px);
}

.modal-body {
    overflow-y: auto;
}

/* テーブルのセル余白・文字サイズ */
.table td, .table th {
    padding: 0.7rem 0.75rem;
    font-size: 1rem;
}

/* テーブルヘッダーは1行に収める */
.table thead th {
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .main-sidebar {
        transform: translateX(-100%) !important;
    }

    .content-wrapper, .main-header, .main-footer {
        margin-left: 0 !important;
    }

    .sidebar-open .main-sidebar {
        transform: translateX(0) !important;
    }

    .main-header .navbar-nav .nav-item:first-child {
        margin-left: 0 !important;
    }

    .main-header .navbar-nav .nav-link[data-widget="pushmenu"] {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
    

    .main-header .navbar-nav h3 {
        width: auto !important;
        max-width: calc(100vw - 200px) !important;
        font-size: 1.2rem !important;
    }
}

/* ================================================================
   サイドバー レスポンシブ（高さベース）
   画面縦幅が狭い端末でアイコン・文字を縮小してメニューが見切れないようにする
   ================================================================ */

/* --- 中程度の縦幅（ノートPC 相当 ≤ 800px） --- */
@media (max-height: 800px) {
    .nav-icon {
        font-size: 1.8rem !important;
    }

    .sidebar .nav-sidebar .nav-link p {
        font-size: 0.85rem !important;
        line-height: 1.2 !important;
    }

    .sidebar .nav-sidebar .nav-link {
        padding-top: 0.55rem !important;
        padding-bottom: 0.55rem !important;
    }
}

/* --- 小さい縦幅（小型ノートPC・低解像度モニター ≤ 680px） --- */
@media (max-height: 680px) {
    .main-sidebar,
    .main-sidebar::before {
        width: 130px !important;
    }

    .content-wrapper,
    .main-header,
    .main-footer {
        margin-left: 130px !important;
    }

    .nav-icon {
        font-size: 1.5rem !important;
    }

    .sidebar .nav-sidebar .nav-link p {
        font-size: 0.78rem !important;
        line-height: 1.15 !important;
    }

    .sidebar .nav-sidebar .nav-link {
        padding-top: 0.4rem !important;
        padding-bottom: 0.4rem !important;
    }

    .brand-link {
        height: 50px !important;
        padding: 11px 0 !important;
    }

    .brand-link .brand-image {
        max-height: 38px !important;
    }

    /* チャット未読バッジの位置を調整 */
    .chat-unread-badge {
        left: 60px !important;
        top: 3px !important;
        font-size: 0.68rem !important;
        min-width: 20px !important;
        height: 20px !important;
        line-height: 20px !important;
    }
}