/* =====================================================================
   Juzi × 云语(dmyblog.cn) 顶部导航 1:1 移植
   来源：YYU 云语主题 css/main.css（navbar / ntf / sch 全套）
   变量以 --jzn- 前缀命名，避免与 Juzi 主题变量冲突；数值 1:1 保持 YYU 原值
   ===================================================================== */

:root {
  --nav-height: 64px;
  --jzn-container-width: 1500px;
  --nav-ease: cubic-bezier(.16, 1, .3, 1);
  --nav-glass: hsla(0, 0%, 100%, .72);
  --nav-blur: blur(16px) saturate(160%);
  --nav-shadow: 0 8px 30px -12px rgba(45, 55, 72, .22);
  --jzn-primary: #63b3ed;
  --jzn-accent: #f368a0;
  --jzn-accent-strong: #f368a0;
  --jzn-accent-deep: #e0418c;
  --jzn-text-main: #2d3748;
  --jzn-text-sub: #718096;
  --jzn-border-color: rgba(0, 0, 0, .05);
}

html[data-night='night'] {
  --jzn-primary: #7cc1f4;
  --jzn-accent-deep: #ff8ec2;
  --jzn-text-main: #e4e9f3;
  --jzn-text-sub: #98a3b9;
  --jzn-border-color: hsla(0, 0%, 100%, .07);
  --nav-glass: rgba(31, 37, 55, .78);
  --nav-shadow: 0 8px 30px -12px rgba(0, 0, 0, .55);
}

/* ---------- 主题底色（替换原网格背景，1:1 云语） ---------- */
body { background-color: #f6f8fa; }
html[data-night='night'] body { background-color: #141826; }

/* ---------- 非首页给固定导航让位；首页 hero 压在透明导航下 ---------- */
body:not(.jz-hero-active) { padding-top: var(--nav-height); }
@media (max-width: 768px) {
  body:not(.jz-hero-active) { padding-top: var(--nav-height); }
}

/* ---------- 导航主体 ---------- */
.navbar {
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  background-color: #ffffff1a;
  left: 0; position: fixed; right: 0; top: 0;
  transform: translateZ(0);
  transition: background-color .35s var(--nav-ease), box-shadow .35s var(--nav-ease);
  z-index: 100;
}
.navbar.scrolled {
  backdrop-filter: var(--nav-blur);
  -webkit-backdrop-filter: var(--nav-blur);
  background-color: var(--nav-glass);
  box-shadow: var(--nav-shadow);
}
.nav-inner {
  gap: 28px; height: var(--nav-height);
  margin: 0 auto; max-width: var(--jzn-container-width);
  padding: 0 2rem; position: relative;
}
.nav-inner, .nav-logo { align-items: center; display: flex; }
.nav-logo {
  color: #fff; flex: none; font-size: 1rem; font-weight: 700; gap: 10px;
  letter-spacing: .5px; text-shadow: 0 1px 3px rgba(0, 0, 0, .3);
  transition: color .35s var(--nav-ease);
}
.navbar.scrolled .nav-logo { color: var(--jzn-text-main); text-shadow: none; }
.nav-logo:hover .logo-dot { transform: rotate(-8deg) scale(1.08); }
.nav-logo--image { gap: 0; position: relative; }
.nav-logo-img {
  display: block; height: 34px; max-width: 200px;
  object-fit: contain; transition: opacity .35s var(--nav-ease); width: auto;
}
@media (max-width: 520px) { .nav-logo-img { height: 28px; max-width: 150px; } }

.nav-links { display: flex; gap: 6px; margin-left: auto; min-width: 0; }
.nav-ruler { display: flex; gap: 6px; left: 0; pointer-events: none; position: absolute; top: 0; visibility: hidden; }
.nav-item { position: relative; }
.nav-top {
  align-items: center; background: none; border: none; border-radius: 999px;
  color: #ffffffc7; cursor: pointer; display: inline-flex; font-family: inherit;
  font-size: .86rem; gap: 5px; padding: 7px 14px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .25);
  text-decoration: none;
  transition: color .25s var(--nav-ease), background .25s var(--nav-ease);
  white-space: nowrap;
}
.nav-top:hover { background: #ffffff1f; color: #fff; }
.nav-top.active { background: #ffffff29; box-shadow: inset 0 0 0 1px #fff3; color: #fff; }
.nav-caret { font-size: .62rem; opacity: .8; transition: transform .25s var(--nav-ease); }
.nav-item--group:focus-within .nav-caret, .nav-item--group:hover .nav-caret { transform: rotate(180deg); }
.navbar.scrolled .nav-top { color: var(--jzn-text-sub); text-shadow: none; }
.navbar.scrolled .nav-top.active, .navbar.scrolled .nav-top:hover {
  background: #63b3ed1f; box-shadow: none; color: var(--jzn-primary);
}
.nav-sub {
  backdrop-filter: var(--nav-blur); -webkit-backdrop-filter: var(--nav-blur);
  background-color: var(--nav-glass);
  border: 1px solid hsla(0, 0%, 100%, .7); border-radius: 14px;
  box-shadow: var(--nav-shadow), inset 0 1px #fff9;
  display: flex; flex-direction: column; gap: 2px; left: 0; min-width: 160px;
  opacity: 0; padding: 7px; position: absolute; top: calc(100% + 8px);
  transform: translateY(-8px);
  transition: opacity .22s var(--nav-ease), transform .22s var(--nav-ease), visibility .22s;
  visibility: hidden; z-index: 10;
}
.nav-sub:before { content: ""; height: 10px; left: 0; position: absolute; right: 0; top: -10px; }
.nav-item--group:focus-within .nav-sub, .nav-item--group:hover .nav-sub {
  opacity: 1; transform: translateY(0); visibility: visible;
}
.nav-sub a {
  align-items: center; border-radius: 10px; color: var(--jzn-text-main);
  display: flex; font-size: .84rem; gap: 9px; padding: 9px 13px; text-shadow: none;
  text-decoration: none;
  transition: background .2s var(--nav-ease), color .2s var(--nav-ease);
  white-space: nowrap;
}
.nav-sub a:before {
  background: var(--jzn-primary); border-radius: 50%; content: ""; flex: none;
  height: 5px; opacity: .4;
  transition: background .2s var(--nav-ease), opacity .2s var(--nav-ease), transform .2s var(--nav-ease);
  width: 5px;
}
.nav-sub a.active, .nav-sub a:hover { background: #f368a014; color: var(--jzn-accent-deep); }
.nav-sub a.active:before, .nav-sub a:hover:before {
  background: var(--jzn-accent-deep); opacity: 1; transform: scale(1.25);
}

/* ---------- 右侧操作区 ---------- */
.nav-actions { align-items: center; display: flex; flex: none; gap: .6rem; }
.nav-search {
  align-items: center; background: #ffffff1f; border: 1px solid hsla(0, 0%, 100%, .2);
  border-radius: 12px; color: #fff; cursor: pointer; display: inline-flex;
  font-size: 1rem; height: 36px; justify-content: center;
  transition: background .25s var(--nav-ease), color .25s var(--nav-ease), border-color .25s var(--nav-ease), transform .25s var(--nav-ease);
  width: 36px;
}
.nav-search:hover { background: #fff3; transform: translateY(-1px); }
@media (hover: hover) {
  .nav-search:hover { --jelly-lift: -1px; --jelly-amp: 1.3; animation: jzn-site-jelly .6s ease-in-out; transform-origin: 50% 100%; }
}
.navbar.scrolled .nav-search { background: #63b3ed1f; border-color: transparent; color: var(--jzn-primary); }
.navbar.scrolled .nav-search:hover { background: #63b3ed38; }
.nav-search:focus-visible { box-shadow: 0 0 0 3px #63b3ed73; outline: none; }

.nav-login {
  background: #ffffff1f; border: 1px solid hsla(0, 0%, 100%, .2); border-radius: 999px;
  color: #fff; cursor: pointer; font-family: inherit;
  font-size: .85rem; font-weight: 600; padding: 7px 18px;
  transition: background .25s var(--nav-ease), color .25s var(--nav-ease), border-color .25s var(--nav-ease), transform .25s var(--nav-ease);
  display: inline-flex; align-items: center; gap: 6px; text-decoration: none;
}
.nav-login:hover { background: #fff3; transform: translateY(-1px); color: #fff; }
@media (hover: hover) {
  .nav-login:hover { --jelly-lift: -1px; --jelly-amp: 1.3; animation: jzn-site-jelly .6s ease-in-out; transform-origin: 50% 100%; }
}
.navbar.scrolled .nav-login { background: #f368a01a; border-color: transparent; color: var(--jzn-accent-deep); }
.navbar.scrolled .nav-login:hover { background: #f368a02e; }

.nav-user { position: relative; }
.nav-user-btn {
  align-items: center; background: #ffffff1f; border: 1px solid hsla(0, 0%, 100%, .2);
  border-radius: 999px; color: #fff; cursor: pointer; display: flex; font-family: inherit;
  font-size: .85rem; font-weight: 600; gap: 8px; padding: 4px 12px 4px 4px;
  transition: background .25s var(--nav-ease), color .25s var(--nav-ease), border-color .25s var(--nav-ease);
}
.nav-user-btn:hover { background: #fff3; }
.navbar.scrolled .nav-user-btn { background: #f368a01a; border-color: transparent; color: var(--jzn-accent-deep); }
.navbar.scrolled .nav-user-btn:hover { background: #f368a02e; }
.nav-user-avatar { border-radius: 50%; height: 26px; object-fit: cover; width: 26px; }
.nav-user-name { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-user-caret { font-size: .62rem; opacity: .8; transition: transform .25s var(--nav-ease); }
.nav-user-btn[aria-expanded="true"] .nav-user-caret { transform: rotate(180deg); }
.nav-user-menu {
  backdrop-filter: var(--nav-blur); -webkit-backdrop-filter: var(--nav-blur);
  background-color: var(--nav-glass); border-radius: 14px;
  box-shadow: var(--nav-shadow); min-width: 190px; padding: 6px;
  position: absolute; right: 0; top: calc(100% + 10px); z-index: 60;
}
.nav-user-menu a, .nav-user-menu button {
  align-items: center; background: none; border: none; border-radius: 10px;
  color: var(--jzn-text-main); cursor: pointer; display: flex;
  font-size: .84rem; gap: 10px; padding: 9px 12px; text-align: left; text-shadow: none;
  text-decoration: none;
  transition: background .2s var(--nav-ease), color .2s var(--nav-ease); width: 100%;
}
.nav-user-menu a i, .nav-user-menu button i { color: var(--jzn-text-sub); font-size: .8rem; text-align: center; width: 16px; }
.nav-user-menu a:hover, .nav-user-menu button:hover { background: #f368a014; color: var(--jzn-accent-deep); }
.nav-user-menu a:hover i, .nav-user-menu button:hover i { color: var(--jzn-accent-deep); }
.nav-user-menu .jz-sub-vipwrap { padding: 4px; }
.nav-user-menu .jz-sub-vipbar { border-radius: 10px; }
.nav-user-menu .jz-sub-divider { height: 1px; background: var(--jzn-border-color); margin: 4px 8px; }
.nav-user-menu .jz-sub-userinfo { display: none; }

.nav-toggle {
  align-items: center; background: #ffffff1f; border: 1px solid hsla(0, 0%, 100%, .2);
  border-radius: 12px; color: #fff; cursor: pointer; display: none;
  font-size: 1rem; height: 36px; justify-content: center;
  transition: background .25s var(--nav-ease), color .25s var(--nav-ease);
  width: 36px;
}
.nav-toggle:hover { background: #fff3; }
.navbar.scrolled .nav-toggle { background: #63b3ed1f; border-color: transparent; color: var(--jzn-primary); }
.navbar.scrolled .nav-toggle:hover { background: #63b3ed38; }

/* ---------- 公告消息铃铛（YYU .ntf-bell 1:1，Juzi 变量版） ---------- */
.ntf-bell-wrap { position: relative; }
.ntf-bell {
  align-items: center; background: #ffffff1f; border: 1px solid hsla(0, 0%, 100%, .2);
  border-radius: 12px; color: #fff; cursor: pointer; display: inline-flex;
  font-size: 1rem; height: 36px; width: 36px; justify-content: center; position: relative;
  transition: background .25s var(--nav-ease), color .25s var(--nav-ease), border-color .25s var(--nav-ease), transform .25s var(--nav-ease);
}
.ntf-bell:hover { background: #fff3; transform: translateY(-1px); }
@media (hover: hover) {
  .ntf-bell:hover { --jelly-lift: -1px; --jelly-amp: 1.3; animation: jzn-site-jelly .6s ease-in-out; transform-origin: 50% 100%; }
}
.navbar.scrolled .ntf-bell { background: #63b3ed1f; border-color: transparent; color: var(--jzn-primary); }
.navbar.scrolled .ntf-bell:hover { background: #63b3ed38; }
.ntf-bell:focus-visible { box-shadow: 0 0 0 3px #63b3ed73; outline: none; }
.ntf-dot {
  position: absolute; right: -3px; top: -3px;
  background: var(--jzn-accent-strong); border: 2px solid #fff; border-radius: 50%;
  box-shadow: 0 0 0 3px #f368a029; height: 10px; width: 10px;
}
/* 公告下拉面板 */
.ntf-panel {
  backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
  background: #fffffff7; border: 1px solid hsla(0, 0%, 100%, .7); border-radius: 20px;
  box-shadow: 0 22px 50px #63b3ed2e, 0 6px 16px #2d374814, inset 0 1px #fffc;
  color: var(--jzn-text-main); display: flex; flex-direction: column;
  max-height: min(560px, calc(100vh - var(--nav-height, 64px) - 30px)); overflow: hidden;
  position: absolute; right: -20px; text-align: left; top: calc(100% + 10px); width: 380px; z-index: 60;
}
html[data-night='night'] .ntf-panel { background: rgba(31, 37, 55, .92); border-color: hsla(0, 0%, 100%, .1); color: var(--jzn-text-main); }
.ntf-panel.is-open { animation: jzNtfPop .3s var(--nav-ease); transform-origin: calc(100% - 40px) -10px; }
@keyframes jzNtfPop { from { opacity: 0; transform: scale(.92) translateY(-6px); } to { opacity: 1; transform: none; } }
.ntf-head { align-items: center; border-bottom: 1px dashed rgba(99, 179, 237, .2); display: flex; gap: 8px; padding: 14px 16px 10px; }
.ntf-head h3 { font-size: .95rem; font-weight: 800; margin: 0; color: var(--jzn-text-main); }
.ntf-list { list-style: none; margin: 0; overflow-y: auto; padding: 6px; }
.ntf-item {
  background: none; border: none; border-radius: 14px; color: inherit; cursor: pointer;
  display: flex; gap: 11px; padding: 10px; position: relative; text-align: left;
  text-decoration: none; transition: background .25s var(--nav-ease); width: 100%; box-sizing: border-box;
}
.ntf-item:hover { background: rgba(99, 179, 237, .08); }
.ntf-card-icon {
  align-items: center; background: rgba(99, 179, 237, .14); border-radius: 50%; color: var(--jzn-primary);
  display: flex; flex: none; height: 42px; justify-content: center; width: 42px; font-size: 1.05rem;
}
.ntf-card-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.ntf-card-type { color: var(--jzn-accent-strong); font-size: .72rem; font-weight: 700; }
.ntf-card-time { color: var(--jzn-text-sub); font-size: .7rem; }
.ntf-card-title { color: var(--jzn-text-main); font-size: .88rem; font-weight: 800; line-height: 1.45; }
.ntf-card-desc {
  color: var(--jzn-text-sub); font-size: .76rem; line-height: 1.5;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.ntf-go { align-self: center; color: var(--jzn-text-sub); flex: none; font-size: .85rem; }
.ntf-empty {
  align-items: center; color: var(--jzn-text-sub); display: flex; flex-direction: column;
  font-size: .8rem; gap: 6px; line-height: 1.6; margin: 0; padding: 34px 28px; text-align: center;
}
.ntf-empty > i { color: #63b3ed99; font-size: 1.6rem; margin-bottom: 4px; }
.ntf-empty p { margin: 0; }
.ntf-foot {
  align-items: center; border-top: 1px dashed rgba(99, 179, 237, .2); display: flex;
  justify-content: center; padding: 11px;
}
.ntf-foot .ntf-more {
  align-items: center; color: var(--jzn-primary); display: inline-flex; font-size: .8rem;
  font-weight: 700; gap: 6px; text-decoration: none; transition: color .25s var(--nav-ease);
}
.ntf-foot .ntf-more:hover { color: var(--jzn-accent-strong); }
@media (max-width: 768px) {
  .ntf-panel { left: 12px; position: fixed; right: 12px; top: calc(var(--nav-height, 64px) + 6px); width: auto; }
}

/* ---------- 移动端 compact ---------- */
@media (max-width: 1200px) {
  .nav-inner { gap: 16px; padding: 0 1.25rem; }
  .nav-links, .nav-ruler { gap: 2px; }
  .nav-top { padding: 7px 11px; }
}
@media (max-width: 768px) {
  .navbar:not(.nav-ready):not(.nav-compact) .nav-links { position: absolute; visibility: hidden; }
  .navbar:not(.nav-ready):not(.nav-compact) .nav-toggle { display: inline-flex; }
  .navbar:not(.nav-ready):not(.nav-compact) .nav-actions { margin-left: auto; }
  .navbar.nav-compact .nav-links {
    backdrop-filter: var(--nav-blur); -webkit-backdrop-filter: var(--nav-blur);
    background-color: #fffffff5; border-radius: 16px; box-shadow: var(--nav-shadow);
    flex-direction: column; gap: .25rem; left: 2rem; margin-left: 0;
    max-height: calc(100vh - var(--nav-height) - 24px); opacity: 0; overflow-y: auto;
    overscroll-behavior: contain; padding: .6rem; position: absolute; right: 2rem;
    top: calc(100% + 8px); transform: translateY(-8px); visibility: hidden;
  }
  html[data-night='night'] .navbar.nav-compact .nav-links { background: rgba(31, 37, 55, .96); }
  .navbar.nav-compact.nav-ready .nav-links { transition: opacity .25s var(--nav-ease), transform .25s var(--nav-ease), visibility .25s; }
  .navbar.nav-compact.nav-open .nav-links { opacity: 1; transform: translateY(0); visibility: visible; }
  .navbar.nav-compact .nav-actions { margin-left: auto; }
  .navbar.nav-compact .nav-item { align-items: stretch; flex-direction: column; }
  .navbar.nav-compact .nav-links .nav-top {
    border-radius: 10px; color: var(--jzn-text-main); justify-content: space-between;
    padding: 10px 14px; text-shadow: none;
  }
  .navbar.nav-compact .nav-links .nav-top.active, .navbar.nav-compact .nav-links .nav-top:hover {
    background: #63b3ed1f; box-shadow: none; color: var(--jzn-primary);
  }
  .navbar.nav-compact .nav-links .nav-caret { display: none; }
  .navbar.nav-compact .nav-sub {
    backdrop-filter: none; -webkit-backdrop-filter: none; background: none; border: none;
    border-left: 2px solid rgba(99, 179, 237, .2); border-radius: 0; box-shadow: none;
    gap: 0; margin: 2px 0 4px 12px; min-width: 0; opacity: 1; padding: 2px 0 2px 8px;
    position: static; transform: none; visibility: visible;
  }
  .navbar.nav-compact .nav-sub:before { display: none; }
  .navbar.nav-compact .nav-sub a { padding: 8px 10px; white-space: normal; }
  .navbar.nav-compact .nav-sub a:before { display: none; }
  .navbar.nav-compact .nav-sub a.active, .navbar.nav-compact .nav-sub a:hover { background: #63b3ed1f; color: var(--jzn-primary); }
  .navbar.nav-compact .nav-toggle { display: inline-flex; }
}
@media (max-width: 520px) {
  .nav-inner { padding: 0 1rem; }
  .navbar.nav-compact .nav-links { left: 1rem; right: 1rem; }
  .nav-user-name { display: none; }
  .navbar.nav-compact .nav-user-btn { padding: 4px; }
}

/* ---------- 搜索弹层（YYU sch-overlay 1:1） ---------- */
.sch-overlay {
  align-items: flex-start; backdrop-filter: blur(6px) saturate(140%);
  -webkit-backdrop-filter: blur(6px) saturate(140%);
  background: #2d374859; display: none; inset: 0;
  justify-content: center; padding: clamp(64px, 12vh, 140px) 1rem 2rem;
  position: fixed; z-index: 200;
}
.sch-overlay.is-open { display: flex; }
.sch-panel {
  backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%);
  background: #ffffffe0; border: 1px solid hsla(0, 0%, 100%, .72); border-radius: 24px;
  box-shadow: 0 26px 60px -20px #c1a2e08c, inset 0 1px #ffffffe6;
  display: flex; flex-direction: column; max-height: min(70vh, 640px);
  max-width: 620px; overflow: hidden; width: 100%;
  animation: jzn-sch-in .45s var(--nav-ease) backwards;
}
html[data-night='night'] .sch-panel { background: rgba(31, 37, 55, .96); border-color: hsla(0, 0%, 100%, .1); }
html[data-night='night'] .sch-bar { background: rgba(45, 55, 72, .5); }
html[data-night='night'] .sch-input { color: var(--jzn-text-main); }
html[data-night='night'] .sch-input::placeholder { color: #7c88a3; }
@keyframes jzn-sch-in { from { opacity: 0; transform: translateY(-14px) scale(.98); } to { opacity: 1; transform: none; } }
.sch-bar {
  align-items: center; background: #ffffff8c; border: 1px solid rgba(99, 179, 237, .18);
  border-radius: 999px; box-shadow: inset 0 1px 2px #2d37480d;
  display: flex; flex: 0 0 auto; gap: 10px; margin: 14px 14px 0; padding: 6px 6px 6px 16px;
  position: relative;
  transition: box-shadow .35s var(--nav-ease), border-color .35s var(--nav-ease), background .35s var(--nav-ease);
}
.sch-bar:hover:not(:focus-within) { background: #ffffffbd; border-color: #63b3ed52; }
.sch-bar:focus-within {
  background: #fffffff2; border-color: #f368a066;
  box-shadow: inset 0 1px 2px #2d374808, 0 0 16px #f368a029, 0 14px 30px -18px #c1a2e099;
}
.sch-bar-icon { color: #a7accf; flex: 0 0 auto; font-size: .95rem; transition: color .35s var(--nav-ease), transform .35s var(--nav-ease); }
.sch-bar:focus-within .sch-bar-icon { color: var(--jzn-accent-strong); transform: scale(1.08); }
.sch-input {
  background: none; border: none; color: var(--jzn-text-main); flex: 1;
  font-family: inherit; font-size: .95rem; min-width: 0; padding: 11px 0;
}
.sch-input:focus { outline: none; }
.sch-input::placeholder { color: #a7accf; }
.sch-input::-webkit-search-cancel-button { appearance: none; -webkit-appearance: none; }
.sch-icon-btn {
  background: #2d37480f; border: none; border-radius: 50%; color: var(--jzn-text-sub);
  cursor: pointer; display: grid; flex: 0 0 auto; font-size: .75rem; height: 28px;
  place-items: center; transition: all .3s var(--nav-ease); width: 28px;
}
.sch-icon-btn:hover { background: #f368a01f; color: var(--jzn-accent-strong); }
.sch-text-btn {
  background: #f368a01a; border: none; border-radius: 999px; color: var(--jzn-accent-strong);
  cursor: pointer; font-family: inherit; font-size: .85rem; font-weight: 750; padding: 9px 20px;
  transition: all .3s var(--nav-ease);
}
.sch-text-btn:hover { background: #f368a02e; }
.sch-body { flex: 1 1 auto; min-height: 120px; overflow-y: auto; overscroll-behavior: contain; padding: 14px; }
.sch-state { align-items: center; display: flex; flex-direction: column; gap: 10px; justify-content: center; min-height: 180px; text-align: center; }
.sch-idle-mascot { height: auto; object-fit: contain; width: min(180px, 46vw); }
.sch-idle-head { align-items: center; color: var(--jzn-text-sub); display: flex; font-size: .76rem; font-weight: 650; justify-content: space-between; padding: 0 4px 10px; }
.sch-idle-hint { align-items: center; color: var(--jzn-text-sub); display: flex; flex-direction: column; font-size: .84rem; gap: 8px; justify-content: center; margin: 14px 0; text-align: center; }
.sch-state-hint { color: var(--jzn-text-sub); font-size: .78rem; }
.sch-quick {
  align-items: center; border-radius: 14px; color: var(--jzn-text-main); cursor: pointer;
  display: flex; font-size: .86rem; gap: 10px; padding: 12px 14px;
  transition: background .25s var(--nav-ease);
}
.sch-quick:hover { background: #63b3ed1f; }
.sch-quick .sch-go { margin-left: auto; }
.sch-list { display: flex; flex-direction: column; gap: 6px; list-style: none; margin: 0; padding: 0; }
.sch-foot { border-top: 1px solid var(--jzn-border-color); color: #a7accf; display: flex; flex: 0 0 auto; font-size: .72rem; gap: 18px; padding: 10px 20px; }
.sch-foot kbd { background: #fffc; border: 1px solid var(--jzn-border-color); border-radius: 6px; font-family: inherit; font-size: .68rem; font-weight: 650; margin-right: 5px; padding: 2px 7px; }
html[data-night='night'] .sch-foot kbd { background: rgba(255, 255, 255, .06); }
@media (max-width: 640px) { .sch-overlay { padding: 70px .75rem 1rem; } .sch-panel { border-radius: 20px; max-height: 78vh; } }

/* ---------- keyframes ---------- */
@keyframes jzn-site-jelly {
  0% { transform: translateY(var(--jelly-from, 0)) scale(1); }
  25% { transform: translateY(var(--jelly-lift, -6px)) scale(calc(1 + var(--jelly-amp, 1) * .035), calc(1 - var(--jelly-amp, 1) * .05)); }
  42% { transform: translateY(var(--jelly-lift, -6px)) scale(calc(1 - var(--jelly-amp, 1) * .025), calc(1 + var(--jelly-amp, 1) * .035)); }
  58% { transform: translateY(var(--jelly-lift, -6px)) scale(calc(1 + var(--jelly-amp, 1) * .015), calc(1 - var(--jelly-amp, 1) * .02)); }
  74% { transform: translateY(var(--jelly-lift, -6px)) scale(calc(1 - var(--jelly-amp, 1) * .007), calc(1 + var(--jelly-amp, 1) * .01)); }
  88% { transform: translateY(var(--jelly-lift, -6px)) scale(calc(1 + var(--jelly-amp, 1) * .003), calc(1 - var(--jelly-amp, 1) * .003)); }
  to { transform: translateY(var(--jelly-lift, -6px)) scale(1); }
}

/* ---------- 编辑齿轮默认位（JS 会对齐 .joe_action） ---------- */
.jz-fab-edit { right: 24px; bottom: 96px; }

/* ---------- 未滚动时导航可读性保底 ----------
   YYU 原设计假设首屏是深色 hero 图，按钮用白色 ghost；
   本站首屏背景可能偏浅，导致白色按钮/文字看不清。
   未滚动(.navbar 非 .scrolled)时给按钮/文字加深色底+描边，保证任何背景下可读；
   滚动后恢复 YYU 原样（上方 .scrolled 规则覆盖）。 ---------- */
.navbar:not(.scrolled) .nav-search,
.navbar:not(.scrolled) .ntf-bell,
.navbar:not(.scrolled) .nav-toggle {
  background: rgba(45, 55, 72, .28);
  border-color: rgba(255, 255, 255, .35);
  color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .18), inset 0 0 0 1px rgba(255, 255, 255, .12);
}
.navbar:not(.scrolled) .nav-search:hover,
.navbar:not(.scrolled) .ntf-bell:hover,
.navbar:not(.scrolled) .nav-toggle:hover {
  background: rgba(45, 55, 72, .42);
}
.navbar:not(.scrolled) .nav-top {
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, .5);
}
.navbar:not(.scrolled) .nav-user-btn {
  background: rgba(45, 55, 72, .28);
  border-color: rgba(255, 255, 255, .3);
  color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
}
.navbar:not(.scrolled) .nav-user-name,
.navbar:not(.scrolled) .nav-user-caret { color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, .45); }
/* 登录按钮未滚动时保持粉色可读 */
.navbar:not(.scrolled) .nav-login {
  background: rgba(243, 104, 160, .92);
  color: #fff;
  box-shadow: 0 4px 14px rgba(243, 104, 160, .4);
}
/* 深色模式下未滚动也保持原 ghost 即可（背景本就深） */
html[data-night='night'] .navbar:not(.scrolled) .nav-search,
html[data-night='night'] .navbar:not(.scrolled) .ntf-bell,
html[data-night='night'] .navbar:not(.scrolled) .nav-toggle,
html[data-night='night'] .navbar:not(.scrolled) .nav-user-btn {
  background: #ffffff1f; border-color: hsla(0, 0%, 100%, .2); box-shadow: none;
}

/* ---------- 动效偏好 ---------- */
@media (prefers-reduced-motion: reduce) {
  .navbar, .nav-logo-img, .nav-top, .nav-sub, .nav-search, .nav-login, .nav-user-btn, .msg-news-icon, .sch-panel, .sch-bar, .sch-icon-btn, .sch-text-btn { transition: none !important; animation: none !important; }
  .sch-overlay.is-open .sch-panel { animation: none !important; }
}
