/* ============================================================
   nav2026.css — 2026 主导航（玻璃胶囊 / 极光噪点 / 移动端底部胶囊）
   仅作用于 .nv-* 命名空间，不影响页面其它模块
   ============================================================ */

.nv {
    --nv-ink: #04070f;
    --nv-blue: #3b82f6;
    --nv-cyan: #22d3ee;
    --nv-violet: #8b5cf6;
    --nv-line: rgba(255, 255, 255, .12);
    --nv-txt: rgba(232, 240, 255, .74);
    --nv-txt-hi: #ffffff;
    /* 魔兽向星际蓝紫：深夜幕底 + 秘蓝/星紫渐变 */
    --nv-glass: linear-gradient(118deg, rgba(11, 12, 40, .93) 0%, rgba(30, 22, 78, .90) 30%, rgba(23, 30, 86, .90) 60%, rgba(8, 9, 30, .94) 100%);
    position: sticky;
    top: 0;
    z-index: 900;
    padding: 12px 12px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    pointer-events: none;
}
.nv *, .nv *::before, .nv *::after { box-sizing: border-box; }

.nv__inner {
    pointer-events: auto;
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 1200px;
    height: 66px;
    margin: 0 auto;
    padding: 0 12px 0 14px;
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .20) 0%, rgba(216, 228, 255, .07) 26%, rgba(255, 255, 255, 0) 58%),
        linear-gradient(102deg, rgba(188, 212, 255, .14) 0%, rgba(188, 212, 255, 0) 30%, rgba(255, 255, 255, 0) 72%, rgba(196, 176, 255, .12) 100%),
        var(--nv-glass);
    border: 1px solid rgba(214, 176, 96, .42);
    box-shadow:
        0 0 0 1px rgba(4, 6, 20, .62),
        0 0 0 1px rgba(198, 216, 255, .14) inset,
        0 14px 18px -16px rgba(186, 208, 255, .45) inset,
        0 1px 0 rgba(255, 255, 255, .22) inset,
        0 -1px 0 rgba(0, 0, 0, .50) inset,
        0 0 30px -8px rgba(96, 132, 255, .60),
        0 18px 40px -18px rgba(2, 8, 32, .80),
        0 2px 10px rgba(2, 8, 32, .28);
    -webkit-backdrop-filter: blur(26px) saturate(190%) brightness(1.06);
    backdrop-filter: blur(26px) saturate(190%) brightness(1.06);
    transition: height .28s cubic-bezier(.4, 0, .2, 1), box-shadow .28s ease, border-radius .28s ease, background .28s ease;
    overflow: hidden;
}
/* 极光光斑 */
.nv__inner::before {
    content: '';
    position: absolute;
    inset: -60% -10% auto -10%;
    height: 180%;
    background:
        radial-gradient(38% 62% at 12% 42%, rgba(58, 108, 236, .46), transparent 70%),
        radial-gradient(34% 58% at 52% 4%, rgba(126, 84, 255, .42), transparent 70%),
        radial-gradient(42% 64% at 88% 62%, rgba(72, 178, 255, .38), transparent 70%),
        radial-gradient(20% 36% at 70% 90%, rgba(238, 196, 112, .14), transparent 72%);
    filter: blur(7px);
    pointer-events: none;
    animation: nv-nebula 22s ease-in-out infinite;
}
@keyframes nv-nebula {
    0%, 100% { transform: translate3d(-1.6%, 0, 0) scale(1.02); opacity: .88; }
    50%      { transform: translate3d(1.6%, 0, 0) scale(1.07); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .nv__inner::before { animation: none; }
}
/* 顶部一像素高光 */
.nv__inner::after {
    content: '';
    position: absolute;
    left: 14px; right: 14px; top: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(226, 190, 118, .35) 18%, rgba(248, 222, 160, .85) 50%, rgba(226, 190, 118, .35) 82%, transparent);
    opacity: .8;
    pointer-events: none;
}
/* THREE 星尘装饰层 */
.nv__fx {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    opacity: .9;
    mix-blend-mode: screen;
}
.nv__inner > *:not(.nv__fx) { position: relative; z-index: 1; }
.nv.is-scrolled { padding-top: 8px; }
.nv.is-scrolled .nv__inner {
    height: 58px;
    border-radius: 16px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .08) inset,
        0 -1px 0 rgba(0, 0, 0, .35) inset,
        0 22px 46px -20px rgba(2, 8, 32, .85),
        0 2px 12px rgba(2, 8, 32, .35);
}

/* ---------- 品牌 ---------- */
.nv__brand {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    padding: 4px 10px 4px 4px;
    border-radius: 14px;
    text-decoration: none;
    transition: background .22s ease;
}
.nv__brand:hover { background: rgba(255, 255, 255, .06); }
.nv__logo {
    position: relative;
    display: block;
    width: 40px; height: 40px;
    border-radius: 12px;
    background:
        url('https://cvsp.cn/static/portal/newlogo.jpg') no-repeat 50% 2% / 178% auto,
        linear-gradient(140deg, #0b1a36, #06101f);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .16) inset, 0 6px 16px -6px rgba(34, 211, 238, .75);
    overflow: hidden;
}
.nv__name {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
    font-size: 16.5px;
    font-weight: 700;
    letter-spacing: .5px;
    color: #fff;
    white-space: nowrap;
}
.nv__name em {
    font-style: normal;
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: 2.4px;
    color: rgba(148, 190, 255, .72);
    margin-top: 4px;
}

/* ---------- 主导航链接 ---------- */
.nv__links {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: 6px;
    padding: 5px;
    border-radius: 15px;
    background: rgba(255, 255, 255, .045);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .07) inset;
}
.nv__links a {
    position: relative;
    display: block;
    min-width: 86px;
    text-align: center;
    padding: 8px 16px;
    border-radius: 11px;
    font-size: 14.5px;
    font-weight: 500;
    letter-spacing: .4px;
    color: var(--nv-txt);
    text-decoration: none;
    white-space: nowrap;
    transition: color .22s ease, background .22s ease, box-shadow .22s ease, transform .16s ease;
}
.nv__links a:hover {
    color: #fff;
    background: rgba(255, 255, 255, .09);
}
.nv__links a:focus { color: #fff; }
.nv__links a:active { transform: scale(.96); }
.nv__links a.is-cur {
    color: #fff;
    font-weight: 700;
    background: linear-gradient(135deg, rgba(64, 140, 250, .46), rgba(34, 211, 238, .26));
    box-shadow:
        0 0 0 1px rgba(228, 194, 122, .40) inset,
        0 8px 20px -10px rgba(59, 130, 246, .95);
    text-shadow: 0 1px 8px rgba(96, 165, 250, .55);
}
.nv__links a.is-cur::after {
    content: '';
    position: absolute;
    left: 50%; bottom: 3px;
    width: 16px; height: 2px;
    margin-left: -8px;
    border-radius: 2px;
    background: linear-gradient(90deg, #f4d78f, #9be7ff);
    box-shadow: 0 0 10px rgba(214, 190, 128, .85);
}

/* ---------- 搜索 ---------- */
.nv__searchwrap {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 330px;
    margin-left: auto;
}
.nv__search {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 5px 0 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .055);
    border: 1px solid rgba(255, 255, 255, .1);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 4px 14px -8px rgba(0, 0, 0, .6) inset;
    transition: border-color .22s ease, background .22s ease, box-shadow .22s ease;
}
.nv__search:hover { background: rgba(255, 255, 255, .075); border-color: rgba(255, 255, 255, .16); }
.nv__search:focus-within {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(96, 165, 250, .62);
    box-shadow:
        0 0 0 3px rgba(59, 130, 246, .16),
        0 0 22px -4px rgba(59, 130, 246, .55),
        0 1px 0 rgba(255, 255, 255, .1) inset;
}
.nv__search .ico {
    flex: 0 0 auto;
    width: 17px; height: 17px;
    color: rgba(191, 214, 255, .8);
    transition: color .22s ease;
}
.nv__search:focus-within .ico { color: #7dd3fc; }
.nv__search .searchstyle {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 100%;
    margin: 0; padding: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    font-size: 13.5px;
    color: #eaf2ff;
    outline: none;
    box-shadow: none;
}
.nv__search .searchstyle::placeholder { color: rgba(173, 195, 227, .58); }
.nv__search .searchstyle::-webkit-input-placeholder { color: rgba(173, 195, 227, .58); }
.nv__search kbd {
    flex: 0 0 auto;
    display: none;
    padding: 2px 5px;
    border-radius: 5px;
    font-family: inherit;
    font-size: 10px;
    line-height: 1.4;
    color: rgba(203, 222, 255, .7);
    background: rgba(255, 255, 255, .07);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .1) inset;
}
.nv__search .searchebtn {
    position: relative;
    isolation: isolate;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 30px; height: 30px;
    padding: 0; margin: 0;
    border: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #7ddcff 0%, #3b82f6 34%, #1d4ed8 64%, #0ea5e9 100%);
    color: #fff;
    cursor: pointer;
    text-indent: 0;
    overflow: hidden;
    box-shadow:
        0 4px 14px -4px rgba(56, 189, 248, .85),
        inset 0 0 0 1px rgba(224, 242, 254, .60),
        inset 0 1px 0 rgba(255, 255, 255, .80),
        inset 0 -3px 7px rgba(2, 32, 90, .30),
        inset 0 0 12px rgba(125, 211, 252, .28);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.nv__search .searchebtn svg { width: 14px; height: 14px; position: relative; z-index: 1; }
.nv__search .searchebtn:hover {
    filter: brightness(1.06);
    box-shadow:
        0 6px 20px -4px rgba(56, 189, 248, 1),
        inset 0 0 0 1px rgba(240, 249, 255, .85),
        inset 0 1px 0 rgba(255, 255, 255, .9),
        inset 0 -3px 7px rgba(2, 32, 90, .26),
        inset 0 0 14px rgba(125, 211, 252, .4);
}
.nv__search .searchebtn:active { transform: scale(.9); }

/* 热搜浮层 */
.nv__hot {
    position: absolute;
    top: calc(100% + 10px);
    left: 0; right: 0;
    padding: 12px 14px 14px;
    border-radius: 16px;
    background: linear-gradient(160deg, rgba(20, 32, 56, .97), rgba(8, 14, 30, .98));
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .9), 0 1px 0 rgba(255, 255, 255, .08) inset;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    z-index: 5;
}
.nv__searchwrap:focus-within .nv__hot { opacity: 1; visibility: visible; transform: translateY(0); }
.nv__hot b {
    display: block;
    margin-bottom: 9px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 1.6px;
    color: rgba(148, 190, 255, .75);
}
.nv__hot a {
    display: inline-block;
    margin: 0 6px 6px 0;
    padding: 5px 11px;
    border-radius: 999px;
    font-size: 12.5px;
    color: rgba(226, 236, 255, .86);
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .07) inset;
    text-decoration: none;
    transition: all .2s ease;
}
.nv__hot a:hover { color: #fff; background: rgba(59, 130, 246, .3); box-shadow: 0 0 0 1px rgba(147, 197, 253, .5) inset; }

/* ---------- 右侧操作区 ---------- */
.nv__acts { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.nv .login-register { display: flex; align-items: center; gap: 8px; height: auto; line-height: normal; float: none; }
/* 覆盖 base2.css 的右侧分隔线与 12px 定高，按钮与搜索框等高对齐 */
.nv .login-register-link {
    display: flex; align-items: center; gap: 8px;
    border-right: 0; height: auto; line-height: normal; margin-top: 0;
}
.nv .hidden { display: none !important; }
.nv__btn {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 36px;
    min-width: 62px;
    padding: 0 14px;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .3px;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .18s ease, box-shadow .22s ease, background .22s ease, color .22s ease;
}
.nv__btn:active { transform: scale(.96); }
/* 亮蓝水晶玻璃（参照水晶质感参考图）：半透冰蓝底 + 白棱高光 + 青绿冷光，无外圈流光 */
.nv__btn--ghost {
    color: #fff;
    text-shadow: 0 1px 2px rgba(3, 30, 80, .45);
    background: linear-gradient(135deg,
        rgba(191, 219, 254, .15) 0%,
        rgba(56, 132, 214, .15) 48%,
        rgba(30, 64, 175, .22) 100%);
    -webkit-backdrop-filter: blur(10px) saturate(150%);
    backdrop-filter: blur(10px) saturate(150%);
    box-shadow:
        0 4px 12px -8px rgba(14, 116, 190, .55),
        0 0 0 1px rgba(191, 219, 254, .40) inset,
        0 1px 0 rgba(255, 255, 255, .32) inset,
        0 -4px 10px rgba(6, 32, 84, .30) inset;
}
.nv__btn--ghost:hover {
    background: linear-gradient(135deg,
        rgba(219, 234, 254, .24) 0%,
        rgba(78, 160, 230, .24) 48%,
        rgba(37, 80, 190, .32) 100%);
    box-shadow:
        0 6px 16px -8px rgba(30, 130, 210, .70),
        0 0 0 1px rgba(219, 234, 254, .58) inset,
        0 1px 0 rgba(255, 255, 255, .44) inset,
        0 -4px 10px rgba(6, 32, 84, .26) inset;
}
.nv__btn--primary {
    position: relative;
    color: #fff;
    text-shadow: 0 1px 2px rgba(3, 30, 80, .5);
    background: linear-gradient(135deg, #63c0e2 0%, #3a72ce 38%, #22439c 68%, #127fae 100%);
    box-shadow:
        0 4px 14px -8px rgba(30, 96, 190, .75),
        0 0 0 1px rgba(191, 219, 254, .40) inset,
        0 1px 0 rgba(255, 255, 255, .45) inset,
        0 -6px 12px rgba(2, 24, 70, .38) inset,
        0 0 16px rgba(125, 211, 252, .14) inset;
    overflow: hidden;
}
.nv__btn--primary:hover {
    background: linear-gradient(135deg, #74cbe9 0%, #427ddb 38%, #2750b0 68%, #1690c0 100%);
    box-shadow:
        0 6px 18px -8px rgba(40, 110, 205, .85),
        0 0 0 1px rgba(219, 234, 254, .58) inset,
        0 1px 0 rgba(255, 255, 255, .55) inset,
        0 -6px 12px rgba(2, 24, 70, .34) inset,
        0 0 18px rgba(125, 211, 252, .20) inset;
}
/* 覆盖全局 a:hover 的品牌蓝，保证按钮文字始终清晰 */
.nv a.nv__btn,
.nv a.nv__btn:link,
.nv a.nv__btn:visited,
.nv a.nv__btn:hover,
.nv a.nv__btn:focus,
.nv a.nv__btn:active { color: #fff; }
.nv a.nv__btn--ghost:hover,
.nv a.nv__btn--ghost:focus { color: #fff; }
.nv a.nv__btn--primary:hover,
.nv a.nv__btn--primary:focus { color: #fff; }
/* 水晶折射层：左上大高光 + 右下青绿冷光 + 两道对角棱 + 底边青色反光（静止） */
.nv__btn::before,
.nv__search .searchebtn::before,
.nv-sheet__form .searchebtn::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    pointer-events: none;
    background-image:
        linear-gradient(104deg, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, .28) 47%, rgba(224, 242, 254, .10) 54%, rgba(255, 255, 255, 0) 62%),
        radial-gradient(85% 125% at 10% -8%, rgba(255, 255, 255, .78), rgba(255, 255, 255, 0) 56%),
        radial-gradient(95% 135% at 94% 108%, rgba(45, 212, 191, .55), rgba(45, 212, 191, 0) 62%),
        linear-gradient(118deg, transparent 22%, rgba(255, 255, 255, .44) 32%, rgba(255, 255, 255, .06) 39%, transparent 50%),
        linear-gradient(118deg, transparent 60%, rgba(186, 230, 253, .32) 69%, transparent 78%),
        linear-gradient(0deg, rgba(34, 211, 238, .32), rgba(34, 211, 238, 0) 40%);
    background-size: 240% 100%, auto, auto, auto, auto, auto;
}
/* 登录/注册按钮压暗：削弱水晶高光与冷光，避免比导航更亮 */
.nv__btn::before { opacity: .7; }
.nv__btn--ghost::before { opacity: .5; }
/* 玻璃上光：顶部高光带 + 上方冷白反射 */
.nv__btn::after,
.nv__search .searchebtn::after,
.nv-sheet__form .searchebtn::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, .10) 32%, rgba(255, 255, 255, 0) 56%),
        radial-gradient(130% 95% at 50% -25%, rgba(224, 242, 254, .40), rgba(224, 242, 254, 0) 62%);
}
.nv__btn::after { opacity: .55; }
.nv__btn--ghost::after { opacity: .4; }

/* 三按钮动态：缓慢流淌的渐变金属 + 充能脉冲 + 微粒子漂移（全部在按钮内部，无边缘流光） */
@keyframes nv-liquid {
    0%   { background-position: 0% 45%; }
    50%  { background-position: 100% 55%; }
    100% { background-position: 0% 45%; }
}
@keyframes nv-charge {
    0%, 100% { opacity: .62; }
    50%      { opacity: .84; }
}
@keyframes nv-charge-soft {
    0%, 100% { opacity: .46; }
    50%      { opacity: .64; }
}
@keyframes nv-charge-bright {
    0%, 100% { opacity: .90; }
    50%      { opacity: 1; }
}
@keyframes nv-sheen {
    0%, 10%   { background-position: 150% 0; }
    55%, 100% { background-position: -60% 0; }
}
@keyframes nv-dust {
    0%   { background-position: 0 0, 0 0, 0 0; }
    50%  { background-position: 22px -16px, -16px 20px, 12px 14px; }
    100% { background-position: 0 0, 0 0, 0 0; }
}
.nv__btn,
.nv__search .searchebtn,
.nv-sheet__form .searchebtn {
    background-size: 200% 200%;
    background-position: 0% 45%;
    animation: nv-liquid 18s cubic-bezier(.42, 0, .58, 1) infinite;
}
.nv__btn--ghost { animation-duration: 23s; }
.nv__search .searchebtn,
.nv-sheet__form .searchebtn { animation-duration: 15s; }
.nv__btn::before { animation: nv-charge 7.6s ease-in-out infinite, nv-sheen 15s cubic-bezier(.45, 0, .55, 1) infinite; }
.nv__btn--ghost::before { animation-name: nv-charge-soft, nv-sheen; animation-duration: 9.2s, 19s; }
.nv__search .searchebtn::before,
.nv-sheet__form .searchebtn::before { animation: nv-charge-bright 6.4s ease-in-out infinite, nv-sheen 12s cubic-bezier(.45, 0, .55, 1) infinite; }
/* 玻璃面上的细微颗粒：慢速漂移，营造流动金属里的悬浮尘光 */
.nv__btn::after,
.nv__search .searchebtn::after,
.nv-sheet__form .searchebtn::after {
    background-image:
        radial-gradient(circle at 24% 34%, rgba(255, 255, 255, .92) 0 .9px, rgba(255, 255, 255, 0) 1.7px),
        radial-gradient(circle at 71% 72%, rgba(186, 230, 253, .88) 0 1px, rgba(186, 230, 253, 0) 1.9px),
        radial-gradient(circle at 46% 12%, rgba(224, 242, 254, .78) 0 .8px, rgba(224, 242, 254, 0) 1.6px),
        linear-gradient(180deg, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, .10) 32%, rgba(255, 255, 255, 0) 56%),
        radial-gradient(130% 95% at 50% -25%, rgba(224, 242, 254, .40), rgba(224, 242, 254, 0) 62%);
    background-size: 78px 78px, 58px 58px, 46px 46px, 100% 100%, 100% 100%;
    background-repeat: repeat, repeat, repeat, no-repeat, no-repeat;
    animation: nv-dust 26s linear infinite;
}
.nv__btn--ghost::after { animation-duration: 31s; }
@media (prefers-reduced-motion: reduce) {
    .nv__btn,
    .nv__search .searchebtn,
    .nv-sheet__form .searchebtn,
    .nv__btn::before,
    .nv__btn::after,
    .nv__search .searchebtn::before,
    .nv__search .searchebtn::after,
    .nv-sheet__form .searchebtn::before,
    .nv-sheet__form .searchebtn::after { animation: none !important; }
}

/* 移动端按钮（桌面隐藏） */
.nv__mobile { display: none; align-items: center; gap: 8px; margin-left: auto; }
.nv__mbtn {
    display: grid;
    place-items: center;
    width: 40px; height: 40px;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, .07);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .1) inset;
    color: rgba(226, 238, 255, .92);
    cursor: pointer;
    transition: background .2s ease, transform .16s ease, color .2s ease;
}
.nv__mbtn svg { width: 19px; height: 19px; }
.nv__mbtn:active { transform: scale(.92); background: rgba(59, 130, 246, .28); color: #fff; }

/* ---------- 移动端底部胶囊 tabbar ---------- */
.nv-tab {
    display: none;
    position: fixed;
    left: 12px; right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    z-index: 890;
    padding: 6px;
    border-radius: 21px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .20) 0%, rgba(255, 255, 255, .05) 40%, rgba(255, 255, 255, .01) 100%),
        linear-gradient(165deg, rgba(38, 58, 96, .52) 0%, rgba(10, 18, 36, .56) 55%, rgba(16, 28, 52, .56) 100%);
    border: 1px solid rgba(255, 255, 255, .26);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .6) inset,
        0 -14px 26px -20px rgba(0, 0, 0, .55) inset,
        0 20px 44px -18px rgba(0, 0, 0, .9),
        0 0 0 1px rgba(4, 10, 24, .42);
    -webkit-backdrop-filter: blur(30px) saturate(220%);
    backdrop-filter: blur(30px) saturate(220%);
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
}
/* 顶部镜面高光 */
.nv-tab::before {
    content: '';
    position: absolute;
    left: 18px; right: 18px; top: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .8) 30%, rgba(190, 227, 255, .9) 50%, rgba(255, 255, 255, .8) 70%, transparent);
    opacity: .75;
    pointer-events: none;
}
.nv-tab__list { position: relative; display: flex; align-items: stretch; gap: 8px; }
.nv-tab__list a {
    position: relative;
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    padding: 6px 3px 9px;
    border-radius: 15px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .02) 50%, rgba(255, 255, 255, 0) 100%),
        rgba(255, 255, 255, .03);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .16) inset,
        0 0 0 1px rgba(255, 255, 255, .07) inset,
        0 6px 14px -12px rgba(0, 0, 0, .8);
    font-size: 9.5px;
    line-height: 1.15;
    font-weight: 600;
    letter-spacing: .3px;
    color: rgba(214, 230, 252, .9);
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(0, 0, 0, .65), 0 -1px 0 rgba(255, 255, 255, .12), 0 0 10px rgba(130, 180, 255, .3);
    -webkit-tap-highlight-color: transparent;
    transition: color .22s ease, background .22s ease, box-shadow .22s ease, transform .16s ease;
}
.nv-tab__list a svg {
    width: 17px; height: 17px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6)) drop-shadow(0 0 6px rgba(130, 180, 255, .35));
}
.nv-tab__list a span { display: block; padding: 0 1px 1px; }
.nv-tab__list a:active { transform: scale(.94); }
.nv-tab__list a:hover { color: rgba(226, 240, 255, .98); }
.nv-tab__list a.is-cur:hover { color: #fff; }
.nv-tab__list a.is-cur {
    color: #fff;
    font-weight: 700;
    letter-spacing: .5px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .45) 0%, rgba(255, 255, 255, .12) 42%, rgba(255, 255, 255, 0) 100%),
        linear-gradient(155deg, rgba(125, 195, 255, .55) 0%, rgba(45, 220, 245, .32) 100%);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .8) inset,
        0 0 0 1px rgba(200, 240, 255, .6) inset,
        0 10px 24px -12px rgba(56, 189, 248, 1),
        0 2px 6px rgba(2, 8, 32, .5);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .45), 0 -1px 0 rgba(3, 30, 70, .8), 0 2px 7px rgba(2, 20, 60, .95), 0 0 16px rgba(186, 230, 253, .95);
}
.nv-tab__list a.is-cur svg { filter: drop-shadow(0 0 6px rgba(125, 211, 252, .85)) drop-shadow(0 1px 1px rgba(0, 0, 0, .4)); }
.nv-tab__list a.is-cur::before {
    content: '';
    position: absolute;
    top: 3px;
    width: 14px; height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, #a5f3fc, #e0f2fe);
    box-shadow: 0 0 10px rgba(165, 243, 252, .95);
}

/* ---------- 移动端浮层（搜索 + 导航 + 账号） ---------- */
.nv-sheet {
    position: fixed;
    inset: 0;
    z-index: 950;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: calc(14px + env(safe-area-inset-top, 0px)) 14px calc(96px + env(safe-area-inset-bottom, 0px));
    background: rgba(3, 7, 16, .55);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .26s ease, visibility .26s;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
}
.nv-sheet.is-open { opacity: 1; visibility: visible; }
.nv-sheet__panel {
    position: relative;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    padding: 16px 16px 0;
    border-radius: 22px;
    background: linear-gradient(165deg, rgba(23, 36, 63, .98), rgba(6, 11, 24, .99));
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .95), 0 1px 0 rgba(255, 255, 255, .1) inset;
    transform: translateY(-12px) scale(.98);
    transition: transform .28s cubic-bezier(.34, 1.3, .48, 1);
    max-height: 100%;
    /* 老 WebView 不解析百分比时退回到显式视口高度，避免面板底部（登录/注册）被裁掉 */
    max-height: calc(100dvh - 110px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.nv-sheet.is-open .nv-sheet__panel { transform: translateY(0) scale(1); }
.nv-sheet__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.nv-sheet__head span { font-size: 13px; font-weight: 700; letter-spacing: 2px; color: rgba(148, 190, 255, .8); }
.nv-sheet__x {
    display: grid; place-items: center;
    width: 34px; height: 34px;
    padding: 0; border: 0; border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #dbeafe; cursor: pointer;
}
.nv-sheet__x svg { width: 16px; height: 16px; }
.nv-sheet__form {
    display: flex; align-items: center; gap: 8px;
    height: 46px; padding: 0 5px 0 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .12);
}
.nv-sheet__form:focus-within { border-color: rgba(96, 165, 250, .6); box-shadow: 0 0 0 3px rgba(59, 130, 246, .16); }
.nv-sheet__form .ico { width: 18px; height: 18px; color: rgba(191, 214, 255, .85); flex: 0 0 auto; }
.nv-sheet__form .searchstyle {
    flex: 1 1 auto; min-width: 0; height: 100%;
    border: 0; background: transparent; outline: none; padding: 0;
    font-size: 14px; color: #eaf2ff;
}
.nv-sheet__form .searchstyle::placeholder { color: rgba(173, 195, 227, .6); }
.nv-sheet__form .searchebtn {
    position: relative; isolation: isolate; overflow: hidden;
    flex: 0 0 auto; width: 36px; height: 36px; padding: 0; border: 0;
    border-radius: 11px; background: linear-gradient(135deg, #63c0e2 0%, #3a72ce 38%, #22439c 68%, #127fae 100%);
    background-size: 200% 200%; background-position: 0% 45%;
    color: #fff; display: grid; place-items: center; cursor: pointer;
    box-shadow:
        0 6px 16px -6px rgba(56, 189, 248, .9),
        inset 0 0 0 1px rgba(224, 242, 254, .60),
        inset 0 1px 0 rgba(255, 255, 255, .8),
        inset 0 -3px 7px rgba(2, 32, 90, .3);
}
.nv-sheet__form .searchebtn svg { width: 16px; height: 16px; position: relative; z-index: 1; }
.nv-sheet__hot { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0 4px; }
.nv-sheet__hot a {
    padding: 6px 12px; border-radius: 999px; font-size: 12.5px;
    color: rgba(226, 236, 255, .85); text-decoration: none;
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .07) inset;
}
.nv-sheet__links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.nv-sheet__links a {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 14px;
    border-radius: 13px;
    font-size: 14px; font-weight: 500;
    color: rgba(232, 240, 255, .9);
    text-decoration: none;
    background: rgba(255, 255, 255, .05);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .08) inset;
}
.nv-sheet__links a svg { width: 14px; height: 14px; opacity: .5; }
.nv-sheet__links a.is-cur {
    color: #fff; font-weight: 700;
    background: linear-gradient(135deg, rgba(59, 130, 246, .42), rgba(34, 211, 238, .22));
    box-shadow: 0 0 0 1px rgba(147, 197, 253, .42) inset;
}
/* 钉在面板底部：软键盘压缩视口、面板内部滚动时，登录/注册始终可见可点 */
.nv-sheet__acts {
    position: sticky;
    bottom: 0;
    display: flex; gap: 8px;
    margin: 16px -16px 0;
    padding: 30px 16px 16px;
    background: linear-gradient(to top, rgba(6, 11, 24, .99) 58%, rgba(6, 11, 24, .92) 76%, rgba(6, 11, 24, 0));
}
.nv-sheet__acts .nv__btn { flex: 1 1 0; height: 44px; border-radius: 13px; font-size: 14.5px; }
/* 浮层内按钮：任何状态都保持白字，避免被全局 a:hover 染成蓝色 */
.nv-sheet a.nv__btn,
.nv-sheet a.nv__btn:link,
.nv-sheet a.nv__btn:visited,
.nv-sheet a.nv__btn:hover,
.nv-sheet a.nv__btn:focus,
.nv-sheet a.nv__btn:active { color: #fff; }
.nv-sheet__links a,
.nv-sheet__links a:hover,
.nv-sheet__links a:focus,
.nv-sheet__links a:active { color: rgba(232, 240, 255, .9); }
.nv-sheet__links a.is-cur,
.nv-sheet__links a.is-cur:hover { color: #fff; }

/* ---------- 断点 ---------- */
@media (min-width: 1400px) {
    .nv__search kbd { display: inline-block; }
}
@media (max-width: 1180px) {
    .nv__links a { padding: 8px 11px; font-size: 14px; }
    .nv__links { gap: 6px; }
    .nv__searchwrap { max-width: 250px; }
    .nv__name em { display: none; }
}
@media (max-width: 1024px) {
    .nv__links { display: none; }
    .nv__inner { gap: 10px; }
}
@media (max-width: 900px) {
    .nv { padding: 8px 12px 0; }
    .nv__inner {
        height: 56px;
        padding: 0 8px 0 7px;
        border-radius: 17px;
        gap: 8px;
        background:
            linear-gradient(180deg, rgba(255, 255, 255, .14) 0%, rgba(255, 255, 255, .03) 46%, rgba(255, 255, 255, 0) 100%),
            linear-gradient(135deg, rgba(26, 41, 72, .68) 0%, rgba(7, 13, 28, .74) 55%, rgba(13, 22, 44, .74) 100%);
        border-color: rgba(255, 255, 255, .2);
    }
    .nv.is-scrolled { padding-top: 6px; }
    .nv.is-scrolled .nv__inner { height: 52px; }
    .nv__logo { width: 32px; height: 32px; border-radius: 9px; background-size: 180% auto, auto; background-position: 50% 2%, center; }
    .nv__name { font-size: 14.5px; letter-spacing: .6px; }
    .nv__name em { display: none; }
    .nv__brand { padding: 3px 6px 3px 2px; gap: 8px; }
    .nv__searchwrap, .nv__acts { display: none; }
    .nv__mobile { display: flex; }
    .nv__mbtn { width: 36px; height: 36px; border-radius: 11px; background: rgba(255, 255, 255, .08); }
    .nv-tab { display: block; }
    /* 给底部胶囊留出空间 */
    body { padding-bottom: 92px; }
}
@media (max-width: 380px) {
    .nv__name { font-size: 13.5px; }
    .nv__mbtn { width: 34px; height: 34px; }
    .nv-tab { left: 8px; right: 8px; padding: 6px; }
    .nv-tab__list { gap: 4px; }
    .nv-tab__list a { font-size: 9.5px; padding: 5px 2px 6px; }
}

/* ---------- 矮屏 / 软键盘弹出：压缩内容高度，保证登录、注册一眼可见 ---------- */
@media (max-height: 560px) {
    .nv-sheet { padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
    .nv-sheet__panel { padding-top: 12px; border-radius: 16px; }
    .nv-sheet__head { margin-bottom: 8px; }
    .nv-sheet__form { height: 40px; }
    .nv-sheet__hot { display: none; }
    .nv-sheet__links { margin-top: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .nv-sheet__links a { padding: 8px 9px; font-size: 12.5px; }
    .nv-sheet__links a svg { display: none; }
    .nv-sheet__acts { margin-top: 10px; padding: 18px 16px 12px; }
    .nv-sheet__acts .nv__btn { height: 40px; font-size: 13.5px; }
}

/* 不支持毛玻璃时的兜底 */
@supports not ((-webkit-backdrop-filter: blur(2px)) or (backdrop-filter: blur(2px))) {
    .nv__inner { background: #070d1c; }
    .nv-tab { background: #0a1223; }
    .nv-sheet__panel { background: #0a1223; }
}

/* 降低动态 */
@media (prefers-reduced-motion: reduce) {
    .nv__btn--primary::after { animation: none; opacity: 0; }
    .nv *, .nv *::before, .nv *::after { transition-duration: .01ms !important; }
}
