/* =========================================================
   珂玺智库 · KEXI INTELLIGENCE
   全局样式 —— 6 主题（3 浅 + 3 深）× 3 强调色 × 3 字体 × 3 字号
   ========================================================= */

/* ===== 默认主题（米白 paper）===== */
:root,
:root[data-theme="paper"] {
  --bg-0:#ede8d8; --bg:#f5f1e6; --bg-2:#ebe5d2; --bg-3:#ddd5be;
  --paper:#fbf8ee;
  --ink:#1a2238; --ink-soft:#2a334a;
  --gray:rgba(26,34,56,.68);
  --gray-soft:rgba(26,34,56,.46);
  --line:rgba(26,34,56,.12);
  --line-soft:rgba(26,34,56,.08);
  --navy:#1a2238; --navy-deep:#0f1830; --navy-soft:#2a334a;
  --cream:#f5f1e6; --cream-deep:#ebe5d2;
  --danger:#9c4e3c; --success:#3d7350;
  --topbar-bg:rgba(26,34,56,.97); --topbar-fg:#f5f1e6;
  --sitebar-bg:rgba(15,24,48,.97); --sitebar-fg:#f5f1e6;
  --shadow:0 2px 18px rgba(26,34,56,.06);
  --shadow-lg:0 8px 40px rgba(26,34,56,.10);
}

/* 冷灰 slate */
:root[data-theme="slate"] {
  --bg-0:#dcdde2; --bg:#e8e9ec; --bg-2:#d8dae0; --bg-3:#c4c7d0;
  --paper:#f3f4f7;
  --ink:#0d1830; --ink-soft:#1a2540;
  --gray:rgba(13,24,48,.7); --gray-soft:rgba(13,24,48,.48);
  --line:rgba(13,24,48,.14); --line-soft:rgba(13,24,48,.08);
  --navy:#0d1830; --navy-deep:#091226; --navy-soft:#1a2540;
  --cream:#e8e9ec; --cream-deep:#d8dae0;
  --danger:#9c4e3c; --success:#3d7350;
  --topbar-bg:rgba(13,24,48,.97); --topbar-fg:#f3f4f7;
  --sitebar-bg:rgba(9,18,38,.97); --sitebar-fg:#f3f4f7;
  --shadow:0 2px 18px rgba(13,24,48,.07);
  --shadow-lg:0 8px 40px rgba(13,24,48,.12);
}

/* 浅瓷 porcelain */
:root[data-theme="porcelain"] {
  --bg-0:#efece3; --bg:#f8f6f0; --bg-2:#eeebde; --bg-3:#e2dec8;
  --paper:#fffdf7;
  --ink:#2c2a22; --ink-soft:#3d3a30;
  --gray:rgba(44,42,34,.7); --gray-soft:rgba(44,42,34,.48);
  --line:rgba(44,42,34,.14); --line-soft:rgba(44,42,34,.08);
  --navy:#2c2a22; --navy-deep:#1c1b15; --navy-soft:#3d3a30;
  --cream:#f8f6f0; --cream-deep:#eeebde;
  --danger:#9c4e3c; --success:#3d7350;
  --topbar-bg:rgba(44,42,34,.97); --topbar-fg:#f8f6f0;
  --sitebar-bg:rgba(28,27,21,.97); --sitebar-fg:#f8f6f0;
  --shadow:0 2px 18px rgba(44,42,34,.06);
  --shadow-lg:0 8px 40px rgba(44,42,34,.12);
}

/* 海军蓝 navy */
:root[data-theme="navy"] {
  --bg-0:#070f22; --bg:#0d1a36; --bg-2:#152648; --bg-3:#1f365e;
  --paper:#152648;
  --ink:#f5f1e8; --ink-soft:#eae4d3;
  --gray:rgba(245,241,232,.62); --gray-soft:rgba(245,241,232,.42);
  --line:rgba(245,241,232,.12); --line-soft:rgba(245,241,232,.06);
  --navy:#1f365e; --navy-deep:#070f22; --navy-soft:#2a4878;
  --cream:#152648; --cream-deep:#1f365e;
  --danger:#e08882; --success:#7ab080;
  --topbar-bg:rgba(7,15,34,.97); --topbar-fg:#f5f1e8;
  --sitebar-bg:rgba(7,15,34,.97); --sitebar-fg:#f5f1e8;
  --shadow:0 2px 18px rgba(0,0,0,.35); --shadow-lg:0 8px 40px rgba(0,0,0,.5);
}

/* 炭墨 charcoal */
:root[data-theme="charcoal"] {
  --bg-0:#110c07; --bg:#231a10; --bg-2:#33271a; --bg-3:#443524;
  --paper:#33271a;
  --ink:#f3ece0; --ink-soft:#e8e0d0;
  --gray:rgba(243,236,224,.62); --gray-soft:rgba(243,236,224,.42);
  --line:rgba(243,236,224,.12); --line-soft:rgba(243,236,224,.06);
  --navy:#443524; --navy-deep:#110c07; --navy-soft:#55432d;
  --cream:#33271a; --cream-deep:#443524;
  --danger:#e08882; --success:#83b58a;
  --topbar-bg:rgba(17,12,7,.97); --topbar-fg:#f3ece0;
  --sitebar-bg:rgba(17,12,7,.97); --sitebar-fg:#f3ece0;
  --shadow:0 2px 18px rgba(0,0,0,.35); --shadow-lg:0 8px 40px rgba(0,0,0,.5);
}

/* 深森 forest */
:root[data-theme="forest"] {
  --bg-0:#051a13; --bg:#0a2a1f; --bg-2:#10402f; --bg-3:#185942;
  --paper:#10402f;
  --ink:#f0e8d4; --ink-soft:#e4dcc8;
  --gray:rgba(240,232,212,.62); --gray-soft:rgba(240,232,212,.42);
  --line:rgba(240,232,212,.12); --line-soft:rgba(240,232,212,.06);
  --navy:#185942; --navy-deep:#051a13; --navy-soft:#1f7053;
  --cream:#10402f; --cream-deep:#185942;
  --danger:#e08882; --success:#7ad59a;
  --topbar-bg:rgba(5,26,19,.97); --topbar-fg:#f0e8d4;
  --sitebar-bg:rgba(5,26,19,.97); --sitebar-fg:#f0e8d4;
  --shadow:0 2px 18px rgba(0,0,0,.35); --shadow-lg:0 8px 40px rgba(0,0,0,.5);
}

/* ===== 强调色（金 / 朱砂 / 青铜）===== */
/* 默认：金 + 浅色主题 */
:root, :root[data-accent="gold"][data-theme="paper"],
:root[data-accent="gold"][data-theme="slate"],
:root[data-accent="gold"][data-theme="porcelain"] {
  --gold:#9a7c3d; --gold-deep:#876a30; --gold-soft:#b5945a;
}
/* 金 + 深色 */
:root[data-accent="gold"][data-theme="navy"],
:root[data-accent="gold"][data-theme="charcoal"],
:root[data-accent="gold"][data-theme="forest"] {
  --gold:#c9a86b; --gold-deep:#b89557; --gold-soft:#e6c98a;
}
/* 朱砂 + 浅色 */
:root[data-accent="cinnabar"][data-theme="paper"],
:root[data-accent="cinnabar"][data-theme="slate"],
:root[data-accent="cinnabar"][data-theme="porcelain"] {
  --gold:#9c4e3c; --gold-deep:#85402f; --gold-soft:#b66b58;
}
/* 朱砂 + 深色 */
:root[data-accent="cinnabar"][data-theme="navy"],
:root[data-accent="cinnabar"][data-theme="charcoal"],
:root[data-accent="cinnabar"][data-theme="forest"] {
  --gold:#c46b58; --gold-deep:#a8553f; --gold-soft:#d9897a;
}
/* 青铜 + 浅色 */
:root[data-accent="bronze"][data-theme="paper"],
:root[data-accent="bronze"][data-theme="slate"],
:root[data-accent="bronze"][data-theme="porcelain"] {
  --gold:#7d5d3a; --gold-deep:#674a2c; --gold-soft:#9b7855;
}
/* 青铜 + 深色 */
:root[data-accent="bronze"][data-theme="navy"],
:root[data-accent="bronze"][data-theme="charcoal"],
:root[data-accent="bronze"][data-theme="forest"] {
  --gold:#a7825a; --gold-deep:#8a6a48; --gold-soft:#c19c75;
}

/* ===== 字体族 ===== */
:root, :root[data-font="pingfang"] {
  --font-base:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",-apple-system,BlinkMacSystemFont,sans-serif;
  --font-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,sans-serif;
}
:root[data-font="songti"] {
  --font-base:"Source Han Serif SC","Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --font-sans:"Source Han Sans SC","Noto Sans SC","PingFang SC",sans-serif;
}
:root[data-font="heiti"] {
  --font-base:"Source Han Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-sans:"Source Han Sans SC","Noto Sans SC","PingFang SC",sans-serif;
}
:root[data-font="mono"] {
  --font-base:"JetBrains Mono","SF Mono",Menlo,monospace;
  --font-sans:"JetBrains Mono","SF Mono",Menlo,monospace;
}

/* ===== 字号 ===== */
:root, :root[data-size="medium"] { --font-size-base:16px; --font-scale:1; }
:root[data-size="large"]  { --font-size-base:17.5px; --font-scale:1.12; }
:root[data-size="xlarge"] { --font-size-base:20px;   --font-scale:1.35; }

/* ===== Reset ===== */
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-base);
  background:var(--bg);
  color:var(--ink);
  line-height:1.85;
  font-size:var(--font-size-base);
  font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased;
  transition:background-color .3s, color .3s;
}

/* =========================================================
   1. 站点栏（固定在最顶，跨整个视口宽度）
   ========================================================= */
.site-bar {
  position:fixed; top:0; left:0; right:0; width:100%;
  z-index:300;
  height:54px;
  background:var(--sitebar-bg);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--gold);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 28px;
  color:var(--sitebar-fg);
}
/* 全站补偿站点栏占用的 54px */
body.has-site-bar { padding-top:54px; }
@media (max-width:700px) {
  body.has-site-bar { padding-top:50px; }
}
.site-bar-left-wrap { display:flex; align-items:center; gap:10px; }
.site-bar-left {
  display:flex; align-items:center; gap:14px;
  text-decoration:none; color:var(--sitebar-fg);
  transition:opacity .2s;
}
/* 关键修复：站点栏链接不继承全局 a:hover */
.site-bar a, .site-bar a:hover, .site-bar a:visited {
  color:var(--sitebar-fg);
  border:none;
  text-decoration:none;
}
.site-bar-left:hover { opacity:.85; }
.site-bar-left:hover .site-bar-title { color:var(--gold-soft); }
.site-bar-mark {
  width:30px; height:30px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);
  display:flex; align-items:center; justify-content:center;
  font-family:"Source Han Serif SC","Noto Serif SC",serif;
  font-weight:700; color:#fff; font-size:14px;
}
.site-bar-title {
  font-family:var(--font-base); font-weight:600;
  font-size:calc(17px * var(--font-scale)); letter-spacing:4px;
  color:var(--sitebar-fg); transition:color .2s;
}
.site-bar-sub {
  font-family:"Inter","Source Sans Pro",-apple-system,sans-serif;
  font-size:calc(10px * var(--font-scale));
  letter-spacing:3px; color:var(--gold-soft);
  border-left:1px solid var(--gold);
  padding-left:14px; margin-left:6px;
  text-transform:uppercase;
}
.site-bar-right { display:flex; align-items:center; gap:14px; }
.site-bar-crumb {
  font-family:var(--font-sans); font-size:calc(13px * var(--font-scale));
  color:var(--gold-soft); letter-spacing:2px;
  padding:5px 10px;
}
.site-bar-menu, .site-bar-btn {
  background:transparent;
  border:1px solid rgba(255,255,255,.15);
  color:var(--sitebar-fg);
  width:34px; height:34px;
  cursor:pointer; font-size:14px;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
}
.site-bar-menu { display:none; }
body.has-sidebar .site-bar-menu { display:flex; }
@media (min-width:901px) {
  body.has-sidebar .site-bar-menu { display:none; }
}
.site-bar-menu:hover, .site-bar-btn:hover {
  border-color:var(--gold);
  color:var(--gold-soft);
  background:rgba(201,168,107,.06);
}
.site-bar-btn.active {
  border-color:var(--gold);
  color:var(--gold);
  background:rgba(201,168,107,.08);
}

/* =========================================================
   2. 设置面板
   ========================================================= */
.theme-panel {
  position:fixed; top:64px; right:18px; z-index:195;
  background:var(--paper);
  border:1px solid var(--line);
  width:340px; max-width:calc(100vw - 24px);
  max-height:calc(100vh - 80px);
  overflow-y:auto;
  box-shadow:0 24px 60px rgba(0,0,0,.25);
  font-family:var(--font-base);
  display:none;
  animation:settingsFade .25s ease-out;
}
.theme-panel.open { display:block; }

@keyframes settingsFade {
  from { opacity:0; transform:translateY(-6px); }
  to   { opacity:1; transform:translateY(0); }
}

.theme-panel::before {
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold) 50%,transparent);
}
.theme-panel-header {
  padding:18px 22px 14px;
  border-bottom:1px solid var(--line-soft);
  display:flex; justify-content:space-between; align-items:flex-start;
}
.theme-panel-eyebrow {
  font-family:"Inter","SF Mono",monospace;
  font-size:10px; letter-spacing:3px;
  color:var(--gold); margin-bottom:4px;
  text-transform:uppercase;
}
.theme-panel-title {
  font-family:var(--font-base);
  font-size:16px; color:var(--ink); letter-spacing:3px;
  font-weight:600;
}
.theme-panel-close {
  background:transparent; border:none; cursor:pointer;
  color:var(--gray); font-size:22px; line-height:1; padding:4px;
}
.theme-panel-close:hover { color:var(--gold); }

.theme-panel-body {
  padding:18px 22px 22px;
  display:flex; flex-direction:column; gap:22px;
}
.theme-group { display:block; }
.theme-group-label {
  font-family:"Inter","SF Mono",monospace;
  font-size:10px; letter-spacing:3px;
  color:var(--gray-soft); margin-bottom:12px;
  text-transform:uppercase;
}

/* 主题色样块 */
.theme-swatch-row {
  display:grid; gap:8px;
  grid-template-columns:repeat(3,1fr);
}
.theme-swatch-btn {
  display:flex; flex-direction:column; gap:8px;
  padding:12px 8px;
  border:1px solid var(--line);
  background:transparent;
  cursor:pointer;
  transition:all .15s;
  text-align:center;
}
.theme-swatch-btn:hover { border-color:var(--gold); }
.theme-swatch-btn.active {
  border-color:var(--gold);
  background:rgba(201,168,107,.06);
}
.theme-swatch-preview {
  width:100%; height:36px; position:relative; overflow:hidden;
  border-radius:2px;
}
.theme-swatch-preview::after {
  content:""; position:absolute; bottom:6px; left:8px; right:8px;
  height:1px; background:rgba(255,255,255,.4);
}
.theme-swatch-preview::before {
  content:""; position:absolute; top:8px; left:8px;
  width:8px; height:8px; border-radius:50%;
}
.theme-swatch-label {
  font-size:11px; letter-spacing:1px;
  color:var(--ink-soft);
}
.theme-swatch-btn.active .theme-swatch-label { color:var(--gold); }

/* 强调色 */
.accent-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.accent-btn {
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:12px 4px;
  border:1px solid var(--line);
  background:transparent;
  cursor:pointer;
  transition:all .15s;
}
.accent-btn:hover { border-color:var(--gold); }
.accent-btn.active { border-color:var(--gold); background:rgba(201,168,107,.06); }
.accent-dot {
  width:24px; height:24px; border-radius:50%;
  border:1px solid rgba(0,0,0,.12);
}
.accent-label {
  font-size:11px; letter-spacing:1px;
  color:var(--ink-soft);
}
.accent-btn.active .accent-label { color:var(--gold); }

/* 字号 */
.size-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.size-btn {
  display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:12px 4px;
  border:1px solid var(--line);
  background:transparent;
  cursor:pointer;
  transition:all .15s;
}
.size-btn:hover { border-color:var(--gold); }
.size-btn.active { border-color:var(--gold); background:rgba(201,168,107,.06); }
.size-sample {
  font-family:"Source Han Serif SC","Noto Serif SC",serif;
  color:var(--ink-soft);
  line-height:1;
}
.size-btn.active .size-sample { color:var(--gold); }
.size-label {
  font-size:11px; letter-spacing:1px;
  color:var(--ink-soft);
}
.size-btn.active .size-label { color:var(--gold); }

/* 字体 */
.font-list { display:flex; flex-direction:column; gap:6px; }
.font-btn {
  display:grid; grid-template-columns:auto 1fr auto;
  gap:14px; align-items:center;
  padding:12px 14px;
  border:1px solid var(--line);
  background:transparent;
  cursor:pointer; text-align:left;
  transition:all .15s;
}
.font-btn:hover { border-color:var(--gold); }
.font-btn.active { border-color:var(--gold); background:rgba(201,168,107,.06); }
.font-sample {
  font-size:18px; min-width:84px;
  color:var(--ink-soft);
}
.font-btn.active .font-sample { color:var(--ink); }
.font-label {
  font-size:11px; letter-spacing:2px;
  color:var(--gray-soft); text-align:right;
}
.font-btn.active .font-label { color:var(--gold); }
.font-dot {
  width:10px; height:10px;
  display:flex; align-items:center; justify-content:flex-end;
}
.font-btn.active .font-dot::before {
  content:"●"; color:var(--gold); font-size:9px;
}

/* 重置按钮 */
.theme-panel-reset {
  margin-top:4px; padding:10px 0;
  border:none; border-top:1px solid var(--line-soft);
  background:transparent;
  color:var(--gray); font-size:11px;
  letter-spacing:3px; text-transform:uppercase;
  font-family:"Inter","SF Mono",monospace;
  cursor:pointer; width:100%;
}
.theme-panel-reset:hover { color:var(--gold); }

/* =========================================================
   3. 登录页
   ========================================================= */
.login-bg {
  min-height:100vh; min-height:100svh;
  background:linear-gradient(135deg,var(--navy-deep) 0%,var(--navy) 50%,var(--navy-soft) 100%);
  display:flex; align-items:center; justify-content:center;
  padding:24px; position:relative; overflow:hidden;
}
.login-bg::before, .login-bg::after {
  content:""; position:absolute; border-radius:50%; border:1px solid var(--gold);
}
.login-bg::before { top:-150px; right:-150px; width:500px; height:500px; opacity:.15; }
.login-bg::after  { bottom:-200px; left:-200px; width:600px; height:600px; opacity:.08; }
.login-card {
  background:transparent; color:#f5f1e8;
  max-width:460px; width:100%; padding:48px 52px;
  position:relative; z-index:1; text-align:center;
}
.login-mark {
  width:64px; height:64px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);
  margin:0 auto 28px;
  display:flex; align-items:center; justify-content:center;
  font-family:"Source Han Serif SC",serif; font-weight:700; color:#fff;
  font-size:24px;
  box-shadow:0 8px 24px rgba(201,168,107,.3);
}
.login-eyebrow {
  font-family:"Inter","SF Mono",monospace;
  font-size:calc(11px * var(--font-scale));
  letter-spacing:8px; color:var(--gold); margin-bottom:16px; text-transform:uppercase;
}
.login-title {
  font-size:calc(40px * var(--font-scale)); font-weight:700;
  color:#f5f1e8; letter-spacing:8px; margin-bottom:12px; line-height:1.3;
}
.login-sub {
  font-family:"Inter",sans-serif;
  font-size:calc(13px * var(--font-scale)); color:var(--gold-soft);
  letter-spacing:6px; margin-bottom:40px; text-transform:uppercase;
}
.login-form { display:flex; flex-direction:column; gap:14px; }
.login-input {
  width:100%; padding:16px 18px;
  background:rgba(245,241,232,.05); color:#f5f1e8;
  border:1px solid rgba(201,168,107,.35);
  font-family:var(--font-sans);
  font-size:calc(15px * var(--font-scale));
  letter-spacing:3px; text-align:center;
  outline:none; transition:all .2s;
}
.login-input::placeholder { color:rgba(217,195,156,.5); letter-spacing:4px; }
.login-input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,168,107,.18); background:rgba(245,241,232,.08); }
.login-btn {
  padding:16px;
  background:var(--gold);
  color:#0f1830;
  border:none;
  cursor:pointer;
  font-family:var(--font-base); font-weight:600;
  font-size:calc(15px * var(--font-scale)); letter-spacing:8px;
  transition:all .2s;
}
.login-btn:hover { background:var(--gold-soft); }
.login-btn:disabled { opacity:.5; cursor:wait; }
.login-error {
  min-height:22px; margin-top:4px;
  font-family:var(--font-sans); font-size:calc(13px * var(--font-scale));
  color:#e89488; letter-spacing:1px;
}
.login-hint {
  margin-top:32px; padding-top:20px;
  border-top:1px solid rgba(201,168,107,.3);
  font-family:"Inter",sans-serif; font-size:calc(11px * var(--font-scale));
  letter-spacing:2px; color:var(--gold-soft); opacity:.75;
  line-height:2;
}

/* =========================================================
   4. 门户首页
   ========================================================= */
.portal {
  max-width:1200px; margin:0 auto; padding:54px 40px 80px;
}
.portal-hero {
  text-align:center; margin-bottom:60px;
  padding-bottom:50px; border-bottom:1px solid var(--line);
}
.portal-eyebrow {
  font-family:"Inter",sans-serif; font-size:calc(13px * var(--font-scale));
  letter-spacing:8px; color:var(--gold-deep); margin-bottom:14px; text-transform:uppercase;
}
.portal-title {
  font-size:calc(44px * var(--font-scale)); font-weight:700;
  color:var(--ink); letter-spacing:6px; margin-bottom:16px; line-height:1.3;
}
.portal-sub {
  font-size:calc(16px * var(--font-scale)); color:var(--gray);
  letter-spacing:3px; max-width:680px; margin:0 auto;
}

.portal-section { margin-bottom:54px; }
.portal-section-title {
  font-size:calc(20px * var(--font-scale)); color:var(--ink);
  letter-spacing:4px; padding-left:14px; border-left:4px solid var(--gold);
  margin-bottom:24px; font-weight:700;
}

.project-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  gap:24px;
}
.project-card {
  position:relative; background:var(--paper);
  border:1px solid var(--line);
  border-top:3px solid var(--gold);
  padding:32px 32px 28px;
  text-decoration:none; color:var(--ink);
  transition:all .25s ease;
  display:flex; flex-direction:column;
  min-height:260px;
}
.project-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
  border-top-color:var(--navy);
}
.project-card-head {
  display:flex; justify-content:space-between; align-items:flex-start;
  margin-bottom:14px;
}
.project-card-tag {
  font-family:"Inter",sans-serif; font-size:11px; letter-spacing:2px;
  color:var(--gold-deep); padding:3px 10px;
  border:1px solid var(--gold);
  background:transparent;
}
.project-card-tag.active { background:var(--gold); color:#fff; }
.project-card-num {
  font-family:"Inter","SF Mono",monospace; font-size:11px;
  color:var(--gray); letter-spacing:3px;
}
.project-card-title {
  font-size:calc(26px * var(--font-scale));
  font-weight:700; color:var(--ink);
  letter-spacing:3px; margin-bottom:6px; line-height:1.4;
}
.project-card-sub {
  font-family:var(--font-sans); font-size:calc(13px * var(--font-scale));
  color:var(--gold-deep); letter-spacing:2px; margin-bottom:16px;
}
.project-card-desc {
  font-family:var(--font-sans); font-size:calc(13.5px * var(--font-scale));
  color:var(--ink-soft); line-height:1.85; flex-grow:1;
}
.project-card-meta {
  margin-top:18px; padding-top:14px;
  border-top:1px dashed var(--line);
  display:flex; justify-content:space-between; align-items:center;
  font-family:"Inter",sans-serif; font-size:11px; color:var(--gray); letter-spacing:1px;
}
.project-card-arrow {
  color:var(--gold-deep); font-size:16px;
  transition:transform .25s;
}
.project-card:hover .project-card-arrow { transform:translateX(6px); }

/* =========================================================
   5. 报告页主体
   ========================================================= */
.page {
  max-width:1080px; margin:0 auto; background:var(--paper);
  padding:60px 72px; box-shadow:var(--shadow);
  min-height:calc(100vh - 54px);
  position:relative; transition:background-color .3s;
}
.page-header {
  border-bottom:3px double var(--gold);
  padding-bottom:24px; margin-bottom:36px;
}
.page-eyebrow {
  font-family:"Inter",sans-serif; font-size:calc(12px * var(--font-scale));
  letter-spacing:6px; color:var(--gold-deep); margin-bottom:10px; text-transform:uppercase;
}
.page-title {
  font-size:calc(36px * var(--font-scale)); font-weight:700;
  color:var(--ink); letter-spacing:3px; line-height:1.4; margin-bottom:10px;
}
.page-sub { font-size:calc(16px * var(--font-scale)); color:var(--gray); letter-spacing:1px; }

h2.section {
  font-size:calc(24px * var(--font-scale)); color:var(--ink);
  letter-spacing:3px; margin:50px 0 24px;
  padding-left:16px; border-left:5px solid var(--gold); line-height:1.4;
}
h3.subsection {
  font-size:calc(18px * var(--font-scale)); color:var(--ink);
  margin:30px 0 14px; letter-spacing:2px;
  border-bottom:1px solid var(--line); padding-bottom:6px;
}
h4 { font-size:calc(16px * var(--font-scale)); color:var(--ink-soft); margin:20px 0 10px; letter-spacing:1px; }

p { margin-bottom:14px; text-align:justify; color:var(--ink); }
a {
  color:var(--gold-deep); text-decoration:none;
  border-bottom:1px dashed var(--gold-soft);
}
a:hover { color:var(--ink); border-bottom-color:var(--ink); }
ul, ol { margin:12px 0 18px 28px; }
li { margin-bottom:8px; line-height:1.85; color:var(--ink); }
strong { color:var(--ink); font-weight:700; }
em { color:var(--gold-deep); font-style:normal; font-weight:500; }

table {
  width:100%; border-collapse:collapse;
  font-size:calc(14.5px * var(--font-scale)); background:var(--paper);
  font-family:var(--font-sans); margin:20px 0 30px;
}
thead { background:var(--navy); color:var(--sitebar-fg); }
th {
  padding:14px 16px; text-align:left; font-weight:600; letter-spacing:1.5px;
  border-bottom:3px solid var(--gold); font-size:calc(14px * var(--font-scale));
  color:var(--sitebar-fg);
}
td {
  padding:13px 16px; border-bottom:1px solid var(--line-soft);
  vertical-align:top; line-height:1.7; color:var(--ink);
}
tbody tr:nth-child(even) { background:var(--bg-2); }
tbody tr:hover { background:var(--cream-deep); }

.callout {
  background:var(--cream);
  border-left:4px solid var(--gold);
  padding:20px 26px; margin:24px 0;
  font-size:calc(15px * var(--font-scale));
}
.callout-title {
  font-weight:700; color:var(--ink); letter-spacing:2px;
  margin-bottom:8px; font-size:calc(14px * var(--font-scale));
}
.callout.warning { border-left-color:var(--danger); }
.callout.warning .callout-title { color:var(--danger); }
.callout.success { border-left-color:var(--success); }
.callout.success .callout-title { color:var(--success); }

.star { color:var(--gold); letter-spacing:2px; font-size:calc(16px * var(--font-scale)); }
.star-empty { color:var(--line); }
.cite {
  display:inline-block; font-size:calc(11px * var(--font-scale));
  color:var(--gold-deep); vertical-align:super;
  border-bottom:none; margin:0 2px; font-family:var(--font-sans);
}

.toc {
  background:var(--cream); border:1px solid var(--line);
  padding:24px 32px; margin:30px 0;
}
.toc-title {
  font-weight:700; color:var(--ink); letter-spacing:4px;
  margin-bottom:16px; font-size:calc(16px * var(--font-scale));
  border-bottom:1px solid var(--line); padding-bottom:10px;
}
.toc ol { margin-left:20px; }
.toc li { margin-bottom:6px; }
.toc a { border-bottom:none; color:var(--ink-soft); }
.toc a:hover { color:var(--gold-deep); }

.grid { display:grid; gap:20px; margin:24px 0; }
.grid.cols-2 { grid-template-columns:repeat(2,1fr); }
.grid.cols-3 { grid-template-columns:repeat(3,1fr); }
.grid.cols-4 { grid-template-columns:repeat(4,1fr); }

.card {
  background:var(--paper); border:1px solid var(--line);
  border-top:3px solid var(--gold);
  padding:22px 24px;
  transition:transform .2s, box-shadow .2s;
}
.card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.card-num {
  font-size:calc(32px * var(--font-scale)); font-weight:700;
  color:var(--gold-deep); letter-spacing:1px;
  margin-bottom:6px; font-family:"Source Han Serif SC",Georgia,serif;
}
.card-label { font-size:calc(13px * var(--font-scale)); color:var(--gray); letter-spacing:2px; }
.card-desc {
  font-size:calc(13px * var(--font-scale)); color:var(--ink-soft);
  margin-top:8px; line-height:1.7; font-family:var(--font-sans);
}

.footer {
  margin-top:80px; padding:30px 0 20px;
  border-top:1px solid var(--line);
  font-size:calc(13px * var(--font-scale));
  color:var(--gray); text-align:center; letter-spacing:1.5px;
  font-family:var(--font-sans);
}
.footer .disclaimer {
  max-width:720px; margin:0 auto 14px;
  font-size:calc(11.5px * var(--font-scale)); line-height:1.8; color:var(--gray-soft);
}
.footer a { color:var(--gray); border:none; }
.footer a:hover { color:var(--gold-deep); }

.tag {
  display:inline-block; font-family:var(--font-sans);
  font-size:calc(11.5px * var(--font-scale));
  padding:2px 10px;
  letter-spacing:1px; margin-right:6px; vertical-align:middle;
}
/* .tag.gold 文字色：在浅色主题用浅色文字，在深色主题用深色文字（与默认 --ink 反向） */
.tag.gold { background:var(--gold-soft); color:#f5f1e8; }
:root[data-theme="navy"] .tag.gold,
:root[data-theme="charcoal"] .tag.gold,
:root[data-theme="forest"] .tag.gold {
  color:#1a2238;
}
.tag.navy { background:var(--navy); color:var(--sitebar-fg); }
.tag.green { background:rgba(122,176,128,.2); color:var(--success); }
.tag.red { background:rgba(224,136,130,.2); color:var(--danger); }
.tag.gray { background:var(--line-soft); color:var(--ink-soft); }

.pagenav {
  display:flex; justify-content:space-between;
  margin-top:60px; padding-top:24px;
  border-top:1px solid var(--line);
  font-family:var(--font-sans); font-size:calc(14px * var(--font-scale));
  gap:12px; flex-wrap:wrap;
}
.pagenav a {
  color:var(--ink); border:1px solid var(--line);
  padding:10px 18px; transition:all .2s; letter-spacing:1px;
  background:var(--paper); text-decoration:none;
  border-bottom:1px solid var(--line);
}
.pagenav a:hover { background:var(--gold); color:#fff; border-color:var(--gold); }

.numbered { counter-reset:item; padding-left:0; list-style:none; margin-left:0; }
.numbered > li {
  counter-increment:item; position:relative;
  padding-left:44px; margin-bottom:14px;
}
.numbered > li::before {
  content:counter(item,decimal-leading-zero);
  position:absolute; left:0; top:0;
  font-family:"Inter","SF Mono",monospace; font-size:calc(13px * var(--font-scale));
  color:var(--gold-deep); font-weight:700;
  border:1px solid var(--gold); padding:2px 7px; letter-spacing:1px;
}

/* =========================================================
   6. 项目内顶部导航（蓝芯标签栏）
   ========================================================= */
.topbar {
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:14px 32px; display:flex;
  justify-content:space-between; align-items:center;
  position:sticky; top:54px; z-index:80;
}
.topbar .brand {
  color:var(--ink); font-size:calc(14px * var(--font-scale));
  letter-spacing:3px; font-weight:600; display:flex; align-items:center;
}
.topbar .brand .sep { color:var(--gold); margin:0 10px; }
.topbar .nav-toggle {
  display:none; background:none; border:none; cursor:pointer;
  padding:8px; font-size:22px; color:var(--ink);
}
.topbar nav { display:flex; gap:24px; }
.topbar nav a {
  color:var(--ink-soft); text-decoration:none;
  font-size:calc(13.5px * var(--font-scale)); letter-spacing:1px;
  font-family:var(--font-sans);
  padding:4px 2px; border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
.topbar nav a:hover { color:var(--gold-deep); border-bottom:none; }
.topbar nav a.active { color:var(--gold-deep); border-bottom-color:var(--gold); }

/* =========================================================
   7. 报告封面（蓝芯）—— 跟随主题
   ========================================================= */
.cover {
  min-height:calc(100vh - 54px);
  background:var(--bg);
  color:var(--ink);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:48px 80px; position:relative; overflow:hidden;
}
.cover::before {
  content:""; position:absolute; top:-100px; right:-100px;
  width:400px; height:400px; border:1px solid var(--gold); border-radius:50%; opacity:.18;
}
.cover::after {
  content:""; position:absolute; bottom:-150px; left:-150px;
  width:500px; height:500px; border:1px solid var(--gold); border-radius:50%; opacity:.08;
}
.cover-header {
  display:flex; justify-content:space-between; align-items:center;
  border-bottom:1px solid var(--gold); padding-bottom:18px;
  position:relative; z-index:2; gap:16px;
}
.cover-logo {
  font-size:calc(18px * var(--font-scale)); letter-spacing:8px;
  color:var(--gold-deep); font-weight:600;
}
.cover-meta {
  font-family:var(--font-sans); font-size:calc(12px * var(--font-scale));
  letter-spacing:2px; color:var(--gray); text-align:right; line-height:1.6;
  text-transform:uppercase;
}
.cover-center {
  position:relative; z-index:2; text-align:center; margin:32px 0;
  flex-grow:1; display:flex; flex-direction:column;
  justify-content:center; align-items:center;
}
.cover-eyebrow {
  font-family:"Inter",sans-serif; font-size:calc(13px * var(--font-scale));
  letter-spacing:10px; color:var(--gold); margin-bottom:28px; text-transform:uppercase;
}
.cover-title {
  font-size:calc(60px * var(--font-scale)); font-weight:700;
  letter-spacing:8px; line-height:1.25; margin-bottom:22px; color:var(--ink);
}
.cover-sub {
  font-size:calc(20px * var(--font-scale)); letter-spacing:4px;
  color:var(--gold-deep); margin-bottom:32px; font-weight:400;
}
.cover-divider { width:120px; height:1px; background:var(--gold); margin:22px auto; }
.cover-tagline {
  font-family:var(--font-sans); font-size:calc(14px * var(--font-scale));
  color:var(--gray); letter-spacing:3px; line-height:2; margin-bottom:36px;
}

/* 简洁进入按钮（参考康芯威 cover-cta） */
.cover-entry {
  display:inline-flex; align-items:center; justify-content:center;
  gap:14px; margin-top:30px; padding:16px 52px;
  min-width:280px;
  background:var(--gold);
  color:#fff;
  border:1px solid var(--gold);
  font-family:var(--font-base);
  font-size:calc(16px * var(--font-scale));
  letter-spacing:8px; font-weight:600;
  text-decoration:none;
  transition:box-shadow .2s, background .2s;
}
.cover-entry:hover {
  background:var(--gold-deep);
  border-color:var(--gold-deep);
  color:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.15);
}
.cover-entry-arrow {
  font-size:18px;
  color:#fff;
}

.cover-footer {
  position:relative; z-index:2;
  border-top:1px solid var(--gold); padding-top:20px;
  display:flex; justify-content:space-between; align-items:flex-end;
  font-family:var(--font-sans); font-size:calc(12px * var(--font-scale));
  letter-spacing:2px; color:var(--gray); gap:16px;
}
.cover-footer .right { text-align:right; }
.cover-footer strong { color:var(--ink); font-weight:600; }

/* =========================================================
   8. 康芯威：站点栏与左侧栏的位置整合
   （颜色 / 字体等全部由 projects/kangxinwei/assets/style.css 通过站点变量驱动）
   ========================================================= */
body.has-site-bar .sidebar {
  top: 54px;
  height: calc(100vh - 54px);
}
body.has-site-bar main.main > .topbar { display: none !important; }
@media (max-width: 700px) {
  body.has-site-bar .sidebar { top: 50px; height: calc(100vh - 50px); }
}

/* =========================================================
   9. 打印
   ========================================================= */
@media print {
  .site-bar, .theme-panel, .topbar, .cover-entry { display:none !important; }
  .page { box-shadow:none; padding:20px; max-width:none; }
  body { background:white; color:black; }
  a { color:black; border:none; }
  .cover { min-height:auto; }
}

/* =========================================================
   10. 响应式
   ========================================================= */
@media (max-width:960px) {
  .cover { padding:36px 32px; }
  .cover-title { font-size:calc(44px * var(--font-scale)); letter-spacing:6px; }
  .cover-sub { font-size:calc(17px * var(--font-scale)); }
  .page { padding:42px 36px; }
  .page-title { font-size:calc(28px * var(--font-scale)); }
  .grid.cols-4, .grid.cols-3 { grid-template-columns:repeat(2,1fr); }
  .portal { padding:42px 28px 64px; }
  .portal-title { font-size:calc(34px * var(--font-scale)); letter-spacing:4px; }
}
@media (max-width:700px) {
  body { font-size:calc(15px * var(--font-scale)); }
  .site-bar { padding:0 14px; height:50px; }
  .site-bar-title { font-size:calc(14px * var(--font-scale)); letter-spacing:2px; }
  .site-bar-sub { display:none; }
  .site-bar-mark { width:26px; height:26px; font-size:12px; }
  .site-bar-crumb { font-size:11px; padding:4px 8px; letter-spacing:1px; }
  .site-bar-btn, .site-bar-menu { width:32px; height:32px; font-size:13px; }
  .theme-panel { right:10px; left:10px; width:auto; top:60px; max-width:none; }
  .topbar { top:50px; padding:12px 16px; flex-wrap:wrap; }
  .topbar .brand { font-size:calc(12.5px * var(--font-scale)); letter-spacing:2px; }
  .topbar .nav-toggle { display:block; }
  .topbar nav {
    display:none; width:100%; flex-direction:column; gap:0; margin-top:10px;
    border-top:1px solid var(--line); padding-top:10px;
  }
  .topbar nav.open { display:flex; }
  .topbar nav a { padding:10px 4px; border-bottom:1px solid var(--line-soft); width:100%; }
  body.has-site-bar .sidebar { top:50px; height:calc(100vh - 50px); }
  .login-card { padding:32px 24px; }
  .login-title { font-size:calc(28px * var(--font-scale)); letter-spacing:4px; }
  .login-sub { font-size:calc(11.5px * var(--font-scale)); letter-spacing:4px; margin-bottom:30px; }
  .login-eyebrow { font-size:calc(10px * var(--font-scale)); letter-spacing:5px; }
  .login-mark { width:54px; height:54px; font-size:20px; }
  .portal { padding:32px 18px 56px; }
  .portal-hero { padding-bottom:36px; margin-bottom:36px; }
  .portal-title { font-size:calc(26px * var(--font-scale)); letter-spacing:3px; }
  .portal-sub { font-size:calc(13px * var(--font-scale)); letter-spacing:2px; }
  .portal-section-title { font-size:calc(17px * var(--font-scale)); letter-spacing:2px; }
  .project-grid { grid-template-columns:1fr; gap:18px; }
  .project-card { padding:24px 22px; min-height:auto; }
  .project-card-title { font-size:calc(21px * var(--font-scale)); letter-spacing:2px; }
  .cover { padding:28px 20px; min-height:calc(100vh - 50px); }
  .cover-header { flex-direction:column; align-items:flex-start; gap:6px; padding-bottom:12px; }
  .cover-meta { text-align:left; }
  .cover-logo { font-size:calc(14px * var(--font-scale)); letter-spacing:5px; }
  .cover-eyebrow { font-size:calc(11px * var(--font-scale)); letter-spacing:6px; margin-bottom:16px; }
  .cover-title { font-size:calc(30px * var(--font-scale)); letter-spacing:4px; margin-bottom:14px; }
  .cover-sub { font-size:calc(13px * var(--font-scale)); letter-spacing:2px; margin-bottom:18px; }
  .cover-tagline { font-size:calc(12px * var(--font-scale)); letter-spacing:2px; line-height:1.85; margin-bottom:22px; }
  .cover-entry { padding:14px 32px; letter-spacing:5px; font-size:calc(13px * var(--font-scale)); min-width:240px; }
  .cover-footer { flex-direction:column; align-items:flex-start; font-size:calc(11px * var(--font-scale)); gap:10px; padding-top:12px; }
  .cover-footer .right { text-align:left; }
  .page { padding:26px 16px; min-height:auto; }
  .page-eyebrow { font-size:calc(11px * var(--font-scale)); letter-spacing:4px; }
  .page-title { font-size:calc(22px * var(--font-scale)); letter-spacing:2px; }
  .page-sub { font-size:calc(13px * var(--font-scale)); }
  h2.section { font-size:calc(18px * var(--font-scale)); letter-spacing:2px; padding-left:12px; margin:34px 0 18px; }
  h3.subsection { font-size:calc(16px * var(--font-scale)); letter-spacing:1px; }
  .grid.cols-2, .grid.cols-3, .grid.cols-4 { grid-template-columns:1fr; }
  .card { padding:18px 20px; }
  .card-num { font-size:calc(25px * var(--font-scale)); }
  table { display:block; overflow-x:auto; white-space:nowrap; }
  th, td { padding:10px 10px; font-size:calc(13px * var(--font-scale)); }
  .callout { padding:16px 18px; font-size:calc(14px * var(--font-scale)); }
  .toc { padding:18px 22px; }
  .pagenav { flex-direction:column; }
  .pagenav a { text-align:center; }
  .numbered > li { padding-left:36px; }
}
@media (max-width:380px) {
  .cover-title { font-size:calc(24px * var(--font-scale)); letter-spacing:3px; }
  .cover-entry { width:100%; padding:14px 12px; min-width:0; }
}
