/* base.css — 工具类 + body + 输入框基础 */
/* ── 通用工具类 ── */
.is-hidden{display:none!important}
.pip-jade{background:var(--jade-200)}
.pip-gold{background:var(--gold-200)}
.pip-blue{background:var(--blue-200)}
.pip-muted{background:var(--text-muted)}
.pip-disabled{background:var(--text-disabled)}
.clr-jade{color:var(--jade-200)}
.clr-gold{color:var(--gold-200)}
.clr-blue{color:var(--blue-200)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--font-sans);
  background:var(--bg-void);
  color:var(--text-primary);
  overflow-x:hidden;
  overscroll-behavior:none;
  -webkit-font-smoothing:antialiased;
  user-select:none;
}
/* 输入框允许选中文字 */
input, textarea, [contenteditable] { user-select:text; }
button {
  -webkit-tap-highlight-color: transparent;
}
button:focus {
  outline: none;
}
button:focus-visible {
  outline: 1px solid rgba(var(--jade-200-rgb), .45);
  outline-offset: 2px;
}
/* 蓝图网格背景（fixed，随滚动保持参照感） */
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(93,221,170,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(93,221,170,.05) 1px,transparent 1px);
  background-size:24px 24px;
}
/* 空间光晕：多点彩色光源，毛玻璃背后的深度纹理 */
body::after{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    /* 右上 — 翡翠（--jade-200） */
    radial-gradient(ellipse 50% 40% at 78% 18%,
      rgba(var(--jade-200-rgb),.08) 0%,transparent 72%),
    /* 中左 — 秘法紫（--color-arcane） */
    radial-gradient(ellipse 45% 50% at 12% 58%,
      rgba(var(--color-arcane-rgb),.07) 0%,transparent 68%),
    /* 右下 — 蔚蓝（--blue-200） */
    radial-gradient(ellipse 55% 45% at 88% 78%,
      rgba(var(--blue-200-rgb),.08) 0%,transparent 72%),
    /* 中上偏右 — 金（--gold-200） */
    radial-gradient(ellipse 32% 28% at 58% 28%,
      rgba(var(--gold-200-rgb),.05) 0%,transparent 62%),
    /* 左下 — 史诗粉（--color-epic） */
    radial-gradient(ellipse 38% 35% at 22% 82%,
      rgba(var(--color-epic-rgb),.06) 0%,transparent 68%);
  animation:orb-breathe 14s ease-in-out infinite;
  transform-origin:center center;
}

@keyframes orb-breathe{
  0%,100%{transform:scale(1)}
  25%    {transform:scale(1.04)}
  50%    {transform:scale(1.012)}
  75%    {transform:scale(1.032)}
}

@media(prefers-reduced-motion:reduce){
  body::after{animation:none}
}

@media(max-width:767px){
  body::after{animation:none}
}

body:has(.overlay.show)::after,
body:has(#qsheet-overlay.show)::after,
body:has(#tradesheet-overlay.show)::after,
body:has(#dc-overlay.show)::after,
body:has(#cf-overlay.show)::after,
body:has(#donate-overlay.show)::after{
  animation-play-state:paused;
}

/* ========== 全局顶栏 ========== */
#topbar{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--topbar-h);
  background:linear-gradient(180deg,
    #111921 0%,              /* 顶部实色，与安卓状态栏无缝衔接 */
    #111921 20%,             /* 顶部实色衔接安卓 */
