/* ── 易维量化 EviQuant · 全站品牌样式表（研究所纸感）─────────────────────────
   单一源：色板 / 字体 / 顶栏 / 页脚 / 通用组件 / 登录弹窗，改一处全站生效。
   页面用法：<link rel="stylesheet" href="/assets/brand.css">
             <link rel="icon" href="/assets/logo.svg">
             <script src="/assets/site.js" defer></script>   ← 登录弹窗与登录态
   注意：需要 http 根（本地预览 python -m http.server），直接 file:// 打开取不到本文件。 */

:root{
  --paper:#f8f6f1; --ink:#1c1a17; --ink2:#4a463f; --dim:#8a8478; --rule:#dcd6c9;
  --red:#b3352b; --blue:#1f4fae; --card:#fffdf9; --wash:#f3efe6;
  --up:#b3352b; --down:#1f4fae;
  --serif:Georgia,"Songti SC","SimSun",serif;
  --sans:"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --mono:Consolas,"Courier New",monospace;
  --shadow:0 18px 50px rgba(60,50,30,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font-family:inherit;color:inherit}
.sans{font-family:var(--sans)}
.mono{font-family:var(--mono)}
[id]{scroll-margin-top:96px}
.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(24px,4vw,56px)}

/* ── 顶栏（全站唯一版本：尺寸/位置/内容/风格必须处处相同）── */
.topbar{position:sticky;top:0;z-index:60;background:rgba(248,246,241,.93);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1.5px solid var(--ink)}
.topbar nav{display:flex;align-items:center;height:66px;
  padding:0 clamp(24px,4vw,56px);max-width:1440px;margin:0 auto}
.brand{display:flex;align-items:center;gap:12px;font-size:26px;font-weight:700;letter-spacing:.03em;
  line-height:1;white-space:nowrap}
.brand img{width:31px;height:31px;display:block}
.nlinks{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:15px;color:var(--ink2);
  font-family:var(--sans);line-height:1}
.nlinks a{padding:4px 0;white-space:nowrap}
.nlinks a:hover{color:var(--red)}
.nlinks a.on{color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--red)}
.nlinks .lg{color:var(--blue);font-weight:600;font-size:15.5px}
.nlinks .lg:hover{color:var(--red)}

/* ── 页脚 ── */
.foot{border-top:1.5px solid var(--ink);margin-top:10px;padding:26px 0 50px;
  font-size:12px;color:var(--dim);line-height:2;font-family:var(--sans)}

/* ── 通用组件 ── */
.btn{font-family:var(--sans);font-size:14px;padding:11px 22px;border:1.5px solid var(--ink);
  cursor:pointer;background:transparent;color:var(--ink);transition:.15s;display:inline-block;
  text-align:center;line-height:1.4}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.pri{background:var(--ink);color:var(--paper)}
.btn.pri:hover{background:var(--red);border-color:var(--red)}
.btn.sm{font-size:13px;padding:8px 16px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:disabled:hover{background:transparent;color:var(--ink)}
.card{background:var(--card);border:1px solid var(--rule);padding:22px 24px}
.demo-badge{display:inline-block;border:1px solid var(--rule);background:var(--card);color:var(--dim);
  font-size:11px;letter-spacing:.14em;padding:3px 9px;font-family:var(--sans)}
.tg{font-family:var(--sans);font-size:11.5px;color:var(--ink2);border:1px solid var(--rule);
  background:var(--card);padding:3px 9px;display:inline-block}
.stamp{display:inline-block;border:3px solid var(--red);color:var(--red);font-weight:700;
  letter-spacing:.16em;padding:4px 12px;border-radius:5px;transform:rotate(-9deg)}
.stamp.pass{border-color:var(--blue);color:var(--blue)}
.shead{display:flex;align-items:baseline;gap:18px;border-top:1.5px solid var(--ink);
  padding-top:26px;margin-bottom:30px}
.shead h2{font-size:34px;font-weight:700}
.shead .ts{font-size:13px;color:var(--dim);letter-spacing:.2em;font-family:var(--sans)}
.shead .note{margin-left:auto;font-size:12px;color:var(--dim);font-family:var(--sans)}
/* 页面主标题行（内页统一用它，与社区页同款：标题小、页签同排） */
.phead{display:flex;align-items:center;gap:40px;padding:26px 0 16px;border-bottom:1.5px solid var(--ink)}
.phead h1{font-size:28px;font-weight:700;letter-spacing:.06em;white-space:nowrap}
.phead .acts{margin-left:auto;display:flex;gap:12px;align-items:center}
.psub{font-size:13px;color:var(--dim);font-family:var(--sans);line-height:1.85}
/* 数据表（纸感） */
.tbl{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:13.5px}
.tbl th{text-align:left;font-weight:600;color:var(--dim);font-size:12px;letter-spacing:.08em;
  padding:10px 12px;border-bottom:1.5px solid var(--ink);white-space:nowrap}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--rule);color:var(--ink2)}
.tbl tr:hover td{background:var(--wash)}
.tbl .num{font-family:var(--mono);text-align:right}
.up{color:var(--up)} .down{color:var(--down)}

/* ── 登录 / 注册弹窗（site.js 注入；背景虚化）── */
.evmask{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(28,26,23,.42);
  backdrop-filter:blur(7px) saturate(.9);-webkit-backdrop-filter:blur(7px) saturate(.9)}
.evmask.open{display:flex;animation:evfade .18s ease}
@keyframes evfade{from{opacity:0}to{opacity:1}}
.evdlg{width:100%;max-width:420px;background:var(--card);border:1px solid var(--ink);
  box-shadow:0 34px 80px rgba(40,32,18,.34);position:relative;animation:evpop .22s cubic-bezier(.2,1.1,.4,1)}
@keyframes evpop{from{transform:translateY(10px) scale(.985);opacity:0}to{transform:none;opacity:1}}
.evdlg .evhd{background:var(--wash);border-bottom:1px solid var(--rule);padding:22px 0 18px;text-align:center}
.evdlg .evhd .lock{display:inline-flex;align-items:center;gap:11px;font-size:23px;font-weight:700;
  letter-spacing:.03em}
.evdlg .evhd .lock img{width:28px;height:28px}
.evdlg .evhd .sl{margin-top:7px;font-size:12px;color:var(--dim);font-family:var(--sans);letter-spacing:.1em}
.evdlg .evx{position:absolute;right:12px;top:8px;background:none;border:none;font-size:23px;
  color:var(--dim);cursor:pointer;line-height:1;padding:4px 8px}
.evdlg .evx:hover{color:var(--red)}
.evtabs{display:flex;justify-content:center;gap:34px;padding:20px 0 4px;font-family:var(--sans)}
.evtab{background:none;border:none;cursor:pointer;font-size:15px;color:var(--dim);padding-bottom:7px}
.evtab.on{color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--red)}
.evbody{padding:14px 34px 30px}
.evfield{margin-top:14px}
.evfield input{width:100%;border:1px solid var(--rule);background:var(--paper);padding:12px 14px;
  font-family:var(--sans);font-size:14px;color:var(--ink);outline:none}
.evfield input:focus{border-color:var(--ink)}
.evfield input::placeholder{color:var(--dim)}
.evsubmit{width:100%;margin-top:20px;padding:13px;font-size:15px;font-weight:600}
.evrow{margin-top:15px;display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12.5px;
  color:var(--dim)}
.evrow input[type=checkbox]{accent-color:var(--red);width:14px;height:14px;cursor:pointer}
.evrow a{color:var(--blue)}
.evrow .rt{margin-left:auto}
.evmsg{margin-top:14px;font-family:var(--sans);font-size:12.5px;line-height:1.8;min-height:18px}
.evmsg.err{color:var(--red)}
.evmsg.ok{color:var(--blue)}
.evnote{margin-top:16px;padding-top:14px;border-top:1px dotted var(--rule);
  font-family:var(--sans);font-size:11.5px;color:var(--dim);line-height:1.85}

@media (max-width:1080px){
  .nlinks a:not(.lg){display:none}
  .topbar nav{height:58px}
  .brand{font-size:22px}
  .brand img{width:27px;height:27px}
  .phead{flex-wrap:wrap;gap:14px 22px}
  .phead h1{font-size:24px}
  .evbody{padding:14px 22px 26px}
}
