/* =========================================================================
   全局核心样式 —— 「宝蓝鎏金 · 精工旗舰版」主题 V7
   深邃宝石蓝 × 香槟金 · 高端商务财务视觉系统
   说明：纯视觉升级，全部类名/选择器向下兼容，业务功能零改动
   ========================================================================= */
:root {
    --primary: #2563eb;       /* 深邃宝石蓝 */
    --primary-hover: #1d4ed8;
    --primary-light: #eef4ff;
    --success: #10b981;       /* 成功绿 */
    --success-hover: #059669;
    --success-light: #ecfdf5;
    --warning: #f59e0b;       /* 琥珀黄 */
    --warning-hover: #d97706;
    --warning-light: #fffbeb;
    --danger: #ef4444;        /* 警示红 */
    --danger-hover: #dc2626;
    --danger-light: #fef2f2;
    --info: #0ea5e9;          /* 天蓝色 (用于高亮) */
    --info-hover: #0284c7;
    --info-light: #f0f9ff;
    --gold: #b8933f;          /* 香槟金点缀 */
    --gold-deep: #96742c;
    --gold-light: #faf3e2;
    --dark: #0f172a;
    --dark-hover: #1e293b;
    --bg-body: #f4f6fb;       /* 云雾灰蓝底板 */
    --bg-surface: #ffffff;
    --border: #e6eaf3;
    --text-main: #2b3648;
    --text-muted: #68758c;
    --shadow-sm: 0 1px 2px rgba(16,27,58,0.05), 0 1px 3px rgba(16,27,58,0.04);
    --shadow-md: 0 6px 14px -4px rgba(16,27,58,0.09), 0 2px 6px -2px rgba(16,27,58,0.06);
    --shadow-lg: 0 18px 40px -10px rgba(16,27,58,0.18), 0 6px 16px -6px rgba(16,27,58,0.08);
    --radius: 12px;
    --sidebar-width: 200px;   /* 侧边栏初始默认宽度 */
}
* { margin:0; padding:0; box-sizing:border-box; }
::selection { background: rgba(37,99,235,0.16); }
body {
    font-family: "Microsoft YaHei", "微软雅黑", "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: var(--bg-body);
    background-image: radial-gradient(1100px 520px at 88% -12%, rgba(37,99,235,0.055), transparent 60%),
                      radial-gradient(900px 480px at -8% 108%, rgba(184,147,63,0.05), transparent 60%);
    background-attachment: fixed;
    color: var(--text-main); font-size: 14px; line-height: 1.6; overflow: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-variant-numeric: tabular-nums;
    font-weight: 500;
    text-shadow: 0 0 0.25px rgba(0,0,0,0.18);
}
h1, h2, h3, h4, h5, h6 { font-weight: 800 !important; }
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #cbd5e4, #b9c6da); border-radius: 8px; border: 2px solid #f2f5fa; }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #a8b8d4, #93a7c6); }
.hidden { display: none !important; }
@media (max-width: 600px) { .hidden-mobile { display: none !important; } }
.layout { display: flex; height: 100vh; overflow: hidden; }

/* ============ 沉浸式深蓝鎏金侧边栏 ============ */
.sidebar {
    width: var(--sidebar-width);
    background:
        radial-gradient(520px 280px at 18% -4%, rgba(125,211,252,0.26), transparent 62%),
        radial-gradient(420px 260px at 90% 108%, rgba(59,130,246,0.30), transparent 60%),
        linear-gradient(185deg, #14397f 0%, #1b4da8 55%, #123a82 100%);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    box-shadow: 6px 0 28px rgba(12,38,92,0.35);
    border-right: 1px solid rgba(170,210,255,0.22);
    z-index: 10;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    position: relative;
}
.sidebar.collapsed { width: 0 !important; min-width: 0 !important; border-right: none; }
.sidebar.dragging { transition: none !important; }

/* 侧边栏拖拽控制手柄 */
.resizer {
    position: absolute;
    top: 0;
    right: 0;
    width: 6px;
    height: 100%;
    cursor: col-resize;
    background-color: transparent;
    z-index: 100;
    transition: background-color 0.2s ease;
}
.resizer:hover, .sidebar.dragging .resizer {
    background-color: var(--primary);
    box-shadow: -1px 0 8px rgba(59,130,246,0.55);
}

.main { flex: 1; display: flex; flex-direction: column; overflow: hidden; position: relative; transition: all 0.3s; }
.topbar { height: 60px; background: linear-gradient(90deg, #123a80 0%, #1c50ad 55%, #14408c 100%); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid rgba(170,210,255,0.25); box-shadow: 0 8px 24px -10px rgba(12,38,92,0.5); z-index: 5; }
.page { flex: 1; overflow-y: auto; padding: 24px; scroll-behavior: smooth; }
.flex-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.f1 { flex: 1; } .w-full { width: 100%; }
.mb-2 { margin-bottom: 8px; } .mb-3 { margin-bottom: 14px; } .mb-4 { margin-bottom: 20px; } .mt-3 { margin-top: 14px; }
.tc { text-align: center; } .tr { text-align: right; } .tl { text-align: left; }
.bold { font-weight: 700 !important; } .mono { font-family: 'JetBrains Mono', Consolas, monospace; font-weight: 600 !important; letter-spacing: 0.5px; }
.text-sm { font-size: 13px; } .text-xs { font-size: 12px; }
.color-p { color: var(--primary); } .color-d { color: var(--danger); } .color-s { color: var(--success); } .color-m { color: var(--text-muted); } .color-i { color: var(--info); }
.cursor-pointer { cursor: pointer; }

/* 卡片美化 */
.card { background: var(--bg-surface); border-radius: 14px; padding: 24px; border: 1px solid var(--border); box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,0.9); margin-bottom: 20px; }
.scard { background: var(--bg-surface); border-radius: 14px; padding: 20px; border: 1px solid var(--border); transition: all 0.25s ease; position: relative; overflow: hidden; box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,0.9); }
.scard:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: #c9d5ee; }
.ctitle { font-size: 17px; font-weight: 700; color: var(--text-main); margin-bottom: 18px; padding-bottom: 12px; border-bottom: 1px solid var(--border); display: flex; align-items: center; position: relative; }
.ctitle::before { content: ''; width: 4px; height: 16px; border-radius: 2px; background: linear-gradient(180deg, #3b82f6, #1d4ed8); margin-right: 10px; box-shadow: 0 2px 6px rgba(37,99,235,0.35); }

/* =========================================================================
   精工按钮体系 V8 · 细腻融入版 —— 轻盈通透 · 与页面浑然一体
   设计原则：去硬描边（柔光内边替代）、收敛悬浮辉光、上浮仅 1px、
   字迹加重投影保持清晰；全软件按钮统一接管，类名向下兼容
   ========================================================================= */
.btn {
    padding: 8px 17px; border: none; border-radius: 10px; cursor: pointer;
    font-size: 13.5px; font-weight: 700; letter-spacing: 0.3px; line-height: 1.35;
    display: inline-flex; align-items: center; justify-content: center;
    transition: transform 0.2s cubic-bezier(0.4,0,0.2,1), box-shadow 0.25s ease, filter 0.25s ease, background 0.25s ease, color 0.2s ease;
    outline: none; user-select: none; gap: 7px; position: relative; white-space: nowrap;
    font-family: "Microsoft YaHei", "微软雅黑", sans-serif !important;
    -webkit-tap-highlight-color: transparent;
}
.btn:active:not(:disabled) { transform: translateY(0) scale(0.97); }
.btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none; filter: saturate(0.4); box-shadow: none; }
.btn:focus-visible { box-shadow: 0 0 0 3px rgba(37,99,235,0.28); }

/* 主按钮 · 宝蓝柔光 (去描边，以极细内亮边融入底色) */
.btn-p {
    background: linear-gradient(175deg, #4183f5 0%, #2a63e8 55%, #2158da 100%);
    color: #ffffff; text-shadow: 0 1px 1.5px rgba(10,32,84,0.42);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 3px 10px -3px rgba(37,99,235,0.42), inset 0 1px 0 rgba(255,255,255,0.30), inset 0 0 0 1px rgba(255,255,255,0.06);
}
.btn-p:hover:not(:disabled) {
    background: linear-gradient(175deg, #5090f8 0%, #316ef0 55%, #2560e0 100%);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 7px 18px -5px rgba(37,99,235,0.52), inset 0 1px 0 rgba(255,255,255,0.34), inset 0 0 0 1px rgba(255,255,255,0.08);
    transform: translateY(-1px);
}

/* 成功按钮 · 翡翠柔光 */
.btn-s {
    background: linear-gradient(175deg, #2bcf9b 0%, #10b481 55%, #089470 100%);
    color: #ffffff; text-shadow: 0 1px 1.5px rgba(2,58,40,0.42);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 3px 10px -3px rgba(16,185,129,0.40), inset 0 1px 0 rgba(255,255,255,0.30), inset 0 0 0 1px rgba(255,255,255,0.06);
}
.btn-s:hover:not(:disabled) {
    background: linear-gradient(175deg, #3cd9a9 0%, #16bf8c 55%, #0aa07b 100%);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 7px 18px -5px rgba(16,185,129,0.5), inset 0 1px 0 rgba(255,255,255,0.34);
    transform: translateY(-1px);
}

/* 警示按钮 · 琥珀柔光 */
.btn-w {
    background: linear-gradient(175deg, #ffbe52 0%, #f59a10 55%, #e0880c 100%);
    color: #ffffff; text-shadow: 0 1px 1.5px rgba(92,52,6,0.46);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 3px 10px -3px rgba(245,158,11,0.40), inset 0 1px 0 rgba(255,255,255,0.34), inset 0 0 0 1px rgba(255,255,255,0.07);
}
.btn-w:hover:not(:disabled) {
    background: linear-gradient(175deg, #ffca6c 0%, #f7a51c 55%, #e89310 100%);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 7px 18px -5px rgba(245,158,11,0.5), inset 0 1px 0 rgba(255,255,255,0.38);
    transform: translateY(-1px);
}

/* 信息按钮 · 天青柔光 */
.btn-i {
    background: linear-gradient(175deg, #43bdf6 0%, #0ea1e4 55%, #0382c4 100%);
    color: #ffffff; text-shadow: 0 1px 1.5px rgba(3,42,68,0.42);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 3px 10px -3px rgba(14,165,233,0.40), inset 0 1px 0 rgba(255,255,255,0.30), inset 0 0 0 1px rgba(255,255,255,0.06);
}
.btn-i:hover:not(:disabled) {
    background: linear-gradient(175deg, #5ac9f8 0%, #17aeee 55%, #068ed0 100%);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 7px 18px -5px rgba(14,165,233,0.5), inset 0 1px 0 rgba(255,255,255,0.34);
    transform: translateY(-1px);
}

/* 危险按钮 · 绯红柔光 */
.btn-d {
    background: linear-gradient(175deg, #f67070 0%, #ef4444 55%, #dc2a2a 100%);
    color: #ffffff; text-shadow: 0 1px 1.5px rgba(72,12,12,0.42);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 3px 10px -3px rgba(239,68,68,0.40), inset 0 1px 0 rgba(255,255,255,0.28), inset 0 0 0 1px rgba(255,255,255,0.06);
}
.btn-d:hover:not(:disabled) {
    background: linear-gradient(175deg, #f98080 0%, #f05252 55%, #e33434 100%);
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 7px 18px -5px rgba(239,68,68,0.5), inset 0 1px 0 rgba(255,255,255,0.32);
    transform: translateY(-1px);
}

/* 次按钮 · 云瓷融入款 (全软件使用最广：半透柔边 + 轻盈浮起，与底板浑然一体) */
.btn-n {
    background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
    color: #3a4864;
    border: 1px solid rgba(100,128,180,0.24);
    box-shadow: 0 1px 2px rgba(16,27,58,0.045), inset 0 1px 0 #ffffff;
}
.btn-n:hover:not(:disabled) {
    background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%);
    border-color: rgba(59,130,246,0.42);
    color: #1d4ed8;
    box-shadow: 0 2px 4px rgba(16,27,58,0.04), 0 5px 14px -6px rgba(37,99,235,0.32), inset 0 1px 0 #ffffff;
    transform: translateY(-1px);
}

/* 文字按钮 · 轻盈点缀 */
.btn-text { background: transparent; color: var(--text-muted); padding: 6px 11px; border-radius: 8px; font-weight: 600; transition: all 0.18s ease; }
.btn-text:hover { background: rgba(37,99,235,0.07); color: var(--primary); }
.btn-text.danger { color: var(--danger); } .btn-text.danger:hover { background: var(--danger-light); color: var(--danger-hover); }

/* 输入框与下拉框 */
.inp, .sel { font-family: "Microsoft YaHei", "微软雅黑", "PingFang SC", sans-serif !important; font-weight: 500; padding: 9px 14px; border: 1px solid #d3dbe8; border-radius: 9px; background: #fff; font-size: 14px; color: var(--text-main); transition: all 0.2s; width: 100%; box-shadow: inset 0 1px 2px rgba(16,27,58,0.02); }
.inp:hover, .sel:hover { border-color: #b3c2dd; }
.inp:focus, .sel:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 3px rgba(37,99,235,0.14); background: #fff; }
.inp:disabled, .sel:disabled { background: #f3f5f9; color: var(--text-muted); cursor: not-allowed; border-color: #e5e9f2; }
label { display: block; font-weight: 600; color: var(--text-muted); margin-bottom: 8px; font-size: 12.5px; }

/* 徽章精修 · 瓷面描边 */
.badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; letter-spacing: 0.3px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.65), 0 1px 2px rgba(16,27,58,0.05); }
.badge.blue { background: #e3eaff; color: #2b3f9e; border: 1px solid #c9d7ff; }
.badge.green { background: #d7f6ea; color: #065f46; border: 1px solid #b5ecd8; }
.badge.orange { background: #fdf0d5; color: #92400e; border: 1px solid #f8e0ab; }
.badge.purple { background: #f1e6ff; color: #6b21a8; border: 1px solid #e2d0ff; }
.badge.gray { background: #eef2f8; color: #47536b; border: 1px solid #dfe6f0; }
.badge.red { background: #fde3e3; color: #991b1b; border: 1px solid #f9c9c9; }
.badge.cyan { background: #dcf1fd; color: #075985; border: 1px solid #c0e5fa; }

/* 提示框美化 */
.alert { padding: 14px 18px; border-radius: 11px; font-size: 13.5px; margin-bottom: 20px; display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; box-shadow: inset 0 1px 0 rgba(255,255,255,0.6); }
.alert-info { background: #eff4ff; border: 1px solid #ccd9f8; color: #1e3a8a; }
.alert-warn { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }

/* 表格优雅化 */
.table-wrap { overflow: auto; max-height: 65vh; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); background: #fff; }
.tbl { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 600px; }
.tbl th, .tbl td { padding: 12px 16px; border-bottom: 1px solid #edf1f8; border-right: 1px solid #edf1f8; color: var(--text-main); }
.tbl th:last-child, .tbl td:last-child { border-right: none; }
.tbl th { background: linear-gradient(180deg, #f8fafd, #eef2fa) !important; font-weight: 700 !important; color: #1d2b52 !important; text-transform: uppercase; font-size: 12.5px; position: sticky; top: 0; z-index: 2; border-bottom: 2px solid #dbe3f3 !important; letter-spacing: 0.8px; text-shadow: 0 1px 0 rgba(255,255,255,0.8); box-shadow: inset 0 1px 0 rgba(255,255,255,0.9); }
.tbl tbody tr { transition: background 0.18s; }
.tbl tbody tr:hover { background: #f5f8ff; }
.tbl tbody tr:last-child td { border-bottom: none; }
.tbl tbody tr.highlight { background: #fbf6e8; font-weight: 600; }
.dr-val { color: #2563eb !important; font-family: 'JetBrains Mono', Consolas, monospace; font-weight: 700 !important; }
.cr-val { color: #059669 !important; font-family: 'JetBrains Mono', Consolas, monospace; font-weight: 700 !important; }
/* 报表表格 */
.rep-tbl { border: 2px solid #94a3b8; border-collapse: collapse; width: 100%; min-width: 800px; background: #fff; border-radius: 8px; overflow: hidden; }
.rep-tbl th { background: #f5f7fc; border: 1px solid #cbd5e1; border-bottom: 2px solid #94a3b8; color: var(--text-main); font-weight: bold; text-align: center; font-size: 13.5px; padding: 14px; }
.rep-tbl td { border: 1px solid #e6eaf3; font-size: 13.5px; padding: 10px 14px; }
.rep-tbl tbody tr:hover { background: #f7f9fd; }

/* ============ 侧边栏导航 · 深蓝底 · 鎏金点缀 ============ */
.logo { height: 60px; display: flex; align-items: center; justify-content: center; color: #f4f9ff; font-size: 18px; font-weight: 800; background: linear-gradient(180deg, rgba(255,255,255,0.09), rgba(255,255,255,0)); letter-spacing: 2px; border-bottom: 1px solid rgba(191,225,255,0.22); white-space: nowrap; text-shadow: 0 1px 3px rgba(0,25,70,0.35); }
.book-bar { padding: 16px; background: rgba(255,255,255,0.07); border-bottom: 1px solid rgba(191,225,255,0.22); min-width: 200px; }
.menu-area { flex: 1; overflow-y: auto; padding: 16px 12px; min-width: 200px; }
.menu-area::-webkit-scrollbar-thumb { background: #33456f; border: 1px solid #16264c; }
.menu-area::-webkit-scrollbar-thumb:hover { background: #45598a; }
.menu-group { font-size: 11.5px; color: #b9cdf5; padding: 16px 12px 8px; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700; }
.menu-group:hover { background: rgba(255,255,255,0.07); }
.menu-item { padding: 11px 16px; margin-bottom: 6px; border-radius: 10px; cursor: pointer; color: #e2edff; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; gap: 12px; font-weight: 500; font-size: 13.5px; border: 1px solid transparent; position: relative; }
.menu-item:hover { color: #ffffff; background: rgba(125,211,252,0.22); transform: translateX(4px); box-shadow: 0 4px 14px rgba(10,30,80,0.4); }
.menu-item.active { color: #ffffff; background: linear-gradient(135deg, #4aa3ff, #2563eb); transform: translateX(4px); box-shadow: 0 6px 16px rgba(59,130,246,0.55), inset 0 1px 0 rgba(255,255,255,0.25); font-weight: 700; border-color: transparent; }
.menu-item.active::before { content: ''; position: absolute; left: -7px; top: 50%; transform: translateY(-50%); width: 3.5px; height: 58%; border-radius: 4px; background: linear-gradient(180deg, #bfeaff, #56b4ff); box-shadow: 0 0 8px rgba(86,180,255,0.9); }

/* 弹窗与遮罩高级感 · 宝蓝鎏金精工旗舰版 */
.overlay { position: fixed; inset: 0; background: rgba(13,26,56,0.58); backdrop-filter: blur(10px) saturate(1.05); -webkit-backdrop-filter: blur(10px) saturate(1.05); z-index: 9999; display: flex; align-items: center; justify-content: center; animation: fadeIn 0.22s ease-out; }
/* 通用弹窗：宝蓝顶栏(inset 顶条，随圆角裁切、不随内容滚动) + 云瓷渐变面 + 三层鎏金投影 */
.dlg {
    position: relative;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    border-radius: 20px; padding: 28px; width: 520px; max-height: 85vh; overflow-y: auto;
    border: 1px solid #dfe6f4;
    box-shadow:
        inset 0 5px 0 0 var(--primary),
        inset 0 0 0 1px rgba(255,255,255,0.75),
        0 24px 48px -12px rgba(8,18,44,0.38),
        0 52px 104px -28px rgba(8,18,44,0.44);
    animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.dlg-lg { width: 800px; } .dlg-xl { width: 1050px; }
/* 通用弹窗 · 标题栏 / 关闭钮 / 底部操作区 (与 index.html dlgOverlay 结构配套) */
.dlg-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid #e6ecf7; }
.dlg-title { font-size: 17.5px; font-weight: 800; color: #16233f; letter-spacing: 0.8px; line-height: 1.45; }
.dlg-close {
    width: 34px; height: 34px; border-radius: 10px; border: 1px solid #e2e8f0; background: linear-gradient(180deg,#ffffff,#f6f9ff);
    color: #64748b; font-size: 19px; line-height: 1; cursor: pointer; flex-shrink: 0; user-select: none;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 1px 2px rgba(16,27,58,0.05), inset 0 1px 0 #ffffff;
    transition: all 0.22s cubic-bezier(0.4,0,0.2,1);
}
.dlg-close:hover { background: linear-gradient(180deg,#ffffff,#fef2f2); color: #dc2626; border-color: #fca5a5; transform: rotate(90deg); box-shadow: 0 3px 8px rgba(220,38,38,0.18), inset 0 1px 0 #ffffff; }
.dlg-close:active { transform: rotate(90deg) scale(0.92); }
.dlg-foot { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid #e6ecf7; }
.dlg-foot .btn { padding: 10px 26px; border-radius: 10px; font-size: 14px; }
/* ============ 系统级对话框 (alert / confirm / prompt) · 宝蓝鎏金精工版 ============ */
.sys-dlg {
    width: 440px; background: linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);
    border-radius: 20px; overflow: hidden; border: 1px solid #dfe6f4;
    box-shadow: 0 24px 48px -12px rgba(8,18,44,0.38), 0 52px 104px -28px rgba(8,18,44,0.44), inset 0 0 0 1px rgba(255,255,255,0.75);
    animation: slideUp 0.32s cubic-bezier(0.16,1,0.3,1);
}
.sys-dlg-strip { height: 5px; width: 100%; flex-shrink: 0; }
.sys-dlg-body { padding: 26px 30px 28px; }
.sys-dlg-head { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.sys-dlg-icon {
    width: 46px; height: 46px; border-radius: 14px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; font-size: 23px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.85), 0 3px 8px -2px rgba(16,27,58,0.12);
}
.sys-dlg-title { font-size: 18.5px; font-weight: 800; color: #16233f; letter-spacing: 1px; }
.sys-dlg-msg { font-size: 14.8px; color: #33415c; line-height: 1.8; white-space: pre-wrap; word-break: break-all; margin-bottom: 24px; max-height: 50vh; overflow-y: auto; font-weight: 500; }
.sys-dlg-label { font-size: 14.8px; color: #33415c; line-height: 1.7; margin-bottom: 12px; font-weight: 600; }
.sys-dlg-btns { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.sys-dlg-btns .btn { padding: 11px 26px; border-radius: 10px; font-size: 14.5px; }
.sys-dlg-input {
    width: 100%; font-size: 15px; padding: 13px 16px; border-radius: 10px; margin-bottom: 22px;
    border: 2px solid #e2e8f0; background: #fbfcfe; color: var(--text-main); outline: none;
    font-family: "Microsoft YaHei", "微软雅黑", sans-serif; font-weight: 500; transition: all 0.2s;
    box-sizing: border-box;
}
.sys-dlg-input:focus { border-color: var(--info); background: #fff; box-shadow: 0 0 0 4px rgba(14,165,233,0.13); }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(30px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* 下拉联想美化 */
.accdrop { position: absolute; top: calc(100% + 6px); left: 0; width: max-content; min-width: 100%; max-height: 240px; overflow-y: auto; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-lg); z-index: 8000; border-radius: 10px; }
.accitem { padding: 10px 14px; cursor: pointer; border-bottom: 1px solid #f2f5fa; display: flex; justify-content: space-between; align-items: center; transition: background 0.15s; }
.accitem:last-child { border-bottom: none; }
.accitem:hover, .accitem.active { background: #e8efff; }

/* 账套卡片基础款 (现金流选择弹窗等处通用) */
.bitem { padding: 16px 20px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 12px; cursor: pointer; background: #fff; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); display: flex; justify-content: space-between; align-items: center; box-shadow: var(--shadow-sm); }
.bitem:hover { border-color: var(--primary); box-shadow: 0 10px 20px -6px rgba(37,99,235,0.22); transform: translateY(-2px); }

/* 凭证输入框无缝感 */
.v-input-cell { padding: 0 !important; position: relative; }
.v-inp { width: 100%; height: 100%; border: none; outline: none; padding: 10px 12px; background: transparent; font-size: 13.5px; transition: background 0.2s; }
.v-inp:focus { background: #fffbeb; box-shadow: inset 0 0 0 2px var(--warning); border-radius: 2px; }

/* ============ 启动大厅 · 宝蓝夜幕鎏金版 ============ */
#bootPage.boot-luxe {
    padding: 26px; overflow-y: auto;
    background:
        radial-gradient(1100px 700px at 12% -8%, rgba(125,211,252,0.32), transparent 55%),
        radial-gradient(900px 640px at 108% 16%, rgba(59,130,246,0.35), transparent 55%),
        radial-gradient(760px 520px at 50% 118%, rgba(37,99,235,0.28), transparent 62%),
        linear-gradient(165deg, #10336f 0%, #1a52bd 52%, #0e2f78 100%);
}
#bootPage.boot-luxe::before { content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: linear-gradient(rgba(170,215,255,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(170,215,255,0.08) 1px, transparent 1px);
    background-size: 46px 46px; }
.boot-shell { position: relative; z-index: 1; width: 1080px; max-width: 100%; margin: auto; background: #fff; border-radius: 22px; box-shadow: 0 48px 100px -24px rgba(2,8,24,0.7), 0 0 0 1px rgba(255,255,255,0.08); animation: slideUp 0.45s cubic-bezier(0.16,1,0.3,1); overflow: hidden; }
.boot-close { position: absolute; top: 18px; right: 18px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.12); color: #dfe7fb; font-size: 19px; cursor: pointer; z-index: 10; display: flex; align-items: center; justify-content: center; transition: all 0.2s; }
.boot-close:hover { background: rgba(255,255,255,0.26); color: #fff; transform: rotate(90deg); }
.boot-head { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 26px 34px; background: linear-gradient(135deg, #11357c 0%, #1a55c2 55%, #10357e 100%); }
.boot-head::before { content: ''; position: absolute; width: 340px; height: 340px; border-radius: 50%; background: rgba(125,211,252,0.30); filter: blur(70px); top: -160px; right: -60px; }
.boot-head::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2.5px; background: linear-gradient(90deg, transparent 3%, #56b4ff 22%, #bfeaff 50%, #56b4ff 78%, transparent 97%); }
.boot-brand { display: flex; align-items: center; gap: 16px; position: relative; z-index: 2; }
.boot-logo { width: 52px; height: 52px; border-radius: 14px; background: linear-gradient(135deg, #2f6bf0, #173db3); display: flex; align-items: center; justify-content: center; font-size: 26px; box-shadow: 0 10px 24px -6px rgba(23,61,179,0.65), inset 0 1px 0 rgba(255,255,255,0.28); }
.boot-title { color: #f2f6ff; font-size: 21px; font-weight: 800; letter-spacing: 2.5px; }
.boot-subtitle { color: #b9d4fa; font-size: 10.5px; letter-spacing: 3px; margin-top: 4px; font-weight: 700; }
.boot-quote { position: relative; z-index: 2; color: #c9e2ff; font-size: 12.5px; letter-spacing: 1.5px; text-align: right; line-height: 1.8; }
.boot-grid { display: grid; grid-template-columns: 1fr 1.05fr; }
.boot-panel { padding: 28px 32px; display: flex; flex-direction: column; }
.boot-create { background: linear-gradient(180deg, #fbfcfe, #f5f8fc); border-right: 1px solid var(--border); }
.boot-panel-title { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 800; margin-bottom: 14px; }
.boot-foot { padding: 13px; text-align: center; color: #97a3bc; font-size: 12px; letter-spacing: 3px; border-top: 1px solid var(--border); background: #fbfcfe; }
/* 账套列表 · 典雅卡片增强 + V9 固定行距防重叠版 (仅作用于启动大厅账套列表)
   核心：flex-shrink:0 账套再多也不被压缩重叠；margin 清零交由容器 gap 统一 12px 固定行距；
   每卡 min-height 固定最小行高；名称/信息行省略号防撑爆换行 */
#bookListEl .bitem { position: relative; overflow: hidden; flex-shrink: 0; margin-bottom: 0; min-height: 68px; padding: 14px 16px 14px 18px; border: 1px solid #e3e9f4; border-radius: 14px; background: linear-gradient(135deg, #ffffff 0%, #f7f9fd 100%); box-shadow: 0 1px 2px rgba(16,27,58,0.04); display: flex; justify-content: space-between; align-items: center; gap: 10px; }
#bookListEl .bitem::before { content: '📘'; font-size: 19px; margin-right: 6px; align-self: center; filter: saturate(0.85); flex-shrink: 0; }
#bookListEl .bitem::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3.5px; background: linear-gradient(180deg, #3b82f6, #1d4ed8); opacity: 0; transition: opacity 0.2s; }
#bookListEl .bitem:hover { border-color: #b9cdf3; transform: translateY(-2px); box-shadow: 0 12px 26px -10px rgba(37,99,235,0.3); }
#bookListEl .bitem:hover::after { opacity: 1; }
#bookListEl .bitem > .f1 { min-width: 0; flex: 1; }
#bookListEl .bitem > .f1 > div:first-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#bookListEl .bitem .text-xs.flex-row { flex-wrap: nowrap; white-space: nowrap; overflow: hidden; }
#bookListEl .bitem .btn-text { flex-shrink: 0; }

/* ============ 工作台 · 典雅旗舰组件 V7 精工版 ============ */
.ws-hero { position: relative; overflow: hidden; border-radius: 18px; padding: 26px 32px; margin-bottom: 22px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; background: linear-gradient(120deg, #12377c 0%, #1b4fa8 60%, #103a82 100%); color: #f0f6ff; box-shadow: 0 18px 44px -14px rgba(12,38,92,0.55); }
.ws-hero::before { content: ''; position: absolute; width: 380px; height: 380px; border-radius: 50%; background: rgba(125,211,252,0.30); filter: blur(70px); top: -170px; right: -70px; }
.ws-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2.5px; background: linear-gradient(90deg, transparent 4%, #56b4ff 24%, #bfeaff 50%, #56b4ff 76%, transparent 96%); }
.ws-hero-title { font-size: 22px; font-weight: 800; letter-spacing: 0.5px; color: #ffffff; margin-bottom: 6px; text-shadow: 0 2px 10px rgba(0,0,0,0.35); }
.ws-hero-sub { color: #aebfe8; font-size: 13.5px; line-height: 1.7; }
.ws-hero-sub b { color: #9fe0ff; font-weight: 700; }
.ws-hero-badge { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.ws-hero-period { padding: 8px 18px; border-radius: 999px; background: rgba(125,211,252,0.16); border: 1px solid rgba(168,230,255,0.55); color: #e0f4ff; font-weight: 800; font-size: 13.5px; letter-spacing: 1px; font-family: 'JetBrains Mono', Consolas, monospace; }
/* 工作台数据卡片 · V9 鎏金旗舰版：流光顶条 + 双辉光底面 + 景深悬浮 */
.ws-stat {
    position: relative; overflow: hidden; border-radius: 18px; padding: 24px 26px;
    background:
        radial-gradient(380px 130px at 88% -36px, rgba(59,130,246,0.07), transparent 70%),
        radial-gradient(300px 110px at -8% 112%, rgba(184,147,63,0.05), transparent 62%),
        linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
    border: 1px solid #e4ebf7;
    box-shadow: 0 1px 2px rgba(16,27,58,0.04), 0 10px 28px -16px rgba(16,27,58,0.14), inset 0 1px 0 #ffffff;
    transition: all 0.35s cubic-bezier(0.4,0,0.2,1);
}
.ws-stat:hover { transform: translateY(-6px); box-shadow: 0 2px 6px rgba(16,27,58,0.05), 0 26px 48px -20px rgba(16,27,58,0.26), inset 0 1px 0 #ffffff; border-color: #c9d8f0; }
.ws-stat::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
    background: var(--stat-grad, linear-gradient(90deg, #3b82f6, #1d4ed8));
    background-size: 200% 100%;
    animation: wsStatFlow 3.6s ease-in-out infinite;
    box-shadow: 0 2px 10px rgba(37,99,235,0.28);
}
@keyframes wsStatFlow { 0%, 100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }
.ws-stat::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 64px; background: radial-gradient(440px 96px at 16% -42px, rgba(37,99,235,0.055), transparent 70%); pointer-events: none; }
.ws-stat-icon { width: 52px; height: 52px; border-radius: 15px; display: flex; align-items: center; justify-content: center; font-size: 25px; margin-bottom: 14px; background: #eef4ff; border: 1px solid rgba(100,140,220,0.14); box-shadow: inset 0 1px 0 rgba(255,255,255,0.85), 0 4px 10px -3px rgba(16,27,58,0.12); transition: transform 0.3s cubic-bezier(0.34,1.4,0.64,1); }
.ws-stat:hover .ws-stat-icon { transform: translateY(-2px) scale(1.08); }
.ws-stat-label { font-size: 13.5px; font-weight: 800; color: var(--text-main); display: flex; align-items: center; gap: 6px; letter-spacing: 0.4px; }
.ws-stat-en { font-size: 10.5px; color: #a8b3c9; font-weight: 700; letter-spacing: 1.6px; margin-top: 3px; }
.ws-stat-num { font-family: 'JetBrains Mono', Consolas, monospace; font-size: 30px; font-weight: 800; margin-top: 12px; letter-spacing: 0.5px; position: relative; z-index: 2; text-shadow: 0 1px 0 rgba(255,255,255,0.9), 0 6px 16px rgba(37,99,235,0.12); }
.ws-stat-deco { position: absolute; right: -14px; bottom: -18px; font-size: 74px; opacity: 0.07; transform: rotate(-12deg); pointer-events: none; transition: all 0.35s ease; }
.ws-stat:hover .ws-stat-deco { opacity: 0.14; transform: rotate(-8deg) scale(1.08); }

/* ============ 欢迎页 · 现代中式商务首屏 (深藏青 × 暖金 · 做账如流水 心中有丘壑) ============ */
.landing-full {
    position: relative; overflow: hidden;
    margin: -24px; min-height: calc(100% + 48px); box-sizing: border-box;
    padding: 40px 28px 132px;
    display: flex; flex-direction: column; justify-content: center;
    background:
        /* 顶端亮蓝与顶栏(#1c50ad)同色互融：自金字向上逐渐变亮，与顶栏一体无断层 */
        linear-gradient(180deg, rgba(28,80,173,0.98) 0%, rgba(24,66,148,0.88) 8%, rgba(20,53,120,0.62) 16%, rgba(17,44,100,0.32) 26%, rgba(15,38,88,0) 38%),
        radial-gradient(900px 480px at 78% -10%, rgba(125,211,252,0.30), transparent 60%),
        radial-gradient(700px 420px at 8% 108%, rgba(59,130,246,0.32), transparent 62%),
        radial-gradient(560px 340px at 50% 52%, rgba(96,165,250,0.22), transparent 72%),
        linear-gradient(160deg, #10336f 0%, #1c56c4 48%, #0e2f78 100%);
    color: #eef5ff;
}
.landing-full::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: radial-gradient(rgba(170,215,255,0.11) 1px, transparent 1.4px);
    background-size: 26px 26px;
    -webkit-mask-image: radial-gradient(ellipse 82% 72% at 50% 42%, #000 25%, transparent 78%);
    mask-image: radial-gradient(ellipse 82% 72% at 50% 42%, #000 25%, transparent 78%);
}
.landing-full::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px;
    background: linear-gradient(90deg, transparent 2%, rgba(201,168,106,0.65) 25%, #D4B47F 50%, rgba(201,168,106,0.65) 75%, transparent 98%);
    box-shadow: 0 -18px 60px rgba(201,168,106,0.18);
    pointer-events: none;
}
.landing-stars i { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #cfe7ff; opacity: 0.2; animation: landTwinkle 4s ease-in-out infinite; pointer-events: none; }
.landing-stars i:nth-child(1) { left: 8%;  top: 18%; animation-delay: 0s; }
.landing-stars i:nth-child(2) { left: 16%; top: 64%; animation-delay: .6s; width: 2px; height: 2px; }
.landing-stars i:nth-child(3) { left: 24%; top: 30%; animation-delay: 1.2s; }
.landing-stars i:nth-child(4) { left: 33%; top: 78%; animation-delay: .3s; width: 2px; height: 2px; }
.landing-stars i:nth-child(5) { left: 42%; top: 12%; animation-delay: 1.8s; }
.landing-stars i:nth-child(6) { left: 52%; top: 70%; animation-delay: .9s; }
.landing-stars i:nth-child(7) { left: 61%; top: 24%; animation-delay: 2.2s; width: 2px; height: 2px; }
.landing-stars i:nth-child(8) { left: 69%; top: 58%; animation-delay: 1.5s; }
.landing-stars i:nth-child(9) { left: 78%; top: 16%; animation-delay: .2s; }
.landing-stars i:nth-child(10) { left: 86%; top: 66%; animation-delay: 2.6s; width: 2px; height: 2px; }
.landing-stars i:nth-child(11) { left: 92%; top: 34%; animation-delay: 1.1s; }
.landing-stars i:nth-child(12) { left: 5%;  top: 44%; animation-delay: 2.9s; }
@keyframes landTwinkle { 0%, 100% { opacity: 0.12; transform: scale(1); } 50% { opacity: 0.85; transform: scale(1.7); } }
.landing-center { position: relative; z-index: 2; width: 100%; max-width: 1080px; margin: 0 auto 26px; text-align: center; }

/* ============ 首屏简约模式：未进入账套时顶栏隐去 返回工作台/切换账套/时钟/备份徽标 ============ */
body.no-book #tbHomeBtn,
body.no-book #tbBookBtn,
body.no-book #topClock,
body.no-book #topSyncBtn,
body.no-book #topSyncDivider { display: none !important; }
/* 首页顶栏与页面完全融为一体：删去底部分隔线与投影，顶栏底色与页面顶端(#1C50AD)同色无缝 */
body.no-book .topbar { border-bottom: none; box-shadow: none; background: linear-gradient(180deg, #1D52AF 0%, #1C50AD 100%); }

/* ============ 首屏主角 · 宋体大字 × 暖金点缀 (上轻-中稳-下轻) ============ */
/* 上层(轻)：定位语 + 两侧渐隐金线，把版面锚住 */
.hero-pos-row { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 36px; position: relative; z-index: 2; opacity: 0; animation: heroFadeUp 0.9s ease-out 0.1s forwards; }
.hero-gold-line { width: 72px; height: 1px; background: linear-gradient(90deg, transparent, rgba(201,168,106,0.85)); flex-shrink: 0; }
.hero-gold-line-r { background: linear-gradient(90deg, rgba(201,168,106,0.85), transparent); }
.hero-pos-text { font-size: 13px; font-weight: 500; color: #D4B47F; letter-spacing: 0.5em; padding-left: 0.5em; }
/* 中层(稳)：单行横排宋体大字，米白→暖金纵向渐变，字距撑出骨架 */
.hero-serif-wrap { position: relative; z-index: 2; }
.hero-serif-line {
    font-family: 'Noto Serif SC', 'Source Han Serif SC', 'SimSun', 'KaiTi', serif;
    font-size: clamp(30px, 6vw, 74px);
    font-weight: 600;
    line-height: 1.26;
    letter-spacing: 0.13em;
    padding-left: 0.13em; /* 字距补偿：抵消末字字距造成的视觉偏移 */
    background: linear-gradient(180deg, #FBF7EA 0%, #F5EEDC 36%, #E6CD95 70%, #D4B47F 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 4px 26px rgba(10,26,51,0.55));
    white-space: nowrap;
    opacity: 0;
    animation: heroFadeUp 0.9s ease-out 0.24s forwards;
}
/* 账务印记 · 借贷 T 型账户幽灵水印：不说自明的做账身份 */
.hero-taccount { position: absolute; top: -40px; left: 50%; transform: translateX(-50%); width: min(780px, 94%); height: 430px; pointer-events: none; z-index: 0; }
.hero-taccount::before {
    content: ''; position: absolute; top: 6px; left: 8%; right: 8%; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(201,168,106,0.30) 18%, rgba(201,168,106,0.38) 50%, rgba(201,168,106,0.30) 82%, transparent);
}
.hero-taccount::after {
    content: ''; position: absolute; top: 6px; bottom: 16%; left: 50%; width: 1px;
    background: linear-gradient(180deg, rgba(201,168,106,0.34), rgba(201,168,106,0.02));
}
.hero-taccount .ta-side {
    position: absolute; top: 28px; line-height: 1;
    font-family: 'Noto Serif SC', 'Source Han Serif SC', 'SimSun', 'KaiTi', serif;
    font-size: 148px; font-weight: 600; color: rgba(212,180,127,0.075);
}
.hero-taccount .ta-de { left: 12%; }
.hero-taccount .ta-cr { right: 12%; }
/* 账务印记 · 朱砂「账」印章：随标题行右侧钤印，中式账房点睛 */
.hero-seal {
    display: inline-flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; margin-left: 20px; letter-spacing: 0;
    border: 2px solid rgba(214,85,72,0.85); border-radius: 7px;
    font-family: 'Noto Serif SC', 'Source Han Serif SC', 'SimSun', 'KaiTi', serif;
    font-size: 25px; font-weight: 700;
    color: #E05C4E; -webkit-text-fill-color: #E05C4E;
    background: none;
    transform: translateY(-18px) rotate(7deg);
    box-shadow: inset 0 0 0 1.5px rgba(214,85,72,0.28), 0 3px 12px rgba(214,85,72,0.22);
}
/* 账务印记 · 金算珠分隔线：五珠静卧金梁，算盘意象 */
.hero-abacus { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 11px; margin: 26px auto 20px; opacity: 0; animation: heroFadeUp 0.8s ease-out 0.58s forwards; }
.hero-abacus .ab-line { width: 86px; height: 1px; background: linear-gradient(90deg, transparent, rgba(201,168,106,0.8)); }
.hero-abacus .ab-line-r { background: linear-gradient(90deg, rgba(201,168,106,0.8), transparent); }
.hero-abacus .bead { width: 7px; height: 7px; border-radius: 50%; background: radial-gradient(circle at 32% 28%, #EAD9AE 0%, #C9A86A 60%, #A98850 100%); box-shadow: 0 1px 5px rgba(201,168,106,0.45), inset 0 1px 0 rgba(255,255,255,0.4); }
.hero-abacus .bead:nth-child(4) { width: 9px; height: 9px; }
.hero-sub-copy {
    position: relative; z-index: 2;
    font-size: 14.5px; font-weight: 400; color: #A8B9D8; line-height: 1.95;
    letter-spacing: 0.06em; max-width: 560px; margin: 0 auto 32px;
    opacity: 0; animation: heroFadeUp 0.8s ease-out 0.70s forwards;
}
.hero-actions-row {
    display: flex; gap: 16px; justify-content: center; align-items: center; flex-wrap: wrap;
    position: relative; z-index: 2; opacity: 0; animation: heroFadeUp 0.8s ease-out 0.84s forwards;
}
@keyframes heroFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
/* 主按钮：暖金渐变 + 深墨字，金与墨的强号召对比 */
.hero-btn-gold {
    padding: 16px 48px; border: none; border-radius: 12px; cursor: pointer;
    font-size: 14.5px; font-weight: 700; letter-spacing: 0.12em;
    font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
    color: #1A2942;
    background: linear-gradient(175deg, #E2C48D 0%, #D4B47F 45%, #C9A86A 100%);
    box-shadow: 0 10px 28px -6px rgba(201,168,106,0.45), inset 0 1px 0 rgba(255,255,255,0.55);
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
}
.hero-btn-gold:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 14px 34px -6px rgba(201,168,106,0.55), inset 0 1px 0 rgba(255,255,255,0.6); }
.hero-btn-gold:active { transform: translateY(0) scale(0.98); }
/* 次按钮：描边玻璃态，主次分明 */
.hero-btn-ghost {
    padding: 15px 38px; border-radius: 12px; cursor: pointer;
    font-size: 14px; font-weight: 600; letter-spacing: 0.1em;
    font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
    color: #D5E1F5;
    background: rgba(255,255,255,0.06); border: 1px solid rgba(168,185,216,0.35);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
}
.hero-btn-ghost:hover { background: rgba(255,255,255,0.12); border-color: rgba(212,180,127,0.55); color: #F0E9DA; transform: translateY(-2px); }
/* ============ 最近账套 · 一键直达 (高效便捷的熟悉入口) ============ */
.recent-books { position: relative; z-index: 2; display: flex; justify-content: center; align-items: stretch; gap: 14px; flex-wrap: wrap; margin-top: 26px; opacity: 0; animation: heroFadeUp 0.8s ease-out 0.95s forwards; }
.recent-books-label { width: 100%; text-align: center; font-size: 11.5px; letter-spacing: 0.35em; padding-left: 0.35em; color: rgba(212,180,127,0.78); font-weight: 600; margin-bottom: -4px; }
.recent-book-chip {
    display: flex; align-items: center; gap: 12px; min-width: 220px; max-width: 300px; flex: 0 1 auto;
    padding: 12px 18px; border-radius: 14px; cursor: pointer; text-align: left;
    background: linear-gradient(155deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.05) 100%);
    border: 1px solid rgba(200,232,255,0.32);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 8px 22px -10px rgba(8,26,72,0.4), inset 0 1px 0 rgba(255,255,255,0.2);
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
}
.recent-book-chip:hover { transform: translateY(-3px); border-color: rgba(222,243,255,0.6); background: linear-gradient(155deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.1) 100%); box-shadow: 0 14px 30px -10px rgba(8,26,72,0.5), inset 0 1px 0 rgba(255,255,255,0.26); }
.recent-book-icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 19px; background: rgba(255,255,255,0.16); border: 1px solid rgba(200,232,255,0.3); flex-shrink: 0; }
.recent-book-info { flex: 1; min-width: 0; }
.recent-book-name { font-size: 14px; font-weight: 700; color: #f4f9ff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.recent-book-meta { font-size: 11.5px; color: #c6ddf7; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.recent-book-more {
    display: flex; align-items: center; justify-content: center; padding: 0 22px; border-radius: 14px;
    border: 1.5px dashed rgba(200,232,255,0.4); background: rgba(255,255,255,0.06);
    color: #c6ddf7; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
}
.recent-book-more:hover { color: #ffffff; border-color: rgba(222,243,255,0.65); background: rgba(255,255,255,0.12); transform: translateY(-3px); }
.landing-eyebrow {
    display: inline-flex; align-items: center; gap: 8px; padding: 8px 20px; border-radius: 999px;
    border: 1px solid rgba(168,230,255,0.55); background: rgba(90,178,255,0.14);
    color: #c6e6ff; font-size: 12.5px; letter-spacing: 3px; font-weight: 700;
    box-shadow: 0 0 24px rgba(56,158,255,0.22), inset 0 1px 0 rgba(255,255,255,0.1);
}
.landing-title-xl {
    font-size: clamp(46px, 7vw, 78px); font-weight: 800; color: #fff;
    letter-spacing: 12px; text-indent: 12px; line-height: 1.15;
    margin: 22px 0 12px;
    background: linear-gradient(180deg, #ffffff 15%, #b9e0ff 60%, #6cb8ff 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 10px 30px rgba(56,158,255,0.38));
}
.landing-desc { color: #c3d9f6; font-size: 15px; line-height: 1.9; max-width: 620px; margin: 0 auto 30px; }
.landing-actions { display: flex; gap: 16px; flex-wrap: wrap; position: relative; z-index: 2; }
.landing-btn-gold {
    padding: 16px 44px; border: none; border-radius: 14px; cursor: pointer;
    font-size: 16.5px; font-weight: 800; color: #ffffff; letter-spacing: 2px;
    font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
    text-shadow: 0 1px 3px rgba(0,55,120,0.45);
    background: linear-gradient(135deg, #5ad2ff 0%, #2e7cff 100%);
    box-shadow: 0 14px 38px -6px rgba(90,210,255,0.8), inset 0 1px 0 rgba(255,255,255,0.45);
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
}
.landing-btn-gold:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 18px 46px -6px rgba(90,210,255,0.9), inset 0 1px 0 rgba(255,255,255,0.45); }
.landing-btn-gold:active { transform: translateY(0) scale(0.98); }
.landing-btn-ghost {
    padding: 15px 34px; border-radius: 14px; cursor: pointer; font-size: 15px; font-weight: 700;
    color: #f0f9ff; letter-spacing: 1px; font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
    background: rgba(255,255,255,0.15); border: 1px solid rgba(200,232,255,0.62);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    transition: all 0.25s;
}
.landing-btn-ghost:hover { background: rgba(255,255,255,0.26); border-color: rgba(224,244,255,0.85); color: #ffffff; transform: translateY(-2px); }
.landing-chart { width: 100%; max-width: 760px; height: 110px; margin: 30px auto 4px; display: block; opacity: 0.9; }
.lc-draw { stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: lcDraw 2.6s cubic-bezier(0.4,0,0.2,1) 0.3s forwards; }
@keyframes lcDraw { to { stroke-dashoffset: 0; } }
.lc-dot { animation: lcPulse 2.2s ease-in-out infinite; }
@keyframes lcPulse { 0%, 100% { opacity: 0.45; } 50% { opacity: 1; } }
/* 欢迎页功能便签 · 八卡单行通栏版 (与上方工作台快捷操作导航容器同宽对齐) */
.landing-features { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 16px; width: 100%; margin: 30px 0 0; }
.lf-card {
    position: relative; overflow: hidden; border-radius: 14px; padding: 20px 16px 18px;
    background: linear-gradient(160deg, rgba(255,255,255,0.14) 0%, rgba(18,52,120,0.42) 100%);
    border: 1px solid rgba(190,226,255,0.32);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 10px 30px -14px rgba(8,26,72,0.55), inset 0 1px 0 rgba(255,255,255,0.12);
    transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
    display: flex; flex-direction: column;
}
.lf-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2.5px; background: linear-gradient(90deg, #5ad2ff, #bfeaff); opacity: 0; transition: opacity 0.25s; }
.lf-card:hover { transform: translateY(-4px); border-color: rgba(214,240,255,0.6); box-shadow: 0 18px 40px -14px rgba(59,130,246,0.6), inset 0 1px 0 rgba(255,255,255,0.16); }
.lf-card:hover::before { opacity: 1; }
.lf-icon { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; margin-bottom: 11px; background: rgba(125,211,252,0.18); border: 1px solid rgba(180,225,255,0.35); box-shadow: 0 0 18px rgba(56,158,255,0.2); flex-shrink: 0; }
.lf-title { font-size: 13.5px; font-weight: 800; color: #f4f9ff; margin-bottom: 5px; letter-spacing: 0.2px; line-height: 1.5; }
.lf-desc { font-size: 11.5px; color: #c6ddf7; line-height: 1.65; }

/* ============ 欢迎页前置标签 & 内嵌快捷操作导航 (亮蓝适配) ============ */
.landing-tag {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 20px; border-radius: 999px;
    background: linear-gradient(135deg, rgba(125,211,252,0.24), rgba(59,130,246,0.22));
    border: 1px solid rgba(168,230,255,0.55); color: #eaf6ff;
    font-weight: 800; font-size: 13.5px; letter-spacing: 1.5px;
    box-shadow: 0 0 22px rgba(56,158,255,0.3), inset 0 1px 0 rgba(255,255,255,0.15);
}
.landing-qa-anchor { width: 100%; margin: 24px 0 0; position: relative; z-index: 2; }
.landing-full .ws-quick-card { flex: 1 1 130px; width: auto; min-width: 116px; }
.landing-full #ws-quick-action-section { background: rgba(255,255,255,0.08); border: 1px solid rgba(185,222,255,0.28); box-shadow: 0 14px 34px -16px rgba(8,26,72,0.5); }
.landing-full .ws-qa-title { color: #eaf5ff; }
.landing-full .ws-qa-line { background: linear-gradient(90deg, rgba(125,211,252,0.8), transparent); }
.landing-full .ws-quick-card { background: linear-gradient(155deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.06) 100%); border: 1px solid rgba(200,232,255,0.35); box-shadow: 0 8px 24px -10px rgba(8,26,72,0.45), inset 0 1px 0 rgba(255,255,255,0.22); }
.landing-full .ws-quick-card:hover { background: linear-gradient(155deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.12) 100%); border-color: rgba(222,243,255,0.6); box-shadow: 0 16px 36px -10px rgba(8,26,72,0.55), inset 0 1px 0 rgba(255,255,255,0.3); }
.landing-full .ws-quick-card.ws-qa-more { border: 1.5px dashed rgba(200,232,255,0.5); background: rgba(255,255,255,0.08); }
.landing-full .ws-qa-label { color: #f4f9ff; }
.landing-full .ws-qa-desc { color: #c6ddf7; }
.landing-full .ws-qa-icon-wrap { background: rgba(255,255,255,0.18) !important; }

/* ============ 进账套工作台 · 快捷操作导航 (与欢迎页深蓝鎏金玻璃版完全一致) ============
   仅命中 pageEl 直接子级的锚点 (欢迎页版本在 .landing-full 内，互不干扰)；
   面板自带深蓝夜幕渐变与双侧辉光，卡片复用欢迎页同款半透流光玻璃样式 */
#pageEl > #ws-quick-action-anchor #ws-quick-action-section {
    position: relative;
    background:
        radial-gradient(560px 220px at 10% -30%, rgba(125,211,252,0.26), transparent 62%),
        radial-gradient(480px 200px at 96% 130%, rgba(59,130,246,0.30), transparent 60%),
        linear-gradient(165deg, #10336f 0%, #1a52bd 52%, #0e2f78 100%);
    border: 1px solid rgba(185,222,255,0.30);
    box-shadow: 0 18px 42px -16px rgba(8,26,72,0.55), 0 4px 12px -4px rgba(12,38,92,0.25), inset 0 1px 0 rgba(255,255,255,0.10);
}
#pageEl > #ws-quick-action-anchor #ws-quick-action-section::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2.5px;
    background: linear-gradient(90deg, transparent 3%, #56b4ff 22%, #bfeaff 50%, #56b4ff 78%, transparent 97%);
    pointer-events: none;
}
#pageEl > #ws-quick-action-anchor .ws-qa-title { color: #eaf5ff; text-shadow: 0 1px 3px rgba(0,25,70,0.35); }
#pageEl > #ws-quick-action-anchor .ws-qa-line { background: linear-gradient(90deg, rgba(125,211,252,0.8), transparent); }
#pageEl > #ws-quick-action-anchor .ws-quick-card { background: linear-gradient(155deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.06) 100%); border: 1px solid rgba(200,232,255,0.35); box-shadow: 0 8px 24px -10px rgba(8,26,72,0.45), inset 0 1px 0 rgba(255,255,255,0.22); }
#pageEl > #ws-quick-action-anchor .ws-quick-card:hover { background: linear-gradient(155deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.12) 100%); border-color: rgba(222,243,255,0.6); box-shadow: 0 16px 36px -10px rgba(8,26,72,0.55), inset 0 1px 0 rgba(255,255,255,0.3); }
#pageEl > #ws-quick-action-anchor .ws-quick-card.ws-qa-more { border: 1.5px dashed rgba(200,232,255,0.5); background: rgba(255,255,255,0.08); }
#pageEl > #ws-quick-action-anchor .ws-qa-label { color: #f4f9ff; }
#pageEl > #ws-quick-action-anchor .ws-qa-desc { color: #c6ddf7; }
#pageEl > #ws-quick-action-anchor .ws-qa-icon-wrap { background: rgba(255,255,255,0.18) !important; }

/* ============ 进账套工作台 · 冰蓝云阶版 (dash-night) ============
   基底由平白改为上冷下净的冰蓝色阶：顶部与深蓝顶栏平滑握手，
   白色数据卡/导航/趋势图在微冷的画布上自然浮起，层次细腻清晰 */
.dash-night {
    position: relative; overflow: hidden;
    margin: -24px; min-height: calc(100% + 48px); box-sizing: border-box;
    padding: 10px 28px 34px;
    display: flex; flex-direction: column; justify-content: flex-start;
    background:
        /* 顶栏衔接：一道淡宝蓝自顶渐入，消解深蓝顶栏到浅色的生硬跳变 */
        linear-gradient(180deg, rgba(59,110,200,0.10) 0%, rgba(59,110,200,0.03) 12%, rgba(59,110,200,0) 26%),
        /* 冰蓝光晕：右上宝蓝、左下香槟金，极度克制 */
        radial-gradient(1000px 420px at 88% -8%, rgba(59,130,246,0.08), transparent 60%),
        radial-gradient(800px 400px at -6% 110%, rgba(184,147,63,0.06), transparent 58%),
        /* 冰蓝云阶基底：上冷下净，白卡浮起 */
        linear-gradient(180deg, #edf3fa 0%, #f1f5fb 42%, #f8fafd 100%);
}
.dash-night .ws-welcome-xl { border: 1px solid rgba(185,222,255,0.30); }

/* ============ 工作台 · 旗舰欢迎横幅 V8 细腻雅致版 ============ */
.ws-welcome-xl {
    position: relative; overflow: hidden; border-radius: 20px; padding: 34px 40px 30px; margin-bottom: 22px;
    display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
    background:
        radial-gradient(620px 320px at 88% -28%, rgba(147,214,255,0.38), transparent 62%),
        radial-gradient(500px 300px at 0% 128%, rgba(72,143,255,0.36), transparent 62%),
        radial-gradient(340px 220px at 46% 54%, rgba(110,175,255,0.12), transparent 72%),
        linear-gradient(150deg, #13408e 0%, #1e5bcc 50%, #10388e 100%);
    color: #eef5ff;
    box-shadow: 0 22px 54px -18px rgba(12,38,92,0.58), 0 0 0 1px rgba(147,214,255,0.14), inset 0 1px 0 rgba(255,255,255,0.10);
}
.ws-welcome-xl::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: radial-gradient(rgba(178,222,255,0.17) 1px, transparent 1.4px); background-size: 24px 24px;
    -webkit-mask-image: radial-gradient(ellipse 90% 90% at 30% 40%, #000 20%, transparent 80%);
    mask-image: radial-gradient(ellipse 90% 90% at 30% 40%, #000 20%, transparent 80%);
}
.ws-welcome-xl::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2.5px;
    background: linear-gradient(90deg, transparent 2%, #6bc1ff 28%, #cdeaff 50%, #6bc1ff 72%, transparent 98%);
    opacity: 0.95;
}
.wsxl-title {
    font-size: clamp(28px, 3.5vw, 42px); font-weight: 800; color: #fff;
    letter-spacing: 8px; text-indent: 8px; line-height: 1.2; margin: 0 0 9px;
    background: linear-gradient(180deg, #ffffff 12%, #cde9ff 58%, #8fccff 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 8px 24px rgba(56,158,255,0.4));
}
.wsxl-sub { color: #cfe0f8; font-size: 14px; line-height: 1.85; letter-spacing: 0.4px; }
/* V8：账套公司名称重点提亮 —— 亮青白 + 柔和辉光，成为横幅第二视觉焦点 */
.wsxl-sub b { color: #c9ecff; font-weight: 800; letter-spacing: 0.6px; text-shadow: 0 0 16px rgba(125,211,252,0.65), 0 0 4px rgba(224,244,255,0.4); }
.wsxl-right { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.wsxl-period {
    padding: 9px 20px; border-radius: 999px;
    background: linear-gradient(135deg, rgba(147,214,255,0.22), rgba(72,143,255,0.24));
    border: 1px solid rgba(178,229,255,0.62); color: #e8f6ff;
    font-weight: 800; font-size: 13.5px; letter-spacing: 1px; font-family: 'JetBrains Mono', Consolas, monospace;
    box-shadow: 0 0 18px rgba(56,158,255,0.22), inset 0 1px 0 rgba(255,255,255,0.14);
}
.wsxl-status { font-size: 12px; color: #bdd6f5; letter-spacing: 1px; }

/* 原版级别无损全黑打印视图 (保持原样) */
@media print{
    body *{visibility:hidden} #printArea,#printArea *{visibility:visible}
    #printArea{position:absolute;left:0;top:0;width:100%;background:#fff;padding:20px;color:#000;}
    .btn,.no-print{display:none!important} .rep-tbl,.tbl,.ptbl{border-collapse:collapse!important;min-width:100%!important;}
    .rep-tbl{border:2px solid #000!important;} .rep-tbl th,.rep-tbl td,.tbl th,.tbl td,.ptbl th,.ptbl td{border:1px solid #000!important;color:#000!important;padding:4px 6px!important;}
    .rep-tbl thead th,.tbl thead th,.ptbl thead th{background:transparent!important;border-bottom:2px solid #000!important;} @page{margin:10mm}
}
#printArea{display:none} body.printing #printArea{display:block} .ptbl{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:13px;color:#000;} .ptbl th,.ptbl td{border:1px solid #000;padding:8px;} .ptbl th{text-align:center;font-weight:bold;background:#f8fafc;}

/* =========================================================
   侧边栏响应式迷你模式 (仅显示彩色图像图标，逻辑保持不变)
   ========================================================= */
.sidebar.mini {
    width: 70px !important;
    min-width: 70px !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.sidebar.mini .logo-text,
.sidebar.mini .book-bar,
.sidebar.mini .menu-group,
.sidebar.mini .menu-text,
.sidebar.mini .exit-btn-text {
    display: none !important;
}
.sidebar.mini .logo {
    font-size: 24px;
    padding: 16px 0;
    justify-content: center;
}
.sidebar.mini .menu-area {
    padding: 16px 8px;
    min-width: auto;
}
.sidebar.mini .menu-item {
    justify-content: center;
    padding: 12px 0;
    margin-bottom: 12px;
}
.sidebar.mini .menu-icon {
    margin-right: 0 !important;
    font-size: 24px !important;
    transition: transform 0.2s;
}
.sidebar.mini .menu-item:hover .menu-icon {
    transform: scale(1.15);
}
.sidebar.mini .menu-item.active::before { display: none; }
.sidebar.mini #exitArea {
    padding: 16px 8px !important;
    min-width: auto !important;
}
.sidebar.mini #exitArea button {
    padding: 12px 0;
    justify-content: center;
}

/* =========================================================
   财务报表专属：强制保留项目名称的层级缩进空格
   ========================================================= */
#repTblMaster td:first-child,
.ptbl td:first-child {
    white-space: pre-wrap !important;
    word-break: break-all;
}

/* =========================================================
   工作台快捷操作 & 底部卡片矩阵 (iPad & 手机端响应式适配)
   ========================================================= */
@media (max-width: 1024px) {
    .ws-qa-grid { grid-template-columns: repeat(4, 1fr) !important; gap: 12px !important; }
    .grid-4 { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }
    /* 欢迎页八便签：中屏降级为 4 列两行，保证卡片文字不挤压 */
    .landing-features { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    #ws-welcome-box h2 { font-size: 20px !important; }
    .ws-hero { padding: 22px 20px; }
    .ws-hero-title { font-size: 18px; }
    #ws-quick-action-section { padding: 16px 12px !important; margin-bottom: 16px !important; }
    .ws-qa-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
    .ws-quick-card { padding: 12px 8px !important; min-height: 70px !important; }
    .ws-qa-icon-wrap { width: 32px !important; height: 32px !important; font-size: 16px !important; margin-bottom: 6px !important; }
    .ws-qa-label { font-size: 13px !important; }
    .ws-qa-desc { display: none !important; }
    .grid-4 { grid-template-columns: 1fr !important; gap: 12px !important; }
    .ws-more-popup {
        position: fixed !important;
        top: 50% !important;
        left: 5% !important;
        width: 90% !important;
        transform: translateY(-50%) !important;
        max-height: 80vh !important;
        overflow-y: auto !important;
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.1) !important;
    }
    .ws-more-popup-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .landing-full { padding: 28px 16px 84px; }
    .dash-night { padding: 8px 14px 26px; }
    /* 首屏中式商务版 · 窄屏适配：单行大字按宽度自适应收缩、金线缩短、按钮上下堆叠 */
    .hero-serif-line { font-size: min(6.5vw, 24px); letter-spacing: 0.15em; padding-left: 0.15em; }
    .hero-taccount, .hero-seal { display: none; }
    .hero-abacus .ab-line { width: 44px; }
    .recent-books { gap: 10px; margin-top: 22px; }
    .recent-book-chip { width: 100%; max-width: none; min-width: 0; }
    .recent-book-more { width: 100%; padding: 12px 0; }
    .hero-pos-text { font-size: 11.5px; letter-spacing: 0.35em; padding-left: 0.35em; }
    .hero-gold-line { width: 40px; }
    .hero-pos-row { gap: 12px; margin-bottom: 28px; }
    .hero-gold-divider { margin: 22px auto 18px; }
    .hero-sub-copy { font-size: 13px; max-width: 84%; }
    .hero-actions-row { flex-direction: column; align-items: stretch; width: 78%; margin: 0 auto; }
    .hero-btn-gold, .hero-btn-ghost { width: 100%; padding: 14px 20px; }
    .landing-title-xl { font-size: 40px; letter-spacing: 6px; text-indent: 6px; }
    .ws-welcome-xl { padding: 22px 20px; }
    .wsxl-title { font-size: 28px; letter-spacing: 4px; text-indent: 4px; }
    .wsxl-right { align-items: flex-start; }
    .landing-chart { display: none; }
    .landing-features { grid-template-columns: repeat(2, 1fr); }
    .boot-grid { grid-template-columns: 1fr; }
    .boot-create { border-right: none; border-bottom: 1px solid var(--border); }
}

/* =========================================================================
   圆形图标按钮 (填制凭证：翻页 ◀▶ / 行内 ➖➕)，强制零内边距保持正圆
   ========================================================================= */
.btn.icon-btn { padding: 0 !important; border-radius: 50% !important; flex-shrink: 0; }
.btn.text-xs.btn-text.icon-btn { padding: 0 !important; }
.btn.icon-btn:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(0.97); }

/* =========================================================================
   V8 · 顶栏精工工具按钮 · 细腻融入版（buildTopBtns / 分页翻页钮共用）
   白瓷云感面 + 半透柔边，与页面底板浑然一体；主操作宝蓝柔光变体
   ========================================================================= */
.tbtn {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    padding: 8px 16px; border-radius: 10px; cursor: pointer;
    font-size: 13px; font-weight: 700; letter-spacing: 0.3px; white-space: nowrap;
    font-family: "Microsoft YaHei", "微软雅黑", sans-serif !important;
    color: #3a4864;
    background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
    border: 1px solid rgba(100,128,180,0.24);
    box-shadow: 0 1px 2px rgba(16,27,58,0.045), inset 0 1px 0 #ffffff;
    transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
    -webkit-tap-highlight-color: transparent;
}
.tbtn:hover:not(:disabled) {
    background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%);
    border-color: rgba(59,130,246,0.42); color: #1d4ed8;
    box-shadow: 0 2px 4px rgba(16,27,58,0.04), 0 5px 14px -6px rgba(37,99,235,0.32), inset 0 1px 0 #ffffff;
    transform: translateY(-1px);
}
.tbtn:active:not(:disabled) { transform: translateY(0) scale(0.97); }
.tbtn:disabled { opacity: 0.45; cursor: not-allowed; }
/* 主操作变体：宝蓝柔光白字 */
.tbtn.tbtn-p {
    background: linear-gradient(175deg, #4183f5 0%, #2a63e8 55%, #2158da 100%);
    color: #fff; text-shadow: 0 1px 1.5px rgba(10,32,84,0.42);
    border-color: transparent;
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 3px 10px -3px rgba(37,99,235,0.45), inset 0 1px 0 rgba(255,255,255,0.30);
}
.tbtn.tbtn-p:hover:not(:disabled) {
    background: linear-gradient(175deg, #5090f8 0%, #316ef0 55%, #2560e0 100%);
    border-color: transparent; color: #fff;
    box-shadow: 0 1px 2px rgba(16,27,58,0.08), 0 7px 18px -5px rgba(37,99,235,0.55), inset 0 1px 0 rgba(255,255,255,0.34);
}
/* 危险变体：绯红柔调白瓷面 */
.tbtn.tbtn-danger { color: #c22a2a; border-color: rgba(220,38,38,0.24); }
.tbtn.tbtn-danger:hover:not(:disabled) { color: #b91c1c; border-color: rgba(220,38,38,0.42); background: linear-gradient(180deg, #ffffff 0%, #fdf0f0 100%); box-shadow: 0 2px 4px rgba(16,27,58,0.04), 0 5px 14px -6px rgba(220,38,38,0.3), inset 0 1px 0 #ffffff; }

/* =========================================================================
   V9 · 工作台趋势图旗舰精工组件（配合 pgDashboard 渲染）
   双辉光云瓷底面 + 金属渐变基座 + 柱体弹性生长入场动画
   ========================================================================= */
.ws-chart-shell {
    position: relative; overflow: hidden; border-radius: 18px;
    background:
        radial-gradient(640px 220px at 92% -44px, rgba(59,130,246,0.075), transparent 65%),
        radial-gradient(420px 170px at -4% 114%, rgba(184,147,63,0.055), transparent 60%),
        linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    border: 1px solid rgba(100,128,180,0.16);
    box-shadow: 0 1px 2px rgba(16,27,58,0.035), 0 12px 32px -20px rgba(16,27,58,0.16), inset 0 1px 0 #ffffff;
}
.ws-chart-title { display: flex; align-items: center; gap: 10px; font-size: 16.5px; font-weight: 800; color: var(--text-main); letter-spacing: 0.5px; }
.ws-chart-title::before { content: ''; width: 4px; height: 17px; border-radius: 2px; background: linear-gradient(180deg, #3b82f6, #1d4ed8); box-shadow: 0 2px 6px rgba(37,99,235,0.35); }
.ws-chart-gridline { position: absolute; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, #e4ebf7 8%, #e4ebf7 92%, transparent); pointer-events: none; }
.ws-bar-base {
    position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
    background: linear-gradient(90deg, transparent 3%, #d5dfef 18%, #b9c9e4 50%, #d5dfef 82%, transparent 97%);
    box-shadow: 0 2px 8px rgba(16,27,58,0.08);
    pointer-events: none;
}
/* 柱体 · 弹性生长入场 (fill-mode backwards：动画结束后交还控制权，不干扰悬浮动效) */
.bar-cylinder { transform-origin: bottom; animation: wsBarRise 0.75s cubic-bezier(0.34,1.4,0.64,1) backwards; filter: drop-shadow(0 14px 18px rgba(16,27,58,0.16)); }
@keyframes wsBarRise { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.bar-chart-col:nth-child(1) .bar-cylinder { animation-delay: 0.10s; }
.bar-chart-col:nth-child(2) .bar-cylinder { animation-delay: 0.22s; }
.bar-chart-col:nth-child(3) .bar-cylinder { animation-delay: 0.34s; }
.bar-chart-col:nth-child(4) .bar-cylinder { animation-delay: 0.46s; }
.bar-value-badge { animation: wsBadgeIn 0.5s ease-out backwards; animation-delay: 0.62s; }
@keyframes wsBadgeIn { from { opacity: 0; transform: translateY(-10px) scale(0.9); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* =========================================================================
   侧边栏瞬时唤出：点「☰ 全部」切换时不做宽度过渡（拖拽调整宽度仍保留平滑）
   ========================================================================= */
.sidebar.no-anim { transition: none !important; }
