/* ==========================================================================
   public/css/login-bg.css  （现为全站 Opus 风格背景动画）
   背景层作用于全站；卡片玻璃效果仍只对登录页 body.login-page 生效
   ========================================================================== */

/* 覆盖 header.php 里写死的 bg.jpeg，全站生效 */
body {
  background: #0a0a0f !important;
  overflow-x: hidden;
}

/* 画布层：铺满视口，置于内容之下（由 login-bg.js 注入，或模板手写） */
#opus-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(1200px 800px at 20% 10%, rgba(99, 102, 241, .18), transparent 60%),
    radial-gradient(1000px 700px at 85% 90%, rgba(236, 72, 153, .14), transparent 60%),
    #0a0a0f;
}

/* ---------- 缓慢漂移的光斑 ---------- */
#opus-bg .orb {
  position: absolute;
  width: 45vmax;
  height: 45vmax;
  border-radius: 50%;
  filter: blur(80px);
  opacity: .45;
  will-change: transform;
  animation: orbFloat 18s ease-in-out infinite alternate;
}

#opus-bg .orb:nth-child(1) {
  top: -15%;
  left: -10%;
  background: radial-gradient(circle, #6366f1, transparent 65%);
  animation-duration: 22s;
}

#opus-bg .orb:nth-child(2) {
  bottom: -20%;
  right: -15%;
  background: radial-gradient(circle, #ec4899, transparent 65%);
  animation-duration: 26s;
  animation-delay: -6s;
}

#opus-bg .orb:nth-child(3) {
  top: 30%;
  left: 45%;
  background: radial-gradient(circle, #06b6d4, transparent 65%);
  animation-duration: 30s;
  animation-delay: -12s;
}

@keyframes orbFloat {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(6vw, -4vh, 0) scale(1.15); }
  100% { transform: translate3d(-4vw, 5vh, 0) scale(.95); }
}

/* ---------- 细网格 + 渐隐遮罩 ---------- */
#opus-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 30%, transparent 75%);
  mask-image: radial-gradient(circle at 50% 45%, #000 30%, transparent 75%);
}

/* ---------- 鼠标跟随柔光（由 JS 写 --mx/--my） ---------- */
#opus-bg .glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 50%),
              rgba(255, 255, 255, .10), transparent 60%);
  transition: background .15s linear;
}

/* ==========================================================================
   以下作用于 body.login-page（登录页）与 body.glass-page（首页/详情页等）
   统一磨砂玻璃卡片效果
   ========================================================================== */

/* 卡片玻璃感 */
body.login-page .card,
body.glass-page .card {
  background: rgba(255, 255, 255, .06) !important;
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
  color: #eaeaf2;
  animation: cardIn .8s cubic-bezier(.22, 1, .36, 1) both;
}

/* 透明子卡片（如首页列表项 card.bg-transparent）保持通透，不重复叠加玻璃重层 */
body.glass-page .card .card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation: none !important;
  border-radius: 0 !important;
}

@keyframes cardIn {
  from { opacity: 0; transform: translateY(24px) scale(.98); }
  to   { opacity: 1; transform: none; }
}

/* 卡片内标题、正文文字在深色下的可读性 */
body.login-page .card h1,
body.login-page .card h2,
body.login-page .card h3,
body.login-page .card h4,
body.login-page .card h5,
body.login-page .card h6,
body.login-page .card .card-title,
body.glass-page .card h1,
body.glass-page .card h2,
body.glass-page .card h3,
body.glass-page .card h4,
body.glass-page .card h5,
body.glass-page .card h6,
body.glass-page .card .card-title {
  color: #f4f5fb;
}

body.login-page .card h2 {
  letter-spacing: .08em;
}

/* 卡片内链接/次要文字颜色，避免深底黑字 */
body.glass-page .card a:not(.badge):not(.btn) {
  color: #cfd3e8;
}
body.glass-page .card a:not(.badge):not(.btn):hover {
  color: #8ea2ff;
}
body.glass-page .card .text-secondary,
body.glass-page .card .small.text-secondary,
body.glass-page .card a.small.text-secondary {
  color: rgba(255, 255, 255, .55) !important;
}
body.glass-page .card hr,
body.glass-page .card .card-header {
  border-color: rgba(255, 255, 255, .12) !important;
}

/* 卡片内 card-header（card-header pb-0 border-0）背景透明化，与所在玻璃卡片保持一致 */
body.login-page .card .card-header,
body.glass-page .card .card-header {
  background: transparent !important;
  color: inherit;
}

/* header 下拉通知里的 card-header（card-header d-flex justify-content-between align-items-center）
   与玻璃主题一致：透明背景、深色下分隔线为半透明白、标题文字浅色 */
body.login-page header .dropdown-menu .card .card-header,
body.glass-page header .dropdown-menu .card .card-header {
  background: transparent !important;
  border-color: rgba(255, 255, 255, .12) !important;
  color: rgba(255, 255, 255, .9) !important;
}
body.login-page header .dropdown-menu .card .card-header h6,
body.login-page header .dropdown-menu .card .card-header .h6,
body.glass-page header .dropdown-menu .card .card-header h6,
body.glass-page header .dropdown-menu .card .card-header .h6 {
  color: rgba(255, 255, 255, .9) !important;
}

/* 分页按钮（pagination pagination-light）与背景保持一致 */
body.glass-page .pagination .page-link {
  background: rgba(255, 255, 255, .08) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  color: rgba(255, 255, 255, .8) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
body.glass-page .pagination .page-link:hover {
  background: rgba(255, 255, 255, .18) !important;
  border-color: rgba(99, 102, 241, .6) !important;
  color: #ffffff !important;
}
body.glass-page .pagination .page-item.active .page-link {
  background: linear-gradient(135deg, #4f6bf5, #0f6fec) !important;
  border-color: rgba(99, 102, 241, .9) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(79, 107, 245, .4);
}
body.glass-page .pagination .page-item.disabled .page-link {
  background: rgba(255, 255, 255, .04) !important;
  color: rgba(255, 255, 255, .35) !important;
  border-color: rgba(255, 255, 255, .08) !important;
}

/* 卡片内表单控件适配深色 */
body.login-page .card .form-control,
body.glass-page .card .form-control {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .14);
  color: #ffffff;
}

body.login-page .card .form-control:focus,
body.glass-page .card .form-control:focus {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(99, 102, 241, .8);
  box-shadow: 0 0 0 .25rem rgba(99, 102, 241, .25);
  color: #ffffff;
}

body.login-page .card .form-control::placeholder,
body.glass-page .card .form-control::placeholder {
  color: rgba(255, 255, 255, .45);
}

/* 文件上传输入框（#blogFile）的原生「选择文件」按钮，与玻璃主题一致 */
body.glass-page .card input[type="file"].form-control {
  color: rgba(255, 255, 255, .72);
}
body.glass-page .card input[type="file"].form-control::file-selector-button {
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .16);
  color: #ffffff;
  border-radius: 6px;
  padding: .25rem .6rem;
  margin-right: .6rem;
  transition: background .15s ease, border-color .15s ease;
}
body.glass-page .card input[type="file"].form-control::file-selector-button:hover {
  background: rgba(99, 102, 241, .28);
  border-color: rgba(99, 102, 241, .7);
}

body.login-page .card .input-group-text,
body.glass-page .card .input-group-text {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .14);
  color: rgba(255, 255, 255, .82);
}
/* input-group-text 内的图标字体颜色与文字一致 */
body.login-page .card .input-group-text i,
body.login-page .card .input-group-text .bi,
body.glass-page .card .input-group-text i,
body.glass-page .card .input-group-text .bi {
  color: inherit !important;
}

/* 表单标签在深色卡片下的可读性 */
body.login-page .card .form-label,
body.glass-page .card .form-label {
  color: rgba(255, 255, 255, .8);
}

/* select 下拉选项在深色下的可读性 */
body.glass-page .card select.form-control option {
  background: #141622;
  color: #ffffff;
}

/* 正文中的 bd-callout 提示块背景与深色玻璃保持一致（保留左侧彩色条） */
body.glass-page .bd-callout {
  background: rgba(255, 255, 255, .06) !important;
  color: #eaeaf2 !important;
  border: 1px solid rgba(255, 255, 255, .12);
  border-left-width: 4px;
  border-radius: 10px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
/* callout 内的代码/文字可读性 */
body.glass-page .bd-callout code {
  background: rgba(255, 255, 255, .12) !important;
  color: #ffd479 !important;
}
body.glass-page .bd-callout a {
  color: #8ea2ff !important;
}

/* 主按钮微调（保持主色，加一点光晕） */
body.login-page .card .btn-primary,
body.glass-page .card .btn-primary {
  background: linear-gradient(135deg, #4f6bf5, #0f6fec);
  border: none;
  box-shadow: 0 10px 24px rgba(79, 107, 245, .35);
  transition: transform .2s ease, box-shadow .2s ease;
}

body.login-page .card .btn-primary:hover,
body.glass-page .card .btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(79, 107, 245, .5);
}

/* ==========================================================================
   header / footer 磨砂玻璃
   作用于 body.login-page（登录页）与 body.glass-page（首页/详情等），
   避免影响后台等其它页面
   ========================================================================== */
body.login-page header.header-static,
body.login-page footer,
body.glass-page header.header-static,
body.glass-page footer {
  background: rgba(20, 22, 34, .55) !important;
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, .08);
}

body.login-page footer,
body.login-page footer a,
body.login-page footer .text-body,
body.glass-page footer,
body.glass-page footer a,
body.glass-page footer .text-body {
  color: rgba(255, 255, 255, .7) !important;
}
body.login-page footer a:hover,
body.glass-page footer a:hover {
  color: #ffffff !important;
}

/* header 中间滚动字幕：搜索框与「文档」菜单之间，从右向左滚动，与玻璃主题一致 */
body.login-page header .header-marquee,
body.glass-page header .header-marquee {
  flex: 0 0 auto;      /* 不参与弹性分配，避免挤乱导航 li */
  width: 360px;
  max-width: 40vw;
  margin: 0 1rem;
  overflow: hidden;
  position: relative;
  height: 34px;
  display: block;
  line-height: 34px;
  /* 去掉边框和圆角，仅保留左右两端渐隐 */
  border: 0;
  border-radius: 0;
  background: transparent;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
body.login-page header .header-marquee__track,
body.glass-page header .header-marquee__track {
  display: inline-flex;
  white-space: nowrap;
  will-change: transform;
  animation: headerMarquee 18s linear infinite;
}
/* 悬停暂停滚动 */
body.login-page header .header-marquee:hover .header-marquee__track,
body.glass-page header .header-marquee:hover .header-marquee__track {
  animation-play-state: paused;
}
body.login-page header .header-marquee__text,
body.glass-page header .header-marquee__text {
  display: inline-block;
  padding: 0 3rem 0 0;
  color: rgba(255, 255, 255, .82);
  font-size: .85rem;
  letter-spacing: .02em;
}
@keyframes headerMarquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* 保证 header 展开态下导航不因插入字幕而换行/错位 */
@media (min-width: 992px) {
  body.login-page header .navbar-collapse,
  body.glass-page header .navbar-collapse {
    flex-wrap: nowrap !important;
  }
  body.login-page header .header-marquee,
  body.glass-page header .header-marquee {
    width: 300px;
    flex-shrink: 1;      /* 空间不足时可收缩 */
    min-width: 160px;
    margin-left: 2rem;   /* 与右侧间距保持一致 */
    margin-right: 1.5rem;
  }
  body.login-page header .navbar-nav,
  body.glass-page header .navbar-nav {
    flex-wrap: nowrap !important;
  }
  /* 搜索区在大屏下占满列宽，使「搜索框→字幕」与「字幕→文档」两侧间距相等 */
  body.login-page header .navbar-collapse > .nav.col-lg-2,
  body.glass-page header .navbar-collapse > .nav.col-lg-2 {
    flex: 0 0 auto;
  }
  body.login-page header .nav-item.w-100 form input[name="headerSearch"],
  body.glass-page header .nav-item.w-100 form input[name="headerSearch"] {
    width: 100% !important;
  }
}

/* header 内导航文字在深色玻璃下的可读性 */
body.login-page header .nav-link,
body.glass-page header .nav-link {
  color: rgba(255, 255, 255, .78) !important;
}
body.login-page header .nav-link:hover,
body.login-page header .nav-link.active,
body.glass-page header .nav-link:hover,
body.glass-page header .nav-link.active {
  color: #ffffff !important;
}
/* 顶部导航当前分类选中态：仅主题靛蓝文字色，不加背景 */
body.login-page header .navbar-nav .nav-link.active,
body.glass-page header .navbar-nav .nav-link.active {
  color: #8ea2ff !important;
  background: transparent !important;
}
body.login-page header .navbar-nav .nav-link.active:hover,
body.glass-page header .navbar-nav .nav-link.active:hover {
  color: #b3c0ff !important;
  background: transparent !important;
}

/* header 顶部搜索框（form-control ps-5 bg-light）背景与 header 保持一致 */
body.login-page header .form-control.bg-light,
body.glass-page header .form-control.bg-light {
  background: rgba(255, 255, 255, .10) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  color: #ffffff !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
body.login-page header .form-control.bg-light::placeholder,
body.glass-page header .form-control.bg-light::placeholder {
  color: rgba(255, 255, 255, .55) !important;
}
body.login-page header .form-control.bg-light:focus,
body.glass-page header .form-control.bg-light:focus {
  background: rgba(255, 255, 255, .16) !important;
  border-color: rgba(99, 102, 241, .8) !important;
  box-shadow: 0 0 0 .25rem rgba(99, 102, 241, .25) !important;
  color: #ffffff !important;
}
/* 搜索框内的放大镜图标 */
body.login-page header form .btn.bg-transparent i,
body.glass-page header form .btn.bg-transparent i {
  color: rgba(255, 255, 255, .7) !important;
}

/* header 右侧圆形图标按钮（nav-link icon-md btn btn-light p-0）背景与 header 一致 */
body.login-page header .nav-link.icon-md.btn-light,
body.login-page header .navbar-toggler.icon-md.btn-light,
body.glass-page header .nav-link.icon-md.btn-light,
body.glass-page header .navbar-toggler.icon-md.btn-light {
  background: rgba(255, 255, 255, .10) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  color: #ffffff !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background .2s ease, transform .2s ease;
}
body.login-page header .nav-link.icon-md.btn-light:hover,
body.login-page header .navbar-toggler.icon-md.btn-light:hover,
body.glass-page header .nav-link.icon-md.btn-light:hover,
body.glass-page header .navbar-toggler.icon-md.btn-light:hover {
  background: rgba(255, 255, 255, .18) !important;
  color: #ffffff !important;
}
body.login-page header .nav-link.icon-md.btn-light i,
body.login-page header .navbar-toggler.icon-md.btn-light i,
body.glass-page header .nav-link.icon-md.btn-light i,
body.glass-page header .navbar-toggler.icon-md.btn-light i {
  color: #ffffff !important;
}

/* header 下拉菜单（个人资料 / 通知）背景与 header 保持一致 */
body.login-page header .dropdown-menu,
body.glass-page header .dropdown-menu {
  background: rgba(20, 22, 34, .95) !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .5) !important;
  border-radius: 16px;
  color: rgba(255, 255, 255, .92);
}

/* 下拉菜单内文字/链接 */
body.login-page header .dropdown-menu .dropdown-item,
body.glass-page header .dropdown-menu .dropdown-item {
  color: rgba(255, 255, 255, .82) !important;
  border-radius: 10px;
  transition: background .15s ease, color .15s ease;
}
body.login-page header .dropdown-menu .dropdown-item:hover,
body.login-page header .dropdown-menu .dropdown-item:focus,
body.glass-page header .dropdown-menu .dropdown-item:hover,
body.glass-page header .dropdown-menu .dropdown-item:focus {
  background: transparent !important;
  color: #8ea2ff !important;
}
/* 下拉菜单展开时，触发项（文档等）使用主题靛蓝文字，不加背景 */
body.login-page header .navbar-nav .nav-link.dropdown-toggle.show,
body.glass-page header .navbar-nav .nav-link.dropdown-toggle.show {
  color: #8ea2ff !important;
  background: transparent !important;
}
body.login-page header .dropdown-menu .dropdown-item i,
body.glass-page header .dropdown-menu .dropdown-item i {
  color: rgba(255, 255, 255, .72) !important;
}
body.login-page header .dropdown-menu .dropdown-divider,
body.glass-page header .dropdown-menu .dropdown-divider {
  border-color: rgba(255, 255, 255, .12) !important;
}
body.login-page header .dropdown-menu .h6,
body.login-page header .dropdown-menu .small,
body.login-page header .dropdown-menu p,
body.glass-page header .dropdown-menu .h6,
body.glass-page header .dropdown-menu .small,
body.glass-page header .dropdown-menu p {
  color: rgba(255, 255, 255, .82) !important;
}
/* 下拉菜单里浅色卡片/列表项透明化，避免叠加白底 */
body.login-page header .dropdown-menu .card,
body.glass-page header .dropdown-menu .card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.login-page header .dropdown-menu .list-group-item,
body.glass-page header .dropdown-menu .list-group-item {
  background: transparent !important;
  color: rgba(255, 255, 255, .82) !important;
}
body.login-page header .dropdown-menu .list-group-item:hover,
body.glass-page header .dropdown-menu .list-group-item:hover {
  background: rgba(255, 255, 255, .08) !important;
}

/* 相关文章标题链接（stretched-link）hover 颜色与卡片链接主题保持一致 */
body.glass-page .card a.stretched-link {
  color: #cfd3e8 !important;
}
body.glass-page .card a.stretched-link:hover {
  color: #8ea2ff !important;
}

/* 首页标签按钮（btn btn-outline-light btn-sm）与玻璃主题一致 */
body.glass-page .card .btn-outline-light.btn-sm {
  background: rgba(255, 255, 255, .08) !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  color: rgba(255, 255, 255, .82) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
body.glass-page .card .btn-outline-light.btn-sm:hover,
body.glass-page .card .btn-outline-light.btn-sm:focus,
body.glass-page .card .btn-outline-light.btn-sm:active {
  background: rgba(99, 102, 241, .28) !important;
  border-color: rgba(99, 102, 241, .7) !important;
  color: #ffffff !important;
  box-shadow: 0 6px 16px rgba(79, 107, 245, .3);
}

/* 文本页（关于/支持/文档/隐私）通用可读性增强 */
body.glass-page .card .text-muted {
  color: rgba(255, 255, 255, .55) !important;
}
body.glass-page .card .border,
body.glass-page .card .border-top {
  border-color: rgba(255, 255, 255, .14) !important;
}
body.glass-page .card .link-primary {
  color: #8ea2ff !important;
}
body.glass-page .card .link-primary:hover {
  color: #b3c0ff !important;
}
body.glass-page .card strong {
  color: #ffffff;
}

/* 文本页表格（table table-bordered，thead table-light）与玻璃主题一致 */
body.glass-page .card table.table {
  color: #eaeaf2;
  border-color: rgba(255, 255, 255, .14);
}
body.glass-page .card table.table > :not(caption) > * > * {
  border-color: rgba(255, 255, 255, .14);
}
/* 表头 table-light 浅灰底 -> 半透明玻璃底 */
body.glass-page .card thead.table-light,
body.glass-page .card thead.table-light > tr > th,
body.glass-page .card thead.table-light > tr > td {
  background: rgba(255, 255, 255, .10) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .14) !important;
}
/* 表体行悬停高亮，适配深色 */
body.glass-page .card table.table-hover > tbody > tr:hover > * {
  background: rgba(255, 255, 255, .06) !important;
  color: #ffffff !important;
}
/* 抵消各后台页内联 .table-hover tbody tr:hover 的浅灰底 */
body.glass-page .card table.table-hover > tbody > tr:hover {
  background: transparent !important;
}
/* 表格内链接可读性 */
body.glass-page .card table.table a {
  color: #8ea2ff !important;
}
body.glass-page .card table.table a:hover {
  color: #b3c0ff !important;
}

/* ==========================================================================
   后台 /admin/* 页面通用适配（列表表格、菜单、图表边框等）
   ========================================================================== */

/* 列表页表格条纹：table-striped 的浅色斑马纹 -> 半透明玻璃条纹 */
body.glass-page .card table.table-striped > tbody > tr:nth-of-type(odd) > * {
  background: rgba(255, 255, 255, .04) !important;
  color: #eaeaf2 !important;
  --bs-table-bg-type: transparent;
}
body.glass-page .card table.table-striped > tbody > tr:nth-of-type(even) > * {
  background: transparent !important;
  color: #eaeaf2 !important;
}
/* 表头默认（无 table-light）也转深色 */
body.glass-page .card table.table thead tr > th,
body.glass-page .card table.table thead tr > td,
body.glass-page .card table.table tbody tr > td {
  border-color: rgba(255, 255, 255, .12) !important;
}

/* 列表页标题链接（blogTitle 带内联黑色），深色下改为浅色 */
body.glass-page .card a.blogTitle {
  color: #cfd3e8 !important;
}
body.glass-page .card a.blogTitle:hover {
  color: #8ea2ff !important;
}

/* 左侧系统菜单 list-group */
body.glass-page .card .list-group-item {
  background: transparent !important;
  color: rgba(255, 255, 255, .78) !important;
  border-color: rgba(255, 255, 255, .08) !important;
  transition: background .15s ease, color .15s ease;
}
body.glass-page .card .list-group-item:hover,
body.glass-page .card .list-group-item-action:hover,
body.glass-page .card .list-group-item-action:focus {
  background: rgba(255, 255, 255, .08) !important;
  color: #ffffff !important;
}
body.glass-page .card .list-group-item.active {
  background: rgba(99, 102, 241, .35) !important;
  border-color: rgba(99, 102, 241, .6) !important;
  color: #ffffff !important;
}
/* 系统菜单内图标字体颜色与文字保持一致 */
body.glass-page .card .list-group-item i,
body.glass-page .card .list-group-item .bi {
  color: inherit !important;
}

/* 后台卡片内浅灰边框（内联 #eeeeee 的图表容器）转为半透明白 */
body.glass-page .card [style*="#eeeeee"] {
  border-color: rgba(255, 255, 255, .12) !important;
}

/* 后台 form-control.bg-light（列表页搜索框）透明化 */
body.glass-page .card .form-control.bg-light {
  background: rgba(255, 255, 255, .08) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  color: #ffffff !important;
}
body.glass-page .card .form-control.bg-light::placeholder {
  color: rgba(255, 255, 255, .5) !important;
}

/* 后台列表操作按钮组（btn-group btn-group-sm）：三个按钮内图标统一白色 */
body.glass-page .btn-group.btn-group-sm > .btn i,
body.glass-page .btn-group.btn-group-sm > .btn .bi {
  color: #ffffff !important;
}
/* 保持按钮本身底色不变，hover 时少量提亮 */
body.glass-page .btn-group.btn-group-sm > .btn:hover i,
body.glass-page .btn-group.btn-group-sm > .btn:focus i {
  color: #ffffff !important;
}
/* 通知列表操作按钮组（btn-group mr-2 内的 btn-sm）：图标同样统一白色 */
body.glass-page .btn-group > .btn.btn-sm i,
body.glass-page .btn-group > .btn.btn-sm .bi {
  color: #ffffff !important;
}
body.glass-page .btn-group > .btn.btn-sm:hover i,
body.glass-page .btn-group > .btn.btn-sm:focus i {
  color: #ffffff !important;
}

/* 详情页代码块（hljs language-xxx pre）：与深色玻璃主题一致 */
body.glass-page pre,
body.glass-page pre code,
body.glass-page pre code.hljs,
body.glass-page pre .hljs,
body.glass-page .hljs {
  background: #1b1e24 !important;
}
body.glass-page pre {
  border: 1px solid rgba(255, 255, 255, .10) !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .35);
  /* 超长代码：横向滚动，不换行、不撑破容器 */
  overflow-x: auto !important;
  overflow-y: hidden;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}
/* 代码内部不换行，保持原始格式并横向滚动 */
body.glass-page pre code,
body.glass-page pre code.hljs,
body.glass-page pre .hljs {
  white-space: pre !important;
  word-break: normal !important;
  word-wrap: normal !important;
  overflow-wrap: normal !important;
}
body.glass-page pre code,
body.glass-page pre code.hljs,
body.glass-page pre .hljs {
  color: #abb2bf !important;   /* atom-one-dark 默认文字色 */
  font-size: .85rem;
  line-height: 1.5;
}
/* 行内代码：与代码块同色系，圆角一致 */
body.glass-page :not(pre) > code {
  background: rgba(255, 255, 255, .10) !important;
  color: #ffcb8b !important;
  border-radius: 6px;
  padding: 2px 6px;
}

/* 后台标签自动补全（jQuery UI autocomplete）下拉菜单：与深色玻璃主题一致 */
body.glass-page .ui-autocomplete.ui-widget-content,
body.glass-page .ui-autocomplete.ui-menu {
  background: rgba(20, 22, 34, .97) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, .5) !important;
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  color: rgba(255, 255, 255, .85) !important;
  padding: 6px !important;
}
body.glass-page .ui-autocomplete .ui-menu-item .ui-menu-item-wrapper {
  color: rgba(255, 255, 255, .85) !important;
  border: 0 !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  background: transparent !important;
}
/* 悬停/键盘选中项：靛蓝半透明高亮 */
body.glass-page .ui-autocomplete .ui-menu-item .ui-menu-item-wrapper.ui-state-active,
body.glass-page .ui-autocomplete .ui-menu-item .ui-menu-item-wrapper.ui-state-focus,
body.glass-page .ui-autocomplete .ui-menu-item-wrapper:hover {
  background: rgba(99, 102, 241, .35) !important;
  border: 0 !important;
  color: #ffffff !important;
  margin: 0 !important;
}
/* 补全项内的高亮关键字 */
body.glass-page .ui-autocomplete .ui-menu-item .ui-state-active {
  color: #ffffff !important;
}
/* 分隔线 */
body.glass-page .ui-autocomplete .ui-menu-divider {
  border-top: 1px solid rgba(255, 255, 255, .10) !important;
  margin: 4px 0 !important;
}

/* 详情页「文章最后更新」提示 alert alert-primary：与深色玻璃主题一致 */
body.glass-page .alert.alert-primary {
  background: rgba(99, 102, 241, .18) !important;
  border: 1px solid rgba(99, 102, 241, .45) !important;
  color: #c7d2fe !important;
  border-radius: 12px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

/* 详情页相关文章小卡片（card p-0 position-relative h-100）：与外层玻璃卡片风格一致 */
body.glass-page .card .card.p-0.position-relative.h-100 {
  background: rgba(255, 255, 255, .05) !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 14px !important;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
body.glass-page .card .card.p-0.position-relative.h-100:hover {
  border-color: rgba(99, 102, 241, .55) !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .4);
  transform: translateY(-2px);
}
/* 图片裁切圆角，与外框一致 */
body.glass-page .card .card.p-0.position-relative.h-100 .card-image,
body.glass-page .card .card.p-0.position-relative.h-100 .card-img-top {
  border-radius: 13px 13px 0 0 !important;
}
/* 小卡片内标题链接颜色 */
body.glass-page .card .card.p-0.position-relative.h-100 .card-body a.stretched-link {
  color: #cfd3e8 !important;
}
body.glass-page .card .card.p-0.position-relative.h-100 .card-body a.stretched-link:hover {
  color: #8ea2ff !important;
}

/* ---------- 小屏优化：减少光斑数量与模糊，降低开销 ---------- */
@media (max-width: 768px) {
  #opus-bg .orb {
    filter: blur(60px);
    opacity: .35;
  }
  #opus-bg .orb:nth-child(3) {
    display: none;
  }
}

/* ==========================================================================
   移动端（<992px）展开的导航折叠面板 navbar-collapse.show
   style.css 里默认是白底面板 + 浅灰分隔线，改为深色玻璃，与全站统一
   ========================================================================== */
@media (max-width: 991.98px) {
  body.login-page header .navbar-collapse.collapse.show,
  body.login-page header .navbar-collapse.collapsing,
  body.glass-page header .navbar-collapse.collapse.show,
  body.glass-page header .navbar-collapse.collapsing {
    /* 与 header 同色不透明背景，彻底消除接缝透光 */
    background: rgba(20, 22, 34, 1) !important;
    border: 0 !important;
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    backdrop-filter: blur(18px) saturate(140%);
    box-shadow: 0 20px 40px rgba(0, 0, 0, .5) !important;
    border-radius: 0 0 16px 16px;
    /* 紧贴 header 底边并向上覆盖 1px，消除缝隙 */
    top: calc(100% - 1px) !important;
    margin: 0 !important;
  }
  /* 移动端：header 边框全部清除，且与面板背景完全同色，避免接缝色差/亮线 */
  body.login-page header.header-static,
  body.glass-page header.header-static {
    background: rgba(20, 22, 34, 1) !important;
    border: 0 !important;
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  /* 面板内导航项分隔线：默认 rgba(0,0,0,.1) 浅灰 -> 半透明白 */
  body.login-page header .navbar-collapse .navbar-nav > .nav-item,
  body.glass-page header .navbar-collapse .navbar-nav > .nav-item {
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
  }
  /* 面板内导航文字 */
  body.login-page header .navbar-collapse .nav-link,
  body.glass-page header .navbar-collapse .nav-link {
    color: rgba(255, 255, 255, .85) !important;
  }
  body.login-page header .navbar-collapse .nav-link.active,
  body.glass-page header .navbar-collapse .nav-link.active {
    color: #8ea2ff !important;
    background: transparent !important;
  }
  /* 面板内的下拉菜单（文档等）：去掉默认白色弹层，融入面板 */
  body.login-page header .navbar-collapse .dropdown-menu,
  body.glass-page header .navbar-collapse .dropdown-menu {
    background: rgba(255, 255, 255, .04) !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 10px;
  }
  body.login-page header .navbar-collapse .dropdown-item,
  body.glass-page header .navbar-collapse .dropdown-item {
    color: rgba(255, 255, 255, .82) !important;
  }
  body.login-page header .navbar-collapse .dropdown-item:hover,
  body.login-page header .navbar-collapse .dropdown-item:focus,
  body.glass-page header .navbar-collapse .dropdown-item:hover,
  body.glass-page header .navbar-collapse .dropdown-item:focus {
    background: transparent !important;
    color: #8ea2ff !important;
  }
  /* 面板内搜索框占满宽度 */
  body.login-page header .navbar-collapse .form-control.bg-light,
  body.glass-page header .navbar-collapse .form-control.bg-light {
    width: 100% !important;
  }
}

/* ---------- 尊重用户的减少动态偏好 ---------- */
@media (prefers-reduced-motion: reduce) {
  #opus-bg .orb,
  body.login-page .card,
  body.glass-page .card {
    animation: none !important;
  }
}
