/* Global Colors - 基于 CoreNai Logo 色调的配色方案 */
:root {
  --background-color: #fdfaf5; /* 主背景色，取自Logo的米白色背景，略微调暖以适应屏幕显示 */
  --default-color: #5c4d3e; /* 主要文本色，比Logo主棕色稍浅以确保可读性 */
  --heading-color: #382c1f; /* 标题色，更深的棕色，营造沉稳、专业的层次感 */
  --accent-color: #6e5b4b; /* 品牌强调色，直接取自Logo的主棕色，用于按钮、链接等 */
  --primary-color: var(--accent-color); /* 主色调，与强调色保持一致，确保样式统一 */
  --surface-color: #ffffff; /* 模块表面色（如卡片），使用纯白以在暖色背景上清晰区分 */
  --contrast-color: #ffffff; /* 对比色，在强调色和标题色背景上保持可读性 */
}

/* Nav Menu Colors - 导航菜单颜色 */
:root {
  --nav-color: #382c1f;  /* 导航链接色，与标题色一致，保持统一 */
  --nav-hover-color: #6e5b4b; /* 导航悬停色，使用品牌强调色 */
  --nav-dropdown-color: #5c4d3e; /* 下拉菜单文字色，与主要文本色一致 */
  --nav-dropdown-hover-color: #6e5b4b; /* 下降菜单悬停色，使用品牌强调色 */
  /* 以下背景色通常保持白色或浅色，以确保下拉菜单清晰可读 */
  --nav-mobile-background-color: #ffffff;
  --nav-dropdown-background-color: #ffffff;
}

/* Color Presets - 颜色预设 */

.light-background {
  /* 浅色背景预设微调，使背景与您的主背景色协调 */
  --background-color: #f8f4ed;
  --surface-color: #ffffff;
}

.dark-background {
  /* 深色背景预设，使用Logo的深棕色系，营造高级感 */
  --background-color: #382c1f; /* 使用深棕色作为深色模式背景 */
  --default-color: #e0d9d1; /* 浅米色文字，确保在深棕背景上的可读性 */
  --heading-color: #ffffff; /* 白色标题 */
  --surface-color: #4a3c2b; /* 稍亮一点的棕色作为卡片表面色 */
  --contrast-color: #ffffff;
}

/* Override Bootstrap text color classes to match CoreNAI color scheme */
.text-primary {
  color: var(--accent-color) !important;
}

.text-secondary {
  color: var(--default-color) !important;
}

.text-success {
  color: #5a7d5a !important; /* Muted green that complements the CoreNAI palette */
}

.text-info {
  color: #4a7b9a !important; /* Muted blue that fits the CoreNAI aesthetic */
}

.text-warning {
  color: #c28d30 !important; /* Warm amber that complements the CoreNAI brown palette */
}

.text-danger {
  color: #9a4a4a !important; /* Muted red that fits the CoreNAI color scheme */
}

.text-light {
  color: #e0d9d1 !important; /* Light beige that matches CoreNAI's light background */
}

.text-dark {
  color: var(--heading-color) !important;
}

/* Also override the emphasis variants */
.text-primary-emphasis {
  color: var(--accent-color) !important;
}

.text-secondary-emphasis {
  color: var(--default-color) !important;
}

.text-success-emphasis {
  color: #3d5a3d !important;
}

.text-info-emphasis {
  color: #325772 !important;
}

.text-warning-emphasis {
  color: #9e7223 !important;
}

.text-danger-emphasis {
  color: #723232 !important;
}

.text-light-emphasis {
  color: #f8f4ed !important;
}

.text-dark-emphasis {
  color: var(--heading-color) !important;
}

.navmenu a i, .navmenu a:focus i {
        font-size: 15px;
}

.footer .footer-about a {
    font-weight: 400;
}

/* 基础按钮样式 */
.btn {
    padding: 0.5rem 1.5rem;
    border-radius: 8px;
    font-weight: 500;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 大号按钮样式 */
.btn-lg {
    padding: 0.75rem 2rem;
    font-size: 1.125rem;
}

/* 小号按钮样式 */
.btn-sm {
    padding: 0.25rem 1rem;
    font-size: 0.875rem;
}

/* 超小号按钮样式 */
.btn-xs {
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
}

/* 颜色样式（不应重复定义padding、border-radius等基础样式） */
.btn-primary {
    background: var(--accent-color);
    color: var(--contrast-color);
    border: none;
}

.btn-info {
    background: #4a7b9a;
    color: var(--contrast-color);
    border: none;
}

.btn-warning {
    background: #c28d30;
    color: var(--contrast-color);
    border: none;
}

.btn-danger {
    background: #9a4a4a;
    color: var(--contrast-color);
    border: none;
}

.btn-success {
    background: #5a7d5a;
    color: var(--contrast-color);
    border: none;
}

.btn-secondary {
    background: #6c757d;
    color: #ffffff;
    border: none;
}

/* 按钮悬停效果 */
.btn-primary:hover {
    background: color-mix(in srgb, var(--accent-color), black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, var(--accent-color), transparent 70%);
}

.btn-info:hover {
    background: color-mix(in srgb, #4a7b9a, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #4a7b9a, transparent 70%);
}

.btn-warning:hover {
    background: color-mix(in srgb, #c28d30, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #c28d30, transparent 70%);
}

.btn-danger:hover {
    background: color-mix(in srgb, #9a4a4a, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #9a4a4a, transparent 70%);
}

.btn-success:hover {
    background: color-mix(in srgb, #5a7d5a, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #5a7d5a, transparent 70%);
}

.btn-secondary:hover {
    background: color-mix(in srgb, #6c757d, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #6c757d, transparent 70%);
}

/* 按钮焦点状态 */
.btn-primary:focus, .btn-primary.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--accent-color), transparent 75%);
}

.btn-info:focus, .btn-info.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #4a7b9a, transparent 75%);
}

.btn-warning:focus, .btn-warning.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #c28d30, transparent 75%);
}

.btn-danger:focus, .btn-danger.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #9a4a4a, transparent 75%);
}

.btn-success:focus, .btn-success.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #5a7d5a, transparent 75%);
}

.btn-secondary:focus, .btn-secondary.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #6c757d, transparent 75%);
}

/* 按钮禁用状态 */
.btn-primary:disabled, .btn-primary.disabled {
    background: var(--accent-color);
    opacity: 0.65;
}

.btn-info:disabled, .btn-info.disabled {
    background: #4a7b9a;
    opacity: 0.65;
}

.btn-warning:disabled, .btn-warning.disabled {
    background: #c28d30;
    opacity: 0.65;
}

.btn-danger:disabled, .btn-danger.disabled {
    background: #9a4a4a;
    opacity: 0.65;
}

.btn-success:disabled, .btn-success.disabled {
    background: #5a7d5a;
    opacity: 0.65;
}

.btn-secondary:disabled, .btn-secondary.disabled {
    background: #6c757d;
    opacity: 0.65;
}

/* 轮廓按钮样式 */
.btn-outline-primary {
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    background: transparent;
}

.btn-outline-info {
    color: #4a7b9a;
    border: 1px solid #4a7b9a;
    background: transparent;
}

.btn-outline-warning {
    color: #c28d30;
    border: 1px solid #c28d30;
    background: transparent;
}

.btn-outline-danger {
    color: #9a4a4a;
    border: 1px solid #9a4a4a;
    background: transparent;
}

.btn-outline-success {
    color: #5a7d5a;
    border: 1px solid #5a7d5a;
    background: transparent;
}

.btn-outline-secondary {
    color: #6c757d;
    border: 1px solid #6c757d;
    background: transparent;
}

/* 轮廓按钮悬停效果 */
.btn-outline-primary:hover {
    background: color-mix(in srgb, var(--accent-color), black 10%);
    color: var(--contrast-color);
    border-color: var(--accent-color);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, var(--accent-color), transparent 70%);
}

.btn-outline-info:hover {
    background: color-mix(in srgb, #4a7b9a, black 10%);
    color: var(--contrast-color);
    border-color: #4a7b9a;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #4a7b9a, transparent 70%);
}

.btn-outline-warning:hover {
    background: color-mix(in srgb, #c28d30, black 10%);
    color: var(--contrast-color);
    border-color: #c28d30;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #c28d30, transparent 70%);
}

.btn-outline-danger:hover {
    background: color-mix(in srgb, #9a4a4a, black 10%);
    color: var(--contrast-color);
    border-color: #9a4a4a;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #9a4a4a, transparent 70%);
}

.btn-outline-success:hover {
    background: color-mix(in srgb, #5a7d5a, black 10%);
    color: var(--contrast-color);
    border-color: #5a7d5a;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #5a7d5a, transparent 70%);
}

.btn-outline-secondary:hover {
    background: color-mix(in srgb, #6c757d, black 10%);
    color: #ffffff;
    border-color: #6c757d;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #6c757d, transparent 70%);
}

/* 轮廓按钮焦点状态 */
.btn-outline-primary:focus, .btn-outline-primary.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--accent-color), transparent 75%);
}

.btn-outline-info:focus, .btn-outline-info.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #4a7b9a, transparent 75%);
}

.btn-outline-warning:focus, .btn-outline-warning.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #c28d30, transparent 75%);
}

.btn-outline-danger:focus, .btn-outline-danger.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #9a4a4a, transparent 75%);
}

.btn-outline-success:focus, .btn-outline-success.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #5a7d5a, transparent 75%);
}

.btn-outline-secondary:focus, .btn-outline-secondary.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #6c757d, transparent 75%);
}

/* 强调按钮样式 */
.btn-primary-emphasis {
    background: color-mix(in srgb, var(--accent-color), black 20%);
    color: var(--contrast-color);
    border: none;
}

.btn-info-emphasis {
    background: #325772;
    color: var(--contrast-color);
    border: none;
}

.btn-warning-emphasis {
    background: #9e7223;
    color: var(--contrast-color);
    border: none;
}

.btn-danger-emphasis {
    background: #723232;
    color: var(--contrast-color);
    border: none;
}

.btn-success-emphasis {
    background: #3d5a3d;
    color: var(--contrast-color);
    border: none;
}

.btn-secondary-emphasis {
    background: #5a6268;
    color: #ffffff;
    border: none;
}

/* 强调按钮悬停效果 */
.btn-primary-emphasis:hover {
    background: color-mix(in srgb, var(--accent-color), black 30%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, var(--accent-color), transparent 70%);
}

.btn-info-emphasis:hover {
    background: color-mix(in srgb, #325772, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #325772, transparent 70%);
}

.btn-warning-emphasis:hover {
    background: color-mix(in srgb, #9e7223, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #9e7223, transparent 70%);
}

.btn-danger-emphasis:hover {
    background: color-mix(in srgb, #723232, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #723232, transparent 70%);
}

.btn-success-emphasis:hover {
    background: color-mix(in srgb, #3d5a3d, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #3d5a3d, transparent 70%);
}

.btn-secondary-emphasis:hover {
    background: color-mix(in srgb, #5a6268, black 10%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px color-mix(in srgb, #5a6268, transparent 70%);
}

/* 强调按钮焦点状态 */
.btn-primary-emphasis:focus, .btn-primary-emphasis.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--accent-color), transparent 75%);
}

.btn-info-emphasis:focus, .btn-info-emphasis.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #325772, transparent 75%);
}

.btn-warning-emphasis:focus, .btn-warning-emphasis.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #9e7223, transparent 75%);
}

.btn-danger-emphasis:focus, .btn-danger-emphasis.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #723232, transparent 75%);
}

.btn-success-emphasis:focus, .btn-success-emphasis.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #3d5a3d, transparent 75%);
}

.btn-secondary-emphasis:focus, .btn-secondary-emphasis.focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, #5a6268, transparent 75%);
}

/* 强调按钮禁用状态 */
.btn-primary-emphasis:disabled, .btn-primary-emphasis.disabled {
    background: color-mix(in srgb, var(--accent-color), black 20%);
    opacity: 0.65;
}

.btn-info-emphasis:disabled, .btn-info-emphasis.disabled {
    background: #325772;
    opacity: 0.65;
}

.btn-warning-emphasis:disabled, .btn-warning-emphasis.disabled {
    background: #9e7223;
    opacity: 0.65;
}

.btn-danger-emphasis:disabled, .btn-danger-emphasis.disabled {
    background: #723232;
    opacity: 0.65;
}

.btn-success-emphasis:disabled, .btn-success-emphasis.disabled {
    background: #3d5a3d;
    opacity: 0.65;
}

.btn-secondary-emphasis:disabled, .btn-secondary-emphasis.disabled {
    background: #5a6268;
    opacity: 0.65;
}

/* 按钮激活状态样式 */
.btn-check:checked + .btn,
.btn.active,
.btn.show,
.btn:first-child:active,
:not(.btn-check) + .btn:active {
    color: var(--contrast-color);
    background-color: color-mix(in srgb, var(--accent-color), black 20%);
    border-color: color-mix(in srgb, var(--accent-color), black 20%);
}

.btn-check:checked + .btn-primary,
.btn-primary.active,
.btn-primary.show,
.btn-primary:first-child:active,
:not(.btn-check) + .btn-primary:active {
    color: var(--contrast-color);
    background-color: color-mix(in srgb, var(--accent-color), black 20%);
    border-color: color-mix(in srgb, var(--accent-color), black 20%);
}

.btn-check:checked + .btn-info,
.btn-info.active,
.btn-info.show,
.btn-info:first-child:active,
:not(.btn-check) + .btn-info:active {
    color: var(--contrast-color);
    background-color: #325772;
    border-color: #325772;
}

.btn-check:checked + .btn-success,
.btn-success.active,
.btn-success.show,
.btn-success:first-child:active,
:not(.btn-check) + .btn-success:active {
    color: var(--contrast-color);
    background-color: #3d5a3d;
    border-color: #3d5a3d;
}

.btn-check:checked + .btn-warning,
.btn-warning.active,
.btn-warning.show,
.btn-warning:first-child:active,
:not(.btn-check) + .btn-warning:active {
    color: var(--contrast-color);
    background-color: #9e7223;
    border-color: #9e7223;
}

.btn-check:checked + .btn-danger,
.btn-danger.active,
.btn-danger.show,
.btn-danger:first-child:active,
:not(.btn-check) + .btn-danger:active {
    color: var(--contrast-color);
    background-color: #723232;
    border-color: #723232;
}

.btn-check:checked + .btn-secondary,
.btn-secondary.active,
.btn-secondary.show,
.btn-secondary:first-child:active,
:not(.btn-check) + .btn-secondary:active {
    color: #ffffff;
    background-color: #5a6268;
    border-color: #5a6268;
}

/* 轮廓按钮激活状态样式 */
.btn-check:checked + .btn-outline-primary,
.btn-outline-primary.active,
.btn-outline-primary.show,
.btn-outline-primary:first-child:active,
:not(.btn-check) + .btn-outline-primary:active {
    color: var(--contrast-color);
    background-color: color-mix(in srgb, var(--accent-color), black 20%);
    border-color: color-mix(in srgb, var(--accent-color), black 20%);
}

.btn-check:checked + .btn-outline-info,
.btn-outline-info.active,
.btn-outline-info.show,
.btn-outline-info:first-child:active,
:not(.btn-check) + .btn-outline-info:active {
    color: var(--contrast-color);
    background-color: #325772;
    border-color: #325772;
}

.btn-check:checked + .btn-outline-success,
.btn-outline-success.active,
.btn-outline-success.show,
.btn-outline-success:first-child:active,
:not(.btn-check) + .btn-outline-success:active {
    color: var(--contrast-color);
    background-color: #3d5a3d;
    border-color: #3d5a3d;
}

.btn-check:checked + .btn-outline-warning,
.btn-outline-warning.active,
.btn-outline-warning.show,
.btn-outline-warning:first-child:active,
:not(.btn-check) + .btn-outline-warning:active {
    color: var(--contrast-color);
    background-color: #9e7223;
    border-color: #9e7223;
}

.btn-check:checked + .btn-outline-danger,
.btn-outline-danger.active,
.btn-outline-danger.show,
.btn-outline-danger:first-child:active,
:not(.btn-check) + .btn-outline-danger:active {
    color: var(--contrast-color);
    background-color: #723232;
    border-color: #723232;
}

.btn-check:checked + .btn-outline-secondary,
.btn-outline-secondary.active,
.btn-outline-secondary.show,
.btn-outline-secondary:first-child:active,
:not(.btn-check) + .btn-outline-secondary:active {
    color: #ffffff;
    background-color: #5a6268;
    border-color: #5a6268;
}

/* 背景颜色 */
.bg-primary {
    background-color: var(--accent-color) !important;
}

.bg-info {
    background-color: #4a7b9a !important;
}

.bg-success {
    background-color: #5a7d5a !important;
}

.bg-secondary {
    background-color: #6c757d !important;
}

.bg-light {
    background-color: #e0d9d1 !important;
}

/* Badge Styles - 调整badge的padding使其更大更易读 */
.badge {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.375rem;
}

/* 不同语义的badge样式 */
.badge.bg-primary {
    background-color: var(--accent-color) !important;
}

.badge.bg-secondary {
    background-color: #6c757d !important;
}

.badge.bg-success {
    background-color: #5a7d5a !important;
}

.badge.bg-danger {
    background-color: #9a4a4a !important;
}

.badge.bg-warning {
    background-color: #c28d30 !important;
    color: #000;
}

.badge.bg-info {
    background-color: #4a7b9a !important;
}

.badge.bg-light {
    background-color: #e0d9d1 !important;
    color: var(--heading-color);
}

.badge.bg-dark {
    background-color: var(--heading-color) !important;
}

/* 复选框样式 - 使用主题色 */
.form-check-input:checked {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}