/* ==========================================================================
   GoSMS 色彩系统 v2 —— 纯 CSS 独立覆盖文件（不依赖 SCSS）
   加载顺序：core.css 之后（见 panels/styles.blade.php）

   设计原则
   1. 中性色负责 90% 的界面：暖灰阶（#1C1C1C / #EEEEEC / #F8F8F7 / #FFFFFF）
   2. 品牌绿只出现在「可操作」与「当前状态」上，不做大面积装饰
   3. 实心按钮 / 链接文字用深翠绿 #044B39（白字对比度 10.4:1，AAA）
      #1EA97B 白字对比度仅 2.99:1，不能承载文字，只做强调：焦点环、指示条、图标、图表
   4. 语义色 = 实色（图标/指示）+ 深色（文字）+ 浅底（徽章/提示背景）三件套
   ========================================================================== */

/* ========== 1. Design Tokens ========== */
:root {
    /* 中性色（暖灰） */
    --gs-ink: #1C1C1C;              /* 标题、主文字、深色按钮 */
    --gs-text: #3A3A37;             /* 正文 */
    --gs-text-secondary: #6B6B66;   /* 次要文字、说明 */
    --gs-text-muted: #9A9A94;       /* 占位、禁用、时间戳 */
    --gs-border: #E4E4E0;           /* 输入框、卡片描边 */
    --gs-border-subtle: #EEEEEC;    /* 分隔线 */
    --gs-bg: #F8F8F7;               /* 页面底色 */
    --gs-surface: #FFFFFF;          /* 卡片、面板 */
    --gs-surface-hover: #F3F3F1;    /* 行/项 hover */
    --gs-surface-active: #EEEEEC;   /* 行/项 选中 */

    /* 品牌绿阶 */
    --gs-brand-950: #053438;        /* 深青黑：tooltip、深色面 */
    --gs-brand-900: #033A2C;        /* 主按钮 hover/active */
    --gs-brand-800: #044B39;        /* 主操作色：实心按钮、链接、选中文字 */
    --gs-brand-500: #1EA97B;        /* 强调色：焦点环、指示条、图标、图表 */
    --gs-brand-100: #C8EFC1;        /* 浅绿：选中底、徽章底 */
    --gs-brand-50: #EAF8E7;         /* 极浅绿：hover 底、提示底 */
    --gs-brand-rgb: 30, 169, 123;
    --gs-focus-ring: 0 0 0 3px rgba(30, 169, 123, 0.28);

    /* 按钮统一尺寸 */
    --gs-btn-width: 10rem;          /* 等宽：容纳「图标 + 6 个汉字」 */
    --gs-btn-height: var(--gs-field-height, 40px);        /* 与输入框 / 下拉框同高，同一行对齐 */
    --gs-btn-padding: 0 1.25rem;
    --gs-btn-height-sm: var(--gs-field-height-sm, 32px);
    --gs-btn-height-lg: var(--gs-field-height-lg, 48px);
    --gs-btn-radius: 0.5rem;
    --gs-btn-font: 1rem;
    --gs-btn-gap: 0.5rem;
    --gs-btn-icon: 1rem;

    /* 语义色 */
    --gs-success: #72C613;
    --gs-success-text: #264B04;
    --gs-success-soft: #CBF39D;
    --gs-info: #2180E6;
    --gs-info-text: #1A62B0;
    --gs-info-soft: #E3EFFC;
    --gs-teal-soft: #BDF0EC;        /* 中性提示/高亮（新消息、标记） */
    --gs-warning: #F29A2E;
    --gs-warning-text: #8A4B00;
    --gs-warning-soft: #FDEFD9;
    --gs-danger: #E5484D;
    --gs-danger-text: #B42328;
    --gs-danger-soft: #FDE8E8;
    --gs-danger-solid: #D63A3F;     /* 实心按钮底（白字 4.63:1） */
    --gs-info-solid: #1B6FCB;       /* 实心按钮底（白字 5.02:1） */

    /* Bootstrap 5 变量映射 */
    --bs-primary: #044B39;
    --bs-primary-rgb: 4, 75, 57;
    --bs-secondary: #6B6B66;
    --bs-secondary-rgb: 107, 107, 102;
    --bs-success: #72C613;
    --bs-success-rgb: 114, 198, 19;
    --bs-info: #2180E6;
    --bs-info-rgb: 33, 128, 230;
    --bs-warning: #F29A2E;
    --bs-warning-rgb: 242, 154, 46;
    --bs-danger: #E5484D;
    --bs-danger-rgb: 229, 72, 77;
    --bs-light: #F8F8F7;
    --bs-light-rgb: 248, 248, 247;
    --bs-dark: #1C1C1C;
    --bs-dark-rgb: 28, 28, 28;
    --bs-body-color: #3A3A37;
    --bs-body-color-rgb: 58, 58, 55;
    --bs-body-bg: #F8F8F7;
    --bs-body-bg-rgb: 248, 248, 247;
    --bs-border-color: #E4E4E0;

    /* 旧变量兼容（其它页面仍在引用） */
    --primary-color: #044B39;
    --primary-dark: #053438;
    --primary-light: #C8EFC1;
    --secondary-green: #72C613;
    --secondary-dark-green: #264B04;
    --secondary-light-green: #CBF39D;
    --accent-cyan-dark: #053438;
    --accent-blue: #2180E6;
    --accent-cyan-light: #BDF0EC;
    --gradient-primary: linear-gradient(135deg, #1EA97B 0%, #044B39 100%);
    --gradient-button: linear-gradient(135deg, #1EA97B 0%, #044B39 100%);
    --gradient-progress: linear-gradient(90deg, #044B39 0%, #1EA97B 100%);
    --gradient-header: linear-gradient(135deg, #044B39 0%, #053438 100%);
}

/* ========== 2. Base ========== */
body {
    background-color: var(--gs-bg);
    color: var(--gs-text);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.card-title,
.content-header-title {
    color: var(--gs-ink);
}

a {
    color: var(--gs-brand-800);
}

a:hover {
    color: var(--gs-brand-900);
}

hr {
    border-color: var(--gs-border-subtle);
    opacity: 1;
}

::selection {
    background: var(--gs-brand-100);
    color: var(--gs-ink);
}

/* 滚动条：中性灰，不抢视觉 */
::-webkit-scrollbar-thumb {
    background-color: #D6D6D2;
    border-radius: 8px;
}

::-webkit-scrollbar-thumb:hover {
    background-color: #B8B8B3;
}

/* ========== 3. Layout: Navbar / Sidebar / Content ========== */
.header-navbar,
.header-navbar.floating-nav {
    background-color: var(--gs-surface);
    box-shadow: 0 1px 0 var(--gs-border-subtle), 0 4px 16px rgba(28, 28, 28, 0.04);
}

.header-navbar .navbar-container .nav .nav-item .nav-link,
.header-navbar .navbar-container .nav .nav-item .nav-link i,
.header-navbar .navbar-container .nav .nav-item .nav-link svg {
    color: var(--gs-text);
}

.main-menu.menu-light {
    background: var(--gs-surface);
    color: var(--gs-text);
    border-right: 1px solid var(--gs-border-subtle);
}

.main-menu.menu-light .navigation {
    background: var(--gs-surface);
}

.main-menu.menu-light .navigation li a {
    color: var(--gs-text);
}

.main-menu.menu-light .navigation .navigation-header {
    color: var(--gs-text-muted);
}

.main-menu.menu-light .navigation > li > a:hover,
.main-menu.menu-light .navigation li ul li a:hover {
    background: var(--gs-surface-hover);
    color: var(--gs-ink);
}

/* 一级激活：深翠绿实底 + 白字，去掉旧版发光渐变 */
.main-menu.menu-light .navigation > li.active > a {
    background: var(--gs-brand-800);
    box-shadow: none;
    color: #FFFFFF;
    font-weight: 500;
}

.main-menu.menu-light .navigation > li.active > a svg,
.main-menu.menu-light .navigation > li.active > a i {
    color: #FFFFFF;
}

/* 展开的分组 */
.main-menu.menu-light .navigation > li.open:not(.menu-item-closing) > a,
.main-menu.menu-light .navigation > li.sidebar-group-active > a,
.main-menu.menu-light .navigation > li ul .open > a,
.main-menu.menu-light .navigation > li ul .sidebar-group-active > a {
    background: var(--gs-surface-hover);
    color: var(--gs-ink);
}

/* 二级激活：浅绿底 + 深绿字 */
.main-menu.menu-light .navigation > li .active {
    background: var(--gs-brand-50);
}

.main-menu.menu-light .navigation > li .active > a {
    color: var(--gs-brand-800);
    font-weight: 500;
}

.main-menu.menu-light .navigation > li .active .hover > a,
.main-menu.menu-light .navigation > li .active :hover > a {
    background: var(--gs-surface-hover);
}

/* ========== 4. Surfaces ========== */
.card {
    background-color: var(--gs-surface);
    box-shadow: 0 1px 2px rgba(28, 28, 28, 0.04), 0 0 0 1px var(--gs-border-subtle);
}

.card-header,
.card-footer {
    border-color: var(--gs-border-subtle);
}

.modal-content {
    background-color: var(--gs-surface);
}

.modal-header {
    background-color: var(--gs-bg);
    border-bottom-color: var(--gs-border-subtle);
}

.modal-footer {
    border-top-color: var(--gs-border-subtle);
}

.dropdown-menu {
    border-color: var(--gs-border);
    box-shadow: 0 8px 24px rgba(28, 28, 28, 0.08);
}

.dropdown-item {
    color: var(--gs-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--gs-surface-hover);
    color: var(--gs-ink);
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--gs-brand-50);
    color: var(--gs-brand-800);
}

/* ========== 5. Buttons ========== */
/* 按钮统一规格（颜色不变）
   - 高度（min-height，上下内边距 0，单行即为该高度；多行文字自动增高）与表单控件一致：默认 40px / sm 32px / lg 48px（--gs-field-height*，见 form-system.css），同一行的输入框、下拉框、按钮等高
   - 统一宽度 10rem（--gs-btn-width）：纯文字 / 图标+文字 / 纯图标按钮等宽；更长文字自动加宽，不截断
   - .rounded-circle / .rounded-pill 等工具类仍优先生效 */
.btn,
.btn-sm,
.btn-lg,
.btn.btn-icon,
.btn-group-sm > .btn,
.btn-group-lg > .btn,
.btn-group-sm > .btn.btn-icon,
.btn-group-lg > .btn.btn-icon,
.btn.btn-sm.btn-icon,
.btn.btn-lg.btn-icon,
.input-group-sm > .btn,
.input-group-lg > .btn,
html .content .content-wrapper .content-header-right .btn-icon {
    align-items: center;
    border-radius: var(--gs-btn-radius);
    display: inline-flex;
    font-size: var(--gs-btn-font);
    gap: var(--gs-btn-gap);
    justify-content: center;
    line-height: 1.5rem;
    min-height: var(--gs-btn-height);
    min-width: var(--gs-btn-width);
    padding: var(--gs-btn-padding);
}

/* 小 / 大尺寸 */
.btn-sm,
.btn.btn-sm.btn-icon,
.btn-group-sm > .btn,
.btn-group-sm > .btn.btn-icon,
.input-group-sm > .btn {
    font-size: 13px;
    min-height: var(--gs-btn-height-sm);
    padding: 0 0.75rem;
}

.btn-lg,
.btn.btn-lg.btn-icon,
.btn-group-lg > .btn,
.btn-group-lg > .btn.btn-icon,
.input-group-lg > .btn {
    min-height: var(--gs-btn-height-lg);
    padding: 0 1.5rem;
}


/* 图标与文字同一基线、同尺寸 */
.btn > svg,
.btn > i,
.btn > .lucide {
    flex-shrink: 0;
    height: var(--gs-btn-icon);
    margin: 0;
    vertical-align: middle;
    width: var(--gs-btn-icon);
}

.btn > i {
    font-size: var(--gs-btn-icon);
    line-height: 1;
}

/* 卡片标题栏按钮（core.css 中单独压成了 6px） */
.card .card-header .heading-elements a.btn {
    padding-bottom: 0;
    padding-top: 0;
}

/* 按钮组内的按钮：统一等宽 */
.btn-group > .btn {
    flex: 0 0 auto;
}

.btn-primary,
.btn-primary:disabled,
.btn-primary.disabled {
    background-color: var(--gs-brand-800) !important;
    border-color: var(--gs-brand-800) !important;
    color: #FFFFFF !important;
}

.btn-primary:hover:not(.disabled):not(:disabled),
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    background-color: var(--gs-brand-900) !important;
    border-color: var(--gs-brand-900) !important;
    color: #FFFFFF !important;
}

.btn-outline-primary {
    border-color: var(--gs-brand-800) !important;
    color: var(--gs-brand-800) !important;
    background-color: transparent;
}

.btn-outline-primary:hover:not(.disabled):not(:disabled),
.btn-outline-primary:active,
.btn-outline-primary.active {
    background-color: var(--gs-brand-50) !important;
    color: var(--gs-brand-800) !important;
}

.btn-flat-primary {
    color: var(--gs-brand-800);
}

.btn-flat-primary:hover:not(.disabled):not(:disabled),
.btn-flat-primary:focus {
    background-color: var(--gs-brand-50);
    color: var(--gs-brand-800);
}

.btn-relief-primary,
.btn-gradient-primary {
    background: var(--gs-brand-800) !important;
    border-color: var(--gs-brand-800) !important;
    box-shadow: none !important;
    color: #FFFFFF !important;
}

.btn-relief-primary:hover:not(.disabled):not(:disabled),
.btn-gradient-primary:hover:not(.disabled):not(:disabled) {
    background: var(--gs-brand-900) !important;
}

/* 次要按钮：中性描边，SaaS 中最常用 */
.btn-secondary {
    background-color: var(--gs-surface) !important;
    border-color: var(--gs-border) !important;
    color: var(--gs-ink) !important;
}

.btn-secondary:hover:not(.disabled):not(:disabled),
.btn-secondary:active,
.btn-secondary.active {
    background-color: var(--gs-surface-hover) !important;
    border-color: #D6D6D2 !important;
    color: var(--gs-ink) !important;
}

.btn-outline-secondary {
    border-color: var(--gs-border) !important;
    color: var(--gs-text) !important;
}

.btn-outline-secondary:hover:not(.disabled):not(:disabled) {
    background-color: var(--gs-surface-hover) !important;
    color: var(--gs-ink) !important;
}

.btn-flat-secondary {
    color: var(--gs-text-secondary);
}

.btn-dark,
.btn-gradient-dark {
    background: var(--gs-ink) !important;
    border-color: var(--gs-ink) !important;
    color: #FFFFFF !important;
}

.btn-dark:hover:not(.disabled):not(:disabled) {
    background: #333331 !important;
    border-color: #333331 !important;
}

.btn-light {
    background-color: var(--gs-surface-active) !important;
    border-color: var(--gs-surface-active) !important;
    color: var(--gs-ink) !important;
}

/* 成功：#72C613 白字对比不足，改深橄榄绿文字配浅绿底 */
.btn-success,
.btn-gradient-success {
    background: var(--gs-success-text) !important;
    border-color: var(--gs-success-text) !important;
    color: #FFFFFF !important;
}

.btn-success:hover:not(.disabled):not(:disabled) {
    background: #1B3703 !important;
    border-color: #1B3703 !important;
}

.btn-outline-success {
    border-color: var(--gs-success) !important;
    color: var(--gs-success-text) !important;
}

.btn-flat-success {
    color: var(--gs-success-text);
}

.btn-info {
    background-color: var(--gs-info-solid) !important;
    border-color: var(--gs-info-solid) !important;
    color: #FFFFFF !important;
}

.btn-info:hover:not(.disabled):not(:disabled) {
    background-color: var(--gs-info-text) !important;
    border-color: var(--gs-info-text) !important;
}

.btn-outline-info {
    border-color: var(--gs-info) !important;
    color: var(--gs-info-text) !important;
}

.btn-flat-info {
    color: var(--gs-info-text);
}

.btn-warning {
    background-color: var(--gs-warning) !important;
    border-color: var(--gs-warning) !important;
    color: var(--gs-ink) !important;
}

.btn-outline-warning {
    border-color: var(--gs-warning) !important;
    color: var(--gs-warning-text) !important;
}

.btn-flat-warning {
    color: var(--gs-warning-text);
}

.btn-danger {
    background-color: var(--gs-danger-solid) !important;
    border-color: var(--gs-danger-solid) !important;
    color: #FFFFFF !important;
}

.btn-danger:hover:not(.disabled):not(:disabled) {
    background-color: var(--gs-danger-text) !important;
    border-color: var(--gs-danger-text) !important;
}

.btn-outline-danger {
    border-color: var(--gs-danger) !important;
    color: var(--gs-danger-text) !important;
}

.btn-flat-danger {
    color: var(--gs-danger-text);
}

.btn:focus-visible {
    box-shadow: var(--gs-focus-ring) !important;
}

/* ========== 6. Utilities（与 core.css 同为 !important 的工具类） ========== */
.bg-primary { background-color: var(--gs-brand-800) !important; }
.bg-secondary { background-color: var(--gs-text-secondary) !important; }
.bg-success { background-color: var(--gs-success) !important; }
.bg-info { background-color: var(--gs-info) !important; }
.bg-warning { background-color: var(--gs-warning) !important; }
.bg-danger { background-color: var(--gs-danger) !important; }
.bg-dark { background-color: var(--gs-ink) !important; }
.bg-light { background-color: var(--gs-bg) !important; }
.bg-white { background-color: var(--gs-surface) !important; }
.bg-body { background-color: var(--gs-bg) !important; }

.text-primary { color: var(--gs-brand-800) !important; }
.text-secondary { color: var(--gs-text-secondary) !important; }
.text-success { color: var(--gs-success-text) !important; }
.text-info { color: var(--gs-info-text) !important; }
.text-warning { color: var(--gs-warning-text) !important; }
.text-danger { color: var(--gs-danger-text) !important; }
.text-dark { color: var(--gs-ink) !important; }
.text-muted { color: var(--gs-text-muted) !important; }
.text-body { color: var(--gs-text) !important; }

.border-primary { border-color: var(--gs-brand-500) !important; }
.border-success { border-color: var(--gs-success) !important; }
.border-info { border-color: var(--gs-info) !important; }
.border-warning { border-color: var(--gs-warning) !important; }
.border-danger { border-color: var(--gs-danger) !important; }
.border,
.border-top,
.border-bottom,
.border-start,
.border-end {
    border-color: var(--gs-border-subtle) !important;
}

/* 浅色底 + 深色字：徽章、头像、图标底 */
.bg-light-primary { background: var(--gs-brand-50) !important; color: var(--gs-brand-800) !important; }
.bg-light-secondary { background: var(--gs-surface-active) !important; color: var(--gs-text-secondary) !important; }
.bg-light-success { background: #EEF9DD !important; color: var(--gs-success-text) !important; }
.bg-light-info { background: var(--gs-info-soft) !important; color: var(--gs-info-text) !important; }
.bg-light-warning { background: var(--gs-warning-soft) !important; color: var(--gs-warning-text) !important; }
.bg-light-danger { background: var(--gs-danger-soft) !important; color: var(--gs-danger-text) !important; }
.bg-light-dark { background: var(--gs-surface-active) !important; color: var(--gs-ink) !important; }

/* ========== 7. Badges ========== */
.badge.bg-primary,
.badge-primary { background-color: var(--gs-brand-800) !important; color: #FFFFFF; }
.badge.bg-success,
.badge-success { background-color: var(--gs-success-soft) !important; color: var(--gs-success-text) !important; }
.badge.bg-info,
.badge-info { background-color: var(--gs-info-soft) !important; color: var(--gs-info-text) !important; }
.badge.bg-warning,
.badge-warning { background-color: var(--gs-warning-soft) !important; color: var(--gs-warning-text) !important; }
.badge.bg-danger,
.badge-danger { background-color: var(--gs-danger-soft) !important; color: var(--gs-danger-text) !important; }
.badge.bg-secondary { background-color: var(--gs-surface-active) !important; color: var(--gs-text-secondary) !important; }
.badge-light-primary { background-color: var(--gs-brand-100) !important; color: var(--gs-brand-800) !important; }
.badge-light-success { background-color: var(--gs-success-soft) !important; color: var(--gs-success-text) !important; }

/* ========== 8. Forms ========== */
/* 表单样式统一在 form-system.css */

/* ========== 9. Navigation Components ========== */
.nav-tabs {
    border-bottom-color: var(--gs-border-subtle);
}

.nav-tabs .nav-link {
    color: var(--gs-text-secondary);
}

.nav-tabs .nav-link:hover {
    color: var(--gs-ink);
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
    color: var(--gs-brand-800);
}

.nav-tabs .nav-link:after {
    background: var(--gs-brand-500) !important;
}

.nav-pills .nav-link {
    color: var(--gs-text-secondary);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--gs-brand-800);
    border-color: var(--gs-brand-800);
    box-shadow: none;
    color: #FFFFFF;
}

.pagination .page-link {
    background-color: var(--gs-surface);
    border-color: var(--gs-border-subtle);
    color: var(--gs-text);
}

.pagination .page-link:hover {
    background-color: var(--gs-surface-hover);
    color: var(--gs-ink);
}

.pagination .page-item.active .page-link {
    background-color: var(--gs-brand-800) !important;
    border-color: var(--gs-brand-800) !important;
    color: #FFFFFF !important;
}

.pagination .page-item.disabled .page-link {
    color: var(--gs-text-muted);
}

.breadcrumb-item a { color: var(--gs-text-secondary); }
.breadcrumb-item.active { color: var(--gs-ink); }

/* 分段切换（Segmented control）：<ul class="nav nav-pills nav-justified gs-segmented">
   浅灰轨道 + 墨黑选中块；选项高度沿用按钮 token（40px） */
.nav.gs-segmented {
    background-color: var(--gs-surface-hover);
    border-radius: 0.75rem;
    flex-wrap: nowrap;
    gap: 0.25rem;
    padding: 0.375rem;
}

.nav.gs-segmented .nav-link {
    background-color: transparent;
    border: 0;
    border-radius: var(--gs-btn-radius, 0.5rem);
    box-shadow: none;
    color: var(--gs-text);
    font-size: var(--gs-btn-font, 1rem);
    font-weight: 600;
    line-height: 1.5rem;
    min-height: var(--gs-btn-height, 40px);
    padding: var(--gs-btn-padding, 0 1.25rem);
    display: inline-flex;
    align-items: center;
    transition: background-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.nav.gs-segmented .nav-link:hover:not(.active) {
    background-color: rgba(28, 28, 28, 0.05);
    color: var(--gs-ink);
}

.nav.gs-segmented .nav-link.active,
.nav.gs-segmented .show > .nav-link {
    background-color: var(--gs-ink);
    box-shadow: 0 1px 2px rgba(28, 28, 28, 0.12);
    color: #FFFFFF;
}

.nav.gs-segmented .nav-link:focus-visible {
    box-shadow: var(--gs-focus-ring);
    outline: 0;
}

/* 窄屏：可横向滑动，不挤压文字 */
@media (max-width: 767.98px) {
    .nav.gs-segmented {
        overflow-x: auto;
        scrollbar-width: none;
    }

    .nav.gs-segmented::-webkit-scrollbar {
        display: none;
    }

    .nav.gs-segmented .nav-item {
        flex: 0 0 auto;
    }
}

/* ========== 10. Tables ========== */
.table {
    --bs-table-color: var(--gs-text);
    --bs-table-border-color: var(--gs-border-subtle);
    --bs-table-hover-bg: var(--gs-surface-hover);
    --bs-table-striped-bg: #FBFBFA;
    color: var(--gs-text);
    border-color: var(--gs-border-subtle);
}

.table > :not(caption) > * > * {
    border-bottom-color: var(--gs-border-subtle);
}

.table thead th,
.table tfoot th {
    background-color: var(--gs-bg);
    color: var(--gs-text-secondary);
    border-bottom-color: var(--gs-border-subtle);
}

.table-hover tbody tr:hover {
    background-color: var(--gs-surface-hover);
}

.table-primary {
    --bs-table-bg: var(--gs-brand-50);
    --bs-table-border-color: var(--gs-brand-100);
}

/* DataTables */
table.dataTable tbody tr.selected,
table.dataTable tbody tr.selected > * {
    background-color: var(--gs-brand-50) !important;
    box-shadow: none !important;
    color: var(--gs-ink) !important;
}

/* ========== 11. Feedback ========== */
.alert-primary {
    background-color: var(--gs-brand-50) !important;
    border-color: var(--gs-brand-100) !important;
    color: var(--gs-brand-800) !important;
}

.alert-success {
    background-color: #EEF9DD !important;
    border-color: var(--gs-success-soft) !important;
    color: var(--gs-success-text) !important;
}

.alert-info {
    background-color: var(--gs-info-soft) !important;
    border-color: #C6DDF8 !important;
    color: var(--gs-info-text) !important;
}

.alert-warning {
    background-color: var(--gs-warning-soft) !important;
    border-color: #F8D9AE !important;
    color: var(--gs-warning-text) !important;
}

.alert-danger {
    background-color: var(--gs-danger-soft) !important;
    border-color: #F7C6C7 !important;
    color: var(--gs-danger-text) !important;
}

.alert .alert-heading {
    box-shadow: none !important;
}

.progress {
    background-color: var(--gs-surface-active);
}

.progress-bar,
.progress-bar-primary .progress-bar,
.progress-bar.bg-primary {
    background-color: var(--gs-brand-500) !important;
}

.progress-bar-success .progress-bar,
.progress-bar.bg-success {
    background-color: var(--gs-success) !important;
}

.spinner-border.text-primary,
.spinner-grow.text-primary {
    color: var(--gs-brand-500) !important;
}

.tooltip-inner {
    background-color: var(--gs-brand-950);
    color: #FFFFFF;
}

.bs-tooltip-top .tooltip-arrow::before { border-top-color: var(--gs-brand-950); }
.bs-tooltip-bottom .tooltip-arrow::before { border-bottom-color: var(--gs-brand-950); }
.bs-tooltip-start .tooltip-arrow::before { border-left-color: var(--gs-brand-950); }
.bs-tooltip-end .tooltip-arrow::before { border-right-color: var(--gs-brand-950); }

/* 提示框（toastr）与弹窗（SweetAlert2）样式统一在 feedback-system.css */

/* ========== 12. Charts（ApexCharts） ========== */
.apexcharts-series[seriesName*="primary"],
.apexcharts-series[seriesName*="Primary"] {
    fill: var(--gs-brand-500) !important;
    stroke: var(--gs-brand-500) !important;
}

.apexcharts-series[seriesName*="success"],
.apexcharts-series[seriesName*="Success"] {
    fill: var(--gs-success) !important;
    stroke: var(--gs-success) !important;
}

.apexcharts-gridline,
.apexcharts-xaxis-tick {
    stroke: var(--gs-border-subtle);
}

.apexcharts-text,
.apexcharts-xaxis-label,
.apexcharts-yaxis-label {
    fill: var(--gs-text-muted);
}

/* ========== 13. 独立工具类（供页面按需使用） ========== */
.card-green-border { border-left: 4px solid var(--gs-brand-500) !important; }
.card-success-border { border-left: 4px solid var(--gs-success) !important; }
.shadow-primary { box-shadow: 0 4px 12px rgba(4, 75, 57, 0.18) !important; }
.shadow-success { box-shadow: 0 4px 12px rgba(114, 198, 19, 0.22) !important; }
.active-green { color: var(--gs-brand-800) !important; font-weight: 600 !important; }
.hover-green:hover { background-color: var(--gs-brand-50) !important; color: var(--gs-brand-800) !important; }
.border-accent-cyan { border-color: var(--gs-teal-soft) !important; }
.border-accent-blue { border-color: var(--gs-info) !important; }
.bg-light-green { background-color: var(--gs-brand-100) !important; }
.bg-light-cyan { background-color: var(--gs-teal-soft) !important; }
.bg-deep-green { background-color: var(--gs-brand-800) !important; color: #FFFFFF !important; }
.text-deep-green { color: var(--gs-brand-800) !important; }
.text-teal { color: var(--gs-brand-500) !important; }
.text-grass-green { color: var(--gs-success-text) !important; }
.text-accent-blue { color: var(--gs-info-text) !important; }
