/* ============================================================
   Discuz 本地镜像 — 高级视觉增强（不改变布局与框架）
   ============================================================ */

/* ---- 全局基调 ---- */
html {
    scroll-behavior: smooth;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background: linear-gradient(180deg, #eef2f7 0%, #f5f7fa 120px, #f0f2f5 100%) !important;
    background-attachment: fixed !important;
}

.wp {
    position: relative;
}

/* ---- 顶栏 ---- */
#toptb {
    background: linear-gradient(180deg, #fafafa, #f0f0f0) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

#toptb a {
    transition: color 0.2s ease;
}

#toptb a:hover {
    color: #2E75BB !important;
    text-decoration: none !important;
}

/* ---- 头部 LOGO 区 ---- */
#hd {
    background: #fff;
    box-shadow: 0 2px 12px rgba(46, 117, 187, 0.06);
}

#hd .wp {
    padding-bottom: 4px !important;
}

.hdc h2 img.boardlogo {
    transition: transform 0.3s ease, filter 0.3s ease;
}

.hdc h2 a:hover img.boardlogo {
    transform: scale(1.02);
    filter: drop-shadow(0 2px 8px rgba(46, 117, 187, 0.15));
}

/* ---- 登录框 ---- */
#hd .px {
    border-radius: 4px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

#hd .px:focus {
    box-shadow: 0 0 0 3px rgba(46, 117, 187, 0.12) !important;
}

#hd .pn.pnc {
    background: linear-gradient(180deg, #3a8fd9, #2B7ACD) !important;
    border: none !important;
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(43, 122, 205, 0.3);
    transition: transform 0.15s ease, box-shadow 0.2s ease !important;
}

#hd .pn.pnc:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(43, 122, 205, 0.35);
}

#hd .pn.pnc:active {
    transform: translateY(0);
}

/* ---- 搜索栏 ---- */
#scbar {
    background: linear-gradient(180deg, #f0f5fa, #e8eff5) !important;
    border-bottom: 1px solid rgba(194, 213, 227, 0.6) !important;
}

#scbar_txt {
    border-radius: 6px 0 0 6px !important;
    border: 1px solid #cfdde6 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

#scbar_txt:focus {
    border-color: #2B7ACD !important;
    box-shadow: 0 0 0 3px rgba(43, 122, 205, 0.1) !important;
}

#scbar_btn {
    border-radius: 0 6px 6px 0 !important;
    background: linear-gradient(180deg, #3a8fd9, #2B7ACD) !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
}

#scbar_btn:hover {
    background: linear-gradient(180deg, #2B7ACD, #1a6bb5) !important;
}

#scbar_type {
    border-radius: 0 !important;
}

#scbar_hot a {
    transition: color 0.2s ease;
    border-radius: 3px;
    padding: 1px 4px;
}

#scbar_hot a:hover {
    color: #2E75BB !important;
    background: rgba(46, 117, 187, 0.08);
    text-decoration: none !important;
}

/* ---- 主导航 ---- */
#nv {
    background: linear-gradient(180deg, #3589d4, #2B7ACD 40%, #256bb8) !important;
    box-shadow: 0 2px 8px rgba(37, 107, 184, 0.25);
}

#nv li.a {
    background: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(0,0,0,0.08)) !important;
    box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.3);
}

#nv li a {
    transition: background 0.2s ease;
}

#qmenu {
    border-radius: 4px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.2s ease, transform 0.15s ease !important;
}

#qmenu:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
}

/* ---- 横幅广告区 ---- */
.pcbanner {
    padding: 8px 0 4px;
}

.pcbanner a {
    cursor: pointer;
    display: block;
    position: relative;
    overflow: hidden;
    margin-bottom: 6px;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: opacity 0.28s ease, box-shadow 0.28s ease, transform 0.22s ease;
}

.pcbanner a.de-banner-in {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s ease, transform 0.5s ease, box-shadow 0.28s ease;
}

.pcbanner a.de-banner-visible {
    opacity: 1;
    transform: translateY(0);
}

.pcbanner a:hover {
    opacity: 0.95;
    box-shadow: 0 8px 24px rgba(46, 117, 187, 0.22);
    transform: translateY(-2px);
}

.pcbanner a:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(46, 117, 187, 0.15);
}

.pcbanner a img {
    display: block;
    width: 100%;
    border-radius: 6px;
    transition: filter 0.28s ease;
}

.pcbanner a:hover img {
    filter: brightness(1.04) saturate(1.02);
}

.pcbanner a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.18) 50%, transparent 60%);
    transform: translateX(-120%);
    transition: transform 0.65s ease;
    pointer-events: none;
    border-radius: 6px;
}

.pcbanner a:hover::after {
    transform: translateX(120%);
}

/* ---- 文字广告列表 ---- */
.textb {
    margin: 14px auto !important;
}

.xyz_top11 {
    cursor: pointer;
    border-radius: 6px !important;
    margin-bottom: 6px !important;
    background: linear-gradient(135deg, #fff 0%, #f8f9fb 100%) !important;
    background-image: url(../../source/plugin/nciaer_text_banner/icon.png), linear-gradient(135deg, #fff 0%, #f8f9fb 100%) !important;
    background-repeat: no-repeat, no-repeat !important;
    background-position: left center, 0 0 !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.04);
    transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease, border-color 0.25s ease !important;
    opacity: 1;
}

.xyz_top11.de-animate {
    opacity: 0;
    transform: translateX(-16px);
}

.xyz_top11.de-visible {
    animation: deSlideIn 0.45s ease forwards;
}

@keyframes deSlideIn {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* 前两条：置顶高亮 */
.textb .xyz_top11:nth-child(1) {
    background-image: url(../../source/plugin/nciaer_text_banner/icon.png), linear-gradient(135deg, #fff8f0 0%, #fff3e6 100%) !important;
    border-left: 3px solid #e8a040 !important;
    box-shadow: 0 2px 10px rgba(232, 160, 64, 0.12);
}

.textb .xyz_top11:nth-child(2) {
    background-image: url(../../source/plugin/nciaer_text_banner/icon.png), linear-gradient(135deg, #f0f7ff 0%, #e8f2fc 100%) !important;
    border-left: 3px solid #2E75BB !important;
    box-shadow: 0 2px 10px rgba(46, 117, 187, 0.1);
}

.xyz_top11:hover {
    background-color: #f5f7fa !important;
    box-shadow: 0 4px 16px rgba(46, 117, 187, 0.1) !important;
    transform: translateX(3px);
    border-color: rgba(46, 117, 187, 0.15) !important;
}

.xyz_top11 a {
    cursor: pointer;
    display: block;
    text-decoration: none !important;
    color: #2c3e50 !important;
    transition: color 0.2s ease;
    letter-spacing: 0.02em;
}

.xyz_top11 a:hover {
    color: #2E75BB !important;
}

/* ---- 统计条 ---- */
#chart {
    background: #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05) !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
    padding: 4px 12px !important;
    margin-bottom: 12px !important;
}

#chart em {
    color: #2E75BB !important;
    font-weight: 600;
}

/* ---- 论坛板块卡片 ---- */
.fl .bmw {
    border-radius: 8px !important;
    overflow: hidden;
    border: 1px solid rgba(194, 213, 227, 0.5) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04) !important;
    transition: box-shadow 0.3s ease, transform 0.25s ease !important;
}

.fl .bmw.de-card {
    animation: deFadeUp 0.5s ease both;
}

@keyframes deFadeUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fl .bmw:hover {
    box-shadow: 0 6px 20px rgba(46, 117, 187, 0.1) !important;
    transform: translateY(-1px);
}

.fl .bmw .bm_h {
    background: linear-gradient(180deg, #f5f8fc, #e8eff5) !important;
    border-bottom: 1px solid rgba(194, 213, 227, 0.6) !important;
}

.fl .bmw .bm_h h2 a {
    transition: color 0.2s ease;
}

.fl .bmw .bm_h h2 a:hover {
    color: #2E75BB !important;
    text-decoration: none !important;
}

.fl_tb tr:hover td {
    background: rgba(46, 117, 187, 0.03);
    transition: background 0.2s ease;
}

.fl_by a.xi2 {
    transition: color 0.2s ease;
}

.fl_by a.xi2:hover {
    color: #2E75BB !important;
}

/* ---- 底部客服条 ---- */
.bm[style*="2E75BB"] {
    border-radius: 8px !important;
    background: linear-gradient(90deg, #256bb8, #2E75BB 50%, #3589d4) !important;
    box-shadow: 0 4px 16px rgba(46, 117, 187, 0.3) !important;
    transition: box-shadow 0.25s ease !important;
}

.bm[style*="2E75BB"]:hover {
    box-shadow: 0 6px 24px rgba(46, 117, 187, 0.38) !important;
}

.bm[style*="2E75BB"] a {
    transition: background 0.2s ease, letter-spacing 0.2s ease !important;
}

.bm[style*="2E75BB"] a:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    letter-spacing: 1px;
    text-decoration: none !important;
}

/* ---- 页脚 ---- */
#ft {
    margin-top: 20px;
    padding-top: 20px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

#ft a {
    transition: color 0.2s ease;
}

#ft a:hover {
    color: #2E75BB !important;
}

/* ---- 返回顶部 ---- */
#scrolltop {
    border: none !important;
    background: #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.2s ease !important;
}

#scrolltop:hover {
    box-shadow: 0 6px 24px rgba(46, 117, 187, 0.2) !important;
}

#scrolltop a {
    border: none !important;
    transition: color 0.2s ease !important;
}

#scrolltop a:hover {
    color: #2E75BB !important;
}

/* ---- 帖子页增强 ---- */
.plhin {
    transition: background 0.2s ease;
}

.plhin:hover {
    background: rgba(46, 117, 187, 0.02);
}

.t_f {
    line-height: 1.8 !important;
}

/* ---- 链接全局 ---- */
a {
    transition: color 0.15s ease;
}

/* ---- 减少动画（无障碍） ---- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
    html { scroll-behavior: auto; }
}
