/* ==========================================================================
   K3 稿 · 浮光 —— 全站皮肤层（定稿）
   由 od-home-clear-k3.html 定稿令牌提炼。只改材质与色阶：不改任何布局、
   字号、间距与信息密度。加载顺序：全站最后一个样式表。
   ========================================================================== */

/* ---------- 0 令牌：墨阶与克莱因蓝 ---------- */
:root {
  --bg:#FBFCFE;
  --ink:#111114; --ink2:#4B4B52; --ink3:#8E8E96;
  --tx2:#4B4B52; --tx3:#8E8E96;
  --line:#E7E7E4; --line2:#F1F1EF; --line-soft:#F1F1EF; --th:#F7F7F5;
  --panel2:#F8F9FB; --panel3:#F2F3F5;
  --accent:#1E3FDF; --accent-bg:#EDF0FE; --accent-bd:#C9D2F8;
}

/* ---------- 1 底层流光：固定层，36s 呼吸 ---------- */
html { background:#FBFCFE; }
body { background:transparent; }
body::before {
  content:""; position:fixed; inset:-4%; z-index:-1; pointer-events:none;
  background:
    radial-gradient(52% 42% at 88% -6%, rgba(30,63,223,.10), transparent 62%),
    radial-gradient(46% 38% at 6% 4%, rgba(23,122,76,.07), transparent 60%),
    radial-gradient(60% 46% at 55% 108%, rgba(211,132,44,.08), transparent 64%);
  animation:k3drift 36s ease-in-out infinite alternate;
}
@keyframes k3drift { to { transform:translate3d(1.6%,1.2%,0) scale(1.05); } }

/* ---------- 2 卡片：磨砂玻璃悬浮 ----------
   选择器按各页面原有作用域逐条对齐（同优先级、后加载胜出）。 */
:is(.panel, .goal, .qlist, .rail, .escbox, .wbar, .an-finding, .an-main, .an-related,
    .journey-disclosure, .gm-metrics, .hist-card, .hist-catalog,
    .home-b .card, .w3 .card, .ddx .card, .dgx .card, .gmx .card, .fnx .card,
    .gm-overview .card.block, .uik .uik-card, .uik .uik-hd, .uik .uik-sec,
    .uik .uik-fcard, .uik .uik-mini-page .mc, .uik-cs .cs-card, .uik-cs .cs-queue,
    .uik-ns .ns-find, .uik .uik-bar) {
  background:rgba(255,255,255,.66);
  border:1px solid rgba(255,255,255,.75);
  backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:0 1px 2px rgba(17,23,40,.05), 0 16px 40px -16px rgba(17,23,40,.14),
             inset 0 1px 0 rgba(255,255,255,.8);
}
/* R21 曾把卡片描边与投影抹平，这里恢复玻璃边与浮起 */
#page.uik .card { border-color:rgba(255,255,255,.75);
  box-shadow:0 1px 2px rgba(17,23,40,.05), 0 16px 40px -16px rgba(17,23,40,.14),
             inset 0 1px 0 rgba(255,255,255,.8); }
/* cs 横幅保留原结构，同样放透 */
.uik-cs .cs-banner { background:rgba(255,255,255,.66);
  backdrop-filter:blur(18px) saturate(1.5); -webkit-backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 1px 2px rgba(17,23,40,.05), 0 16px 40px -16px rgba(17,23,40,.14),
             inset 0 1px 0 rgba(255,255,255,.8); }
/* 悬停浮起：可点卡片 */
:is(.uik .fcard, .uik .uik-fcard, .uik-ns .ns-find):hover {
  box-shadow:0 1px 2px rgba(17,23,40,.06), 0 24px 56px -16px rgba(17,23,40,.18),
             inset 0 1px 0 rgba(255,255,255,.85);
}

/* ---------- 3 框架玻璃化：侧栏 / 顶栏 / 抽屉 / 浮层 ---------- */
#side {
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(18px) saturate(1.5); -webkit-backdrop-filter:blur(18px) saturate(1.5);
  border-right:1px solid var(--line);
}
#side .brand { color:var(--ink); }
#side .brand i { background:var(--ink); color:#fff; }
.nav-label { color:var(--ink3); }
.nav-item { color:var(--ink2); }
.nav-item:hover { background:rgba(17,17,20,.05); }
.nav-item.on { background:var(--ink); color:#fff; box-shadow:none; }
.nav-item .cnt { background:var(--accent); color:#fff; }
.nav-item.on .cnt { background:#fff; color:var(--ink); }
.nav-item.muted { color:var(--ink3); }
.nav-area { color:var(--ink2); }
.nav-area:hover { background:rgba(17,17,20,.05); }
.nav-area small { color:var(--ink3); }
#sideAreas .nav-area.on { background:var(--accent-bg); color:var(--accent); }
#sideAreas .nav-area.uik-hl { background:var(--accent-bg); color:var(--accent); }
.nav-dot { background:#C9CDD4; }
.side-foot { color:var(--ink3); }
#sideAreas .uik-nav-lg { color:var(--ink3); }
#sideAreas .uik-nav-status { color:var(--ink3); }
#sideAreas .uik-nav .uik-trk i.n { background:#D9DCE1; }

#top {
  background:rgba(251,252,254,.72);
  backdrop-filter:blur(18px) saturate(1.5); -webkit-backdrop-filter:blur(18px) saturate(1.5);
}

.drawer, .uik-drawer {
  background:rgba(255,255,255,.8);
  backdrop-filter:blur(22px) saturate(1.5); -webkit-backdrop-filter:blur(22px) saturate(1.5);
  border-left-color:rgba(255,255,255,.75);
}
.drawer-actions { background:transparent; }
.rail-foot { background:rgba(255,255,255,.6);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }

/* 弹层浮件：提示框、口径弹层、返回 pill、设计说明盒 */
#tip, .uik-pop, .notes .box, .view-back, .uik-ghost {
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(16px) saturate(1.5); -webkit-backdrop-filter:blur(16px) saturate(1.5);
}
.view-back:hover { background:rgba(243,245,254,.9); }

/* ---------- 4 方格纸主横幅：保留网格，放透 ---------- */
.uik .uik-grid, .uik.uik-ddir .banner.uik-grid {
  background-color:rgba(255,255,255,.4);
  background-image:
    linear-gradient(rgba(255,255,255,.52), rgba(255,255,255,.72)),
    linear-gradient(#EEF0F3 1px, transparent 1px),
    linear-gradient(90deg, #EEF0F3 1px, transparent 1px);
}

/* ---------- 5 衬线大数字：头部数字用财报衬线，表格数字保持无衬线 ---------- */
:is(.goal .gv, .od-big b, .evidence-summary > b, .uik-drawer .uik-fd-top b,
    #anSummary b, .view-store-stats b, .od-team-numbers b, .hist-number b,
    .uik .uik-wk a b, .hist-saved-kpis b, .hist-summary-kpis b) {
  font-family:"Times New Roman", Georgia, serif;
  font-feature-settings:"lnum" 1; font-weight:400; letter-spacing:-.01em;
}
:is(.goal .gv, .od-big b, .evidence-summary > b, .uik-drawer .uik-fd-top b,
    #anSummary b, .view-store-stats b, .od-team-numbers b, .hist-number b) small {
  font-family:var(--sans); letter-spacing:0;
}

/* ---------- 6 段落墨色块标记 ---------- */
:is(.sec-h h2, .uik .uik-card-h h3)::before {
  content:""; display:inline-block; width:4px; height:12px;
  background:var(--ink); margin-right:9px; vertical-align:-1px;
}

/* ---------- 7 主按钮：墨 ---------- */
:is(button.primary, .btn.primary, .uik .uik-btn.primary, .drawer-actions .primary) {
  background:var(--ink); border-color:var(--ink); color:#fff;
}
:is(button.primary, .btn.primary, .uik .uik-btn.primary):hover { background:#2A2A30; }

/* ---------- 8 动效兜底 ---------- */
@media (prefers-reduced-motion: reduce) { body::before { animation:none; } }
