:root{
  --bg:#0b0e14; --bg2:#0e131d; --panel:#121826; --panel2:#161d2e; --line:#283149;
  --gold:#e8c98a; --gold-bright:#f6e3b8; --jade:#5fd0c0; --cyan:#7fc8e8;
  --ink:#ece5d4; --ink-dim:#9aa3b8; --red:#d8735f; --purple:#9b8cff;
  --warn:#e0b25a;
  --shadow:0 10px 40px rgba(0,0,0,.45);
  --r:14px;

  /* 字体策略：CJK 改走系统字体栈（不再拉取外网 Noto Serif SC / Ma Shan Zheng，断外网依赖、消除字体回退闪烁）；
     英文装饰衬线 Cinzel / Cormorant 已本地子集化托管于 /vendor/fonts/（见下方 @font-face） */
  --font-cn:'STKaiti','KaiTi','楷体','Songti SC','SimSun',serif;
  --font-serif:'Songti SC','STSong','SimSun',serif;
  --font-en:'Cinzel','Cormorant Garamond','Times New Roman',serif;
}
/* 本地托管的英文装饰衬线（basic-latin 子集，约 22KB；font-display:swap 避免阻塞渲染） */
@font-face{font-family:'Cinzel';src:url('/vendor/fonts/cinzel.woff2') format('woff2');font-display:swap;font-weight:400 700;font-style:normal}
@font-face{font-family:'Cormorant Garamond';src:url('/vendor/fonts/cormorant.woff2') format('woff2');font-display:swap;font-weight:400 600;font-style:normal}
/* 招牌签名：自托管毛笔体 Ma Shan Zheng——仅子集「辰」（该字体字库不含「箓」，按原始设计回退系统楷体，与 macOS 表现一致）；font-display:swap 不阻塞渲染 */
@font-face{font-family:'Ma Shan Zheng';src:url('/vendor/fonts/mashan.woff2') format('woff2');font-display:swap;font-weight:400;font-style:normal}
.brand .cn, .seal-name{font-family:'Ma Shan Zheng', var(--font-cn);}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:
  radial-gradient(1200px 700px at 75% -10%, rgba(95,208,192,.10), transparent 60%),
  radial-gradient(900px 600px at 10% 110%, rgba(155,140,255,.10), transparent 55%),
  var(--bg);
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:14px;line-height:1.65;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-cn);font-weight:600;letter-spacing:.04em}
a{color:var(--gold);text-decoration:none}
button{font-family:inherit;cursor:pointer;border-radius:10px;border:1px solid var(--line);
  background:#0f1420;color:var(--ink);padding:8px 15px;font-size:13.5px;transition:.16s}
button:hover{border-color:var(--gold);color:var(--gold-bright)}
button.primary{background:linear-gradient(135deg,var(--gold),#caa765);color:#1a140a;border:none;font-weight:700}
button.primary:hover{filter:brightness(1.08)}
button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{width:100%;background:#0f1420;border:1px solid var(--line);border-radius:10px;
  color:var(--ink);padding:10px 12px;font-size:14px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--jade)}
/* P1 · 键盘焦点环：仅键盘 Tab 触发，鼠标点击不出现 */
:focus-visible{outline:2px solid var(--jade); outline-offset:2px; border-radius:10px}
code{color:var(--jade);font-family:ui-monospace,monospace;font-size:11px}
/* P1 · 尊重 prefers-reduced-motion：缩短所有动画/过渡为 0 */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* 顶栏 */
.topnav{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;
  background:rgba(11,14,20,.82);backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer}
.brand .seal{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold),#b8924f);color:#1a140a;font-family:"Songti SC",serif;
  font-size:18px;font-weight:800;box-shadow:0 0 18px rgba(232,201,138,.35)}
.brand .cn{font-size:20px;letter-spacing:6px;color:var(--gold-bright)}
.brand .en{font-size:10px;letter-spacing:3px;color:var(--ink-dim);text-transform:uppercase;margin-top:2px}
.nav-links{display:flex;gap:4px;align-items:center;padding:4px;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:12px}
.nav-links a{padding:8px 18px;border-radius:9px;color:var(--ink-dim);font-size:15px;letter-spacing:2px;font-family:var(--font-serif);transition:all .15s}
.nav-links a:hover{color:var(--gold-bright);background:rgba(232,201,138,.08)}
.nav-links a.on{color:var(--gold-bright);background:linear-gradient(135deg,rgba(232,201,138,.18),rgba(95,208,192,.08));box-shadow:inset 0 0 0 1px rgba(232,201,138,.25)}
.user-menu{display:flex;align-items:center;gap:10px}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--jade),var(--cyan));
  display:grid;place-items:center;color:#08110f;font-weight:700;font-size:13px}
/* I0 · 拆登录墙：游客态的登录入口（区别于退出按钮） */
.nav-login{display:inline-flex;align-items:center;padding:8px 16px;min-height:44px;border-radius:10px;
  color:var(--gold-bright);border:1px solid var(--gold);font-size:13px;letter-spacing:2px;
  text-decoration:none;font-family:var(--font-cn);transition:.2s}
.nav-login:hover{background:rgba(232,201,138,.12);box-shadow:0 0 18px rgba(232,201,138,.25)}

/* 卡片 */
.card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);
  border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.card h3{margin:0 0 14px;font-size:16px;color:var(--gold-bright);letter-spacing:2px;
  display:flex;align-items:center;gap:8px}
.card h3 .ic{font-size:16px;opacity:.9}
.hint{font-size:11.5px;color:var(--ink-dim);margin-top:6px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--ink-dim);margin-bottom:6px;letter-spacing:1px}
.seg{display:flex;gap:8px}
.seg button{flex:1}
.seg button.on{background:var(--gold);color:#1a140a;border-color:var(--gold);font-weight:700}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* 通用动效 */
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.fadeup{animation:fadeup .5s ease both}

/* 防止移动端浏览器对字体做自动缩放，保证移动端字号与 PC 一致 */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100% }

/* 平板：工作室仅留 表单 + 对话，报告走全屏 */
@media(max-width:1100px){
  .studio{grid-template-columns:300px 1fr}
  .col-report{display:none}
  .col-report.fullscreen{display:flex}
}
/* 响应式 */
@media(max-width:900px){
  .grid-dash{grid-template-columns:1fr !important}
}
@media(max-width:760px){
  .topnav{padding:10px 14px; gap:10px; flex-wrap:wrap}
  .brand .cn{font-size:17px; letter-spacing:4px}
  .brand .en{display:none}
  .nav-links{order:3; width:100%; justify-content:center; gap:4px; padding-top:8px;
    border-top:1px solid var(--line)}
  .nav-links a{padding:10px 12px; font-size:13px; min-height:44px; display:inline-flex; align-items:center}
  .user-menu{gap:8px}
  .user-menu #uname{display:none}
  #btnLogout{padding:8px 14px; font-size:12px; min-height:44px}

  /* 推演阁移动端：单列纵向堆叠，表单/对话/报告都可用 */
  .studio{grid-template-columns:1fr !important; height:auto !important}
  .col{min-height:auto; height:auto}
  .col-form{border-right:none; border-bottom:1px solid var(--line); padding:16px 14px}
  .col-chat{min-height:78vh; border-top:1px solid var(--line)}
  .col-report{display:flex !important; height:85vh; border-left:none; border-top:1px solid var(--line)}
}
@media(max-width:420px){
  .nav-links a{padding:5px 9px; font-size:12px; letter-spacing:1px}
}

/* R6† · 本月流月常驻卡 */
.site-footer{ margin-top:28px; padding:16px 12px; text-align:center; font-size:12px; color:#b8a578; line-height:1.7; border-top:1px solid rgba(190,160,90,.18) }
.site-footer .footer-sep{ margin:0 8px; opacity:.5 }
.site-footer a{ color:var(--gold-bright); text-decoration:none; padding:4px 8px; min-height:36px; display:inline-block }
.site-footer a:hover{ text-decoration:underline }
.liuyue-card{margin-top:16px}
.liuyue-card .ly-row{display:flex;align-items:center;gap:12px;margin:6px 0 10px}
.liuyue-card .ly-verdict{display:inline-block;padding:4px 14px;border-radius:999px;font-weight:700;font-size:14px}
.liuyue-card .ly-desc{color:var(--ink-dim);font-size:13px}
.liuyue-card .ly-hl{font-size:13.5px;line-height:1.7;color:var(--ink)}
.liuyue-card .ly-rng{margin-top:10px;font-size:12px;color:var(--ink-dim)}
.liuyue-card .ly-rng a{color:var(--gold)}
.liuyue-card .ly-dis{margin-top:8px;font-size:11px;color:var(--jade);opacity:.85}
.liuyue-card .v-good{background:rgba(95,208,192,.16);color:var(--jade)}
.liuyue-card .v-mid{background:rgba(232,201,138,.16);color:var(--gold-bright)}
.liuyue-card .v-warn{background:rgba(216,115,95,.16);color:var(--red)}
