/* ============================================================================
   金牛论坛 · 设计体系 v6.0  ——  AURORA CLEAR（清爽极简 · 玻璃拟态）
   ----------------------------------------------------------------------------
   必须排在 app.css / lux-v5.css 之后加载，作为最终视觉裁定层。
   设计原则：
     1. 一个主色 + 中性灰阶 + 三枚语义色；其余彩色一律收敛
     2. 留白优先，字号层级拉开（标题大、正文稳、辅助弱）
     3. 玻璃拟态：半透明 + 背景模糊，且始终保证文字对比度 ≥ 4.5:1
     4. 非对称布局：可折叠左侧导航轨 + 悬浮内容主板
     5. 统一缓动曲线与时长：--au-ease / --au-t-*，杜绝各自为政的动画
   本层只改视觉，不改任何功能与路由。
   ============================================================================ */

/* ============================================================================
   0. 设计令牌
   ============================================================================ */
:root {
    /* —— 主色（唯一强调色：金牛金 C2B59B 的可读深化版）—— */
    --au-brand:        #A57C36;   /* 白字对比度 ≈ 4.6:1，满足 AA */
    --au-brand-strong: #8A6528;
    --au-brand-soft:   rgba(165, 124, 54, .10);
    --au-brand-soft-2: rgba(165, 124, 54, .16);
    --au-brand-ring:   rgba(165, 124, 54, .30);
    --au-on-brand:     #FFFFFF;

    /* —— 语义色（仅状态使用，不做装饰）—— */
    --au-ok:   #178A4A;
    --au-warn: #B26A0C;
    --au-err:  #C4382E;

    /* —— 中性灰阶（暖灰，与品牌金同色温）—— */
    --n-0:  #FFFFFF;
    --n-1:  #FAF8F4;
    --n-2:  #F4F1EA;
    --n-3:  #EAE5DA;
    --n-4:  #DAD3C5;
    --n-5:  #BEB5A3;
    --n-6:  #9C9382;
    --n-7:  #6F6656;
    --n-8:  #4B4438;
    --n-9:  #2E2A22;
    --n-10: #191712;

    /* —— 语义化表面与文字 —— */
    --au-bg:          #F7F5F1;
    --au-bg-2:        #F0EDE6;
    --au-surface:     rgba(255, 255, 255, .78);
    --au-surface-2:   rgba(255, 255, 255, .62);
    --au-surface-solid: #FFFFFF;
    --au-text-1:      #23201A;
    --au-text-2:      #5F5849;
    --au-text-3:      #8C8474;
    --au-line:        rgba(35, 32, 26, .10);
    --au-line-strong: rgba(35, 32, 26, .18);

    /* —— 玻璃 —— */
    --au-glass-bg:      rgba(255, 255, 255, .72);
    --au-glass-bg-2:    rgba(255, 255, 255, .86);
    --au-glass-blur:    blur(22px) saturate(165%);
    --au-glass-blur-sm: blur(14px) saturate(150%);
    --au-glass-line:    rgba(35, 32, 26, .09);
    --au-glass-shadow:  0 1px 2px rgba(40, 32, 18, .05), 0 12px 32px -18px rgba(40, 32, 18, .24);

    /* —— 圆角（统一四档）—— */
    --au-r-xs: 8px;
    --au-r-sm: 12px;
    --au-r-md: 16px;
    --au-r-lg: 22px;
    --au-r-xl: 28px;
    --au-r-pill: 999px;

    /* —— 间距（8pt 栅格）—— */
    --au-s-1: 4px;
    --au-s-2: 8px;
    --au-s-3: 12px;
    --au-s-4: 16px;
    --au-s-5: 24px;
    --au-s-6: 32px;
    --au-s-7: 48px;
    --au-s-8: 64px;
    --au-s-9: 88px;

    /* —— 字号层级（大标题 / 稳正文 / 弱辅助）—— */
    --au-fs-display: clamp(34px, 4.2vw, 54px);
    --au-fs-h1: 30px;
    --au-fs-h2: 23px;
    --au-fs-h3: 18px;
    --au-fs-body: 15.5px;
    --au-fs-sm: 13.5px;
    --au-fs-xs: 12px;
    --au-lh: 1.75;
    --au-lh-tight: 1.28;

    /* —— 阴影（轻、远、不失重）—— */
    --au-sh-1: 0 1px 2px rgba(40, 32, 18, .06);
    --au-sh-2: 0 4px 14px -6px rgba(40, 32, 18, .14);
    --au-sh-3: 0 18px 44px -24px rgba(40, 32, 18, .28);
    --au-sh-4: 0 36px 80px -40px rgba(40, 32, 18, .34);
    --au-sh-brand: 0 10px 26px -12px rgba(165, 124, 54, .55);

    /* —— 运动（全局唯一口径）—— */
    --au-ease: cubic-bezier(.22, .61, .36, 1);
    --au-ease-io: cubic-bezier(.4, 0, .2, 1);
    --au-t-fast: .16s;
    --au-t: .28s;
    --au-t-slow: .44s;

    /* —— 布局尺寸 —— */
    --au-top-h: 62px;
    --au-rail-w: 236px;
    --au-rail-w-mini: 72px;
    --au-gutter: 22px;
    --au-maxw: 1520px;

    /* —— 字体：清爽无衬线单一字族，层级靠字号与字重 —— */
    --au-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC",
               "Helvetica Neue", Arial, sans-serif;
}

/* —— 暗色：同一套中性灰阶反向取值 —— */
[data-theme="dark"],
[data-bs-theme="dark"] {
    --au-bg:          #0E0C09;
    --au-bg-2:        #151209;
    --au-surface:     rgba(255, 255, 255, .045);
    --au-surface-2:   rgba(255, 255, 255, .028);
    --au-surface-solid: #181510;
    --au-text-1:      #F2EDE3;
    --au-text-2:      #B7AEA0;
    --au-text-3:      #857C6C;
    --au-line:        rgba(242, 237, 227, .11);
    --au-line-strong: rgba(242, 237, 227, .19);

    --au-brand:        #D6AC5C;
    --au-brand-strong: #E6C583;
    --au-brand-soft:   rgba(214, 172, 92, .14);
    --au-brand-soft-2: rgba(214, 172, 92, .22);
    --au-brand-ring:   rgba(214, 172, 92, .34);
    --au-on-brand:     #1A150E;

    --au-ok:   #57C98C;
    --au-warn: #DCA34A;
    --au-err:  #E4776B;

    --au-glass-bg:      rgba(24, 21, 16, .68);
    --au-glass-bg-2:    rgba(24, 21, 16, .86);
    --au-glass-line:    rgba(242, 237, 227, .11);
    --au-glass-shadow:  0 1px 2px rgba(0, 0, 0, .5), 0 16px 40px -22px rgba(0, 0, 0, .8);

    --au-sh-1: 0 1px 2px rgba(0, 0, 0, .4);
    --au-sh-2: 0 6px 18px -8px rgba(0, 0, 0, .55);
    --au-sh-3: 0 20px 48px -26px rgba(0, 0, 0, .7);
    --au-sh-4: 0 40px 88px -44px rgba(0, 0, 0, .8);
    --au-sh-brand: 0 10px 28px -12px rgba(214, 172, 92, .5);
}

/* —— 旧变量收敛到新体系（v4/v5 组件自动跟随，不改代码即可统一）—— */
:root {
    --c-accent: var(--au-brand);
    --c-accent-dark: var(--au-brand-strong);
    --c-accent-soft: var(--au-brand-soft);
    --c-ink: var(--au-text-1);
    --c-ink-2: var(--au-text-2);
    --c-mute: var(--au-text-3);
    --c-line: var(--au-line);
    --c-surface: var(--au-surface-solid);
    --c-surface-2: var(--au-bg-2);
    --c-bg: var(--au-bg);
    --c-gray: var(--au-text-3);

    --fs-xs: var(--au-fs-xs);
    --fs-sm: var(--au-fs-sm);
    --fs-base: var(--au-fs-body);
    --fs-md: var(--au-fs-h3);
    --fs-lg: var(--au-fs-h2);
    --fs-xl: var(--au-fs-h1);
    --fs-xxl: var(--au-fs-display);
    --lh: var(--au-lh);

    --r-xs: var(--au-r-xs);
    --r-sm: var(--au-r-sm);
    --r-md: var(--au-r-md);
    --r-lg: var(--au-r-lg);
    --r-xl: var(--au-r-xl);
    --r-pill: var(--au-r-pill);

    --s-1: var(--au-s-1);
    --s-2: var(--au-s-2);
    --s-3: var(--au-s-3);
    --s-4: var(--au-s-4);
    --s-5: var(--au-s-5);
    --s-6: var(--au-s-6);
    --s-7: var(--au-s-7);

    --shadow-xs: var(--au-sh-1);
    --shadow-sm: var(--au-sh-2);
    --shadow-md: var(--au-sh-3);
    --shadow-lg: var(--au-sh-4);
    --shadow-glow: 0 0 0 1px var(--au-brand-ring), 0 10px 26px -14px var(--au-brand-ring);

    --glass-bg: var(--au-glass-bg);
    --glass-bg-strong: var(--au-glass-bg-2);
    --glass-blur: var(--au-glass-blur);
    --font-display: var(--au-font);
    --font-sans: var(--au-font);
    --ease: var(--au-ease);
    --ease-out: var(--au-ease);

    /* v5 氛围层：金色系 → 主色系，取消杂色 */
    --lx-gold: var(--au-brand);
    --lx-gold-2: var(--au-brand);
    --lx-gold-3: var(--au-brand);
    --lx-ink: var(--au-text-1);
    --lx-ink-2: var(--au-text-2);
    --lx-mute: var(--au-text-3);
    --lx-ease: var(--au-ease);
}

[data-theme="dark"],
[data-bs-theme="dark"] {
    --lx-gold: var(--au-brand);
    --lx-gold-2: var(--au-brand);
    --lx-gold-3: var(--au-brand);
}

/* Bootstrap 变量接管 */
:root, [data-bs-theme="light"] {
    --bs-primary: var(--au-brand);
    --bs-body-bg: var(--au-bg);
    --bs-body-color: var(--au-text-1);
    --bs-secondary-color: var(--au-text-2);
    --bs-tertiary-color: var(--au-text-3);
    --bs-border-color: var(--au-line);
    --bs-link-color: var(--au-brand-strong);
    --bs-link-hover-color: var(--au-brand);
    --bs-heading-color: var(--au-text-1);
    --bs-body-font-size: var(--au-fs-body);
    --bs-body-line-height: var(--au-lh);
    --bs-border-radius: var(--au-r-md);
    --bs-border-radius-lg: var(--au-r-lg);
    --bs-border-radius-xl: var(--au-r-xl);
}
[data-theme="dark"], [data-bs-theme="dark"] {
    --bs-primary: var(--au-brand);
    --bs-body-bg: var(--au-bg);
    --bs-body-color: var(--au-text-1);
    --bs-secondary-color: var(--au-text-2);
    --bs-tertiary-color: var(--au-text-3);
    --bs-border-color: var(--au-line);
    --bs-link-color: var(--au-brand);
    --bs-link-hover-color: var(--au-brand-strong);
    --bs-heading-color: var(--au-text-1);
}

/* ============================================================================
   1. 基础排版与背景
   ============================================================================ */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    font-family: var(--au-font);
    font-size: var(--au-fs-body);
    line-height: var(--au-lh);
    color: var(--au-text-1);
    background: var(--au-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* 极简氛围：两团低饱和柔光，替代原奢华极光层 */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(680px 420px at 12% -6%, var(--au-brand-soft), transparent 70%),
        radial-gradient(760px 480px at 96% 4%, rgba(20, 25, 38, .05), transparent 72%);
}
[data-theme="dark"] body::before,
[data-bs-theme="dark"] body::before {
    background:
        radial-gradient(680px 420px at 10% -8%, rgba(214, 172, 92, .13), transparent 70%),
        radial-gradient(820px 520px at 98% 2%, rgba(255, 255, 255, .045), transparent 72%);
}
.lx-atmos { opacity: .35; }          /* 旧极光层淡化，保留氛围不喧宾夺主 */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--au-font);
    color: var(--au-text-1);
    letter-spacing: -.011em;
    line-height: var(--au-lh-tight);
    font-weight: 650;
    margin-bottom: .5em;
}
h1 { font-size: var(--au-fs-h1); font-weight: 700; }
h2 { font-size: var(--au-fs-h2); font-weight: 680; }
h3 { font-size: var(--au-fs-h3); font-weight: 660; }
h4 { font-size: var(--au-fs-body); font-weight: 640; }
p { margin-bottom: 1em; color: var(--au-text-2); }
p:last-child { margin-bottom: 0; }
small, .small { font-size: var(--au-fs-sm); color: var(--au-text-3); }

a { color: var(--au-brand-strong); text-decoration: none; transition: color var(--au-t-fast) var(--au-ease); }
a:hover { color: var(--au-brand); }
[data-theme="dark"] a { color: var(--au-brand); }
[data-theme="dark"] a:hover { color: var(--au-brand-strong); }

hr { border: 0; border-top: 1px solid var(--au-line); opacity: 1; margin: var(--au-s-5) 0; }

::selection { background: var(--au-brand-soft-2); color: var(--au-text-1); }

/* 统一滚动条 */
* { scrollbar-width: thin; scrollbar-color: var(--au-line-strong) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: var(--au-line-strong);
    border-radius: var(--au-r-pill);
    border: 3px solid transparent;
    background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--au-text-3); background-clip: content-box; }

:focus-visible {
    outline: 2px solid var(--au-brand);
    outline-offset: 2px;
    border-radius: var(--au-r-xs);
}

/* ============================================================================
   2. 玻璃基元
   ============================================================================ */
.au-glass,
.bbs-card,
.sidebar-card,
.card,
.modal-content,
.dropdown-menu {
    background: var(--au-glass-bg);
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    border: 1px solid var(--au-glass-line);
    box-shadow: var(--au-glass-shadow);
    border-radius: var(--au-r-lg);
}

/* 不支持 backdrop-filter 时回退为不透明底，保证可读性 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .au-glass, .bbs-card, .sidebar-card, .card, .modal-content, .dropdown-menu {
        background: var(--au-surface-solid);
    }
}

/* ============================================================================
   3. 布局骨架：顶栏 + 可折叠导航轨 + 悬浮内容主板
   ============================================================================ */
.au-shell {
    display: grid;
    grid-template-columns: var(--au-rail-w) minmax(0, 1fr);
    gap: 0;
    max-width: var(--au-maxw);
    margin: 0 auto;
    padding: 0 var(--au-gutter);
    align-items: start;
    position: relative;
    z-index: 1;
    transition: grid-template-columns var(--au-t) var(--au-ease);
}

/* —— 导航轨 —— */
.au-rail {
    position: sticky;
    top: calc(var(--au-top-h) + var(--au-s-4));
    align-self: start;
    max-height: calc(100vh - var(--au-top-h) - var(--au-s-6));
    overflow-y: auto;
    overflow-x: hidden;
    padding: var(--au-s-4) var(--au-s-3) var(--au-s-5);
    margin-right: var(--au-gutter);
    background: var(--au-glass-bg);
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    border: 1px solid var(--au-glass-line);
    border-radius: var(--au-r-xl);
    box-shadow: var(--au-glass-shadow);
    z-index: 20;
    transition: padding var(--au-t) var(--au-ease), background var(--au-t) var(--au-ease);
}
.au-rail::-webkit-scrollbar { width: 0; }

.au-rail-group + .au-rail-group { margin-top: var(--au-s-5); }

.au-rail-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--au-s-2);
    padding: 0 var(--au-s-3) var(--au-s-2);
    font-size: var(--au-fs-xs);
    font-weight: 620;
    letter-spacing: .07em;
    color: var(--au-text-3);
    text-transform: uppercase;
    white-space: nowrap;
}
.au-rail-label .au-fold-ico {
    opacity: .55;
    transition: transform var(--au-t) var(--au-ease), opacity var(--au-t-fast) var(--au-ease);
}
.au-rail-group.au-collapsed .au-rail-label .au-fold-ico { transform: rotate(-90deg); }

.au-rail-link {
    display: flex;
    align-items: center;
    gap: var(--au-s-3);
    padding: 9px var(--au-s-3);
    border-radius: var(--au-r-sm);
    color: var(--au-text-2);
    font-size: var(--au-fs-sm);
    font-weight: 520;
    white-space: nowrap;
    position: relative;
    transition: background var(--au-t-fast) var(--au-ease),
                color var(--au-t-fast) var(--au-ease),
                transform var(--au-t-fast) var(--au-ease);
}
.au-rail-link:hover {
    background: var(--au-brand-soft);
    color: var(--au-text-1);
    transform: translateX(2px);
}
.au-rail-link.active {
    background: var(--au-brand-soft-2);
    color: var(--au-brand-strong);
    font-weight: 640;
}
[data-theme="dark"] .au-rail-link.active { color: var(--au-brand); }
.au-rail-link.active::before {
    content: "";
    position: absolute;
    left: -12px; top: 50%;
    width: 3px; height: 18px;
    transform: translateY(-50%);
    border-radius: var(--au-r-pill);
    background: var(--au-brand);
}
.au-rail-link .ico {
    flex: 0 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--au-text-3);
    transition: color var(--au-t-fast) var(--au-ease);
}
.au-rail-link:hover .ico, .au-rail-link.active .ico { color: var(--au-brand); }
.au-rail-link .cnt {
    margin-left: auto;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    color: var(--au-text-3);
    background: var(--au-surface-2);
    border-radius: var(--au-r-pill);
    padding: 1px 8px;
}
.au-rail-link .txt { overflow: hidden; text-overflow: ellipsis; }

/* 折叠态（图标条） */
.au-rail-folded .au-rail { padding-left: var(--au-s-2); padding-right: var(--au-s-2); }
.au-rail-folded .au-rail-link { justify-content: center; padding: 10px 0; }
.au-rail-folded .au-rail-link .txt,
.au-rail-folded .au-rail-link .cnt,
.au-rail-folded .au-rail-label span:first-child,
.au-rail-folded .au-rail-label .au-fold-ico,
.au-rail-folded .au-rail-note { display: none; }
.au-rail-folded .au-rail-link.active::before { left: -8px; }

.au-rail-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--au-s-2);
    margin-top: var(--au-s-5);
    padding-top: var(--au-s-4);
    border-top: 1px solid var(--au-line);
}
.au-rail-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    justify-content: center;
    padding: 8px 10px;
    border: 1px solid var(--au-line);
    border-radius: var(--au-r-sm);
    background: transparent;
    color: var(--au-text-2);
    font-size: var(--au-fs-xs);
    cursor: pointer;
    transition: all var(--au-t-fast) var(--au-ease);
}
.au-rail-toggle:hover { background: var(--au-brand-soft); color: var(--au-brand-strong); border-color: var(--au-brand-ring); }
.au-rail-toggle svg { transition: transform var(--au-t) var(--au-ease); }
.au-rail-folded .au-rail-toggle svg { transform: rotate(180deg); }
.au-rail-folded .au-rail-toggle span { display: none; }

/* —— 悬浮内容主板 —— */
.au-stage { min-width: 0; padding: var(--au-s-4) 0 var(--au-s-7); }
.au-main {
    position: relative;
    min-width: 0;
    padding: var(--au-s-6) var(--au-s-6) var(--au-s-7);
    background: var(--au-surface);
    -webkit-backdrop-filter: var(--au-glass-blur-sm);
    backdrop-filter: var(--au-glass-blur-sm);
    border: 1px solid var(--au-glass-line);
    border-radius: var(--au-r-xl);
    box-shadow: var(--au-sh-3);
    animation: au-rise var(--au-t-slow) var(--au-ease) both;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .au-main { background: var(--au-surface-solid); }
}
@keyframes au-rise {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}

/* 页面切换过渡 */
.au-leaving { opacity: 0; transform: translateY(6px); transition: opacity .18s var(--au-ease), transform .18s var(--au-ease); }

/* ============================================================================
   4. 顶栏重铸（悬浮玻璃条）
   ============================================================================ */
.lx-nav-shell {
    position: sticky;
    top: 0;
    z-index: 1030;
    margin-bottom: 0;
}
.lx-nav-shell > .container { max-width: var(--au-maxw); padding: 0 var(--au-gutter); }

.bbs-navbar {
    margin-top: var(--au-s-3);
    padding: 0 var(--au-s-4) !important;
    min-height: var(--au-top-h);
    background: var(--au-glass-bg-2) !important;
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    border: 1px solid var(--au-glass-line) !important;
    border-radius: var(--au-r-lg) !important;
    box-shadow: var(--au-sh-2) !important;
    transition: box-shadow var(--au-t) var(--au-ease), background var(--au-t) var(--au-ease);
}
.lx-nav-shell.au-scrolled .bbs-navbar {
    box-shadow: var(--au-sh-3) !important;
    background: var(--au-glass-bg-2) !important;
}
.lx-nav-row { min-height: var(--au-top-h); flex-wrap: nowrap !important; }

.navbar-brand.brand-lockup { gap: 10px !important; }
.brand-text {
    font-size: var(--au-fs-h3) !important;
    font-weight: 700 !important;
    letter-spacing: -.01em;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
    color: var(--au-text-1) !important;
}
.lx-gold-text { background: none !important; -webkit-text-fill-color: currentColor !important; color: var(--au-text-1) !important; }

.bbs-navbar .nav-link {
    font-size: var(--au-fs-sm);
    font-weight: 520;
    color: var(--au-text-2) !important;
    padding: 8px 12px !important;
    border-radius: var(--au-r-sm);
    transition: background var(--au-t-fast) var(--au-ease), color var(--au-t-fast) var(--au-ease);
}
.bbs-navbar .nav-link:hover { background: var(--au-brand-soft); color: var(--au-text-1) !important; }
.bbs-navbar .nav-link.active {
    color: var(--au-brand-strong) !important;
    background: var(--au-brand-soft);
    font-weight: 620;
}
[data-theme="dark"] .bbs-navbar .nav-link.active { color: var(--au-brand) !important; }
.bbs-navbar .nav-link::after { display: none !important; }
.lx-super-trigger .caret { transition: transform var(--au-t) var(--au-ease); }
.lx-nav-item:hover .lx-super-trigger .caret { transform: rotate(180deg); }

/* 超级菜单 → 清爽玻璃面板 */
.lx-super-inner { padding-top: 10px !important; }
.lx-super-panel {
    background: var(--au-glass-bg-2) !important;
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    border: 1px solid var(--au-glass-line) !important;
    border-radius: var(--au-r-xl) !important;
    box-shadow: var(--au-sh-4) !important;
    padding: var(--au-s-5) !important;
    gap: var(--au-s-6) !important;
}
.lx-super-title { color: var(--au-text-3) !important; font-size: var(--au-fs-xs) !important; letter-spacing: .07em; }
.lx-super-item {
    border-radius: var(--au-r-md) !important;
    padding: 10px !important;
    transition: background var(--au-t-fast) var(--au-ease), transform var(--au-t-fast) var(--au-ease);
}
.lx-super-item:hover { background: var(--au-brand-soft) !important; transform: translateX(3px); }
.lx-super-ico { background: var(--au-brand-soft) !important; color: var(--au-brand) !important; border-radius: var(--au-r-sm) !important; }
.lx-super-name { color: var(--au-text-1) !important; font-weight: 620; }
.lx-super-desc { color: var(--au-text-3) !important; }
.lx-super-hot a { border-radius: var(--au-r-sm); }
.lx-super-hot a:hover { background: var(--au-brand-soft) !important; }
.lx-super-hot .rk { background: var(--au-surface-2) !important; color: var(--au-text-2) !important; border-radius: var(--au-r-xs); }
.lx-super-hot .tx { color: var(--au-text-2) !important; }

/* 顶栏控件 */
.lx-search {
    background: var(--au-surface-2) !important;
    border: 1px solid var(--au-line) !important;
    border-radius: var(--au-r-pill) !important;
    padding: 0 12px !important;
    height: 38px;
    transition: border-color var(--au-t-fast) var(--au-ease), background var(--au-t-fast) var(--au-ease);
}
.lx-search:focus-within { border-color: var(--au-brand-ring) !important; background: var(--au-surface-solid) !important; }
.lx-search .search-input { background: transparent !important; border: 0 !important; box-shadow: none !important; font-size: var(--au-fs-sm); }
.lx-search .ico { color: var(--au-text-3); }

.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px; height: 38px;
    border-radius: var(--au-r-pill);
    border: 1px solid transparent;
    background: transparent;
    color: var(--au-text-2);
    cursor: pointer;
    transition: all var(--au-t-fast) var(--au-ease);
}
.btn-icon:hover { background: var(--au-brand-soft); color: var(--au-brand-strong); }
[data-theme="dark"] .btn-icon:hover { color: var(--au-brand); }
.notification-badge {
    background: var(--au-err) !important;
    color: #fff;
    font-size: 10px;
    min-width: 17px; height: 17px;
    line-height: 17px;
    border-radius: var(--au-r-pill);
    box-shadow: none !important;
}
.avatar-sm, .avatar-md, .avatar-lg { border-radius: 50% !important; object-fit: cover; }

/* 移动端抽屉遮罩 */
.au-rail-scrim {
    position: fixed;
    inset: 0;
    background: rgba(9, 12, 18, .48);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    z-index: 1035;
    transition: opacity var(--au-t) var(--au-ease), visibility var(--au-t) var(--au-ease);
}
.au-rail-open .au-rail-scrim { opacity: 1; visibility: visible; }

/* 移动端唤出按钮 */
.au-rail-fab {
    display: none;
    position: fixed;
    left: 14px; bottom: 18px;
    z-index: 1040;
    width: 48px; height: 48px;
    border-radius: var(--au-r-pill);
    border: 1px solid var(--au-glass-line);
    background: var(--au-glass-bg-2);
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    color: var(--au-text-1);
    box-shadow: var(--au-sh-3);
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* ============================================================================
   5. 卡片 / 列表 / 统计 / 标签
   ============================================================================ */
.bbs-card, .sidebar-card, .card {
    padding: var(--au-s-5);
    transition: transform var(--au-t) var(--au-ease),
                box-shadow var(--au-t) var(--au-ease),
                border-color var(--au-t) var(--au-ease);
}
.bbs-card:hover, .card:hover, .sidebar-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--au-sh-3);
    border-color: var(--au-line-strong);
}
.card-header, .card-body, .card-footer {
    background: transparent !important;
    border-color: var(--au-line) !important;
    padding-left: 0; padding-right: 0;
}
.card-header { font-weight: 650; color: var(--au-text-1); }

.sidebar-title {
    font-size: var(--au-fs-h3) !important;
    font-weight: 660;
    color: var(--au-text-1) !important;
    margin-bottom: var(--au-s-4) !important;
    display: flex; align-items: center; justify-content: space-between; gap: var(--au-s-2);
}
.sidebar-card { padding: var(--au-s-5) !important; }
.sidebar-list-item {
    border-radius: var(--au-r-sm);
    padding: 8px 10px;
    transition: background var(--au-t-fast) var(--au-ease);
}
.sidebar-list-item:hover { background: var(--au-brand-soft); }
.sidebar-rank .dot, .sidebar-rank .rk { color: var(--au-text-3); font-variant-numeric: tabular-nums; }

.topic-card { border-radius: var(--au-r-lg) !important; padding: var(--au-s-5) !important; }
.topic-title {
    font-size: var(--au-fs-h3) !important;
    font-weight: 640;
    line-height: var(--au-lh-tight);
    color: var(--au-text-1) !important;
    transition: color var(--au-t-fast) var(--au-ease);
}
.topic-card:hover .topic-title, a:hover .topic-title { color: var(--au-brand) !important; }
.topic-excerpt, .topic-meta { color: var(--au-text-3) !important; font-size: var(--au-fs-sm); }
.meta-item { color: var(--au-text-3); font-size: var(--au-fs-sm); display: inline-flex; align-items: center; gap: 5px; }
.meta-item svg { opacity: .7; }

.section-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--au-s-3); margin-bottom: var(--au-s-4);
    padding-bottom: var(--au-s-3);
    border-bottom: 1px solid var(--au-line);
}
.section-head h2, .section-head h3 { margin: 0; font-size: var(--au-fs-h2); font-weight: 680; }

.stat-number {
    font-size: 26px !important;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--au-text-1) !important;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}
.stat-label { font-size: var(--au-fs-xs) !important; color: var(--au-text-3) !important; letter-spacing: .04em; }
.stat-divider { border-left: 1px solid var(--au-line); }

.tag-chip {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px;
    font-size: var(--au-fs-xs);
    border-radius: var(--au-r-pill);
    background: var(--au-surface-2) !important;
    color: var(--au-text-2) !important;
    border: 1px solid var(--au-line) !important;
    transition: all var(--au-t-fast) var(--au-ease);
}
.tag-chip:hover { background: var(--au-brand-soft) !important; color: var(--au-brand-strong) !important; border-color: var(--au-brand-ring) !important; }

.type-badge, .badge {
    border-radius: var(--au-r-pill) !important;
    font-weight: 600;
    font-size: var(--au-fs-xs) !important;
    padding: 3px 9px !important;
    letter-spacing: .01em;
}
.badge.bg-primary, .type-badge { background: var(--au-brand-soft-2) !important; color: var(--au-brand-strong) !important; }
[data-theme="dark"] .badge.bg-primary, [data-theme="dark"] .type-badge { color: var(--au-brand) !important; }

.empty-state {
    padding: var(--au-s-8) var(--au-s-5) !important;
    color: var(--au-text-3);
    border-radius: var(--au-r-lg);
    border: 1px dashed var(--au-line-strong) !important;
    background: transparent !important;
}

/* ============================================================================
   6. 按钮 / 表单 / 下拉 / 分页 / 模态
   ============================================================================ */
.btn {
    --bs-btn-border-radius: var(--au-r-pill);
    font-size: var(--au-fs-sm);
    font-weight: 600;
    padding: 9px 18px;
    border-radius: var(--au-r-pill) !important;
    border: 1px solid transparent;
    transition: transform var(--au-t-fast) var(--au-ease),
                background var(--au-t-fast) var(--au-ease),
                color var(--au-t-fast) var(--au-ease),
                box-shadow var(--au-t-fast) var(--au-ease),
                border-color var(--au-t-fast) var(--au-ease);
}
.btn:active { transform: scale(.978); }
.btn-primary {
    background: var(--au-brand) !important;
    border-color: var(--au-brand) !important;
    color: var(--au-on-brand) !important;
    box-shadow: var(--au-sh-brand);
}
.btn-primary:hover { background: var(--au-brand-strong) !important; border-color: var(--au-brand-strong) !important; transform: translateY(-1px); }
.btn-outline-secondary, .btn-outline-primary {
    background: transparent !important;
    border-color: var(--au-line-strong) !important;
    color: var(--au-text-2) !important;
}
.btn-outline-secondary:hover, .btn-outline-primary:hover {
    background: var(--au-brand-soft) !important;
    border-color: var(--au-brand-ring) !important;
    color: var(--au-brand-strong) !important;
}
.btn-ghost, .btn-light {
    background: var(--au-surface-2) !important;
    border-color: var(--au-line) !important;
    color: var(--au-text-2) !important;
}
.btn-ghost:hover, .btn-light:hover { background: var(--au-brand-soft) !important; color: var(--au-brand-strong) !important; }
.btn-sm { padding: 6px 14px; font-size: var(--au-fs-xs); }

.form-control, .form-select {
    background: var(--au-surface-2) !important;
    border: 1px solid var(--au-line) !important;
    border-radius: var(--au-r-sm) !important;
    color: var(--au-text-1) !important;
    font-size: var(--au-fs-sm);
    padding: 10px 14px;
    transition: border-color var(--au-t-fast) var(--au-ease), box-shadow var(--au-t-fast) var(--au-ease), background var(--au-t-fast) var(--au-ease);
}
.form-control:focus, .form-select:focus {
    background: var(--au-surface-solid) !important;
    border-color: var(--au-brand-ring) !important;
    box-shadow: 0 0 0 3px var(--au-brand-soft) !important;
}
.form-control::placeholder { color: var(--au-text-3); }
.form-label, label { font-size: var(--au-fs-sm); font-weight: 600; color: var(--au-text-2); margin-bottom: 6px; }

.dropdown-menu {
    padding: 6px !important;
    border-radius: var(--au-r-md) !important;
    box-shadow: var(--au-sh-3) !important;
    animation: au-pop var(--au-t-fast) var(--au-ease) both;
}
@keyframes au-pop { from { opacity: 0; transform: translateY(-6px) scale(.985); } to { opacity: 1; transform: none; } }
.dropdown-item {
    border-radius: var(--au-r-sm) !important;
    font-size: var(--au-fs-sm);
    color: var(--au-text-2) !important;
    padding: 8px 12px !important;
    transition: background var(--au-t-fast) var(--au-ease), color var(--au-t-fast) var(--au-ease);
}
.dropdown-item:hover { background: var(--au-brand-soft) !important; color: var(--au-text-1) !important; }

.pagination { gap: 4px; flex-wrap: wrap; }
.page-link {
    border: 1px solid var(--au-line) !important;
    background: var(--au-surface-2) !important;
    color: var(--au-text-2) !important;
    border-radius: var(--au-r-sm) !important;
    padding: 7px 13px !important;
    font-size: var(--au-fs-sm);
    font-variant-numeric: tabular-nums;
    transition: all var(--au-t-fast) var(--au-ease);
}
.page-link:hover { background: var(--au-brand-soft) !important; color: var(--au-brand-strong) !important; border-color: var(--au-brand-ring) !important; }
.page-item.active .page-link { background: var(--au-brand) !important; border-color: var(--au-brand) !important; color: var(--au-on-brand) !important; }
.page-item.disabled .page-link { opacity: .45; }

.modal-content { border-radius: var(--au-r-xl) !important; box-shadow: var(--au-sh-4) !important; }
.modal-header, .modal-footer { border-color: var(--au-line) !important; }
.modal-title { font-weight: 660; font-size: var(--au-fs-h3); }

.table { color: var(--au-text-1) !important; --bs-table-border-color: var(--au-line); }
.table thead th {
    font-size: var(--au-fs-xs) !important;
    font-weight: 620;
    letter-spacing: .05em;
    color: var(--au-text-3) !important;
    text-transform: uppercase;
    border-bottom: 1px solid var(--au-line) !important;
    white-space: nowrap;
}
.table td { font-size: var(--au-fs-sm); vertical-align: middle; border-color: var(--au-line) !important; }
.table-hover tbody tr { transition: background var(--au-t-fast) var(--au-ease); }

.alert { border-radius: var(--au-r-md) !important; border: 1px solid var(--au-line) !important; background: var(--au-surface-2) !important; font-size: var(--au-fs-sm); }

/* Toast */
.toast { border-radius: var(--au-r-md) !important; box-shadow: var(--au-sh-3) !important; backdrop-filter: var(--au-glass-blur); }
.toast-success { background: rgba(21, 163, 74, .14) !important; border: 1px solid rgba(21, 163, 74, .3) !important; color: var(--au-text-1) !important; }
.toast-error { background: rgba(220, 38, 38, .13) !important; border: 1px solid rgba(220, 38, 38, .3) !important; color: var(--au-text-1) !important; }

/* 面包屑 */
.breadcrumb-line, .breadcrumb { font-size: var(--au-fs-sm) !important; color: var(--au-text-3) !important; }
.breadcrumb-line a, .breadcrumb a { color: var(--au-text-3) !important; }
.breadcrumb-line a:hover, .breadcrumb a:hover { color: var(--au-brand) !important; }
.sep { opacity: .5; margin: 0 6px; }

/* GEO 问答块（上一轮新增）融入新体系 */
.geo-lead { color: var(--au-text-2) !important; font-size: var(--au-fs-body) !important; line-height: var(--au-lh) !important; }

/* ============================================================================
   7. 折叠组件（筛选栏 / 评论区 / 侧栏分组）
   ============================================================================ */
.au-fold { border-radius: var(--au-r-md); }
.au-fold-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--au-s-3);
    width: 100%;
    padding: 10px 12px;
    background: transparent;
    border: 0;
    color: var(--au-text-2);
    font-size: var(--au-fs-sm);
    font-weight: 620;
    cursor: pointer;
    border-radius: var(--au-r-sm);
    transition: background var(--au-t-fast) var(--au-ease), color var(--au-t-fast) var(--au-ease);
}
.au-fold-head:hover { background: var(--au-brand-soft); color: var(--au-text-1); }
.au-fold-ico { display: inline-flex; transition: transform var(--au-t) var(--au-ease); }
.au-fold.au-collapsed > .au-fold-head .au-fold-ico { transform: rotate(-90deg); }
.au-fold-body {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows var(--au-t) var(--au-ease), opacity var(--au-t) var(--au-ease);
    opacity: 1;
}
.au-fold-body > .au-fold-inner { overflow: hidden; min-height: 0; }
.au-fold.au-collapsed > .au-fold-body { grid-template-rows: 0fr; opacity: 0; }

/* ============================================================================
   8. 后台：并入同一套体系
   ============================================================================ */
.admin-body { background: var(--au-bg) !important; }
.admin-sidebar {
    background: var(--au-glass-bg-2) !important;
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    border-right: 1px solid var(--au-glass-line) !important;
    box-shadow: none !important;
    transition: transform var(--au-t) var(--au-ease), width var(--au-t) var(--au-ease);
}
.admin-nav-link {
    border-radius: var(--au-r-sm) !important;
    color: var(--au-text-2) !important;
    font-size: var(--au-fs-sm) !important;
    margin: 2px var(--au-s-3) !important;
    padding: 9px var(--au-s-3) !important;
    transition: background var(--au-t-fast) var(--au-ease), color var(--au-t-fast) var(--au-ease);
}
.admin-nav-link:hover { background: var(--au-brand-soft) !important; color: var(--au-text-1) !important; }
.admin-nav-link.active { background: var(--au-brand-soft-2) !important; color: var(--au-brand-strong) !important; font-weight: 620; }
[data-theme="dark"] .admin-nav-link.active { color: var(--au-brand) !important; }
.admin-brand { color: var(--au-text-1) !important; font-weight: 700; }
.admin-main { background: transparent !important; }
.admin-toggle, .admin-collapse-btn {
    background: var(--au-glass-bg-2) !important;
    border: 1px solid var(--au-glass-line) !important;
    border-radius: var(--au-r-sm) !important;
    color: var(--au-text-2) !important;
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
}

/* 后台内容区统一为悬浮玻璃板 */
.admin-main > * {
    animation: au-rise var(--au-t-slow) var(--au-ease) both;
}

/* ============================================================================
   9. 页脚
   ============================================================================ */
.bbs-footer {
    margin-top: var(--au-s-7);
    border-top: 1px solid var(--au-line) !important;
    background: transparent !important;
    padding: var(--au-s-6) 0 var(--au-s-7);
    position: relative;
    z-index: 1;
}
.footer-desc { color: var(--au-text-3); font-size: var(--au-fs-sm); }
.bbs-footer p { color: var(--au-text-3); font-size: var(--au-fs-sm); }
.footer-links a {
    color: var(--au-text-3) !important;
    font-size: var(--au-fs-sm);
    padding: 3px 10px;
    border-radius: var(--au-r-pill);
    border: 1px solid var(--au-line);
    transition: all var(--au-t-fast) var(--au-ease);
}
.footer-links a:hover { background: var(--au-brand-soft); color: var(--au-brand-strong) !important; border-color: var(--au-brand-ring); }

.cookie-consent {
    background: var(--au-glass-bg-2) !important;
    -webkit-backdrop-filter: var(--au-glass-blur);
    backdrop-filter: var(--au-glass-blur);
    border-top: 1px solid var(--au-glass-line) !important;
    color: var(--au-text-2);
}

/* ============================================================================
   10. 响应式
   ============================================================================ */
@media (max-width: 1400px) {
    :root { --au-rail-w: 216px; --au-gutter: 18px; }
    .au-main { padding: var(--au-s-5) var(--au-s-5) var(--au-s-6); }
}

@media (max-width: 1199px) {
    .au-shell { grid-template-columns: var(--au-rail-w-mini) minmax(0, 1fr); }
    .au-rail { padding-left: var(--au-s-2); padding-right: var(--au-s-2); margin-right: 14px; }
    .au-rail-link { justify-content: center; padding: 10px 0; }
    .au-rail-link .txt, .au-rail-link .cnt, .au-rail-label span:first-child { display: none; }
    .au-rail-toggle span { display: none; }
    .au-main { padding: var(--au-s-5) var(--au-s-4) var(--au-s-6); }
}

@media (max-width: 991px) {
    .au-shell { display: block; padding: 0 14px; }
    .au-rail {
        position: fixed;
        top: 0; left: 0; bottom: 0;
        width: 270px;
        max-height: none;
        margin: 0;
        padding: var(--au-s-5) var(--au-s-4);
        border-radius: 0 var(--au-r-xl) var(--au-r-xl) 0;
        transform: translateX(-102%);
        transition: transform var(--au-t) var(--au-ease);
        z-index: 1036;
        box-shadow: var(--au-sh-4);
    }
    .au-rail-open .au-rail { transform: none; }
    .au-rail-link { justify-content: flex-start; padding: 10px var(--au-s-3); }
    .au-rail-link .txt, .au-rail-label span:first-child { display: block; }
    .au-rail-toggle span { display: inline; }
    .au-rail-fab { display: inline-flex; }
    .au-stage { padding: var(--au-s-3) 0 var(--au-s-7); }
    .au-main { padding: var(--au-s-5) var(--au-s-4) var(--au-s-6); border-radius: var(--au-r-lg); }
    .bbs-navbar { border-radius: var(--au-r-md) !important; margin-top: var(--au-s-2); }
    .lx-nav-row { flex-wrap: wrap !important; }
}

@media (max-width: 576px) {
    :root { --au-fs-h1: 25px; --au-fs-h2: 20px; --au-fs-display: clamp(28px, 8vw, 36px); }
    .au-main { padding: var(--au-s-4) var(--au-s-3) var(--au-s-5); box-shadow: var(--au-sh-2); }
    .bbs-card, .sidebar-card, .card { padding: var(--au-s-4); }
    .btn { padding: 8px 15px; }
    .lx-nav-shell > .container { padding: 0 10px; }
}

/* ---- 正文排版：提升长文可读性 ---- */
.topic-content, .reply-content {
    font-size: var(--au-fs-body);
    line-height: 1.85;
    color: var(--au-text-1);
    overflow-wrap: break-word;
}
.topic-content p, .reply-content p { margin: 0 0 1.05em; color: var(--au-text-1); }
.topic-content img, .reply-content img,
.topic-images img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: var(--au-r-md);
    margin: var(--au-s-4) 0;
}
.topic-content blockquote, .reply-content blockquote {
    margin: var(--au-s-4) 0;
    padding: 10px 16px;
    border-left: 3px solid var(--au-brand-ring);
    border-radius: 0 var(--au-r-sm) var(--au-r-sm) 0;
    background: var(--au-surface-2);
    color: var(--au-text-2);
    font-size: var(--au-fs-sm);
}
.topic-content code, .reply-content code,
.topic-content pre, .reply-content pre {
    background: var(--au-surface-2);
    border-radius: var(--au-r-xs);
    padding: 2px 6px;
    font-size: 13px;
}
.topic-content pre, .reply-content pre { padding: 12px 14px; overflow-x: auto; }
.topic-content h2, .topic-content h3, .reply-content h2, .reply-content h3 {
    margin-top: 1.4em; margin-bottom: .6em;
}
.topic-content a, .reply-content a { text-decoration: underline; text-underline-offset: 2px; }

/* ---- 评论区：子回复可折叠（由 JS 增强，无 JS 时照常展开） ---- */
.reply-children.au-fold {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows var(--au-t) var(--au-ease),
                opacity var(--au-t) var(--au-ease),
                margin-top var(--au-t) var(--au-ease);
}
.reply-children.au-fold.au-collapsed { grid-template-rows: 0fr; opacity: 0; margin-top: 0; }
.au-children-inner { overflow: hidden; min-height: 0; }
.au-children-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    padding: 3px 10px;
    font-size: var(--au-fs-xs);
    font-weight: 600;
    color: var(--au-brand-strong);
    background: var(--au-brand-soft);
    border: 0;
    border-radius: var(--au-r-pill);
    cursor: pointer;
    transition: background var(--au-t-fast) var(--au-ease), color var(--au-t-fast) var(--au-ease);
}
.au-children-toggle:hover { background: var(--au-brand-soft-2); }
.au-children-toggle .ico { transition: transform var(--au-t) var(--au-ease); display: inline-flex; }
.au-children-toggle.is-open .ico { transform: rotate(180deg); }

/* ============================================================================
   11. 进入动效：滚动揭示 / 图片淡入
       隐藏态只在 JS 添加 .au-reveal / .au-img 后生效 —— 无 JS 时内容照常可见
   ============================================================================ */
.au-reveal {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--au-t-slow) var(--au-ease), transform var(--au-t-slow) var(--au-ease);
    will-change: opacity, transform;
}
.au-reveal.in { opacity: 1; transform: none; }

.au-img { opacity: 0; transition: opacity var(--au-t-slow) var(--au-ease); }
.au-img.au-img-in { opacity: 1; }

/* 悬停：卡片轻微上浮、按钮下沉，统一 .28s 缓动 */
.bbs-card:hover, .card:hover, .sidebar-card:hover { transform: translateY(-3px); }
a.card:hover, a.bbs-card:hover { text-decoration: none; }

/* ============================================================================
   12. 降级：尊重系统减弱动效偏好
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
