/* ============================================================
   烛心站点 · 导航菜单丝滑渲染 v1
   包含：
     · 标签按钮：弹性悬停 + 光晕 + 图标微动 + 玻璃底衬
     · 下划线：缓动跟随 + 发光
     · 汉堡按钮：旋转 + 线条变形
     · 官方群/登录按钮：光泽掠过 + 抬升
     · 抽屉导航项：逐条滑入
   ============================================================ */

/* ---------- 1. 标签按钮本体 ---------- */
.tabs .tab {
  position: relative;
  border-radius: 12px;
  padding: 14px 18px;
  transition:
    color .28s cubic-bezier(.4, 0, .2, 1),
    background .28s cubic-bezier(.4, 0, .2, 1),
    transform .32s cubic-bezier(.34, 1.4, .64, 1),
    box-shadow .32s ease;
  will-change: transform;
  -webkit-tap-highlight-color: transparent;
}

/* 玻璃底衬（悬停浮现） */
.tabs .tab::before {
  content: '';
  position: absolute;
  inset: 6px 6px 6px 6px;
  border-radius: 10px;
  background: linear-gradient(180deg,
    rgba(255, 255, 255, .055),
    rgba(255, 255, 255, .015));
  border: 1px solid rgba(255, 255, 255, .06);
  opacity: 0;
  transform: scale(.9);
  transition: opacity .3s ease, transform .32s cubic-bezier(.34, 1.4, .64, 1);
  pointer-events: none;
  z-index: -1;
}

/* 光泽掠过 */
.tabs .tab::after {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: 10px;
  background: linear-gradient(115deg,
    transparent 20%,
    rgba(232, 163, 61, .18) 46%,
    rgba(255, 226, 168, .13) 52%,
    transparent 78%);
  opacity: 0;
  transform: translateX(-120%);
  transition: opacity .2s ease;
  pointer-events: none;
  overflow: hidden;
}

.tabs .tab:hover {
  color: var(--text);
  transform: translateY(-2px);
}
.tabs .tab:hover::before {
  opacity: 1;
  transform: scale(1);
}
.tabs .tab:hover::after {
  animation: tabSheen .85s cubic-bezier(.3, 0, .2, 1);
}
@keyframes tabSheen {
  0%   { opacity: .95; transform: translateX(-120%); }
  100% { opacity: 0;   transform: translateX(120%); }
}

/* 图标微动 */
.tabs .tab .ti {
  display: inline-block;
  transition: transform .34s cubic-bezier(.34, 1.5, .64, 1), filter .3s ease;
}
.tabs .tab:hover .ti {
  transform: translateY(-1px) scale(1.14) rotate(-3deg);
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 60%, transparent));
}

/* 按下反馈 */
.tabs .tab:active {
  transform: translateY(0) scale(.965);
  transition-duration: .09s;
}

/* 激活态：金色 + 柔光 */
.tabs .tab.active {
  color: var(--accent);
  text-shadow: 0 0 18px color-mix(in srgb, var(--accent) 42%, transparent);
}
.tabs .tab.active .ti {
  filter: drop-shadow(0 0 10px color-mix(in srgb, var(--accent) 72%, transparent));
}

/* 外部跳转标签的小箭头 */
.tabs .tab.tab-ext::marker { content: ''; }

/* ---------- 2. 下划线（缓动 + 发光） ---------- */
.tab-underline {
  transition:
    transform .46s cubic-bezier(.34, 1.32, .64, 1),
    width .46s cubic-bezier(.34, 1.32, .64, 1),
    opacity .3s ease,
    box-shadow .3s ease !important;
  box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 65%, transparent),
              0 2px 8px color-mix(in srgb, var(--accent) 40%, transparent) !important;
}

/* ---------- 3. 汉堡按钮 ---------- */
.navbtn {
  transition: background .26s ease, transform .3s cubic-bezier(.34, 1.4, .64, 1) !important;
}
.navbtn:hover {
  background: rgba(255, 255, 255, .07);
  transform: scale(1.06);
}
.navbtn:active { transform: scale(.94); }
.navbtn .nb-line {
  transition:
    transform .38s cubic-bezier(.34, 1.4, .64, 1),
    opacity .26s ease,
    width .34s cubic-bezier(.34, 1.4, .64, 1) !important;
}
.navbtn[aria-expanded="true"] .nb-line:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}
.navbtn[aria-expanded="true"] .nb-line:nth-child(2) {
  opacity: 0; transform: scaleX(.3);
}
.navbtn[aria-expanded="true"] .nb-line:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* ---------- 4. 官方群 / 登录按钮 ---------- */
.groupbtn, .loginbtn {
  position: relative;
  overflow: hidden;
  transition:
    background .28s ease,
    transform .3s cubic-bezier(.34, 1.4, .64, 1),
    box-shadow .3s ease,
    filter .25s ease !important;
}
.groupbtn::after, .loginbtn::after {
  content: '';
  position: absolute;
  top: 0; left: -60%;
  width: 42%; height: 100%;
  background: linear-gradient(100deg,
    transparent,
    rgba(255, 255, 255, .42),
    transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}
.groupbtn:hover::after, .loginbtn:hover::after {
  animation: btnSheen .78s cubic-bezier(.3, 0, .2, 1);
}
@keyframes btnSheen {
  0%   { left: -60%; }
  100% { left: 130%; }
}
.loginbtn:hover { transform: translateY(-2px) scale(1.015); }
.groupbtn:hover { transform: translateY(-2px); }

/* ---------- 5. 抽屉导航项 ---------- */
.drawer a, .drawer .ditem, .drawer-item {
  transition:
    background .26s ease,
    color .26s ease,
    padding-left .3s cubic-bezier(.34, 1.4, .64, 1),
    transform .3s cubic-bezier(.34, 1.4, .64, 1) !important;
}
.drawer a:hover, .drawer .ditem:hover, .drawer-item:hover {
  padding-left: 6px;
  transform: translateX(2px);
}

/* 抽屉打开时逐条滑入 */
.drawer.open a, .drawer.open .ditem, .drawer.open .drawer-item {
  animation: drawerIn .42s cubic-bezier(.22, 1.3, .36, 1) backwards;
}
.drawer.open a:nth-child(1) { animation-delay: .02s; }
.drawer.open a:nth-child(2) { animation-delay: .05s; }
.drawer.open a:nth-child(3) { animation-delay: .08s; }
.drawer.open a:nth-child(4) { animation-delay: .11s; }
.drawer.open a:nth-child(5) { animation-delay: .14s; }
.drawer.open a:nth-child(6) { animation-delay: .17s; }
.drawer.open a:nth-child(7) { animation-delay: .20s; }
.drawer.open a:nth-child(8) { animation-delay: .23s; }
@keyframes drawerIn {
  0%   { opacity: 0; transform: translateX(-16px); }
  100% { opacity: 1; transform: translateX(0); }
}

/* ---------- 6. 通用：所有卡片/按钮统一缓动 ---------- */
.acard, .card, button, .pcat, .pbtn, .lb-btn, .refresh-btn {
  transition:
    transform .3s cubic-bezier(.34, 1.4, .64, 1),
    box-shadow .3s ease,
    border-color .26s ease,
    background .26s ease;
}
.acard:hover, .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 40px -18px rgba(0, 0, 0, .9),
              0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent);
}

/* ---------- 7. 可访问性 ---------- */
@media (prefers-reduced-motion: reduce) {
  .tabs .tab, .tabs .tab::before, .tabs .tab::after,
  .navbtn .nb-line, .groupbtn, .loginbtn,
  .acard, .card, button {
    transition: color .15s ease, background .15s ease !important;
    animation: none !important;
  }
  .tabs .tab:hover { transform: none; }
  .acard:hover, .card:hover { transform: none; }
}

/* 移动端：减少重绘 */
@media (max-width: 768px) {
  .tabs .tab::after { display: none; }        /* 光泽动效省电 */
  .tabs .tab:hover { transform: none; }
}

/* ===== STAR-ZFIX：确保星空可见（不被 .bg-layer 遮挡） ===== */
.bg-layer {
  z-index: -1 !important;
  background: transparent !important;
  pointer-events: none;
}
/* 星空层级（由 starfield.css 统一管理，这里不再覆盖） */

/* 星空之下的 bg-layer orb 保持可见但不遮挡 */
.bg-layer .orb { opacity: .5; }
/* ============================================================
   抽屉导航丝滑动效（补齐遗漏的元素）
   覆盖：.dnav-item / .dnav-ic / .dnav-hot / .dnav-ext / .dnav-sec
        .drawer-group / .drawer-version / .drawer-foot
        .rm-btn / .gmodal-btn / .to-top / .refresh-btn
   ============================================================ */

/* ---------- 抽屉导航项 ---------- */
.drawer-nav .dnav-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  margin: 2px 0;
  border-radius: 11px;
  color: var(--muted);
  text-decoration: none;
  overflow: hidden;
  transition:
    background .28s cubic-bezier(.4, 0, .2, 1),
    color .28s cubic-bezier(.4, 0, .2, 1),
    transform .32s cubic-bezier(.34, 1.4, .64, 1),
    box-shadow .3s ease,
    padding-left .3s cubic-bezier(.34, 1.4, .64, 1);
  -webkit-tap-highlight-color: transparent;
}

/* 左侧高亮竖条（悬停时展开） */
.drawer-nav .dnav-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--accent) 90%, transparent),
    color-mix(in srgb, var(--accent) 45%, transparent));
  transform: translateY(-50%);
  transition: height .3s cubic-bezier(.34, 1.4, .64, 1);
  box-shadow: 0 0 10px color-mix(in srgb, var(--accent) 65%, transparent);
}

/* 光泽掠过 */
.drawer-nav .dnav-item::after {
  content: '';
  position: absolute;
  top: 0; left: -70%;
  width: 45%; height: 100%;
  background: linear-gradient(105deg,
    transparent,
    rgba(255, 255, 255, .07),
    transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}

.drawer-nav .dnav-item:hover {
  background: color-mix(in srgb, var(--accent) 9%, transparent);
  color: var(--text);
  transform: translateX(4px);
  padding-left: 19px;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 14%, transparent);
}
.drawer-nav .dnav-item:hover::before { height: 62%; }
.drawer-nav .dnav-item:hover::after {
  animation: dnavSheen .7s cubic-bezier(.3, 0, .2, 1);
}
@keyframes dnavSheen {
  0%   { left: -70%; }
  100% { left: 130%; }
}
.drawer-nav .dnav-item:active {
  transform: translateX(4px) scale(.975);
  transition-duration: .09s;
}

/* 图标微动 */
.drawer-nav .dnav-ic {
  display: inline-block;
  font-size: 16px;
  transition: transform .34s cubic-bezier(.34, 1.5, .64, 1), filter .3s ease;
}
.drawer-nav .dnav-item:hover .dnav-ic {
  transform: scale(1.2) rotate(-5deg);
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 70%, transparent));
}

/* 激活项 */
.drawer-nav .dnav-item.active,
.drawer-nav .dnav-item[aria-current="page"] {
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.drawer-nav .dnav-item.active::before,
.drawer-nav .dnav-item[aria-current="page"]::before {
  height: 62%;
}

/* 外部跳转小箭头 */
.drawer-nav .dnav-ext {
  margin-left: auto;
  font-size: 12px;
  opacity: .5;
  transition: transform .3s cubic-bezier(.34, 1.4, .64, 1), opacity .25s ease;
}
.drawer-nav .dnav-item:hover .dnav-ext {
  opacity: 1;
  transform: translate(3px, -3px);
}

/* "新"角标 */
.drawer-nav .dnav-hot {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 99px;
  color: #1a1206;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--accent) 95%, #fff 5%),
    color-mix(in srgb, var(--accent) 75%, #b8730a 25%));
  box-shadow: 0 2px 8px -2px color-mix(in srgb, var(--accent) 70%, transparent);
  animation: hotPulse 2.2s ease-in-out infinite;
  transition: transform .3s cubic-bezier(.34, 1.5, .64, 1);
}
@keyframes hotPulse {
  0%, 100% { box-shadow: 0 2px 8px -2px color-mix(in srgb, var(--accent) 70%, transparent); }
  50%      { box-shadow: 0 2px 14px -1px color-mix(in srgb, var(--accent) 95%, transparent); }
}
.drawer-nav .dnav-item:hover .dnav-hot {
  transform: scale(1.12) rotate(-4deg);
}

/* 分组标题 */
.drawer-nav .dnav-sec {
  padding: 12px 14px 6px;
  font-size: 11px;
  letter-spacing: 1.5px;
  color: var(--muted);
  opacity: .65;
  text-transform: uppercase;
  transition: color .3s ease, letter-spacing .3s ease;
}
.drawer-nav .dnav-sec:hover {
  color: var(--accent);
  letter-spacing: 2.2px;
}

/* ---------- 抽屉底部 ---------- */
.drawer-group {
  position: relative;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 14px;
  border-radius: 11px;
  border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent);
  background: color-mix(in srgb, var(--accent) 9%, transparent);
  color: var(--accent);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition:
    background .28s ease,
    transform .3s cubic-bezier(.34, 1.4, .64, 1),
    box-shadow .3s ease;
}
.drawer-group::after {
  content: '';
  position: absolute;
  top: 0; left: -70%;
  width: 45%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .3), transparent);
  transform: skewX(-18deg);
}
.drawer-group:hover {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -10px color-mix(in srgb, var(--accent) 70%, transparent);
}
.drawer-group:hover::after { animation: dnavSheen .75s cubic-bezier(.3, 0, .2, 1); }
.drawer-group:active { transform: scale(.97); }

.drawer-version {
  text-align: center;
  font-size: 11px;
  color: var(--muted);
  opacity: .55;
  margin-top: 10px;
  transition: opacity .3s ease, color .3s ease;
}
.drawer-version:hover { opacity: .9; color: var(--accent); }

/* ---------- 弹窗按钮 ---------- */
.rm-btn, .gmodal-btn {
  position: relative;
  overflow: hidden;
  transition:
    background .28s ease,
    transform .3s cubic-bezier(.34, 1.4, .64, 1),
    box-shadow .3s ease,
    border-color .26s ease !important;
}
.rm-btn::after, .gmodal-btn::after {
  content: '';
  position: absolute;
  top: 0; left: -70%;
  width: 45%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .22), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}
.rm-btn:hover, .gmodal-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px -10px rgba(0, 0, 0, .9);
}
.rm-btn:hover::after, .gmodal-btn:hover::after {
  animation: dnavSheen .72s cubic-bezier(.3, 0, .2, 1);
}
.rm-btn:active, .gmodal-btn:active { transform: scale(.97); }

/* ---------- 回到顶部按钮 ---------- */
.to-top {
  transition:
    opacity .34s ease,
    transform .34s cubic-bezier(.34, 1.4, .64, 1),
    background .28s ease,
    box-shadow .3s ease !important;
}
.to-top:hover {
  transform: translateY(-4px) scale(1.06);
  box-shadow: 0 10px 30px -10px color-mix(in srgb, var(--accent) 80%, transparent);
}
.to-top:active { transform: scale(.94); }

/* ---------- 刷新按钮 ---------- */
.refresh-btn {
  transition:
    transform .3s cubic-bezier(.34, 1.4, .64, 1),
    background .26s ease,
    border-color .26s ease !important;
}
.refresh-btn:hover {
  transform: rotate(-14deg) scale(1.08);
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
}
.refresh-btn:active { transform: rotate(0) scale(.92); }

/* ---------- 主题标签 / 单位切换等小按钮 ---------- */
.qt-unit button,
.ttl,
.mon-head button,
.pts-overview button {
  transition:
    transform .28s cubic-bezier(.34, 1.4, .64, 1),
    background .24s ease,
    color .24s ease,
    border-color .24s ease !important;
}
.qt-unit button:hover {
  transform: translateY(-2px);
}
.qt-unit button:active {
  transform: translateY(0) scale(.94);
}

/* ---------- 可访问性 ---------- */
@media (prefers-reduced-motion: reduce) {
  .drawer-nav .dnav-item,
  .drawer-nav .dnav-item::before,
  .drawer-nav .dnav-item::after,
  .drawer-group,
  .rm-btn,
  .gmodal-btn,
  .to-top,
  .refresh-btn {
    transition: background .15s ease, color .15s ease !important;
    animation: none !important;
  }
  .drawer-nav .dnav-item:hover { transform: none; padding-left: 14px; }
  .to-top:hover { transform: none; }
}
/* ============================================================
   补齐漏掉的按钮动效
   覆盖：.brand（Logo）/ 日期切换按钮 / .qqg-copy（复制群号）/ .rm-x（关闭）
   ============================================================ */

/* ---------- 1. Logo / 品牌 ---------- */
a.brand, .brand {
  position: relative;
  transition:
    transform .34s cubic-bezier(.34, 1.4, .64, 1),
    filter .3s ease;
  -webkit-tap-highlight-color: transparent;
}
a.brand:hover, .brand:hover {
  transform: translateY(-1px);
  filter: brightness(1.12);
}
a.brand:active, .brand:active {
  transform: scale(.97);
}
/* Logo 图标悬停放大旋转 */
.brand-avatar {
  display: inline-block;
  transition: transform .38s cubic-bezier(.34, 1.5, .64, 1), filter .3s ease;
}
a.brand:hover .brand-avatar,
.brand:hover .brand-avatar {
  transform: scale(1.14) rotate(-8deg);
  filter: drop-shadow(0 0 12px color-mix(in srgb, var(--accent) 75%, transparent));
}
.brand-text b, .brand-text i {
  transition: color .28s ease, text-shadow .3s ease;
}
.brand:hover .brand-text b {
  color: var(--accent);
  text-shadow: 0 0 16px color-mix(in srgb, var(--accent) 45%, transparent);
}

/* ---------- 2. 日期切换按钮（额度） ---------- */
.mon-days button,
.qt-days button,
[data-date] button,
button[data-day] {
  position: relative;
  overflow: hidden;
  transition:
    transform .28s cubic-bezier(.34, 1.4, .64, 1),
    background .24s ease,
    color .24s ease,
    border-color .24s ease,
    box-shadow .28s ease !important;
}
.mon-days button:hover,
.qt-days button:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--accent) 48%, transparent);
  box-shadow: 0 6px 18px -8px color-mix(in srgb, var(--accent) 60%, transparent);
}
.mon-days button:active,
.qt-days button:active {
  transform: translateY(0) scale(.94);
}

/* 通用兜底：任何小圆角按钮都加基础动效 */
button:not([disabled]) {
  transition:
    transform .28s cubic-bezier(.34, 1.4, .64, 1),
    background .24s ease,
    color .24s ease,
    border-color .24s ease,
    box-shadow .28s ease,
    filter .24s ease;
}
button:not([disabled]):hover {
  filter: brightness(1.08);
}
button:not([disabled]):active {
  transform: scale(.96);
}

/* ---------- 3. 复制群号按钮 ---------- */
.qqg-copy {
  position: relative;
  overflow: hidden;
  transition:
    transform .3s cubic-bezier(.34, 1.4, .64, 1),
    background .26s ease,
    box-shadow .3s ease,
    border-color .26s ease !important;
}
.qqg-copy::after {
  content: '';
  position: absolute;
  top: 0; left: -70%;
  width: 45%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .3), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}
.qqg-copy:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -10px color-mix(in srgb, var(--accent) 70%, transparent);
}
.qqg-copy:hover::after {
  animation: btnShineOnce .72s cubic-bezier(.3, 0, .2, 1);
}
.qqg-copy:active { transform: scale(.96); }

@keyframes btnShineOnce {
  0%   { left: -70%; }
  100% { left: 130%; }
}

/* 复制成功后的反馈动效 */
.qqg-copy.copied,
.qqg-copy.ok {
  animation: copiedPop .5s cubic-bezier(.34, 1.5, .64, 1);
}
@keyframes copiedPop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}

/* ---------- 4. 弹窗关闭按钮 ---------- */
.rm-x {
  transition:
    transform .32s cubic-bezier(.34, 1.5, .64, 1),
    background .26s ease,
    color .26s ease,
    box-shadow .28s ease !important;
}
.rm-x:hover {
  transform: rotate(90deg) scale(1.16);
  background: rgba(255, 93, 93, .16);
  color: #ff8a8a;
  box-shadow: 0 0 18px -4px rgba(255, 93, 93, .6);
}
.rm-x:active {
  transform: rotate(90deg) scale(.94);
}

/* 其他关闭类按钮通用 */
.modal-x, .gmodal-x, .close-btn, [aria-label*="关闭"] {
  transition:
    transform .32s cubic-bezier(.34, 1.5, .64, 1),
    background .26s ease,
    color .26s ease !important;
}
.modal-x:hover, .gmodal-x:hover, .close-btn:hover, [aria-label*="关闭"]:hover {
  transform: rotate(90deg) scale(1.14);
}

/* ---------- 5. 输入框聚焦动效 ---------- */
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--accent) 60%, transparent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent),
              0 0 20px -6px color-mix(in srgb, var(--accent) 50%, transparent) !important;
  transition: border-color .24s ease, box-shadow .3s ease;
}

/* ---------- 6. 可访问性 ---------- */
@media (prefers-reduced-motion: reduce) {
  a.brand, .brand, .brand-avatar,
  button, .qqg-copy, .rm-x, .modal-x, .gmodal-x {
    transition: background .15s ease, color .15s ease !important;
    animation: none !important;
  }
  a.brand:hover, .brand:hover,
  .brand:hover .brand-avatar,
  button:hover, .qqg-copy:hover, .rm-x:hover {
    transform: none !important;
  }
}

/* ===== 动画全关后的兜底：reveal 元素直接可见（保留悬停） ===== */
.reveal,
.reveal.in {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  animation-delay: 0s !important;
  filter: none !important;
}
.stat, .tl-item, .acard, .li, .block-title, .bar-item, .tag, .chip {
  opacity: 1 !important;
  animation: none !important;
  animation-delay: 0s !important;
}
