/* ============================================================
   MAYAN EDMS · Industrial Dark Theme — 中枢
   全局暗色工业设计层：覆盖 Bootstrap/Flatly 设计令牌与
   Mayan 品牌变量，配合 data-bs-theme="dark" 使用
   ============================================================ */

:root, [data-bs-theme="light"], [data-bs-theme="dark"] {
    /* ---- 基础画布（demo 海军蓝体系） ---- */
    --ind-bg: #050914;
    --ind-bg-2: #080f22;
    --ind-panel: #0c1730;
    --ind-panel-2: #122041;
    --ind-line: rgba(148, 163, 255, 0.12);
    --ind-line-strong: rgba(148, 163, 255, 0.28);
    --ind-cyan: #00e5ff;
    --ind-cyan-dim: #00b8d4;
    --ind-violet: #7c6cf8;
    --ind-violet-deep: #5b4bd6;
    --ind-orange: #ff8a5c;
    --ind-amber: #ffc53d;
    --ind-red: #ff6b7d;
    --ind-green: #34e0a1;
    --ind-text: #eef2ff;
    --ind-text-dim: #aab8e0;
    --ind-text-faint: #66779f;

    /* ---- Bootstrap 设计令牌（暗色化 Flatly） ---- */
    --bs-body-bg: var(--ind-bg);
    --bs-body-color: var(--ind-text);
    --bs-body-bg-rgb: 5, 9, 20;
    --bs-body-color-rgb: 238, 242, 255;
    --bs-secondary-bg: #0c1730;
    --bs-secondary-bg-rgb: 12, 23, 48;
    --bs-body-secondary-rgb: 12, 23, 48;
    --bs-tertiary-bg: #122041;
    --bs-tertiary-bg-rgb: 18, 32, 65;
    --bs-body-tertiary-rgb: 18, 32, 65;
    --bs-secondary-color: var(--ind-text-dim);
    --bs-emphasis-color: #eef2ff;
    --bs-emphasis-color-rgb: 238, 242, 255;
    --bs-border-color: rgba(148, 163, 255, 0.14);
    --bs-border-color-translucent: rgba(148, 163, 255, 0.12);

    --bs-primary: #00b8d4;
    --bs-primary-rgb: 0, 184, 212;
    --bs-primary-bg-subtle: rgba(0, 229, 255, 0.08);
    --bs-primary-border-subtle: rgba(0, 229, 255, 0.30);
    --bs-primary-text-emphasis: #8be9ff;

    --bs-success: #0e9f6e;
    --bs-success-rgb: 14, 159, 110;
    --bs-success-bg-subtle: rgba(52, 224, 161, 0.08);
    --bs-success-border-subtle: rgba(52, 224, 161, 0.30);
    --bs-success-text-emphasis: #7cf0c4;

    --bs-danger: #e5484d;
    --bs-danger-rgb: 229, 72, 77;
    --bs-danger-bg-subtle: rgba(255, 107, 125, 0.08);
    --bs-danger-border-subtle: rgba(255, 107, 125, 0.32);
    --bs-danger-text-emphasis: #ff9daa;

    --bs-warning: #d99a06;
    --bs-warning-rgb: 217, 154, 6;
    --bs-warning-bg-subtle: rgba(255, 197, 61, 0.08);
    --bs-warning-border-subtle: rgba(255, 197, 61, 0.30);
    --bs-warning-text-emphasis: #ffd97a;

    --bs-info: #5aa8ff;
    --bs-info-rgb: 90, 168, 255;
    --bs-info-bg-subtle: rgba(90, 168, 255, 0.08);
    --bs-info-border-subtle: rgba(90, 168, 255, 0.30);
    --bs-info-text-emphasis: #9ecbff;

    --bs-light: #122041;
    --bs-light-rgb: 18, 32, 65;
    --bs-dark: #050914;
    --bs-dark-rgb: 5, 9, 20;

    --bs-secondary: #7c6cf8;
    --bs-secondary-rgb: 124, 108, 248;

    --bs-link-color: var(--ind-cyan);
    --bs-link-color-rgb: 0, 229, 255;
    --bs-link-hover-color: #7df4ff;
    --bs-code-color: #9ecbff;

    --bs-focus-ring-color: rgba(0, 229, 255, 0.30);
    --bs-focus-ring-width: 0.15rem;

    /* ---- 组件令牌 ---- */
    --bs-card-bg: #111d3a;
    --bs-card-border-color: var(--ind-line);
    --bs-card-cap-bg: rgba(148, 163, 255, 0.05);
    --bs-card-cap-color: var(--ind-text);
    --bs-card-color: var(--ind-text);

    --bs-table-bg: transparent;
    --bs-table-color: var(--ind-text);
    --bs-table-border-color: rgba(148, 163, 255, 0.12);
    --bs-table-striped-bg: rgba(148, 163, 255, 0.05);
    --bs-table-hover-bg: rgba(0, 229, 255, 0.05);
    --bs-table-active-bg: rgba(0, 229, 255, 0.10);

    --bs-dropdown-bg: var(--ind-panel-2);
    --bs-dropdown-color: var(--ind-text);
    --bs-dropdown-border-color: var(--ind-line-strong);
    --bs-dropdown-link-color: var(--ind-text);
    --bs-dropdown-link-hover-color: #eef2ff;
    --bs-dropdown-link-hover-bg: rgba(124, 108, 248, 0.18);
    --bs-dropdown-link-active-color: #03141a;
    --bs-dropdown-link-active-bg: var(--ind-cyan);
    --bs-dropdown-header-color: var(--ind-text-dim);
    --bs-dropdown-divider-bg: rgba(148, 163, 255, 0.14);

    --bs-modal-bg: var(--ind-panel);
    --bs-modal-border-color: var(--ind-line-strong);
    --bs-modal-header-border-color: var(--ind-line);
    --bs-modal-footer-border-color: var(--ind-line);
    --bs-modal-color: var(--ind-text);

    --bs-offcanvas-bg: var(--ind-panel);
    --bs-offcanvas-color: var(--ind-text);

    --bs-list-group-bg: transparent;
    --bs-list-group-color: var(--ind-text);
    --bs-list-group-border-color: rgba(148, 163, 255, 0.13);
    --bs-list-group-action-color: var(--ind-text-dim);
    --bs-list-group-action-hover-color: var(--ind-cyan);
    --bs-list-group-action-hover-bg: rgba(0, 229, 255, 0.06);
    --bs-list-group-action-active-color: #03141a;
    --bs-list-group-action-active-bg: var(--ind-cyan);
    --bs-list-group-active-color: #03141a;
    --bs-list-group-active-bg: var(--ind-cyan);
    --bs-list-group-active-border-color: var(--ind-cyan);
    --bs-list-group-disabled-color: var(--ind-text-faint);
    --bs-list-group-disabled-bg: transparent;

    --bs-pagination-bg: var(--ind-bg-2);
    --bs-pagination-color: var(--ind-text-dim);
    --bs-pagination-border-color: rgba(148, 163, 255, 0.18);
    --bs-pagination-hover-bg: rgba(0, 229, 255, 0.10);
    --bs-pagination-hover-color: var(--ind-cyan);
    --bs-pagination-hover-border-color: var(--ind-line-strong);
    --bs-pagination-active-bg: var(--ind-cyan);
    --bs-pagination-active-color: #03141a;
    --bs-pagination-active-border-color: var(--ind-cyan);
    --bs-pagination-disabled-bg: var(--ind-bg-2);
    --bs-pagination-disabled-color: var(--ind-text-faint);
    --bs-pagination-disabled-border-color: rgba(148, 163, 255, 0.10);

    --bs-input-bg: #0a142e;
    --bs-input-color: var(--ind-text);
    --bs-input-border-color: rgba(148, 163, 255, 0.24);
    --bs-input-placeholder-color: var(--ind-text-faint);
    --bs-input-group-addon-bg: var(--ind-panel-2);

    --bs-form-select-bg: #0a142e;
    --bs-form-select-color: var(--ind-text);
    --bs-form-select-border-color: rgba(148, 163, 255, 0.24);
    --bs-form-select-indicator-color: var(--ind-cyan);

    --bs-form-check-input-bg: #0a142e;
    --bs-form-check-input-border: rgba(148, 163, 255, 0.32);
    --bs-form-valid-color: var(--ind-green);
    --bs-form-invalid-color: var(--ind-red);

    --bs-accordion-bg: var(--ind-bg-2);
    --bs-accordion-color: var(--ind-text);
    --bs-accordion-border-color: rgba(148, 163, 255, 0.12);
    --bs-accordion-btn-bg: var(--ind-bg-2);
    --bs-accordion-btn-color: var(--ind-text);
    --bs-accordion-active-bg: rgba(0, 229, 255, 0.08);
    --bs-accordion-active-color: var(--ind-cyan);
    --bs-accordion-btn-focus-border-color: transparent;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.15rem rgba(0, 229, 255, 0.20);

    --bs-tooltip-bg: var(--ind-panel-2);
    --bs-tooltip-color: var(--ind-text);

    --bs-navbar-color: rgba(238, 242, 255, 0.75);
    --bs-navbar-hover-color: #ffffff;
    --bs-navbar-active-color: var(--ind-cyan);
    --bs-navbar-brand-color: #eef2ff;
    --bs-navbar-brand-hover-color: var(--ind-cyan);

    /* ---- Mayan 品牌变量 ---- */
    --mayan-brand-primary: #080f22;
    --mayan-brand-primary-color: #eef2ff;
    --mayan-brand-accent: var(--ind-cyan);
    --mayan-brand-accent-rgb: 0, 229, 255;
    --mayan-sidebar-hover-bg: rgba(124, 108, 248, 0.10);
    --mayan-sidebar-muted-color: #66779f;
    --mayan-fieldset-border-color: rgba(0, 229, 255, 0.22);
    --mayan-rule-color: rgba(148, 163, 255, 0.16);
}

/* ============ 全局画布 ============ */

body {
    background-color: var(--ind-bg);
    background-image:
        linear-gradient(rgba(124, 108, 248, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(124, 108, 248, 0.045) 1px, transparent 1px);
    background-size: 44px 44px;
    background-attachment: fixed;
    color: var(--ind-text);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand, .mayan-h1, .mayan-h2, .mayan-h3, .mayan-h4,
.btn, .accordion-button, .dropdown-header {
    font-family: 'Rajdhani', 'PingFang SC', 'Microsoft YaHei', sans-serif;
    letter-spacing: 0.02em;
}

/* ============ 滚动条 ============ */

* {
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 229, 255, 0.22) transparent;
}

*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-track { background: rgba(5, 9, 20, 0.6); }
*::-webkit-scrollbar-thumb {
    background: rgba(0, 229, 255, 0.16);
    border-radius: 5px;
    border: 2px solid transparent;
    background-clip: padding-box;
}
*::-webkit-scrollbar-thumb:hover { background: rgba(0, 229, 255, 0.4); background-clip: padding-box; }

/* ============ 顶部导航 ============ */

#menu-topbar .navbar {
    background: linear-gradient(180deg, #0a1230 0%, #080f22 100%);
    border-bottom: 1px solid var(--ind-line);
    box-shadow: 0 1px 0 rgba(0, 229, 255, 0.12), 0 8px 30px rgba(0, 0, 0, 0.45);
}

#menu-topbar .navbar::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(0, 229, 255, 0.55), rgba(124, 108, 248, 0.55), transparent);
    pointer-events: none;
}

#menu-topbar .navbar-brand {
    font-weight: 700;
    letter-spacing: 0.12em;
    /* 图标与文字水平对齐：用 flex 居中，不再靠 vertical-align 微调 */
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    /* 不被右侧可伸缩区域挤压：否则品牌名会被压缩导致文字溢出、被旁边控件遮挡 */
    flex: 0 0 auto;
    white-space: nowrap;
    /* 覆盖上游 appearance_bootstrap.css 里 @media(min-width:768px) 的
       .mayan-navbar-brand { width: 180px }（按 "Mayan EDMS" 长度写死的），
       否则稍长的品牌名会被裁切并与右侧控件重叠 */
    width: auto;
}

#menu-topbar .navbar-brand .icon-mayan-edms-logo { color: var(--ind-cyan); }

/* 顶栏品牌标识：站点自定义 SVG（模板 appearance/partials/brand_logo.html） */
#menu-topbar .navbar-brand .appearance-navbar-brand-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 26px;
    flex: none;
}
#menu-topbar .navbar-brand .site-brand-mark {
    display: block;
    width: 26px;
    height: 26px;
    margin: 0;
    color: var(--ind-cyan);
    filter: drop-shadow(0 0 6px rgba(0, 229, 255, 0.35));
    flex: none;
}
#menu-topbar .navbar-brand:hover .site-brand-mark {
    color: #eef2ff;
    filter: drop-shadow(0 0 8px rgba(0, 229, 255, 0.55));
}

#menu-topbar .navbar-nav > li > a {
    color: rgba(238, 242, 255, 0.72);
    transition: color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

#menu-topbar .navbar-nav > li > a:hover,
#menu-topbar .navbar-nav > li > a:focus {
    color: var(--ind-cyan);
    background: rgba(0, 229, 255, 0.06);
    box-shadow: inset 0 -2px 0 var(--ind-cyan);
}

#menu-topbar .navbar-nav > li.active > a {
    color: var(--ind-cyan);
    box-shadow: inset 0 -2px 0 var(--ind-cyan);
}

/* ============ 左侧主菜单 ============ */

#menu-main {
    background: linear-gradient(180deg, #080f22 0%, #050914 100%);
    border-inline-end: 1px solid var(--ind-line);
}

#menu-main .offcanvas-header.text-bg-primary {
    background: rgba(0, 229, 255, 0.05) !important;
    border-bottom: 1px solid var(--ind-line);
}

#menu-main .offcanvas-title {
    font-family: 'Share Tech Mono', ui-monospace, monospace;
    font-size: 12px;
    letter-spacing: 0.28em;
    color: var(--ind-cyan);
    text-transform: uppercase;
}

#accordion-sidebar {
    --bs-accordion-bg: transparent;
    --bs-accordion-btn-bg: transparent;
    --bs-accordion-btn-color: #c7d2f2;
    --bs-accordion-color: #c7d2f2;
    --bs-accordion-active-bg: rgba(0, 229, 255, 0.07);
    --bs-accordion-active-color: var(--ind-cyan);
    --bs-accordion-border-color: rgba(148, 163, 255, 0.08);
}

#accordion-sidebar .accordion-item {
    border-inline-start: 2px solid transparent;
    transition: border-color 0.2s ease;
}

#accordion-sidebar .accordion-item:has(.accordion-button.active),
#accordion-sidebar .accordion-item:has(.accordion-collapse.show) {
    border-inline-start-color: var(--ind-cyan);
}

#accordion-sidebar .accordion-button {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

#accordion-sidebar .accordion-button:not(.collapsed) {
    color: var(--ind-cyan);
    text-shadow: 0 0 14px rgba(0, 229, 255, 0.35);
}

#accordion-sidebar .accordion-button:hover {
    background: rgba(124, 108, 248, 0.10);
    color: var(--ind-cyan);
}

#accordion-sidebar .accordion-body { background: rgba(5, 9, 20, 0.5); }
#accordion-sidebar .accordion-body a { color: var(--ind-text-dim); font-size: 13px; padding: 8px 10px; border-radius: 3px; }
#accordion-sidebar .accordion-body a:hover { color: var(--ind-cyan); background: rgba(124, 108, 248, 0.10); }
#accordion-sidebar .accordion-body > ul > li.active { background: rgba(0, 229, 255, 0.10); box-shadow: inset 2px 0 0 var(--ind-cyan); }
#accordion-sidebar .accordion-body > ul > li.active a { color: var(--ind-cyan); }

#accordion-sidebar .accordion-header .a-main-menu-accordion-link { color: #c7d2f2; padding: 10px 15px; }
#accordion-sidebar .accordion-header .a-main-menu-accordion-link:hover { color: var(--ind-cyan); background: rgba(124, 108, 248, 0.10); }
#accordion-sidebar .accordion-header .a-main-menu-accordion-link.active { background: rgba(0, 229, 255, 0.10); color: var(--ind-cyan); box-shadow: inset 2px 0 0 var(--ind-cyan); }

#main-menu-footer span { color: var(--ind-text-faint); }

/* ============ 卡片 ============ */

.card {
    background-color: var(--ind-panel);
    border: 1px solid var(--ind-line);
    border-radius: 8px;
    box-shadow: 0 10px 34px rgba(0, 0, 0, 0.35);
}

.card-header {
    background: rgba(124, 108, 248, 0.06);
    border-bottom: 1px solid var(--ind-line);
    font-weight: 600;
    letter-spacing: 0.03em;
}

.card-header.text-bg-primary {
    background: rgba(0, 229, 255, 0.06) !important;
    color: var(--ind-cyan) !important;
    border-bottom: 1px solid var(--ind-line);
}

.card-item {
    border: 1px solid var(--ind-line);
    border-radius: 8px;
    background: var(--ind-panel);
    transition: transform 0.18s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.card-item:hover {
    border-color: var(--ind-line-strong);
    box-shadow: 0 0 22px rgba(0, 229, 255, 0.10), 0 14px 34px rgba(0, 0, 0, 0.45);
    transform: translateY(-2px);
}

.card-item.border-success {
    box-shadow: 0 0 12px rgba(0, 229, 255, 0.22);
}

.card-footer {
    background-color: rgba(5, 9, 20, 0.45);
    border-top: 1px solid var(--ind-line);
}

/* ============ 表格 ============ */

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--ind-text);
    --bs-table-border-color: rgba(148, 163, 255, 0.13);
    --bs-table-striped-bg: rgba(148, 163, 255, 0.045);
    --bs-table-striped-color: var(--ind-text);
    --bs-table-hover-bg: rgba(0, 229, 255, 0.05);
    --bs-table-hover-color: var(--ind-text);
    --bs-table-active-bg: rgba(0, 229, 255, 0.10);
}

.table > :not(caption) > * > * {
    background-color: transparent;
    --bs-table-accent-bg: transparent;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: rgba(148, 163, 255, 0.045);
}

.table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: rgba(0, 229, 255, 0.05);
}

.table > thead {
    --bs-table-bg: rgba(0, 229, 255, 0.05);
    --bs-table-color: var(--ind-cyan);
    font-family: 'Rajdhani', 'PingFang SC', sans-serif;
    font-size: 13px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}

.table > thead th { border-bottom: 1px solid var(--ind-line-strong) !important; font-weight: 600; }

.table > tbody > tr.mayan-table-item:hover > * {
    box-shadow: inset 0 0 0 9999px rgba(0, 229, 255, 0.05);
}

.table > tbody > tr.mayan-table-item.mayan-table-item-selected > * {
    box-shadow: inset 0 0 0 9999px rgba(0, 229, 255, 0.10);
}

.table > tbody > tr.mayan-table-item.mayan-table-item-selected > td:first-child {
    box-shadow: inset 0 0 0 9999px rgba(0, 229, 255, 0.10), inset 3px 0 0 var(--ind-cyan);
}

/* ============ 按钮 ============ */

.btn {
    border-radius: 6px;
    letter-spacing: 0.05em;
    font-weight: 600;
    transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary {
    --bs-btn-bg: #0d8ba0;
    --bs-btn-border-color: rgba(0, 229, 255, 0.5);
    --bs-btn-color: #eafdff;
    --bs-btn-hover-bg: var(--ind-cyan);
    --bs-btn-hover-border-color: var(--ind-cyan);
    --bs-btn-hover-color: #03141a;
    --bs-btn-active-bg: #00b8cf;
    --bs-btn-active-border-color: var(--ind-cyan);
    --bs-btn-active-color: #03141a;
    --bs-btn-disabled-bg: #12303a;
    --bs-btn-disabled-border-color: rgba(0, 229, 255, 0.2);
    --bs-btn-disabled-color: var(--ind-text-faint);
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.18);
}

.btn-primary:hover { box-shadow: 0 0 24px rgba(0, 229, 255, 0.4); }

.btn-outline-primary {
    --bs-btn-color: var(--ind-cyan);
    --bs-btn-border-color: rgba(0, 229, 255, 0.42);
    --bs-btn-hover-bg: rgba(0, 229, 255, 0.12);
    --bs-btn-hover-border-color: var(--ind-cyan);
    --bs-btn-hover-color: var(--ind-cyan);
    --bs-btn-active-bg: rgba(0, 229, 255, 0.2);
    --bs-btn-active-border-color: var(--ind-cyan);
    --bs-btn-active-color: var(--ind-cyan);
}

.btn-secondary {
    --bs-btn-bg: #7c6cf8;
    --bs-btn-border-color: rgba(124, 108, 248, 0.5);
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: #9182fa;
    --bs-btn-hover-border-color: var(--ind-violet);
    --bs-btn-hover-color: #ffffff;
}

.btn-success {
    --bs-btn-bg: #1d6e4e;
    --bs-btn-border-color: rgba(52, 224, 161, 0.4);
    --bs-btn-hover-bg: #12b57e;
    --bs-btn-hover-border-color: var(--ind-green);
}

.btn-danger {
    --bs-btn-bg: #8f2531;
    --bs-btn-border-color: rgba(255, 107, 125, 0.4);
    --bs-btn-hover-bg: #f2555a;
    --bs-btn-hover-border-color: var(--ind-red);
}

.btn-warning {
    --bs-btn-bg: #a8761c;
    --bs-btn-border-color: rgba(255, 197, 61, 0.4);
    --bs-btn-hover-bg: #f0b32b;
    --bs-btn-hover-border-color: var(--ind-amber);
}

.btn-outline-secondary {
    --bs-btn-color: var(--ind-text-dim);
    --bs-btn-border-color: rgba(148, 163, 255, 0.3);
    --bs-btn-hover-bg: rgba(0, 229, 255, 0.08);
    --bs-btn-hover-border-color: rgba(0, 229, 255, 0.4);
    --bs-btn-hover-color: var(--ind-cyan);
}

.btn-outline-success, .btn-outline-danger, .btn-outline-warning, .btn-outline-info {
    filter: saturate(0.9) brightness(1.1);
}

.btn-close {
    filter: invert(1) grayscale(0.6);
    opacity: 0.7;
}

.btn-close:hover { opacity: 1; }

/* ============================================================
   工具 / 设置页 · 能源科技卡片墙（ind-tile-wall）
   仅作用于 tools/setup 卡片墙，navigation-btn-lg 的
   旧全局规则保留为兜底，此处以更高特异性全面接管
   ============================================================ */

/* —— 卡片墙容器：深蓝玻璃面板 + 蓝图网格底纹 —— */
.ind-tile-wall {
    position: relative;
    padding: 28px;
    border: 1px solid var(--ind-line);
    border-radius: 18px;
    background:
        radial-gradient(140% 120% at 0% 0%, rgba(124, 108, 248, 0.08), transparent 55%),
        radial-gradient(120% 120% at 100% 100%, rgba(0, 229, 255, 0.06), transparent 55%),
        linear-gradient(rgba(148, 163, 255, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 255, 0.045) 1px, transparent 1px),
        rgba(8, 15, 34, 0.55);
    background-size: auto, auto, 34px 34px, 34px 34px, auto;
    box-shadow: inset 0 1px 0 rgba(238, 242, 255, 0.04), 0 18px 40px rgba(0, 0, 0, 0.30);
}

.ind-tile-grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
    column-gap: 20px !important;
    row-gap: 20px !important;
}

@media (min-width: 421px) {
    .ind-tile-grid {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    }
}

/* 链接包装层（div / form）展开，按钮本体成为网格项 */
.ind-tile-grid > div,
.ind-tile-grid .navigation-btn-lg-form {
    display: contents;
}

/* —— 卡片本体 —— */
.ind-tile-wall .navigation-btn-lg {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    min-height: 158px;
    padding: 24px 18px 22px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 255, 0.14);
    border-radius: 14px;
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(0, 229, 255, 0.09), transparent 60%),
        linear-gradient(165deg, #14224a 0%, #0c1730 100%);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
    color: var(--ind-text-dim);
    text-shadow: none;
    transition: transform 0.22s ease, border-color 0.25s ease, box-shadow 0.3s ease, color 0.25s ease, background 0.3s ease;
    animation: ind-tile-in 0.5s cubic-bezier(0.22, 0.9, 0.3, 1) both;
}

/* 顶部能量光束（青 → 紫罗兰渐变线） */
.ind-tile-wall .navigation-btn-lg::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ind-cyan) 30%, var(--ind-violet) 70%, transparent);
    opacity: 0.35;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

/* 右下能量光晕（hover 激活） */
.ind-tile-wall .navigation-btn-lg::after {
    content: '';
    position: absolute;
    right: -42px;
    bottom: -42px;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 229, 255, 0.22), transparent 65%);
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}

.ind-tile-wall .navigation-btn-lg:hover {
    transform: translateY(-4px);
    border-color: rgba(0, 229, 255, 0.55);
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(0, 229, 255, 0.16), transparent 62%),
        linear-gradient(165deg, #182a58 0%, #0e1b3c 100%);
    box-shadow:
        0 0 0 1px rgba(0, 229, 255, 0.12),
        0 0 28px rgba(0, 229, 255, 0.20),
        0 0 48px rgba(124, 108, 248, 0.16),
        0 16px 34px rgba(0, 0, 0, 0.5);
    color: var(--ind-text);
}

.ind-tile-wall .navigation-btn-lg:hover::before { opacity: 1; }
.ind-tile-wall .navigation-btn-lg:hover::after { opacity: 1; }

.ind-tile-wall .navigation-btn-lg:focus-visible {
    outline: none;
    border-color: var(--ind-cyan);
    box-shadow: 0 0 0 0.18rem rgba(0, 229, 255, 0.28), 0 10px 26px rgba(0, 0, 0, 0.35);
}

/* —— 图标能量徽章：青紫渐变描边 + 内辉光 —— */
.ind-tile-wall .navigation-btn-lg .ind-tile-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border-radius: 16px;
    color: var(--ind-cyan);
    border: 1px solid transparent;
    background:
        linear-gradient(#0d1a38, #0d1a38) padding-box,
        linear-gradient(135deg, rgba(0, 229, 255, 0.55), rgba(124, 108, 248, 0.55)) border-box;
    box-shadow:
        inset 0 0 18px rgba(0, 229, 255, 0.10),
        0 0 16px rgba(0, 229, 255, 0.12);
    transition: box-shadow 0.3s ease, transform 0.25s ease;
}

.ind-tile-wall .navigation-btn-lg .ind-tile-icon svg {
    width: 26px;
    height: 26px;
    filter: drop-shadow(0 0 8px rgba(0, 229, 255, 0.45));
    transition: filter 0.25s ease;
}

.ind-tile-wall .navigation-btn-lg:hover .ind-tile-icon {
    box-shadow:
        inset 0 0 22px rgba(0, 229, 255, 0.18),
        0 0 26px rgba(0, 229, 255, 0.30),
        0 0 40px rgba(124, 108, 248, 0.18);
    transform: translateY(-2px);
}

.ind-tile-wall .navigation-btn-lg:hover .ind-tile-icon svg {
    filter: drop-shadow(0 0 12px rgba(0, 229, 255, 0.75));
}

/* —— 标签文字 —— */
.ind-tile-wall .navigation-btn-lg .ind-tile-label {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-align: center;
    position: relative;
    z-index: 1;
}

/* —— 右下箭头：hover 浮现并前移 —— */
.ind-tile-wall .navigation-btn-lg .ind-tile-arrow {
    position: absolute;
    right: 14px;
    bottom: 12px;
    color: var(--ind-cyan);
    opacity: 0;
    transform: translateX(-5px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 1;
}

.ind-tile-wall .navigation-btn-lg:hover .ind-tile-arrow {
    opacity: 1;
    transform: translateX(0);
}

/* 旧版 2x 图标尺寸约束在徽章内收敛 */
.ind-tile-wall .navigation-btn-lg .ind-tile-icon .mayan-icon-2x {
    font-size: inherit;
    line-height: 0;
}

/* —— 入场编排：卡片依次浮现（用 translate/scale 独立属性，避免与 hover transform 冲突） —— */
@keyframes ind-tile-in {
    from { opacity: 0; translate: 0 14px; scale: 0.98; }
    to { opacity: 1; translate: 0 0; scale: 1; }
}

.ind-tile-grid > div:nth-child(1) .navigation-btn-lg { animation-delay: 0.02s; }
.ind-tile-grid > div:nth-child(2) .navigation-btn-lg { animation-delay: 0.05s; }
.ind-tile-grid > div:nth-child(3) .navigation-btn-lg { animation-delay: 0.08s; }
.ind-tile-grid > div:nth-child(4) .navigation-btn-lg { animation-delay: 0.11s; }
.ind-tile-grid > div:nth-child(5) .navigation-btn-lg { animation-delay: 0.14s; }
.ind-tile-grid > div:nth-child(6) .navigation-btn-lg { animation-delay: 0.17s; }
.ind-tile-grid > div:nth-child(7) .navigation-btn-lg { animation-delay: 0.20s; }
.ind-tile-grid > div:nth-child(8) .navigation-btn-lg { animation-delay: 0.23s; }
.ind-tile-grid > div:nth-child(9) .navigation-btn-lg { animation-delay: 0.26s; }
.ind-tile-grid > div:nth-child(10) .navigation-btn-lg { animation-delay: 0.29s; }
.ind-tile-grid > div:nth-child(11) .navigation-btn-lg { animation-delay: 0.32s; }
.ind-tile-grid > div:nth-child(n+12) .navigation-btn-lg { animation-delay: 0.35s; }

/* 大图标按钮（首页快捷入口）—— 旧全局兜底（卡片墙外生效） */
.navigation-btn-lg {
    border: 1px solid var(--ind-line);
    border-radius: 5px;
    background: linear-gradient(160deg, #122041 0%, #0c1730 100%);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    text-shadow: none;
    color: var(--ind-text);
    transition: transform 0.18s ease, border-color 0.22s ease, box-shadow 0.25s ease;
}

.navigation-btn-lg:hover {
    border-color: rgba(124, 108, 248, 0.45);
    box-shadow: 0 0 26px rgba(124, 108, 248, 0.22), 0 12px 30px rgba(0, 0, 0, 0.5);
    transform: translateY(-3px);
    color: var(--ind-cyan);
}

/* ============ 表单 ============ */

.form-control, .form-select {
    background-color: #0a142e;
    border: 1px solid rgba(148, 163, 255, 0.24);
    border-radius: 3px;
    color: var(--ind-text);
    border-radius: 6px;
    caret-color: var(--ind-cyan);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control:focus, .form-select:focus {
    background-color: #0a142e;
    border-color: var(--ind-cyan);
    color: var(--ind-text);
    box-shadow: 0 0 0 0.15rem rgba(0, 229, 255, 0.18), 0 0 18px rgba(0, 229, 255, 0.10);
}

.form-control::placeholder { color: var(--ind-text-faint); }

.form-control:disabled, .form-control[readonly] {
    background-color: rgba(12, 23, 48, 0.6);
    color: var(--ind-text-faint);
}

.input-group-text {
    background-color: var(--ind-panel-2);
    border-color: rgba(148, 163, 255, 0.24);
    color: var(--ind-text-dim);
}

.form-check-input {
    background-color: #0a142e;
    border-color: rgba(148, 163, 255, 0.35);
}

.form-check-input:checked {
    background-color: var(--ind-cyan);
    border-color: var(--ind-cyan);
}

.form-check-input:focus { box-shadow: 0 0 0 0.15rem rgba(0, 229, 255, 0.2); }

.form-text { color: var(--ind-text-faint); }

/* Select2 暗色补丁（非 data-bs-theme 场景兜底） */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: #0a142e;
    border-color: rgba(148, 163, 255, 0.24);
}

.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ind-text); }
.select2-dropdown { background-color: var(--ind-panel-2); border-color: var(--ind-line-strong); }
.select2-container--default .select2-results__option { color: var(--ind-text); }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background-color: var(--ind-cyan); color: #03141a; }
.select2-container--default .select2-search--dropdown .select2-search__field { background-color: #0a142e; border-color: rgba(148, 163, 255, 0.24); color: var(--ind-text); }

/* ============ 工具栏 / 标题区 ============ */

.mayan-toolbar {
    background: var(--ind-panel);
    border: 1px solid var(--ind-line);
    border-radius: 5px;
    box-shadow: 0 8px 26px rgba(0, 0, 0, 0.3);
}

#mayan-list-toolbar {
    backdrop-filter: blur(10px);
    background: rgba(8, 15, 34, 0.88);
    border: 1px solid var(--ind-line);
    border-radius: 8px;
    padding: 8px 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

#content-title, .mayan-appearance-title-block h1, .mayan-appearance-title-block h2 {
    color: #eef2ff;
    text-shadow: 0 0 26px rgba(0, 229, 255, 0.14);
}

.breadcrumb { --bs-breadcrumb-divider-color: var(--ind-text-faint); }
.breadcrumb-item.active { color: var(--ind-cyan); }
.breadcrumb-item a { color: var(--ind-text-dim); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--ind-cyan); }

/* 悬浮操作按钮 */
#menu-actions .btn, #menu-actions .dropdown-toggle {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

/* ============ 分页 ============ */

.pagination { --bs-pagination-border-radius: 6px; }

.page-link {
    background-color: #0a142e;
    border-color: rgba(148, 163, 255, 0.2);
    color: var(--ind-text-dim);
}

.page-link:hover, .page-link:focus {
    background-color: rgba(0, 229, 255, 0.10);
    border-color: var(--ind-line-strong);
    color: var(--ind-cyan);
}

.page-item.active .page-link,
.page-link.active {
    background-color: var(--ind-cyan);
    border-color: var(--ind-cyan);
    color: #03141a;
}

.page-item.disabled .page-link {
    background-color: #0a142e;
    color: var(--ind-text-faint);
}

/* ============ 下拉菜单 ============ */

.dropdown-menu {
    border-radius: 8px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(0, 229, 255, 0.06);
    padding: 5px;
}

.dropdown-item { border-radius: 4px; font-size: 14px; }

.dropdown-item:focus, .dropdown-item:hover {
    background-color: rgba(124, 108, 248, 0.18);
    color: #eef2ff;
}

.dropdown-item.active, .dropdown-item:active {
    background-color: var(--ind-cyan);
    color: #03141a;
}

.dropdown-divider { border-top-color: rgba(148, 163, 255, 0.16); margin: 5px 8px; }

/* ============ 模态框 / Offcanvas ============ */

.modal-content {
    background-color: var(--ind-panel);
    border: 1px solid var(--ind-line-strong);
    border-radius: 12px;
    box-shadow: 0 0 60px rgba(0, 229, 255, 0.10), 0 40px 90px rgba(0, 0, 0, 0.6);
}

.modal-header { border-bottom-color: var(--ind-line); }
.modal-footer { border-top-color: var(--ind-line); }
.modal-title { color: var(--ind-cyan); font-weight: 700; letter-spacing: 0.06em; }

.offcanvas {
    background-color: var(--ind-panel);
    border-color: var(--ind-line);
}

/* ============ 列表组 / 侧栏链接 ============ */

.list-group-item {
    background-color: transparent;
    border-color: rgba(148, 163, 255, 0.12);
    color: var(--ind-text);
}

.list-group-item-action:hover {
    background-color: rgba(124, 108, 248, 0.12);
    color: #eef2ff;
}

.list-group-item.active {
    background-color: rgba(0, 229, 255, 0.10);
    border-color: var(--ind-line-strong);
    color: var(--ind-cyan);
    box-shadow: inset 2px 0 0 var(--ind-cyan);
}

/* ============ 徽章 / 提示 ============ */

.badge { border-radius: 4px; letter-spacing: 0.06em; font-weight: 600; }
.badge.text-bg-primary { background-color: rgba(0, 229, 255, 0.14) !important; color: var(--ind-cyan) !important; border: 1px solid rgba(0, 229, 255, 0.3); }
.badge.text-bg-success { background-color: rgba(52, 224, 161, 0.12) !important; color: var(--ind-green) !important; border: 1px solid rgba(52, 224, 161, 0.3); }
.badge.text-bg-danger  { background-color: rgba(255, 107, 125, 0.12) !important; color: var(--ind-red) !important; border: 1px solid rgba(255, 107, 125, 0.3); }
.badge.text-bg-warning { background-color: rgba(255, 197, 61, 0.12) !important; color: var(--ind-amber) !important; border: 1px solid rgba(255, 197, 61, 0.3); }
.badge.text-bg-secondary { background-color: rgba(148, 163, 255, 0.10) !important; color: var(--ind-text-dim) !important; border: 1px solid rgba(148, 163, 255, 0.25); }

.alert {
    border-radius: 4px;
    border: 1px solid;
    background-clip: padding-box;
}

.alert-primary { background-color: rgba(0, 229, 255, 0.07); border-color: rgba(0, 229, 255, 0.3); color: #aef3fc; }
.alert-success { background-color: rgba(52, 224, 161, 0.07); border-color: rgba(52, 224, 161, 0.3); color: #a8f0cd; }
.alert-danger  { background-color: rgba(255, 107, 125, 0.07); border-color: rgba(255, 107, 125, 0.32); color: #ffc4ca; }
.alert-warning { background-color: rgba(255, 197, 61, 0.07); border-color: rgba(255, 197, 61, 0.3); color: #ffe0a3; }
.alert-info    { background-color: rgba(0, 229, 255, 0.07); border-color: rgba(0, 229, 255, 0.3); color: #aef3fc; }

/* ============ 折叠面板 / 仪表盘 ============ */

.accordion-item { background-color: var(--ind-bg-2); border-color: rgba(148, 163, 255, 0.12); }

.accordion-button:not(.collapsed) {
    box-shadow: inset 0 -1px 0 rgba(0, 229, 255, 0.2);
    color: var(--ind-cyan);
}

/* jsTree */
.jstree-default { background: transparent; }
.jstree-default .jstree-anchor { color: var(--ind-text); }
.jstree-default .jstree-hovered, .jstree-default .jstree-wholerow-hovered { background: rgba(0, 229, 255, 0.07); }
.jstree-default .jstree-clicked, .jstree-default .jstree-wholerow-clicked { background: rgba(0, 229, 255, 0.12); color: var(--ind-cyan); }

/* Fancybox 图注背景 */
.fancybox-caption { background: linear-gradient(to top, rgba(5, 9, 20, 0.92), transparent); }

/* ============ 导航页签 ============ */

.nav-tabs { --bs-nav-tabs-border-color: rgba(148, 163, 255, 0.2); border-bottom-width: 1px; }
.nav-tabs .nav-link { color: var(--ind-text-dim); border: none; border-bottom: 2px solid transparent; letter-spacing: 0.04em; }
.nav-tabs .nav-link:hover { color: var(--ind-cyan); border-bottom-color: rgba(0, 229, 255, 0.4); }
.nav-tabs .nav-link.active { color: var(--ind-cyan); background: transparent; border-bottom-color: var(--ind-cyan); }

.nav-pills .nav-link { color: var(--ind-text-dim); border-radius: 3px; }
.nav-pills .nav-link.active { background-color: rgba(0, 229, 255, 0.12); color: var(--ind-cyan); }

/* ============ 代码 / 键盘 ============ */

code, kbd, pre {
    background-color: rgba(0, 229, 255, 0.07);
    border: 1px solid rgba(0, 229, 255, 0.16);
    border-radius: 3px;
    color: #aef3fc;
}

code { padding: 0.1em 0.4em; }

/* ============ 帮助文本 / 说明 ============ */

.help-block, .text-muted { color: var(--ind-text-dim) !important; }
.text-primary { color: var(--ind-cyan) !important; }
.text-success { color: var(--ind-green) !important; }
.text-danger  { color: var(--ind-red) !important; }
.text-warning { color: var(--ind-amber) !important; }

a { transition: color 0.15s ease; }
a:hover { color: #7df4ff; }

/* ============ 进度条 / 加载 ============ */

.progress { background-color: rgba(148, 163, 255, 0.12); border-radius: 3px; }
.progress-bar { background: linear-gradient(90deg, #7c6cf8, var(--ind-cyan)); }

.spinner-border { color: var(--ind-cyan); }

/* AJAX 加载 spinner 配色 */
#ajax-spinner {
    border-color: rgba(0, 229, 255, 0.2);
    border-top-color: var(--ind-cyan);
    border-bottom-color: var(--ind-cyan);
}

/* ============ Toast ============ */

.toast {
    background-color: var(--ind-panel-2);
    border: 1px solid var(--ind-line-strong);
    color: var(--ind-text);
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.55);
}

.toast-header { background-color: rgba(5, 9, 20, 0.5); color: var(--ind-text); border-bottom-color: var(--ind-line); }

/* ============ 打印 / 杂项 ============ */

hr { border-color: rgba(148, 163, 255, 0.16); }

/* 背景工具类硬覆盖（Bootstrap 工具类带 !important） */
.bg-body-secondary { background-color: #0c1730 !important; }
.bg-body-tertiary  { background-color: #122041 !important; }
.bg-secondary      { background-color: #122041 !important; }

.close { color: var(--ind-text-dim); text-shadow: none; }
.close:hover { color: var(--ind-cyan); }

fieldset legend, .appearance-legend { color: var(--ind-cyan); }

::selection { background: rgba(0, 229, 255, 0.28); color: #ffffff; }

/* ============================================================
   首页 Dashboard 组件 · demo 风格精修
   玻璃拟态卡片 / 图标发光 / 渐变统计数字 / 计数动画
   ============================================================ */

/* 仪表盘外层容器：去掉 Bootstrap 默认灰底，融入海军蓝画布 */
.dashboards-panel-widget {
    position: relative;
    background: linear-gradient(165deg, rgba(17, 29, 58, 0.92), rgba(12, 23, 48, 0.85));
    border: 1px solid rgba(148, 163, 255, 0.16) !important;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.28s ease, border-color 0.28s ease;
    backdrop-filter: blur(8px);
}

/* 卡片顶部青→紫渐变能量条 */
.dashboards-panel-widget::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, #00e5ff, #7c6cf8, transparent 85%);
    opacity: 0.65;
    pointer-events: none;
}

.dashboards-panel-widget:hover {
    transform: translateY(-3px);
    border-color: rgba(124, 108, 248, 0.4) !important;
    box-shadow: 0 0 26px rgba(124, 108, 248, 0.16), 0 16px 38px rgba(0, 0, 0, 0.5);
}

.dashboards-panel-widget > .card-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(148, 163, 255, 0.12);
    padding: 14px 16px 10px;
}

.dashboards-panel-widget > .card-header strong {
    font-family: 'Rajdhani', 'Noto Sans SC', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--ind-text);
}

/* 图标发光：青色辉光 + 轻微放大 */
.dashboards-panel-widget-icon {
    font-size: 200%;
    color: var(--ind-cyan);
    filter: drop-shadow(0 0 8px rgba(0, 229, 255, 0.55));
    transition: transform 0.25s ease, filter 0.25s ease;
}

.dashboards-panel-widget:hover .dashboards-panel-widget-icon {
    transform: scale(1.12);
    filter: drop-shadow(0 0 14px rgba(0, 229, 255, 0.8));
}

/* 空状态图标：紫罗兰微光 */
.dashboards-panel-widget-empty-icon {
    filter: drop-shadow(0 0 12px rgba(124, 108, 248, 0.4));
    opacity: 0.9;
}

.dashboards-panel-widget-empty-text { color: var(--ind-text-faint) !important; }

/* 数字统计：大号渐变数字 + 青紫统计条 */
.dashboards-panel-widget .huge {
    font-family: 'Rajdhani', 'Noto Sans SC', sans-serif;
    font-size: 42px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    background: linear-gradient(100deg, #ffffff 20%, #9ecbff 55%, #b9aaff 90%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dashboards-panel-widget .huge::after {
    content: '';
    display: block;
    height: 3px;
    width: 72px;
    margin-top: 8px;
    margin-inline-start: auto;
    border-radius: 2px;
    background: linear-gradient(90deg, #00e5ff, #7c6cf8);
    box-shadow: 0 0 10px rgba(124, 108, 248, 0.5);
}

/* 卡片内表格：紧凑 + 紫罗兰 hover */
.dashboards-panel-widget > .card-body { scrollbar-width: thin; }
.dashboards-panel-widget > .card-body::-webkit-scrollbar { width: 6px; }
.dashboards-panel-widget > .card-body::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 255, 0.22);
    border-radius: 3px;
}
.dashboards-panel-widget > .card-body::-webkit-scrollbar-track { background: transparent; }

.dashboards-panel-widget > .card-body .table > tbody > tr:hover > * {
    box-shadow: inset 0 0 0 9999px rgba(124, 108, 248, 0.10);
}

/* 底部“查看详情”：青色链接 + hover 外扩 */
.dashboards-panel-widget > a { text-decoration: none; }
.dashboards-panel-widget > a > .card-footer {
    background: rgba(124, 108, 248, 0.05) !important;
    border-top: 1px solid rgba(148, 163, 255, 0.12);
    color: var(--ind-text-dim);
    font-size: 13px;
    letter-spacing: 0.05em;
    transition: color 0.2s ease, background 0.2s ease;
}

.dashboards-panel-widget > a:hover > .card-footer {
    color: var(--ind-cyan);
    background: rgba(124, 108, 248, 0.12) !important;
}

.dashboards-panel-widget > a:hover > .card-footer .float-end {
    transform: translateX(3px);
    transition: transform 0.2s ease;
}

/* 大图标快捷入口（navigation-btn-lg）图标辉光 —— 旧全局兜底（卡片墙外生效） */
.navigation-btn-lg .mayan-icon-2x {
    filter: drop-shadow(0 0 10px rgba(0, 229, 255, 0.35));
    transition: filter 0.25s ease;
}

.navigation-btn-lg:hover .mayan-icon-2x {
    filter: drop-shadow(0 0 16px rgba(0, 229, 255, 0.7));
}

/* 卡片墙内：辉光由徽章 svg 层接管，避免父级叠加 */
.ind-tile-wall .navigation-btn-lg .mayan-icon-2x,
.ind-tile-wall .navigation-btn-lg:hover .mayan-icon-2x {
    filter: none;
}

/* ============================================================
   列表页 · demo 风格细节（重复后端/文档列表等通用）
   ============================================================ */

/* 内容区标题：图标青色辉光 + 标题渐变文字 */
#content-title .mayan-icon,
#content-title .icon,
.mayan-appearance-title-block .mayan-icon,
.mayan-appearance-title-block .icon,
.mayan-appearance-title-icon {
    color: var(--ind-cyan);
    background: none;
    -webkit-text-fill-color: currentColor;
    filter: drop-shadow(0 0 10px rgba(0, 229, 255, 0.5));
}

#content-title, .mayan-appearance-title-block h1 {
    background: linear-gradient(100deg, #ffffff 30%, #9ecbff 70%, #b9aaff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* 「总计：N」统计行：等宽字体 + 青色数字感 */
.mayan-appearance-total {
    font-family: 'Share Tech Mono', ui-monospace, monospace;
    color: var(--ind-text-dim);
    letter-spacing: 0.06em;
}

/* 表格内嵌操作按钮（视图列「文档」等）：青色幽灵按钮 */
.table .btn-outline-secondary,
#mayan-list-toolbar .btn-outline-secondary {
    --bs-btn-color: var(--ind-cyan);
    --bs-btn-border-color: rgba(0, 229, 255, 0.35);
    --bs-btn-hover-bg: rgba(0, 229, 255, 0.12);
    --bs-btn-hover-border-color: var(--ind-cyan);
    --bs-btn-hover-color: var(--ind-cyan);
    --bs-btn-active-bg: rgba(0, 229, 255, 0.2);
    --bs-btn-active-color: var(--ind-cyan);
    --bs-btn-font-size: 12px;
    border-radius: 4px;
    letter-spacing: 0.04em;
}

/* 表格表头：mono 大写 + 字距（demo 终端感） */
.table thead th {
    font-family: 'Share Tech Mono', ui-monospace, monospace;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 12px;
    font-weight: 500;
    color: var(--ind-cyan) !important;
    border-bottom-color: var(--ind-line-strong) !important;
}

/* ============ 登录页（base_plain）保护 ============ 无——登录主题自带完整作用域，此处仅确保 body 底色一致 */

/* ============================================================
   内容区面包屑（ind-breadcrumb）· 终端路径风格
   ============================================================ */

.ind-breadcrumb {
    margin-bottom: 10px;
    padding: 7px 14px;
    border: 1px solid var(--ind-line);
    border-radius: 9px;
    background:
        linear-gradient(90deg, rgba(0, 229, 255, 0.05), rgba(124, 108, 248, 0.05)),
        rgba(8, 15, 34, 0.5);
    box-shadow: inset 0 1px 0 rgba(238, 242, 255, 0.03);
    overflow-x: auto;
    scrollbar-width: none;
}

.ind-breadcrumb::-webkit-scrollbar { display: none; }

.ind-breadcrumb-list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
    white-space: nowrap;
}

.ind-breadcrumb-item {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    min-width: 0;
}

.ind-breadcrumb-link {
    color: var(--ind-text-faint);
    font-size: 12.5px;
    letter-spacing: 0.04em;
    text-decoration: none;
    padding: 2px 6px;
    border-radius: 5px;
    transition: color 0.2s ease, background 0.2s ease, text-shadow 0.2s ease;
}

.ind-breadcrumb-link:hover {
    color: var(--ind-cyan);
    background: rgba(0, 229, 255, 0.08);
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.4);
}

.ind-breadcrumb-separator {
    display: inline-flex;
    align-items: center;
    color: rgba(148, 163, 255, 0.35);
    margin: 0 2px;
}

.ind-breadcrumb-current {
    color: var(--ind-cyan);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 2px 6px;
    text-shadow: 0 0 12px rgba(0, 229, 255, 0.35);
}

/* ============================================================
   API 文档内嵌面板（Swagger / ReDoc / REST API iframe）
   ============================================================ */

.ind-embed-panel {
    border: 1px solid var(--ind-line-strong);
    border-radius: 14px;
    overflow: hidden;
    background: #0c1730;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35), 0 0 24px rgba(0, 229, 255, 0.06);
    position: relative;
}

/* 面板顶部能量线，与卡片墙语言一致 */
.ind-embed-panel::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ind-cyan) 30%, var(--ind-violet) 70%, transparent);
    opacity: 0.6;
    z-index: 2;
    pointer-events: none;
}

.ind-embed-frame {
    display: block;
    width: 100%;
    height: calc(100vh - 250px);
    min-height: 480px;
    border: 0;
    background: #ffffff;
}

@media (prefers-reduced-motion: reduce) {
    .btn:hover, .card-item:hover, .navigation-btn-lg:hover { transform: none; }

    .ind-tile-wall .navigation-btn-lg {
        animation: none;
        transition: border-color 0.25s ease, box-shadow 0.3s ease, color 0.25s ease;
    }

    .ind-tile-wall .navigation-btn-lg:hover .ind-tile-icon { transform: none; }
    .ind-tile-wall .navigation-btn-lg .ind-tile-arrow { transition: opacity 0.2s ease; transform: none; }
}
