/* ========================================================================
   iCloud 风格覆盖层（Liquid Glass · 2026-07-04）
   基于 Apple 设计语言：半透明毛玻璃、浅色侧栏、大圆角留白、系统蓝。
   覆盖 Bootstrap 5 默认样式。所有原类名（sidebar/stat-card/table-danger 等）
   语义行为保持不变，仅替换视觉表现。
   ======================================================================== */

:root {
    /* iCloud 颜色令牌 */
    --ic-bg: #f5f5f7;                       /* 主背景：苹果浅灰 */
    --ic-sider-bg: rgba(255, 255, 255, 0.72); /* 侧栏：半透明白（毛玻璃） */
    --ic-sider-text: #1d1d1f;               /* 主文字：近黑 */
    --ic-sider-text-muted: #86868b;         /* 次要文字：中灰 */
    --ic-blue: #0071e3;                     /* 系统蓝（主色/按钮/链接） */
    --ic-blue-hover: #0077ed;
    --ic-blue-light: rgba(0, 113, 227, 0.1);
    --ic-card-bg: rgba(255, 255, 255, 0.8); /* 卡片：半透明白 */
    --ic-card-solid: #ffffff;               /* 卡片实色（无毛玻璃回退） */
    --ic-card-border: rgba(0, 0, 0, 0.06);
    --ic-radius: 12px;
    --ic-radius-sm: 8px;
    --ic-radius-btn: 980px;                 /* 胶囊按钮 */
    --ic-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
    --ic-shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.08);
    --ic-green: #34c759;
    --ic-orange: #ff9500;
    --ic-red: #ff3b30;
    --ic-separator: rgba(60, 60, 67, 0.12); /* 分隔线：苹果灰 */
    --ic-stripe: rgba(0, 0, 0, 0.025);      /* 斑马纹叠加（浅色：极淡黑） */
    --ic-hover: rgba(0, 0, 0, 0.04);        /* hover 叠加（浅色：淡黑） */

    /* 兼容旧变量（部分模板/内联可能引用） */
    --ant-primary: #0071e3;
    --ant-success: #34c759;
    --ant-warning: #ff9500;
    --ant-error: #ff3b30;
    --ant-content-bg: #f5f5f7;
    --ant-card-bg: #ffffff;
    --ant-border: rgba(0, 0, 0, 0.08);
    --ant-text: #1d1d1f;
}

/* ========================================================================
   深色主题令牌（data-bs-theme="dark" 时生效）
   标准 Apple 深色：与 macOS/iOS 系统深色模式观感一致。
   Bootstrap 组件由 data-bs-theme 自动切换，这里仅重定义 iCloud 令牌。
   ======================================================================== */
:root[data-bs-theme="dark"] {
    --ic-bg: #1c1c1e;
    --ic-sider-bg: rgba(28, 28, 30, 0.72);
    --ic-sider-text: #f5f5f7;
    --ic-sider-text-muted: #98989d;
    --ic-blue: #0a84ff;
    --ic-blue-hover: #409cff;
    --ic-blue-light: rgba(10, 132, 255, 0.18);
    --ic-card-bg: rgba(44, 44, 46, 0.8);
    --ic-card-solid: #2c2c2e;
    --ic-card-border: rgba(255, 255, 255, 0.10);
    --ic-shadow: none;
    --ic-shadow-hover: 0 0 0 1px var(--ic-card-border);
    --ic-green: #30d158;
    --ic-orange: #ff9f0a;
    --ic-red: #ff453a;
    --ic-separator: rgba(84, 84, 88, 0.6);
    --ic-stripe: rgba(255, 255, 255, 0.035); /* 斑马纹叠加（深色：极淡白） */
    --ic-hover: rgba(255, 255, 255, 0.06);   /* hover 叠加（深色：淡白） */

    --ant-primary: #0a84ff;
    --ant-success: #30d158;
    --ant-warning: #ff9f0a;
    --ant-error: #ff453a;
    --ant-content-bg: #1c1c1e;
    --ant-card-bg: #2c2c2e;
    --ant-border: rgba(255, 255, 255, 0.10);
    --ant-text: #f5f5f7;
}

/* ------------------------------------------------------------------------
   深色模式：接管 Bootstrap 浅色工具类（bg-light/table-light/text-dark 等）
   这些类不响应 data-bs-theme，会强制保持浅色，必须显式覆盖为深色。
   ------------------------------------------------------------------------ */
:root[data-bs-theme="dark"] body,
:root[data-bs-theme="dark"] .bg-light,
:root[data-bs-theme="dark"] .navbar-light,
:root[data-bs-theme="dark"] .table-light,
:root[data-bs-theme="dark"] .btn-light {
    background-color: var(--ic-card-solid) !important;
    color: var(--ic-sider-text);
}
:root[data-bs-theme="dark"] .navbar-light .navbar-brand,
:root[data-bs-theme="dark"] .navbar-light .navbar-text,
:root[data-bs-theme="dark"] .navbar-light .btn-outline-secondary {
    color: var(--ic-sider-text);
}
:root[data-bs-theme="dark"] .text-dark {
    color: var(--ic-sider-text) !important;
}
:root[data-bs-theme="dark"] .text-muted {
    color: var(--ic-sider-text-muted) !important;
}
/* 表格在深色下：边框/条纹行调暗 */
:root[data-bs-theme="dark"] .table {
    --bs-table-color: var(--ic-sider-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--ic-card-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-striped-color: var(--ic-sider-text);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.05);
    color: var(--ic-sider-text);
}
/* 表单控件在深色下的回退（Bootstrap 多数已自动处理，兜底） */
:root[data-bs-theme="dark"] .form-control,
:root[data-bs-theme="dark"] .form-select {
    background-color: var(--ic-card-solid);
    color: var(--ic-sider-text);
    border-color: var(--ic-card-border);
}
:root[data-bs-theme="dark"] .form-control::placeholder {
    color: var(--ic-sider-text-muted);
}
/* alert 文字色：浅色用的深色文字在深底下偏暗，统一提亮为对应亮色 */
:root[data-bs-theme="dark"] .alert-danger { color: var(--ic-red); }
:root[data-bs-theme="dark"] .alert-info { color: var(--ic-blue); }
:root[data-bs-theme="dark"] .alert-success { color: var(--ic-green); }
/* 卡片本体：Bootstrap .card 默认白底，深色下统一变暗 */
:root[data-bs-theme="dark"] .card,
:root[data-bs-theme="dark"] .card-body {
    background-color: var(--ic-card-solid);
    color: var(--ic-sider-text);
    border-color: var(--ic-card-border);
}
/* 水平分隔线 <hr> 在深色下可见 */
:root[data-bs-theme="dark"] hr {
    border-color: var(--ic-separator);
    opacity: 1;
}

/* 主题切换按钮 */
.theme-toggle {
    line-height: 1;
    font-size: 1rem;
    min-width: 36px;
}

/* ========================================================================
   全局基础
   ======================================================================== */
body {
    background-color: var(--ic-bg) !important;
    color: var(--ic-sider-text);
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
        "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.01em;
}

a {
    color: var(--ic-blue);
    transition: color 0.15s ease;
}
a:hover {
    color: var(--ic-blue-hover);
}

/* ========================================================================
   按钮（iCloud 风格：胶囊形 + 系统蓝）
   ======================================================================== */
.btn {
    border-radius: var(--ic-radius-sm);
    font-weight: 400;
    transition: all 0.15s ease;
}

.btn-primary {
    background-color: var(--ic-blue);
    border-color: var(--ic-blue);
    color: #fff;
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--ic-blue-hover);
    border-color: var(--ic-blue-hover);
    color: #fff;
}
.btn-primary:active,
.btn-primary.active,
.btn-primary:focus,
.btn:focus,
.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus {
    box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.2);
}

.btn-success {
    background-color: var(--ic-green);
    border-color: var(--ic-green);
    color: #fff;
}
.btn-success:hover,
.btn-success:focus {
    background-color: #2db84e;
    border-color: #2db84e;
    color: #fff;
}
.btn-success:not(:disabled):not(.disabled):active:focus,
.btn-success:not(:disabled):not(.disabled).active:focus {
    box-shadow: 0 0 0 3px rgba(52, 199, 89, 0.2);
}

.btn-danger {
    background-color: var(--ic-red);
    border-color: var(--ic-red);
    color: #fff;
}
.btn-danger:hover,
.btn-danger:focus {
    background-color: #e0342a;
    border-color: #e0342a;
    color: #fff;
}
.btn-danger:not(:disabled):not(.disabled):active:focus,
.btn-danger:not(:disabled):not(.disabled).active:focus {
    box-shadow: 0 0 0 3px rgba(255, 59, 48, 0.2);
}

/* outline 按钮用浅蓝填充 + 主色边框/文字 */
.btn-outline-primary {
    color: var(--ic-blue);
    border-color: var(--ic-blue);
    background-color: var(--ic-card-solid);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--ic-blue);
    border-color: var(--ic-blue);
    color: #fff;
}

.btn-outline-danger {
    color: var(--ic-red);
    border-color: var(--ic-red);
    background-color: var(--ic-card-solid);
}
.btn-outline-danger:hover,
.btn-outline-danger:focus {
    background-color: var(--ic-red);
    border-color: var(--ic-red);
    color: #fff;
}

.btn-outline-success {
    color: var(--ic-green);
    border-color: var(--ic-green);
    background-color: var(--ic-card-solid);
}
.btn-outline-success:hover,
.btn-outline-success:focus {
    background-color: var(--ic-green);
    border-color: var(--ic-green);
    color: #fff;
}

.btn-outline-secondary {
    color: var(--ic-sider-text-muted);
    border-color: var(--ic-card-border);
    background-color: var(--ic-card-solid);
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    color: var(--ic-blue);
    border-color: var(--ic-blue);
    background-color: var(--ic-blue-light);
}

.btn-link {
    color: var(--ic-blue);
}

/* ========================================================================
   表格（iCloud 风格：无边框 + 行分隔线 + 大行距）
   ======================================================================== */
/* ========================================================================
   表格（方案3：斑马纹底色分隔 · 无横线）
   表头：浅灰底色块 + 阴影下边线；表体：奇白偶灰交替；hover：系统蓝极浅底。
   彻底覆盖 Bootstrap table-bordered 的深色边框。
   ======================================================================== */
.table {
    --bs-table-bg: transparent;
    --bs-table-border-color: transparent;
    --bs-border-width: 0;     /* 干掉 Bootstrap 边框宽度变量（B5 靠它算 table-bordered 的线宽） */
    color: var(--ic-sider-text);
    border: none;
    border-collapse: collapse;
    margin-bottom: 0;
}
/* 行级 <tr>：覆盖 Bootstrap 的 .table-bordered > :not(caption) > * 的上下边框
   （这是之前漏掉的黑横线来源，必须显式归零） */
.table > :not(caption) > * {
    border-width: 0 !important;
    border: none !important;
}
/* 单元格级 <td>/<th>：覆盖 .table-bordered > :not(caption) > * > * 的左右边框 */
.table > :not(caption) > * > * {
    padding: 0.8rem 0.75rem;
    background-color: transparent;
    border-width: 0 !important;
    border: none !important;
    vertical-align: middle;
}
/* 表头：浅灰底色块 + 灰色小字，靠 box-shadow 做下分隔线（无线） */
.table > :not(caption) > * > th,
.table thead th,
.table .table-light {
    background-color: var(--ic-card-solid) !important;
    color: var(--ic-sider-text-muted);
    font-weight: 600;
    font-size: 0.85em;
    text-align: center;
    border: none !important;
    box-shadow: inset 0 -1px 0 var(--ic-separator);  /* 表头底部一条浅线 */
}
/* 内容居中 */
.table td {
    text-align: center;
    color: var(--ic-sider-text);
}

/* 斑马纹：偶数行极浅底（浅色=黑叠加，深色=白叠加，由 --ic-stripe 控制） */
.table > tbody > tr:nth-child(even) > * {
    background-color: var(--ic-stripe);
}
/* 行 hover：系统蓝极浅底（优先级高于斑马纹） */
.table-hover > tbody > tr:hover > * {
    background-color: rgba(0, 113, 227, 0.05) !important;
}
.table-hover > tbody > tr {
    transition: background-color 0.15s ease;
}

/* 去掉 Bootstrap 的外边框残留 */
.table > :not(:first-child) {
    border-top: none;
}

/* 需关注行：淡红背景覆盖斑马纹（iCloud 柔和红） */
.table-attention > *,
.table-danger > * {
    background-color: rgba(255, 59, 48, 0.08) !important;
}

/* ========================================================================
   表单（iCloud 增强：46px 高度、宽松 padding、10px 圆角、聚焦蓝光晕）
   全局生效：所有录入页（incident）+ 所有弹窗（recorder/homevisit/inspection）
   ======================================================================== */
.form-control,
.form-select {
    min-height: 46px !important;
    padding: 0.6rem 1rem !important;
    border-radius: 10px !important;
    border-color: var(--ic-card-border) !important;
    color: var(--ic-sider-text) !important;
    background-color: var(--ic-card-solid) !important;
    font-size: 0.95rem !important;
    transition: all 0.15s ease;
}
/* textarea 不强制 min-height 46px，由 rows 决定，但保留 padding/圆角 */
textarea.form-control {
    min-height: 0;
    padding: 0.7rem 1rem;
    resize: vertical;
}
/* select 高度对齐 input */
.form-select {
    padding-right: 2.5rem;               /* 给下拉箭头留位 */
}
.form-control:focus,
.form-select:focus {
    border-color: var(--ic-blue);
    box-shadow: 0 0 0 3px var(--ic-blue-light);
    background-color: var(--ic-card-solid);
    outline: none;
}
.form-control::placeholder {
    color: var(--ic-sider-text-muted);
}
/* label：深色加粗，层级清晰 */
.form-label {
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    color: var(--ic-sider-text) !important;
    margin-bottom: 0.35rem !important;
    letter-spacing: 0.01em;
}
/* 帮助文字/小字 */
.form-text {
    font-size: 0.76rem;
    color: var(--ic-sider-text-muted);
    margin-top: 0.25rem;
}
/* checkbox/radio：加大到 18px，蓝色选中 */
.form-check-input {
    width: 18px !important;
    height: 18px !important;
    margin-top: 0.28rem !important;
    cursor: pointer;
}
.form-check-input:checked {
    background-color: var(--ic-blue);
    border-color: var(--ic-blue);
}
.form-check-input:focus {
    border-color: var(--ic-blue);
    box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.15);
}
.form-check-label {
    font-size: 0.9rem;
    color: var(--ic-sider-text);
    cursor: pointer;
}
/* input-group 里的按钮高度对齐 46px */
.input-group .btn {
    min-height: 46px;
    display: flex;
    align-items: center;
}

/* ========================================================================
   卡片（iCloud 风格：半透明白 + 大圆角 + 轻阴影）
   ======================================================================== */
.card {
    background-color: var(--ic-card-bg);
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    border: 1px solid var(--ic-card-border);
    border-radius: var(--ic-radius);
    box-shadow: var(--ic-shadow);
}
.card-header {
    background-color: transparent;
    border-bottom: 1px solid var(--ic-separator);
    font-weight: 600;
    color: var(--ic-sider-text);
}
.card-header.bg-light {
    background-color: transparent !important;
}

/* ========================================================================
   Badge（iCloud 风格：圆角，柔和色）
   ======================================================================== */
.badge {
    border-radius: 6px;
    padding: 0.3em 0.6em;
    font-weight: 500;
    font-size: 0.75em;
    line-height: 1.4;
}
.badge.bg-success {
    background-color: var(--ic-green) !important;
    color: #fff;
}
.badge.bg-warning {
    background-color: var(--ic-orange) !important;
    color: #fff !important;
}
.badge.bg-warning.text-dark {
    background-color: var(--ic-orange) !important;
    color: #fff !important;
}
.badge.bg-danger {
    background-color: var(--ic-red) !important;
    color: #fff;
}
.badge.bg-primary {
    background-color: var(--ic-blue) !important;
    color: #fff;
}
.badge.bg-secondary {
    background-color: #8e8e93 !important;
    color: #fff;
}

/* ========================================================================
   侧边栏（iCloud 风格：浅色毛玻璃）
   ======================================================================== */
.sidebar {
    min-height: calc(100vh - 56px);
    background-color: var(--ic-sider-bg) !important;
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-right: 1px solid var(--ic-separator);
}
.sidebar .nav-link {
    color: var(--ic-sider-text);
    padding: 0.5rem 1.1rem;
    border-radius: var(--ic-radius-sm);
    margin: 0.1rem 0.5rem;
    transition: all 0.15s ease;
    font-size: 0.88rem;
}
/* hover：浅叠加背景（浅色黑叠加/深色白叠加，由 --ic-hover 控制） */
.sidebar .nav-link:hover {
    color: var(--ic-sider-text);
    background-color: var(--ic-hover);
}
/* active（选中）：系统蓝背景 + 白字 */
.sidebar .nav-link.active {
    color: #fff;
    background-color: var(--ic-blue);
}
.sidebar .nav-link svg {
    width: 18px;
    margin-right: 8px;
    vertical-align: text-bottom;
}

/* --------------------------------------------------------------------
   两级目录（可展开的父目录 + 子菜单）
   -------------------------------------------------------------------- */
.sidebar .nav-parent {
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--ic-sider-text);
}
.sidebar .nav-parent:hover {
    color: var(--ic-sider-text);
    background-color: var(--ic-hover);
}
/* 父目录展开时整体高亮提示（子项被选中时父项标为亮） */
.sidebar .nav-parent.group-active {
    color: var(--ic-blue);
}
/* 展开/收起箭头，展开时旋转 */
.sidebar .nav-arrow {
    font-size: 0.7rem;
    color: var(--ic-sider-text-muted);
    transition: transform 0.2s ease;
    display: inline-block;
}
.sidebar .nav-parent[aria-expanded="true"] .nav-arrow {
    transform: rotate(180deg);
}
/* 子菜单容器：更浅的背景 */
.sidebar .nav-submenu {
    background-color: transparent;
}
/* 子菜单项：缩进 + 更小字号 + 灰色 */
.sidebar .nav-submenu .nav-child {
    padding-left: 2.3rem;
    font-size: 0.84rem;
    color: var(--ic-sider-text-muted);
}
.sidebar .nav-submenu .nav-child:hover {
    color: var(--ic-sider-text);
    background-color: var(--ic-hover);
}
.sidebar .nav-submenu .nav-child.active {
    color: var(--ic-blue);
    background-color: var(--ic-blue-light);
    font-weight: 500;
}
/* 分隔线（用于区分业务模块和系统模块） */
.sidebar .nav-separator {
    height: 1px;
    margin: 0.5rem 1rem;
    background-color: var(--ic-separator);
}

/* ========================================================================
   顶部导航（iCloud 风格：浅色毛玻璃顶栏）
   ======================================================================== */
.navbar.bg-dark,
.navbar-dark.bg-dark {
    background-color: var(--ic-sider-bg) !important;
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid var(--ic-separator);
}
.navbar-dark .navbar-brand,
.navbar-dark .navbar-text {
    color: var(--ic-sider-text) !important;
}
.navbar-brand {
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* 内容区 */
.content {
    padding: 1.5rem;
}

/* ========================================================================
   Dashboard 统计卡片（iCloud 风格：半透明白 + 大圆角 + 轻阴影 + hover浮起）
   ======================================================================== */
.stat-card {
    background-color: var(--ic-card-bg);
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    border: 1px solid var(--ic-card-border);
    border-radius: var(--ic-radius);
    box-shadow: var(--ic-shadow);
    padding: 1.5rem;
    height: 100%;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.stat-card:hover {
    box-shadow: var(--ic-shadow-hover);
    transform: translateY(-1px);
}
.stat-card .stat-label {
    color: var(--ic-sider-text-muted);
    font-size: 0.78rem;
    margin-bottom: 0.4rem;
}
.stat-card .stat-value {
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.stat-card .stat-value.text-danger { color: var(--ic-red); }
.stat-card .stat-value.text-warning { color: var(--ic-orange); }
.stat-card .stat-value.text-primary { color: var(--ic-blue); }
.stat-card .stat-value.text-success { color: var(--ic-green); }

/* ========================================================================
   Tab 导航（iCloud 风格：选中底部蓝色下划线）
   ======================================================================== */
.nav-tabs {
    border-bottom: 1px solid var(--ic-separator);
}
.nav-tabs .nav-link {
    color: var(--ic-sider-text-muted);
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: 0.5rem 1rem;
    background-color: transparent;
    margin-bottom: -1px;
    transition: color 0.15s ease;
}
.nav-tabs .nav-link:hover {
    color: var(--ic-sider-text);
    border-bottom-color: var(--ic-separator);
}
.nav-tabs .nav-link.active {
    color: var(--ic-blue);
    background-color: transparent;
    border: none;
    border-bottom: 2px solid var(--ic-blue);
    font-weight: 500;
}

/* ========================================================================
   班组分页按钮组（iCloud 风格：分段控件 segmented control）
   ======================================================================== */
.ant-btn-group {
    display: inline-flex;
    background: rgba(118, 118, 128, 0.12);
    border-radius: 9px;
    padding: 2px;
}
.ant-btn-group .btn {
    border-radius: 7px;
    border: none;
    background-color: transparent;
    color: var(--ic-sider-text-muted);
    margin: 0;
    font-size: 0.84rem;
    padding: 0.3rem 0.9rem;
    transition: all 0.15s ease;
}
.ant-btn-group .btn:hover {
    color: var(--ic-sider-text);
    background-color: transparent;
}
.ant-btn-group .btn.btn-primary {
    background-color: var(--ic-card-solid);
    color: var(--ic-sider-text);
    font-weight: 500;
    box-shadow: var(--ic-shadow-hover);
}
.ant-btn-group .btn.btn-primary:hover {
    background-color: var(--ic-card-solid);
    color: var(--ic-sider-text);
}
.ant-btn-group .btn.btn-outline-secondary {
    background-color: transparent;
    border: none;
}

/* ========================================================================
   登录卡片（iCloud 风格）
   ======================================================================== */
.login-card {
    background-color: var(--ic-card-bg);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border: 1px solid var(--ic-card-border);
    border-radius: var(--ic-radius);
    box-shadow: var(--ic-shadow-hover);
}

/* ========================================================================
   弹窗（iCloud 风格：大圆角）
   ======================================================================== */
.modal-content {
    border-radius: var(--ic-radius);
    border: none;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
}
.modal-header {
    border-bottom: 1px solid var(--ic-separator);
}
.modal-footer {
    border-top: 1px solid var(--ic-separator);
}
.modal-title {
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* ========================================================================
   页面标题与文字
   ======================================================================== */
h3 {
    color: var(--ic-sider-text);
    font-weight: 600;
    letter-spacing: -0.02em;
}

.text-muted {
    color: var(--ic-sider-text-muted) !important;
}

/* alert 提示框圆角化 */
.alert {
    border-radius: var(--ic-radius-sm);
    border: none;
}
.alert-danger {
    background-color: rgba(255, 59, 48, 0.1);
    color: #c5281f;
}
.alert-info {
    background-color: rgba(0, 113, 227, 0.1);
    color: #0058b8;
}
.alert-success {
    background-color: rgba(52, 199, 89, 0.1);
    color: #1d8a3e;
}


/* ========================================================================
   移动端适配（<768px）：抽屉式侧边栏 + 顶栏紧凑 + 表格滚动 + 间距优化
   仅影响手机/小平板，桌面端（≥768px）完全不受影响。
   ======================================================================== */
@media (max-width: 767.98px) {
    /* ---- 侧边栏：固定定位抽屉，默认滑出屏幕外 ---- */
    .sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 260px;                    /* 抽屉宽度 */
        z-index: 1050;
        transform: translateX(-100%);    /* 默认隐藏在左侧 */
        transition: transform 0.3s ease;
        overflow-y: auto;
        min-height: 100vh;
        background-color: var(--ic-card-solid) !important;  /* 抽屉用实色，毛玻璃在固定定位下效果差 */
    }
    .sidebar.sidebar-open {
        transform: translateX(0);        /* 打开时滑入 */
    }
    /* 抽屉内菜单项：加大点击区（触摸友好，≥44px） */
    .sidebar .nav-link {
        padding: 0.75rem 1.1rem;
        font-size: 0.95rem;
    }
    .sidebar .nav-submenu .nav-child {
        padding-left: 2.3rem;
        font-size: 0.9rem;
        padding-top: 0.6rem;
        padding-bottom: 0.6rem;
    }
    /* 抽屉底部修改密码入口 */
    .sidebar-mobile-extra {
        margin-top: 1rem;
        padding: 0 0.5rem 2rem;
        border-top: 1px solid var(--ic-separator);
    }
    .sidebar-mobile-extra .nav-link {
        color: var(--ic-sider-text-muted);
    }

    /* ---- 遮罩层 ---- */
    .sidebar-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background-color: rgba(0, 0, 0, 0.4);
        z-index: 1040;
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    .sidebar-overlay.active {
        display: block;
        opacity: 1;
    }

    /* ---- 顶栏：紧凑化 ---- */
    .navbar {
        padding: 0.4rem 0.75rem;
    }
    .navbar-brand {
        font-size: 0.95rem;
    }
    .navbar-toggler {
        padding: 0.25rem 0.5rem;
    }
    /* 顶栏按钮缩小，避免拥挤 */
    .navbar .btn-sm {
        padding: 0.2rem 0.5rem;
        font-size: 0.8rem;
    }

    /* ---- 主内容区：全宽 + 缩小 padding ---- */
    .content {
        padding: 0.75rem !important;
    }
    /* 主内容区占满宽度（侧边栏已变抽屉，不再占列） */
    main.content {
        width: 100%;
    }

    /* ---- 统计卡片：单列堆叠 ---- */
    .stat-card {
        padding: 1rem;
    }
    .stat-card .stat-value {
        font-size: 1.6rem;
    }

    /* ---- 表格：横向滚动（列多时不挤压） ---- */
    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;  /* iOS 顺滑滚动 */
    }
    /* 检查录入等自定义表格也加滚动 */
    .insp-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    /* 表格单元格 padding 缩小，省空间 */
    .table > :not(caption) > * > * {
        padding: 0.5rem 0.4rem;
        font-size: 0.85rem;
        white-space: nowrap;   /* 不换行，靠横向滚动查看 */
    }

    /* ---- 班组分页按钮组：可横向滚动 ---- */
    .ant-btn-group {
        overflow-x: auto;
        max-width: 100%;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    /* ---- 弹窗：手机端几乎全屏 ---- */
    .modal-dialog {
        margin: 0.5rem;
    }
    .modal-content {
        border-radius: 14px;
    }

    /* ---- 表单：触摸友好 ---- */
    .form-control,
    .form-select {
        min-height: 44px !important;       /* iOS 触摸目标最小 44px */
        font-size: 16px !important;        /* 16px 防止 iOS Safari 自动放大 */
    }

    /* ---- 卡片间距缩小 ---- */
    .row > [class*="col-"] {
        margin-bottom: 0.75rem;
    }

    /* ---- 页面标题缩小 ---- */
    h3 {
        font-size: 1.25rem;
    }
}

