/* ═══════════════════════════════════════════════════════════════
   G · 星图索引 Constellation Index —— 全站皮肤层
   myphysics-lab / 覆盖层，非重写
   ═══════════════════════════════════════════════════════════════
   设计来源：docs/restyle/g-feed.html

   视觉主张
     · 深紫星空底（固定层，纯 CSS 渐变，无 canvas / 无粒子脚本）
     · 紫罗兰单一主色 --g-acc，负责外壳（顶栏 / 标题 / 焦点 / 链接）
     · 9 个模块色相族保留原站「每个模块一种颜色」的辨识度，
       只把明度层级重定为 G 的墨阶 / 底阶（见 gfeed-recolor.mjs）
     · 排版手法：超大描边数字、等宽微标签、整行渐变激活

   为什么通篇 !important
     1. 站点 152 个页面用 Tailwind Play CDN 在运行时把 <style> 追加到
        <head>，插入位置晚于本文件，靠文档顺序赢不了（颜色工具类另由
        gfeed-utilities.css 用高一级特异性压制）；
     2. 站点自带 terminal.css / light-theme.css 与各页内联 <style>
        多为单类选择器，与本文件同级；
     因此统一用 !important 建立确定无疑的覆盖优先级。

   主题
     深色为默认；浅色由 html[data-theme="light"] 接管。
     原站两种机制（body.light-theme 类 / html data-theme）由 gfeed.js
     与注入的 head 内联脚本统一同步到 html[data-theme]。

   配色归一
     本文件只「定义令牌 + 重绘组件」；页面里写死的颜色已在构建期由
     scripts/gfeed-recolor.mjs 改写成 var(--g-*)，此处不再逐类重映射。
   ═══════════════════════════════════════════════════════════════ */

/* ─────────── 1. 设计令牌 ─────────── */
:root{
  /* 底阶 */
  --g-bg:#08061A;
  --g-bg-2:#100C28;
  --g-card:#120E2C;
  /* 墨阶 */
  --g-ink:#EFEBFF;
  --g-ink-2:#A79ECB;
  /* ink-3 用在 11–12px 的等宽微标签上，是正文级字号，必须扛住 4.5:1。
     原值 #7A72A4 在卡面（#120E2C）上只有 4.24:1，压深卡面就掉线。 */
  --g-ink-3:#8B83B6;
  /* 线阶 */
  --g-line:#241C48;
  --g-line-2:#372C68;
  /* 主色（紫罗兰） */
  --g-acc:#A855F7;
  --g-acc-2:#C084FC;
  --g-on-acc:#0B0620;
  --g-tint:rgba(168,85,247,.12);
  /* 标题渐变 */
  --g-grad:linear-gradient(100deg,#C084FC,#818CF8 42%,#67E8F9 78%,#34D399);

  /* 9 个模块色相族：主色 / 亮色 */
  --g-emerald:#10B981; --g-emerald-2:#34D399;
  --g-blue:#3B82F6;    --g-blue-2:#60A5FA;
  --g-amber:#F59E0B;   --g-amber-2:#FBBF24;
  --g-purple:#A855F7;  --g-purple-2:#C084FC;
  --g-red:#EF4444;     --g-red-2:#F87171;
  --g-cyan:#06B6D4;    --g-cyan-2:#67E8F9;
  --g-gray:#6B7280;    --g-gray-2:#D1D5DB;
  --g-indigo:#6366F1;  --g-indigo-2:#818CF8;
  --g-rose:#F43F5E;    --g-rose-2:#FB7185;

  /* 星图背景（固定层） */
  --g-sky:
    radial-gradient(circle at 14% -8%,rgba(168,85,247,.34),transparent 56%),
    radial-gradient(circle at 86% 2%,rgba(99,102,241,.28),transparent 54%),
    radial-gradient(circle at 52% 112%,rgba(6,182,212,.20),transparent 58%),
    radial-gradient(1.4px 1.4px at 32px 48px,rgba(255,255,255,.80),transparent),
    radial-gradient(1.1px 1.1px at 148px 122px,rgba(196,181,253,.75),transparent),
    radial-gradient(1.3px 1.3px at 212px 26px,rgba(255,255,255,.62),transparent),
    radial-gradient(1.2px 1.2px at 96px 206px,rgba(147,197,253,.68),transparent),
    linear-gradient(rgba(168,85,247,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(168,85,247,.055) 1px,transparent 1px);
  --g-sky-size:100% 100%,100% 100%,100% 100%,260px 260px,260px 260px,260px 260px,260px 260px,64px 64px,64px 64px;
  --g-sky-repeat:no-repeat,no-repeat,no-repeat,repeat,repeat,repeat,repeat,repeat,repeat;

  /* 接管站点自带令牌：assets/css/terminal.css */
  --bg-dark:var(--g-bg);
  --text-primary:var(--g-ink);
  --accent-emerald:var(--g-emerald);
  --accent-cyan:var(--g-cyan);
  --accent-red:var(--g-red);
  --accent-white:var(--g-ink);
  --terminal-font:var(--g-mono);

  /* 接管文章组件令牌：daolan/html_output/assets/css/terminal.css */
  --bg-primary:var(--g-bg);
  --bg-secondary:var(--g-bg-2);
  --bg-tertiary:var(--g-bg-2);
  --text-secondary:var(--g-ink-2);
  --text-muted:var(--g-ink-2);
  --text-dim:var(--g-ink-3);
  --accent-primary:var(--g-acc);
  --accent-warning:var(--g-amber);
  --accent-yellow:var(--g-amber);
  --border-color:var(--g-line);
  --border-accent:var(--g-line-2);
  --glow-primary:transparent;
  --glow-secondary:transparent;
  --scanline-color:transparent;
  --table-hover:var(--g-tint);
  --inline-code-bg:var(--g-bg-2);
  --inline-code-border:var(--g-line-2);
  --pre-bg:var(--g-bg-2);
  --blockquote-bg:var(--g-bg-2);
  --callout-abstract-bg:var(--g-bg-2);
  --callout-tip-bg:var(--g-bg-2);
  --callout-quote-bg:var(--g-bg-2);
  --callout-question-bg:var(--g-bg-2);
  --callout-warning-bg:var(--g-bg-2);
  --hr-gradient:none;
  --hud-line-primary:none;
  --hud-line-secondary:none;

  /* 页面内联常见通用令牌 */
  --bg:var(--g-bg);
  --bg-color:var(--g-bg);
  --bg-base:var(--g-bg);
  --panel:var(--g-card);
  --panel-bg:var(--g-card);
  --card-bg:var(--g-card);
  --text:var(--g-ink);
  --text-color:var(--g-ink);
  --text-main:var(--g-ink);
  --text-soft:var(--g-ink-2);
  --muted:var(--g-ink-3);
  --border:var(--g-line);
  --line:var(--g-line);
  --shadow:var(--g-acc);
  --accent:var(--g-acc);
  --accent-color:var(--g-acc);
  --primary-color:var(--g-acc);
  --secondary-color:var(--g-ink-2);
  --accent-hover:var(--g-acc-2);
  --primary:var(--g-acc);
  --grid-line:var(--g-line);
  --grid-color:var(--g-line);

  --g-shell:1560px;
  --g-r:14px;
  --g-ease:cubic-bezier(.2,.8,.2,1);
  --g-sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei UI","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --g-mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,"JetBrains Mono",monospace;
}

/* 浅色主题：令牌整体换血（选择器写在 html 上，避免 :has 兼容问题） */
html[data-theme="light"]{
  --g-bg:#F5F3FE;
  --g-bg-2:#FFFFFF;
  --g-card:#FFFFFF;
  --g-ink:#150F33;
  --g-ink-2:#544C7A;
  --g-ink-3:#6E6790;
  --g-line:#E2DEF4;
  --g-line-2:#CCC5E8;
  --g-acc:#7C3AED;
  /* acc-2 在深色下是「更亮的那一档」，在浅色下必须反过来取更深的一档：
     它承担链接、标签、表头文字，白底上要 4.5:1（原 #9B5CF6 只有 4.00:1）。 */
  --g-acc-2:#6D28D9;
  --g-on-acc:#FFFFFF;
  --g-tint:rgba(124,58,237,.09);
  --g-grad:linear-gradient(100deg,#7C3AED,#4F46E5 46%,#0E7490 82%,#047857);

  /* 浅底上模块色必须整体压深两档：这些值会被当文字用（模块徽标 / 强调），
     要过 4.5:1。深色下 base 深、-2 浅；浅色下关系反过来 —— base 浅、-2 深，
     这样「原色偏亮 → 取 -2」的映射在浅底上才是往可读方向走。 */
  --g-emerald:#047857; --g-emerald-2:#065F46;
  --g-blue:#1D4ED8;    --g-blue-2:#1E40AF;
  --g-amber:#92400E;   --g-amber-2:#78350F;
  --g-purple:#6D28D9;  --g-purple-2:#5B21B6;
  --g-red:#B91C1C;     --g-red-2:#991B1B;
  --g-cyan:#155E75;    --g-cyan-2:#164E63;
  --g-gray:#374151;    --g-gray-2:#1F2937;
  --g-indigo:#3730A3;  --g-indigo-2:#312E81;
  --g-rose:#9F1239;    --g-rose-2:#881337;

  --g-sky:
    radial-gradient(circle at 14% -8%,rgba(168,85,247,.16),transparent 56%),
    radial-gradient(circle at 86% 2%,rgba(99,102,241,.13),transparent 54%),
    radial-gradient(circle at 52% 112%,rgba(6,182,212,.10),transparent 58%),
    radial-gradient(1.3px 1.3px at 32px 48px,rgba(124,58,237,.30),transparent),
    radial-gradient(1px 1px at 148px 122px,rgba(99,102,241,.26),transparent),
    radial-gradient(1.2px 1.2px at 212px 26px,rgba(124,58,237,.22),transparent),
    radial-gradient(1.1px 1.1px at 96px 206px,rgba(8,145,178,.24),transparent),
    linear-gradient(rgba(124,58,237,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(124,58,237,.045) 1px,transparent 1px);

  --bg-dark:var(--g-bg);
  --text-primary:var(--g-ink);
  --accent-emerald:var(--g-emerald);
  --accent-cyan:var(--g-cyan);
  --accent-red:var(--g-red);
  --accent-white:var(--g-ink);
  --bg-primary:var(--g-bg);
  --bg-secondary:var(--g-bg-2);
  --bg-tertiary:var(--g-bg-2);
  --text-secondary:var(--g-ink-2);
  --text-muted:var(--g-ink-2);
  --text-dim:var(--g-ink-3);
  --accent-primary:var(--g-acc);
  --border-color:var(--g-line);
  --border-accent:var(--g-line-2);
  --table-hover:var(--g-tint);
  --inline-code-bg:var(--g-bg-2);
  --pre-bg:var(--g-bg-2);
  --blockquote-bg:var(--g-bg-2);
  --bg:var(--g-bg);
  --bg-color:var(--g-bg);
  --bg-base:var(--g-bg);
  --panel:var(--g-card);
  --panel-bg:var(--g-card);
  --card-bg:var(--g-card);
  --text:var(--g-ink);
  --text-color:var(--g-ink);
  --text-main:var(--g-ink);
  --text-soft:var(--g-ink-2);
  --muted:var(--g-ink-3);
  --border:var(--g-line);
  --line:var(--g-line);
  --shadow:var(--g-acc);
  --accent:var(--g-acc);
  --accent-color:var(--g-acc);
  --primary-color:var(--g-acc);
  --secondary-color:var(--g-ink-2);
  --accent-hover:var(--g-acc-2);
  --primary:var(--g-acc);
  --grid-line:var(--g-line);
  --grid-color:var(--g-line);
}

/* ─────────── 2. 基底：星图底 + 墨字 ─────────── */
html{
  -webkit-text-size-adjust:100%;
  background-color:var(--g-bg)!important;
  /* 皮肤层给满宽元素加了边框，窄屏会多出几像素横向溢出。
     用 clip 而非 hidden：clip 不创建滚动容器，sticky 仍然生效。 */
  overflow-x:clip;
}
/* 星图背景：固定层，z-index:-1 落在根背景之上、正文之下，不参与命中 */
html::before{
  content:""!important;
  display:block!important;
  position:fixed!important;
  inset:0!important;
  z-index:-1!important;
  pointer-events:none!important;
  opacity:1!important;
  background-image:var(--g-sky)!important;
  background-size:var(--g-sky-size)!important;
  background-repeat:var(--g-sky-repeat)!important;
  background-attachment:fixed!important;
  filter:none!important;
}
body{
  background:transparent!important;
  background-image:none!important;
  color:var(--g-ink)!important;
  font-family:var(--g-sans)!important;
  line-height:1.72!important;
  letter-spacing:0!important;
  text-shadow:none!important;
  overflow-x:clip;
}
*,*::before,*::after{
  text-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
/* 顶栏是唯一保留毛玻璃的地方（G 的顶栏语汇） */
body > header,header.hud-border,.g-topbar{
  -webkit-backdrop-filter:blur(16px)!important;
  backdrop-filter:blur(16px)!important;
}

/* 杀掉 CRT 扫描线、暗角、噪点、网格底纹等一切装饰性覆盖层 */
body::before,body::after{display:none!important;content:none!important}
.vignette-overlay,.scanner,.scanline,.noise,.grain,.grid-overlay,
.crt-overlay,.flicker-overlay,.overlay-scan{display:none!important}

/* HUD 角标 / 准星（.rc .corner .corner-mark 等装饰方块）——终端语汇，G 一律去除 */
.rc,.corner,.corner-mark,.corner-br,.corner-obs,.hud-border::before,
.hud-border::after,.terminal-container::before,.terminal-container::after{display:none!important}
/* callout 的角标是终端语汇，但 callout 本体是内容组件，保留本体 */
.callout::before,.callout::after{display:none!important}

/* 渐变一律压平（页面自己写在内联 style 上的 linear-gradient 也一并去掉）；
   标题渐变由第 3 节单独重建 */
[class*="bg-gradient"]{background-image:none!important}
[class*="from-"],[class*="via-"],[class*="to-"]{background-image:none!important}
[style*="gradient"]{background-image:none!important}
pre::before{display:none!important}

/* 页面自绘的装饰性伪元素（色点 / 光晕 / LED / 角标）一律抹掉 */
[class*="theme-"]::before,[class*="theme-"]::after,
[class*="node"]::before,[class*="node"]::after,
[class*="dot"]::before,[class*="dot"]::after,
[class*="glow"]::before,[class*="glow"]::after,
[class*="led"]::before,[class*="led"]::after,
[class*="pulse"]::before,[class*="pulse"]::after,
[class*="indicator"]::before,[class*="indicator"]::after,
[class*="status"]::before,[class*="status"]::after{
  background:transparent!important;box-shadow:none!important;filter:none!important;
}
/* 中性化辉光：G 的「光」只出现在悬停与激活态，静态不发光 */
[class*="drop-shadow"]{filter:none!important}
[style*="box-shadow"]{box-shadow:none!important}
[style*="text-shadow"]{text-shadow:none!important}
[style*="backdrop-filter"]{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* 内联深色底（悬浮面板）→ G 深底 */
[style*="rgba(5,5,5"],[style*="rgba(0,0,0"],[style*="rgba(3,3,3"],
[style*="rgb(0,0,0"],[style*="background:#0"],[style*="background: #0"],
[style*="background-color:#0"],[style*="background-color: #0"],
[style*="background:#1"],[style*="background: #1"]{background:var(--g-bg-2)!important}

/* 装饰性动画（闪烁 / 故障 / 扫描 / 呼吸 / 打字机）停掉；功能性过渡保留 */
[class*="animate-"],[class*="anim-"],[class*="crt-"],[class*="blink"],
[class*="glitch"],[class*="flicker"],[class*="scan-"]{animation:none!important}
.blinking-node,.wave-anim,.crt-flicker,.crt-flicker-fast,.orbit-breath,
.eq-bar,.glitch-active{animation:none!important}

/* ─────────── 3. 排版 ─────────── */
h1,h2,h3,h4,h5,h6,
.hd,.title,.hero-title,.page-title,.section-title{
  font-weight:900!important;
  letter-spacing:-.015em!important;
  line-height:1.14!important;
  color:var(--g-ink)!important;
  text-shadow:none!important;
}
h1{font-size:clamp(1.9rem,4.6vw,3.1rem)!important}
h2{font-size:clamp(1.35rem,2.9vw,2rem)!important}
h3{font-size:clamp(1.06rem,1.9vw,1.32rem)!important}
/* 标题渐变：G 的主视觉记号（无 background-clip 支持时回落到墨色） */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  h1{
    background-image:var(--g-grad)!important;
    background-color:transparent!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    -webkit-text-fill-color:transparent!important;
    color:transparent!important;
    filter:none!important;
  }
}
p,li,dd,dt{color:var(--g-ink-2)!important}
strong,b{color:var(--g-ink)!important;font-weight:800!important}
small,.text-xs,.text-\[9px\],.text-\[10px\]{color:var(--g-ink-3)!important}
mark{background:var(--g-acc)!important;color:var(--g-on-acc)!important;padding:0 .14em!important;border-radius:4px!important}
hr{border:0!important;border-top:1px solid var(--g-line-2)!important;margin:1.4rem 0!important}
blockquote{
  border:0!important;border-left:3px solid var(--g-acc)!important;
  background:var(--g-bg-2)!important;padding:.9rem 1.1rem!important;
  border-radius:0 var(--g-r) var(--g-r) 0!important;
  font-style:normal!important;color:var(--g-ink-2)!important;
}
/* 等宽微标签：G 的「仪表读数」语汇 */
code,kbd,samp,pre,.font-mono,[class*="font-mono"],
.terminal-text-small,.sys-tag,.status-tag,.tag{
  font-family:var(--g-mono)!important;
}
pre{
  background:var(--g-bg-2)!important;border:1px solid var(--g-line-2)!important;
  border-radius:var(--g-r)!important;padding:1rem 1.15rem!important;color:var(--g-ink)!important;
}
pre code{color:var(--g-ink)!important}
.inline-code{
  background:var(--g-bg-2)!important;border:1px solid var(--g-line-2)!important;
  color:var(--g-acc-2)!important;border-radius:6px!important;padding:.05em .38em!important;
}

/* ─────────── 4. 链接与焦点 ─────────── */
a{color:inherit;text-decoration:none!important}
a:hover{color:var(--g-acc-2)!important}
:focus-visible{outline:3px solid var(--g-acc-2)!important;outline-offset:3px!important;border-radius:8px!important}
::selection{background:var(--g-acc)!important;color:var(--g-on-acc)!important}
:target{scroll-margin-top:1.6rem}
/* 正文内的行内链接保留可见下划线，避免与普通文字混淆 */
.wiki-link,p a,li a,td a,.callout-content a{
  color:var(--g-acc-2)!important;
  border-bottom:1px solid color-mix(in srgb,var(--g-acc) 55%,transparent)!important;
}
.wiki-link:hover,p a:hover,li a:hover,td a:hover,.callout-content a:hover{
  color:var(--g-acc-2)!important;
  border-bottom-color:var(--g-acc-2)!important;
}

/* ─────────── 5. 组件：卡片 ─────────── */
.sci-card,.sim-card,.terminal-card,.hud-box,.lesson-card,.card,.resource-group,
.question-item,.panel,.mod-card,.info-card{
  background:color-mix(in srgb,var(--g-card) 92%,transparent)!important;
  border:1px solid var(--g-line)!important;
  border-radius:var(--g-r)!important;
  box-shadow:none!important;
  padding:1.1rem 1.2rem!important;
  transition:border-color .28s var(--g-ease),background .28s var(--g-ease),box-shadow .28s var(--g-ease),transform .28s var(--g-ease)!important;
}
.sci-card:hover,.sim-card:hover,.terminal-card:hover,.hud-box:hover,
.lesson-card:hover,.card:hover,.resource-group:hover,.question-item:hover,
.panel:hover,.mod-card:hover,.info-card:hover{
  border-color:var(--g-line-2)!important;
  background:color-mix(in srgb,var(--g-acc) 7%,var(--g-card))!important;
  box-shadow:0 0 34px -14px var(--g-acc)!important;
  transform:translateY(-2px)!important;
}
.sci-card h2,.sci-card h3,.sim-card h3,.lesson-card h3,
.card h2,.card h3,.hud-box h3{color:var(--g-ink)!important}
.sci-card p,.sim-card p,.lesson-card p,.card p,.hud-box p{color:var(--g-ink-2)!important}
/* 卡片色条：保留原站 9 个模块色相族（值已由构建期归一为 var(--g-<族>)） */
.theme-emerald,.theme-blue,.theme-amber,.theme-purple,.theme-red,
.theme-cyan,.theme-gray,.theme-indigo,.theme-rose{position:relative!important}

/* ─────────── 6. 组件：按钮 ─────────── */
.btn,.action-btn,.res-btn,.ctrl-btn,.bb-submit-btn,.nav-item,button[type="submit"],
.btn-primary,.btn-secondary{
  display:inline-flex!important;align-items:center!important;gap:.5rem!important;
  background:color-mix(in srgb,var(--g-bg-2) 78%,transparent)!important;
  color:var(--g-ink)!important;
  border:1px solid var(--g-line-2)!important;
  border-radius:11px!important;
  box-shadow:none!important;
  padding:.58rem 1.05rem!important;
  font-family:var(--g-sans)!important;font-weight:800!important;
  font-size:.8125rem!important;letter-spacing:.01em!important;
  cursor:pointer!important;
  transition:.24s var(--g-ease)!important;
}
.btn:hover,.action-btn:hover,.res-btn:hover,.ctrl-btn:hover,.bb-submit-btn:hover,
.nav-item:hover,button[type="submit"]:hover,.btn-primary:hover,.btn-secondary:hover{
  border-color:var(--g-acc-2)!important;
  color:var(--g-acc-2)!important;
  box-shadow:0 0 24px -8px var(--g-acc)!important;
  transform:translateY(-1px)!important;
}
.btn:active,.action-btn:active,.res-btn:active,.ctrl-btn:active,
.bb-submit-btn:active,button[type="submit"]:active{transform:translateY(0)!important}
/* 主按钮：紫罗兰渐变（G 唯一的实心彩色块） */
.btn-primary,.btn--solid,.action-btn.primary{
  background:linear-gradient(100deg,var(--g-acc),#6366F1)!important;
  border-color:transparent!important;color:#FFF!important;
  box-shadow:0 10px 30px -12px var(--g-acc)!important;
}
.btn-primary:hover,.action-btn.primary:hover{filter:brightness(1.12)!important;color:#FFF!important}
/* 危险按钮：红族 */
.action-btn.danger,.btn-danger,.danger{
  border-color:color-mix(in srgb,var(--g-red) 55%,transparent)!important;color:var(--g-red-2)!important;
}
button:disabled,.btn:disabled,.is-disabled{opacity:.42!important;box-shadow:none!important;cursor:not-allowed!important}

/* ─────────── 7. 组件：导航 ─────────── */
.nav-link,.nav-item{
  display:flex!important;align-items:center!important;gap:10px!important;
  background:transparent!important;color:var(--g-ink-2)!important;
  border:0!important;border-left:2px solid var(--g-line)!important;
  border-radius:0 9px 9px 0!important;box-shadow:none!important;
  padding:.5rem .9rem!important;
  font-family:var(--g-sans)!important;font-weight:600!important;font-size:13.5px!important;
}
.nav-link:hover,.nav-item:hover{
  background:color-mix(in srgb,var(--g-acc) 14%,transparent)!important;
  border-left-color:var(--g-acc-2)!important;
  color:var(--g-ink)!important;
  padding-left:1.25rem!important;
  transform:none!important;box-shadow:none!important;
}
.nav-link::before{display:none!important}
.nav-link.active,.nav-item.active,.nav-link[aria-current]{
  background:color-mix(in srgb,var(--g-acc) 16%,transparent)!important;
  border-left-color:var(--g-acc-2)!important;color:var(--g-ink)!important;
}
/* 等宽徽标 */
.sys-tag,.status-tag,.tag-todo,.card__badge,.tag{
  background:color-mix(in srgb,var(--g-acc) 12%,transparent)!important;
  color:var(--g-acc-2)!important;
  border:1px solid color-mix(in srgb,var(--g-acc-2) 42%,transparent)!important;
  border-radius:5px!important;
  font-size:.6875rem!important;font-weight:800!important;
  letter-spacing:.12em!important;text-transform:uppercase!important;
  padding:.1rem .45rem!important;
}
.status-tag.is-new,.tag-new,.is-new{
  background:linear-gradient(100deg,var(--g-acc),var(--g-acc-2))!important;
  color:var(--g-on-acc)!important;border-color:transparent!important;
}

/* ─────────── 8. 组件：表单 ─────────── */
.search-input,input[type="text"],input[type="email"],input[type="password"],
input[type="number"],input[type="search"],textarea,select{
  background:color-mix(in srgb,var(--g-bg-2) 80%,transparent)!important;
  color:var(--g-ink)!important;
  border:1px solid var(--g-line-2)!important;
  border-radius:11px!important;box-shadow:none!important;
  padding:.6rem .85rem!important;
  font-family:var(--g-mono)!important;font-size:13.5px!important;
  transition:.24s var(--g-ease)!important;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--g-acc-2)!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--g-acc) 20%,transparent),0 0 34px -12px var(--g-acc)!important;
  outline:0!important;
}
input::placeholder,textarea::placeholder{color:var(--g-ink-3)!important;opacity:1!important}
label,.label,.stat-label,.legend-item,.control-group label{
  font-family:var(--g-mono)!important;font-size:.72rem!important;font-weight:700!important;
  letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--g-ink-3)!important;
}

/* ─────────── 9. 组件：表格 / 数据行 ─────────── */
table{border:1px solid var(--g-line)!important;border-collapse:collapse!important;border-radius:var(--g-r)!important;overflow:hidden!important}
th{
  background:color-mix(in srgb,var(--g-acc) 14%,transparent)!important;
  color:var(--g-acc-2)!important;
  border:0!important;border-bottom:1px solid var(--g-line-2)!important;
  font-family:var(--g-mono)!important;font-size:.72rem!important;font-weight:800!important;
  letter-spacing:.14em!important;text-transform:uppercase!important;padding:.55rem .8rem!important;
}
td{border:0!important;border-bottom:1px solid var(--g-line)!important;padding:.5rem .8rem!important;color:var(--g-ink-2)!important}
tr:hover td{background:color-mix(in srgb,var(--g-acc) 7%,transparent)!important}
.stat-row,.tl,.tr,.bl,.br{font-family:var(--g-mono)!important}
.stat-value,.stat-row b{
  color:var(--g-ink)!important;font-weight:900!important;
  font-variant-numeric:tabular-nums!important;letter-spacing:-.02em!important;
}

/* ─────────── 10. 组件：文章标注块 callout ─────────── */
.callout{
  background:var(--g-bg-2)!important;
  border:1px solid var(--g-line)!important;
  border-radius:var(--g-r)!important;
  box-shadow:none!important;margin:1.4rem 0!important;overflow:hidden!important;
}
.callout-title{
  background:color-mix(in srgb,var(--g-acc) 12%,transparent)!important;
  color:var(--g-acc-2)!important;border:0!important;
  border-bottom:1px solid var(--g-line)!important;
  font-family:var(--g-mono)!important;font-weight:800!important;
  letter-spacing:.16em!important;text-transform:uppercase!important;padding:.55rem 1rem!important;
}
.callout-content{padding:1rem 1.1rem!important;color:var(--g-ink-2)!important}
.callout-content p{color:var(--g-ink-2)!important}
.callout-tip,.callout-question{border-left:3px solid var(--g-emerald)!important}
.callout-abstract{border-left:3px solid var(--g-indigo)!important}
.callout-warning{border-left:3px solid var(--g-red)!important}
.callout-quote{border-left:3px solid var(--g-acc)!important}
.callout-quote .callout-title{background:color-mix(in srgb,var(--g-acc) 16%,transparent)!important}

/* ─────────── 11. 组件：装饰线 / 标题线 ─────────── */
.hud-title-line{
  position:relative!important;display:inline-block!important;padding-bottom:.35rem!important;
}
.hud-title-line::after{
  content:""!important;position:absolute!important;left:0!important;bottom:0!important;
  width:100%!important;height:1px!important;
  background:linear-gradient(90deg,var(--g-acc-2),transparent)!important;
}
.hud-title-line.red::after{background:linear-gradient(90deg,var(--g-red-2),transparent)!important}
.terminal-hr{
  border:0!important;border-top:1px solid var(--g-line-2)!important;
  background:none!important;height:0!important;margin:1.3rem 0!important;
}
ul li::before{content:''!important}

/* ─────────── 12. 组件：模态框 / 浮层 ─────────── */
.modal{background:rgba(8,6,26,.72)!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}
html[data-theme="light"] .modal{background:rgba(21,15,51,.32)!important}
.modal-content{
  background:var(--g-card)!important;
  border:1px solid var(--g-line-2)!important;border-radius:var(--g-r)!important;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.75),0 0 60px -20px var(--g-acc)!important;
  color:var(--g-ink)!important;
}
.modal-content .bg-gray-900,.modal-content .bg-black{background:var(--g-bg-2)!important}
#update-panel,#update-content,#visit-panel,#auth-container>a{
  background:var(--g-card)!important;border:1px solid var(--g-line-2)!important;
  border-radius:var(--g-r)!important;color:var(--g-ink)!important;
}
#update-toggle{
  background:linear-gradient(100deg,var(--g-acc),#6366F1)!important;
  color:#FFF!important;border:0!important;border-radius:10px!important;
}

/* 主题切换按钮 → G 的等宽小胶囊（两种 ID 都要覆盖） */
#theme-toggle,#themeToggle{
  background:color-mix(in srgb,var(--g-bg-2) 72%,transparent)!important;
  color:var(--g-ink-2)!important;
  border:1px solid var(--g-line-2)!important;border-radius:10px!important;
  font-family:var(--g-mono)!important;font-size:.6875rem!important;font-weight:800!important;
  letter-spacing:.12em!important;padding:.35rem .75rem!important;
  transition:.24s var(--g-ease)!important;
}
#theme-toggle:hover,#themeToggle:hover{
  border-color:var(--g-acc-2)!important;color:var(--g-acc-2)!important;
  box-shadow:0 0 20px -6px var(--g-acc)!important;
}

/* ─────────── 13. 组件：图标 / 杂项 ─────────── */
.fav-star{color:var(--g-ink-3)!important}
.fav-star.is-active,.fav-star.active{color:var(--g-rose-2)!important}
.decode-text{animation:none!important;color:inherit!important}
.serif-text{font-weight:900!important}
.icon-svg{color:var(--g-acc-2)!important}
.cli-cursor,.cursor-block,.type-cursor{background:var(--g-acc-2)!important}
img,video,canvas,iframe{max-width:100%}
canvas{background:var(--g-bg-2)!important}
.terminal-container{background:transparent!important;border:0!important}

/* ─────────── 14. 滚动条 ─────────── */
::-webkit-scrollbar{width:10px!important;height:10px!important}
::-webkit-scrollbar-track{background:var(--g-bg-2)!important}
::-webkit-scrollbar-thumb{background:var(--g-line-2)!important;border-radius:8px!important}
::-webkit-scrollbar-thumb:hover{background:var(--g-acc)!important}
.custom-scrollbar::-webkit-scrollbar{width:6px!important}
*{scrollbar-color:var(--g-line-2) var(--g-bg-2)}

/* ─────────── 15. 无障碍与降级 ─────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media print{
  html{background:#fff!important}
  html::before{display:none!important}
  body{background:#fff!important;color:#000!important}
  [class*="shadow"]{box-shadow:none!important}
}