html, body { min-height: 100%; background: #0a0e14; } /** * 全站主题:深色宇宙底、深色卡片、青紫渐变主按钮 */ :root { --lux-font: 'Inter', 'Segoe UI', system-ui, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif; --lux-page-bg: #0a0e14; --lux-text-strong: #e2e8f0; --lux-text-muted: #94a3b8; --lux-cyan: #38bdf8; --lux-indigo: #6366f1; --lux-violet: #7c3aed; --lux-card-bg: #1e293b; --lux-card-border: rgba(148, 163, 184, 0.12); --lux-glass-sidebar: rgba(15, 23, 42, 0.6); --lux-glass-header: rgba(30, 41, 59, 0.8); --lux-input-bg: #0f172a; } .lux-shell { font-family: var(--lux-font); position: relative; min-height: 100vh; height: 100vh; overflow: hidden; color: var(--lux-text-strong); background: radial-gradient(ellipse 120% 90% at 50% -15%, #1a2840 0%, #0d1117 48%, #0a0e14 100%); } .lux-shell-bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; } .lux-orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.34; } .lux-orb-1 { width: min(52vw, 400px); height: min(52vw, 400px); background: #22d3ee; top: -12%; left: -8%; } .lux-orb-2 { width: min(48vw, 360px); height: min(48vw, 360px); background: #a78bfa; top: 40%; right: -12%; opacity: 0.28; } .lux-orb-3 { width: min(42vw, 320px); height: min(42vw, 320px); background: #38bdf8; bottom: -8%; left: 20%; opacity: 0.22; } .lux-shell-body { position: relative; z-index: 1; height: 100%; background: transparent !important; } .lux-shell-body > .el-container { height: 100%; } /* —— 侧栏玻璃 —— */ .lux-shell .sidebar-glass { position: relative; width: 220px !important; height: 100%; display: flex; flex-direction: column; overflow: hidden; background: var(--lux-glass-sidebar) !important; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border-right: 1px solid rgba(255, 255, 255, 0.08); box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.04); } .lux-shell .sidebar-logo { height: 60px; display: flex; align-items: center; justify-content: center; padding: 0 12px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, transparent 100%); border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .lux-shell .sidebar-logo h2 { margin: 0; font-size: 16px; font-weight: 700; letter-spacing: 0.02em; text-align: center; line-height: 1.35; color: #f1f5f9; text-shadow: 0 0 24px rgba(56, 189, 248, 0.25); } .lux-shell .lux-menu.el-menu { flex: 1; min-height: 0; overflow-y: auto; border-right: none !important; background: transparent !important; padding: 8px 6px 16px; } .lux-shell .lux-menu .el-sub-menu__title { border-radius: 10px; margin: 2px 0; color: #cbd5e1 !important; } .lux-shell .lux-menu .el-sub-menu__title:hover { background: rgba(255, 255, 255, 0.06) !important; } .lux-shell .lux-menu .el-menu-item { border-radius: 10px; margin: 3px 4px; color: #cbd5e1 !important; } .lux-shell .lux-menu .el-menu-item:hover { background: rgba(255, 255, 255, 0.07) !important; color: #e2e8f0 !important; } .lux-shell .lux-menu .el-menu-item.is-active { color: #e0f2fe !important; background: linear-gradient( 90deg, rgba(56, 189, 248, 0.22), rgba(99, 102, 241, 0.14) ) !important; box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.25) inset; } .lux-shell .lux-menu .el-icon { color: inherit; } /* —— 顶栏(深色玻璃底) —— */ .lux-shell .lux-header { height: 44px !important; min-height: 44px !important; display: flex; align-items: center; justify-content: flex-end; padding: 0 14px !important; margin: 8px 16px 0 8px; border-radius: 10px; background: rgba(30, 41, 59, 0.75) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(148, 163, 184, 0.12) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); } .lux-shell .lux-header-power-btn { width: 34px !important; height: 34px !important; padding: 0 !important; box-shadow: 0 4px 12px rgba(56, 189, 248, 0.22) !important; } .lux-shell .lux-header-power-btn .el-icon { margin: 0; } .lux-shell .lux-header-power-btn:hover, .lux-shell .lux-header-power-btn:focus { box-shadow: 0 6px 16px rgba(56, 189, 248, 0.3) !important; } /* —— 主内容区 —— */ .lux-shell .lux-main { background: transparent !important; padding: 12px 16px 24px 12px !important; overflow: auto; flex: 1; min-height: 0; } .lux-shell .lux-footer { flex-shrink: 0; height: auto !important; padding: 10px 16px 14px !important; margin: 0 16px 12px 8px; display: flex; align-items: center; justify-content: center; background: rgba(15, 23, 42, 0.35) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 12px; border: none !important; box-shadow: none; } .lux-shell .lux-footer-copy { font-size: 12px; color: rgba(203, 213, 225, 0.85); letter-spacing: 0.03em; user-select: none; } .lux-shell .card-header .title { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; color: #e2e8f0; } .lux-shell .brand-not-in-db-tip { color: #f59e0b; } /* —— 卡片 / 表格(深色风格) —— */ .lux-shell .el-card { border-radius: 16px !important; background: #1e293b !important; border: 1px solid rgba(148, 163, 184, 0.12) !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 14px 32px -10px rgba(0, 0, 0, 0.3) !important; color: #e2e8f0; } .lux-shell .el-card__header { border-bottom: 1px solid rgba(148, 163, 184, 0.12) !important; font-weight: 600; color: #e2e8f0; } /* 列表页顶部筛选栏:压低整体高度 */ .lux-shell .el-card.search-card { margin-bottom: 14px !important; } .lux-shell .el-card.search-card .el-card__body { padding: 8px 14px 10px !important; } .lux-shell .search-form.el-form--inline .el-form-item { margin-bottom: 4px; margin-top: 0; } .lux-shell .el-table { --el-table-border-color: rgba(148, 163, 184, 0.1); --el-table-header-bg-color: #0f172a; --el-table-row-hover-bg-color: rgba(56, 189, 248, 0.08); --el-table-bg-color: #1e293b; --el-table-tr-bg-color: #1e293b; --el-table-header-text-color: #cbd5e1; --el-table-text-color: #cbd5e1; color: #e2e8f0; border-radius: 12px; overflow: hidden; } .lux-shell .el-table th.el-table__cell { font-weight: 600; color: #94a3b8; background: #0f172a !important; } .lux-shell .el-pagination { --el-pagination-font-size: 13px; --el-pagination-button-color: #94a3b8; --el-pagination-hover-color: var(--lux-cyan); --el-pagination-bg-color: transparent; } .lux-shell .el-pagination .el-pager li { color: #94a3b8; } .lux-shell .el-pagination .el-pager li.is-active { color: #fff !important; background: #38bdf8 !important; border-radius: 8px; } /* 主按钮 */ .lux-shell .el-button--primary { --el-button-bg-color: transparent; --el-button-border-color: transparent; background: #38bdf8 !important; border: none !important; box-shadow: 0 4px 12px rgba(56, 189, 248, 0.25); } .lux-shell .el-button--primary:hover, .lux-shell .el-button--primary:focus { background: #22d3ee !important; box-shadow: 0 6px 16px rgba(56, 189, 248, 0.3); } .lux-shell .el-button--primary.is-plain { background: rgba(56, 189, 248, 0.15) !important; color: #7dd3fc !important; border: 1px solid rgba(56, 189, 248, 0.35) !important; box-shadow: none; } .lux-shell .el-button--primary.is-plain:hover { filter: none; background: rgba(56, 189, 248, 0.2) !important; } .lux-shell .el-button--warning { box-shadow: 0 4px 14px rgba(245, 158, 11, 0.25); } .lux-shell .el-button--danger { box-shadow: 0 4px 14px rgba(239, 68, 68, 0.2); } /* 输入框(深色风格) */ .lux-shell .el-input__wrapper { border-radius: 10px; background-color: #0f172a !important; box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.15) inset !important; } .lux-shell .el-input__wrapper.is-focus { box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.45) inset, 0 0 0 3px rgba(56, 189, 248, 0.15) !important; } .lux-shell .el-input__inner { color: #e2e8f0 !important; } .lux-shell .el-input__inner::placeholder { color: #64748b !important; } .lux-shell .el-select .el-select__wrapper { border-radius: 10px; background-color: #0f172a !important; } /* 标签 */ .lux-shell .el-tag { border-radius: 8px; } /* 对话框(Teleport 到 body,不用 .lux-shell 前缀,深色风格) */ .el-overlay .el-dialog { border-radius: 18px; overflow: hidden; background: #1e293b !important; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(148, 163, 184, 0.1) inset; } .el-overlay .el-dialog__header { border-bottom: 1px solid rgba(148, 163, 184, 0.12); font-weight: 700; color: #e2e8f0; } .el-overlay .el-dialog__title { color: #e2e8f0; } .el-overlay .el-dialog__body { color: #cbd5e1; } /* 表单标签深色 */ .lux-shell .el-form-item__label { color: #94a3b8 !important; } /* 下拉菜单深色 */ .lux-shell .el-dropdown-menu { background: #1e293b !important; border-color: rgba(148, 163, 184, 0.12) !important; } /* 消息框深色 */ .el-message-box { background: #1e293b !important; border-color: rgba(148, 163, 184, 0.12) !important; }