/* ============================================================
   官网顶栏 —— 只给 login.html 用。
   ============================================================
   为什么单独一个文件,而不是写进 login.html 的 <style>:

   login.html 归**后台页**那一套(`tests/test_type_scale.py` 盯着),里面不许出现
   写死的字号,一律要走 app.css 的 `--fs-*` token。而这个顶栏的使命恰恰相反 ——
   它必须跟官网那个顶栏**逐像素一致**(25px / 16.5px / 84px / 同一个 gutter),
   差一点点反而更像"两个网站"。两条规矩在同一个文件里打架,所以把它挪出来:
   这是官网的东西,归官网的规矩管。

   为什么不直接引 assets/site.css:那份里有 body / html / 背景 / 版式的全套设定,
   引进来会跟登录页自己的布局打架。这里只取顶栏那几条。

   **它和 assets/site.css 里的 nav 规则是同一套数值的两处副本。**
   改一处必须改另一处 —— `tests/test_site_pages.py::test_登录页顶栏与官网逐项对齐`
   会把关键数值逐个比对,对不上就红。
   ============================================================ */

/* 官网的展示字。登录页原本只加载 app.css(后台那套字),不补这一条,
   logo 会掉回默认字体,跟首页明显是两个样子。与官网共用同一个子集文件。 */
@font-face{font-family:"得意黑";src:url("/assets/fonts/smiley-sub-v2.woff2") format("woff2");
  font-display:swap}

/* absolute 定位,不挤占 .stage 的 flex 布局 —— 登录卡的位置一毫米不动。
   注意 site.css 的 .wrap **没有 max-width**,只有左右 gutter,这里照抄。 */
.topnav{position:absolute;top:0;left:0;right:0;z-index:3;
  display:flex;align-items:center;gap:36px;height:84px;
  padding-left:clamp(24px,5vw,92px);padding-right:clamp(24px,5vw,92px);
  text-shadow:0 1px 14px rgba(6,11,18,.55)}
.topnav .logo{display:flex;align-items:center;gap:13px;
  font-family:"得意黑","思源黑体",system-ui,sans-serif;font-size:25px;
  letter-spacing:.02em;margin-right:auto;color:#fff;white-space:nowrap;
  text-decoration:none}
.topnav .logo svg{width:34px;height:34px;flex:none;
  filter:drop-shadow(0 0 14px rgba(141,190,236,.45))}
.topnav .navlinks{display:flex;gap:32px;font-size:16.5px;color:rgba(255,255,255,.92)}
.topnav .navlinks a{color:inherit;text-decoration:none;transition:color .16s}
.topnav .navlinks a:hover{color:#fff}
.topnav .navlogin{font-size:16.5px;color:#fff;border:1px solid rgba(255,255,255,.55);
  border-radius:4px;padding:9px 22px;white-space:nowrap}
/* 当前就在登录页,所以这个按钮是"你在这儿"的状态,不是可点的入口 */
.topnav .navlogin.on{border-color:#8DBEEC;color:#8DBEEC}

/* 窄屏顶栏塞不下三个栏目名。登录页不做汉堡菜单(它不是内容页,来这儿的人
   目的是登录),只把栏目名收起来,logo 和登录状态留着。 */
@media (max-width:820px){.topnav .navlinks{display:none}}

/* ── 汉堡菜单 ──────────────────────────────────────────────
   登录页在窄屏也保留官网栏目入口：用户从首页进入登录后，仍能随时返回查看
   公司、产品、技术与下载信息，不能因为栏目名被收起就彻底失联。

   与 assets/site.css 的 .burger/.mobmenu 是同一套数值的两处副本(理由见抬头);
   断点用登录页自己那个 820px,跟上面 .navlinks 的隐藏点对齐。 */
.burger{display:none;flex:none;width:42px;height:42px;padding:0;border:0;
        background:none;cursor:pointer;
        flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger i{display:block;width:22px;height:1.5px;border-radius:1px;
          background:#fff;transition:transform .2s,opacity .2s}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobmenu{display:none;position:fixed;inset:0;z-index:60;
         flex-direction:column;justify-content:center;gap:2px;
         padding-left:clamp(24px,5vw,92px);padding-right:clamp(24px,5vw,92px);
         background:rgba(6,11,18,.95)}
.mobmenu.open{display:flex}
.mobmenu a{font-family:"得意黑","思源黑体",system-ui,sans-serif;font-weight:400;color:#fff;
           font-size:clamp(26px,7.5vw,40px);line-height:1.2;text-decoration:none;
           border-top:1px solid rgba(255,255,255,.16);
           padding-top:24px;padding-bottom:24px}
.mobmenu a:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
/* 顶栏 z-index 要高过遮罩,菜单展开时三道杠得浮在上面才点得到"关闭" */
@media (max-width:820px){.topnav{z-index:70}.burger{display:flex}}
