/**
 * XXTouch Glassmorphism Theme — 大气简约·毛玻璃
 * 覆盖 modern-style-system.css + neo-admin-theme.css
 */

/* ===== 设计令牌 ===== */
:root {
  --gl-bg: #060a14;
  --gl-surface: rgba(255,255,255,0.035);
  --gl-surface-2: rgba(255,255,255,0.06);
  --gl-border: rgba(255,255,255,0.07);
  --gl-border-active: rgba(129,140,248,0.35);
  --gl-text: rgba(255,255,255,0.92);
  --gl-text-2: rgba(255,255,255,0.58);
  --gl-text-3: rgba(255,255,255,0.35);
  --gl-accent: #818cf8;
  --gl-accent-rgb: 129, 140, 248;
  --gl-accent-dim: rgba(var(--gl-accent-rgb), 0.14);
  --gl-green: #34d399;
  --gl-yellow: #fbbf24;
  --gl-red: #f87171;
  --gl-blue: #60a5fa;
  --gl-blur: blur(22px);
  --gl-blur-heavy: blur(44px);
  --gl-shadow: 0 8px 32px rgba(0,0,0,0.28);
  --gl-shadow-sm: 0 4px 16px rgba(0,0,0,0.18);
  --gl-radius: 14px;
  --gl-radius-lg: 18px;
  --gl-radius-xl: 22px;
  --gl-ease: cubic-bezier(.4,0,.2,1);
  --gl-pad: clamp(16px,2.4vw,32px);
  --gl-gap: clamp(14px,1.8vw,22px);

  /* 映射到基础系统变量 */
  --bg-primary: transparent;
  --bg-secondary: transparent;
  --bg-tertiary: transparent;
  --text-primary: var(--gl-text);
  --text-secondary: var(--gl-text-2);
  --text-tertiary: var(--gl-text-3);
  --border-color: var(--gl-border);
  --primary-color: var(--gl-accent);
}

/* ===== 浅色模式 ===== */
html:not(.dark-mode) {
  --gl-bg: #eef1f8;
  --gl-surface: rgba(255,255,255,0.62);
  --gl-surface-2: rgba(255,255,255,0.78);
  --gl-border: rgba(15,23,42,0.09);
  --gl-border-active: rgba(99,102,241,0.35);
  --gl-text: rgba(15,23,42,0.90);
  --gl-text-2: rgba(15,23,42,0.58);
  --gl-text-3: rgba(15,23,42,0.38);
  --gl-accent-dim: rgba(99,102,241,0.10);
  --gl-shadow: 0 8px 32px rgba(15,23,42,0.10);
  --gl-shadow-sm: 0 4px 16px rgba(15,23,42,0.06);
}

/* ===== 全局基础 ===== */
*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}
*,*::before,*::after{transition:background .22s var(--gl-ease),border-color .22s var(--gl-ease),box-shadow .22s var(--gl-ease),opacity .22s var(--gl-ease),transform .22s var(--gl-ease)}

html,body{
  min-height:100%;
  height:100%;
  margin:0;
  padding:0;
  background:
    radial-gradient(ellipse 900px 600px at 12% 8%,rgba(99,102,241,0.13),transparent),
    radial-gradient(ellipse 700px 500px at 82% 15%,rgba(139,92,246,0.10),transparent),
    radial-gradient(ellipse 800px 600px at 55% 85%,rgba(59,130,246,0.07),transparent),
    var(--gl-bg) !important;
  color:var(--gl-text) !important;
}

html:not(.dark-mode),html:not(.dark-mode) body{
  background:
    radial-gradient(ellipse 900px 600px at 12% 8%,rgba(99,102,241,0.10),transparent),
    radial-gradient(ellipse 700px 500px at 82% 15%,rgba(139,92,246,0.08),transparent),
    radial-gradient(ellipse 800px 600px at 55% 85%,rgba(59,130,246,0.06),transparent),
    var(--gl-bg) !important;
}

a{color:inherit}

/* ===== 布局壳 ===== */
.wrapper{display:flex;min-height:100vh}
.main-content{width:100%;flex:1 1 auto}
.main-content .content-wrapper,.main-content .content{max-width:none!important;margin:0!important;width:100%!important}
.content-wrapper,.content{padding:var(--gl-pad)!important}
.container{max-width:none!important;padding:0!important}

/* ===== 侧边栏 ===== */
.sidebar{
  background:rgba(8,12,22,0.82)!important;
  border-right:1px solid var(--gl-border)!important;
  backdrop-filter:var(--gl-blur-heavy);-webkit-backdrop-filter:var(--gl-blur-heavy);
  box-shadow:var(--gl-shadow-sm)!important;
  overflow-x:hidden;
}
html:not(.dark-mode) .sidebar{background:rgba(255,255,255,0.72)!important}

.sidebar-header{border-color:var(--gl-border)!important;background:transparent!important;justify-content:center!important;text-align:center}
.sidebar-header .logo{justify-content:center!important}
.sidebar-title{display:none!important}
.sidebar-footer{border-color:var(--gl-border)!important;background:transparent!important}

.sidebar .sidebar-nav .nav-item,
.sidebar .sidebar-footer .nav-item{
  display:flex;align-items:center;gap:12px;
  padding:11px 16px;margin:4px 12px;
  border-radius:var(--gl-radius);
  color:var(--gl-text-2)!important;
  text-decoration:none!important;white-space:nowrap;
  border:1px solid transparent;
}
.sidebar .sidebar-nav .nav-item i,.sidebar .sidebar-footer .nav-item i{width:20px;text-align:center;flex:0 0 20px}
.sidebar .sidebar-nav .nav-item.active{
  background:var(--gl-accent-dim)!important;
  border:1px solid var(--gl-border-active)!important;
  color:var(--gl-text)!important;
}
.sidebar .sidebar-nav .nav-item:not(.active):hover{background:var(--gl-surface)!important;color:var(--gl-text)!important}

.nav-link{border-radius:var(--gl-radius)!important;color:var(--gl-text-2)!important;background:transparent!important;border-left:none!important}
.nav-item.active .nav-link{background:var(--gl-accent-dim)!important;border:1px solid var(--gl-border-active)!important;color:var(--gl-text)!important}

/* ===== 顶栏 ===== */
.topbar,.top-bar,.dashboard-top-bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:clamp(14px,1.8vw,22px) var(--gl-pad);
  position:sticky;top:0;z-index:100;
  background:var(--gl-surface)!important;
  border:1px solid var(--gl-border)!important;
  border-radius:var(--gl-radius-lg)!important;
  box-shadow:var(--gl-shadow-sm)!important;
  backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);
  margin:0!important;
}
.page-title i{color:var(--gl-accent)!important}

.sidebar-toggle, #sidebarToggle {
  display: none !important;
}
.sidebar-toggle:hover{background:rgba(255,255,255,0.10)!important}

/* 顶栏主题切换按钮：自适应宽度 */
.topbar .theme-toggle,.top-bar .theme-toggle{
  background:var(--gl-surface-2)!important;
  border:1px solid var(--gl-border)!important;
  color:var(--gl-text)!important;
  border-radius:var(--gl-radius)!important;
  height:42px;width:auto;padding:0 14px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-size:13px;white-space:nowrap;
}
.topbar .theme-toggle:hover,.top-bar .theme-toggle:hover{background:rgba(255,255,255,0.10)!important}

/* 侧边栏内的主题切换：紧凑 */
.sidebar .theme-toggle{
  background:var(--gl-surface-2)!important;
  border:1px solid var(--gl-border)!important;
  color:var(--gl-text)!important;
  border-radius:var(--gl-radius)!important;
  width:100%;height:42px;
  display:flex;align-items:center;justify-content:center;gap:6px;
}

/* 侧边栏完整显示导航项 */
.sidebar{overflow-y:auto}
.sidebar-nav{padding-bottom:8px}

/* ===== 毛玻璃卡片 ===== */
.card,.stat-card,.project-card,.recent-card,
.log-table-container,.batch-card,.modal-content,
.notification,.tabs-section,.log-stat-card{
  background:var(--gl-surface)!important;
  border:1px solid var(--gl-border)!important;
  border-radius:var(--gl-radius-lg)!important;
  box-shadow:var(--gl-shadow-sm)!important;
  backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);
}
.card,.batch-card,.log-table-container,.recent-card,.project-card{padding:clamp(16px,2vw,26px)!important}
.card:hover,.stat-card:hover,.project-card:hover{border-color:rgba(129,140,248,0.18)!important}

.card-header,.recent-header,.modal-header{border-bottom:1px solid var(--gl-border)!important;padding-bottom:14px!important;margin-bottom:16px!important}
.card-footer,.modal-footer{border-top:1px solid var(--gl-border)!important}

.card-title,.content-header h1,.page-title,.breadcrumb span{letter-spacing:.2px}
.content-header{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px;
  margin-bottom: clamp(16px, 2.5vw, 30px) !important;
  width: 100%;
}
.content-header h1{
  font-size:clamp(26px,3vw,40px)!important;
  line-height:1.1!important;
  margin: 0 !important;
}
.content-header .header-actions {
  margin: 0 !important;
  padding: 0 !important;
}
.page-title{font-size:clamp(17px,1.5vw,22px)!important}

/* ===== 统一图标容器规范 ===== */
.icon-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--gl-surface-2);
  border: 1px solid var(--gl-border);
  box-shadow: inset 0 0 10px rgba(255,255,255,0.02);
  margin-right: 12px;
  position: relative;
  overflow: hidden;
}

.icon-box::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(255,255,255,0.1), transparent 70%);
  pointer-events: none;
}

/* 全局图标基础 */
.breadcrumb i, .nav-item i, .page-title i, .content-header h1 i, .card-title i, .stat-icon i {
  color: #ffffff;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
  transition: transform 0.3s var(--gl-ease);
  display: inline-block;
  vertical-align: middle;
  position: relative;
  z-index: 2;
  opacity: 1 !important;
}

.nav-item.active i {
  color: var(--gl-accent) !important;
  filter: drop-shadow(0 0 8px var(--gl-accent-dim));
}

.status-badge {
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  display: inline-block;
  line-height: 1;
}

.status-pending {
  background: rgba(251, 191, 36, 0.25) !important;
  color: #fbbf24 !important;
  border: 1px solid rgba(251, 191, 36, 0.4);
}

.status-processing {
  background: rgba(96, 165, 250, 0.25) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(96, 165, 250, 0.4);
}

.status-resolved {
  background: rgba(52, 211, 153, 0.25) !important;
  color: #34d399 !important;
  border: 1px solid rgba(52, 211, 153, 0.4);
}

.page-icon-wrapper {
  display: none !important;
}

/* ===== 统计卡片 ===== */
.stat-card{padding:clamp(16px,1.8vw,24px)!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:16px!important}
.stat-icon{
  width:58px;height:58px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:16px;font-size:1.4rem;
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
/* ===== 统计卡片色彩增强 ===== */
.stat-icon.blue { background: rgba(96, 165, 250, 0.2) !important; color: #60a5fa !important; border-color: rgba(96, 165, 250, 0.3) !important; }
.stat-icon.blue i { color: #60a5fa !important; -webkit-text-fill-color: #60a5fa !important; text-shadow: 0 0 10px rgba(96, 165, 250, 0.3); }

.stat-icon.yellow { background: rgba(251, 191, 36, 0.2) !important; color: #fbbf24 !important; border-color: rgba(251, 191, 36, 0.3) !important; }
.stat-icon.yellow i { color: #fbbf24 !important; -webkit-text-fill-color: #fbbf24 !important; text-shadow: 0 0 10px rgba(251, 191, 36, 0.3); }

.stat-icon.orange { background: rgba(249, 115, 22, 0.2) !important; color: #f97316 !important; border-color: rgba(249, 115, 22, 0.3) !important; }
.stat-icon.orange i { color: #f97316 !important; -webkit-text-fill-color: #f97316 !important; text-shadow: 0 0 10px rgba(249, 115, 22, 0.3); }

.stat-icon.green { background: rgba(52, 211, 153, 0.2) !important; color: #34d399 !important; border-color: rgba(52, 211, 153, 0.3) !important; }
.stat-icon.green i { color: #34d399 !important; -webkit-text-fill-color: #34d399 !important; text-shadow: 0 0 10px rgba(52, 211, 153, 0.3); }

.stat-icon-primary, .stat-card.primary .stat-icon { background: rgba(var(--gl-accent-rgb), 0.15) !important; color: var(--gl-accent) !important; border-color: rgba(var(--gl-accent-rgb), 0.2) !important; }
.stat-icon-primary i, .stat-card.primary .stat-icon i { color: var(--gl-accent) !important; -webkit-text-fill-color: var(--gl-accent) !important; font-size: 1.6rem; opacity: 1 !important; }

.stat-icon-success, .stat-card.success .stat-icon { background: rgba(52, 211, 153, 0.15) !important; color: var(--gl-green) !important; border-color: rgba(52, 211, 153, 0.2) !important; }
.stat-icon-success i, .stat-card.success .stat-icon i { color: var(--gl-green) !important; -webkit-text-fill-color: var(--gl-green) !important; font-size: 1.6rem; opacity: 1 !important; }

.stat-icon-warning, .stat-card.warning .stat-icon { background: rgba(251, 191, 36, 0.15) !important; color: var(--gl-yellow) !important; border-color: rgba(251, 191, 36, 0.2) !important; }
.stat-icon-warning i, .stat-card.warning .stat-icon i { color: var(--gl-yellow) !important; -webkit-text-fill-color: var(--gl-yellow) !important; font-size: 1.6rem; opacity: 1 !important; }

.stat-icon-danger, .stat-card.danger .stat-icon { background: rgba(248, 113, 113, 0.15) !important; color: var(--gl-red) !important; border-color: rgba(248, 113, 113, 0.2) !important; }
.stat-icon-danger i, .stat-card.danger .stat-icon i { color: var(--gl-red) !important; -webkit-text-fill-color: var(--gl-red) !important; font-size: 1.6rem; opacity: 1 !important; }

.stat-icon-info, .stat-card.info .stat-icon { background: rgba(96, 165, 250, 0.15) !important; color: var(--gl-blue) !important; border-color: rgba(96, 165, 250, 0.2) !important; }
.stat-icon-info i, .stat-card.info .stat-icon i { color: var(--gl-blue) !important; -webkit-text-fill-color: var(--gl-blue) !important; font-size: 1.6rem; opacity: 1 !important; }

/* 通用徽章与状态标签适配 */
.badge, .status-badge {
  padding: 4px 10px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border: 1px solid transparent !important;
  display: inline-block !important;
  line-height: 1.2 !important;
}

.badge.danger, .status-locked, .status-danger, .badge-danger {
  background: rgba(248, 113, 113, 0.25) !important;
  color: #fca5a5 !important;
  border-color: rgba(248, 113, 113, 0.4) !important;
}

.badge.warning, .status-pending, .status-warning, .badge-warning {
  background: rgba(251, 191, 36, 0.25) !important;
  color: #fbbf24 !important;
  border-color: rgba(251, 191, 36, 0.4) !important;
}

.badge.success, .status-active, .status-resolved, .status-success, .badge-success {
  background: rgba(52, 211, 153, 0.25) !important;
  color: #34d399 !important;
  border-color: rgba(52, 211, 153, 0.4) !important;
}

.badge.info, .status-processing, .status-info, .badge-info {
  background: rgba(96, 165, 250, 0.25) !important;
  color: #60a5fa !important;
  border-color: rgba(96, 165, 250, 0.4) !important;
}

.stat-content,.stat-info{flex:1;min-width:0}
.stat-card h3,.stat-value{font-size:clamp(24px,2.4vw,36px)!important;line-height:1.05!important;font-weight:700}
.stat-card p,.stat-label{font-size:13px!important;color:var(--gl-text-2)!important;letter-spacing:.2px}
.stat-change{font-size:12px;color:var(--gl-text-3);margin-top:4px}

.stats-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--gl-gap)!important}
.stats-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--gl-gap)!important}
@media(max-width:1200px){.stats-row{grid-template-columns:repeat(2,1fr)!important}.stats-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:768px){.stats-row,.stats-grid{grid-template-columns:1fr!important}}

/* ===== 按钮 ===== */
.btn{
  background:var(--gl-surface-2)!important;
  border:1px solid var(--gl-border)!important;
  color:var(--gl-text)!important;
  border-radius:var(--gl-radius)!important;
  box-shadow:none!important;
  font-weight:500;
}
.btn:hover{background:rgba(255,255,255,0.10)!important;border-color:rgba(255,255,255,0.14)!important}
.btn-primary{background:var(--gl-accent-dim)!important;border-color:var(--gl-border-active)!important;color:var(--gl-accent)!important}
.btn-primary:hover{background:rgba(129,140,248,0.22)!important}
.btn-success{background:rgba(52,211,153,0.14)!important;border-color:rgba(52,211,153,0.25)!important;color:var(--gl-green)!important}
.btn-danger{background:rgba(248,113,113,0.12)!important;border-color:rgba(248,113,113,0.22)!important;color:var(--gl-red)!important}
.btn-warning{background:rgba(251,191,36,0.12)!important;border-color:rgba(251,191,36,0.22)!important;color:var(--gl-yellow)!important}
.btn-info{background:var(--gl-accent-dim)!important;border-color:var(--gl-border-active)!important;color:var(--gl-blue)!important}
.btn-icon{background:var(--gl-surface)!important;border:1px solid var(--gl-border)!important;color:var(--gl-text-2)!important}
.btn-icon:hover{color:var(--gl-text)!important}

/* ===== 表单 ===== */
.form-control,.search-box input,.filter-select,select,input,textarea{
  background:var(--gl-surface-2)!important;
  border:1px solid var(--gl-border)!important;
  color:var(--gl-text)!important;
  border-radius:var(--gl-radius)!important;
}
input::placeholder,textarea::placeholder{color:var(--gl-text-3)!important}
.form-control:focus,.search-box input:focus,select:focus,input:focus,textarea:focus{
  border-color:var(--gl-border-active)!important;
  box-shadow:0 0 0 3px rgba(129,140,248,0.12)!important;
}

/* ===== 表格 ===== */
.table-container,.table-responsive{border:1px solid var(--gl-border)!important;border-radius:var(--gl-radius-lg)!important;overflow:hidden}
.table,.log-table{background:transparent!important}
.table thead,.log-table thead{background:var(--gl-surface-2)!important}
.table th,.log-table th{border-bottom:1px solid var(--gl-border)!important;color:var(--gl-text)!important;font-weight:600}
.table td,.log-table td{border-bottom:1px solid var(--gl-border)!important;padding:12px 16px!important}
.table tbody tr:hover td{background:var(--gl-surface)!important}

/* ===== 模态框 ===== */
.modal{background:rgba(0,0,0,0.50)!important;backdrop-filter:blur(4px)}

/* ===== 通知 ===== */
.notification-title{color:var(--gl-text)!important}
.notification-message{color:var(--gl-text-2)!important}

/* ===== 仪表盘组件 ===== */
.dashboard-quick-action-btn,.recent-item,.dashboard-recent-item,.dashboard-user-info{
  background:var(--gl-surface)!important;
  border:1px solid var(--gl-border)!important;
  border-radius:var(--gl-radius-lg)!important;
  box-shadow:var(--gl-shadow-sm)!important;
  backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);
  color:var(--gl-text)!important;
}
.dashboard-quick-action-btn:hover{border-color:rgba(129,140,248,0.18)!important}
.dashboard-quick-action-btn i{color:var(--gl-accent)!important}

.section-title,.dashboard-section-title,.recent-header h3,.dashboard-recent-header h3,.item-title,.dashboard-item-title{color:var(--gl-text)!important}
.stat-label,.stat-change,.item-subtitle,.dashboard-item-subtitle,.item-time,.dashboard-item-time,.view-all,.dashboard-view-all{color:var(--gl-text-2)!important}
.dashboard-item-icon,.item-icon{border:1px solid var(--gl-border)!important;box-shadow:0 8px 20px rgba(0,0,0,0.25)}
.recent-header,.dashboard-recent-header{border-bottom:1px solid var(--gl-border)!important}

.stats-grid,.stats-row,.dashboard-stats-grid,.dashboard-quick-actions-grid,.recent-grid,.dashboard-recent-grid{gap:var(--gl-gap)!important}
section.card,.stats-section,.quick-actions-section,.recent-section,.dashboard-quick-actions,.dashboard-recent,.batch-container{margin-bottom:clamp(18px,2.2vw,30px)!important}

/* ===== 项目卡片QR ===== */
.project-card-inner{display:flex;flex-direction:row;align-items:stretch;gap:clamp(12px,2vw,20px);width:100%}
.project-card-main{flex:1;min-width:0}
.project-card-qr-wrap{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding-left:clamp(12px,1.5vw,18px);margin-left:4px;border-left:1px solid var(--gl-border)}
.project-card-qr-label{font-size:11px;color:var(--gl-text-2);letter-spacing:.3px;white-space:nowrap}
.project-card-qr{background:#fff;padding:4px;border-radius:8px;line-height:normal!important;box-shadow:0 1px 4px rgba(0,0,0,.12);min-height:96px;min-width:96px}
.project-card-qr canvas,.project-card-qr img{display:block;width:96px!important;height:96px!important}
.project-card-qr-fallback{display:inline-block;max-width:120px;font-size:12px;color:var(--gl-accent);text-decoration:underline;word-break:break-all;line-height:1.35;padding:8px 4px}

.project-qr-lightbox{position:fixed;inset:0;z-index:11000;display:flex;align-items:center;justify-content:center;padding:min(24px,4vw);background:rgba(0,0,0,.55);backdrop-filter:blur(6px);cursor:zoom-out;animation:fadeIn .2s ease}
.project-qr-lightbox-inner{max-width:min(92vw,420px);pointer-events:none}
.project-qr-lightbox-card{pointer-events:auto;background:#fff;padding:clamp(16px,3vw,24px);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.35)}
.project-qr-lightbox-qr{background:#fff;padding:6px;border-radius:12px;line-height:0}
.project-qr-lightbox-qr img{display:block;width:min(72vw,280px)!important;height:min(72vw,280px)!important;max-width:100%}
.project-qr-lightbox-hint{margin:14px 0 0;font-size:13px;color:rgba(255,255,255,.92);text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.45)}

@media(max-width:640px){
  .project-card-inner{flex-direction:column}
  .project-card-qr-wrap{flex-direction:row;align-items:center;justify-content:flex-start;border-left:none;border-top:1px solid var(--gl-border);padding-left:0;padding-top:14px;margin-left:0;margin-top:4px;gap:12px}
}

.project-actions .btn-icon{display:inline-flex;align-items:center;gap:4px;padding:6px 10px}
.project-actions .btn-icon-label{font-size:12px;font-weight:500}

.header-actions .filter-select,.header-actions select{min-width:140px}

/* ===== 按钮细节优化 ===== */
.project-actions{display:flex;gap:8px;margin-top:12px}
.btn-icon{
  width: auto;
  min-width: 38px;
  height: 38px;
  padding: 0 14px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px !important;
  cursor: pointer;
  transition: all .24s var(--gl-ease);
  border: 1px solid var(--gl-border) !important;
}
.btn-icon i{
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.btn-icon-primary{color:var(--gl-accent)!important;background:var(--gl-accent-dim)!important;border-color:var(--gl-border-active)!important}
.btn-icon-primary:hover{background:rgba(129,140,248,0.22)!important;transform:translateY(-2px);box-shadow: 0 4px 12px rgba(129,140,248,0.15);}
.btn-icon-danger{color:var(--gl-red)!important;background:rgba(248,113,113,0.12)!important;border-color:rgba(248,113,113,0.22)!important}
.btn-icon-danger:hover{background:rgba(248,113,113,0.22)!important;transform:translateY(-2px);box-shadow: 0 4px 12px rgba(248,113,113,0.15);}
.lock-active{color:var(--gl-yellow)!important;background:rgba(251,191,36,0.12)!important;border-color:rgba(251,191,36,0.22)!important}
.lock-active:hover{background:rgba(251,191,36,0.22)!important;transform:translateY(-2px);box-shadow: 0 4px 12px rgba(251,191,36,0.15);}
.lock-inactive{color:var(--gl-green)!important;background:rgba(52,211,153,0.12)!important;border-color:rgba(52,211,153,0.22)!important}
.lock-inactive:hover{background:rgba(52,211,153,0.22)!important;transform:translateY(-2px);box-shadow: 0 4px 12px rgba(52,211,153,0.15);}

.btn-icon-label{
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

/* ===== 分页系统 ===== */
.pagination{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:30px;padding:12px;
  background:var(--gl-surface);
  border:1px solid var(--gl-border);
  border-radius:var(--gl-radius-lg);
  backdrop-filter:var(--gl-blur);
}
.pagination .btn{
  height:38px;min-width:38px;padding:0 12px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-size:14px;
}
.pagination .btn i{font-size:12px}
.pagination .btn span{font-weight:500}
.pagination .btn.active{background:var(--gl-accent)!important;color:#fff!important;border-color:var(--gl-accent)!important;box-shadow:0 4px 12px var(--gl-accent-dim)}
.pagination .btn.disabled{opacity:0.4;cursor:not-allowed}
@media(min-width:1024px){.header-actions{max-width:760px}}
@media(max-width:768px){.header-actions{justify-content:flex-start}.header-actions .search-box{flex:1 1 100%;min-width:100%}.header-actions .filter-select,.header-actions select,.header-actions .btn{flex:1 1 auto}}

/* ===== 登录页 ===== */
.login-page{
  background:
    radial-gradient(ellipse 700px 500px at 25% 20%,rgba(99,102,241,0.18),transparent),
    radial-gradient(ellipse 600px 400px at 75% 30%,rgba(139,92,246,0.14),transparent),
    radial-gradient(ellipse 800px 500px at 50% 90%,rgba(59,130,246,0.10),transparent),
    var(--gl-bg)!important;
}
html:not(.dark-mode) .login-page{
  background:
    radial-gradient(ellipse 700px 500px at 25% 20%,rgba(99,102,241,0.12),transparent),
    radial-gradient(ellipse 600px 400px at 75% 30%,rgba(139,92,246,0.10),transparent),
    radial-gradient(ellipse 800px 500px at 50% 90%,rgba(59,130,246,0.08),transparent),
    var(--gl-bg)!important;
}
.login-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.login-container{
  width:min(420px,100%);
  padding:28px;
  border:1px solid var(--ui-border);
  border-radius:8px;
  background:var(--ui-surface);
  box-shadow:var(--gl-shadow);
}
.login-header{
  text-align:center;
  margin-bottom:24px;
}
.login-logo{
  width:58px;
  height:58px;
  margin-bottom:14px;
}
.login-header h1{
  margin:0;
  font-size:24px;
}
.login-header p{
  margin:8px 0 0;
  color:var(--ui-text-muted);
}
.login-form{
  display:grid;
  gap:16px;
}
.btn-block{
  width:100%;
  justify-content:center;
}
.login-message{
  min-height:20px;
  font-size:14px;
}
.login-message-error{
  color:var(--ui-danger);
}
.login-message-info{
  color:var(--ui-text-muted);
}

/* ===== 滚动条 ===== */
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:999px}
*::-webkit-scrollbar-corner{background:transparent}
html:not(.dark-mode) *{scrollbar-color:rgba(0,0,0,.15) transparent}
html:not(.dark-mode) *::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12)}

/* ===== 图标降级 ===== */
html:not(.fa-loaded) .fas,html:not(.fa-loaded) .fa{font-family:inherit!important;font-style:normal!important;font-weight:600!important}
html:not(.fa-loaded) .fas::before,html:not(.fa-loaded) .fa::before{content:""!important}
html:not(.fa-loaded) .fa-bars::before{content:"≡"}
html:not(.fa-loaded) .fa-moon::before{content:"☾"}
html:not(.fa-loaded) .fa-sun::before{content:"☀"}
html:not(.fa-loaded) .fa-times::before{content:"×"}
html:not(.fa-loaded) .fa-chevron-left::before{content:"‹"}
html:not(.fa-loaded) .fa-chevron-right::before{content:"›"}
html:not(.fa-loaded) .fa-search::before{content:"⌕"}
html:not(.fa-loaded) .fa-plus::before,html:not(.fa-loaded) .fa-plus-circle::before{content:"+"}
html:not(.fa-loaded) .fa-sync::before,html:not(.fa-loaded) .fa-sync-alt::before{content:"⟳"}
html:not(.fa-loaded) .fa-download::before{content:"⇩"}
html:not(.fa-loaded) .fa-trash::before{content:"⌫"}
html:not(.fa-loaded) .fa-sign-out-alt::before{content:"↩"}
html:not(.fa-loaded) .fa-lock::before{content:"L"}
html:not(.fa-loaded) .fa-unlock::before{content:"U"}
html:not(.fa-loaded) .fa-edit::before{content:"E"}

.sidebar-toggle i,.theme-toggle i,.close-btn i{display:inline-flex;align-items:center;justify-content:center;width:1.1em;line-height:1}

/* ===== 侧边栏 tooltip 禁用 ===== */
.sidebar [data-tooltip]::before,.sidebar [data-tooltip]::after{display:none!important;content:none!important}

/* ===== 响应式 ===== */
@media(max-width:768px){
  .topbar,.top-bar{border-radius:var(--gl-radius)!important}
}

/* ===== 入场动画 ===== */
@keyframes glRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.card,.stat-card,.recent-card,.project-card,.batch-card,.dashboard-hero,.page-intro,.login-container{
  animation:glRise .45s var(--gl-ease) both;
}

/* ===== 配置页标签页 (Tabs) ===== */
.config-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 26px;
  flex-wrap: wrap;
  padding: 10px;
  background: var(--gl-surface);
  border: 1px solid var(--gl-border);
  border-radius: var(--gl-radius-lg);
  backdrop-filter: var(--gl-blur);
}

.tab-btn {
  background: transparent;
  border: 1px solid transparent;
  color: var(--gl-text-2) !important;
  padding: 12px 24px;
  border-radius: var(--gl-radius);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.25s var(--gl-ease);
}

.tab-btn i {
  font-size: 16px;
  color: inherit;
}

.tab-btn:hover {
  background: var(--gl-surface-2);
  color: var(--gl-text) !important;
}

.tab-btn.active {
  background: var(--gl-accent-dim) !important;
  border-color: var(--gl-border-active) !important;
  color: var(--gl-accent) !important;
  box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

/* 表单标签强化 */
.form-group label, .form-label {
  color: var(--gl-text) !important; /* 强制提升到主文字亮度 */
  opacity: 0.85;
  font-weight: 600 !important;
  margin-bottom: 10px !important;
  display: block;
}

.config-panel {
  display: none;
  animation: fadeIn 0.4s var(--gl-ease);
}
.config-panel.active {
  display: block;
}

/* ===== 仪表盘最近列表项优化 ===== */
.dashboard-recent-item, .recent-item {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
  background: var(--gl-surface-2) !important;
  border: 1px solid var(--gl-border) !important;
  border-radius: var(--gl-radius-lg) !important;
  transition: all 0.2s var(--gl-ease) !important;
  cursor: pointer;
}

.dashboard-recent-item:hover, .recent-item:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  transform: translateY(-2px);
  box-shadow: var(--gl-shadow-sm);
}

.dashboard-recent-item .dashboard-item-icon, .recent-item .item-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  background: var(--gl-surface-3);
  border: 1px solid var(--gl-border);
  flex-shrink: 0;
  color: #fff !important;
}

.dashboard-recent-item .item-content, .recent-item .item-content {
  flex: 1 !important;
  min-width: 0;
}

.dashboard-recent-item .item-title, .recent-item .item-title {
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 4px;
  color: var(--gl-text) !important;
}

.dashboard-recent-item .item-subtitle, .recent-item .item-subtitle {
  font-size: 0.85rem;
  color: var(--gl-text-secondary) !important;
  opacity: 0.7;
}

.dashboard-recent-item .item-time, .recent-item .item-time {
  margin-left: auto !important;
  font-size: 0.85rem;
  color: var(--gl-text-secondary) !important;
  opacity: 0.6;
  white-space: nowrap;
}

/* 日志图标语义化颜色 */
.recent-item .item-icon.log-icon-success { 
  background: rgba(52, 211, 153, 0.2) !important; 
  color: #34d399 !important; 
  border-color: rgba(52, 211, 153, 0.3) !important; 
}
.recent-item .item-icon.log-icon-warning { 
  background: rgba(251, 191, 36, 0.2) !important; 
  color: #fbbf24 !important; 
  border-color: rgba(251, 191, 36, 0.3) !important; 
}
.recent-item .item-icon.log-icon-error { 
  background: rgba(248, 113, 113, 0.2) !important; 
  color: #fca5a5 !important; 
  border-color: rgba(248, 113, 113, 0.3) !important; 
}
.recent-item .item-icon i { color: inherit !important; }
