@charset "UTF-8";
/*!
 * ============================================================================
 *  RiPro-V2 Skin Layer  ·  v2 "Prism / 棱镜"
 *  BUILD: 2026-08-01-v2-a3   ← 排查缓存时看这里
 * ----------------------------------------------------------------------------
 *  与 v1 "Aurora" 的关系：这是一份**独立完整**的皮肤，不是叠加在 v1 之上。
 *  在 inc/template-enqueue.php 里改一行文件名即可在 v1 / v2 之间切换。
 *
 *  v2 的取向：高饱和 + 超大圆角 + 彩色光晕 + 缩放动效。
 *  基调仍是浅色，保证资源站大量白底缩略图不扎眼、正文可读性不下降。
 *
 *  —— 以下六条纪律是 v1 上线过程中逐个踩出来的，v2 全部继承 ——
 *  1. 只改视觉属性，绝不碰 display / position / width / margin / padding / flex。
 *     需要描边一律用 inset box-shadow，不占盒模型。
 *  2. 加背景前先确认该元素在 app.css 里有没有 padding。
 *     没有 padding 的是"裸区块"不是卡片，加底色会让内容直接贴边。
 *     已知禁区：.down-info / .pricing-rates / .post-list.question / .scroll-dynamic
 *  3. 加背景前先确认该元素是不是 inline。
 *     inline 元素的背景框不含行高留白，会出现"文字顶出胶囊上沿"。
 *     已知禁区：.popula-search-key > a / .comments-list .reply a
 *  4. 加半透明底色前先确认 app.css 有没有给它 opacity，两者会相乘。
 *     已知禁区：.search-fields 及其左侧下拉按钮（各带 opacity:0.8）
 *  5. 通用工具类（.nav-tabs / .nav-pills / .table 等）必须写在具体组件之前，
 *     否则同权重下会反向覆盖组件规则。见第 6.5 节。
 *  6. 容器一律用 background-color，不用 background 简写——
 *     简写会连带重置 background-image/size/position，毁掉懒加载封面图。
 * ============================================================================
 */

/* ==========================================================================
   1. 设计变量 · Design Tokens
   ========================================================================== */

:root {
    /* ---- 主色：比 v1 更紫更艳，改这里即可全站换色 ---- */
    --rs-primary: #6a3df0;
    --rs-primary-dark: #5325d6;
    --rs-primary-light: #9b7bf7;
    --rs-primary-soft: rgba(106, 61, 240, .10);
    --rs-primary-soft-2: rgba(106, 61, 240, .20);
    --rs-primary-rgb: 106, 61, 240;

    /* ---- 副色：品红 + 青，用于三色渐变和点缀 ---- */
    --rs-magenta: #ff3d8b;
    --rs-magenta-rgb: 255, 61, 139;
    --rs-cyan: #00c2ff;
    --rs-cyan-rgb: 0, 194, 255;

    /* ---- 渐变体系 ---- */
    --rs-gradient: linear-gradient(135deg, #6a3df0 0%, #a838f0 100%);
    --rs-gradient-vivid: linear-gradient(120deg, #6a3df0 0%, #c13af0 52%, #ff3d8b 100%);
    --rs-gradient-cool: linear-gradient(135deg, #4f46e5 0%, #00c2ff 100%);
    --rs-gradient-warm: linear-gradient(135deg, #ff7a1a 0%, #ff3d8b 100%);
    --rs-gradient-soft: linear-gradient(135deg, rgba(106, 61, 240, .12), rgba(255, 61, 139, .10));
    /* 卡片表面用的极淡渐变：比纯白多一点呼吸感，但不干扰缩略图 */
    --rs-surface-gradient: linear-gradient(160deg, #ffffff 0%, #fbfaff 100%);

    /* ---- 强调色：价格 / VIP ---- */
    --rs-accent: #ff6a00;
    --rs-accent-dark: #ea5a00;
    --rs-accent-soft: rgba(255, 106, 0, .14);
    --rs-vip-gradient: linear-gradient(135deg, #ffc531 0%, #ff8a00 100%);

    /* ---- 语义色 ---- */
    --rs-success: #00c37a;
    --rs-success-soft: rgba(0, 195, 122, .14);
    --rs-info: #00a8f0;
    --rs-info-soft: rgba(0, 168, 240, .14);
    --rs-warning: #ffa300;
    --rs-warning-soft: rgba(255, 163, 0, .16);
    --rs-danger: #ff3355;
    --rs-danger-soft: rgba(255, 51, 85, .14);

    /* ---- 表面层级：底色带明显紫调，不再是中性灰 ---- */
    --rs-bg: #eff0fc;
    --rs-bg-deep: #e5e6f8;
    --rs-surface: #ffffff;
    --rs-surface-2: #f7f5ff;
    --rs-surface-3: #ebe7fe;
    --rs-surface-hover: #f2eeff;

    /* ---- 描边（inset shadow 用，不占空间） ---- */
    --rs-line: rgba(106, 61, 240, .10);
    --rs-line-strong: rgba(106, 61, 240, .22);
    --rs-hairline: inset 0 0 0 1px var(--rs-line);
    --rs-hairline-strong: inset 0 0 0 1px var(--rs-line-strong);
    /* 彩色描边：hover / 选中时用 */
    --rs-hairline-vivid: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .55);

    /* ---- 文字：偏紫的深色，避免和高饱和主色冲突 ---- */
    --rs-text: #1a1436;
    --rs-text-2: #4b4670;
    --rs-text-3: #8b86ad;
    --rs-text-invert: #ffffff;

    /* ---- 圆角：v1 的 1.5 倍左右 ---- */
    --rs-r-xs: 10px;
    --rs-r-sm: 14px;
    --rs-r: 22px;
    --rs-r-lg: 28px;
    --rs-r-xl: 36px;
    --rs-r-pill: 999px;

    /* ---- 阴影：彩色光晕取代中性灰 ---- */
    --rs-sh-xs: 0 2px 6px -2px rgba(26, 20, 54, .10);
    --rs-sh-sm: 0 6px 18px -8px rgba(26, 20, 54, .16), 0 2px 6px -3px rgba(var(--rs-primary-rgb), .10);
    --rs-sh: 0 14px 34px -14px rgba(26, 20, 54, .20), 0 6px 16px -8px rgba(var(--rs-primary-rgb), .18);
    --rs-sh-lg: 0 30px 62px -22px rgba(var(--rs-primary-rgb), .38), 0 12px 26px -14px rgba(26, 20, 54, .16);
    --rs-sh-xl: 0 48px 96px -30px rgba(var(--rs-primary-rgb), .48), 0 18px 40px -20px rgba(26, 20, 54, .18);
    --rs-sh-primary: 0 14px 32px -10px rgba(var(--rs-primary-rgb), .62);
    --rs-sh-magenta: 0 14px 32px -10px rgba(var(--rs-magenta-rgb), .55);
    --rs-glow: 0 0 0 1px rgba(var(--rs-primary-rgb), .20), 0 20px 46px -18px rgba(var(--rs-primary-rgb), .55);
    --rs-ring: 0 0 0 4px rgba(var(--rs-primary-rgb), .20);

    /* ---- 玻璃 ---- */
    --rs-glass: rgba(255, 255, 255, .72);
    --rs-glass-blur: saturate(200%) blur(22px);

    /* ---- 动效：比 v1 更弹一点 ---- */
    --rs-ease: cubic-bezier(.22, .61, .36, 1);
    --rs-ease-out: cubic-bezier(.16, 1, .3, 1);
    --rs-ease-spring: cubic-bezier(.34, 1.42, .64, 1);
    --rs-t: .25s var(--rs-ease);
    --rs-t-slow: .45s var(--rs-ease-out);
    --rs-t-spring: .5s var(--rs-ease-spring);

    /* ---- 字体栈 ---- */
    --rs-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
        "HarmonyOS Sans SC", "Hiragino Sans GB", "Microsoft YaHei UI",
        "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC",
        "Helvetica Neue", Arial, sans-serif;
    --rs-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono",
        Consolas, "Liberation Mono", Menlo, "Cascadia Mono", monospace;
}


/* ==========================================================================
   2. 基础层 · Foundation
   ========================================================================== */

body {
    background-color: var(--rs-bg);
    color: var(--rs-text);
    font-family: var(--rs-font);
    font-size: 15px;
    letter-spacing: .1px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 三色极光底纹。比 v1 更大更艳，是"一眼看出换皮了"的主要来源之一。
   z-index:-1 让它落在 body 底色之上、所有内容之下，绝不遮挡文字。 */
body:before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 900px;
    pointer-events: none;
    z-index: -1;
    opacity: .8;
    background:
        radial-gradient(820px 460px at 8% -10%, rgba(var(--rs-primary-rgb), .34), transparent 62%),
        radial-gradient(720px 420px at 52% -16%, rgba(var(--rs-primary-rgb), .20), transparent 60%),
        radial-gradient(760px 440px at 96% -8%, rgba(var(--rs-magenta-rgb), .22), transparent 62%);
    transition: opacity var(--rs-t-slow);
}

a {
    color: var(--rs-text);
    transition: color var(--rs-t), opacity var(--rs-t);
}

a:hover, a:active, a:focus {
    color: var(--rs-primary);
}

h1, h2, h3, h4, h5, h6 {
    color: var(--rs-text);
    font-family: var(--rs-font);
    font-weight: 800;
    letter-spacing: -.4px;
}

label {
    color: var(--rs-text-2);
    font-family: var(--rs-font);
    font-weight: 600;
}

small, .small {
    color: var(--rs-text-3);
}

hr, .dropdown-divider {
    border-color: var(--rs-line);
}

::-moz-selection {
    background: rgba(var(--rs-primary-rgb), .28);
    color: var(--rs-text);
}

::selection {
    background: rgba(var(--rs-primary-rgb), .28);
    color: var(--rs-text);
}

/* ---- 滚动条：主色渐变 ---- */
::-webkit-scrollbar {
    background-color: transparent;
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background-color: transparent;
}

::-webkit-scrollbar-thumb {
    background-color: rgba(var(--rs-primary-rgb), .38);
    border-radius: var(--rs-r-pill);
    border: 2px solid transparent;
    background-clip: content-box;
    transition: background-color var(--rs-t);
}

::-webkit-scrollbar-thumb:hover {
    background-color: rgba(var(--rs-primary-rgb), .72);
}

pre ::-webkit-scrollbar-thumb {
    background-color: rgba(var(--rs-primary-rgb), .5);
}

/* ---- 工具类 ---- */
.rounded {
    /* app.css 里是 4px !important，是通用小圆角工具类，
       用在小缩略图和头像框上，提太高会发胖，这里只到 14px */
    border-radius: var(--rs-r-sm) !important;
}

.rounded-lg {
    border-radius: var(--rs-r) !important;
}

.rounded-pill {
    border-radius: var(--rs-r-pill) !important;
}

.shadow-sm { box-shadow: var(--rs-sh-sm) !important; }
.shadow { box-shadow: var(--rs-sh) !important; }
.shadow-lg { box-shadow: var(--rs-sh-lg) !important; }

.bg-white { background-color: var(--rs-surface) !important; }
.bg-light { background-color: var(--rs-surface-3) !important; }
.text-muted { color: var(--rs-text-3) !important; }
.text-primary { color: var(--rs-primary) !important; }

.border, .border-top, .border-bottom, .border-left, .border-right {
    border-color: var(--rs-line) !important;
}


/* ==========================================================================
   3. 表单控件 · Forms
   ========================================================================== */

.form-control,
.custom-select,
select,
textarea,
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"] {
    background-color: var(--rs-surface-2);
    border-color: transparent;
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline);
    color: var(--rs-text);
    font-family: var(--rs-font);
    transition: box-shadow var(--rs-t), background-color var(--rs-t), border-color var(--rs-t);
}

.form-control:focus,
.custom-select:focus,
select:focus,
textarea:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus {
    background-color: var(--rs-surface);
    border-color: transparent;
    box-shadow: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .55), var(--rs-ring);
    outline: none;
}

.form-control::-webkit-input-placeholder { color: var(--rs-text-3); }
.form-control::-moz-placeholder { color: var(--rs-text-3); }
.form-control:-ms-input-placeholder { color: var(--rs-text-3); }
.form-control::placeholder { color: var(--rs-text-3); }

.input-group-text {
    background-color: var(--rs-surface-3);
    border-color: transparent;
    border-radius: var(--rs-r-sm);
    color: var(--rs-text-3);
}

.custom-control-input:checked ~ .custom-control-label::before {
    background: var(--rs-gradient);
    border-color: transparent;
    box-shadow: 0 4px 10px -3px rgba(var(--rs-primary-rgb), .7);
}

.custom-control-label::before {
    border-color: var(--rs-line-strong);
    transition: all var(--rs-t);
}

.custom-file-label,
.custom-file-label::after {
    border-radius: var(--rs-r-sm);
    border-color: transparent;
    background-color: var(--rs-surface-2);
    color: var(--rs-text-2);
}


/* ==========================================================================
   4. 按钮 · Buttons
   ========================================================================== */

.btn {
    border-radius: var(--rs-r-pill);
    font-family: var(--rs-font);
    font-weight: 700;
    letter-spacing: .3px;
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t),
                background-color var(--rs-t), color var(--rs-t), border-color var(--rs-t);
    will-change: transform;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn:active {
    transform: translateY(0);
}

.btn.focus, .btn:focus {
    box-shadow: var(--rs-ring);
}

.btn-lg { border-radius: var(--rs-r-pill); }
.btn-sm { border-radius: var(--rs-r-pill); }

/* --- 实心按钮：全部走渐变 + 彩色光晕 --- */
.btn-primary {
    background: var(--rs-gradient);
    background-color: var(--rs-primary);
    border-color: transparent;
    color: #fff;
    box-shadow: var(--rs-sh-primary);
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled):active {
    background: var(--rs-gradient-vivid);
    background-color: var(--rs-primary-dark);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 20px 44px -12px rgba(var(--rs-primary-rgb), .75);
}

.btn-secondary {
    background-color: var(--rs-surface-3);
    border-color: transparent;
    color: var(--rs-primary-dark);
    box-shadow: var(--rs-sh-xs);
}

.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:not(:disabled):not(.disabled):active {
    background-color: var(--rs-surface-hover);
    border-color: transparent;
    color: var(--rs-primary);
    box-shadow: var(--rs-sh-sm);
}

.btn-success {
    background: linear-gradient(135deg, #00c37a 0%, #00a8f0 100%);
    background-color: var(--rs-success);
    border-color: transparent;
    box-shadow: 0 14px 32px -10px rgba(0, 195, 122, .6);
}

.btn-success:hover, .btn-success:focus, .btn-success:not(:disabled):not(.disabled):active {
    background: linear-gradient(135deg, #00b06e 0%, #0098db 100%);
    border-color: transparent;
    box-shadow: 0 20px 44px -12px rgba(0, 195, 122, .72);
}

.btn-info {
    background: var(--rs-gradient-cool);
    background-color: var(--rs-info);
    border-color: transparent;
    box-shadow: 0 14px 32px -10px rgba(var(--rs-cyan-rgb), .55);
}

.btn-info:hover, .btn-info:focus, .btn-info:not(:disabled):not(.disabled):active {
    background: var(--rs-gradient-cool);
    border-color: transparent;
    box-shadow: 0 20px 44px -12px rgba(var(--rs-cyan-rgb), .7);
}

.btn-warning {
    background: var(--rs-vip-gradient);
    background-color: var(--rs-warning);
    border-color: transparent;
    color: #40270a;
    box-shadow: 0 14px 32px -10px rgba(255, 163, 0, .6);
}

.btn-warning:hover, .btn-warning:focus, .btn-warning:not(:disabled):not(.disabled):active {
    background: var(--rs-vip-gradient);
    border-color: transparent;
    color: #40270a;
    box-shadow: 0 20px 44px -12px rgba(255, 163, 0, .74);
}

.btn-danger {
    background: var(--rs-gradient-warm);
    background-color: var(--rs-danger);
    border-color: transparent;
    box-shadow: var(--rs-sh-magenta);
}

.btn-danger:hover, .btn-danger:focus, .btn-danger:not(:disabled):not(.disabled):active {
    background: var(--rs-gradient-warm);
    border-color: transparent;
    box-shadow: 0 20px 44px -12px rgba(var(--rs-magenta-rgb), .7);
}

.btn-dark {
    background: linear-gradient(135deg, #241c4a 0%, #14102b 100%);
    background-color: #1a1436;
    border-color: transparent;
    box-shadow: 0 14px 32px -14px rgba(26, 20, 54, .8);
}

.btn-dark:hover, .btn-dark:focus, .btn-dark:not(:disabled):not(.disabled):active {
    background: linear-gradient(135deg, #2e2460 0%, #1a1436 100%);
    border-color: transparent;
}

/* --- 浅色 / 白色按钮 --- */
.btn-light, .btn-white {
    background: var(--rs-surface-3);
    background-color: var(--rs-surface-3);
    border-color: transparent;
    color: var(--rs-primary-dark);
    box-shadow: none;
}

.btn-light:hover, .btn-white:hover,
.btn-light:focus, .btn-white:focus,
.btn-light:not(:disabled):not(.disabled):active,
.btn-white:not(:disabled):not(.disabled):active {
    background: var(--rs-primary-soft-2);
    background-color: var(--rs-primary-soft-2);
    border-color: transparent;
    color: var(--rs-primary-dark);
    box-shadow: none;
}

.btn-white.active, .btn-light.active {
    background: var(--rs-gradient);
    background-color: var(--rs-primary);
    border-color: transparent;
    color: #fff;
    box-shadow: var(--rs-sh-primary);
}

/* --- 描边按钮 --- */
.btn-outline-primary {
    border-color: rgba(var(--rs-primary-rgb), .5);
    color: var(--rs-primary);
    background-color: transparent;
}

.btn-outline-primary:hover, .btn-outline-primary:focus,
.btn-outline-primary:not(:disabled):not(.disabled):active {
    background: var(--rs-gradient);
    background-color: var(--rs-primary);
    border-color: transparent;
    color: #fff;
    box-shadow: var(--rs-sh-primary);
}

.btn-outline-secondary {
    border-color: var(--rs-line-strong);
    color: var(--rs-text-2);
}

.btn-outline-secondary:hover, .btn-outline-secondary:focus {
    background-color: var(--rs-surface-3);
    border-color: var(--rs-line-strong);
    color: var(--rs-primary);
}

.btn-outline-danger {
    border-color: rgba(var(--rs-magenta-rgb), .5);
    color: var(--rs-danger);
}

.btn-outline-danger:hover, .btn-outline-danger:focus {
    background: var(--rs-gradient-warm);
    border-color: transparent;
    color: #fff;
}

.btn-link {
    color: var(--rs-primary);
    font-weight: 700;
}

.btn-link:hover {
    color: var(--rs-magenta);
}

.btn.disabled, .btn:disabled {
    opacity: .45;
    box-shadow: none;
}

.btn.disabled:hover, .btn:disabled:hover {
    transform: none;
}


/* ==========================================================================
   5. 徽章 · Badges
   ========================================================================== */

.badge {
    border-radius: var(--rs-r-pill);
    font-family: var(--rs-font);
    font-weight: 700;
    letter-spacing: .3px;
}

.badge-primary { background: var(--rs-gradient); }
.badge-success { background: linear-gradient(135deg, #00c37a, #00a8f0); }
.badge-info { background: var(--rs-gradient-cool); }
.badge-warning { background: var(--rs-vip-gradient); color: #40270a; }
.badge-danger { background: var(--rs-gradient-warm); }
.badge-dark { background: linear-gradient(135deg, #241c4a, #14102b); }
.badge-light { background-color: var(--rs-surface-3); color: var(--rs-primary-dark); }

.badge-primary-lighten { color: var(--rs-primary); background-color: var(--rs-primary-soft-2); }
.badge-secondary-lighten { color: var(--rs-text-2); background-color: var(--rs-surface-3); }
.badge-success-lighten { color: #00915b; background-color: var(--rs-success-soft); }
.badge-info-lighten { color: #007eb4; background-color: var(--rs-info-soft); }
.badge-warning-lighten { color: #a35f00; background-color: var(--rs-warning-soft); }
.badge-danger-lighten { color: #d10f37; background-color: var(--rs-danger-soft); }
.badge-light-lighten { color: var(--rs-text-2); background-color: var(--rs-surface-3); }
.badge-dark-lighten { color: var(--rs-text); background-color: var(--rs-surface-3); }

.badge-outline-primary { color: var(--rs-primary); border-color: rgba(var(--rs-primary-rgb), .45); }
.badge-outline-secondary { color: var(--rs-text-2); border-color: var(--rs-line-strong); }
.badge-outline-success { color: #00915b; border-color: rgba(0, 195, 122, .45); }
.badge-outline-info { color: #007eb4; border-color: rgba(var(--rs-cyan-rgb), .45); }
.badge-outline-warning { color: #a35f00; border-color: rgba(255, 163, 0, .5); }
.badge-outline-danger { color: #d10f37; border-color: rgba(var(--rs-magenta-rgb), .45); }
.badge-outline-light { color: var(--rs-text-3); border-color: var(--rs-line); }
.badge-outline-dark { color: var(--rs-text); border-color: var(--rs-line-strong); }


/* ==========================================================================
   6. 卡片 / 提示 / 进度 · Card, Alert, Progress
   ========================================================================== */

.card {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-color: transparent;
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
    transition: box-shadow var(--rs-t), transform var(--rs-t);
}

.card-header {
    background-color: transparent;
    border-bottom-color: var(--rs-line);
    border-radius: var(--rs-r) var(--rs-r) 0 0;
    font-weight: 700;
}

.card-footer {
    background-color: var(--rs-surface-2);
    border-top-color: var(--rs-line);
    border-radius: 0 0 var(--rs-r) var(--rs-r);
}

.alert {
    border-color: transparent;
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-sh-xs);
}

.alert-primary { background-color: var(--rs-primary-soft-2); color: var(--rs-primary-dark); }
.alert-success { background-color: var(--rs-success-soft); color: #00754a; }
.alert-info { background-color: var(--rs-info-soft); color: #00668f; }
.alert-warning { background-color: var(--rs-warning-soft); color: #a35f00; }
.alert-danger { background-color: var(--rs-danger-soft); color: #c20d31; }

.alert.alert-pills {
    border-radius: var(--rs-r-pill);
    box-shadow: var(--rs-hairline), var(--rs-sh-xs);
}

.progress {
    background-color: var(--rs-surface-3);
    border-radius: var(--rs-r-pill);
}

.progress-bar {
    background: var(--rs-gradient-vivid);
    border-radius: var(--rs-r-pill);
}

.modal-content {
    border-color: transparent;
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-sh-xl);
    background-color: var(--rs-surface);
}

.modal-header, .modal-footer {
    border-color: var(--rs-line);
}

.tooltip-inner {
    background-color: rgba(26, 20, 54, .94);
    border-radius: var(--rs-r-xs);
    box-shadow: var(--rs-sh);
    font-family: var(--rs-font);
}

.popover {
    border-color: transparent;
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}


/* ==========================================================================
   6.5 通用导航默认值 · Generic Nav Defaults
   --------------------------------------------------------------------------
   必须写在所有具体组件之前。理由见文件顶部纪律第 5 条：
   .nav-pills .nav-link.active 与 .single-download-nav li .nav-link.active
   权重同为 (0,3,0)，谁在后面谁生效。
   另外 app.css 有两条 (0,4,0) 的规则会把颜色写死成旧蓝，必须同权重跟一遍。
   ========================================================================== */

.nav-tabs .nav-link {
    border-radius: var(--rs-r-sm) var(--rs-r-sm) 0 0;
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.nav-tabs .nav-link.active {
    color: var(--rs-primary);
    border-color: transparent transparent var(--rs-primary);
    background-color: transparent;
}

.nav-pills .nav-link {
    border-radius: var(--rs-r-pill);
    color: var(--rs-text-2);
}

.nav-pills .nav-link.active {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: var(--rs-sh-primary);
}

.nav .nav-link:not(.active):hover {
    color: var(--rs-primary);
}

.nav:not(.nav-pills) .nav-item.active .nav-link,
.nav:not(.nav-pills) .nav-link.active {
    color: var(--rs-primary);
}

/* ==========================================================================
   7. 页头与导航 · Header & Navigation
   ========================================================================== */

/* 彩色玻璃：底部一条渐变亮线，是"换皮了"最先被注意到的地方之一 */
.site-header {
    background-color: var(--rs-glass);
    -webkit-backdrop-filter: var(--rs-glass-blur);
    backdrop-filter: var(--rs-glass-blur);
    box-shadow:
        inset 0 -2px 0 0 rgba(var(--rs-primary-rgb), .16),
        0 10px 34px -22px rgba(var(--rs-primary-rgb), .5);
    transition: transform .3s var(--rs-ease), background-color .3s var(--rs-ease),
                box-shadow .3s var(--rs-ease);
}

.stick-now .site-header,
.navbar-sticky .site-header {
    background-color: var(--rs-glass);
    box-shadow:
        inset 0 -2px 0 0 rgba(var(--rs-primary-rgb), .22),
        0 16px 40px -24px rgba(var(--rs-primary-rgb), .6);
}

/* 透明导航栏模式下必须关掉毛玻璃，否则会把头图糊掉 */
.navbar-transition .site-header {
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.navbar .menu-item > a {
    color: var(--rs-text-2);
    border-radius: var(--rs-r-pill);
    font-weight: 600;
    transition: color var(--rs-t), background-color var(--rs-t);
}

.navbar .menu-item > a:hover {
    color: var(--rs-primary);
}

.navbar .menu-item.current-menu-item > a,
.navbar .menu-item.current-menu-parent > a,
.navbar .menu-item.current-menu-ancestor > a {
    color: var(--rs-primary);
    font-weight: 800;
}

.navbar .sep:after {
    background-color: var(--rs-line-strong);
}

.navbar .menu-item hr {
    border-color: var(--rs-line);
}

/* ---- 下拉 / 子菜单 ---- */
.navbar .sub-menu,
.navbar .dropdown-menu,
.header-menu-dropdown .dropdown-menu-hover,
.mega-menu {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-color: transparent;
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.navbar .menu-item:hover > .sub-menu:before {
    border-bottom-color: var(--rs-surface);
}

.navbar .sub-menu .menu-item > a,
.navbar .dropdown-item {
    color: var(--rs-text-2);
    border-radius: var(--rs-r-xs);
    transition: color var(--rs-t), background-color var(--rs-t);
}

.navbar .sub-menu .menu-item > a:hover,
.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dropdown-item {
    border-radius: var(--rs-r-xs);
    color: var(--rs-text-2);
    transition: color var(--rs-t), background-color var(--rs-t);
}

.dropdown-item:hover, .dropdown-item:focus {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dropdown-menu {
    background-color: var(--rs-surface);
    border-color: transparent;
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.navbar .dropdown-item-nicon > a {
    border-radius: var(--rs-r-sm);
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.navbar .dropdown-item-nicon > a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.navbar .dropdown-item-nicon > a > i {
    color: var(--rs-text-3);
    transition: color var(--rs-t);
}

.navbar .dropdown-item-nicon > a:hover > i {
    color: var(--rs-primary);
}

/* 用户菜单里的三张彩色卡片。
   渐变刻意压深：这三个盒子在 app.css 里是 color:#fff，底色太亮白字会糊。 */
.navbar .dropdown-item .menu-card-box-1 {
    background: var(--rs-gradient);
    border-radius: var(--rs-r-sm);
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .6);
}

.navbar .dropdown-item .menu-card-box-2 {
    background: var(--rs-gradient-warm);
    border-radius: var(--rs-r-sm);
    box-shadow: 0 10px 22px -8px rgba(var(--rs-magenta-rgb), .5);
}

.navbar .dropdown-item .menu-card-box-3 {
    background: var(--rs-gradient-cool);
    border-radius: var(--rs-r-sm);
    box-shadow: 0 10px 22px -8px rgba(var(--rs-cyan-rgb), .5);
}

/* 卡片内文字强制白色：全局的 a / small / .text-muted 会继承进来把字染灰 */
.navbar .dropdown-item [class*="menu-card-box-"],
.navbar .dropdown-item [class*="menu-card-box-"] * {
    color: #fff !important;
}

/* 但按钮和徽章是浅底的，颜色要拉回深色 */
.navbar .dropdown-item [class*="menu-card-box-"] .btn,
.navbar .dropdown-item [class*="menu-card-box-"] .btn *,
.navbar .dropdown-item [class*="menu-card-box-"] .badge,
.navbar .dropdown-item [class*="menu-card-box-"] .badge * {
    color: var(--rs-text) !important;
}

/* ---- 头像：彩色描边 ---- */
.navbar .menu-avatar-img,
.avatar img,
.avatar-lg img {
    border-radius: var(--rs-r-pill);
    box-shadow: 0 0 0 2px var(--rs-surface), 0 0 0 4px rgba(var(--rs-primary-rgb), .45);
    transition: box-shadow var(--rs-t), transform var(--rs-t-spring);
}

.navbar .menu-avatar-img:hover {
    box-shadow: 0 0 0 2px var(--rs-surface), 0 0 0 4px var(--rs-primary),
                0 8px 20px -6px rgba(var(--rs-primary-rgb), .6);
    transform: scale(1.08);
}

.avatar-indicators:before {
    box-shadow: 0 0 0 2px var(--rs-surface);
    background-color: var(--rs-success);
}

/* ---- 顶栏按钮 ----
   搜索 / 公告 / 夜间模式是固定 30×30 的圆形图标按钮，
   必须保持 border-radius:50%，改成小圆角会变成圆角方块。 */
.navbar .navbar-button {
    border-radius: 50%;
    background-color: var(--rs-surface-3);
    color: var(--rs-primary-dark);
    transition: background-color var(--rs-t), color var(--rs-t), box-shadow var(--rs-t);
}

.navbar .navbar-button:hover {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: 0 8px 18px -6px rgba(var(--rs-primary-rgb), .6);
}

.navbar .login-btn.navbar-button {
    background: var(--rs-gradient);
    color: #fff;
    border-color: transparent;
    box-shadow: var(--rs-sh-primary);
}

.navbar .login-btn.navbar-button:hover {
    background: var(--rs-gradient-vivid);
    box-shadow: 0 20px 44px -12px rgba(var(--rs-primary-rgb), .75);
}

/* ---- 巨幕菜单 ---- */
.mega-menu .menu-posts .entry-media {
    border-radius: var(--rs-r-sm);
    overflow: hidden;
    box-shadow: var(--rs-sh-xs);
}

.mega-menu .menu-posts .entry-title a {
    transition: color var(--rs-t);
}

.mega-menu .owl .owl-dot {
    background-color: var(--rs-line-strong);
    border-radius: var(--rs-r-pill);
    transition: all var(--rs-t);
}

.mega-menu .owl .owl-dot.active {
    background: var(--rs-gradient-vivid);
}

.burger, .burger:before, .burger:after {
    border-radius: var(--rs-r-pill);
    transition: all var(--rs-t);
}


/* ==========================================================================
   8. 侧滑面板 / 移动端 · Off-canvas & Mobile
   ========================================================================== */

.off-canvas {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-sh-xl);
}

.off-canvas .canvas-close {
    border-radius: var(--rs-r-pill);
    background-color: var(--rs-surface-3);
    color: var(--rs-primary-dark);
    transition: all var(--rs-t-spring);
}

.off-canvas .canvas-close:hover {
    background: var(--rs-gradient-warm);
    color: #fff;
    transform: rotate(90deg) scale(1.08);
}

.off-canvas .widget-area .widget {
    background-color: var(--rs-surface-2);
    border-radius: var(--rs-r);
    box-shadow: none;
}

.dimmer, .mask-body {
    background-color: rgba(26, 20, 54, .5);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.slicknav_menu .slicknav_nav > li,
.slicknav_menu .menu-item > a {
    border-radius: var(--rs-r-sm);
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.slicknav_menu .menu-item > a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.slicknav_menu .slicknav_nav li.current-menu-item > a {
    color: var(--rs-primary);
    font-weight: 700;
}

.slicknav_menu .slicknav_nav .sub-menu {
    background-color: var(--rs-surface-2);
    border-radius: var(--rs-r-sm);
}

.slicknav_menu hr {
    border-color: var(--rs-line);
}

.slicknav_menu .slicknav_arrow {
    color: var(--rs-text-3);
}

/* ---- 移动端底部导航 ---- */
.m-menubar {
    background-color: var(--rs-glass);
    -webkit-backdrop-filter: var(--rs-glass-blur);
    backdrop-filter: var(--rs-glass-blur);
    box-shadow:
        inset 0 2px 0 0 rgba(var(--rs-primary-rgb), .16),
        0 -12px 34px -20px rgba(var(--rs-primary-rgb), .5);
}

.m-menubar:before {
    background-color: var(--rs-line);
}

.m-menubar li a {
    color: var(--rs-text-3);
    transition: color var(--rs-t), transform var(--rs-t-spring);
}

.m-menubar li a > i {
    transition: transform var(--rs-t-spring), color var(--rs-t);
}

.m-menubar li a:active > i {
    transform: scale(.85);
}

.m-menubar li.active a,
.m-menubar li.active a > i {
    color: var(--rs-primary);
}

/* ---- 右侧悬浮球 ---- */
.rollbar {
    background-color: var(--rs-glass);
    -webkit-backdrop-filter: var(--rs-glass-blur);
    backdrop-filter: var(--rs-glass-blur);
    border-color: transparent;
    border-radius: var(--rs-r) 0 0 var(--rs-r);
    box-shadow: var(--rs-hairline), -12px 0 34px -14px rgba(var(--rs-primary-rgb), .45);
}

.rollbar .actions li > a {
    color: var(--rs-text-2);
    border-radius: var(--rs-r-sm);
    transition: all var(--rs-t);
}

.rollbar .actions li:hover {
    opacity: 1;
}

.rollbar .actions li:hover > a {
    color: #fff;
    background: var(--rs-gradient);
}

.rollbar .actions li > a .spinner-grow {
    background-color: var(--rs-success);
}

.rollbar .rollbar-item {
    border-top-color: var(--rs-line);
    color: var(--rs-magenta);
    border-radius: var(--rs-r-sm);
}

.rollbar .rollbar-item:hover {
    opacity: 1;
    background-color: var(--rs-danger-soft);
}


/* ==========================================================================
   9. 全站搜索浮层 · Omnisearch
   ========================================================================== */

.omnisearch {
    background-color: rgba(239, 240, 252, .8);
    -webkit-backdrop-filter: var(--rs-glass-blur);
    backdrop-filter: var(--rs-glass-blur);
}

/* 注意：此表单内含 selectpicker 下拉，切勿加 overflow:hidden，否则下拉被裁切 */
.omnisearch .omnisearch-form {
    background-color: var(--rs-surface);
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-hairline), var(--rs-sh-xl);
}

.omnisearch .omnisearch-form .input-group-text {
    background-color: transparent;
    color: var(--rs-primary);
}

.omnisearch .omnisearch-form .form-control {
    background-color: transparent;
    box-shadow: none;
    font-size: 18px;
}

.omnisearch .omnisearch-form .form-control:focus {
    background-color: transparent;
    box-shadow: none;
}

.omnisearch .omnisearch-suggestions {
    background-color: var(--rs-surface);
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.omnisearch .omnisearch-suggestions:before {
    border-bottom-color: var(--rs-surface);
}

.omnisearch .omnisearch-suggestions .heading {
    color: var(--rs-primary);
    letter-spacing: 1px;
    font-weight: 800;
}

/* app.css 已给它 display:inline-block + padding，可以安全上底色 */
.omnisearch .omnisearch-suggestions .search-keywords a {
    background-color: var(--rs-surface-3);
    border-radius: var(--rs-r-pill);
    color: var(--rs-primary-dark);
    transition: all var(--rs-t-spring);
}

.omnisearch .omnisearch-suggestions .search-keywords a:hover {
    background: var(--rs-gradient);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .65);
}

.omnisearch .omnisearch-suggestions .list-link {
    border-radius: var(--rs-r-sm);
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.omnisearch .omnisearch-suggestions .list-link:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}


/* ==========================================================================
   19. 页脚 · Footer
   （放在外围区一起处理，编号沿用 v1 便于对照）
   ========================================================================== */

.site-footer {
    background-color: var(--rs-surface);
    background-image: linear-gradient(180deg, var(--rs-surface) 0%, var(--rs-surface-2) 100%);
    box-shadow: inset 0 2px 0 0 rgba(var(--rs-primary-rgb), .14);
    color: var(--rs-text-3);
}

.site-footer a {
    color: var(--rs-text-2);
    transition: color var(--rs-t);
}

.site-footer a:hover,
.site-footer .footer-links a:hover {
    color: var(--rs-primary);
}

.site-footer .footer-info .desc,
.site-footer .footer-copyright {
    color: var(--rs-text-3);
}

.site-footer .footer-widget img {
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-sh-xs);
}

.site-footer .footer-widget .btn {
    border-radius: var(--rs-r-pill);
}

/* ==========================================================================
   10. 首页模块标题 · Section Titles
   --------------------------------------------------------------------------
   标题用渐变文字（background-clip:text）。这是纯绘制层变化，
   不影响任何盒模型，但视觉辨识度提升非常明显。
   ========================================================================== */

.section-title,
.latest-title,
.u-border-title {
    letter-spacing: -.6px;
    font-weight: 800;
}

.modular-title-1 .section-title,
.modular-title-2 .section-title span,
.modular-title-3 .section-title {
    background: var(--rs-gradient-vivid);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.modular-title-1 .section-title > small {
    /* small 在渐变标题里必须单独恢复实色，否则会跟着透明掉 */
    -webkit-text-fill-color: var(--rs-text-3);
    color: var(--rs-text-3);
}

.modular-title-2 .section-title:before,
.modular-title-3 .section-title:after,
.latest-title:after,
.u-border-title:before {
    background: var(--rs-gradient-vivid);
    border-radius: var(--rs-r-pill);
}

.delimiter-bottom:after {
    background-color: var(--rs-line);
}


/* ==========================================================================
   11. 资源卡片流 · Post Cards
   --------------------------------------------------------------------------
   v2 的重点区域：渐变表面 + 彩色描边 + 缩放上浮 + 光晕扩散。
   .posts-wrapper .post-list / .post-grid 在 app.css 里有 padding:10px 和
   background:#FFF，是货真价实的卡片，可以安全上底色。
   ========================================================================== */

.posts-wrapper .post-list,
.posts-wrapper .post-grid,
.carousel .post-grid {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t-slow);
}

.posts-wrapper .post-list:hover,
.posts-wrapper .post-grid:hover {
    transform: translateY(-8px) scale(1.018);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-lg);
}

/* 图片 / 图集格式的卡片，整块就是封面图本身
   （item-grid.php 输出 .post-grid.bg-image.lazyload + data-bg）。
   这类卡片不能铺表面渐变，否则万一懒加载没跑起来就会露出渐变而不是封面。 */
.posts-wrapper .post-grid.bg-image,
.carousel .post-grid.bg-image {
    background-image: none;
}

/* 封面图：圆角 + 悬停放大并提高饱和度 */
.entry-media {
    border-radius: var(--rs-r-sm);
    overflow: hidden;
    background-color: var(--rs-surface-3);
}

.post-grid .entry-media {
    border-radius: var(--rs-r) var(--rs-r) 0 0;
}

.post-list .entry-media {
    border-radius: var(--rs-r-sm);
}

.entry-media img {
    transition: transform .7s var(--rs-ease-out), filter .45s var(--rs-ease);
}

.posts-wrapper .post-list:hover .entry-media img,
.posts-wrapper .post-grid:hover .entry-media img,
.related-posts .post-list:hover .entry-media img {
    transform: scale(1.09);
    filter: saturate(1.18) contrast(1.04);
}

.entry-media .placeholder {
    background-color: var(--rs-surface-3);
}

/* 标题 */
.entry-header .entry-title,
.entry-header .entry-title a {
    color: var(--rs-text);
    font-weight: 700;
    letter-spacing: -.3px;
    transition: color var(--rs-t);
}

.entry-header .entry-title a:hover,
.posts-wrapper .post-grid:hover .entry-title a,
.posts-wrapper .post-list:hover .entry-title a {
    color: var(--rs-primary);
}

.entry-header .entry-meta,
.entry-header .entry-meta a,
.entry-footer .entry-meta,
.entry-footer .entry-meta a {
    color: var(--rs-text-3);
}

.entry-header .entry-meta a:hover,
.entry-footer .entry-meta a:hover,
.entry-footer a:hover {
    color: var(--rs-primary);
}

.entry-excerpt {
    color: var(--rs-text-3);
}

.entry-excerpt .excerpt-link {
    color: var(--rs-primary);
}

.entry-footer a + a:before {
    background-color: var(--rs-line);
}

.entry-footer .footer-author img {
    border-radius: var(--rs-r-pill);
    box-shadow: 0 0 0 2px var(--rs-surface), 0 0 0 3px rgba(var(--rs-primary-rgb), .3);
}

/* 分类圆点：三色轮转 */
.meta-category-dot > a {
    color: var(--rs-text-3);
    transition: color var(--rs-t);
}

.meta-category-dot > a:hover {
    color: var(--rs-primary);
}

.meta-category-dot > a > .dot {
    background: var(--rs-gradient);
    border-radius: var(--rs-r-pill);
}

.meta-category-dot > a:nth-child(2) .dot {
    background: var(--rs-gradient-warm);
}

.meta-category-dot > a:nth-child(3) .dot {
    background: var(--rs-gradient-cool);
}

.entry-header .entry-meta .meta-category .dot {
    background: var(--rs-gradient);
}

/* 视频 / 图集角标 */
.meta-post-type {
    background-color: rgba(26, 20, 54, .6);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-radius: var(--rs-r-pill);
    box-shadow: 0 4px 12px -3px rgba(26, 20, 54, .5);
    transition: all var(--rs-t-spring);
}

.post_format-post-format-video:hover .meta-post-type {
    background: var(--rs-gradient-vivid);
    transform: scale(1.12);
}

.video-thum:before {
    border-radius: var(--rs-r-pill);
    transition: all var(--rs-t);
}

/* CMS 网格卡片：带懒加载背景图，只能动圆角和阴影，不能碰 background 简写 */
.post-cms .cms_grid_box {
    border-radius: var(--rs-r);
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t-slow);
}

.post-cms .cms_grid_box:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: var(--rs-sh-lg);
}

.post-cms .cms_grid_box .entry-title a,
.post-cms .entry-title a {
    transition: color var(--rs-t);
}

.post-cms-series .card {
    border-radius: var(--rs-r);
}

.post-cms-gridimg .img-item,
.post-cms-lists .cat-title a > img,
.post-cms-gridimg .thumbnail {
    border-radius: var(--rs-r-sm);
}

.post-cms-series ul li a,
.post-cms-lists ul > li a {
    color: var(--rs-text-2);
    transition: color var(--rs-t);
}

.post-cms-series ul li a:hover,
.post-cms-lists ul > li a:hover {
    color: var(--rs-primary);
}

.post-cms-series ul li + li a > .badge {
    background-color: var(--rs-surface-3);
    color: var(--rs-text-3);
}

.post-cms-series ul li + li:nth-child(1) a > .badge { background: var(--rs-gradient-warm); color: #fff; }
.post-cms-series ul li + li:nth-child(2) a > .badge { background: var(--rs-vip-gradient); color: #40270a; }
.post-cms-series ul li + li:nth-child(3) a > .badge { background: var(--rs-gradient-cool); color: #fff; }

.post-cms-lists .cat-title {
    border-bottom-color: var(--rs-line);
}

/* 专题卡片：app.css 给了 padding:20px + background:#fff，安全 */
.series-item {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t-slow);
}

.series-item:hover {
    transform: translateY(-8px) scale(1.015);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-lg);
}

.series-item-thumb {
    border-radius: var(--rs-r-sm);
    overflow: hidden;
}

.series-item-thumb img {
    transition: transform .7s var(--rs-ease-out), filter .45s var(--rs-ease);
}

.series-item:hover .series-item-thumb img {
    transform: scale(1.09);
    filter: saturate(1.18);
}

.series-item-title p,
.series-item-more {
    color: var(--rs-text-3);
}

.series-item-more {
    color: var(--rs-primary);
}

.series-item-bottom a {
    border-radius: var(--rs-r-pill);
    transition: all var(--rs-t);
}

/* 同样是 border 画的图形：0×0 元素 + border-left 上色 = 一个小箭头。
   给它设 background / border-radius 会画出 8×8 的色块把箭头盖住。只能改 border-left-color。
   顺带修个主题自身的 bug：app.css 里 hover 用的是 var(--theme-hover)，
   而这个变量全主题从未定义过，等于 hover 变色一直是失效的。 */
.series-item-bottom a:before {
    background: none;
    border-radius: 0;
    border-left-color: var(--rs-line-strong);
}

.series-item-bottom a:hover:before {
    border-left-color: var(--rs-primary);
}

/* 分类盒轮播：带 data-bg 背景图，只动圆角阴影 */
.catbox-carousel .catbox-bg {
    border-radius: var(--rs-r);
    box-shadow: var(--rs-sh-sm);
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t-slow);
}

.catbox-carousel .catbox-bg:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: var(--rs-sh-lg);
}

.catbox-carousel .catbox-title:after {
    background: var(--rs-gradient-vivid);
    border-radius: var(--rs-r-pill);
}

/* 分类图标块 */
.rizhuti_v2-widget-division .icon-sahpe {
    border-radius: var(--rs-r);
    background: var(--rs-gradient-soft);
    color: var(--rs-primary);
    transition: all var(--rs-t-spring);
}

.rizhuti_v2-widget-division .hover-rounded:hover .icon-sahpe {
    background: var(--rs-gradient-vivid);
    color: #fff;
    box-shadow: 0 16px 32px -10px rgba(var(--rs-primary-rgb), .6);
    transform: translateY(-5px) scale(1.06);
}

.rizhuti_v2-widget-division .desc {
    color: var(--rs-text-3);
}

/* 动态滚动条：.scroll-dynamic 是 inline-block 的 25px 滚动视口，不是卡片，
   加底色会在通栏提示条里凭空多出一个白块并处处顶边。保持透明。 */
.owl-dynamic .scroll-dynamic {
    background-color: transparent;
    box-shadow: none;
}


/* ==========================================================================
   12. Hero / 头图 · Hero & Term Bar
   ========================================================================== */

.hero:before,
.hero-wide .hero:before,
.hero-video .hero:before,
.hero-shop .hero:before,
.hero-gallery .hero:before {
    background:
        linear-gradient(180deg, rgba(20, 14, 46, .26) 0%, rgba(20, 14, 46, .78) 100%),
        linear-gradient(115deg, rgba(var(--rs-primary-rgb), .5) 0%, rgba(var(--rs-magenta-rgb), .3) 100%);
}

.hero .entry-header .entry-title,
.hero-heading {
    letter-spacing: -.8px;
    font-weight: 800;
    text-shadow: 0 4px 26px rgba(0, 0, 0, .38);
}

.hero-subheading {
    color: rgba(255, 255, 255, .86);
}

.hero-media,
.hero-shop-warp .img-box img {
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-sh-xl);
}

.term-bar .term-bg:before {
    background:
        linear-gradient(180deg, rgba(20, 14, 46, .3) 0%, rgba(20, 14, 46, .76) 100%),
        linear-gradient(115deg, rgba(var(--rs-primary-rgb), .48) 0%, rgba(var(--rs-magenta-rgb), .28) 100%);
}

.term-bar .term-title {
    text-shadow: 0 4px 26px rgba(0, 0, 0, .38);
    font-weight: 800;
}

.term-bar .term-description {
    color: rgba(255, 255, 255, .84);
}

.page-top-hero:before {
    background: linear-gradient(115deg,
        rgba(var(--rs-primary-rgb), .94) 0%,
        rgba(var(--rs-primary-rgb), .88) 50%,
        rgba(var(--rs-magenta-rgb), .88) 100%);
}

.module.parallax:before {
    background:
        linear-gradient(180deg, rgba(20, 14, 46, .28) 0%, rgba(20, 14, 46, .72) 100%),
        linear-gradient(115deg, rgba(var(--rs-primary-rgb), .42) 0%, transparent 100%);
}

/* 首页搜索区遮罩 */
.module.search-bg .search-bg-overlay {
    background: linear-gradient(115deg,
        rgba(20, 14, 46, .62) 0%,
        rgba(var(--rs-primary-rgb), .62) 55%,
        rgba(var(--rs-magenta-rgb), .45) 100%);
}

/* 搜索框：绝对不能用半透明底色！
   app.css 已给 .search-fields 和左侧下拉按钮各加了 opacity:0.8，
   再叠半透明会相乘成 0.59，深色头图直接透上来、整条发浑。
   只圆右侧两角，左侧要与分类下拉平接。 */
.search-form .search-fields {
    background-color: var(--rs-surface);
    border-top-right-radius: var(--rs-r-pill);
    border-bottom-right-radius: var(--rs-r-pill);
    transition: box-shadow var(--rs-t);
}

.search-form .search-fields.radius-30 {
    border-radius: var(--rs-r-pill);
}

.search-form .search-fields:focus-within {
    box-shadow: var(--rs-ring);
}

.search-form .search-fields input {
    background-color: transparent;
    box-shadow: none;
    color: var(--rs-text);
}

.search-form .search-fields input:focus {
    background-color: transparent;
    box-shadow: none;
}

/* 该按钮在 app.css 里是绝对定位的透明图标按钮（background 带 !important），
   只改图标颜色，不动它的透明底 */
.search-form .search-fields button {
    color: var(--rs-primary);
    transition: color var(--rs-t), transform var(--rs-t-spring);
}

.search-form .search-fields button:hover {
    color: var(--rs-magenta);
}

/* 左段必须和右侧输入区同底色，否则中间出现接缝；
   同样不能设 transparent——它自己也带 opacity:0.8 */
.search-form .search-select .dropdown > button {
    background-color: var(--rs-surface);
    border-color: transparent;
    color: var(--rs-primary-dark);
}

/* 热门搜索：这些 <a> 是 inline 元素，绝不能加背景色，
   否则胶囊比文字矮一截、文字顶出上沿。只调颜色。 */
.module.search-bg .popula-search-key > a {
    color: #fff;
    transition: color var(--rs-t), opacity var(--rs-t);
}

.module.search-bg .popula-search-key > a:hover {
    color: #fff;
    opacity: .7;
}

/* 幻灯片 */
.module.slider .entry-wrapper:before {
    background: linear-gradient(180deg, transparent 0%, rgba(20, 14, 46, .88) 100%);
}

.module.slider .post {
    border-radius: var(--rs-r);
    overflow: hidden;
}

.module.slider.owl .owl-prev,
.module.slider.owl .owl-next {
    background-color: var(--rs-glass);
    -webkit-backdrop-filter: var(--rs-glass-blur);
    backdrop-filter: var(--rs-glass-blur);
    border-radius: var(--rs-r-pill);
    color: var(--rs-primary-dark);
    box-shadow: var(--rs-sh);
    transition: all var(--rs-t-spring);
}

.module.slider.owl .owl-prev:hover,
.module.slider.owl .owl-next:hover {
    background: var(--rs-gradient);
    color: #fff;
    transform: scale(1.12);
    box-shadow: var(--rs-sh-primary);
}

.module.slider.thumbnail.owl .owl-dot {
    background-color: rgba(255, 255, 255, .45);
    border-radius: var(--rs-r-pill);
    transition: all var(--rs-t);
}

.module.slider.thumbnail.owl .owl-dot.active {
    background: var(--rs-gradient-vivid);
}

/* FAQ：app.css 给了 padding:20px，安全 */
.faq-container {
    border-radius: var(--rs-r);
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-hairline), var(--rs-sh-xs);
}

.faq-container .answer {
    color: var(--rs-text-3);
}

/* 价格套餐：app.css 里没有 padding，只有 border-bottom:3px solid，
   本质是"底部粗线"不是卡片，加底色会让内容贴边。只重新着色底边。 */
.pricing-rates {
    border-bottom-color: var(--rs-line-strong);
    transition: transform var(--rs-t-spring), border-color var(--rs-t-slow);
}

.pricing-rates:hover {
    transform: translateY(-6px);
    border-bottom-color: var(--rs-primary);
}

.pricing-rates.starter-plan {
    border-bottom-color: var(--rs-magenta);
}

.pricing-rates .price {
    color: var(--rs-primary);
}

.pricing-rates .title {
    color: var(--rs-text-2);
}


/* ==========================================================================
   13. 筛选器 / 分页 / 面包屑
   --------------------------------------------------------------------------
   .archive-filter 和 .archive-filter-2 在模板里是通栏白条（内部才套 .container），
   并带 margin-top:-30px 压住上方头图。按"横幅"处理：不加圆角、不加四边描边。
   ========================================================================== */

.archive-filter,
.archive-filter-2 {
    background-color: var(--rs-surface);
    box-shadow:
        inset 0 -2px 0 0 rgba(var(--rs-primary-rgb), .14),
        0 14px 34px -26px rgba(var(--rs-primary-rgb), .5);
}

.archive-filter-2 .filter {
    border-bottom-color: var(--rs-line);
}

.archive-filter-2 .filter li {
    border-right-color: var(--rs-line);
}

.archive-filter .filters .dropdown-toggle {
    background-color: var(--rs-surface-2);
    border-radius: var(--rs-r-pill);
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.archive-filter .filters .dropdown-toggle:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.archive-filter .filters .dropdown-menu {
    background-color: var(--rs-surface);
    border-color: transparent;
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

/* app.css 给了 display:inline-block + padding，安全 */
.archive-filter-2 a {
    border-radius: var(--rs-r-pill);
    color: var(--rs-text-2);
    transition: all var(--rs-t-spring);
}

.archive-filter-2 a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.archive-filter-2 a.active,
.archive-filter-2 li.active a,
.archive-filter-2 .current a,
.archive-filter-2 a.current {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .6);
}

.archive-filter-2 .badge {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
    border-radius: var(--rs-r-pill);
}

.archive-filter-2 .filter::-webkit-scrollbar-thumb {
    background-color: var(--rs-line-strong);
}

.archive-filter-2 .filter::-webkit-scrollbar-track {
    background-color: transparent;
}

/* 这些 <a> 带 .btn .btn-sm .btn-white 类，有 inline-block + padding，安全 */
.home-cat-nav > a {
    border-radius: var(--rs-r-pill);
    color: var(--rs-primary-dark);
    transition: all var(--rs-t-spring);
}

.home-cat-nav > a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
    transform: translateY(-2px);
}

.home-cat-nav > a.active {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .6);
}

/* ---- 分页 ---- */
.pagination a, .pagination span {
    background-color: var(--rs-surface);
    border-color: transparent;
    border-radius: var(--rs-r-pill);
    box-shadow: var(--rs-hairline), var(--rs-sh-xs);
    color: var(--rs-text-2);
    font-weight: 700;
    transition: all var(--rs-t-spring);
}

.pagination a:hover {
    opacity: 1;
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-sm);
    transform: translateY(-3px);
}

.pagination .current {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: var(--rs-sh-primary);
}

.infinite-scroll-button {
    border-radius: var(--rs-r-pill);
}

/* ---- 面包屑 ---- */
.article-crumb,
.breadcrumb {
    background-color: transparent;
}

.breadcrumb li a {
    color: var(--rs-text-3);
    transition: color var(--rs-t);
}

.breadcrumb li a:hover {
    color: var(--rs-primary);
}

.breadcrumb > li + li::before {
    color: var(--rs-primary);
    opacity: .5;
}

/* ---- 分段导航 ---- */
.nav-segment {
    background-color: var(--rs-surface-3);
    border-radius: var(--rs-r-pill);
}

.nav-segment .nav-link {
    border-radius: var(--rs-r-pill);
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.nav-segment .nav-link:hover {
    color: var(--rs-primary);
}

/* 同时写 .nav-segment.nav-pills 变体：app.css 有这个组合类，
   否则会被第 6.5 节的 .nav-pills .nav-link.active (0,3,0) 压成渐变胶囊 */
.nav-segment .nav-link.active,
.nav-segment.nav-pills .nav-link.active {
    background: var(--rs-surface);
    color: var(--rs-primary);
    box-shadow: var(--rs-sh-sm);
}

/* ==========================================================================
   14. 文章正文 · Single Article
   ========================================================================== */

.content-area .article-content {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}

.article-content .entry-header .entry-title {
    letter-spacing: -.6px;
}

.article-content p,
.article-content li {
    color: var(--rs-text-2);
}

.article-content .entry-content > p > a:not(.btn) {
    color: var(--rs-primary);
    text-decoration-color: rgba(var(--rs-primary-rgb), .4);
    text-underline-offset: 3px;
    transition: color var(--rs-t);
}

.article-content a:hover {
    color: var(--rs-magenta);
}

.article-content .h2, .article-content h2 {
    border-bottom-color: var(--rs-surface-3);
}

.article-content .h3, .article-content h3 {
    border-left-color: var(--rs-primary);
    border-radius: 3px;
}

.article-content p.has-drop-cap:not(:focus):first-letter {
    color: var(--rs-primary);
}

/* 排除 emoji，否则行内表情也会带圆角和阴影 */
.article-content img:not(.emoji):not(.wp-smiley) {
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-sh-xs);
    transition: box-shadow var(--rs-t), transform var(--rs-t);
}

.article-content .gallery img:hover {
    box-shadow: var(--rs-sh);
}

.article-content figure {
    border-radius: var(--rs-r-sm);
}

/* 引用 */
.article-content .wp-block-quote,
.article-content blockquote {
    background: var(--rs-gradient-soft);
    border-radius: var(--rs-r);
    box-shadow: inset 4px 0 0 0 var(--rs-primary);
    color: var(--rs-text-2);
}

.article-content blockquote:before,
.article-content blockquote:after {
    color: rgba(var(--rs-primary-rgb), .3);
}

.article-content .wp-block-pullquote {
    border-radius: var(--rs-r);
}

/* 代码块：保留 macOS 三点，换深紫底 */
.wp-block-code, .article-content pre {
    /* 代码块底色保持中性深色，7 套配色下都不会显得跑调 */
    background: #1a1726;
    border-radius: var(--rs-r-sm);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07), var(--rs-sh-sm);
    color: #9ff5c4;
    font-family: var(--rs-font-mono);
}

.article-content pre code {
    border-radius: var(--rs-r-xs);
    font-family: var(--rs-font-mono);
}

.article-content code:not(pre code) {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary-dark);
    border-radius: var(--rs-r-xs);
    font-family: var(--rs-font-mono);
}

/* 表格：用单元格圆角，避免 overflow:hidden 影响宽表格横向滚动 */
.article-content table,
.article-content .wp-block-table {
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline);
}

.article-content table thead tr:first-child th:first-child {
    border-top-left-radius: var(--rs-r-sm);
}

.article-content table thead tr:first-child th:last-child {
    border-top-right-radius: var(--rs-r-sm);
}

.article-content table th {
    background-color: var(--rs-surface-3);
    color: var(--rs-text);
    border-color: var(--rs-line);
}

.article-content table td {
    border-color: var(--rs-line);
    color: var(--rs-text-2);
}

.article-content table tr:hover td {
    background-color: var(--rs-surface-2);
}

.article-content .post-note {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary-dark);
    border-color: transparent;
    border-radius: var(--rs-r-sm);
}

.article-content .ripay-content {
    border: 2px dashed rgba(var(--rs-primary-rgb), .35);
    border-radius: var(--rs-r);
    background: var(--rs-gradient-soft);
}

/* 这些标签带 .btn 类（模板输出 btn btn-sm btn-light），有 inline-block + padding，安全 */
.article-content .wp-block-tag-cloud .tag-cloud-link,
.article-content .entry-tags a {
    background-color: var(--rs-surface-3);
    border-radius: var(--rs-r-pill);
    color: var(--rs-primary-dark);
    transition: all var(--rs-t-spring);
}

.article-content .wp-block-tag-cloud .tag-cloud-link:hover,
.article-content .entry-tags a:hover {
    background: var(--rs-gradient);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .6);
}

.article-content .entry-share .share-author img {
    border-radius: var(--rs-r-pill);
    box-shadow: 0 0 0 2px var(--rs-surface), 0 0 0 3px var(--rs-line-strong);
}

.article-content .entry-share .go-star-btn.ok {
    color: var(--rs-magenta);
}

.tags-substr {
    color: var(--rs-text-3);
}

/* 文章内 Tab 导航
   贴在 .tab-content 上沿，原始圆角是 4px 4px 0 0，四角全圆会与下方内容脱开。
   选中态原设计是下划线 tab 不是胶囊，保留该语义只换色。
   选择器刻意写长 (0,4,0/0,5,0)：要压过 .nav-pills .nav-link.active (0,3,0)
   和 app.css 的 .nav .nav-link:not(.active):hover (0,4,0)。 */
.single-download-nav {
    background-color: var(--rs-surface);
    border-radius: var(--rs-r) var(--rs-r) 0 0;
    box-shadow: var(--rs-hairline);
}

.single-download-nav .nav.nav-pills {
    border-bottom-color: var(--rs-line);
}

.single-download-nav .nav.nav-pills .nav-link {
    color: var(--rs-text-3);
    background-color: transparent;
    box-shadow: none;
    font-weight: 700;
    transition: color var(--rs-t), border-color var(--rs-t);
}

/* app.css 该 hover 带 !important，必须同等强度 */
.single-download-nav .nav.nav-pills .nav-link:hover {
    color: var(--rs-primary) !important;
}

.single-download-nav .nav.nav-pills .nav-link.active {
    color: var(--rs-primary);
    border-color: var(--rs-primary);
    background: none;
    background-color: transparent;
    box-shadow: none;
}

.single-download-thumbnail > img {
    border-radius: var(--rs-r);
    box-shadow: var(--rs-sh);
}

/* 折叠面板 */
.accordion .accordion-item,
.accordion.accordion-bg-light .accordion-item {
    border-radius: var(--rs-r-sm);
    background-color: var(--rs-surface-2);
    box-shadow: var(--rs-hairline);
}

.accordion-button {
    color: var(--rs-text);
    border-radius: var(--rs-r-sm);
    transition: all var(--rs-t);
}

/* 下面几条 app.css 都带 !important，必须同等强度 */
.accordion.accordion-bg-light .accordion-button {
    background-color: var(--rs-surface-2) !important;
    color: var(--rs-text-2) !important;
}

.accordion.accordion-bg-light .accordion-button:not(.collapsed) {
    color: var(--rs-primary) !important;
}

/* 展开收起图标原本写死近黑色，暗色模式下完全看不见 */
.accordion.accordion-icon .accordion-header .accordion-button:after,
.accordion.accordion-icon .accordion-header .accordion-button:before,
.accordion.accordion-bg-light .accordion-button:after,
.accordion.accordion-bg-light .accordion-button:before {
    background: var(--rs-primary) !important;
}

/* 上一篇 / 下一篇：app.css 里本来就是白底圆角卡片，安全 */
.entry-page-prev, .entry-page-next {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t);
}

.entry-page-prev:hover, .entry-page-next:hover {
    transform: translateY(-4px) scale(1.01);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-lg);
}

.entry-page-info .title {
    color: var(--rs-text);
    font-weight: 700;
    transition: color var(--rs-t);
}

.entry-page-prev:hover .title, .entry-page-next:hover .title {
    color: var(--rs-primary);
}

.entry-page-info .rnav {
    color: var(--rs-primary);
}

/* 相关文章 */
.related-posts .post-list,
.related-posts .post-grid {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-xs);
    transition: transform var(--rs-t-spring), box-shadow var(--rs-t-slow);
}

.related-posts .post-list:hover,
.related-posts .post-grid:hover {
    transform: translateY(-6px) scale(1.015);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-lg);
}

.related-posts .post-list .entry-media,
.related-posts .post-grid .entry-media {
    border-radius: var(--rs-r-sm);
    overflow: hidden;
}

.reward-qrcode > span > img {
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}


/* ==========================================================================
   15. 评论 · Comments
   ========================================================================== */

.entry-comments {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}

.comment-form-comment textarea {
    background-color: var(--rs-surface-2);
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline);
    transition: box-shadow var(--rs-t), background-color var(--rs-t);
}

.comment-form-comment textarea:focus {
    background-color: var(--rs-surface);
    box-shadow: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .55), var(--rs-ring);
}

.form-submit .avatar,
.comment-author img {
    border-radius: var(--rs-r-pill);
    box-shadow: 0 0 0 2px var(--rs-surface), 0 0 0 3px var(--rs-line-strong);
}

.form-submit .submit {
    background: var(--rs-gradient);
    border-radius: var(--rs-r-pill);
    border-color: transparent;
    color: #fff;
    font-weight: 700;
    box-shadow: var(--rs-sh-primary);
    transition: all var(--rs-t-spring);
}

.form-submit .submit:hover {
    background: var(--rs-gradient-vivid);
    transform: translateY(-2px);
    box-shadow: 0 20px 44px -12px rgba(var(--rs-primary-rgb), .75);
}

/* 楼中楼回复框，以及它上方那个小尖角。
   ------------------------------------------------------------------
   ⚠ 这个 :before 是用 border 画出来的三角形，元素本身 width/height 都是 0：
       border: 10px solid transparent;
       border-bottom: 10px solid #f7f7f7;
   绝对不能给它设 background-color —— 背景默认按 border-box 绘制，
   会从三条透明边框里整片透出来，把尖角变成一个 20×20 的方块，
   看上去就是个莫名其妙的紫色小旗子。
   要换色只能改 border-bottom-color，并且必须与下方回复框底色一致。 */
.comments-list .comment {
    border-top-color: var(--rs-line);
}

.comments-list .comment-children {
    background-color: var(--rs-surface-2);
    border-color: var(--rs-line);
    border-radius: var(--rs-r-sm);
}

.comments-list .comment-children:before {
    background-color: transparent;
    border-bottom-color: var(--rs-surface-2);
}

.comment-body .nickname {
    color: var(--rs-text);
    font-weight: 700;
}

.comment-body .comment-time,
.comments-list .comment-children .comment-body .comment-time {
    color: var(--rs-text-3);
}

.comment-body p {
    color: var(--rs-text-2);
}

.comments-list .comment-text img {
    border-radius: var(--rs-r-xs);
}

/* 底色加在 .reply 容器上而不是里面的 <a>：
   <a> 是 inline，给 inline 加背景会出现"胶囊比文字矮、文字顶出上沿"。
   .reply 在 app.css 里 hover 时本来就有 padding 和 border-radius。 */
.comments-list .comment > .comment-inner:hover > .reply {
    background-color: var(--rs-primary-soft-2);
    border-radius: var(--rs-r-pill);
}

.comments-list .reply a {
    color: var(--rs-primary);
    transition: color var(--rs-t);
}

.comments-list .reply a:hover {
    color: var(--rs-magenta);
}

.comment-awaiting-moderation {
    color: var(--rs-warning);
}

.entry-comments .butterBar-message {
    background: var(--rs-vip-gradient);
    color: #40270a;
    border-radius: var(--rs-r-pill);
    box-shadow: var(--rs-sh-sm);
}


/* ==========================================================================
   16. 侧边栏组件 · Sidebar Widgets
   ========================================================================== */

/* app.css 给 .widget 的是 padding:20px，安全上底色 */
.widget-area .widget {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
    transition: box-shadow var(--rs-t);
}

.widget-title {
    color: var(--rs-text);
    font-weight: 800;
    letter-spacing: -.2px;
}

.widget-title:before {
    background: var(--rs-gradient-vivid);
    border-radius: var(--rs-r-pill);
    box-shadow: 0 0 0 4px var(--rs-primary-soft);
}

.widget ol a, .widget ul a {
    color: var(--rs-text-2);
    transition: color var(--rs-t);
}

.widget ol a:hover, .widget ul a:hover {
    color: var(--rs-primary);
}

/* 标签云：app.css 给了 float:left + padding（float 强制 block），安全 */
.widget .tagcloud a {
    background-color: var(--rs-surface-3);
    border-radius: var(--rs-r-pill);
    color: var(--rs-primary-dark);
    box-shadow: none;
    transition: all var(--rs-t-spring);
}

.widget .tagcloud a:nth-child(1),
.widget .tagcloud a:nth-child(2n),
.widget .tagcloud a:nth-child(3n),
.widget .tagcloud a:nth-child(4n) {
    background-color: var(--rs-surface-3);
    color: var(--rs-primary-dark);
}

.widget .tagcloud a:hover {
    background: var(--rs-gradient);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .6);
}

.ripro_v2-widget-categories .cat-item {
    border-radius: var(--rs-r-sm);
    transition: all var(--rs-t);
}

.ripro_v2-widget-categories .cat-item:hover {
    background-color: var(--rs-primary-soft-2);
}

.ripro_v2-widget-categories .cat-item .inner .thumbnail img {
    border-radius: var(--rs-r-xs);
}

.ripro_v2-widget-categories .cat-item .inner .content .title {
    color: var(--rs-text-2);
    transition: color var(--rs-t);
}

.ripro_v2-widget-categories .cat-item:hover .inner .content .title {
    color: var(--rs-primary);
}

.ripro_v2-widget-post .post-list {
    border-radius: var(--rs-r-sm);
    transition: all var(--rs-t);
}

.ripro_v2-widget-post .post-list .entry-media {
    border-radius: var(--rs-r-xs);
    overflow: hidden;
}

.ripro_v2-widget-post .post-list .entry-title a {
    color: var(--rs-text-2);
    transition: color var(--rs-t);
}

.ripro_v2-widget-post .post-list:hover .entry-title a {
    color: var(--rs-primary);
}

.ripro_v2-widget-post .post-list.maxbg {
    border-radius: var(--rs-r-sm);
    overflow: hidden;
}

.widget-area .widget_search .form-group {
    border-radius: var(--rs-r-sm);
}

/* 问答：app.css 给了 display:inline-block + padding，安全 */
.question-cat > a {
    border-radius: var(--rs-r-pill);
    background-color: var(--rs-surface-3);
    color: var(--rs-primary-dark);
    transition: all var(--rs-t-spring);
}

.question-cat > a:hover {
    background: var(--rs-gradient);
    color: #fff;
    transform: translateY(-2px);
}

/* 问答列表项是"列表行"不是卡片：app.css 给的是 padding:15px 0（左右为 0）、
   底部分隔线，还特意写了 border-radius:0。加底色圆角会让标题左右贴边。 */
.post-list.question {
    background-color: transparent;
    border-radius: 0;
    border-bottom-color: var(--rs-line);
    box-shadow: none;
    transition: background-color var(--rs-t);
}

.post-list.question:hover {
    background-color: var(--rs-primary-soft);
    box-shadow: none;
    transform: none;
}

.post-list.question .answers {
    border-radius: var(--rs-r-sm);
    background-color: var(--rs-surface-3);
    color: var(--rs-text-3);
}

.post-list.question .answers.is {
    background: linear-gradient(135deg, #00c37a, #00a8f0);
    color: #fff;
}

/* 问答页 Tab 是"连体标签"：选中项要与下方 .question-area 融为一体
   （后者圆角是 0 .5rem .5rem .5rem，左上角特意留方） */
.nav-tabs.question-nav .nav-link {
    border-radius: var(--rs-r-sm) var(--rs-r-sm) 0 0;
    color: var(--rs-text-3);
}

.nav-tabs.question-nav .nav-link.active {
    background-color: var(--rs-surface);
    color: var(--rs-primary);
    box-shadow: 0 -1px 0 var(--rs-line), -1px 0 0 var(--rs-line), 1px 0 0 var(--rs-line);
}

.question-area {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}


/* ==========================================================================
   17. 商品 / 价格 / 支付 · Shop & Payment
   ========================================================================== */

.ripro-v2-widget-shop-down .price > h3,
.ripro-v2-widget-shop-down .price > h3 > span {
    background: var(--rs-gradient-warm);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    letter-spacing: -1px;
    font-weight: 800;
}

.ripro-v2-widget-shop-down .price > h3 > small {
    -webkit-text-fill-color: var(--rs-accent);
    color: var(--rs-accent);
}

/* app.css 给这块写死了 #ebfaff（旧淡青），与新配色不搭 */
.ripro-v2-widget-shop-down .pricing-options {
    background: var(--rs-gradient-soft);
    border-radius: var(--rs-r-sm);
}

.pricing-options li,
.ripro-v2-widget-shop-down .pricing-options li,
.hero-shop-warp .info-box .pricing-options li,
.content-do-video .pricing-options li {
    border-radius: var(--rs-r-sm);
    transition: all var(--rs-t);
}

.pricing-options li b,
.ripro-v2-widget-shop-down .pricing-options li b,
.content-do-video .pricing-options li b,
.ripay-content .pricing-options li b {
    color: var(--rs-accent);
    font-weight: 800;
}

/* .down-info 在 app.css 里没有任何 padding，是裸区块不是卡片。
   加底色会让"其他信息"和各行直接贴边。保持透明，层次交给 h5 的虚线分隔。 */
.ripro-v2-widget-shop-down .down-info,
.hero-shop-warp .info-box .down-info {
    background-color: transparent;
    box-shadow: none;
}

.ripro-v2-widget-shop-down .down-info > h5 {
    border-bottom-color: var(--rs-line-strong);
    color: var(--rs-text);
    font-weight: 800;
}

.ripro-v2-widget-shop-down ul.infos li p.data-label {
    color: var(--rs-text-3);
}

.ripro-v2-widget-shop-down ul.infos li p.info {
    color: var(--rs-text-2);
}

.pay_coin_box {
    border-radius: var(--rs-r);
    border-color: transparent;
    background-color: var(--rs-surface-2);
    box-shadow: var(--rs-hairline);
    transition: all var(--rs-t-spring);
}

.pay_coin_box:hover,
.pay_coin_box.active {
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-sm);
    transform: translateY(-3px);
}

.card-pricing .list-unstyled li {
    color: var(--rs-text-2);
}

/* ---- 支付弹窗 ---- */
.swal2-popup {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-sh-xl);
    font-family: var(--rs-font);
    color: var(--rs-text);
}

.swal2-popup.swal2-toast {
    border-radius: var(--rs-r);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.swal2-title {
    color: var(--rs-text);
    font-weight: 800;
}

.swal2-html-container, .swal2-content {
    color: var(--rs-text-2);
}

.swal2-close {
    color: var(--rs-text-3);
    border-radius: var(--rs-r-pill);
    transition: all var(--rs-t-spring);
}

.swal2-close:hover {
    background: var(--rs-gradient-warm);
    color: #fff;
}

.swal2-timer-progress-bar {
    background: var(--rs-gradient-vivid);
}

.swal2-styled.swal2-confirm {
    background: var(--rs-gradient) !important;
    border-radius: var(--rs-r-pill) !important;
    box-shadow: var(--rs-sh-primary) !important;
}

.swal2-styled.swal2-cancel {
    background-color: var(--rs-surface-3) !important;
    color: var(--rs-primary-dark) !important;
    border-radius: var(--rs-r-pill) !important;
}

.swal2-input, .swal2-textarea, .swal2-select {
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline);
    background-color: var(--rs-surface-2);
    color: var(--rs-text);
}

.swal2-input:focus, .swal2-textarea:focus {
    box-shadow: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .55), var(--rs-ring);
}

.swal2-popup .pay-button-box .pay-item {
    border-radius: var(--rs-r);
    background-color: var(--rs-surface-2);
    box-shadow: var(--rs-hairline);
    transition: all var(--rs-t-spring);
}

.swal2-popup .pay-button-box .pay-item:hover {
    background-color: var(--rs-surface);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-sm);
    transform: translateY(-4px) scale(1.03);
}

.swal2-popup .pay-button-box .pay-item span {
    color: var(--rs-text-2);
}

.swal2-popup .qrcon img.qr-pay,
.swal2-popup .qrcon .qrcode img {
    border-radius: var(--rs-r-sm);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}

.swal2-popup .qrcon .bottom {
    border-radius: 0 0 var(--rs-r-lg) var(--rs-r-lg);
}

.swal2-popup .qrcon .bottom.alipay {
    background: linear-gradient(135deg, #1678ff, #00a0e9);
}

.swal2-popup .qrcon .bottom.weixinpay {
    background: linear-gradient(135deg, #21c063, #09bb07);
}

.swal2-popup .swal2-image.poser {
    border-radius: var(--rs-r);
    box-shadow: var(--rs-sh);
}


/* ==========================================================================
   18. 登录注册 / 用户中心
   ========================================================================== */

/* app.css 给了 padding:30px，安全 */
.ajax-signup-form {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.ajax-signup-form .btn-link {
    color: var(--rs-primary);
}

.login-page-title > h1 {
    letter-spacing: -.8px;
    background: var(--rs-gradient-vivid);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* app.css 该规则带 !important，暗色下会变成深底上的白色药丸 */
.social-text .absolute-centered {
    background-color: var(--rs-surface) !important;
    color: var(--rs-text-3);
}

.oauth .oauth-btn {
    border-radius: var(--rs-r-pill);
    box-shadow: var(--rs-hairline), var(--rs-sh-xs);
    transition: all var(--rs-t-spring);
}

.oauth .oauth-btn:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: var(--rs-sh);
}

/* 必须用 background-color 而不是 background 简写：
   .user-top-header 是 lazyload 元素，封面图由后台配置、JS 写入 background-image，
   app.css 另给了 background-size:cover。简写会把 size/position/repeat 一并重置，
   导致用户封面图变成平铺原图。这里只提供兜底底色。 */
.user-top-header {
    background-color: var(--rs-primary-dark);
}

.avatar-xl, .avatar-xl img {
    border-radius: var(--rs-r-pill);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .4), var(--rs-sh-lg);
}

.navbar-vertical .nav-link {
    border-radius: var(--rs-r-pill);
    color: var(--rs-text-2);
    transition: all var(--rs-t);
}

.navbar-vertical .nav-link:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.navbar-vertical .nav-link.active {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: 0 10px 22px -8px rgba(var(--rs-primary-rgb), .6);
}

.navbar-vertical .nav-sub .nav-link {
    color: var(--rs-text-3);
}

.navbar-vertical .nav-tabs {
    border-color: var(--rs-line);
}

.table thead th {
    border-color: var(--rs-line);
    color: var(--rs-primary);
    font-weight: 700;
    letter-spacing: .4px;
}

.table td, .table th {
    border-color: var(--rs-line);
    color: var(--rs-text-2);
}

.table-hover tbody tr:hover {
    background-color: var(--rs-surface-2);
}

.list-group-item {
    background-color: var(--rs-surface);
    border-color: var(--rs-line);
    color: var(--rs-text-2);
}

.error404 .site-content h1,
.error404 .site-content h2 {
    color: var(--rs-text);
}

/* ==========================================================================
   20. 暗色模式 · Dark Mode
   --------------------------------------------------------------------------
   先重定义变量（上面所有组件自动跟随），再逐条覆盖 dark.css 里写死的颜色。
   ========================================================================== */

body.dark-open {
    --rs-primary: #9b7bff;
    --rs-primary-dark: #7a55f5;
    --rs-primary-light: #c0acff;
    --rs-primary-soft: rgba(var(--rs-primary-rgb), .14);
    --rs-primary-soft-2: rgba(var(--rs-primary-rgb), .24);
    --rs-primary-rgb: 155, 123, 255;

    --rs-magenta: #ff6ba6;
    --rs-magenta-rgb: 255, 107, 166;
    --rs-cyan: #4fd6ff;
    --rs-cyan-rgb: 79, 214, 255;

    --rs-gradient: linear-gradient(135deg, #7a55f5 0%, #b95cf5 100%);
    --rs-gradient-vivid: linear-gradient(120deg, #7a55f5 0%, #c964f0 52%, #ff6ba6 100%);
    --rs-gradient-cool: linear-gradient(135deg, #6366f1 0%, #4fd6ff 100%);
    --rs-gradient-warm: linear-gradient(135deg, #ff9445 0%, #ff6ba6 100%);
    --rs-gradient-soft: linear-gradient(135deg, rgba(var(--rs-primary-rgb), .16), rgba(var(--rs-magenta-rgb), .12));
    --rs-surface-gradient: linear-gradient(160deg, #1d1740 0%, #191333 100%);

    --rs-accent: #ff9445;
    --rs-accent-dark: #ff7a1a;
    --rs-accent-soft: rgba(255, 148, 69, .16);
    --rs-vip-gradient: linear-gradient(135deg, #ffd166 0%, #ffa500 100%);

    --rs-success: #34e39b;
    --rs-success-soft: rgba(52, 227, 155, .16);
    --rs-info: #4fd6ff;
    --rs-info-soft: rgba(79, 214, 255, .16);
    --rs-warning: #ffc555;
    --rs-warning-soft: rgba(255, 197, 85, .16);
    --rs-danger: #ff6b81;
    --rs-danger-soft: rgba(255, 107, 129, .16);

    /* 深紫底，比 dark.css 原本的蓝灰 #202634 更有性格 */
    --rs-bg: #100b26;
    --rs-bg-deep: #0a0719;
    --rs-surface: #1b1540;
    --rs-surface-2: #221b4d;
    --rs-surface-3: #2c2460;
    --rs-surface-hover: #291f57;

    --rs-line: rgba(255, 255, 255, .09);
    --rs-line-strong: rgba(var(--rs-primary-rgb), .34);
    --rs-hairline-vivid: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .6);

    --rs-text: #ece9fb;
    --rs-text-2: #b3adda;
    --rs-text-3: #7d76a8;

    --rs-sh-xs: 0 2px 6px -2px rgba(0, 0, 0, .5);
    --rs-sh-sm: 0 6px 18px -8px rgba(0, 0, 0, .6), 0 2px 6px -3px rgba(var(--rs-primary-rgb), .18);
    --rs-sh: 0 14px 34px -14px rgba(0, 0, 0, .68), 0 6px 16px -8px rgba(var(--rs-primary-rgb), .26);
    --rs-sh-lg: 0 30px 62px -22px rgba(0, 0, 0, .8), 0 12px 26px -14px rgba(var(--rs-primary-rgb), .3);
    --rs-sh-xl: 0 48px 96px -30px rgba(0, 0, 0, .88), 0 18px 40px -20px rgba(var(--rs-primary-rgb), .3);
    --rs-sh-primary: 0 14px 32px -12px rgba(var(--rs-primary-rgb), .7);
    --rs-sh-magenta: 0 14px 32px -12px rgba(var(--rs-magenta-rgb), .6);
    --rs-ring: 0 0 0 4px rgba(var(--rs-primary-rgb), .26);

    --rs-glass: rgba(27, 21, 64, .78);

    background-color: var(--rs-bg);
    color: var(--rs-text);
}

body.dark-open:before {
    opacity: .7;
    background:
        radial-gradient(820px 460px at 8% -10%, rgba(var(--rs-primary-rgb), .3), transparent 62%),
        radial-gradient(720px 420px at 52% -16%, rgba(var(--rs-primary-rgb), .18), transparent 60%),
        radial-gradient(760px 440px at 96% -8%, rgba(var(--rs-magenta-rgb), .18), transparent 62%);
}

.dark-open h1, .dark-open h2, .dark-open h3,
.dark-open h4, .dark-open h5, .dark-open h6 {
    color: var(--rs-text);
}

.dark-open a { color: var(--rs-text-2); }
.dark-open a:hover { color: var(--rs-primary); }

.dark-open ::-webkit-scrollbar-thumb {
    background-color: rgba(var(--rs-primary-rgb), .34);
}

.dark-open ::-webkit-scrollbar-thumb:hover {
    background-color: rgba(var(--rs-primary-rgb), .7);
}

.dark-open ::-moz-selection { background: rgba(var(--rs-primary-rgb), .34); color: #fff; }
.dark-open ::selection { background: rgba(var(--rs-primary-rgb), .34); color: #fff; }

/* ---- 页头 / 导航 ---- */
.dark-open .site-header {
    background-color: var(--rs-glass);
    box-shadow:
        inset 0 -2px 0 0 rgba(var(--rs-primary-rgb), .28),
        0 12px 34px -22px rgba(0, 0, 0, .9);
}

.dark-open .navbar .dropdown-menu,
.dark-open .navbar .sub-menu,
.dark-open .mega-menu,
.dark-open .header-menu-dropdown .dropdown-menu-hover,
.dark-open .dropdown-menu {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.dark-open .navbar .menu-item:hover > .sub-menu:before {
    border-bottom-color: var(--rs-surface);
}

.dark-open .navbar .menu-item > a { color: var(--rs-text-2); }

.dark-open .navbar .menu-item > a:hover,
.dark-open .navbar .menu-item.current-menu-item > a {
    color: var(--rs-primary);
}

.dark-open .dropdown-divider,
.dark-open .navbar .sep:after,
.dark-open .card-body hr,
.dark-open hr {
    border-color: var(--rs-line);
    background-color: transparent;
}

.dark-open .navbar .navbar-button,
.dark-open .off-canvas .canvas-close {
    background-color: var(--rs-surface-3);
    color: var(--rs-text-2);
    border-color: transparent;
}

.dark-open .navbar .navbar-button:hover {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .navbar .login-btn.navbar-button {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .navbar .menu-avatar-img {
    box-shadow: 0 0 0 2px var(--rs-surface), 0 0 0 4px rgba(var(--rs-primary-rgb), .5);
}

.dark-open .burger, .dark-open .burger:before, .dark-open .burger:after {
    background-color: var(--rs-text-2);
}

/* ---- 卡片 / 列表 ---- */
.dark-open .card {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    border-color: transparent;
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}

.dark-open .card-header {
    background-color: transparent;
    border-bottom-color: var(--rs-line);
}

.dark-open .card-footer {
    background-color: var(--rs-surface-2);
    border-top-color: var(--rs-line);
}

.dark-open .posts-wrapper .post-list,
.dark-open .posts-wrapper .post-grid,
.dark-open .carousel .post-grid,
.dark-open .related-posts .post-list,
.dark-open .related-posts .post-grid,
.dark-open .user-favpage .post-list,
.dark-open .series-item {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}

.dark-open .posts-wrapper .post-list:hover,
.dark-open .posts-wrapper .post-grid:hover,
.dark-open .series-item:hover,
.dark-open .related-posts .post-list:hover,
.dark-open .related-posts .post-grid:hover {
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-lg);
}

.dark-open .posts-wrapper .post-grid.bg-image,
.dark-open .carousel .post-grid.bg-image {
    background-image: none;
}

.dark-open .entry-media,
.dark-open .entry-media .placeholder {
    background-color: var(--rs-surface-2);
}

.dark-open .entry-header .entry-title,
.dark-open .entry-header .entry-title a {
    color: var(--rs-text);
}

.dark-open .entry-header .entry-title a:hover,
.dark-open .rizhuti_v2-widget-post .post-list .entry-title a:hover,
.dark-open .rizhuti_v2-widget-post .post-list:hover .entry-title a {
    color: var(--rs-primary);
}

.dark-open .rizhuti_v2-widget-post .post-list,
.dark-open .rizhuti_v2-widget-post .post-list .entry-title a {
    background-color: transparent;
    color: var(--rs-text-2);
}

.dark-open .entry-excerpt,
.dark-open .entry-header .entry-meta,
.dark-open .entry-header .entry-meta a,
.dark-open .entry-footer .entry-meta,
.dark-open .entry-footer .entry-meta a,
.dark-open .tags-substr {
    color: var(--rs-text-3);
}

.dark-open .entry-footer a + a:before {
    background-color: var(--rs-line);
}

/* ---- 内容区 ---- */
.dark-open .content-area .article-content,
.dark-open .entry-comments,
.dark-open .comment-form,
.dark-open .question-area,
.dark-open .single-download-nav,
.dark-open .tab-content .related-posts,
.dark-open .tab-content .accordion,
.dark-open .rizhuti_v2-widget-division,
.dark-open .faq-container,
.dark-open .ajax-signup-form,
.dark-open .widget-area .widget,
.dark-open .entry-page-next,
.dark-open .entry-page-prev {
    /* 只用 background-color + background-image，不用 background 简写 */
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-hairline), var(--rs-sh-sm);
}

.dark-open .archive-filter,
.dark-open .archive-filter-2 {
    background-color: var(--rs-surface);
    box-shadow:
        inset 0 -2px 0 0 rgba(var(--rs-primary-rgb), .26),
        0 14px 34px -26px rgba(0, 0, 0, .9);
}

.dark-open .archive-filter .filter li,
.dark-open .archive-filter-2 .filter li,
.dark-open .archive-filter-2 .filter {
    border-color: var(--rs-line);
}

.dark-open .article-content p,
.dark-open .article-content li {
    color: var(--rs-text-2);
}

.dark-open .article-content .wp-block-quote,
.dark-open .article-content blockquote {
    background: var(--rs-gradient-soft);
    box-shadow: inset 4px 0 0 0 var(--rs-primary);
    color: var(--rs-text-2);
}

.dark-open .article-content .h2,
.dark-open .article-content h2 {
    border-bottom-color: var(--rs-surface-3);
}

.dark-open .article-content .h3,
.dark-open .article-content h3 {
    border-left-color: var(--rs-primary);
}

.dark-open .wp-block-code,
.dark-open .article-content pre {
    background: #0d0922;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07);
}

.dark-open .article-content code:not(pre code) {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary-light);
}

.dark-open .article-content .post-note {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary-light);
    border-color: transparent;
}

.dark-open .article-content .ripay-content {
    background: var(--rs-gradient-soft);
    border-color: rgba(var(--rs-primary-rgb), .35);
}

.dark-open .article-content .entry-tags a,
.dark-open .widget .tagcloud a,
.dark-open .question-cat > a {
    background-color: var(--rs-surface-3);
    color: var(--rs-text-2);
}

.dark-open .article-content .entry-tags a:hover,
.dark-open .widget .tagcloud a:hover,
.dark-open .question-cat > a:hover {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .article-content table th {
    background-color: var(--rs-surface-3);
    color: var(--rs-text);
}

.dark-open th, .dark-open td,
.dark-open .table td, .dark-open .table th {
    border-color: var(--rs-line);
    color: var(--rs-text-2);
}

.dark-open .table thead th {
    border-color: var(--rs-line);
    color: var(--rs-primary);
}

.dark-open .table-hover tbody tr:hover {
    background-color: var(--rs-surface-2);
}

.dark-open .list-group-item {
    background-color: var(--rs-surface-2);
    border-color: var(--rs-line);
    color: var(--rs-text-2);
}

/* ---- 评论 ---- */
.dark-open .comment-form-comment textarea,
.dark-open .comment-form-author input,
.dark-open .comment-form-email input,
.dark-open .comment-form-url input {
    background-color: var(--rs-surface-2);
    box-shadow: var(--rs-hairline);
    border-color: transparent;
    color: var(--rs-text);
}

.dark-open .comment-form-comment textarea:focus {
    background-color: var(--rs-surface);
    box-shadow: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .6), var(--rs-ring);
}

/* 同亮色：尖角是 border 画的，只能改 border-bottom-color，不能加背景 */
.dark-open .comments-list .comment {
    border-top-color: var(--rs-line);
}

.dark-open .comments-list .comment-children {
    background-color: var(--rs-surface-2);
    border-color: var(--rs-line);
}

.dark-open .comments-list .comment-children:before {
    background-color: transparent;
    border-bottom-color: var(--rs-surface-2);
}

.dark-open .comment-body p { color: var(--rs-text-2); }
.dark-open .comment-body .nickname { color: var(--rs-text); }

.dark-open .comments-list .comment > .comment-inner:hover > .reply {
    background-color: var(--rs-primary-soft-2);
}

.dark-open .comments-list .reply a { color: var(--rs-primary); }

/* ---- 侧栏 / 页脚 ---- */
.dark-open .widget-title:before,
.dark-open .u-border-title:before,
.dark-open .modular-title-3 .section-title:after,
.dark-open.modular-title-3 .section-title:after,
.dark-open .latest-title:after,
.dark-open .modular-title-2 .section-title:before {
    background: var(--rs-gradient-vivid);
}

.dark-open .widget ol a,
.dark-open .widget ul a {
    color: var(--rs-text-2);
}

.dark-open .widget ol a:hover,
.dark-open .widget ul a:hover {
    color: var(--rs-primary);
}

.dark-open .ripro_v2-widget-categories .cat-item .inner {
    background-color: transparent;
}

.dark-open .ripro_v2-widget-categories .cat-item:hover {
    background-color: var(--rs-primary-soft-2);
}

.dark-open .site-footer {
    background-color: var(--rs-surface);
    background-image: linear-gradient(180deg, var(--rs-surface) 0%, var(--rs-bg-deep) 100%);
    box-shadow: inset 0 2px 0 0 rgba(var(--rs-primary-rgb), .24);
}

.dark-open .site-footer a,
.dark-open .site-footer .footer-links a {
    color: var(--rs-text-2);
}

.dark-open .site-footer a:hover,
.dark-open .site-footer .footer-links a:hover {
    color: var(--rs-primary);
}

.dark-open .site-footer .footer-copyright {
    color: var(--rs-text-3);
}

/* ---- 表单 / 按钮 / 徽章 ---- */
.dark-open .form-control,
.dark-open select,
.dark-open textarea,
.dark-open input[type="text"],
.dark-open input[type="email"],
.dark-open input[type="url"],
.dark-open input[type="password"],
.dark-open input[type="search"],
.dark-open input[type="number"],
.dark-open input[type="tel"] {
    background-color: var(--rs-surface-2);
    border-color: transparent;
    box-shadow: var(--rs-hairline);
    color: var(--rs-text);
}

.dark-open .form-control:focus,
.dark-open select:focus,
.dark-open textarea:focus,
.dark-open input[type="text"]:focus,
.dark-open input[type="email"]:focus,
.dark-open input[type="password"]:focus,
.dark-open input[type="search"]:focus {
    background-color: var(--rs-surface);
    border-color: transparent;
    box-shadow: inset 0 0 0 2px rgba(var(--rs-primary-rgb), .6), var(--rs-ring);
    color: var(--rs-text);
}

.dark-open label { color: var(--rs-text-2); }

.dark-open .input-group-text {
    background-color: var(--rs-surface-3);
    border-color: transparent;
    color: var(--rs-text-3);
}

.dark-open .btn-primary {
    background: var(--rs-gradient);
    border-color: transparent;
    color: #fff;
}

.dark-open .btn-warning,
.dark-open .btn-warning:hover {
    background: var(--rs-vip-gradient);
    border-color: transparent;
    color: #3a2600;
}

.dark-open .btn-light,
.dark-open .btn-white,
.dark-open .home-cat-nav > a,
.dark-open .post-cms-series .btn-white {
    background: var(--rs-surface-3);
    background-color: var(--rs-surface-3);
    border-color: transparent;
    color: var(--rs-text-2);
}

.dark-open .btn-light:hover,
.dark-open .btn-white:hover,
.dark-open .home-cat-nav > a:hover,
.dark-open .post-cms-series .btn-white:hover {
    background: var(--rs-primary-soft-2);
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dark-open .btn-white.active,
.dark-open .home-cat-nav > a.active {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .badge-light,
.dark-open .badge-light-lighten,
.dark-open .badge-secondary-lighten,
.dark-open .badge-dark-lighten {
    background-color: var(--rs-surface-3);
    color: var(--rs-text-2);
}

.dark-open .badge-primary-lighten { background-color: var(--rs-primary-soft-2); color: var(--rs-primary); }
.dark-open .badge-success-lighten { background-color: var(--rs-success-soft); color: var(--rs-success); }
.dark-open .badge-info-lighten { background-color: var(--rs-info-soft); color: var(--rs-info); }
.dark-open .badge-warning-lighten { background-color: var(--rs-warning-soft); color: var(--rs-warning); }
.dark-open .badge-danger-lighten { background-color: var(--rs-danger-soft); color: var(--rs-danger); }

/* ---- 分页 / 筛选 / 导航胶囊 ---- */
.dark-open .pagination a,
.dark-open .pagination span {
    background-color: var(--rs-surface);
    border-color: transparent;
    box-shadow: var(--rs-hairline), var(--rs-sh-xs);
    color: var(--rs-text-2);
}

.dark-open .pagination a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-sm);
}

.dark-open .pagination .current {
    background: var(--rs-gradient);
    color: #fff;
    box-shadow: var(--rs-sh-primary);
}

.dark-open .archive-filter .filters .dropdown-toggle {
    background-color: var(--rs-surface-2);
    border-color: transparent;
    color: var(--rs-text-2);
}

.dark-open .archive-filter .filters .dropdown-menu,
.dark-open .bootstrap-select .dropdown-menu {
    background-color: var(--rs-surface);
    border-color: transparent;
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.dark-open .bootstrap-select .dropdown-menu li a:hover,
.dark-open .omnisearch .dropdown-item.active,
.dark-open .omnisearch .dropdown-item:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dark-open .bootstrap-select > .dropdown-toggle {
    background-color: var(--rs-surface-2);
    border-color: transparent;
    color: var(--rs-text-2);
}

.dark-open .archive-filter-2 a { color: var(--rs-text-2); }

.dark-open .archive-filter-2 a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dark-open .nav-segment { background-color: var(--rs-surface-3); }
.dark-open .nav-segment .nav-link { color: var(--rs-text-2); }

.dark-open .nav-segment .nav-link.active,
.dark-open .nav-segment.nav-pills .nav-link.active {
    background: var(--rs-surface);
    color: var(--rs-primary);
    box-shadow: var(--rs-sh-sm);
}

.dark-open .nav .nav-link { color: var(--rs-text-2); }

.dark-open .nav-tabs .nav-link.active,
.dark-open .navbar-vertical .nav-tabs .active .nav-link,
.dark-open .navbar-vertical .nav-tabs .active.nav-link {
    color: var(--rs-primary);
    border-color: transparent transparent var(--rs-primary);
    background-color: transparent;
}

.dark-open .single-download-nav .nav.nav-pills {
    background-color: transparent;
    border-bottom-color: var(--rs-line);
}

.dark-open .single-download-nav .nav.nav-pills .nav-link {
    color: var(--rs-text-3);
    background-color: transparent;
    box-shadow: none;
}

.dark-open .single-download-nav .nav.nav-pills .nav-link:hover {
    color: var(--rs-primary) !important;
}

.dark-open .single-download-nav .nav.nav-pills .nav-link.active {
    background: none;
    background-color: transparent;
    color: var(--rs-primary);
    border-color: var(--rs-primary);
    box-shadow: none;
}

.dark-open .nav-tabs.question-nav .nav-link.active {
    background-color: var(--rs-surface);
    color: var(--rs-primary);
    box-shadow: 0 -1px 0 var(--rs-line), -1px 0 0 var(--rs-line), 1px 0 0 var(--rs-line);
}

.dark-open .post-list.question {
    background-color: transparent;
    border-bottom-color: var(--rs-line);
    box-shadow: none;
}

.dark-open .post-list.question:hover {
    background-color: var(--rs-primary-soft);
}

.dark-open .post-list.question .answers {
    background-color: var(--rs-surface-3);
    color: var(--rs-text-3);
}

/* ---- 搜索 / 浮层 ---- */
.dark-open .omnisearch {
    background-color: rgba(16, 11, 38, .84);
}

.dark-open .omnisearch .omnisearch-form,
.dark-open .omnisearch .omnisearch-suggestions {
    background-color: var(--rs-surface);
    box-shadow: var(--rs-hairline), var(--rs-sh-lg);
}

.dark-open .omnisearch .omnisearch-suggestions:before {
    border-bottom-color: var(--rs-surface);
}

.dark-open .omnisearch .omnisearch-form .form-control {
    background-color: transparent;
    box-shadow: none;
    color: var(--rs-text);
}

.dark-open .omnisearch .omnisearch-suggestions .search-keywords a {
    background-color: var(--rs-surface-3);
    color: var(--rs-text-2);
}

.dark-open .omnisearch .omnisearch-suggestions .search-keywords a:hover,
.dark-open .omnisearch .omnisearch-suggestions .list-link:hover {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .omnisearch .dropdown-divider {
    border-color: var(--rs-line);
}

/* 同亮色：不能用半透明底，app.css 已给它和左侧按钮各加了 opacity:0.8 */
.dark-open .search-form .search-fields {
    background-color: var(--rs-surface);
}

.dark-open .search-form .search-fields input {
    background-color: transparent;
    box-shadow: none;
    color: var(--rs-text);
}

.dark-open .search-form .search-fields input::-webkit-input-placeholder {
    color: var(--rs-text-3);
}

.dark-open .search-form .search-select .dropdown > button {
    background-color: var(--rs-surface);
    color: var(--rs-text-2);
}

.dark-open .search-form .search-fields button { color: var(--rs-primary); }
.dark-open .search-form .search-fields button:hover { color: var(--rs-magenta); }

/* ---- 侧滑 / 移动端 / 悬浮球 ---- */
.dark-open .off-canvas {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    box-shadow: var(--rs-sh-xl);
}

.dark-open .off-canvas .widget-area .widget {
    background-color: var(--rs-surface-2);
    background-image: none;
    box-shadow: none;
}

.dark-open .slicknav_menu .menu-item > a,
.dark-open .slicknav_menu .slicknav_nav .sub-menu > li > a {
    color: var(--rs-text-2);
}

.dark-open .slicknav_menu .menu-item > a:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dark-open .slicknav_menu .slicknav_nav li.current-menu-item a {
    color: var(--rs-primary);
}

.dark-open .slicknav_menu .slicknav_nav .sub-menu {
    background-color: var(--rs-surface-2);
}

.dark-open .m-menubar {
    background-color: var(--rs-glass);
    box-shadow:
        inset 0 2px 0 0 rgba(var(--rs-primary-rgb), .26),
        0 -12px 34px -20px rgba(0, 0, 0, .9);
}

.dark-open .m-menubar li a { color: var(--rs-text-3); }

.dark-open .m-menubar li.active a,
.dark-open .m-menubar li.active a > i {
    color: var(--rs-primary);
}

.dark-open .rollbar {
    background-color: var(--rs-glass);
    border-color: transparent;
    box-shadow: var(--rs-hairline), -12px 0 34px -14px rgba(0, 0, 0, .8);
}

.dark-open .rollbar .actions li > a { color: var(--rs-text-2); }

.dark-open .rollbar .actions li:hover > a {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .rollbar .rollbar-item {
    border-top-color: var(--rs-line);
    color: var(--rs-magenta);
}

.dark-open .dimmer, .dark-open .mask-body {
    background-color: rgba(8, 5, 20, .66);
}

.dark-open .owl .owl-prev,
.dark-open .owl .owl-next,
.dark-open .module.slider.owl .owl-prev,
.dark-open .module.slider.owl .owl-next {
    background-color: var(--rs-surface);
    color: var(--rs-text-2);
    box-shadow: var(--rs-hairline), var(--rs-sh);
}

.dark-open .module.slider.owl .owl-prev:hover,
.dark-open .module.slider.owl .owl-next:hover {
    background: var(--rs-gradient);
    color: #fff;
}

/* ---- 商品 / 支付 ---- */
.dark-open .pay_coin_box {
    background-color: var(--rs-surface-2);
    border-color: transparent;
    box-shadow: var(--rs-hairline);
}

.dark-open .pay_coin_box:hover,
.dark-open .pay_coin_box.active,
.dark-open .pay-vip-item.ok {
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-sm);
}

.dark-open .rizhuti_v2-widget-shop-down .price,
.dark-open .ripro-v2-widget-shop-down .price > h3 > small {
    -webkit-text-fill-color: var(--rs-accent);
    color: var(--rs-accent);
}

.dark-open .ripro-v2-widget-shop-down .down-info,
.dark-open .hero-shop-warp .info-box .down-info {
    background-color: transparent;
    box-shadow: none;
}

.dark-open .ripro-v2-widget-shop-down .down-info > h5 {
    border-bottom-color: var(--rs-line-strong);
    color: var(--rs-text);
}

.dark-open .rizhuti_v2-widget-shop-down ul.infos li p,
.dark-open .ripro-v2-widget-shop-down ul.infos li p {
    color: var(--rs-text-2);
}

/* 这个容器 app.css 给了 padding:20px，可以安全上底色 */
.dark-open #header-widget-shop-down .ripro-v2-widget-shop-down {
    background-color: var(--rs-surface-2);
    box-shadow: var(--rs-hairline);
}

.dark-open .ripro-v2-widget-shop-down .pricing-options,
.dark-open .rizhuti_v2-widget-shop-down .pricing-options li + li {
    background: var(--rs-gradient-soft);
    border-color: var(--rs-line);
}

.dark-open .swal2-popup {
    background-color: var(--rs-surface);
    background-image: var(--rs-surface-gradient);
    color: var(--rs-text);
    box-shadow: var(--rs-sh-xl);
}

.dark-open .swal2-title { color: var(--rs-text); }

.dark-open .swal2-html-container,
.dark-open .swal2-content {
    color: var(--rs-text-2);
}

.dark-open .swal2-popup .pay-button-box .pay-item,
.dark-open .swal2-popup .pay-button-box .pay-item + .pay-item {
    background-color: var(--rs-surface-2);
    border-color: transparent;
    box-shadow: var(--rs-hairline);
}

.dark-open .swal2-popup .pay-button-box .pay-item:hover {
    background-color: var(--rs-surface-3);
    box-shadow: var(--rs-hairline-vivid), var(--rs-sh-sm);
}

.dark-open .swal2-popup .pay-button-box .pay-item span {
    color: var(--rs-text-2);
}

.dark-open .swal2-input,
.dark-open .swal2-textarea,
.dark-open .swal2-select {
    background-color: var(--rs-surface-2);
    color: var(--rs-text);
    box-shadow: var(--rs-hairline);
}

/* ---- 用户中心 / 其他 ---- */
.dark-open .social-text .absolute-centered {
    background-color: var(--rs-surface) !important;
    color: var(--rs-text-3);
}

.dark-open .user-top-header .bg-white {
    background-color: var(--rs-surface) !important;
}

.dark-open .navbar-vertical .nav-link { color: var(--rs-text-2); }

.dark-open .navbar-vertical .nav-link:hover {
    background-color: var(--rs-primary-soft-2);
    color: var(--rs-primary);
}

.dark-open .navbar-vertical .nav-link.active {
    background: var(--rs-gradient);
    color: #fff;
}

.dark-open .article-crumb,
.dark-open .breadcrumb {
    background-color: transparent;
}

.dark-open .breadcrumb li a { color: var(--rs-text-3); }
.dark-open .breadcrumb li a:hover { color: var(--rs-primary); }

.dark-open ._404 { color: var(--rs-text-3); }

.dark-open .accordion .card,
.dark-open .accordion .card-header,
.dark-open .accordion .accordion-item {
    background-color: var(--rs-surface-2);
    border-color: var(--rs-line);
    box-shadow: none;
}

.dark-open .tab-content .accordion .text-left { color: var(--rs-text-2); }

.dark-open .question-list .question-item,
.dark-open .question-list .question-form,
.dark-open .widget.question-users ul > li {
    background-color: var(--rs-surface);
    border-color: var(--rs-line);
}

.dark-open .question-item footer > span { color: var(--rs-text-3); }

.dark-open .rizhuti-v2-module-vip-price > .container {
    background-color: transparent;
}

.dark-open .post-cms-lists .cat-title { border-color: var(--rs-line); }

.dark-open .post-cms .cms_grid_box:hover { box-shadow: var(--rs-sh-lg); }

.dark-open .rizhuti_v2-widget-division .icon-sahpe {
    background: var(--rs-gradient-soft);
    color: var(--rs-primary);
}

.dark-open .rizhuti_v2-widget-division .hover-rounded:hover .icon-sahpe {
    background: var(--rs-gradient-vivid);
    color: #fff;
}

/* 动态滚动条保持透明 */
.dark-open .owl-dynamic .scroll-dynamic {
    background-color: transparent;
    box-shadow: none;
}


/* ==========================================================================
   21. 无障碍与降级 · A11y & Fallbacks
   ========================================================================== */

/* 系统开启"减少动态效果"时，关闭所有位移与缩放。
   v2 动效比 v1 强得多，这一段更重要。 */
@media (prefers-reduced-motion: reduce) {
    .btn:hover,
    .posts-wrapper .post-list:hover,
    .posts-wrapper .post-grid:hover,
    .related-posts .post-list:hover,
    .related-posts .post-grid:hover,
    .series-item:hover,
    .catbox-carousel .catbox-bg:hover,
    .post-cms .cms_grid_box:hover,
    .pricing-rates:hover,
    .entry-page-prev:hover,
    .entry-page-next:hover,
    .pagination a:hover,
    .oauth .oauth-btn:hover,
    .widget .tagcloud a:hover,
    .article-content .entry-tags a:hover,
    .question-cat > a:hover,
    .home-cat-nav > a:hover,
    .omnisearch .omnisearch-suggestions .search-keywords a:hover,
    .swal2-popup .pay-button-box .pay-item:hover,
    .pay_coin_box:hover,
    .navbar .menu-avatar-img:hover,
    .module.slider.owl .owl-prev:hover,
    .module.slider.owl .owl-next:hover,
    .rizhuti_v2-widget-division .hover-rounded:hover .icon-sahpe,
    .post_format-post-format-video:hover .meta-post-type,
    .off-canvas .canvas-close:hover,
    .form-submit .submit:hover {
        transform: none;
    }

    .entry-media img,
    .series-item-thumb img {
        transition: none;
    }

    .posts-wrapper .post-list:hover .entry-media img,
    .posts-wrapper .post-grid:hover .entry-media img,
    .related-posts .post-list:hover .entry-media img,
    .series-item:hover .series-item-thumb img {
        transform: none;
        filter: none;
    }
}

/* 不支持 backdrop-filter 时退回不透明底色 */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .site-header,
    .m-menubar,
    .rollbar,
    .module.slider.owl .owl-prev,
    .module.slider.owl .owl-next {
        background-color: var(--rs-surface);
    }

    .omnisearch {
        background-color: var(--rs-bg);
    }
}

/* 不支持 background-clip:text 时退回实色，避免标题变透明消失 */
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
    .modular-title-1 .section-title,
    .modular-title-2 .section-title span,
    .modular-title-3 .section-title,
    .login-page-title > h1,
    .ripro-v2-widget-shop-down .price > h3,
    .ripro-v2-widget-shop-down .price > h3 > span {
        background: none;
        color: var(--rs-primary);
        -webkit-text-fill-color: currentColor;
    }
}

/* 打印时去掉所有装饰 */
@media print {
    body:before { display: none; }

    .card,
    .widget-area .widget,
    .content-area .article-content,
    .posts-wrapper .post-list,
    .posts-wrapper .post-grid {
        box-shadow: none;
        background-image: none;
    }
}

